ASP.NET では、リソース ファイルを使用してアプリケーションをローカライズできます。リソース ファイルには、さまざまな翻訳が保持されます。たとえば、英語のリソース ファイルとスペイン語のリソース ファイルがあるとします。リソース ファイルを使用すると、Web ページ上のコントロールに属性を適用して、そのコントロールにリソース ファイルの値を自動的に設定できます。または、リソース ファイルから値をプログラムで読み込んで、コントロールのプロパティに割り当てることもできます。
ASP.NET は、翻訳の読み込みにフォールバック メカニズムを使用します。現在のユーザーのカルチャに最も似ているリソース ファイルを見つけようとします。現在のユーザーのカルチャがスペイン語の場合、ASP.NET はスペイン語のリソース ファイルから適切なリソースを読み込もうとします。スペイン語のリソースが利用できない場合は、既定のリソース ファイルにフォールバックします。この動作のため、スペイン語ユーザーのテキストは、次の 2 つの理由で既定の言語で表示される場合があります。
- スペイン語の翻訳はありません。(翻訳者はこの項目の翻訳をまだ提供していません。)
- テキストはローカライズされていません。(これは、ページにプレーン テキストが表示されているか、メッセージがどこかにハードコードされていることが原因である可能性があります。)
テキストがデフォルトの言語で表示される場合、それが理由 1 によるものなのか、理由 2 によるものなのかを知りたいです。
欠落している翻訳ごとに、何らかのプレースホルダー テキストをリソース ファイルに挿入できます。ただし、これはフォールバック メカニズムを破棄していることを意味します。さらに悪いことに、仮のテキストが誤って本番環境に渡ってしまうと、デフォルトのテキストを表示するよりも見栄えが悪くなります。
これら 2 つの条件のどちらが手動テスト中にデフォルトのテキストが表示される理由であるかを判断するための提案 (または解決策) はありますか?