翻译了我的主题(翻译没有显示)

时间:2012-04-17 作者:Francis Thibault

我读了很多关于翻译你的网站的最佳方法的文章(在我的例子中是法语和英语)

我建立了一个多站点,在那里我创建了两个站点一个是法语mywebsite。com/fr和一个英文mywebsite。com/en

我现在正在翻译我的主题(默认为法语),我将其添加到我的主题功能中。php:

load_theme_textdomain(\'INTERluminaires\', get_template_directory() . \'/languages\');
然后修改了我的模板文件,以便能够翻译一些文本

<?php _e("Design et conseils", "INTERluminaires"); ?>
用poedit创建了一个po和mo文件,一切都很顺利。

我在我的主题文件夹/语言中上载了这些文件

这些文件名为en\\u CA.po和en\\u CA.mo(我尝试了INTERluminaires-en\\u CA.po和mo,但没有成功)

当我在“设置”“常规”中更改主题语言并刷新网站时,不会翻译任何内容。

知道这里有什么问题吗?

顺便说一句,我成功地翻译了我安装的插件,没有任何问题。

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

您的代码不完整。您注册了主题的textdomain,但实际上并没有告诉WordPress加载您的翻译文件。

对此:

load_theme_textdomain(\'INTERluminaires\', get_template_directory() . \'/languages\');
添加以下内容:

$locale = get_locale();
$locale_file = get_template_directory() . "/languages/$locale.php";
if ( is_readable( $locale_file ) ) {
    require_once( $locale_file );
}
或者,总的来说(并正确包装在回调中):

<?php
function wpse49326_translate_theme() {
    // Load Theme textdomain
    load_theme_textdomain(\'INTERluminaires\', get_template_directory() . \'/languages\');

    // Include Theme text translation file
    $locale = get_locale();
    $locale_file = get_template_directory() . "/languages/$locale.php";
    if ( is_readable( $locale_file ) ) {
        require_once( $locale_file );
    }
}
add_action( \'after_setup_theme\', \'wpse49326_translate_theme\' );
?>

结束

相关推荐

Themes—Child Themes

如果这是一个非常基本的问题,我很抱歉,但我对使用Wordpress非常陌生。我正在考虑使用Wordpress作为我正在建设的新网站的CMS,但我不确定我是否了解一些主题的最佳实践。我听说一个好的方法是使用预先存在的主题,并使用子主题根据自己的目的修改它们。这是我应该看的方向吗?是否还有其他方法值得我研究?谢谢你的帮助!