Новая система перевода до сих пор находиться в разработке и скорее всего рабочий релиз PrestaShop 1.7 выйдет со старой системой перевода. Но команда престы усиленно работают над его внедрением и обещают держать нас в курсе событий.
Краткие тезисы о предстоящих изменениях:
- Больше не будет дублей строк перевода, т.е не нужно 10 раз переводить “Edit” и “Add to Cart”
- Система будет полностью совместима с Symfony.
- Базируется на «доменах», например ‘Shop.Notifications.Error’
- Реализована обратная совместимость с модулями PrestaShop 1.6
Примеры реализации.
Каждая строка должна вызывать переводчик Symfony.
Ниже приведу сравнение вызова (первая строка как в 1.6, вторая – как будет в 1.7)
Пример вызова в .php файле:
Пример вызова в .tpl файле:
Ну и как я уже писала в обзоре PrestaShop 1.7, теперь разработчикам придется работать с новым типом файлов .twig:
Что это означает для разработчиков?
Если Вы создаете новую строку необходимо использовать метод trans() и иметь соответствующий домен.
Если у вас есть модули совместимые с версией 1.7 – не беспокойтесь! Новая система будет совместима с переводчиком 1.6 (т.е. переделывать эти модули не придется)
Доменная структура
Все домены организованы в 4 основные секции: Shop, Admin, Modules и Install. Это домены первого уровня – их присутствие при переводе строки обязательно.
Все строки предназначенные для перевода должны быть соотнесены с одним из этих доменов (думаю из названий понятно какие куда).
В строке должно быть как минимум два домена – первый и второй уровень. Рассмотрим домены второго уровня подробнее.
Modules
Структура доменов в случае перевода модулей похожа на иерархию папок. Сначала идет папка “Modules” (домен первого уровня), потом папка с название модуля (второй уровень), а потом разделение – где эта строка появится (в админке или шаблоне магазина).
Присутствие 3х уровней не обязательно, например, если модуль будет выводиться только в шаблоне, то можно использовать два уровня (Modules.ImageSlider для модуля “Image Slider”)
Shop
Все строки предназначенные для фронт офиса соотносятся с доменом Shop, как видите из картинки со структурой – тут все немного сложнее. Значение домена второго уровня зависит от функционала, который выполняет эта строка.
Admin
Тут как и в случае с Shop домены зависят от функционала.
Пример перевода админки (Design > Image settings)
Вот как эти строки будут разнесены по доменам (соотносить по цветам)
Как видите из краткого изложения статьи, опубликованной на блоге разработчиков PrestaShop (http://build.prestashop.com/news/new-translation-system-prestashop-17/) – изменения в системе перевода будут кардинальные.
Ждем с нетерпение когда работы по интеграции будет завершены и мы сможем протестировать новый функционал более детально.