Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: совет. многоязычный сайт  (Прочитано 25630 раз)
0 Пользователей и 6 Гостей смотрят эту тему.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« : 18-08-2010 07:20 » 

Многоязычный громко сказано, но три языка есть (ru, ua, en)

Основной контент - русский.
На другие языки - перевод делается по мере сил и возможностей.
Существует три языковых меню сайта - с этим достаточно просто.

есть меню выбора языка.
Сейчас это сделано следующим образом.

Если есть языковые версии страницы, то отображается меню выбора языков.
Пользователь может выбрать нужный ему язык именно этой статьи (страницы).

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

Так как перевод делается с русского (как наполненного контентом) на другие, то соответственно и ссылки также "переводятся", хотя реальной переводной страницы нет. И тогда в языковой версии отображается только русская версия.

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

Хотелось бы услышать ваше мнение о своем видении решения.

чтобы не быть голословным и не быть неправильно понятым вот ссылочка  http://alliance-s.com.ua/

зы дизайн не мой - верстка моя.


Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Золотая Лань
Молодой специалист

ru
Offline Offline
Пол: Женский

« Ответ #1 : 18-08-2010 07:43 » 

Так вот как раз и есть оптимальное решение — как сейчас на этом сайте реализовано.
Минус, конечно, есть: переходя на непереведённую страничку человек получает неожиданный язык. В адресе /ua/partneri.html, а язык русский Улыбаюсь
Но может даже не ставить язык в урл, чтобы не сбивать посетителя с толку?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 18-08-2010 08:00 » 

Поддерживаю - такой формат указания языка считаю тоже наиболее оптимальным. В принципе, можно язык указывать не в PATH, а в QUERY_STRING.

Автоматический выбор языка считаю приемлемым есть язык не указан.

server/<LANG>/path - конкретный язык
server/path - автоматический выбор на основе Accept-Language

При отсутствии перевода для URL с выбранным языком можно поступить по разному:
1. Показ дефолтового языка на запрошенном URL.
2. Редирект на URL с дефолтовым языком.

Думаю, что первое правильнее для навигации, а второе удобнее для поисковиков из-за одинаковых страниц на сайте в первом варианте. Думаю можно бороться с повторами выдавая META/robots=noindex.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 18-08-2010 08:03 » 

2. Редирект на URL с дефолтовым языком.

Так и происходит...

зы. написал и полез смотреть, а так ли? по крайней мере так задумывлось.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 18-08-2010 08:06 » 

META/robots=noindex.

т.е. в случае отсутствия языковой версии формировать мета тег - о... спсб

зы. надо шаблон переделать и "плагин"написать Улыбаюсь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 18-08-2010 09:13 » 

Думаю, стоит уточнить: META/robots=noindex,follow
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 18-08-2010 09:17 » 

уже ...
я ж способный... идею могу развить осмысленно Улыбаюсь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 18-08-2010 09:23 » 

Ага - круто Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Lunik
Постоялец

ru
Offline Offline

« Ответ #8 : 03-09-2010 07:19 » 

Вопрос такой, как лучше делать многоязычный сайт, на субдоменах или в папка /eng/ukr/ и т.д.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 03-09-2010 07:42 » 

В случае подкаталогов вида site.com/ru/ site.com/ua/ все ссылки, которые шли на домен, будут работать и тут.
Авторитет сайта останется тот же.
А если сделаешь ru.site.com, ua.site.com, авторитет поддоменам может и не передаться, либо быть занижен и на каждый поддомен придется заново набирать ссылки.
На английском почитать : http://www.gpwa.org/forum/advanced-geotargeting-subdomains-subdirectories-180352.html
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Lunik
Постоялец

ru
Offline Offline

« Ответ #10 : 03-09-2010 07:59 » 

Ни когда не делал многоязычные сайты, шас надо сделать, примерный принцип реализации можно описать?
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 03-09-2010 08:05 » 

не понял...
примерный принцип чего?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 03-09-2010 08:33 » new

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

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 06-09-2010 18:47 » 

Sla, а можно как-нибудь по проще реализовать многоязычность, что бы не заморачиваться со всеми этими подкаталогами и субдоменами?

Так как WEB-ка предназначена для управления небольшой системой и не предназначена для обозрения в Интернете. По этому хочется что нибудь попроще. Склоняюсь к реализации языка в профиле зарегистрированного пользователя, там он выдирает удобный для него язык. После чего из базы всегда запрашивается тот язык который он выбрал и на основе этого формируются страницы, как-то так...
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 06-09-2010 18:50 » 

Serg79, "каталог" легко преобразуется в "параметр", если использовать собственный разбор запрошенного URL. Компоненты URL - путь и параметры - не имеют жесткого значения и в серверном ПО их можно интерпретировать как угодно. Можно даже сделать это в mod_rewrite Апача, преобразовав путь в параметры.

Профиля у анонимуса (включая роботов) нет и в такой системе он будет видеть только дефолтовый язык.
« Последнее редактирование: 06-09-2010 18:54 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 06-09-2010 18:58 » 

RXL, я так понимаю передовая типа этого 'http://test.loc/en/index.php' мы можем получить что то подобное '$_SERVER['LANG']=en' и при этом будет вызван 'http//test.loc/index.php'?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 06-09-2010 19:07 » 

Тут несколько путей решения, в зависимости от доступного функционала HTTP-сервера.
1. Апач. Установка обработчика директории. Разбор URL делать средствами скрипта.
2. Апач. mod_rewite. преобразование /en/index.php в /index.php?lang=en.
3. Простой способ: /index.php/en/. Вызывается скрипт /index.php, в котором делается разбор URL.
4. Возможно я что-то еще забыл.

По человекопонятному URL (ЧПУ) не мало статей.
http://ru.wikipedia.org/wiki/%D0%A7%D0%9F%D0%A3_%28%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%29
« Последнее редактирование: 06-09-2010 19:10 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 06-09-2010 19:09 » 

Блин, это тогда придется и ссылки все соответствующим образом формировать. Не хочется ссылки трогать. Если в базе язык хранить, то тогда ссылки не придется перелопачивать...
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #18 : 06-09-2010 19:10 » 

А что ты будешь делать с анонимусами?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 06-09-2010 19:12 » 

А что ты будешь делать с анонимусами?
Ставить им дефолтный язык, и настройку дефолтного языка кинуть в WEB-админку... Примерно так же как и в нашем Redmine сделано.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 06-09-2010 19:12 » 

Ссылки в HTML можно налету исправить. Например, в PHP использовать ob_start() вначале и установить обработчик завершения, который профильтрует полученный буфер и перестроит ссылки.
Другой способ - не создавать ссылки вручную, а использовать какой-либо класс или функцию, которая сформирует набор параметров по заданным тобой правилам. Тогда перестроить иначе будет много проще, чем перелопачивать весь код.

Если ты не добиваешься индексации всех вариантов языков, то это годится.
« Последнее редактирование: 06-09-2010 19:15 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 06-09-2010 19:15 » 

Если ты не добиваешься индексации всех вариантов языков, то это годится.
Не, индексация не нужна. Хочу выбор языка к TrafStat прикрутить.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 06-09-2010 19:16 » 

А... Ну тогда конечно - профиль и нечего голову ломать Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #23 : 07-09-2010 06:17 » 

Sla, а можно как-нибудь по проще реализовать многоязычность, что бы не заморачиваться со всеми этими подкаталогами и субдоменами?
Конечно можно.
В твоем случае, в профиле пользователя - не плохой вариант, если подразумевается, что все пользователи могут (должны) быть авторизованы.

У меня была потрясающая ситуация, я когда ее увидел, то меня подкосило.
Изначально админка (на моя), я даже не знаю что это была за CMS, подразумевала многоязычность.
Но там смешалось все в одну кучу... И не было возможности добраться до кода и реализовать желаемое.
например на украинскую "главную" вела golovna.html, на английский -  main.html
на русскую, вообще было три ссылки.
Кроме того, для того чтоб хоть как-то разрулить с большим количеством страниц, то нерусские страницы получали префикс ua_,
en_, eng_. Было пару страниц, которые не имели такого префикса.
Моя реализация дает возможность отображения несуществующей страницы, с запретом индексации.
Несуществующая страница может появится в случае перевода, и есть ссылки на еще не переведенные страницы.

Считаю, что выбор сделан правильно.

зы по некоторым данным CMS была на Joomla ASP - в сети нашел информацию о дефейснутом сайте.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines