您应该将带有插件翻译的po和mo文件移到插件目录之外。无论何时更新插件,插件文件都会被替换,从而删除任何不属于默认插件包的文件。(如果您正在翻译自己的插件,还可以将翻译文件直接添加到插件库中。)
如何将自定义翻译文件移到插件目录之外?在插件代码中,向init
挂钩:
public function load_plugin_textdomain()
{
$domain = \'my-plugin\';
$locale = apply_filters(\'plugin_locale\', get_locale(), $domain);
load_textdomain($domain, WP_LANG_DIR.\'/my-plugin/\'.$domain.\'-\'.$locale.\'.mo\');
load_plugin_textdomain($domain, FALSE, dirname(plugin_basename(__FILE__)).\'/languages/\');
}
上面的代码首先在中查找翻译文件
WP_LANG_DIR
, 将在中找到
wp-content/languages/
默认情况下。将自定义翻译文件放在那里可以安全地进行升级。
此外,通过使用适当的钩子和函数来加载插件的翻译,您允许用户钩住插件的语言加载过程,从而使他们能够更灵活地从任何地方加载语言文件。
我写过a more in-depth article 关于这一点,请在我的博客上发表。