Мультиязычность(i18n )- Location - Gmap - Дублирование записей или как фильтровать Views в зависимости от языка

Главные вкладки

Аватар пользователя Serega_od Serega_od 20 сентября 2009 в 12:15

Всем привет!
Столкнулся вот с какой проблемой:
Делаю мультиязычный сайт (2 языка-русс и англ). Сайт об аренде квартир. Каждая квартира отображается на карте. Также есть вьюха где показано расположение всех квартир на одной карте. Но после того как стал добавлять перевод на вьюхе стали дублироваться квартиры - т.е. выводятся маркеры как для квартир с описанием на англ. так и на русском Sad

Как я решил эту проблему:
P.S> В фильтрации вьюхи есть 2 св-ва:
1)i18n: Content negotiation - с этим вообще не понятно как работать Sad Может кто сталкивался?

2)Node translation: Language - с этим по проще.
Делаем пару страниц во вьюхе с такими параметрами:
- Выставляем Node translation: Language = Russian, Path = http://localhost/site/russianUrl
- Выставляем Node translation: Language = English, Path = http://localhost/site/englishUrl
Делаем 2 меню: одно английское, второе русское и цепляем на пункты меню урлы сделанные с помощью вьюхи.
Всё, при переключении языка будет видна соответствующая вьюха Smile

НО в таком варианте есть минус - находясь на вьюхе при переключении языка вы все равно останетесь на старой вьюхе пока не нажмете пункт меню, соответствующий нужной вьюхе.

У кого какие есть мысли по решению этой проблемы?

Комментарии

Аватар пользователя F10 F10 20 сентября 2009 в 13:37

Использовал это

"serega_od" wrote:
1)i18n: Content negotiation - с этим вообще не понятно как работать
.
Тупо включил, пока не вникая.
При переключении языка, меняется и контент нужного языка в представлении.
-------------------
Настройки. Словарь и термины одни для обоих языков. Перевод терминов на уровне первода интерфейса.
Меню создано модулем taxonomy menu.
Views работает через аргументы.

Аватар пользователя Serega_od Serega_od 25 сентября 2009 в 13:33

Подскажите пожалуйста а как сделать так чтобы при переключении языка происходило переключение не на тот же контент с изменением языка а на главную страницу?

Аватар пользователя F10 F10 25 сентября 2009 в 15:02

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

Аватар пользователя Serega_od Serega_od 26 сентября 2009 в 17:40

"F10" wrote:
Вместо блока переключения языков, создать свой. И там вручную прописать ссылку на главную. Решение в лоб.

Спасибо! Стыдно блин что сам не додумался Smile

Аватар пользователя wowik73@drupal.org wowik73@drupal.org 29 сентября 2009 в 13:37

У меня та же проблема - при настройке вьюса с выводом и учетом языка по умолчанию - поискал на 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))" ;
---