Мовні версії
Смерека підтримує багатомовні інтерфейси веб-сайтів. Технічною основою багатомовності є мовно-залежні атрибути. Якщо атрибут визначено як мовно-залежний, Смерека створює окремий екземпляр цього атрибута для кожної мови сайта.
Оскільки шаблон сторінки визначено як мовно-залежний атрибут, Смерека забезпечує єдиний механізм підтримки багатомовності як на рівні шаблонів, які містять постійні елементи веб-сторінок, залежні від мови, так і на рівні окремих вершин (і відповідних сторінок).
Основою багатомовного сайту є декларація мов у файлі customsettings.php :
$Languages = array('uk', 'ru', 'en');
Цей масив обов’язково повинен містити принаймні один елемент, який визначає мову одномовного сайту. Для багатомовного сайту він повинен містити визначення всіх мов (у вигляді кодів з двох літер, бажано згідно ISO 639-1), з якими буде працювати сайт.
Декларування набору мов не означає, що кожна веб-сторінка у Смереці повинна мати всі мовні варіанти. У Смереці веб-сторінка може мати всі мовні варіанти, може мати тільки деякі варіанти і може мати один варіант – все залежить від намірів редактора, який наповнює сайт.
Для того, щоб надати користувачу можливість вибору мови, конструктор сторінок мусить вмістити смеретег <Smereka Module="smeretags/smbar.php" Func="StdLangBar" /> у тому місці свого шаблона та/або сторінки, де має з’явитись цей селектор. У базовій реалізації цей тег генерує дуже простий HTML код – строку з назвами мов і відповідними посиланнями.
В режимі перегляду набір мов визначається шляхом перебору доступних мовних варіантів атрибутів вершини. Мовна версія вважається доступною, якщо хоча б один з атрибутів вершини має відповідний мовний варіант. Недоступні мови не виводяться; поточна мова виводиться без посилання. Якщо доступний тільки один мовний варіант, селектор мов взагалі не виводиться.
В режимі редагування виводиться повний селектор з усіма мовами – для того, щоб редактор міг доповнювати сторінку новими мовними варіантами.
Якщо цей селектор виглядає занадто спартанським, можна написати саморобний модуль і викликати його через механізм смеретегів.
Розширення / зміна набору мов
Для цього треба зробити наступні кроки :
1. Модифікувати масив $LangNames у файлі customsettings.php.
2. В каталозі Смереки lang створити новий каталог з іменем мови і скопіювати туди файли з якогось існуючого мовного каталогу.
3. Відредагувати ці файли, замінивши в них мовно-специфічні строкові літерали на такі ж для нової мови.
4. Додати нові мовні версії всіх шаблонів сторінок сайта.
5. Відредагувати декілька вершин, додавши мовно-специфічні атрибути для нової мови.
Після цього можна випробувати нову мовну версію.