我正在尝试加载插件的自定义语言文件,以避免在更新插件时对此文件进行任何更改。我在函数中尝试了几个片段。php的主题,但没有一个工作。
add_filter(\'load_textdomain_mofile\', \'custom_load_textdomain_mofile\', 10, 2);
function custom_load_textdomain_mofile( $mofile, $domain){
if ($domain == \'my-textdomain\')
$mofile = \'path to mo. file\';
return $mofile;
}
我用相对路径和绝对路径以及WP\\u LANG\\u DIR进行了尝试。什么都没用。
此处相同:
add_action(\'load_textdomain\', \'load_custom_language_files_for_my_plugin\', 10, 2);
function load_custom_language_files_for_my_plugin($domain, $mofile)
{
if (\'all-in-one-event-calendar\' === $domain && plugin_dir_path($mofile) === WP_PLUGIN_DIR.\'/all-in-one-event-calendar/languages/\')
{
load_textdomain(\'all-in-one-event-calendar\', WP_LANG_DIR.\'/\'.$domain.\'-\'.get_locale().\'.mo\');
}
}
两个鼻涕虫看起来都很好。但是,未加载MO文件。
任何帮助都将不胜感激!
SO网友:bueltge
如果只在后端使用翻译,则将翻译文件加载到挂钩上admin_init
. 如果没有,也在前端,然后使用挂钩init
.
例如:
class Fb_Example_Class {
/**
* Constructor, init the functions inside WP
*
* @return \\Fb_Example_Class
*/
private function __construct() {
// load translation files
add_action( \'admin_init\', array( $this, \'localize_plugin\' ) );
}
/**
* Localize_plugin function.
*
* @uses load_plugin_textdomain, plugin_basename
* @access public
* @return void
*/
public function localize_plugin() {
load_plugin_textdomain( \'textdomain\', FALSE, dirname( plugin_basename( __FILE__ ) ) . \'/languages\' );
}
}
您还可以在上找到有用的内容和示例
the codex page.