Другой язык для Frontend против Backend


9

Я использую английский пакет WordPress, и это очень хорошо.

Теперь я хотел бы перевести некоторые элементы блога (например, «опубликовано», «комментарии») и т. Д., Но интерфейс английской панели остался нетронутым.

Есть ли механизм для перевода только элементов сайта?

Ответы:


19

Вы можете сделать следующее:

  1. Получить языковой пакет (например de_DE.mo) с wordpress.org . Если языковой пакет недоступен в качестве отдельной загрузки, вы также можете использовать .moфайл, который входит в ZIP-файл WordPress для вашего языка. Расположен под 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.
Серхио

1
Нет, вам не нужно ничего переустанавливать. Просто скачайте WP на желаемом языке, скопируйте языковой файл с wp-content/languages/оригинальной английской версии WP и установите и измените, wp-config.phpкак описано выше. Или просто скачайте fr_FR.moфайл с этого сайта .
rofflox

У меня не было wp-content/languages/папки, поэтому я должен ее создать. После выполнения этой манипуляции у меня есть обратное тому, что я бы сделал. У меня сейчас админка на румынском, а страница (даже вошли или нет) - на английском. Возможно, мне следует перевести тему ...
Серхио

Конечно, вам нужна тема переведена. Но бэкэнд должен быть на английском, а не на румынском, если вы установили is_admin()фильтр выше.
rofflox

1
см. также мой ответ ниже для WordPress v> = 4.7, который позволяет пользователям видеть Backend на своем родном языке
Serge

6

Для этого вы можете использовать плагины: http://wordpress.org/extend/plugins/kau-boys-backend-localization/ или http://wordpress.org/extend/plugins/wp-native-dashboard/


1
Добро пожаловать на наш сайт. Пожалуйста, добавьте объяснение: что означают эти плагины, в чем различия?
fuxia

1
Я думаю, что там делают точно так же. (Я просто использую первый ...) Вы можете установить разные языковые файлы и с помощью плагинов вы можете изменить язык для бэкэнда независимо. Оба плагина предоставляют переключатели Dashboard для языка, поле выбора языка входа и дополнение к странице профиля для языка, определенного пользователем.
zodiac1978

6

Начиная с версии 4.7 WordPress , различные пользователи Backend могут устанавливать свой предпочтительный язык администратора, используя собственный переключатель языка WordPress. Таким образом, они видят интерфейс WordPress на своем языке и могут легче управлять контентом. Другой язык для пользователей Backend в Wordpress, независимый от языка Frontend


Код устанавливает, что для всех пользователей во всем мире, это работает только для отдельной учетной записи.
Мотаз М. Эль Шазлы

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 очень просто получить другой язык frond и back-end

Чтобы изменить язык сайта, зайдите в Настройки -> Общие -> Язык сайта и выберите язык сайта.

введите описание изображения здесь

Для панели администратора перейдите в раздел «Пользователи» -> «Ваш профиль» и выберите нужный язык в панели администратора.

введите описание изображения здесь

Таким образом, все вышеперечисленные решения стали абсолютными, каждый пользователь может установить свой собственный язык для интерфейса WordPress.


Это должен быть выбранный ответ на 2019+. Не требуется никаких плагинов, и решение очень простое. Спасибо!
Stason

Это изменит его для каждого пользователя индивидуально, код изменит его автоматически для всех пользователей.
Мотаз М. Эль Шазлы

2

Обновленный ответ для Wordpress 4+

Ответ @ rofflox по- прежнему правильный, но в Wordpress произошли некоторые изменения, которые могут оказать влияние при использовании его функции «как есть», начиная с WP 4.0.

Константа wp-config WPLANGустарела в пользу установки языка сайта через выпадающий список 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');

И затем файл Javascript с именем site-language.js(сохраненный в /js/папке в вашей теме) примерно так:

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

Это должно автоматически предварительно выбрать текущий язык отображения сайта в раскрывающемся списке на странице параметров, чтобы вам не приходилось каждый раз делать это вручную.


-1

Что вам нужно, это перевести вашу тему. Если в вашей теме есть файл .pot, его легко перевести. Просто следуйте инструкциям на

http://www.appthemes.com/blog/how-to-translate-a-wordpress-theme/

Иначе вам нужно будет отредактировать файлы темы и изменить слова в каждом экземпляре.


В моей теме (двадцать десять) есть папка "wp-content / themes / fiftyten / languages", и внутри есть только файл
.pot
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.