我很高兴地宣布发布了一个新的MediaWiki扩展,我在过去两周一直在努力。它的标题是实时翻译并允许通过谷歌翻译应用程序编程接口。它还允许您定义特定单词或短语及其翻译的“词典”;在“词典”中找到的原始文本中的任何单词或短语都将使用该词典进行翻译,而不是使用谷歌翻译。
其主要特点是:
- 使用谷歌翻译实时翻译页面内容。
- 能够在wiki中定义特殊单词的翻译,然后由Google Translate单独处理。
一些屏幕截图
在右上角具有实时翻译扩展的翻译控件的wiki页面:
翻译成荷兰语后的同一页:
词典页面简要总结了它包含的单词和语言数量:
编辑特殊单词词典的工作原理与编辑任何其他页面一样:
基金
我将此扩展创建为维基Works德克萨斯仪器公司顾问。感谢TI为此提供资金并允许根据GNU GPL进行许可。
关注点
对我来说,创建此扩展最有趣的部分是了解如何遍历页面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。
您可以获得最新版本的实时翻译在这里.
我很高兴宣布发布一个新的维基百科过去两周来我一直在做的扩展。
帖子视图: 8409年
相关的