Текущее положение дел таково, что очень часто нам приходится внедрять многоязычие в свою работу.
Вроде бы приемы хорошо описаны и проблем возникнуть не должно, но я решил пойти своим путем.
Сразу хочу уточнить, что к описанному ниже варианту я пришел сам и это касается только ярлыков/статического контента.
Возможно есть такая реализация, но я с ней не знаком.
На данный момент мне известны следующие реализации:
- В файле, предположим, ru.php есть код: $language['site_title'] = 'Заголовок сайта'; В php или smarty мы используем этот массив и отображаем текст, похожий на {$language.site_title}.
- Использование расширения GetText (с функцией Smarty)
- Использование smarty config (или многоязычная реализация в шаблонизаторе Quicky) (фактически, на мой взгляд, это вариации первого варианта)
- Использование в смарте функций, обращающихся к базе данных или глобальной переменной (по сути тоже вариации на тему первого пункта)
Есть таблица надписей (phraze_id,language_id,value), в которой хранится весь статический контент сайта, а также есть таблица языков (language_id,title).
Это таблицы, с которыми мы будем работать.
Теперь давайте посмотрим на папку шаблонов.
Есть папка, скажем, пользователи, в которой хранятся исходные шаблоны (templates/users) и есть папка временных шаблонов (tmp/users).
Теперь самый интересный момент. В оригинальных шаблонах вместо надписей пишем что-то вроде [phrase{site_title}].
При изменении заголовков в админке или через Cron (это уже частная реализация) я перегенерирую шаблоны (заменяю [phrase{site_title}] на «Заголовок сайта») и сохраняю изменённый шаблон в папке tmp/users/ru или папка tmp/users/en, в зависимости от языка.
Здесь нужно просто «подсказать» умнику, откуда брать шаблоны.
Такая реализация позволяет избежать затрат на постоянный вызов функции/получение ее из базы и делать это только по определенному событию.
Теги: #php #локализация интерфейса #php
-
Как Избежать И Удалить Шпионское По
19 Oct, 24 -
Самодельная Клавиатура
19 Oct, 24 -
Дайджест Экономических Новостей Биткоина
19 Oct, 24 -
Россия Присматривается К Кимонде?!
19 Oct, 24