it-roy-ru.com

Английский и внешний интерфейс на определенном языке

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

до сих пор я выясняю, возможно, я мог бы сделать это, установив в wpconfig локаль, которую я хочу использовать в веб-интерфейсе, а затем добавив в functions.php что-то вроде этого:

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

это лучшая практика для достижения того, что я хочу, или я должен делать это по-другому?

9
unfulvio

Установите плагин WP Native Dashboard . Затем вы можете установить один язык для внешнего интерфейса в своем wp-config.php, и каждый пользователь может выбрать другой язык для внутреннего интерфейса.
См. Изменить язык шаблона комментариев для деталей и скриншота.

2
fuxia

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

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

1
Andy James

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

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

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

Итак, что я делаю:

  1. Я не использую общую константу WPLANG в wp-config.php
  2. Я устанавливаю итальянский язык на каждом сайте сети
  3. В файле functions.php каждой темы я использую приведенный выше фильтр для управления языком/языком интерфейса.

ПРИМЕЧАНИЕ: этот фильтр не изменит язык администратора, поэтому нет необходимости проверять, является ли is_admin ()

1
Luca Reghellin

Если кто-то все еще ищет это, вот что вы должны сделать, начиная с версии 4.7

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

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

0
Motaz M. El Shazly