新的MediaWiki扩展:实时翻译

我很高兴地宣布发布了一个新的MediaWiki扩展,我在过去两周一直在努力。它的标题是实时翻译并允许通过谷歌翻译应用程序编程接口。它还允许您定义特定单词或短语及其翻译的“词典”;在“词典”中找到的原始文本中的任何单词或短语都将使用该词典进行翻译,而不是使用谷歌翻译。

其主要特点是:

  • 使用谷歌翻译实时翻译页面内容。
  • 能够在wiki中定义特殊单词的翻译,然后由Google Translate单独处理。

一些屏幕截图

在右上角具有实时翻译扩展的翻译控件的wiki页面:

在右上角具有实时翻译扩展的翻译控件的wiki页面。

翻译成荷兰语后的同一页:

翻译成荷兰语后的同一页

词典页面简要总结了它包含的单词和语言数量:

字典页面简要总结了它包含的单词和语言数量。

编辑特殊单词词典的工作原理与编辑任何其他页面一样:

编辑特殊单词词典的工作原理与编辑任何其他页面一样。

基金

我将此扩展创建为维基Works德克萨斯仪器公司顾问。感谢TI为此提供资金并允许根据GNU GPL进行许可。

WikiWorks、MediaWiki咨询

关注点

对我来说,创建此扩展最有趣的部分是了解如何遍历页面DOM,并使用JavaScript(和jQuery)将实际文本仅发送到Google Translate API。之所以需要这一步,是因为GT API将翻译请求限制为500个字符,所以不可能发送整个页面。我花了一段时间才弄明白这一点,我仍然认为这是一个相当蹩脚的限制,因为它会导致上下文的丢失,从而导致翻译质量下降。

扩展的其余部分相当简单,没有包含我以前没有做过的任何内容。特殊单词字典存储在一个简单的数据库表中(字段:单词id、单词text、单词language和单词primary),可以通过2个API模块访问。一个是查询为一种语言定义的特殊单词的列表,另一个是获取一组特殊单词从一种语言到另一种语言的翻译。当您请求页面的第一个翻译时,第一个API模块被点击,结果用于插入非翻译跨距,这使得Google Translate忽略了特殊单词周围的内容。在另一个模块被点击之后,特殊单词被其翻译替换,最后脚本向GT API发送了大量请求。

啊,别忘了,我用了XOR。我不骗你,源代码或它没有发生(请参阅最后一个函数)。

状态和未来

Live Translate目前的版本是0.2,包含TI最初要求的所有功能。它看起来很稳定,可以投入生产使用。当然,如果出现错误,它们将得到解决,并将发布新的次要版本。我一直在考虑的一个很酷的新功能可能会在某个时候添加,它是__LIVETRANSLATE__和__NOLIVETRASSLATE__神奇的单词,允许每页显示或隐藏翻译控件。雅龙牌手表还建议设置每个命名空间。如果您有一些很酷的新功能,请随时在实时翻译讨论页(您还可以在那里寻求支持并指出错误)。如果您想为任何新功能提供资金,请联系WikiWorks。

您可以获得最新版本的实时翻译在这里.

我很高兴宣布发布一个新的维基百科过去两周来我一直在做的扩展。

关于的3个想法“新的MediaWiki扩展:实时翻译”

  1. 如何在普通维基百科上使用此功能?例如在乌克兰维基上?

    我记得P.S.Live翻译是微软的TM。

留下回复

该网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据.