我使用依赖于WikiMate的自编程PHP脚本,通过其API将数百篇文章写入MediaWiki(版本1.20.2)。目前,这些文章只用英文写成。但我想使用the Translate extension翻译它们,所以我必须批准每篇文章进行翻译。
对于每篇文章都有英文和法文文档,那么有没有使用API一次性用英文(默认)和翻译文章(法文)撰写文章的自动方式?翻译应该与翻译扩展兼容。
答案 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/en
和Title_of_my_article/en
并使用默认的MW API提交它们。 (请注意1/en
标记您提交的已翻译部分,因此您将整篇文章作为翻译部分提交)
可悲的是,Translate扩展文档记录很少,因此很难理解它是如何工作的。