Manual:Language/ja


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

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


 * The site content language (, based on ), which should generally stay the same as long as the wiki exists.
 * The site content language variant (Manual:$wgDefaultLanguageVariant) is the default variant when LanguageConverter is implemented for that language.
 * The user interface language ($contextSource->getLanguage formerly ), which can be changed in your preferences or with   in the URL, but also generally remains the same while using the wiki.
 * The page content language. This can be different for each page, even if the site and user language is the same. It is defined in getPageLanguage in Title, representing what language the wikitext source is written in.
 * The page view language aka user language variant which is a language variant of page content language, as preferred by the user. It can also be set through  (or ) in the URL (e.g. by selecting one of the tabs) if it is a variant of the content language of the page being viewed. It's defined in getPageViewLanguage in Title, representing what language the rendered HTML content is written in.

これら 3 つすべてが、言語オブジェクトです.

言語コード

 * Not to be confused with Wikimedia project code; see also Language code and Language codes on Meta

A language code is a valid standard abbreviation for a language supported by MediaWiki, which uses such codes as standard identifiers for languages (mostly in accordance with ISO 639-3, except two-letter codes from ISO 639-1 for "established" locales) and exposes or requires them in many points of the interface and code.

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

Uniformity with Unicode standard is needed to provide a good language support, in particular in cooperation with CLDR; having an ISO 639-3 code is one requirement for a language to be added to MediaWiki locales.

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!

フォールバック言語
Some languages in MediaWiki have what is known as a "fallback sequence". This is where MediaWiki will fall back on a different language if it cannot find what it needs. An example of this is the language code  (Cajun French), which falls back on the language code   (French). The reason for this is that sometimes languages don't have all messages defined in them.

言語のフォールバック言語は、対応する言語の  ファイル内に記述されています.

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

 * 既定値
 * $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 here


 * 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.


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


 * JavaScript:  - note that, when e.g. viewing the page history, it will return the page language of the page it is the history of, whereas the history page doesn't have an mw-content-ltr/rtl class. I.e. both "/wiki/Page" and "/w/index.php?title=Page&action=history" will return the language of "Page".
 * The page content language is mentioned on the page info view (, linked in the toolbox)
 * The page content language can be retrieved in the API via api.php?action=query&prop=info

関連項目

 * 多言語 MediaWiki
 * Obtaining language names from codes is possible using the core function documented in magic words