ニュースレター/翻訳

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
This page is a translated version of the page Newsletters/Translation and the translation is 100% complete.
Other languages:
Bahasa Indonesia • ‎English • ‎dansk • ‎español • ‎français • ‎português do Brasil • ‎български • ‎українська • ‎العربية • ‎فارسی • ‎مصرى • ‎中文 • ‎日本語 • ‎ꯃꯤꯇꯩ ꯂꯣꯟ

ニュースレターはウィキメディアンの皆さんが関心のある特定のトピックに関する情報を得る手段になります。英語を理解しないウィキメディアンは多く、非英語の翻訳版を提供すると、潜在的な閲読者の範囲拡大につながります。英語は読めても、ニュースは母国語で読みたいという人もいます。

2014年時点でニュースレターを楽に多元語化できるツールがいくつか提供されてします。

  • 翻訳拡張機能はニュースレターの構造化された翻訳を提供。
  • Assemble multilingual messageはLuaモジュールで、特定のページの翻訳をウィキ群に配信するテキストに変換。
  • 一括メッセージツールはメッセージをウィキメディア・ウィキ群の指定したページ(もしくは購読者)宛てに、楽にグローバルに配信。

このページで説明するプロセスやツール、ヒントは技術ニュースチームが集積したものです。週間技術ニュースレターの執筆、多言語版の翻訳と配信の詳細はブログの投稿を参照してください。(訳注:一括送信の権限は管理者もしくは一括メッセージ送信者、ウィキメディア財団サポート安全チームの職員に限定されます。)

多言語版のニュースレター開設で困ったことがあったら、user:Guillaume (WMF)に連絡をして手伝ってもらってください。

多言語版のニュースレターの製作と配信:手順

かいつまんで述べると、プロセスは次の流れです。

  • コンテンツがまとまったら翻訳のタグ付けと処理をし、ウィキメデャの翻訳者の皆さんに翻訳を依頼します。
  • 翻訳が終了した段階でLuaスクリプトを起動し、訳文をすべて組み合わせる。
  • 一括メッセージツールを使い、組み合わせたテキストを購読者に配信する。もしウィキの使用言語を用いた翻訳がある場合は、翻訳文はその言語で投稿される。そうでなければ、既定の言語(英語)で投稿される。

このページではニュースレターと翻訳版のまとめ方と配信方法に焦点を当てて解説します。ページ翻訳と翻訳拡張機能の詳細は、以下の各項目を参照してください。

準備段階

多言語版ニュースレターの配信に当たり、準備が必要です。この手順は最初の1回だけで済みます。

ソースウィキにLuaスクリプトをインポートする

準備をMeta上でするニュースレターは多く、直接、多言語メッセージを組み立てるモジュールModule:Assemble multilingual messageを利用しています。

ニュースレターとその翻訳をMeta以外のウィキで進めている場合、そのウィキに当該のModule:Assemble multilingual messageをインポートしてください。帰属と履歴を保存するには、Metaにあるウィキ間のインポートを使うのが最善です。

サンドボックスページの作成

サンドボックスページを使うと、Luaスクリプトを利用した翻訳の自動組み立てが行えます。一例としてTech/News/Sandboxでは技術ニュースの多言語版を組み立てています。現状では、(訳注:サンドボックスページに)「ボイラープレート」と呼ばれる大規模なテンプレートを用いてニュースレターを作成します。

正規の手順

次の手順とは、ニュースレターを毎号配信するたびに必要になるものです。初期の準備がしやすいように、細かいところまで指定されています。2、3回経験すると手順が頭に入り、処理できるようになるかもしれません。

ニュースレターの内容をマークする

準備中のページには、ニュースレターに含める必要のない部分があるかもしれません。これにはたとえばヘッダーやWikipedia:ナビゲーションテンプレートやカテゴリを含みます。

Luaスクリプトは、送信したい内容の識別にラベル付き節を参照読み込みします。my-nifty-newsletterなどのマーカを選び、送信したい内容とそれを挟んだ翻訳指定コード<translate></translate>ごとタグ付けします。

<section begin="my-nifty-newsletter"/>ニュースレターの内容はここから始まります。
...
内容はここに続きます。
...
内容はここで終わります。.<section end="my-nifty-newsletter"/>

このように、配信するニュースレターは毎号、上記の処理をする必要がありますが、一度処理すれば、その後は過去号から次号に簡単にコピペするだけで済みます。

多言語でメッセージを作成

Luaスクリプトが翻訳をすべて抽出し、多言語版ニュースレターにまとめて配信の準備をする。

ここまで進んでくると次のものが揃ったはずです。

  • Luaスクリプト
  • サンドボックスページ
  • 配信したい翻訳可能なニュースレター。下記のサンプルでは「My nifty newsletter/2014/August」という題名で呼ぶことにします。

準備の手順は続きます。

  1. サンドボックスページを開き、編集ウィンドウを開く。
  2. 次のコードを追加。
    {{#invoke:Assemble multilingual message|assembleMessage|marker=|page=|}}.
  3. marker=の位置に、上記のサンプルで使ったようなマーカを入力。
  4. page=の位置に、送信したい翻訳可能なページを入力。
  5. ページの最後に、訳出した言語の言語コード一覧を追加する。例えばスペイン語、フランス語、ウクライナ語に翻訳した場合は|es|fr|ukと入力。ただし、英語版に対応するコード「en」は使わないこと。英語は既定の言語であり、自動的に記入される。
  6. 次はコードのサンプルのひとつ。
    {{#invoke:Assemble multilingual message|assembleMessage|marker=my-nifty-newsletter|page=My nifty newsletter/2014/August|es|fr|uk}}
  7. 編集結果を保存する。

ジャーン! 上記の手順6で翻訳すべてを含む#switchパーサ関数の組み合わせとして、ウィキテキストが大量に生成されました。

多言語のメッセージを一括メッセージで配信

一括メッセージを利用し、購読者に多言語版のニュースレターを配信。ウィキの言語に対応する翻訳版がある場合、ローカル言語版を配信する。

Luaスクリプトが面倒な作業を引き受けてくれます。指定した翻訳をすべて点検して組み立て、送信するばかりの目セージを生成します。

  1. サンドボックスのページを開き、スクリプトが生成したコンテンツすべてをコピー。
  2. Special:MassMessageを開き、本文「Body of the message」というラベルのついたフィールドにペースト。
  3. 最終行までスクロールダウンして、タイムスタンプ(~~~~~)の前に利用者ページ・同トークページへのリンクを追加。(署名のチルダは3個あるいは4個だけだと「ウィキメディアのメッセージ配信」としか表示しないため、5個必要。)
  4. その他のフィールドは、単一言語版のニュースレター配信と同様に記入する(詳細は一括メッセージを参照)。

既知の制限

節見出しはひとつの言語でのみ表示

  • 節見出しは翻訳の対象ではありません。一括メッセージが一意の出力しかできないことが原因です。

Luaスクリプト

  • ニュースレターのレイアウトに表(テーブル)を使うことはできません。

表があるとニュースレターの配信処理で{{#switchに干渉し、正しい言語の選択に失敗します。原則としてニュースレターでは表など構造が複雑なレイアウトは避け、誤変換を防ぎます(ニュースレター執筆者に対する一般的なヒント general tips for newsletter authors を参照)。

Errors in one translation will break the assembled message when sent

  • If one of the translations has a markup error, such as an un-closed [[wikilink, it will break the assembled newsletter by showing all languages at once when you send it (to your test distribution list). To find the broken translation, add each language one at the time in the Assemble module.