我尝试本地化我的插件。
在插件php文件中,我的插件。php我有textdomain
Text Domain: my-plugin
以及“plugins\\u loaded”上的操作
// load textdomain on plugin
function my-plugin_load_textdomain() {
echo \'<script>console.log("fired");</script>\';
if (load_plugin_textdomain( \'my-plugin\', false, dirname( plugin_basename( __FILE__ ) ) . \'/languages/\' )) {
echo \'<script>console.log("ok");</script>\';
} else {
echo \'<script>console.log("not");</script>\';
}
}
add_action( \'plugins_loaded\', \'my-plugin_load_textdomain\' );
插件本身显示一个短代码并加载我的插件输出。具有以下回声的php
<h4><?php _e( \'Ausgabe\', \'my-plugin\' ); ?></h4>
我在文件夹语言中有my-plugin-de.mo文件,我通过poedit将其翻译为我的plugin en。mo.翻译完成了。以下文件位于languages文件夹中:
my-plugin-de.mo
my-plugin-de.pot
我的插件en。mo公司
我的插件en。采购订单
我读过几篇教程,但其中许多人说我应该添加define WP-LANG,但在WordPress 4.0及以上版本中不需要这样做?
我的网站语言现在选择为英语。插件中的基本代码是德语,但应该显示英语。
当我激活插件时,控制台会告诉我load\\u plugin\\u textdomain返回false的消息,在codex上我看到了这一点
如果语言文件无法加载(不可读或mo文件读取器无法理解),则返回false。
这是什么意思?我用poedit翻译了文件,我可以在poedit中打开它,没有问题。如果我验证en。poedit中的po文件,表示一切正常。语言文件夹也正确。
我是不是错过了什么?非常感谢
编辑:
调试翻译的输出:
Debug Translations (Version 2013.09.05)
Locale: en_US
Domain: default
File: C:\\xampp\\htdocs\\projekte\\WP/wp-content/languages/en_US.mo (not found)
Called in: C:\\xampp\\htdocs\\projekte\\WP\\wp-settings.php line 306 load_default_textdomain
Domain: twentyfourteen
File: C:\\xampp\\htdocs\\projekte\\WP/wp-content/themes/twentyfourteen/languages/en_US.mo (not found)
Called in: C:\\xampp\\htdocs\\projekte\\WP\\wp-content\\themes\\twentyfourteen\\functions.php line 68 load_theme_textdomain
Domain: twentyfourteen
File: C:\\xampp\\htdocs\\projekte\\WP/wp-content/languages/themes/twentyfourteen-en_US.mo (not found)
Called in: C:\\xampp\\htdocs\\projekte\\WP\\wp-content\\themes\\twentyfourteen\\functions.php line 68 load_theme_textdomain
我的插件根本没有列出?它被激活,并在页面上输出?这很奇怪