Correspondance des langues

Applies to Windows and Windows Phone

La correspondance des langues est un composant essentiel des API Windows Runtime. La possibilité de déterminer la meilleure correspondance entre les ressources disponibles et les langues par défaut de l’utilisateur est nécessaire afin d’offrir à l’utilisateur une expérience optimale lors de l’utilisation d’applications multilingues. Cette rubrique décrit la logique utilisée pour déterminer les meilleures correspondances.

Introduction

Windows permet aux utilisateurs de décrire leurs préférences linguistiques de manière précise. En outre, il offre aux développeurs la souplesse nécessaire pour décrire la langue de leur contenu de manière à permettre une localisation et un déploiement efficaces, ainsi qu’une expérience utilisateur de qualité. Le développeur n’est pas tenu d’écrire du code particulier à cette fin, ni d’avoir des connaissances approfondies en matière de langues et de logique de correspondance de langues. Windows procure aux utilisateurs une expérience linguistique optimale et cohérente tout en limitant le travail de la part du développeur.

Windows inclut un mécanisme spécifique qui permet de comparer et d’évaluer une liste par ordre de priorité des correspondances de langues. Le mécanisme d’évaluation fait appel aux données incluses dans le registre des sous-balises BCP-47, ainsi qu’à d’autres sources de données. Il permet d’établir un classement des résultats comportant différentes qualités de correspondance et, quand plusieurs langues candidates sont disponibles, sélectionne celle qui présente le meilleur score de correspondance. Les développeurs peuvent ainsi baliser un contenu linguistique selon des termes génériques tout en définissant des contenus spécifiques le cas échéant. Par exemple, une application en langue anglaise peut contenir un grand nombre de chaînes appartenant aussi bien à la version britannique qu’à la version américaine. Définir ces chaînes à l’aide de la balise "en" (English) permet d’économiser de l’espace et de réduire les frais de localisation. Si une distinction doit être établie (par exemple, pour une chaîne contenant les termes "color" ou "colour"), les versions britannique et américaine peuvent utiliser des balises distinctes telles que "en-US" et "en-GB" respectivement.

Balises de langue

Les langues sont identifiées à l’aide des balises de langue BCP-47 normalisées et bien formées. Les composants des sous-balises sont définis dans le registre des sous-balises BCP-47. La structure normale pour une balise de langue BCP-47 se compose d’un ou de plusieurs des éléments de sous-balises suivants :

  • Sous-balise de langue (obligatoire).
  • Sous-balise de script (qu’il est possible de déduire à l’aide du paramètre par défaut dans le registre de sous-balises).
  • Sous-balise de région (facultatif).
  • Sous-balise de variante (facultatif).

D’autres éléments de sous-balise peuvent être présents, mais leur impact est limité sur la correspondance des langues.

L’utilisation du caractère générique ("*") ne permet pas de définir des plages de langues, par exemple, "en-*".

Mise en correspondance de deux langues

Quand Windows compare deux langues, cette opération s’effectue généralement dans le cadre d’un processus plus étendu. Cette opération peut survenir dans le contexte d’une évaluation de plusieurs langues, notamment lorsque Windows la liste des langues de l’application (voir Comment gérer la langue et la région). Windows procède en faisant correspondre plusieurs langues dans les préférences utilisateur avec les langues précisées dans le manifeste de l’application. Ce travail de comparaison peut également intervenir dans le cadre de l’évaluation d’une langue avec d’autres qualificateurs pour un élément donné. C’est par exemple le cas quand Windows résout une ressource de fichier particulière en fonction d’un contexte défini, en prenant en compte pour la sélection de la ressource le lieu de résidence de l’utilisateur ou l’échelle ou le rendu PPP actuel d’un appareil en guise de critères non linguistiques.

Lorsqu’une correspondance est établie entre deux balises de langue, la comparaison reçoit un score fondé sur le degré de proximité de la correspondance.

CorrespondanceScoreExemple
Correspondance exacteLa plus élevéeen-AU : en-AU
Correspondance de variante (langue, script, région, variante)en-AU-variant1 : en-AU-variant1-t-ja
Correspondance de région (langue, script, région, variante)en-AU : en-AU-variant1
Correspondance partielle (langue, script) :
Correspondance de macrorégionen-AU : en-053
Correspondance indépendante de la régionen-AU : en
Correspondance basée sur les affinités orthographiques (prise en charge limitée)en-AU : en-GB
Correspondance de région de prédilectionen-AU : en-US
Toute correspondance de régionen-AU : en-CA
Langue indéterminée (toute correspondance de langue)en-AU : und
Pas de correspondance (non-correspondance de script ou non-correspondance de balise de langue principale)La plus basseen-AU : fr-FR

 

  • Correspondance exacte

    Deux balises sont parfaitement identiques indépendamment du nombre d’éléments de sous-balises qu’elles contiennent. Une comparaison issue d’une correspondance de variante ou de région peut accéder à ce type de correspondance.

  • Correspondance de variante

    Deux balises correspondent au niveau des sous-balises de langue, de script, de région et de variante, mais des différences subsistent.

  • Correspondance de région

    Deux balises correspondent au niveau des sous-balises de langue, de script et de région, mais des différences subsistent.

  • Correspondances partielles

    Deux balises correspondent au niveau des sous-balises de langue et de script, mais des différences subsistent au niveau des sous-balises de région ou autre :

    • Correspondance de macrorégion

      Les deux balises correspondent au niveau des sous-balises de langue et de script ; les deux balises possèdent des sous-balises de région, dont l’une indique une macrorégion qui englobe l’autre région. Les sous-balises de macrorégion sont toujours exprimées dans un format numérique et sont dérivées des codes des pays et régions M.49 établis par la Division de statistique de l’Organisation des Nations Unies. Pour plus d’informations sur les relations entre les étendues, voir Composition des régions macrogéographiques (continentales), composantes géographiques des régions et composition de groupements sélectionnés économiques et d’autres groupements.

      Remarque  Les codes des Nations Unies pour les "groupements économiques" ou les "autres groupements" ne sont pas pris en charge dans BCP-47.

      Remarque  Une balise comportant la sous-balise de macrorégion "001" est considérée comme une balise indépendante de la région. Par exemple, "es-001" et "es" sont traitées comme des synonymes.

    • Correspondance indépendante de la région

      Deux balises correspondent au niveau des sous-balises de langue et de script, seule une balise contient une balise de région. Une correspondance parent est supérieure aux autres correspondances partielles.

    • Correspondance basée sur les affinités orthographiques

      Les deux balises correspondent au niveau des sous-balises de langue et de script et les sous-balises de région présentent des affinités orthographiques. Les affinités reposent sur des données gérées dans Windows qui définissent des régions affinées à langue spécifique, par exemple "en-IE" et "en-GB".

    • Correspondance de région de prédilection

      Les deux balises correspondent au niveau des sous-balises de langue et de script et l’une des sous-balises de région est la sous-balise de région par défaut de la langue. Par exemple, "fr-FR" est la région par défaut pour la sous-balise "fr". Cette correspondance repose sur des données gérées dans Windows qui définissent une région par défaut pour chaque langue dans laquelle Windows est localisé.

    • Correspondance sœur

      Les deux balises correspondent au niveau des sous-balises de langue et de script et toutes deux présentent des sous-balises de région, mais aucune autre relation entre elles n’est définie. Dans le cas de plusieurs correspondances sœur, la dernière sœur répertoriée est gagnante en l’absence d’une correspondance supérieure.

  • Langue indéterminée

    Une ressource peut se voir attribuer la balise "und" pour indiquer qu’elle correspond à n’importe quelle langue. Cette balise peut aussi s’utiliser avec une balise de script pour filtrer les correspondances en fonction d’un script. Par exemple, la balise "und-Latn" peut établir une correspondance avec une balise de langue qui utilise le script Latin. Pour plus d’informations, voir ci-dessous.

  • Non-correspondance de script

    Lorsque les deux balises correspondent uniquement au niveau de la balise de langue principale mais pas au niveau de la balise de script, la paire est traitée comme non correspondante et reçoit un score inférieur au niveau d’une correspondance valide.

  • Aucune correspondance

    Les sous-balises de langue principale non correspondantes reçoivent un score inférieur au niveau d’une correspondance valide.

Exemples

  1. Une langue d’utilisateur "zh-Hans-CN" (chinois simplifié (Chine)) correspondrait aux ressources suivantes dans l’ordre de priorité indiqué, sous réserve que ces ressources soient fournies par l’application. Un X indique l’absence de correspondance.

    Exemple : zh-Hans-CN

    1. Correspondance exacte ; 2. & 3. Correspondance de région ; 4. Correspondance parent ; 5. Correspondance sœur.

  2. Lorsqu’une sous-balise de langue contient une valeur de script de suppression définie dans le registre de sous-balises BCP-47, une correspondance se produit et adopte la valeur du code du script de suppression. Dans l’exemple suivant, la langue de l’utilisateur est "en-AU" (anglais (Australie)) :

    Exemple : en-AU

    1. Correspondance exacte ; 2. Correspondance de macrorégion ; 3. Correspondance indépendante de la région ; 4. Correspondance basée sur les affinités orthographiques ; 5. Correspondance de région par défaut ; 6. Correspondance sœur.

Mise en correspondance entre une langue et une liste de langues

Parfois, la correspondance a lieu dans le cadre d’un processus à plus grande échelle visant à faire correspondre une seule langue avec une liste de langues. Par exemple, une correspondance entre une seule ressource linguistique et la liste de langues d’une application peut être établie. Le résultat de la correspondance est pondéré en fonction de la position de la première langue correspondante dans la liste. Plus la langue est loin dans la liste, plus son score sera faible.

Lorsque la liste des langues contient deux ou plusieurs variantes régionales partageant les mêmes sous-balises de script et de langue, les comparaisons pour la première balise de langue ne reçoivent un score que pour les correspondances exactes, de variante et de région. Le score pour les correspondances partielles est retardé jusqu’à la dernière variante régionale. Ceci permet aux utilisateurs de mieux contrôler la correspondance de leur liste de langues. Ils peuvent également inclure une correspondance exacte pour un élément secondaire dans la liste, par rapport à une correspondance partielle pour le premier élément de la liste, si un troisième élément correspond à la langue et au script du premier. Par exemple :

  • Liste des langues (dans l’ordre) : "pt-PT" (portugais (Portugal)), "en-US" (anglais (États-Unis)), "pt-BR" (portugais (Brésil)).
  • Ressources : "en-US", "pt-BR".
  • Ressource dont le score est supérieur : "en-US".
  • Description : la comparaison commence par "pt-PT" sans trouver de correspondance exacte. En raison de la présence de "pt-BR" dans la liste des langues de l’utilisateur, une correspondance partielle est repoussée à la comparaison avec "pt-BR". La comparaison de langue suivante est "en-US", elle contient une correspondance exacte. La ressource gagnante est "en-US".

OU

  • Liste des langues (dans l’ordre) : "es-MX" (espagnol (Mexique)), "es-HO" (espagnol (Honduras)).
  • Ressources : "en-ES", "es-HO".
  • Ressource dont le score est supérieur : "es-HO".

Langue indéterminée ("und")

La balise de langue "und" peut s’utiliser pour spécifier une ressource qui correspond à n’importe quelle langue en l’absence d’une meilleure correspondance. Elle peut être considérée comme similaire à la plage de langues BCP-47"*" ou "*-<script>". Par exemple :

  • Listes des langues : "en-US", "zh-Hans-CN".
  • Ressources : "zh-Hans-CN", "und".
  • Ressource dont le score est supérieur : "und".
  • Description : la comparaison commence par "en-US" sans trouver de correspondance basée sur "en" (partielle ou meilleure). Comme une ressource contient la balise "und", l’algorithme de correspondance utilise cette dernière.

La balise "und" permet à plusieurs langues de partager une ressource unique et permet de traiter comme des exceptions les langues individuelles. Par exemple :

  • Liste des langues : "zh-Hans-CN", "en-US".
  • Ressources : "zh-Hans-CN", "und".
  • Ressource dont le score est supérieur : "zh-Hans-CN".
  • Description : la comparaison trouve une correspondance partielle pour le premier élément et ne recherche donc pas la ressource ayant une balise "und".

