2016-07-28 13 views
-1

Ich versuche, die CultureInfo meiner Anwendung abhängig von einer settingFile, die mir gegeben wird (ich kann den Inhalt nicht ändern).CultureInfo auf eine Sprache mit unbekanntem Land setzen

In meinem settingFile ich nur Zugriff auf die Namen der Sprache, die ich (keine Informationen über das Land) anzeigen soll zum Beispiel German, French, English. mit

CultureInfo cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures) 
           .Where(c => c.EnglishName == languageName).FirstOrDefault(); 

Mein Problem ist, dass ich jetzt tun soll

konnte ich meine Culture bekommen:

Thread.CurrentThread.CurrentCulture = new CultureInfo({LANG-COUNTRY}); 

Aber ich habe nur die Sprache (via cultureInfo.Name), so dass ich kann meine Kulturinfo nicht erstellen.

zu tun versuchen

Thread.CurrentThread.CurrentCulture = cultureInfo; 

auch nicht funktioniert.

Ich dachte über

new CulltureInfo({cultureInfo.Name+"-"+cultureInfo.Name.ToUpper()}); 

tun, aber es zum Beispiel funktioniert nicht mit Englisch ...

Gibt es eine Möglichkeit, meine Culture zu den häufigsten Land meiner Sprache mit Bezug zu setzen?
Ich weiß, es wird keine perfekte Lösung sein (zum Beispiel, was am häufigsten zwischen en-UK und en-US wäre ...), aber ich glaube nicht, dass ich es besser machen kann, weil ich das Land meines Benutzers nicht kenne .

Antwort

1

Diese var en = CultureInfo.GetCultures (CultureTypes.AllCultures).First(x=>x.Name=="en"); gibt Ihnen eine Basis CultureInfo für Ihre Sprache (im Beispiel). Wenn Sie "en-GB", "en-US" untersuchen, dann sehen Sie beide Parent gleich "en".

+0

Vielleicht habe ich Ihre Erklärung missverstanden, aber 'var en = CultureInfo.GetCultures (CultureTypes.AllCultures) .First (x => x.Name ==" en ");' tut genau das selbe wie 'CultureInfo cultureInfo = CultureInfo .GetCultures (CultureTypes.AllCultures) . Wo (c => c.EnglishName == "Englisch"). FirstOrDefault(); 'und ich habe immer noch das gleiche Problem, keine Möglichkeit zu wissen, die möglichen Länder (oder beliebtesten) für Diese Sprache, und so keine Möglichkeit, meine 'neue CultureInfo ({LANG-COUNTRY}) zu erstellen. – Belterius

+0

Mögliche Länder (Kulturen) können Sie mit Filter First (x => x.Parent.Name ==" en ") anstelle von Name. Und um am beliebtesten zu werden, geht es nicht um Programmierung, sondern um Demografie und Statistik. Und mein Beispiel gibt Ihnen eine Kultur ohne Region. –

+0

Nur die erste Variante gibt Ihnen CultureType neutral und länderspezifisch. –