êîä íà php äëÿ âûáîðà ÿçûêà

Модератор: Злобный

Ответить
Аватара пользователя
danutzzu
Юзер
Сообщения: 63
Зарегистрирован: Вт фев 01, 2005 21:00
Контактная информация:

êîä íà php äëÿ âûáîðà ÿçûêà

Сообщение danutzzu »

â ïðèíöèïå ïðîáëåìó ðåøèë, íî íå íðàâèòñÿ.

xî÷ó ÷òîá þçåð íå ðåãèñòðèðóÿñü ñìîã ïîìåíÿòü ÿçûê ñàéòà. ïðîñòî íóæíî ÷òîá êîãäà þçåð íàæèìàåò íà ëèíê ñ íóæíûì ÿçûêîì ïîÿâèëàñü ñòðàíèöà íà ñîîòâåòñòâóåùåì ÿçûêå. ôóíêöèè âñå íàïèñàíû, âñå åñòü, íóæíà òîëüêî ýëåãàíòíàÿ ðåàëèçàöèÿ ïðîáëåìû.

ïîêà ÷òî ÿ óñòàíàâëèâàþ êóêèñ ñ ÿçûêîì äëÿ þçåðà, íî ýôåêò äîñòèãàåòñüÿ òîëüêî ïðè âòîðîì ðåôðåøå ñòðàíèöû - òàêîâà îñîáåííîñòü ôóíêöèè set_cookie. ïîñëå òîãî êàê âûçûâàþ ôóíêöèþ ñ set_cookie, îòäàþ ìåòàòàã ðåôðåø è ñòðàíèöà ïåðåçàãðóæàåòñÿ ÷åðåç ñåêóíäó ñ íóæíû ÿçûêîì.

òàê âîò, ìîæíî ëè ñäåëàòü êàê-òî ÷òîá ïðàâèëüíûé ÿçûê áûë ïðè ïåðâîé æå çàãðóçêå ïî êëèêó íà ëèíê ñ ÿçûêîì?
Аватара пользователя
shmalex
Юзер
Сообщения: 74
Зарегистрирован: Пн дек 12, 2005 11:59
Откуда: Молдова
Контактная информация:

Сообщение shmalex »

Может JavaScript поможет? на клик определяешь кукис и делаешь рефрешь. :?
Аватара пользователя
danutzzu
Юзер
Сообщения: 63
Зарегистрирован: Вт фев 01, 2005 21:00
Контактная информация:

Сообщение danutzzu »

ìíå íóæíî íà êëèê ïîìåíÿòü çíà÷åíèå êóêèñà è ñðàçó åãî ñ÷èòàòü, äî òîãî êàê íà÷àòü îòîáðàæàòü õòìë, ïîñêîëüêó âñå ôóíêöèè èñïîëüçóþùèå çíà÷åíèå ÿçûêà áåðóò åãî èç êóêèñà

ìîæíî ïðèâÿçàòü ÿçûê ê ñåññèè, à íå ê êóêèñàì, íî òîãäà êàê ÿ ïîíÿë èç ìàíóàëà íàäî ïåðåäåâàòü SID sessii ñî òðàíèöû íà òðàíèöó
Ваганыч
Юзер
Сообщения: 176
Зарегистрирован: Пт янв 21, 2005 04:42
Откуда: Кишинев
Контактная информация:

Сообщение Ваганыч »

но тогда как я понял из мануала надо передевать SID sessii со траницы на траницу
Да, но тебя это не должно напрягать, этим занимается сервер без твоего участия, тебе надо только стартовать сессию на странице. Ну и зарегестрировать в сессии имя переменной, в которой будет храниться метка языка.
Аватара пользователя
BIOHAZARD
Новичок
Сообщения: 34
Зарегистрирован: Ср ноя 02, 2005 12:03
Откуда: Кишинев

Сообщение BIOHAZARD »

Куки работают только после повторной загрузке (странно если бы было по другому)
У тебя должен быть конфиг файл со всеми языковыми настройками .после того как
юзер нажимает линк ты снова загружаеш тот же сайт но с другим конфигом.
if($lang==en) include "config_en.php";
else include "config_ru.php";
Аватара пользователя
danutzzu
Юзер
Сообщения: 63
Зарегистрирован: Вт фев 01, 2005 21:00
Контактная информация:

Сообщение danutzzu »

Âàãàíû÷,
ïîïðîáóþ

BIOHAZARD,
â ýòîì è ñîñòîèò ïðîáëåìà, ÷òîá ïîäêëþ÷èòü ÿçûê èç êóêèñîâ íàäî äâà ðàçà çàãðóæàòü ñòðàíèöó à
if($lang==en) include "config_en.php";
else include "config_ru.php";
òû íå óêàçàë îòêóäà áåðåøü ïåðåìåííóþ $lang
Аватара пользователя
BIOHAZARD
Новичок
Сообщения: 34
Зарегистрирован: Ср ноя 02, 2005 12:03
Откуда: Кишинев

Сообщение BIOHAZARD »

