wordpress - Wordpress 插件翻译:load_plugin_textdomain 不会从插件语言文件夹中加载 .mo 文件,只能从全局语言文件夹中加载
问题描述
我已经编写了一个插件,现在想让它准备好翻译(使用 __ 和 _e 以及所有这些东西)并在我使用它的时候将它翻译成(正式的)德语。我已经使用 poedit (.po >> .mo) 使用正确的命名方案my-plugin-textdomain-de_DE_formal.mo创建了语言文件。在我的插件 php 文件中,我把这一切都直截了当:
[...]
public function actions() {
add_action('init', [$this, 'load_language_files']);
}
public function load_language_files() {
load_plugin_textdomain('my-plugin-textdomain', false, dirname(plugin_basename(__FILE__)) . '/languages');
}
所以唯一可能不是基本的事情是我使用类结构,因此通过数组调用 load_language_files。
但是语言文件只是不加载。有趣的是,如果我将它放在 /wp-content/languages/plugins/ 目录中(这表明 .mo 文件本身应该没问题),它的加载非常好,但如果放在 /wp-content/ 中则不会插件/我的插件/语言/目录。
我什至通过记录每一行代码来调试 load_plugin_textdomain 函数,直到
return load_textdomain( $domain, $path . '/' . $mofile );
一切看起来都很好。$domain、$path 和 $mofile 具有正确的值,并且 .mo 文件根据此路径准确地位于其应有的位置。仍然没有加载翻译并且返回值为 false。
我检查了多个其他常用插件以了解它们是如何做到的,但他们的做法与我没有任何不同。我尝试了很多事情并遵循了多个教程,现在我没有想法,所以我希望你能帮助我解决这个问题。
解决方案
推荐阅读
- excel - Excel VBA - 将数据验证应用于创建的工作表
- firebase - 如何在 redux 钩子中使用 useDispatch 调度异步函数
- python - 如何检查我的桌子的对角线是否有重复?
- javascript - 使用 http 请求在 node-red 中绘制实时数据的问题
- android - 如何仅将电话簿中的firebase中已注册的联系人打印到列表视图中
- python - 如何在基于类的视图中为 django 模板预处理数据
- javascript - 将焦点放在 JS 中的返回元素上
- wordpress - 如何找到具有相同主题的类似网站
- python - 如何从pyplot轴的相对边缘删除轴和刻度
- reactjs - 是否会出现此错误“findDOMNode 在 StrictMode 中已弃用”。部署我的反应项目时失败?