我有一个针对不同语言的全局资源文件:
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中出现此错误,我想摆脱错误。
如何解决此问题,以便我不会收到此错误消息?我应该将特定于本地的字符串移动到另一个资源文件吗?
答案 0 :(得分:0)
我刚刚复制了你的场景,它运行正常。只需创建另一个包含本地特定字符串的资源文件。希望这会有所帮助:)
答案 1 :(得分:0)
整个资源回退方法确实假设所有字符串都存在于基本语言中。
我想你有这种情况,因为你实现了一些仅适用于德语的功能,你不想在基础语言中添加不必要的资源,因为这会增加不需要它的语言的本地化工作。 / p>
一种解决方案是创建单独的本地资源文件。要么只将这一个翻译成德语(而不是其他语言),要么将其作为基础资源(没有de-DE
语言代码,但仍然包含德语字符串)。
另一种解决方案(如果您无法创建本地资源文件且由于某种原因只能使用全局资源)将这些额外条目添加到您的基本全局资源(Resource.resx
)并明确表示你不希望这些翻译。例如,将它们全部设为空白字符串,并使用“注释”字段来解释这些字符串仅用于德语。不是很好。