La balise "und" peut aussi s’utiliser avec une balise de script pour filtrer les ressources par script. Par exemple :

  • Liste des langues : "ru".
  • Ressources : "und-Latn", "und-Cyrl", "und-Arab".
  • Ressource dont le score est supérieur : "und-Cyrl".
  • Description : la comparaison ne trouve pas de correspondance pour "ru" (partielle ou meilleure), elle établit donc une correspondance avec la balise de langue "und". La valeur du script de suppression "Cyrl" associée à la balise de langue "ru" correspond à la ressource "und-Cyrl".

Affinités orthographiques régionales

Lorsque deux balises de langue contenant des sous-balises de région différentes sont mises en correspondance, des paires de régions particulières peuvent offrir une meilleure affinité entre elles que d’autres. Les seuls groupes affinés pris en charge le sont pour l’anglais ("en"). Les sous-balises de région "PH" (Philippines) et "LR" (Liberia) ont des affinités orthographiques avec la sous-balise de région "US". Toutes les autres sous-balises de région sont affinées avec la sous-balise de région "GB" (Royaume-Uni). Par conséquent, lorsque les deux ressources "en-US" et "en-GB" sont disponibles, une liste des langues "en-HK" (anglais (Hong Kong R.A.S)) reçoit un score plus élevé avec des ressources "en-GB" qu’avec des ressources "en-US".

Gestion des langues avec de nombreuses variantes régionales

Certaines langues sont parlées par des communautés de locuteurs étendues dans différentes régions, avec des variantes spécifiques d’une région à l’autre—c’est le cas, par exemple, de l’anglais, du français et de l’espagnol, qui font partie des langues les plus fréquemment prises en charge dans les applications multilingues. Les différences régionales peuvent porter sur l’orthographe (par exemple, "septante" au lieu de "soixante-dix"), ou sur le dialecte comme le vocabulaire (par exemple, "joute" au lieu de "partie").

Ces langues avec des variantes régionales significatives amènent le développeur à relever certains défis lors de la conception d’une application globale : "Combien de variantes régionales différentes faut-il prendre en charge ?" "Lesquelles ?" "Quelle procédure dois-je suivre pour gérer à moindre coût ces ressources de variantes régionales pour mon application ?" Il n’entre pas dans le cadre de cette rubrique de répondre à toutes ces questions. Toutefois, les mécanismes de correspondance de langues dans Windows fournissent des fonctionnalités qui aident les applications à gérer les variantes régionales.

Les applications prennent souvent en charge une seule variété d’une langue donnée. Supposons qu’une application possède des ressources pour une seule variété d’anglais et que ces ressources sont susceptibles d’être utilisées par les anglophones indépendamment de la région dans laquelle ils se trouvent. Dans ce cas, la balise "en" sans sous-balise de région reflète cette attente. Toutefois, certaines applications ont pu être conçues pour utiliser une balise comme "en-US" qui comprend une sous-balise de région. Dans ce cas, cela fonctionne également : l’application utilise une seule variété d’anglais et Windows gère de façon appropriée la mise en correspondance d’une ressource balisée en fonction d’une variante régionale avec une préférence de langue de l’utilisateur pour une autre variante régionale.

Toutefois, si deux variétés régionales, ou plus, sont susceptibles d’être prises en charge, une différence comme celle entre "en" et "en-US" peut avoir un impact significatif sur l’expérience utilisateur ; il s’avère donc important de déterminer les sous-balises de région à utiliser.

Supposons que vous souhaitiez proposer des localisations distinctes en français pour le Canada et pour l’Europe. Pour les francophones situés au Canada, "fr-CA" peut être utilisé. Pour les francophones situés en Europe, la localisation utilise Français (France), et "fr-FR" peut faire l’affaire. Toutefois, qu’en est-il d’un utilisateur situé en Belgique dont la préférence de langue est "fr-BE" ? Que lui sera-t-il proposé ? La région "BE" étant différente des régions "FR" et "CA", il semble qu’une correspondance "any region" soit appropriée dans les deux cas. Toutefois, la France se trouvant être la région préférée pour le français, "fr-FR" sera considéré comme la meilleure correspondance dans ce cas.

Supposons que vous ayez initialement localisé votre application pour une seule variété de français, en utilisant des chaînes Français (France) mais en les qualifiant de façon générique sous la forme "fr", et que vous souhaitiez ajouter la prise en charge du français du Canada. Il est probable que seules certaines ressources aient besoin d’être retraduites pour le français du Canada. Vous pouvez continuer à utiliser toutes les ressources d’origine en les qualifiant sous la forme "fr", et ajouter simplement l’ensemble réduit de nouvelles ressources en utilisant "fr-CA". Si la préférence de langue de l’utilisateur est "fr-CA", la ressource "fr-CA" présente un score de correspondance plus élevé que la ressource "fr". Toutefois, si la préférence de langue de l’utilisateur est toute autre variété de français, la ressource indépendante de la région "fr" constitue une meilleure correspondance que la ressource "fr-CA".

Autre exemple : supposons que vous souhaitiez proposer des localisations distinctes en espagnol pour les hispanophones d’Espagne et pour les hispanophones d’Amérique latine, et que les traductions pour la version latino-américaine aient été assurées par un fournisseur situé au Mexique. Devez-vous utiliser "es-ES" (Espagne) et "es-MX" (Mexique) pour les deux ensembles de ressources ? Une telle approche pourrait s’avérer problématique du point de vue des hispanophones d’autres régions latino-américaines comme l’Argentine ou la Colombie, dans la mesure où ils obtiendraient les ressources "es-ES". Dans ce cas, une meilleure solution s’offre à vous : vous pouvez utiliser une sous-balise de macrorégion, "es-419", afin que les ressources soient utilisées pour les hispanophones de n’importe quelle partie d’Amérique latine ou des Caraïbes.

Les balises de langue indépendantes de la région et les sous-balises de macrorégion peuvent être très efficaces pour la prise en charge de plusieurs variétés régionales. Pour réduire au minimum le nombre de ressources distinctes nécessaires, vous pouvez qualifier une ressource donnée de manière à refléter sa couverture la plus large possible, puis, le cas échéant, la compléter d’une variante plus spécifique. Une ressource à laquelle est associé un qualificateur de langue indépendant de la région est utilisée pour les utilisateurs de n’importe quelle variété régionale sauf si une autre ressource à laquelle est associé un qualificateur plus spécifique en termes de région s’applique à ces utilisateurs. Par exemple, une ressource "en" convient pour un utilisateur dont la préférence de langue est l’anglais d’Australie, mais une ressource "en-053" (anglais utilisé en Australie ou Nouvelle-Zélande) constitue une meilleure correspondance pour cet utilisateur ; toutefois, une ressource "en-AU" représente dans ce cas la meilleure correspondance possible.

L’anglais appelle une considération particulière. Si une application s’enrichit de la localisation en deux variétés d’anglais, il est probable qu’il s’agisse de l’anglais des États-Unis et de l’anglais du Royaume-Uni ou "international". Comme indiqué plus haut, certaines régions situées hors des États-Unis suivent les règles d’orthographe étatsuniennes, facteur que prend en considération la correspondance de langues Windows. Dans ce scénario, nous vous déconseillons d’utiliser la balise indépendante de la région "en" pour l’une des variantes ; à la place, utilisez "en-GB" et "en-US". (Toutefois, si une ressource donnée ne nécessite pas de variantes distinctes, "en" peut être utilisé.) Si "en-GB" ou "en-US" est remplacé par "en", cela interférera avec les affinités orthographiques régionales fournies par Windows. Si une troisième localisation en anglais est ajoutée, utilisez une sous-balise spécifique ou de macrorégion pour les variantes supplémentaires selon les besoins (par exemple, "en-CA", "en-AU" ou "en-053"), mais continuez d’utiliser "en-GB" et "en-US".

Rubriques associées

Comment gérer la langue et la région
Balises de langue BCP-47

 

 

Afficher:
© 2014 Microsoft