Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите со сменой языка, пожалуйста!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Нужна идея с организацией смены языка для уже готового сайта. Если кто-то реально поможет реализовать и это будет несложно - приз - 100 гривен на карту
Roy Gibson
Отправлено: 05 Августа, 2013 - 16:55:51
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




Прошу помощи в написании кода для смены языков.
Сайт написан так, что все странички написанные на русском языке имеют название в виде stranica.php, на украинском языке - stranica_ua.php, на английском языке - stranica_en.php. Любая страничка собирается при помощи php из нескольких частей, вот пример русскоязычной страницы(все лишнее вырезано):

<html>
<head>
<title>Название</title>
<?php $DOCUMENT_ROOT=$HTTP_SERVER_VARS['DOCUMENT_ROOT']; ?>
<?php include "$DOCUMENT_ROOT/inc/main.inc" ?>
<?php include "$DOCUMENT_ROOT/inc/menu.inc" ?>
<h1>Название</h1>
<p>Текст Текст Текст</p>
<?php include "$DOCUMENT_ROOT/inc/foot.inc" ?>

Русскоязычные файл main.inc содержит следующий код со ссылками на смену языка:

<table>
<tr>
<td><a href="http://example.ua/index_ua.php" title="Українська">
<img alt="Українська" src="http://m-r.kiev.ua/body/ua.gif"></a>
</td>
<td width="30"><a href="http://example.ua/index_en.php" title="English">
<img alt="English" src="http://m-r.kiev.ua/body/en.gif"></a>
</td>
</tr>
</table>

Англоязычный и украиноязычный файлы main_ua.inc и main_en.inc сделаны схожим образом.

Получается, что если посетитель на любой страничке нажимает на флажок, что бы сменить язык, его всегда выкидывает на главную, хоть и на нужном языке.
Приходится опять по меню искать нужную страницу.
Можно ли организовать все так, что бы при смене языка посетитель попадал на ту же страничку, только на нужном ему языке.
Например, пользователь находится на украиноязычной страничке stranica2_ua.php, жмет на русский флаг и попадает на stranica2.php.
Помогите реализовать на уже готовом сайте, переделывать под базы данных и т.п. нет возможности.

(Отредактировано автором: 05 Августа, 2013 - 16:57:51)

 
 Top
Мелкий Супермодератор
Отправлено: 05 Августа, 2013 - 17:23:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ну так укажите в своих main*.inc ссылки с необходимыми атрибутами, характеризующими эту страницу. Видимо, $_SERVER["QUERY_STRING"], или значение из $_SERVER["REQUEST_URI"] используйте.


-----
PostgreSQL DBA
 
 Top
Roy Gibson
Отправлено: 05 Августа, 2013 - 17:32:47
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




[quote=Мелкий][/quote]
А как это реализовать, помогите кодом, пожалуйста, я чайник.
 
 Top
snikers987
Отправлено: 05 Августа, 2013 - 18:38:29
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Roy Gibson пишет:
помогите кодом, пожалуйста, я чайник.


кодом Вам вряд ли кто поможет, ибо никому не известно, что у Вас и как, можно поставить гугл переводчик

_http://translate.google.com/manager/website/suggestions

(Отредактировано автором: 05 Августа, 2013 - 18:38:51)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Roy Gibson
Отправлено: 05 Августа, 2013 - 18:46:41
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




snikers987 пишет:
кодом Вам вряд ли кто поможет, ибо никому не известно, что у Вас и как, можно поставить гугл переводчик

Гугл переводчик не хочу, спасибо.
Может, кто подскажет, хоты бы, как при нажатии на ссылку генерировался такой же url как текущий, только без трех последних символов перед расширением (перед .php)?
Например, мы на странице http://data1/index_ua.php (украиноязычная) жмем на русский флажок - меняем язык на русский, и попадаем на страничку http://data1/index.php.

(Отредактировано автором: 05 Августа, 2013 - 18:50:31)

 
 Top
caballero
Отправлено: 05 Августа, 2013 - 19:20:43
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




берешь $_SERVER["REQUEST_URI"]

и на кнопке перебиваешь ".php" на "_ru.php"


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
NoPaper
Отправлено: 05 Августа, 2013 - 19:56:18
Post Id



Посетитель


Покинул форум
Сообщений всего: 315
Дата рег-ции: Янв. 2012  
Откуда: Минск


Помог: 9 раз(а)




PHP:
скопировать код в буфер обмена
  1. function getLang($default = 'ru'){
  2.         if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
  3.                 $r = explode('-',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
  4.                 return $r[0];
  5.         }
  6.         else return $default;
  7. }
  8. echo getLang();
  9.  

(Отредактировано автором: 05 Августа, 2013 - 19:56:39)

 
 Top
Roy Gibson
Отправлено: 06 Августа, 2013 - 11:56:56
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




Повторюсь, я абсолютно не знаю php, пытаюсь только разобраться, но пока не готов сам написать такую функцию. Очень прошу помочь. NoPaper, кажется, подсказывает в верном направлении.

Есть несколько вариантов события:
1. Мы на RU страничке example.php,
если жмем на UA - попадаем на example_ua.php,
если жмем на EN - попадаем на example_en.php.
2. Мы на UA страничке example_ua.php,
если жмем на RU - попадаем на example.php,
если жмем на EN - попадаем на example_en.php.
3. Мы на EN страничке example_en.php,
если жмем на UA - попадаем на example_ua.php,
если жмем на RU - попадаем на example.php.

Получается, что мне нужно то удалить все после "_" вместе с "_", если переход на русский язык, то добавить к url сайта _ua.php или _en.php, если переход на украинский или английский язык.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB