1

ここでの用語はわかりませんが、計算される文字列の名前である特定のリソースファイルにアクセスする必要があります。

例えば:

「resFile-en-GB」という名前のリソースファイルがあります。 「resFile-en-GB.stringKey」を使用して内部の文字列にアクセスできます。次に、文字列の最後にカルチャ情報を追加する必要があります。

string stringA = "resfile-";
string stringB = "en-GB";
string stringC = stringA + stringB;

ここで、「stringC.stringKey」のようなリソースファイル名として「stringC」を使用する必要がありますこれ行うにはどうすればよいですか?

4

3 に答える 3

2

ResourceManagerを介してリソースにアクセスし、GetString(key)を使用できます。この場合、おそらく簡単です。

var resourceManager = new ResourceManager(stringC, Assembly.GetExecutingAssembly())
resourceValue = resourceManager.GetString(key);
于 2013-03-25T21:37:30.743 に答える
1

リソースファイルを使用して、アプリケーションを多言語にすることができます。

ソリューションにリソースファイルを追加します

それは明らかな最初のステップです。たとえば、ソリューションにフォルダーをResourceFiles追加し、resxファイルを追加します。

  • LanguageStrings.resx
  • LanguageStrings-fr-FR.resx
  • LanguageStrings-nl-NL.resx

LanguageStrings.resxには、英語などの言語が含まれますdefault。fr-FRにはフランス語が含まれ、nl-NLにはオランダ語が含まれます。リソースファイルにアイテムを追加するだけです。たとえば、HelloWorld =Helloworldです。

そうです、適切な翻訳を使用して、HelloWorldキーを3つの言語文字列.resxファイルに追加しました。

文化を設定する

アプリケーションのどこかで、言語を設定できるようにします。それはいくつかのイベントハンドラー(リストボックスまたはあなたが考えたもの)にある可能性があります。そこで、選択したカルチャ情報をに設定しますLanguageStrings

var cultureInfo = new System.Globalization.CultureInfo("nl-NL");
System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo;
LanguageStrings.Culture = cultureInfo;

これにより、ハードコードされた言語がオランダ語に設定されます。明らかに、ユーザーが選択した言語に言語を設定できるように、「nl-NL」変数を作成する必要があります。

ローカライズされた文字列を取得する

最後に、リソースファイルからローカライズされた文字列を取得します。たとえば、次のようなものです。

 label.Text = LanguageStrings.HelloWorld;

ここで魔法が起こります。ローカライズされた文字列を取得するために使用する言語リソースファイルを定義する必要はありません目的の言語をリソースファイル()にすでに設定しているため、これは自動的に行わLanguageStrings.Culture = ..ます。

それが基本です、私はこれがあなたの途中であなたを助けることを願っています。

于 2013-03-25T22:00:07.430 に答える
0

ResourceManager.GetStringメソッドは、これを実現するのに役立ちます。

于 2013-03-25T21:37:56.307 に答える