Help:Extension:Translate/ページの翻訳管理

This page is a translated version of the page Help:Extension:Translate/Page translation administration and the translation is 99% complete.

目的。ページ翻訳機能はウィキページの他言語への翻訳状況を管理します。 これは個々の翻訳の内容が通常翻訳元ページと同一であることを意味します。 このことは、異なる言語版のウィキペディアで、対応する項目の内容が互いに完全に独立であることと、大きく違っています。 ページは元の言語から他の言語へと翻訳されることが想定されていますが、他の言語での翻訳が既にある場合、翻訳者はそれを利用することもできます。

理由。 こうした補助機能がなければ、多数のページの翻訳は、時間がかかるのは良い方で、最悪の場合には管理不能な乱雑状態になるでしょう。 ページ翻訳機能があれば、混乱を避け、翻訳作業を構造化することができます。 中心となるアイディアは、原文を小さな単位に分割し、それぞれ独立して翻訳するようにしたことです。 原文が小単位に分割されているので、加えた変更はすべて独立し、翻訳者は原文中の変更のあった単位の翻訳だけを更新すればよいのです。 また、この機能により、翻訳者はすべての作業を一度にすませる必要がなくなるので、作業しやすいサイズの単位を翻訳して複数の翻訳者で作業をシェアしたり、翻訳を途中でやめて後でまた続けるということが可能になります。

対象者。このページではページ翻訳のチュートリアルの内容をくわしく述べることにして、システムの機能を掘り下げて考察するとともに、事例ごとに最善慣行を提案します。 対象にはページ翻訳管理者と、翻訳対象ページの元言語の編集者の皆さんを広く含めており、翻訳対象文の変更を承認する管理者権限があるかないかを問いません。

MediaWiki.org 上で翻訳管理者としての権限を得るには、Project:Requests で申請してください。 Meta上で権限を得るには、Meta:Requestsで申請してください。 Commons上で権限を得るには、Commons:Noticeboardで申請してください。

翻訳対象ページの一連の流れ

役割。ウィキページを執筆し翻訳する過程では複数の人が関わります。最初の執筆者がページを作ると編集者が誤字を訂正し、ページ翻訳管理者がページに翻訳対象の印をつけると翻訳者が翻訳し、誰かがページに変更を加えると翻訳管理者がその変更に翻訳対象の印をつけ、翻訳者が翻訳を更新します。 これらの役割に多少の重複はあっても、翻訳を支障なく行うための最終責任はページ翻訳管理者が担います。 この管理者はページが翻訳対象として整備できたか判断し、適切にセグメント分けしたことを確かめ、さらに変更を承認 (または訂正) します。

準備。翻訳作業は、まず元の内容を書くことから始まります。 この翻訳拡張機能(Extension:Translate)を使わずに既に翻訳が終わっている場合には、下記の翻訳の移行に関する節をご覧ください。 迅速に大量に翻訳するには、翻訳元の文章をいい感じに整形することが必要不可欠です。 ページに翻訳対象の印をつける前に校正を他の人に頼み、できれば言語の専門家に頼んでより明確かつ簡潔にまとめる校閲を受けてください。 難しい語彙や難解な文があると、多くの場合ボランティアの翻訳作業は滑らかに進みません。 マークアップについてもその通りで、翻訳者にとって問題になることがあり、翻訳管理者もまた問題の回避することができます。これについては下記のマークアップの扱い方についての節で説明しています。 翻訳元の文章に変更を加えると、当然ながら対応する既存の翻訳版すべてに更新作業が発生するため、ページの内容が安定するまで管理者によるマークアップはしないほうが賢明です。 一方で変更は起こるものであり、それを引き受けるシステムもまたうまく処理します。下記の変更の扱い方についての節をご覧ください。

タグ付け。上記をふまえてテキストが翻訳向けに整備できたなら、翻訳可能な部分を‎<translate>タグで囲み、ページに‎<languages /> (言語) バーを追加する処理は誰でも担当できます。 言語バーを付けると、「全ての翻訳ページ」という特別ページのリストに追加されます。ページごとに翻訳作業の進捗状況と更新の必要度をパーセンテージで表示します。 翻訳対象ページをまとめた唯一の場所です。 下記の実際のタグ付けの方法の節もご覧ください。 システムはタグ付けを検知すると、そのページに翻訳対象の印をつけリンクを張ります。 さらに、閉じタグを忘れたまま保存しようとすると、システム警告を表示して保存を予防します。 翻訳対象ページはさらに Special:PageTranslation に「翻訳が提案されているページ」 (ready for marking) として表示されます。

翻訳対象に指定。タグ付けが終わったら、翻訳管理者がページを翻訳対象に指定します。 ページ翻訳の例にインターフェース(翻訳画面)について解説があります。 翻訳管理者の責務は、適切にセグメント分けし、タグ付けが適切かを確認することです。 その間に、そのページに更新があれば再度翻訳対象に指定することもできます。 分裂を抑えて更新する方法をご覧ください。 ページの翻訳対象への指定では MediaWiki のジョブ キューを用いたバックグラウンド処理を開始します。 この処理は各翻訳ページに対して行われ、ページを再生成しています。つまり、翻訳ページの雛形の更新が反映され、古くなってしまった翻訳はピンク色の背景で強調されます。 反対に、翻訳インターフェイスはすぐに更新されます。

更新。編集者は翻訳可能な元文章を更新することもできます。この更新は、ページを見ている編集者に元の言語で表示され、再び翻訳が完了すれば翻訳対象に指定されている翻訳可能ページの、最新版の翻訳単位から抜き出されます。元文章に新たな更新があっても、すべての翻訳単位の更新が翻訳されていれば、その翻訳ページは100%更新済みと表示されます。翻訳可能なページを元の言語で表示すれば、翻訳対象に指定されていない更新の存在が簡単に確認できます。冒頭に「このページを翻訳」というお知らせがあり、更新のためのリンクがあります。

無効化。翻訳対象ページの原文に変更があった際、翻訳管理者は節ごとに「⧼tpt-action-nofuzzy⧽」という選択肢を使用できるようになります。 節を無効化すると、翻訳言語ではその節はピンク色の背景色になり、翻訳インターフェース上では翻訳者に対して時計のアイコンが表示されます。 節を無効化しないと、翻訳されたページの閲覧者には更新についての表示はされず、翻訳者は更新を確認するために翻訳インターフェースを用いる必要があります。

翻訳元言語。翻訳元言語の言語コードが付いた翻訳対象ページもあります。これは、翻訳元ページに使用される翻訳関連の特殊なタグやその他のマークアップを含んでいません。このページはインターフェイスからリンクされませんが、例えばページ (一般に翻訳の雛形) を参照読み込みする際やそれを書き出す際に役立ちます。 たとえば、今読んでいるこのページは、Help:Extension:Translate/Page translation administration/enにマークアップをしない状態で載せてあります。

元文章の更新。拡張機能は、翻訳可能な元文章のページをそのウィキでの標準の言語だと想定します。 管理者は 特定のページの言語設定を変更するために Special:PageLanguage ページを使用することができ、翻訳用の元文章ページにすることができます。 詳細はページの本文言語を参照。

翻訳した文章。翻訳途中のページではページ内に翻訳されていない別の言語が含まれてしまうことがあります。 翻訳先ページでは未翻訳の翻訳単位にテキストの言語と書字方向がタグ付けされており、CSS が正しく適用されるようになっています。 しかしながら、現状 MediaWiki ではページレベルでしかパースする言語を設定できません。 前後の文が未翻訳でも、マジックワードやパーサ関数はすべて翻訳先言語を使用します。 これは、数字や日付のフォーマットを整える際などに望ましくない不一致を招く可能性があります。 マジック関数やパーサタグの中には出力言語を指定できるものがあり、その場合にはマジックワードの {{TRANSLATIONLANGUAGE}} を使うと未翻訳の文単位は翻訳元言語で、翻訳済み単位は翻訳先言語で表示できます。

翻訳依頼を閉じる。翻訳可能なページは一定期間だけ関心を集める場合があるでしょう。発表や定期的な更新状況の報告、今月の注目記事といったものです。このようなページの翻訳を維持するものの、翻訳インターフェースからは非表示にできます。追加の翻訳が妨げられることはないですが、編集者がうっかり翻訳をはじめてしまうことは大分減るでしょう。非推奨にしたり戻したりは Special:PageTranslation から行います。

優先する言語。特に翻訳が必要な言語を定義することも可能です。言語リストが空の場合、すべての言語を許可しているものだと解釈されます。空でなければそのページでは、優先リストにない言語では、機能的に防止措置されたページ(直前の段落を参照)となり、翻訳する際には翻訳者にお知らせが行なわれます。他の言語への翻訳を防止することもでき、ある翻訳文書がどこか別の場所に実際に存在し、他の言語ではまだ用意されていない場合、防止措置をとることができます。(訳注・この段落意訳)

グループ化。 関連するページ同士をグループ化できます。 これらのグループ (集約群) は、他のすべてのメッセージ群と同様に振る舞います。 各群には、その群自身の統計があり、下位群のすべてのメッセージを含んでいます (この翻訳対象ページの場合)。 この機能は現在 Special:AggregateGroups にあります。 Special:Translate のメッセージ群セレクター内の Special:LanguageStats では、既定では集約メッセージ群が折りたたまれた状態です。

移動。他のあらゆるページを移動できるのと同様に、翻訳対象ページも移動できます。移動させる際、翻訳対象ではないすべての下位ページも移動させるかどうか、選択できます。移動では、多数の関連ページを移動させるためにバックグラウンド ジョブを使用します。移動中は、ページの翻訳ができません。移動が完了すると、ページ翻訳記録に記録されます。

削除。移動と同様に、削除も通常の場所からアクセスできます。翻訳対象ページ全体を削除するか、1 つの翻訳ページのみを削除するか、そこの削除ボタンから選択できます。関連する翻訳単位ページも削除されます。移動と同様、バックグラウンド プロセスがページを徐々に削除していきます。削除が完了すると、ページ翻訳記録に記録されます。削除するには、delete 権限および pagetranslation 権限が必要ですが、個別の翻訳単位ページについては標準的な delete 権限で削除できます。

差し戻し。同様に、誤った編集の差し戻しも普段と同じです (巻き戻しボタンも含む)。その翻訳単位を編集するだけで、翻訳ページも更新されます。翻訳ページの編集から翻訳単位の編集を見つけるには、「投稿記録」をクリックして、近接する日時の編集を探します。翻訳システム内では、翻訳単位の翻訳済みメッセージボックスの最初に!!FUZZY!!を追加することによって既存の翻訳が古くなっていることを示すことができます。

保護。翻訳対象ページを保護できます。翻訳ページについては、保護することも、翻訳対象ページの保護を翻訳ページにまで拡張することもできません。翻訳のこれ以上の編集を阻止するには、唯一の優先言語として翻訳元言語を追加して、他の言語への翻訳を無効にしてください。上記の 優先言語化を参照してください。これらの 2 つの操作を行うことで、翻訳元ページ、翻訳ページ、その翻訳単位ページのすべての変更を阻止できます。各翻訳単位ページを保護することはできますが、賢明ではありません。

翻訳対象指定の解除。翻訳対象の指定を解除することもできます。ページを翻訳対象から外すために、Special:PageTranslation を使用するか、または翻訳対象ページ上部のリンクをたどります。これによりページ翻訳に関連する仕組みがすべて除去されますが、既存のすべてのページを自由に編集できる状態で同じ場所に残ります。この操作は推奨できません。

言語対応型の参照読み込み。 翻訳対象ページをテンプレートとして他のページに参照読み込みさせることができます。 このような場合、翻訳対象ページが翻訳先ページの言語に翻訳済みの場合は、その言語で読み込まれることになります。 翻訳が存在しない場合には、翻訳元言語のページが読み込まれます。 翻訳対象ページのこの挙動は、ページを翻訳対象としてマークするときに「このページに対する翻訳を認識した参照読み込みを有効にする」(Enable translation aware transclusion for this page)オプションによって制御されます。 新規の翻訳対象ページは既定でこれを有効にしてあります。

翻訳対象ページの構造

翻訳ページを翻訳することで、多数のページが生成されます。これらのページはそれぞれ 広い意味で 翻訳対象ページを構成する部品だと言えます。これらのページのページ名は、翻訳対象 Page のページ名で決まります:

  • ページ名 - 翻訳元ページ
  • ページ名/<言語コード> - 「翻訳先ページ」と「マークアップを除いた翻訳元ページのコピー」を合わせたもの
  • Translations:ページ名/<翻訳単位識別子>/<言語コード> - すべての翻訳単位ページ

さらに、翻訳ページの雛形と、翻訳単位の文章、元文章のページの文章、データベースへの格納があります。翻訳システムは、翻訳タグのある元文章のどの版であるか、翻訳用のマーク付けがどの版のものであるかを追跡して、そのデータを保持しています。

それぞれの翻訳単位が更新されれば、翻訳システムは対応する翻訳ページを更新します。2回の編集が行われます。翻訳単位ページの編集は標準状態では「最近の更新」では非表示になっており、表示フィルタから「翻訳」を選択することで表示されます。他の編集(削除や移動など)は、対応した翻訳ページを再生成しません。

翻訳せず他のウィキにコピー&ペーストしたいなど、マークアップのない原文を複製したい場合は、以下のようにします:

  • 元の言語の言語コードを特定し(英語では en)アドレスに ページ名/<言語コード> のように言語コードを追加します。
  • ここのようなアドレスとなる 「履歴表示」を開き、アドレス バーの action=history 部分を action=raw へと置換して、Enter キーを押します:
  • するとテキストとして表示されるか、保存ダイアログが開くでしょう。

セグメント化

全般的な原則:
  1. 翻訳するテキストは、すべて ‎<translate> タグで囲むことになっています。1つのページが、タグの対を複数含む場合があります。
  2. translate タグの外側のすべてのテキストは、どの言語への翻訳ページでも変更されません。この静的なテキストに、各翻訳単位となる範囲を示すためのマーク付けをしたものを、翻訳ページの雛形と呼びます。
  3. テキスト内のマークアップが多すぎると、翻訳者が翻訳しにくくなります。マークアップが多数ある場合は、‎<translate> タグをより密接に配置し、含まれるウィキテキストを少なくしてください。
  4. ‎<translate> タグ内のテキストは、1 行以上の空行がある位置 (つまり 2 個以上の改行文字がある位置) で複数の翻訳単位に分割されます。

制限。ページ翻訳機能にはテキストに一定の制限を与えます。 いかなるマークアップも複数の翻訳単位をまたいではいけません。 言い換えると、各段落は自己完結的であるべきです。 現時点ではソフトウェア上は強制していませんが、違反するとページのレンダリングが無効なものになり、MediaWiki 自身が html 出力を修正できるかどうかにより、深刻度に幅があります。

構文解析の順序‎<translate> タグはパーサーによる構文解析を受けないため、他のタグと挙動が異なる点にご留意ください。 凝った処理を試みない限り、通常は障害となりません。 より詳細には、翻訳拡張機能が認識する‎<nowiki>を除き、‎<pre>‎<source>といった他のあらゆるタグよりも前に構文解析されます。

タグの配置

適切に機能させようとすると、‎<translate>タグに起因する固有のの奇妙な要件が以下のとおり複数あります。

タグの配置。可能であれば、タグの前後で改行して、なおかつタグと本文の間に空行を作らないようにします。これが不可能な場合があり、それは例えば、マークアップで囲まれた本文を翻訳したいものの、それ自身はマークアップではない場合です。これにも解決策があります。例えば:

{{Template|1=<translate>地域化したパラメータ</translate>}}

拡張機能の単純なホワイトスペース (半角アキ) の処理を利用します。行内で半角のスペースを入力すると出力に反映され、例外は翻訳指定の開始もしくは終了のタグ ‎<translate>‎</translate> のみ入力された行です。その場合、開始のタグ直後の新しい改行、終了のタグの直前の改行が無効になります。するとページに不用な半角アキを出力せず表示します。

テンプレート呼び出しのパラメータ値の内部にタグを入れるときは、パラメータに名前をつけこと(さもなければ1=などの数値を使用)。

表組のセル内にタグを入れるときは、タグとタグの間に無用な空白スペースも表組のマークアップ指定子 も挟まないこと、さもないと HTML 出力が正しくなりません。

  注: You must leave the space between the content and the unit marker (that space is automatically added by the software). もし忘れると、エディタがエラー警告 "Translation unit markers in unexpected position" を表示し、翻訳単位マーカの位置が間違っているせいで保存ができません。 例えば:

{{{2}}} <translate><!--T:1--> Hello, world.</translate>
{{{1}}} <translate><!--T:1-->Hello, world.</translate>

変数

翻訳するべきでない要素を翻訳者に非表示にする場合、別の言い方をするとリンクのターゲットやファイル名など翻訳単位内のコンテンツを翻訳作業に引き渡さないためには、回避策として以下の説明のように変数をマークアップします。

テンプレートの変数と類似した、変数を使用できます。 変数の構文は ‎<tvar name="name">内容‎</tvar> です (値が空白や " ' ` = < > の記号のいずれも含まない場合は、引用符は省略可能)。   注: 変数には必ず名前を付けること、さもないとページのレンダリングが無効になります。 翻訳者には $変数名 のみが表示され、翻訳ページでは変数が 変数名 という名前の tvar の内容に置換されます。これにより、翻訳ページ全体でグローバルな「定数」として扱われます。 頻繁に更新する必要がある数値のようなものに対しても使用できます。 翻訳対象ページのソースで変数の値を変更し、そのページを再度翻訳対象として指定することで、すべての言語バージョンにわたって数値を更新できます。 その数値が翻訳単位ページに含まれていないため、翻訳を無効化する必要がありません。

変数は異なる翻訳単位間で共有されないことにご注意ください。 同じ変数を複数の翻訳単位で使用したい場合は、各翻訳単位でコードを繰り返す必要があります。同じ名前を使用できます。 翻訳変数は、翻訳プロセスから非翻訳要素やコンテンツ (例えば、リンクのターゲットやファイル名) を分離して隠すために使用できます。 例えば、このリンクのラベル名は翻訳対象のリンクの表示には使えますが、実際のURLには使用できません。

[[Special:MyLanguage/Help:Extension:Translate|Translation extension]]

カンマ区切りの値。図表データのようにソフトウェアがカンマ区切りの値として構文解析する必要があるコンテンツに対しては、カンマごとに翻訳単位を分けることで、翻訳者が誤ってカンマを地域化してソフトウェアを混乱させることがないようにすべきです。

プレーンテキストの値。 翻訳の値が何らかの形で変更されないようにするには、nowrap 属性を以下のように使用します: <translate nowrap>...</translate>。 既定では、古くなった値 (要更新) や未翻訳の値が、強調表示タグや言語タグをサポートするために修正されます。

‎<nowiki> の処理: 翻訳バージョン 2020.10以前まで ‎<nowiki> の扱いが不安定で、Special:PageTranslationに分類されるページがしばしばありました。 回避策としては「&lt;translate>...&lt;/translate>」のようにエスケープします。

これまでの構文: 翻訳バージョン 2021.04 以前の構文は <tvar|name>内容</> (T274881) でした。 この構文はまだサポートされていますが、 廃止予定です。

Meta:国際化のガイドライン#翻訳変数もご一読ください。

マークアップの例

以下に、特殊なウィキマークアップを扱うためのお勧めの方法を列挙します。

カテゴリ カテゴリを追加する方法は 2 つあります: 翻訳ページの雛形に追加する方法と、翻訳単位の 1 つとして追加する方法です。

翻訳ページの雛形内にカテゴリがある場合は、結果的に、どの言語への翻訳でも同じカテゴリになります。

翻訳単位内にカテゴリがある場合は、翻訳でのカテゴリの命名規則を利用者に指導しておいてください。

右に、命名規則の候補を 2 つ示します。これらは、採用するための技術的な手段とは独立しています。

言語接尾辞を追加する翻訳: Category:Cars/ja (推奨)

[...]
</translate>

[[Category:MediaWiki{{#translation:}}]]
  • カテゴリ名は翻訳しません (ページ名と同様)。
  • 言語ごとに 1 カテゴリ。
  • ページ翻訳はカテゴリ自身の翻訳に使用される場合があります。カテゴリは互いにリンクされ、見出しが翻訳されます (リンク内のカテゴリ名などを除く)。

翻訳しない: Category:Cars

  • すべての翻訳文を同じカテゴリに (言語が少ない場合のみ)。
  • カテゴリ名は翻訳しません (翻訳テンプレート内にそのまま書けるようにするため)。
見出し
節の見出しに翻訳タグをつける推奨された方法とは:
  • Include the markup of headings inside the translation tags, so the translator gets context.
  • Insert a newline between the opening translate tag and the heading, or MediaWiki will not identify it properly as a heading. For example, section editing does not work if the recommended markup is not used.

見出しは空行で区切るべきです。これにより、目次を迅速に翻訳し、その後に本文を翻訳できます。また、翻訳ページに元の言語の {{anchor}} または ‎<span>...‎</span> を追加することで、すべての翻訳ページで節見出しへのウィキリンク が一貫して (同じ名前で) 保たれるようにします。 そのほか、リンク可能なアンカーが見出し行に設定してあることを確認

誤:‎<translate> タグの後に改行がなく、翻訳タグの外で見出しを付けている)

== <translate>文化</translate> ==

誤: (改行がない)

<translate>== 文化 ==</translate>

推奨するセグメント化:

<translate>
== 文化 == 

Lorem ipsum dolor.
</translate>
メディア テキストなどの言語固有のコンテンツを含む画像の場合は、翻訳単位内に画像の完全な構文を含めるべきです。それ以外のメディア (キャプションやその他のテキスト パラメーターを含むもの) は、翻訳対象としてタグ付けするのは適用可能なテキスト部分のみで構いません。
<translate>
[[File:Europe countries map en.png|thumb|ヨーロッパの地図 (国名を含む)]]
</translate>
[[File:Ball.png|50px|<translate>ボール アイコン</translate>]]
リンク
翻訳元のページがすでに翻訳対象またはこれから指定するには、ウィキリンクにSpecial:MyLanguage/を前置します。

対象ページが翻訳可能であるべき場合には、そのページ名の前に Special:MyLanguage/ を追加してリンクすべきです。そうすることで、リンク ラベルのみを翻訳すればよく、リンクは自動的に利用者のインターフェイス言語に設定された翻訳ページへリダイレクトされます (例えば、UniversalLanguageSelector などで選択された言語)。一貫した動作を実現するためには、すべてのリンクでこの書式を使用する必要があります。

リンクは段落のタグに含めるべきです。これにより、翻訳者はリンクの表示名を変更できるだけでなく、存在する場合はリンク先も地域化された バージョンに変更できます。

Untranslatable elements of wikilinks can be hidden from the translator using variable syntax.

内部リンク:

<translate>
ヘルシンキは[[Finland (country)|フィンランド]]の首都です。
</translate>

翻訳対象ページへのリンク:

<translate>
美しい海岸と[[Special:MyLanguage/Seagull|カモメ]]の群。
</translate>

外部リンク:

<translate>
PHP ([http://php.net ウェブサイト]) はプログラミング言語です。
</translate>
箇条書き 箇条書きが長くなる場合は、各翻訳単位に 1 項目ずつ含めて、複数の部分に分割することを検討してください。

項目がすべての言語で個別に翻訳できるほど十分に独立している場合にのみ、作業を行ってください。「レゴ メッセージ」を作成しないようにしましょう。例えば、1 つの文を複数の翻訳単位に分割したり、句読点やリストのスタイルに影響を与えるような論理的に依存する部分を分離したりすることは避けてください。

  注: 箇条書きを分割するには、各リスト項目ごとに ‎<translate> タグを使用しますが、リストのマークアップに使用される最初のアスタリスク、ハッシュ、セミコロンは含めないでください。 HTML の出力が乱れるため、項目の間に改行を挿入しないでください。

* <translate>全般的な原則</translate>
* <translate>見出し</translate>
* <translate>画像</translate>
* <translate></translate>

または

<translate>
ご覧ください : 
* 私たちのメインページ
* FAQのページ。
</translate>
数値 数値やその他の非言語的な要素は、翻訳対象の外に配置して変数に変更できます。これには複数の利点があります:
  • 翻訳を無効化することなく、数値のみを更新できます。
  • 数値の変更が無視されるため、翻訳メモリがより的確に機能します。
<translate>
今月の収入 <tvar name=income>{{FORMATNUM:3567800}}</tvar> EUR
</translate>

これにより、通貨の変換を伴う数値の地域化を妨げてしまうことにご注意ください。FORMATNUM を使用することで、翻訳先言語に合うように数値が正しく整形されます。

テンプレート テンプレートには様々な機能や役割があるので、適した解決法はテンプレートによって異なります。そのテンプレートが長い段落の一部でなく、翻訳する引数がないなら、翻訳は省略します。そのテンプレートに言語的な内容がなければ、何かする必要はありません。 ページ翻訳によるテンプレートの翻訳の例は、テンプレート:Extension-Translate を参照してください。このテンプレートを使用するには、{{TemplateName}}によってテンプレートを挿入できないので、{{Translatable navigation template }} に類似する別のテンプレートが必要です。これは翻訳拡張機能の自身には「まだ」実装されていませんが、計画はされています。

別の方法は、テンプレートの翻訳に構造化されていない要素の翻訳を用いることですが、そのテンプレートは見ているページの言語ではなく、利用者のインターフェースの言語で表示されてしまいます。

属性 既定では翻訳拡張機能は、古くなった翻訳単位を強調するために、そして未翻訳の翻訳単位に適切な言語メタデータを付与するため、それらの翻訳単位をラップする場合があります。

ここで紹介したラッピング利用の二次的なマークアップは、不適合な場合があります。

<abbr title="<translate nowrap>Frequently asked questions</translate>"><translate>FAQ</translate></abbr>
翻訳言語 (5e8106cdc353 で導入) 文中に言語依存型の書式設定がある場合、未翻訳の文節の対応が崩れる可能性があります。

{{TRANSLATIONLANGUAGE}} を用いると予防できます。

2020-09-15 is {{#time:l|2020-09-15|ja}}

上記のように入力すると以下のようにレンダリングされます:

  • 英語: 2020-09-15 is Tuesday.
  • フィンランド語: 2020-09-15 on tiistai.

マジックワードを使用しないと、フィンランド語の翻訳ページで未翻訳の文は以下のようにレンダリングされます:

  • 2020-09-15 is tiistai
翻訳文の言語 (98b6958a2471 で導入) 翻訳済みのテンプレートは実際の言語を(ラッパーHTML要素内などに)。示そうとすることがあります。もし{{TRANSLATIONLANGUAGE}}‎<translate> タグ同士の間ではなく外に使うと、ページの言語を直接、その位置に示します(本来なら閲覧者が読んでいる言語を示すのが正解)。 2/deという題名のページに{{1/en}}を3章読み込みしていると仮定します。
  • {{1/en}}の文中に{{PAGELANGUAGE}}を足すと、deを返します。
  • If {{TRANSLATIONLANGUAGE}} is used in the text of {{1/en}}の文中に{{TRANSLATIONLANGUAGE}}を記入すると(‎<translate>タグの外)、enを返します。
翻訳対象ページ (a582f3ad21bd で導入) 翻訳対象ページと翻訳対象でないページの両方で参照読み込みし、ページが翻訳対象かどうかによって挙動を変えるべきテンプレートに対して使います(例えば、翻訳対象でないページでは利用者言語を使う)。 ページが翻訳対象(翻訳済みのページも含む)であれば翻訳ページ(他言語へ翻訳する元ページ)のタイトル(ページ名)を返し、翻訳対象でなければ何も返しません。 ‎<languages> パーサタグと同様、翻訳マークアップが含まれているものの、まだ翻訳対象に指定されていないページの場合は何も返しません。
{{#if:{{TRANSLATABLEPAGE}}|{{特定のテンプレート}}|{{特定のテンプレート/{{int:lang}}}}}}

Template:特定のテンプレートが言語対応参照読み込み(上記参照)を有効にしてある翻訳対象テンプレートであり、そのウィキで mediawiki.org 同様に MediaWiki:lang とその翻訳が設定されていると仮定すると、上記のコードは翻訳対象ページではページの言語、その他のページでは UI 言語を使ってテンプレートを参照読み込みします。

翻訳元テキストの変更

単位マーカは<!--T:1-->自分で足さないで、システムの自動処理に任せます。
全般的な原則:
  • 変更を避ける
  • できるだけ変更を分離する
  • 既存の翻訳単位に軽微な変更を加える場合は、マーカーを保持する。段落全体を変更する場合は、マーカーを削除する。
  • 自分で翻訳単位マーカーを追加しない
  • ページを編集する際には、翻訳単位マーカーはそのままにしておき、所属する翻訳単位との位置関係を変更してはいけません。
  • 翻訳単位を移動するときは、マーカも必ず移動させます。
  • 翻訳単位を除去するときは、マーカの除去もお忘れなく。

翻訳単位マーカー (Unit markers)。ページが翻訳対象に指定された際、システムは翻訳対象ページ (translatable page) のソースに対して、それぞれの翻訳単位に「翻訳単位マーカー」と呼ばれる固有の識別子を追加します。 下記の例を参照してください。 翻訳単位のマーカのサンプルは <!--T:1-->です。 これらの翻訳単位マーカーは、各翻訳単位の変更を追跡するためにそれらのマーカーを使用するシステムにとって重要です。 単位マーカーは決して自分で追加してはいけません。 翻訳単位マーカーは必ず翻訳単位の前の行にあります。ただし翻訳単位が見出しで始まる場合は、最初の見出しと同じ行でその見出しの後にマーカーがあります。 見出しでのマーカーの配置が異なるのは、節単位の編集を期待通りに動作させるために必要な仕様です。

<translate>
== Birds == <!--T:1-->
Birds are animals which....

<!--T:2-->
Birds can fly and...
</translate>

翻訳単位の文章を変更。 翻訳単位にとって変更はもっともありがちなoperationです。翻訳単位について、誤字や文法を修正したり、その他の変更を加えることができます。そのページを再度翻訳対象に指定すると、翻訳単位の文章に変更差分が見られるでしょう。同じ変更差分が翻訳者が翻訳を更新するときに示されます。単純な誤字訂正のようなケースで、既存の翻訳を翻訳ページ内で強調したくない場合は、無効化を回避できます:翻訳者は理由は何であれ翻訳を更新しようとするときに変更差分を目にするでしょう。

新しいテキストの追加。‎<translate> タグの内側にテキストを自由に追加できます。システムが新しい翻訳単位を認識できるようにするために、隣接する翻訳単位と翻訳単位の間に空行が 1 行あることを確認してください。既存の ‎<translate> タグの内側ではない場合は、新しいテキストを ‎<translate> タグで囲んで翻訳対象に追加することもできます。繰り返しますが、翻訳単位マーカーはシステムが追加するため、自分では追加しないでください。

テキストの削除。翻訳単位全体を削除できます。削除すると、翻訳単位マーカーも除去されます。

翻訳単位の分割。単位の中間に空行を入れるか、‎<translate> タグを入れることで、既存の翻訳単位を分割できます。単位マーカーを最初の単位に残しておくか、さもなくばすっぱり除去します。マーカーを残せば、翻訳者は翻訳を更新するときに古い翻訳文を目にするでしょう。マーカーを取り払ってしまえば、ページが翻訳すべきと再指定されたとき、分割されたどちらの単位も、それまで翻訳が全く無かったかのようにふるまいます。

元の状態 マーカーを保持 マーカーを除去
<!--T:1-->
Cat purrs. Dog barks.
<!--T:1-->
Cat purrs.

<!--T:2--> (←追加されました)
Dog barks.
<!--T:2--> (←追加されました)
Cat purrs.

<!--T:3--> (←追加されました)
Dog barks.
Kissa kehrää. Koira haukkuu. Kissa kehrää. Koira haukkuu.

Dog barks.

Cat purrs.

Dog barks.

翻訳単位の統合。翻訳単位を統合する場合は、1 つの翻訳単位マーカーのみを残してそれ以外の翻訳単位マーカーをすべて除去してください。

翻訳単位の移動。翻訳単位の翻訳結果を無効にすることなく、その翻訳単位を移動させることができます: 翻訳単位マーカーとその翻訳単位の残りの部分を一緒に移動させるだけで完了です。

新たな版を翻訳対象に指定する前に、最善の方法をとっていることを確認してください、とりわけ、内容が変更されれば翻訳者は新しい翻訳単位を受け取ることを考慮してください。また翻訳者の時間を無駄にしないよう、不要な変更が無いようにしてください。翻訳元ページに多数の変更が加えられつつあるときは、それが落ち着くのを待って、終わってから翻訳者に作業を回すほうが良いかもしれません。

使用されていない翻訳単位の翻訳は自動的には削除されませんが、残った翻訳が問題を引き起こすことはありません。

ページ翻訳への移行

ページ翻訳機能を使わずに、既にページが翻訳されている場合に、翻訳機能のシステムへと移行したいことがあるでしょう。少なくとも新しく翻訳したいとか、統計情報を望んでいる場合です。おそらく言語切り替えのための既存のテンプレートがあり、ページ命名規則も異なるでしょう。

移行を開始するには、翻訳元ページでクリーンアップ、タグ付けをして、翻訳対象に指定します。古い翻訳を移行している間、既存の言語切り替えのテンプレートは、そのままにしておくことができます。そのページが言語コード下位ページの命名規則に従っている場合は、翻訳元ページを翻訳対象に指定すると、翻訳ページの内容は翻訳元テキストに置換されてしまいますが、以前の翻訳へは履歴からアクセスできます。

この手動の作業は Special:PageMigration によって部分的に自動化されます。この機能を使うと、元文章と対象となる翻訳単位を表示し、後述するように利用者が翻訳単位を調整できます。

使用法

 
Special:PageMigration の使用例のスクリーンショット。ページ名「Help:Special pages」、言語コードは「fr」です。
  1. Special:PageMigration に移動します
  2. ページ名と言語コードを入力します。例では Help:Special pages と fr です。
  3. 元文章と取り込まれた翻訳文が翻訳用の単位に分割され、最初の整列処理でそれぞれ表示されます。(意訳)
  4. 利用できる操作を使い、手動でそれぞれの翻訳単位の調整を行います。
  5. 翻訳単位として編集可能となり、手動での改良が必要になります(翻訳変数の追加、リンクの修正、マークアップなど)
  6. 「保存」ボタンを押します。 これで Translations:ページ名/<翻訳単位識別子>/<言語コード> という形式で翻訳用の名前空間にページが作成されます。 古い翻訳が翻訳機能に取り込まれました。
  7. 取り込みを中止するには、キャンセルを押します。

利用できる操作

翻訳元と翻訳先の翻訳単位からなる行にはそれぞれ、一連の操作アイコンがあります。それらは以下のように使用されます:

  1. Add/追加: この操作アイコンをクリックすると、現在の翻訳単位の下に新しい空の翻訳単位が追加されます。現在の翻訳単位を分割したい場合や、下に翻訳単位が必要な場合に、この機能を使用してください。
  2. Swap/入れ替え: この操作アイコンをクリックすると、現在の翻訳単位の内容とその下の翻訳単位の内容が入れ替わります。この機能は、節の順序が異なるために、翻訳単位の配置がおかしくなったときに使用できます。また、翻訳単位を下や上にドラッグする必要がある場合にも使用できます。いずれの場合も、の翻訳単位と入れ替わるだけで、翻訳単位の追加はありません。
  3. Delete/削除: この操作アイコンをクリックすることで、対応する翻訳対象単位をページから完全に除去し、残りの翻訳対象単位を1つずつ上に上げます。 たとえば不用なコードや、翻訳元言語表記のまま使用する内容に対応する不用な訳文は、この機能を使って除去します。 注記: この操作は取り消せません (現在のセッションでは)。

トラブルシューティング

  1. ページの翻訳指定を済ませた直後に特別ページを開き、翻訳文をインポートしようとしても「ページ <ページ名>/<言語名> には古い翻訳が含まれていません。」などの表示が出てエラーになる場合があります。原因は旧版のページでまだ FuzzyBot のファジー処理が終了していないためです。ツールは翻訳ページで FuzzyBot の編集を検知できません。対策はただ少し時間をおいて、 FuzzyBot の処理を待ちます。内部で編集がログされるとインポートができます。
  2. 「保存」ボタンを押したらしばらくお待ちください。ボタンの背景色がグレーのままの間は、空ではない翻訳単位のインポート処理中です。ボタンの色が元に戻ったらインポート完了です。
  3. 翻訳システム内で既存の訳文が古くなったと示すには、翻訳単位の翻訳済みメッセージボックスの冒頭に!!FUZZY!!を追加すれば良いのです。

ヒント

  1. ページ移動の手間を減らすには、翻訳原文が既存の英文とそっくりかどうか先に (翻訳指定をする以前に) 確認して手動でページの構成を編集します。段落や一覧表を分解したり、 (文章が空白でも) 足りない見出しを補います。
  2. 処理の結果をコアの翻訳インターフェースで確認するとよいでしょう - 翻訳単位のうち即座に不推奨とマークされた部分は、マークアップの誤り、翻訳変数の不足を確かめます。
  3. ページ名の翻訳は手動です。インポート元の言語があまりわからない場合には、「リンク元」から調べるか、時にはページ移動 (リダイレクト) の履歴から適切な訳語が見つかることがあります。