Локализация
Все пользовательские строки компонентов берутся из единого словаря. Локаль и переопределения задаются один раз — централизованно.
Выбор локали
Дефолтная локаль — английская. Русская (ru) встроена и включается при регистрации плагина:
// app.js
import StartupUI from 'startup-ui';
app.use(StartupUI, { locale: 'ru' });Если не используете глобальный плагин (импортируете компоненты по отдельности), настройте локализацию напрямую:
import { configureStartupUi } from 'startup-ui';
configureStartupUi({ locale: 'ru' });Переопределение строк
messages сливаются (deep-merge) поверх встроенных словарей — переопределять можно точечно, по отдельным ключам:
app.use(StartupUI, {
locale: 'en',
messages: {
en: {
confirm: { accept: 'Confirm', cancel: 'Dismiss' },
pagination: { perPage: 'Show {n}' },
},
},
});Своя локаль
Можно добавить произвольную локаль целиком, передав полный словарь и выбрав её:
import { configureStartupUi } from 'startup-ui';
import de from './locales/startup-ui.de';
configureStartupUi({ locale: 'de', messages: { de } });Смена локали в рантайме
import { setLocale } from 'startup-ui';
setLocale('en'); // все компоненты реактивно перерисуютсяРегиональные локали
Коды с региональным субтегом резолвятся с фолбэком по базовому языку: en-US → en, ru-RU → ru (и в конце — en). Поэтому можно безопасно передавать navigator.language.
Встроенная локаль en-US отличается от en первым днём недели — воскресенье (в en/ru неделя начинается с понедельника) — и 12-часовым форматом времени с AM/PM в SDatePicker:
configureStartupUi({ locale: 'en-US' }); // SDatePicker: неделя с воскресенья, время в формате AM/PMПервый день недели можно задать и точечно — пропом first-day у SDatePicker (0 — вс, 1 — пн).
Доступные ключи
| Группа | Ключи |
|---|---|
confirm | title, accept, cancel |
pagination | shown, of, perPage (плейсхолдер {n}) |
select | noData |
table | noData |
canvas | sidebarMobileTitle |
upload | selectFile, selectFiles |
copyText | copy |
columnSettings | configure, reset, resetTo ({title}), resetChanges |
dropdownMenu | placeholder |
datePicker | weekDays[], months[], notSelected, firstDay (0 — вс, 1 — пн), hour12 (12-часовой формат с AM/PM), am, pm |
htmlEditor | language, blocks.* |
Точечные пропы компонентов (например sidebar-mobile-title у SCanvas, nodata у STable) по-прежнему имеют приоритет над словарём.