[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Переключатель языка без параметра GET
walters
Подскажите пожалуйста, как можно сделать что бы в строке менялся языковой файл

    include './language/'. IRB_LANGUAGE .'.php';  


но при том что бы не трогалась адресная строка





Спустя 2 минуты, 9 секунд (6.03.2011 - 20:19) twin написал(а):
Куки можно использовать. Устанавливать значение по POST параметру. Хотя это совсем не лучший вариант. Потому что тогда нельзя будет поделиться ссылкой на версию с нужным языком.

Спустя 14 минут, 27 секунд (6.03.2011 - 20:33) walters написал(а):
twin в еще варианты есть?

Спустя 4 минуты, 4 секунды (6.03.2011 - 20:37) twin написал(а):
Есть. Рассовать версии с языками по разным доменам. Я не понимаю, чем пара букв в адресной строке может повредить делу?

Спустя 3 минуты, 32 секунды (6.03.2011 - 20:41) walters написал(а):
вот я видел на одном сайте http://sacura.md/
тут же как то устроена.


Покажите пожалуйста на примере как можно реализовать через куки и по значению POST

Спустя 10 минут, 33 секунды (6.03.2011 - 20:51) twin написал(а):
Плохой пример. В опере не работает.

Спустя 1 минута, 25 секунд (6.03.2011 - 20:53) twin написал(а):
Делай через GET. Сам потом поймешь, как это выгодно. Хотябы даже с точки зрения СЕО

Спустя 1 минута, 48 секунд (6.03.2011 - 20:55) walters написал(а):
Я просто понять не могу как менять '. IRB_LANGUAGE .'

можете показать на примере пожалуйста?

Спустя 3 минуты, 47 секунд (6.03.2011 - 20:58) twin написал(а):
    define('IRB_LANGUAGE', $GET['lang']);
Если в контексте движка. Так же с кукой.

Спустя 2 минуты, 25 секунд (6.03.2011 - 21:01) walters написал(а):
то есть в файле variables


прописать

if($_GET['lang']) 
$_SESSION['lang'] = $_GET['lang'];
else if(!$_SESSION['lang'])
$_SESSION['lang'] = 'ru';


define('IRB_LANGUAGE', $GET['lang']);

Спустя 36 минут, 15 секунд (6.03.2011 - 21:37) twin написал(а):
Сессия зря. Лучше с куками все же этот вопрос решать. Направление верное, но куки в комплексе с GET - лучшее решение.

Спустя 2 минуты, 15 секунд (6.03.2011 - 21:39) walters написал(а):
twin Покажи пожалуйста как это релизовать

Спустя 7 минут, 34 секунды (6.03.2011 - 21:47) twin написал(а):
Если нет куки и есть гет, то ставим куку с идентификатором языка. Если есть кука и гет не равен куке, переустанавливаем куку. Если гет равен куке, значит ура. В куку пишем значение гет.
Примерно так.

Спустя 2 минуты, 24 секунды (6.03.2011 - 21:49) walters написал(а):
twin
Покажи пожалуйста PHP языком, я сегодня весь день парился... всё испробовал... даже искал, были еще посты на эту тему... ничего не работает

Спустя 3 минуты, 49 секунд (6.03.2011 - 21:53) twin написал(а):
Вот.
user posted image
Все получится, не ныть главно. Алгоритм я написал.

Спустя 1 день, 42 минуты, 58 секунд (7.03.2011 - 22:36) walters написал(а):
Кое что получилось сделать, но возникла одна проблема.
вот что я сделал.

добавил в файле variables.php строку GET параметра

    $GET = array(  
'lang' => 'ru',
'page' => 'main',
'rem' => 'read',
'id' => 0,
'news' => 'all',
'num' => 0,


и в index.php

include './language/'. $GET['lang']  .'.php';


всё работает норм но в верстке язык так меняется

<a href="/ru" ><img src="/lang/ru.gif" /></a>



ПРОБЛЕМА:
Находясь на странице
http://site.ru/ru/main/about


и нажав на смену языка... вся страница начинается с
http://site.ru/ru/

то есть всё сбрасывается.

можно ли как то сделать что бы при смене менялось например только GET lang
например с
http://site.ru/ru/main/about

на
http://site.ru/en/main/about


Спустя 51 минута, 36 секунд (7.03.2011 - 23:28) twin написал(а):
Очевидно нужно прописать в ссылку и остальные параметры
<a href="/ru/main/about" ><img src="/lang/ru.gif" /></a>

В динамике за это отвечает функция href(), которая описана здесь.

Спустя 22 минуты, 49 секунд (7.03.2011 - 23:50) walters написал(а):
ну допустим я сделаю так
<a href="<?php echo href('lang=ru','page=main','rem=about'); ?>" ><img src="/lang/ru.gif" /></a>


а если у меня другая страница, например
/ru/main/contacts  


я же не могу для каждой страницы прописать

Спустя 4 минуты, 20 секунд (7.03.2011 - 23:55) twin написал(а):
Можешь. Попробуй вот так:
<a href="<?php echo href('lang=ru','page='. $GET['page'],'rem='. $GET['rem'] ); ?>" ><img src="/lang/ru.gif" /></a>

Спустя 3 минуты, 26 секунд (7.03.2011 - 23:58) walters написал(а):
точно так работает, спасибо...
а как ты думаешь, хороший метод ? или есть по лучше?

Спустя 13 минут, 49 секунд (8.03.2011 - 00:12) silius написал(а):
walters
на том сайте который ты дал, там и стоит метод GET, просто потом идёт редирект, присмотрись к самой ссылке и увидешь

Спустя 9 часов, 7 секунд (8.03.2011 - 09:12) twin написал(а):
Цитата
а как ты думаешь, хороший метод ? или есть по лучше?

Переключать язык нужно обязательно методом GET, я уже говорил. Иначе невозможно поделиться корректной ссылкой. Так что это способ лучший.

Спустя 3 часа, 44 минуты, 42 секунды (8.03.2011 - 12:57) walters написал(а):
а можно сохранить в куках выбраный изначально язык? то есть у нас в variables.php стоит

lang = 'ru';
.

можно ли как то сохранить первый выбранный, и при повторном заходе что бы не было как первый раз 'ru' а уже выбранный язык... например 'en'

Спустя 5 минут, 35 секунд (8.03.2011 - 13:02) twin написал(а):
Да, можно конечно. Но как дополнение к GET

Спустя 1 минута, 17 секунд (8.03.2011 - 13:04) walters написал(а):
но как? в variables.php и так GET стоит....
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.