11

我正在开发一个我们不得不担心本地化的产品。目前,这是我必须使用(或添加)本地化字符串时的工作流程:

  1. 搜索 resources.resx 文件(其中有数百个项目)
  2. 如果找到,则复制名称。否则,添加一个新字符串并复制名称
  3. 然后,使用ResourceFactory.ResourceMgr.GetString("MY_MAGIC_STRING")(其中ResourceMgr只是 ResourceManager 的静态字段)

任何琴弦的这 3 步过程是一个真正的痛苦。是否有任何模式或方法可以使这个过程更容易?

4

2 回答 2

5

可以访问每个单独的字符串的自动生成的文件更容易使用 - 将 RESX 文件的“自定义工具”设置为PublicResXFileCodeGenerator.

代码如下所示:

using MyProject.Resources;
...
localizedText = Resources.SomeReasonableName;

旁注:

  • 拥有多个 RESX 文件以及自动生成的 ID 具有智能感知的额外好处,可为您提供合理数量的选择。
  • 根据翻译的处理方式,您最好不要担心 RESX 文件中的重复文本(可能是 OK/cancel 类型的字符串除外)。在翻译时处理重复的字符串可能更容易。
于 2013-01-14T17:32:37.553 回答
0

有这个 Java 解决方案可能会给你一些想法: http ://rodionmoiseev.github.com/c10n/

这个想法是使用接口方法上的注释将翻译存储在源代码本身中。然后,通过使用特殊实用程序,您可以动态创建代理(动态实现接口的类),在调用接口方法时将返回本地化字符串值。

这种方式"MY_MAGIC_STRING"被替换为对MyMagicString()方法的调用,这为您提供了一些拼写/类型安全性,并使其对重构更加友好。

于 2013-01-15T14:42:52.657 回答