私は最初にスタックオーバーフローで私のような質問に出くわしました:ResourceManagerのすべてのリソースをループします-C#。それは私がしなければならないことの一部しか解決しませんでした。特定のカルチャのリソースファイルへのエントリを要求すると、存在しない場合は、デフォルトでニュートラルカルチャリソースファイルに戻ります。
特定のリソースファイルの各エントリをループする必要があり、GetResourceSetにはカルチャが必要です。たとえば、3つのエントリを持つニュートラルリソースファイルと、1つのエントリを持つニュートラルファイルに付随するカルチャ固有のリソースファイルがあります。
ニュートラルリソースのサンプルファイルはMyResource.resxであり、カルチャ固有のリソースのサンプルファイルはMyResource.en-gb.resxです。次のコードは、現在、すべてのリソースエントリをループしてアクセスしようとしている方法を示しています。
Dim cultInfo as New CultureInfo(culture)
For Each entry As System.Collections.DictionaryEntry In myResourceManager.GetResourceSet(cultInfo, True, True)
Next
ニュートラルリソースファイルエントリ
- フルネーム/フルネーム
- 電話番号/電話番号
- 州/州
カルチャ固有のリソースファイルエントリ
- 州/郡
特定のカルチャに対してGetResourceSetを呼び出すと、1つのエントリしか返されません。私は、1つのカルチャ固有のエントリが上書きされた状態で、3つのエントリすべてを取り戻すことを期待していました(そして望んでいました)。これが私が返したいものです:
- フルネーム/フルネーム
- 電話番号/電話番号
- 州/郡
とにかく私がこれを行うことができますか?ありがとう。