Модератор
Юрій
(@yube)
где соответственно $this->plugin_name — имя плагина.
Второй параметр функции __() — Text domain, а он может не совпадать с именем плагина.
Home
Юрий, спасибо. ))
Но это я проверил в первую очередь — все ок.
Даже если в качестве текста вставить что-нибудь стандартное, что WP должен перевести без указания плагина, тоже возвращает исходный текст, например:
echo wp_json_encode(array('result'=>'success', 'text' => __('Update')));
Хотя если в конструкторе класса пишу
var_dump( __('Update') );
То выводит нормально — «Обновить»
В общем решение пока не нашел (
Сергей, огромное спасибо!
Да, действительно, AJAX отправляется через профиль авторизованного пользователя и у именно у этого пользователя в locale установлен английский. Смена на ru_RU решило проблему. Еще раз спасибо! )
Сергей, если можно то еще один вопрос по теме:
Как можно на лету сменить локаль всего сайта, так чтобы ВП и плагины подтянули нужные pot файлы?
Пробовал использовать switch_to_locale, но во-первых эта функция по идее должна работать только для авторизованных пользователей и то если у него установлена локаль в мета данных. Но даже для авторизованных пользователей мне это не удалось реализовать. Вызов switch_to_locale делал в функции на add_action( ‘init’, ‘run_plugin’ ). Может есть решение как програмно изменить локаль всего сайта на лету для любого пользователя, даже если он не авторизован?
Заранее спасибо! ))
Решено с переводом.
Установку локали надо было повесить на хук plugins_loaded, а в исполняемой функции локаль установить через фильтр locale.
Всем спасибо за помощь! ))