Tools 是非官方社区Wiki。社区文档正在编写中,欢迎参与。 Wiki编辑答疑群:717421103
版本250722.2
全站通知:

帮助:解析函数/language

来自WIKI实验室WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

language是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。

language

根据语言代码获取语言名称。MediaWiki原生支持。

语法

{{#language: 语言代码 | 目标语言代码 }}

  • 语言代码:ISO 639/ISO 15924语言代码(如zh、en、ja)
  • 目标语言代码(可选):不支持(需要额外的CLDR扩展)。指定返回名称所用的语言代码

在MW1.43及以上,支持无参数调用,请参阅官方文档(BWiki目前的MW版本是1.37)。

示例

  • {{#language: zh }} → 中文
  • {{#language: zh-hans }} → 中文(简体)
  • {{#language: en }} → English
  • {{#language: xxx }} →xxx (不存在的代码)

底层代码

来自MediaWiki及其扩展的源代码,运行在服务端。此处仅供快速查阅,便于更充分的挖掘其“特性”。

/** mediawiki-1.37.0\includes\parser\CoreParserFunctions.php
 * Gives language names.
 * @param Parser $parser
 * @param string $code Language code (of which to get name)
 * @param string $inLanguage Language code (in which to get name)
 * @return string
 */
public static function language( $parser, $code = '', $inLanguage = '' ) {
	$code = strtolower( $code );
	$inLanguage = strtolower( $inLanguage );
	$lang = MediaWikiServices::getInstance()
		->getLanguageNameUtils()
		->getLanguageName( $code, $inLanguage );
	return $lang !== '' ? $lang : LanguageCode::bcp47( $code );
}
代码逻辑:
  • 将输入参数统一转换为小写格式
  • 调用MediaWiki的语言服务获取规范化语言名称
  • 当无法找到对应名称时,返回经过BCP47标准格式化的原始代码
  • 实际翻译功能依赖CLDR扩展提供的多语言数据

实际用例

一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时仅供批判性参考