Прочитать на английском

Поделиться через


Thread.CurrentUICulture Свойство

Определение

Получает или задает текущие язык и региональные параметры, используемые диспетчером ресурсов для поиска ресурсов, связанных с языком и региональными параметрами, во время выполнения.

public System.Globalization.CultureInfo CurrentUICulture { get; set; }

Значение свойства

Объект, представляющий текущие языковые стандарты.

Исключения

Для свойства задано значение null.

Свойству присвоено имя языка и региональных параметров, которое не может использоваться для нахождения файла ресурсов. Имена файлов ресурсов могут содержать только буквы, цифры, дефисы или символы подчеркивания.

Только .NET Core и .NET 5+. Чтение или запись языка и региональных параметров потока из другого потока не поддерживается.

Примеры

В следующем примере определяется, является ли язык языка и региональных параметров пользовательского интерфейса текущего потока французским. Если это не так, он задает язык и региональные параметры пользовательского интерфейса текущего потока на английском языке (США).

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      // Change the current culture if the language is not French.
      CultureInfo current = Thread.CurrentThread.CurrentUICulture;
      if (current.TwoLetterISOLanguageName != "fr") {
         CultureInfo newCulture = CultureInfo.CreateSpecificCulture("en-US");
         Thread.CurrentThread.CurrentUICulture = newCulture;
         // Make current UI culture consistent with current culture.
         Thread.CurrentThread.CurrentCulture = newCulture;
      }
      Console.WriteLine("The current UI culture is {0} [{1}]",
                        Thread.CurrentThread.CurrentUICulture.NativeName,
                        Thread.CurrentThread.CurrentUICulture.Name);
      Console.WriteLine("The current culture is {0} [{1}]",
                        Thread.CurrentThread.CurrentUICulture.NativeName,
                        Thread.CurrentThread.CurrentUICulture.Name);
   }
}
// The example displays the following output:
//     The current UI culture is English (United States) [en-US]
//     The current culture is English (United States) [en-US]

В следующем примере кода показана инструкция threading, которая позволяет пользовательскому интерфейсу Windows Forms отображаться в языке и региональных параметрах, заданных в панель управления. Требуется дополнительный код.

using System;
using System.Threading;
using System.Windows.Forms;

class UICulture : Form
{
    public UICulture()
    {
        // Set the user interface to display in the
        // same culture as that set in Control Panel.
        Thread.CurrentThread.CurrentUICulture = 
            Thread.CurrentThread.CurrentCulture;

        // Add additional code.
    }

    static void Main()
    {
        Application.Run(new UICulture());
    }
}

Комментарии

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

Важно!

Свойство CurrentUICulture не работает надежно при использовании с любым потоком, кроме текущего. В платформа .NET Framework чтение свойства является надежным, хотя установка его для потока, отличного от текущего потока, не является. В .NET Core возникает исключение , InvalidOperationException если поток пытается прочитать или записать CurrentUICulture свойство в другом потоке. Рекомендуется использовать свойство для CultureInfo.CurrentUICulture получения и задания текущего языка и региональных параметров.

Объект , CultureInfo возвращаемый этим свойством, может быть нейтральным языком и региональными параметрами. Нейтральные язык и региональные параметры не следует использовать с такими методами форматирования, как String.Format(IFormatProvider, String, Object[]), DateTime.ToString(String, IFormatProvider)и Convert.ToString(Char, IFormatProvider). Используйте метод , CultureInfo.CreateSpecificCulture чтобы получить определенный язык и региональные CurrentCulture параметры, или используйте свойство .

Применяется к

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1