Skip to content

Localization support #4541

Description

@RetroEdit

The README mentions this, but I thought support for translations deserved a tracked issue.

Maybe this is effectively "won't fix"? I'd imagine this might be kind of hard to add, but maybe C# or WinForms has some way of making it easier.

(Related searchable key words: internationalization, language, i18n, translate, translation, locale)

Activity

  1. added
    App: EmuHawkRelating to EmuHawk frontend
    MetaRelating to code organisation or to things that aren't code
    on Nov 11, 2025
  2. changed the issue type fromtoon Nov 11, 2025
  3. YoshiRulz commented on Nov 11, 2025

    @YoshiRulz
    Contributor

    See my notes #64, which I've summarised here.

    Internationalisation (i18n) can be divided into 2 parts: globalisation and localisation (l10n).
    Globalisation is the hard part (in terms of problem solving required), while localisation is "just" translating each string while taking into account its context and similar strings.
    Once we're ready, we could accept translations through a platform like Weblate.

    How should these strings be organised and stored?
    The most popular portable format is GNU gettext, but I think Fluent would be better. It was developed for Firefox. See #4406 for a POC.
    (I don't think we should try using the format that's integrated into WinForms.)

    Some globalisation problems to be solved:

    • Non-localised strings (such as movie headers) need to be read, written, and compared with locale-invariant methods
    • Numeric values can be represented very differently across cultures (any floats, fixed-point watches, percentages, filesizes, dates...)
    • Onboarding by asking the user to open the Profiles config is insufficient, there needs to be a language picker on first launch (which can be followed by a profile picker or other onboarding things)
    • Controls' positions on windows should really be mirrored horizontally with RTL locales, but WinForms might support that
  4. CasualPokePlayer commented on Nov 13, 2025

    @CasualPokePlayer
    Collaborator

    Fundamentally, we are limited in that even if we had all the infrastructure to translate everything, we can't exactly hire translators and I'm doubtful there would be some community support to handle translation, if we're lucky we'll have a few languages even able to be translated (assuming we're not just going to just machine translate this, which is worse than not translating at all IMO).

  5. YoshiRulz commented on Nov 13, 2025

    @YoshiRulz
    Contributor

    If RetroArch, PCSX2, Dolphin, or Azahar can find translators, so can we.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    App: DiscoHawkRelating to DiscoHawk toolApp: EmuHawkRelating to EmuHawk frontendMetaRelating to code organisation or to things that aren't codeRequest: Feature/EnhancementFor feature requests or possible improvements

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions