如何在不使用Google Translator套件的情况下翻译多个HTML文件

时间:2012-11-17 22:25:21

标签: php localization internationalization translation

我需要将几个PHP文件(HTML Code + PHP Tags)翻译成另一种语言。 谷歌翻译工具包允许这样做,但清除PHP标签,删除class =“”属性(?!)并添加html,head标签&什么不是。完全无用。

我如何(理想情况下是批量处理)使用任何类型的自动翻译服务翻译这些文件?

感谢。

4 个答案:

答案 0 :(得分:1)

您需要将代码国际化。您需要将所有可翻译的字符串移到一个单独的文件中,这样您就可以通过Google推送它,然后轻松地将结果放入其中。

研究PHP I18N的主题将证明是有益的。

答案 1 :(得分:1)

bmargulies是最明确的做法。但是,这需要时间。

如果您处于紧张状态,或者想要偷工减料,一种相对简单的方法是使用正则表达式来过滤自己的代码。匹配多行(preg中的/ s标志),存储匹配,并用哈希替换。任何哈希。只要确保它不会映射到任何语言的任何内容。 如果HTML标签被证明对谷歌感到烦恼,请对HTML标签执行相同的操作。

与Google翻译。

取代哈希。瞧!任务完成!如果你感觉更大胆,而不是更换后面的哈希,用一个18英寸的合适结构替换它们可能会更有价值。

答案 2 :(得分:0)

Google Translator工具包适用于文档 - 与源代码无关。您可以将程序的字符串组织为文档并在Google Translator工具包中进行翻译,事实上,有一些软件项目可以实现,但它是人为的。如其他人所说,使用不同的方法会好得多。

将可翻译的字符串放在单独的文件中 - 例如,您可以使用YAML或JSON之类的东西,或者只是将字符串组织为PHP数组(例如,在MediaWiki中完成它的方式)。每条消息都应该有一个密钥。每种语言使用一个文件,或者使用所有语言的一个文件,以及按语言分组的字符串。 (顺便说一下,使用ISO 639-3语言代码 - 不要自己编写。然后你就可以在HTML lang属性中重用它们了。)

在组织完字符串之后,编写通过消息键和语言代码从这些文件加载​​字符串的函数,并使用这些函数显示消息 - 永远不要使用硬编码字符串。

最后,使用Pootle,Transifex,Zanata或MediaWiki Translate扩展程序等软件将您的文件翻译成翻译。

(免责声明:我是MediaWiki Translate扩展程序的开发人员。)

答案 3 :(得分:0)

使用像Gettext这样的东西(即php-gettext)是恕我直言的最佳方法。另一个广泛使用的选项是简单地提取字符串以分离文件(无论是PHP还是JSON)并翻译它们。但是我建议使用Gettext,因为您将使用具有各种可用工具的标准格式。