强制将插件翻译成英文

时间:2012-09-30 作者:rdbisme

我想说的是:

我正在使用一个具有多语言功能的插件。关键是我的国家语言翻译很糟糕,它使我的工作变得复杂而不是简单D、 那么,有没有办法迫使插件不使用多语言,至少用英语显示?

2 个回复
最合适的回答,由SO网友:lorenzov 整理而成

插件是什么?是否在生产任务单/采购订单文件中使用自定义翻译?是否有允许您设置插件区域设置的管理界面?

有一个通用过滤器,您可以将其添加到插件代码中,以设置语言,该语言可能类似于以下内容(显然,将语言设置为您想要的语言:

add_filter(\'locale\', \'wpse_get_locale\');

// returns the locale based on user preference
function wpse_get_locale($locale) {
// get_current_user_id uses wp_get_current_user which may not be available the first time(s) get_locale is called
    if (function_exists(\'wp_get_current_user\'))
        $loc = get_user_meta(get_current_user_id(), \'user_lang\', \'true\');
    return isset($loc) && $loc ? $loc : $locale;
}
然而,我想知道是否通过编辑mo/po文件或它们用于字符串翻译的任何内容来改进插件的翻译不是很容易?

SO网友:vee

// to force use English, this filter value must return true.
add_filter(\'override_load_textdomain\', \'myPlugin_OverrideLoadTextDomain\', 10, 3);

add_filter(\'plugin_locale\', \'myPlugin_forceUseLanguageForCertainPlugin\', 10, 2);

function myPlugin_OverrideLoadTextDomain($override, $domain, $mofile) 
{
    if ($domain === \'woocommerce\') // change text domain from woocommerce to what you want.
    {
        $override = true;
    }

    return $override;
}

function myPlugin_forceUseLanguageForCertainPlugin($locale, $domain) 
{
    if ($domain === \'woocommerce\') // change text domain from woocommerce to what you want.
    {
        $locale = \'en_US\';// change your locale here to whatever you want.
    }

    return $locale;
}
需要2个过滤器挂钩才能工作。

结束