本地化:我想要后端:定义语言的英语和前端


9

我想拥有英文的Wordpress后端,并为前端使用不同的语言环境

到目前为止,我发现也许可以通过在wpconfig中设置要在前端中使用的语言环境来实现此目的,然后在functions.php中添加如下所示的内容:

add_filter('locale', 'mytheme_backendlocale');
function mytheme_backendlocale($locale) {
    if ( is_admin() ) {
        return 'en_US';
    }
    return $locale;
}

这是实现我想要的最佳实践还是应该以其他方式做?

Answers:



1

有一个插件可能是您所需要的。

http://wordpress.org/extend/plugins/fe-be-localization/


很好,谢谢,我会看一下代码,但是也许不会使用它,因为它自2008年以来未更新,仅支持WP 2.6-如果我喜欢它并且有能力也许会尝试与开发人员交流和更新
unfulvio

哦,刚才检查,它几乎一样的功能我上面写的,在另一种风格
unfulvio

是的,它很旧,但似乎只有它一个。如果代码是您完成的方式,那么我想答案是您在正确的轨道上,以及我将如何进行..无法想到更好的方法。
安迪·詹姆斯

1

到目前为止,我认为Fulvio的答案是最好的答案。即使在多站点设置中,我也只用一行就使用了该过滤器:

add_filter('locale', 'set_admin_locale');
function set_admin_locale($locale) {
  return 'en_US';
}

基本上有时候,在这种情况下,我将多站点用于多语言站点而不是插件。另外,每种语言我都有一个单一主题(通常是主要语言的儿童主题)。因此,网络上的每个站点都有其自己的语言,但是在管理方面,我需要所有意大利语界面。

所以我要做的是:

  1. 我不在wp-config.php中使用一般的WPLANG常量
  2. 我在网络的每个站点都设置了意大利语
  3. 在每个主题的functions.php中,我使用上面的过滤器来控制前端语言/区域设置。

注意:该过滤器不会更改管理语言,因此无需检查is_admin()


0

如果仍然有人在寻找,这是从4.7版开始应该做的事情

function wp_noshor_redefine_locale($locale) {
    if( is_admin() ):
        switch_to_locale('en_US');
    endif;
}
add_filter('init','wp_noshor_redefine_locale');

这会强制仪表板以英语加载,然后您可以转到设置,设置所需的语言。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.