Skip to content

Commit

Permalink
CLDR-17505 Fix blocking items (#4048)
Browse files Browse the repository at this point in the history
Co-authored-by: Steven R. Loomis <[email protected]>
  • Loading branch information
2 people authored and conradarcturus committed Sep 25, 2024
1 parent 4313d44 commit 548c958
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion docs/ldml/tr35.md
Original file line number Diff line number Diff line change
Expand Up @@ -1932,7 +1932,21 @@ The following describes in more detail how to determine the exact inheritance of

#### <a name="Definitions" href="#Definitions">Definitions</a>

_Blocking_ elements are those whose subelements do not inherit from parent locales. For example, a `<collation>` element is a blocking element: everything in a `<collation>` element is treated as a single lump of data, as far as inheritance is concerned. For more information, see [Valid Attribute Values](#Valid_Attribute_Values).
_Ordered_ elements are those whose sequence in the XML file is important; that is, changing the order of those elements can make a difference in the interpretation of the data. These are marked with the `@ORDRED` annotation in the dtd file. For example, consider the following in `ldmlSupplemental.dtd`:
```
<!ELEMENT languageMatch EMPTY >
<!--@ORDERED-->
```
In the file `languageInfo.xml`, we find the following.
```
<languageMatch desired="ja_Hira" supported="ja_Jpan" distance="5" oneway="true"/>
<!-- default script mismatch distance -->
<languageMatch desired="*_*" supported="*_*" distance="50"/> <!-- *; * ⇒ *; * -->
```
The ordering among the `languageMatch` items is important, because the `*_*` must only be matched _after_ all the explicit scripts have been.

The ordered elements also _block_ inheritance in files governed by `ldml.dtd`. That is, because the elements are ordered, there is no way to tell where an inherited element from a parent locale would be in that sequence.

Attributes that serve to distinguish multiple elements at the same level are called _distinguishing_ attributes. For example, the `type` attribute distinguishes different elements in lists of translations, such as:

Expand Down

0 comments on commit 548c958

Please sign in to comment.