Локализация Есть решение

Написал плагин. Заполнил фай локализации.

В админ. части плагина все хорошо переведено (используется конструкция _w('слово') )

А в фронтэнде не выводит перевод (используется [`слово`] )

Подскажите пожалуйста, с чем может быть связано?

3 ответа

  • 0

    Для плагинов использовать _wp()

  • 1

    Не помогло.

    Возможно это важно: шаблон html, в котором используется локализация, выводится с помощью

    {shopPpayForm::getFormHtml()}



  • 1
    Леонид Вакуленко Webasyst 3 февраля 2015 11:48 # Решение

    Локализация плагина автоматически включается только во время обработки хуков. Если вы вставляете что-то в шаблон с помощью статического метода, например {shopPpayForm::getFormHtml()}, то во время выполнения метода активна другая локализация, и _wp() не знает, откуда брать перевод.

    Исправляется, если внутри вашей ::getFormHtml() сделать переключение активной локали. Сначала включить:

    waLocale::loadByDomain(array('shop', 'yourpluginid'));
    waSystem::pushActivePlugin
    ('yourpluginid', 'shop');

    А потом выключить:

    waSystem::popActivePlugin();

    Между этими двумя вызовами _wp() и [``] будут брать переводы из локализации плагина yourpluginid приложения shop.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите