Форум русской поддержки Joomla!® CMS
08.12.2016, 06:08:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

И вновь мультиязычность

 (Прочитано 387 раз)
0 Пользователей и 1 Гость смотрят эту тему.
assaru
Завсегдатай
*****

Репутация: +88/-1
Offline Offline

Сообщений: 784



« : 16.05.2016, 17:09:44 »

Приветствую, уважаемые!
Проблема такая.
Сайт на двух языках. Весь контент J отображается нормально на обоих языках и на русском (дефолт) и на английском. Все пункты меню связаны.
В JS та же ситуация с пунктами меню, НО! При переключении языка меняется все кроме содержимого магазина Переключаются все доп. модули, крошки и меню магазина.
Описание категорий и продуктов есть на обоих языках. Языки включены и опубликованы.
Если изменить дефолтный язык на сайте, то все отображается на измененном дефолтном и так же не переключается на второй язык.
Т.е. весьь контент магазина отображается ТОЛЬКО на дефолтном языке сайта в не зависимости от выбранного.
Обновления все последние и у J и у JS.

Куда копать?
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7774



« Ответ #1 : 16.05.2016, 20:46:49 »

мультиязычность сделана стандартными средствами Joomla? или какой то доп. компонент?
Записан
assaru
Завсегдатай
*****

Репутация: +88/-1
Offline Offline

Сообщений: 784



« Ответ #2 : 17.05.2016, 07:33:30 »

dmitry_stas
Только стандартные средства. Все языковые константы в JS переводятся, только контент нет.
Записан
Taatshi
Support Team
*****

Репутация: +430/-3
Offline Offline

Пол: Женский
Сообщений: 4718

Мама, я снова верстал во сне...


« Ответ #3 : 17.05.2016, 08:43:53 »

Переключите на стандартный шаблон и посмотрите что из этого выйдет
Записан
assaru
Завсегдатай
*****

Репутация: +88/-1
Offline Offline

Сообщений: 784



« Ответ #4 : 17.05.2016, 08:45:25 »

Taatshi
Переключал и шаблоны J и шаблоны JS. Результат один и тот же.
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7774



« Ответ #5 : 17.05.2016, 10:15:05 »

