Jump to content

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

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

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

こうした補助機能がなければ、多数のページの翻訳は、時間がかかるばかりでなく、最悪の場合には管理不能な状態に陥るでしょう。 ページ翻訳機能があれば、混乱を避け、翻訳作業を構造化することができます。 基本的には、原文を小さな単位に分割し、それぞれを翻訳します。 原文を分割しているので、原文が編集された場合、翻訳者はその変更のあった単位の翻訳だけを更新すればよいのです。 これにより、翻訳者は扱いやすいサイズの単位で作業でき、一度にすべてを行う必要がないため、複数の翻訳者間で作業を分担したり、後でまた翻訳作業を続けたりできるようになります。

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

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

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

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

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

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

更新:編集者は翻訳対象のページの文章を編集することもできます。 この更新は、ページを見ている編集者に元の言語で表示されますが、翻訳は翻訳対象に指定されているページの、最新版の翻訳単位から抜き出されて行われます。元文章に新たな更新があっても、すべての翻訳単位が翻訳されていれば、その翻訳ページは100%更新済みと表示されます。 翻訳可能なページを元の言語で表示すれば、翻訳されていない更新を簡単に確認できます。ページトップに「このページを翻訳に翻訳する箇所がある」というお知らせと、変更箇所へのリンクがあります。

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

翻訳元言語:翻訳元言語の言語コードが付いた翻訳対象ページもあります。これは、翻訳元ページに使用される翻訳関連の特殊なタグやその他のマークアップを含んでいません。このページはインターフェイスからリンクされませんが、例えばページ (通常は翻訳のテンプレート) を参照読み込みする際やそれを書き出す際に役立ちます。 たとえば、今読んでいるこのページは、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 を使用するか、または翻訳対象ページ上部のリンクをたどります。これによりページ翻訳に関連する仕組みがすべて除去されますが、既存のすべてのページを自由に編集できる状態で同じ場所に残ります。この操作は推奨できません。

言語対応型の参照読み込み: 翻訳対象ページをテンプレートとして他のページに参照読み込みさせることができます。 この場合、翻訳対象ページが翻訳先ページの言語に翻訳済みの場合は、その言語で読み込まれることになります。 翻訳が存在しない場合には、翻訳元言語のページが読み込まれます。 翻訳対象ページのこの挙動は、ページを翻訳対象としてマークするときに このページの翻訳を意識した参照読み込みを有効にする オプションによって制御されます。 新規の翻訳対象ページはデフォルトでこれが有効になっています。

翻訳対象ページの構造

翻訳ページを翻訳することで、多数のページが生成されます。これらのページはそれぞれ 広い意味で 翻訳対象ページを構成する部品だと言えます。これらのページのページ名は、翻訳対象 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>の開始タグまたは終了タグのみがある場合を除き、空白は保持されます。 その場合、開始タグの後または終了タグの前の改行は無視されます。 そのため、ページを表示する時には余分なスペースが発生しません。

翻訳単位が小さいほど、翻訳が簡単になり、その後の管理も容易になります。 複数の‎<translate>タグの対を使用して、長い段落を複数の翻訳単位に分割することを検討してください。

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

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

注 注: コンテンツと単位マーカーの間の空白は、(その空白がソフトウェアによって自動的に追加されるため) 削除しないでください。 もし忘れると、エディタが 「翻訳単位マーカの位置が間違っているため保存ができません。」という警告を表示します。 例:

正: <translate><!--T:1--> Hello, world.</translate>
誤: <translate><!--T:1-->Hello, world.</translate>

変数

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

翻訳するべきでない要素を翻訳者に非表示にする場合、(リンクのターゲットやファイル名など翻訳単位内のコンテンツを翻訳作業に引き渡さないようにしたい場合)、以下のようにマークアップします。

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

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

[[<tvar name="example">Special:MyLanguage/Help:Extension:Translate</tvar>|Translation extension]]

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

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

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

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

マークアップの例

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

属性

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

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

<abbr title="<translate nowrap>Frequently asked questions</translate>"><translate>FAQ</translate></abbr>

カテゴリ

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

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

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

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

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

[...]
</translate>

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

翻訳しない: Category:Cars

  • すべての翻訳文を同じカテゴリに (言語が少ない場合のみ)。
  • カテゴリ名は翻訳しません (翻訳テンプレート内にそのまま書けるようにするため)。

コード内のコメント 

コードサンプルでは翻訳すべきではありませんが、‎<translate> タグと nowrap 属性を使用してコードサンプル内のコメントを翻訳できます。
<syntaxhighlight lang="php">
public static function registrationCallback() {
   // <translate nowrap>拡張機能の設定で使用されている名前と一致させる必要があります</translate>
   define( 'CONTENT_MODEL_EXAMPLE', 'example' );
}
</syntaxhighlight>

見出し

節の見出しに翻訳タグをつける際に推奨される方法:
  • 見出しのマークアップを翻訳タグ内に含めて、翻訳者が文脈を把握できるようにしてください。
  • 開始の translate タグと見出しの間に改行 を挿入してください。そうしないと、MediaWiki が正しく見出しとして認識しません。例えば、推奨されるマークアップを使用しない場合、節単位の編集 が機能しません。

見出しは空行で区切るべきです。これにより、目次を迅速に翻訳でき、その後に本文を翻訳できます。 さらに、リンク可能なアンカーが見出しに設定されます。

正:

<translate>
== 文化 == 

Lorem ipsum dolor.<!—-これはラテン語のダミーテキストです。—->
</translate>

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

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

誤: 改行がない

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

リンク

対象ページが翻訳可能であるか、または翻訳対象とすべき場合は、ウィキリンクの前に Special:MyLanguage/ を付ける必要があります。

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

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

ウィキリンクの翻訳不要な要素は、変数構文を使用して翻訳者から非表示にできます。

MediaWikiでは同じページにリンクする時、Special:MyLanguage/の代わりにTemplate:Localized link を使うこともできます。 これは、Meta-Wiki や、同様のテンプレートがある他の多言語の Wikimedia Wikiでも機能します。

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

<translate>
開発者は[[<tvar name=1>Special:MyLanguage/Manual:Extensions</tvar>|新しい拡張機能を作成]]できます。
</translate>

別の地域化された版があるページへのリンク:

<translate>
ヘルシンキは[[:ja:フィンランド|フィンランド]]の首都です。
</translate>

翻訳不可のページへのリンク:

<translate>
サイドバーは <tvar name=1>[[MediaWiki:Sidebar]]</tvar> で定義されています。
</translate>

外部リンク:

<translate>
PHP ([<tvar name=url>http://php.net</tvar> ウェブサイト]) はプログラミング言語です。
</translate>

箇条書き

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

リスト項目の間に空行を挿入しないでください。空行を挿入するとリストが分割され、外観が不正確になったり、アクセシビリティの問題 (リストギャップ) が発生します。

注 注: 箇条書きを分割するには、各リスト項目ごとに ‎<translate> タグを使用しますが、リストのマークアップに使用される最初のアスタリスク、ハッシュ、セミコロンは含めないでください。 そうでないと、翻訳単位のいずれかが古くなったときにリストが複数のリストに分割され、‎‎<translate>...‎</translate>タグとそれらの間のコンテンツはビジュアル エディターでは編集不可としてマークされてしまいます。

正:

<translate>
ご覧ください : 
* 私たちのメインページ
* FAQのページ。
</translate>

または

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

メディア

異なる言語に対して異なるバージョンのメディア ファイルが必要な場合は、翻訳タグ内に完全なファイルの構文を含めてください。 例えば、テキストを含む図は各言語ごとに新しい画像に置き換えるべきです。

メディアファイルが異なる言語のページでも同じままであるべき場合は、キャプションやその他のテキスト パラメーターのみを翻訳してください。

言語ごとに異なるファイル:

<translate>
[[File:Europe countries map en.png|thumb|ヨーロッパの地図 (国名を含む)]]
</translate>

言語ごとに同じファイル:

[[File:Ball.png|50px|<translate>ボール アイコン</translate>]]

数値

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

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

表を翻訳するには、翻訳可能なテキストにのみ ‎‎<translate>タグを追加します。
{| class="wikitable"
! <translate>バージョン<translate>
! <translate>状態<translate>
|-
| 1.0.0
| <translate>安定</translate>
|}

テンプレート

テンプレートにはさまざまな機能や目的があるため、最適な解決方法はテンプレートの用途によって異なります。テンプレートが長い段落の一部でない場合、翻訳タグから除外するべきですが、翻訳するパラメーターがある場合は除外しないでください。

ページ翻訳によるテンプレートの翻訳の例は、テンプレート:Extension-Translate を参照してください。

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

パラメーターがあるテンプレート:

{{下位ページ}}

翻訳可能なパラメーターがあるテンプレート:

{{テンプレート1|1=<translate>こんにちは。</translate>}}
テンプレートのパラメーターを翻訳する際は、そのパラメーターに名前を付けるか、1= のような番号付きの名前を使用してください。

参照読み込み

標準の参照読み込み 構文を使用して、翻訳されたページを別の翻訳されたページに読み込みできます。 その言語の翻訳がない場合、参照読み込みされたコンテンツはソース言語で表示されます。
<translate>
== コミュニケーションのヒント ==
</translate>

{{:Communication tips}}

翻訳対象ページ

(a582f3ad21bd で導入)

翻訳対象ページと翻訳対象でないページの両方で参照読み込みし、ページが翻訳対象かどうかによって挙動を変えるべきテンプレートに対して使います(例えば、翻訳対象でないページでは利用者言語を使う)。 ページが翻訳対象(翻訳済みのページも含む)であれば翻訳ページ(他言語へ翻訳する元ページ)のタイトル(ページ名)を返し、翻訳対象でなければ何も返しません。 ‎<languages> パーサタグと同様、翻訳マークアップが含まれているものの、まだ翻訳対象に指定されていないページの場合は何も返しません。
{{#if:{{TRANSLATABLEPAGE}}|{{特定のテンプレート}}|{{特定のテンプレート/{{int:lang}}}}}}

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

翻訳文の言語

(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を返します。

翻訳言語

(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

変数

‎<tvar>タグを使用することで翻訳できない要素を翻訳者から隠すことができます。

各変数にはnameが絶対に必要です。これは短い変数の内容、または翻訳者が変数の内容を知る必要がない場合は数字などでも構いません。 同じ‎<translate>タグ内にある変数はそれぞれ別のnameにする必要があります。

正:
<translate>
<tvar name=1>LocalSettings.php</tvar> に変数を設定すると、<tvar name=2>extension.json</tvar> のデフォルト値は使用されません。
</translate>

誤: 名前を指定していない

<translate>
ファイルの名前は必ず<tvar>extension.json</tvar>にします。
</translate>

誤: 複数の‎<translate>タグに同じ名前が使用されている

<translate>
Markdownを使用する際は<tvar name=1>README.md</tvar>のようにファイル拡張子に<tvar name=1>.md</tvar>を追加します。
</translate>

翻訳元テキストの変更

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

翻訳されたコンテンツはビジュアルエディターを使用して編集できますが、翻訳マークアップを追加または変更するにはソースエディターを使用する必要があります。 翻訳マークアップを簡単に追加するには、編集インターフェースの下のボックスにあるボタンを使用します。

翻訳されたページを編集する際には、「節単位の編集」を使用しないでください。これにより、ページに余分な空白が追加されます。[1] ページ全体を編集するには、常にオプションを選択します。

翻訳単位マーカー (Unit markers)

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

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

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

翻訳単位の文章を変更

変更は翻訳単位にとって最も一般的な操作です。誤字の修正、文法の訂正、その他の変更を加えられます。 変更を加える場合、翻訳単位のマーカーは除去してはいけません。また、マーカーの位置はその翻訳単位が所属する単位に対して変更しないようにしてください。 ほとんどの編集では、元の翻訳単位の構造が保持されるため、既存の翻訳を再利用できる可能性があります。 ページを再度翻訳対象として指定すると、翻訳単位のテキストにおける変更点が表示されます。 翻訳者が翻訳を更新する際にも、同じ変更点が表示されます。 単純な誤字訂正や、既存の翻訳を翻訳ページで強調したくない場合でも、それを無効化せずに済みます。しかし、翻訳者が翻訳を更新する際には、理由に関わらず変更差分が表示されます。 マーカーを残すと、翻訳管理者のインターフェイスで翻訳単位の変更点が強調され、軽微な編集でも比較できるようになります。これにより、翻訳管理者は変更内容を確認し、既存の翻訳を無効化するかどうかを決定できます。 マーカーを除去すると、変更された単位はまったく新しいものとして扱われ、翻訳管理者のインターフェイスで変更点を比較することが難しくなります。

新しいテキストの追加

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

テキストを追加する場合、既存の翻訳単位をできるだけ変更しないようにします。 例えば、以下のように翻訳対象の二つの段落があります。

<translate>
<!--T:1-->
編集の要約を使用すると、他のユーザーが詳細を調べなくても編集内容を理解しやすくなります。

<!--T:2-->
著作権侵害が発見された場合、大幅な改訂や削除後も著者情報を保持します。
</translate>

新しい段落を追加する時は、空行で区切られたテキストを追加します。

<translate>
<!--T:1-->
編集の要約を使用すると、他のユーザーが詳細を調べなくても編集内容を理解しやすくなります。

編集要約は任意ですが、記載することをお勧めします。

<!--T:2-->
著作権侵害が発見された場合、大幅な改訂や削除後も著者情報を保持します。
</translate>

既存の段落に文を追加する時は、新しい翻訳単位を作成します。 この例では、テキストは‎<translate> タグで3つに分割されます。 これにより、T:1の翻訳単位を無効にすることなく、最初の段落に文を追加できます。

<translate>
<!--T:1-->
編集の要約を使用すると、他のユーザーが詳細を調べなくても編集内容を理解しやすくなります。
</translate>
<translate>編集要約は任意ですが、記載することをお勧めします。</translate>

<translate>
<!--T:2-->
著作権侵害が発見された場合、大幅な改訂や削除後も著者情報を保持します。
</translate>

テキストの削除

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

たとえば、このページから抜粋された以下のような文があるとします。

* <translate><!--T:1--> 翻訳単位マークを自分で追加しないでください。</translate>
* <translate><!--T:2--> 翻訳単位を移動するときは、マーカーも必ず移動させる。</translate>
* <translate><!--T:3--> 翻訳単位を除去するときは、マーカーも一緒に除去する。</translate>

2番目の項目を削除する際には、単位マーカーと ‎<translate>タグを含む行全体を削除します。

* <translate><!--T:1--> 翻訳単位マークを自分で追加しないでください。</translate>
* <translate><!--T:3--> 翻訳単位を除去するときは、マーカーも一緒に除去する。</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 つの翻訳単位マーカーのみを残してそれ以外の翻訳単位マーカーをすべて除去してください。

翻訳単位の移動

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

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

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

翻訳されたページの移動

翻訳管理者は、他のページを移動する場合と同様に、翻訳されたページを移動できます。 スクリプトを使用して多言語Wiki間で翻訳されたページを移動することも可能です。 詳細は翻訳対象ページの移動 を参照してください。

ページ翻訳への移行

この項目では、ページ翻訳管理者のみが使用できるページ翻訳の機能について解説しています。

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

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

この手動の作業は 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. ページ名の翻訳は手動です。インポート元の言語があまりわからない場合には、「リンク元」から調べるか、時にはページ移動 (リダイレクト) の履歴から適切な訳語が見つかることがあります。

脚注