我有许多不同语言的资源文件。
让我们假设我们支持3种语言(en,de,fr),并拥有此文件:
common.resx common.de.resx common.fr.resx
我想检测例如在de中请求资源但是缺少资源时发生的事件,因此恢复为默认语言。有没有办法抓住这个? (所以我可以记录它,然后添加缺少的资源)。
由于
答案 0 :(得分:5)
如果您想捕捉差异,请使用RESX Synchronizer。它是一个开源应用程序,可以将主要resx与本地化的所有差异同步(它在本地化资源中添加和/或删除键)。
您可以按如下方式使用它将所有更改从common.resx复制到common.de.resx:
resxsync /v common.resx common.de.resx
/ v选项列出所有更改,这些更改都是添加到de resx或从de resx中删除的所有键。
答案 1 :(得分:2)
假设所有资源文件更改都在开发中开始并进入生产阶段,这似乎是某种形式的静态分析的工作。
我使用Zeta Resource Editor因为它突出显示缺少翻译的区域以及占位符(例如 {0} )。
答案 2 :(得分:1)
Resharper有这个很棒的功能http://www.jetbrains.com/resharper/features/internationalization.html#Code_Inspections_for_Resource_Files
只要特定资源值不是,ReSharper就会发出警告 在特定文化中被覆盖
答案 3 :(得分:0)
现有的资源阅读API中没有任何内容可以在外部公开回退。但是,System.Resources.ResourceManager没有被密封,因此当需要回退时,没有什么可以阻止您将其子类化以引发事件。