Quelqu’un pourrait-il me donner un peu plus d’informations sur la différence entre Culture
et UICulture
dans le cadre de .NET? Qu’est-ce qu’ils font et quand utiliser quoi?
Culture
affecte la présentation des données dépendantes de la culture (dates, devises, nombres, etc.). Voici quelques exemples:
var date = new DateTime(2000, 1, 2); var number = 12345.6789; Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); Console.WriteLine(date); // 02.01.2000 00:00:00 Console.WriteLine(number.ToSsortingng("C")); // 12.345,68 € Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA"); Console.WriteLine(date); // 2000-01-02 00:00:00 Console.WriteLine(number.ToSsortingng("C")); // 12 345,68 $ Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); Console.WriteLine(date); // 1/2/2000 12:00:00 AM Console.WriteLine(number.ToSsortingng("C")); // $12,345.68
La culture affecte également l’parsing syntaxique des entrées utilisateur de la même manière:
const ssortingng numberSsortingng = "12.345,68"; decimal money; Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); money = decimal.Parse(numberSsortingng); // OK! Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); money = decimal.Parse(numberSsortingng); // FormatException is thrown, TryParse would return false
Méfiez-vous des cas où l’parsing réussit, mais le résultat n’est pas celui auquel vous vous attendez.
const ssortingng numberSsortingng = "12.345"; decimal money; Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); money = decimal.Parse(numberSsortingng); // 12345 Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); money = decimal.Parse(numberSsortingng); // 12.345, where the . is a decimal point
UICulture
affecte le fichier de ressources (Resources. Lang .resx) sur lequel votre application sera chargée.
Ainsi, pour charger des ressources allemandes (du texte présumé localisé), définissez UICulture
sur la culture allemande et pour afficher la mise en forme allemande (sans aucun impact sur le chargement des ressources), vous UICulture
Culture
.
Culture and UICulture
Les valeurs sont des paires de chaînes de deux lettres, la première pour définir la langue et la seconde pour définir la région. Exemple:
en-GB
ici en
English
et GB
représente Great Briton
en-US
ici en
English
et US
United States
représentent United States
Utilisez les fonctions dépendantes de Culture
pour la culture comme la date et l’heure. et UICulture
est pour le chargement correct du fichier de ressources.
Juste une petite question à prendre en compte en plus de l’explication géniale de @Vache: Vous pouvez définir à la fois UICulture et Culture à (niveau de la page et niveau de l’application).
Pour les définir au niveau de l’application, ajoutez simplement la session de globalisation dans web.config
ex.
Et pour les définir au niveau de la page, ce qui est bien d’append sur une page spécifique (individuelle), définissez les atsortingbuts Culture et UICulture dans la directive @ page.
par exemple <%@ Page UICulture="es" Culture="es-MX" %>
La propriété UICulture peut changer pour chaque navigateur Web, tandis que la culture rest constante.
La valeur Culture peut uniquement être définie pour des cultures spécifiques, telles que en-US ou en-GB. Cela évite d’avoir à identifier le symbole monétaire correct à utiliser pour en, où en-US et en-GB ont des symboles monétaires différents. Les utilisateurs peuvent définir la culture et la culture de l’interface utilisateur dans leurs navigateurs.