2

多言語アプリケーションの作成とリソース ファイルの使用について質問があります。私が行ったことと、最終製品をどのようにしたいかを説明します。

私はVB.Netでこれを行っており、Visual Studio 2008を使用しています

新しいプロジェクトを作成した後、プロジェクトにリソース ファイルを追加しました (追加 -> 新しい項目、選択したリソース ファイル、Resource1.resx という名前)。

次に、リソース ファイルをダブルクリックすると、いくつかの名前と値を追加できました。例えば、

名前 – lblFirstName、値 – John 名前 – lblLastName、値 – Smith

私のフォームには、FirstName と LastName の 2 つのラベルがあります。

コードで、私は追加しました

FirstName.Text = My.Resources.Resource1.lblFirstName
LastName.Text = My.Resources.Resource1.lblLastName 

このコードを実行すると、正常に動作します。ジョンとスミスがラベルに表示されます。

さて、私の質問です。姓名の代わりに、ラベル (ボタン、メニュー項目など) が実際には言語によって異なる単語であるとします。私が欲しいのは、次のようなものを持っていることです

EnglishText.resx スペイン語Text.resx ドイツ語Text.resx

各リソース ファイルには、値が異なるだけで同じ名前が含まれます。ユーザーが(メニューから)選択した言語に応じて、一致するリソースファイルを使用するにはどうすればよいですか。

基本的に私が欲しいのは

FirstName.Text = My.Resources.<Language Specific Resource File>.lblFirstName

このようなことは可能ですか?これは受け入れられるアプローチですか?これを行うより良い方法はありますか?

ヒントやアドバイスをいただければ幸いです。フォローアップの質問があるかどうか、またはさらに情報を提供する必要があるかどうかを頻繁に確認するようにしています.

4

3 に答える 3

2

.NET プラットフォームは、ローカリゼーションを念頭に置いて構築されています。現在のカルチャに基づいてアセンブリとリソースをローカライズするための固有のメカニズムが既に存在します。独自のロールを作成する前に読む必要があるいくつかのスターター リンクを次に示します。

http://msdn.microsoft.com/en-us/library/bb398937.aspx
http://msdn.microsoft.com/en-us/goglobal/bb688096.aspx

于 2009-08-27T17:45:48.417 に答える
0

たとえば、次のようなことができる 3 つの言語があるとします。

If LanguageChanger<change this to the way you let people change languages> = "English" Then
Language = My.Resources.EnglishText 
else if LanguageChanger = "Spanish" Then 
Language = My.Resources.SpanishText
else if LanguageChanger = "German" Then 
Language = My.Resources.GermanText
End if

その後、次の方法で使用できます。

FirstName.Text = Language.lblFirstName

このフォーム内からこれを行ったところです。テストされていないため、機能しない場合は申し訳ありません

于 2012-12-27T18:27:23.670 に答える