2

WikiMateに依存する自己プログラムされたPHPスクリプトを使用して、APIを介してMediaWiki(バージョン1.20.2)に何百もの記事を書き込みます。現時点では、記事は英語でのみ書かれています。しかし、私は翻訳拡張機能を使用してそれらを翻訳したいので、翻訳のためにすべての記事を承認する必要があります。

すべての記事にはすでに英語とフランス語のドキュメントがありますが、APIを使用して英語(デフォルト)と翻訳された記事(フランス語)で記事を同時に書く自動化された方法はありますか?翻訳は、翻訳拡張機能と互換性がある必要があります。

4

2 に答える 2

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、デフォルトのMWAPIを使用してコミットします。(1/enこれは、コミットする翻訳済みセクションをマークするため、記事全体を翻訳済みセクションと同じようにコミットすることに注意してください)

残念ながら、Translate拡張機能は十分に文書化されていないため、どのように機能するかを理解するのは非常に困難です。

于 2013-01-16T08:52:13.313 に答える
0

「すべての記事の翻訳を承認する」とはどういう意味ですか? <!--T:1--> タグを追加する「翻訳用マーク」アクションを実行するには? 残念ながら、現在、これを行うための Web API はありません。

両方の言語のページが非常によく似た構造を持っていると確信している場合は、それらをチャンクごとにインポートする独自のスクリプトを作成してみることができますが、そのための巧妙な組み込みオプションもありません。

そのためのソリューションをコーディングする場合は、それらを共有していただければ幸いです:)

(コメント: 私は Translate 拡張機能の開発者の 1 人です。)

于 2012-12-05T22:50:30.457 に答える