Title: Не работает __() при возврате ответа через AJAX
Last modified: 03.10.2017

---

# Не работает __() при возврате ответа через AJAX

 *  Решено [rogodessa](https://ru.wordpress.org/support/users/rogodessa/)
 * (@rogodessa)
 * [9 лет назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-__-%d0%bf%d1%80%d0%b8-%d0%b2%d0%be%d0%b7%d0%b2%d1%80%d0%b0%d1%82%d0%b5-%d0%be%d1%82%d0%b2%d0%b5%d1%82%d0%b0-%d1%87%d0%b5%d1%80%d0%b5/)
 * Доброго времени суток!
 * Ребята, может кто знает почему при при возврате ответа из AJAX не работают функции
   перевода?
    Ответ в AJAX обработчике формируется так:
 * `echo wp_json_encode(array('result'=>'success', 'text' => __('Item successfully
   deleted', $this->plugin_name)));`
    где соответственно $this->plugin_name — имя
   плагина.
 * остается основной язык, хоть тресни.
 * Заранее признателен за любые подсказки ))

Просмотр 5 ответов — с 1 по 5 (всего 5)

 *  Модератор [Юрій](https://ru.wordpress.org/support/users/yube/)
 * (@yube)
 * [9 лет назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-__-%d0%bf%d1%80%d0%b8-%d0%b2%d0%be%d0%b7%d0%b2%d1%80%d0%b0%d1%82%d0%b5-%d0%be%d1%82%d0%b2%d0%b5%d1%82%d0%b0-%d1%87%d0%b5%d1%80%d0%b5/#post-261275)
 * > где соответственно $this->plugin_name — имя плагина.
 * Второй параметр функции __() — Text domain, а он может не совпадать с именем 
   плагина.
 * > [Home](https://developer.wordpress.org/)
 *  Автор [rogodessa](https://ru.wordpress.org/support/users/rogodessa/)
 * (@rogodessa)
 * [9 лет назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-__-%d0%bf%d1%80%d0%b8-%d0%b2%d0%be%d0%b7%d0%b2%d1%80%d0%b0%d1%82%d0%b5-%d0%be%d1%82%d0%b2%d0%b5%d1%82%d0%b0-%d1%87%d0%b5%d1%80%d0%b5/#post-261319)
 * Юрий, спасибо. ))
 * Но это я проверил в первую очередь — все ок.
 * Даже если в качестве текста вставить что-нибудь стандартное, что WP должен перевести
   без указания плагина, тоже возвращает исходный текст, например:
 * `echo wp_json_encode(array('result'=>'success', 'text' => __('Update')));`
 * Хотя если в конструкторе класса пишу
    `var_dump( __('Update') );` То выводит 
   нормально — «Обновить»
 * В общем решение пока не нашел (
 *  Модератор [Sergey Biryukov](https://ru.wordpress.org/support/users/sergeybiryukov/)
 * (@sergeybiryukov)
 * Live and Learn
 * [9 лет назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-__-%d0%bf%d1%80%d0%b8-%d0%b2%d0%be%d0%b7%d0%b2%d1%80%d0%b0%d1%82%d0%b5-%d0%be%d1%82%d0%b2%d0%b5%d1%82%d0%b0-%d1%87%d0%b5%d1%80%d0%b5/#post-261324)
    1. Какой язык указан в настройках сайта, а какой — в профиле пользователя?
    2. Используются ли мультиязычные плагины? Они могут влиять на проблему.
 *  Автор [rogodessa](https://ru.wordpress.org/support/users/rogodessa/)
 * (@rogodessa)
 * [9 лет назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-__-%d0%bf%d1%80%d0%b8-%d0%b2%d0%be%d0%b7%d0%b2%d1%80%d0%b0%d1%82%d0%b5-%d0%be%d1%82%d0%b2%d0%b5%d1%82%d0%b0-%d1%87%d0%b5%d1%80%d0%b5/#post-261330)
 * Сергей, огромное спасибо!
 * Да, действительно, AJAX отправляется через профиль авторизованного пользователя
   и у именно у этого пользователя в locale установлен английский. Смена на ru_RU
   решило проблему. Еще раз спасибо! )
 * Сергей, если можно то еще один вопрос по теме:
 * Как можно на лету сменить локаль всего сайта, так чтобы ВП и плагины подтянули
   нужные pot файлы?
 * Пробовал использовать switch_to_locale, но во-первых эта функция по идее должна
   работать только для авторизованных пользователей и то если у него установлена
   локаль в мета данных. Но даже для авторизованных пользователей мне это не удалось
   реализовать. Вызов switch_to_locale делал в функции на add_action( ‘init’, ‘run_plugin’).
   Может есть решение как програмно изменить локаль всего сайта на лету для любого
   пользователя, даже если он не авторизован?
 * Заранее спасибо! ))
 *  Автор [rogodessa](https://ru.wordpress.org/support/users/rogodessa/)
 * (@rogodessa)
 * [9 лет назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-__-%d0%bf%d1%80%d0%b8-%d0%b2%d0%be%d0%b7%d0%b2%d1%80%d0%b0%d1%82%d0%b5-%d0%be%d1%82%d0%b2%d0%b5%d1%82%d0%b0-%d1%87%d0%b5%d1%80%d0%b5/#post-261367)
 * Решено с переводом.
 * Установку локали надо было повесить на хук plugins_loaded, а в исполняемой функции
   локаль установить через фильтр locale.
 * Всем спасибо за помощь! ))

Просмотр 5 ответов — с 1 по 5 (всего 5)

 Тема «Не работает __() при возврате ответа через AJAX» закрыта для новых ответов.

 * Форум: [Проблемы и решения](https://ru.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 5 ответов
 * 3 участника
 * Последний ответ: [rogodessa](https://ru.wordpress.org/support/users/rogodessa/)
 * Последняя активность: [9 лет назад](https://ru.wordpress.org/support/topic/%d0%bd%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-__-%d0%bf%d1%80%d0%b8-%d0%b2%d0%be%d0%b7%d0%b2%d1%80%d0%b0%d1%82%d0%b5-%d0%be%d1%82%d0%b2%d0%b5%d1%82%d0%b0-%d1%87%d0%b5%d1%80%d0%b5/#post-261367)
 * Статус: решённая

## Темы

### Самые популярные темы

### Темы без ответов

### Без вопроса

### Решённые

### Нерешённые

### Все темы
