Где устанавливается культура по умолчанию a.NET применение

Я пишу приложение WPF и испытываю некоторые трудности с культурами.

Я хотел бы знать, где приложения .NET выбирают значение для CurrentThread.CurrentCulture, когда значение явно не задано. Это не из информации о культуре Windows, потому что я изменил это с en-US на en-GB, не заметив никаких изменений в приложении при запуске.

пожалуйста, помогите!

Марк

2 ответов


С документацию:

посмотреть CultureInfo.CurrentCulture свойство, чтобы узнать, как определяется культура потока по умолчанию и как пользователи устанавливают информацию о культуре для своих компьютеров.

один трудоемкий щелчок позже...

как определяется культура нити

при запуске потока его культура изначально определяется следующим образом:

  • путем извлечения культуры, указанной в DefaultThreadCurrentCulture свойство в домене приложения, в котором выполняется поток, если значение свойства не null.

  • вызывая Windows .

обратите внимание, что если вы задаете определенную культуру, отличную от установленной системой культуры или предпочтительной культуры пользователя, и ваше приложение запускает несколько потоков, текущий культура этих потоков будет культурой, возвращаемой GetUserDefaultLocaleName функция, если вы не назначаете культуру DefaultThreadCurrentCulture собственность в домене приложения, в котором выполняется поток.

дополнительные сведения о том, как определяется культура потока, см. В разделе "Культура и потоки" в CultureInfo темы.

я не бюджет для другого щелчка, но нажал в любом случае.

Культура и Нити

при запуске нового потока приложения его текущая культура и текущая культура пользовательского интерфейса определяются текущей культурой системы, а не текущей культурой потока. Следующий пример иллюстрирует разницу. Он устанавливает текущую культуру и текущую культуру пользовательского интерфейса потока приложения для французской (Франция) культуры (fr-FR). Если текущая культура уже fr-FR, пример устанавливает ее в английскую (Соединенные Штаты) культуру (en-US). Он отображает три случайных числа как значения валюты, а затем создает новый поток, который, в свою очередь, отображает еще три случайных числа как значения валюты. Но, как показывает вывод из примера, значения валюты, отображаемые новым потоком, не отражают соглашения о форматировании французской (France) культуры, в отличие от вывода из основного потока приложения.

обратите внимание, что он говорит когда новый поток приложений начинается. Итак, учитывая, что ты скажи:

это не из информации о культуре Windows, потому что я изменил это с en-US на en-GB, не заметив никаких изменений в приложении при запуске.

возможно, вы захотите просмотреть ответ.


когда конкретный язык не указан или когда вместо имени языка используется пустая строка,InvariantCulture использовать.

он связан с английским языком, но не с какой-либо страной/регионом.