主题不想加载本地化文件

时间:2013-06-21 作者:Andrea Sciamanna

这是我的功能。php摘录:

function get_theme_text_domain()
{
    //Same behavior if I return the string as \'return \'whatever\'
    $theme = wp_get_theme();
    return $theme->get(\'TextDomain\');
}

function tamtando_theme_setup()
{
    load_textdomain(get_theme_text_domain(), get_template_directory() . \'/languages\');

[...]

}

add_action(\'after_setup_theme\', \'tamtando_theme_setup\');
$theme 是一个包含所有主题属性的数组:按预期。$theme->get(\'TextDomain\') 返回“tamtando”:如预期。

我注意到使用时主题没有翻译任何字符串__(\'somestring\', get_theme_text_domain()).

然后,我尝试在执行时查看调试器的运行情况load_textdomain(get_theme_text_domain(), get_template_directory() . \'/languages\');.

在这里我意识到import_from_reader($reader), 位于/wp includes/pomo/mo.php上,返回false,因为我认为,$reader->readint32() 返回false。我想,发生这种情况的原因可能是找不到文件,或者文件有问题。

我已经检查过了:文件看起来是正确的,我甚至使用不同的工具重新创建了几次,但问题仍然存在。

这不是我写的第一个主题,我通常都使用相同的模式,所以我对这个问题真的很迷茫。

有人知道这种行为的可能原因吗?

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

一个错误:函数为load_theme_textdomain(), 不load_textdomain(). 前者用于主题定义/加载textdomain;我认为,后者是针对核心的。(插件具有类似的功能,load_plugin_textdomain().)

尝试使用:

load_theme_textdomain( get_theme_text_domain(), get_template_directory() . \'/languages\' );

结束

相关推荐

L10n.js在WordPress 3.1中做什么?那我怎么移除它呢?

我刚刚在测试服务器上安装了WP 3.1 Beta 2。我注意到它带有一个新的l10n.js 自动插入到标头中的文件。我做了一些挖掘,这与本地化有关。我猜很多人不使用这个,所以我想知道如何删除它?如果重要的是不要删除它,请让我也知道。