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