Astra.CMS позволяет конструировать сайты с поддержкой любого количества языков. При этом есть возможность делать разделы с независимыми данными для каждого из языков либо какие-то разделы с общими данными.
Список языковых версий редактируется в панели управления «Сайт» → «Языковые версии». Каждая запись в этом списке состоит из идентификатора и названия. Заданный идентификатор будет использоваться при формировании ссылок на страницы раздела языковой версии. Например, если существует две языковых версии: ru = «Русский» и en = «English» , при этом первый язык - используется по умолчанию, то все ссылки на страницы англоязычных разделов будут начинаться с /en/…
Если языковых версий имеется больше одной, то при создании раздела появляется возможность выбрать его принадлежность, например:
Допустим требуется создать несколько простых страниц на обоих языках.
Например, в русскоязычном разделе страниц у нас есть страница «О компании» с идентификатором about. В англоязычном разделе можно создать аналогичную страницу с названием «About» и идентификатором about. Таким образом первая страница будет находится по адресу /about.html а вторая /en/about.html .
Для быстрого переключения версий страниц на сайте можно использовать соответствующий блок.
Таким образом, страницы сайта могут иметь свои аналоги на всех языках. Для этого достаточно сохранять названия ключевых идентификаторов в параллельных разделах. Это применимо для всех модулей, например если созданы разделы новостей на базе модуля "Каталог материалов" для обоих языков, то новости можно будет дублировать в каждый из них на своем языке но с одинаковыми идентификаторами. При этом количество языковых версий сайта легко увеличить.
Дизайн сайта для каждой из языковых версий может отличаться полностью или незначительно.
Для разделов, имеющих принадлежность к конкретной языковой версии сайта имеется возможность указать отдельные шаблоны страниц. Переопределить их можно в панели управления «Сайт» → «Типы страниц».
Если полного изменения шаблонов страниц не требуется, то можно использовать условные конструкции с проверкой на текущую языковую версию.
{if $system.lang=='ru'} <p>Вариант представления для русскоязычной версии сайта.</p> {elseif $system.lang=='en'} <p>Вариант представления для англоязычной версии сайта.</p> {/if}