我正在为我的插件创建翻译。
为了从我的插件/语言目录中获取.mo文件,我使用以下函数
//Load translation
function load_plugin_textdomain() {
load_plugin_textdomain( 'my-plugin', FALSE, basename( dirname( __FILE__ ) ) . '/languages/' );
}
add_action( 'plugins_loaded', 'load_plugin_textdomain' );如何将位置设置为wp-content/languages
将位置设置为ABSPATH.'/wp-content/languages'不起作用。
发布于 2016-10-30 06:56:36
如果有其他人在找,它就在这里。
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');发布于 2017-10-05 09:07:05
我知道您已经接受了您自己的答案,但是尽管它会起作用,但它违背了WordPress标准。
load_plugin_textdomain将不加修改地从全局语言目录加载,并且应该用于引导插件翻译。您指定为第三个参数的路径是一个回退,以便在未安装全局语言文件的情况下使用。
为了澄清它是如何工作的: WordPress将严格地在<WP_LANG_DIR>/plugins/my-plugin-<locale>.mo上查看全局语言目录。因此,只要您的文本域和地区代码是正确的,它将被加载。
如果找不到,WordPress将查看您指定的路径,该路径必须是相对于wp-content/plugins目录的路径。
历史上(在WP4.6之前),第三个参数是首先加载的,但是WordPress决定交换订单,更倾向于社区翻译(全球安装)而不是作者提供的翻译(随插件一起提供)。
https://stackoverflow.com/questions/40318104
复制相似问题