[Feature Request] Add all CLDR locales for each language option
INTRODUCTION
As of now, Discord only has one region per language, with the exception of English also having United Kingdom in addition to United States. Discord is currently using CLDR to fetch date and time formats, calendar information, number and currency formats and more.
Due to Discord only offering limited locales to pick from, users are unable to get their desired format. Taking English as an example. English (US) is MDY, 12-hours, Sunday first, and English (UK) is DMY with 24-hours. But this is ignoring other major English speaking regions such as Canada with YMD, 12-hours, Sunday first and Australia with DMY, 12-hours, Monday first.
People often come with the idea that Discord should add options to select 12/24 hour time, and if they want DD/MM/YYYY or MM/DD/YYYY formats. But this is not optimal, since this is ignoring the variety of date formats using symbols like . and - as well as not the most user friendly setup. Discord should instead offer all regions for each language supported, as avaialble on CLDR.
IMPLEMENTATION
CLDR contains more than just one region per language, and Discord should implement a similar locale selection that is offered by Android. When choosing language, you pick your language, and then get to choose country. The list of countries should be in the language you picked, and CLDR has a list of translations for each country. The flags should be removed from the language picker, and could be moved to the country picker instead. By picking English, you get to choose from United States, United Kingdom, Australia, Canada, India and more.
CLDR has an easy to access list of what regions are available for each language. For English, you have these country codes: AE, AG, AI, AS, AT, AU, BB, BE, BI, BM, BS, BW, BZ, CA, CC, CH, CK, CM, CX, CY, DE, DG, DK, DM, ER, FI, FJ, FK, FM, GB, GD, GG, GH, GI, GM, GU, GY, HK, IE, IL, IM, IN, IO, JE, JM, KE, KI, KN, KY, LC, LR, LS, MG, MH, MO, MP, MS, MT, MU, MW, MY, NA, NF, NG, NL, NR, NU, NZ, PG, PH, PK, PN, PR, PW, RW, SB, SC, SD, SE, SG, SH, SI, SL, SS, SX, SZ, TC, TK, TO, TT, TV, TZ, UG, UM, US, VC, VG, VI, VU, WS, ZA, ZM, ZW. All these are available on Android. Since this is a lot of options, Android puts the major regions first: AU, CA, IN, UK, US + your current country if available. As I'm from Sweden, English (Sweden) is one of the top options.
REGIONAL DIFFERENCES
Other languages that would benefit from this would be German, where January normally is "Januar", but in German (Austria), it is instead "Jänner". Another example is Spanish, where September normally is "septiembre", but in Spanish (Peru), it is instead "setiembre". Even date formats can change between languages. French (France) is DD/MM/YYYY, French (Switzerland) is DD.MM.YYYY, French (Canada) is YYYY-MM-DD. Futhermore, if it's "AM", "am", "a.m." varies a lot between each region, so even small changes matters when selecting region.
FORMAT CORRECTION
Furthermore, I can see that Discord is using a custom short date format in English (US), by using MM/DD/YYYY instead of the standard M/D/YY. Obviously so the full year can be written out. But I advise instead to either replace any "YY" in the date format to "YYYY", or use the short format provided by CLDR called "yMd" which is specifically for a full year. But since the latter has less support in CLDR, the former might give better result.
COMMONWEALTH SPELLING
Finally, add the minor string changes to the en, en_001 and en_CA region, so it reflects American, Commonwealth and Canadian English usage. These changes are few and easy to implement:
- iz*→is*, for 'en_001', for the following words: anonymiz*, authoriz*, apologize, customiz*, deauthorize, finalizing, maximize, minimize*, optimized, organize, personaliz*, prioritize, randomized, recognize*, revitalized, stylized, unauthorized, uncategorized, vaporizing (* marks 0 or more letters) – but keep it as "iz*" for 'en_CA'
- or*→our*, for 'en_001', for the following words: behavior, color*, favorite*, flavorful, humor, neighbor (* marks 0 or more letters)
- er→re, for 'en_001', for the following words: center
- soccer→football, for 'en_001', but keep it as "soccer" for 'en_AU', 'en_CA', 'en_IE'.
- for 'en', correct "cancellation" to "cancelation", and add "cancellation" to 'en_001'.
SUMMARY
- Change the language select menu, so you first select a language, and then select a country. Fetch all country options from CLDR.
- Use CLDR for date, time, calendar, number and currency formats to ensure it's the correct format for each region. Replace "yy" with "y"/"yyyy" to get the full year without changing the rest of the format, keeping the original pattern.
- Add an option to choose between auto/12/24 hour time format, but not necessary.
- Add regional spelling for 'en_001' (-ise, -our, -re) with minor exceptions for 'en_AU', 'en_CA', 'en_IE'.
-
Here are some mockups of what it could look like:
Language select menu, removal of flags since that's no longer relevant, and removal of the repeated language name that is redundant. Two columns are used to more efficient use the space:

After selecting a language, you get a popup where you can choose your region, which will give you your actual local formats. The missing slot should be filled with your current country, so if you're browsing from Germany, then Germany would fill that spot. If you're browsing from Egypt, which isn't a valid option, that spot will be empty:
5
Please sign in to leave a comment.
Comments
1 comment