BizHawk icon indicating copy to clipboard operation
BizHawk copied to clipboard

Localization support

Open RetroEdit opened this issue 2 months ago • 3 comments

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)

RetroEdit avatar Nov 11 '25 19:11 RetroEdit

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

YoshiRulz avatar Nov 11 '25 19:11 YoshiRulz

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).

CasualPokePlayer avatar Nov 13 '25 01:11 CasualPokePlayer

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

YoshiRulz avatar Nov 13 '25 02:11 YoshiRulz