Ситуация такая:
- В блоке хедера, который подключается на старницы сайта из отдельного файла header.php, есть функция смены языка. Точнее - это обычная ссылка, которая перемещает пользователя на главную страницу сайта, но уже на другом языке.
Задача: Сделать так, что бы при смене языка, пользователь оставался на той же странице, где он и нажал на ссылку смены языка. Тоесть если человек находится в разделе "контакты", то, если он захочет узнать те же контакты, но на английском, его не редиректело бы на главную страницу, а оставляло бы на нынешней старнице.
Я так подозреваю, что необходимо какоето условие )))
Так же я думаю, что всё как всегда достаточно просто ))
Всем заранее СПАСИБО!
Спустя 19 часов, 31 минута, 28 секунд (29.04.2011 - 11:28) Guest написал(а):
Нужно знать как хранится выбранный язык.
Если он хранится в url - т.е. site.com/en/articles - то при переходе, достаточно будет
заменять en на выбранный язык, т.е. просто меняя url.
Если в сессии то просто меняем в сессии язык не меняя страницу.
Если ещё где то.. то .. по смыслу
Если он хранится в url - т.е. site.com/en/articles - то при переходе, достаточно будет
заменять en на выбранный язык, т.е. просто меняя url.
Если в сессии то просто меняем в сессии язык не меняя страницу.
Если ещё где то.. то .. по смыслу
Спустя 51 минута, 27 секунд (29.04.2011 - 12:20) Guest написал(а):
На сайте продублированы все страницы на 2 языках.
К примеру:
- странице contact.php которая содержит информацию на английском языке, соответствует точно такая же страница contact_fra.php, которая содержит тот же текст (данные) только на французском языке. И так для всех страниц на сайте.
Блок хедера, вместе с меню и ссылкой на переключение языка, лежит в отдельном файле header.php, который просто подключается в нужном месте на каждой странице сайта.
Вот код блока со ссылкой:
Он, как вы видете, переключает пользователя, который нажимает на "FRA" на главную страницу сайта с французским текстом.
Задача та же:
- Сделать так, что бы пользователь находясь на станице (к примеру contact.php) при клике на ссылку смены языка попадал не на index_f.php, а на старницу соответствующую той, на которой он сейчас находится. В нашем случае странице contact.php соответствует страница conttact_fra.php.
Такая схема должна работать для каждой страницы сайта. Их около 10 штук.
К примеру:
- странице contact.php которая содержит информацию на английском языке, соответствует точно такая же страница contact_fra.php, которая содержит тот же текст (данные) только на французском языке. И так для всех страниц на сайте.
Блок хедера, вместе с меню и ссылкой на переключение языка, лежит в отдельном файле header.php, который просто подключается в нужном месте на каждой странице сайта.
Вот код блока со ссылкой:
<div class="smena_jazikov">
<a class="smena_jazikov_link" href="index_f.php">FRA</a>
</div>
Он, как вы видете, переключает пользователя, который нажимает на "FRA" на главную страницу сайта с французским текстом.
Задача та же:
- Сделать так, что бы пользователь находясь на станице (к примеру contact.php) при клике на ссылку смены языка попадал не на index_f.php, а на старницу соответствующую той, на которой он сейчас находится. В нашем случае странице contact.php соответствует страница conttact_fra.php.
Такая схема должна работать для каждой страницы сайта. Их около 10 штук.
Спустя 1 минута, 12 секунд (29.04.2011 - 12:21) nazarlee написал(а):
Это я был ))) вверху простите.
Спустя 6 часов, 30 минут, 23 секунды (29.04.2011 - 18:51) liw написал(а):
Выбор языков сделан коряво конечно.
Ну как вариант, ссылку на другой язык можно получить так:
Ну как вариант, ссылку на другой язык можно получить так:
$lang = 'fra';
$link = preg_replace(
'/^(.*)(_[a-z]{1,3})?\.php(\?.*)?$/DUi',
'$1'.($lang?'_'.$lang:'').'.php$3',
$_SERVER['REQUEST_URI']);
<div class="smena_jazikov">
<a class="smena_jazikov_link" href="<?php echo $link; ?>">FRA</a>
</div>
Спустя 11 месяцев, 19 дней, 1 час, 38 минут, 17 секунд (18.04.2012 - 20:30) fr33ze написал(а):
А файл с тем или иным языком будет выглядеть как <название>_<название языка>.php ?
Спустя 5 месяцев, 16 дней, 22 часа, 6 минут, 6 секунд (5.10.2012 - 18:36) babets написал(а):
Цитата (liw @ 29.04.2011 - 18:51) |
Выбор языков сделан коряво конечно. Ну как вариант, ссылку на другой язык можно получить так: $lang = 'fra'; <div class="smena_jazikov"> |
Спустя 1 час, 59 минут, 55 секунд (5.10.2012 - 20:36) twin написал(а):
babets
Цитата |
Поясніть будь-ласка як поміняти цей код, щоб ссилка виходила http://мій_сайт/com/fra/решта/php?a=1 |
Спустя 1 час, 19 минут, 3 секунды (5.10.2012 - 21:55) babets написал(а):
Когда всавляеш етот код то ссылка получается http://мій_сайт.com/view_fra.php?a=1, а нужно чтоб было http://мій_сайт.com/fra/view.php?a=1. У меня другой язык в папке fra.
Спустя 1 день, 22 часа, 59 минут, 47 секунд (7.10.2012 - 20:55) babets написал(а):
Цитата (liw @ 29.04.2011 - 18:51) |
Выбор языков сделан коряво конечно. Ну как вариант, ссылку на другой язык можно получить так: $lang = 'fra'; <div class="smena_jazikov"> |
что в етом коде значит переменная $1 и $3
Спустя 1 час, 3 минуты, 19 секунд (7.10.2012 - 21:58) inpost написал(а):
babets
В этом коде - РЕГУЛЯРНЫЕ выражения. Любой учебник объясняет это! Почитай про регулярные выражения и всё поймешь.
В этом коде - РЕГУЛЯРНЫЕ выражения. Любой учебник объясняет это! Почитай про регулярные выражения и всё поймешь.
Спустя 12 часов, 31 минута, 42 секунды (8.10.2012 - 10:30) babets написал(а):
inpost Спасибо
Спустя 5 часов, 7 минут, 39 секунд (8.10.2012 - 15:37) Zzepish написал(а):
Я делал так- создаю две таблицы.
например:
ru_medicine
eng_medicine
А потом сверялся с куками.
Если
if( (int)$_COOKIE['lang']===1){
$sufix='eng';
}
else $sufix='ru';
И коннект соответственно с таблицами по суфиксу
например:
ru_medicine
eng_medicine
А потом сверялся с куками.
Если
if( (int)$_COOKIE['lang']===1){
$sufix='eng';
}
else $sufix='ru';
И коннект соответственно с таблицами по суфиксу
Спустя 36 минут, 20 секунд (8.10.2012 - 16:14) n58oo написал(а):
зачем таблицы плодить, проще добавить в одну поле 'lang', если еще потребуется 10 языков добавить в базе можно заблудиться
Спустя 6 часов, 20 минут, 55 секунд (8.10.2012 - 22:35) killer8080 написал(а):
Цитата (Zzepish @ 8.10.2012 - 15:37) |
А потом сверялся с куками. |
Не самый лучший вариант - использовать куки. Поисковики будут индексировать только одну языковую версию контента. Лучше использовать урл, или субдомен.
Спустя 1 день, 41 минута, 9 секунд (9.10.2012 - 23:16) VELIK505 написал(а):
Цитата (nazarlee @ 28.04.2011 - 12:57) |
Здравствйте. Ситуация такая: - В блоке хедера, который подключается на старницы сайта из отдельного файла header.php, есть функция смены языка. Точнее - это обычная ссылка, которая перемещает пользователя на главную страницу сайта, но уже на другом языке. Задача: Сделать так, что бы при смене языка, пользователь оставался на той же странице, где он и нажал на ссылку смены языка. Тоесть если человек находится в разделе "контакты", то, если он захочет узнать те же контакты, но на английском, его не редиректело бы на главную страницу, а оставляло бы на нынешней старнице. Я так подозреваю, что необходимо какоето условие ))) Так же я думаю, что всё как всегда достаточно просто )) Всем заранее СПАСИБО! |
В самомом верху где нить.
if(isset($_GET["language"])){
setcookie ("leng", intval($_GET["language"]),time()+60*60*24*31*3);
$_COOKIE["leng"] = intval($_GET["language"]);
header('Location: '.$_SERVER['HTTP_REFERER']);
}
include ( (isset($_COOKIE["leng"]) AND $_COOKIE["leng"] == 2) ? "funcions/lang/eng.php" : "funcions/lang/rus.php" );
в хеад:
<script>function changes(type,val){
document.location.replace('?'+type+'='+val);return false
}</script>
на странице:
<span style="cursor: pointer" onclick="return changes('language','2');">English</span>
<span style="cursor: pointer" onclick="return changes('language','1');">Русский</span>
Так понятно?