Рубрики
PrestaShop

Новая система перевода в PrestaShop 1.7

post

Новая система перевода до сих пор находиться в разработке и скорее всего рабочий релиз PrestaShop 1.7 выйдет со старой системой перевода. Но команда престы усиленно работают над его внедрением и обещают держать нас в курсе событий.

Краткие тезисы о предстоящих изменениях:

  • Больше не будет дублей строк перевода, т.е не нужно 10 раз переводить “Edit” и “Add to Cart”
  • Система будет полностью совместима с Symfony.
  • Базируется на «доменах», например ‘Shop.Notifications.Error’
  • Реализована обратная совместимость с модулями PrestaShop 1.6

Примеры реализации.
Каждая строка должна вызывать переводчик Symfony.
Ниже приведу сравнение вызова (первая строка как в 1.6, вторая – как будет в 1.7)
Пример вызова в .php файле:
domains_php_example
Пример вызова в .tpl файле:
domains_tpl_example
Ну и как я уже писала в обзоре PrestaShop 1.7, теперь разработчикам придется работать с новым типом файлов .twig:
domains_twig_example

Что это означает для разработчиков?
Если Вы создаете новую строку необходимо использовать метод trans() и иметь соответствующий домен.
Если у вас есть модули совместимые с версией 1.7 – не беспокойтесь! Новая система будет совместима с переводчиком 1.6 (т.е. переделывать эти модули не придется)

Доменная структура

Все домены организованы в 4 основные секции: Shop, Admin, Modules и Install. Это домены первого уровня – их присутствие при переводе строки обязательно.
main_domains2
Все строки предназначенные для перевода должны быть соотнесены с одним из этих доменов (думаю из названий понятно какие куда).
В строке должно быть как минимум два домена – первый и второй уровень. Рассмотрим домены второго уровня подробнее.

Modules
domains_modules
Структура доменов в случае перевода модулей похожа на иерархию папок. Сначала идет папка “Modules” (домен первого уровня), потом папка с название модуля (второй уровень), а потом разделение – где эта строка появится (в админке или шаблоне магазина).
Присутствие 3х уровней не обязательно, например, если модуль будет выводиться только в шаблоне, то можно использовать два уровня (Modules.ImageSlider для модуля “Image Slider”)

Shop
domains_front
Все строки предназначенные для фронт офиса соотносятся с доменом Shop, как видите из картинки со структурой – тут все немного сложнее. Значение домена второго уровня зависит от функционала, который выполняет эта строка.

Admin
Тут как и в случае с Shop домены зависят от функционала.
domains_admin
Пример перевода админки (Design > Image settings)
domains_example2
Вот как эти строки будут разнесены по доменам (соотносить по цветам)
domains_example3

Как видите из краткого изложения статьи, опубликованной на блоге разработчиков PrestaShop (http://build.prestashop.com/news/new-translation-system-prestashop-17/) – изменения в системе перевода будут кардинальные.
Ждем с нетерпение когда работы по интеграции будет завершены и мы сможем протестировать новый функционал более детально.