Xpoint
   [напомнить пароль]

Многоязычный сайт

Метки: [без меток]
2011-01-19 18:48:40 [обр] Virtex[досье]

Разрабатываю мультиязычный модуль для сайта. На сайте есть страницы.

В базе сущность "Страница" имеет следующую структуру:
page (страница)
id - идентификатор страницы
sort - сортировка страницы

Сущность, которая хранит перевод страниц выглядит следующим образом:
page_translate (перевод страницы)
id_page - идентификатор переводимой страницы
id_lang - идентификатор языка перевода (ru, eng и пр.)
title - заголовок страницы
text - текст страницы

Данная структура позволяет для одной страницы хранить несколько переводов. Язык пользователя записывается в cookie, а если они не установлены, то забирается из HTTP_ACCEPT_LANGUAGE.
Т.о. получается такой url - http://site.ru/index.html?page=1, и при переключении языков он будет оставаться таким же.

Вопрос. Как такая структура будет индексироваться поисковиками? Будут ли забираться страницы на всех языках или же только в зависимости от того, какой язык стоит на индексирующей машине?

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

спустя 14 часов [обр] Евгений Седов aka KPbIC(0/176)[досье]
Как пользователь устанавливает язык?
спустя 1 час [обр] Алексей Севрюков(9/1280)[досье]

Virtex[досье] такой подход ИМХО, не совсем правильный. Я хочу дать ссылку на немецкую версию другому пользователю (который находится в России и браузер у него русский). В итоге он открывает совсем не то, что я хотел ему передать. Использовать один и тот же URL для отдачи разного контента - плохо.

Я бы сделал идентификатор языка в URL с системой автоопределения (которая у вас уже есть). Как вариант совместить и при первом входе давать пользователю возможность выбора языка работы с сайтом (пример http://www.asus.com/).

Так же Вы забываете что куки могут быть просто отключены и НМВЗ, поисковики не обязаны забирать куки с сайтов.

спустя 1 час 47 минут [обр] Virtex[досье]

Евгений Седов aka KPbIC[досье] На сайте есть возможность выбора языка. Т.е. при первом заходе на сайт язык забирается из HTTP_ACCEPT_LANGUAGE. Далее проверяется, есть ли в базе такой язык. Если есть, то контент отдаётся на данном языке. Если же нету, то контент отдаётся на языке по умолчанию, т.е. английском.

Если пользователь хочет перейти на другой язык, то он в шапке сайта выбирает нужный, и выбранный язык записывается в cookie для дальнейшей идентификации языка. Когда cookie отключены, язык забирается из HTTP_ACCEPT_LANGUAGE.

Алексей Севрюков[досье] А что если отдавать язык по умолчанию в зависимости от зоны, а не от HTTP_ACCEPT_LANGUAGE? Например, если .com, то показывать контент на английском, если .ru, то на русском, китайский - .cn и т.д. У компании просто есть много доменов.

P.S. Что такое НМВЗ? :)

спустя 3 часа 19 минут [обр] LookeR(19/1069)[досье]
Virtex[досье]
НМВЗ = На Мой ВЗгляд
спустя 21 минуту [обр] Алексей Севрюков(9/1280)[досье]

Virtex[досье] вариантов как отдавать разные языки море, предложенный вами вариант хранить язык в куках - самый плохой из них. Как вы будете реализовывать конкретно - роли не играет, главное чтобы у каждого документа был свой уникальный адрес. Хотите через URL (/ru/page/, /path/to/page/ru/, /page/?lang=ru), хотите через поддомен (ru.site.org/page/) или через домен.

Как Вы будет определять язык по умолчанию никак не связано с реализацией выдачи страницы на нужном языке, более того, это совершенно не важно. Главное что после определения Вам никто не мешает сделать редирект на нужную вам версию. Фактически это два разных инструмента должны быть.

