0

ユーザーがアプリケーションを使用するときに、言語固有の UI テキストを表示できるようにする必要があります。現在、各言語の Properties.Settings ファイルにテキストを保存しています。設定ファイルを指す変数を作成して、選択した言語設定ファイルを指すようにこの変数を設定する方法はありますか?アプリケーションはこの変数を使用して必要なテキスト文字列を取得します。

Properties.Settings.Default.textString を使用すると、次のようなことを行う必要があります。

if (language == "English") {
   String text = Properties.SettingsEnglish.Default.textString;
} else 
if (language == "SomethingElse") {
   String text = Properties.SettingsSomethingElse.Default.textString;
}

チェックを1回だけ実行する必要があるため、次のようなことを行うことをお勧めします。

Properties varSettings;

if (language == "English") {
   var = Properties.SettingsEnglish;
} else 
if (language == "SomethingElse") {
   var = Properties.SettingsSomethingElse;
}


...
String text = varSettings.Default.textString;

これを行うための最善の方法に関する提案 - これは、OS レベルの言語固有のインストール オプションではなく、ユーザーが選択できるアプリケーション オプションである必要があることに注意してください。

4

2 に答える 2

1

.Net アプリケーションには、C# でのローカリゼーションの使用方法で説明されている強力なローカリゼーション メカニズムが既に組み込まれています。要約すると:

  1. プロジェクトにリソース ファイルを追加し、言語を示す適切なサフィックスを付けます。たとえば、フランス語の場合は「strings.fr.resx」、ドイツ語の場合は「strings.de.resx」です。
  2. 「header」、「label1」、「label2」などの適切な名前の文字列を resx ファイルに追加します。
  3. リソース ファイルを保存します。
  4. Thread.CurrentThread.CurrentUICulture目的のカルチャに設定します。
  5. 「strings.header」など、自動的に作成されたクラスを使用して、ファイルから文字列をロードします。

時刻や日付の形式など、文字列以外のローカリゼーションの側面も忘れないでください。

概要については、 http://msdn.microsoft.com/en-us/library/h6270d0z( v=vs.110 ).aspx を参照してください。

于 2014-04-29T00:58:34.790 に答える
0

基本的に、これはすでに回答されていると思いますが(例:こちら)、要点は通常同じです。

文字列の値 (例: error_message_1、error_message_2、greeting、favorite_peekachu) を保持するリソース ディクショナリが必要です。次に、言語ごとにファイルを用意し、設定でそのファイルを設定するか、大きな "if -else-otherwise" コード内のループ (考えただけでぞっとします)。

私は実際にこれについてAndroidでいくつかの良い記事を読んだことを覚えています.アイデアは同じだと思います:)

CodeProjectに関する記事へのリンクは次のとおりです。

編集:
この回答は私が探していたものです: Fredrik Mörk on How to use localization in C# .

于 2014-04-29T00:51:15.817 に答える