在阅读了 CodeProject 中非常好的WPF 全球化教程之后,我计划在我自己的项目中应用相同的技术。
本教程展示了如何为某些默认语言创建Strings.resx
包含命名字符串,并建议复制整个.resx
文件,在文件名中添加一些本地化代码,并将字符串翻译成目标语言。
这样,Strings.resx
将包含一个名为name_entry_label
value的寄存器Write your name
,并且同名的寄存器 inStrings.pt-BR.resx
将具有 value Escreva seu nome
,依此类推,适用于任何其他语言。
我发现的问题是:如果您在其中一个资源文件中添加一个寄存器,其他的不会更新。他们要求手动控制条目,这是愚蠢的、重复的和容易出错的。
在我看来,最合乎逻辑的方法是拥有一个表资源字典,其中每个名称将包含每列一个值,并且每一列将对应于给定的语言。另一种方式是每个 resx 文件都是“主”文件的视图,这将使视图保持同步。不过,我不知道是否有可能获得这些行为。
非常感谢您对如何获得所描述的行为(不同语言资源之间的记录始终同步)的任何帮助,感谢您的阅读。