本地化最佳实践

时间:2010-01-25 22:21:36

标签: windows visual-c++ localization

我开始修改我的应用程序,它使用所有硬编码字符串来处理错误,GUI等。我正在考虑这两种方法,但如果有更好的方法,请告诉我:

- 在ressource(.rc)文件中输入所有字符串。

- 定义文件中的所有字符串,每种语言一次。使用预处理器定义来决定编译哪些字符串。

通常首选这两种方法中的哪一种?

3 个答案:

答案 0 :(得分:5)

将所有字符串放在资源文件中。完成后,有几个很好的翻译包可用。这些软件包的一个有用的功能是允许您由不编程的人完成翻译。

还要记住,国际化(i18n)是一个很大的主题,需要考虑很多事情。这不仅仅是翻译字符串的问题。至少在网上搜索一下。您可能想阅读一本书:我使用Schmitt的 Windows的国际编程作为指南。这是一本来自微软出版社的旧书,我不得不通过二手书服务获得它;大部分更现代化的东西似乎都在将.NET应用程序国际化。

在不了解您的项目的情况下(什么类型的软件,目标受众是谁,您拥有什么样的组织,什么样的预算,为什么对国际化感兴趣等),这是最重要的我可以告诉你。

答案 1 :(得分:0)

通常,您会看到包含由key引用的字符串的特定于语言环境的资源文件。为不同的语言环境编译不同的版本是一个非常严格的解决方案,将成为维护的噩梦。使用资源文件还允许用户具有后备区域设置。

答案 2 :(得分:0)

还有另一种方法,只需将字符串放在源代码中,使用tr(“”)之类的东西,然后使用其中一个工具将它们剥离并转换它们。

适用于任何工具包/ GUI库 您可以标记要转换的文本和不要更改的文本(例如协议字符串或数据库键) 它使源更容易阅读和搜索,而不必查找IDS_MESSAGE34的含义。

资源文件的一个问题,至少在Windows / MFC中,是您无法在对话框中使用字符串表。所以你在stringtabel中有一些文本,而在对话框中有一些你必须单独dela。