Шаблоны писем в Prestashop

Шаблоны писем в Prestashop

При настройке интернет-магазина на движке Prestashop, множество текстов приходится переводить вручную. И если при установке магазина стандартные вещи, типа интерфейса, уже переведены, то перевод фраз встречающихся в «закоулках» магазина, или отсутствует вообще, или настолько далек от совершенства, что требует немедленного изменения. Иногда при русификации возникают совершенно неожиданные проблемы. Сегодня речь пойдет о переводе писем, которые отправляет Ваш магазин.

Вчера из курируемого магазина пришло почтовое уведомление о том, что:

Данный товар есть на складе
Вы можете заказать это прямо сейчас в нашем интернет-магазине.

Если вам дорог магазин, то вы не уснете, пока не исправите это :) и полезете в админку, чтобы поправить перевод. (Кстати, перевод шаблонов почтовых отправлений можно найти в Tools — Translations — Перевод шаблонов Email).

Администрирование Prestashop - редактор почтовых шаблонов

Администрирование Prestashop - редактор почтовых шаблонов

Если на этом этапе проблем не возникнет — правим тексты и спим спокойно. Но если ваш магазин установлен на российском хостинге, то скорее всего, вместо своих шаблонов вы увидите абракадабру.

Prestashop: проблемы с кодировкой в редакторе почтовых шаблонов

Prestashop: проблемы с кодировкой в редакторе почтовых шаблонов

Имеющие за плечами некоторый опыт, сразу поймут, что такие каракули возникают, когда текст в utf-8 сервер отправляет браузеру как windows-1251. И правда, если вручную проверить шаблоны, то там все в порядке. Они сохранены в utf-8. И страница редактирования шаблона отдается тоже в utf-8. Почему в результате мы видим абракадабру?

«Собака зарыта» в том, что шаблоны писем подгружаются в iframe’ы и не имеют заголовков, сообщающих серверу, в какой они кодировке. Поэтому сервер провайдера  выдает  iframe в кодировке, принятой по умолчанию.  А она, как Вы уже догадались, на наших хостингах обычно windows-1251.

Эта проблема решается стандартно. Нужно поменять дефолтную кодировку на utf-8, добавив в корневой файл .htaccess строку AddDefaultCharset utf-8. Рука так и тянется к ftp-менеджеру, чтобы быстренько вписать эту строку вручную. Но этого делать не нужно! Файл .htaccess генерируется престашопом автоматически. И чтобы впредь в нем всегда прописывалась нужная кодировка, необходимо добавить эту строку посредством генератора (Панель Управления  - Tools —  Generators). Прописываем: 

 AddDefaultCharset utf-8

Prestashop - редактирование .htaccess

Prestashop - редактирование .htaccess

Теперь возвращаемся в редактор переводов. Ура! Все в порядке. Правим раздражающие переводы, тестируем и идем спать :) .

Справедливости ради надо заметить, что можно отредактировать переводы вручную. Большинство почтовых шаблонов хранится в директории ./mails/ru, а некоторые шаблоны — в директории соответствующего модуля. Например, шаблон уведомления о поступлении товара хранится в .modules/mailalerts/mails/ru. Если будете править вручную, то убедитесь, что сохранили шаблоны в utf-8!

15.03.2012 Автор: Ссылка