41 / 38 / 18
Регистрация: 13.04.2018
Сообщений: 458
1

Мультиязычность на сайте

12.11.2018, 20:47. Показов 950. Ответов 6
Метки нет (Все метки)

Добрый вечер.Реализовал перевод на сайте.Только вот не знаю,как сделать,чтобы выбранный язык сохранялся на всех страницах сайта.То есть пользователь один раз выбирает на какой язык ему перевести,это на главной странице, и потом на всех страницах переводится текст на этот язык.Только вот в чем проблема,в сессиях,я в них запутался.Проблема следующая, пользователь заходит первый раз на сайт, изначально язык выбирается русский,потом есть две кнопки,английский и русский,которые он может нажать.Значения записываются в сессию.
Вот он зашел,изначально русский,значит в сессию записался русский,затем он решил перейти на другую страничку сайта,там уже извлекается значение этой сессии,и берется нужный перевод.Затем он вдруг решил перевести на английский,опять зашел на главную страницу выбрал английский,в сессию записался английский,на главной странице я даже специально выводил значение это сессии,но на другой странице значение сессии не изменилось,как был русский,так и остался,вот код.
Тоже самое будет если выбрать первый язык английский, то есть в сессии застревает почему-то только первое значение сессии,а потом она не хочет переопределяться Подскажите пожалуйста.
index.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
<?php
require_once 'translate/config.php';
require_once 'translate/core/ExceptionError_class.php';
require_once 'translate/core/ParseIni_class.php';
require_once 'translate/core/Translate_class.php';
session_start();
if(!empty($_GET['language'])) {
    if(($_GET['language'] == Config::LANG_RU) || ($_GET['language'] == Config::LANG_EN)) {
    $language = $_GET['language'];
    $language = trim($language);
    $language = htmlspecialchars($language);
    $language = strip_tags($language);
 
    $translate = (new translate($language))->getData();
    $_SESSION['language'] = $language;
    }else {
        $translate = (new translate(Config::LANG_RU))->getData();
        $_SESSION['language'] = Config::LANG_RU;
    }
 
}else {
    $translate = (new translate(Config::LANG_RU))->getData();
    $_SESSION['language'] = Config::LANG_RU;
}
echo $_SESSION['language'];
about.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php  
session_start();
require_once 'translate/config.php';
require_once 'translate/core/ExceptionError_class.php';
require_once 'translate/core/ParseIni_class.php';
require_once 'translate/core/Translate_class.php';
if(isset($_SESSION['language'])) {
  if (($_SESSION['language'] == Config::LANG_RU) || ($_SESSION['language'] == Config::LANG_EN)) {
    $translate = (new translate($_SESSION['language']))->getData();
 
  }else $translate = (new translate(Config::LANG_RU))->getData();
}else $translate = (new translate(Config::LANG_RU))->getData();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2018, 20:47
Ответы с готовыми решениями:

мультиязычность на сайте
Всем привет ! Разрабатываю сайт типа галерея картинок. Изначально сайт задумывался буржуйским -...

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

Мультиязычность в Joomla. Не отображается флаг языка на сайте
Сделан сайт на двух языках: русском и английском. Проблем никаких нет: все работает, флажки на...

Мультиязычность
По задумке весь контент изначально на странице; а менюшки, навигация, кнопки и др. мелочь в...

6
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
13.11.2018, 10:28 2
Нужно делать unset сессии

Добавлено через 48 секунд
Session start в самый верх, выше require
0
41 / 38 / 18
Регистрация: 13.04.2018
Сообщений: 458
13.11.2018, 16:15  [ТС] 3
а где тогда unset делать?
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
13.11.2018, 16:31 4
когда меняйте ссесию, например с ру на ин - перед этим unset ру ссесии
0
41 / 38 / 18
Регистрация: 13.04.2018
Сообщений: 458
13.11.2018, 16:34  [ТС] 5
это я понял,где именно,в каком месте моего кода надо делать unset,потому что я уже пробовал unset,но ничего не помогает.
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
13.11.2018, 19:28 6
Я не знаю где в вашем коде, я думайте понимаю что вы там сделали? , давайте так для начала выведите мультиязычность на все странницы, в отдельном блоке, а то судя по вашим словам, пользователь должен переходить на главную, чтобы поменять язык, ни есть good
2.срабатывает ли 8 строчка при втором выборе?
3.что показывает 25 строка, когда меняйте языки? Прям сначала распишите
4.как вы делали unset и где?

Добавлено через 3 минуты
И еще, можно сделать такую фишку, как убрать вообщем русский язык, в конфиге, сделать сменить язык чисто на английский, когда выбирают английский, заменить, сменить язык на русский, когда нажимают на него, не доставать значения ru, п просто уничтожить en и все встанет на русский типо reset , ну это на ваше усмотрение) просто тогда не понабится куча else

Добавлено через 4 минуты
9,10,11 строчка, это что ваще? Нафиг это нужно легче в select засунуть выбор языков, чем через get посылать если вам нужна get ссылка то не обязательно вставлять туда прямой параметр а потом чистить его)) сделайте обманку какую нибудь
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,205
14.11.2018, 05:34 7
в куке его надо держать, сессия живёт обычно пару часов
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.11.2018, 05:34
Помогаю со студенческими работами здесь

Мультиязычность
Кто с джумлой в кентах, покажите где я не прав. Вот мой файл templateDetails.xml &lt;?xml...

Мультиязычность
У меня проблема такая! Есть код, но я его не могу никак оптимизировать(код не мною создан) мне...

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

Мультиязычность
Добрый день дорогие форумчане, прошу помогите мне сделать мультиязычность на сайте, никак не могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru