2016-07-12 31 views
0

私はフォーム(frmRun)を持っていて、さまざまな言語(例えばEnglish.resx、Portuguese.resxなど)用のいくつかのリソースファイルを使用しているVB.NETプロジェクトを持っています。リソースアイテムを解決できません

rm = New ResourceManager("MyRootNamespace." & currentItem.Text, System.Reflection.Assembly.GetExecutingAssembly()) 

のCurrentItem:起動時またはユーザーがメニューから言語を選択したとき、私はリソースマネージャを設定するには

Private rm As ResourceManager 

次のようにSystem.Resourcesの名前空間とは、リソースマネージャを定義しました。テキストは "English.resx"です。rmはクラスレベルで定義されているので、簡単にstrを選択できます

btnStartStop.Text = rm.GetString("btnStartStop_Start") 

このリソース文字列「btnStartStop_Startは」(ポルトガル語)(英語)English.resxの両方にとPortuguese.resxに定義されています。私のような選択した言語で表示したいingが。

私はJetBrains Resharperを使用していますが、問題を解決することができないというrm.GetStringを使用するすべての行についてIDEが垂直スクロールバーにエラーを表示しています。 IDEの左側の列にある電球をクリックすると、これをリソース項目に追加することでこれを修正できます。私がするとき、それはフォームのresxファイルに追加しています。この場合、この文字列は "frmRun.resx"に入り、エラーは消えます。しかし、私はfrmRun.resxを使用していません、私は具体的には別のresxファイル(English.resxなど)を使用するように指示しています。興味深いことに、これらは私のIDEの垂直スクロールバーにエラーとして表示されますが、アプリはコンパイル/実行されます。

これらのリソースをフォームのresxファイルで探して無視するようにするには、非表示にするか、検査でこれらのリソースを表示しないようにしますか?

答えて

0

リソースファイルは同じ名前ですが、言語の接尾辞が付いている必要があります。フランス語

ドイツ

WinFormStrings.fr-FR.resxため

例えば

WinFormStrings.de-DE.resxデフォルトではWinFormStrings.resxファイルを使用します。 .GetString

コールは、現在のスレッドのカルチャに基づいて正しいファイルを選ぶだろう

これを説明するチュートリアルでは、ここで見つけることができます:Walkthrough: Localizing Windows Forms

+0

この回答が役に立った –

0

あなたが作る作るために何ができる何か他のものがありますエラーは消え去る。 Reshareperオプションに移動して - >Inspection Severityに移動し、使用している言語でPotential Code Quality Issuesが表示される場合は、Cannot resolve resourceまたは​​の重大度を設定できます。自分自身で検索したい場合は、resharperオプションとタイプを検索することもできます。 Resourceでこれはあなたが探しているものを思い付くでしょう。

独自のResourceManager実装を使用していますが、同じ問題があるので、ヒント/示唆に設定して、エラーは表示されません。

enter image description here

関連する問題