Skip to content

Feature request: i18n / internationalization support #2493

@sonsay

Description

@sonsay

Is your feature request related to a problem?

Shelf.nu currently supports only English UI. Teams whose users are non-English-speaking (churches, NGOs, schools outside the Anglosphere) either need a translator in the loop or rely on browser auto-translate, which breaks form labels, error states, and confuses end users.

The codebase has no i18n/ folder, no useTranslation hooks, and only intl-parse-accept-language for locale detection — but no way to actually display the app in another language.

Describe the solution you'd like

First-class i18n support along the lines of what most modern apps use:

  • react-i18next or @lingui/react integration
  • locales/{en,ru,uk,sk,de,es,...}.json files
  • Language switcher in user settings, persisted per user (already have user.id — add user.locale)
  • t() wrapping of all user-facing strings
  • Date/number formatting via Intl (can piggy-back on existing intl-parse-accept-language)
  • Translation contributions via Crowdin / Weblate / directly in PRs

Describe alternatives you've considered

  • Browser auto-translate — breaks reactive UI, form state, date parsing
  • Forking — defeats the purpose of self-hosting the upstream image

Additional context

Happy to contribute initial Russian, Ukrainian, and Slovak translations once the framework is in place. This would unlock Shelf for the Eastern-European church/NGO market, where self-hosted asset tracking on Supabase is attractive but the English-only UI is a blocker for non-technical users (volunteers, property stewards).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions