-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
-
4.3
-
MOODLE_403_STABLE
Consider using unicode CLDR (https://cldr.unicode.org/) as a source for all language specific settings and for translations that every project needs.
It includes:
- Locale-specific patterns for formatting and parsing: dates, times, timezones, numbers and currency values, measurement units,...
- Translations of names: languages, scripts, countries and regions, currencies, eras, months, weekdays, day periods, time zones, cities, and time units, emoji characters and sequences (and search keywords),...
- Language & script information: characters used; plural cases; gender of lists; capitalization; rules for sorting & searching; writing direction; transliteration rules; rules for spelling out numbers; rules for segmenting text into graphemes, words, and sentences; keyboard layouts...
- Country information: language usage, currency information, calendar preference, week conventions,...
- Validity: Definitions, aliases, and validity information for Unicode locales, languages, scripts, regions, and extensions,...
This could replace the time interval strings entirely, and also files like timezones, countries and currencies, giving every language in Moodle a correct translation for those things, without duplicating work, from the start.
This could also replace the dates being pulled out of the operating system, which is fine for languages having an operating system supported locale, but impossible to get proper dates for languages without.
It would also help in discussions like https://moodle.org/mod/forum/discuss.php?d=450819
I think the easiest way to implement this, is to let Amos download the CLDR files and generate strings out of it, to fill the language packs. The CLDR-files are presented as JSON-files.
You can find them listed per type on https://github.com/unicode-org/cldr-json/tree/43.0.0/cldr-json. Every type contains subfolders for all languages.
E.G.
- the time strings you can find in https://github.com/unicode-org/cldr-json/tree/43.0.0/cldr-json/cldr-dates-modern/main
- The countries you can find (for Dutch) in https://github.com/unicode-org/cldr-json/blob/43.0.0/cldr-json/cldr-localenames-modern/main/nl/territories.json
- Timezones you can find in https://github.com/unicode-org/cldr-json/blob/43.0.0/cldr-json/cldr-dates-modern/main/nl/timeZoneNames.json
- Currencies you can find in https://github.com/unicode-org/cldr-json/blob/43.0.0/cldr-json/cldr-numbers-full/main/nl/currencies.json
- ...
- has a non-specific relationship to
-
MDL-84983 Some languages are causing "unconstructed IntlDateFormatter"
-
- Closed
-
-
MDL-85508 Add month to lang/en/calendar.php
-
- Reopened
-
-
MDL-83873 Create a “human date” output classes
-
- Closed
-
- has been marked as being related by
-
MDL-80185 Invalid language attribute on html tag for languages such as en_wp and de_kids
-
- Closed
-
-
MDL-84697 Move untranslatable strings from langconfig (regression from MDL-83873)
-
- Closed
-
- will help resolve
-
MDL-79461 Langconfig.php should not contain translatable strings
-
- Open
-
-
MDLSITE-2191 Check and correct the iso6391 and iso6392 strings in each lang pack
-
- Open
-
-
MDL-78983 Follow-up for MDL-75047 (Revert flipping help icon direction in right-to-left languages)
-
- Closed
-
-
MDL-73967 Consider deprecating decsep/thousandssep and move to localecldr
-
- Open
-