Как перевести интерфейс Webasyst на другой язык

В стандартном дистрибутиве Вебасиста доступны только 2 языка для отображения различных строк интерфейса пользователя: русский и английский. Для добавления дополнительных языков следуйте приведенной ниже инструкции.

  1. Убедитесь, что на веб-сервере установлена локаль для языка, который вы добавляете. Например, в операционных системах на базе Linux список установленных локалей можно посмотреть, выполнив в консоли сервера команду
    locale -a    
    Если локаль с требуемым идентификатором на сервере не установлена, установите ее самостоятельно, либо обратившись к администратору сервера.
  2. В конфигурационный файл wa-config/locale.php (если такого файла нет, его нужно создать) добавьте строку с идентификатором локали нового языка, общепринятым для POSIX-совместимых операционных систем, как показано в примере:
    <?php
    return array(
        'en_US',
        'ru_RU',
        'fr_FR', /* добавляем локаль французского языка */
    );    
  3. Создайте конфигурационный файл новой локали в директории wa-system/locale/data/, например, wa-system/locale/data/fr_FR.php — для французского языка. Содержимое файла необходимо сформировать по аналогии с существующими файлами других локалей.
  4. Создайте системный файл локализации, расположив его на сервере по адресу вида wa-system/webasyst/locale/fr_FR/LC_MESSAGES/webasyst.po (пример для французского языка). Проще всего сделать это, скопировав аналогичную директорию с файлами локализации английского языка и заменив имя директории на идентификатор локали нового языка. В созданном файле с расширением .po для поля Plural-Forms укажите условие определения формы множественного числа для добавляемого вами языка. Примеры таких условий можно найти на сайте проекта Translate Project. Пример условия для французского языка:
    "Plural-Forms: nplurals=2; plural=(n > 1);\n"    
    В поле Language в этом файле укажите идентификатор локали, например:
    "Language: fr_FR\n"    
    Переведите все необходимые строки в этом файле с помощью редактора, предназначенного для обработки файлов в формате .po, например, Poedit, и с его помощью скомпилируйте файл с расширением .mo: wa-system/webasyst/locale/fr_FR/LC_MESSAGES/webasyst.mo. Для остальных приложений, используемых в вашем бекенде, создайте соответствующие копии файлов локализации, расположенные по адресам вида wa-apps/[app_id]/locale/[locale]/LC_MESSAGES/[app_id].po и wa-apps/[app_id]/locale/[locale]/LC_MESSAGES/[app_id].mo.
    После завершения перевода может потребоваться перезагрузка веб-сервера для применения переведенных строк локализации.
  5. Создайте копию файла локализации для инструментов выбора дат wa-content/js/jquery-ui/i18n/jquery.ui.datepicker-ru_RU.js с идентификатором новой локали вместо ru_RU в этом примере. Например: wa-content/js/jquery-ui/i18n/jquery.ui.datepicker-fr_FR.js. Переведите на новый язык строки локализации в созданной копии файла.
  6. Создайте копию файла локализации для визуального текстового редактора wa-content/js/redactor/ru.js с идентификатором новой локали вместо ru. Например: wa-content/js/jquery-ui/i18n/jquery.ui.datepicker-fr.js. Переведите на новый язык строки локализации в созданной копии файла.
  7. Очистите кеш в «Инсталлере».
  8. Выберите новый язык в свойствах пользователей, для которых нужно отображать интерфейс Вебасиста на этом языке.

11 комментариев

  • +2
    Do Xa Do Xa 1 апреля 2014 08:41 #
    Если Вы заинтересованы в локализации web-ПО, ПО для персональных компьютеров, ПО для мобильных устройств либо иного вида программного обеспечения, я рекомендую Вам использовать этот инструмент на базе web: https://poeditor.com/
  • 0
    Винотека Винотека 14 марта 2016 03:40 #

    Ребят, а не проще ли встроить Гугл-переводчик? Только возникает вопрос, куда этот код нужно вставлять в шаблоне?

    • +1

      Все хотят чтобы сайт еще и поисковики на разных языках проиндексировали, а не просто корявый перевод на витрине получить.
      Да еще и с не прогнозируемой задержкой в работе перевода.
      А так - да, проще. А еще проще вообще забить и не переводить.

      • +3
        Винотека Винотека 14 марта 2016 06:13 #

        Звучит пессимистично с Вашей стороны. Все дело в том, что локаль то можно добавить, а вот как быть с переводом самого товара и его характеристик? Вы все говорите дублировать на другом языке, больше никак, но это как минимум непрофессионально. Что если завести опцию для товара, чтобы у него были вкладки на разных языках с возможностью ручного редактирования и перевода по своему желанию. При импорте или экспорте из CSV чтоб было так, к примеру, "Наименование" (как есть), "Наименование @Английский язык", "Наименование @Французский язык" и др., характеристики "Год" (как есть), "Year @Английский язык", "Année @Французский язык" и т. д. Но и конечно же добавить в общих настройках магазина опцию "Языки" и там уже выбирать предустановленный вами набор языков, которые как раз и будут соотноситься с языковыми вкладками товара. Вам, разработчикам, даже не нужно будет заниматься переводом, пользователь сам путем редактирования позиций на этих вкладках решает как будет выглядеть перевод. И напоследок, вывести по умолчанию для всех магазинов вверху главной страницы возможность выбора языков, не всех, а именно те, которые вы выбрали в опции "Языки".

        Конечно, я сам не разработчик и говорить мне легко, в отличие от вас, разработчиков, которые могут этим заняться. Я понимаю, что это для вас "геморрой" и вы, скорее всего, не будете этим заниматься и забьете как всегда, но лучше уж сделать один раз, чем потом сидеть и выслушивать тысячи вопросов по этой теме. То, что я предложил, это, наверняка, идеальный вариант, к которому должны стремиться все разработчики. Если есть варианты получше, то подскажите или направьте к тому, кто сможет это сделать. Пока нормальных плагинов на эту тему я не встречал в магазине. Надеюсь, вы меня поймете.

      • +1
        Eugene Avramchuk Eugene Avramchuk 1 августа 2017 18:39 #

        Перевел... Много дней работал от зари до зари. Результат - глючная работа всего Вебасиста, в том числе не работает WYSIWYG-редактор.
        Моему разочарованию нет предела. Зачем я вообще тратил кучу денег и сил на переход на этот Вебасист?
        Кто-то может мне пояснить?

        • +1
          Михаил Ушенин Михаил Ушенин Webasyst 7 августа 2017 15:46 #

          В статью добавили пункт о необходимости скопировать и перевести на новый язык файл локализации для визуального текстового редактора. Спасибо, что написали об этом!

          • +1
            Eugene Avramchuk Eugene Avramchuk 7 августа 2017 16:34 #

            Не за что. Мне пока что не сильно полегчало. Визуальный редактор заработал. Но перевод "пляшет". Разные элементы, по своему усмотрению что ли, то на английском отображаются, то на языке перевода. Пока конца-края не вижу.


            Добавить комментарий

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