正在加载插件的自定义语言文件

时间:2014-06-11 作者:user2516117

我正在尝试加载插件的自定义语言文件,以避免在更新插件时对此文件进行任何更改。我在函数中尝试了几个片段。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文件。

任何帮助都将不胜感激!

1 个回复
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.

结束

相关推荐

Multi language site

我发现两个最流行的多语言网站插件是WMPL和qTranslate。第一个是商业化的,所以这不是选项,第二个没有能力翻译边栏中的小部件,或者我不知道怎么做。你能建议我使用哪个插件,或者使用什么技巧来实现多语言小部件吗?