移动Firemonkey应用程序本地化

3

我正在尝试使用Delphi XE5 update1构建一个多语言Firemonkey移动应用程序,用于Android平台。

我尝试过使用TLang组件,但它似乎完全失效了。是否有其他方法来编写我的方式以存储多语言字符串,并在我从应用程序菜单中选择一种语言时将它们带出来?


2013年,Sisulizer还不支持Firemonkey移动应用程序。 - Mitsoloth
3个回答

2
对于简单的项目,TLang运作良好,但你说得对:包含的“语言设计师”(双击TLang组件)不太好用,似乎有很多问题。我编写了一个工具来处理这些问题,并使外部翻译的CSV文件容易导入。
进度如下:
  1. 使用TLang解析您的源代码和资源中的字符串。
  2. 将它们导出到文本文件中。
  3. 在外部电子表格或翻译工具中进行翻译。
  4. 使用TLang转换器工具从CSV文件创建LNG文件。
  5. 将LNG文件导入TLang组件。
请参见TLang转换器以获取更多信息。
对于大型项目,您还可以查看一些商业产品,用于翻译/本地化Delphi FMX项目,例如: http://www.sisulizer.de http://www.tsilang.com http://www.regulace.org

TLang 不会翻译对话框文本(如 Yes、No、Cancel 等)。要更改这些文本,您需要更改 FMX.Dialogs.pas。 - Omar Reis

1

0

你可以使用GnuGetText,它与FireMonkey很好地配合使用。您只需在每个表单的构造函数中调用TranslateComponents即可。

这里是GnuGetText的Delphi实现:http://dxgettext.po.dk/

关于字符串提取:xfm文件不能直接识别。您需要将它们临时重命名(或复制)为dfm,然后运行提取工具。


1
我安装了GnuGetText,但你确定它能与FireMonkey一起使用吗?我使用了文件夹右键单击“提取翻译到模板”,它创建了一个只包含我的DataSnap服务器文件的.po文件。它排除了所有我的FireMonkey移动表单...另外,我有点难以找到如何使用它的说明...非常感谢您的答复,我将继续寻找如何使用它,并会再次回来。 - Mitsoloth
你使用dxgettext了吗?我编辑了我的答案,包含了链接。我们在http://snaptip.com成功地使用了这种方法,但我必须承认我只读了“firemonkey”,而没有读到“mobile”。我不确定dxgettext能否使用移动编译器进行编译,但如果可以的话,它应该是可行的。 - Steffen Binas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接