Реализация языковых локализаций сайта

EM
На сайте с 16.12.2005
Offline
108
373

Здравствуйте,

встала задача создания мультиязычного сайта. Опыта в этом мало, поделитесь как это лучше реализовать.

Имею такую идею:

создаются языковые файлы (таблица в бд) по принципу "ключ=>значение". В шаблоне их можно выводить через переменные, вроде такого (в какой-то freeware-CMS подсмотрел):


include('russian.php');
include('english.php');
...
print '<input type="submit" value="'.$lang{input}.'">'

Может есть более удобные способы? Еще размышляю как вариант: сделать обычную csv-таблицу, каждый столбец определенный язык, а обращаться к записям на индексу строки и столбца...

Готовые CMS не использую, потому не вкурсе как это по-человечески принято реализовывать (есть собственные, как Win' приложения в основном).

maldivec
На сайте с 04.11.2008
Offline
160
#1

Все сводится именно к связи ключ-значение, в шаблонах выводятся данные по ключу. А уж как эти пары значений хранить - ваше личное дело.

Сразу два языка тащить не имеет смысла (как в примере вашем), в зависимости от настроек клиента подключаем один из файлов (в нем может быть выборка из БД или массив или что угодно)

На счет csv со столбцами-языками - зачем в одном файле хранить все языки? Лишняя трата ресурсов, все равно человек смотрит сайт на одном языке, по этому подключать нужно один язык, когда он переключится - тогда другой.

B
На сайте с 25.02.2009
Offline
68
#2

Решений много и у каждого плюсы и минусы, я ппредпочитаю ini файлы - легко независимо их редактировать, если думаешь бд - то как будешь редактировать строки? Писать админку для бд? В php есть расширение gettext - посмотри, может тебе подойдет

Бесплатная CMS LitePublisher это блог, вики, тикет система, голосование (http://litepublisher.ru/) на высокой скорости с минимум памяти

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий