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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Организация мультиязычности на сайте
leon1993
Отправлено: 01 Июня, 2011 - 12:26:04
Post Id



Гость


Покинул форум
Сообщений всего: 84
Дата рег-ции: Май 2011  


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




Привет всем, программисты. Посоветуйте что нибудь, как можно организовать многоязычность на сайте с помощью php&mysql напримере 2-х языков английского и русского
 
 Top
dropoff
Отправлено: 01 Июня, 2011 - 12:32:16
Post Id



Посетитель


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


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




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

(Отредактировано автором: 01 Июня, 2011 - 12:33:49)

 
 Top
vlados
Отправлено: 01 Июня, 2011 - 12:54:05
Post Id



Посетитель


Покинул форум
Сообщений всего: 391
Дата рег-ции: Май 2011  


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

[+][+][+]


Раньше можно было это сделать с гугл транслейт апи, но его к концу года закроют Меланхолия
А так тупо создай две таблицы одна с русским друга с иностранным контентом.
 
 Top
leon1993
Отправлено: 01 Июня, 2011 - 12:57:11
Post Id



Гость


Покинул форум
Сообщений всего: 84
Дата рег-ции: Май 2011  


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




dropoff пишет:
контет или контент и шаблон?
как бы и то и то на английском
(Добавление)
dropoff пишет:
Как вариант только советы по организации этого всего.
вот как раз бы и хотелось именно про организацию всего этого что нибудь получить
 
 Top
OrmaJever Модератор
Отправлено: 01 Июня, 2011 - 13:19:06
Post Id



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


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


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




mysql сюда запрегать не нужно, это уменьшит скорость работы.
Создать папку lang в неё ложить файлы с языками
ru.php
Спойлер (Отобразить)

eng.php
Спойлер (Отобразить)

Зачем создать файл для выбора языка (например lang.php)
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. switch($_GET['lang']) :
  3.    default: include('lang/ru.php'); break;
  4.    case 'ru': include('lang/ru.php'); break;
  5.    case 'eng': include('lang/eng.php'); break;
  6. endswitch;
  7. ?>

Ну и например в индексе
Спойлер (Отобразить)

index.php?lang=ru
index.php?lang=eng

Так же можно переделать под cookie, сесии и тд.

(Отредактировано автором: 01 Июня, 2011 - 13:19:51)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
vlados
Отправлено: 01 Июня, 2011 - 13:19:18
Post Id



Посетитель


Покинул форум
Сообщений всего: 391
Дата рег-ции: Май 2011  


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

[+][+][+]


leon1993 тупо создай две таблицы одна с русским друга с иностранным контентом.
 
 Top
dropoff
Отправлено: 01 Июня, 2011 - 13:23:37
Post Id



Посетитель


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


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




для шаблона конечно файлы языковые.
А для контента, писать дефолтный язык в сессию и при выборке контента из базу уже по сессии определять что там юзер выбрал за язык.
 
 Top
leon1993
Отправлено: 01 Июня, 2011 - 13:23:38
Post Id



Гость


Покинул форум
Сообщений всего: 84
Дата рег-ции: Май 2011  


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




OrmaJever пишет:
....
спасибо дружище, ток не пойму мне надо будет же где то подключить файл для выбора языка со switch чтобы пользователь мог выбрать, а как его подключать, что можно просто с помощью include или require_once?
 
 Top
OrmaJever Модератор
Отправлено: 01 Июня, 2011 - 13:38:16
Post Id



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


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


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




leon1993 в любом файле подключайте в начале

(Отредактировано автором: 01 Июня, 2011 - 13:38:33)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
dropoff
Отправлено: 01 Июня, 2011 - 13:38:34
Post Id



Посетитель


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


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




ставим язык по умолчанию ru
define('CURRENT_LANG', 'ru');

далее пишем в сессию дефолтный язык
if (empty($_SESSION['lang']))
{
$_SESSION['lang'] = CURRENT_LANG;
}

В свитч добавить. если например в кейс ru
то
$_SESSION['lang'] = 'ru';

а при выборке из БД уже
SELECT * FROM news WHERE ... lang = '".$_SESSION['lang']."';.....

файл
rеquire('path_to_lang_dir/'.$_SESSION['lang']'.php');

как-то так может?

(Отредактировано автором: 01 Июня, 2011 - 13:40:42)

 
 Top
leon1993
Отправлено: 01 Июня, 2011 - 13:42:21
Post Id



Гость


Покинул форум
Сообщений всего: 84
Дата рег-ции: Май 2011  


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




dropoff пишет:
ставим язык по умолчанию ru
define('CURRENT_LANG', 'ru');

далее пишем в сессию дефолтный язык
if (empty($_SESSION['lang']))
{
$_SESSION['lang'] = CURRENT_LANG;
}

В свитч добавить. если например в кейс ru
то
$_SESSION['lang'] = 'ru';

а при выборке из БД уже
SELECT * FROM news WHERE ... lang = '".$_SESSION['lang']."';.....
что то мне кажется это как то не то, но может я не прав... вариант OrmaJever помоему самое то что надо
 
 Top
dropoff
Отправлено: 01 Июня, 2011 - 13:46:23
Post Id



Посетитель


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


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




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

ну это в связке с примером OrmaJever.

т.е. вместо

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. switch($_GET['lang']) :
  3.    default: include('lang/ru.php'); break;
  4.    case 'ru': include('lang/ru.php'); break;
  5.    case 'eng': include('lang/eng.php'); break;
  6. endswitch;
  7. ?>


делаем
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. switch($_GET['lang']) :
  3.    default: $_SESSION['lang'] = CURRENT_LANG; break;
  4.    case 'ru': $_SESSION['lang'] = 'ru'; break;
  5.    case 'eng': $_SESSION['lang'] = 'eng'; break;
  6. endswitch;
  7. ?>


а файл уже так
rеquire('path_to_lang_dir/'.$_SESSION['lang']'.php');

Единственный момент - сессия умрет.
По этому наверное лучше в куки писать.

(Отредактировано автором: 01 Июня, 2011 - 13:51:26)

 
 Top
leon1993
Отправлено: 01 Июня, 2011 - 13:52:22
Post Id



Гость


Покинул форум
Сообщений всего: 84
Дата рег-ции: Май 2011  


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




dropoff пишет:
...
а ну если так то да, от души!
(Добавление)
dropoff пишет:
...Единственный момент - сессия умрет.
не понятно почему?
 
 Top
dropoff
Отправлено: 01 Июня, 2011 - 14:01:58
Post Id



Посетитель


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


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




тут
http://www.php.su/functions/?cat=session

сессия умирает когда юзера закрывает браузер или через какое-то время (есл иэто все не настроить конечно)

а кука пишется в браузер юзера.

на портале информации много...
 
 Top
OrmaJever Модератор
Отправлено: 01 Июня, 2011 - 14:03:17
Post Id



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


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


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




dropoff вот так нужно
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $_SESSION['lang'] = isset($_SESSION['lang']) ? $_SESSION['lang'] : 'ru';
  3. switch($_SESSION['lang']) :
  4.    default: include('lang/ru.php'); break;
  5.    case 'ru': include('lang/ru.php'); break;
  6.    case 'eng': include('lang/eng.php'); break;
  7. endswitch;
  8. ?>


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB