Мультиязычность таксономии [РЕШЕНО]

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

Аватар пользователя msidiagnos01 msidiagnos01 6 августа 2010 в 21:02

Добрый вечер. Подскажите пожалуйста:
Имеется:
Мультиязычный словарь с треминами вида:
Родитель
-Дите 1
-Дите 2
Parent
-Children 1
-Children 2

Терминам Дите 1 и CHildren 1 прибит материал, у которого есть русская версия и английская (русская вресия соответственно прибита к Дите 1, английская к Children 1)

Когда я захожу и смотрю ноды термина Дите 1, то я вполне логично вижу тот русскоязычный материал, который я ему прибил. Но как только я меняю язык сайта, все меняется (меню, кнопки, блоки, термины словаря), а материал остается в прежнем языке. И для того, чтобы узреть английский материал термина Дите 1/Children 1 приходится жать в меню уже на термин Children 1.

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

Комментарии

Аватар пользователя annya@drupal.org annya@drupal.org 9 августа 2010 в 21:44

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

Аватар пользователя msidiagnos01 msidiagnos01 9 августа 2010 в 23:17

Локализацию не использую.
Смотрите:
Создан словарь "Страны" с режимом перевода "Термины согласно языку. Различные термины позволены для каждого языка и они могут быть переведены."
В словаре создаются термины "Россия", для него указывается язык "Русский". Отдельно создается термин "Russia", для него указывается язык "Английский".
затем переводы терминов связываются с пункте меню "Переводы" (для терминов). При помощи taxonomy menu формируется меню терминов, для префикса ru свои пункты, для eng свои. Дальше начинается самое неприятное. Если термину "Россия" прибить одну ноду, то на русском языке ссылка выглядит как http://excample.ru/ru/rossia/blablabla, при переключении на английский http://excample.ru/ru/russia/blablabla (стоит модуль pathauto, он соответственно русскоязычные названия терминов транслетирует, а англоязычные оставляет как есть).
Теперь я создам еще один термин "Каталог", у которого родитель "Россия" (все это проделаю и на русском и на английском. Я прибиваю термину несколько материалов (у материалов есть и русский вариант и английский и соответствующие переводы прибиты своим терминам) я получаю строку http://excample.ru/ru/rossia/katalog с выводом всех нод этого термина, а при попытке переключится на английский язык я вижу ссылку http://excample.ru/eng/rossia/katalog вместо логичного http://excample.ru/eng/russia/catalog
Вот и вся история. Если необходимы уточнения, спрашивайте.

Аватар пользователя msidiagnos01 msidiagnos01 10 августа 2010 в 0:12

Да. Сейчас сижу с локализацией. Не совсем понимаю,как выводить пункт меню. Я создаю один синоним "Африка", иду в переводы, прибиваю ему перевод "Africa". В меню создается пункт "Африка", ставлю показывать во всех языках, и в русском и английском показывается "Африка". Ставлю только в английском, на русских страницах соответственно нет ничего. Ставлю только на русском, пункта нет на английских страницах.

Аватар пользователя msidiagnos01 msidiagnos01 10 августа 2010 в 0:38

Ну как вариант английские пункты меню создал вручную, взяв пути из русских пунктов меню и изменив префикс на "en", ну и для русских пунктов меню выставил язык "Русский", для английских соответственно "Английский". Хотя до этого сделал тестовый словарь, тестовый термин, все работало, в соответствии с локализацией менялся и пункт меню.

Аватар пользователя msidiagnos01 msidiagnos01 10 августа 2010 в 3:58

В конечно итоге остановился на варианте локализации, т.е. термин создается только на одном языке, дальше локализуется. Если используется модуль taxonomy menu локализуется и строка меню. Это избавляет администратора от многотонного меню на двух языках, в случае, если делать словарь с опцией "Термины согласно языку". Меню формируется только на одном языке. С другой стороны, например взять термин "Папа", локализовать до "Father", синоним термина будет только один с опцией "Все языки", т.к. фактически термин действительно только один. И не получится сделать адрес www.excample.ru/ru/papa и www.excample.ru/eng/father Будет что-то одно, например www.excample.ru/ru(eng)/father.
Итог:
1) Плюс с меню, отсутствие многтонности.
2) Минус с синонимами, если используется pathauto, который транслетирует названия материалов для синонима. Если создаются термины с русскими названиями, придется менять руками каждый синоним до приемлимого вида, с учетом, что англ.яз. междвународный. Вряд ли иностранный посетитель адекватно воспримет ссылку вида www.excample.ru/eng/papa
3) Необходимо локализовывать как название термина, так и название пункта меню. С другой стороны есть возможность импорта, что сведет данный минус на нет.