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

9

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

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

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

Serhio
источник

Ответы:

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;
}
rofflox
источник
Теперь, что вы подразумеваете под "установить свой языковой пакет"? я должен удалить 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/

zodiac1978
источник
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.

EckyBrazzz
источник
Это должен быть выбранный ответ на 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();
});

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

indextwo
источник
-1

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

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

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

user8388
источник
В моей теме (двадцать десять) есть папка "wp-content / themes / fiftyten / languages", и внутри есть только файл
.pot