Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用翻译扩展通过api编写翻译后的MediaWiki文章?_Api_Localization_Internationalization_Mediawiki_Machine Translation - Fatal编程技术网

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

如何使用翻译扩展通过api编写翻译后的MediaWiki文章?,api,localization,internationalization,mediawiki,machine-translation,Api,Localization,Internationalization,Mediawiki,Machine Translation,我通过一个MediaWiki(版本1.20.2)的API,使用一个依赖于的自编程PHP脚本,在其中写了数百篇文章。目前,这些文章都是用英语写的。但我想用英文翻译,所以我必须批准每一篇文章的翻译 对于每一篇文章,已经有一个英文和一个法文文档,那么是否有任何自动的方法可以使用API同时用英文(默认)和翻译的文章(法文)编写文章?翻译应该与翻译扩展兼容。你说的“批准每一篇文章进行翻译”是什么意思?要执行“为翻译标记”操作,需要添加标记吗?不幸的是,目前没有web API来实现这一点 如果您非常确定这两

我通过一个MediaWiki(版本1.20.2)的API,使用一个依赖于的自编程PHP脚本,在其中写了数百篇文章。目前,这些文章都是用英语写的。但我想用英文翻译,所以我必须批准每一篇文章的翻译

对于每一篇文章,已经有一个英文和一个法文文档,那么是否有任何自动的方法可以使用API同时用英文(默认)和翻译的文章(法文)编写文章?翻译应该与翻译扩展兼容。

你说的“批准每一篇文章进行翻译”是什么意思?要执行“为翻译标记”操作,需要添加标记吗?不幸的是,目前没有web API来实现这一点

如果您非常确定这两种语言的页面具有非常相似的结构,那么您可以尝试编写自己的脚本,将它们逐块导入,但也没有聪明的内置选项

如果您为此编写了任何解决方案,请与我们分享:)


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

所以这就是我如何让事情运转起来的。您可以将方法
execute()
specialpagetransation.php
复制到自定义类中。此方法将文章标记为可翻译。只需使用
$title=title::newFromText('title_of_my_article')实例化一个新的
title
对象,将所需文章的标题传递给它即可。将
$this
引用的所有方法也复制到自定义类中。例如,方法
$this->markForTranslation(..)
及其依赖项

调用
execute()
方法后,将标记一篇文章进行翻译,以便提交翻译后的文章。为此,我只需为英文翻译的文章提供名称
Title\u of_my\u article/1/en
Title\u of_my\u article/en
,并使用默认的MW API提交它们。(请注意,
1/en
标记您提交的翻译部分,因此您将提交整篇文章,就像提交翻译部分一样)


遗憾的是,Translate扩展的文档记录很差,因此很难理解它是如何工作的。

哦,如果这不是一个秘密,您能告诉我们您在哪个网站上使用过它吗?我们关心我们的用户:)这是一个私人维基。没有密码您无法访问它。问题不清楚。您的意思是您已经有了源页面和翻译,并且希望将它们移动到翻译系统中吗?请参阅迁移到翻译的说明:是的,我的意思是“标记用于翻译”操作。我还想过自动划分页面,但我不确定是否有足够的启发式,因为页面的结构并不完全相同。IMO唯一的解决方案是告诉Translate扩展立即翻译整个页面,而不是对其进行黑客攻击,至少除非有人点击“markfortranslate”操作来编辑翻译。有办法吗?没有。扩展的要点是将文本分成小块,并逐块翻译。协调两个现有文本并不是扩展目前知道的事情。我想把两个完整的文本作为彼此的翻译比什么都不做要好一点,因为至少它使用languages/>标记为您提供了一个舒适的语言切换程序,但这确实是一件小事。那么如何使用Translate扩展将两个完整的文本设置为彼此的翻译呢?