wordpress本地化不起作用

时间:2014-07-23 12:15:19

标签: php wordpress localization wordpress-theming

我在themes / languages文件夹中有en_US.mo和en_US.po文件。 我的主题/ functions.php是

function custom_theme_setup() {                                                                                                                                                                                                                                                                                                                                                                                                          
    $lang_dir = get_template_directory() . '/languages';                                                                                                                                                   
    $locale = "en_US";  // get_locale() is also returning same                                                                                                                                                                    
    if ( is_readable( "$lang_dir/$locale.mo"))
        echo "Yes, its working";                                                                                                                                                                                                                                                               
    echo load_theme_textdomain('tutsplus', $lang_dir);
    _e("Hello\n","tutsplus");
}                                                                                                                                                                    
add_action('after_setup_theme', 'custom_theme_setup');
_e("Hello\n","tutsplus");

我的en_US.po文件包含

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-07-22 18:39+0530\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: en_US\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: getetxt.php:80
#, php-format
msgid "Hello\n"
msgstr "bonjure\n"

我在最后包含了一个文件,它也有相同的

_e("Hello\n", 'tutsplus');

但这似乎都不起作用。

1 个答案:

答案 0 :(得分:0)

Wordpress中的原生翻译无法识别",因此会跳过该翻译,这就是为什么您没有在前端看到翻译文本

你应该,这是一个黄金法则,总是使用单'。所以你的字符串应该是

_e( 'Hello\n', 'tutsplus');

另一点值得注意。您可以完全删除文本域。

 e( 'Hello\n' );

如果您使用文本域,必须与主样式表标题中明确指定的文本域相同。