WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

Разделение языка сайта и языка админ панели WordPress

Здравствуйте, произошла нужда смены языка админ панели без изменения языка самого сайта.

То есть нужно чтобы язык по умолчанию был "X" для того чтобы все плагины типа контактных форм, woocomerce и тд. подхватывали язык "X" а язык админ панели был "Y" (в данном случае русский). Другими словами: нужно разделить язык внешней части сайта (frontend) от языка админ панели (backend).

Про файлы локализации я знаю, но как сделать чтобы язык "сайта", то есть по умолчанию отличался от языка админки.

Спасибо.

4
Гость
7.6 лет назад
  • 3
    Kama9618

    Плагин Backend Localization

    Чтобы не изобретать велосипед, поставьте плагин Backend Localization - это как раз то что нужно.

    Упрощенный вариант (свой плагин)

    Решить эту задачу без плагина не получится, потому что хук нужно вешать в момент подключения плагинов, можно раньше.

    Сейчас мы создадим свой мини-плагин. В котором не будет возможности переключать языки в админке (думаю это и не надо). Страницы: регистрация wp-register.php и логин wp-login.php будут считаться фронтом, а не админкой как в Backend Localization.

    А в остальном - тот же самый принцип что и в Backend Localization. Только очень все урезано, и выкинуто 90% плюшек - оставил только ядро. И немного его ускорил.

    Шаг 1.

    Важно: нужно создать плагин, а не вставлять этот код в functions.php!

    Создай папку в папке плагинов /wp-content/plugins/admin-localization, в ней файл admin-localization.php, в этот файл скопируй следующий код:

    <?php
    
    /*
    Plugin Name: Admin Localization
    Description: Жестко устанавливает русский язык для админ панели. Язык можно 
    	поменять в файле плагина в константе BACKEND_LOCALE. Чтобы все работало, 
    	нужно чтобы в папке локализации были все нужные языковые файлы .mo для 
    	этого, переведите сайт на все нужные языки в общих настройках - так WordPress
    	подгрузит в папку languages нужные файлы перевода. 
    	Это очень маленький плагин без настроек.
    Version: 0.1
    Author: Kama (wp-kama.ru)
    */
    
    // локаль (язык) админки
    define( 'ADMIN_LOCALE', 'ru_RU' ); 
    
    // запускаем плагин :)
    add_filter( 'locale', 'admin_localize' );
    function admin_localize( $locale ){
    	static $admin_url;
    
    	// установим язык если в админке
    	if( is_admin() ) {
    		$admin_url || ( $admin_url = admin_url() ); // для производительности
    
    		if( 
    			! defined('DOING_AJAX') 
    			|| 
    			( 
    				isset( $_SERVER['HTTP_REFERER'] ) 
    				&& false !== strpos( $_SERVER['HTTP_REFERER'], $admin_url ) /* is admin ajax */ 
    			) 
    		) {
    			return ADMIN_LOCALE;
    		}
    	}
    
    	return $locale;
    }

    Шаг 2.

    Скопируй эту папку в папку плагинов сайта и активируй плагин в админ панели сайта. Или можно зазиповать эту папку и через админку WP установить плагин из zip файла, чтобы в FTP не лезть...

    Все!

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

    -

    И еще пару слов про настройки.

    Если нужно изменить язык админки, то измени в файле плагина значение константы 'ADMIN_LOCALE'.

    Список локалей относящихся к разным языкам смотри тут: http://svn.automattic.com/wordpress-i18n/

    campusboy 7.6 лет назад

    Жаль, что такие фишки затеряются в этом разделе...

    Kama 7.6 лет назад

    Плюсани вопрос, его где-то в топе хоть найти можно будет через фильтр smile Вообще, конечно неплохая тема для поста получилась. Но мне и так нравится smile

    z1mak 7.6 лет назад

    Большое спасибо !
    Нашел еще один плагин "English wp admin"(около 200 строк кода).
    Думал в нем заменить все en-EN на ru-Ru.
    Но ваш конечно меньше поэтому его и использую, спасибо !

    Avrelkin 5.7 лет назад

    Спасибо большое , просто и гениально, лучшее решение, на мой взгляд. Плагин работает !

    Павел 5.5 лет назад

    Большое спасибо, всё работает. Однако при установке языка в админке вордпресса после сохранения в графе "язык сайта" продолжает отображаться "русский". По факту же после сохранения весь фронтэнд сайта перевёлся на немецкий.

    Alexs 5.5 лет назад

    Отличное решение. Большое спасибо.

    Геннадий 3.8 лет назад

    А как сохранить этот код? В каком редакторе? В ворде, блокноте, в чем??? Была бы полезна инструкция для чайников.

    Сделал все по инструкции. Не работает этот код.

    Kama 3.7 лет назад

    Геннадий, ну написано же создай папку, в ней файл, скопируй код в файл, скопируй эту папку в папку плагинов сайта и активируй плагин в админ панели сайта! На шаги даже разделил все это.

    Какая еще инструкция нужна, совсем уже что ли куку? Ужос просто sad

    П.С. Проверил в очередной раз, код работает!

    Jaffar год назад

    Храни тебя Бог! Я потратил 4 часа, чтобы принудительно сменить язык контента сайта на sk-SK, при этом оставив админку на русском.. Уже что только не пробовал, даже по видео какого-то индуса делал 1 в 1, только у него начинал корректно язык отображаться в коде страницы после внесения изменений в header, а у меня шиш. В общем на дворе уже 2023, а твой способ до сих пор работает. ОГРОМНОЕ СПАСИБО!

    Alexey Schulmin 2 месяца назад

    перейдите к settings и установите язык Site Language интерфейса, например, немецкий, затем сохраните.

    перейдите Users и нажмите «Изменить» в своей учетной записи администратора. Там можно поставить Language английский и сохранить. Вот и все. Ваш интерфейс будет использовать немецкий язык в качестве основы, а серверная часть будет на английском языке.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация