Автор Тема: мультиязычний сайт  (Прочитано 596 раз)

04 Июль 2017, 14:47:09
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
есть ajax.php  вот кусок кода из него

if(isset($_POST['name']) && !empty($_POST['name'])){

      $commentobj->name = $_POST['name'];

   }else {

      $results['error'][] = "Name Is Required";

   }

В prestashop есть такая возможность при конкретном языке показывать текста

{if $lang_iso == es }
   <a href="test.com" target="_blank">Guia de tallas</a>
{else}


Можно ли как то организовать проверку в ajax.php например в таком духе:

if(isset($_POST['name']) && !empty($_POST['name'])){

   $commentobj->name = $_POST['name'];

}else if ($lang_iso == 'es'){

   $results['error'][] = "
[/size]Name Is Required";

}
04 Июль 2017, 14:57:01
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Для чего? Если просто учитывать язык сайта, то есть функции перевода.
{l s='Text' mod='mymodule'}
04 Июль 2017, 15:09:33
Ответ #2
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
дело в том что это для проверки формы если поле не заполнено то будет показано что имя не заполнено для англ. языка

else {
   $results['error'][] = "Name Is Required";
}


а нужно еще добавить для русского языка
04 Июль 2017, 15:12:14
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
else {
   $results['error'][] = {l s='Name Is Required' mod='mymodule'};
}
В переводах добавить перевод для других языков.
04 Июль 2017, 15:17:54
Ответ #4
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
извините но не могу понять принцип, нельзя ли прямо здесь проверку сделать?


else if(***) {
   $results['error'][] = "Name Is Required";
}


так как это модуль для комментариев xipblog
05 Июль 2017, 10:09:42
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Проверку можно сделать. Я про перевод фраз писал.
05 Июль 2017, 10:23:57
Ответ #6
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Проверку можно сделать. Я про перевод фраз писал.

Можете подсказать как?
05 Июль 2017, 11:05:47
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
if (!Tools::getValue('name') В prestashop так можно проверить поле на заполнение.
05 Июль 2017, 11:16:10
Ответ #8
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
if (!Tools::getValue('name') В prestashop так можно проверить поле на заполнение.

ну смотрите, когда я на английском языке и например не заполнил почту то мне показывает ошибку на английском, а если на русском то ошибку показывает также на английском можно ли так сделать чтобы на русском с помощью такой проверки?
05 Июль 2017, 11:45:37
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
У вас что на сайте языки все перемешаны? На одной странице английский, русский?
05 Июль 2017, 12:05:55
Ответ #10
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У вас что на сайте языки все перемешаны? На одной странице английский, русский?

Нет, но скрипт отрабатывает на два языка, не знаю как организовать чтобы скрипт выполнял проверку в соответствии с языком когда я на англ. версии при ошибке выводило текст на англ. а когда я на русском то выводило на русском например:

if (lang == 'en') {
    span.innerHTML = 'error';
} else if (lang == 'ru') {
    span.innerHTML = 'ошибка';
}


в таком духе
05 Июль 2017, 12:16:00
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
как организовать чтобы скрипт выполнял проверку в соответствии с языком когда я на англ. версии при ошибке выводило текст на англ. а когда я на русском то выводило на русском например:
Вот так
$results['error'][] = {l s='Name Is Required' mod='mymodule'};Будет показывать ошибку на языке, который выбран на сайте.
05 Июль 2017, 12:31:17
Ответ #12
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
http://doc.prestashop.com/display/PS16/Module+translation
как в prestashop использовать функции перевода.
05 Июль 2017, 15:19:26
Ответ #13
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
как организовать чтобы скрипт выполнял проверку в соответствии с языком когда я на англ. версии при ошибке выводило текст на англ. а когда я на русском то выводило на русском например:
Вот так
$results['error'][] = {l s='Name Is Required' mod='mymodule'};Будет показывать ошибку на языке, который выбран на сайте.

вопрос такой можно ли это поместить в вот этот файл начиная с 23 строки?
05 Июль 2017, 18:05:08
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Поместить можно, переводить не будет. Переделывать нужно модуль.