Thread.CurrentUICulture Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit la culture actuelle utilisée par Resource Manager pour rechercher des ressources spécifiques à la culture au moment de l’exécution.
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
Valeur de propriété
Objet qui représente la culture actuelle.
Exceptions
La propriété est définie sur null.
La propriété est définie sur un nom de culture qui ne peut pas être utilisé pour localiser un fichier de ressources. Les noms de fichiers de ressources doivent inclure uniquement des lettres, des chiffres, des traits d’union ou des traits de soulignement.
.NET Core et .NET 5+ uniquement : la lecture ou l’écriture de la culture d’un thread à partir d’un autre thread n’est pas prise en charge.
Exemples
L’exemple suivant détermine si la langue de la culture de l’interface utilisateur du thread actuel est française. Si ce n’est pas le cas, il définit la culture de l’interface utilisateur du thread actuel sur l’anglais (États-Unis).
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]
L’exemple de code suivant montre l’instruction de thread qui permet à l’interface utilisateur d’un Windows Forms d’afficher dans la culture définie dans le Panneau de configuration. Un code supplémentaire est nécessaire.
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
Remarques
La culture de l’interface utilisateur spécifie les ressources dont une application a besoin pour prendre en charge l’entrée et la sortie de l’utilisateur. Par défaut, elle est identique à la culture du système d’exploitation. Consultez la CultureInfo classe pour en savoir plus sur les noms et les identificateurs de culture, les différences entre les cultures invariantes, neutres et spécifiques et la façon dont les informations de culture affectent les threads et les domaines d’application. Consultez la propriété pour savoir comment la CultureInfo.CurrentUICulture culture d’interface utilisateur par défaut d’un thread est déterminée.
Important
La CurrentUICulture propriété ne fonctionne pas de manière fiable lorsqu’elle est utilisée avec un thread autre que le thread actuel. Dans .NET Framework, la lecture de la propriété est fiable, même si la définition d’un thread autre que le thread actuel n’est pas. Sur .NET Core, une InvalidOperationException exception est levée si un thread tente de lire ou d’écrire la CurrentUICulture propriété sur un autre thread. Nous vous recommandons d’utiliser la CultureInfo.CurrentUICulture propriété pour récupérer et définir la culture actuelle.
La CultureInfo propriété retournée peut être une culture neutre. Les cultures neutres ne doivent pas être utilisées avec des méthodes de mise en forme telles que String.Format(IFormatProvider, String, Object[]), DateTime.ToString(String, IFormatProvider)et Convert.ToString(Char, IFormatProvider). Utilisez la CultureInfo.CreateSpecificCulture méthode pour obtenir une culture spécifique ou utilisez la CurrentCulture propriété.