danutzzu,
Ну блин вы даёте. Ты перегружаеш страницу только первый раз . lang=en; - должна быть записана на клиенте.Когда клиент заходит , ты ее получаеш
$_REQUEST['lang']; ну и дальше по сценарию.
Аватара пользователя
danutzzu
Юзер
Сообщения: 63
Зарегистрирован: Вт фев 01, 2005 21:00
Контактная информация:

Сообщение danutzzu »

BIOHAZARD,

òàê íàäî ñíà÷àëà ïðîïèñàòü ïåðåìåííóþ ó êëèåíòà, ÿ ãîâîðþ ïðî òåx êòî ïåðâûé ðàç çàõîäèò
Аватара пользователя
BIOHAZARD
Новичок
Сообщения: 34
Зарегистрирован: Ср ноя 02, 2005 12:03
Откуда: Кишинев

Сообщение BIOHAZARD »

значит так , последовательность действий.
1) человек первый раз заходит на сайт
2) ты можеш проверить откуда он пришел(IP адрес), по адресу узнаеш наш он или буржуй.
загружаеш соответственно ru. или en.
3)ты можеш не проверять адрес , а загрузить по умолчанию какойто язык.
4)человек видит что язык не в тему и жмет смену языка.
5)ты проверяеш есть ли у него твоя кука.Если нет устанавливаеш куку и одновременно нужный язык.
6)человек доволен.Ты тоже.
Аватара пользователя
danutzzu
Юзер
Сообщения: 63
Зарегистрирован: Вт фев 01, 2005 21:00
Контактная информация:

Сообщение danutzzu »

BIOHAZARD,
ÿ äåëàþ òî÷íî êàê òû ðàñïèñûâàåøü, è ó ìåíÿ âñå ïóòåì, ìåíÿ ëèøü íàïðèãàåò òî, ÷òî êîãäà ÷åëîâåê ìåíÿåò ÿçûê, òî íàäî äâà ðàçà çàãðóæàòü ñòðàíèöó - ñíà÷àëà ìåíÿåòñÿ êóêèñ, à ïîòîì âî âòîðîé ðàç óæå çàãðóæàåòñÿ íóæíûé ÿçûê
Ваганыч
Юзер
Сообщения: 176
Зарегистрирован: Пт янв 21, 2005 04:42
Откуда: Кишинев
Контактная информация:

Сообщение Ваганыч »

danutzzu,
Кидай переменную с языком в сессию и не надо 10 раз перегружаться
Аватара пользователя
danutzzu
Юзер
Сообщения: 63
Зарегистрирован: Вт фев 01, 2005 21:00
Контактная информация:

Сообщение danutzzu »

Âàãàíû÷,

äà, ñ ñåññèÿìè âñå ðàáîòàåò êàê ÿ xî÷ó
Аватара пользователя
Quber
Новичок
Сообщения: 43
Зарегистрирован: Вт май 30, 2006 13:26
Откуда: Chisinau
Контактная информация:

Сообщение Quber »

Abisnite i mne cac ata ea sota ne poneal
if($lang==en) include "config_en.php";
else include "config_ru.php";
Toka ata cod??
Esli u minea fseo sidit v index.php ili home.php???
Rodger
Новичок
Сообщения: 44
Зарегистрирован: Ср июн 21, 2006 15:22

Сообщение Rodger »

Плин.
Какой хтмл?? :) Мы тут проя языки программирования выдачи контента говорим.
Пусть будет хоме.пхп.

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

home.php:

.....
print $salutation_word;
...

или
print $vars['$lang']['salutation_word'];

Все эти переменные ты объявляешь в отдельных файлах, которые потом подключаешь директивой include или require

В первом случае (как и описано выше) ты должен иметь файлы, разделенные по языковому признаку (config_en.php, config_ru.php).
В этом файлах у тебя должна быть объявлена переменная примерно так:
$salutation_word="Всем привет!"; //(для русского)
$salutation_word="Hi all!"; //(для английского)

Во втором случае ты можешь сделать единый файл с объявлением массива текстов:
config.php:
$vars['rus']['salutation_word']="Всем привет!";
$vars['eng']['salutation_word']="Hi all!";


Примерно ясно??
Аватара пользователя
Quber
Новичок
Сообщения: 43
Зарегистрирован: Вт май 30, 2006 13:26
Откуда: Chisinau
Контактная информация:

Сообщение Quber »

A cacoi cod nada napisati v index stobi peresol c config i bral svoi eazik ??
Phoebe
Новичок
Сообщения: 25
Зарегистрирован: Чт сен 14, 2006 21:24
Откуда: Отовсюду понемногу
Контактная информация:

Сообщение Phoebe »

в конце скрипта пропиши
header('Loaction: index.рhр');

после выполнения скрипта (как бы в фоновом режиме) у юзера сразу откроется главная страница уже с установками языка , вместо index.рhр ставь любой путь
Аватара пользователя
Laur-Balaur
Старожил
Сообщения: 1024
Зарегистрирован: Пн май 12, 2003 23:22
Откуда: Из Кишинева
Контактная информация:

Сообщение Laur-Balaur »

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

имхо, лучше версии разделять
/en/index.php?
/ru/index.php?

и ничего через ссесии гнать не нужно. далее все элементарно, ватсон.
Ответить

Вернуться в «Программирование»