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

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

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

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

Хорошо. Но строчек указанных выше там нет. Ни в одном из файлов модуля.
31 Июль 2015, 15:44:50
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 822
  • Репутация: +7/-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
  • Ветеран
  • *****
  • Сообщений: 822
  • Репутация: +7/-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
  • Ветеран
  • *****
  • Сообщений: 822
  • Репутация: +7/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня нет такого модуля. Я использую стандартный. Никогда не задумывался о переводе. Да и никто о таком не спрашивал.
31 Июль 2015, 15:59:18
Ответ #12
  • Фрилансер
  • *
  • Сообщений: 107
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня нет такого модуля. Я использую стандартный. Никогда не задумывался о переводе. Да и никто о таком не спрашивал.

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