ЧПУ для сайта на нескольких языках

Опубликовано 14-11-2011 в 23:50
В рубрике : Сайтострой


0

Решил я сделать сайт на нескольких языках. Информация полностью одинаковая, но только переведенная на русский, украинский, английский. В дальнейшем, возможно, добавится немецкий. Нашел свои годовалые исходники для многоязычного сайта (не вижу необходимости для сайта из 20-30 страниц использовать сторонние громоздкие CMS), допилил и уже решил наполнять, как понял, что есть проблема.

На данный момент продуман следующий механизм: на каждой странице появляются ссылки на три языка, причем именно ссылки на такую-же страницу на другом языке, не на главную страницу сайта. Если страницы на выбранном языке не существует – пишется сообщение о недоступности нужного перевода и выводится страница на русском языке.

Все работает на инклюдах (php include), без использования базы MySQL. Тексты лежат в отдельных папках, соответствующие файлы в разных языках имеют одинаковое наименование (числовое), поэтому создавать ссылку на ту же страницу на другом языке очень просто – просто заменить код текущего языка на необходимый:

http://site.ru/
http://site.ru/ua/
http://site.ru/en/

Или внутренние страницы:

http://site.ru/1.html
http://site.ru/ua/1.html
http://site.ru/en/1.html

И тут до меня дошло – ЧПУ!!! Ведь с таким подходом я не смогу сделать удобную реализацию ЧПУ для сайта! Для того, чтоб мой код работал нужно совпадение имен файлов во всех языках, но для ЧПУ это не подходит: zakazy, orders, bestellungen, zamovlennya – совершенно разные записи, которые не подойдут для других языков :(

Был вариант использовать в таком виде: 1-zakazy, 1-orders, 1-bestellungen, 1-zamovlennya, но в таком случае есть несколько недостатков:

  • Приходится вручную вставлять ссылки на каждую страницу и, например, если какой-то страницы не окажется на английском языке и придется смотреть ее на русском – все дальнейшие переходы также будут на русский язык
  • Портится внешний вид ссылки. Для сайта-визитки или небольшой витрины использовать подобную форму ссылки мне кажется неприемлемо
  • И самое главное – нет защиты от дублей, ведь можно написать 1-chto-ugodno, а скрипт отдаст все ту же 1-ю страницу, я это очень плохо для поисковых систем.

Вариант от отказа от ЧПУ в целом отмел сразу – лучше уж плохой ЧПУ, чем никакого, тем более, что Яндекс и Google выделяют ключевые слова из urlа в выдаче.

И тут я вспомнил свою же статью: о перфекционизме и решил – ну его, этот ЧПУ для каждого языка. Сделаю одинаковые ссылки – все на английском, чтоб было не обидно остальным, все-таки язык международного общения. Тут пришла мысль – а ведь если придумаю, как удобно сделать ЧПУ, придется менять ссылки на страницы, и уже проиндексированные просто пропадут из индекса.

В итоге принято решение – избавиться от удобного переключателя языков (переключатель будет переводить на главную страницу сайта на соответствующем языке), но ЧПУ у одинаковых страниц для разных языков будут разными. Если придумаю, как реализовать удобный переход между языками на текущей странице, можно будет без ущерба для индексированности сайта проделать такой «финт ушами».

UPD: Тем более, такой метод используется, например на сайте asus.com, хотя именно это мне и не нравится. Но, тем не менее, никто не мешает после создания сайта придумать какую-то временную таблицу соответствий ссылок на разных языках.

Смотрите также:

  • Нет похожих записей

Написать комментарий

Я не робот.