Автор Тема: Каким путём пойти?  (Прочитано 5854 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Каким путём пойти?
« : 17 Мая 2005, 14:05:57 »
Каким путём пойти?
Нужно собственно сделать версию сайта на другом языке. Есть сайт на русском со своими разделами, линками и т.п. Структуру разделов и лесть принципиально шаблон/движёк переделывать желания нет. Хочу сделать, чтоб на каждой странице была ссылка на версию языка. В урле которой таже самая страница на которой сейчас посетитель находиться, но плюс добавлен параметр (переключатель) по которому показывается версия той же страницы но на другом языке. Таким образом, посетитель нажав ссылку с параметром даёт знать движке, что всё, мне показывай этот сайт теперь на аглицком, например.
Какие вижу пути решения.
1.   Переделка существующей структуры и хранение двух и больше версий сайта. Например был путь от корня:  /раздел/страница  , стал: /язык/раздел/страница  . Соответственно в параметре, в урле добавляется /язык/
2.   Как только в урле появляется параметр, например /раздел/страница?lang=en , движка кидает посетителю куку, мол аглицкий ему тока подавать. И далее уже без параметра в урле этому посетителю всё время показывает англицкую версию.
3.   Как только в урле появляется параметр, например /раздел/страница?lang=en , движка включает сессию, точнее отслеживает по сессии, что этому посетителю нужно именно англицкую версию давать.

Путь 1 мне не нравиться по причине, что потребуется серьёзно вмешиваться в уже имеющуюся движку сайта, иметь по объёму ещё один сайт но на английском.
Путь 2 не нравиться тем, что куки мне кажутся не надёжными, могут не поставиться или не быть включенными у пользователя.
Путь 3 тоже кажется слишком заморочистым по причине использования механизма сессий и добавления в урлы всяких длиннющих сессионных параметров .

Но это конечно сугубо моё ИМНО по отношению к технологиям. А вообще, как нормально или обычно подобные вопросы решаются? Или кто как его решал? Какие мысли есть? Каким путём идти?
Всем буду благодарен за высказанную мысль. Спасибо!:)
С уважением, Дмитрий

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Каким путём пойти?
« Ответ #1 : 18 Мая 2005, 18:02:20 »
А принципиальная разница 2 и 3?...
LJ: Backslashed life (rss)

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Каким путём пойти?
« Ответ #2 : 18 Мая 2005, 21:27:34 »
Принципиальной пожалуй нет. Единственное, сессия тоже может в куках храниться, а может и через добавление ко всем урлам ID сессии. Вот меня эти длинющие числа и "убивают". добавлялась бы автоматом ко всем урлам чтото типа lang=en и было бы достаточно. Но как правильно это сделать пока не соображу. На php.spb.ru у Дмитрия встречал упоминания о том, что можно использовать константу вместо PHPSESSION. Но опять же как эту констатнту установить и использовать одинаковую для нескольких пользователей не увидел. Или может плохо смотрел. Может с кодом подскажите?
P/S Меня ещё вот сомнения гложат, может я велосипед изобретаю, а его классическая схема (общепринятая) уже давно есть, ну то есть переключения версий языка сайта.
С уважением, Дмитрий

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Каким путём пойти?
« Ответ #3 : 18 Мая 2005, 23:11:14 »
ИМХО бросай куку и не мучайся!
это в 97 процентах правильное решение :)  а на 3 % которые их отключили ложи, так как сами виноваты извращенцы :)
FAQ OFF =)

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Каким путём пойти?
« Ответ #4 : 19 Мая 2005, 03:58:22 »
Цитировать
ИМХО бросай куку и не мучайся!

Так то оно так, только кука не надёжная, ИМНО. А что, большинство так вопрос и решают, через куки?
Кажется, что через сессии вопрос нужно решать, только вот как уйти от длинных и постоянно меняющихся ID сессии на короткое и лаконичное lang=en ???
С уважением, Дмитрий

Оффлайн professorX

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Каким путём пойти?
« Ответ #5 : 19 Мая 2005, 10:02:51 »
а информация сайта в БД хранится? Или просто множество страничек?
Всегда к Вашим услугам,
professorX

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Каким путём пойти?
« Ответ #6 : 19 Мая 2005, 21:05:30 »
Цитировать
professorX:
информация сайта в БД хранится? Или просто множество страничек?

К сожалению не в БД, а куча файлов разбросано по директориям. Конечно хорошо было бы это всё упорядочить и использовать БД. Но пока нет такой возможности, точнее, не дают возможности, а вот версия на англицком уже нужна :(
А, то, что используется БД или нет, это принципиально, относительно поднятого в топике вопроса?
С уважением, Дмитрий

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Каким путём пойти?
« Ответ #7 : 21 Мая 2005, 20:59:50 »
Попробовал сессиии. Влепил в шаблон с самого начала старт сессии.

<?  // старт сессии для загрузки любой страницы
session_start();
    
// далее проверка, есть ли переключатель в урле на англицкую версию lang=en и если переключатель есть, то устанавливаем переменную для этого сессия/пользователя в единицу
if (!empty($lang) && ($lang == "en")) {
$_SESSION[\'lang-en\']=1;
}
    // далее проверка, есть ли переключатель в урле на англицкую версию lang=en и если переключатель есть, то устанавливаем переменную для этого сессия/пользователя в единицу
if (!empty($_SESSION[\'lang-en\']) && ($_SESSION[\'lang-en\'] == 1)) {
$get_english = 1; // показываю английский
}
else {
$get_english = 0; // показываю русский
}
?>

Код не в точнсти такой как привёл, но смысл такой же. Получилось не плохо. Для любого пользователя стартуется сессия и каждый посетитель по ней отслеживается и вслучае появления перключателя на англицкий - переключается.
НО!
Вот какая штука! Боты спайдеров тоже посетители ведь!? И заходят каждый день и с разными сессиями еств.. Получается в индексе вроде как куча страниц с одним и тем же содержимым. Поисковик такие стр склеит - это нормально. И вроде как успешно это все поисковики делают, НО такие сайты поисковики НЕ жалуют и в результатах поиска занижают, хорошо что из базы не выкидывают ;(
Как тут быть? Может быть кто подскажет как изобразить сессию, но не совсем таковую. Делать автозамену всех урлов не на урл с длинющим номером сессии, а с короткой подставкой lang=en

Т.е. как ко всем урлам, на выдаваемой странице, дописывать lang=en ???
С уважением, Дмитрий

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Каким путём пойти?
« Ответ #8 : 21 Мая 2005, 21:59:09 »
можеш посмотреть как на http://www.translate.ru/ сделано
по моему там юзаются куки  и частично твой первый вариант
FAQ OFF =)

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Каким путём пойти?
« Ответ #9 : 22 Мая 2005, 20:16:01 »
Спасибо за пример. Да, то, что требуется, только как это сделать?
На http://www.translate.ru кидается куча кук, в том числе и с переключателем языка и кука сессии! Пробовал затереть и отключить куки, но приставка к урл так и ползала за мной, пока я не переключился на другой язык и соответственно появилась иная приставка.

У себя пока реализовал через куку, но разобраться с автозаменой всё одно охото.
Пойду отдельную тему подниму: автозамена урлов :)
С уважением, Дмитрий

Оффлайн USE

  • Любитель
  • Ветеран
  • *****
  • Сообщений: 720
  • +0/-0
  • 2
    • Просмотр профиля
Каким путём пойти?
« Ответ #10 : 23 Мая 2005, 10:02:14 »
если ваш сайт вам не дорог можете и кукисы ставить. но тогда, что самое главное, сайт не будет индексироваться в поисковых, потому что роботы кукисов не понимают. и соответсвенно вы не сможете получать посетителей с поисковых для определенной версии сайта (той, что выводится не по дефолту).
Не ходите, дети, без «Мозиллы» дальше localhost!

Оффлайн Dim

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 80
  • +0/-0
  • 0
    • Просмотр профиля
Каким путём пойти?
« Ответ #11 : 24 Мая 2005, 06:49:04 »
Цитировать
USE: сайт не будет индексироваться в поисковых

Совершенно в точечку. Я про одну из проблемм с поисковиками уже выше говорил. Поэтому и хочу решить вопрос без кук. С автозаменной урл, то, что Ромик предложил, ещё не разобрался, почему то работает как попало.
С уважением, Дмитрий

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28