Здравствуйте!
Подскажите, пожалуйста, как справиться с такой задачей:
1) Хочется создать сайт, который бы позволял пользователю изменять язык интерфейса сайта (т.е. все служебные строки, которые, как я понимаю, выводятся через функцию перевода t()), но при этом не оказывал бы влияния на URL открываемых документов. Язык можно запоминать в куках для нерегленых юзеров и/или настройках юзера для регленых.
update on 0807201545: если для всех установленных языков убрать префикс пути в настройках языка и после этого выставить настройку перевода на "Префикс пути с определением языка.", то, кажется, частично проблема решается - интерфейс сайта будет переведён на тот язык, который выставлен в профиле юзера. Однако при этом меню выбора языка, которое можно вывести в виде отдельного блока, всё равно не работает (почему - догадываюсь, из-за всё тех же настроек "Префикс пути с определением языка" - префикс я же удалил, а браузер настроен на предпочтение русского языка, поэтому нажимая "английский" и переходя по всё той же одинаковой ссылке, друпал читает предпочтение браузера и возвращает мне всё равно русский интерфейс).
Как сделать так, чтобы принудительно указывать язык сайта в этом блоке выбора языка и чтобы эта настройка сохранялась для незарегленых и зарегленых юзеров?
2) Ещё было бы идеально, если бы была возможность задавать для документа, доступного по одному конкретному URL, соответствующий языку перевод (и линейка ссылок на доступ к переводам на других языка). И совсем чудесно, если бы эта фича позволяла юзерам публиковать свои документы на нескольких языках. Т.е. повторюсь - документ в смысле семантики, доступный по URL, - один единственный, но имеющий используемые в зависимости от языка пользователя переводы.
upd 0807201630: тэкс. Худо-бедно, но это делается штатной фичей "content-translation", она позволяет создавать и связывать с оригинальным документом новые документы с переводом контента. Но с ней проблемы:
2.1) у переведённого документа будет новый URL (фактически, это новый документ)... - это терпимо, но пока сойдёт.
2.2) если первым был создан, например, русскоязычный вариант страницы (Page), которая была вставлена куда-то в меню, после чего был добавлен перевод на английский, то даже при работе под "англоязычным" пользователем, по клику на меню открывается всё равно русскоязычная страница. Вот это уже проблема.
Как сделать так, чтобы переводился title ссылки на документ (который и так есть в переводе) и всегда открывалась именно переведённая версия документа?
Спасибо!
ps: по интернационализации и переводу нашёл через drupal.org скринкаст http://www.masteringdrupal.com/screencast/new-i18n-l10n-features-drupal-6 - рекомендую, кому нужно понять эту тему.
Комментарии
Я так понимаю, модуль Internationalization ты уже поставил
1) и 2) Ты во всех ссылках используй именно указание пути с префиксом языка. Для материалов используй PathAuto - может задать URL документа по названию и/или другим параметрам. Пример: http://slawia.org/ru/person/nikolay-yakovlevich-danilevskiy-1822-1885
У каждого материала можно посмотреть его переводы на другие языки.
На заглавную можешь вывести хтмл-ку с выбором языка, значки покрупнее поставь.
Во вьюсах пропиши фильтр по языку пользователя, чтобы показывались только те, которые соответствуют его выбору.
В настройках многоязычности поставь "Префикс пути с определением языка." - так ты задашь язык в каждой ссылке, соответственно будет меняться интерфейс сайта и содержимое блоков.
2.1) Так и будет, на самом деле каждый перевод - отдельный материал. В этом даже есть некоторые плюсы - не дашь англочитающему ссылку на испанскую часть сайта.
2.2) Меню пока что приходится редактирую вручную, проставляя огромное кол-во пунктов, у каждого из которых свой пункт назначения и свой язык, то есть каждый пункт продублирован для каждого языка