插件翻译就绪-mo文件未加载

时间:2015-06-15 作者:Owl

我尝试本地化我的插件。

在插件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
我的插件根本没有列出?它被激活,并在页面上输出?这很奇怪

1 个回复
SO网友:Owl

这个load_plugin_textdomain() 函数的textdomain与插件的PHP文件中给出的不同。我为这个线程写了虚拟名称,因此无法看到它。

但我改变了。还有.mo.po 文件必须具有WordPress数据库中设置的本地化代码WP_LANG. 奇怪的是,数据库中没有本地化代码,字段是空的。我添加了它并将文件命名为新文件,现在它正在工作!

这篇文章帮助很大:https://localise.biz/help/wordpress/loading-translations

结束

相关推荐

Plugin Localization

我刚刚为wp构建了我的第一个插件,即使它不是一个伟大的“代码诗意”;)它正常工作。这是一个使用GalleryView 3.0 jquery插件转换默认wp库的插件(http://spaceforaname.com/galleryview).我唯一不能做的就是本地化。此插件的本地化意味着转换管理界面,在这里可以配置jquery插件选项来更改结果库的外观。我试着关注网络上数百万的教程,在论坛上阅读了很多关于这个问题的帖子,并遵循了codex的指南。。。但仍然没有运气。这就是我所做的:每个文本行都位于gette