[Unicode]   Common Locale Data Repository : Bug Tracking Home | Site Map | Search

CLDR Ticket #6744(closed enhancement: fixed)

Opened 4 years ago

Last modified 3 years ago

Deprecate validSubLocales,…

Reported by: mark Owned by: mark
Component: main Data Locale:
Phase: Review: emmons
Weeks: 0.5 Data Xpath:

Description (last modified by mark) (diff)

The validSubLocales attribute is defined on many elements.

We only use validSubLocales currently in collation/, but they don't add any value. Any implementation can simply get them from the sublocales in main/. So they are really only a possible source of errors, and we are better off removing them.

The cp element was a hack that we had to represent values that XML doesn't permit, like control codes. However, we always use a hex notation (like \uxxxx) for those now, and don't need it.

We should also deprecate references in ldml elements, since we don't use those.

FYI: The following elements are not found in the data, but are not deprecated. They should be reviewed as well.

ldml	compressedIndexSeparator
ldml	cp
ldml	currencyGroup
ldml	indexLabel
ldml	indexLabelAfter
ldml	indexLabelBefore
ldml	indexLabels
ldml	indexRangePattern
ldml	indexSeparator
ldml	mapping
ldml	nativeZeroDigit
ldml	patternDigit
ldml	reference
ldml	special
ldml	usesMetazone
supplementalData	languageCodes
ldmlBCP47	attribute

Unused (but not deprecated) attributes are found in column F of


The distinguishing attributes are marked with *.
«NONE» means that the element is found with no attributes sometimes.


Change History

comment:1 Changed 4 years ago by mark

  • Description modified (diff)
  • Summary changed from Deprecate validSubLocales to Deprecate validSubLocales,…

comment:2 Changed 4 years ago by mark

another one to deprecate is:

<!ATTLIST distinguishingItems exclude ( true | false ) #IMPLIED >

comment:3 Changed 4 years ago by emmons

  • Owner changed from anybody to mark
  • Status changed from new to assigned
  • Type changed from unknown to enhancement
  • Component changed from unknown to design
  • Milestone changed from UNSCH to 25design

comment:4 Changed 4 years ago by markus

The validSubLocales for collation are worse than redundant: When they are out of sync with the main locales, then we may go to the default locale rather than the intended one (which would usually fall back to root).

This showed up in ICU 52m1 (IcuBug:10277): There is no Basque (eu) collation data, and eu is missing from the root/validSublocales, so a request for a Basque collator returns one for whatever is the default locale. (In ICU, it is not currently possible to avoid the default-locale lookup.) However, there is main/eu.xml data, complete with index exemplar characters. Requesting an "eu" collator should return a root collator.

As a workaround until we come up with something better, the LDML-to-ICU converter should add empty top-level-language resource bundles (e.g., eu.txt) for every main CLDR language that would not otherwise get a collation bundle file.

As a second step, if & after we change ICU to look for main locale data to fill in the "valid locale", we could then stop generating empty collation resource bundles for anything that is not a top-level language (e.g., de_DE.txt).

comment:5 Changed 4 years ago by markus

  • Cc markus added
  • Weeks set to 0.5

comment:6 Changed 4 years ago by mark

  • Description modified (diff)

comment:7 Changed 4 years ago by emmons

  • Priority changed from assess to medium
  • Component changed from design to data
  • Milestone changed from 25design to 25M1

comment:8 Changed 4 years ago by mark

  • Review set to emmons

comment:9 Changed 4 years ago by srl

  • Status changed from assigned to reviewing

comment:10 Changed 4 years ago by emmons

  • Status changed from reviewing to closed
  • Resolution set to fixed

comment:11 Changed 3 years ago by emmons

  • Milestone 25M1 deleted

Milestone 25M1 deleted


Add a comment

Modify Ticket

as closed
Next status will be 'new'
Next status will be 'closed'

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.