В чем разница между CurrentCulture и CurrentUICulture свойства CultureInfo in.NET?
в .NET есть CultureInfo
класс System.Globalization
пространство имен. Он имеет два похожих свойства, оба возвращающие значения CultureInfo
тип: CurrentCulture
и CurrentUICulture
.
в чем разница между ними?
какой я должен использовать, когда и почему?
5 ответов:
CurrentCulture
- Это представление .NET языкового стандарта пользователя системы по умолчанию. Это управляет форматированием номера и даты по умолчанию и тому подобное.
CurrentUICulture
относится к языку пользовательского интерфейса по умолчанию, параметр, введенный в Windows 2000. Это в первую очередь касается части локализации/перевода пользовательского интерфейса вашего приложения.любые региональные параметры, которые система настроила, будут "текущими" значениями в вашем приложении .NET.
часто они они оба одинаковы. Но в моей системе они были бы другими: я предпочитаю свои числа и даты в немецком формате, поэтому
CurrentCulture
будет немецкий, но я также предпочитаю все мои приложения на английском языке, так чтоCurrentUICulture
было бы по-английски.есть хорошая статья на тему: сортировка все это: почему у нас есть и CurrentCulture и CurrentUICulture
Это простой трюк, который я использую, чтобы вспомнить, какой из них использовать:
(date, currency, double).tostring = CurrentCulture resource.fr-CA.resx file = currentUICulture
хороший способ изменить ситуацию в дополнение к хорошим объяснениям, сделанным другими пользователями, и важным аспектом в разработке веб-приложений является следующее:
CurrentCulture
представляет настройку веб-сервера. Например, если ваш ASP.NET веб-приложение размещается в Германии, значениеCutlureInfo.CurrentCulture
скорее всегоde-DE
. Таким образом, по умолчанию.ToString()
форматированиеIFormattable
типы будут использовать немецкие форматирования по умолчанию или те, которые были настроены на серверной ОС по умолчанию.
CurrentUICulture
может быть захвачен из пользовательского агента и может представлять культуру пользовательского интерфейса клиента, подключающегося к веб-сайту. Например, если вы загружаете этот веб-сайт из России, ваши локальные настройки настроены на использование русского языка, и ваш пользовательский агент отправляет ваши настройки локали на сервер (Opera и IE делают это автоматически, не уверен для Chrome и FireFox),CurrenUICulture
представляютru-RU
. Эта воля вызовите любые ресурсы, такие как локализованные строки, полученные с помощью ResourceManager или выражений локализации в ASP.NET файлы aspx / ascx должны быть на русском языке (при наличии переводов).
стоит отметить, что
CurrentUICulture
поддерживает локали, не относящиеся к конкретной стране, такие как " en " (нейтральные культуры), тогда какCurrentCulture
поддерживает только специфические для страны локали, такие как "en-GB". УстановкаCurrentCulture
в нейтральную культуру будет бросатьArgumentException
.Я предполагаю, что это связано с тем, что такие форматы, как даты и валюта, более тесно связаны с самой страной, но отображаемый язык часто взаимозаменяем между странами.
отличия:
CurrentCulture
для форматирования дат и валют, в то время какCurrentUICulture
идет с язык/перевод. Он будет использоватьсяResourceManager
поиск ресурсов по культуре.- пространство имен
CurrentCulture
классSystem.Globalization
покаCurrentUICulture
происходит отSystem.Threading
.CurrentCulture
сохраняется по-разному запросы в сессии, в то время какCurrentUICulture
должен быть установлен с каждого запроса.подобие:
они
System.Globalization.CultureInfo
экземпляров.