我已经浏览了我能找到的所有类似的线索,我想我应该把所有的片段都准备好,让翻译过的字符串出现,但它们没有。我准备把头发拔出来了!
下面是我要做的-我正在制作一个自定义主题(基于\\u的starter),并为一些自定义帖子类型添加了模板(在我自己的插件中创建)。我安装了本地翻译插件来创建和编辑订单/订单文件。这些文件存储在“mytheme/languages”中。
在我的主题功能中。php我有:
/**
* Load theme text domain for translations
*/
function mytheme_load_theme_textdomain() {
if (load_theme_textdomain(\'mytheme\', get_template_directory() . \'/languages\')) {
error_log("Text Domain loaded.");
}
}
add_action(\'after_setup_theme\', \'mytheme_load_theme_textdomain\');
在模板零件文件中,我设置了如下显示字符串:
<?php _e(\'My String Text\', \'mytheme\'); ?>
当我加载应该包含已翻译字符串的页面时,请查看调试。日志文件中,我看到消息“文本域已加载”所以这部分应该是有效的。Locao Translate正确地看到字符串并允许我翻译它们。所以一切都在。mo文件应正确。
我已经尝试在wp config中对区域设置进行硬编码。php(仅供检查)添加define(\'WPLANG\', \'es_ES\');
与全球$locale
变量从上述函数中添加到调试日志。这是正确的。
编辑:添加调试mo翻译插件的输出
Debug MO Translations (Version 1.0)
Locale: es_ES
Domain: mytheme
File: /wp-content/languages/themes/mytheme-es_ES.mo (not found)
Called in: /wp-includes/l10n.php line 792 load_textdomain
Domain: mytheme
File: /wp-content/languages/loco/themes/mytheme-es_ES.mo (not found)
Called in: /wp-content/plugins/loco-translate/src/hooks/LoadHelper.php line 103 load_textdomain
Domain: mytheme
File: /wp-content/themes/mytheme/languages/es_ES.mo (0.62kb)
Called in: /wp-includes/l10n.php line 800 load_textdomain
所以,我在模板文件中有可翻译的字符串,我在中有翻译。采购订单/。mo文件在我的主题中,语言环境设置正确,我在函数中加载我的主题文本域。php文件。但是字符串仍然没有以翻译的形式出现在前端!我错过了什么?
提前感谢!