Автор Тема: Псевдографика в почтовых уведомлениях  (Прочитано 536 раз)

01 Апрель 2014, 14:24:10
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте,
Купил тему для Престы(1.5.6.1), после установки мучаюсь с переводом.
 Непонятно как решить проблему с переводом уведомлений на русский.
Как только вставляешь в шаблон письма русские слова, результат - их(слов) просто нет.
Если в названии магазина русское слово - то в теме письма вот такое:
=?utf-8?Q?[Magazin]_Order?= =?utf-8?Q?_=D0=BF=D0=BE=D0=B4=D1=82=D0=B2=D0=B5=D1=80=D0=B6=D0=B4?= =?utf-8?Q?
Попробовал редактировать файлы из каталога Swift (заменил все кодировки на UTF-8) - в результате получил вместо русских букв знаки вопроса.
Если делать все на лат. раскладке(включая имя заказчика) - то все отображается нормально.

Посоветуйте пожалуйста что делать, сколько дней голову ломаю!
01 Апрель 2014, 14:58:41
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86543
  • Репутация: +25419/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Файлы шаблонов нужно сохранить в UTF8.
Установить соединение с базой данных с кодировкой UTF8.
Установить кодировку для базы данных и таблиц в ней UTF8.
Смотрите на форуме, не раз писали. Как настроить и проверить кодировку.
01 Апрель 2014, 16:28:17
Ответ #2
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Файлы шаблонов уже в UTF-8
Кодировка БД - UTF8_General (так показывает phpmyadmin)
Есть еще предположения?

На этом форуме искал по словосочетанию "настроить кодировку" ничего близкого по теме не нашел.
Если у вас по другому - поделитесь плз. ссылочкой!
01 Апрель 2014, 16:32:49
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86543
  • Репутация: +25419/-0
  • Сообщество PrestaShop
    • Просмотр профиля
01 Апрель 2014, 17:04:56
Ответ #4
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Посмотрел и навеяло простую мысль проверить сервер отправки ибо везде уже указано UTF-8.
У меня есть свой почтовик, я проверил отправку тестового письма через него(настроил свои параметры SMTP).
И о чудо! Пришло нормальное - "Это тестовое сообщение, ваш сервер настроен и может отправлять почту."

Это означает, что настройка: Использовать PHP функцию mail(). - работает неправильно!
Остался вопрос, где копать настройки PHP относящиеся к почте и кодировке?
01 Апрель 2014, 18:07:20
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 14063
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Использовать PHP функцию mail()
Для большинства работает правильно.
Если у вас свой почтовый сервер, то настраивать нужно его.
Или попробуйте так
Попробуйте в файле classes/Mail.php заменить
$to_list->addTo($addr, '=?UTF-8?B?'.base64_encode($to_name).'?=');на
$to_list->addTo($addr, $to_name);
Не только для этого поля,
$addr, '=?UTF-8?B?'.base64_encode($to_name).'?='но и для других. Убрать перекодирование для переменных, которые не читабельны.