Skip to content

[Feature]: Internationalization (i18n) Support #68

@LMArantes

Description

@LMArantes

Feature Description

Add full internationalization to Wora so that all UI text can be translated and switched at runtime (or auto-detected from the user’s OS locale).

  • Translation framework – propose next-intl, next-i18next, or react-i18next with server-side support for Nextron/Electron.
  • Locale files – e.g. /locales/en.json, /locales/ru.json, … containing every display string.
  • Language switcher in Settings plus automatic locale fallback (e.g. fr-FRfr).
  • Build-time extraction / linting of hard-coded strings to streamline contributor translations (CLI such as i18next-scanner).

Problem and Solution

Wora is currently English-only. Users in non-English regions must navigate in a second language, limiting usability and adoption. Community members have offered to translate, but no infrastructure exists to accept or manage those contributions.

Proposed solution

  1. Select an i18n framework

    • next-intl – lightweight, works well with Next 13/14/15.
    • react-i18next – battle-tested, clear Electron examples.
  2. Ship initial locales

    • Provide en (default) and one additional language (e.g. es) to validate the pipeline.
    • Keep all strings in JSON; remove inline literals from components.
  3. Electron integration

    • Detect OS locale via app.getLocale() in background.ts and pass it to the renderer via preload or IPC.
  4. Settings UI

    • Add a “Language” dropdown in /settings.
    • Persist the choice in the existing settings table.
  5. Contributor workflow

    • Document how to add/update a locale (single JSON file, PR template).

Additional Context

No response

Potential Issues

No response

Wora Version

v0.4.0-beta2

Discord Username

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions