Manual:Language/zh


 * 另可参见手册:MediaWiki架构#语言（是否应合并至此？）

在MediaWiki中，有各种语言：


 * 网站内容语言（ ，基于 ），只要维基存在，通常应保持不变.
 * 网站内容语言变体（Manual:$wgDefaultLanguageVariant）是为该语言实现LanguageConverter时的默认变体.
 * 用户界面语言（$contextSource->getLanguage以前是 ），可以在您的首选项中更改或使用 在URL中，但在使用wiki时通常也保持不变.
 * 页面内容语言. 即使站点和用户语言相同，每个页面也可能不同. 它在Title中的getPageLanguage中定义，表示wiki文本源的编写语言.
 * 页面查看语言又名用户语言变体，它是页面内容语言的语言变体，由用户首选. 它也可以通过URL中的 （或）进行设置（例如，通过选择其中一个选项卡），如果它是页面的内容语言的变体查看. 它在标题中的getPageViewLanguage中定义，表示呈现的HTML内容的语言.

所有这三个都是语言对象.

语言代码

 * 不要与维基媒体项目代码混淆，另请参阅元维基上的语言代码

语言代码是MediaWiki支持的语言的有效标准缩写， 使用此类代码作为语言的标准标识符（大多数符合ISO 639-3，除了ISO 639-1的“已建立”区域设置的双字母代码）并公开或要求它们接口和代码的许多要点.

在下面的示例中， ， 是的语言代码.

需要使用Unicode标准的一致性来提供良好的语言支持，特别是与CLDR合作，拥有ISO 639-3代码的是要求添加到MediaWiki语言环境的语言.

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 ), mind you!

备选语言
MediaWiki中的某些语言具有所谓的“后备序列”. 如果MediaWiki无法找到所需的语言，那么这将是另一种语言. 这方面的一个例子是语言代码 （Cajun French），它依赖于语言代码 （法语）. 这样做的原因是有时语言中没有定义所有消息.

语言的后备可以在其关联的 文件中找到. For instance (grep).

Site content language
Viewing/getting the site content language



用户界面语言

 * 默认值
 * $contextSource->getLanguage


 * 设置通过


 * Special:Preferences
 * 在URL（见uselang）
 * （或）在网址如果它是您的用户语言的变体


 * 问题
 * 由于接口消息可能来自后备语言，但未返回语言，因此不知道每条消息的实际语言.

页面内容语言

 * 默认值


 * $wgLang在特殊页面上.
 * CSS和JS页面的英文.
 * 对于MediaWiki命名空间页面，该语言取决于子页面. 例如，MediaWiki:Message/ar将设置为阿拉伯语（ar），MediaWiki:Message将为$wgContLang.
 * 所有其他页面默认为$wgContLang.


 * 配置
 * 扩展可以通过PageContentLanguage钩子更改所有其他页面. 无法覆盖特殊页面、CSS、JS和MediaWiki命名空间页面的值.


 * 例子
 * 翻译扩展将其用于页面翻译功能. 参见translatewiki:Project list / ar作为translatewiki:Project list的翻译. 因此，对于阿拉伯语，页面的方向性被正确地设置为从右到左.


 * 手动更改页面语言
 * 自MediaWiki 1.24以来，借助Special:PageLanguage，现在可以实现页面语言选择.
 * 用户可以更改页面的内容语言，默认情况下是默认的Wiki语言（$wgContLang）. 无法更改MediaWiki名称空间中页面的语言.
 * 需要使用 启用该功能，并且需要为 设置权限.
 * 更改页面语言会导致源翻译页面及其单位移动到正确的目标语言. 如果目标语言翻译页面已存在，则不允许语言更改.
 * 匹配API可以在API:SetPageLanguage上找到.


 * 它定义了什么？


 * 在SkinTemplate中，它在页面文本周围添加了  . dir属性设置正确的写入方向. lang属性将始终是根代码，例如 “de”即使是“de-formal”.
 * 对于文件页面，它在ImagePage.php中设置，因为有很多用户语言的HTML.
 * 在Parser.php中，它设置目录（TOC）编号和语法之类的东西，尽管大多数情况下并不真正相关. 要做到这一点，请使用parserOptions->setTargetLanguage.
 * diff文本的方向（DifferenceEngine）设置为页面内容语言. 在某些情况下，这不相同，在这种情况下可以使用$diffEngineObject->setTextLanguage（$code）.
 * 从开始，它还设置时间和数字格式魔术字，包括方向标记，但不包括名字空间，因为真的取决于网站语言. 请注意，在带有语言B的页面上包含标记为语言A的模板，将在该页面上使用语言B进行解析.


 * 单个页面上的多种语言
 * 理论上不支持单个页面上的多种语言，但这很简单  标签可用于将文本标记为使用其他语言编写. 如果使用CSS类，当dir标记与页面内容语言的值相反时，ul/ol列表和编辑部分将很好地显示. 然而，解析器中定义的内容（如TOC和魔术词）不会改变.


 * 查看/获取页面语言


 * JavaScript： ：请注意，例如查看页面历史记录，它将返回它是历史记录的页面的页面语言，而历史记录页面没有mw-content-ltr/rtl类. 即/wiki/Page和/w/index.php?title=Page&action=history都将返回Page的语言.
 * 页面信息视图中提到了页面内容语言（ ，在工具箱中链接）
 * 可以通过api.php?action=query&prop=info在API中检索页面内容语言

参见

 * 多语言MediaWiki
 * 使用魔术字中记录的核心函数 ，可以从代码中获取语言名称.