Resx文件适合国际化吗?

19
我被分配了一个任务,需要国际化一个大型的客户端服务器应用程序。任务要求我使应用程序“全球准备就绪”,然后将编译后的应用程序和资源传递给另一个国家的同事进行翻译并发布给他们的客户。由于涉及到多个国家和语言,因此需要进行多个独立的翻译。
关键在于我希望有一个简单的两步发布流程:
第一步:我编译并发布一个“全球准备就绪”的应用程序给各个国家的同事。
第二步:他们对资源进行本地化处理,然后发布给他们的客户。
我不想增加额外的步骤,如“使应用程序全球准备就绪”->“发送文件进行翻译”->“等待几周翻译回来”->“编译成应用程序”->“发布应用程序”。
我一直在研究.NET全球化以及使用resx文件的方法。从我所看到的内容来看,resx文件会被编译进应用程序中,因此一旦编译后就无法更改。即使是卫星程序集也似乎不能编辑。即使我在这一点上错了,如何将卫星程序集的更改反映到我的项目中的resx文件中呢?
那么现在的问题是,考虑到我只想先编译应用程序,然后让翻译在之后处理,resx文件是否是正确的选择,还是应该放弃它们并编写一个可以在应用程序编译后轻松编辑的定制数据库驱动解决方案?
希望以上内容清晰明了。期待您的回复。

2
感谢提供信息。但我仍然不太相信resx文件的效果。很多工具都相当昂贵,而且我担心它们无法提供定制数据库解决方案的灵活性。最让我失望的是WinRes.exe(用于本地化表单布局的应用程序)不能与我们广泛使用的Infragistics控件配合使用。如果不能更改布局,resx文件就失去了吸引力。因此,我认为我们将采用基于数据库的解决方案。 再次感谢您的建议。 - Mark Robinson
大多数本地化工具都有API,如果您曾经考虑使用这样的工具,您也可以在基于数据库的解决方案中使用它:您只需在本地化平台上发布或调用翻译即可。当您进行众包翻译时,它们非常有用。 - Awesome
3个回答

17

是的,resx文件是最佳解决方案。

对于资源的翻译,您应该使用本地化工具,例如Passolo。它可以执行以下操作:

  • 将原始resx作为输入并生成所需检查到代码库中的翻译后的resx文件
  • 将已编译的程序集作为输入,并生成卫星程序集。

我们正在翻译程序集,因为这样可以本地化GUI布局。要允许外部工具打开GUI编辑器,它需要代码,并且这在程序集中。

如果您只关注测试翻译,则处理resx文件的翻译可能更简单。

这样的外部工具提供了以下重要功能:

  • 收集所有字符串,您无需处理数百个resx文件
  • 管理多种语言的翻译文本,通常带有GUI设计器。
  • 识别源文本是否更改或已添加,因此您知道哪些文本需要翻译。
  • 仅翻译重复的文本一次。
  • 通常带有漂亮的UI以编辑翻译。
  • 导出/导入CSV和类似格式以供其他工具或甚至其他公司处理。

2

是的,.NET中整个全球化框架都基于RESX文件和它们创建的卫星程序集。一旦编译了主应用程序,RESX文件可以独立地编译成它们的卫星程序集。

我知道有一些工具可以帮助翻译过程,但我目前不熟悉任何一个。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接