Всем привет!
Столкнулся вот с какой проблемой:
Делаю мультиязычный сайт (2 языка-русс и англ). Сайт об аренде квартир. Каждая квартира отображается на карте. Также есть вьюха где показано расположение всех квартир на одной карте. Но после того как стал добавлять перевод на вьюхе стали дублироваться квартиры - т.е. выводятся маркеры как для квартир с описанием на англ. так и на русском
Как я решил эту проблему:
P.S> В фильтрации вьюхи есть 2 св-ва:
1)i18n: Content negotiation - с этим вообще не понятно как работать Может кто сталкивался?
2)Node translation: Language - с этим по проще.
Делаем пару страниц во вьюхе с такими параметрами:
- Выставляем Node translation: Language = Russian, Path = http://localhost/site/russianUrl
- Выставляем Node translation: Language = English, Path = http://localhost/site/englishUrl
Делаем 2 меню: одно английское, второе русское и цепляем на пункты меню урлы сделанные с помощью вьюхи.
Всё, при переключении языка будет видна соответствующая вьюха
НО в таком варианте есть минус - находясь на вьюхе при переключении языка вы все равно останетесь на старой вьюхе пока не нажмете пункт меню, соответствующий нужной вьюхе.
У кого какие есть мысли по решению этой проблемы?
Комментарии
Использовал это
.Тупо включил, пока не вникая.
При переключении языка, меняется и контент нужного языка в представлении.
-------------------
Настройки. Словарь и термины одни для обоих языков. Перевод терминов на уровне первода интерфейса.
Меню создано модулем taxonomy menu.
Views работает через аргументы.
i18n_views_translations в поставке 18n
Подскажите пожалуйста а как сделать так чтобы при переключении языка происходило переключение не на тот же контент с изменением языка а на главную страницу?
Вместо блока переключения языков, создать свой. И там вручную прописать ссылку на главную. Решение в лоб.
Спасибо! Стыдно блин что сам не додумался
У меня та же проблема - при настройке вьюса с выводом и учетом языка по умолчанию - поискал на Drupal.org - нашел 2 нерешенных таска - и сам оставил сообщение
Filter 1 variant:
Node translation
- WHERE (node.status <> 0) AND (node.type in ('XXX')) AND (node.promote <> 0) AND (node.language in ('***CURRENT_LANGUAGE***', '***DEFAULT_LANGUAGE***', '***NO_LANGUAGE***'))
Filter 2 variant:
i18n: Content negotiation
- WHERE (node.status <> 0) AND (node.type in ('XXX')) AND (node.promote <> 0) AND (node.language ='en' OR node.language ='ru' OR node.language ='' OR node.language IS NULL)
При языке по умолчанию русский выводит 2 нода на русском и на английском если я нахожусь на языке - англ.
Когда я на русском там все ок (ну естественно - в запросе то только вариант ru или пусто) а Вы говорите тупо включил (i18n: Content negotiation) и работай - не работает оно
---
решение - переписал mixed в function i18n_db_rewrite_where:
return "$alias.language ='$current' OR (($alias.language ='$default' OR $alias.language ='' OR $alias.language IS NULL)".
" AND NOT EXISTS (SELECT nid FROM ii WHERE ii.language='".i18n_get_lang()."' and ii.tnid=$alias.tnid))" ;
---