国际化语言包使用函数讲解
函数参数详细讲解
序号 | 函数 | 代码参考 | 参数说明 | 说明 |
---|---|---|---|---|
1 | __( ) | __( string $text, string $domain = 'default' ) | $text:要翻译的文本(必填);
$domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
检索$ text的翻译,如果没有翻译,或未加载文本域,则返回原始文本。如果字符串是返回给其他函数调用,不打印出来,就用 __() ;直接打印输出到 html 中的字符串,就用 _e() 。 |
2 | _e( ) | _e( string $text, string $domain = 'default' ) | $text:要翻译的文本(必填);
$domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
显示翻译文本。如果字符串是返回给其他函数调用,不打印出来,就用 __() ;直接打印输出到 html 中的字符串,就用 _e() 。 |
3 | _x( ) | _x( string $text, string $context, string $domain = 'default' ) | $text:要翻译的文本(必填);
$context:根据不同上下文显示的不同内容(必填); $domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
使用gettext context检索已翻译的字符串,比如会有两个以上地方发现的类似可翻译文本的碰撞,但翻译背景不同。通过在pot文件中包含上下文,翻译器可以不同地翻译两个字符串。
|
4 | _ex( ) | _ex( string $text, string $context, string $domain = 'default' ) | $text:要翻译的文本(必填);
$context:根据不同上下文显示的不同内容(必填); $domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
使用gettext context显示已翻译的字符串;_ex() 区别于 _x() 的地方,和 _e() 区别于__() 是一样的。前者是用于直接打印输出到html的字符串,后者用于返回字符串以供其他函数调用,不打印输出。 |
5 | _n( ) | _n( string $single, string $plural, int $number, string $domain = 'default' ) | $single:如果数字是单数,则使用的文本(必填);
$plural:数字为复数时使用的文本(必填); $number:要使用单数或复数形式进行比较的数字(引用的数字)(必填); $domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
当您想根据数字是单数还是复数时使用相应形式的字符串时使用。 |
6 | _nx( ) | _nx( string $single, string $plural, int $number, string $context, string $domain = 'default' ) | $single:如果数字是单数,则使用的文本(必填);
$plural:数字为复数时使用的文本(必填); $number:要使用单数或复数形式进行比较的数字(引用的数字)(必填); $context:根据不同上下文显示的不同内容(必填); $domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
这是_n()和_x()的混合体。它支持上下文和复数。当您想要根据数字是单数还是复数使用相应形式的字符串时使用。通过context参数消除歧义。 |
7 | _n_noop( ) | _n_noop( string $singular, string $plural, string $domain = null ) | $singular:单一表格(必填);
$plural:要复制的多种形式(必填); $domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
当您想要保留具有可翻译多个字符串的结构时使用,并在数字已知时使用它们。 |
8 | _nx_noop( ) | _nx_noop( string $singular, string $plural, string $context, string $domain = null ) | $singular:单一表格(必填);
$plural:要复制的多种形式(必填); $context:根据不同上下文显示的不同内容(必填); $domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
当您想要保留具有可翻译多个字符串的结构时使用,并在数字已知时使用它们。通过context参数消除歧义 |
9 | translate_nooped_plural( ) | translate_nooped_plural( array $nooped_plural, int $count, string $domain = 'default' ) | $nooped_plural:带有单数,复数和上下文键的数组,通常是_n_noop()或_nx_noop()的结果。(必填);
$count:对象数(必填); $context:根据不同上下文显示的不同内容(必填); $domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
翻译_n_noop()或_nx_noop()单数或复数形式的结果,在数字已知时,如果要使用可翻译的复数字符串,请使用此选项。 |
10 | esc_html__( ) | esc_html__( string $text, string $domain = 'default' ) | $text:要翻译的文本(必填);
$domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
检索$text的转换并将其转义以便在HTML输出中安全使用。 如果没有翻译或未加载域,则返回转义的原始文本。 |
11 | esc_html_e( ) | esc_html_e( string $text, string $domain = 'default' ) | $text:要翻译的文本(必填);
$domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
显示已转义的已翻译文本,以便在HTML输出中安全使用。 如果没有翻译或未加载域,则会显示转义的原始文本。如果需要在PHP中使用的值,请使用esc_html __() |
12 | esc_html_x( ) | esc_html_x( string $text, string $context, string $domain = 'default' ) | $text:要翻译的文本(必填);
$context:根据不同上下文显示的不同内容(必填); $domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
使用gettext上下文转换字符串,并将其转义以便在HTML输出中安全使用。 |
13 | esc_attr__( ) | esc_attr__( string $text, string $domain = 'default' ) | $text:要翻译的文本(必填);
$domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
检索$text的转换并将其转义以便在属性中安全使用。 如果没有翻译或未加载域,则原始文本将被转义并返回。 |
14 | esc_attr_e( ) | esc_attr_e( string $text, string $domain = 'default' ) | $text:要翻译的文本(必填);
$domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
显示已转义以在属性中安全使用的已翻译文本。 编码<>&“'(小于,大于,&符号,双引号,单引号)。永远不会对实体进行双重编码。如果需要在PHP中使用的值,请使用esc_attr __( )。 |
15 | esc_attr_x( ) | esc_attr_x( string $text, string $context, string $domain = 'default' ) | $text:要翻译的文本(必填);
$context:根据不同上下文显示的不同内容(必填); $domain:用于检索已翻译字符串的唯一标识符(可选,默认为‘default’); |
检索gettext上下文中$ text的转换,并将其转义以便在属性中安全使用。 如果没有翻译或未加载域,则返回转义的原始文本。 |
16 | number_format_i18n( ) | number_format_i18n( float $number, int $decimals ) | $number:要根据区域设置进行转换的数字要根据区域设置进行转换的数字(必填);
$decimals:小数位数的精度。 默认值为0;(可选,默认值为0); |
根据区域设置将浮点数转换为格式。 |
17 | date_i18n( ) | int $unixtimestamp = false, bool $gmt = false ) | $dateformatstring:显示日期的格式(必填);
$unixtimestamp:Unix时间戳(可选); $gmt:是否使用GMT时区(可选); |
根据时间戳以本地化格式检索日期。如果语言环境指定语言环境月份和工作日,则语言环境将接管日期的格式。 如果不是,则将使用日期格式字符串。 |
相关函数例子
1、__()
<?php $translated = __( 'Hello World!', 'mytextdomain' );?>
说明:'mytextdomain'需要是整个中使用的唯一文本域。 这应始终直接作为字符串文字传递,如上所示,而不是分配给变量或常量的字符串。
2、_e()
<?php _e( 'Some text to translate and display.', 'textdomain' ); ?>
3、_x( )
<?php
$translated = _x( 'Read', 'past participle: books I have read' );
?>
说明:由于字符串“Read”本身可能具有英语中几种不同含义中的一种,因此提供了上下文,以便翻译人员知道他们应该提供一个短期,意思是“我读过的书”。
4、_ex( )
<?php
_ex( 'Format', 'post format' );
?>
说明:使用gettext context显示已翻译的字符串;_ex() 区别于 _x() 的地方,和 _e() 区别于__() 是一样的。前者是用于直接打印输出到html的字符串,后者用于返回字符串以供其他函数调用,不打印输出。
5、_n( )
<?php
//第一组:
if(get_comments_number() == 1) {
_e( 'There is a comment' );
} else {
_e( 'There are comments' );
}
第二组:
echo _n( 'There is a comment' , 'There are comments' , get_comments_number() );
?>
说明:第一组代码是通过 if 来判断,如果评论数量是 1 ,就输出“There is a comment ”,否则输出“There are comments”,由于是直接输出的,所以使用 _e() ; 第二组是使用echo 函数输出,然后使用 _n() 来区分1条评论和多条评论的显示内容。
6、_nx( )
printf( _nx( '%s group', '%s groups', $people, 'group of people', 'text-domain' ), number_format_i18n( $people ) );
printf( _nx( '%s group', '%s groups', $animals, 'group of animals', 'text-domain' ), number_format_i18n( $animals ) )
- 说明:这是_n()和_x()的混合体。它支持上下文和复数。当您想要根据数字是单数还是复数使用相应形式的字符串时使用。通过context参数消除歧义。
7、_n_noop( )
<?php
$message = _n_noop( '%s post', '%s posts', 'text-domain' );
...
printf( translate_nooped_plural( $message, $count, 'text-domain' ), number_format_i18n( $count ) );
?>
说明:当您想要保留具有可翻译多个字符串的结构时使用,并在数字已知时使用它们。
8、_nx_noop( )
<?php
$labels = array(
'draft' => array( _nx_noop('%s Draft', '%s Drafts', 'post'), _nx_noop('%s Draft', '%s Drafts', 'page') ),
'publish' => array( _nx_noop('%s Published', '%s Published', 'post'), _nx_noop('%s Published', '%s Published', 'page') )
);
if( $post_type == 'page' ) {
$labels = $labels[$post_status][1];
} else {
$labels = $labels[$post_status][0];
}
$usable_text = sprintf( translate_nooped_plural( $labels, $count, $domain ), $count );
?>
说明:当您想要保留具有可翻译多个字符串的结构时使用,并在数字已知时使用它们。通过context参数消除歧义
9、translate_nooped_plural( )
<?php
$messages = array(
'post' => _n_noop('%s post', '%s posts'),
'page' => _n_noop('%s page', '%s pages')
);
...
$message = $messages[$type];
$usable_text = sprintf( translate_nooped_plural( $message, $count, $domain ), $count );
?>
说明:翻译_n_noop()或_nx_noop()单数或复数形式的结果,在数字已知时,如果要使用可翻译的复数字符串,请使用此选项。
10、esc_html__( )
<h1><?php echo esc_html__( 'Title', 'text-domain' )?></h1>
说明:检索$text的转换并将其转义以便在HTML输出中安全使用。 如果没有翻译或未加载域,则返回转义的原始文本。
11、esc_html_e( )
<p><?php esc_html_e( 'Hello World!', 'text-domain' ); ?></p>
说明:显示已转义的已翻译文本,以便在HTML输出中安全使用。 如果没有翻译或未加载域,则会显示转义的原始文本。如果需要在PHP中使用的值,请使用esc_html __()
12、esc_html_x( )
<?php echo esc_html_x( 'Add New', 'site' ); ?>
说明:使用gettext上下文转换字符串,并将其转义以便在HTML输出中安全使用。
13、esc_attr__( )
<?php echo '<button type="button" id="collapse-button" aria-label="' . esc_attr__( 'Collapse Main menu' ) . '" aria-expanded="true">'; ?>
说明:检索$text的转换并将其转义以便在属性中安全使用。 如果没有翻译或未加载域,则原始文本将被转义并返回。
14、esc_attr_e( )
<?php esc_attr_e( 'Edit menu item' ); ?>
说明:显示已转义以在属性中安全使用的已翻译文本。 编码<>&“'(小于,大于,&符号,双引号,单引号)。永远不会对实体进行双重编码。如果需要在PHP中使用的值,请使用esc_attr __( )。
15、esc_attr_x( )
<?php echo esc_attr_x( 'Schedule', 'post action/button label' ); ?>
说明:检索gettext上下文中$ text的转换,并将其转义以便在属性中安全使用。 如果没有翻译或未加载域,则返回转义的原始文本。
16、number_format_i18n( )
<?php printf( _n( '%s column', '%s columns', $i ), number_format_i18n( $i ) ); ?>
说明:根据区域设置将浮点数转换为格式。
17、date_i18n( )
<?php date_i18n( __( 'g:i a' ) ) ?>
说明:根据时间戳以本地化格式检索日期。如果语言环境指定语言环境月份和工作日,则语言环境将接管日期的格式。 如果不是,则将使用日期格式字符串。