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

帮助:解析函数/plural

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

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

plural

语言复数判断。MediaWiki原生支持。

根据条件使用指定的单数/复数形式,条件为 1 / -1 时判定为单数。

语法

{{plural: 条件wikitext | 单数文本 | 复数文本 }}

  • 条件wikitext:用于判断单复数的条件wikitext,其结果应为数字
  • 单数文本:条件wikitext的展开结果为为 1 / -1 时,输出的文本
  • 复数文本:非单数情况输出的文本

以上参数描述为默认语言设置。部分语言有更多种复数形式,请参考官方文档和translatewiki.net上的相关文档Plura in MediaWiki

示例

  • {{plural: 1 | is | are }} → is
  • {{plural: -1 | is | are }} → is
  • {{plural: -2 | is | are }} → are
  • {{plural: 0 | is | are }} → are
  • {{plural: 2 | is | are }} → are

底层代码

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

/** mediawiki-1.37.0\includes\parser\CoreParserFunctions.php
 * @param Parser $parser
 * @param string $text
 * @param string ...$forms What to output for each number (singular, dual, plural, etc.)
 * @return string
 */
public static function plural( $parser, $text = '', ...$forms ) {
	$text = $parser->getFunctionLang()->parseFormattedNumber( $text );
	settype( $text, ctype_digit( $text ) ? 'int' : 'float' );
	return $parser->getFunctionLang()->convertPlural( $text, $forms );
}
代码逻辑:
  • 根据条件使用不同的单复数形式文本

实际用例

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