Langues prises en charge par La recherche Windows
Cette rubrique décrit comment Windows Search prend en charge plusieurs langues.
Tokenization, Wordbreakers et ressources linguistiques
La recherche Windows est indépendante de la langue, mais la précision de la recherche entre les langues peut varier en raison de la façon dont les analyseurs de mots tokenisent du texte. Les analyseurs de mots implémentent différentes règles de jeton pour les langues et décomposent le texte en jetons individuels, ou mots, à indexer ou à rechercher.
La langue du texte indexé et la chaîne de requête sont divisées en jetons. Étant donné que les règles de jeton varient selon la langue, il existe des analyseurs de mots distincts pour chaque langue ou famille de langues. S’il existe une incompatibilité entre le langage de requête et la langue indexée, les résultats peuvent être imprévisibles.
Windows Search est fourni avec un ensemble bien défini de analyseurs de mots. Les composants de séparateur de mots et de générateur de formes dérivées classiques sont pris en charge dans Windows Vista et versions ultérieures. Si la langue d’un document ne peut pas être déterminée, Recherche Windows tente de détecter la langue pour identifier le séparateur de mots le plus approprié. Recherche Windows tente de détecter la langue en appelant la fonction GetSystemPreferredUILanguages pour déterminer la première langue MUI (Multiple User Interface) (qui est généralement la langue de l’interface utilisateur système, sauf si les modules linguistiques MUI sont installés). Si cet appel réussit, l’analyseur de mots pour la première langue MUI est utilisé. Si l’appel à GetSystemPreferredUILanguages échoue, Windows Search récupère les paramètres régionaux système en appelant la fonction GetSystemDefaultLCID et utilise le séparateur de mots associé à ces paramètres régionaux.
Si aucun analyseur de mots n’est installé pour une langue, Windows Search s’interrompt sur l’espace blanc à l’aide du analyseur de mots neutre.
Vous pouvez supprimer une langue dans le Registre, comme illustré dans l’exemple suivant.
HKEY_LOCAL_MACHINE
SYSTEM
CurrentControlSet
Control
ContentIndex
Language
Dutch_Dutch
(Default)
Locale
NoiseFile
StemmerClass = CLSID
WBreakerClass = CLSID
Pourboire
Si vous apportez des modifications au Registre, redémarrez Windows Search.
Lorsque La recherche Windows nécessite un nouveau analyseur de mots, l’identificateur de classe (CLSID) est lu et l’analyseur de mots instancié est mis en cache.
Vous pouvez créer un analyseur de mots personnalisé pour une langue en implémentant l’interface IWordBreaker. Windows Search appelle ensuite les méthodes IWordBreaker lorsqu’elle génère des index de contenu et exécute des requêtes.
Les informations de paramètres régionaux pour le contenu indexé sont récupérées à partir de la source du contenu. Si l’implémenteur source ne connaît pas les paramètres régionaux du contenu indexé, il doit définir les paramètres régionaux sur LOCALE_NEUTRAL.
Par exemple, si vous implémentez un gestionnaire de filtres (implémentation de l’interface IFilter), gestionnaire de propriétés ou gestionnaire de protocole, vous devez définir les paramètres régionaux pour le contenu indexé sur LOCALE_NEUTRAL, sauf si vous avez des informations de paramètres régionaux spécifiques et que vous êtes sûr de sa précision.
Pourboire
Si une requête d’index est basée sur l’entrée utilisateur, les paramètres régionaux doivent correspondre à la langue dans laquelle l’utilisateur tape. Vous pouvez déterminer ces paramètres régionaux en appelant la fonction GetKeyboardLayout.
Langues prises en charge par les analyseurs Wordbreakers
Windows Search inclut des analyseurs de mots pour prendre en charge les langues suivantes.
Clé de Registre | Langue (sous-langage) | LCID |
---|---|---|
Arabic_SaudiArabia | Arabe (neutre) | 0x0001 |
Bengali_Default | Bangla (neutre) | 0x0045 |
Bulgarian_Default | Bulgare (Bulgarie) | 0x0402 |
Catalan_Default | Catalan (catalan) | 0x0403 |
Chinese_HongKong | Chinois (Hong Kong SAR, PRC) | 0x0C04 |
Chinese_Simplified | Chinois (simplifié) | 0x0804 |
Chinese_Traditional | Chinois (traditionnel) | 0x0404 |
Croatian_Default | Croate (Croatie) | 0x041A |
Czech_Default | Tchèque (République tchèque) | 0x0405 |
Danish_Default | Danois (Danemark) | 0x0406 |
Dutch_Dutch | Néerlandais (Pays-Bas) | 0x0413 |
English_UK | Anglais (Royaume-Uni) | 0x0809 |
English_US | Anglais (États-Unis) | 0x0409 |
Finnish_Default | Finnois (Finlande) | 0x040B |
French_French | Français (France) | 0x040C |
German_German | Allemand (Allemagne) | 0x0407 |
Greek_Default | Grec (Grèce) | 0x0408 |
Gujarati_Default | Gujarati (Inde) | 0x0447 |
Hebrew_Default | Hébreu (neutre) | 0x000D |
Hindi_Default | Hindi (Inde) | 0x0439 |
Hungarian_Default | Hongrois (Hongrie) | 0x040E |
Icelandic_Default | Islandais (Islande) | 0x040F |
Indonesian_Default | Indonésien (Indonésie) | 0x0421 |
Italian_Italian | Italien (Italie) | 0x0410 |
Japanese_Default | Japonais (Japon) | 0x0411 |
Kannada_Default | Kannada (Inde) | 0x044B |
Korean_Default | Coréen (Corée) | 0x0412 |
Latvian_Default | Letton (Lettonie) | 0x0426 |
Lithuanian_Default | Lituanien (Lituanien) | 0x0427 |
Malay_Malaysia | Malais (Malaisie) | 0x043E |
Malayalam_Default | Malayalam (neutre) | 0x004C |
Marathi_Default | Marathi (Inde) | 0x044E |
Norwegian_Bokmal | Norvégien (Bokmål, Norvège) | 0x0414 |
Polish_Default | Polonais (Pologne) | 0x0415 |
Portuguese_Portugal | Portugais (Portugal) | 0x0816 |
Portuguese_Brazil | Portugais (Brésil) | 0x0416 |
Punjabi_Default | Punjabi (Inde) | 0x0446 |
Romanian_Default | Roumain (Roumanie) | 0x0418 |
Russian_Default | Russe (neutre) | 0x0019 |
Serbian_Cyrillic | Serbe (Serbie et Monténégro, ancien, cyrillique) | 0x0C1A |
Serbian_Latin | Serbe (Serbie et Monténégro, Ancien, Latin) | 0x081A |
Slovak_Default | Slovaque (Slovaquie) | 0x041B |
Slovenian_Default | Slovène (Slovénie) | 0x0424 |
Spanish_Modern | Espagnol (Espagne, Sort moderne) | 0x0C0A |
Swedish_Default | Suédois (Suède) | 0x041D |
Tamil_Default | Tamoul (Inde) | 0x0449 |
Telugu_Default | Télougou (Inde) | 0x044A |
Thai_Default | Thaï (Thaïlande) | 0x041E |
Turkish_Default | Turc (Türkiye) | 0x041F |
Ukrainian_Default | Ukrainien (Ukraine) | 0x0422 |
Urdu_Default | Urdu (Pakistan) | 0x0420 |
Vietnamese_Default | Vietnamien (Vietnam) | 0x042A |
Note
Les LCID pour certaines langues de la table sont générés à l’aide de l’identificateur de langue, de l’identificateur de sous-langue et de l’identificateur de tri.
Pour plus d’informations sur les langues et les identificateurs associés, consultez constantes et chaînes d’identificateur de langue.
Note
Il n’existe aucune garantie que toutes ces clés de Registre de langue seront présentes sur n’importe quel ordinateur donné. Le séparateur de mots pour une langue donnée peut ou non être installé sur l’ordinateur en fonction des paramètres utilisateur.
À partir de Windows 8.1, la méthode recommandée pour utiliser des analyseurs de mots consiste à utiliser l’API WinRT classe WordsSegmenter.
Ressources additionnelles
- Pour plus d’informations sur la façon d’implémenter et d’utiliser des analyseurs de mots personnalisés et des générateurs de formes dérivées pour d’autres langues et paramètres régionaux, consultez Extension des ressources linguistiques dans Windows Search.
- Si vous avez besoin d’identifier la langue d’un morceau de texte, vous pouvez utiliser la détection automatique de langue (LAD), qui est disponible dans Windows 7 et versions ultérieures. Pour plus d’informations, consultez services linguistiques étendus (ELS).
- Pour plus d’informations sur la gestion, l’interrogation et l’extension de l’index, consultez le Guide du développeur Windows Search.
Rubriques connexes
-
Vue d’ensemble de Recherche Windows
-
utilisation de code managé avec des données Shell et des Windows Search