При переключении языка url отображается как /node/111

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

Аватар пользователя _Igor_ _Igor_ 10 марта 2011 в 9:18

Использую на сайте: translation; path (URL aliases); global redirect

Материалы создаю на русском и английском. Язык по умолчанию - English.

Если страница создана только на русском и не имеет перевода, то при просмотре страницы возникает странный эффект: Если переключится на английский язык, то в адресной строке пропадает заданный URL aliases, а появляется node/1 node/22 и т.д.

Непонятно, почему страница вообще отображается если выбран другой язык и что происходит с URL?

Комментарии

Аватар пользователя annya annya 10 марта 2011 в 17:43

Поставьте нейтральный язык, и будет Вам счастье. Друпал когда генерирует алиас для ноды проверяет принадлежит, ли нода текущему языку. Таким образом алиасы не дублируются на одном языке, и есть возможность добавить одинаковые алиасы на рызных языках.

Аватар пользователя _Igor_ _Igor_ 10 марта 2011 в 18:41

"annya" wrote:
Поставьте нейтральный язык, и будет Вам счастье. Друпал когда генерирует алиас для ноды проверяет принадлежит, ли нода текущему языку. Таким образом алиасы не дублируются на одном языке, и есть возможность добавить одинаковые алиасы на рызных языках.

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

Но, я предполагал, что русская нода вообще не будет отображаться при выборе английского языка. Частично это работает. Например, если стоит чекбокс выводить на front страницу, то на главной анонс непереведенной страницы не отображается, если выбран английский. Но если переключить язык с русского на английский непосредственно при просмотре страницы, то русская страница остается видимой и вместо алиаса стандартный адрес /node/...

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

Аватар пользователя annya annya 10 марта 2011 в 23:50

Напишите свой свитчер, по аналогии с тем который работает с локейл - это не очень сложно. Но для меня такое поведение нелогично. Пользователь переключает в ожидании того что появится английская версия статьи, а попадает на совсем другую страницу. Разве что сделать надпись типа - страница с надписью "Перевода еще нет".

Сравнения с выводом главной и ноды некорректны, так как когда Вы переключаете язык на главной то попадаете на ту же главную страницу, при переключении ноды происходит тоже самое.

Аватар пользователя _Igor_ _Igor_ 11 марта 2011 в 9:53

"annya" wrote:
Но для меня такое поведение нелогично. Пользователь переключает в ожидании того что появится английская версия статьи, а попадает на совсем другую страницу.

Да, согласен - Не логично (что-то я перемудрил похоже).

Наверное, на время пока не готов перевод, буду делать или нейтральные по языку страницы, или делать страницы-пустышки с "Извинените, перевод еще не готов"

Спасибо!

Аватар пользователя _Igor_ _Igor_ 13 марта 2011 в 0:00

"_Igor_" wrote:
Наверное, на время пока не готов перевод, буду делать или нейтральные по языку страницы, или делать страницы-пустышки с "Извинените, перевод еще не готов"

Собственно, все еще проще!

Я оставил блок Language Switch только на главной странице сайта и главных страницах разделов - куда анонсы не переведенных статей не будут выводится в принципе.

А при полном просмотре ноды Drupal сам по умолчанию не показывает языковых ссылок, если перевода не существует.