Skip to content
- Frontend i18n runtime:
app/frontend/src/i18n/index.ts, app/frontend/src/main.tsx, app/frontend/src/App.tsx
- Frontend dictionaries:
app/frontend/src/i18n/en.json, app/frontend/src/i18n/ru.json
- Frontend components localized in this pass:
App
SidebarPanel
ToastSystem
ErrorBoundary
ChartErrorBoundary
ChartExport
EmptyState
InlineConfirmButton
ProjectListFilters
ShortcutHelp
TemplateGallery
WizardPanel
WizardDraftStep
WizardReviewStep
ResultsPanel
components/results/*
components/results/internal/SensitivityOverview.tsx
components/results/internal/SrmCheckView.tsx
components/results/internal/ObservedResultsView.tsx
- Backend i18n/localized response path:
app/backend/app/main.py
app/backend/app/services/export_service.py
app/backend/app/rules/catalog.py
app/backend/app/rules/engine.py
app/backend/app/schemas/api.py
app/backend/app/i18n/en.json
app/backend/app/i18n/ru.json
POST /api/v1/analyze
Accept-Language: ru returns localized report payload
- verified by
app/backend/tests/test_export_api.py
- Export renderers in
app/backend/app/services/export_service.py
- markdown/html/pdf now resolve strings through backend i18n dictionaries
- Frontend top-level keys:
- Frontend normalized leaf keys:
en.json: 776
ru.json: 776
- Frontend raw leaf keys:
en.json: 793
ru.json: 827
- difference is expected because Russian pluralization uses
one/few/many/other
- Backend leaf keys:
app/backend/app/i18n/en.json: 235
app/backend/app/i18n/ru.json: 235
npm --prefix app/frontend run test:unit
python -m pytest app/backend/tests/test_export_api.py -q
python scripts/generate_frontend_api_types.py --check
- passed,
app/frontend/src/lib/generated/api-contract.ts is up to date
python scripts/generate_api_docs.py --check
- passed,
docs/API.md is up to date
- A temporary
sqlite3.OperationalError: database is locked appeared only when backend pytest and doc/type generators were run in parallel against the same workspace DB. Serial rerun passed.
- Full
scripts/verify_all.cmd --with-e2e was not run in this pass.
- Lighthouse / bundle budget verification was not run in this pass.
app/frontend/src/components/ApiKeyManager.tsx
- left untouched in this pass to stay inside the component list already being changed for this CX task
- Server logs / warning traces / low-level diagnostic field values
- kept technical/English intentionally
- Backend route names, HTTP methods, SQLite/LLM/auth technical labels
- left as technical identifiers rather than translated prose