1

我有不同语言的全球资源文件:

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

在大多数情况下,其中的所有字符串Resource.resx也具有其他语言的本地化版本。

但是,我有某些字符串应该只存在于Resource.de-DE.resx而不是Resource.resx. 当我尝试在我的代码中使用它们时:

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

我收到一条错误消息,显示无法解析资源项 'Personal Identification Number'。当我用德语查看页面时,字符串仍然可以正确本地化,因为它存在于 中Resource.de-DE.resx,但因为它不在 中Resource.resx,所以我在 Visual Studio 中收到此错误,我想摆脱该错误。

如何解决此问题,以免收到此错误消息?我应该将本地特定的字符串移动到另一个资源文件吗?

4

2 回答 2

0

整个资源回退方法确实假设所有字符串都存在于基础语言中。

我想您会遇到这种情况,因为您实现了一些仅适用于德语的功能,并且您不想向基础语言添加不必要的资源,因为这会增加不需要它的语言的本地化工作。

一种解决方案是创建一个单独的本地资源文件。并且要么只将其翻译成德语(而不是其他语言),要么将其作为基础资源(没有de-DE 语言代码但仍然包含您的德语字符串)。

另一种解决方案(如果您无法创建本地资源文件并且由于某种原因只能使用全局资源)是将这些额外的条目添加到您的基本全局资源(Resource.resx)中,并明确表示您不希望这些被翻译。例如,将它们全部设为空白字符串并使用注释字段来说明这些字符串仅用于德语。不大好。

于 2012-06-14T10:58:23.020 回答
0

我刚刚复制了你的场景,它工作正常。只需创建另一个包含本地特定字符串的资源文件。希望这可以帮助 :)

于 2012-06-13T19:56:29.347 回答