D. *_* A. 3 wordpress gettext internationalization translate
我正在尝试翻译WP主题。我有以下代码:
$translation = __( get_color(), 'textdomain' );
Run Code Online (Sandbox Code Playgroud)
它可以正常工作,我可以从get_color()函数动态获取颜色,并且转换效果很好。但是,当我使用“主题检查”插件时,此代码出现错误。
我需要改用这个:
$translation = sprintf( __( '%s', 'textdomain' ), get_color() );
Run Code Online (Sandbox Code Playgroud)
但是在那种情况下,我的占位符%s不翻译,并且我得到了原始颜色名称(未翻译)。
我做错了什么?谢谢。
Luc*_*nte 10
我很惊讶没有人提到“翻译者”注释,它告诉翻译者其中的每个变量是什么sprintf。例子:
sprintf(
/* translators: %s: Name of a city */
esc_html__( 'Your city is %s.', 'my-plugin' ),
esc_html( $city )
);
sprintf(
/* translators: 1: Name of a city 2: ZIP code */
esc_html__( 'Your city is %1$s, and your zip code is %2$s.', 'my-plugin' ),
esc_html( $city ),
esc_html( $zipcode )
);
Run Code Online (Sandbox Code Playgroud)
esc_html__我们使用来自社区翻译的字符串来逃避翻译,以防止 XSS,并且我们使用esc_html变量中的 XSS 保护来逃避动态输出$city。
echo sprintf(__("text %s", 'your__text_domain'), $data);
Run Code Online (Sandbox Code Playgroud)
A。,
在你的代码中:
$translation = sprintf( __( '%s', 'textdomain' ), get_color() );
Run Code Online (Sandbox Code Playgroud)
该__()函数检查字符串“%s”的翻译(您可能没有翻译该字符串),然后将“%s”替换为 的结果get_color()。所以 的值get_color()永远不会通过转换函数。
我不确定这里正确的解决方案是什么,也许在这种情况下忘记主题检查。
| 归档时间: |
|
| 查看次数: |
5652 次 |
| 最近记录: |