项目作者: diegone

项目描述 :
Reverse lookup for low-cardinality CLDR data.
高级语言: JavaScript
项目地址: git://github.com/diegone/reverse-cldr.git
创建时间: 2021-05-04T16:26:36Z
项目社区:https://github.com/diegone/reverse-cldr

开源协议:MIT License

下载


Reverse CLDR

The CLDR is available as JSON files and published into several npm modules. It’s organized by locale and split into functional areas, making it easy to access one locale at a time. However, when trying to access it by functional area across all locales, it requires reading hundreds of files. Also, some properties have low cardinality and result in highly duplicated data.

This module consolidates data of a functional area into a single file for all locales (only modern locales actually). Every property becomes an object that contains all possible values as keys and a list of associated locales as values. The output is both in the form of a JS file that can be imported (and optimized so that only used properties are retained) or a JSON file that can be read in its entirety (with a simple de-duping mechanism to optimize memory consumption — see scripts/expandLocales.js).

For example, the defaultNumberingSystem property in the cldr-numbers-modern/main/af/numbers.json file:

  1. {
  2. "main": {
  3. "af": {
  4. "numbers": {
  5. "defaultNumberingSystem": "latn",
  6. ...

Aggregated with the other 300+ locale files, becomes a single numbers.json file like (after expansion):

  1. {
  2. "numbers": {
  3. "defaultNumberingSystem": {
  4. "latn": [
  5. "af",
  6. "af-NA",
  7. "am",
  8. "ar-DZ",
  9. ...
  10. "zu"
  11. ],
  12. "arab": [
  13. "ar",
  14. ...
  15. "sd",
  16. "sd-Arab"
  17. ],
  18. "beng": [
  19. "as",
  20. "bn",
  21. "bn-IN"
  22. ],
  23. "arabext": [
  24. "fa",
  25. "fa-AF",
  26. "ps",
  27. "ps-PK",
  28. "ur-IN"
  29. ],
  30. "deva": [
  31. "mr",
  32. "ne",
  33. "ne-IN"
  34. ],
  35. "mymr": [
  36. "my"
  37. ]
  38. },
  39. ...
  40. }
  41. }

or numbers.js file like:

  1. export function numbers_defaultNumberingSystem() { return {"latn":["af","af-NA","am","ar-DZ","ar-EH","ar-LY","ar-MA","ar-TN","az","az-Latn","be","bg","bs","bs-Latn","ca","ca-AD","ca-ES-VALENCIA","ca-FR","ca-IT","cs","cy","da","da-GL","de","de-AT","de-BE","de-CH","de-IT","de-LI","de-LU","el","el-CY","en","en-001","en-150","en-AE","en-AG","en-AI","en-AS","en-AT","en-AU","en-BB","en-BE","en-BI","en-BM","en-BS","en-BW","en-BZ","en-CA","en-CC","en-CH","en-CK","en-CM","en-CX","en-CY","en-DE","en-DG","en-DK","en-DM","en-ER","en-FI","en-FJ","en-FK","en-FM","en-GB","en-GD","en-GG","en-GH","en-GI","en-GM","en-GU","en-GY","en-HK","en-IE","en-IL","en-IM","en-IN","en-IO","en-JE","en-JM","en-KE","en-KI","en-KN","en-KY","en-LC","en-LR","en-LS","en-MG","en-MH","en-MO","en-MP","en-MS","en-MT","en-MU","en-MW","en-MY","en-NA","en-NF","en-NG","en-NL","en-NR","en-NU","en-NZ","en-PG","en-PH","en-PK","en-PN","en-PR","en-PW","en-RW","en-SB","en-SC","en-SD","en-SE","en-SG","en-SH","en-SI","en-SL","en-SS","en-SX","en-SZ","en-TC","en-TK","en-TO","en-TT","en-TV","en-TZ","en-UG","en-UM","en-US-POSIX","en-VC","en-VG","en-VI","en-VU","en-WS","en-ZA","en-ZM","en-ZW","es","es-419","es-AR","es-BO","es-BR","es-BZ","es-CL","es-CO","es-CR","es-CU","es-DO","es-EA","es-EC","es-GQ","es-GT","es-HN","es-IC","es-MX","es-NI","es-PA","es-PE","es-PH","es-PR","es-PY","es-SV","es-US","es-UY","es-VE","et","eu","fi","fil","fr","fr-BE","fr-BF","fr-BI","fr-BJ","fr-BL","fr-CA","fr-CD","fr-CF","fr-CG","fr-CH","fr-CI","fr-CM","fr-DJ","fr-DZ","fr-GA","fr-GF","fr-GN","fr-GP","fr-GQ","fr-HT","fr-KM","fr-LU","fr-MA","fr-MC","fr-MF","fr-MG","fr-ML","fr-MQ","fr-MR","fr-MU","fr-NC","fr-NE","fr-PF","fr-PM","fr-RE","fr-RW","fr-SC","fr-SN","fr-SY","fr-TD","fr-TG","fr-TN","fr-VU","fr-WF","fr-YT","ga","ga-GB","gl","gu","he","hi","hr","hr-BA","hu","hy","id","is","it","it-CH","it-SM","it-VA","ja","jv","ka","kk","km","kn","ko","ko-KP","ky","lo","lt","lv","mk","ml","mn","ms","ms-BN","ms-ID","ms-SG","nb","nb-SJ","nl","nl-AW","nl-BE","nl-BQ","nl-CW","nl-SR","nl-SX","nn","no","or","pa","pa-Guru","pl","pt","pt-AO","pt-CH","pt-CV","pt-GQ","pt-GW","pt-LU","pt-MO","pt-MZ","pt-PT","pt-ST","pt-TL","ro","ro-MD","root","ru","ru-BY","ru-KG","ru-KZ","ru-MD","ru-UA","si","sk","sl","so","so-DJ","so-ET","so-KE","sq","sq-MK","sq-XK","sr","sr-Cyrl","sr-Cyrl-BA","sr-Cyrl-ME","sr-Cyrl-XK","sr-Latn","sr-Latn-BA","sr-Latn-ME","sr-Latn-XK","sv","sv-AX","sv-FI","sw","sw-CD","sw-KE","sw-UG","ta","ta-LK","ta-MY","ta-SG","te","th","tk","tr","tr-CY","uk","ur","uz","uz-Latn","vi","yue","yue-Hant","zh","zh-Hans","zh-Hans-HK","zh-Hans-MO","zh-Hans-SG","zh-Hant","zh-Hant-HK","zh-Hant-MO","zu"],"arab":["ar","ar-AE","ar-BH","ar-DJ","ar-EG","ar-ER","ar-IL","ar-IQ","ar-JO","ar-KM","ar-KW","ar-LB","ar-MR","ar-OM","ar-PS","ar-QA","ar-SA","ar-SD","ar-SO","ar-SS","ar-SY","ar-TD","ar-YE","sd","sd-Arab"],"beng":["as","bn","bn-IN"],"arabext":["fa","fa-AF","ps","ps-PK","ur-IN"],"deva":["mr","ne","ne-IN"],"mymr":["my"]} }