Migrate localizations to a purpose-built internationalization system
Right now, all localizations are partly hard-coded into the few commands that support some level of localized text. Switching to an internationalized approach would allow us to completely overhaul localizations as a whole and introduce server-specific locale settings, as well as make adding localizations much simpler by leveraging the long-standing tool base. * [ ] Establish a localization system. * [ ] Establish localization system usage inside commands. * [ ] Migrate existing texts into the localization system. * [ ] Migrate all hard-coded English strings to the (default) ``eng-US`` locale. _Note: Administrative 'owner' commands should be left alone._ * [ ] Migrate the French strings from ``constants.py`` to the ``fra-FR`` locale. * [ ] Migrate the German strings from ``constants.py`` to the ``deu-DE`` locale. * [ ] Expand the existing locales to encompass all features. * [ ] Complete the ``fra-CA`` (French Canadian) locale * [ ] Complete the ``deu`` (German) locale * [ ] Expand the set of localizations available to include all locales supported by Splatoon. * [ ] Establish the ``ces`` (Czech) locale * [ ] Establish the ``dan`` (Danish) locale * [ ] Establish the ``fra-FR`` locale * [ ] Establish the ``eng-GB`` (British English) locale _(We can do better than NoE's Splatoon localization, right?)_ * [ ] Establish the ``hun`` (Hungarian) locale * [ ] Establish the ``ita`` (Italian) locale * [ ] Establish the ``jpn`` (Japanese) and ``jpn-Hrkt`` (Japanese, kana-only) locales. _(Very important locale for Denwa-Boto!)_ * [ ] Establish the ``nld`` (Dutch) locale * [ ] Establish the ``nor`` (Norwegian) locale * [ ] Establish the ``pol`` (Polish) locale * [ ] Establish the ``por`` (Portuguese) locale * [ ] Establish the ``por-BR`` (Brazilian Portuguese) locale * [ ] Establish the ``spa-ES`` (Castilian Spanish) locale * [ ] Establish the ``spa-MX`` (Mexican Spanish) locale…complete with the cringe-inducing overuse of urban slang! _Note: Technically this would be ``spa-419`` (Spanish as used in the Latin Americas) per standards._ * [ ] Establish the ``zh-Hant`` and ``zh-Hans`` locales. _Note: ``zh`` does not represent a language as ``en`` or ``ja`` do; it's actually a written language for common communication across cultural boundaries (similar to Esperanto and Interlingua, among others). If there is any localized audio, ``cmn-Hant``/``cmn-Hans`` (Mandarin), ``yue-HK`` (Hong Kong Cantonese), and ``nan-TW`` (Taiwanese Hokkien) **MUST** be used as locales instead._ * [ ] Establish the ``rus`` (Russian) locale * [ ] Establish a system to ease translation efforts for the localization team. * [ ] Establish some kind of method for end-users to potentially assist with translation efforts.
issue