Dans .NET, il y a la CultureInfo
classe dans l' System.Globalization
espace de noms. Il a deux propriétés similaires qui renvoient toutes deux des valeurs de CultureInfo
type: CurrentCulture
et CurrentUICulture
.
Quelle est la différence entre eux?
Lequel devrais-je utiliser quand et pourquoi?
.net
globalization
cultureinfo
splattne
la source
la source
CurrentUICulture
sera toujours en-US sur une machine de langue anglaise, quel que soit leCurrentCulture
, qui peut être défini pour localiser les paramètres régionaux.CurrentCulture
"en-GB", maisCurrentUICulture
"en-US".Réponses:
CurrentCulture
est la représentation .NET des paramètres régionaux utilisateur par défaut du système. Cela contrôle la mise en forme par défaut des nombres et des dates, etc.CurrentUICulture
fait référence à la langue de l'interface utilisateur par défaut, un paramètre introduit dans Windows 2000. Il s'agit principalement de la partie localisation / traduction de l'interface utilisateur de votre application.Quelles que soient les options régionales pour lesquelles le système est configuré, ce sont les valeurs "actuelles" de votre application .NET.
Souvent, ils sont tous les deux identiques. Mais sur mon système, ils seraient différents: je préfère mes numéros et dates au format allemand, donc ce
CurrentCulture
serait l'allemand, mais je préfère aussi toutes mes applications en anglais, donc ceCurrentUICulture
serait l'anglais.Il y a un bel article sur le sujet: Tout trier: Pourquoi nous avons à la fois CurrentCulture et CurrentUICulture
la source
D
) peut contenir une certaine "langue":en-US
renvoie "vendredi 6 avril 2018", tandis queru-RU
renvoie "6 апреля 2018 г.".C'est une astuce simple que j'utilise pour me rappeler laquelle utiliser:
la source
Un bon moyen de faire la différence en plus des belles explications fournies par les autres utilisateurs, et un aspect important dans le développement d'applications Web est le suivant:
CurrentCulture
représente la configuration du serveur Web. Par exemple, si votre application Web ASP.NET est hébergée en Allemagne, la valeur deCutlureInfo.CurrentCulture
serait très probablementde-DE
. Ainsi, la.ToString()
mise en forme par défaut pour lesIFormattable
types utiliserait les mises en forme allemandes par défaut ou celles qui ont été configurées sur le système d'exploitation du serveur comme valeurs par défaut.CurrentUICulture
peut être capturé à partir de l'agent utilisateur et peut représenter la culture de l'interface utilisateur du client se connectant au site Web. Par exemple, si vous chargez ce site Web de la Russie, vos paramètres locaux sont configurés pour utiliser la langue russe, et votre agent utilisateur envoie vos paramètres régionaux sur le serveur (Opera et IE font automatiquement, pas sûr pour Chrome et FireFox), leCurrenUICulture
serait représenterru-RU
. Cela entraînera que toutes les ressources comme les chaînes localisées récupérées via ResourceManager ou les expressions de localisation dans les fichiers ASP.NET aspx / ascx soient en russe (si des traductions sont disponibles).la source
Différences:
CurrentCulture
est pour le formatage des dates et de la monnaie tout enCurrentUICulture
allant avec la langue / traductions. Il sera utilisé parResourceManager
pour rechercher des ressources par culture.CurrentCulture
classe est enSystem.Globalization
toutCurrentUICulture
vient deSystem.Threading
.CurrentCulture
est conservé sur différentes demandes de la session, maisCurrentUICulture
doit être défini à chaque demande.Ressemblance:
Ce sont tous les deux des
System.Globalization.CultureInfo
instances.la source
Il convient de noter que le
CurrentUICulture
prend en charge les paramètres régionaux non spécifiques à un pays tels que «en» (cultures neutres), alors qu'il neCurrentCulture
prend en charge que les paramètres régionaux spécifiques à un pays tels que «en-GB». MettreCurrentCulture
à une culture neutre jettera unArgumentException
.Je suppose que cela est dû au fait que les formats tels que les dates et les devises sont plus étroitement liés au pays lui-même, mais la langue affichée est souvent interchangeable entre les pays.
la source