上下文:我创建了一个只在网络级别启用的插件,它处理子站点之间的某些同步。由于它是一个网络级插件,它将其菜单添加到网络仪表板,而不是子站点的管理仪表板。
问题:我按照WordPress codex的严格实践在插件中实现了国际化。由于某些原因,load\\u plugin\\u textdomain函数无法加载。我生成的mo文件。我已经验证了创建的路径,我已经验证了文本域在任何地方都是正确的,但是下面的代码返回false。
function bgm_load_textdomain(){
load_plugin_textdomain( \'bgm\', false, plugin_dir_path(__FILE__) . \'languages/\'); //returns false
}
add_action( \'init\', \'bgm_load_textdomain\' ); //also tried this with the plugins_loaded hook
我已经检查了以下内容:
的文件权限。mo文件和文件夹,它们是可读的我在主插件文件中添加了文本域,并仔细检查了是否有拼写或位置错误问题:WordPress网络管理仪表板是否不利于load\\u plugin\\u textdomain功能?有没有具体的原因。我的场景中没有加载mo文件,是不是因为我的插件只能通过网络仪表板使用?因为我似乎在遵循最佳实践,我已经尝试了可用的解决方案,但是。mo文件无法加载,此函数不断返回false。
请回答,如果这是一个已知的黑洞,如果有一个解决办法。
P、 我已经生成了。mo文件使用Loco翻译插件,它自动拾取文本域和相关字符串,不会产生任何错误。
最合适的回答,由SO网友:Talha Imam 整理而成
load\\u plugin\\u textdomain函数的第三个参数只能是以语言文件夹为后缀的插件名称。它不需要指向language文件夹的绝对路径。
例如,在我的场景中,正确的参数是:
load_plugin_textdomain( \'bgm\', false, basename(__DIR__) . \'/languages/\');