О проекте

Данный сайт попытка повысить коммуникацию самых активных разработчиков на CMS Drupal - блоггеров. Если Вы ведете свой блог о Друпале, значит Вы готовы делиться вашими знаниями, помочь другим. Не всегда ваши знания доходят до потребителя. Задача данного сайта агрегировать знания различных блогов в единую ленту и привести на Ваши блоги активных пользователей.

Активность пользователей на Вашем сайте будет дополнительным стимулом к дальнейшей работе.

Удачи во всех Ваших начинаниях!

Многоязычие по-Друпальски: случай уже проиндексированного сайта

-3 votes
+
-

Честно говоря, никогда особо не сталкивалась с многоязычием в Друпале. Но вот уже несколько дней безуспешно ломаю голову, как бы организовать переход двух уже существующих вебсайтов с одноязычия на многоязычие. 
Сайты я создала еще на 5ке, и тогда реальное многоязычие не являлась для меня целью. Потом сайты успешно перешли на 6ку, а я продолжала верить, что в 6ке действительно есть встроенная система мультиперевода контента, позволяющая быстро и просто создавать многоязычные сайты. 
Правда ли это? И да, и нет.
Да, Друпал позволяет вам сделать сайт на 5, или даже 10 языках. Есть куча инструментов для этого и многим все удавалось.
Но! Процесс перехода существующего сайта на многоязычие будет исключительно, чрезвычайно сложным. 
Дело в том, что в Друпал встроена поддержка "полного" многоязычия - когда существует 2, 3 языка и эти языки требуют различного языка администрирования, блоков, менюшек, таксономии... Выбор языка осуществляется на уровне ЦМС, в основном по запрашиваемому адресу. Запросите имясайта/ру - будет вам сайт на русском. Запросите имясайта/фр - будет сайт на французском. 
Логично, не правда ли? 
Однако приколы начинаются тогда, когда вам:

  • либо не нужна "полная" мультиязычность - в некоторы случаях она все-таки избыточна. 
  • либо вы пытаетесь перевести существовавший уже сайт на логику многоязычности друпала.

Основная проблема - алиасы, т.е. синонимы путей. Если вы были так предусмотрительны, что использовали только стандартные пути типа node/nid - все будет хорошо. А вот если вы поддались на веяния моды и решили обеспечить себе человеко-читаемые урлы - берегитесь. 
Во-первых, чтобы "полное" многоязычие заработало, нужно настроить параметры перехода с одного языка на другой. как уже говорилось, есть только два варианта: либо другой домен, либо префикс в урле. И то, и то - новые адреса для поисковиков, как следствие - угроза для вашего СЕО. Хуже всего то, что старые пути просто "теряются" - нет НИКАКОЙ возможности перенаправить старый урл статьи "без привязанного языка" на новый, с префиксом языка. 
Ни глобал редирект, ни какой-либо другой редиректный модуль - не может справиться в проблемой.
Ок, вы решили что пофиг эту "полную" многоязычность. Были бы языки, а все остальное как-нибудь приложится... Или вы решили потихоньку переводить контент, оставив проблему фронтэнда на потом. Однако, тут выясняется что pathauto - вообще не работает с многоязычными сайтами!!! Он может с ними работать только в случае, если настроены префиксы/домены. Если вы в настройках предпочли не осуществлять переход, Пазауто просто не будет создавать алиасы! А когда вы-таки начнете использовать префиксы - ваши статьи перестанут быть доступными даже по адресам  типа node/nid (из-за префиксов, которые добавляются на системном уровне). 
Получается замкнутый круг: какую бы стратегию вы ни выбрали, для действующего и уже проиндексированного поисковиками сайта, переход на многоязычие "а-ля Друпал" = самоубийство. Статьи перестанут быть доступными, ни для поисковиков, ни для пользователей - и тем, и другим будет выдаваться ошибка 404. Пока поисковики "заново" проиндексируют уже существовавшие статьи, пока они "выкинут" из индекса "дупликаты", выдающие 404, пройдет немало времени. Ваш сайт к тому моменту просто потеряет траст... 
Решения, в прицнипе, есть, но ни одно из них мне не подходит:

  • для сайтов, где основной алфавит - латиница, можно использовать модуль Search 404. Он автоматом найдет нужные страницы и даже 301 редирект создаст. Для кирилличных сайтов модуль бесполезен, т.к. он ищет по урлу, который (лично я) обычно траслитирирую. (poisk не равно Поиск)
  • Для сайтов, где немного контента, можно руками создать редиректы в .htaccess. Да долго, да муторно. Но не потеряете посетителей.

Для всех сотальных - решения нет. 
Главные темы: DrupalТеги: multilanguagei18n

Полный оригинальный материал: