在 ASP.NET 中,可以使用资源文件对应用程序进行本地化。资源文件包含不同的翻译。例如,可能有一个英文资源文件和一个西班牙文资源文件。使用资源文件时,可以将属性应用于网页上的控件,以使用资源文件中的值自动填充该控件。或者,可以以编程方式从资源文件加载这些值并将其分配给控件的属性。
ASP.NET 使用后备机制来加载翻译。它试图找到与当前用户文化最相似的资源文件。如果当前用户的文化是西班牙语,ASP.NET 会尝试从西班牙语资源文件加载适当的资源。如果西班牙语资源不可用,它将回退到默认资源文件。由于这种行为,西班牙用户的文本可能会以默认语言显示,原因有两个:
- 没有西班牙语翻译。(翻译人员尚未提供此项目的翻译。)
- 文本未本地化。(这可能是页面中出现纯文本或消息在某处被硬编码的结果。)
如果文本以默认语言显示,我想知道是因为原因 1 还是因为原因 2。
对于每个丢失的翻译,我可以在资源文件中插入某种占位符文本。但是,这意味着我正在抛弃回退机制。更糟糕的是,如果占位符文本意外进入生产环境,它看起来比显示默认文本要糟糕得多。
有没有人有任何建议(或解决方案)来确定这两个条件中的哪一个是在手动测试期间出现默认文本的原因?