powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Переключение языков
12 сообщений из 12, страница 1 из 1
Переключение языков
    #37776605
Терри
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть файл dictionary. php с таким содержимым:

Код: php
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.
29.
30.
31.
32.
<?php
session_start();

switch ($lng) {
    case "eng":
$n_1="English";
$n_2="Russian";
$n_3="News";
$n_4="Service";
$n_5="Home";
$n_6="Contact";
$n_7="Name";
$n_8="Comment";
$n_9="Address";
$n_10="Questions";
    break;
    
    case "rus": 
$n_1="Английский";
$n_2="Русский";
$n_3="Новости";
$n_4="Сервис";
$n_5="Главная";
$n_6="Контакт";
$n_7="Имя";
$n_8="Комментарий";
$n_9="Адрес";
$n_10="Вопросы";
    break;
}

?>




В header.php переключаю языки.
Код: php
1.
2.
3.
    
<a href="index.php?lang=eng">ENG</a> 
<a href="index.php?lang=rus" >RUS</a>




В index.php

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
session_start();
$lang=isset($_GET["lang"])?$_GET["lang"]:"";
$dlng = "rus";
if(!$lang) {
    $lng = $dlng;
} else {
    $lng=$lang;
}  
require_once "dictionary.php";




В header.php и остальных файлах произвожу проверку $lang.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
session_start();
$lang=isset($_GET["lang"])?$_GET["lang"]:"";
$dlng = "rus";
if(!$lang) {
    $lng = $dlng;
} else {
    $lng=$lang;
}  




Переключение в шапке нормально происходит, но когда хочу вызвать какую-то страницу, то то что указано по умолчанию, на том языке и видно, то есть значение для $lang фактически теряется и пустым становится.

Как мне заставить $lang оставить то значение, которое было указано при нажатии на один из пунктов в header.php?

Надеюсь, сумела объяснить ситуацию.
...
Рейтинг: 0 / 0
Переключение языков
    #37776607
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А с чего бы ему быть не пустым, если в вы в гет не передаете значение?
...
Рейтинг: 0 / 0
Переключение языков
    #37776608
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и session_start зачем в каждом скрипте?
...
Рейтинг: 0 / 0
Переключение языков
    #37776609
Терри
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Я думала, что уже всё передано. А что еще надо добавить?

Забыла в начале темы указать [PHP].
...
Рейтинг: 0 / 0
Переключение языков
    #37776611
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо вы каждый раз указываете lang=eng в запросе, либо сохраняете в сессии значение.

dictionary. php
Что это за бред? Сделайте 2 файла с массивами

Например английский
Код: php
1.
2.
3.
$lang['n_1']="English";
$lang['n_2']="Russian";
....



И русский таким же образом и делайте include нужного файла в зависимости от того, какой нужен язык.
...
Рейтинг: 0 / 0
Переключение языков
    #37776621
Терри
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Создала 2 отдельных файлов rus.php и eng.php .

В header.php записала следующее.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?php
$lang=isset($_GET["lang"])?$_GET["lang"]:"";

switch ($lang) {

case "rus":
    include "rus.php";
    break;    
case "eng":
    include "eng.php";
break;
Default: 
    include "eng.php";
}
?>



Осталось только та же проблема, не видит $lang . Как надо сохранить в сессии? Я еще не очень лажу с сессиями, запуталась.
...
Рейтинг: 0 / 0
Переключение языков
    #37776631
Терри
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В header.php заменила на:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$lang=isset($_GET["lang"])?$_GET["lang"]:"";

$dlng = "rus";

switch ($lang) {

case "rus":
    include "rus.php";
    break;    
case "eng":
    include "eng.php";
break;
Default: 
    $lang=$dlng;
    include "eng.php";
}

$_SESSION["s_lang"]=$lang; 




В остальных добавила такую строчку:

Код: php
1.
    $lang=isset($_SESSION["s_lang"])?$_SESSION["s_lang"]:"";  



Что делаю не так?
...
Рейтинг: 0 / 0
Переключение языков
    #37776633
Терри
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<a href="index.php?hide=catalog">CATALOG</a>

Например, при нажатии на эту ссылку, в вызванном окне слова на нужный язык не поменялись.
...
Рейтинг: 0 / 0
Переключение языков
    #37776636
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странная у вас логика
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$lang=isset($_SESSION["lang"])? $_SESSION["lang"]:"eng";

switch ($lang) {

case "rus":
    include "rus.php";
    break;    
default:
    include "eng.php";
}



Меняем язык так:
Код: php
1.
if(isset($_GET['lang'])) $_SESSION['lang'] = $_GET['lang'];
...
Рейтинг: 0 / 0
Переключение языков
    #37776646
Терри
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Получилось, от неожиданности даже растерялась немного ... :)

Я пока не очень во всем разбираюсь и немного путаюсь, со временем привыкну. Сейчас внимательно посмотрю на код, что сделано.

Огромное спасибо за помощь.
...
Рейтинг: 0 / 0
Переключение языков
    #37776684
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приходите еще
...
Рейтинг: 0 / 0
Переключение языков
    #37776692
Терри
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Зайду обязательно, у меня еще будут "сложные" для меня вопросы ........... :)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Переключение языков
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]