Se si cerca solo per ottenere la lingua localizzata di una cultura (senza il paese) si può usare questo frammento:
CultureInfo culture = Thread.CurrentThread.CurrentCulture;
string nativeName = culture.IsNeutralCulture
? culture.NativeName
: culture.Parent.NativeName;
Se si userà un nome specifico lingua localizzata, si può usare questo:
string language = "es-ES";
CultureInfo culture = new CultureInfo(language);
string nativeName = culture.IsNeutralCulture
? culture.NativeName
: culture.Parent.NativeName;
Se si desidera avere un nome per il titolo (ad es. Français invece di français), utilizzare questa linea:
string result = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(nativeName);
Come metodo:
private static string GetTitleCaseNativeLanguage(string language)
{
CultureInfo culture = new CultureInfo(language);
string nativeName = culture.IsNeutralCulture
? culture.NativeName
: culture.Parent.NativeName;
return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(nativeName);
}
O come un metodo di estensione:
public static string GetNativeLanguageName(this CultureInfo culture, bool useTitleCase = true)
{
string nativeName = culture.IsNeutralCulture
? culture.NativeName
: culture.Parent.NativeName;
return useTitleCase
? CultureInfo.CurrentCulture.TextInfo.ToTitleCase(nativeName)
: nativeName;
}
display visualizzerà il nome nella lingua del posizione attuale .net framework. Usa nome o NativeName. –
Nessuno di questi lavori ... Entrambi mi danno in inglese –