Langues prises en charge par Recherche Windows
Cette rubrique décrit comment Recherche Windows prend en charge plusieurs langues.
Tokenisation, séparateurs de mots et ressources de langage
La recherche Windows est indépendante de la langue, mais la précision de la recherche dans plusieurs langues peut varier en raison de la façon dont les analyseurs de mots jetons jetons du texte. Les analyseurs de mots implémentent différentes règles de création de jetons 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 création de jetons varient selon la langue, il existe des séparateurs de mots distincts pour chaque langue ou famille de langues. En cas d’incompatibilité entre la langue 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 séparateurs 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 d’interface utilisateur multiple (MUI) (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 de la première langue MUI est utilisé. Si l’appel à GetSystemPreferredUILanguages échoue, Recherche Windows 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 séparateur de mots n’est installé pour une langue, Windows Search s’interrompt sur les espaces blancs à l’aide du séparateur de mots Neutre .
Vous pouvez supprimer une langue via 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
Conseil
Si vous apportez des modifications au Registre, redémarrez Windows Search.
Lorsque La Recherche Windows nécessite un nouveau séparateur de mots, l’identificateur de classe (CLSID) est lu et l’analyseur de mots instancié est mis en cache.
Vous pouvez créer un séparateur 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 filtre (une implémentation de l’interface IFilter ), un gestionnaire de propriétés ou un gestionnaire de protocole, vous devez définir les paramètres régionaux du contenu indexé sur LOCALE_NEUTRAL , sauf si vous disposez d’informations de paramètres régionaux spécifiques et que vous êtes sûr de sa précision.
Conseil
Si une requête d’index est basée sur une 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 séparateurs de mots
Recherche Windows inclut des séparateurs 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 (Catalogne) | 0x0403 |
Chinese_HongKong | Chinois (Hong Kong R.A.S., RPC) | 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 |
Français_Français | Français (France) | 0x040C |
German_German | Allemand (Allemagne) | 0x0407 |
Greek_Default | Grec (Grèce) | 0x0408 |
Gujarati_Default | Goudjrati (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 | Pendjabi (Inde) | 0x0446 |
Romanian_Default | Roumain (Roumanie) | 0x0418 |
Russian_Default | Russe (Neutre) | 0x0019 |
Serbe (cyrillique) | Serbe (Serbie-et-Monténégro, ancien, cyrillique) | 0x0C1A |
Serbe (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, Modern Sort) | 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 (Turquie) | 0x041F |
Ukrainian_Default | Ukrainien (Ukraine) | 0x0422 |
Urdu_Default | Ourdou (Pakistan) | 0x0420 |
Vietnamese_Default | Vietnamien (Vietnam) | 0x042A |
Notes
Les LCID pour certaines langues de la table sont générées à l’aide de l’identificateur de langue, de l’identificateur de sous-langage 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.
Notes
Il n’est pas garanti que toutes ces clés de registre de langage soient présentes sur une machine donnée. Le wordbreaker pour une langue donnée peut ou non être installé sur l’ordinateur en fonction des paramètres utilisateur.
À compter de Windows 8.1, la méthode recommandée pour utiliser les analyseurs de mots est par le biais de la classe WordSegmenter de l’API WinRT.
Ressources supplémentaires
- Pour plus d’informations sur la façon d’implémenter et d’utiliser des analyseurs de mots et des séparateurs de mots personnalisés pour d’autres langues et paramètres régionaux, consultez Extension des ressources linguistiques dans La recherche Windows.
- Si vous devez identifier la langue d’un morceau de texte, vous pouvez utiliser la détection automatique de la 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 de Recherche Windows.
Rubriques connexes