Разные языки для фронтенда и бэкенда

27 авг. 2011 г., 19:42:43
Просмотры: 47.5K
Голосов: 17

Я использую англоязычный пакет WordPress, и это очень удобно.

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

Существует ли какой-либо механизм для перевода только элементов сайта?

0
Все ответы на вопрос 7
10
22

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

  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;
}
27 авг. 2011 г. 21:00:06
Комментарии

что вы имеете в виду под "установить языковой пакет"? мне нужно удалить WordPress и установить новую версию, но на французском? я не хочу удалять мой английский WordPress.

serhio serhio
2 сент. 2011 г. 18:01:19

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

Roman Roman
2 сент. 2011 г. 18:05:22

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

serhio serhio
7 сент. 2011 г. 12:00:49

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

Roman Roman
7 сент. 2011 г. 12:16:06

Я добавил этот код в конце файла functions.php текущей темы (twenty ten)... Это правильно?

serhio serhio
7 сент. 2011 г. 19:58:05

Ага... не работает? Какие-то плагины установлены?

Roman Roman
8 сент. 2011 г. 00:10:28

У меня есть код, основанный на этом, размещение его в functions.php темы не сработает, так как это уже слишком поздно. Я поместил его в mu-плагин и увидел значительное улучшение результатов.

Tom J Nowell Tom J Nowell
16 апр. 2014 г. 19:26:10

это не работает

younes0 younes0
19 нояб. 2015 г. 19:26:01

у меня тоже не сработало.

wesamly wesamly
13 дек. 2015 г. 09:55:18

см. также мой ответ ниже для WordPress версии >= 4.7, который позволяет пользователям видеть административную панель на их родном языке

serge serge
14 авг. 2018 г. 12:12:05
Показать остальные 5 комментариев
1
17

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

14 авг. 2018 г. 12:09:22
Комментарии

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

Motaz M. El Shazly Motaz M. El Shazly
18 дек. 2019 г. 22:09:08
2
11

В WordPress 5.x очень просто установить разные языки для фронтенда и админ-панели

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

Настройка языка сайта в WordPress

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

Настройка языка админ-панели

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

10 июн. 2019 г. 22:41:04
Комментарии

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

stason stason
4 дек. 2019 г. 06:15:18

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

Motaz M. El Shazly Motaz M. El Shazly
18 дек. 2019 г. 22:07:51
2

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

6 окт. 2012 г. 17:22:45
Комментарии

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

fuxia fuxia
6 окт. 2012 г. 17:39:42

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

zodiac1978 zodiac1978
8 окт. 2012 г. 09:34:20
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');

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

7 апр. 2018 г. 04:26:51
0

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

Ответ @rofflox всё ещё корректен, но в WordPress произошли некоторые изменения, которые могут повлиять на работу его функции «как есть» начиная с версии 4.0.

Константа wp-config WPLANG была объявлена устаревшей в пользу установки языка сайта через выпадающий список в Настройки->Общие. Это означает, что после изменения языка вашего сайта на Шведский (например), админ-панель сайта будет отображаться на английском... но выпадающий список «Язык сайта» в Настройки->Общие будет предустановлен на Английский (США). Это значит, что если вы позже внесёте изменения в общие настройки и забудете снова выбрать Шведский в качестве языка сайта, весь сайт вернётся к английскому языку.

Я рекомендую создать функции в вашем файле functions.php следующим образом:

//    Установка локали; оригинальная функция от @rofflox

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

    return $locale;
}

add_filter('locale', 'vnmFunctionality_setLocale');

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

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();
});

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

8 авг. 2016 г. 21:13:51
1
-1

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

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

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

3 сент. 2011 г. 09:46:15
Комментарии

в моей теме (twenty ten) есть папка "wp-content/themes/twentyten/languages", и внутри только .pot файл...

serhio serhio
7 сент. 2011 г. 16:12:26