国际化语言包使用函数讲解

来自ECJiaWiki
跳转至: 导航搜索

函数参数详细讲解

序号 函数 代码参考 参数说明 说明
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' ) ) ?>

说明:根据时间戳以本地化格式检索日期。如果语言环境指定语言环境月份和工作日,则语言环境将接管日期的格式。 如果不是,则将使用日期格式字符串。

猜你想看

国际化语言包创建和翻译操作说明

国际化语言包代码升级说明