Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Смена языка


Автор: VoodariuS 8.11.2011, 18:40
Здравствуйте. Скажу сразу, в PHP я нуб так что просьба не ругаться и помочь в решении моего вопроса.
а вопрос такой - хотелось бы реализовать простую смену языка на сайте из нескольких страниц получив юрл вида blablabla.com/index.php&lang=ru

на данный момент содержание php файлов такое:
include 1.html include 2.html include 3.html с шапкой, контентом и футером соответственно. а хотелось бы получить:
include en/1.html include en/2.html include en/3.html для английского и include ru/1.html ... для русского в соответствии с переменной из юрла. так же хотелось бы получать ссылку на английскую версию страницы если находишься на русской и наоборот. Плюс хотелось бы иметь разный заголовок для разных страниц сайта на разных языках. (их немного, возможно ли их записать в отдельный файл а затем выдавать в зависимости от URL?) чувствую что решение простое и все уложится в несколько строчек кода но в пхп я ноль так что просьба помочь.

Автор: $дмитрий 8.11.2011, 18:52
Цитата

а хотелось бы получить:
include en/1.html include en/2.html include en/3.html для английского и include ru/1.html

Смотри, здесь я выбираю язык из запроса:
Код

$arLang = array('ru', 'en');
$sLang = in_array($_GET['lang'], $arLang)?$_GET['lang']:$arLang[0];

А здесь я подключаю нужный языковой файл
Код

include($sLang.'/1.html');
include($sLang.'/2.html');
include($sLang.'/3.html');

Осталось лишь правильно скопировать это в файл php

Автор: VoodariuS 8.11.2011, 19:11
ага, спасибо большое! smile  только вот как же определить язык по умолчанию если он не указан в переменной? хотелось бы инглиш.

и все еще открыт вопрос с <title>- с ними полный бардак. полагаю что нужен скрипт который бы выдавал тайтл в зависимости от имени запрашиваемой страницы с учетом языка но понятия не имею как это может быть реализовано

так с языком по дефолту - понял, рассмотрев скрипт ^^ но вопрос с назанием страницы открыт

Автор: $дмитрий 8.11.2011, 19:32
Цитата

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

В примере уже есть условие, а чтоб en был по умолчанию нужно:
Код

$arLang = array('en', 'ru');


Цитата

и все еще открыт вопрос с <title>

Можно так
Код

$arLang = array('ru', 'en');
$sLang = in_array($_GET['lang'], $arLang)?$_GET['lang']:$arLang[0];
$arTitle = array('en' => 'Its Title', 'ru' => 'Это заголовок');

echo '<title>'.$arTitle[$sLang].'</title>';

Автор: VoodariuS 8.11.2011, 20:34
Благодарю. smile возможности нет нажать на кнопку "спасибо" - постов мало 

Автор: Lols 8.11.2011, 23:13
Красивое решение для смены языка, спасибо smile скорее всего воспользуюсь тоже.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)