В стандартном дистрибутиве Вебасиста доступны только 2 языка для отображения различных строк интерфейса пользователя: русский и английский. Для добавления дополнительных языков следуйте приведенной ниже инструкции.
-
Убедитесь, что на веб-сервере установлена локаль для языка, который вы добавляете. Например, в операционных системах на базе Linux список установленных локалей можно посмотреть, выполнив в консоли сервера команду
locale -a
Если локаль с требуемым идентификатором на сервере не установлена, установите ее самостоятельно, либо обратившись к администратору сервера. -
В конфигурационный файл wa-config/locale.php (если такого файла нет, его нужно создать) добавьте строку с идентификатором локали нового языка, общепринятым для POSIX-совместимых операционных систем, как показано в примере:
<?php return array( 'en_US', 'ru_RU', 'fr_FR', /* добавляем локаль французского языка */ );
- Создайте конфигурационный файл новой локали в директории wa-system/locale/data/, например, wa-system/locale/data/fr_FR.php — для французского языка. Содержимое файла необходимо сформировать по аналогии с существующими файлами других локалей.
-
Создайте системный файл локализации, расположив его на сервере по адресу вида 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.После завершения перевода может потребоваться перезагрузка веб-сервера для применения переведенных строк локализации.
- Создайте копию файла локализации для инструментов выбора дат 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. Переведите на новый язык строки локализации в созданной копии файла.
- Создайте копию файла локализации для визуального текстового редактора wa-content/js/redactor/ru.js с идентификатором новой локали вместо ru. Например: wa-content/js/jquery-ui/i18n/jquery.ui.datepicker-fr.js. Переведите на новый язык строки локализации в созданной копии файла.
- Очистите кеш в «Инсталлере».
- Выберите новый язык в свойствах пользователей, для которых нужно отображать интерфейс Вебасиста на этом языке.
11 комментариев
Ребят, а не проще ли встроить Гугл-переводчик? Только возникает вопрос, куда этот код нужно вставлять в шаблоне?
Все хотят чтобы сайт еще и поисковики на разных языках проиндексировали, а не просто корявый перевод на витрине получить.
Да еще и с не прогнозируемой задержкой в работе перевода.
А так - да, проще. А еще проще вообще забить и не переводить.
Звучит пессимистично с Вашей стороны. Все дело в том, что локаль то можно добавить, а вот как быть с переводом самого товара и его характеристик? Вы все говорите дублировать на другом языке, больше никак, но это как минимум непрофессионально. Что если завести опцию для товара, чтобы у него были вкладки на разных языках с возможностью ручного редактирования и перевода по своему желанию. При импорте или экспорте из CSV чтоб было так, к примеру, "Наименование" (как есть), "Наименование @Английский язык", "Наименование @Французский язык" и др., характеристики "Год" (как есть), "Year @Английский язык", "Année @Французский язык" и т. д. Но и конечно же добавить в общих настройках магазина опцию "Языки" и там уже выбирать предустановленный вами набор языков, которые как раз и будут соотноситься с языковыми вкладками товара. Вам, разработчикам, даже не нужно будет заниматься переводом, пользователь сам путем редактирования позиций на этих вкладках решает как будет выглядеть перевод. И напоследок, вывести по умолчанию для всех магазинов вверху главной страницы возможность выбора языков, не всех, а именно те, которые вы выбрали в опции "Языки".
Конечно, я сам не разработчик и говорить мне легко, в отличие от вас, разработчиков, которые могут этим заняться. Я понимаю, что это для вас "геморрой" и вы, скорее всего, не будете этим заниматься и забьете как всегда, но лучше уж сделать один раз, чем потом сидеть и выслушивать тысячи вопросов по этой теме. То, что я предложил, это, наверняка, идеальный вариант, к которому должны стремиться все разработчики. Если есть варианты получше, то подскажите или направьте к тому, кто сможет это сделать. Пока нормальных плагинов на эту тему я не встречал в магазине. Надеюсь, вы меня поймете.
В первых версиях Shop Sсript именно так и было, в карточке товара, описание на русском и если надо на английском, и работало очень классно.
Плагин в разработке. А с учетом сколько всего там нужно перевести лучше трижды перепроверить на различных ситуациях. Постараемся успеть отправить на рассмотрение до выхода 7-й версии.
До сих пор не реализовали?
Сделали отдельными приложениями. https://www.webasyst.ru/store/app/mylanglite/ для перевода существующих строк локализации.
Полная версия для несколько расширенных возможностей.
Перевел... Много дней работал от зари до зари. Результат - глючная работа всего Вебасиста, в том числе не работает WYSIWYG-редактор.
Моему разочарованию нет предела. Зачем я вообще тратил кучу денег и сил на переход на этот Вебасист?
Кто-то может мне пояснить?
В статью добавили пункт о необходимости скопировать и перевести на новый язык файл локализации для визуального текстового редактора. Спасибо, что написали об этом!
Не за что. Мне пока что не сильно полегчало. Визуальный редактор заработал. Но перевод "пляшет". Разные элементы, по своему усмотрению что ли, то на английском отображаются, то на языке перевода. Пока конца-края не вижу.