Functions.php中的字符串转换不起作用

时间:2017-05-11 作者:Steve

我在中使用了以下代码functions.php 要翻译一些文本:

add_filter(\'gettext\', \'aad_translate_words_array\');
add_filter(\'ngettext\', \'aad_translate_words_array\');
function aad_translate_words_array( $translated ) {
     $words = array(
        // \'word to translate\' = > \'translation\'
        \'Place Name\' => \'Artist Name\',
        \'Add Your Place\' => \'Add Your Artist Practice\'
     );
     $translated = str_ireplace(  array_keys($words),  $words,  $translated );
     return $translated;
}
此代码不会产生任何文本更改。

为什么会这样?感谢您的帮助。

2 个回复
SO网友:sMyles

您的代码是正确的,即使大小写不匹配,也会处理措辞。

你的问题可能是Place Name 正在输出,而不是通过WordPress翻译函数传递,__( \'Place Name\' )_e( \'Place Name\' );

或者你要翻译的是动态生成的。。。你没有提供任何细节Place Name 源于,因此,除了告诉您代码是正确的之外,我们无能为力。

如果您不习惯使用PHP来实现这一点,您应该使用一个插件,如Say What:https://wordpress.org/plugins/say-what/

这是我之前在WordPress网站上修改措辞的教程:https://plugins.smyl.es/docs-kb/how-to-change-button-or-other-text-on-entire-wordpress-site/

SO网友:Manuel de la Iglesia Campos

默认情况下,WP中有以下内容:add_action( \'after_setup_theme\', your_theme_setup_function() );

在该设置函数中,应该有以下调用:load_theme_textdomain( your_theme_domain, get_template_directory() . \'/languages\' );

“after\\u setup\\u theme”调用似乎使该函数位于“functions”内。php本身不识别域。

通过移动呼叫解决了此问题:load_theme_textdomain( your_theme_domain, get_template_directory() . \'/languages\' );到函数的根。php\'

结束

相关推荐

如何在图片上传对话框中设置“Alt Text”的默认值?

我正在使用WP 4.1.1,并试图在上载图像时为“Alt text”创建一个默认值(将其直接放到帖子中并显示对话框)。我试过用这个钩子https://codex.wordpress.org/Plugin_API/Filter_Reference/attachment_fields_to_edit虽然我似乎可以添加一个新字段(它出现在对话框窗体上),但我无法修改“Alt Text”字段的值。因此,以下方法不起作用(但根据文档,应该如此!)。我也尝试过将优先级从高更改为非常低,没有区别。add_filter(