1つは、英語、アラビア語の2つのインターフェイスを備えたアプリケーションです。ユーザーは実行時にUI言語を選択でき、アプリケーションの再起動後に変更が表示されます。選択した言語をapp.configに格納します。私はこのコードによって選択されたラングにCurrentUICultureのを変更フォームコンストラクタからデバッグコンパイル済み.netアプリケーション
2-:私の開発マシンで問題なく
Public.ArabicView = UmAlQuraCalender.Properties.Settings.Default.ArabicView;
if (Public.ArabicView == true)
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ar-SA");
else
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
3-アプリケーションワーク。
4-私は別のマシンでアプリケーションをテストするときに、1つのユーザーインターフェイスだけが動作しています(英語)。他の言語をチェックしてアプリケーションを再起動すると、アラビア語のローカルがインストールされてもインターフェイスは英語になりません。
は、私は2つのラジオボタンを使用します。アラビア語と英語のために他のための1つを、クリックイベント内で、私はこのコード内で選択した言語にCurrentUICultureのを変更します(私はデバッグすることができますどのようにも
private void rbArabic_Click(object sender, EventArgs e)
{
Public.ArabicView = rbArabic.Checked;
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ar-SA");
UmAlQuraCalender.Properties.Settings.Default.ArabicView = Public.ArabicView;
UmAlQuraCalender.Properties.Settings.Default.Save();
MessageBox.Show("UI Language will be changed after application resart");
}
private void rbEnglish_Click(object sender, EventArgs e)
{
Public.ArabicView = rbArabic.Checked;
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
UmAlQuraCalender.Properties.Settings.Default.ArabicView = Public.ArabicView;
UmAlQuraCalender.Properties.Settings.Default.Save();
MessageBox.Show("UI Language will be changed after application resart");
}
、5-ソースコードをトレースしてください)問題を解明するためにテストマシンで?
私がお手伝いできる場合は、感謝します。
あなたは 'using'ディレクティブにはいくつかの哲学的異議を持っていますか?彼らはあなたのコードをもっと簡単に読むことができます。 –
このような状況では、通常どんなアクションのログを作成しても役に立ちます。 – ASpirin
"app.configに選択した言語を保存します。"これには、アプリケーションディレクトリへの書き込みアクセスが必要であることに注意してください。プログラムディレクトリにインストールされ、制限されたユーザ(またはUACで保護されたアカウント)で実行されている場合、通常は利用できません。 – CodesInChaos