2010-11-17 56 views
26

Comment identifier la langue du système d'exploitation en utilisant CultureInfo? Par exemple. Si la langue dans Windows est définie sur Français, je dois identifier le français et charger les données de fichiers de ressources fr.Récupérer la langue dans CultureInfo

+4

Si vous utilisez des fichiers de ressources .NET (ceux de '.resx'), le système les gère pour vous. –

+0

Oui je sais, mais je n'ai pas ajouté le dossier de ressource de mandarin et l'ordinateur a été placé à la langue de mandarine en tant que sa langue par défaut, ainsi je cherche pour obtenir right.Thanks. – Sharpeye500

+0

Votre réponse pourrait être celle-ci http://stackoverflow.com/questions/329033/what-is-the-difference-between-currentculture-and-currentuiculture-properties-of – Raymund

Répondre

44

Je pense que quelque chose comme cela vous donne la CultureInfo actuelle:

CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture; 

Est-ce que vous cherchez?

+1

Je voudrais utiliser CultureInfo.CurrentCulture qui fait la même chose, mais est plus court à écrire. Malheureusement, ni CurrentCulture ni CurrentUICulture ne renvoient le langage du système d'exploitation. Le premier renvoie le paramètre de formatage actuel, le second renvoie la langue de l'interface utilisateur préférée de l'utilisateur. –

6

langue du système actuel est récupéré à l'aide:

CultureInfo.InstalledUICulture 

« Obtient le CultureInfo qui représente la culture installée avec le système d'exploitation. »

InstalledUICulture

Pour le définir comme langue par défaut pour une utilisation de fil:

System.Globalization.CultureInfo.DefaultThreadCurrentCulture=CultureInfo.InstalledUICulture; 
9

C'est ce que je l'ai utilisé:

var culture = System.Globalization.CultureInfo.CurrentCulture; 

et travaille :)

2

J'ai essayé {CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;} mais cela n'a pas fonctionné pour moi, depuis mon interface utilisateur c ulture était différent de ma culture de nombre/monnaie. Donc, je vous suggère d'utiliser:

CultureInfo currentCulture = Thread.CurrentThread.CurrentUICulture; 

Cela vous donnera la culture de votre interface utilisateur est (textes sur les fenêtres, boîtes de message, etc.).

0

Pour obtenir l'utilisation de l'identificateur de langue ISO 639-1 à 2 caractères:
System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;