Не полная локализация плагина

При локализации плагина возникла непонятная проблема, все переводится кроме файла настроек /lib/config/settings.php.

при чем /lib/config/plugin.php находящийся в той же папке успешно перевелся.

пример:

'title' => _wp('Currency'),

'description' => _wp('The currency of your store'),

В чем может быть проблема?

2 ответа

  • 1
    Алексей Webasyst 13 мая 2015 04:15 #

    Убедитесь что в файле локализации *.po созданы необходимые строки и файл *.mo был скомпилирован с ними. Очистите кэш через Инсталлер и обновите страницу без использования кэша (обычно Shift+F5).

  • 1

    Если вы не переопределяли никаких методов класса плагина, связанных с генерацией страницы настроек, должно переводиться. Попробуйте запустить у себя плагин redirect и посмотреть страницу настроек: переведено ли "Platforms/Платформы" и "Custom redirect patterns/Дополнительные правила перенаправления". Это позволит проверить, работает ли сам механизм. Если работает, будем искать в вашем коде. Если не работает, то в нашем :)

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

    Ещё приходит в голову, что не-локализованная версия страницы (с тех времён, когда строк ещё не было в файле локализации) могла застрять в кеше смарти. Удалите wa-cache/apps и перепроверьте.

    Ну и всякую ерунду, типа наличия нужных строк в .po файле и что .mo файл скомпилирован свежий, я бы тоже проверил.

    Если ничего из этого не поможет, надо дебажить. Я бы начал с того, что навтыкал бы отладочного кода в waHtmlControl::_wp() (живёт в wa-system/util) и посмотрел бы, что приходит на вход и что вылезает на выходе. Те ли там строки и параметры, которые вы ожидаете увидеть. Ещё можно саму _wp() таким же образом исследовать (живёт в wa-system/locale/waLocale.class.php), особенно на предмет того, из правильного ли домена она пытается брать локализацию.

    • +1
      Сам такой Сам такой 13 мая 2015 05:29 #

      Содержимое /lib/config/settings.php

      'COMPANY_LOGO' => array(

      'title' => _wp('The logo of the store'),

      'description' => _wp('Specify the address of the store logo 400px-60px'),

      'control_type' => 'text',

      'subject' => 'printform',

      ),

      Содержимое /locale/ru_RU/LC_MESSAGES/*.po


      msgid ""

      msgstr ""

      "Project-Id-Version: shop/plugins/myplugin\n"

      "POT-Creation-Date: 2015-05-12 23:52+0300\n"

      "PO-Revision-Date: \n"

      "Last-Translator: \n"

      "Language-Team: shop/plugins/myplugin\n"

      "MIME-Version: 1.0\n"

      "Content-Type: text/plain; charset=utf-8\n"

      "Content-Transfer-Encoding: 8bit\n"

      "Plural-Forms: nplurals=3; plural=((((n%10)==1)&&((n%100)!=11))?(0):(((((n%10)>=2)&&((n%10)<=4))&&(((n%100)<10)||((n%100)>=20)))?(1):2));\n"

      "X-Poedit-Language: ru_RU\n"

      "X-Poedit-SourceCharset: utf-8\n"

      "X-Poedit-Basepath: .\n"

      "X-Poedit-SearchPath-0: .\n"

      "X-Poedit-SearchPath-1: .\n"


      #: /wa-apps/shop/plugins/myplugin/lib/config/settings.php:16

      msgid "The logo of the store"

      msgstr "Логотип магазина"


      #: /wa-apps/shop/plugins/myplugin/lib/config/settings.php:17

      msgid "Specify the address of the store logo 400px-60px"

      msgstr "Укажите адрес изображения логотипа магазина 400px-60px"


      ______________________________________________________________________

      Ничего не помогает, mo скомпилировал, все перепроверил, аналогичные плагины нормально переводятся.

      все косяки исправил, в итоге частично перевод. мо компилю POedit 1.7.6

      Да, еще, слово Валюта переводится, видимо в системной локали оно есть

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

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