Meta:Language select/ja

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
言語: English · کوردی · čeština · Zazaki · español · فارسی · suomi · עברית · italiano · 日本語 · Bahasa Melayu · Nederlands · русский · Soomaaliga · Türkçe · українська
Template:Stubの言語を選択していない状態。
Template:Stubの言語を選択した状態(英語とフランス語)。

言語の選択(Language select)は、多言語ページにおいて外国語を隠すことができる機能です。例えば、フランス人が多言語ページにおいてフランス語の文章だけを見ることができます。

注記:

  • このページで説明する言語選択機能の使用は、翻訳版が非常に少ないか、少数の文を翻訳する場合に限定してください。言語選択機能の想定する対象は、ほとんど翻訳されないページ(活動レポートの結果や利用者ページなど)またはカテゴリの文書化ページです(個別のサブカテゴリ作成、言語ごとの翻訳ページ集の保存または画像の説明が望ましい、または不可能である場合)。
  • サブページで複数の単一言語に完全に翻訳されるように設計されているページは言語選択を使わず、これらのページ間のナビゲーションを可能にする言語バーを使うべきです(詳細はMeta:Translationを参照)。
  • 同様にページのステータスを通知する一般的なメッセージボックスは、ユーザ言語を直接表示するため、言語選択を使用する代わりに言語スイッチ(Template:LangSwitchを参照)テンプレートを参照読み込みするかまたは新しいTranslateを使用。

右の2つの画像はTemplate:Stub (かつては言語選択システムを採用) の、言語を選択していない場合と、CSSを使って(下部参照)英語とフランス語の言語を選択した場合のスクリーンショットです。このテンプレートはユーザーの言語に自動で置き換えられ、それ以外の言語版訳は非表示になります。

「言語の選択」をさせる方法[edit]

「言語の選択」をさせるには、2つの方法があります。ページの「言語の選択」のための準備は両方の方法とも同じです。古いほうのCSSを使った方法は複数の言語を選択することができ、多言語ユーザにとってはいちばん便利です。しかし、選択された言語が無いときに認識できず、何も表示されなくなります。新しいほうのJavaScriptを使った方法は自動的にブラウザの言語を検知し(ブラウザの設定を無視するように設定できます)、選択された言語がない場合には何も起こりません。しかし、この方法では1つの言語しか一度に表示できません。

多言語ページだと分かるように[edit]

言語選択を実行するページには{{multilingual}}を使ったこのページにリンクする案内があります。この目的に使うためのロゴについての議論は今までに無く、Localisation2.svgが今のところ使われています。

言語の範囲設定[edit]

技術的な詳細[edit]

多言語ページはCSSのクラス"lang-xx"に含まれる全ての言語で書かれた文章とともに、クラス"multilingual"に含まれています。xxは小文字のISO 639の2文字の言語コードでlang属性です。lang属性はコンテクスト上、より正しいですが、それに接続するよう要求されたCSSは全てのブラウザではサポートされていません。2文字のコードがない場合、小文字の3文字のコードが使われます。もし、文章を翻訳していてどの言語か分からない場合は、"und"コードを使用してください。

以下は英語、古英語、フランス語、ラテン語、オック語、ルーマニア語、キスワヒリ語、アラビア語、ペルシア語、ウイグル語のページの例です。

<div class="multilingual">
<div class="lang-ang" lang="ang">Þis wordu is Englisc.</div>
<div class="lang-en" lang="en">This text is English.</div>
<div class="lang-fr" lang="fr">Ce texte est Français.</div>
<div class="lang-la" lang="la">Haec verba latina sunt.</div>
<div class="lang-pa" lang="pa">ਇਹ ਟੈਕਸਟ ਪੰਜਾਬੀ ਵਿੱਚ ਹੈ।</div>
<div class="lang-oc" lang="oc">Aqueste tèxt es en Occitan.</div><div class="lang-ro" lang="ro">Acest text este în română.</div>
<div class="lang-sw" lang="sw">Maelezo haya ni ya Kiswahili.</div>
<div class="lang-ar" lang="ar">هذا النّص عربي.</div>
<div class="lang-fa" lang="fa">اين نوشته فارسي است.</div>
<div class="lang-ug" lang="ug">بۇ ئۇيغۇرچە</div>
</div>

各原語名を視覚的に正しく表現するため、一覧は (言語コード順の並びではなく)ページ本体で手動で並べ替えを要します。言語コード順に並べると、順序は相対的に保たれ、最終的には恣意的で読者が目で追っても希望する言語を見つけにくくなる場合があります


テンプレート[edit]

The {{Ls}} テンプレート{{ls}}は言語の選択の実行を簡単にします。例えば、以下の2行は同値になります。

用例[edit]

2種類の「言語の選択」の方式を巡る争いがあることに留意してください。一度に使えるのは1つだけです。

下記の記述は、利用者が外装をMonobookに設定していることを前提にしています。

カスケーディング・スタイルシート(CSS)[edit]

スタイルシートに次の文を加えて、見たいと思う言語に設定できるように編集してください。

/* hide all languages */
.multilingual { display:none; }
/* unhide selected languages */
.multilingual .lang-en, .multilingual .lang-fr { display:block; }

CSSを十分にサポートするブラウザを使っているのなら(Mozilla FirefoxOperaのようなブラウザ)、コンテクストの上では適切なCSSを利用すべきです。

.multilingual *[lang] {display:none;}
.multilingual *[lang|=en], .multilingual *[lang|=fr] {display:block;}

JavaScript[edit]

JavaScriptの方法はメタウィキのデフォルトでアクティブになっています。スクリプトファイルに次の文を加えることで利用不可にすることが可能です。

ls_enable = false;

下記でJavaScriptの用例を見ることができます。言語選択が不可能なら、全ての言語の文が表示されます。

Afrikaans: Hierdie teks is in Afrikaans.
Alemannisch : Dää Text isch uf Alemannisch.
Brezhoneg : Brezhoneg eo an destenn-mañ.
Català : Aquest text és en català.
Dansk: Denne tekst er på dansk.
Deutsch: Dieser Text ist Deutsch.
Ελληνικά: Αυτό το κείμενο είναι στα ελληνικά
English: This text is English.
Eesti: See tekst on eesti keeles.
العربية: هذا النّص عربي.
فارسی: این متن فارسی است.
Suomi: Tämä teksti on suomeksi.
Français : Ce texte est Français.
עברית: הטקסט הזה בעברית.
Bahasa Indonesia: Ini adalah teks dalam bahasa Indonesia.
Italiano: Questo testo è in Italiano.
日本語: この文章は日本語です。
ភាសាខ្មែរ៖ ឃ្លានេះជាភាសាខ្មែរ។
Latina: Haec nota Latine scriptus est.
Lietuvių: Šis tekstas yra lietuviškas
Nederlands: Deze tekst is in het Nederlands.
Norsk: Denne teksten er på norsk.
Occitan : Aqueste tèxt es en Occitan.
Polski: Ten tekst jest po polsku.
Português : Este texto está em Português.
Sardu: Custu testu est in Sardu.
Türkçe: Bu tekst Türkçe'dir.
中文: 这些文字是中文。
Bahasa Melayu: Teks ini ditulis dalam Bahasa Melayu.

言語を指定する場合は、言語名ではなくコードを使います。

JavaScriptのコードはMediaWiki:Monobook.jsで見ることができます。

変更履歴[edit]

このコードは個人的なSubversionリポジトリに保存されています。このコードをウィキメディアのSubversionのリポジトリに入れることについて依然MediaWikiの開発者とコンタクトを取れていません。

  • リビジョン1358 — Edward Z. Yang(Talk) 2007年2月19日 15:36 (UTC)
    • cookieがない場合に、wgUserLanguageがグローバル変数だと検知するだろう
    • 言語が空白に設定されている場合、cookieを削除して自動検知に切り替える。
  • リビジョン1133 — Edward Z. Yang(Talk) 2006年9月2日 22:33 (UTC)
    • 利用者がもっと使いやすいように「Show all」(全てを表示する)の動作を微調整した(Cookieを上書きする代わりに一時的に全言語を単に表示する)。「Select」(選択)を押すことで切り替えられる。
    • 「Save」(省略)を「Select」(選択)に変更した。
    • 「Select」(選択)ボタンを太字にした。
    • Factored out language strings

関連項目[edit]