1

さまざまな言語のグローバルリソースファイルがあります。

Resource.resx
Resource.de-DE.resx
Resource.ro-RO.resx

ほとんどの場合、のすべての文字列にResource.resxは、他の言語でもローカライズされたバージョンがあります。

ただし、にのみ存在する必要があるが、には存在しない特定の文字列Resource.de-DE.resxがありResource.resxます。コードでそれらを使用しようとすると、次のようになります。

GetGlobalResourceObject("Resource", "Personal Identification Number")

リソースアイテム「個人識別番号」を解決できないというエラーが表示されます。に存在するため、ドイツ語でページを表示すると、文字列は引き続き適切にローカライズされますが、に存在しResource.de-DE.resxないためResource.resx、Visual Studioでこのエラーが発生し、エラーを取り除きたいと思います。

このエラーメッセージが表示されないようにするには、どうすればよいですか?ローカル固有の文字列を別のリソースファイルに移動する必要がありますか?

4

2 に答える 2

0

私はあなたのシナリオを複製しました、そしてそれはうまくいきます。ローカル固有の文字列を含む別のリソースファイルを作成するだけです。お役に立てれば :)

于 2012-06-13T19:56:29.347 に答える
0

リソースフォールバックアプローチ全体は、実際にはすべての文字列が基本言語に存在することを前提としています。

このシナリオがあるのは、ドイツ語にのみ適用される機能を実装していて、基本言語に不要なリソースを追加したくないためだと思います。これらは、それを必要としない言語のローカリゼーション作業を増やすためです。

1つの解決策は、別のローカルリソースファイルを作成することです。そして、これをドイツ語に(他の言語ではなく)翻訳するか、基本リソースにします(de-DE 言語コードは含まれていませんが、ドイツ語の文字列は含まれています)。

別の解決策(ローカルリソースファイルを作成できず、何らかの理由でグローバルリソースしか使用できない場合)は、これらの追加エントリをベースグローバルリソース(Resource.resx)に追加し、これらを変換したくないことを明確にすることです。たとえば、それらをすべて空白の文字列にし、コメントフィールドを使用して、これらの文字列がドイツ語専用であることを説明します。とても素敵ではありません。

于 2012-06-14T10:58:23.020 に答える