我需要将几个 PHP 文件(HTML 代码 + PHP 标签)翻译成另一种语言。Google Translator's Kit 允许这样做,但会清除 PHP 标签,删除 class="" 属性(?!)并添加 html、head 标签等等。完全没用。
我如何(最好是批量)使用任何类型的自动翻译服务翻译这些文件?
谢谢。
我需要将几个 PHP 文件(HTML 代码 + PHP 标签)翻译成另一种语言。Google Translator's Kit 允许这样做,但会清除 PHP 标签,删除 class="" 属性(?!)并添加 html、head 标签等等。完全没用。
我如何(最好是批量)使用任何类型的自动翻译服务翻译这些文件?
谢谢。
您需要国际化代码。您需要将所有可翻译的字符串移出到一个单独的文件中,以便您可以通过 Google 将其推送,然后轻松放入结果中。
研究 PHP I18N 的主题将证明是有益的。
bmargulies 是最明确的方法。然而,这需要时间。
如果您处于紧要关头,或者想偷工减料,一个相对简单的方法是使用正则表达式自己过滤掉您的代码。匹配多行(preg 中的 /s 标志),存储匹配,并用哈希替换。任何哈希。只要确保它不映射到任何语言的任何内容。如果 HTML 标记被证明对 Google 来说很烦人,请对它们执行相同的操作。
用谷歌翻译。
替换回哈希值。瞧!任务完成!如果您感觉更大胆,与其将哈希替换回去,不如用适合 l18n 的结构替换它们可能会更值得。
谷歌翻译工具包是用于文档的 - 而不是源代码。您可以将程序的字符串组织为文档并在 Google 翻译工具包中进行翻译,事实上,有软件项目可以做到这一点,但这是人为的。正如这里的其他人所说,使用不同的方法会更好。
将可翻译的字符串放在单独的文件中 - 例如,您可以使用 YAML 或 JSON 之类的东西,或者将字符串组织为 PHP 数组(例如,在 MediaWiki 中就是这样做的)。每条消息都应该有一个密钥。对每种语言使用一个文件,或者使用一个包含所有语言的文件,以及按语言分组的字符串。(顺便说一句,使用 ISO 639-3 语言代码 - 不要自己编造。然后您将能够在 HTML 语言属性中重用它们。)
像这样组织字符串之后,编写函数,通过消息键和语言代码从这些文件中加载字符串,并使用这些函数来显示消息 - 永远不要使用硬编码的字符串。
最后,使用 Pootle、Transifex、Zanata 或 MediaWiki Translate 扩展等软件将您的文件进行翻译。
(免责声明:我是 MediaWiki 翻译扩展的开发人员。)
使用Gettext(即php-gettext)之类的东西是恕我直言的最佳方法。另一个广泛使用的选项是简单地将字符串提取到单独的文件(无论是 PHP 还是 JSON)并翻译这些文件。但是,我建议您使用 Gettext,因为您将使用标准格式和各种可用工具。