2016-07-28 5 views
-1

私に与えられたsettingFileに応じて、自分のアプリケーションのCultureInfoを設定しようとしています(内容を変更できません)。でCultureInfoを国が不明な言語に設定しました

settingFile私は例GermanFrenchEnglishのために(国に関する情報)を表示するべきではない言語名にのみアクセスすることができます。

私は私の問題は、私が今になってるということである私のCultureInfoが

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

を使用して得ることができた:

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

しかし、私は唯一の(cultureInfo.Name経由)の言語を持っているので、I私の文化情報を作成することはできません。やろうとし

Thread.CurrentThread.CurrentCulture = cultureInfo; 

はどちらか動作しませんでした。

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

をすることについて考えたが、それは私の言語に関連する最も一般的な国に私のCultureInfoを設定する方法はあり

...英語での例では動作しませんか?
私はそれが完璧な解決策ではないことを知っています(例えば、en-UKとen-USの間で最も一般的なことは...)。しかし、私は自分の国のことを知らずに、 。

答えて

1

このvar en = CultureInfo.GetCultures (CultureTypes.AllCultures).First(x=>x.Name=="en");は、ご使用の言語(例では、CultureInfo)になります。あなたが "en-GB"を調べるなら、 "en-US"よりも "en"に等しいParentがあることが分かります。

+0

あなたの説明は間違っているかもしれませんが、 'var en = CultureInfo.GetCultures(CultureTypes.AllCultures).First(x => x.Name ==" en ");'はCultureInfo = CultureInfo .GetCultures(CultureTypes.AllCultures) .Where(c => c.EnglishName == "English")。FirstOrDefault(); 'と私はまだ同じ問題を抱えています。この言語では、新しいCultureInfo({LANG-COUNTRY})を作成する方法がありません。 – Belterius

+0

可能な国(カルチャ)は、First(x => x.Parent.Name == "en")名。そして最も人気のあるものを得ることは、プログラミングに関するものではなく、人口統計や統計に関するものです。そして、私の例は、地域を設定せずにあなたにcultoreを与えます。 –

+0

最初の変種はCultureTypeニュートラルで、第2国固有のものです。 –

関連する問題