diff --git a/common/supplemental/supplementalData.xml b/common/supplemental/supplementalData.xml index d6ff69270b6..11c9183e112 100644 --- a/common/supplemental/supplementalData.xml +++ b/common/supplemental/supplementalData.xml @@ -1291,7 +1291,7 @@ XXX Code for transations where no currency is involved - + @@ -1302,7 +1302,7 @@ XXX Code for transations where no currency is involved - + @@ -1311,7 +1311,7 @@ XXX Code for transations where no currency is involved - + @@ -1329,7 +1329,7 @@ XXX Code for transations where no currency is involved - + @@ -1342,7 +1342,7 @@ XXX Code for transations where no currency is involved - + @@ -1449,7 +1449,7 @@ XXX Code for transations where no currency is involved - + @@ -1460,7 +1460,7 @@ XXX Code for transations where no currency is involved - + @@ -1493,10 +1493,11 @@ XXX Code for transations where no currency is involved - + + - + @@ -1528,7 +1529,7 @@ XXX Code for transations where no currency is involved - + @@ -1536,19 +1537,19 @@ XXX Code for transations where no currency is involved - + - + - + @@ -1582,8 +1583,8 @@ XXX Code for transations where no currency is involved - - + + @@ -1616,7 +1617,7 @@ XXX Code for transations where no currency is involved - + @@ -1625,18 +1626,18 @@ XXX Code for transations where no currency is involved - - + + - + - + - + @@ -1667,7 +1668,7 @@ XXX Code for transations where no currency is involved - + @@ -1699,13 +1700,13 @@ XXX Code for transations where no currency is involved - + - + @@ -1717,7 +1718,7 @@ XXX Code for transations where no currency is involved - + @@ -1727,13 +1728,13 @@ XXX Code for transations where no currency is involved - + - + @@ -1745,7 +1746,8 @@ XXX Code for transations where no currency is involved - + + @@ -1840,8 +1842,9 @@ XXX Code for transations where no currency is involved - - + + + @@ -1854,7 +1857,7 @@ XXX Code for transations where no currency is involved - + @@ -1866,7 +1869,7 @@ XXX Code for transations where no currency is involved - + @@ -1891,19 +1894,19 @@ XXX Code for transations where no currency is involved - + - + - + @@ -1955,7 +1958,7 @@ XXX Code for transations where no currency is involved - + @@ -1991,7 +1994,7 @@ XXX Code for transations where no currency is involved - + @@ -2033,8 +2036,8 @@ XXX Code for transations where no currency is involved - - + + @@ -2068,7 +2071,7 @@ XXX Code for transations where no currency is involved - + @@ -2084,10 +2087,11 @@ XXX Code for transations where no currency is involved - + - - + + + @@ -2101,8 +2105,8 @@ XXX Code for transations where no currency is involved - - + + @@ -2190,7 +2194,7 @@ XXX Code for transations where no currency is involved - + @@ -2215,7 +2219,7 @@ XXX Code for transations where no currency is involved - + @@ -2261,7 +2265,7 @@ XXX Code for transations where no currency is involved - + @@ -2313,7 +2317,7 @@ XXX Code for transations where no currency is involved - + @@ -2348,7 +2352,7 @@ XXX Code for transations where no currency is involved - + @@ -2377,8 +2381,8 @@ XXX Code for transations where no currency is involved - - + + @@ -2404,21 +2408,21 @@ XXX Code for transations where no currency is involved - + - - + + - - - + + + - - + + @@ -2438,7 +2442,7 @@ XXX Code for transations where no currency is involved - + diff --git a/docs/site/development/updating-codes/update-language-script-info/language-script-description.md b/docs/site/development/updating-codes/update-language-script-info/language-script-description.md index c757b2949af..0987deda704 100644 --- a/docs/site/development/updating-codes/update-language-script-info/language-script-description.md +++ b/docs/site/development/updating-codes/update-language-script-info/language-script-description.md @@ -6,14 +6,11 @@ title: Language Script Description The [`language\_script.tsv`](https://github.com/unicode-org/cldr/blob/main/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/language_script.tsv) data file should list all of the language / script combinations that are in common use. Usage by country is indicated in the [`country\_language\_population.tsv`](https://github.com/unicode-org/cldr/blob/main/tools/cldr-code/src/main/resources/org/unicode/cldr/util/data/country_language_population.tsv) spreadsheet. -1. Every language needs at least 1 script considered the **primary** script. +1. Every language should have 1 script considered the **primary** script. 1. This data is used to determine [the most Likely language and region](likelysubtags-and-default-content) so there needs to be at least 1 primary value. - 2. [Changed in v47] Include a primary script for historical languages (eg. Ancient Greek, Coptic). The primary script should reflect where the majority of the written corpus originates from. -2. Languages written by significant populations with different scritps in different countries can have multiple **primary** scripts. The [likely subtags](https://www.unicode.org/cldr/charts/latest/supplemental/likely_subtags.html) patterns will use population counts to disambiguate the default script for each locale. -3. Other scripts used for a language should be marked **secondary**. + 2. __Changed in v47__ Include a primary script for historical languages (eg. Ancient Greek, Coptic). The primary script should reflect where the majority of the written corpus originates from. +2. Other scripts used for a language should be marked **secondary**. -If a language has multiple primary scripts, then it should not appear without the script tag in the country\_language\_population.tsv. For example, we should not see "az", but rather "az\_Cyrl", "az\_Latn", and so on. For each country where the language is used, we should see figures on the script\-specific values. The values may overlap, that is, we may see az\_Cyrl at 60% and az\_Latn at 55%. However, the combination with the predominantly used script **must** have a larger figure than the others. - -This is also reflected in CLDR main: languages with multiple scripts will have that reflected in their structure (eg sr\-Cyrl\-RS), with aliases for the language\-region combinations. +Languages with multiple ambiguous scripts should have that reflected in their CLDR structure (eg. `sr_Cyrl_RS`), with aliases for the language\-region combinations. In order to re-generate the XML data use ConvertLanguageData as written about in [the article about updating the language scripts](.../update-language-script-info.md). diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ConvertLanguageData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ConvertLanguageData.java index 08e61d4f566..b7c322cce83 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ConvertLanguageData.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/ConvertLanguageData.java @@ -2026,7 +2026,8 @@ static void getLanguage2Scripts(Set sortedInput) throws IOException { if (!checkCode(LstrType.language, language, row)) continue; for (String script : scripts.split("\\s+")) { if (!checkCode(LstrType.script, script, row)) continue; - // if the script is not modern, demote + + // Make sure the script has information Info scriptInfo = ScriptMetadata.getInfo(script); if (scriptInfo == null) { BadItem.ERROR.toString( @@ -2035,24 +2036,8 @@ static void getLanguage2Scripts(Set sortedInput) throws IOException { row); continue; } - IdUsage idUsage = scriptInfo.idUsage; - if (status == BasicLanguageData.Type.primary - && idUsage != IdUsage.RECOMMENDED) { - if (idUsage == IdUsage.ASPIRATIONAL || idUsage == IdUsage.LIMITED_USE) { - BadItem.WARNING.toString( - "Script has unexpected usage; make secondary if a Recommended script is used widely for the langauge", - idUsage + ", " + script + "=" + getULocaleScriptName(script), - row); - } else { - BadItem.ERROR.toString( - "Script is not modern; make secondary", - idUsage + ", " + script + "=" + getULocaleScriptName(script), - row); - status = BasicLanguageData.Type.secondary; - } - } - // if the language is not modern, demote + // Make sure the language code is valid if (LOCALE_ALIAS_INFO.get("language").containsKey(language)) { BadItem.ERROR.toString( "Remove/Change deprecated language", @@ -2064,15 +2049,7 @@ static void getLanguage2Scripts(Set sortedInput) throws IOException { row); continue; } - if (status == BasicLanguageData.Type.primary - && !sc.isModernLanguage(language)) { - BadItem.ERROR.toString( - "Should be secondary, language is not modern", - language + " " + getLanguageName(language), - row); - status = BasicLanguageData.Type.secondary; - } - + addLanguage2Script(language, status, script); if (row.size() > 5) { String reference = row.get(5);