Локалізація: Я хочу, щоб бекенд: англійська та фронтенд визначеною мовою


9

Я хотів би створити сервер Wordpress англійською мовою та використовувати інший локал для фронтену

поки що я зрозумів, що, можливо, я міг би це зробити, встановивши в wpconfig локаль, який я хочу використовувати у передньому вікні, а потім додати у function.php щось подібне:

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

це найкраща практика для досягнення того, що я хочу, чи я повинен це робити по-іншому?

Відповіді:



1

Є плагін, який може бути тим, що вам потрібно.

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


ну дякую, я перегляну код, але, можливо, не буду використовувати його, оскільки він не оновлюється з 2008 року і підтримує лише WP 2.6 - якщо мені це подобається і є можливість, можливо, спробую поговорити з розробником та оновіть його
unfulvio

о, щойно перевірив, він робить майже те саме, що і функцію, про яку я писав вище, в іншому стилі
unfulvio

Так, його старе, але здається єдиним навколо. Якщо код, як ви це зробили, то я гадаю, що відповідь - ви на правильному шляху, і як би я це зробив .. не можу придумати кращий спосіб.
Енді Джеймс

1

До цього часу я вважаю, що відповідь Фульвіо найкраща. Я використовую цей фільтр навіть у налаштуваннях для багатосторонніх сайтів із лише одним рядком:

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

В основному іноді, і в цьому випадку я використовую мультисайт для багатомовних сайтів замість плагінів. Також у мене є 1 єдина тема для кожної мови (зазвичай це дочірні теми основної мови). Отже, кожен сайт мережі має свою мову, але для адміністратора мені потрібні всі інтерфейси італійською мовою.

Отже, що я роблю:

  1. Я не використовую загальну константу WPLANG у wp-config.php
  2. Я встановлюю італійську мову на кожному сайті мережі
  3. У функціях кожної теми.php я використовую вищевказаний фільтр для управління мовою / локальною формою інтерфейсу.

ПРИМІТКА: цей фільтр не змінить мову адміністратора, тому не потрібно перевіряти, чи є_адмін ()


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');

Це змушує приладну панель завантажуватися англійською мовою, тоді ви можете перейти до налаштувань, встановити бажану мову.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.