Локализация параметра для мультиязычного сайта

  • 11 Ответов
  • 683 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

Мультиязычный сайт. На карточке товара на всех языковых вариантах не переведена одна надпись Qty: - количество.
В шаблоне это прописано так:
Код
<div class="prod_qty_input">Qty:
Все остальные параметры переведены и находятся (например для русского языка) в components/com_jshopping/lang/ru-RU.php
Например для рейтинга:
Код
define('_JSHOP_TOP_RATING','Топ рейтинг');
Как и где прописать локализацию параметра "prod_qty_input", чтобы для русского языка было вместо Qty: - Кол-во:?

*

SeBun

  • *******
  • 3050
  • 185
  • @SeBun48
Ну вы написали, что все параметры находятся в файле components/com_jshopping/lang/ru-RU.php, туда и добавьте строку
Код
define('prod_qty_input','Количество');
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

Ну вы написали, что все параметры находятся в файле components/com_jshopping/lang/ru-RU.php, туда и добавьте строку
Код
define('prod_qty_input','Количество');
Попробовал. Страница перестала грузиться.
Я еще обратил внимание, что там все переменные записаны в формате
Код
define('_JSHOP_SORT_POPULAR', 'Популярность');
То есть, везде присутствует вначале '_JSHOP

*

SeBun

  • *******
  • 3050
  • 185
  • @SeBun48
Скачал версию 3.3, посмотрел. В указанном файле локализации нет строки
Код
define('_JSHOP_PROD_QTY_INPUT', 'Количество');

Однако prod_qty_input используется в css\default.css и templates\default\product\product_default.php. В нем в строке 308 написано:
Код
<div class="prod_qty_input">
То есть создается контейнер с классом prod_qty_input, класс определяется в файле стилей в строках 502, 715, 1177.

Я думал, что у вас не переведена константа, однако просмотр кода показал, что prod_qty_input вообще к локализации отношения не имеет, это название класса, отвечающего за оформление элемента.

В шаблоне это прописано так:
Код
<div class="prod_qty_input">Qty:
Все остальные параметры переведены и находятся (например для русского языка) в components/com_jshopping/lang/ru-RU.php

Если так написано в шаблоне, тогда вам самим придется добавлять перевод, заменив эту и другие строки так:
Код
<div class="prod_qty_input">_JSHOP_PROD_QTY_INPUT:

А в файл components/com_jshopping/lang/ru-RU.php добавить определение константы
Код
define('_JSHOP_PROD_QTY_INPUT', 'Количество');
« Последнее редактирование: 18.05.2015, 02:43:46 от sebun »
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

Taatshi

  • *****
  • 4779
  • 452
Так не сработает.

Сначала нужно определить какая именно константа не переведена или откуда вообще это чудо берется. Ищем по файлам с текстом "Qty".
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3  /  ОТЗЫВЫ 
Минимальная ставка за платные услуги 1000 рэ Связь: telegram - Taatshi, почта - Taatshi на яндексе.

*

SeBun

  • *******
  • 3050
  • 185
  • @SeBun48
Так не сработает.

Сначала нужно определить какая именно константа не переведена или откуда вообще это чудо берется. Ищем по файлам с текстом "Qty".
Так он же сам написал, код имеет вид
Код
<div class="prod_qty_input">Qty:
а значит перевод вообще отсутствует. Я и предложил ему вместо Qty добавить константу _JSHOP_PROD_QTY_INPUT, а в языковый файл - ее определение.

P.S. Должен извиниться перед автором топика - сразу не обратил внимания на эту деталь и дал некорректный совет.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

Спасибо, sebun. Первая часть сработала. Мне теперь стала понятна немного логика этого процесса.
Теперь во всех языках вместо Qty есть _JSHOP_PROD_QTY_INPUT:
Добавил в components/com_jshopping/lang/ru-RU.php
Код
define('_JSHOP_PROD_QTY_INPUT', 'Количество');
, но на фронтенде ничего не поменялось.
Пробовал также в админе через  LangOverride менять. Он не подставляет вместо _JSHOP_PROD_QTY_INPUT  слово Количество.
Возможно что-то делаю не так.

*

SeBun

  • *******
  • 3050
  • 185
  • @SeBun48
А отображается что? _JSHOP_PROD_QTY_INPUT  или Qty?

Вам нужно определение константы _JSHOP_PROD_QTY_INPUT  засунуть во все языковые файлы с соответствующим переводом, а в файлах, где встречается слово Qty, заменить его на эту константу.

P.S. Попробуйте совет от Taatshi - посмотрите, где в файлах встречается это слово, замените его на созданную в языковом файле константу.
« Последнее редактирование: 18.05.2015, 15:44:41 от sebun »
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

IzrA

  • ****
  • 326
  • 27
Цитировать
<div class="prod_qty_input">_JSHOP_PROD_QTY_INPUT:
А разве константу нужно не через echo выводить?

Код
<div class="prod_qty_input"><?php echo _JSHOP_PROD_QTY_INPUT?>:
Спасибо для меня слишком много. Стакан вина Плюс в репутацию - в самый раз.

Велосипедист — бедствие для экономики. Он не покупает автомобиля и не берет под него кредит. Не покупает бензин. Не пользуется услугами ремонтных мастерских. Не страхует «гражданскую ответственность». Не пользуется платными стоянками. Не страдает от ожирения. Да он еще и здоров, черт возьми! Здоровые люди не нужны для экономики. Они не покупают лекарства. Они не ходят к частным врачам. Они не увеличивают ВВП.

*

SeBun

  • *******
  • 3050
  • 185
  • @SeBun48
А разве константу нужно не через echo выводить?
Я думал это и так должно быть понятно... Но на всякий случай спросил, какой текст у него выводится

А отображается что? _JSHOP_PROD_QTY_INPUT  или Qty?
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

IzrA

  • ****
  • 326
  • 27
Я думал это и так должно быть понятно... Но на всякий случай спросил, какой текст у него выводится
Я тоже ждал, что ответит на ваш вопрос ТС, но не дождавшись решил уточнить.
Спасибо для меня слишком много. Стакан вина Плюс в репутацию - в самый раз.

Велосипедист — бедствие для экономики. Он не покупает автомобиля и не берет под него кредит. Не покупает бензин. Не пользуется услугами ремонтных мастерских. Не страхует «гражданскую ответственность». Не пользуется платными стоянками. Не страдает от ожирения. Да он еще и здоров, черт возьми! Здоровые люди не нужны для экономики. Они не покупают лекарства. Они не ходят к частным врачам. Они не увеличивают ВВП.

Друзья, всем спасибо!
Действительно надо было делать
Код
<div class="prod_qty_input"><?php echo _JSHOP_PROD_QTY_INPUT?>:
Теперь я это знаю и очень вам благодарен.
Все работает!