如何使用翻译扩展通过api编写翻译的MediaWiki文章?

时间:2012-12-05 14:22:37

标签: api localization internationalization mediawiki machine-translation

我使用依赖于WikiMate的自编程PHP脚本,通过其API将数百篇文章写入MediaWiki(版本1.20.2)。目前,这些文章只用英文写成。但我想使用the Translate extension翻译它们,所以我必须批准每篇文章进行翻译。

对于每篇文章都有英文和法文文档,那么有没有使用API​​一次性用英文(默认)和翻译文章(法文)撰写文章的自动方式?翻译应该与翻译扩展兼容。

2 个答案:

答案 0 :(得分:0)

你是什么意思“批准每篇文章进行翻译”?要执行“标记为翻译”操作,这会添加<! - T:1 - >标签?不幸的是,目前没有网络API可以做到这一点。

如果您非常确定这两种语言的页面具有非常相似的结构,您可以尝试编写自己的脚本,以便按块导入它们,但是也没有聪明的内置选项。< / p>

如果您为此编写任何解决方案,那么分享它们会非常好:)

(评论:我是Translate扩展程序的开发人员之一。)

答案 1 :(得分:0)

所以这就是我开始工作的方式。您可以将方法execute()SpecialPageTranslation.php复制到自定义类。此方法将文章标记为可翻译。只需通过Title实例化一个新的$title = Title::newFromText( 'Title_of_my_article' );对象,将其传递给所需文章的标题即可。将$this引用的所有方法也复制到您的自定义类。例如。方法$this->markForTranslation(..)及其依赖项。

调用execute()方法后,会将文章标记为翻译,以便您可以提交已翻译的文章。我只是通过给英文翻译的文章提供名称Title_of_my_article/1/enTitle_of_my_article/en并使用默认的MW API提交它们。 (请注意1/en标记您提交的已翻译部分,因此您将整篇文章作为翻译部分提交)

可悲的是,Translate扩展文档记录很少,因此很难理解它是如何工作的。

相关问题