====== Многоязычность ====== Astra.CMS позволяет конструировать сайты с поддержкой любого количества языков. При этом есть возможность делать [[:sections|разделы]] с независимыми данными для каждого из языков либо какие-то разделы с общими данными. ===== Список языковых версий ===== Список языковых версий редактируется в панели управления "Сайт" -> "Языковые версии". Каждая запись в этом списке состоит из идентификатора и названия. Заданный идентификатор будет использоваться при формировании ссылок на страницы раздела языковой версии. Например, если существует две языковых версии: ru = "Русский" и en = "English" , при этом первый язык - используется по умолчанию, то все ссылки на страницы англоязычных разделов будут начинаться с /en/... ===== Разделы ===== Если языковых версий имеется больше одной, то при создании раздела появляется возможность выбрать его принадлежность, например: * **Русский** - существует только для русскоязычной версии сайта. * **English** - существует только для англоязычной версии сайта. * **Общий** - существует для всех языковых версий, при этом имеет общие данные. ===== Пример реализации ===== Допустим требуется создать несколько простых страниц на обоих языках. ==== Порядок действий ==== - Добавить еще одну языковую версию (en = "English"). - [[:build:sections|Создать раздел]] на базе модуля [[:modules:pages|"Страницы"]], указав для него принадлежность русскоязычной версии (по умолчанию уже создан). - [[:build:sections|Создать раздел]] на базе модуля [[:modules:pages|"Страницы"]], указав для него такой же идентификатор (pages) и принадлежность англоязычной версии. - Перейти в управление разделом и добавить нужные страницы. - Переключить текущую языковую версию в панели управления. - Добавить тот же набор страниц, но уже с названиями и текстами на другом языке, при этом сохранив те же самые идентификаторы. Например, в русскоязычном разделе страниц у нас есть страница "О компании" с идентификатором about. В англоязычном разделе можно создать аналогичную страницу с названием "About" и идентификатором about. Таким образом первая страница будет находится по адресу /about.html а вторая /en/about.html . Для быстрого переключения версий страниц на сайте можно использовать [[:blocks:languages|соответствующий блок]]. Таким образом, страницы сайта могут иметь свои аналоги на всех языках. Для этого достаточно сохранять названия ключевых идентификаторов в параллельных разделах. Это применимо для всех модулей, например если созданы разделы новостей на базе модуля [[:modules:catalog|"Каталог материалов"]] для обоих языков, то новости можно будет дублировать в каждый из них на своем языке но с одинаковыми идентификаторами. При этом количество языковых версий сайта легко увеличить. ===== Шаблоны страниц ===== Дизайн сайта для каждой из языковых версий может отличаться полностью или незначительно. ==== Значительные изменения в дизайне ==== Для разделов, имеющих принадлежность к конкретной языковой версии сайта имеется возможность указать отдельные шаблоны страниц. Переопределить их можно в панели управления "Сайт" -> "Типы страниц". ==== Небольшие изменения в дизайне ==== Если полного изменения шаблонов страниц не требуется, то можно использовать условные конструкции с проверкой на текущую языковую версию. {if $system.lang=='ru'}

Вариант представления для русскоязычной версии сайта.

{elseif $system.lang=='en'}

Вариант представления для англоязычной версии сайта.

{/if}