Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> многоязычные сайты 
:(
    Опции темы
Igor_CH
Дата 27.6.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Пожалуйста объясните, как работают многоязычные сайты?

Например есть страница 1.php, на которой выбор языка:
Код

<a href=2.php?yaz=1>Русский</a><br>
<a href=2.php?yaz=2>Английский</a><br>
<a href=2.php?yaz=3>Немецкий</a><br>


Т.е. $yaz соответствует языку.

На следующей странице 2.php:
Код

<?php
if ($yaz=2) {
?>
Английский
<?php
} elseif ($yaz=3) {
?>
Немецкий
<?php
} else {
?>
Русский
<?php
}
?>

Т.е. если $yaz = 1 Русский язык, $yaz = 2 Английски, …

Но почему то так не работает, почему?

PM MAIL   Вверх
skalex
Дата 27.6.2005, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



register_globals off ?
Код
<?php
if ($_GET['yaz'] == 2) {
?>
Английский
<?php
} elseif ($_GET['yaz'] == 3) {
?>
Немецкий
<?php
} else {
?>
Русский
<?php
}?>


И если писать if ($a = 1), то это означает, что Вы присваиваете переменной $a значение 1, а не проверяете, равно ли оно 1. Надо писать if ($a == 1).

Это сообщение отредактировал(а) Mace - 27.6.2005, 16:58
PM   Вверх
Igor_CH
Дата 27.6.2005, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



спасибо

а как делать остальные страницы, что бы переменная не проподала, например на следующей странице 3.php:
делаем страницу 2.php вот такой:
Код

<?php
if ($_GET['yaz'] == 2) {
?>
<a href=3.php>Английский</a>
<?php
} elseif ($_GET['yaz'] == 3) {
?>
<a href=3.php>Немецкий</a>
<?php
} else {
?>
<a href=3.php>Русский</a>
<?php
}?>


а на третьей странице 3.php (и т.д. хоть 30 страниц) опять:
Код

<?php
if ($_GET['yaz'] == 2) {
?>
Английский
<?php
} elseif ($_GET['yaz'] == 3) {
?>
Немецкий
<?php
} else {
?>
Русский
<?php
}?>


PM MAIL   Вверх
Opik
Дата 27.6.2005, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Igor_CH
ставь куку.
http://www.php.net/setcookie
далее проверяй
1) Есть ли yaz в строке адреса, если да - ставим новую куку.
2) Если нету, то берем значение языка из куки.
PM MAIL Skype   Вверх
Igor_CH
Дата 27.6.2005, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



А если куки блокируются?
PM MAIL   Вверх
Opik
Дата 27.6.2005, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



То в сессию.
PM MAIL Skype   Вверх
Igor_CH
Дата 27.6.2005, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



можно по подробнее как сделать оба варианта?

1 вариант:
в начале каждого файла должны быть строки:
Код

function writeCookie() {
   setcookie("yaz", $_GET['yaz'], time() + 2*60*60);
   return true;
}
// Очистка кук
function cleanCookie() {
   setcookie("$yaz", "");
}
if ($_GET['yaz']) writeCookie();

ob_start();

Потом идет содержание файла
Код

<?php
ob_end_clean()
?>


Но почему то не выходит. smile

Как реализовать второрй вариант?
PM MAIL   Вверх
Opik
Дата 27.6.2005, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



зачем тебе буферизация?
и подумай, обоснованно ли писать функцию, которая вызывается только 1 раз?
Цитата
Как реализовать второрй вариант?

не вижу оного.
Цитата
Но почему то не выходит

далее берешь значение из куки и с ним работаешь - вместо ГЕТ параметра.
PM MAIL Skype   Вверх
kelt
Дата 28.6.2005, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 21.6.2005

Репутация: нет
Всего: 0



Я могу предложить такой вариант, проверенный, рабоает через сессии.
На страницах ставлю ссвлки для выбора языка, потом передаю через сессии название языка, а в папке с языками, языковые файлы. В начале каждой странице ставлю проверку на язык и потом подключаю файл с соответсвующим я зыком. У меня получается что макет один и тот же, а значения переменных изменяется в зависимости от языка!
--------------------
Timeo danaos et dona ferentes 
PM ICQ   Вверх
Igor_CH
Дата 28.6.2005, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



Kelt очень интересно!

Подскажи как этот правильно сделать?
PM MAIL   Вверх
kelt
Дата 28.6.2005, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 21.6.2005

Репутация: нет
Всего: 0



В общем я делаю, так создаю несколько языковых файлов в них пишу переменные и присвиаваю им в зависимости от языка. В название файла я ставлю название языка. А на страницах я просто использую переменные, и когда идет выбор языка я вставляю в начало страницы include-дом языковой файл, и у меня выходит на странице ставиться выбранный язык.
--------------------
Timeo danaos et dona ferentes 
PM ICQ   Вверх
Igor_CH
Дата 28.6.2005, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 20.3.2005

Репутация: нет
Всего: нет



kelt можешь подсказать кодом?

Что у меня не так:
файл lib.php
Код

<?php
function writeCookie() {
   setcookie("yaz", $_GET['yaz']);
   return true;
}
// Очистка кук
function cleanCookie() {
   setcookie("$yaz", "");
}
?>


файл 0.php
Код

<?php include('lib.php'); ?>

<a href=1.php?yaz=1>Русский</a><br>
<a href=1.php?yaz=2>Английский</a><br>
<a href=1.php?yaz=3>Немецкий</a><br>


файл 1.php, 2.php, ...
Код

<?php
include('lib.php');

if ($_GET['yaz']) writeCookie();
ob_start();

if ($_GET['yaz'] == 2) {
?>
<a href=1.php>Английский</a>
<?php
} elseif ($_GET['yaz'] == 3) {
?>
<a href=1.php>Немецкий</a>
<?php
} else {
?>
<a href=1.php>Русский</a>
<?php
}

ob_end_clean()
?>


Это сообщение отредактировал(а) Igor_CH - 28.6.2005, 09:25
PM MAIL   Вверх
kelt
Дата 28.6.2005, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 21.6.2005

Репутация: нет
Всего: 0



А что конкретно не работает?
--------------------
Timeo danaos et dona ferentes 
PM ICQ   Вверх
Opik
Дата 28.6.2005, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



kelt
а ты код посмотри, и подумай. что код делает, и что хочет программист, совершенно 2 разные вещи smile
PM MAIL Skype   Вверх
kelt
Дата 29.6.2005, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 21.6.2005

Репутация: нет
Всего: 0



Да именно. А любые файлы, это те которые отображаются пользователям!
--------------------
Timeo danaos et dona ferentes 
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.3102 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.