web-dev-qa-db-fra.com

comment définir les informations de culture par défaut pour toute l'application c #

Je veux définir les informations de culture par défaut pour cette classe ou pour toute l'application.

Par exemple en Turquie 3,2 = en anglais 3,2

donc l'application utilise mon local, mais je veux l'utiliser par défaut

System.Globalization.CultureInfo.InvariantCulture

Comment puis-je le définir comme valeur par défaut pour cette classe spécifique ou pour toute l'application

48
MonsterMMORPG

Pas pour une application entière ou une classe particulière.

CurrentUICulture et CurrentCulture sont paramétrables par thread, comme indiqué ci-dessous: Existe-t-il un moyen de définir la culture pour une application complète? Tous les threads actuels et les nouveaux threads? . Vous ne pouvez pas changer InvariantCulture du tout.

Exemple de code pour changer de culture pour le fil de discussion actuel:

CultureInfo ci = new CultureInfo(theCultureString);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;

Pour la classe, vous pouvez définir/restaurer la culture à l'aide de méthodes critiques, mais il serait sans danger d'utiliser les remplacements appropriés pour la plupart des méthodes de mise en forme prenant la culture comme argument:

(3.3).ToString(new CultureInfo("fr-FR"))
46
Alexei Levenkov

Avec la version 4.0, vous devrez gérer cela vous-même en définissant la culture de chaque thread comme décrit par Alexei. Mais avec la version 4.5, vous pouvez définir une culture pour l’appdomain et c’est le moyen privilégié pour gérer cela. Les apis pertinents sont CultureInfo.DefaultThreadCurrentCulture et CultureInfo.DefaultThreadCurrentUICulture .

49
Eric MSFT

Si vous utilisez un fichier de ressources linguistiques pour définir les étiquettes dans votre application, vous devez définir sa valeur:

CultureInfo customCulture = new CultureInfo("en-US");
Languages.Culture = customCulture;
0
Renzo Ciot