Skip to content

feature: expand interface support to 15 languages - #346

Merged
artcc merged 14 commits into
developfrom
feature/languages
Sep 25, 2026
Merged

artcc merged 14 commits into
developfrom
feature/languages

Conversation

@artcc

@artcc artcc commented Sep 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add Turkish, Swedish, Danish, Finnish, and Croatian as interface and native-language options (not study languages), including message catalogs, locale detection, selectors, emails, lesson feedback, and voice-session titles.
  • Extend dashboard announcement translation and editing to 15 locales. Existing announcements with 10–14 translations remain readable; new saves require all 15.
  • Localize remaining UI/accessibility labels and delay the review form until the existing-review lookup completes. Update the changelog and affected specifications.

Validation

  • Local pre-push: ./scripts/format.sh — no changes; backend pytest -v — 1,432 passed, 85.90% coverage; frontend npm run lint, npx tsc --noEmit, npm run test:run — 628 passed.
  • CI checks and maintainer review pending.

- Extend dashboard banner locales and translation prompts to include `tr`
- Allow legacy ten-locale banner records to remain readable until Turkish is added
- Update admin and public banner responses to preserve missing translations
- Add backend and frontend tests for Turkish source and legacy banner editing
- Update UI locale lists, version badges, and What’s New version strings to `1.9.25`
- Refresh changelog and localization files for the Turkish interface release
- Update specs and version metadata to reflect eleven supported locales
- Replace hardcoded tooltips, aria labels, and sr-only text with locale strings across chat, feedback, flashcards, phrasebook, layout, loading, landing nav, sheet, and word tooltip components
- Add missing translation keys for delete, menu open/close, voice session, copy phrase, and vote actions in all supported locales
- Update assistant avatar alt text from Tutor to Lingu in chat and transcript components
- Start review prompt in a checking state, reset it when closed, and wait for the existing-review lookup before showing the rating form
- Extend frontend tests to cover localized labels, vote toggle label updates, loading-state behavior, and translated close labels
- Document localized tooltip and accessibility text behavior in frontend architecture specs and review prompt flow in review specs
- Record the fixes in the changelog
- Add Swedish to supported UI, native language, and dashboard banner locale lists
- Extend backend email, lesson feedback, voice session, and month-name localization for sv
- Update dashboard banner translation prompts and schemas to require twelve locales
- Add Swedish translations to message catalogs and refresh Whats New copy
- Update frontend locale detection, admin UI options, and registration/profile language pickers
- Add tests covering Swedish locale handling, banner translation, and middleware detection
- Reflow the DashboardBannerLocale type alias across multiple lines
- Keep the allowed locale set unchanged while improving readability
- Add `da` to supported locales, UI locale lists, and locale detection
- Include Danish translations for emails, lesson feedback, voice titles, and month names
- Extend dashboard banner schemas, translation prompt, and tests for 13 locales
- Add Danish message catalog and update frontend/i18n tests to include it
- Document Danish in the README and changelog
- Combine Turkish, Swedish, and Danish language additions into a single changelog entry
- Clarify that the three languages are available for interface and native-language options, not study languages
- Update dashboard announcements language support wording to cover source and translation use
- Add fi to supported UI, native language, and dashboard banner locale sets
- Extend dashboard banner translation prompt, schemas, and admin validation for Finnish
- Add Finnish voice session titles, month names, and lesson feedback strings
- Add Finnish verification, password reset, welcome, deletion, contact, feedback, and review email templates
- Introduce fi message catalog and update existing locale catalogs with Finnish names
- Update frontend locale lists, locale detection, onboarding, and admin banner handling for fi
- Add tests covering Finnish auth, middleware detection, voice titles, and banner translation flows
- Add `hr` to supported auth, admin, UI, and dashboard banner locale sets
- Extend dashboard banner translation handling to 15 locales and update tests
- Add Croatian answer feedback, voice session titles, month names, and email templates
- Add Croatian UI strings to message catalogs and locale detection logic
- Update frontend locale lists, registration, settings, and admin screens to include `hr`
- Add tests for Croatian auth, middleware detection, pluralization, and banner flows
- Resolve grammar, vocabulary, and phrasebook native-language help through the `languages` catalog
- Add localized FAQ text clarifying that public registration is disabled by default in NL, PL, RO, and RU
- Format voice conversation titles with Danish and Finnish ordinal day punctuation
- Expand voice conversation tests for Danish and Finnish title formatting
- Document native-language help label resolution and voice title date rules in specs
- Use the active UI locale for dates, numbers, prices, and counts across feedback, reviews, admin users, progress, onboarding, billing, assessment, and conversation flows
- Localize admin author badges and flashcards, grammar, vocabulary, and paywall copy with translated strings and plural forms
- Add shared error-message translations and update vocabulary set labels to use ICU plurals in all supported locales
- Fix German voice-session date formatting to use an ordinal day suffix
- Update the dashboard banner source-locale selector to load the selected translation before saving
- Expand and adjust frontend and i18n tests for locale-aware formatting, pluralization, and banner source selection
- Refresh changelog and API spec notes for the fifteen-locale banner and localization changes
- Mock `fetchMyReview` with a deferred promise in the rating plus comment test
- Resolve the pending review lookup inside `act` before asserting validation state
- Keep the test aligned with async review loading behavior
- Use translated target-language labels in admin reviews and language bubbles
- Replace star and review aria labels with locale-aware rating strings
- Localize payment recovery titles and descriptions in billing banners
- Map auth, assessment, chat, onboarding, profile, and settings failures to generic translated errors
- Handle known validation and quota cases with localized messages in login, register, reset password, and chat
- Update tests and specs for localized error handling and rating labels
- Pass the selected locale into email template rendering and set HTML lang accordingly
- Update transactional email tests to verify rendered locale declarations
- Sync locale cookies on profile save and reload only when the displayed locale changes
- Enforce 10-25 character password length on reset and surface requirements in the UI
- Localize conversation error codes and hide backend transport diagnostics from users
- Add translated voice trial and speech error strings across supported locales
- Fix Croatian comment pluralization and extend plural coverage tests
- Update password reset and voice message localization tests to cover the new behavior
- Preserve supported `NEXT_LOCALE` cookies during initial browser locale detection
- Ignore `Accept-Language` entries with zero or out-of-range quality values
- Update admin language code comments to match supported native-language locales
- Add ICU plural forms for Danish, Finnish, Swedish, and Croatian messages
- Document locale resolution behavior changes in platform instructions
- Record the locale detection fix in the changelog
@artcc
artcc merged commit 9482362 into develop Sep 25, 2026
2 checks passed
@artcc
artcc deleted the feature/languages branch September 25, 2026 04:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant