Help:Extension:Translate/Unstructured element translation

From MediaWiki.org
Jump to: navigation, search
This page is a translated version of the page Help:Extension:Translate/Unstructured element translation and the translation is 83% complete.

Outdated translations are marked like this.
Other languages:
العربية • ‎বাংলা • ‎català • ‎کوردی • ‎čeština • ‎dansk • ‎Deutsch • ‎Zazaki • ‎English • ‎español • ‎français • ‎हिन्दी • ‎italiano • ‎日本語 • ‎Lëtzebuergesch • ‎lietuvių • ‎Nederlands • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎தமிழ் • ‎українська • ‎中文

This page explains how to make translation of customized wiki interfaces messages a bit more manageable, with the Translate extension. It applies to any part of the wiki which you want to automatically provide in the user's interface language. The most typical example is the sidebar, because there can be only one, but the same method can be used for the main page, if you want to have all translations of it under the same title, or even for templates.

ページ全体の翻訳が適さないウィキ本文にも、この方法を適用できます。ページ全体の翻訳が適さないものとは、マークアップを翻訳者に見せたくないような、マークアップが多いページや、テンプレートなどです。これは、インターフェイス メッセージや、{{int:}} マジック ワード (ウィキテキストを書ける場所ならどこにあるインターフェイス メッセージも取り込めるようにする) を実現します。このマジック ワードは、ユーザー インターフェイス言語における標準/カスタマイズ済み/新規のインターフェイス メッセージを、自動的に展開できるようにします。

ウィキの本文にもウィキのインターフェイスの自動地域化の機能を適用できますが、インターフェイスの言語を既定の言語から変更できない匿名利用者の問題は解決できません。下記の Language Selector 拡張機能にある注釈をご覧ください。

ページの翻訳と比較して、この手法にはいくつかの難点があります:

  1. MediaWiki developers usually discourage the usage of {{int:}} because it fragments the cache. Instead of storing one cached rendered version of a page, when {{int:}} is used it needs to be cached potentially in hundreds of different languages.
  2. It is harder to setup, requiring access to wiki configuration.
  3. 古くなった翻訳を自動的に追跡する機能がなく、新しいメッセージが追加/削除された際に完成度の統計が無効になるかもしれません。
  4. メッセージ群にメッセージを追加したり、メッセージを翻訳したりできるのは、ウィキ管理者のみです。このシステムはあまり変更しないページにしか使用できない、頻繁に更新するページであれば管理者の仕事が増えてしまう、ことを意味しています。

The good thing is that it works most of the time and you can still get the job done. There are two tutorials that provide examples of the common use cases. Before that there is section which details how to set up a message group, something which is always needed when using this method.

セットアップ

サーバー管理者はこの手順を完了する必要があります。以下のスニペットを LocalSettings.php に追加する必要があります。

$wgTranslateCC['wiki-sidebar'] = 'addSidebarMessageGroup';
function addSidebarMessageGroup( $id ) {
        $mg = new WikiMessageGroup( $id, 'sidebar-messages' );
        $mg->setLabel( 'Sidebar' );
        $mg->setDescription( 'Messages used in the sidebar of this wiki' );
        return $mg;
}

メッセージ群 iD wiki-sidebar は固有である必要があり、同じ ID を複数の群で再使用してはいけません。コンストラクター WikiMessageGroup の第 2 引数 sidebar-messages はページ [[Mediawiki:Sidebar-messages]] を意味しています。ラベルは、メッセージ群を選択できるドロップダウンや他の場所で使用されます。説明は、Special:Translate に表示されます。これらの値を変更でき、そしてこれらの値を、新しいメッセージ群を追加する際に適切な値に変更する必要があります。

地域化されたサイドバーのチュートリアル

セットアップの手順が既に済んでいることを想定しています。サイドバーのカスタマイズ ガイドの手順に注意深く従ってください。以下のようなシンプルなサイドバーを作成したと想定します:

* sidebar-commonpages
** FAQ|sidebar-faq

そして、[[MediaWiki:Sidebar-commonpages]] contains の内容は Common pages で、[[MediaWiki:Sidebar-faq]] の内容は Frequently asked questions です。

あとは [[MediaWiki:Sidebar-messages]] (または前の手順で定義したもの) に移動して、以下のように書くだけです:

sidebar-commonpages sidebar-faq

つまり、これは名前空間名「MediaWiki:」を除いたシステムメッセージ名を、空白で区切って列挙したものです。

さらに、[[Special:Translate/wiki-sidebar]] (または前の手順で定義したもの。定義済みの群については [[Special:Translate]] をご覧ください。) に移動してください。これでメッセージを他の言語に翻訳できるようになりました。すべてのメッセージが MediaWiki 名前空間にあるため、メッセージの一覧を編集したり実際に翻訳したりできるのはウィキの管理者のみです。

地域化されたメインページのチュートリアル

Another use case is a page with lots of markup or templates. The advantage of this method is that the language automatically appears in the user's interface language. The drawback is that to change the language in which the page is displayed, the interface language must be changed.

作業手順は前述のチュートリアルと同様です:

  1. 新しいメッセージ群を用意します
  2. ウィキページを開きます
  3. 翻訳対象の部分を {{int:Mainpage-messagename}} に置換して、その内容を [[MediaWiki:Mainpage-messagename]] に移動します
  4. [[MediaWiki:Mainpage-messages]] (or what was defined in the setup) に移動して、メッセージ名を空白区切りで追加します
  5. これで完了です。[[Special:Translate]] でメインページを翻訳してください。

例を示します。以下の内容の [[Main Page]] を作成します:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{SITENAME}} is a community for chefs and bakers that love chocolate.''
</div>
We currently have {{NUMBEROFPAGES}} full of chocolate.

そしてこれを以下のように変更します:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{int:mainpage-slogan}}''
</div>
{{int:mainpage-pagecount}}

以下の内容の [[MediaWiki:Mainpage-slogan]] を作成します:

{{SITENAME}} is a community for chefs and bakers that love chocolate.

以下の内容の [[MediaWiki:Mainpage-pagecount]] を作成します:

We currently have {{NUMBEROFPAGES}} full of chocolate.

以下の内容の [[MediaWiki:Mainpage-messages]] を作成します:

mainpage-slogan mainpage-pagecount

これで完了です! 新しいメッセージを、いつでも追加/除去できます。

言語の選択

利用者がページの言語を切り替えるのに個人設定を変更する必要があるだけでなく、匿名の利用者はインターフェイスの言語を変更できずに常にウィキの既定の言語を使用することになります。匿名の利用者に言語を変更する方法を提供しない場合、このシステムで翻訳したページは既定の言語で表示されます。

幸運なことに解決策があります。UniversalLanguageSelector 拡張機能を使用すると、利用者の好みの言語を推測でき、利用者が手動で他の言語を選択したり、その設定を Cookie に保存することもできます。これには (ほぼデバッグのみに使用する) uselang パラメーターのようなトリックは不要です。