Многоязычный сайт - как правильней?

[Удален]
743

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

а. Преамбула:

1) Доменное имя должно быть одно.

2) Никаких страничек заставок (с выбором языка)

б. Мой вариант:

1) Проверяем значение cookie. Если клиент уже был и выбрал язык, то показывать ему язык его выбора.

2) Если язык не выбран, то смотрим его $_SERVER["HTTP_ACCEPT_LANGUAGE"] в порядке возрастания веса. Если какой-то язык поддерживается, ставим cookie, показываем язык.

3) Если пункт 2 не дал результата, то смотрим $_SERVER['REMOTE_HOST'], на предмет последних буковок. Если они подходят по определению под какой-то язык, то ставим cookie, показываем язык.

4) Если 1,2,3 ложь - язык по умолчанию.

в. Дополнение:

1) На сайте есть ссылки типа domain.org/ru/, domain.org/en/, domain.org/fi/ etc. Если пользователь выбирает одну из них, то попадает на страницу, которая устанавливает cookie с языком, и которая тут же кидает его на главную через header('location:http://domain.org');

г. Возможные проблемы:

1) Не все поддерживают cookie.

2) Поисковики (возможно ???) не будут находить соотв. им страницу. То есть - google.com->en, yandex.ru->ru, www.fi->fi etc

Хотелось бы узнать, сталкивался кто-нибудь ещё с этой тягомотиной, и какие варианты решения использовались?

PS: "Показываем язык" в б.2, б.3 следует читать на полном серьёзе :-)

[Удален]
#1

И вопрос в догонку:

Стоит ли б.2 и б.3 поменять местами?

То есть, чему отдавать предпочтение - юзверенастраиваевому HTTP_ACCEPT_LANGUAGE или окончанию hostname с которого юзверь пришёл?

Edit: Или даже в такой очерёдности (в порядке убывания важности):

1) Явно указаный выбор через url (скажем.. site.org/ru.html)

2) Выбор сделанный через cookie.

3) Самый тяжеловесный выбор из HTTP_ACCEPT_LANGUAGE

4) Выбор по hostname

5) Остальные HTTP_ACCEPT_LANGUAGE в порядке ниспадания.

6) Язык по умолчанию.

Только тоже есть проблема.. Неохота разводить кучу ru.html, en.html, de.html etc. (пускай даже и через mod_rewrite)

Ф-фу ведь бред какой... И зачем только люди придумали строить Вавилонскую башню?

[Удален]
#2

Фух. Получился класс для определения браузера.

Скачать эту хрень

Пример использования:


require 'detect_lang.inc.php';
$lang=new detect_language;
echo $lang->detected_language;

Даст "интеллектуально" либо ru, либо en. Другие опознаваемые языки и язык по умолчанию легко настроить в шапке класса.

Тем не менее, вопрос о том, как устроить такую структуру, чтобы и пользователи и поисковики остались довольны - остаётся открытым...

deadcat
На сайте с 04.04.2005
Offline
27
#3

Всем тоже интересно...

Вопрос в другом: Будет ли в засисимости от кукизов или звезд на небе меняться язык на каждой конкретной странице?.. Если "да", то это не есть гуд...

Наверно, надо сделать всевдо-прихожую для поисковиков в корне домена, а простых юзверей разбрасывать по папкам типа /eng/ в зависимости от их национальности...

valentin shergin research laboratory (http://shergin.com), erratum machine – самоорганизация документов, cms, cmf (http://erratum.ru)
[Удален]
#4
Как писал deadcat
Всем тоже интересно...
Вопрос в другом: Будет ли в засисимости от кукизов или звезд на небе меняться язык на каждой конкретной странице?.. Если "да", то это не есть гуд...
Наверно, надо сделать всевдо-прихожую для поисковиков в корне домена, а простых юзверей разбрасывать по папкам типа /eng/ в зависимости от их национальности...

Ну.. Почему "звёзд" :-) Всё таки ACCEPT_LANGUAGE это предпочтение пользователя..

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

А насчёт прихожей это уже будет как-бы cloaking. Есть опасение смутное, что поисковики могут быть недовольны. С учётом того, что прихожую для пользователей я показывать категорически не желаю :-)

deadcat
На сайте с 04.04.2005
Offline
27
#5

Да, именно клоакинг... Но не такой уж и страшный... Главное выставить это все в пушистом свете...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий