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

有帮助吗?

解决方案

我听说 TsiLang组件很不错,但是你看到的是就地解决方案......

我使用了 Delphi的GNU gettext ,它完全符合您的要求,它加载了翻译从文本文件中替换组件中的文本。它甚至还有一个pas / dfm扫描仪来自动生成英文翻译文件。

也可以自动更改pascal源代码,以便在静态字符串中注入gettext过程。如果我没弄错的话,只需在其中添加一个下划线作为函数,如下所示。

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

我必须说我上次使用这种方法已有2年了。

有一件事仍然存在问题,Delphi组件未启用unicode(D2009修复此问题),因此当您不更改组件时,您仍将对其他语言提供有限的支持。

其他提示

我们正在使用 TsiLang 并对此感到非常满意。

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

一个好的免费解决方案是 Delphi的GNU gettext 。它具有TsiLang中不存在的一些功能 - 例如,您可以将有关如何计算事物(一,二,四,一,二,多......的不同结局)的知识放入翻译文件中,这样您就可以我必须教每个程序知道这些东西。

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

获取 Multilizer 。它是在Delphi中制作的,它可以处理特殊支持VCL的Delphi程序。您甚至可以轻松地为每种语言重做屏幕。使用Multilizer,您可以使用不同的技术来翻译和运行您的程序。

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

在Codegear的文章中: Delphi和C ++ Builder 2009中的新功能,他们说:

  

综合翻译环境   (ITE)是IDE的一部分   简化了项目的本地化。   ITE可以创建一个新的本地化项目   来自现有项目。 ITE没有   自动翻译文字,但是   提供列出所有文本的对话框   需要本地化和字段   在其中输入相应的   翻译文本。一旦你进入   翻译后的文字并建成了   本地化项目,你可以设置另一个   语言有效并显示表格   本地化的文字;你不必   切换区域设置并重新启动系统。   这允许您执行   本地化而不需要   本地化系统。

     

外部翻译管理器(ETM)   是一个有效的独立应用程序   使用DFM文件和文本字符串   源代码。虽然ETM没有   允许您创建新的本地化   项目,它确实提供了一个对话框   列出本地化的文本和   翻译文本,类似于ITE。

这是我计划在我想要将我的产品国际化时首先尝试的。

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

我想结合 Delphi的GNU gettext .tmssoftware.com / site / tmsuni.asp“rel =”nofollow noreferrer“> TMS Unicode Component Pack (之前在TntWare下免费),以获得组件中的unicode支持。

与我一起工作,或者让翻译人员使用gettext文件,我建议您查看免费的跨平台 Poedit 可以编辑.po文件。

如果您拥有DexExpress组件,请提及 cxLocalizer

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top