From 59053e6676777fd2592bf2ba914d56c5fb390459 Mon Sep 17 00:00:00 2001
From: Richard Gibson
Date: Wed, 21 Dec 2022 16:49:54 -0500
Subject: [PATCH] Editorial: Improve consistency of referencing Unicode
documents (#736)
---
spec/collator.html | 8 ++++----
spec/datetimeformat.html | 6 +++---
spec/locale.html | 4 ++--
spec/locales-currencies-tz.html | 8 ++++----
spec/negotiation.html | 6 +++---
spec/normative-references.html | 16 +++++++++++-----
spec/numberformat.html | 6 +++---
spec/pluralrules.html | 4 ++--
spec/relativetimeformat.html | 4 ++--
spec/segmenter.html | 2 +-
10 files changed, 35 insertions(+), 29 deletions(-)
diff --git a/spec/collator.html b/spec/collator.html
index 5af8ed20..24961af9 100644
--- a/spec/collator.html
+++ b/spec/collator.html
@@ -123,7 +123,7 @@ Internal slots
- Unicode Technical Standard 35 describes ten locale extension keys that are relevant to collation: *"co"* for collator usage and specializations, *"ka"* for alternate handling, *"kb"* for backward second level weight, *"kc"* for case level, *"kf"* for case first, *"kh"* for hiragana quaternary, *"kk"* for normalization, *"kn"* for numeric, *"kr"* for reordering, *"ks"* for collation strength, and *"vt"* for variable top. Collator, however, requires that the usage is specified through the *"usage"* property of the options object, alternate handling through the *"ignorePunctuation"* property of the options object, and case level and the strength through the *"sensitivity"* property of the options object. The *"co"* key in the language tag is supported only for collator specializations, and the keys *"kb"*, *"kh"*, *"kk"*, *"kr"*, and *"vt"* are not allowed in this version of the Internationalization API. Support for the remaining keys is implementation dependent.
+ Unicode Technical Standard #35 Part 1 Core, Section 3.6.1 Key and Type Definitions describes ten locale extension keys that are relevant to collation: *"co"* for collator usage and specializations, *"ka"* for alternate handling, *"kb"* for backward second level weight, *"kc"* for case level, *"kf"* for case first, *"kh"* for hiragana quaternary, *"kk"* for normalization, *"kn"* for numeric, *"kr"* for reordering, *"ks"* for collation strength, and *"vt"* for variable top. Collator, however, requires that the usage is specified through the *"usage"* property of the options object, alternate handling through the *"ignorePunctuation"* property of the options object, and case level and the strength through the *"sensitivity"* property of the options object. The *"co"* key in the language tag is supported only for collator specializations, and the keys *"kb"*, *"kh"*, *"kk"*, *"kr"*, and *"vt"* are not allowed in this version of the Internationalization API. Support for the remaining keys is implementation dependent.
@@ -266,7 +266,7 @@
CompareStrings ( _collator_, _x_, _y_ )
- For the interpretation of options settable through locale extension keys, see Unicode Technical Standard #35 LDML ยง 3.6.1 U Extension Key And Type Definitions.
+ For the interpretation of options settable through locale extension keys, see Unicode Technical Standard #35 Part 1 Core, Section 3.6.1 Key and Type Definitions.
@@ -274,7 +274,7 @@
CompareStrings ( _collator_, _x_, _y_ )
- It is recommended that the CompareStrings abstract operation be implemented following Unicode Technical Standard 10, Unicode Collation Algorithm (available at https://unicode.org/reports/tr10/), using tailorings for the effective locale and collation options of _collator_. It is recommended that implementations use the tailorings provided by the Common Locale Data Repository (available at https://cldr.unicode.org/).
+ It is recommended that the CompareStrings abstract operation be implemented following Unicode Technical Standard #10: Unicode Collation Algorithm, using tailorings for the effective locale and collation options of _collator_. It is recommended that implementations use the tailorings provided by the Common Locale Data Repository (available at https://cldr.unicode.org/).
@@ -376,7 +376,7 @@ Properties of Intl.Collator Instances
[[Usage]] is one of the String values *"sort"* or *"search"*, identifying the collator usage.
[[Sensitivity]] is one of the String values *"base"*, *"accent"*, *"case"*, or *"variant"*, identifying the collator's sensitivity.
[[IgnorePunctuation]] is a Boolean value, specifying whether punctuation should be ignored in comparisons.
- [[Collation]] is a String value with the *"type"* given in Unicode Technical Standard 35 for the collation, except that the values *"standard"* and *"search"* are not allowed, while the value *"default"* is allowed.
+ [[Collation]] is a String value with the *"type"* given in Unicode Technical Standard #35 for the collation, except that the values *"standard"* and *"search"* are not allowed, while the value *"default"* is allowed.
diff --git a/spec/datetimeformat.html b/spec/datetimeformat.html
index a21406cc..54b3e9c4 100644
--- a/spec/datetimeformat.html
+++ b/spec/datetimeformat.html
@@ -188,7 +188,7 @@
Internal slots
- Unicode Technical Standard 35 describes four locale extension keys that are relevant to date and time formatting: *"ca"* for calendar, *"hc"* for hour cycle, *"nu"* for numbering system (of formatted numbers), and *"tz"* for time zone. DateTimeFormat, however, requires that the time zone is specified through the *"timeZone"* property in the options objects.
+ Unicode Technical Standard #35 describes four locale extension keys that are relevant to date and time formatting: *"ca"* for calendar, *"hc"* for hour cycle, *"nu"* for numbering system (of formatted numbers), and *"tz"* for time zone. DateTimeFormat, however, requires that the time zone is specified through the *"timeZone"* property in the options objects.
@@ -655,8 +655,8 @@
Properties of Intl.DateTimeFormat Instances
- [[Locale]] is a String value with the language tag of the locale whose localization is used for formatting.
- - [[Calendar]] is a String value with the *"type"* given in Unicode Technical Standard 35 for the calendar used for formatting.
- - [[NumberingSystem]] is a String value with the *"type"* given in Unicode Technical Standard 35 for the numbering system used for formatting.
+ - [[Calendar]] is a String value with the *"type"* given in Unicode Technical Standard #35 for the calendar used for formatting.
+ - [[NumberingSystem]] is a String value with the *"type"* given in Unicode Technical Standard #35 for the numbering system used for formatting.
- [[TimeZone]] is a String value with the IANA time zone name of the time zone used for formatting.
- [[Weekday]], [[Era]], [[Year]], [[Month]], [[Day]], [[DayPeriod]], [[Hour]], [[Minute]], [[Second]], [[TimeZoneName]] are each either *undefined*, indicating that the component is not used for formatting, or one of the String values given in , indicating how the component should be presented in the formatted output.
- [[FractionalSecondDigits]] is either *undefined* or a positive, non-zero integer Number value indicating the fraction digits to be used for fractional seconds. Numbers will be rounded or padded with trailing zeroes if necessary.
diff --git a/spec/locale.html b/spec/locale.html
index 33f6b3d5..f5bb3002 100644
--- a/spec/locale.html
+++ b/spec/locale.html
@@ -213,7 +213,7 @@ Intl.Locale.prototype.maximize ( )
1. Let _loc_ be the *this* value.
1. Perform ? RequireInternalSlot(_loc_, [[InitializedLocale]]).
- 1. Let _maximal_ be the result of the Add Likely Subtags algorithm applied to _loc_.[[Locale]]. If an error is signaled, set _maximal_ to _loc_.[[Locale]].
+ 1. Let _maximal_ be the result of the Add Likely Subtags algorithm applied to _loc_.[[Locale]]. If an error is signaled, set _maximal_ to _loc_.[[Locale]].
1. Return ! Construct(%Locale%, _maximal_).
@@ -224,7 +224,7 @@ Intl.Locale.prototype.minimize ( )
1. Let _loc_ be the *this* value.
1. Perform ? RequireInternalSlot(_loc_, [[InitializedLocale]]).
- 1. Let _minimal_ be the result of the Remove Likely Subtags algorithm applied to _loc_.[[Locale]]. If an error is signaled, set _minimal_ to _loc_.[[Locale]].
+ 1. Let _minimal_ be the result of the Remove Likely Subtags algorithm applied to _loc_.[[Locale]]. If an error is signaled, set _minimal_ to _loc_.[[Locale]].
1. Return ! Construct(%Locale%, _minimal_).
diff --git a/spec/locales-currencies-tz.html b/spec/locales-currencies-tz.html
index 7c9b5982..6b4f3cb1 100644
--- a/spec/locales-currencies-tz.html
+++ b/spec/locales-currencies-tz.html
@@ -224,19 +224,19 @@ DefaultTimeZone ( ): a String
Measurement Unit Identifiers
- The ECMAScript 2023 Internationalization API Specification identifies measurement units using a core unit identifier (or equivalently core unit ID) as defined by Unicode Technical Standard #35, Part 2, Section 6.2. Their canonical form is a string containing only Unicode Basic Latin lowercase letters (U+0061 LATIN SMALL LETTER A through U+007A LATIN SMALL LETTER Z) with zero or more medial hyphens (U+002D HYPHEN-MINUS).
+ The ECMAScript 2023 Internationalization API Specification identifies measurement units using a core unit identifier (or equivalently core unit ID) as defined by Unicode Technical Standard #35 Part 2 General, Section 6.2 Unit Identifiers. Their canonical form is a string containing only Unicode Basic Latin lowercase letters (U+0061 LATIN SMALL LETTER A through U+007A LATIN SMALL LETTER Z) with zero or more medial hyphens (U+002D HYPHEN-MINUS).
Only a limited set of core unit identifiers are sanctioned.
- Attempting to use an unsanctioned core unit identifier results in a RangeError.
+ Attempting to use an unsanctioned core unit identifier results in a *RangeError*.
IsWellFormedUnitIdentifier ( _unitIdentifier_ )
- The IsWellFormedUnitIdentifier abstract operation verifies that the _unitIdentifier_ argument (which must be a String value) represents a well-formed UTS #35 core unit identifier that is either a sanctioned single unit or a complex unit formed by division of two sanctioned single units. The following steps are taken:
+ The IsWellFormedUnitIdentifier abstract operation verifies that the _unitIdentifier_ argument (which must be a String value) represents a well-formed core unit identifier that is either a sanctioned single unit or a complex unit formed by division of two sanctioned single units. The following steps are taken:
@@ -258,7 +258,7 @@ IsWellFormedUnitIdentifier ( _unitIdentifier_ )
IsSanctionedSingleUnitIdentifier ( _unitIdentifier_ )
- The IsSanctionedSingleUnitIdentifier abstract operation verifies that the _unitIdentifier_ argument (which must be a String value) is among the single unit identifiers sanctioned in the current version of the ECMAScript Internationalization API Specification, which are a subset of the Common Locale Data Repository release 38 unit validity data; the list may grow over time. As discussed in UTS #35, a single unit identifier is a core unit identifier that is not composed of multiplication or division of other unit identifiers. The following steps are taken:
+ The IsSanctionedSingleUnitIdentifier abstract operation verifies that the _unitIdentifier_ argument (which must be a String value) is among the single unit identifiers sanctioned in the current version of the ECMAScript Internationalization API Specification, which are a subset of the Common Locale Data Repository release 38 unit validity data; the list may grow over time. As discussed in Unicode Technical Standard #35 Part 2 General, Section 6.2 Unit Identifiers, a single unit identifier is a core unit identifier that is not composed of multiplication or division of other unit identifiers. The following steps are taken:
diff --git a/spec/negotiation.html b/spec/negotiation.html
index c589f7ad..f918b511 100644
--- a/spec/negotiation.html
+++ b/spec/negotiation.html
@@ -13,9 +13,9 @@ Internal slots of Service Constructors
- - [[AvailableLocales]] is a List that contains structurally valid () and canonicalized () Unicode BCP 47 locale identifiers identifying the locales for which the implementation provides the functionality of the constructed objects. Language tags on the list must not have a Unicode locale extension sequence. The list must include the value returned by the DefaultLocale abstract operation (), and must not include duplicates. Implementations must include in [[AvailableLocales]] locales that can serve as fallbacks in the algorithm used to resolve locales (see ). For example, implementations that provide a *"de-DE"* locale must include a *"de"* locale that can serve as a fallback for requests such as *"de-AT"* and *"de-CH"*. For locales that include a script subtag in addition to language and region, the corresponding locale without a script subtag must also be supported; that is, if an implementation recognizes *"zh-Hant-TW"*, it is also expected to recognize *"zh-TW"*. The ordering of the locales within [[AvailableLocales]] is irrelevant.
- - [[RelevantExtensionKeys]] is a List of keys of the language tag extensions defined in Unicode Technical Standard 35 that are relevant for the functionality of the constructed objects.
- - [[SortLocaleData]] and [[SearchLocaleData]] (for Intl.Collator) and [[LocaleData]] (for every other service constructor) are records that have fields for each locale contained in [[AvailableLocales]]. The value of each of these fields must be a record that has fields for each key contained in [[RelevantExtensionKeys]]. The value of each of these fields must be a non-empty list of those values defined in Unicode Technical Standard 35 for the given key that are supported by the implementation for the given locale, with the first element providing the default value.
+ - [[AvailableLocales]] is a List that contains structurally valid () and canonicalized () language tags identifying the locales for which the implementation provides the functionality of the constructed objects. Language tags on the list must not have a Unicode locale extension sequence. The list must include the value returned by the DefaultLocale abstract operation (), and must not include duplicates. Implementations must include in [[AvailableLocales]] locales that can serve as fallbacks in the algorithm used to resolve locales (see ). For example, implementations that provide a *"de-DE"* locale must include a *"de"* locale that can serve as a fallback for requests such as *"de-AT"* and *"de-CH"*. For locales that include a script subtag in addition to language and region, the corresponding locale without a script subtag must also be supported; that is, if an implementation recognizes *"zh-Hant-TW"*, it is also expected to recognize *"zh-TW"*. The ordering of the locales within [[AvailableLocales]] is irrelevant.
+ - [[RelevantExtensionKeys]] is a List of keys of the language tag extensions defined in Unicode Technical Standard #35 that are relevant for the functionality of the constructed objects.
+ - [[SortLocaleData]] and [[SearchLocaleData]] (for Intl.Collator) and [[LocaleData]] (for every other service constructor) are records that have fields for each locale contained in [[AvailableLocales]]. The value of each of these fields must be a record that has fields for each key contained in [[RelevantExtensionKeys]]. The value of each of these fields must be a non-empty list of those values defined in Unicode Technical Standard #35 for the given key that are supported by the implementation for the given locale, with the first element providing the default value.
diff --git a/spec/normative-references.html b/spec/normative-references.html
index e929b171..2924ab12 100644
--- a/spec/normative-references.html
+++ b/spec/normative-references.html
@@ -32,19 +32,25 @@ Normative References
IANA Time Zone Database
-
- The Unicode Standard
+ The Unicode Standard
-
- Unicode Standard Annex #29: Unicode Text Segmentation
+ Unicode Standard Annex #29: Unicode Text Segmentation
-
- Unicode Technical Standard 35
+ Unicode Technical Standard #10: Unicode Collation Algorithm
+
+ -
+ Unicode Technical Standard #35: Unicode Locale Data Markup Language (LDML)
diff --git a/spec/numberformat.html b/spec/numberformat.html
index 17d2b505..4b5cd937 100644
--- a/spec/numberformat.html
+++ b/spec/numberformat.html
@@ -230,7 +230,7 @@ Internal slots
- Unicode Technical Standard 35 describes three locale extension keys that are relevant to number formatting: *"cu"* for currency, *"cf"* for currency format style, and *"nu"* for numbering system. Intl.NumberFormat, however, requires that the currency of a currency format is specified through the currency property in the options objects, and the currency format style of a currency format is specified through the currencySign property in the options objects.
+ Unicode Technical Standard #35 describes three locale extension keys that are relevant to number formatting: *"cu"* for currency, *"cf"* for currency format style, and *"nu"* for numbering system. Intl.NumberFormat, however, requires that the currency of a currency format is specified through the currency property in the options objects, and the currency format style of a currency format is specified through the currencySign property in the options objects.
@@ -450,12 +450,12 @@
Properties of Intl.NumberFormat Instances
- [[Locale]] is a String value with the language tag of the locale whose localization is used for formatting.
- [[DataLocale]] is a String value with the language tag of the nearest locale for which the implementation has data to perform the formatting operation. It will be a parent locale of [[Locale]].
- - [[NumberingSystem]] is a String value with the "type" given in Unicode Technical Standard 35 for the numbering system used for formatting.
+ - [[NumberingSystem]] is a String value with the "type" given in Unicode Technical Standard #35 for the numbering system used for formatting.
- [[Style]] is one of the String values *"decimal"*, *"currency"*, *"percent"*, or *"unit"*, identifying the type of quantity being measured.
- [[Currency]] is a String value with the currency code identifying the currency to be used if formatting with the *"currency"* unit type. It is only used when [[Style]] has the value *"currency"*.
- [[CurrencyDisplay]] is one of the String values *"code"*, *"symbol"*, *"narrowSymbol"*, or *"name"*, specifying whether to display the currency as an ISO 4217 alphabetic currency code, a localized currency symbol, or a localized currency name if formatting with the *"currency"* style. It is only used when [[Style]] has the value *"currency"*.
- [[CurrencySign]] is one of the String values *"standard"* or *"accounting"*, specifying whether to render negative numbers in accounting format, often signified by parenthesis. It is only used when [[Style]] has the value *"currency"* and when [[SignDisplay]] is not *"never"*.
- - [[Unit]] is a core unit identifier, as defined by Unicode Technical Standard #35, Part 2, Section 6. It is only used when [[Style]] has the value *"unit"*.
+ - [[Unit]] is a core unit identifier. It is only used when [[Style]] has the value *"unit"*.
- [[UnitDisplay]] is one of the String values *"short"*, *"narrow"*, or *"long"*, specifying whether to display the unit as a symbol, narrow symbol, or localized long name if formatting with the *"unit"* style. It is only used when [[Style]] has the value *"unit"*.
- [[MinimumIntegerDigits]] is a non-negative integer Number value indicating the minimum integer digits to be used. Numbers will be padded with leading zeroes if necessary.
- [[MinimumFractionDigits]] and [[MaximumFractionDigits]] are non-negative integer Number values indicating the minimum and maximum fraction digits to be used. Numbers will be rounded or padded with trailing zeroes if necessary. These properties are only used when [[RoundingType]] is ~fractionDigits~.
diff --git a/spec/pluralrules.html b/spec/pluralrules.html
index 643dd631..a2fad4d0 100644
--- a/spec/pluralrules.html
+++ b/spec/pluralrules.html
@@ -90,7 +90,7 @@ Internal slots
- Unicode Technical Standard 35 describes no locale extension keys that are relevant to the pluralization process.
+ Unicode Technical Standard #35 describes no locale extension keys that are relevant to the pluralization process.
@@ -243,7 +243,7 @@
1. Let _n_ be ! ToNumber(_s_).
diff --git a/spec/relativetimeformat.html b/spec/relativetimeformat.html
index 98bd073e..ff117d8a 100644
--- a/spec/relativetimeformat.html
+++ b/spec/relativetimeformat.html
@@ -104,7 +104,7 @@ Internal slots
- Unicode Technical Standard 35 describes one locale extension key that is relevant to relative time formatting: *"nu"* for numbering system (of formatted numbers).
+ Unicode Technical Standard #35 describes one locale extension key that is relevant to relative time formatting: *"nu"* for numbering system (of formatted numbers).
@@ -257,7 +257,7 @@
Properties of Intl.RelativeTimeFormat Instances
- [[Style]] is one of the String values *"long"*, *"short"*, or *"narrow"*, identifying the relative time format style used.
- [[Numeric]] is one of the String values *"always"* or *"auto"*, identifying whether numerical descriptions are always used, or used only when no more specific version is available (e.g., "1 day ago" vs "yesterday").
- [[NumberFormat]] is an Intl.NumberFormat object used for formatting.
- - [[NumberingSystem]] is a String value with the *"type"* given in Unicode Technical Standard 35 for the numbering system used for formatting.
+ - [[NumberingSystem]] is a String value with the *"type"* given in Unicode Technical Standard #35 for the numbering system used for formatting.
- [[PluralRules]] is an Intl.PluralRules object used for formatting.
diff --git a/spec/segmenter.html b/spec/segmenter.html
index 2550d323..030355ef 100644
--- a/spec/segmenter.html
+++ b/spec/segmenter.html
@@ -391,7 +391,7 @@ Abstract Operations for Segmenter Objects
FindBoundary ( _segmenter_, _string_, _startIndex_, _direction_ )
The FindBoundary abstract operation is called with arguments Intl.Segmenter instance _segmenter_, String _string_, integer _startIndex_, and _direction_ (which must be ~before~ or ~after~) to find a segmentation boundary between two code units in _string_ in the specified _direction_ from the code unit at index _startIndex_ according to the locale and options of _segmenter_ and return the immediately following code unit index (which will be infinite if no such boundary exists). The following steps are taken:
- Boundary determination is implementation-dependent, but general default algorithms are specified in Unicode Standard Annex 29 (available at https://www.unicode.org/reports/tr29/). It is recommended that implementations use locale-sensitive tailorings such as those provided by the Common Locale Data Repository (available at http://cldr.unicode.org).
+ Boundary determination is implementation-dependent, but general default algorithms are specified in Unicode Standard Annex #29. It is recommended that implementations use locale-sensitive tailorings such as those provided by the Common Locale Data Repository (available at https://cldr.unicode.org).
1. Let _locale_ be _segmenter_.[[Locale]].
1. Let _granularity_ be _segmenter_.[[SegmenterGranularity]].