翻訳対象モジュール
Lua モジュールの翻訳は、どうすれば MediaWiki の翻訳あるいは translatewiki.net で扱う翻訳拡張機能のように簡便になるでしょうか?
ここでは 翻訳対象のモジュールの実施について、初期の協議を行います。 協議を行う時期は、コメント受付を2020年9月末までの予定です。 ここに用意する一連の解説文書はオンウィキのLua モジュールを対象に開発者と利用者のニーズを把握し、今後、改善策の開発にあたるソフトウェア技術者の役に立てることです。
はじめに
翻訳対象モジュール Translatable modules というプロジェクトはモジュールをもっと翻訳しやすくしてシェアするため、フレームワークを固めて文書化と実施、実装を目指します。 ゴールは UI 文字列 (メッセージ) をScribunto モジュールに組み込むことで、対象はたとえば Wikidata や Commons など多言語版のウィキサイト群とし、コアの MediaWiki の拡張機能に近い地域化の簡単さと、翻訳対象ページの実現を目指します。
コミュニティの皆さんにお聞きしたい質問があります。
- 複数のオプション として、コードとメッセージ群の整備について提案があります。 モジュールのコード整備には何が最適でしょうか?
- このフレームワークの開発と実装ができた場合、このフレームワークを使った新しいモジュールの開発、そして既存のモジュールを転換することも便利かどうか、どう思われますか?
- 既存のモジュールのうち、翻訳を優先したいものはありますか?
もし皆さんが日頃、記事の翻訳中心に活動している場合は利用者体験に大きな影響はないと予想されますが、フィードバックを聞かせてくださると助かります。
もし皆さんがテンプレートや Scribunto モジュールの管理のご担当または翻訳対象ページの管理者の場合、タスク実行の利用者体験に目立った影響が見込まれており、皆さんのフィードバックは非常に重視されます。
背景
いずれのウィキメディア プロジェクトにも重要な機能がありウィキテキスト テンプレートと Lua モジュールのどちらかもしくは両方として実行しています。ハットノート、infoboxes (訳注:基礎情報ボックス) や歓迎メッセージ、書式付きのリンクや脚注、画像の説明やライセンス情報、地理座標その他多くが含まれます。
ここでいうテンプレートやモジュールとはコードの一種です。 このコードは編集コミュニティで経験を積んだ技術力のある人たちが開発し、コミュニティの希望や需要のある機能を実現したもので、現状で標準的に使われています。 単体ではシンプルでも、複合すると MediaWiki 拡張機能のコードとしての複雑性、重要性および遍在性に匹敵します。 ところが拡張機能と異なり、テンプレートとモジュールは、実際には多くが多言語環境で利用されているのに、国際化と地域化のための活発で安定した矛盾のないフレームワークがないのです。
MediaWiki 拡張機能も MediaWiki コアもすべての地域化は translatewiki.net で実施され、翻訳ボランティアにはどのコンポーネントに含まれたどんなメッセージ群 (文字列) を自分の言語に翻訳すれば良いか簡便に理解できるし、そこで簡単なウィキ文を翻訳するだけでコードは全然扱う必要がありません。 translatewiki.net を使うには、基本的なウィキ構文さえ理解すれば良いのです。 ソフトウェアとしての translatewiki.net には訳文が技術的に有効かどうか検査したり、ツール類として陳腐化した翻訳の更新、翻訳の統計、検索や絞り込みその他を提供します。
反面、テンプレートもモジュールもそのような体制がありません。 翻訳対象である限り、複雑なウィキ構文や Lua コードの存在するウィキページの編集という形で行います。 この過程はエラーが発生しやすく、発見しにくいために比較的、難易度が高くなります。 テンプレートのいくつかは翻訳対象ページとして翻訳拡張機能を使った作業が可能なため、翻訳者側からは拡張機能の場合と似た地域化の経験に見えがちですが、これを実施するフレームワークはテンプレート開発者とモジュール開発者にとって一貫性がありません。
このようなわけでモジュールやテンプレートに備わった人間に可読なユーザーインターフェースのメッセージ群を翻訳できるようにするには、MediaWiki コアと拡張機能の翻訳と互換性を持つプロセスを採用することが望ましいのです。
担当範囲
このプロジェクトの取り扱う範囲はモジュールが採用するユーザーインターフェースのメッセージ群の翻訳に限定され、また対象は単一のウィキとします。 特に適応するのは Wikimedia のサイト群ですでに多言語化したものです。 Commons、Wikidata、Meta、mediawiki.org、Wikispeciesその他があげられます。
ここで言う提案では、次のものは 対象外とします。
- テンプレートの翻訳。 前述のとおり、これは関連性が高くおそらくは実行したほうが良いかもしれませんが、将来の段階に先送りされます。 モジュール技術 (Scribunto) は独立性のある存在で、テンプレートはそれとは異なり、コアの MediaWiki に深く根ざして、地域化の要件もやや異なります。 そうは言っても、翻訳対象モジュールの作業は前向きに互換であるよう志向するべきで、結果としてここで実施したことはすべてテンプレートにも再利用できるようになります。
- モジュールの名称と機能の識別の翻訳。 テンプレートとパラメータは通常、そのウィキのコンテンツ言語で命名されています。 モジュールはテンプレートと異なり、通常はテンプレートに喚起されるものであって、コンテンツのページもしくは議論のページから直接、起動する場合はごく少ないです。 そこで翻訳可能にする必要はそんなにありません。 このプロジェクトではモジュールが読者に表示するメッセージ群に限定して国際化と地域化を扱います。
- ガジェットの翻訳。 ガジェットもテンプレート同様、地域化を簡便にするべきですが、技術面で大きく異なります。 再利用できるように整えるのは良いとして、このプロジェクトでの優先順位は高くありません。
- ウィキ横断型のテンプレートやモジュールを採用 (“グローバル テンプレート”)。 これもあったほうが良いし、モジュールを確実に翻訳できるようにすることにより、「グローバルな」テンプレートやモジュールのインプリメンテーションはやりやすくなると見込まれます。 しかしながら、この文書で述べるプロジェクトの範囲にこちらは含まれていません。 グローバルなモジュールやテンプレートを目指す初期段階としてならモジュールを翻訳できるようにすることは合理的であり、またプロジェクトとしてグローバルなテンプレートやモジュールと前向きに互換であるよう志向するべきとも言えますが、いずれにしても単独の取り組みとなります。
- データ変換。 ディジットの変換 (123 / ١٢٣ / १२३ / ၁၂၃)、単位 (km / マイル)、表記の異形 (セルビア語のラテン / キリル、中国語の簡体 / 繁体 etc.) その他の扱いは対象外です。 これらは既存の MediaWiki 国際化機能もしくはモジュールのコード、テンプレートで処理されます。 このプロジェクトの範囲はユーザーインターフェースのメッセージに限定されます。
その他の情報
- 協議の場はトーク:翻訳対象のモジュール。
- プロジェクト内の利害関係者
- 開発と設計の原則
- 既存の対策
- 改善案 - 重点的な協議と審査の対象
- 技術面の課題