Idiomas compatíveis com a Pesquisa do Windows

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

Tokenization, Wordbreakers e Language Resources

A Pesquisa do Windows é independente de idioma, mas a precisão da pesquisa entre idiomas pode variar devido à maneira como os quebra-palavras tokenizam o texto. Os wordbreakers implementam várias regras de token para idiomas e dividem o texto em tokens individuais, ou palavras, para serem indexados ou pesquisados.

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

O Windows Search é fornecido com um conjunto bem definido de quebra-palavras. Componentes clássicos de quebra-palavras e lematizador têm suporte no Windows Vista e posteriores. Se o idioma de um documento não puder ser determinado, a Pesquisa do Windows tentará detectar o idioma para identificar o quebra-palavras mais apropriado. O Windows Search tenta detectar o idioma chamando a função GetSystemPreferredUILanguages para determinar a primeira linguagem MUI (Interface do Usuário Múltipla) (que normalmente é a linguagem de interface do usuário do sistema, a menos que os pacotes de idiomas MUI estejam instalados). Se essa chamada for bem-sucedida, o quebra-palavras da primeira linguagem MUI será usado. Se a chamada para GetSystemPreferredUILanguages falhar, o Windows Search recuperará a localidade do sistema chamando a função GetSystemDefaultLCID e usará o wordbreaker associado a essa localidade.

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

Você pode remover um idioma por meio 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 a Pesquisa do Windows.

 

Quando a Pesquisa do Windows requer um novo quebra-palavras, o CLSID (identificador de classe) é lido e o quebra-palavras instanciado é armazenado em cache.

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

As informações de localidade do conteúdo indexado são recuperadas da origem 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 você tenha informações de localidade específicas e esteja confiante 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ção GetKeyboardLayout .

 

Idiomas compatíveis com Wordbreakers

A Pesquisa do Windows inclui quebra-palavras para dar suporte aos seguintes idiomas.

Chave do Registro Idioma (sublanguagem) LCID
Arabic_SaudiArabia Árabe (neutro) 0x0001
Bengali_Default Bangla (neutro) 0x0045
Bulgarian_Default Búlgaro (Bulgária) 0x0402
Catalan_Default Catalão (Catalunha) 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 Tcheco (República Tcheca) 0x0405
Danish_Default Dinamarquês (Dinamarca) 0x0406
Dutch_Dutch Holandê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 Híndi (Í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 canarim (Índia) 0x044B
Korean_Default Coreano (Coreia do Sul) 0x0412
Latvian_Default Letão (Letônia) 0x0426
Lithuanian_Default Lituano (lituano) 0x0427
Malay_Malaysia Malaio (Malásia) 0x043E
Malayalam_Default Malayalam (neutro) 0x004C
Marathi_Default Marati (Índia) 0x044E
Norwegian_Bokmal Norueguês, (Bokmål, Noruega) 0x0414
Polish_Default Polonês (Polônia) 0x0415
Portuguese_Portugal Português (Portugal) 0x0816
Portuguese_Brazil Português (Brasil) 0x0416
Punjabi_Default panjabi (Índia) 0x0446
Romanian_Default Romeno (Romênia) 0x0418
Russian_Default Russo (neutro) 0x0019
Cirílico sérvio Sérvio (Sérvia e Montenegro, Antigo, Cirílico) 0x0C1A
sérvio Latino Sérvio (Sérvia e Montenegro, Antigo, Latino) 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 Télugo (Índia) 0x044A
Thai_Default Tailandês (Tailândia) 0x041e
Turkish_Default Turco (Turquia) 0x041F
Ukrainian_Default Ucraniano (Ucrânia) 0x0422
Urdu_Default Urdu (Paquistão) 0x0420
Vietnamese_Default Vietnamita (Vietnã) 0x042A

 

Observação

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

 

Para obter mais informações sobre idiomas e identificadores associados, consulte Constantes e cadeias de caracteres do identificador de idioma.

Observação

Não há nenhuma garantia de que todas essas chaves do Registro de Idioma estarão presentes em qualquer computador específico. O separador de palavras para qualquer idioma específico pode ou não ser instalado no computador, dependendo das configurações do usuário.

 

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

Recursos adicionais

Visão geral do Windows Search

Windows Search como uma plataforma de desenvolvimento

Usar código gerenciado com os dados do Shell e do Windows Search