描述
当您希望根据数字是单数还是复数使用适当的字符串形式时使用。
例子:
printf( _n( '%s person', '%s people', $count, 'text-domain' ), number_format_i18n( $count ) );
参数
- $single
-
(string)(必填) 数字是单数时使用的文本。
- $plural
-
(string)(必填) 数字为复数时使用的文本。
- $number
-
(int)(必填) 使用单数或复数形式进行比较的数字。
- $domain
-
(string)(可选) 文本域,检索已翻译字符串的唯一标识符。
默认值: 'default'
返回
(string) 翻译的单数或复数形式。
源码
更新日志
版本 | 描述 |
---|---|
5.5.0 | 引入 ngettext-{$domain} 过滤器 |
2.8.0 | 开始引入 |
使用示例
显示星级插件的“1星”或“x星”。
$rating = '3'; $text = sprintf( _n( '%s star', '%s stars', $rating, 'wpdocs_textdomain' ), $rating ); // "3 stars" echo $text;
重要提示:永远不要在
sprintf()
函数中进行计算!以下操作不起作用:$text = sprintf( _n( '%s star', '%s stars', $rating, 'wpdocs_textdomain' ), 2 <= $rating ? $rating -1 : $rating );
来自/wp-admin/edit-comments.php的示例,不使用文本域进行翻译。
if ( $approved > 0 ) { $messages[] = sprintf( _n( '%s comment approved', '%s comments approved', $approved ), $approved ); }