спустя 23 минуты [обр] Virtex[досье]
Алексей Севрюков[досье] Спасибо за советы!
спустя 11 минут [обр] Евгений Седов aka KPbIC(0/176)[досье]
Еще можно выдавать на страницу все языки и скрывать ненужные клиентским скриптом.
спустя 1 час 1 минуту [обр] Алексей Севрюков(9/1280)[досье]
Евгений Седов aka KPbIC[досье] ИМХО, поисковику это вряд ли понравится.
спустя 8 минут [обр] Marat Tanalin(0/78)[досье]
LookeR[досье]
НМВЗ = На Мой ВЗгляд
Есть и другое толкование, в связи с чем сия оригинальная аббревиатура имеет обыкновение «слегка» удивлять.
спустя 3 минуты [обр] Marat Tanalin(0/78)[досье]
сообщение промодерировано

Евгений Седов aka KPbIC[досье]

Еще можно выдавать на страницу все языки и скрывать ненужные клиентским скриптом.

Странный совет. Все языки — это варианты целиком страницы на всех поддерживаемых языках?

спустя 5 минут [обр] Евгений Седов aka KPbIC(0/176)[досье]
Marat Tanalin[досье] Да. Что странного?
спустя 10 минут [обр] Marat Tanalin(0/78)[досье]
Евгений Седов aka KPbIC[досье]
Ухудшенная индексация поисковиками + бессмысленно увеличенный объём страницы. Такие задачи целесообразнее решать на стороне сервере.
спустя 7 минут [обр] LookeR(19/1069)[досье]
Marat Tanalin[досье]
Ну, вы и источник нашли.
спустя 1 минуту [обр] Евгений Седов aka KPbIC(0/176)[досье]
Marat Tanalin[досье] Я не знаю о каких поисковиках вы говорите. В поисковике, который я писал пару лет назад, подобная конструкция улучшила бы индексацию. На сколько увеличится объем страницы, тоже можно только гадать. Может у автора там всего одна подпись из трех слов к мегабайтной фотографии.
спустя 10 минут [обр] Marat Tanalin(0/78)[досье]

LookeR[досье]
Порекомендуете другие источники? ;-)

Евгений Седов aka KPbIC[досье]
Едва ли кому-нибудь придёт в голову назвать поисковиком что-то, отличное от того, на что обычно направлена поисковая оптимизация (SEO).

спустя 20 минут [обр] Евгений Седов aka KPbIC(0/176)[досье]
Marat Tanalin[досье] Хорошо, возьмем гугл и яндекс. Не хотите ли вы сказать, что вы в курсе текущего устройства их внутреннего кода (в частности, логики индексирования), а также вам известно что закоммитят программисты завтра?
спустя 25 минут [обр] Marat Tanalin(0/78)[досье]
Евгений Седов aka KPbIC[досье]
Общие принципы логичны и хорошо известны. Один из них: релевантность информации тем выше, чем больше её доля в общем объёме содержимого страницы, и тем ниже, чем сильнее она разбавлена информационным шумом, которым и являются друг по отношению к другу версии контента на разных языках.
спустя 36 минут [обр] Евгений Седов aka KPbIC(0/176)[досье]
Marat Tanalin[досье] Я думаю, вы ошибаетесь на счет реализации в поисковых движках хорошо известных, логичных принципов. Там все намного сложнее. Но если исходить из вашего стремления угодить поисковикам, то гораздо больше сомнений вызывает метод Алексея Севрюкова[досье] с разнесением контента по поддоменам.
спустя 30 минут [обр] Алексей Севрюков(9/1280)[досье]
Евгений Седов aka KPbIC[досье] Я вам спасибо за страницу на которой будет сразу загружен контент на 20 языка спасибо не скажу когда буду сидеть по 3G с пэда.
Чем Вас не устраивает вариант с поддоменами?
спустя 8 минут [обр] Евгений Седов aka KPbIC(0/176)[досье]
Насколько мне известно, поддомены индексируются самостоятельно.
спустя 8 минут [обр] Алексей Севрюков(9/1280)[досье]
Евгений Седов aka KPbIC[досье] а у меня совсем другая информация. Даже если и так, то какая разница? Пользователь ищет на своем языке и находит поддомен на своем языке. Где криминал? А вообще поисковые системы давно научились правильно склеивать/расклеивать и сайты, и поддомены, и определять аффилиаты.
спустя 15 минут [обр] Евгений Седов aka KPbIC(0/176)[досье]
В примере выше вы русский язык вынесли в поддомен. У меня есть подозрение, что это может понизить позиции существующего сайта в поисковиках.
спустя 21 минуту [обр] Marat Tanalin(0/78)[досье]
сообщение промодерировано

