0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 37
1

Задача смены языка на странице

22.06.2013, 09:52. Показов 12199. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток. Помогите решить задачу пожалуйста.




Есть страница на которой все слова прописаны переменными, которые беруться из файла words
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
if (!isset($_SESSION["lang"])) {
        $title = "official website";
        /* menu */
        $umenu1 = "HOME";
        $umenu2 = "NEWS";
        $umenu3 = "PHOTO";
        $umenu4 = "VIDEO";
        $umenu5 = "CONTACT";
        $dmenu1 = "Gallery 1";
        $dmenu2 = "Gallery 2";
        $dmenu3 = "Gallery 3";
        
            }
    else {
        $title = "официальная страница";
        /* menu */
        $umenu1 = "ГЛАВНАЯ";
        $umenu2 = "НОВОСТИ";
        $umenu3 = "ФОТО";
        $umenu4 = "ВИДЕО";
        $umenu5 = "КОНТАКТЫ";
        $dmenu1 = "Gallery 1";
        $dmenu2 = "Gallery 2";
        $dmenu3 = "Gallery 3";
    }
Также на странице есть изображения ссылки, при клике на которые должен изменяться язык, но вот как это реализовать додумать не могу. По умолчанию язык должен быть английский. Зарание всем спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2013, 09:52
Ответы с готовыми решениями:

Клавиши смены языка...
Добрый вечер, форумчане...:friends: Не работают клавиши смены языка (ctrl+alt)... Как и слева, так...

Кнопка смены языка
Здравствуйте! Написал небольшую программу, и решил сделать для неё английскую локализацию....

i18next способы смены языка
Я сделал два хелпера для создания компонента с переводом слова, всё работает. import moment from...

Отловить нажатие клавиш смены языка
Вот на подобии этого, только вот не сильно понимаю как сделать, исправьте (Тоесть хочу, чтобы при...

10
Эксперт по компьютерным сетямЭксперт NIX
13016 / 7407 / 801
Регистрация: 09.09.2009
Сообщений: 28,982
22.06.2013, 10:05 2
ну если вы используете в своем коде сессии, то просто стартуйте ее каждый раз, а при нажатии кнопки записывайте в нее выбранное значение
причем логику имхо, стоит немного изменить
PHP
1
2
3
4
5
6
if ( isset($_SESSION["lang"]) && $_SESSION["lang"]=="ru")
{
   // русская текстовка..
} else {
   // английская текстовка....
}
1
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 37
22.06.2013, 10:11  [ТС] 3
Я не могу с помощью этих кнопок записать данные в сессию, подскажите. Впринципе не обязатедьно сессии, просто как вариант

кнопки вот например
HTML5
1
2
<img src="images/usa.png">
<img src="images/rus.png">
Цитата Сообщение от Dmitry Посмотреть сообщение
ну если вы используете в своем коде сессии, то просто стартуйте ее каждый раз, а при нажатии кнопки записывайте в нее выбранное значение
причем логику имхо, стоит немного изменить
PHP
1
2
3
4
5
6
if ( isset($_SESSION["lang"]) && $_SESSION["lang"]=="ru")
{
   // русская текстовка..
} else {
   // английская текстовка....
}
0
Эксперт по компьютерным сетямЭксперт NIX
13016 / 7407 / 801
Регистрация: 09.09.2009
Сообщений: 28,982
22.06.2013, 11:10 4
сделайте кнопки сабмитами хтмл-форм, пусть они передают параметр lang например post-запросом, а в своем пхп-файле проверяйте, если post-параметр lang установлен, то пишите его значение в сессию.
1
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 37
22.06.2013, 11:27  [ТС] 5
Так Вы имеете ввиду?

HTML5
1
2
3
4
<form action="language.php" method="post">
     <input name="lang_ru" type="submit" value="ru">
     <input name="lang_en" type="submit" value="en">
</form>
PHP
1
2
3
4
5
6
7
8
9
10
11
if (isset($_POST['lang_ru'] {
 
     русский
 
}
 
else {
  
     англ
 
}

И если так то будет ли значение сохраняться при переходе на другие страницы сайта, и второе как все таки сделать чтобы кнопки выглядили как картинки
0
Заблокирован
22.06.2013, 11:44 6
Я бы сделал выпадающий список, как на форуме в шапке или подвале... в скрипте, который включается во все страницы. При каждом изменении списка - прописывается в куку его значение. А при загрузке этого скрипта проверяется значение этой куки, которое будет отображаться в выпадающем списке и исходя из которого будет выбираться язык отображения контента на странице.
0
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 37
22.06.2013, 11:53  [ТС] 7
С куками не охото связываться потому, что они бывают отключены. Скрипта тоже готового нет. Я тоже думал насчет выпадающего списка, но попросили сделать картинками. Вот и думаю как прописать через сессии или post. Так что кто чем может подскажите
0
Эксперт по компьютерным сетямЭксперт NIX
13016 / 7407 / 801
Регистрация: 09.09.2009
Сообщений: 28,982
22.06.2013, 12:19 8
ну если совсем уж "чисто без ничего", то думаю, можно попробовать так
HTML5
1
2
<a href="language.php?lang=ru"><img src="https://www.cyberforum.ru/images/rus.png"></a>
<a href="language.php?lang=en"><img src="https://www.cyberforum.ru/images/usa.png"></a>
а в пхп вылавливать гет запрос, например так

PHP
1
2
3
4
5
6
7
8
9
10
11
12
session_start();
if (isset($_GET['lang']) && $_GET['lang']="ru") {
 
//     русский
$_SESSION['lang']=ru; 
}
 
elseif (isset($_GET['lang']) && $_GET['lang']="en") {
 
//     англ
$_SESSION['lang']=en;  
}
1
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 37
22.06.2013, 16:08  [ТС] 9
Что то у меня все равно не работает.

Вот что имеем:

HTML5
1
2
3
4
         // собственно ссылки
 
        <a href="lib/language.php?lang=ru"><img src="images/rus.png"></a>
        <a href="lib/language.php?lang=en"><img src="images/usa.png"></a>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
      //файл обработчик GET на который ссылаются ссылки
 
      session_start();
 
      if (isset($_GET['lang']) && $_GET['lang']="ru") {
             //     русский
             $_SESSION['lang']=ru; 
      }
 
     elseif (isset($_GET['lang']) && $_GET['lang']="en") {
            //     англ
           $_SESSION['lang']=en;  
     }
 
header( "Location: ../index.php" );
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
          //собственно файл который подключается через require_once перед каждой страницей
 
                if ($_SESSION["lang"]="ru") {
        $title = "официальная страница";
        /* меню */
        $umenu1 = "ГЛАВНАЯ";
        $umenu2 = "НОВОСТИ";
        $umenu3 = "ФОТО";
        $umenu4 = "ВИДЕО";
        $umenu5 = "КОНТАКТЫ";           
        }
 
       else  {
        $title = "official website";
        /* menu */
        $umenu1 = "HOME";
        $umenu2 = "NEWS";
        $umenu3 = "PHOTO";
        $umenu4 = "VIDEO";
        $umenu5 = "CONTACT";
    }
0
Заблокирован
22.06.2013, 18:01 10
Цитата Сообщение от Xion Посмотреть сообщение
if ($_SESSION["lang"]="ru")
Один знак равенства означает присваивание. Для проверки условия необходимо хотя бы два
1
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 37
22.06.2013, 18:17  [ТС] 11
Dmitry, Da! - спасибо все заработало.
0
22.06.2013, 18:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2013, 18:17
Помогаю со студенческими работами здесь

Не работает выпадающее меню смены языка
Вопрос в том, что по такому-же принципу главное меню сайта работает как надо,а вот с языком, чтото...

Шаблоны проектирования для смены языка программы.
Требуется создать библиотеку для смены языка пользовательского интерфейса программ. В принципе,...

Win7 Professional не стартует после смены языка интерфейса
Надо было сменить с русского на английский. В Win7 Professional это возможно только вручную по...

Не запоминаются настройки клавиш для смены языка ввода
Всем привет! Ситуация в следующем. У меня Windows 10 64-bit Ultimate. Не лицензия. ...


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

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

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