Nouveautés en matière de globalisation et de localisation

Cette rubrique décrit les modifications apportées aux classes et énumérations dans l'espace de noms System.Globalization dans .NET Framework version 4. Cette rubrique contient les sections suivantes :

  • Nouvelles cultures neutres

  • Nouvelles cultures spécifiques

  • Valeurs de propriétés de globalisation mises à jour

  • Obtention des informations de globalisation actuelles

  • Gestion de chaînes

  • Utilisation réduite d'identificateurs de paramètres régionaux

  • Propriétés des cultures neutres

  • Modifications apportées aux cultures personnalisées

  • Fonctionnalités qui n'ont pas changé

Nouvelles cultures neutres

Le .NET Framework 4 prend en charge au minimum de 354 cultures, par rapport au minimum de 203 cultures du .NET Framework 3.5. La plupart de ces nouvelles cultures sont des cultures neutres ajoutées pour compléter la chaîne parent de la culture neutre racine. Par exemple, trois variables neutres Inuktitut ont été ajoutées aux cultures existantes Inuktitut (syllabaire, Canada) et Inuktitut (latin, Canada), comme indiqué dans le tableau suivant.

Nom complet de la culture

Nom de la culture

LCID

Inuktitut

Iu

0x005d

Inuktitut (syllabaire)

iu-Cans

0x785D

Inuktitut (syllabaire, Canada)

iu-Cans-CA

0x045D

Inuktitut (latin)

iu-Latn

0x7C5D

Inuktitut (latin, Canada)

iu-Latn-CA

0x085D

Nouvelles cultures spécifiques

Le .NET Framework 4 introduit également de nouvelles cultures spécifiques, telles que les nouvelles cultures serbes. Les anciennes cultures serbes ont été renommées Serbe (cyrillique, Serbie et Monténégro (anciennement)) et Serbe (latin, Serbie et Monténégro (anciennement)) pour éviter toute collision de nom complet. Ces cultures restent dans le .NET Framework avec leurs informations existantes, notamment leurs noms et identificateurs de culture.

Nom complet de la culture

Nom de la culture

LCID

Serbe - Serbie (latin)

sr-Latn-RS

0x241A

Serbe - Serbie (cyrillique)

sr-Cyrl-RS

0x281A

Serbe - Monténégro (latin)

sr-Latn-ME

0x2C1A

Serbe - Monténégro (cyrillique)

sr-Cyrl-ME

0x301A

Les noms complets des cultures chinoises ont changé pour suivre la convention d'affectation des noms LanguageName ([Script,] Country/RegionName). Dans le .NET Framework 4, le mot « Héritage » est associé aux noms complets zh-CHS et zh-CHT afin de les différencier de zh-Hans et zh-Hant. zh, qui a récemment été introduit dans Windows, possède « Chinois » comme nom complet.

Nom complet

Nom de la culture

LCID

Chinois

zh

0x7804

Chinois (Simplifié) - Héritage

zh-CHS

0x0004

Chinois (Traditionnel) - Héritage

zh-CHT

0x7C04

Chinois (Simplifié)

zh-Hans

0x0004

Chinois (Traditionnel)

zh-Hant

0x7C04

Chinois (Simplifié, RPC)

zh-CN

0x0804

Chinois (Traditionnel, Hong Kong R.A.S.)

zh-HK

0x0C04

Chinois (Traditionnel, Macao R.A.S.)

zh-MO

0x1404

Chinois (Simplifié, Singapour)

zh-SG

0x1004

Chinois (Traditionnel, Taïwan)

zh-TW

0x0404

La chaîne parent des cultures chinoises inclut désormais la culture chinoise racine. Les exemples suivants montrent la chaîne parent complète de deux des cultures chinoises spécifiques :

  • zh-CN → zh-CHS → zh-Hans → zh → Invariant

  • zh-TW → zh-CHT → zh-Hant → zh → Invariant

Les noms complets Tibétain (RPC), Français (Monaco), Tamazight (latin, Algérie) et Espagnol (international) ont également été mis à jour. Lorsque le nom complet change, les noms anglais et natifs reflètent généralement cette modification. Toutefois, les noms ISO et abrégés du script, de la langue et du pays peuvent également être modifiés.

Valeurs de propriétés de globalisation mises à jour

Le .NET Framework 4 met à jour également les valeurs de propriétés de globalisation telles que la devise, les formats de date et d'heure, les noms de jour et de mois, les indicateurs AM PM et certaines propriétés de mise en forme de nombres. Le tableau suivant fournit des exemples de modifications de nom de devise dans la classe System.Globalization.RegionInfo.

Nom de la culture

Nom de devise de la version 3.5

Nom de devise de la version 4

mt-MT

Lire maltaise

Euro

sk-SK

Koruna (couronne slovaque)

Euro

sl-SI

Tolar slovène

Euro

tr-TR

Nouvelle lire turque

Lire turque

Le tableau suivant fournit un exemple de modifications au modèle de date courte dans la classe System.Globalization.DateTimeFormatInfo.

Nom de la culture

Modèle de date courte de la version 3.5

Modèle de date courte de la version 4

ar-SA

jj/MM/aa

jj/MM/aaaa

prs-AF

jj/MM/aa

aaaa/M/j

ps-AF

jj/MM/aa

aaaa/M/j

pt-BR

j/M/aaaa

jj/MM/aaaa

Certaines données de calendrier ont changé, telles que les noms de jours et de mois pour de nombreux paramètres régionaux (par exemple, les propriétés des paramètres régionaux arabes DateTimeFormatInfo.ShortestDayNames). Certains des paramètres régionaux de droite à gauche (tels que prs-AF, ps-AF et ug-CN) avaient des valeurs incorrectes pour la propriété TextInfo.IsRightToLeft, valeurs qui ont été résolues dans cette version.

Obtention des informations de globalisation actuelles

L'une des principales fonctionnalités de globalisation du .NET Framework 4 est la capacité de fournir les informations les plus récentes disponibles. Les informations de globalisation les plus anciennes que cette version fournira sont les données disponible au moment de la livraison, et uniquement lors d'une exécution sous Windows avant Windows 7. Lors de l'exécution sous Windows 7 et versions ultérieures, les informations de globalisation seront extraites directement du système d'exploitation, ce qui signifie que les clients obtiendront les informations de globalisation actuelles lors de la mise à niveau vers le nouveau Windows. Les clients qui exécutent Windows 7 et versions ultérieures bénéficieront d'une expérience de globalisation unifiée à la fois pour les applications natives (Win32) et managées (.NET).

En raison de l'évolution constante du monde, les informations de globalisation sont susceptibles d'être modifiées à tout moment. Les développeurs ne doivent pas s'attendre à ce que les valeurs des propriétés de globalisation persistent entre chaque version ou même pour une même version du .NET Framework. Il ne s'agit pas d'un comportement entièrement nouveau pour les utilisateurs du .NET Framework. Les propriétés des cultures propres à Windows qui étaient prises en charge depuis .NET Framework 2 pouvaient avoir des valeurs différentes lors du fonctionnement sur les différentes versions de Windows

Nom de la culture est la propriété la plus stable des informations de culture et devrait rester stable dans les versions ultérieures. D'autres propriétés telles que le nom complet de la culture peuvent changer à tout moment. Par conséquent, les applications ne doivent pas dépendre de l'orthographe du nom complet ou de toutes autres données textuelles ou numériques.

Le mécanisme de recherche des informations de globalisation a changé dans le .NET Framework 4. Si votre application s'exécute sur Windows 7 ou versions ultérieures, elle extrait directement les informations de globalisation du système d'exploitation. Si votre application s'exécute sur une version antérieure de Windows (telle que Windows Vista, Windows XP, Windows Server 2003 ou Windows Server 2008), elle extrait les informations de globalisation d'un magasin de données interne pour vérifier que les données sont à jour.

Dans le nouveau modèle de recherche des informations de globalisation, les définitions de certains des CultureTypes changeront, car les informations de globalisation sont extraites d'emplacements différents selon le système d'exploitation hôte. Les membres CultureTypes WindowsOnlyCultures et FrameworkCultures sont maintenant obsolètes. Si vous essayez d'utiliser ces membres, le compilateur génère un avertissement même si la compilation réussit. L'utilisation de WindowsOnlyCultures ne retourne pas de culture et FrameworkCultures retourne toutes les cultures. D'autres membres CultureTypes ont les mêmes définitions qu'avant.

Gestion de chaînes

De nombreuses classes .NET Framework, notamment CharUnicodeInfo, CompareInfo, StringInfo, TextInfoet TextElementEnumerator dans l'espace de noms System.Globalization, implémentent les règles de tri, casse et normalisation et extraient les informations de caractères Unicode. Dans le .NET Framework 4, ces fonctionnalités sont synchronisées avec Windows 7, ce qui fournit des fonctions de tri et de casse linguistiques plus riches pour des langues comme le chinois, le japonais et le coréen (CJC) et corrige de nombreux problèmes signalés par les clients. La modification la plus importante est la conformité avec la norme Unicode 5.1, qui ajoute la prise en charge d'environ 1400 caractères, dont les nouveaux symboles, flèches, signes diacritiques, ponctuation, symboles mathématiques, traits CJC, idéogrammes et caractères numériques Malayalam et Telugu. En outre, Unicode 5.1 améliore le tri et la casse des caractères des scripts existants suivants : Latin, Myanmar, Arabe, Grec, Mongol, Cyrillique, Gurmukhi, Oriya, Tamoul, Telugu et Malayalam. Elle ajoute aussi la prise en charge des nouveaux scripts suivants : Sundanais, Lepcha, Ol Tchiki, Vaï, Saurachtra, Kayah Li, Redjang et Cham.

De nombreux scénarios, tels que l'indexation de base de données, exigent un comportement cohérent de la gestion des chaînes sur les différentes versions de Windows. Le .NET Framework 4 garantit un comportement cohérent des opérations de gestion des chaînes, indépendamment de la version de Windows hôte.

Les applications qui créent des index ou stockent des clés de tri peuvent dépendre du comportement de tri et de casse dans .NET Framework 2.0 ou 3.5. Pour prendre en charge ces applications, .NET Framework 4 permet aux développeurs d'appliquer le comportement de tri et de casse en incluant l'élément <CompatSortNLSVersion> dans le fichier de configuration de l'application. Les règles de tri et de casse héritées peuvent également être appliquées par domaine d'application en appelant la méthode AppDomainSetup.SetCompatibilitySwitches avec le commutateur « NetFx40_LegacySecurityPolicy » lors de la configuration du domaine d'application. Notez que la restauration réussie du comportement hérité dépend de la présence de la bibliothèque de liaisons dynamiques sort00001000.dll sur le système local.

Le .NET Framework 4 fournit plusieurs options de tri pour certaines cultures. Par exemple, la culture allemande (Allemagne) utilise l'ordre de tri de dictionnaire par défaut, mais prend en charge le tri d'annuaire téléphonique comme un ordre de tri secondaire. Autre exemple : la culture Chinois (Simplifié, RPC) prend en charge le tri par prononciation comme comportement par défaut et le tri par nombre de traits comme ordre de tri secondaire. Pour spécifier l'ordre de tri secondaire, vous pouvez créer un objet CultureInfo à l'aide du LCID ou du nom de cet ordre de tri. Trois ordres de tri secondaires ont été supprimés du .NET Framework 4, parce qu'ils étaient déconseillés dans Windows. La tentative de construire un objet CultureInfo avec le LCID de ces ordres de tri secondaires déconseillés lève une exception CultureNotFoundException. Les ordres de tri secondaires pris en charge par le .NET Framework sont répertoriés dans le tableau suivant.

Nom de la culture

Langue-pays/région

Nom et LCID de l'ordre de tri par défaut

Nom et LCID de l'ordre de tri secondaire

zh-HK

Chinois - Hong Kong, Région administrative spéciale

Valeur par défaut : 0x00000c04

zh-HK_stroke : 0x00020c04

ja-JP

Japonais – Japon

Par défaut : 0x00000411

ja-JP_unicod : 0x00010411

ko-KR

Coréen - Corée

Par défaut : 0x00000412

ko-KR_unicod : 0x00010412

Utilisation réduite d'identificateurs de paramètres régionaux

Dans le .NET Framework 4, les méthodes ToString et ToString utilisent des noms de cultures sans LCID pour toutes les cultures. Ainsi, le .NET Framework 4 retournera « en-US CompareInfo - en-US » au lieu de « en-US CompareInfo – 1033 » qui était la valeur de retour dans les versions précédentes du .NET Framework.

Propriétés des cultures neutres

Les versions précédentes du .NET Framework levaient une exception si les applications essayaient d'accéder aux propriétés de culture neutres telles que DateTimeFormatInfo.FirstDayOfWeek. Dans le .NET Framework 4, les propriétés de culture neutres retournent des valeurs qui reflètent la culture spécifique dominante de cette culture neutre. Par exemple, les paramètres régionaux neutres français récupèrent les valeurs de la plupart de leurs propriétés à partir de Français (France). La propriété FirstDayOfWeek retourne DayOfWeek.Monday, qui reflète la valeur de cette propriété dans la culture Français (France).

Toutefois, certaines propriétés (tel que nom de langue) ont des valeurs qui diffèrent de la culture dominante. Par exemple, le nom de langue de la culture neutre Norvégien est Norvégien, tandis que le nom de langue de la culture spécifique Norvégien, Bokmål (Norvège) est Norvégien (Bokmål).

Dans le .NET Framework 4, certaines propriétés et méthodes de cultures neutres retournent des valeurs qui reflètent des cultures spécifiques au lieu des cultures neutres. La propriété KeyboardLayoutId et la méthode GetConsoleFallbackUICulture de la classe CultureInfo sont deux exemples de cette modification.

  • Modifications de valeur KeyboardLayoutId :

    Nom de la culture

    Version 3.5

    Version 4

    ar

    1

    1025

    es

    10

    1034

    fr

    12

    1036

    zh-CHS

    4

    2052

  • Modifications de valeur GetConsoleFallbackUICulture :

    Nom de la culture

    Version 3.5

    Version 4

    af

    af

    af-ZA

    de

    de

    de-DE

    en

    en

    en-US

    ja

    ja

    ja-JP

Modifications apportées aux cultures personnalisées

Les cultures de remplacement neutres créées par le .NET Framework version 2.0 ne se chargent pas dans le .NET Framework 4.

Lorsque vous inscrivez une culture de remplacement à l'aide de la classe CultureAndRegionInfoBuilder, les informations substituées de la culture personnalisée ne sont pas immédiatement disponibles pour le processus qui a créé la culture personnalisée. Toutefois, les processus lancés après l'inscription de cette culture personnalisée sont en mesure de lire les informations substituées.

Fonctionnalités qui n'ont pas changé

Les informations de texte, l'encodage, la fonctionnalité de calendrier et les fonctionnalités IDN (Internationalized Domain Name) n'ont pas changé dans le .NET Framework 4. Ces zones continuent de fonctionner comme avant.

Historique des modifications

Date

Historique

Motif

Mai 2010

Notez que la restauration du tri hérité et de la comparaison dépend de sort00001000.dll.

Résolution des bogues de contenu.