Мультиязычный магазин с EvoBabel

Уроки и советы по работе с TSVshop
13th
Сообщения: 19
Зарегистрирован: 05 май 2016, 23:11

Мультиязычный магазин с EvoBabel

Сообщение 13th » 05 май 2016, 23:24

Думаю как реализовать мультиязычный магазин.
Неясно как быть с корзиной и процессом заказа.
Можно определять язык ветки с которой зашли на страницу корзины.
А как дальше быть?
Написать сниппет для подстановки соотв. языковых полей в шаблон корзины?
Интересно кто-то решал подобную задачу?
Спасибо.

admin
Администратор
Сообщения: 148
Зарегистрирован: 08 фев 2013, 13:53

Re: Мультиязычный магазин с EvoBabel

Сообщение admin » 06 май 2016, 21:30

Здравствуйте.
Интересная задача. Для самого сниппета и модуля корзины есть поддержка языковых файлов. У сниппета TSVshop есть параметр &lang, который принимает название языка (в соответствии с языком системы МОДх). Т.е. для русского russian или russian-UTF8, для английского - english и т.д. Нужно только сделать перевод на нужный язык этих файлов. В модуле автматически поддстраивается язык под язык системы - тоже нужно перевод сделать.

Остается только чанки. Тут, видимо, придется разные чанки для каждого языка. Или же другим способом подставлять языковые значения. Например, все тексты из чанков вынести в языковые файлы, а вместо них поставить свои кастомные плейсхолдеры, которые плагином или сниппетом заменять налету. Просто нужный языковой файл подгружать в зависимости от выбранного языка.

13th
Сообщения: 19
Зарегистрирован: 05 май 2016, 23:11

Re: Мультиязычный магазин с EvoBabel

Сообщение 13th » 07 май 2016, 11:28

Спасибо!
Похоже, EvoBabel не подойдет - там языковые ветки в дереве сайта.
А для магазина нужна один корневой каталог.
Остается или YAMS, или что-то свое нужно писать.

admin
Администратор
Сообщения: 148
Зарегистрирован: 08 фев 2013, 13:53

Re: Мультиязычный магазин с EvoBabel

Сообщение admin » 07 май 2016, 17:04

YAMS вроде подходит. Делали под него плагин для добавления товаров в корзину в зависимости от языка

13th
Сообщения: 19
Зарегистрирован: 05 май 2016, 23:11

Re: Мультиязычный магазин с EvoBabel

Сообщение 13th » 09 май 2016, 21:34

Да, YAMS в принципе подходит, но проще свое решение оказалось сделать.
Вопрос по параметру &lang:
В папке assets\snippets\tsvshop\lang создал файлы переводов english.inc.php и english.js и перенес в них контент из русских версий
Но при добавлении &lang=`english` к вызову [!TSVshop? &act=`basket` &checkid=`3`!], данные на странице корзины просто исчезают.
Подскажите, в чем здесь ошибка?
Спасибо!

admin
Администратор
Сообщения: 148
Зарегистрирован: 08 фев 2013, 13:53

Re: Мультиязычный магазин с EvoBabel

Сообщение admin » 10 май 2016, 17:35

Ошибка потому, что языковые файлы есть также в папках с аддонами. Это /assets/snippets/tsvshop/addons и далее в каждой папке с аддоном смотрите. Там тоже нужно создать языковые файлы. Иначе у вас возникает ошибка из-за отсутствия нужного языкового файла.

13th
Сообщения: 19
Зарегистрирован: 05 май 2016, 23:11

Re: Мультиязычный магазин с EvoBabel

Сообщение 13th » 10 май 2016, 21:47

Да, спасибо.
Не догадался-бы)
Еще вопрос - например в интерфейсе "Оформление покупки" заголовки в формах и таблицах сделаны без переводов, статически.
(файл Shop_UserForm.tpl)
Думаю засунуть все надписи в файлы переводов. Только не знаю в какие файлы их будет правильно сохранять. И как их вызывать оттуда.
Если эти доработки кого-то заинтересуют - выложу архив.

Спасибо!

admin
Администратор
Сообщения: 148
Зарегистрирован: 08 фев 2013, 13:53

Re: Мультиязычный магазин с EvoBabel

Сообщение admin » 11 май 2016, 17:30

Можно языковые переменные для этих шаблонов добавить в файлы, находящиеся в папке /assets/snippets/tsvshop/lang, поскольку эти файлы относятся к фронтенду. А как выводить в чанках - тут сложнее. Чтобы не лезть в код, можно сделать небольшой плагин на события TSVshopOnTplCartPrerender (для корзины) и TSVshopOnBeforeUserFormInit (для формы оформления заказа), который будет заменять языковые плейсхолдеры типа [%placeholder%] на соответствующие значения (по ключу массива). Например, $shop_lang['stringkey'] = 'Текст' заменит [%stringkey%] и получится Текст. В будущих версиях будет предусмотрена такая возможность "из коробки".

13th
Сообщения: 19
Зарегистрирован: 05 май 2016, 23:11

Re: Мультиязычный магазин с EvoBabel

Сообщение 13th » 12 май 2016, 17:16

Идея ясна, спасибо!

admin
Администратор
Сообщения: 148
Зарегистрирован: 08 фев 2013, 13:53

Re: Мультиязычный магазин с EvoBabel

Сообщение admin » 13 май 2016, 12:29

Отлично. Если будут вопросы, пишите. И если будут какие-то наработки, тоже можете поделиться, будем рады внедрить их.


Вернуться в «Как сделать ... ?»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость