Подтвердить что ты не робот

Как установить информацию о культуре по умолчанию для всего приложения С#

Я хочу установить информацию о культуре по умолчанию для этого класса или для всего приложения.

Например, в Турции 3,2 = на английском 3.2

поэтому приложение использует мой локальный, но я хочу, чтобы он использовал по умолчанию

System.Globalization.CultureInfo.InvariantCulture

Как я могу установить его по умолчанию для этого конкретного класса или для всего приложения

4b9b3361

Ответ 1

Не для всего приложения или определенного класса.

CurrentUICulture и CurrentCulture настраиваются на поток, как обсуждалось здесь Есть ли способ настройки культуры для целого приложения? Все текущие потоки и новые потоки?. Вы не можете изменить InvariantCulture вообще.

Пример кода для изменения культур для текущего потока:

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

Для класса вы можете установить/восстановить культуру внутри критических методов, но было бы безопасно использовать соответствующие переопределения для большинства связанных с форматированием методов, которые принимают культуру как один из аргументов:

(3.3).ToString(new CultureInfo("fr-FR"))

Ответ 2

С 4.0 вам нужно будет управлять этим самостоятельно, установив культуру для каждого потока, как описывает Алексей. Но с 4.5, вы можете определить культуру для appdomain, и это предпочтительный способ справиться с этим. Соответствующие apis CultureInfo.DefaultThreadCurrentCulture и CultureInfo.DefaultThreadCurrentUICulture.

Ответ 3

Если вы используете файл языковых ресурсов для установки меток в вашем приложении, вам нужно установить его значение:

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