Page:
План stage11 i18n
Pages
API карта
Home
Архитектура 05 deal architecture design
Архитектура 09 unified card
Архитектура 10 operator analytics contract
Архитектура 10 unified api contract
Бэклог
Инструкция пользователя
Код стайл аудит 2026 09 11
Код стайл
План 2026 09 04 channel discovery
План 2026 09 11 codestyle остатки
План roadmap
План scaffold
План stage1 tenancy
План stage10 operator analytics
План stage11 i18n
План stage12 observability hardening
План stage2 settings
План stage3 kanban
План stage4 pipeline
План stage5 projects
План stage6 services
План stage7 saas
План stage9 unified card
Ревью 2026 09 08 code quality review
Ревью 2026 09 10 docs audit
Ревью 2026 09 10 tz compliance audit
Ревью 2026 09 11 docs final sweep
Спека 2026 09 04 channel discovery design
Спека 2026 09 11 source attachments вопросы
Спека 2026 09 11 source contract design
Спека 2026 09 11 структура проектов design
Статус разработки
ТЗ
Техническая документация
Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Перенесено из репозитория (
docs/superpowers/plans/2026-09-10-deal-stage11-i18n.md). Актуальная версия — здесь, в вики.
Дейл (Deal) — Этап 11: Локализация интерфейса (i18n)
Исторический документ этапа 11. Актуальное состояние —
docs/superpowers/STATUS.mdиdocs/technical/Техническая-документация-Дейл.md.
Статус: план (не начат). Требование владельца от 2026-09-10. Связанные документы:
docs/superpowers/plans/2026-09-05-deal-roadmap.md(Этап 11),docs/spec/ТЗ-дейл-новая-архитектура.md(§11, локализация),docs/superpowers/STATUS.md(Заделы).
Цель
Весь интерфейс — на русском; все пользовательские тексты вынесены в ресурсы (словари), чтобы можно было добавлять новые языки и менять язык на лету. Русский — язык по умолчанию.
Требования
- Русский по умолчанию. Все видимые строки UI: экраны, кнопки, подписи, заголовки, пустые состояния, подсказки, тултипы, тексты подтверждений, уведомления/тосты, страницы оператора и активации инвайта.
- Без хардкода. Ни одна пользовательская строка не хранится в компонентах/шаблонах напрямую — только ключ в словаре. Технические строки (id/ключи/логи) не локализуются.
- Ошибки API. Ответы бэка остаются
{detail}+ HTTP-код; фронт показывает локализованный текст по коду/ключу ошибки (расширяемый словарь ошибок). При необходимости бэк отдаёт код ошибки, а не только текст. - Переключение на лету. Смена языка без перезагрузки страницы; выбранный язык сохраняется (localStorage/настройки пользователя) и восстанавливается при входе.
- Расширяемость. Новый язык = новый файл словаря (+ регистрация), без правок компонентов.
- Форматирование. Даты/время/числа/валюты — через i18n-форматтеры; плюрализация — по правилам языка. Бэкенд-форматирование human-меток («только что», «N мин») — перевести на клиентские форматтеры или ключи.
- Ключи. Стабильные, сгруппированные по областям (
nav/,cards/,settings/,operator/,errors/…). Отсутствующий ключ в языке → фолбэк на русский (и, при необходимости, лог о пропуске).
Область
- Основное приложение: дашборд, «Выбранные», настройки (все вкладки), каналы, обработка/состояние, вход.
- Оператор-консоль (этап 10): все разделы + страница активации инвайта.
Объём (по факту кода на 2026-09-10)
- 69
.vue+ 20.js; ~708 строковых литералов на кириллице в ~67 файлах (components ≈478, views ≈300, store ≈82) + текст прямо в шаблонах. - Области: навигация/шапка, карточки и колонки, драйвер карточки, настройки (все вкладки), каналы, обработка/состояние, вход, оператор-консоль (все разделы), страница активации, тосты/подтверждения.
Решение владельца (2026-09-10)
- На этом этапе — только русский. Переключатель языка и второй язык — в бэклоге: делаем, когда возникнет потребность (см. «Отложено» ниже).
- Задача этапа — вынести все строки в ресурсы, чтобы язык можно было добавить позже без правок компонентов.
- Визуал и тексты — 1:1 с текущими (вынос не меняет отображаемый текст).
Задачи
- T1. i18n-ядро (без тяжёлых зависимостей). Composable/модуль:
t(key, params), реактивныйlocale(значение по умолчаниюru),setLocale()(архитектурно готов, UI-переключателя нет), загрузка словарей, фолбэк на ru при отсутствии ключа.src/i18n/+locales/ru.js. - T2. Инвентаризация и словарь ru. Вынести все строки в
locales/ru.js, ключи сгруппированы по областям (common/,nav/,cards/,drawer/,settings/,channels/,processing/,auth/,operator/,join/,errors/). Значения — 1:1 с текущими. - T3. Миграция основного приложения на
t()(компоненты + вьюхи + store-слайсы). - T4. Миграция оператор-консоли и страницы активации (
operator/,join/). - T5. Локализация ошибок/статусов. Маппинг известных
{detail}/HTTP-кодов и статусов на ключи (errors/*); неизвестное — как есть. - T6. Проверки. Скрипт-«линтер»: нет кириллицы в шаблонах/логике вне словарей;
npm run buildзелёный. - T7. Доки и STATUS. Инструкция/техдок: устройство i18n и как добавить язык позже.
Отложено (в бэклоге — делаем при появлении потребности)
- Переключатель языка в UI и второй язык (en) — при потребности (ядро/
registerLocaleготовы). - Форматтеры Intl/плюрализация — вместе с языком.
Границы
- Машинный автоперевод не делаем — словари добавляются вручную.
- Локализация писем/внешних уведомлений — если появятся, отдельной задачей.