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
- Para obter informações sobre como implementar e usar separadores de palavras personalizados e lematizadores para idiomas e localidades adicionais, consulte Estendendo recursos de idioma no Windows Search.
- Se você precisar identificar o idioma de um texto, poderá usar a LAD (Detecção Automática de Idiomas), que está disponível no Windows 7 e posterior. Para obter mais informações, consulte SERVIÇOS Linguísticos Estendidos (ELS).
- Para obter informações sobre como gerenciar, consultar e estender o índice, consulte o Guia do Desenvolvedor de Pesquisa do Windows.
Tópicos relacionados