WordPress主题.mo-文件无法加载

时间:2015-06-30 作者:Michiel Standaert

我正在开发一个实现多种语言的主题。我有一些字符串需要在主题本身中翻译。我想使用。采购订单和。mo文件。出于某种原因,当我尝试加载文件时,它们无法正确加载,我也不知道为什么。

我尝试使用以下代码加载正确的文本域。

function my_theme_localized($locale)
{
    if (isset($_GET[\'lang\'])){
        return sanitize_key($_GET[\'lang\']);
    }

    return $locale;
}
add_filter(\'locale\', \'my_theme_localized\');

function my_theme_setup(){
    load_theme_textdomain(\'theme\', TRANSLATION_URL);
}
add_action(\'after_setup_theme\', \'my_theme_setup\');
我调试了一点,在类wp主题中生成的mo文件的链接应该是正确的。我使用的语言环境将正确返回,相应的文件位于目录中(例如pl\\u pl.mo)。

我已经尝试了我能想到的一切,但我仍然不知道这段代码有什么问题。有谁能帮我吗?

1 个回复
最合适的回答,由SO网友:Martin Sotirov 整理而成

load\\u theme\\u textdomain()需要指向目录的绝对路径,因此您应该这样设置您的theme\\u URL

define("THEME_URL", get_template_directory());
define("TRANSLATION_URL", THEME_URL . "/languages");
它不适合您,因为get\\u bloginfo(“template\\u url”)是一个url,而不是服务器上的绝对路径。

结束

相关推荐

我们可以用不同的域名多次加载“Load_Theme_TextDOMAIN”吗?

假设我的主题中有两个域,分别是“基本”和“高级”。可以在我的主题中加载两个不同的域吗?load_theme_textdomain( \'basic\', TEMPLATEPATH.\'/languages\' ); load_theme_textdomain( \'advance\', TEMPLATEPATH.\'/languages\' );