国际化为网络级别使用而构建的插件时出现问题

时间:2021-03-10 作者:Talha Imam

上下文:我创建了一个只在网络级别启用的插件,它处理子站点之间的某些同步。由于它是一个网络级插件,它将其菜单添加到网络仪表板,而不是子站点的管理仪表板。

问题:我按照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文件和文件夹,它们是可读的

请回答,如果这是一个已知的黑洞,如果有一个解决办法。

P、 我已经生成了。mo文件使用Loco翻译插件,它自动拾取文本域和相关字符串,不会产生任何错误。

1 个回复
最合适的回答,由SO网友:Talha Imam 整理而成

load\\u plugin\\u textdomain函数的第三个参数只能是以语言文件夹为后缀的插件名称。它不需要指向language文件夹的绝对路径。

例如,在我的场景中,正确的参数是:

load_plugin_textdomain( \'bgm\', false, basename(__DIR__)  . \'/languages/\');