From 5ecee1d07281ff499596fc2daa74affe1de68c3b Mon Sep 17 00:00:00 2001 From: Mark Davis Date: Thu, 10 Aug 2023 17:19:24 -0700 Subject: [PATCH] CLDR-16970 Add testData file and generator for likely subtags (#3173) * CLDR-16970 Add test file and generator for LikelySubtags * CLDR-16970 Add und with combinations of script and region; only include locales > Basic to cut down the size * CLDR-16970 remove und --- .../localeIdentifiers/likelySubtags.txt | 1576 +++++++++++++++++ .../cldr/tool/GenerateLikelyTestData.java | 157 ++ 2 files changed, 1733 insertions(+) create mode 100644 common/testData/localeIdentifiers/likelySubtags.txt create mode 100644 tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLikelyTestData.java diff --git a/common/testData/localeIdentifiers/likelySubtags.txt b/common/testData/localeIdentifiers/likelySubtags.txt new file mode 100644 index 00000000000..90dc6ca14c2 --- /dev/null +++ b/common/testData/localeIdentifiers/likelySubtags.txt @@ -0,0 +1,1576 @@ +# Test data for Likely Subtags +# Copyright © 1991-2023 Unicode, Inc. +# For terms of use, see http://www.unicode.org/copyright.html +# SPDX-License-Identifier: Unicode-DFS-2016 +# CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/) +# +# Test data for https://www.unicode.org/reports/tr35/tr35.html#Likely_Subtags +# +# Format: + +# Source ; AddLikely ; RemoveFavorScript ; RemoveFavorRegion +# Source: a locale to which the following operations are applied. +# AddLikely: the result of the Add Likely Subtags. +# RemoveFavorScript: Remove Likely Subtags, when the script is favored. +# Only included when different than AddLikely. +# RemoveFavorRegion: Remove Likely Subtags, when the region is favored. +# Only included when different than RemoveFavorScript. +# +# Generation: GenerateLikelyTestData.java + +af ; af-Latn-ZA ; af ; +af-AQ ; af-Latn-AQ ; af-AQ ; +af-Egyp ; af-Egyp-ZA ; af-Egyp ; +af-Latn ; af-Latn-ZA ; af ; +af-NA ; af-Latn-NA ; af-NA ; +af-ZA ; af-Latn-ZA ; af ; +am ; am-Ethi-ET ; am ; +am-AQ ; am-Ethi-AQ ; am-AQ ; +am-ET ; am-Ethi-ET ; am ; +am-Egyp ; am-Egyp-ET ; am-Egyp ; +am-Ethi ; am-Ethi-ET ; am ; +ar ; ar-Arab-EG ; ar ; +ar-001 ; ar-Arab-001 ; ar-001 ; +ar-AE ; ar-Arab-AE ; ar-AE ; +ar-AQ ; ar-Arab-AQ ; ar-AQ ; +ar-Arab ; ar-Arab-EG ; ar ; +ar-BH ; ar-Arab-BH ; ar-BH ; +ar-DJ ; ar-Arab-DJ ; ar-DJ ; +ar-DZ ; ar-Arab-DZ ; ar-DZ ; +ar-EG ; ar-Arab-EG ; ar ; +ar-EH ; ar-Arab-EH ; ar-EH ; +ar-ER ; ar-Arab-ER ; ar-ER ; +ar-Egyp ; ar-Egyp-EG ; ar-Egyp ; +ar-IL ; ar-Arab-IL ; ar-IL ; +ar-IQ ; ar-Arab-IQ ; ar-IQ ; +ar-JO ; ar-Arab-JO ; ar-JO ; +ar-KM ; ar-Arab-KM ; ar-KM ; +ar-KW ; ar-Arab-KW ; ar-KW ; +ar-LB ; ar-Arab-LB ; ar-LB ; +ar-LY ; ar-Arab-LY ; ar-LY ; +ar-MA ; ar-Arab-MA ; ar-MA ; +ar-MR ; ar-Arab-MR ; ar-MR ; +ar-OM ; ar-Arab-OM ; ar-OM ; +ar-PS ; ar-Arab-PS ; ar-PS ; +ar-QA ; ar-Arab-QA ; ar-QA ; +ar-SA ; ar-Arab-SA ; ar-SA ; +ar-SD ; ar-Arab-SD ; ar-SD ; +ar-SO ; ar-Arab-SO ; ar-SO ; +ar-SS ; ar-Arab-SS ; ar-SS ; +ar-SY ; ar-Arab-SY ; ar-SY ; +ar-TD ; ar-Arab-TD ; ar-TD ; +ar-TN ; ar-Arab-TN ; ar-TN ; +ar-YE ; ar-Arab-YE ; ar-YE ; +as ; as-Beng-IN ; as ; +as-AQ ; as-Beng-AQ ; as-AQ ; +as-Beng ; as-Beng-IN ; as ; +as-Egyp ; as-Egyp-IN ; as-Egyp ; +as-IN ; as-Beng-IN ; as ; +ast ; ast-Latn-ES ; ast ; +ast-AQ ; ast-Latn-AQ ; ast-AQ ; +ast-ES ; ast-Latn-ES ; ast ; +ast-Egyp ; ast-Egyp-ES ; ast-Egyp ; +ast-Latn ; ast-Latn-ES ; ast ; +az ; az-Latn-AZ ; az ; +az-AQ ; az-Latn-AQ ; az-AQ ; +az-AZ ; az-Latn-AZ ; az ; +az-Egyp ; az-Egyp-AZ ; az-Egyp ; +az-Latn ; az-Latn-AZ ; az ; +be ; be-Cyrl-BY ; be ; +be-AQ ; be-Cyrl-AQ ; be-AQ ; +be-BY ; be-Cyrl-BY ; be ; +be-Cyrl ; be-Cyrl-BY ; be ; +be-Egyp ; be-Egyp-BY ; be-Egyp ; +bg ; bg-Cyrl-BG ; bg ; +bg-AQ ; bg-Cyrl-AQ ; bg-AQ ; +bg-BG ; bg-Cyrl-BG ; bg ; +bg-Cyrl ; bg-Cyrl-BG ; bg ; +bg-Egyp ; bg-Egyp-BG ; bg-Egyp ; +bgc ; bgc-Deva-IN ; bgc ; +bgc-AQ ; bgc-Deva-AQ ; bgc-AQ ; +bgc-Deva ; bgc-Deva-IN ; bgc ; +bgc-Egyp ; bgc-Egyp-IN ; bgc-Egyp ; +bgc-IN ; bgc-Deva-IN ; bgc ; +bho ; bho-Deva-IN ; bho ; +bho-AQ ; bho-Deva-AQ ; bho-AQ ; +bho-Deva ; bho-Deva-IN ; bho ; +bho-Egyp ; bho-Egyp-IN ; bho-Egyp ; +bho-IN ; bho-Deva-IN ; bho ; +blo ; blo-Latn-BJ ; blo ; +blo-AQ ; blo-Latn-AQ ; blo-AQ ; +blo-BJ ; blo-Latn-BJ ; blo ; +blo-Egyp ; blo-Egyp-BJ ; blo-Egyp ; +blo-Latn ; blo-Latn-BJ ; blo ; +bn ; bn-Beng-BD ; bn ; +bn-AQ ; bn-Beng-AQ ; bn-AQ ; +bn-BD ; bn-Beng-BD ; bn ; +bn-Beng ; bn-Beng-BD ; bn ; +bn-Egyp ; bn-Egyp-BD ; bn-Egyp ; +bn-IN ; bn-Beng-IN ; bn-IN ; +br ; br-Latn-FR ; br ; +br-AQ ; br-Latn-AQ ; br-AQ ; +br-Egyp ; br-Egyp-FR ; br-Egyp ; +br-FR ; br-Latn-FR ; br ; +br-Latn ; br-Latn-FR ; br ; +brx ; brx-Deva-IN ; brx ; +brx-AQ ; brx-Deva-AQ ; brx-AQ ; +brx-Deva ; brx-Deva-IN ; brx ; +brx-Egyp ; brx-Egyp-IN ; brx-Egyp ; +brx-IN ; brx-Deva-IN ; brx ; +bs ; bs-Latn-BA ; bs ; +bs-AQ ; bs-Latn-AQ ; bs-AQ ; +bs-BA ; bs-Latn-BA ; bs ; +bs-Cyrl ; bs-Cyrl-BA ; bs-Cyrl ; +bs-Egyp ; bs-Egyp-BA ; bs-Egyp ; +bs-Latn ; bs-Latn-BA ; bs ; +ca ; ca-Latn-ES ; ca ; +ca-AD ; ca-Latn-AD ; ca-AD ; +ca-AQ ; ca-Latn-AQ ; ca-AQ ; +ca-ES ; ca-Latn-ES ; ca ; +ca-Egyp ; ca-Egyp-ES ; ca-Egyp ; +ca-FR ; ca-Latn-FR ; ca-FR ; +ca-IT ; ca-Latn-IT ; ca-IT ; +ca-Latn ; ca-Latn-ES ; ca ; +ceb ; ceb-Latn-PH ; ceb ; +ceb-AQ ; ceb-Latn-AQ ; ceb-AQ ; +ceb-Egyp ; ceb-Egyp-PH ; ceb-Egyp ; +ceb-Latn ; ceb-Latn-PH ; ceb ; +ceb-PH ; ceb-Latn-PH ; ceb ; +chr ; chr-Cher-US ; chr ; +chr-AQ ; chr-Cher-AQ ; chr-AQ ; +chr-Cher ; chr-Cher-US ; chr ; +chr-Egyp ; chr-Egyp-US ; chr-Egyp ; +chr-US ; chr-Cher-US ; chr ; +cs ; cs-Latn-CZ ; cs ; +cs-AQ ; cs-Latn-AQ ; cs-AQ ; +cs-CZ ; cs-Latn-CZ ; cs ; +cs-Egyp ; cs-Egyp-CZ ; cs-Egyp ; +cs-Latn ; cs-Latn-CZ ; cs ; +csw ; csw-Cans-CA ; csw ; +csw-AQ ; csw-Cans-AQ ; csw-AQ ; +csw-CA ; csw-Cans-CA ; csw ; +csw-Cans ; csw-Cans-CA ; csw ; +csw-Egyp ; csw-Egyp-CA ; csw-Egyp ; +cv ; cv-Cyrl-RU ; cv ; +cv-AQ ; cv-Cyrl-AQ ; cv-AQ ; +cv-Cyrl ; cv-Cyrl-RU ; cv ; +cv-Egyp ; cv-Egyp-RU ; cv-Egyp ; +cv-RU ; cv-Cyrl-RU ; cv ; +cy ; cy-Latn-GB ; cy ; +cy-AQ ; cy-Latn-AQ ; cy-AQ ; +cy-Egyp ; cy-Egyp-GB ; cy-Egyp ; +cy-GB ; cy-Latn-GB ; cy ; +cy-Latn ; cy-Latn-GB ; cy ; +da ; da-Latn-DK ; da ; +da-AQ ; da-Latn-AQ ; da-AQ ; +da-DK ; da-Latn-DK ; da ; +da-Egyp ; da-Egyp-DK ; da-Egyp ; +da-GL ; da-Latn-GL ; da-GL ; +da-Latn ; da-Latn-DK ; da ; +de ; de-Latn-DE ; de ; +de-AQ ; de-Latn-AQ ; de-AQ ; +de-AT ; de-Latn-AT ; de-AT ; +de-BE ; de-Latn-BE ; de-BE ; +de-CH ; de-Latn-CH ; de-CH ; +de-DE ; de-Latn-DE ; de ; +de-Egyp ; de-Egyp-DE ; de-Egyp ; +de-IT ; de-Latn-IT ; de-IT ; +de-LI ; de-Latn-LI ; de-LI ; +de-LU ; de-Latn-LU ; de-LU ; +de-Latn ; de-Latn-DE ; de ; +doi ; doi-Deva-IN ; doi ; +doi-AQ ; doi-Deva-AQ ; doi-AQ ; +doi-Deva ; doi-Deva-IN ; doi ; +doi-Egyp ; doi-Egyp-IN ; doi-Egyp ; +doi-IN ; doi-Deva-IN ; doi ; +dsb ; dsb-Latn-DE ; dsb ; +dsb-AQ ; dsb-Latn-AQ ; dsb-AQ ; +dsb-DE ; dsb-Latn-DE ; dsb ; +dsb-Egyp ; dsb-Egyp-DE ; dsb-Egyp ; +dsb-Latn ; dsb-Latn-DE ; dsb ; +el ; el-Grek-GR ; el ; +el-AQ ; el-Grek-AQ ; el-AQ ; +el-CY ; el-Grek-CY ; el-CY ; +el-Egyp ; el-Egyp-GR ; el-Egyp ; +el-GR ; el-Grek-GR ; el ; +el-Grek ; el-Grek-GR ; el ; +en ; en-Latn-US ; en ; +en-001 ; en-Latn-001 ; en-001 ; +en-150 ; en-Latn-150 ; en-150 ; +en-AE ; en-Latn-AE ; en-AE ; +en-AG ; en-Latn-AG ; en-AG ; +en-AI ; en-Latn-AI ; en-AI ; +en-AQ ; en-Latn-AQ ; en-AQ ; +en-AS ; en-Latn-AS ; en-AS ; +en-AT ; en-Latn-AT ; en-AT ; +en-AU ; en-Latn-AU ; en-AU ; +en-BB ; en-Latn-BB ; en-BB ; +en-BE ; en-Latn-BE ; en-BE ; +en-BI ; en-Latn-BI ; en-BI ; +en-BM ; en-Latn-BM ; en-BM ; +en-BS ; en-Latn-BS ; en-BS ; +en-BW ; en-Latn-BW ; en-BW ; +en-BZ ; en-Latn-BZ ; en-BZ ; +en-CA ; en-Latn-CA ; en-CA ; +en-CC ; en-Latn-CC ; en-CC ; +en-CH ; en-Latn-CH ; en-CH ; +en-CK ; en-Latn-CK ; en-CK ; +en-CM ; en-Latn-CM ; en-CM ; +en-CX ; en-Latn-CX ; en-CX ; +en-CY ; en-Latn-CY ; en-CY ; +en-DE ; en-Latn-DE ; en-DE ; +en-DG ; en-Latn-DG ; en-DG ; +en-DK ; en-Latn-DK ; en-DK ; +en-DM ; en-Latn-DM ; en-DM ; +en-ER ; en-Latn-ER ; en-ER ; +en-Egyp ; en-Egyp-US ; en-Egyp ; +en-FI ; en-Latn-FI ; en-FI ; +en-FJ ; en-Latn-FJ ; en-FJ ; +en-FK ; en-Latn-FK ; en-FK ; +en-FM ; en-Latn-FM ; en-FM ; +en-GB ; en-Latn-GB ; en-GB ; +en-GD ; en-Latn-GD ; en-GD ; +en-GG ; en-Latn-GG ; en-GG ; +en-GH ; en-Latn-GH ; en-GH ; +en-GI ; en-Latn-GI ; en-GI ; +en-GM ; en-Latn-GM ; en-GM ; +en-GU ; en-Latn-GU ; en-GU ; +en-GY ; en-Latn-GY ; en-GY ; +en-HK ; en-Latn-HK ; en-HK ; +en-IE ; en-Latn-IE ; en-IE ; +en-IL ; en-Latn-IL ; en-IL ; +en-IM ; en-Latn-IM ; en-IM ; +en-IN ; en-Latn-IN ; en-IN ; +en-IO ; en-Latn-IO ; en-IO ; +en-JE ; en-Latn-JE ; en-JE ; +en-JM ; en-Latn-JM ; en-JM ; +en-KE ; en-Latn-KE ; en-KE ; +en-KI ; en-Latn-KI ; en-KI ; +en-KN ; en-Latn-KN ; en-KN ; +en-KY ; en-Latn-KY ; en-KY ; +en-LC ; en-Latn-LC ; en-LC ; +en-LR ; en-Latn-LR ; en-LR ; +en-LS ; en-Latn-LS ; en-LS ; +en-Latn ; en-Latn-US ; en ; +en-MG ; en-Latn-MG ; en-MG ; +en-MH ; en-Latn-MH ; en-MH ; +en-MO ; en-Latn-MO ; en-MO ; +en-MP ; en-Latn-MP ; en-MP ; +en-MS ; en-Latn-MS ; en-MS ; +en-MT ; en-Latn-MT ; en-MT ; +en-MU ; en-Latn-MU ; en-MU ; +en-MV ; en-Latn-MV ; en-MV ; +en-MW ; en-Latn-MW ; en-MW ; +en-MY ; en-Latn-MY ; en-MY ; +en-NA ; en-Latn-NA ; en-NA ; +en-NF ; en-Latn-NF ; en-NF ; +en-NG ; en-Latn-NG ; en-NG ; +en-NL ; en-Latn-NL ; en-NL ; +en-NR ; en-Latn-NR ; en-NR ; +en-NU ; en-Latn-NU ; en-NU ; +en-NZ ; en-Latn-NZ ; en-NZ ; +en-PG ; en-Latn-PG ; en-PG ; +en-PH ; en-Latn-PH ; en-PH ; +en-PK ; en-Latn-PK ; en-PK ; +en-PN ; en-Latn-PN ; en-PN ; +en-PR ; en-Latn-PR ; en-PR ; +en-PW ; en-Latn-PW ; en-PW ; +en-RW ; en-Latn-RW ; en-RW ; +en-SB ; en-Latn-SB ; en-SB ; +en-SC ; en-Latn-SC ; en-SC ; +en-SD ; en-Latn-SD ; en-SD ; +en-SE ; en-Latn-SE ; en-SE ; +en-SG ; en-Latn-SG ; en-SG ; +en-SH ; en-Latn-SH ; en-SH ; +en-SI ; en-Latn-SI ; en-SI ; +en-SL ; en-Latn-SL ; en-SL ; +en-SS ; en-Latn-SS ; en-SS ; +en-SX ; en-Latn-SX ; en-SX ; +en-SZ ; en-Latn-SZ ; en-SZ ; +en-TC ; en-Latn-TC ; en-TC ; +en-TK ; en-Latn-TK ; en-TK ; +en-TO ; en-Latn-TO ; en-TO ; +en-TT ; en-Latn-TT ; en-TT ; +en-TV ; en-Latn-TV ; en-TV ; +en-TZ ; en-Latn-TZ ; en-TZ ; +en-UG ; en-Latn-UG ; en-UG ; +en-UM ; en-Latn-UM ; en-UM ; +en-US ; en-Latn-US ; en ; +en-VC ; en-Latn-VC ; en-VC ; +en-VG ; en-Latn-VG ; en-VG ; +en-VI ; en-Latn-VI ; en-VI ; +en-VU ; en-Latn-VU ; en-VU ; +en-WS ; en-Latn-WS ; en-WS ; +en-ZA ; en-Latn-ZA ; en-ZA ; +en-ZM ; en-Latn-ZM ; en-ZM ; +en-ZW ; en-Latn-ZW ; en-ZW ; +es ; es-Latn-ES ; es ; +es-419 ; es-Latn-419 ; es-419 ; +es-AQ ; es-Latn-AQ ; es-AQ ; +es-AR ; es-Latn-AR ; es-AR ; +es-BO ; es-Latn-BO ; es-BO ; +es-BR ; es-Latn-BR ; es-BR ; +es-BZ ; es-Latn-BZ ; es-BZ ; +es-CL ; es-Latn-CL ; es-CL ; +es-CO ; es-Latn-CO ; es-CO ; +es-CR ; es-Latn-CR ; es-CR ; +es-CU ; es-Latn-CU ; es-CU ; +es-DO ; es-Latn-DO ; es-DO ; +es-EA ; es-Latn-EA ; es-EA ; +es-EC ; es-Latn-EC ; es-EC ; +es-ES ; es-Latn-ES ; es ; +es-Egyp ; es-Egyp-ES ; es-Egyp ; +es-GQ ; es-Latn-GQ ; es-GQ ; +es-GT ; es-Latn-GT ; es-GT ; +es-HN ; es-Latn-HN ; es-HN ; +es-IC ; es-Latn-IC ; es-IC ; +es-Latn ; es-Latn-ES ; es ; +es-MX ; es-Latn-MX ; es-MX ; +es-NI ; es-Latn-NI ; es-NI ; +es-PA ; es-Latn-PA ; es-PA ; +es-PE ; es-Latn-PE ; es-PE ; +es-PH ; es-Latn-PH ; es-PH ; +es-PR ; es-Latn-PR ; es-PR ; +es-PY ; es-Latn-PY ; es-PY ; +es-SV ; es-Latn-SV ; es-SV ; +es-US ; es-Latn-US ; es-US ; +es-UY ; es-Latn-UY ; es-UY ; +es-VE ; es-Latn-VE ; es-VE ; +et ; et-Latn-EE ; et ; +et-AQ ; et-Latn-AQ ; et-AQ ; +et-EE ; et-Latn-EE ; et ; +et-Egyp ; et-Egyp-EE ; et-Egyp ; +et-Latn ; et-Latn-EE ; et ; +eu ; eu-Latn-ES ; eu ; +eu-AQ ; eu-Latn-AQ ; eu-AQ ; +eu-ES ; eu-Latn-ES ; eu ; +eu-Egyp ; eu-Egyp-ES ; eu-Egyp ; +eu-Latn ; eu-Latn-ES ; eu ; +fa ; fa-Arab-IR ; fa ; +fa-AF ; fa-Arab-AF ; fa-AF ; +fa-AQ ; fa-Arab-AQ ; fa-AQ ; +fa-Arab ; fa-Arab-IR ; fa ; +fa-Egyp ; fa-Egyp-IR ; fa-Egyp ; +fa-IR ; fa-Arab-IR ; fa ; +ff ; ff-Latn-SN ; ff ; +ff-AQ ; ff-Latn-AQ ; ff-AQ ; +ff-Adlm ; ff-Adlm-GN ; ff-Adlm ; +ff-BF ; ff-Latn-BF ; ff-BF ; +ff-CM ; ff-Latn-CM ; ff-CM ; +ff-Egyp ; ff-Egyp-SN ; ff-Egyp ; +ff-GH ; ff-Latn-GH ; ff-GH ; +ff-GM ; ff-Latn-GM ; ff-GM ; +ff-GN ; ff-Latn-GN ; ff-GN ; +ff-GW ; ff-Latn-GW ; ff-GW ; +ff-LR ; ff-Latn-LR ; ff-LR ; +ff-MR ; ff-Latn-MR ; ff-MR ; +ff-NE ; ff-Latn-NE ; ff-NE ; +ff-NG ; ff-Latn-NG ; ff-NG ; +ff-SL ; ff-Latn-SL ; ff-SL ; +ff-SN ; ff-Latn-SN ; ff ; +fi ; fi-Latn-FI ; fi ; +fi-AQ ; fi-Latn-AQ ; fi-AQ ; +fi-Egyp ; fi-Egyp-FI ; fi-Egyp ; +fi-FI ; fi-Latn-FI ; fi ; +fi-Latn ; fi-Latn-FI ; fi ; +fil ; fil-Latn-PH ; fil ; +fil-AQ ; fil-Latn-AQ ; fil-AQ ; +fil-Egyp ; fil-Egyp-PH ; fil-Egyp ; +fil-Latn ; fil-Latn-PH ; fil ; +fil-PH ; fil-Latn-PH ; fil ; +fo ; fo-Latn-FO ; fo ; +fo-AQ ; fo-Latn-AQ ; fo-AQ ; +fo-DK ; fo-Latn-DK ; fo-DK ; +fo-Egyp ; fo-Egyp-FO ; fo-Egyp ; +fo-FO ; fo-Latn-FO ; fo ; +fo-Latn ; fo-Latn-FO ; fo ; +fr ; fr-Latn-FR ; fr ; +fr-AQ ; fr-Latn-AQ ; fr-AQ ; +fr-BE ; fr-Latn-BE ; fr-BE ; +fr-BF ; fr-Latn-BF ; fr-BF ; +fr-BI ; fr-Latn-BI ; fr-BI ; +fr-BJ ; fr-Latn-BJ ; fr-BJ ; +fr-BL ; fr-Latn-BL ; fr-BL ; +fr-CA ; fr-Latn-CA ; fr-CA ; +fr-CD ; fr-Latn-CD ; fr-CD ; +fr-CF ; fr-Latn-CF ; fr-CF ; +fr-CG ; fr-Latn-CG ; fr-CG ; +fr-CH ; fr-Latn-CH ; fr-CH ; +fr-CI ; fr-Latn-CI ; fr-CI ; +fr-CM ; fr-Latn-CM ; fr-CM ; +fr-DJ ; fr-Latn-DJ ; fr-DJ ; +fr-DZ ; fr-Latn-DZ ; fr-DZ ; +fr-Egyp ; fr-Egyp-FR ; fr-Egyp ; +fr-FR ; fr-Latn-FR ; fr ; +fr-GA ; fr-Latn-GA ; fr-GA ; +fr-GF ; fr-Latn-GF ; fr-GF ; +fr-GN ; fr-Latn-GN ; fr-GN ; +fr-GP ; fr-Latn-GP ; fr-GP ; +fr-GQ ; fr-Latn-GQ ; fr-GQ ; +fr-HT ; fr-Latn-HT ; fr-HT ; +fr-KM ; fr-Latn-KM ; fr-KM ; +fr-LU ; fr-Latn-LU ; fr-LU ; +fr-Latn ; fr-Latn-FR ; fr ; +fr-MA ; fr-Latn-MA ; fr-MA ; +fr-MC ; fr-Latn-MC ; fr-MC ; +fr-MF ; fr-Latn-MF ; fr-MF ; +fr-MG ; fr-Latn-MG ; fr-MG ; +fr-ML ; fr-Latn-ML ; fr-ML ; +fr-MQ ; fr-Latn-MQ ; fr-MQ ; +fr-MR ; fr-Latn-MR ; fr-MR ; +fr-MU ; fr-Latn-MU ; fr-MU ; +fr-NC ; fr-Latn-NC ; fr-NC ; +fr-NE ; fr-Latn-NE ; fr-NE ; +fr-PF ; fr-Latn-PF ; fr-PF ; +fr-PM ; fr-Latn-PM ; fr-PM ; +fr-RE ; fr-Latn-RE ; fr-RE ; +fr-RW ; fr-Latn-RW ; fr-RW ; +fr-SC ; fr-Latn-SC ; fr-SC ; +fr-SN ; fr-Latn-SN ; fr-SN ; +fr-SY ; fr-Latn-SY ; fr-SY ; +fr-TD ; fr-Latn-TD ; fr-TD ; +fr-TG ; fr-Latn-TG ; fr-TG ; +fr-TN ; fr-Latn-TN ; fr-TN ; +fr-VU ; fr-Latn-VU ; fr-VU ; +fr-WF ; fr-Latn-WF ; fr-WF ; +fr-YT ; fr-Latn-YT ; fr-YT ; +ga ; ga-Latn-IE ; ga ; +ga-AQ ; ga-Latn-AQ ; ga-AQ ; +ga-Egyp ; ga-Egyp-IE ; ga-Egyp ; +ga-GB ; ga-Latn-GB ; ga-GB ; +ga-IE ; ga-Latn-IE ; ga ; +ga-Latn ; ga-Latn-IE ; ga ; +gd ; gd-Latn-GB ; gd ; +gd-AQ ; gd-Latn-AQ ; gd-AQ ; +gd-Egyp ; gd-Egyp-GB ; gd-Egyp ; +gd-GB ; gd-Latn-GB ; gd ; +gd-Latn ; gd-Latn-GB ; gd ; +gl ; gl-Latn-ES ; gl ; +gl-AQ ; gl-Latn-AQ ; gl-AQ ; +gl-ES ; gl-Latn-ES ; gl ; +gl-Egyp ; gl-Egyp-ES ; gl-Egyp ; +gl-Latn ; gl-Latn-ES ; gl ; +gu ; gu-Gujr-IN ; gu ; +gu-AQ ; gu-Gujr-AQ ; gu-AQ ; +gu-Egyp ; gu-Egyp-IN ; gu-Egyp ; +gu-Gujr ; gu-Gujr-IN ; gu ; +gu-IN ; gu-Gujr-IN ; gu ; +ha ; ha-Latn-NG ; ha ; +ha-AQ ; ha-Latn-AQ ; ha-AQ ; +ha-Egyp ; ha-Egyp-NG ; ha-Egyp ; +ha-GH ; ha-Latn-GH ; ha-GH ; +ha-Latn ; ha-Latn-NG ; ha ; +ha-NE ; ha-Latn-NE ; ha-NE ; +ha-NG ; ha-Latn-NG ; ha ; +he ; he-Hebr-IL ; he ; +he-AQ ; he-Hebr-AQ ; he-AQ ; +he-Egyp ; he-Egyp-IL ; he-Egyp ; +he-Hebr ; he-Hebr-IL ; he ; +he-IL ; he-Hebr-IL ; he ; +hi ; hi-Deva-IN ; hi ; +hi-AQ ; hi-Deva-AQ ; hi-AQ ; +hi-Deva ; hi-Deva-IN ; hi ; +hi-Egyp ; hi-Egyp-IN ; hi-Egyp ; +hi-IN ; hi-Deva-IN ; hi ; +hi-Latn ; hi-Latn-IN ; hi-Latn ; +hr ; hr-Latn-HR ; hr ; +hr-AQ ; hr-Latn-AQ ; hr-AQ ; +hr-BA ; hr-Latn-BA ; hr-BA ; +hr-Egyp ; hr-Egyp-HR ; hr-Egyp ; +hr-HR ; hr-Latn-HR ; hr ; +hr-Latn ; hr-Latn-HR ; hr ; +hsb ; hsb-Latn-DE ; hsb ; +hsb-AQ ; hsb-Latn-AQ ; hsb-AQ ; +hsb-DE ; hsb-Latn-DE ; hsb ; +hsb-Egyp ; hsb-Egyp-DE ; hsb-Egyp ; +hsb-Latn ; hsb-Latn-DE ; hsb ; +hu ; hu-Latn-HU ; hu ; +hu-AQ ; hu-Latn-AQ ; hu-AQ ; +hu-Egyp ; hu-Egyp-HU ; hu-Egyp ; +hu-HU ; hu-Latn-HU ; hu ; +hu-Latn ; hu-Latn-HU ; hu ; +hy ; hy-Armn-AM ; hy ; +hy-AM ; hy-Armn-AM ; hy ; +hy-AQ ; hy-Armn-AQ ; hy-AQ ; +hy-Armn ; hy-Armn-AM ; hy ; +hy-Egyp ; hy-Egyp-AM ; hy-Egyp ; +ia ; ia-Latn-001 ; ia ; +ia-001 ; ia-Latn-001 ; ia ; +ia-AQ ; ia-Latn-AQ ; ia-AQ ; +ia-Egyp ; ia-Egyp-001 ; ia-Egyp ; +ia-Latn ; ia-Latn-001 ; ia ; +id ; id-Latn-ID ; id ; +id-AQ ; id-Latn-AQ ; id-AQ ; +id-Egyp ; id-Egyp-ID ; id-Egyp ; +id-ID ; id-Latn-ID ; id ; +id-Latn ; id-Latn-ID ; id ; +ig ; ig-Latn-NG ; ig ; +ig-AQ ; ig-Latn-AQ ; ig-AQ ; +ig-Egyp ; ig-Egyp-NG ; ig-Egyp ; +ig-Latn ; ig-Latn-NG ; ig ; +ig-NG ; ig-Latn-NG ; ig ; +is ; is-Latn-IS ; is ; +is-AQ ; is-Latn-AQ ; is-AQ ; +is-Egyp ; is-Egyp-IS ; is-Egyp ; +is-IS ; is-Latn-IS ; is ; +is-Latn ; is-Latn-IS ; is ; +it ; it-Latn-IT ; it ; +it-AQ ; it-Latn-AQ ; it-AQ ; +it-CH ; it-Latn-CH ; it-CH ; +it-Egyp ; it-Egyp-IT ; it-Egyp ; +it-IT ; it-Latn-IT ; it ; +it-Latn ; it-Latn-IT ; it ; +it-SM ; it-Latn-SM ; it-SM ; +it-VA ; it-Latn-VA ; it-VA ; +ja ; ja-Jpan-JP ; ja ; +ja-AQ ; ja-Jpan-AQ ; ja-AQ ; +ja-Egyp ; ja-Egyp-JP ; ja-Egyp ; +ja-JP ; ja-Jpan-JP ; ja ; +ja-Jpan ; ja-Jpan-JP ; ja ; +jv ; jv-Latn-ID ; jv ; +jv-AQ ; jv-Latn-AQ ; jv-AQ ; +jv-Egyp ; jv-Egyp-ID ; jv-Egyp ; +jv-ID ; jv-Latn-ID ; jv ; +jv-Latn ; jv-Latn-ID ; jv ; +ka ; ka-Geor-GE ; ka ; +ka-AQ ; ka-Geor-AQ ; ka-AQ ; +ka-Egyp ; ka-Egyp-GE ; ka-Egyp ; +ka-GE ; ka-Geor-GE ; ka ; +ka-Geor ; ka-Geor-GE ; ka ; +kea ; kea-Latn-CV ; kea ; +kea-AQ ; kea-Latn-AQ ; kea-AQ ; +kea-CV ; kea-Latn-CV ; kea ; +kea-Egyp ; kea-Egyp-CV ; kea-Egyp ; +kea-Latn ; kea-Latn-CV ; kea ; +kgp ; kgp-Latn-BR ; kgp ; +kgp-AQ ; kgp-Latn-AQ ; kgp-AQ ; +kgp-BR ; kgp-Latn-BR ; kgp ; +kgp-Egyp ; kgp-Egyp-BR ; kgp-Egyp ; +kgp-Latn ; kgp-Latn-BR ; kgp ; +kk ; kk-Cyrl-KZ ; kk ; +kk-AQ ; kk-Cyrl-AQ ; kk-AQ ; +kk-Cyrl ; kk-Cyrl-KZ ; kk ; +kk-Egyp ; kk-Egyp-KZ ; kk-Egyp ; +kk-KZ ; kk-Cyrl-KZ ; kk ; +km ; km-Khmr-KH ; km ; +km-AQ ; km-Khmr-AQ ; km-AQ ; +km-Egyp ; km-Egyp-KH ; km-Egyp ; +km-KH ; km-Khmr-KH ; km ; +km-Khmr ; km-Khmr-KH ; km ; +kn ; kn-Knda-IN ; kn ; +kn-AQ ; kn-Knda-AQ ; kn-AQ ; +kn-Egyp ; kn-Egyp-IN ; kn-Egyp ; +kn-IN ; kn-Knda-IN ; kn ; +kn-Knda ; kn-Knda-IN ; kn ; +ko ; ko-Kore-KR ; ko ; +ko-AQ ; ko-Kore-AQ ; ko-AQ ; +ko-CN ; ko-Kore-CN ; ko-CN ; +ko-Egyp ; ko-Egyp-KR ; ko-Egyp ; +ko-KP ; ko-Kore-KP ; ko-KP ; +ko-KR ; ko-Kore-KR ; ko ; +ko-Kore ; ko-Kore-KR ; ko ; +kok ; kok-Deva-IN ; kok ; +kok-AQ ; kok-Deva-AQ ; kok-AQ ; +kok-Deva ; kok-Deva-IN ; kok ; +kok-Egyp ; kok-Egyp-IN ; kok-Egyp ; +kok-IN ; kok-Deva-IN ; kok ; +ks ; ks-Arab-IN ; ks ; +ks-AQ ; ks-Arab-AQ ; ks-AQ ; +ks-Arab ; ks-Arab-IN ; ks ; +ks-Deva ; ks-Deva-IN ; ks-Deva ; +ks-Egyp ; ks-Egyp-IN ; ks-Egyp ; +ks-IN ; ks-Arab-IN ; ks ; +ku ; ku-Latn-TR ; ku ; +ku-AQ ; ku-Latn-AQ ; ku-AQ ; +ku-Egyp ; ku-Egyp-TR ; ku-Egyp ; +ku-Latn ; ku-Latn-TR ; ku ; +ku-TR ; ku-Latn-TR ; ku ; +kxv ; kxv-Latn-IN ; kxv ; +kxv-AQ ; kxv-Latn-AQ ; kxv-AQ ; +kxv-Deva ; kxv-Deva-IN ; kxv-Deva ; +kxv-Egyp ; kxv-Egyp-IN ; kxv-Egyp ; +kxv-IN ; kxv-Latn-IN ; kxv ; +kxv-Latn ; kxv-Latn-IN ; kxv ; +kxv-Orya ; kxv-Orya-IN ; kxv-Orya ; +kxv-Telu ; kxv-Telu-IN ; kxv-Telu ; +ky ; ky-Cyrl-KG ; ky ; +ky-AQ ; ky-Cyrl-AQ ; ky-AQ ; +ky-Cyrl ; ky-Cyrl-KG ; ky ; +ky-Egyp ; ky-Egyp-KG ; ky-Egyp ; +ky-KG ; ky-Cyrl-KG ; ky ; +lo ; lo-Laoo-LA ; lo ; +lo-AQ ; lo-Laoo-AQ ; lo-AQ ; +lo-Egyp ; lo-Egyp-LA ; lo-Egyp ; +lo-LA ; lo-Laoo-LA ; lo ; +lo-Laoo ; lo-Laoo-LA ; lo ; +lt ; lt-Latn-LT ; lt ; +lt-AQ ; lt-Latn-AQ ; lt-AQ ; +lt-Egyp ; lt-Egyp-LT ; lt-Egyp ; +lt-LT ; lt-Latn-LT ; lt ; +lt-Latn ; lt-Latn-LT ; lt ; +lv ; lv-Latn-LV ; lv ; +lv-AQ ; lv-Latn-AQ ; lv-AQ ; +lv-Egyp ; lv-Egyp-LV ; lv-Egyp ; +lv-LV ; lv-Latn-LV ; lv ; +lv-Latn ; lv-Latn-LV ; lv ; +mai ; mai-Deva-IN ; mai ; +mai-AQ ; mai-Deva-AQ ; mai-AQ ; +mai-Deva ; mai-Deva-IN ; mai ; +mai-Egyp ; mai-Egyp-IN ; mai-Egyp ; +mai-IN ; mai-Deva-IN ; mai ; +mi ; mi-Latn-NZ ; mi ; +mi-AQ ; mi-Latn-AQ ; mi-AQ ; +mi-Egyp ; mi-Egyp-NZ ; mi-Egyp ; +mi-Latn ; mi-Latn-NZ ; mi ; +mi-NZ ; mi-Latn-NZ ; mi ; +mk ; mk-Cyrl-MK ; mk ; +mk-AQ ; mk-Cyrl-AQ ; mk-AQ ; +mk-Cyrl ; mk-Cyrl-MK ; mk ; +mk-Egyp ; mk-Egyp-MK ; mk-Egyp ; +mk-MK ; mk-Cyrl-MK ; mk ; +ml ; ml-Mlym-IN ; ml ; +ml-AQ ; ml-Mlym-AQ ; ml-AQ ; +ml-Egyp ; ml-Egyp-IN ; ml-Egyp ; +ml-IN ; ml-Mlym-IN ; ml ; +ml-Mlym ; ml-Mlym-IN ; ml ; +mn ; mn-Cyrl-MN ; mn ; +mn-AQ ; mn-Cyrl-AQ ; mn-AQ ; +mn-Cyrl ; mn-Cyrl-MN ; mn ; +mn-Egyp ; mn-Egyp-MN ; mn-Egyp ; +mn-MN ; mn-Cyrl-MN ; mn ; +mni ; mni-Beng-IN ; mni ; +mni-AQ ; mni-Beng-AQ ; mni-AQ ; +mni-Beng ; mni-Beng-IN ; mni ; +mni-Egyp ; mni-Egyp-IN ; mni-Egyp ; +mni-IN ; mni-Beng-IN ; mni ; +mr ; mr-Deva-IN ; mr ; +mr-AQ ; mr-Deva-AQ ; mr-AQ ; +mr-Deva ; mr-Deva-IN ; mr ; +mr-Egyp ; mr-Egyp-IN ; mr-Egyp ; +mr-IN ; mr-Deva-IN ; mr ; +ms ; ms-Latn-MY ; ms ; +ms-AQ ; ms-Latn-AQ ; ms-AQ ; +ms-BN ; ms-Latn-BN ; ms-BN ; +ms-Egyp ; ms-Egyp-MY ; ms-Egyp ; +ms-ID ; ms-Latn-ID ; ms-ID ; +ms-Latn ; ms-Latn-MY ; ms ; +ms-MY ; ms-Latn-MY ; ms ; +ms-SG ; ms-Latn-SG ; ms-SG ; +my ; my-Mymr-MM ; my ; +my-AQ ; my-Mymr-AQ ; my-AQ ; +my-Egyp ; my-Egyp-MM ; my-Egyp ; +my-MM ; my-Mymr-MM ; my ; +my-Mymr ; my-Mymr-MM ; my ; +nb ; nb-Latn-NO ; nb ; +nb-AQ ; nb-Latn-AQ ; nb-AQ ; +nb-Egyp ; nb-Egyp-NO ; nb-Egyp ; +nb-Latn ; nb-Latn-NO ; nb ; +nb-NO ; nb-Latn-NO ; nb ; +nb-SJ ; nb-Latn-SJ ; nb-SJ ; +ne ; ne-Deva-NP ; ne ; +ne-AQ ; ne-Deva-AQ ; ne-AQ ; +ne-Deva ; ne-Deva-NP ; ne ; +ne-Egyp ; ne-Egyp-NP ; ne-Egyp ; +ne-IN ; ne-Deva-IN ; ne-IN ; +ne-NP ; ne-Deva-NP ; ne ; +nl ; nl-Latn-NL ; nl ; +nl-AQ ; nl-Latn-AQ ; nl-AQ ; +nl-AW ; nl-Latn-AW ; nl-AW ; +nl-BE ; nl-Latn-BE ; nl-BE ; +nl-BQ ; nl-Latn-BQ ; nl-BQ ; +nl-CW ; nl-Latn-CW ; nl-CW ; +nl-Egyp ; nl-Egyp-NL ; nl-Egyp ; +nl-Latn ; nl-Latn-NL ; nl ; +nl-NL ; nl-Latn-NL ; nl ; +nl-SR ; nl-Latn-SR ; nl-SR ; +nl-SX ; nl-Latn-SX ; nl-SX ; +nn ; nn-Latn-NO ; nn ; +nn-AQ ; nn-Latn-AQ ; nn-AQ ; +nn-Egyp ; nn-Egyp-NO ; nn-Egyp ; +nn-Latn ; nn-Latn-NO ; nn ; +nn-NO ; nn-Latn-NO ; nn ; +no ; no-Latn-NO ; no ; +no-AQ ; no-Latn-AQ ; no-AQ ; +no-Egyp ; no-Egyp-NO ; no-Egyp ; +no-Latn ; no-Latn-NO ; no ; +no-NO ; no-Latn-NO ; no ; +or ; or-Orya-IN ; or ; +or-AQ ; or-Orya-AQ ; or-AQ ; +or-Egyp ; or-Egyp-IN ; or-Egyp ; +or-IN ; or-Orya-IN ; or ; +or-Orya ; or-Orya-IN ; or ; +pa ; pa-Guru-IN ; pa ; +pa-AQ ; pa-Guru-AQ ; pa-AQ ; +pa-Egyp ; pa-Egyp-IN ; pa-Egyp ; +pa-Guru ; pa-Guru-IN ; pa ; +pa-IN ; pa-Guru-IN ; pa ; +pcm ; pcm-Latn-NG ; pcm ; +pcm-AQ ; pcm-Latn-AQ ; pcm-AQ ; +pcm-Egyp ; pcm-Egyp-NG ; pcm-Egyp ; +pcm-Latn ; pcm-Latn-NG ; pcm ; +pcm-NG ; pcm-Latn-NG ; pcm ; +pl ; pl-Latn-PL ; pl ; +pl-AQ ; pl-Latn-AQ ; pl-AQ ; +pl-Egyp ; pl-Egyp-PL ; pl-Egyp ; +pl-Latn ; pl-Latn-PL ; pl ; +pl-PL ; pl-Latn-PL ; pl ; +ps ; ps-Arab-AF ; ps ; +ps-AF ; ps-Arab-AF ; ps ; +ps-AQ ; ps-Arab-AQ ; ps-AQ ; +ps-Arab ; ps-Arab-AF ; ps ; +ps-Egyp ; ps-Egyp-AF ; ps-Egyp ; +ps-PK ; ps-Arab-PK ; ps-PK ; +pt ; pt-Latn-BR ; pt ; +pt-AO ; pt-Latn-AO ; pt-AO ; +pt-AQ ; pt-Latn-AQ ; pt-AQ ; +pt-BR ; pt-Latn-BR ; pt ; +pt-CH ; pt-Latn-CH ; pt-CH ; +pt-CV ; pt-Latn-CV ; pt-CV ; +pt-Egyp ; pt-Egyp-BR ; pt-Egyp ; +pt-GQ ; pt-Latn-GQ ; pt-GQ ; +pt-GW ; pt-Latn-GW ; pt-GW ; +pt-LU ; pt-Latn-LU ; pt-LU ; +pt-Latn ; pt-Latn-BR ; pt ; +pt-MO ; pt-Latn-MO ; pt-MO ; +pt-MZ ; pt-Latn-MZ ; pt-MZ ; +pt-PT ; pt-Latn-PT ; pt-PT ; +pt-ST ; pt-Latn-ST ; pt-ST ; +pt-TL ; pt-Latn-TL ; pt-TL ; +qu ; qu-Latn-PE ; qu ; +qu-AQ ; qu-Latn-AQ ; qu-AQ ; +qu-BO ; qu-Latn-BO ; qu-BO ; +qu-EC ; qu-Latn-EC ; qu-EC ; +qu-Egyp ; qu-Egyp-PE ; qu-Egyp ; +qu-Latn ; qu-Latn-PE ; qu ; +qu-PE ; qu-Latn-PE ; qu ; +raj ; raj-Deva-IN ; raj ; +raj-AQ ; raj-Deva-AQ ; raj-AQ ; +raj-Deva ; raj-Deva-IN ; raj ; +raj-Egyp ; raj-Egyp-IN ; raj-Egyp ; +raj-IN ; raj-Deva-IN ; raj ; +rm ; rm-Latn-CH ; rm ; +rm-AQ ; rm-Latn-AQ ; rm-AQ ; +rm-CH ; rm-Latn-CH ; rm ; +rm-Egyp ; rm-Egyp-CH ; rm-Egyp ; +rm-Latn ; rm-Latn-CH ; rm ; +ro ; ro-Latn-RO ; ro ; +ro-AQ ; ro-Latn-AQ ; ro-AQ ; +ro-Egyp ; ro-Egyp-RO ; ro-Egyp ; +ro-Latn ; ro-Latn-RO ; ro ; +ro-MD ; ro-Latn-MD ; ro-MD ; +ro-RO ; ro-Latn-RO ; ro ; +ru ; ru-Cyrl-RU ; ru ; +ru-AQ ; ru-Cyrl-AQ ; ru-AQ ; +ru-BY ; ru-Cyrl-BY ; ru-BY ; +ru-Cyrl ; ru-Cyrl-RU ; ru ; +ru-Egyp ; ru-Egyp-RU ; ru-Egyp ; +ru-KG ; ru-Cyrl-KG ; ru-KG ; +ru-KZ ; ru-Cyrl-KZ ; ru-KZ ; +ru-MD ; ru-Cyrl-MD ; ru-MD ; +ru-RU ; ru-Cyrl-RU ; ru ; +ru-UA ; ru-Cyrl-UA ; ru-UA ; +sa ; sa-Deva-IN ; sa ; +sa-AQ ; sa-Deva-AQ ; sa-AQ ; +sa-Deva ; sa-Deva-IN ; sa ; +sa-Egyp ; sa-Egyp-IN ; sa-Egyp ; +sa-IN ; sa-Deva-IN ; sa ; +sat ; sat-Olck-IN ; sat ; +sat-AQ ; sat-Olck-AQ ; sat-AQ ; +sat-Egyp ; sat-Egyp-IN ; sat-Egyp ; +sat-IN ; sat-Olck-IN ; sat ; +sat-Olck ; sat-Olck-IN ; sat ; +sc ; sc-Latn-IT ; sc ; +sc-AQ ; sc-Latn-AQ ; sc-AQ ; +sc-Egyp ; sc-Egyp-IT ; sc-Egyp ; +sc-IT ; sc-Latn-IT ; sc ; +sc-Latn ; sc-Latn-IT ; sc ; +sd ; sd-Arab-PK ; sd ; +sd-AQ ; sd-Arab-AQ ; sd-AQ ; +sd-Arab ; sd-Arab-PK ; sd ; +sd-Deva ; sd-Deva-IN ; sd-Deva ; sd-IN +sd-Egyp ; sd-Egyp-PK ; sd-Egyp ; +sd-IN ; sd-Deva-IN ; sd-Deva ; sd-IN +sd-PK ; sd-Arab-PK ; sd ; +si ; si-Sinh-LK ; si ; +si-AQ ; si-Sinh-AQ ; si-AQ ; +si-Egyp ; si-Egyp-LK ; si-Egyp ; +si-LK ; si-Sinh-LK ; si ; +si-Sinh ; si-Sinh-LK ; si ; +sk ; sk-Latn-SK ; sk ; +sk-AQ ; sk-Latn-AQ ; sk-AQ ; +sk-Egyp ; sk-Egyp-SK ; sk-Egyp ; +sk-Latn ; sk-Latn-SK ; sk ; +sk-SK ; sk-Latn-SK ; sk ; +sl ; sl-Latn-SI ; sl ; +sl-AQ ; sl-Latn-AQ ; sl-AQ ; +sl-Egyp ; sl-Egyp-SI ; sl-Egyp ; +sl-Latn ; sl-Latn-SI ; sl ; +sl-SI ; sl-Latn-SI ; sl ; +so ; so-Latn-SO ; so ; +so-AQ ; so-Latn-AQ ; so-AQ ; +so-DJ ; so-Latn-DJ ; so-DJ ; +so-ET ; so-Latn-ET ; so-ET ; +so-Egyp ; so-Egyp-SO ; so-Egyp ; +so-KE ; so-Latn-KE ; so-KE ; +so-Latn ; so-Latn-SO ; so ; +so-SO ; so-Latn-SO ; so ; +sq ; sq-Latn-AL ; sq ; +sq-AL ; sq-Latn-AL ; sq ; +sq-AQ ; sq-Latn-AQ ; sq-AQ ; +sq-Egyp ; sq-Egyp-AL ; sq-Egyp ; +sq-Latn ; sq-Latn-AL ; sq ; +sq-MK ; sq-Latn-MK ; sq-MK ; +sq-XK ; sq-Latn-XK ; sq-XK ; +sr ; sr-Cyrl-RS ; sr ; +sr-AQ ; sr-Cyrl-AQ ; sr-AQ ; +sr-BA ; sr-Cyrl-BA ; sr-BA ; +sr-Cyrl ; sr-Cyrl-RS ; sr ; +sr-Egyp ; sr-Egyp-RS ; sr-Egyp ; +sr-Latn ; sr-Latn-RS ; sr-Latn ; +sr-ME ; sr-Latn-ME ; sr-ME ; +sr-RS ; sr-Cyrl-RS ; sr ; +sr-XK ; sr-Cyrl-XK ; sr-XK ; +su ; su-Latn-ID ; su ; +su-AQ ; su-Latn-AQ ; su-AQ ; +su-Egyp ; su-Egyp-ID ; su-Egyp ; +su-ID ; su-Latn-ID ; su ; +su-Latn ; su-Latn-ID ; su ; +sv ; sv-Latn-SE ; sv ; +sv-AQ ; sv-Latn-AQ ; sv-AQ ; +sv-AX ; sv-Latn-AX ; sv-AX ; +sv-Egyp ; sv-Egyp-SE ; sv-Egyp ; +sv-FI ; sv-Latn-FI ; sv-FI ; +sv-Latn ; sv-Latn-SE ; sv ; +sv-SE ; sv-Latn-SE ; sv ; +sw ; sw-Latn-TZ ; sw ; +sw-AQ ; sw-Latn-AQ ; sw-AQ ; +sw-CD ; sw-Latn-CD ; sw-CD ; +sw-Egyp ; sw-Egyp-TZ ; sw-Egyp ; +sw-KE ; sw-Latn-KE ; sw-KE ; +sw-Latn ; sw-Latn-TZ ; sw ; +sw-TZ ; sw-Latn-TZ ; sw ; +sw-UG ; sw-Latn-UG ; sw-UG ; +ta ; ta-Taml-IN ; ta ; +ta-AQ ; ta-Taml-AQ ; ta-AQ ; +ta-Egyp ; ta-Egyp-IN ; ta-Egyp ; +ta-IN ; ta-Taml-IN ; ta ; +ta-LK ; ta-Taml-LK ; ta-LK ; +ta-MY ; ta-Taml-MY ; ta-MY ; +ta-SG ; ta-Taml-SG ; ta-SG ; +ta-Taml ; ta-Taml-IN ; ta ; +te ; te-Telu-IN ; te ; +te-AQ ; te-Telu-AQ ; te-AQ ; +te-Egyp ; te-Egyp-IN ; te-Egyp ; +te-IN ; te-Telu-IN ; te ; +te-Telu ; te-Telu-IN ; te ; +tg ; tg-Cyrl-TJ ; tg ; +tg-AQ ; tg-Cyrl-AQ ; tg-AQ ; +tg-Cyrl ; tg-Cyrl-TJ ; tg ; +tg-Egyp ; tg-Egyp-TJ ; tg-Egyp ; +tg-TJ ; tg-Cyrl-TJ ; tg ; +th ; th-Thai-TH ; th ; +th-AQ ; th-Thai-AQ ; th-AQ ; +th-Egyp ; th-Egyp-TH ; th-Egyp ; +th-TH ; th-Thai-TH ; th ; +th-Thai ; th-Thai-TH ; th ; +ti ; ti-Ethi-ET ; ti ; +ti-AQ ; ti-Ethi-AQ ; ti-AQ ; +ti-ER ; ti-Ethi-ER ; ti-ER ; +ti-ET ; ti-Ethi-ET ; ti ; +ti-Egyp ; ti-Egyp-ET ; ti-Egyp ; +ti-Ethi ; ti-Ethi-ET ; ti ; +tk ; tk-Latn-TM ; tk ; +tk-AQ ; tk-Latn-AQ ; tk-AQ ; +tk-Egyp ; tk-Egyp-TM ; tk-Egyp ; +tk-Latn ; tk-Latn-TM ; tk ; +tk-TM ; tk-Latn-TM ; tk ; +to ; to-Latn-TO ; to ; +to-AQ ; to-Latn-AQ ; to-AQ ; +to-Egyp ; to-Egyp-TO ; to-Egyp ; +to-Latn ; to-Latn-TO ; to ; +to-TO ; to-Latn-TO ; to ; +tr ; tr-Latn-TR ; tr ; +tr-AQ ; tr-Latn-AQ ; tr-AQ ; +tr-CY ; tr-Latn-CY ; tr-CY ; +tr-Egyp ; tr-Egyp-TR ; tr-Egyp ; +tr-Latn ; tr-Latn-TR ; tr ; +tr-TR ; tr-Latn-TR ; tr ; +tt ; tt-Cyrl-RU ; tt ; +tt-AQ ; tt-Cyrl-AQ ; tt-AQ ; +tt-Cyrl ; tt-Cyrl-RU ; tt ; +tt-Egyp ; tt-Egyp-RU ; tt-Egyp ; +tt-RU ; tt-Cyrl-RU ; tt ; +uk ; uk-Cyrl-UA ; uk ; +uk-AQ ; uk-Cyrl-AQ ; uk-AQ ; +uk-Cyrl ; uk-Cyrl-UA ; uk ; +uk-Egyp ; uk-Egyp-UA ; uk-Egyp ; +uk-UA ; uk-Cyrl-UA ; uk ; +und-001 ; en-Latn-001 ; en-001 ; +und-150 ; ru-Cyrl-RU ; ru ; +und-419 ; es-Latn-419 ; es-419 ; +und-AD ; ca-Latn-AD ; ca-AD ; +und-AE ; ar-Arab-AE ; ar-AE ; +und-AF ; fa-Arab-AF ; fa-AF ; +und-AG ; en-Latn-AG ; en-AG ; +und-AI ; en-Latn-AI ; en-AI ; +und-AL ; sq-Latn-AL ; sq ; +und-AM ; hy-Armn-AM ; hy ; +und-AO ; pt-Latn-AO ; pt-AO ; +und-AQ ; und-Latn-AQ ; und-AQ ; +und-AR ; es-Latn-AR ; es-AR ; +und-AS ; sm-Latn-AS ; sm-AS ; +und-AT ; de-Latn-AT ; de-AT ; +und-AU ; en-Latn-AU ; en-AU ; +und-AW ; nl-Latn-AW ; nl-AW ; +und-AX ; sv-Latn-AX ; sv-AX ; +und-AZ ; az-Latn-AZ ; az ; +und-Adlm ; ff-Adlm-GN ; ff-Adlm ; +und-Adlm-BF ; fr-Adlm-BF ; ; +und-Adlm-CM ; fr-Adlm-CM ; ; +und-Adlm-GH ; ak-Adlm-GH ; ak-Adlm ; +und-Adlm-GM ; ff-Adlm-GM ; ; +und-Adlm-GN ; fr-Adlm-GN ; ; +und-Adlm-GW ; pt-Adlm-GW ; ; +und-Adlm-LR ; ff-Adlm-LR ; ; +und-Adlm-MR ; ar-Adlm-MR ; ; +und-Adlm-NE ; ha-Adlm-NE ; ; +und-Adlm-NG ; ff-Adlm-NG ; ; +und-Adlm-SL ; ff-Adlm-SL ; ; +und-Adlm-SN ; fr-Adlm-SN ; ; +und-Arab ; ar-Arab-EG ; ar ; +und-Arab-001 ; ar-Arab-001 ; ar-001 ; +und-Arab-AE ; ar-Arab-AE ; ar-AE ; +und-Arab-AF ; fa-Arab-AF ; fa-AF ; +und-Arab-BH ; ar-Arab-BH ; ar-BH ; +und-Arab-DJ ; aa-Arab-DJ ; ; +und-Arab-DZ ; ar-Arab-DZ ; ar-DZ ; +und-Arab-EG ; ar-Arab-EG ; ar ; +und-Arab-EH ; ar-Arab-EH ; ar-EH ; +und-Arab-ER ; ti-Arab-ER ; ; +und-Arab-IL ; he-Arab-IL ; he-Arab ; +und-Arab-IN ; ur-Arab-IN ; ur-IN ; +und-Arab-IQ ; ar-Arab-IQ ; ar-IQ ; +und-Arab-IR ; fa-Arab-IR ; fa ; +und-Arab-JO ; ar-Arab-JO ; ar-JO ; +und-Arab-KM ; ar-Arab-KM ; ar-KM ; +und-Arab-KW ; ar-Arab-KW ; ar-KW ; +und-Arab-LB ; ar-Arab-LB ; ar-LB ; +und-Arab-LY ; ar-Arab-LY ; ar-LY ; +und-Arab-MA ; ar-Arab-MA ; ar-MA ; +und-Arab-MR ; ar-Arab-MR ; ar-MR ; +und-Arab-OM ; ar-Arab-OM ; ar-OM ; +und-Arab-PK ; ur-Arab-PK ; ur ; +und-Arab-PS ; ar-Arab-PS ; ar-PS ; +und-Arab-QA ; ar-Arab-QA ; ar-QA ; +und-Arab-SA ; ar-Arab-SA ; ar-SA ; +und-Arab-SD ; ar-Arab-SD ; ar-SD ; +und-Arab-SO ; so-Arab-SO ; so-Arab ; +und-Arab-SS ; ar-Arab-SS ; ar-SS ; +und-Arab-SY ; ar-Arab-SY ; ar-SY ; +und-Arab-TD ; fr-Arab-TD ; ; +und-Arab-TN ; ar-Arab-TN ; ar-TN ; +und-Arab-YE ; ar-Arab-YE ; ar-YE ; +und-Armn ; hy-Armn-AM ; hy ; +und-Armn-AM ; hy-Armn-AM ; hy ; +und-BA ; bs-Latn-BA ; bs ; +und-BB ; en-Latn-BB ; en-BB ; +und-BD ; bn-Beng-BD ; bn ; +und-BE ; nl-Latn-BE ; nl-BE ; +und-BF ; fr-Latn-BF ; fr-BF ; +und-BG ; bg-Cyrl-BG ; bg ; +und-BH ; ar-Arab-BH ; ar-BH ; +und-BI ; rn-Latn-BI ; rn ; +und-BJ ; fr-Latn-BJ ; fr-BJ ; +und-BL ; fr-Latn-BL ; fr-BL ; +und-BM ; en-Latn-BM ; en-BM ; +und-BN ; ms-Latn-BN ; ms-BN ; +und-BO ; es-Latn-BO ; es-BO ; +und-BQ ; pap-Latn-BQ ; pap-BQ ; +und-BR ; pt-Latn-BR ; pt ; +und-BS ; en-Latn-BS ; en-BS ; +und-BW ; en-Latn-BW ; en-BW ; +und-BY ; be-Cyrl-BY ; be ; +und-BZ ; en-Latn-BZ ; en-BZ ; +und-Beng ; bn-Beng-BD ; bn ; +und-Beng-BD ; bn-Beng-BD ; bn ; +und-Beng-IN ; hi-Beng-IN ; hi-Beng ; +und-CA ; en-Latn-CA ; en-CA ; +und-CC ; en-Latn-CC ; en-CC ; +und-CD ; sw-Latn-CD ; sw-CD ; +und-CF ; fr-Latn-CF ; fr-CF ; +und-CG ; fr-Latn-CG ; fr-CG ; +und-CH ; de-Latn-CH ; de-CH ; +und-CI ; fr-Latn-CI ; fr-CI ; +und-CK ; en-Latn-CK ; en-CK ; +und-CL ; es-Latn-CL ; es-CL ; +und-CM ; fr-Latn-CM ; fr-CM ; +und-CN ; zh-Hans-CN ; zh ; +und-CO ; es-Latn-CO ; es-CO ; +und-CR ; es-Latn-CR ; es-CR ; +und-CU ; es-Latn-CU ; es-CU ; +und-CV ; pt-Latn-CV ; pt-CV ; +und-CW ; pap-Latn-CW ; pap ; +und-CX ; en-Latn-CX ; en-CX ; +und-CY ; el-Grek-CY ; el-CY ; +und-CZ ; cs-Latn-CZ ; cs ; +und-Cans ; iu-Cans-CA ; iu ; +und-Cans-CA ; iu-Cans-CA ; iu ; +und-Cher ; chr-Cher-US ; chr ; +und-Cher-US ; chr-Cher-US ; chr ; +und-Cyrl ; ru-Cyrl-RU ; ru ; +und-Cyrl-BA ; sr-Cyrl-BA ; sr-BA ; +und-Cyrl-BG ; bg-Cyrl-BG ; bg ; +und-Cyrl-BY ; be-Cyrl-BY ; be ; +und-Cyrl-KG ; ky-Cyrl-KG ; ky ; +und-Cyrl-KZ ; ru-Cyrl-KZ ; ru-KZ ; +und-Cyrl-MD ; uk-Cyrl-MD ; uk-MD ; +und-Cyrl-ME ; sr-Cyrl-ME ; ; +und-Cyrl-MK ; mk-Cyrl-MK ; mk ; +und-Cyrl-MN ; mn-Cyrl-MN ; mn ; +und-Cyrl-RS ; sr-Cyrl-RS ; sr ; +und-Cyrl-RU ; ru-Cyrl-RU ; ru ; +und-Cyrl-TJ ; tg-Cyrl-TJ ; tg ; +und-Cyrl-UA ; uk-Cyrl-UA ; uk ; +und-Cyrl-UZ ; uz-Cyrl-UZ ; uz-Cyrl ; +und-Cyrl-XK ; sr-Cyrl-XK ; sr-XK ; +und-DE ; de-Latn-DE ; de ; +und-DG ; en-Latn-DG ; en-DG ; +und-DJ ; aa-Latn-DJ ; aa-DJ ; +und-DK ; da-Latn-DK ; da ; +und-DM ; en-Latn-DM ; en-DM ; +und-DO ; es-Latn-DO ; es-DO ; +und-DZ ; ar-Arab-DZ ; ar-DZ ; +und-Deva ; hi-Deva-IN ; hi ; +und-Deva-IN ; hi-Deva-IN ; hi ; +und-Deva-NP ; ne-Deva-NP ; ne ; +und-Deva-PK ; btv-Deva-PK ; btv ; +und-EA ; es-Latn-EA ; es-EA ; +und-EC ; es-Latn-EC ; es-EC ; +und-EE ; et-Latn-EE ; et ; +und-EG ; ar-Arab-EG ; ar ; +und-EH ; ar-Arab-EH ; ar-EH ; +und-ER ; ti-Ethi-ER ; ti-ER ; +und-ES ; es-Latn-ES ; es ; +und-ET ; am-Ethi-ET ; am ; +und-Egyp ; egy-Egyp-EG ; egy ; +und-Ethi ; am-Ethi-ET ; am ; +und-Ethi-ER ; ti-Ethi-ER ; ti-ER ; +und-Ethi-ET ; am-Ethi-ET ; am ; +und-FI ; fi-Latn-FI ; fi ; +und-FJ ; en-Latn-FJ ; en-FJ ; +und-FK ; en-Latn-FK ; en-FK ; +und-FM ; en-Latn-FM ; en-FM ; +und-FO ; fo-Latn-FO ; fo ; +und-FR ; fr-Latn-FR ; fr ; +und-GA ; fr-Latn-GA ; fr-GA ; +und-GB ; en-Latn-GB ; en-GB ; +und-GD ; en-Latn-GD ; en-GD ; +und-GE ; ka-Geor-GE ; ka ; +und-GF ; fr-Latn-GF ; fr-GF ; +und-GG ; en-Latn-GG ; en-GG ; +und-GH ; ak-Latn-GH ; ak ; +und-GI ; en-Latn-GI ; en-GI ; +und-GL ; kl-Latn-GL ; kl ; +und-GM ; en-Latn-GM ; en-GM ; +und-GN ; fr-Latn-GN ; fr-GN ; +und-GP ; fr-Latn-GP ; fr-GP ; +und-GQ ; es-Latn-GQ ; es-GQ ; +und-GR ; el-Grek-GR ; el ; +und-GT ; es-Latn-GT ; es-GT ; +und-GU ; en-Latn-GU ; en-GU ; +und-GW ; pt-Latn-GW ; pt-GW ; +und-GY ; en-Latn-GY ; en-GY ; +und-Geor ; ka-Geor-GE ; ka ; +und-Geor-GE ; ka-Geor-GE ; ka ; +und-Grek ; el-Grek-GR ; el ; +und-Grek-CY ; el-Grek-CY ; el-CY ; +und-Grek-GR ; el-Grek-GR ; el ; +und-Gujr ; gu-Gujr-IN ; gu ; +und-Gujr-IN ; hi-Gujr-IN ; hi-Gujr ; +und-Guru ; pa-Guru-IN ; pa ; +und-Guru-IN ; hi-Guru-IN ; hi-Guru ; +und-HK ; zh-Hant-HK ; zh-HK ; +und-HN ; es-Latn-HN ; es-HN ; +und-HR ; hr-Latn-HR ; hr ; +und-HT ; ht-Latn-HT ; ht ; +und-HU ; hu-Latn-HU ; hu ; +und-Hans ; zh-Hans-CN ; zh ; +und-Hans-CN ; zh-Hans-CN ; zh ; +und-Hans-HK ; zh-Hans-HK ; ; +und-Hans-MO ; zh-Hans-MO ; ; +und-Hans-SG ; zh-Hans-SG ; zh-SG ; +und-Hans-TW ; zh-Hans-TW ; ; +und-Hant ; zh-Hant-TW ; zh-Hant ; zh-TW +und-Hant-CN ; zh-Hant-CN ; ; +und-Hant-HK ; zh-Hant-HK ; zh-HK ; +und-Hant-MO ; zh-Hant-MO ; zh-MO ; +und-Hant-SG ; zh-Hant-SG ; ; +und-Hant-TW ; zh-Hant-TW ; zh-Hant ; zh-TW +und-Hebr ; he-Hebr-IL ; he ; +und-Hebr-IL ; he-Hebr-IL ; he ; +und-IC ; es-Latn-IC ; es-IC ; +und-ID ; id-Latn-ID ; id ; +und-IE ; en-Latn-IE ; en-IE ; +und-IL ; he-Hebr-IL ; he ; +und-IM ; en-Latn-IM ; en-IM ; +und-IN ; hi-Deva-IN ; hi ; +und-IO ; en-Latn-IO ; en-IO ; +und-IQ ; ar-Arab-IQ ; ar-IQ ; +und-IR ; fa-Arab-IR ; fa ; +und-IS ; is-Latn-IS ; is ; +und-IT ; it-Latn-IT ; it ; +und-JE ; en-Latn-JE ; en-JE ; +und-JM ; en-Latn-JM ; en-JM ; +und-JO ; ar-Arab-JO ; ar-JO ; +und-JP ; ja-Jpan-JP ; ja ; +und-Jpan ; ja-Jpan-JP ; ja ; +und-Jpan-JP ; ja-Jpan-JP ; ja ; +und-KE ; sw-Latn-KE ; sw-KE ; +und-KG ; ky-Cyrl-KG ; ky ; +und-KH ; km-Khmr-KH ; km ; +und-KI ; en-Latn-KI ; en-KI ; +und-KM ; ar-Arab-KM ; ar-KM ; +und-KN ; en-Latn-KN ; en-KN ; +und-KP ; ko-Kore-KP ; ko-KP ; +und-KR ; ko-Kore-KR ; ko ; +und-KW ; ar-Arab-KW ; ar-KW ; +und-KY ; en-Latn-KY ; en-KY ; +und-KZ ; ru-Cyrl-KZ ; ru-KZ ; +und-Khmr ; km-Khmr-KH ; km ; +und-Khmr-KH ; km-Khmr-KH ; km ; +und-Knda ; kn-Knda-IN ; kn ; +und-Knda-IN ; hi-Knda-IN ; hi-Knda ; +und-Kore ; ko-Kore-KR ; ko ; +und-Kore-CN ; zh-Kore-CN ; zh-Kore ; +und-Kore-KP ; ko-Kore-KP ; ko-KP ; +und-Kore-KR ; ko-Kore-KR ; ko ; +und-LA ; lo-Laoo-LA ; lo ; +und-LB ; ar-Arab-LB ; ar-LB ; +und-LC ; en-Latn-LC ; en-LC ; +und-LI ; de-Latn-LI ; de-LI ; +und-LK ; si-Sinh-LK ; si ; +und-LR ; en-Latn-LR ; en-LR ; +und-LS ; st-Latn-LS ; st-LS ; +und-LT ; lt-Latn-LT ; lt ; +und-LU ; fr-Latn-LU ; fr-LU ; +und-LV ; lv-Latn-LV ; lv ; +und-LY ; ar-Arab-LY ; ar-LY ; +und-Laoo ; lo-Laoo-LA ; lo ; +und-Laoo-LA ; lo-Laoo-LA ; lo ; +und-Latn ; en-Latn-US ; en ; +und-Latn-001 ; en-Latn-001 ; en-001 ; +und-Latn-150 ; ru-Latn-150 ; ; +und-Latn-419 ; es-Latn-419 ; es-419 ; +und-Latn-AD ; ca-Latn-AD ; ca-AD ; +und-Latn-AE ; ar-Latn-AE ; ; +und-Latn-AG ; en-Latn-AG ; en-AG ; +und-Latn-AI ; en-Latn-AI ; en-AI ; +und-Latn-AL ; sq-Latn-AL ; sq ; +und-Latn-AO ; pt-Latn-AO ; pt-AO ; +und-Latn-AR ; es-Latn-AR ; es-AR ; +und-Latn-AS ; sm-Latn-AS ; sm-AS ; +und-Latn-AT ; de-Latn-AT ; de-AT ; +und-Latn-AU ; en-Latn-AU ; en-AU ; +und-Latn-AW ; nl-Latn-AW ; nl-AW ; +und-Latn-AX ; sv-Latn-AX ; sv-AX ; +und-Latn-AZ ; az-Latn-AZ ; az ; +und-Latn-BA ; bs-Latn-BA ; bs ; +und-Latn-BB ; en-Latn-BB ; en-BB ; +und-Latn-BE ; nl-Latn-BE ; nl-BE ; +und-Latn-BF ; fr-Latn-BF ; fr-BF ; +und-Latn-BI ; rn-Latn-BI ; rn ; +und-Latn-BJ ; fr-Latn-BJ ; fr-BJ ; +und-Latn-BL ; fr-Latn-BL ; fr-BL ; +und-Latn-BM ; en-Latn-BM ; en-BM ; +und-Latn-BN ; ms-Latn-BN ; ms-BN ; +und-Latn-BO ; es-Latn-BO ; es-BO ; +und-Latn-BQ ; pap-Latn-BQ ; pap-BQ ; +und-Latn-BR ; pt-Latn-BR ; pt ; +und-Latn-BS ; en-Latn-BS ; en-BS ; +und-Latn-BW ; en-Latn-BW ; en-BW ; +und-Latn-BZ ; en-Latn-BZ ; en-BZ ; +und-Latn-CA ; en-Latn-CA ; en-CA ; +und-Latn-CC ; en-Latn-CC ; en-CC ; +und-Latn-CD ; sw-Latn-CD ; sw-CD ; +und-Latn-CF ; fr-Latn-CF ; fr-CF ; +und-Latn-CG ; fr-Latn-CG ; fr-CG ; +und-Latn-CH ; de-Latn-CH ; de-CH ; +und-Latn-CI ; fr-Latn-CI ; fr-CI ; +und-Latn-CK ; en-Latn-CK ; en-CK ; +und-Latn-CL ; es-Latn-CL ; es-CL ; +und-Latn-CM ; fr-Latn-CM ; fr-CM ; +und-Latn-CO ; es-Latn-CO ; es-CO ; +und-Latn-CR ; es-Latn-CR ; es-CR ; +und-Latn-CU ; es-Latn-CU ; es-CU ; +und-Latn-CV ; pt-Latn-CV ; pt-CV ; +und-Latn-CW ; pap-Latn-CW ; pap ; +und-Latn-CX ; en-Latn-CX ; en-CX ; +und-Latn-CY ; tr-Latn-CY ; tr-CY ; +und-Latn-CZ ; cs-Latn-CZ ; cs ; +und-Latn-DE ; de-Latn-DE ; de ; +und-Latn-DG ; en-Latn-DG ; en-DG ; +und-Latn-DJ ; aa-Latn-DJ ; aa-DJ ; +und-Latn-DK ; da-Latn-DK ; da ; +und-Latn-DM ; en-Latn-DM ; en-DM ; +und-Latn-DO ; es-Latn-DO ; es-DO ; +und-Latn-DZ ; fr-Latn-DZ ; fr-DZ ; +und-Latn-EA ; es-Latn-EA ; es-EA ; +und-Latn-EC ; es-Latn-EC ; es-EC ; +und-Latn-EE ; et-Latn-EE ; et ; +und-Latn-ER ; ti-Latn-ER ; ; +und-Latn-ES ; es-Latn-ES ; es ; +und-Latn-ET ; en-Latn-ET ; en-ET ; +und-Latn-FI ; fi-Latn-FI ; fi ; +und-Latn-FJ ; en-Latn-FJ ; en-FJ ; +und-Latn-FK ; en-Latn-FK ; en-FK ; +und-Latn-FM ; en-Latn-FM ; en-FM ; +und-Latn-FO ; fo-Latn-FO ; fo ; +und-Latn-FR ; fr-Latn-FR ; fr ; +und-Latn-GA ; fr-Latn-GA ; fr-GA ; +und-Latn-GB ; en-Latn-GB ; en-GB ; +und-Latn-GD ; en-Latn-GD ; en-GD ; +und-Latn-GF ; fr-Latn-GF ; fr-GF ; +und-Latn-GG ; en-Latn-GG ; en-GG ; +und-Latn-GH ; ak-Latn-GH ; ak ; +und-Latn-GI ; en-Latn-GI ; en-GI ; +und-Latn-GL ; kl-Latn-GL ; kl ; +und-Latn-GM ; en-Latn-GM ; en-GM ; +und-Latn-GN ; fr-Latn-GN ; fr-GN ; +und-Latn-GP ; fr-Latn-GP ; fr-GP ; +und-Latn-GQ ; es-Latn-GQ ; es-GQ ; +und-Latn-GT ; es-Latn-GT ; es-GT ; +und-Latn-GU ; en-Latn-GU ; en-GU ; +und-Latn-GW ; pt-Latn-GW ; pt-GW ; +und-Latn-GY ; en-Latn-GY ; en-GY ; +und-Latn-HK ; zh-Latn-HK ; ; +und-Latn-HN ; es-Latn-HN ; es-HN ; +und-Latn-HR ; hr-Latn-HR ; hr ; +und-Latn-HT ; ht-Latn-HT ; ht ; +und-Latn-HU ; hu-Latn-HU ; hu ; +und-Latn-IC ; es-Latn-IC ; es-IC ; +und-Latn-ID ; id-Latn-ID ; id ; +und-Latn-IE ; en-Latn-IE ; en-IE ; +und-Latn-IL ; he-Latn-IL ; he-Latn ; +und-Latn-IM ; en-Latn-IM ; en-IM ; +und-Latn-IN ; hi-Latn-IN ; hi-Latn ; +und-Latn-IO ; en-Latn-IO ; en-IO ; +und-Latn-IS ; is-Latn-IS ; is ; +und-Latn-IT ; it-Latn-IT ; it ; +und-Latn-JE ; en-Latn-JE ; en-JE ; +und-Latn-JM ; en-Latn-JM ; en-JM ; +und-Latn-KE ; sw-Latn-KE ; sw-KE ; +und-Latn-KI ; en-Latn-KI ; en-KI ; +und-Latn-KM ; fr-Latn-KM ; fr-KM ; +und-Latn-KN ; en-Latn-KN ; en-KN ; +und-Latn-KY ; en-Latn-KY ; en-KY ; +und-Latn-LC ; en-Latn-LC ; en-LC ; +und-Latn-LI ; de-Latn-LI ; de-LI ; +und-Latn-LR ; en-Latn-LR ; en-LR ; +und-Latn-LS ; st-Latn-LS ; st-LS ; +und-Latn-LT ; lt-Latn-LT ; lt ; +und-Latn-LU ; fr-Latn-LU ; fr-LU ; +und-Latn-LV ; lv-Latn-LV ; lv ; +und-Latn-MA ; fr-Latn-MA ; fr-MA ; +und-Latn-MC ; fr-Latn-MC ; fr-MC ; +und-Latn-MD ; ro-Latn-MD ; ro-MD ; +und-Latn-ME ; sr-Latn-ME ; sr-ME ; +und-Latn-MF ; fr-Latn-MF ; fr-MF ; +und-Latn-MG ; mg-Latn-MG ; mg ; +und-Latn-MH ; en-Latn-MH ; en-MH ; +und-Latn-MK ; sq-Latn-MK ; sq-MK ; +und-Latn-ML ; bm-Latn-ML ; bm ; +und-Latn-MO ; pt-Latn-MO ; pt-MO ; +und-Latn-MP ; en-Latn-MP ; en-MP ; +und-Latn-MQ ; fr-Latn-MQ ; fr-MQ ; +und-Latn-MR ; fr-Latn-MR ; fr-MR ; +und-Latn-MS ; en-Latn-MS ; en-MS ; +und-Latn-MT ; mt-Latn-MT ; mt ; +und-Latn-MU ; mfe-Latn-MU ; mfe ; +und-Latn-MV ; dv-Latn-MV ; dv-Latn ; +und-Latn-MW ; en-Latn-MW ; en-MW ; +und-Latn-MX ; es-Latn-MX ; es-MX ; +und-Latn-MY ; ms-Latn-MY ; ms ; +und-Latn-MZ ; pt-Latn-MZ ; pt-MZ ; +und-Latn-NA ; af-Latn-NA ; af-NA ; +und-Latn-NC ; fr-Latn-NC ; fr-NC ; +und-Latn-NE ; ha-Latn-NE ; ha-NE ; +und-Latn-NF ; en-Latn-NF ; en-NF ; +und-Latn-NG ; en-Latn-NG ; en-NG ; +und-Latn-NI ; es-Latn-NI ; es-NI ; +und-Latn-NL ; nl-Latn-NL ; nl ; +und-Latn-NO ; nb-Latn-NO ; nb ; +und-Latn-NR ; en-Latn-NR ; en-NR ; +und-Latn-NU ; en-Latn-NU ; en-NU ; +und-Latn-NZ ; en-Latn-NZ ; en-NZ ; +und-Latn-PA ; es-Latn-PA ; es-PA ; +und-Latn-PE ; es-Latn-PE ; es-PE ; +und-Latn-PF ; fr-Latn-PF ; fr-PF ; +und-Latn-PG ; tpi-Latn-PG ; tpi ; +und-Latn-PH ; fil-Latn-PH ; fil ; +und-Latn-PK ; ur-Latn-PK ; ur-Latn ; +und-Latn-PL ; pl-Latn-PL ; pl ; +und-Latn-PM ; fr-Latn-PM ; fr-PM ; +und-Latn-PN ; en-Latn-PN ; en-PN ; +und-Latn-PR ; es-Latn-PR ; es-PR ; +und-Latn-PT ; pt-Latn-PT ; pt-PT ; +und-Latn-PW ; pau-Latn-PW ; pau ; +und-Latn-PY ; gn-Latn-PY ; gn ; +und-Latn-RE ; fr-Latn-RE ; fr-RE ; +und-Latn-RO ; ro-Latn-RO ; ro ; +und-Latn-RS ; sr-Latn-RS ; sr-Latn ; +und-Latn-RW ; rw-Latn-RW ; rw ; +und-Latn-SB ; en-Latn-SB ; en-SB ; +und-Latn-SC ; fr-Latn-SC ; fr-SC ; +und-Latn-SD ; ar-Latn-SD ; ; +und-Latn-SE ; sv-Latn-SE ; sv ; +und-Latn-SG ; en-Latn-SG ; en-SG ; +und-Latn-SH ; en-Latn-SH ; en-SH ; +und-Latn-SI ; sl-Latn-SI ; sl ; +und-Latn-SJ ; nb-Latn-SJ ; nb-SJ ; +und-Latn-SK ; sk-Latn-SK ; sk ; +und-Latn-SL ; en-Latn-SL ; en-SL ; +und-Latn-SM ; it-Latn-SM ; it-SM ; +und-Latn-SN ; fr-Latn-SN ; fr-SN ; +und-Latn-SO ; so-Latn-SO ; so ; +und-Latn-SR ; nl-Latn-SR ; nl-SR ; +und-Latn-SS ; en-Latn-SS ; en-SS ; +und-Latn-ST ; pt-Latn-ST ; pt-ST ; +und-Latn-SV ; es-Latn-SV ; es-SV ; +und-Latn-SX ; en-Latn-SX ; en-SX ; +und-Latn-SY ; fr-Latn-SY ; fr-SY ; +und-Latn-SZ ; en-Latn-SZ ; en-SZ ; +und-Latn-TC ; en-Latn-TC ; en-TC ; +und-Latn-TD ; fr-Latn-TD ; fr-TD ; +und-Latn-TG ; fr-Latn-TG ; fr-TG ; +und-Latn-TK ; tkl-Latn-TK ; tkl ; +und-Latn-TL ; pt-Latn-TL ; pt-TL ; +und-Latn-TM ; tk-Latn-TM ; tk ; +und-Latn-TN ; fr-Latn-TN ; fr-TN ; +und-Latn-TO ; to-Latn-TO ; to ; +und-Latn-TR ; tr-Latn-TR ; tr ; +und-Latn-TT ; en-Latn-TT ; en-TT ; +und-Latn-TV ; tvl-Latn-TV ; tvl ; +und-Latn-TZ ; sw-Latn-TZ ; sw ; +und-Latn-UG ; sw-Latn-UG ; sw-UG ; +und-Latn-UM ; en-Latn-UM ; en-UM ; +und-Latn-US ; en-Latn-US ; en ; +und-Latn-UY ; es-Latn-UY ; es-UY ; +und-Latn-UZ ; uz-Latn-UZ ; uz ; +und-Latn-VA ; it-Latn-VA ; it-VA ; +und-Latn-VC ; en-Latn-VC ; en-VC ; +und-Latn-VE ; es-Latn-VE ; es-VE ; +und-Latn-VG ; en-Latn-VG ; en-VG ; +und-Latn-VI ; en-Latn-VI ; en-VI ; +und-Latn-VN ; vi-Latn-VN ; vi ; +und-Latn-VU ; bi-Latn-VU ; bi ; +und-Latn-WF ; fr-Latn-WF ; fr-WF ; +und-Latn-WS ; sm-Latn-WS ; sm ; +und-Latn-XK ; sq-Latn-XK ; sq-XK ; +und-Latn-YT ; fr-Latn-YT ; fr-YT ; +und-Latn-ZA ; en-Latn-ZA ; en-ZA ; +und-Latn-ZM ; en-Latn-ZM ; en-ZM ; +und-Latn-ZW ; sn-Latn-ZW ; sn ; +und-MA ; ar-Arab-MA ; ar-MA ; +und-MC ; fr-Latn-MC ; fr-MC ; +und-MD ; ro-Latn-MD ; ro-MD ; +und-ME ; sr-Latn-ME ; sr-ME ; +und-MF ; fr-Latn-MF ; fr-MF ; +und-MG ; mg-Latn-MG ; mg ; +und-MH ; en-Latn-MH ; en-MH ; +und-MK ; mk-Cyrl-MK ; mk ; +und-ML ; bm-Latn-ML ; bm ; +und-MM ; my-Mymr-MM ; my ; +und-MN ; mn-Cyrl-MN ; mn ; +und-MO ; zh-Hant-MO ; zh-MO ; +und-MP ; en-Latn-MP ; en-MP ; +und-MQ ; fr-Latn-MQ ; fr-MQ ; +und-MR ; ar-Arab-MR ; ar-MR ; +und-MS ; en-Latn-MS ; en-MS ; +und-MT ; mt-Latn-MT ; mt ; +und-MU ; mfe-Latn-MU ; mfe ; +und-MV ; dv-Thaa-MV ; dv ; +und-MW ; en-Latn-MW ; en-MW ; +und-MX ; es-Latn-MX ; es-MX ; +und-MY ; ms-Latn-MY ; ms ; +und-MZ ; pt-Latn-MZ ; pt-MZ ; +und-Mlym ; ml-Mlym-IN ; ml ; +und-Mlym-IN ; hi-Mlym-IN ; hi-Mlym ; +und-Mymr ; my-Mymr-MM ; my ; +und-Mymr-MM ; my-Mymr-MM ; my ; +und-NA ; af-Latn-NA ; af-NA ; +und-NC ; fr-Latn-NC ; fr-NC ; +und-NE ; ha-Latn-NE ; ha-NE ; +und-NF ; en-Latn-NF ; en-NF ; +und-NG ; en-Latn-NG ; en-NG ; +und-NI ; es-Latn-NI ; es-NI ; +und-NL ; nl-Latn-NL ; nl ; +und-NO ; nb-Latn-NO ; nb ; +und-NP ; ne-Deva-NP ; ne ; +und-NR ; en-Latn-NR ; en-NR ; +und-NU ; en-Latn-NU ; en-NU ; +und-NZ ; en-Latn-NZ ; en-NZ ; +und-OM ; ar-Arab-OM ; ar-OM ; +und-Olck ; sat-Olck-IN ; sat ; +und-Olck-IN ; hi-Olck-IN ; hi-Olck ; +und-Orya ; or-Orya-IN ; or ; +und-Orya-IN ; hi-Orya-IN ; hi-Orya ; +und-PA ; es-Latn-PA ; es-PA ; +und-PE ; es-Latn-PE ; es-PE ; +und-PF ; fr-Latn-PF ; fr-PF ; +und-PG ; tpi-Latn-PG ; tpi ; +und-PH ; fil-Latn-PH ; fil ; +und-PK ; ur-Arab-PK ; ur ; +und-PL ; pl-Latn-PL ; pl ; +und-PM ; fr-Latn-PM ; fr-PM ; +und-PN ; en-Latn-PN ; en-PN ; +und-PR ; es-Latn-PR ; es-PR ; +und-PS ; ar-Arab-PS ; ar-PS ; +und-PT ; pt-Latn-PT ; pt-PT ; +und-PW ; pau-Latn-PW ; pau ; +und-PY ; gn-Latn-PY ; gn ; +und-QA ; ar-Arab-QA ; ar-QA ; +und-RE ; fr-Latn-RE ; fr-RE ; +und-RO ; ro-Latn-RO ; ro ; +und-RS ; sr-Cyrl-RS ; sr ; +und-RU ; ru-Cyrl-RU ; ru ; +und-RW ; rw-Latn-RW ; rw ; +und-SA ; ar-Arab-SA ; ar-SA ; +und-SB ; en-Latn-SB ; en-SB ; +und-SC ; fr-Latn-SC ; fr-SC ; +und-SD ; ar-Arab-SD ; ar-SD ; +und-SE ; sv-Latn-SE ; sv ; +und-SG ; en-Latn-SG ; en-SG ; +und-SH ; en-Latn-SH ; en-SH ; +und-SI ; sl-Latn-SI ; sl ; +und-SJ ; nb-Latn-SJ ; nb-SJ ; +und-SK ; sk-Latn-SK ; sk ; +und-SL ; en-Latn-SL ; en-SL ; +und-SM ; it-Latn-SM ; it-SM ; +und-SN ; fr-Latn-SN ; fr-SN ; +und-SO ; so-Latn-SO ; so ; +und-SR ; nl-Latn-SR ; nl-SR ; +und-SS ; en-Latn-SS ; en-SS ; +und-ST ; pt-Latn-ST ; pt-ST ; +und-SV ; es-Latn-SV ; es-SV ; +und-SX ; en-Latn-SX ; en-SX ; +und-SY ; ar-Arab-SY ; ar-SY ; +und-SZ ; en-Latn-SZ ; en-SZ ; +und-Sinh ; si-Sinh-LK ; si ; +und-Sinh-LK ; si-Sinh-LK ; si ; +und-TC ; en-Latn-TC ; en-TC ; +und-TD ; fr-Latn-TD ; fr-TD ; +und-TG ; fr-Latn-TG ; fr-TG ; +und-TH ; th-Thai-TH ; th ; +und-TJ ; tg-Cyrl-TJ ; tg ; +und-TK ; tkl-Latn-TK ; tkl ; +und-TL ; pt-Latn-TL ; pt-TL ; +und-TM ; tk-Latn-TM ; tk ; +und-TN ; ar-Arab-TN ; ar-TN ; +und-TO ; to-Latn-TO ; to ; +und-TR ; tr-Latn-TR ; tr ; +und-TT ; en-Latn-TT ; en-TT ; +und-TV ; tvl-Latn-TV ; tvl ; +und-TW ; zh-Hant-TW ; zh-Hant ; zh-TW +und-TZ ; sw-Latn-TZ ; sw ; +und-Taml ; ta-Taml-IN ; ta ; +und-Taml-IN ; hi-Taml-IN ; hi-Taml ; +und-Taml-LK ; si-Taml-LK ; si-Taml ; +und-Taml-MY ; ms-Taml-MY ; ms-Taml ; +und-Taml-SG ; ta-Taml-SG ; ta-SG ; +und-Telu ; te-Telu-IN ; te ; +und-Telu-IN ; hi-Telu-IN ; hi-Telu ; +und-Thai ; th-Thai-TH ; th ; +und-Thai-TH ; th-Thai-TH ; th ; +und-UA ; uk-Cyrl-UA ; uk ; +und-UG ; sw-Latn-UG ; sw-UG ; +und-UM ; en-Latn-UM ; en-UM ; +und-US ; en-Latn-US ; en ; +und-UY ; es-Latn-UY ; es-UY ; +und-UZ ; uz-Latn-UZ ; uz ; +und-VA ; it-Latn-VA ; it-VA ; +und-VC ; en-Latn-VC ; en-VC ; +und-VE ; es-Latn-VE ; es-VE ; +und-VG ; en-Latn-VG ; en-VG ; +und-VI ; en-Latn-VI ; en-VI ; +und-VN ; vi-Latn-VN ; vi ; +und-VU ; bi-Latn-VU ; bi ; +und-WF ; fr-Latn-WF ; fr-WF ; +und-WS ; sm-Latn-WS ; sm ; +und-XK ; sq-Latn-XK ; sq-XK ; +und-YE ; ar-Arab-YE ; ar-YE ; +und-YT ; fr-Latn-YT ; fr-YT ; +und-ZA ; en-Latn-ZA ; en-ZA ; +und-ZM ; en-Latn-ZM ; en-ZM ; +und-ZW ; sn-Latn-ZW ; sn ; +ur ; ur-Arab-PK ; ur ; +ur-AQ ; ur-Arab-AQ ; ur-AQ ; +ur-Arab ; ur-Arab-PK ; ur ; +ur-Egyp ; ur-Egyp-PK ; ur-Egyp ; +ur-IN ; ur-Arab-IN ; ur-IN ; +ur-PK ; ur-Arab-PK ; ur ; +uz ; uz-Latn-UZ ; uz ; +uz-AQ ; uz-Latn-AQ ; uz-AQ ; +uz-Cyrl ; uz-Cyrl-UZ ; uz-Cyrl ; +uz-Egyp ; uz-Egyp-UZ ; uz-Egyp ; +uz-Latn ; uz-Latn-UZ ; uz ; +uz-UZ ; uz-Latn-UZ ; uz ; +vec ; vec-Latn-IT ; vec ; +vec-AQ ; vec-Latn-AQ ; vec-AQ ; +vec-Egyp ; vec-Egyp-IT ; vec-Egyp ; +vec-IT ; vec-Latn-IT ; vec ; +vec-Latn ; vec-Latn-IT ; vec ; +vi ; vi-Latn-VN ; vi ; +vi-AQ ; vi-Latn-AQ ; vi-AQ ; +vi-Egyp ; vi-Egyp-VN ; vi-Egyp ; +vi-Latn ; vi-Latn-VN ; vi ; +vi-VN ; vi-Latn-VN ; vi ; +wo ; wo-Latn-SN ; wo ; +wo-AQ ; wo-Latn-AQ ; wo-AQ ; +wo-Egyp ; wo-Egyp-SN ; wo-Egyp ; +wo-Latn ; wo-Latn-SN ; wo ; +wo-SN ; wo-Latn-SN ; wo ; +xh ; xh-Latn-ZA ; xh ; +xh-AQ ; xh-Latn-AQ ; xh-AQ ; +xh-Egyp ; xh-Egyp-ZA ; xh-Egyp ; +xh-Latn ; xh-Latn-ZA ; xh ; +xh-ZA ; xh-Latn-ZA ; xh ; +xnr ; xnr-Deva-IN ; xnr ; +xnr-AQ ; xnr-Deva-AQ ; xnr-AQ ; +xnr-Deva ; xnr-Deva-IN ; xnr ; +xnr-Egyp ; xnr-Egyp-IN ; xnr-Egyp ; +xnr-IN ; xnr-Deva-IN ; xnr ; +yo ; yo-Latn-NG ; yo ; +yo-AQ ; yo-Latn-AQ ; yo-AQ ; +yo-BJ ; yo-Latn-BJ ; yo-BJ ; +yo-Egyp ; yo-Egyp-NG ; yo-Egyp ; +yo-Latn ; yo-Latn-NG ; yo ; +yo-NG ; yo-Latn-NG ; yo ; +yrl ; yrl-Latn-BR ; yrl ; +yrl-AQ ; yrl-Latn-AQ ; yrl-AQ ; +yrl-BR ; yrl-Latn-BR ; yrl ; +yrl-CO ; yrl-Latn-CO ; yrl-CO ; +yrl-Egyp ; yrl-Egyp-BR ; yrl-Egyp ; +yrl-Latn ; yrl-Latn-BR ; yrl ; +yrl-VE ; yrl-Latn-VE ; yrl-VE ; +yue ; yue-Hant-HK ; yue ; +yue-AQ ; yue-Hant-AQ ; yue-AQ ; +yue-CN ; yue-Hans-CN ; yue-Hans ; yue-CN +yue-Egyp ; yue-Egyp-HK ; yue-Egyp ; +yue-HK ; yue-Hant-HK ; yue ; +yue-Hans ; yue-Hans-CN ; yue-Hans ; yue-CN +yue-Hant ; yue-Hant-HK ; yue ; +zh ; zh-Hans-CN ; zh ; +zh-AQ ; zh-Hans-AQ ; zh-AQ ; +zh-CN ; zh-Hans-CN ; zh ; +zh-Egyp ; zh-Egyp-CN ; zh-Egyp ; +zh-HK ; zh-Hant-HK ; zh-HK ; +zh-Hans ; zh-Hans-CN ; zh ; +zh-Hant ; zh-Hant-TW ; zh-Hant ; zh-TW +zh-MO ; zh-Hant-MO ; zh-MO ; +zh-SG ; zh-Hans-SG ; zh-SG ; +zh-TW ; zh-Hant-TW ; zh-Hant ; zh-TW +zu ; zu-Latn-ZA ; zu ; +zu-AQ ; zu-Latn-AQ ; zu-AQ ; +zu-Egyp ; zu-Egyp-ZA ; zu-Egyp ; +zu-Latn ; zu-Latn-ZA ; zu ; +zu-ZA ; zu-Latn-ZA ; zu ; diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLikelyTestData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLikelyTestData.java new file mode 100644 index 00000000000..5639b6e089e --- /dev/null +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateLikelyTestData.java @@ -0,0 +1,157 @@ +package org.unicode.cldr.tool; + +import com.google.common.collect.Multimap; +import com.google.common.collect.TreeMultimap; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.TreeSet; +import org.unicode.cldr.util.CLDRConfig; +import org.unicode.cldr.util.CLDRLocale; +import org.unicode.cldr.util.CLDRPaths; +import org.unicode.cldr.util.CalculatedCoverageLevels; +import org.unicode.cldr.util.CldrUtility; +import org.unicode.cldr.util.LanguageTagParser; +import org.unicode.cldr.util.Level; +import org.unicode.cldr.util.TempPrintWriter; + +public class GenerateLikelyTestData { + private static final String DUMMY_SCRIPT = "Egyp"; + private static final String DUMMY_REGION = "AQ"; + static CLDRConfig config = CLDRConfig.getInstance(); + static Map data = config.getSupplementalDataInfo().getLikelySubtags(); + static LikelySubtags likely = new LikelySubtags(); + + public static void main(String[] args) { + String test0 = "und_Ethi_ER"; + likely.maximize(test0); + + try (TempPrintWriter pw = + TempPrintWriter.openUTF8Writer( + CLDRPaths.TEST_DATA + "localeIdentifiers", "likelySubtags.txt")) { + + pw.println( + "# Test data for Likely Subtags\n" + + CldrUtility.getCopyrightString("# ") + + "\n" + + "#\n" + + "# Test data for https://www.unicode.org/reports/tr35/tr35.html#Likely_Subtags\n" + + "#\n" + + "# Format:\n"); + showLine(pw, "# Source", "AddLikely", "RemoveFavorScript", "RemoveFavorRegion"); + pw.println( + "# Source: a locale to which the following operations are applied.\n" + + "# AddLikely: the result of the Add Likely Subtags.\n" + + "# RemoveFavorScript: Remove Likely Subtags, when the script is favored.\n" + + "# Only included when different than AddLikely.\n" + + "# RemoveFavorRegion: Remove Likely Subtags, when the region is favored.\n" + + "# Only included when different than RemoveFavorScript.\n" + + "#\n" + + "# Generation: GenerateLikelyTestData.java\n"); + + // generate alternates + // for now, simple case + Set testCases = getTestCases(data); + + for (String testRaw : testCases) { + final String test = CLDRLocale.getInstance(testRaw).toLanguageTag(); + final String max = CLDRLocale.getInstance(likely.maximize(test)).toLanguageTag(); + if (test.equals(max)) { + continue; + } + final String minScript = + CLDRLocale.getInstance(likely.setFavorRegion(false).minimize(test)) + .toLanguageTag(); + final String minRegion = + CLDRLocale.getInstance(likely.setFavorRegion(true).minimize(test)) + .toLanguageTag(); + showLine(pw, test, max, minScript, minRegion); + } + } + } + + // test data + + public static Set getTestCases(Map data) { + CalculatedCoverageLevels coverage = CalculatedCoverageLevels.getInstance(); + TreeSet testCases = new TreeSet<>(); + // for CLDR locales, add combinations + // collect together the scripts®ions for each language. Will filter later + Multimap combinations = TreeMultimap.create(); + for (String localeString : config.getCldrFactory().getAvailable()) { + Level effective = coverage.getEffectiveCoverageLevel(localeString); + if (effective == null || effective.compareTo(Level.BASIC) < 0) { + continue; + } + CLDRLocale locale = CLDRLocale.getInstance(localeString); + String lang = locale.getLanguage(); + CLDRLocale max = CLDRLocale.getInstance(likely.maximize(localeString)); + combinations.put(lang, max.getScript()); + combinations.put(lang, max.getCountry()); + combinations.put(lang, DUMMY_REGION); // check odd conditions + combinations.put(lang, DUMMY_SCRIPT); // check odd conditions + combinations.put(lang, ""); // check odd conditions + } + Set undCombinations = new TreeSet<>(); + for (Entry> entry : combinations.asMap().entrySet()) { + undCombinations.addAll(entry.getValue()); + } + combinations.putAll("und", undCombinations); + + LanguageTagParser ltp = new LanguageTagParser(); + for (Entry> entry : combinations.asMap().entrySet()) { + final String lang = entry.getKey(); + System.out.println(lang); + Set items = new TreeSet<>(entry.getValue()); + Set scripts = new LinkedHashSet<>(); + Set regions = new LinkedHashSet<>(); + for (String scriptOrRegion : items) { + ltp.set(lang); // clears script, region + if (scriptOrRegion.length() == 4) { + ltp.setScript(scriptOrRegion); + scripts.add(scriptOrRegion); + } else { + ltp.setRegion(scriptOrRegion); + if (!scriptOrRegion.isBlank()) { + regions.add(scriptOrRegion); + } + } + testCases.add(CLDRLocale.getInstance(ltp.toString()).toLanguageTag()); + } + scripts.remove(DUMMY_REGION); + scripts.remove(DUMMY_SCRIPT); + + if (!lang.equals("und")) { // record script/region combinations + ltp.set("und"); + for (String script : scripts) { + ltp.setScript(script); + for (String region : regions) { + ltp.setRegion(region); + testCases.add(CLDRLocale.getInstance(ltp.toString()).toLanguageTag()); + } + } + } + } + testCases.remove("und"); // TC accepted change to remove this, so don't test for it. + return testCases; + } + + public static void showLine( + TempPrintWriter tempWriter, + String test, + final String max, + final String minScript, + final String minRegion) { + tempWriter.println( + test // + + " ;\t" + + (max.equals(test) ? "" : max) // + + " ;\t" + + (minScript.equals(max) ? "" : minScript) // script favored + + " ;\t" + + (minRegion.equals(minScript) ? "" : minRegion) // region favored + ); + } +}