\components\com_jshopping\tables\product.php
Цитировать
    function getDescription() {
        $lang = JSFactory::getLang();
        $name = $lang->get('name');
        var_dump($name);
в карточке товара что покажет?
Записан
assaru
Завсегдатай
*****

Репутация: +88/-1
Offline Offline

Сообщений: 784



« Ответ #6 : 17.05.2016, 10:27:09 »

dmitry_stas
string(10) "name_ru-RU"
в обоих случаях
Показать текстовый блок
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7774



« Ответ #7 : 17.05.2016, 10:38:41 »

хм... а тут \components\com_jshopping\lib\factory.php public static function getLang
Цитировать
            $ml->setLang($langtag);
            var_dump($langtag);
            JDispatcher::getInstance()->trigger('onAfterGetLangJSFactory', array(&$ml, &$langtag));
            var_dump($langtag);

Записан
assaru
Завсегдатай
*****

Репутация: +88/-1
Offline Offline

Сообщений: 784



« Ответ #8 : 17.05.2016, 10:42:36 »

dmitry_stas
string(5) "ru-RU" string(5) "ru-RU"
так же в обоих случаях
« Последнее редактирование: 17.05.2016, 10:46:03 от assaru » Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7774



« Ответ #9 : 17.05.2016, 11:21:50 »

очень интересно... а в \components\com_jshopping\tables\config.php
Цитировать
    function loadLang(){
        $this->cur_lang = JFactory::getLanguage()->getTag();
        var_dump($this->cur_lang);
    }
?
Записан
assaru
Завсегдатай
*****

Репутация: +88/-1
Offline Offline

Сообщений: 784



« Ответ #10 : 17.05.2016, 11:24:47 »

dmitry_stas
string(5) "ru-RU" в обоих случаях
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7774



« Ответ #11 : 17.05.2016, 12:06:13 »

не понимаю как такое может быть. и при этом вы говорите что у вас языковые переменные подгружаются верно? т.е. тут \components\com_jshopping\lib\factory.php
Цитировать
    public static function loadLanguageFile($langtag = ""){
        $lang = JFactory::getLanguage();
        if ($langtag==""){
            $langtag = $lang->getTag();
        }
        var_dump($langtag);
покажет разные языки?
Записан
assaru
Завсегдатай
*****

Репутация: +88/-1
Offline Offline

Сообщений: 784



« Ответ #12 : 17.05.2016, 12:09:38 »

dmitry_stas
string(5) "en-GB" и string(5) "ru-RU" соответственно.
Вот скрин русской страницы http://clip2net.com/s/3y7O7Dw
Вот английской http://clip2net.com/s/3y7OsZl
PS: Скрины из ответа#6
« Последнее редактирование: 17.05.2016, 12:36:56 от assaru » Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7774



« Ответ #13 : 17.05.2016, 16:56:51 »

посмотрел, такое поведение невозможно без стороннего вмешательства. либо плагины, либо было изменение ядра. у вас один и тот же код
Код:
JFactory::getLanguage()->getTag()
дает разные результаты. причем 2 вызова этого кода происходят практически друг за другом, но что то меняет поведение второго. первый вызов дает правильный ответ, второй - нет. и обратите внимание, что это метод Joomla, а не JoomShopping. что то вмешивается в процесс. какие плагины дополнительно стоят?
Записан
assaru
Завсегдатай
*****

Репутация: +88/-1
Offline Offline

Сообщений: 784



« Ответ #14 : 17.05.2016, 17:21:45 »

Плагины
Показать текстовый блок
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7774



« Ответ #15 : 17.05.2016, 18:18:44 »

ничего похожего. ну к сожалению по имеющимся данным больше ничего не подскажу. нужно смотреть, ставить брекпоинты, делать логирование, смотреть что где происходит и в какой момент происходит подмена.
Записан
Linfuby
Живу я здесь
******

Репутация: +165/-0
Offline Offline

Пол: Мужской
Сообщений: 1202


Всё просто...


« Ответ #16 : 17.05.2016, 18:47:31 »

Ну если посмотреть как формируется страница товара, то видно, что сначала идущие атрибуты строятся корректно (на англ.), а вот описание уже идет на русском.
Смотрим какие события для плагинов существуют между этими двумя вызовами:
1. onAfterSetAttributeActive
2. onBuildSelectAttribute
Попробуйте найти упоминание этих функций в папке plugins, может чего и найдется
Записан
assaru
Завсегдатай
*****

Репутация: +88/-1
Offline Offline

Сообщений: 784



« Ответ #17 : 17.05.2016, 19:09:41 »

Linfuby
Скачал всю папку плагинов на компьютер, прошерстил Notepad++ "0" совпадений...
Записан
Linfuby
Живу я здесь
******

Репутация: +165/-0
Offline Offline

Пол: Мужской
Сообщений: 1202


Всё просто...


« Ответ #18 : 18.05.2016, 17:58:01 »

Ну без "пациента" можно только посоветовать еще поискать в плагинах функцию "onAfterGetLangJSFactory"
И по всему сайту искать где используется "->setLang("
Должно встречаться только 2 раза:
1. administrator\components\com_jshopping\jshopping.php
2. components\com_jshopping\lib\factory.php
Записан
Grikhno
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 38



« Ответ #19 : 08.07.2016, 00:39:47 »

Добрый день.
Возможно вопрос не совсем в тему, но где то рядом.
Подскажите как можно вывести значение характеристики на английском языке, учитывая что сайт сам на русском.
Хочу использовать значение для создания ссылки.
Записан
Linfuby
Живу я здесь
******

Репутация: +165/-0
Offline Offline

Пол: Мужской
Сообщений: 1202


Всё просто...


« Ответ #20 : 08.07.2016, 23:23:41 »

Добрый день.
Возможно вопрос не совсем в тему, но где то рядом.
Подскажите как можно вывести значение характеристики на английском языке, учитывая что сайт сам на русском.
Хочу использовать значение для создания ссылки.
Не все так просто... Скажите зачем именно это нужно? Например я русскоязычный покупатель открываю эту ссылку и вижу англ. названия характеристик. Как то неправильно... Может правильнее сделать мультиязычный сайт?
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7774



« Ответ #21 : 09.07.2016, 00:17:46 »

Хочу использовать значение для создания ссылки.
я так понимаю будет храниться ссылка там
Записан
Grikhno
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 38



« Ответ #22 : 09.07.2016, 12:08:19 »

Английское значение нужно только для формирования ссылок.
То есть допустим мне надо создать ссылку на страницу Нордика в категории Серии.
Соответственно мне нужна ссылка /series/nordika.
Как то принудительно можно вывести значение на английском из базы данных в шаблон?
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet