Partilhar via


Idiomas suportados pelo Windows Search

Este tópico descreve como o Windows Search oferece suporte a vários idiomas.

Tokenização, Wordbreakers e Recursos de Idioma

O Windows Search é independente do idioma, mas a precisão da pesquisa entre idiomas pode variar devido à forma como os separadores de palavras tokenizam o texto. Os separadores de palavras implementam várias regras de tokenização para idiomas e dividem o texto em tokens individuais, ou palavras, para serem indexados ou pesquisados.

Tanto o idioma do texto indexado quanto a cadeia de caracteres de consulta são divididos em tokens. Como as regras de tokenização variam de acordo com o idioma, há separadores de palavras separados para cada idioma ou família de idiomas. Se houver uma incompatibilidade entre a linguagem de consulta e a linguagem indexada, os resultados podem ser imprevisíveis.

O Windows Search é fornecido com um conjunto bem definido de separadores de palavras. Os componentes clássicos do separador de palavras e do lematizador são suportados no Windows Vista e posterior. Se o idioma de um documento não puder ser determinado, o Windows Search tentará detetar o idioma para identificar o separador de palavras mais apropriado. O Windows Search tenta detetar o idioma chamando a funçãoGetSystemPreferredUILanguages para determinar o primeiro idioma MUI (Multiple User Interface) (que normalmente é o idioma da interface do usuário do sistema, a menos que os pacotes de idiomas MUI estejam instalados). Se essa chamada for bem-sucedida, o separador de palavras para o primeiro idioma MUI será usado. Se a chamada para GetSystemPreferredUILanguages falhar, o Windows Search recuperará a localidade do sistema chamando a funçãoGetSystemDefaultLCIDe usará o separador de palavras associado a essa localidade.

Se nenhum separador de palavras estiver instalado para um idioma, o Windows Search quebra o espaço em branco usando o separador de palavras Neutro.

Você pode remover um idioma através do Registro, conforme ilustrado no exemplo a seguir.

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            ContentIndex
               Language
                  Dutch_Dutch
                     (Default)
                     Locale
                     NoiseFile
                     StemmerClass = CLSID
                     WBreakerClass = CLSID

Dica

Se você fizer alterações no Registro, reinicie o Windows Search.

 

Quando o Windows Search requer um novo separador de palavras, o identificador de classe (CLSID) é lido e o separador de palavras instanciado é armazenado em cache.

Você pode criar um separador de palavras personalizado para um idioma implementando a interfaceIWordBreaker. Em seguida, o Windows Search chama os métodos IWordBreaker quando cria índices de conteúdo e executa consultas.

As informações de localidade para conteúdo indexado são recuperadas da fonte do conteúdo. Se o implementador de origem não souber a localidade do conteúdo indexado, ele deverá definir a localidade como LOCALE_NEUTRAL.

Por exemplo, se você implementar um manipulador de filtro (uma implementação da interface IFilter), manipulador de propriedades ou manipulador de protocolo, deverá definir a localidade do conteúdo indexado como LOCALE_NEUTRAL a menos que tenha informações de localidade específicas e tenha certeza de sua precisão.

Dica

Se uma consulta de índice for baseada na entrada do usuário, a localidade deverá corresponder ao idioma no qual o usuário está digitando. Você pode determinar essa localidade chamando a funçãoGetKeyboardLayout.

 

Idiomas suportados pelos separadores de palavras

O Windows Search inclui separadores de palavras para suportar os seguintes idiomas.

Chave de registo Língua (sublíngua) LCID
Arabic_SaudiArabia Árabe (Neutro) 0x0001
Bengali_Default Bangla (Neutro) 0x0045
Bulgarian_Default Búlgaro (Bulgária) 0x0402
Catalan_Default Catalão (Catalão) 0x0403
Chinese_HongKong Chinês (RAE de Hong Kong, RPC) 0x0C04
Chinese_Simplified Chinês (simplificado) 0x0804
Chinese_Traditional Chinês (tradicional) 0x0404
Croatian_Default Croata (Croácia) 0x041A
Czech_Default Checo (República Checa) 0x0405
Danish_Default Dinamarquês (Dinamarca) 0x0406
Dutch_Dutch Neerlandês (Países Baixos) 0x0413
English_UK Inglês (Reino Unido) 0x0809
English_US Inglês (Estados Unidos) 0x0409
Finnish_Default Finlandês (Finlândia) 0x040B
French_French Francês (França) 0x040C
German_German Alemão (Alemanha) 0x0407
Greek_Default Grego (Grécia) 0x0408
Gujarati_Default Gujarati (Índia) 0x0447
Hebrew_Default Hebraico (Neutro) 0x000D
Hindi_Default Hindi (Índia) 0x0439
Hungarian_Default Húngaro (Hungria) 0x040E
Icelandic_Default Islandês (Islândia) 0x040F
Indonesian_Default Indonésio (Indonésia) 0x0421
Italian_Italian Italiano (Itália) 0x0410
Japanese_Default Japonês (Japão) 0x0411
Kannada_Default Kannada (Índia) 0x044B
Korean_Default Coreano (Coreia) 0x0412
Latvian_Default Letão (Letónia) 0x0426
Lithuanian_Default Lituano (lituano) 0x0427
Malay_Malaysia Malaio (Malásia) 0x043E
Malayalam_Default Malaiala (Neutro) 0x004C
Marathi_Default Marathi (Índia) 0x044E
Norwegian_Bokmal Norueguês (Bokmål, Noruega) 0x0414
Polish_Default Polaco (Polónia) 0x0415
Portuguese_Portugal Português (Portugal) 0x0816
Portuguese_Brazil Português (Brasil) 0x0416
Punjabi_Default Punjabi (Índia) 0x0446
Romanian_Default Romeno (Roménia) 0x0418
Russian_Default Russo (Neutro) 0x0019
Serbian_Cyrillic Sérvio (Sérvia e Montenegro, anterior, cirílico) 0x0C1A
Serbian_Latin Sérvio (Sérvia e Montenegro, anterior, latim) 0x081A
Slovak_Default Eslovaco (Eslováquia) 0x041B
Slovenian_Default Esloveno (Eslovénia) 0x0424
Spanish_Modern Espanhol (Espanha, Classificação Moderna) 0x0C0A
Swedish_Default Sueco (Suécia) 0x041D
Tamil_Default Tâmil (Índia) 0x0449
Telugu_Default Telugu (Índia) 0x044A
Thai_Default Tailandês (Tailândia) 0x041E
Turkish_Default Turco (Türkiye) 0x041F
Ukrainian_Default Ucraniano (Ucrânia) 0x0422
Urdu_Default Urdu (Paquistão) 0x0420
Vietnamese_Default Vietnamita (Vietname) 0x042A

 

Observação

LCIDs para alguns idiomas na tabela são gerados usando o identificador de idioma, identificador de subidioma e identificador de classificação.

 

Para obter mais informações sobre idiomas e identificadores associados, consulte Language Identifier Constants and Strings.

Observação

Não há garantia de que todas essas chaves de registro de idioma estarão presentes em qualquer máquina. O separador de palavras para qualquer idioma pode ou não ser instalado na máquina, dependendo das configurações do usuário.

 

A partir do Windows 8.1, a maneira preferida de usar separadores de palavras é por meio da API do WinRT da classe WordsSegmenter.

Recursos adicionais

  • Para obter informações sobre como implementar e usar separadores de palavras e lematizadores personalizados para idiomas e localidades adicionais, consulte Estendendo recursos de idioma no Windows Search.
  • Se precisar de identificar o idioma de um pedaço de texto, pode utilizar a Deteção Automática de Idioma (LAD), que está disponível no Windows 7 e posterior. Para obter mais informações, consulte Extended Linguistic Services (ELS).
  • Para obter informações sobre como gerenciar, consultar e estender o índice, consulte o Guia do desenvolvedor do Windows Search.

Visão geral do Windows Search

Windows Search como plataforma de desenvolvimento

Usando código gerenciado com dados do Shell e do Windows Search