Thread.CurrentUICulture Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví aktuální jazykovou verzi používanou Resource Managerem k vyhledání prostředků specifických pro jazykovou verzi za běhu.
public:
property System::Globalization::CultureInfo ^ CurrentUICulture { System::Globalization::CultureInfo ^ get(); void set(System::Globalization::CultureInfo ^ value); };
public System.Globalization.CultureInfo CurrentUICulture { get; set; }
member this.CurrentUICulture : System.Globalization.CultureInfo with get, set
Public Property CurrentUICulture As CultureInfo
Hodnota vlastnosti
Objekt, který představuje aktuální jazykovou verzi.
Výjimky
Vlastnost je nastavena na nullhodnotu .
Vlastnost je nastavena na název jazykové verze, který nelze použít k vyhledání souboru prostředku. Názvy názvů prostředků musí obsahovat jenom písmena, číslice, pomlčky nebo podtržítka.
Pouze .NET Core a .NET 5 nebo novější: Čtení nebo zápis jazykové verze vlákna z jiného vlákna není podporováno.
Příklady
Následující příklad určuje, zda jazyk aktuální jazykové verze uživatelského rozhraní vlákna je francouzština. Pokud tomu tak není, nastaví jazykovou verzi uživatelského rozhraní aktuálního vlákna na angličtinu (Spojené státy).
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]
open System.Globalization
open System.Threading
// Change the current culture if the language is not French.
let current = Thread.CurrentThread.CurrentUICulture
if current.TwoLetterISOLanguageName <> "fr" then
let newCulture = CultureInfo.CreateSpecificCulture "en-US"
Thread.CurrentThread.CurrentUICulture <- newCulture
// Make current UI culture consistent with current culture.
Thread.CurrentThread.CurrentCulture <- newCulture
printfn
$"The current UI culture is {Thread.CurrentThread.CurrentUICulture.NativeName} [{Thread.CurrentThread.CurrentUICulture.Name}]"
printfn
$"The current culture is {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]
Imports System.Globalization
Imports System.Threading
Module Example
Public Sub Main()
' Change the current culture if the language is not French.
Dim current As CultureInfo = Thread.CurrentThread.CurrentUICulture
If current.TwoLetterISOLanguageName <> "fr" Then
Dim newCulture As CultureInfo = CultureInfo.CreateSpecificCulture("en-US")
Thread.CurrentThread.CurrentUICulture = newCulture
' Make current UI culture consistent with current culture.
Thread.CurrentThread.CurrentCulture = newCulture
End If
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)
End Sub
End Module
' The example displays output like the following:
' The current UI culture is English (United States) [en-US]
' The current culture is English (United States) [en-US]
Následující příklad kódu ukazuje příkaz threading, který umožňuje uživatelské rozhraní modelu Windows Forms zobrazit v jazykové verzi, která je nastavena v Ovládacích panelech. Je potřeba další kód.
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());
}
}
open System.Threading
open System.Windows.Forms
type UICulture() =
inherit Form()
do
// 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.
new UICulture() |> Application.Run
Imports System.Threading
Imports System.Windows.Forms
Public Class UICulture : Inherits Form
Sub New()
' 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.
End Sub
Shared Sub Main()
Application.Run(New UICulture())
End Sub
End Class
Poznámky
Jazyková verze uživatelského rozhraní určuje prostředky, které aplikace potřebuje k podpoře uživatelského vstupu a výstupu, a ve výchozím nastavení je stejná jako jazyková verze operačního systému. CultureInfo V této třídě se dozvíte o názvech a identifikátorech jazykové verze, rozdílech mezi neutrálními, neutrálními a konkrétními jazykovými verzemi a způsobem, jakým informace o jazykové verzi ovlivňují vlákna a domény aplikací. Podívejte se na CultureInfo.CurrentUICulture vlastnost, ve které zjistíte, jak se určuje výchozí jazyková verze uživatelského rozhraní vlákna.
Důležité
Vlastnost CurrentUICulture nefunguje spolehlivě při použití s jakýmkoli jiným vláknem než s aktuálním vláknem. V rozhraní .NET Framework je čtení vlastnosti spolehlivé, i když nastavení pro vlákno jiné než aktuální vlákno není. V .NET Core je vyvolán, InvalidOperationException pokud se vlákno pokusí číst nebo zapisovat CurrentUICulture vlastnost v jiném vlákně. Doporučujeme použít CultureInfo.CurrentUICulture vlastnost k načtení a nastavení aktuální jazykové verze.
Vrácená CultureInfo touto vlastností může být neutrální jazyková verze. Neutrální jazykové verze by neměly být použity s formátovacími metodami, jako String.Format(IFormatProvider, String, Object[])jsou , DateTime.ToString(String, IFormatProvider)a Convert.ToString(Char, IFormatProvider). Použijte metodu CultureInfo.CreateSpecificCulture k získání konkrétní jazykové verze nebo použijte CurrentCulture vlastnost.