前端和后端的不同语言


9

我使用英语WordPress软件包,这很好。

现在,我想翻译博客的某些元素(例如“发布于”,“评论”)等,但仪表板界面的英文保持不变。

有没有只翻译网站元素的机制?

Answers:


19

您可以执行以下操作:

  1. de_DE.mowordpress.org获取语​​言包(例如)。如果该语言包不能作为独立下载提供,则还可以使用.moWordPress ZIP文件中捆绑的文件作为您的语言。位于下wp-content/languages
  2. .mo文件移到wp-content/languages/您的默认(英语)WordPress安装目录。
  3. WPLANG常量更改为wp-config.php新的语言环境(例如de_DE
  4. 在您functions.php添加以下过滤器:

functions.php

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

    return $locale;
}

现在,“安装语言包”是什么意思?我应该卸载wordpress,然后安装新的wordpress,但说法语吗?我不想卸载我的英文wordpress。
serhio 2011年

1
不,您不必重新安装任何东西。只需以您想要的语言下载WP,然后将语言文件从中复制wp-content/languages/到您原来的英语WP安装并wp-config.php如上所述进行修改即可。或只是fr_FR.mo从此站点下载文件。
rofflox 2011年

我没有该wp-content/languages/文件夹,所以我应该创建它。执行完该操作后,反之亦然。我现在有了罗马尼亚语的管理面板,但是页面(即使已登录还是未登录)-都是英语。也许我应该翻译一下主题……
serhio 2011年

当然,您需要翻译主题。但是,如果您is_admin()在上面的过滤器中进行了设置,则后端应使用英语而非罗马尼亚语。
rofflox 2011年

1
另请参见我对WordPress v> = 4.7的回答,它使用户可以用自己的语言查看后端
Serge

6

1
欢迎来到我们的网站。请添加说明:这些插件有什么区别?
福厦

1
我认为那里做的完全一样。(我只使用第一个。。。)您可以安装不同的语言文件,并使用插件可以独立更改后端的语言。这两个插件都提供了用于该语言的仪表板开关,一个登录语言选择框以及一个用于用户特定语言的配置文件页面的附件。
zodiac1978

6

从WordPress 4.7版本开始,不同的后端用户可以使用本 WordPress语言选择器设置自己的首选管理语言。这样,他们可以用他们的语言查看WordPress界面,并且可以更轻松地管理内容。 Wordpress中后端用户的不同语言,独立于前端语言


该代码设置了针对全球所有用户的功能,该功能仅适用于单个帐户。
Motaz M. El Shazly

4

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

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

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


4

在WordPress 5.x中,获得不同的前端语言和后端语言非常简单

要更改站点语言,请转到设置->常规->站点语言,然后选择站点语言。

在此处输入图片说明

对于管理面板,请转到用户->您的个人资料,然后选择要在管理面板上使用的语言

在此处输入图片说明

因此上述所有解决方案已经成为绝对方案,每个用户都可以为WordPress界面设置自己的语言


这应该是2019年以后的最佳答案。无需插件,解决方案非常简单。谢谢!
stason

这会针对每个用户分别进行更改,代码会将其自动更改为所有用户。
Motaz M. El Shazly

2

Wordpress 4+的更新答案

@rofflox的答案仍然是正确的,但是自WP 4.0起,对Wordpress进行了一些更改,这些更改在使用“按原样”功能时可能会起作用。

WPLANG不赞成使用 wp-config常量,而希望通过中的下拉菜单设置站点语言Settings->General。这意味着,例如,在将您的网站的语言更改为Svenka之后,您网站的管理员将以英语显示...,但是其中的“网站语言”下拉列表Settings->General将被预先选择为英语(美国)。这意味着,如果您稍后更改“常规”设置,而忘记再次选择Svenka作为站点的语言,则整个站点将恢复为英语。

我建议您在functions.php文件中创建函数,如下所示:

//    Set the locale; original function from @rofflox

function vnmFunctionality_setLocale($locale) {
    if (is_admin()) {
        return 'en_US';
    }

    return $locale;
}

add_filter('locale', 'vnmFunctionality_setLocale');

// Enqueue a script to force-set the Language dropdown on the General Options page, just in case we forget about it later.

function vnmFunctionality_countryReminderScript($hook) {
    if ($hook != 'options-general.php') {
        return;
    }

    wp_enqueue_script('lang-reminder-script', get_template_directory() . '/js/site-language.js', array('jquery'), '1.0.0', true);

    wp_localize_script('lang-reminder-script', 'langObject', array(
        'lang'  => get_option('WPLANG'),
    ));
}

add_action('admin_enqueue_scripts', 'vnmFunctionality_countryReminderScript');

然后,一个名为site-language.js(保存在/js/主题中的文件夹中)的Javascript文件如下所示:

jQuery(document).ready(function($) {
    $('select#WPLANG').val(langObject.lang).change();
});

这应该会在“选项”页面上的下拉列表中自动预先选择站点的当前显示语言,这样您就不必每次都手动记住它了。


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.