Manual:Language/ja


 * Manual:MediaWiki architecture#Languages も参照してください (このページに統合すべきかも)

MediaWiki には、さまざまな種類の言語があります:


 * サイトの本文の言語（ に依拠する ）とは通常、ウィキが存在する限り不変であるべきです.
 * サイト本文の言語の変種 (Manual:$wgDefaultLanguageVariant) とはLanguageConverterを実行したときに既定となるものです.
 * ユーザーのインターフェイス言語（$contextSource->getLanguage、旧来の ）は本来はウィキの利用中一意であり、個人設定もしくはURLの で指定を変更できます.
 * ページ内容の言語について. これはサイトとユーザー言語が同じでもページごとに異なることがあります. 定義はTitleのgetPageLanguageに示してあり、ウィキ文の原文を記した言語を示します.
 * ページ表示言語ないしはユーザー言語の変種とはページの本文言語の変種で、ユーザーが選んだものです. これももし表示中のページのページ本文言語の変種であるなら、設定は変更でき、URLの （またはを例えばタブのひとつを選んで指定できます. 定義はTitleのgetPageViewLanguageにあり、HTMLを解析して本文の記述言語を示します.

これら3つすべてを指して言語オブジェクトと呼びます.

言語コード

 * Wikimedia project codeのことではありません. メタのLanguage codeとLanguage codesも参照

言語コードとはMediaWikiがサポートする言語の有効な標準略称であり 、用いるコードは言語の標準識別子 （ほぼISO 639-3に準拠し例外は「定着した」ロケール用のISO 639-1準拠の2文字コード）をインターフェイスとコーディングでしばしば提示または要求されます.

下記の例  では、  が  (訳注: アラビア語) の言語コードです.

適切な言語サポートを行うにはユニコード標準との統一、わけてもCLDRとの連携が欠かせません. MediaWikiロケールに特定の言語を追加する必須条件は該当するISO 639-3 コードがあることです.

Names.php
is the master registry of languages supported by MediaWiki. This is not the same as languages of which MediaWiki will show l10n (JSON files) nor languages of which MediaWiki knows the names (via CLDR), mind you!

フォールバック言語
MediaWiki の言語版により「代替方式」を用意しています. もし使用言語で必要な定義がない時は、MediaWikiが別の言語で表示されます. 一例として言語コード （ケージャン・フランス語）は （フランス語）で代替します. この処置は言語版によって定義していないメッセージを補うためです.

言語の代替は、対応する言語の  ファイル内に記述されています.

ユーザーインターフェイスの言語

 * 既定値
 * $contextSource->getLanguage


 * 変更する方法


 * Special:Preferences (個人設定)
 * URL で  の形式で指定する (uselang を参照)
 * URLを設定できる （または ）は、それがユーザーの利用者言語の言語変種である場合に限定


 * Problems
 * Since interface messages can come from fallback languages but the language is not returned, the actual language of each message is not known.

ページ本文の言語

 * 既定値


 * 特別ページの言語は $wgLang です.
 * CSS ページおよび JS ページは英語です.
 * MediaWiki 名前空間のページでは、言語は下位ページによって異なります. 例えば、MediaWiki:Message/ar はアラビア語 (ar) になり、MediaWiki:Messsage は $wgContLang になります.
 * その他のページはすべて、既定では $wgContLang です.


 * Configuration
 * Extensions can change all other pages through the PageContentLanguage hook. The value for special pages, CSS, JS, and MediaWiki namespace pages cannot be overridden.


 * Examples
 * The Translate extension uses it for the page translation feature. See translatewiki:Project list/ar as a translation of translatewiki:Project list. The directionality of the page is thus correctly set to right-to-left for Arabic.


 * Manually changing page language
 * Page language selection is now achievable with help of Special:PageLanguage since MediaWiki 1.24.
 * Users can change content language of a page which is by default the default Wiki language($wgContLang). Language of pages in the MediaWiki namespace can't be changed.
 * The feature needs to be enabled with  and permission needs to be set for.
 * Changing page language causes the source translation page and its units to be moved to the correct target language. In case the target language translation page already exists, the language change isn't allowed.
 * Matching API can be found on API:SetPageLanguage.


 * What does it define?


 * In SkinTemplate, it adds a  around the page text. The dir attribute sets the correct writing direction. The lang attribute will always be the root code, e.g. "de" even when "de-formal" is given.
 * For file pages, it is set in ImagePage.php, because there is a lot of HTML that is in the user language.
 * In Parser.php, it sets the table of contents (TOC) numberings, and stuff like grammar, although not really relevant mostly. To do that only, use parserOptions->setTargetLanguage.
 * The direction of the diff text (DifferenceEngine) is set to the page content language. In some cases this is not identical, in which case $diffEngineObject->setTextLanguage( $code ) can be used.
 * Since, it also sets the time and number-formatting magic words, including DIRECTIONMARK, but not NAMESPACE(E), as that really depends on the site language. Note that including a template marked as language A onto a page with language B, will be parsed with language B on that page.


 * Multiple languages on a single page
 * Multiple languages on a single page are in theory not supported, but simple  tags can be used to mark text as being written in a different language. If the CSS class is used, the ul/ol lists and editsection will display nicely when the dir tag is opposite to the value of that of the page content language. Things defined in the parser, like TOC and magic words, however, will not change.


 * ページ言語の閲覧/取得

mw-content-ltr/rtlクラスの設定がない点が要注意. つまり「/wiki/Page」と「/w/index.php?title=Page&action=history」が返すのは、どちらも「Page」の言語.
 * JavaScript:  - 例えばページの変更履歴の閲覧では履歴が該当ページの本文言語で表示されるものの、変更履歴ページそのものには
 * ページの本文言語はページの情報表示に定義（ツールボックスのリンク ）
 * ページの本文言語はapi.php?action=query&prop=infoを介してAPIで取得

関連項目

 * 多言語 MediaWiki
 * コードから言語名を読み取るには、コアの機能 が使えます. 解説はマジックワードを読んでください.