Перейти к содержимому

Языки интерфейса

Интерфейс на русском и английском: язык выбирается по браузеру, переключается в шапке и на странице входа и запоминается. Словари — packages/web/src/i18n/{ru,en}.ts; TypeScript и тесты следят, чтобы в них были одинаковые ключи и плейсхолдеры. Сообщения об ошибках сервер пишет на языке запроса: интерфейс передаёт свой язык в X-TSMC-Lang, CLI и скрипты — в Accept-Language (у CLI — из TSMC_LANG, LANG или языка системы). Словарь сервера — packages/server/src/messages.ts, тест проверяет, что у каждого сообщения есть перевод. Новый язык — ещё один файл словаря и строка в LANGS.

В тёмной шапке — переключатель проекта, разделы проекта (Обзор, Кейсы, Прогоны, Отчёты, Гигиена, Настройки) и поиск кейсов (Ctrl+K) и тема оформления: по умолчанию как в системе, но можно выбрать светлую или тёмную независимо от системы (запоминается в браузере; удобно для демо и тестирования). Обзор показывает проект целиком: ключевые цифры, тренд доли пройденных, открытые прогоны, находки гигиены, открытые баги и провалы по сьютам.

Интерфейс написан на Svelte 5 со стилями Tailwind CSS 4; цвета темы — CSS-переменные в packages/web/src/app.css, почему так — в ADR-0002.

Доступность проверяется в e2e: axe-core (WCAG 2.1 AA) проходит все страницы в светлой и тёмной теме.