代码之家  ›  专栏  ›  技术社区  ›  Johan Bresler

将现有的Delphi应用程序国际化(至少是多语言)最不费力的技术是什么?

  •  4
  • Johan Bresler  · 技术社区  · 17 年前

    我已经开发了大约300个应用程序,我想提供独立于操作系统的多语言功能。我已经编写了一个及时的翻译程序,但是在包含许多组件的应用程序中,这太慢了。你建议我怎么做?

    7 回复  |  直到 10 年前
        1
  •  4
  •   lestival    10 年前

    我听说 TsiLang components 很好,但是你正在寻找一个就地解决方案…

    我已经用过 GNU gettext for Delphi 它执行您想要的操作,从文本文件加载翻译并替换组件中的文本。它甚至有一个pas/dfm扫描器来自动生成英文翻译文件。

    还可以自动更改Pascal源代码,以插入getText过程代替静态字符串。如果我没有弄错的话,它只是在函数中添加了一个下划线,如下所示。

    ShowMessage('Hello'); // before
    ShowMessage(_('Hello')); // after
    

    我必须说,我上次使用这个方法已经两年了。

    有一点仍然存在问题,Delphi组件没有启用Unicode(D2009解决了这个问题),所以当您不更改组件时,对其他语言的支持仍然有限。

        2
  •  5
  •   gabr    17 年前

    我们正在使用 TsiLang 对它非常满意。

    最好的一点是,您可以使用字典(从现有的翻译中填充)对项目进行预翻译。

        3
  •  3
  •   gabr    17 年前

    一个好的免费解决方案是 GNU gettext for Delphi . 它有一些在tsilang中不存在的功能-例如,您可以将有关如何计算事物的知识(一个、两个、四个、一百二十个、许多…)放入翻译文件中,这样您就不必教每个程序了解这些东西。

    Delphi部分的许可非常宽松,但我不确定所包含的GNU内容会对您的应用程序产生多大的影响。

        4
  •  1
  •   Lars Truijens    17 年前

    得到 Multilizer . 它是用Delphi制造的,它可以像其他程序一样处理Delphi程序,对VCL有特殊的支持。对于每种语言,您甚至可以轻松地重做屏幕。使用multilizer,您可以使用不同的技术来翻译和运行您的程序。

        5
  •  1
  •   lkessler    17 年前

    Delphi2009增加了一个综合翻译环境/外部翻译经理 ITE和ETM现在都适用于Delphi和C++Builder。

    在codegear的文章中: What's New in Delphi and C++Builder 2009 他们说:

    综合翻译环境 (ITE)是IDE的一部分, 简化项目的本地化。 ITE可以创建新的本地化项目 来自现有项目。翡翠不 自动翻译文本,但 提供一个列出所有文本的对话框 需要本地化和字段 在其中输入相应的 翻译文本。一旦你进入 翻译后的文本 本地化项目,您可以设置另一个 语言处于活动状态并显示窗体 本地化文本;不必 切换区域设置并重新启动系统。 这可以让你表演 本地化,无需 本地化系统。

    外部翻译经理(ETM) 是一个工作的独立应用程序 其中包含dfm文件和文本字符串 源代码。尽管ETM没有 允许您创建新的本地化 项目,它确实提供了一个对话框 列出本地化文本和 翻译文本,类似于ITE。

    这就是我计划首先尝试的,一旦我达到了我想要使我的产品国际化的程度。

    然而,对我来说,最简单的部分就是翻译程序。最困难的部分是翻译帮助文件。

        6
  •  1
  •   stpe    17 年前

    我会说 GNU gettext for Delphi TMS Unicode Component Pack (以前在tntware下是免费的)以获得组件中的Unicode支持。

    要使用或让翻译人员使用我建议查看的免费跨平台gettext文件 Poedit 这可能会编辑.po文件。

        7
  •  1
  •   Mihaela    16 年前

    只是提 cxLocalizer 如果您拥有DexExpress组件。