我使用依赖于WikiMate的自编程 PHP 脚本通过其 API 将数百篇文章写入 MediaWiki(版本 1.20.2)。目前,这些文章只用英文写成。但是我想使用Translate 扩展来翻译它们,所以我必须批准每篇文章进行翻译。
对于每篇文章,已经有一个英文和一个法文文档,那么是否有任何自动化方法可以使用 API 一次以英文(默认)和翻译文章(法文)编写文章?翻译应该与翻译扩展兼容。
我使用依赖于WikiMate的自编程 PHP 脚本通过其 API 将数百篇文章写入 MediaWiki(版本 1.20.2)。目前,这些文章只用英文写成。但是我想使用Translate 扩展来翻译它们,所以我必须批准每篇文章进行翻译。
对于每篇文章,已经有一个英文和一个法文文档,那么是否有任何自动化方法可以使用 API 一次以英文(默认)和翻译文章(法文)编写文章?翻译应该与翻译扩展兼容。
您是什么意思“批准每篇文章进行翻译”?要执行“标记翻译”操作,添加 <!--T:1--> 标签?不幸的是,目前没有 Web API 可以做到这一点。
如果您非常确定两种语言的页面具有非常相似的结构,您可以尝试编写自己的脚本来逐块导入它们,但也没有聪明的内置选项。
如果您为此编写任何解决方案,您将非常高兴分享它们:)
(评论:我是翻译扩展的开发者之一。)
所以这就是我让事情发挥作用的方式。您可以将方法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 扩展的文档记录很差,因此很难理解它是如何工作的。