我开发了大约300个应用程序,我想提供独立于操作系统的多语言功能。我已经编写了一个即时翻译器,但在具有许多组件的应用程序中这个速度太慢了。你有什么建议我做的?
答案 0 :(得分:5)
我们正在使用TsiLang并对此非常满意。
最好的一点是,您可以使用字典(从现有翻译中填写)预翻译项目。
答案 1 :(得分:4)
我听说TsiLang components很好,但是你正在寻找一个现场解决方案......
我使用GNU gettext for Delphi完全符合您的要求,它会从文本文件加载翻译并替换组件中的文本。它甚至还有一个pas / dfm扫描仪来自动生成英文翻译文件。
也可以自动更改pascal源代码,以便在静态字符串中注入gettext过程。如果我没弄错的话,只需在其中添加一个下划线作为函数,如下所示。
ShowMessage('Hello'); // before
ShowMessage(_('Hello')); // after
我必须说我上次使用这种方法已有2年了。
有一件事仍然存在问题,Delphi组件未启用unicode(D2009修复此问题),因此当您不更改组件时,您仍将对其他语言提供有限的支持。
答案 2 :(得分:3)
一个好的免费解决方案是GNU gettext for Delphi。它具有TsiLang中不存在的一些功能 - 例如,您可以将有关如何计算事物(一,二,四,一,二,多......的不同结局)的知识放入翻译文件中,这样您就可以我必须教每个程序知道这些东西。
Delphi部分的许可证非常宽松,但我不确定所包含的GNU内容会对您的应用程序产生多大影响。
答案 3 :(得分:1)
获取Multilizer。它是在Delphi中制作的,它可以处理特殊支持VCL的Delphi程序。您甚至可以轻松地为每种语言重做屏幕。使用Multilizer,您可以使用不同的技术来翻译和运行您的程序。
答案 4 :(得分:1)
Delphi 2009增加了一个集成翻译环境/外部翻译管理器 ITE和ETM现在可用于Delphi和C ++ Builder。
在Codegear的文章中:What's New in Delphi and C++Builder 2009,他们声明:
综合翻译环境 (ITE)是IDE的一部分 简化了项目的本地化。 ITE可以创建一个新的本地化项目 来自现有项目。 ITE没有 自动翻译文字,但是 提供列出所有文本的对话框 需要本地化和字段 在其中输入相应的 翻译文本。一旦你进入 翻译后的文字并建成了 本地化项目,你可以设置另一个 语言有效并显示表格 本地化的文字;你不必 切换区域设置并重新启动系统。 这允许您执行 本地化而不需要 本地化系统。
外部翻译管理器(ETM) 是一个有效的独立应用程序 使用DFM文件和文本字符串 源代码。虽然ETM没有 允许您创建新的本地化 项目,它确实提供了一个对话框 列出本地化的文本和 翻译文本,类似于ITE。
这是我计划在我想要将我的产品国际化时首先尝试的。
然而,对我而言,简单的部分是翻译程序。困难的部分是翻译帮助文件。
答案 5 :(得分:1)
我会说GNU gettext for Delphi与TMS Unicode Component Pack(以前在TntWare下免费)结合使用,可以在组件中获得unicode支持。
要使用翻译器,或者让翻译人员使用,我建议您查看可以编辑.po文件的免费跨平台Poedit的gettext文件。
答案 6 :(得分:1)
如果您拥有DevExpress组件,请提及cxLocalizer。