我使用代码片段显示消息,但如何才能使用正确的语言?

时间:2021-09-15 作者:Ton

我使用代码片段在我的站点中显示消息,例如,在;发表评论”;按钮I显示文本“;您的消息只有在手动调节后才可见;。我使用此代码:

add_action( \'comment_form\', \'wpse_93795_comment_form\' );
function wpse_93795_comment_form( $post_id ) {
    printf( \'<span class="submit-comment-note">%s</span>\',
      __( \'Your message will only be visible after manual moderation\', \'your_text_domain\' ) );
}
我的问题是:可以有一个;“开关”;在这里写一篇取决于语言的文字?例如,如果网站中设置的语言为英语,我希望显示“您的消息只有在手动调节后才可见”,但如果语言为西班牙语,我希望显示“您的消息”;Su mensaje sólo serávisible tras ser manualmente revisado”手册;

我使用Polylang在站点中使用不同的语言。谢谢

1 个回复
SO网友:Tom J Nowell

代码中已经有:

__( \'Your message will only be visible after manual moderation\', \'your_text_domain\' )
__ 是一个翻译函数,是WordPress核心中静态字符串翻译系统的一部分。Polylang可能允许您翻译动态内容,但是__() 它的朋友是静态字符串。这些使用标准化gettext 格式为.po.pot/.mo 文件,每个文件列出了所有字符串及其在另一种语言中的对应项。每种语言都有自己的文件。

该系统非常适合用户界面和不变的主题/插件字符串。但不要试图将其用于变量和动态数据。

通常情况下,您需要更改站点的语言以将这些语言切换为其他语言,但由于您有Polylang,您可以使用其内置的语言选择工具在语言之间切换。

看见the internationalisation section of the theme handbook.

E、 g.如果您有:

<h1>A big title</h1>
那么最好的做法是使此内容可翻译。

<h1><?php echo __( \'A big title\', \'text-domain-goes-here\' ); ?></h1>
请注意,每个调用都指定了一个文本域,让它知道如何使用主题/插件中的字符串。

相关推荐

multi-language WordPress site

我正在制作由WordPress支持的多语言网站。WPML 不是免费的,而且它对数据库进行了太多额外的sql查询,所以对于我的站点来说,这不是一个好的解决方案。qTranslate 将所有语言保存在一个数据库行中,以后移动到另一个多语言插件非常复杂。<?php _e( \'<!--:en-->english text<!--:--><!--:de-->german text<!--:-->\' ); ?> xLanguage 两年多没有更新