代码之家  ›  专栏  ›  技术社区  ›  jpfollenius Rob Kennedy

德尔菲与I18N

  •  8
  • jpfollenius Rob Kennedy  · 技术社区  · 15 年前

    Delphi是否以任何方式支持国际化?

    我已经看到可以为一个项目添加不同的语言,但这似乎创建了DFM文件的多个实例。因此不能在运行时更改语言,我说得对吗?

    你如何处理国际化(如果你这样做的话)?有什么最佳实践吗?

    5 回复  |  直到 14 年前
        1
  •  1
  •   Toon Krijthe    15 年前

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

    更好的选择(在我看来)是创建一个基础语言版本,并使用另一种语言的翻译工具。我们使用 third party translator 在可执行文件和DLL上工作。它替换资源中的字符串并创建新的二进制文件。

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

        2
  •  5
  •   Bruce McGee    15 年前

    Delphi提供了一些工具来实现这一点。

    这是一个 tutorial 对于Delphi 2005,以及 video 尼克霍奇斯展示了德尔福2009的最新版本。

        3
  •  1
  •   Marco van de Voort    14 年前

    还有dxgetext:

    http://dxgettext.po.dk/

    传统上,用于更改语言运行时而不重新启动的工具之一。

    请注意,使用delphi/unicode时,此包的代码更改量已经减少(不再需要更改任何resourcestring的使用)。

        4
  •  0
  •   Ralph M. Rickenbach    15 年前

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

    在Delphi2006中的工具、选项、翻译工具选项下,您可以配置翻译工具,尤其是翻译库。它可以在翻译经理的视图下找到。所有翻译后的字符串都将是资源字符串,并且可以存储在特定语言的dll中。搜索翻译管理器的帮助将为您指明正确的方向。

        5
  •  -1
  •   IanH    15 年前

    我赞成使用tsilang组件的建议(www.sicomponents.com)。我刚刚使用它们从仅英语升级到运行时可选的英语+中文,并且发现这个过程比我预期的要容易得多。最终的结果并不完美,但肯定是足够好的。