diff --git a/SHARDS.md b/SHARDS.md new file mode 100644 index 00000000000..bac57a04848 --- /dev/null +++ b/SHARDS.md @@ -0,0 +1,48 @@ +# Building ICU Shards + +The ICU is divided by locales and features.
+ +By locale: +- EFIGS (en, fr, it, de, es) +- CJK (zh, ja, ko) +- no CJK (all locales except for zh, ja, ko) + +By features: +- Collation +- Normalization +- Currency +- Locales +- Zones + +To generate ICU shards run: + +`make -C ./eng -f icu.mk shards` + +which will build all shards from filter files available in `icu-filters/` as well as `icu-dictionary.json`, which maps each parent locale (i.e. en) to relevant files. + +## ICU dictionary +The ICU dictionary is divided into the following format: + +``` +{ + "en": { + "essentials": [ + icudt_currency.dat, + icudt_normalization.dat, + icudt_base.dat + ] + "zones": [ relevant timezone data files ], + "locales": [ relevant locale data files ], + "coll": [ relevant collationd data files ] + } + . + . + . +} +``` + +To generate just the ICU dictionary run: + +`make -C ./eng -f icu.mk icu_dictionary.json` + +The dictionary is packaged with the data files to be consumed later by the WASM runtime. diff --git a/eng/azure-pipelines.yml b/eng/azure-pipelines.yml index 57f69f45a44..ab8018d5d22 100644 --- a/eng/azure-pipelines.yml +++ b/eng/azure-pipelines.yml @@ -32,7 +32,7 @@ stages: ############ BROWSER BUILD ############ - job: Build_Browser displayName: Browser - timeoutInMinutes: 30 + timeoutInMinutes: 40 pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: vmImage: ubuntu-18.04 @@ -43,7 +43,7 @@ stages: image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-webassembly-20220531132048-00a561c steps: - bash: | - ./build.sh --ci --restore --build --configuration $(_BuildConfig) /p:TargetOS=Browser /p:TargetArchitecture=wasm $(_InternalBuildArgs) + ./build.sh --ci --restore --build --configuration $(_BuildConfig) /p:TargetOS=Browser /p:TargetArchitecture=wasm /p:IcuSharding=true $(_InternalBuildArgs) displayName: Build - task: PublishPipelineArtifact@1 displayName: Upload artifacts diff --git a/eng/icu.browser.mk b/eng/icu.browser.mk index ea733efc2df..bdb477b0da5 100644 --- a/eng/icu.browser.mk +++ b/eng/icu.browser.mk @@ -1,5 +1,6 @@ ENV_INIT_SCRIPT = source $(EMSDK_PATH)/emsdk_env.sh && ENV_CONFIGURE_WRAPPER = emconfigure +ICU_SHARDING = true ifeq ($(WASM_ENABLE_THREADS),true) THREADS_FLAG="-pthread" diff --git a/eng/icu.mk b/eng/icu.mk index 0cd7ce0fa69..bb5b454c111 100644 --- a/eng/icu.mk +++ b/eng/icu.mk @@ -99,6 +99,38 @@ endif $(eval $(call TargetBuildTemplate,icudt_CJK,icudt_CJK)) $(eval $(call TargetBuildTemplate,icudt_no_CJK,icudt_no_CJK)) $(eval $(call TargetBuildTemplate,icudt_EFIGS,icudt_EFIGS)) +$(eval $(call TargetBuildTemplate,icudt_normalization,icudt_normalization)) +$(eval $(call TargetBuildTemplate,icudt_base,icudt_base)) +$(eval $(call TargetBuildTemplate,icudt_currency,icudt_currency)) +$(eval $(call TargetBuildTemplate,icudt_full_full,icudt_full_full)) +$(eval $(call TargetBuildTemplate,icudt_full_coll,icudt_full_coll)) +$(eval $(call TargetBuildTemplate,icudt_full_zones,icudt_full_zones)) +$(eval $(call TargetBuildTemplate,icudt_full_locales,icudt_full_locales)) +$(eval $(call TargetBuildTemplate,icudt_efigs_locales,icudt_efigs_locales)) +$(eval $(call TargetBuildTemplate,icudt_efigs_coll,icudt_efigs_coll)) +$(eval $(call TargetBuildTemplate,icudt_efigs_full,icudt_efigs_full)) +$(eval $(call TargetBuildTemplate,icudt_efigs_zones,icudt_efigs_zones)) +$(eval $(call TargetBuildTemplate,icudt_cjk_locales,icudt_cjk_locales)) +$(eval $(call TargetBuildTemplate,icudt_cjk_zones,icudt_cjk_zones)) +$(eval $(call TargetBuildTemplate,icudt_cjk_full,icudt_cjk_full)) +$(eval $(call TargetBuildTemplate,icudt_cjk_coll,icudt_cjk_coll)) +$(eval $(call TargetBuildTemplate,icudt_no_cjk_full,icudt_no_cjk_full)) +$(eval $(call TargetBuildTemplate,icudt_no_cjk_coll,icudt_no_cjk_coll)) +$(eval $(call TargetBuildTemplate,icudt_no_cjk_zones,icudt_no_cjk_zones)) +$(eval $(call TargetBuildTemplate,icudt_no_cjk_locales,icudt_no_cjk_locales)) + + +ICU_SHARDS := icudt_base icudt_normalization icudt_currency icudt_cjk_zones icudt_no_cjk_zones icudt_efigs_zones icudt_efigs_locales icudt_cjk_locales icudt_no_cjk_locales icudt_efigs_coll icudt_cjk_coll icudt_no_cjk_coll icudt_efigs_full icudt_cjk_full icudt_no_cjk_full icudt_full_full +DATA_SHARDS := $(addprefix data-, $(ICU_SHARDS)) + +dictionary: + cd $(TOP)/icu/icu4c/source/ && PYTHONPATH=python python3 -m icutools.databuilder --mode=makedict --filter_dir=$(ICU_FILTER_PATH) --out_dir=$(TARGET_BINDIR) --shard_cfg=$(abspath $(CURDIR)/main-config.json) --exclude_feats=zones; + +shards: dictionary $(DATA_SHARDS) # build source+data for the main "icudt" filter and only data for the other filters -all: lib-icudt data-icudt data-icudt_no_CJK data-icudt_EFIGS data-icudt_CJK +ifeq ($(ICU_SHARDING), true) +all: lib-icudt data-icudt data-icudt_no_CJK data-icudt_EFIGS data-icudt_CJK dictionary shards +else +all: lib-icudt data-icudt data-icudt_no_CJK data-icudt_EFIGS data-icudt_CJK +endif diff --git a/eng/icu.proj b/eng/icu.proj index da08c33e49d..98c9ca9f1d8 100644 --- a/eng/icu.proj +++ b/eng/icu.proj @@ -1,40 +1,40 @@ - - - + + + - - <_ExtraParams Condition="'$(WasmEnableThreads)' == 'true'">WASM_ENABLE_THREADS=true - + + <_ExtraParams Condition="'$(WasmEnableThreads)' == 'true'">WASM_ENABLE_THREADS=true + - - - - - - - - + + + + + + + + - - - - - - - - - - + + + + + + + + + diff --git a/eng/main-config.json b/eng/main-config.json new file mode 100644 index 00000000000..f181549d16e --- /dev/null +++ b/eng/main-config.json @@ -0,0 +1,474 @@ +{ + "shards": { + "efigs": "(?:en|fr|it|de|es)", + "cjk": "(?:en|zh|ja|ko)", + "no_cjk": "^(?!.*(zh|ja|ko))", + "full": "full" + }, + "packs": { + "base": { + "core": [ "base", "normalization" ], + "features": ["currency"] + }, + "shards": { + "extends": "base", + "full": ["full"], + "core": ["locales", "coll"], + "features": ["zones"] + }, + "full": "full" + }, + "filter": { + "coll": { + "collationUCAData": "implicithan" + }, + "strategy": { + "strategy": "additive" + }, + "localeFilter": { + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "ja_JP", + "kn_IN", + "ko_KR", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN", + "zh_CN", + "zh_Hans_HK", + "zh_SG", + "zh_HK", + "zh_TW" + ] + + }, + "featureFilters": { + "base": { + "misc": { + "whitelist": [ + "numberingSystems", + "icuver", + "keyTypeData", + "supplementalData" + ] + }, + "brkitr_rules": { + "whitelist": ["char"] + }, + "brkitr_tree": "include" + }, + "normalization": { + "normalization": { + "blacklist": [ + "nkfc_cf", + "nkfc" + ] + } + }, + "currency": { + "curr_supplemental": "include", + "misc": { + "whitelist": [ + "numberingSystems", + "currencyNumericCodes", + "supplementalData", + "keyTypeData" + ] + }, + "curr_tree": { + "whitelist": ["root"] + } + }, + "locales": { + "locales_tree": "include", + "misc": { + "whitelist": [ + "supplementalData" + ] + } + }, + "zones": { + "zone_tree": "include", + "misc": { + "whitelist": [ + "metaZones", + "zoneinfo64" + ] + } + }, + "coll": { + "coll_ucadata": "include", + "coll_tree": "include" + } + }, + "resourceFilters": { + "base": [ + { + "categories": [ + "misc" + ], + "files": { + "whitelist": [ + "supplementalData" + ] + }, + "rules": [ + "+/calendarData", + "+/calendarPreferenceData", + "+/timeData", + "+/weekData", + "+/cldrVersion" + ] + }, + { + "categories": [ + "brkitr_tree" + ], + "rules": [ + "+/" + ] + }, + { + "categories": [ + "misc" + ], + "files": { + "whitelist": [ + "numberingSystems", + "icuver", + "keyTypeData" + ] + }, + "rules": [ + "+/" + ] + } + ], + "currency": [ + { + "categories": ["misc"], + "files": { + "whitelist": ["supplementalData"] + }, + "rules": [ + "+/codeMappings", + "+/idValidity", + "+/cldrVersion" + ] + }, + { + "categories": [ + "misc" + ], + "files": { + "whitelist": [ + "numberingSystems", + "currencyNumericCodes", + "keyTypeData" + ] + }, + "rules": [ + "+/" + ] + }, + { + "categories": [ + "curr_tree" + ], + "files": { + "whitelist": [ "root" ] + }, + "rules": [ + "+/" + ] + } + ], + "locales": [ + { + "categories": ["locales_tree"], + "rules": [ + "+/NumberElements", + "-/NumberElements/latn/miscPatterns", + "-/NumberElements/latn/patternsLong", + "-/NumberElements/latn/patternsShort", + "-/NumberElements/*/patternsLong", + "-/NumberElements/*/patternsShort", + "-/NumberElements/minimalPairs", + "+/Version", + "+/layout" + ] + }, + { + "categories": ["locales_tree"], + "files": { + "blacklist": ["root"] + }, + "rules": [ + "+/calendar/default", + "+/calendar/gregorian", + "+/calendar/generic" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/calendar" + ] + }, + { + "shards": ["cjk", "full"], + "categories": ["locales_tree"], + "files": { + "whitelist": ["ja"] + }, + "rules": [ + "+/calendar/japanese" + ] + }, + { + "shards": ["cjk"], + "categories": ["locales_tree"], + "files": { + "whitelist": ["ko"] + }, + "rules": [ + "+/calendar/dangi" + ] + }, + { + "shards": ["cjk"], + "categories": ["locales_tree"], + "files": { + "whitelist": ["zh", "zh_Hant"] + }, + "rules": [ + "+/calendar/roc" + ] + }, + { + "categories": ["misc"], + "files": { + "whitelist": ["supplementalData"] + }, + "rules": [ + "+/cldrVersion", + "+/codeMappings", + "+/calendarData", + "+/calendarPreferenceData", + "+/timeData", + "+/measurementData", + "+/weekData" + ] + } + ], + "zones": [ + { + "categories": ["zone_tree"], + "rules": [ + "+/zoneStrings/*" + ] + } + ], + "coll": [ + { + "shards": ["no_cjk", "efigs"], + "categories": ["coll_tree"], + "rules": [ + "+/collations/default", + "+/collations/standard", + "-/UCARules" + ] + }, + { + "shards": ["cjk", "full"], + "categories": ["coll_tree"], + "rules": [ + "+/collations/default", + "+/collations/standard", + "+/collations/private-kana", + "-/UCARules" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/icu-filters/icudt_base.json b/icu-filters/icudt_base.json new file mode 100644 index 00000000000..e1781490629 --- /dev/null +++ b/icu-filters/icudt_base.json @@ -0,0 +1,252 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "ja_JP", + "kn_IN", + "ko_KR", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN", + "zh_CN", + "zh_Hans_HK", + "zh_SG", + "zh_HK", + "zh_TW" + ] + }, + "featureFilters": { + "misc": { + "whitelist": [ + "numberingSystems", + "icuver", + "keyTypeData", + "supplementalData" + ] + }, + "brkitr_rules": { + "whitelist": [ + "char" + ] + }, + "brkitr_tree": "include" + }, + "strategy": "additive", + "resourceFilters": [ + { + "categories": [ + "misc" + ], + "files": { + "whitelist": [ + "supplementalData" + ] + }, + "rules": [ + "+/calendarData", + "+/calendarPreferenceData", + "+/timeData", + "+/weekData", + "+/cldrVersion" + ] + }, + { + "categories": [ + "brkitr_tree" + ], + "rules": [ + "+/" + ] + }, + { + "categories": [ + "misc" + ], + "files": { + "whitelist": [ + "numberingSystems", + "icuver", + "keyTypeData" + ] + }, + "rules": [ + "+/" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_cjk_coll.json b/icu-filters/icudt_cjk_coll.json new file mode 100644 index 00000000000..ddb632dfc59 --- /dev/null +++ b/icu-filters/icudt_cjk_coll.json @@ -0,0 +1,36 @@ +{ + "localeFilter": { + "filterType": "language", + "includeScripts": true, + "includeChildren": true, + "whitelist": [ + "ko", + "en", + "ja", + "zh" + ] + }, + "collationUCAData": "implicithan", + "featureFilters": { + "coll_ucadata": "include", + "coll_tree": "include" + }, + "strategy": "additive", + "resourceFilters": [ + { + "shards": [ + "cjk", + "full" + ], + "categories": [ + "coll_tree" + ], + "rules": [ + "+/collations/default", + "+/collations/standard", + "+/collations/private-kana", + "-/UCARules" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_cjk_full.json b/icu-filters/icudt_cjk_full.json new file mode 100644 index 00000000000..d319b8aa1df --- /dev/null +++ b/icu-filters/icudt_cjk_full.json @@ -0,0 +1,211 @@ +{ + "collationUCAData": "implicithan", + "featureFilters": { + "misc": { + "whitelist": [ + "supplementalData", + "icuver", + "numberingSystems", + "currencyNumericCodes", + "keyTypeData" + ] + }, + "brkitr_rules": { + "whitelist": [ + "char" + ] + }, + "brkitr_tree": "include", + "normalization": { + "blacklist": [ + "nkfc_cf", + "nkfc" + ] + }, + "curr_supplemental": "include", + "curr_tree": { + "whitelist": [ + "root" + ] + }, + "locales_tree": "include", + "coll_ucadata": "include", + "coll_tree": "include" + }, + "resourceFilters": [ + { + "categories": [ + "brkitr_tree" + ], + "rules": [ + "+/" + ] + }, + { + "categories": [ + "curr_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/" + ] + }, + { + "categories": [ + "locales_tree" + ], + "rules": [ + "+/NumberElements", + "-/NumberElements/latn/miscPatterns", + "-/NumberElements/latn/patternsLong", + "-/NumberElements/latn/patternsShort", + "-/NumberElements/*/patternsLong", + "-/NumberElements/*/patternsShort", + "-/NumberElements/minimalPairs", + "+/Version", + "+/layout" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "blacklist": [ + "root" + ] + }, + "rules": [ + "+/calendar/default", + "+/calendar/gregorian", + "+/calendar/generic" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/calendar" + ] + }, + { + "shards": [ + "cjk", + "full" + ], + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "ja" + ] + }, + "rules": [ + "+/calendar/japanese" + ] + }, + { + "shards": [ + "cjk" + ], + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "ko" + ] + }, + "rules": [ + "+/calendar/dangi" + ] + }, + { + "shards": [ + "cjk" + ], + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "zh", + "zh_Hant" + ] + }, + "rules": [ + "+/calendar/roc" + ] + }, + { + "shards": [ + "cjk", + "full" + ], + "categories": [ + "coll_tree" + ], + "rules": [ + "+/collations/default", + "+/collations/standard", + "+/collations/private-kana", + "-/UCARules" + ] + }, + { + "categories": "misc", + "files": { + "whitelist": [ + "supplementalData" + ] + }, + "rules": [ + "+/calendarData", + "+/calendarPreferenceData", + "+/codeMappings", + "+/timeData", + "+/measurementData", + "+/cldrVersion", + "+/idValidity", + "+/weekData" + ] + }, + { + "categories": "misc", + "files": { + "whitelist": [ + "icuver", + "numberingSystems", + "keyTypeData", + "currencyNumericCodes" + ] + }, + "rules": [ + "+/" + ] + } + ], + "strategy": "additive", + "localeFilter": { + "filterType": "language", + "includeScripts": true, + "includeChildren": true, + "whitelist": [ + "ko", + "en", + "ja", + "zh" + ] + } +} \ No newline at end of file diff --git a/icu-filters/icudt_cjk_locales.json b/icu-filters/icudt_cjk_locales.json new file mode 100644 index 00000000000..bf94a96f0fb --- /dev/null +++ b/icu-filters/icudt_cjk_locales.json @@ -0,0 +1,137 @@ +{ + "localeFilter": { + "filterType": "language", + "includeScripts": true, + "includeChildren": true, + "whitelist": [ + "ko", + "en", + "ja", + "zh" + ] + }, + "featureFilters": { + "locales_tree": "include", + "misc": { + "whitelist": [ + "supplementalData" + ] + } + }, + "strategy": "additive", + "resourceFilters": [ + { + "categories": [ + "locales_tree" + ], + "rules": [ + "+/NumberElements", + "-/NumberElements/latn/miscPatterns", + "-/NumberElements/latn/patternsLong", + "-/NumberElements/latn/patternsShort", + "-/NumberElements/*/patternsLong", + "-/NumberElements/*/patternsShort", + "-/NumberElements/minimalPairs", + "+/Version", + "+/layout" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "blacklist": [ + "root" + ] + }, + "rules": [ + "+/calendar/default", + "+/calendar/gregorian", + "+/calendar/generic" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/calendar" + ] + }, + { + "shards": [ + "cjk", + "full" + ], + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "ja" + ] + }, + "rules": [ + "+/calendar/japanese" + ] + }, + { + "shards": [ + "cjk" + ], + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "ko" + ] + }, + "rules": [ + "+/calendar/dangi" + ] + }, + { + "shards": [ + "cjk" + ], + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "zh", + "zh_Hant" + ] + }, + "rules": [ + "+/calendar/roc" + ] + }, + { + "categories": [ + "misc" + ], + "files": { + "whitelist": [ + "supplementalData" + ] + }, + "rules": [ + "+/cldrVersion", + "+/codeMappings", + "+/calendarData", + "+/calendarPreferenceData", + "+/timeData", + "+/measurementData", + "+/weekData" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_cjk_zones.json b/icu-filters/icudt_cjk_zones.json new file mode 100644 index 00000000000..ee005631243 --- /dev/null +++ b/icu-filters/icudt_cjk_zones.json @@ -0,0 +1,33 @@ +{ + "localeFilter": { + "filterType": "language", + "includeScripts": true, + "includeChildren": true, + "whitelist": [ + "ko", + "en", + "ja", + "zh" + ] + }, + "featureFilters": { + "zone_tree": "include", + "misc": { + "whitelist": [ + "metaZones", + "zoneinfo64" + ] + } + }, + "strategy": "additive", + "resourceFilters": [ + { + "categories": [ + "zone_tree" + ], + "rules": [ + "+/zoneStrings/*" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_currency.json b/icu-filters/icudt_currency.json new file mode 100644 index 00000000000..f70386f24b0 --- /dev/null +++ b/icu-filters/icudt_currency.json @@ -0,0 +1,255 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "ja_JP", + "kn_IN", + "ko_KR", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN", + "zh_CN", + "zh_Hans_HK", + "zh_SG", + "zh_HK", + "zh_TW" + ] + }, + "featureFilters": { + "curr_supplemental": "include", + "misc": { + "whitelist": [ + "numberingSystems", + "currencyNumericCodes", + "supplementalData", + "keyTypeData" + ] + }, + "curr_tree": { + "whitelist": [ + "root" + ] + } + }, + "strategy": "additive", + "resourceFilters": [ + { + "categories": [ + "misc" + ], + "files": { + "whitelist": [ + "supplementalData" + ] + }, + "rules": [ + "+/codeMappings", + "+/idValidity", + "+/cldrVersion" + ] + }, + { + "categories": [ + "misc" + ], + "files": { + "whitelist": [ + "numberingSystems", + "currencyNumericCodes", + "keyTypeData" + ] + }, + "rules": [ + "+/" + ] + }, + { + "categories": [ + "curr_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_efigs_coll.json b/icu-filters/icudt_efigs_coll.json new file mode 100644 index 00000000000..05aa7683b38 --- /dev/null +++ b/icu-filters/icudt_efigs_coll.json @@ -0,0 +1,150 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "it_CH", + "it_IT" + ] + }, + "collationUCAData": "implicithan", + "featureFilters": { + "coll_ucadata": "include", + "coll_tree": "include" + }, + "strategy": "additive", + "resourceFilters": [ + { + "shards": [ + "no_cjk", + "efigs" + ], + "categories": [ + "coll_tree" + ], + "rules": [ + "+/collations/default", + "+/collations/standard", + "-/UCARules" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_efigs_full.json b/icu-filters/icudt_efigs_full.json new file mode 100644 index 00000000000..0d285d5c63f --- /dev/null +++ b/icu-filters/icudt_efigs_full.json @@ -0,0 +1,275 @@ +{ + "collationUCAData": "implicithan", + "featureFilters": { + "misc": { + "whitelist": [ + "supplementalData", + "icuver", + "numberingSystems", + "currencyNumericCodes", + "keyTypeData" + ] + }, + "brkitr_rules": { + "whitelist": [ + "char" + ] + }, + "brkitr_tree": "include", + "normalization": { + "blacklist": [ + "nkfc_cf", + "nkfc" + ] + }, + "curr_supplemental": "include", + "curr_tree": { + "whitelist": [ + "root" + ] + }, + "locales_tree": "include", + "coll_ucadata": "include", + "coll_tree": "include" + }, + "resourceFilters": [ + { + "categories": [ + "brkitr_tree" + ], + "rules": [ + "+/" + ] + }, + { + "categories": [ + "curr_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/" + ] + }, + { + "categories": [ + "locales_tree" + ], + "rules": [ + "+/NumberElements", + "-/NumberElements/latn/miscPatterns", + "-/NumberElements/latn/patternsLong", + "-/NumberElements/latn/patternsShort", + "-/NumberElements/*/patternsLong", + "-/NumberElements/*/patternsShort", + "-/NumberElements/minimalPairs", + "+/Version", + "+/layout" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "blacklist": [ + "root" + ] + }, + "rules": [ + "+/calendar/default", + "+/calendar/gregorian", + "+/calendar/generic" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/calendar" + ] + }, + { + "shards": [ + "no_cjk", + "efigs" + ], + "categories": [ + "coll_tree" + ], + "rules": [ + "+/collations/default", + "+/collations/standard", + "-/UCARules" + ] + }, + { + "categories": "misc", + "files": { + "whitelist": [ + "supplementalData" + ] + }, + "rules": [ + "+/calendarData", + "+/calendarPreferenceData", + "+/codeMappings", + "+/timeData", + "+/measurementData", + "+/cldrVersion", + "+/idValidity", + "+/weekData" + ] + }, + { + "categories": "misc", + "files": { + "whitelist": [ + "icuver", + "numberingSystems", + "keyTypeData", + "currencyNumericCodes" + ] + }, + "rules": [ + "+/" + ] + } + ], + "strategy": "additive", + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "it_CH", + "it_IT" + ] + } +} \ No newline at end of file diff --git a/icu-filters/icudt_efigs_locales.json b/icu-filters/icudt_efigs_locales.json new file mode 100644 index 00000000000..7927448f8d7 --- /dev/null +++ b/icu-filters/icudt_efigs_locales.json @@ -0,0 +1,202 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "it_CH", + "it_IT" + ] + }, + "featureFilters": { + "locales_tree": "include", + "misc": { + "whitelist": [ + "supplementalData" + ] + } + }, + "strategy": "additive", + "resourceFilters": [ + { + "categories": [ + "locales_tree" + ], + "rules": [ + "+/NumberElements", + "-/NumberElements/latn/miscPatterns", + "-/NumberElements/latn/patternsLong", + "-/NumberElements/latn/patternsShort", + "-/NumberElements/*/patternsLong", + "-/NumberElements/*/patternsShort", + "-/NumberElements/minimalPairs", + "+/Version", + "+/layout" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "blacklist": [ + "root" + ] + }, + "rules": [ + "+/calendar/default", + "+/calendar/gregorian", + "+/calendar/generic" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/calendar" + ] + }, + { + "categories": [ + "misc" + ], + "files": { + "whitelist": [ + "supplementalData" + ] + }, + "rules": [ + "+/cldrVersion", + "+/codeMappings", + "+/calendarData", + "+/calendarPreferenceData", + "+/timeData", + "+/measurementData", + "+/weekData" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_efigs_zones.json b/icu-filters/icudt_efigs_zones.json new file mode 100644 index 00000000000..f6af9ec69a8 --- /dev/null +++ b/icu-filters/icudt_efigs_zones.json @@ -0,0 +1,148 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "it_CH", + "it_IT" + ] + }, + "featureFilters": { + "zone_tree": "include", + "misc": { + "whitelist": [ + "metaZones", + "zoneinfo64" + ] + } + }, + "strategy": "additive", + "resourceFilters": [ + { + "categories": [ + "zone_tree" + ], + "rules": [ + "+/zoneStrings/*" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_full_coll.json b/icu-filters/icudt_full_coll.json new file mode 100644 index 00000000000..1a67e9c6e19 --- /dev/null +++ b/icu-filters/icudt_full_coll.json @@ -0,0 +1,216 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "ja_JP", + "kn_IN", + "ko_KR", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN", + "zh_CN", + "zh_Hans_HK", + "zh_SG", + "zh_HK", + "zh_TW" + ] + }, + "collationUCAData": "implicithan", + "featureFilters": { + "coll_ucadata": "include", + "coll_tree": "include" + }, + "strategy": "additive", + "resourceFilters": [ + { + "shards": [ + "cjk", + "full" + ], + "categories": [ + "coll_tree" + ], + "rules": [ + "+/collations/default", + "+/collations/standard", + "+/collations/private-kana", + "-/UCARules" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_full_full.json b/icu-filters/icudt_full_full.json new file mode 100644 index 00000000000..8be4c58c415 --- /dev/null +++ b/icu-filters/icudt_full_full.json @@ -0,0 +1,358 @@ +{ + "collationUCAData": "implicithan", + "featureFilters": { + "misc": { + "whitelist": [ + "supplementalData", + "icuver", + "numberingSystems", + "currencyNumericCodes", + "keyTypeData" + ] + }, + "brkitr_rules": { + "whitelist": [ + "char" + ] + }, + "brkitr_tree": "include", + "normalization": { + "blacklist": [ + "nkfc_cf", + "nkfc" + ] + }, + "curr_supplemental": "include", + "curr_tree": { + "whitelist": [ + "root" + ] + }, + "locales_tree": "include", + "coll_ucadata": "include", + "coll_tree": "include" + }, + "resourceFilters": [ + { + "categories": [ + "brkitr_tree" + ], + "rules": [ + "+/" + ] + }, + { + "categories": [ + "curr_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/" + ] + }, + { + "categories": [ + "locales_tree" + ], + "rules": [ + "+/NumberElements", + "-/NumberElements/latn/miscPatterns", + "-/NumberElements/latn/patternsLong", + "-/NumberElements/latn/patternsShort", + "-/NumberElements/*/patternsLong", + "-/NumberElements/*/patternsShort", + "-/NumberElements/minimalPairs", + "+/Version", + "+/layout" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "blacklist": [ + "root" + ] + }, + "rules": [ + "+/calendar/default", + "+/calendar/gregorian", + "+/calendar/generic" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/calendar" + ] + }, + { + "shards": [ + "cjk", + "full" + ], + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "ja" + ] + }, + "rules": [ + "+/calendar/japanese" + ] + }, + { + "shards": [ + "cjk", + "full" + ], + "categories": [ + "coll_tree" + ], + "rules": [ + "+/collations/default", + "+/collations/standard", + "+/collations/private-kana", + "-/UCARules" + ] + }, + { + "categories": "misc", + "files": { + "whitelist": [ + "supplementalData" + ] + }, + "rules": [ + "+/calendarData", + "+/calendarPreferenceData", + "+/codeMappings", + "+/timeData", + "+/measurementData", + "+/cldrVersion", + "+/idValidity", + "+/weekData" + ] + }, + { + "categories": "misc", + "files": { + "whitelist": [ + "icuver", + "numberingSystems", + "keyTypeData", + "currencyNumericCodes" + ] + }, + "rules": [ + "+/" + ] + } + ], + "strategy": "additive", + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "ja_JP", + "kn_IN", + "ko_KR", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN", + "zh_CN", + "zh_Hans_HK", + "zh_SG", + "zh_HK", + "zh_TW" + ] + } +} \ No newline at end of file diff --git a/icu-filters/icudt_full_locales.json b/icu-filters/icudt_full_locales.json new file mode 100644 index 00000000000..2853fbf9b83 --- /dev/null +++ b/icu-filters/icudt_full_locales.json @@ -0,0 +1,284 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "ja_JP", + "kn_IN", + "ko_KR", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN", + "zh_CN", + "zh_Hans_HK", + "zh_SG", + "zh_HK", + "zh_TW" + ] + }, + "featureFilters": { + "locales_tree": "include", + "misc": { + "whitelist": [ + "supplementalData" + ] + } + }, + "strategy": "additive", + "resourceFilters": [ + { + "categories": [ + "locales_tree" + ], + "rules": [ + "+/NumberElements", + "-/NumberElements/latn/miscPatterns", + "-/NumberElements/latn/patternsLong", + "-/NumberElements/latn/patternsShort", + "-/NumberElements/*/patternsLong", + "-/NumberElements/*/patternsShort", + "-/NumberElements/minimalPairs", + "+/Version", + "+/layout" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "blacklist": [ + "root" + ] + }, + "rules": [ + "+/calendar/default", + "+/calendar/gregorian", + "+/calendar/generic" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/calendar" + ] + }, + { + "shards": [ + "cjk", + "full" + ], + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "ja" + ] + }, + "rules": [ + "+/calendar/japanese" + ] + }, + { + "categories": [ + "misc" + ], + "files": { + "whitelist": [ + "supplementalData" + ] + }, + "rules": [ + "+/cldrVersion", + "+/codeMappings", + "+/calendarData", + "+/calendarPreferenceData", + "+/timeData", + "+/measurementData", + "+/weekData" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_full_zones.json b/icu-filters/icudt_full_zones.json new file mode 100644 index 00000000000..1db0bb6e490 --- /dev/null +++ b/icu-filters/icudt_full_zones.json @@ -0,0 +1,213 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "ja_JP", + "kn_IN", + "ko_KR", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN", + "zh_CN", + "zh_Hans_HK", + "zh_SG", + "zh_HK", + "zh_TW" + ] + }, + "featureFilters": { + "zone_tree": "include", + "misc": { + "whitelist": [ + "metaZones", + "zoneinfo64" + ] + } + }, + "strategy": "additive", + "resourceFilters": [ + { + "categories": [ + "zone_tree" + ], + "rules": [ + "+/zoneStrings/*" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_no_cjk_coll.json b/icu-filters/icudt_no_cjk_coll.json new file mode 100644 index 00000000000..54f0e644e6f --- /dev/null +++ b/icu-filters/icudt_no_cjk_coll.json @@ -0,0 +1,208 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "kn_IN", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN" + ] + }, + "collationUCAData": "implicithan", + "featureFilters": { + "coll_ucadata": "include", + "coll_tree": "include" + }, + "strategy": "additive", + "resourceFilters": [ + { + "shards": [ + "no_cjk", + "efigs" + ], + "categories": [ + "coll_tree" + ], + "rules": [ + "+/collations/default", + "+/collations/standard", + "-/UCARules" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_no_cjk_full.json b/icu-filters/icudt_no_cjk_full.json new file mode 100644 index 00000000000..f105954ebcf --- /dev/null +++ b/icu-filters/icudt_no_cjk_full.json @@ -0,0 +1,333 @@ +{ + "collationUCAData": "implicithan", + "featureFilters": { + "misc": { + "whitelist": [ + "supplementalData", + "icuver", + "numberingSystems", + "currencyNumericCodes", + "keyTypeData" + ] + }, + "brkitr_rules": { + "whitelist": [ + "char" + ] + }, + "brkitr_tree": "include", + "normalization": { + "blacklist": [ + "nkfc_cf", + "nkfc" + ] + }, + "curr_supplemental": "include", + "curr_tree": { + "whitelist": [ + "root" + ] + }, + "locales_tree": "include", + "coll_ucadata": "include", + "coll_tree": "include" + }, + "resourceFilters": [ + { + "categories": [ + "brkitr_tree" + ], + "rules": [ + "+/" + ] + }, + { + "categories": [ + "curr_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/" + ] + }, + { + "categories": [ + "locales_tree" + ], + "rules": [ + "+/NumberElements", + "-/NumberElements/latn/miscPatterns", + "-/NumberElements/latn/patternsLong", + "-/NumberElements/latn/patternsShort", + "-/NumberElements/*/patternsLong", + "-/NumberElements/*/patternsShort", + "-/NumberElements/minimalPairs", + "+/Version", + "+/layout" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "blacklist": [ + "root" + ] + }, + "rules": [ + "+/calendar/default", + "+/calendar/gregorian", + "+/calendar/generic" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/calendar" + ] + }, + { + "shards": [ + "no_cjk", + "efigs" + ], + "categories": [ + "coll_tree" + ], + "rules": [ + "+/collations/default", + "+/collations/standard", + "-/UCARules" + ] + }, + { + "categories": "misc", + "files": { + "whitelist": [ + "supplementalData" + ] + }, + "rules": [ + "+/calendarData", + "+/calendarPreferenceData", + "+/codeMappings", + "+/timeData", + "+/measurementData", + "+/cldrVersion", + "+/idValidity", + "+/weekData" + ] + }, + { + "categories": "misc", + "files": { + "whitelist": [ + "icuver", + "numberingSystems", + "keyTypeData", + "currencyNumericCodes" + ] + }, + "rules": [ + "+/" + ] + } + ], + "strategy": "additive", + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "kn_IN", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN" + ] + } +} \ No newline at end of file diff --git a/icu-filters/icudt_no_cjk_locales.json b/icu-filters/icudt_no_cjk_locales.json new file mode 100644 index 00000000000..99e34d6dd50 --- /dev/null +++ b/icu-filters/icudt_no_cjk_locales.json @@ -0,0 +1,260 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "kn_IN", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN" + ] + }, + "featureFilters": { + "locales_tree": "include", + "misc": { + "whitelist": [ + "supplementalData" + ] + } + }, + "strategy": "additive", + "resourceFilters": [ + { + "categories": [ + "locales_tree" + ], + "rules": [ + "+/NumberElements", + "-/NumberElements/latn/miscPatterns", + "-/NumberElements/latn/patternsLong", + "-/NumberElements/latn/patternsShort", + "-/NumberElements/*/patternsLong", + "-/NumberElements/*/patternsShort", + "-/NumberElements/minimalPairs", + "+/Version", + "+/layout" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "blacklist": [ + "root" + ] + }, + "rules": [ + "+/calendar/default", + "+/calendar/gregorian", + "+/calendar/generic" + ] + }, + { + "categories": [ + "locales_tree" + ], + "files": { + "whitelist": [ + "root" + ] + }, + "rules": [ + "+/calendar" + ] + }, + { + "categories": [ + "misc" + ], + "files": { + "whitelist": [ + "supplementalData" + ] + }, + "rules": [ + "+/cldrVersion", + "+/codeMappings", + "+/calendarData", + "+/calendarPreferenceData", + "+/timeData", + "+/measurementData", + "+/weekData" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_no_cjk_zones.json b/icu-filters/icudt_no_cjk_zones.json new file mode 100644 index 00000000000..fa2d6aa6afe --- /dev/null +++ b/icu-filters/icudt_no_cjk_zones.json @@ -0,0 +1,206 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "kn_IN", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN" + ] + }, + "featureFilters": { + "zone_tree": "include", + "misc": { + "whitelist": [ + "metaZones", + "zoneinfo64" + ] + } + }, + "strategy": "additive", + "resourceFilters": [ + { + "categories": [ + "zone_tree" + ], + "rules": [ + "+/zoneStrings/*" + ] + } + ] +} \ No newline at end of file diff --git a/icu-filters/icudt_normalization.json b/icu-filters/icudt_normalization.json new file mode 100644 index 00000000000..f475a430962 --- /dev/null +++ b/icu-filters/icudt_normalization.json @@ -0,0 +1,203 @@ +{ + "localeFilter": { + "filterType": "locale", + "includeScripts": false, + "includeChildren": false, + "whitelist": [ + "ar_SA", + "am_ET", + "bg_BG", + "bn_BD", + "bn_IN", + "ca_AD", + "ca_ES", + "cs_CZ", + "da_DK", + "de_AT", + "de_BE", + "de_CH", + "de_DE", + "de_IT", + "de_LI", + "de_LU", + "el_CY", + "el_GR", + "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_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", + "en_VC", + "en_VG", + "en_VI", + "en_VU", + "en_WS", + "en_ZA", + "en_ZM", + "en_ZW", + "en_US", + "es_419", + "es_ES", + "es_MX", + "et_EE", + "fa_IR", + "fi_FI", + "fil_PH", + "fr_BE", + "fr_CA", + "fr_CH", + "fr_FR", + "gu_IN", + "he_IL", + "hi_IN", + "hr_BA", + "hr_HR", + "hu_HU", + "id_ID", + "it_CH", + "it_IT", + "ja_JP", + "kn_IN", + "ko_KR", + "lt_LT", + "lv_LV", + "ml_IN", + "mr_IN", + "ms_BN", + "ms_MY", + "ms_SG", + "nl_AW", + "nl_BE", + "nl_NL", + "pl_PL", + "pt_BR", + "pt_PT", + "ro_RO", + "ru_RU", + "sk_SK", + "sl_SI", + "sr_Cyrl_RS", + "sr_Latn_RS", + "sv_AX", + "sv_SE", + "sw_CD", + "sw_KE", + "sw_TZ", + "sw_UG", + "ta_IN", + "ta_LK", + "ta_MY", + "ta_SG", + "te_IN", + "th_TH", + "tr_CY", + "tr_TR", + "uk_UA", + "vi_VN", + "zh_CN", + "zh_Hans_HK", + "zh_SG", + "zh_HK", + "zh_TW" + ] + }, + "featureFilters": { + "normalization": { + "blacklist": [ + "nkfc_cf", + "nkfc" + ] + } + }, + "strategy": "additive", + "resourceFilters": [] +} \ No newline at end of file diff --git a/icu/icu4c/source/python/icutools/databuilder/__main__.py b/icu/icu4c/source/python/icutools/databuilder/__main__.py index a6a387d9ad2..950d2607805 100644 --- a/icu/icu4c/source/python/icutools/databuilder/__main__.py +++ b/icu/icu4c/source/python/icutools/databuilder/__main__.py @@ -4,6 +4,7 @@ # Python 2/3 Compatibility (ICU-20299) # TODO(ICU-20301): Remove this. from __future__ import print_function +from functools import reduce import argparse import glob as pyglob @@ -11,6 +12,8 @@ import json import os import sys +import re +import collections from . import * from .comment_stripper import CommentStripper @@ -63,7 +66,7 @@ arg_group_required.add_argument( "--mode", help = "What to do with the generated rules.", - choices = ["gnumake", "unix-exec", "windows-exec", "bazel-exec"], + choices = ["gnumake", "unix-exec", "windows-exec", "bazel-exec", "makedict"], required = True ) @@ -78,6 +81,22 @@ help = "Path to an ICU data filter JSON file.", default = None ) +flag_parser.add_argument( + "--filter_dir", + metavar = "PATH", + help = "Path to an ICU filter directory.", + default = None +) +flag_parser.add_argument( + "--shard_cfg", + help = "Path to shard configuration file.", + default = None +) +flag_parser.add_argument( + "--exclude_feats", + help = "Excluded features from full ICU data file.", + default = None +) flag_parser.add_argument( "--include_uni_core_data", help = "Include the full Unicode core data in the dat file.", @@ -238,6 +257,260 @@ def add_copy_input_requests(requests, config, common_vars): return result +class Dictionary(object): + def __init__ (self, filter_dir, config_path, output_dir, exclude_feats): + self.filter_dir = filter_dir + self.output_dir = output_dir + self.filter_file_names = [] + self.dictionary = {"packs": {}} + self.locale_whitelist = {} + self.exclude_feats = exclude_feats.split(",") + with open(config_path, "r") as file: + self.config = json.load(file) + + # Dictionary of features of the format + # : + self.features = { + "base": False, + "normalization": False, + "currency": False, + "locales": True, + "zones": True, + "coll": True, + "full": True + } + self.icu_dict = {} + + def get_locales_from_shards(self, shard, pattern, locales): + whitelist = [x for x in locales if re.match(pattern, x.split("_")[0])] + if shard == "cjk": + whitelist = list(set([x.split("_")[0] for x in whitelist])) + return whitelist + + # Create localeFilter component of filter + def get_locale_filters(self, locale_filter, shard_name=""): + filter = {} + filter["filterType"] = "locale" if shard_name != "cjk" else "language" + filter["includeScripts"] = (shard_name == "cjk") + filter["includeChildren"] = (shard_name == "cjk") + for param in locale_filter: + if param == "whitelist": + filter["whitelist"] = self.locale_whitelist[shard_name] if shard_name != "" else self.locale_whitelist["full"] + else: + filter[param] = locale_filter[param] + return filter + + def get_locale_whitelist(self, shard_data, locale_filters): + for shard in shard_data: + if "?" in shard_data[shard]: + self.locale_whitelist[shard] = self.get_locales_from_shards(shard, shard_data[shard], locale_filters["whitelist"]) + self.locale_whitelist["full"] = locale_filters["whitelist"] + + def get_full_feature_filters(self, filter_data, filter): + """ + Merges parameters for all features. Used for full-featured shards. Features are + formatted as follows in main-config.json + "featureFilters":{ + : { + : { + "whitelist"/"blacklist": [ + + ] + } + }, ... + } + """ + filter = {} + for key, val in filter_data.items(): + if key not in self.exclude_feats: + for param in val: + if param not in filter: + filter[param] = val[param] + else: + for lists in val[param]: + if lists in filter[param]: + filter[param][lists] += val[param][lists] + filter[param][lists] = list(set(filter[param][lists])) + else: + filter[param][lists] = val[lists] + return filter + + def get_resource_filters(self, filter_data, shard="", feature=""): + """ + Merges parameters for all resources. Used for full-featured shards. Resources are + formatted as follows in main-config.json + "resourceFilters": [ + : [ + { + "categories": [ ] + }, + "rules": [ + + ] + } + ], ... + ] + """ + filter = [] + if feature == "full": + supplemental = [] + + # for other misc files that needed to be added with "+/" + misc_whitelist = [] + for category in filter_data: + if category not in self.exclude_feats: + for rules in filter_data[category]: + # This is the only category with overlapping rules + if rules["categories"] == ["misc"]: + if rules["files"]["whitelist"] == ["supplementalData"]: + supplemental += rules["rules"] + if rules["rules"] == ["+/"]: + misc_whitelist += rules["files"]["whitelist"] + else: + if ("shards" in rules and shard in rules["shards"]) or ("shards" not in rules): + filter.append(rules) + if len(supplemental) > 0: + filter.append( { + "categories": "misc", + "files": { + "whitelist": ["supplementalData"] + }, + "rules": list(set(supplemental)) + }) + if len(misc_whitelist) > 0 : + filter.append( { + "categories": "misc", + "files": { + "whitelist": list(set(misc_whitelist)) + }, + "rules": ["+/"] + }) + else: + if feature in filter_data: + filter = [f for f in filter_data[feature] if ("shards" not in f) or (shard in f["shards"])] + return filter + + def update_dict(self, dict1, dict_list): + for d in dict_list: + dict1.update(d) + + def create_filters(self): + """ + Generates filters for ICU shards based on a main-config.json file + """ + filter_data = self.config["filter"] + shard_data = self.config["shards"] + + # populate locale whitelists for each shard type + self.get_locale_whitelist(shard_data, filter_data["localeFilter"]) + + # First update dictionary object with shard information + self.dictionary["shards"] = shard_data + for feat in self.features: + filter = {} + shard_dependent = self.features[feat] + + # for shards with all features + if feat == "full": + # Include any additional filter parameters that are at the root level of main-config.json + root_features = [filter_data[k] for k in filter_data if k not in ["featureFilters", "resourceFilters", "localeFilter"] + self.exclude_feats] + self.update_dict(filter, root_features) + filter["featureFilters"] = self.get_full_feature_filters(filter_data["featureFilters"], {}) + filter["resourceFilters"] = self.get_resource_filters(filter_data["resourceFilters"], feature="full") + else: + if feat in filter_data: + filter.update(filter_data[feat]) + if feat in filter_data["featureFilters"]: + filter["featureFilters"] = filter_data["featureFilters"][feat] + if shard_dependent: + for shard in shard_data: + filter["localeFilter"] = self.get_locale_filters(filter_data["localeFilter"], shard_name=shard) + filter["resourceFilters"] = self.get_resource_filters(filter_data["resourceFilters"], shard=shard, feature=feat) + + filter_file_name = "icudt_{shard}_{feat}.json".format(shard=shard, feat=feat) + + # Used for generating props file later + self.filter_file_names.append(filter_file_name) + with open (os.path.join(self.filter_dir, filter_file_name), "w") as f: + json.dump(filter, f, indent=2) + else: + filter["localeFilter"] = self.get_locale_filters(filter_data["localeFilter"]) + filter["resourceFilters"] = self.get_resource_filters(filter_data["resourceFilters"], feature=feat) + filter_file_name = "icudt_{feat}.json".format(feat=feat) + self.filter_file_names.append(filter_file_name) + with open (os.path.join(self.filter_dir, filter_file_name), "w") as f: + json.dump(filter, f, indent=2) + + def generate_props(self): + with open (os.path.join(self.output_dir, "ICU.DataFiles.props"), "w") as f: + f.write("\n") + f.write("\t\n") + f.write("\t\t\n") + for filename in self.filter_file_names: + filename = filename.replace("json", "dat") + f.write("\t\t\n".format(filename=filename)) + f.write("\t\n") + f.write("") + + def get_file_names(self, pack_features, shard): + return ["icudt_{feat}.dat".format(feat=feat) if not self.features[feat] + else "icudt_{shard}_{feat}.dat".format(shard=shard, feat=feat) + for feat in pack_features] + + def create_packs(self, pack, shard=""): + """ + Create packs portion of ICU dictionary, which has the format: + "packs": { + "base": { + "core": [], + "currency": [] + }, + "efigs": { + "extends": "base", + "full: [ + + ], + "core": [], + "zones": [] + }, + ..., + "full" : [] + } + """ + file_pack = {} + for item in pack: + if item == "base" or item == "extends": + file_pack[item] = pack[item] + elif item == "core" or item == "full": + file_pack[item] = self.get_file_names(pack[item], shard) + elif item == "features": + for feat in pack[item]: + file_pack[feat] = self.get_file_names([feat], shard) + return file_pack + + def create_dictionary(self): + """ + Creates dictionary which will be consumed by library_mono.js in the runtime. + The structure of the packs portion is described in main-config.json + """ + packs = self.config["packs"] + for pack in packs: + if pack == "base": + self.dictionary["packs"][pack] = self.create_packs(packs[pack]) + if pack == "shards": + for shard in self.config["shards"]: + if shard == "full": + self.dictionary["packs"]["full"] = "icudt_full_full.dat" + else: + self.dictionary["packs"][shard] = self.create_packs(packs[pack], shard=shard) + self.filter_file_names.append("icu_dictionary.js") + with open (os.path.join(self.output_dir, "icu_dictionary.js"), "w") as f: + text = "dictionary = " + json.dumps(self.dictionary, indent=2) + f.write(text) + + class IO(object): """I/O operations required when computing the build actions""" @@ -263,6 +536,14 @@ def _read_json(self, filename): def main(argv): args = flag_parser.parse_args(argv) + + if args.mode == "makedict": + dictionary = Dictionary(args.filter_dir, args.shard_cfg, args.out_dir, args.exclude_feats) + dictionary.create_filters() + dictionary.generate_props() + dictionary.create_dictionary() + return 0 + config = Config(args) if args.mode == "gnumake": diff --git a/locale_dictionary.json b/locale_dictionary.json new file mode 100644 index 00000000000..65ae5764c4b --- /dev/null +++ b/locale_dictionary.json @@ -0,0 +1,649 @@ +{ + "en": [ + "icudt_en_base.json", + "icudt_locales.json", + "icudt_efigsonly.json", + "icudt_efigs_zones.json", + "icudt_en_zones.json", + "icudt_cjk_base.json", + "icudt_with_zones.json", + "icudt_EFIGS.json", + "icudt_currency.json", + "icudt_no_cjkonly.json", + "icudt.json", + "icudt_base.json", + "icudt_efigs_base.json", + "icudt_en.json", + "icudt_CJK.json", + "icudt_coll.json", + "icudt_efigs_coll.json", + "icudt_no_CJK.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_normalization.json" + ], + "ja": [ + "icudt_coll.json", + "icudt_cjk_base.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_cjkonly.json", + "icudt_locales.json", + "icudt_cjk_zones.json", + "icudt_zones.json", + "icudt_cjk_coll.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_normalization.json", + "icudt_CJK.json" + ], + "pl": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "kn": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "sl": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "hi": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "es": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_efigs_coll.json", + "icudt_locales.json", + "icudt_EFIGS.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_efigsonly.json", + "icudt_no_cjkonly.json", + "icudt_base.json", + "icudt_efigs_zones.json", + "icudt_normalization.json", + "icudt_efigs_base.json" + ], + "bn": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "ml": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "ru": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "nl": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "uk": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "ro": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "hr": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "id": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "lt": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "ko": [ + "icudt_coll.json", + "icudt_cjk_base.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_cjkonly.json", + "icudt_locales.json", + "icudt_cjk_zones.json", + "icudt_zones.json", + "icudt_cjk_coll.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_normalization.json", + "icudt_CJK.json" + ], + "mr": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "it": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_efigs_coll.json", + "icudt_locales.json", + "icudt_EFIGS.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_efigsonly.json", + "icudt_no_cjkonly.json", + "icudt_base.json", + "icudt_efigs_zones.json", + "icudt_normalization.json", + "icudt_efigs_base.json" + ], + "hu": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "tr": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "bg": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "sv": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "el": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "fa": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "gu": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "th": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_normalization.json" + ], + "ca": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "ta": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "zh": [ + "icudt_zh_base.json", + "icudt_coll.json", + "icudt_cjk_base.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_cjkonly.json", + "icudt_zh.json", + "icudt_locales.json", + "icudt_cjk_zones.json", + "icudt_zones.json", + "icudt_cjk_coll.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_normalization.json", + "icudt_zh_zones.json", + "icudt_CJK.json" + ], + "sr": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "ms": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "pt": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "fr": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_efigs_coll.json", + "icudt_locales.json", + "icudt_EFIGS.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_efigsonly.json", + "icudt_no_cjkonly.json", + "icudt_base.json", + "icudt_efigs_zones.json", + "icudt_normalization.json", + "icudt_efigs_base.json" + ], + "fi": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "he": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "cs": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "et": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "da": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "sw": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "lv": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "sk": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "am": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "te": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "vi": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "ar": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_locales.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_base.json", + "icudt_no_cjkonly.json", + "icudt_normalization.json" + ], + "de": [ + "icudt_coll.json", + "icudt_with_zones.json", + "icudt.json", + "icudt_no_CJK.json", + "icudt_efigs_coll.json", + "icudt_locales.json", + "icudt_EFIGS.json", + "icudt_zones.json", + "icudt_no_cjk_base.json", + "icudt_currency.json", + "icudt_efigsonly.json", + "icudt_no_cjkonly.json", + "icudt_base.json", + "icudt_efigs_zones.json", + "icudt_normalization.json", + "icudt_efigs_base.json" + ] +} \ No newline at end of file