IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   [php5] Локализация сайта (https://www.imho.ws/showthread.php?t=116517)

Melkor 14.03.2007 02:15

[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 это то, что передается в функцию.
Но способ мне кажется так себе. Прийдется таскать все сразу.

Еще идеи есть? :)

EvroStandart 14.03.2007 12:06

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

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

Ещё можно в базу данных записывать.

Aeon 15.03.2007 06:49

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


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

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