imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 14.03.2007, 02:15     # 1
Melkor
Full Member
 
Аватар для Melkor
 
Регистрация: 25.11.2001
Адрес: Imho.ws
Сообщения: 941

Melkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царстве
[php5] Локализация сайта

Здравствуйте, есть необходимость написать на php5, apache, кодировка на сервере стоит unicode сайт на нескольких языках, причем добавление новых должно быть как можно более безболезнено. Смена языка в процессе работы мало предусмотрена, так как инфа разная.
Пока на ум пришла пара способов
1. через define
пишем файл с языком и подключаем нужный при старте, передаем в сессии.
PHP код:
define("L_USERNAME","имя пользователя");
define("L_USERNAME","username"); 
Вроде самый лучший. Потом можно просто брать
PHP код:
$users=array('L_USERNAME'=>'Ivan'
Но с define как-то странно... но зато и лишнее загружать не надо.

2.
Через очень боооольшую переменную

PHP код:
$messages = array (
'en_GB' =>               array(               'username' => 'username'),
'ru_RU' =>               array(               'username' => 'имя пользователя'); 
а потом сделать функцию и таскать все из нее с заданным перед этим языком
PHP код:
global $LANG 'en_GB';
print 
$messages[$LANG][$s]; 
где $s это то, что передается в функцию.
Но способ мне кажется так себе. Прийдется таскать все сразу.

Еще идеи есть?
__________________
Когда умираешь, да еще так долго и трудно, очень хочется хоть немного насолить живым, просто невозможно удержаться от искушения!
М.Фрай

Последний раз редактировалось Melkor; 14.03.2007 в 02:16. Причина: изменил малость заголовок
Melkor вне форума  
Старый 14.03.2007, 12:06     # 2
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
С массивами удобнее прописывать каждый элемент отдельно. Примерно так:
$messages['en_GB'] ['username'] = 'username';

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

Ещё можно в базу данных записывать.
EvroStandart вне форума  
Старый 15.03.2007, 06:49     # 3
Aeon
::VIP::
 
Аватар для Aeon
 
Регистрация: 28.06.2002
Адрес: neverwhere
Сообщения: 1 166

Aeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собойAeon Имеются все основания чтобы гордиться собой
Зависит от размера сайта. Я бы делал с gettext extension для php. (Gettext быстрее – и константы и массивы будут тормозить если сайт разрастётся).
Aeon вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 14:08.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.