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. |