__()WITH Sprint返回未翻译的字符串

时间:2016-09-26 作者:irot

当我偶然发现在pre_get_document_title 功能:(简化)

$title = \'Hello World\';
__( $title, \'my_text_domain\' );
这将返回正确的翻译字符串。然而,最近有人向我指出,这不是有效的语法,因为本地化函数应该只接收字符串;不是变量,也不是函数返回值。推荐的(正确的)语法,如许多主题所示:

sprintf( __( \'%s\', \'my_text_domain\' ), $title );
做了这个改变后,我发现我所有的标题现在都是英文的。i、 e.什么都不能翻译。所有的语言文件都还在,我所做的只是修改了\\uuu()调用。

我错过了什么吗?

1 个回复
SO网友:Mike

调用函数的顺序错误。

使用此代码:

sprintf( __( \'%s\', \'my_text_domain\' ), $title );
您正在尝试翻译域“my\\u text\\u domain”中的字符串\'\'%1!\'\'$title.sprintf( \'%s\', $title);您应该做什么:

__( sprintf( \'%s\', $title ), \'my_text_domain\' );
  • sprintf() 将返回您的标题__() 顺便说一下,如果你打算只使用帖子的标题,你可能不需要使用sprintf() 但实际上:

    __( $title, \'my_text_domain );
    

相关推荐

Plugin Localization

我刚刚为wp构建了我的第一个插件,即使它不是一个伟大的“代码诗意”;)它正常工作。这是一个使用GalleryView 3.0 jquery插件转换默认wp库的插件(http://spaceforaname.com/galleryview).我唯一不能做的就是本地化。此插件的本地化意味着转换管理界面,在这里可以配置jquery插件选项来更改结果库的外观。我试着关注网络上数百万的教程,在论坛上阅读了很多关于这个问题的帖子,并遵循了codex的指南。。。但仍然没有运气。这就是我所做的:每个文本行都位于gette