К содержанию

Навигация

Языки

Фреймворк говорит по-английски по умолчанию и на языке страницы, если она его назвала. Правило одно на все компоненты:

ближайший [lang] над узлом → lang документа → английский.

Одно правило, чтобы страница никогда не смешивала два языка из-за того, что два компонента посмотрели в разные места.

HTML
<html lang="ru">   <!-- вся страница по-русски -->
  …
  <section lang="en">  <!-- а эта область по-английски -->

Откуда берётся слово

По порядку, и первое найденное выигрывает:

  1. атрибут компонента — кто назвал слово, тот его и назвал, и никакой язык этого не меняет;
  2. слово, зарегистрированное для выбранного языка;
  3. слово, которое компонент привёз с собой для этого языка;
  4. шаги 2–3 для языка без региона (pt-BR → pt);
  5. шаги 2–3 для английского;
  6. сам ключ — это видимый дефект, а не пустое место.
HTML
<!-- Названо атрибутом: останется «Листы:» на любом языке страницы -->
<sf-pagination pages-label="Листы:" total="120"></sf-pagination>

Добавить язык

Компонент привозит с собой два языка — это пол, а не потолок. Любой другой добавляется снаружи, и фреймворку не нужно о нём знать заранее.

JavaScript
SF.language.registerAll('tr', {
  'sf-pagination': { pagesLabel: 'Sayfalar:', totalLabel: 'Toplam:' },
  'sf-tag': { remove: 'Kaldır' },
});

SF.language.use('tr');   // переключиться сейчас, без перезагрузки
SF.language.use(null);   // снова следовать за страницей

Слова дополняют: можно поправить одну подпись, не переписывая остальные. Чего продукт не перевёл, то берётся по-английски, а не на языке, на котором случайно написана страница.

Что ещё есть

SF.language.current(node) какой язык выбран для этого узла, вместе с регионом
SF.language.register(component, code, words) один компонент, один язык
SF.language.known(component) для каких языков что-то зарегистрировано
SF.language.onChange(listener) вызывается при смене языка или словаря
SF.language.forget() забыть всё зарегистрированное
SF.pageLanguage(node), SF.pageText(dict, key, node) то же правило для своих элементов

Компоненты перерисовываются сами: подписка живёт в базовом элементе, одна на всех, поэтому смена языка не требует перезагрузки страницы и её не нужно раздавать по компонентам руками.

Что остаётся за продуктом

Данные. Названия записей, разделов и вариантов приходят от хоста, и язык у них его.

Форматы. Числа и даты в данных фреймворк не переводит: их форматирует хост (в компонентах пакета larena — функцией formatFieldValue(field, value), и в карточке записи, и в ячейке списка). Это решение продукта, а не фреймворка: «798 700 ₽» и «25 сентября 2026» выглядят по-разному в разных предметных областях.

Множественное число. Правил склонения во фреймворке нет. Там, где нужно «5 записей» против «2 записи», слово даёт хост.

Поиск по документации

Введите минимум 2 символа

    Настройки

    Тема
    Размер шрифта
    Ширина страницы