英語、ドイツ語、ロシア語の 3 つの言語を搭載したシンプルな Windows ストア アプリケーションを作成しました。ru-RU、en-US、de-DE などの完全なカルチャ名は使用していませんが、言語を指定しているだけです: ru、en、de。したがって、次のリソースファイル構造があります。
prj-folder
\ strings
\ de
\ Resource.resw
\ en
\ Resource.resw
\ ru
\ Resource.resw
マニフェストで、デフォルトのカルチャを「en」に設定しました。私の開発ワークステーションには en-US カルチャがあるため、アプリを実行するとすべてが英語になります (予想どおり)。他の文化をテストするために、次のコードを に追加しますApp.ctor
。
public App()
{
InitializeComponent();
var culture = new CultureInfo("ru-RU");
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = culture.Name;
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
// ...
}
それはうまくいきます。ロシア語またはドイツ語ですべてを見ることができます。
アプリをリリースしました - 今日、ストアに登場しました。開発ワークステーション (en-US) では、すべてが期待どおりに機能します。しかし!ドイツ語 (de-DE 文化) のワークステーションでは、すべてが英語でも表示されます。Windows ストアの説明とアプリケーションの UI です。ローカリゼーションの何が問題なのか、すべてが常に英語である理由がわかりません。
注: 重要な場合があります。アプリのアップデートでドイツ語とロシア語を追加しました。最初のバージョンには 1 つの言語しか搭載されていませんでした。英語であり、既定のカルチャは en-US でした。
更新:問題はドイツ語 Windows 8 のデバイスに関連しているようです。ほとんどのアプリケーションは de-DE カルチャで実行されていますが、私のアプリは en-US カルチャで実行されています。私たちの理由を理解しようとします。