我读了很多关于翻译你的网站的最佳方法的文章(在我的例子中是法语和英语)
我建立了一个多站点,在那里我创建了两个站点一个是法语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,但没有成功)
当我在“设置”“常规”中更改主题语言并刷新网站时,不会翻译任何内容。
知道这里有什么问题吗?
顺便说一句,我成功地翻译了我安装的插件,没有任何问题。
最合适的回答,由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\' );
?>