Автор Тема: Мультиязычность магазина!  (Прочитано 554 раз)

30 Июля 2015, 17:49:40
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем привет. Решил в магазин добавить второй язык. Основной русский, добавляю английский. Почти всё перевел, но столкнулся с рядом проблем. Пожалуйста, не пройдите мимо, может кто-то поможет с решением. Вот некоторые из них:
1. Модуль BOCKCONTACTINFO, который расположен в футере, не переводится на англ.яз. Иногда заходят англоязычные клиенты и необходимо адрес на англ языке указывать латиницей. Да и не красиво как-то, когда весь сайт переведен, а этот блок как бельмо на глазу.
2. Есть ли возможность перевести название логотипа? Понимаю, смешно звучит. Но логотип текстовый и было бы просто прекрасно, если бы он тоже менялся. Хотя по-моему это из области фантастики.
30 Июля 2015, 18:01:39
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 2149
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
1. В модуле "Блок контактной информации" нет возможности менять язык. Нужно этот модуль переделывать.

2. Если лого текстовое, то можно в шаблоне header.tpl заменить
<img class="logo img-responsive" src="{$logo_url}"..на текст
{l s='Текст лого'}перевод текста изменить в админке в переводах фронт-офиса.
31 Июля 2015, 09:12:44
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
1. В модуле "Блок контактной информации" нет возможности менять язык. Нужно этот модуль переделывать.

2. Если лого текстовое, то можно в шаблоне header.tpl заменить
<img class="logo img-responsive" src="{$logo_url}"..на текст
{l s='Текст лого'}перевод текста изменить в админке в переводах фронт-офиса.


Спасибо! А вы случайно не в курсе, как можно его переписать? Может там не прям сложно?
31 Июля 2015, 09:55:39
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 13118
  • Репутация: +14553/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В prestashop не сложно что-то переделать. Для поддержки нескольких языков нужно добавить блок с выбором языковой версии
$default_lang = (int)Configuration::get('PS_LANG_DEFAULT');
$helper->default_form_language = $default_lang;
$helper->allow_employee_form_lang = $default_lang; 
Но в этом модуле это сделано. В нем не добалять язык нужно, я искать и исправлять ошибки.
31 Июля 2015, 15:24:28
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В prestashop не сложно что-то переделать. Для поддержки нескольких языков нужно добавить блок с выбором языковой версии
$default_lang = (int)Configuration::get('PS_LANG_DEFAULT');
$helper->default_form_language = $default_lang;
$helper->allow_employee_form_lang = $default_lang; 
Но в этом модуле это сделано. В нем не добалять язык нужно, я искать и исправлять ошибки.


А куда это добавлять надо? Или где это должно быть?
31 Июля 2015, 15:36:25
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это есть в модуле, не нужно ничего добавлять.

Цитировать
Но в этом модуле это сделано. В нем не добалять язык нужно, я искать и исправлять ошибки.
Можно написать в суппорт модуля, может они исправят свои ошибки. Чужой модуль навряд ли кто будет исправлять.
31 Июля 2015, 15:41:10
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это есть в модуле, не нужно ничего добавлять.

Цитировать
Но в этом модуле это сделано. В нем не добалять язык нужно, я искать и исправлять ошибки.
Можно написать в суппорт модуля, может они исправят свои ошибки. Чужой модуль навряд ли кто будет исправлять.

Хорошо. Но строчек указанных выше там нет. Ни в одном из файлов модуля.
31 Июля 2015, 15:44:50
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Страно, я открыл файл модуля и они там есть. Может у вас версия старая или свой модуль.
/modules/blockcontactinfos/blockcontactinfos.php
public function renderForm()
...
$lang = new Language((int)Configuration::get('PS_LANG_DEFAULT'));
...
$helper->tpl_vars = array(
'fields_value' => array(),
'languages' => $this->context->controller->getLanguages(),
'id_language' => $this->context->language->id
);
31 Июля 2015, 15:47:54
Ответ #8
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Страно, я открыл файл модуля и они там есть. Может у вас версия старая или свой модуль.
/modules/blockcontactinfos/blockcontactinfos.php
public function renderForm()
...
$lang = new Language((int)Configuration::get('PS_LANG_DEFAULT'));
...
$helper->tpl_vars = array(
'fields_value' => array(),
'languages' => $this->context->controller->getLanguages(),
'id_language' => $this->context->language->id
);


Только что обновил модуль. Да эти строки появились, но возможности переключить язык не появилось
31 Июля 2015, 15:49:16
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Но в этом модуле это сделано. В нем не добалять язык нужно, я искать и исправлять ошибки.
О чем написали выше.
31 Июля 2015, 15:50:02
Ответ #10
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Страно, я открыл файл модуля и они там есть. Может у вас версия старая или свой модуль.
/modules/blockcontactinfos/blockcontactinfos.php
public function renderForm()
...
$lang = new Language((int)Configuration::get('PS_LANG_DEFAULT'));
...
$helper->tpl_vars = array(
'fields_value' => array(),
'languages' => $this->context->controller->getLanguages(),
'id_language' => $this->context->language->id
);


А в вашем модуле вы его можете перевести? Все нормально? Есть переключатель с языка на язык?
31 Июля 2015, 15:52:21
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня нет такого модуля. Я использую стандартный. Никогда не задумывался о переводе. Да и никто о таком не спрашивал.
31 Июля 2015, 15:59:18
Ответ #12
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня нет такого модуля. Я использую стандартный. Никогда не задумывался о переводе. Да и никто о таком не спрашивал.

Так у меня тоже стандартный. Шел вместе с престой. Нужно чтобы адрес отображался кирилицей и латиницей в зависимости от переключения языка
31 Июля 2015, 16:03:49
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Там есть определение языка, а вот сохранения разных языковых версий нет. Поэтому и нет возможности разные названия добавлять для разных языков.
31 Июля 2015, 19:03:52
Ответ #14
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 85943
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Стандарный модуль blockcontactinfos не поддерживает мультиязычность. Чтобы этот модуль мог сохранять тексты для разных языков нужно полностью переделать модуль. То есть сделать новый где сохранение текстовых полей будет не в ps_configuration, а в отдельной таблице.