Многоязычность

Astra.CMS позволяет конструировать сайты с поддержкой любого количества языков. При этом есть возможность делать разделы с независимыми данными для каждого из языков либо какие-то разделы с общими данными.

Список языковых версий

Список языковых версий редактируется в панели управления «Сайт» → «Языковые версии». Каждая запись в этом списке состоит из идентификатора и названия. Заданный идентификатор будет использоваться при формировании ссылок на страницы раздела языковой версии. Например, если существует две языковых версии: ru = «Русский» и en = «English» , при этом первый язык - используется по умолчанию, то все ссылки на страницы англоязычных разделов будут начинаться с /en/…

Разделы

Если языковых версий имеется больше одной, то при создании раздела появляется возможность выбрать его принадлежность, например:

  • Русский - существует только для русскоязычной версии сайта.
  • English - существует только для англоязычной версии сайта.
  • Общий - существует для всех языковых версий, при этом имеет общие данные.

Пример реализации

Допустим требуется создать несколько простых страниц на обоих языках.

Порядок действий

  1. Добавить еще одну языковую версию (en = «English»).
  2. Создать раздел на базе модуля "Страницы", указав для него принадлежность русскоязычной версии (по умолчанию уже создан).
  3. Создать раздел на базе модуля "Страницы", указав для него такой же идентификатор (pages) и принадлежность англоязычной версии.
  4. Перейти в управление разделом и добавить нужные страницы.
  5. Переключить текущую языковую версию в панели управления.
  6. Добавить тот же набор страниц, но уже с названиями и текстами на другом языке, при этом сохранив те же самые идентификаторы.

Например, в русскоязычном разделе страниц у нас есть страница «О компании» с идентификатором about. В англоязычном разделе можно создать аналогичную страницу с названием «About» и идентификатором about. Таким образом первая страница будет находится по адресу /about.html а вторая /en/about.html .

Для быстрого переключения версий страниц на сайте можно использовать соответствующий блок.

Таким образом, страницы сайта могут иметь свои аналоги на всех языках. Для этого достаточно сохранять названия ключевых идентификаторов в параллельных разделах. Это применимо для всех модулей, например если созданы разделы новостей на базе модуля "Каталог материалов" для обоих языков, то новости можно будет дублировать в каждый из них на своем языке но с одинаковыми идентификаторами. При этом количество языковых версий сайта легко увеличить.

Шаблоны страниц

Дизайн сайта для каждой из языковых версий может отличаться полностью или незначительно.

Значительные изменения в дизайне

Для разделов, имеющих принадлежность к конкретной языковой версии сайта имеется возможность указать отдельные шаблоны страниц. Переопределить их можно в панели управления «Сайт» → «Типы страниц».

Небольшие изменения в дизайне

Если полного изменения шаблонов страниц не требуется, то можно использовать условные конструкции с проверкой на текущую языковую версию.

 
{if $system.lang=='ru'}
<p>Вариант представления для русскоязычной версии сайта.</p>
{elseif $system.lang=='en'}
<p>Вариант представления для англоязычной версии сайта.</p>
{/if}
 
build/languages.txt · Последние изменения: 29.12.2014 11:16 (внешнее изменение)