2010-07-24 3 views
2

langauage web. Я поставил 3 ссылки, Français ... (HREF = changeLanguage.php? LANG = FR, ES, еп)Помощь по изменению языка страницы без изменения текущей страницы (PHP)

changLanguage.php

session_start(); 

if(isset($_SESSION['bckTo']) && isset($_GET['lang'])){ 

    $lang = preg_replace('/[^a-z]/','',trim($_GET['lang'])); 

    #TODO 
    #More vlidation ... 

    $full_url = $_SESSION['bckTo']; 
    $full_url = str_replace(array('&lang=en','&lang=es','&lang=fr'),'',$full_url); 

header('Location: '.$full_url.'&lang='.$lang.''); 
} 

$ _SESSION [ 'bckTo'] сохранить текущий URL для Пример: mysite.com/index.php?id=x & n_d = y Проблема заключается в том, что заголовок переводит URL-адрес: mysite.com/index.php?id=x & n_d = y & lang = en.

Любая идея будет оценить

ответ

4

Почему не просто установить язык сессии вместо через GET? Затем вам просто нужно поместить ссылку, чтобы изменить язык, а затем перенаправить на страницу. Это, вероятно, было бы лучше, учитывая, что вы уже используете сеансы.

Пример: <a href="changeLanguage.php?lang=en">English</a>

На changeLanguage:

//code up here 
if (isset($_SESSION['bckTo') && isset($_GET['lang'])) { 
    // $lang code here 
    $_SESSION['lang'] = $lang; 
    header('Location: ' . $_SESSION['bckTo']); 
}

Тогда вам просто необходимо будет изменить проверку языка/отображение кода для проверки переменной сеанса, а не GET (на фактических страницах).

+0

Спасибо за ваш ответ, вот как я дальше, я определить языковые переменные (определяют («INDEX_TITLE», «Добро пожаловать ....»);), и у меня есть скрипт, который проверяет для получить переменную и включить правильный файл перевода. (en, lang.en.php) ... – jartaud

+1

С оговоркой, что тогда каждая языковая версия страницы будет существовать под одним и тем же URL-адресом. Обслуживание различного контента по тому же URL-адресу плохо для SEO, поскольку либо альтернативные языковые версии никогда не индексируются, либо не удача, какая версия индексируется. URL * должен * содержать язык, если он является общедоступным ресурсом. Для чего-то вроде страниц только для членов это не имеет большого значения. – deceze

+0

Спасибо, приятель, это хороший момент, но если мы заботимся о SEO, и нам нужен многоязычный сайт, есть ли что-нибудь, что мы можем сделать? – jartaud