Евгений Седов aka KPbIC[досье]

Я думаю, вы ошибаетесь на счет реализации в поисковых движках хорошо известных, логичных принципов. Там все намного сложнее.

На всякий случай: я не предполагаю, что описанный принцип реализован только потому, что он логичен, а уверен, что он реализован, и просто отмечаю, что он при этом ещё и логичен. Никто не сомневается, что там всё сложнее, и это никак не противоречит сказанному. ;-)

спустя 2 часа 6 минут [обр] Филипп Ткачев(0/112)[досье]
IMHO, каждому языку свой домен 2-го уровня.
спустя 11 часов [обр] Евгений Седов aka KPbIC(0/176)[досье]
Marat Tanalin[досье] На чем основана эта ваша уверенность? Я вот думаю по-другому: то, что вы назвали шумом, можно было бы отиндексировать по переводу. Или сравнить с текстом на русском, понять что это перевод, и на этом основании увеличить коэффициент релевантности. Вариантов масса, нам остается только гадать.
спустя 1 час 45 минут [обр] Евгений Седов aka KPbIC(0/176)[досье]
М Перенесено из форума "Интернет::Теория"
спустя 44 минуты [обр] LookeR(19/1069)[досье]

Евгений Седов aka KPbIC[досье]
А скрытые блоки разве берутся в расчёт поисковиками?
Кроме того, неоднократно слышал, что в расчёт берется не весь объём страницы, а N-ное число знаков кода от начала...
Количественный объём страниц сайта тоже вроде имеет значение...

По сему я за вариант /ru/page/, сам именно таким и пользуюсь.

спустя 23 минуты [обр] Алексей Севрюков(9/1280)[досье]
LookeR[досье] берутся (зависит от реализации, обычно это скрытые блоки, "включаемые" скриптом), но это серый метод, могут и наказать.
Да, объем страницы/кода, и много других параметров учитываются и влияют на поисковый вес страницы (я про Яндекс, Гугл может работать по другому).
Поэтому крайне желательно выносить в отдельные файлы стили, скрипты, графику, верстать в полную силу, максимально используя контекст, уменьшая при этом соотношения размеров разметки к контенту.
спустя 21 минуту [обр] LookeR(19/1069)[досье]
Алексей Севрюков[досье]
В объёмах "треть от объёма страницы"?
спустя 6 часов [обр] Алексей Севрюков(9/1280)[досье]

LookeR[досье] эти цифры невозможно вычислить, это скорее ощущение, на базе большого количества проектов. В каком то алгоритме, например, Яндекс полюбил короткие текста и "портянки" большей частью попадали. В последнем разницу обнаружить уже почти невозможно, но по опыту мы всегда рекомендуем делать именно так (чистый, короткий код, короткий и предельно ясный потенциальному посетителю текст).

Повторюсь, это эмпирическая информация.

спустя 50 минут [обр] Marat Tanalin(0/78)[досье]

Евгений Седов aka KPbIC[досье]
На чем основана эта ваша уверенность?
Уверенность основана на достоверных знаниях.

то, что вы назвали шумом, можно было бы отиндексировать по переводу
Звучит, по-моему, не вполне реалистично.

Или сравнить с текстом на русском, понять что это перевод, и на этом основании увеличить коэффициент релевантности.
С чего бы несколько переводов одного и того же текста, расположенных на одной и той же странице, повысило релеватность этой страницы по какому-либо запросу?

Powered by POEM™ Engine Copyright © 2002-2005