从全局语言目录加载textdomain [Wordpress]

时间:2016-10-29 10:19:11

标签: wordpress internationalization

我正在为我的插件创建翻译 要从my-plugin / languages目录中获取 .mo 文件,我使用函数

ABSPATH.'/wp-content/languages'

如何将位置设置为 wp-content / languages
将位置设置为{{1}}不起作用。

2 个答案:

答案 0 :(得分:1)

我知道您已经接受了自己的答案,但它会对WordPress标准起作用。

load_plugin_textdomain将从全局语言目录加载而不进行修改,应该用于引导插件转换。您指定为第三个参数的路径是后备,以便在未安装全局语言文件时使用。

为了阐明它是如何工作的:WordPress将严格在<WP_LANG_DIR>/plugins/my-plugin-<locale>.mo查看全局语言目录。因此,只要您的文本域和区域设置代码正确,就会加载它。

如果找不到,WordPress会查看您指定的路径,该路径必须相对wp-content/plugins目录。

历史上(在WP 4.6之前),第一个参数首先加载,但WordPress决定交换订单,支持社区翻译(全局安装)而不是作者提供的翻译(随插件一起提供)。

答案 1 :(得分:0)

如果有其他人正在寻找anwser,那么它就是

function load_txtdomain() {
    $locale = apply_filters( 'plugin_locale', get_locale(), 'my-plugin' );
    load_textdomain( 'my-plugin', WP_LANG_DIR . '/my-plugin-' . $locale . '.mo' );
}
add_action('plugins_loaded','load_txtdomain');