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.
Tópicos relacionados
-
Usando código gerenciado com dados do Shell e do Windows Search