2011-11-17 21 views
3

私は2つの言語アラビア語と英語をサポートするWindowsアプリケーションを開発しています。実行時にフォームのUI(ラベル)を変更したいと思います。ユーザーが最初にフォームで選択した言語は、その言語で表示する必要があります。このために私は、ユーザーが英語多言語ウィンドウフォーム

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB");" 

を選択した場合、ユーザーがアラビア語

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-Ar"); 

を選択した場合、私はVisual Studioでアプリケーションを実行するとこれが正常に動作キー

次のように設定しています。すべてのフォームは、現在選択されているUIカルチャーに基づいています。

このアプリケーションのMSIをマシンにインストールすると、CurrentUICultureリソースファイルに従ってフォームのラベル値が表示されません。選択された言語はアラビア語ですが、常に英語のラベルのみを表示しています。

+0

おそらくコードを投稿する必要があります。 – mydogisbox

+3

msiでサテライトアセンブリが正しくインストールされていますか?アプリケーションの名前がtest.exeの場合は、ディレクトリen-GB/test.resources.dllとディレクトリen-Ar/test.resource.dllが必要です。 – Francis

+0

選択した言語がアラビア語であると言えば、言語はどのように選択されていますか?地域の設定や言語バーなどの手段を使用していますか? –

答えて

0

次の手順を実行することで、このクエリの解決方法が見つかりました。 - 実際には、アプリケーションのインストーラを作成している間は、リソースdllフォルダをマップするので、デプロイメントプロジェクトの "project.resources.dll"の追加だけでは不十分です。 - アプリケーションフォルダの下にbin-> dubugの下にresource.dllを含むフォルダ名と同じ名前のフォルダを追加し、その下に "project.resources.dll"を追加します。 - 問題を解決します - >選択した言語がアラビア語の場合、すべてのラベルがアラビア語で表示されます