德尔福和i18n

时间:2009-08-13 13:40:57

标签: delphi internationalization delphi-2009

Delphi是否支持国际化?

我已经看到我可以为项目添加不同的语言,但这似乎创建了dfm文件的多个实例。我是否正确,因此语言无法在运行时更改?

你如何处理国际化(如果你这样做)?有没有最好的做法?

5 个答案:

答案 0 :(得分:5)

Delphi附带了一些工具来实现这一目标。

以下是Delphi 2005的tutorial和Nick Hodges的video,展示了Delphi 2009的最新版本。

答案 1 :(得分:1)

我曾经尝试过语言的运行时更改。它工作得很好,但我需要自己编写大量代码(并绕过dfm文件)。问题是,这很麻烦,你几乎不需要这个。

更好的选择(在我看来)是创建基本语言版本并使用翻译工具用于其他语言。我们使用适用于可执行文件和dll的third party translator。它替换资源中的字符串并创建新的二进制文件。

此工具的一大优点是它显示已翻译的对话框(仅限标准窗口组件),因此如果标签太大,您可以获得直接反馈。

答案 2 :(得分:1)

Amd然后有dxgettext:

http://dxgettext.po.dk/

传统上是用于在不重新启动的情况下更改语言运行时的工具之一。

请注意,使用Delphi / unicode时,此软件包的代码更改量已减少(一个不再需要更改任何资源字符串使用)

答案 3 :(得分:0)

之前我一直在使用SiComponents。它们允许您独立于可执行文件更改所有文本。您可以在可执行文件中嵌入不同的语言(不推荐)或从文件加载它们。还有一个支持翻译的编辑器。它们非常好,稳定,快速。

在Delphi 2006的工具,选项,翻译工具选项下,您可以配置翻译工具,尤其是翻译库。它可以在View,Translation Manager下找到。所有翻译的字符串都是ressource字符串,可以存储在特定于语言的dll中。搜索翻译管理器的帮助会指出正确的方向。

答案 4 :(得分:-1)

我接下来推荐使用TsiLang组件(www.sicomponents.com)。我刚刚用它们从英文升级到英文+中文,可以在运行时选择,并且发现这个过程比我预期的要容易得多。最终结果并不完美,但肯定足以与之合作。