现有的Delphi应用程序中,哪种技术是最省力的国际化(至少支持多语言)?

4

我已经开发了大约300个应用程序,我希望这些应用程序可以独立于操作系统提供多语言支持。我已经编写了一个即时翻译器,但在具有许多组件的应用程序中速度太慢。您有什么建议?

7个回答

5
我们正在使用 TsiLang,并对其感到非常满意。
其中最好的一点是您可以使用字典(从现有翻译中填充)来预先翻译项目。

谢谢你,我会在明天给你点赞,因为今天已经没有了。 :) - Johan Bresler

4
我听说TsiLang组件很好,但你正在寻找一个就地解决方案...
我使用过GNU gettext for Delphi,它正是你想要的东西,它从文本文件加载翻译并替换您组件中的文本。它甚至有一个pas/dfm扫描器,可以自动生成英语翻译文件。
还可以自动更改Pascal源代码,以在静态字符串的位置注入gettext过程。如果我没记错的话,它只是将下划线作为函数添加到其中,如下所示。
ShowMessage('Hello'); // before
ShowMessage(_('Hello')); // after

我必须说,自从我上次使用这种方法已经过去2年了。
有一件事仍然存在问题,Delphi组件没有启用Unicode(D2009修复了这个问题),因此如果您不更改组件,则仍然只能受限地支持其他语言。

3
一个好的免费解决方案是GNU gettext for Delphi。它具有一些TsiLang没有的功能-例如,您可以将有关如何计数事物(一个、两个、四个、一百个和两个、许多...)的知识放入翻译文件中,以便您不必教每个程序了解这些内容。
Delphi部分的许可证非常宽松,但我不确定包含的GNU内容会对您的应用程序产生多大影响。

1

如果您拥有DexExpress组件,只是提一下cxLocalizer


1

1
获取Multilizer。它是使用Delphi制作的,可以处理Delphi程序,并具有对VCL的特殊支持。您甚至可以轻松地为每种语言重新设计屏幕。借助Multilizer,您可以使用不同的技术来翻译和运行您的程序。

1

Delphi 2009增加了一个集成翻译环境/外部翻译管理器。现在ITE和ETM都可用于Delphi和C++Builder。

在Codegear的文章《Delphi和C++Builder 2009的新功能》中,他们指出:

集成翻译环境(ITE)是IDE的一部分,可简化项目本地化。ITE可以从现有项目创建新的本地化项目。ITE不会自动翻译文本,但提供对话框列出所有需要本地化的文本和相应翻译文本的字段。一旦您输入了翻译文本并构建了本地化项目,您可以设置另一种语言为活动状态,并在本地化文本中显示表单;您无需切换区域设置并重新启动系统。这使您能够执行本地化而无需本地化系统。
外部翻译管理器(ETM)是一个独立的应用程序,可与DFM文件和源代码中的文本字符串一起使用。虽然ETM不允许您创建新的本地化项目,但它提供类似于ITE的列出本地化文本和翻译文本的对话框。
这是我计划首先尝试的方法,一旦我想要国际化我的产品。
然而,对我来说,容易的部分是翻译程序。难的部分是翻译帮助文件。

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