Початкова сторінка

Микола Жарких (Київ)

Персональний сайт

?

Мовні версії

Смерека підтримує багатомовні інтерфейси веб-сайтів. Технічною основою багатомовності є мовно-залежні атрибути. Якщо атрибут визначено як мовно-залежний, Смерека створює окремий екземпляр цього атрибута для кожної мови сайта.

Оскільки шаблон сторінки визначено як мовно-залежний атрибут, Смерека забезпечує єдиний механізм підтримки багатомовності як на рівні шаблонів, які містять постійні елементи веб-сторінок, залежні від мови, так і на рівні окремих вершин (і відповідних сторінок).

Основою багатомовного сайту є декларація мов у файлі 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. Відредагувати декілька вершин, додавши мовно-специфічні атрибути для нової мови.

Після цього можна випробувати нову мовну версію.