From 3e470f9e74a1c61f445bfd408e9759040f4b454e Mon Sep 17 00:00:00 2001 From: "Steven R. Loomis" Date: Fri, 16 May 2025 11:50:06 -0500 Subject: [PATCH 1/3] feat: add top level page for LDML keyboard and first few pages - adds /developer/ldml/guide and /developer/ldml/reference - add a new top level link from /developer - bulk out /developer/ldml/reference with every element (mostly stubs) - add docs for keyboard3 --- cdn/dev/img/icon-ldml.png | Bin 0 -> 48081 bytes developer/index.php | 11 ++- developer/ldml/guide/glossary.md | 18 ++++ developer/ldml/guide/index.md | 8 ++ developer/ldml/guide/overview.md | 7 ++ developer/ldml/index.md | 17 ++++ developer/ldml/reference/display.md | 40 +++++++++ developer/ldml/reference/displayOptions.md | 40 +++++++++ developer/ldml/reference/displays.md | 40 +++++++++ developer/ldml/reference/flick.md | 40 +++++++++ developer/ldml/reference/flickSegment.md | 40 +++++++++ developer/ldml/reference/flicks.md | 40 +++++++++ developer/ldml/reference/form.md | 40 +++++++++ developer/ldml/reference/forms.md | 40 +++++++++ developer/ldml/reference/import.md | 40 +++++++++ developer/ldml/reference/index.md | 98 +++++++++++++++++++++ developer/ldml/reference/info.md | 40 +++++++++ developer/ldml/reference/key.md | 40 +++++++++ developer/ldml/reference/keyboard3.md | 50 +++++++++++ developer/ldml/reference/keys.md | 40 +++++++++ developer/ldml/reference/layer.md | 40 +++++++++ developer/ldml/reference/layers.md | 40 +++++++++ developer/ldml/reference/locale.md | 40 +++++++++ developer/ldml/reference/locales.md | 40 +++++++++ developer/ldml/reference/reorder.md | 40 +++++++++ developer/ldml/reference/row.md | 40 +++++++++ developer/ldml/reference/scanCodes.md | 40 +++++++++ developer/ldml/reference/set.md | 40 +++++++++ developer/ldml/reference/settings.md | 40 +++++++++ developer/ldml/reference/special.md | 40 +++++++++ developer/ldml/reference/string.md | 40 +++++++++ developer/ldml/reference/transform.md | 40 +++++++++ developer/ldml/reference/transformGroup.md | 40 +++++++++ developer/ldml/reference/transforms.md | 40 +++++++++ developer/ldml/reference/uset.md | 40 +++++++++ developer/ldml/reference/variables.md | 40 +++++++++ developer/ldml/reference/version.md | 40 +++++++++ 37 files changed, 1368 insertions(+), 1 deletion(-) create mode 100644 cdn/dev/img/icon-ldml.png create mode 100644 developer/ldml/guide/glossary.md create mode 100644 developer/ldml/guide/index.md create mode 100644 developer/ldml/guide/overview.md create mode 100644 developer/ldml/index.md create mode 100644 developer/ldml/reference/display.md create mode 100644 developer/ldml/reference/displayOptions.md create mode 100644 developer/ldml/reference/displays.md create mode 100644 developer/ldml/reference/flick.md create mode 100644 developer/ldml/reference/flickSegment.md create mode 100644 developer/ldml/reference/flicks.md create mode 100644 developer/ldml/reference/form.md create mode 100644 developer/ldml/reference/forms.md create mode 100644 developer/ldml/reference/import.md create mode 100644 developer/ldml/reference/index.md create mode 100644 developer/ldml/reference/info.md create mode 100644 developer/ldml/reference/key.md create mode 100644 developer/ldml/reference/keyboard3.md create mode 100644 developer/ldml/reference/keys.md create mode 100644 developer/ldml/reference/layer.md create mode 100644 developer/ldml/reference/layers.md create mode 100644 developer/ldml/reference/locale.md create mode 100644 developer/ldml/reference/locales.md create mode 100644 developer/ldml/reference/reorder.md create mode 100644 developer/ldml/reference/row.md create mode 100644 developer/ldml/reference/scanCodes.md create mode 100644 developer/ldml/reference/set.md create mode 100644 developer/ldml/reference/settings.md create mode 100644 developer/ldml/reference/special.md create mode 100644 developer/ldml/reference/string.md create mode 100644 developer/ldml/reference/transform.md create mode 100644 developer/ldml/reference/transformGroup.md create mode 100644 developer/ldml/reference/transforms.md create mode 100644 developer/ldml/reference/uset.md create mode 100644 developer/ldml/reference/variables.md create mode 100644 developer/ldml/reference/version.md diff --git a/cdn/dev/img/icon-ldml.png b/cdn/dev/img/icon-ldml.png new file mode 100644 index 0000000000000000000000000000000000000000..f2f2bfe0842c7e1b5791b8116469fdf2e8f63048 GIT binary patch literal 48081 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 z
    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 p-~T0p`@0 + - \ No newline at end of file + diff --git a/developer/ldml/guide/glossary.md b/developer/ldml/guide/glossary.md new file mode 100644 index 000000000..88cadf3e0 --- /dev/null +++ b/developer/ldml/guide/glossary.md @@ -0,0 +1,18 @@ +--- +title: Glossary for LDML +--- + +## B {#b-glossary} + +### BCP 47 language tag + +A standardized code that is used to identify human languages on the Internet. More on [BCP 47](https://www.rfc-editor.org/info/bcp47). + +There are many possible subtags, but only three types are currently used in most places in Keyman Developer: + +* [language subtag](../../current-version/reference/bcp-47#toc-the-language-subtag) +* [script subtag](../../current-version/reference/bcp-47#toc-the-script-subtag) +* [region subtag](../../current-version/reference/bcp-47#toc-the-region-subtag) + +More information about BCP 47 language tag and full details on [how they are used in Keyman Developer](../../current-version/reference/bcp-47). + diff --git a/developer/ldml/guide/index.md b/developer/ldml/guide/index.md new file mode 100644 index 000000000..69cf0b463 --- /dev/null +++ b/developer/ldml/guide/index.md @@ -0,0 +1,8 @@ +--- +title: LDML Guide +--- + +## Language elements + +* [LDML Language Overview](overview) +* [Glossary](glossary) diff --git a/developer/ldml/guide/overview.md b/developer/ldml/guide/overview.md new file mode 100644 index 000000000..d4ad6f6d2 --- /dev/null +++ b/developer/ldml/guide/overview.md @@ -0,0 +1,7 @@ +--- +title: LDML overview +--- + +The LDML format …. Source files have the **.xml** extension and are text files. + +… diff --git a/developer/ldml/index.md b/developer/ldml/index.md new file mode 100644 index 000000000..c14fac630 --- /dev/null +++ b/developer/ldml/index.md @@ -0,0 +1,17 @@ +--- +title: LDML Format +--- + +LDML is the Locale Data Markup Language. It it an XML-based format specified as the Unicode Consortium’s specification [UTS#35 Part 7], maintained by the [Common Locale Data Repository (CLDR)][CLDR] Technical Commitee. + +Like the [Keyman Keyboard Language (.kmn) format][kmn], the LDML Keyboard format defines how keystrokes are interpreted and how keys are laid out in a virtual keyboard. The LDML format has been defined from the beginning to become a cross-platform industry standard, with active participation from several Unicode member organizations including SIL Global. + +[LDML guide](guide) + +[LDML reference](reference) + + + +[CLDR]: https://cldr.unicode.org +[kmn]: ../language/ +[UTS#35 Part 7]: https://www.unicode.org/reports/tr35/tr35-keyboards.html diff --git a/developer/ldml/reference/display.md b/developer/ldml/reference/display.md new file mode 100644 index 000000000..43be15fcb --- /dev/null +++ b/developer/ldml/reference/display.md @@ -0,0 +1,40 @@ +--- +title: display +--- + +## Summary + +The **`display`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `display` element is used to… + +## Examples + +### Example: Using `display` + +```xml + + +``` + +## Version history + +The `display` element was added in LDML v46 + + diff --git a/developer/ldml/reference/displayOptions.md b/developer/ldml/reference/displayOptions.md new file mode 100644 index 000000000..eab33bc04 --- /dev/null +++ b/developer/ldml/reference/displayOptions.md @@ -0,0 +1,40 @@ +--- +title: displayOptions +--- + +## Summary + +The **`displayOptions`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `displayOptions` element is used to… + +## Examples + +### Example: Using `displayOptions` + +```xml + + +``` + +## Version history + +The `displayOptions` element was added in LDML v46 + + diff --git a/developer/ldml/reference/displays.md b/developer/ldml/reference/displays.md new file mode 100644 index 000000000..f3b6895d6 --- /dev/null +++ b/developer/ldml/reference/displays.md @@ -0,0 +1,40 @@ +--- +title: displays +--- + +## Summary + +The **`displays`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `displays` element is used to… + +## Examples + +### Example: Using `displays` + +```xml + + +``` + +## Version history + +The `displays` element was added in LDML v46 + + diff --git a/developer/ldml/reference/flick.md b/developer/ldml/reference/flick.md new file mode 100644 index 000000000..9e4756dca --- /dev/null +++ b/developer/ldml/reference/flick.md @@ -0,0 +1,40 @@ +--- +title: flick +--- + +## Summary + +The **`flick`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `flick` element is used to… + +## Examples + +### Example: Using `flick` + +```xml + + +``` + +## Version history + +The `flick` element was added in LDML v46 + + diff --git a/developer/ldml/reference/flickSegment.md b/developer/ldml/reference/flickSegment.md new file mode 100644 index 000000000..072b4512c --- /dev/null +++ b/developer/ldml/reference/flickSegment.md @@ -0,0 +1,40 @@ +--- +title: flickSegment +--- + +## Summary + +The **`flickSegment`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `flickSegment` element is used to… + +## Examples + +### Example: Using `flickSegment` + +```xml + + +``` + +## Version history + +The `flickSegment` element was added in LDML v46 + + diff --git a/developer/ldml/reference/flicks.md b/developer/ldml/reference/flicks.md new file mode 100644 index 000000000..4623efec1 --- /dev/null +++ b/developer/ldml/reference/flicks.md @@ -0,0 +1,40 @@ +--- +title: flicks +--- + +## Summary + +The **`flicks`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `flicks` element is used to… + +## Examples + +### Example: Using `flicks` + +```xml + + +``` + +## Version history + +The `flicks` element was added in LDML v46 + + diff --git a/developer/ldml/reference/form.md b/developer/ldml/reference/form.md new file mode 100644 index 000000000..0add65e1f --- /dev/null +++ b/developer/ldml/reference/form.md @@ -0,0 +1,40 @@ +--- +title: form +--- + +## Summary + +The **`form`** element… + +## Syntax + +```xml +
    +
    +``` + +### Attributes + +`id` +: The … + +## Description + +The `form` element is used to… + +## Examples + +### Example: Using `form` + +```xml +
    +
    +``` + +## Version history + +The `form` element was added in LDML v46 + + diff --git a/developer/ldml/reference/forms.md b/developer/ldml/reference/forms.md new file mode 100644 index 000000000..816028df0 --- /dev/null +++ b/developer/ldml/reference/forms.md @@ -0,0 +1,40 @@ +--- +title: forms +--- + +## Summary + +The **`forms`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `forms` element is used to… + +## Examples + +### Example: Using `forms` + +```xml + + +``` + +## Version history + +The `forms` element was added in LDML v46 + + diff --git a/developer/ldml/reference/import.md b/developer/ldml/reference/import.md new file mode 100644 index 000000000..d7ddef733 --- /dev/null +++ b/developer/ldml/reference/import.md @@ -0,0 +1,40 @@ +--- +title: import +--- + +## Summary + +The **`import`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `import` element is used to… + +## Examples + +### Example: Using `import` + +```xml + + +``` + +## Version history + +The `import` element was added in LDML v46 + + diff --git a/developer/ldml/reference/index.md b/developer/ldml/reference/index.md new file mode 100644 index 000000000..8c795463a --- /dev/null +++ b/developer/ldml/reference/index.md @@ -0,0 +1,98 @@ +--- +title: LDML Reference +--- + +[``](display) +: … + +[``](displayOptions) +: … + +[``](displays) +: … + +[``](flick) +: … + +[``](flicks) +: … + +[``](flickSegment) +: … + +[`
    `](form) +: … + +[``](forms) +: … + +[``](import) +: … + +[``](info) +: … + +[``](key) +: … + +[``](keyboard3) +: … + +[``](keys) +: … + +[``](layer) +: … + +[``](layers) +: … + +[``](locale) +: … + +[``](locales) +: … + +[``](reorder) +: … + +[``](row) +: … + +[``](scanCodes) +: … + +[``](set) +: … + +[``](settings) +: … + +[``](special) +: … + +[``](string) +: … + +[``](transform) +: … + +[``](transformGroup) +: … + +[``](transforms) +: … + +[``](uset) +: … + +[``](variables) +: … + +[``](version) +: … + +## See also + + +- [LDML guide](../guide) diff --git a/developer/ldml/reference/info.md b/developer/ldml/reference/info.md new file mode 100644 index 000000000..04b4c6287 --- /dev/null +++ b/developer/ldml/reference/info.md @@ -0,0 +1,40 @@ +--- +title: info +--- + +## Summary + +The **`info`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `info` element is used to… + +## Examples + +### Example: Using `info` + +```xml + + +``` + +## Version history + +The `info` element was added in LDML v46 + + diff --git a/developer/ldml/reference/key.md b/developer/ldml/reference/key.md new file mode 100644 index 000000000..6b6ebcbc0 --- /dev/null +++ b/developer/ldml/reference/key.md @@ -0,0 +1,40 @@ +--- +title: key +--- + +## Summary + +The **`key`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `key` element is used to… + +## Examples + +### Example: Using `key` + +```xml + + +``` + +## Version history + +The `key` element was added in LDML v46 + + diff --git a/developer/ldml/reference/keyboard3.md b/developer/ldml/reference/keyboard3.md new file mode 100644 index 000000000..f9d12cb75 --- /dev/null +++ b/developer/ldml/reference/keyboard3.md @@ -0,0 +1,50 @@ +--- +title: keyboard3 +--- + +## Summary + +The **`keyboard3`** element is the top level element in each LDML Keyboard file. + +## Syntax + +```xml + + … + +``` + +### Attributes + +`conformsTo` - Required +: This indicates the minimum supported version number of CLDR that this file conforms to. In other words, this file may not use features from CLDR versions after this number. This must be a whole number such as "46". See [CLDR Releases] for a current list of CLDR versions. Authors should use the _minimum_ possible number here so that the keyboard is the most widely usable. + +`draft` - Optional +: For keyboards which are contributed to CLDR itself, this indicates the approval level of the [CLDR keyboard process]. For keyboard authors, it is best to omit this attribute or set it to `contributed`. Other possible values include `approved`, `unconfirmed`, and `provisional`. + +`locale` - Required +: This attribute specifies the [BCP 47] tag used for the primary locale for this keyboard. The [`locales`](./locales) element can be used to specify additional locales, however, at least one locale must be specified in the `locale` attribute. + +## Description + +The `keyboard3` element contains all other elements of the keyboard, and its attributes provide important metadata about the keyboard. + +It is named "3" because it is the third version of the LDML Keyboard format. + +## Examples + +### Example: Using `keyboard3` + +```xml + + … + +``` + +## Version history + +The `keyboard3` element was added in LDML v46. The `draft` attribute was added in LDML v47. + +[CLDR Releases]: https://cldr.unicode.org/index/downloads +[CLDR keyboard process]: https://cldr.unicode.org/index/process/keyboard-repository-process +[BCP 47]: ../../current-version/reference/bcp-47 diff --git a/developer/ldml/reference/keys.md b/developer/ldml/reference/keys.md new file mode 100644 index 000000000..e1907f840 --- /dev/null +++ b/developer/ldml/reference/keys.md @@ -0,0 +1,40 @@ +--- +title: keys +--- + +## Summary + +The **`keys`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `keys` element is used to… + +## Examples + +### Example: Using `keys` + +```xml + + +``` + +## Version history + +The `keys` element was added in LDML v46 + + diff --git a/developer/ldml/reference/layer.md b/developer/ldml/reference/layer.md new file mode 100644 index 000000000..29bfb21e1 --- /dev/null +++ b/developer/ldml/reference/layer.md @@ -0,0 +1,40 @@ +--- +title: layer +--- + +## Summary + +The **`layer`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `layer` element is used to… + +## Examples + +### Example: Using `layer` + +```xml + + +``` + +## Version history + +The `layer` element was added in LDML v46 + + diff --git a/developer/ldml/reference/layers.md b/developer/ldml/reference/layers.md new file mode 100644 index 000000000..448c7bc08 --- /dev/null +++ b/developer/ldml/reference/layers.md @@ -0,0 +1,40 @@ +--- +title: layers +--- + +## Summary + +The **`layers`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `layers` element is used to… + +## Examples + +### Example: Using `layers` + +```xml + + +``` + +## Version history + +The `layers` element was added in LDML v46 + + diff --git a/developer/ldml/reference/locale.md b/developer/ldml/reference/locale.md new file mode 100644 index 000000000..14b1a9202 --- /dev/null +++ b/developer/ldml/reference/locale.md @@ -0,0 +1,40 @@ +--- +title: locale +--- + +## Summary + +The **`locale`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `locale` element is used to… + +## Examples + +### Example: Using `locale` + +```xml + + +``` + +## Version history + +The `locale` element was added in LDML v46 + + diff --git a/developer/ldml/reference/locales.md b/developer/ldml/reference/locales.md new file mode 100644 index 000000000..c6bae41a9 --- /dev/null +++ b/developer/ldml/reference/locales.md @@ -0,0 +1,40 @@ +--- +title: locales +--- + +## Summary + +The **`locales`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `locales` element is used to… + +## Examples + +### Example: Using `locales` + +```xml + + +``` + +## Version history + +The `locales` element was added in LDML v46 + + diff --git a/developer/ldml/reference/reorder.md b/developer/ldml/reference/reorder.md new file mode 100644 index 000000000..3a05bcc4d --- /dev/null +++ b/developer/ldml/reference/reorder.md @@ -0,0 +1,40 @@ +--- +title: reorder +--- + +## Summary + +The **`reorder`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `reorder` element is used to… + +## Examples + +### Example: Using `reorder` + +```xml + + +``` + +## Version history + +The `reorder` element was added in LDML v46 + + diff --git a/developer/ldml/reference/row.md b/developer/ldml/reference/row.md new file mode 100644 index 000000000..01ba78302 --- /dev/null +++ b/developer/ldml/reference/row.md @@ -0,0 +1,40 @@ +--- +title: row +--- + +## Summary + +The **`row`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `row` element is used to… + +## Examples + +### Example: Using `row` + +```xml + + +``` + +## Version history + +The `row` element was added in LDML v46 + + diff --git a/developer/ldml/reference/scanCodes.md b/developer/ldml/reference/scanCodes.md new file mode 100644 index 000000000..24b0ef8d3 --- /dev/null +++ b/developer/ldml/reference/scanCodes.md @@ -0,0 +1,40 @@ +--- +title: scanCodes +--- + +## Summary + +The **`scanCodes`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `scanCodes` element is used to… + +## Examples + +### Example: Using `scanCodes` + +```xml + + +``` + +## Version history + +The `scanCodes` element was added in LDML v46 + + diff --git a/developer/ldml/reference/set.md b/developer/ldml/reference/set.md new file mode 100644 index 000000000..32ec49e12 --- /dev/null +++ b/developer/ldml/reference/set.md @@ -0,0 +1,40 @@ +--- +title: set +--- + +## Summary + +The **`set`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `set` element is used to… + +## Examples + +### Example: Using `set` + +```xml + + +``` + +## Version history + +The `set` element was added in LDML v46 + + diff --git a/developer/ldml/reference/settings.md b/developer/ldml/reference/settings.md new file mode 100644 index 000000000..bac1cfd39 --- /dev/null +++ b/developer/ldml/reference/settings.md @@ -0,0 +1,40 @@ +--- +title: settings +--- + +## Summary + +The **`settings`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `settings` element is used to… + +## Examples + +### Example: Using `settings` + +```xml + + +``` + +## Version history + +The `settings` element was added in LDML v46 + + diff --git a/developer/ldml/reference/special.md b/developer/ldml/reference/special.md new file mode 100644 index 000000000..3ebdcd8c2 --- /dev/null +++ b/developer/ldml/reference/special.md @@ -0,0 +1,40 @@ +--- +title: special +--- + +## Summary + +The **`special`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `special` element is used to… + +## Examples + +### Example: Using `special` + +```xml + + +``` + +## Version history + +The `special` element was added in LDML v46 + + diff --git a/developer/ldml/reference/string.md b/developer/ldml/reference/string.md new file mode 100644 index 000000000..758d777dd --- /dev/null +++ b/developer/ldml/reference/string.md @@ -0,0 +1,40 @@ +--- +title: string +--- + +## Summary + +The **`string`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `string` element is used to… + +## Examples + +### Example: Using `string` + +```xml + + +``` + +## Version history + +The `string` element was added in LDML v46 + + diff --git a/developer/ldml/reference/transform.md b/developer/ldml/reference/transform.md new file mode 100644 index 000000000..225aa0263 --- /dev/null +++ b/developer/ldml/reference/transform.md @@ -0,0 +1,40 @@ +--- +title: transform +--- + +## Summary + +The **`transform`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `transform` element is used to… + +## Examples + +### Example: Using `transform` + +```xml + + +``` + +## Version history + +The `transform` element was added in LDML v46 + + diff --git a/developer/ldml/reference/transformGroup.md b/developer/ldml/reference/transformGroup.md new file mode 100644 index 000000000..a2e339b29 --- /dev/null +++ b/developer/ldml/reference/transformGroup.md @@ -0,0 +1,40 @@ +--- +title: transformGroup +--- + +## Summary + +The **`transformGroup`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `transformGroup` element is used to… + +## Examples + +### Example: Using `transformGroup` + +```xml + + +``` + +## Version history + +The `transformGroup` element was added in LDML v46 + + diff --git a/developer/ldml/reference/transforms.md b/developer/ldml/reference/transforms.md new file mode 100644 index 000000000..785868c09 --- /dev/null +++ b/developer/ldml/reference/transforms.md @@ -0,0 +1,40 @@ +--- +title: transforms +--- + +## Summary + +The **`transforms`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `transforms` element is used to… + +## Examples + +### Example: Using `transforms` + +```xml + + +``` + +## Version history + +The `transforms` element was added in LDML v46 + + diff --git a/developer/ldml/reference/uset.md b/developer/ldml/reference/uset.md new file mode 100644 index 000000000..a5d1e2efd --- /dev/null +++ b/developer/ldml/reference/uset.md @@ -0,0 +1,40 @@ +--- +title: uset +--- + +## Summary + +The **`uset`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `uset` element is used to… + +## Examples + +### Example: Using `uset` + +```xml + + +``` + +## Version history + +The `uset` element was added in LDML v46 + + diff --git a/developer/ldml/reference/variables.md b/developer/ldml/reference/variables.md new file mode 100644 index 000000000..0919c073a --- /dev/null +++ b/developer/ldml/reference/variables.md @@ -0,0 +1,40 @@ +--- +title: variables +--- + +## Summary + +The **`variables`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `variables` element is used to… + +## Examples + +### Example: Using `variables` + +```xml + + +``` + +## Version history + +The `variables` element was added in LDML v46 + + diff --git a/developer/ldml/reference/version.md b/developer/ldml/reference/version.md new file mode 100644 index 000000000..300fc4e0b --- /dev/null +++ b/developer/ldml/reference/version.md @@ -0,0 +1,40 @@ +--- +title: version +--- + +## Summary + +The **`version`** element… + +## Syntax + +```xml + + +``` + +### Attributes + +`id` +: The … + +## Description + +The `version` element is used to… + +## Examples + +### Example: Using `version` + +```xml + + +``` + +## Version history + +The `version` element was added in LDML v46 + + From 91514be4a4ea111adff0c4b5fb51aa6a4419ff2e Mon Sep 17 00:00:00 2001 From: "Steven R. Loomis" Date: Fri, 16 May 2025 16:56:28 -0500 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20ldml-docs:=20additional=20updates?= =?UTF-8?q?=20to=20reference=20=E2=9C=8D=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flesh out the reference index page especially and many subpages #13836 --- developer/ldml/reference/display.md | 2 +- developer/ldml/reference/displayOptions.md | 2 +- developer/ldml/reference/displays.md | 4 +- developer/ldml/reference/flick.md | 10 ++-- developer/ldml/reference/flickSegment.md | 14 +++++- developer/ldml/reference/flicks.md | 6 ++- developer/ldml/reference/form.md | 8 ++- developer/ldml/reference/forms.md | 5 +- developer/ldml/reference/import.md | 2 +- developer/ldml/reference/index.md | 58 +++++++++++----------- developer/ldml/reference/info.md | 2 +- developer/ldml/reference/key.md | 4 +- developer/ldml/reference/keys.md | 2 +- developer/ldml/reference/layer.md | 4 +- developer/ldml/reference/layers.md | 2 +- 15 files changed, 72 insertions(+), 53 deletions(-) diff --git a/developer/ldml/reference/display.md b/developer/ldml/reference/display.md index 43be15fcb..d0d834596 100644 --- a/developer/ldml/reference/display.md +++ b/developer/ldml/reference/display.md @@ -4,7 +4,7 @@ title: display ## Summary -The **`display`** element… +The **`display`** element is used to overide the keytops for certain keys. ## Syntax diff --git a/developer/ldml/reference/displayOptions.md b/developer/ldml/reference/displayOptions.md index eab33bc04..b2ed02087 100644 --- a/developer/ldml/reference/displayOptions.md +++ b/developer/ldml/reference/displayOptions.md @@ -4,7 +4,7 @@ title: displayOptions ## Summary -The **`displayOptions`** element… +The **`displayOptions`** element is used to provide setting information for keytop displays. ## Syntax diff --git a/developer/ldml/reference/displays.md b/developer/ldml/reference/displays.md index f3b6895d6..cb1d5147f 100644 --- a/developer/ldml/reference/displays.md +++ b/developer/ldml/reference/displays.md @@ -4,7 +4,7 @@ title: displays ## Summary -The **`displays`** element… +The **`displays`** element contains a collection of [``](display) elements as well as an optional [``](displayOptions) element. ## Syntax @@ -20,7 +20,7 @@ The **`displays`** element… ## Description -The `displays` element is used to… +The `displays` element is used to contain all [``](key) elements and the optional [``](displayOptions) element for the keyboard. There may only be one of these elements. ## Examples diff --git a/developer/ldml/reference/flick.md b/developer/ldml/reference/flick.md index 9e4756dca..bb4e7243b 100644 --- a/developer/ldml/reference/flick.md +++ b/developer/ldml/reference/flick.md @@ -4,7 +4,7 @@ title: flick ## Summary -The **`flick`** element… +The **`flick`** element represents a set of possible flick gestures. ## Syntax @@ -16,18 +16,20 @@ The **`flick`** element… ### Attributes `id` -: The … +: The identifier for this flick. Only one flick may have this identifier, but it doesn't have to be diffrent from any other kinds of identifiers. ## Description -The `flick` element is used to… +The **`flick`** element represents a set of possible flick gestures which can result in output text. + +The element is referenced by its id, allowing multiple [``](key) elements to reference and reuse the same flick set. ## Examples ### Example: Using `flick` ```xml - + ``` diff --git a/developer/ldml/reference/flickSegment.md b/developer/ldml/reference/flickSegment.md index 072b4512c..4ecb2537e 100644 --- a/developer/ldml/reference/flickSegment.md +++ b/developer/ldml/reference/flickSegment.md @@ -4,7 +4,7 @@ title: flickSegment ## Summary -The **`flickSegment`** element… +The **`flickSegment`** element represents one particular set of gestures which will produce a specific output. ## Syntax @@ -20,7 +20,17 @@ The **`flickSegment`** element… ## Description -The `flickSegment` element is used to… +The `flickSegment` element is used to represent one set of gestures (an ordered path), and their output. For example, "Sliding the touch North produces `A`". It could include more than one keyword, such as "Sliding the touch West and then South produces `B`". + +### Directions + +The following table attempts to show the eight directions supported by the format, relative to the center (•). So `nw` for Northwest means diagonally Up-and-Left, whereas `e` for East means directly to the right. + +| | | | +|------|-----|------| +| `nw` | `n` | `ne` | +| `w` | • | `e` | +| `sw` | `s` | `se` | ## Examples diff --git a/developer/ldml/reference/flicks.md b/developer/ldml/reference/flicks.md index 4623efec1..5fef5e767 100644 --- a/developer/ldml/reference/flicks.md +++ b/developer/ldml/reference/flicks.md @@ -4,12 +4,13 @@ title: flicks ## Summary -The **`flicks`** element… +The **`flicks`** element contains a collection of [``](flick) elements. ## Syntax ```xml + … ``` @@ -20,7 +21,7 @@ The **`flicks`** element… ## Description -The `flicks` element is used to… +The `flicks` element is used to contain all [``](flick) elements for the keyboard. There may only be one of these elements. ## Examples @@ -28,6 +29,7 @@ The `flicks` element is used to… ```xml + … ``` diff --git a/developer/ldml/reference/form.md b/developer/ldml/reference/form.md index 0add65e1f..4f667f1db 100644 --- a/developer/ldml/reference/form.md +++ b/developer/ldml/reference/form.md @@ -4,7 +4,7 @@ title: form ## Summary -The **`form`** element… +The **`form`** element is used to define or override the scan code layout of a hardware keyboard. ## Syntax @@ -13,6 +13,8 @@ The **`form`** element… ``` +Parent Element: [``](forms) + ### Attributes `id` @@ -20,7 +22,9 @@ The **`form`** element… ## Description -The `form` element is used to… +The `form` element is used to define or override the scan code layout of a hardware keyboard. + +Note that keyboard developers will not normally need or want to use this element, but rather to use the pre-defined hardware forms. ## Examples diff --git a/developer/ldml/reference/forms.md b/developer/ldml/reference/forms.md index 816028df0..a16b3f3b3 100644 --- a/developer/ldml/reference/forms.md +++ b/developer/ldml/reference/forms.md @@ -4,7 +4,7 @@ title: forms ## Summary -The **`forms`** element… +The **`forms`** element contains `form` elements. ## Syntax @@ -20,7 +20,7 @@ The **`forms`** element… ## Description -The `forms` element is used to… +The `forms` element is used to contain the [`form`](form) elements for the keyboard. There may only be one `forms` element in the file. ## Examples @@ -28,6 +28,7 @@ The `forms` element is used to… ```xml + … ``` diff --git a/developer/ldml/reference/import.md b/developer/ldml/reference/import.md index d7ddef733..8cba340db 100644 --- a/developer/ldml/reference/import.md +++ b/developer/ldml/reference/import.md @@ -4,7 +4,7 @@ title: import ## Summary -The **`import`** element… +The **`import`** element is used to import elements from another file at this location. ## Syntax diff --git a/developer/ldml/reference/index.md b/developer/ldml/reference/index.md index 8c795463a..e33639427 100644 --- a/developer/ldml/reference/index.md +++ b/developer/ldml/reference/index.md @@ -3,94 +3,94 @@ title: LDML Reference --- [``](display) -: … +: Used to override the display of keytops. [``](displayOptions) -: … +: Modifies overall settings for keytop display. [``](displays) -: … +: Collection of [``](display) elements as well as an optional [``](displayOptions) element. [``](flick) -: … +: A set of possible flick gestures which each may produce different output. [``](flicks) -: … +: Collection of [``](flick) elements [``](flickSegment) -: … +: One particular set of gestures which will produce a specific output. [`
    `](form) -: … +: Override the scan code layout of a hardware keyboard. [``](forms) -: … +: Collection of [``](form) elements [``](import) -: … +: Used to import elements from another file to this location. [``](info) -: … +: Contains additional metadata about this keyboard. [``](key) -: … +: A single key in the keybag. [``](keyboard3) -: … +: Top level element [``](keys) -: … +: The keybag, a collection of [``](key) elements [``](layer) -: … +: A single group of rows of keys, associated with a modifier/shift state. [``](layers) -: … +: Collection of [``](layer) elements for a certain hardware or touch layout form factor. [``](locale) -: … +: An additional locale this keyboard can support. [``](locales) -: … +: Collection of [``](locale) elements indicating additional supported locales. [``](reorder) -: … +: An element providing weighting rules for correcting the order of characters within a syllable. [``](row) -: … +: A row of [``](key) elements. [``](scanCodes) -: … +: A row of scan code information used for a custom [``](form). [``](set) -: … +: A variable type representing a group of characters or strings. [``](settings) : … [``](special) -: … +: A element used for extensions to the keyboard format. [``](string) -: … +: A variable type representing a single character string. [``](transform) -: … +: An element representing a single transform rule. [``](transformGroup) -: … +: An element representing a group of [transform](transform) or [reorder](reorder) element. [``](transforms) -: … +: Collection of [``](transformGroup) elements [``](uset) -: … +: A variable type representing a set of characters which supports ranges and boolean operations. [``](variables) -: … +: Provides variables to be used in substitutions in other elements [``](version) -: … +: Provides information about the keyboard's version. ## See also diff --git a/developer/ldml/reference/info.md b/developer/ldml/reference/info.md index 04b4c6287..08d4c8e66 100644 --- a/developer/ldml/reference/info.md +++ b/developer/ldml/reference/info.md @@ -4,7 +4,7 @@ title: info ## Summary -The **`info`** element… +The **`info`** element contains additional metadata about this keyboard. ## Syntax diff --git a/developer/ldml/reference/key.md b/developer/ldml/reference/key.md index 6b6ebcbc0..41f3d4bec 100644 --- a/developer/ldml/reference/key.md +++ b/developer/ldml/reference/key.md @@ -4,7 +4,7 @@ title: key ## Summary -The **`key`** element… +The **`key`** element represents a single key in the keybag. ## Syntax @@ -20,7 +20,7 @@ The **`key`** element… ## Description -The `key` element is used to… +The `key` element is used to represent a single key in the keybag. Keys are referenced from layers and from gestures. ## Examples diff --git a/developer/ldml/reference/keys.md b/developer/ldml/reference/keys.md index e1907f840..bba6bf5f8 100644 --- a/developer/ldml/reference/keys.md +++ b/developer/ldml/reference/keys.md @@ -20,7 +20,7 @@ The **`keys`** element… ## Description -The `keys` element is used to… +The `keys` element is used to contain all [``](key) elements for the keyboard. There may only be one of these elements. ## Examples diff --git a/developer/ldml/reference/layer.md b/developer/ldml/reference/layer.md index 29bfb21e1..01f3e5cb7 100644 --- a/developer/ldml/reference/layer.md +++ b/developer/ldml/reference/layer.md @@ -4,7 +4,7 @@ title: layer ## Summary -The **`layer`** element… +The **`layer`** element represents a single layer of the keyboard. ## Syntax @@ -20,7 +20,7 @@ The **`layer`** element… ## Description -The `layer` element is used to… +The `layer` element is used to represent a single layer of the keyboard, such as a certain modifier combination. It is contained within the layers element, and it contains one or more row elements. ## Examples diff --git a/developer/ldml/reference/layers.md b/developer/ldml/reference/layers.md index 448c7bc08..8c07255dc 100644 --- a/developer/ldml/reference/layers.md +++ b/developer/ldml/reference/layers.md @@ -20,7 +20,7 @@ The **`layers`** element… ## Description -The `layers` element is used to… +The `layers` element is used to contain all [``](layer) elements for the keyboard. There may only be one of these elements. ## Examples From 8601383f5a2ce28054462b8c84cf3a842ecc8413 Mon Sep 17 00:00:00 2001 From: "Steven R. Loomis" Date: Fri, 16 May 2025 17:05:39 -0500 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20ldml-docs:=20additional=20updates?= =?UTF-8?q?=20to=20reference=20=E2=9C=8D=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit add links to tr35 #13836 --- developer/ldml/reference/display.md | 7 +++++++ developer/ldml/reference/displayOptions.md | 7 +++++++ developer/ldml/reference/displays.md | 7 +++++++ developer/ldml/reference/flick.md | 7 +++++++ developer/ldml/reference/flickSegment.md | 7 +++++++ developer/ldml/reference/flicks.md | 7 +++++++ developer/ldml/reference/form.md | 7 +++++++ developer/ldml/reference/forms.md | 7 +++++++ developer/ldml/reference/import.md | 7 +++++++ developer/ldml/reference/index.md | 2 +- developer/ldml/reference/info.md | 7 +++++++ developer/ldml/reference/key.md | 7 +++++++ developer/ldml/reference/keyboard3.md | 7 +++++++ developer/ldml/reference/keys.md | 7 +++++++ developer/ldml/reference/layer.md | 7 +++++++ developer/ldml/reference/layers.md | 7 +++++++ developer/ldml/reference/locale.md | 7 +++++++ developer/ldml/reference/locales.md | 7 +++++++ developer/ldml/reference/reorder.md | 7 +++++++ developer/ldml/reference/row.md | 7 +++++++ developer/ldml/reference/scanCodes.md | 7 +++++++ developer/ldml/reference/set.md | 7 +++++++ developer/ldml/reference/settings.md | 7 +++++++ developer/ldml/reference/special.md | 7 +++++++ developer/ldml/reference/string.md | 7 +++++++ developer/ldml/reference/transform.md | 7 +++++++ developer/ldml/reference/transformGroup.md | 7 +++++++ developer/ldml/reference/transforms.md | 7 +++++++ developer/ldml/reference/uset.md | 7 +++++++ developer/ldml/reference/variables.md | 7 +++++++ developer/ldml/reference/version.md | 7 +++++++ 31 files changed, 211 insertions(+), 1 deletion(-) diff --git a/developer/ldml/reference/display.md b/developer/ldml/reference/display.md index d0d834596..1646d4f74 100644 --- a/developer/ldml/reference/display.md +++ b/developer/ldml/reference/display.md @@ -38,3 +38,10 @@ The `display` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-display] + +[tr35-element-display]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-display + diff --git a/developer/ldml/reference/displayOptions.md b/developer/ldml/reference/displayOptions.md index b2ed02087..27e33cb8f 100644 --- a/developer/ldml/reference/displayOptions.md +++ b/developer/ldml/reference/displayOptions.md @@ -38,3 +38,10 @@ The `displayOptions` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-displayOptions] + +[tr35-element-displayOptions]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-displayoptions + diff --git a/developer/ldml/reference/displays.md b/developer/ldml/reference/displays.md index cb1d5147f..fa2cec48a 100644 --- a/developer/ldml/reference/displays.md +++ b/developer/ldml/reference/displays.md @@ -38,3 +38,10 @@ The `displays` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-displays] + +[tr35-element-displays]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-displays + diff --git a/developer/ldml/reference/flick.md b/developer/ldml/reference/flick.md index bb4e7243b..6d61e4022 100644 --- a/developer/ldml/reference/flick.md +++ b/developer/ldml/reference/flick.md @@ -40,3 +40,10 @@ The `flick` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-flick] + +[tr35-element-flick]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-flick + diff --git a/developer/ldml/reference/flickSegment.md b/developer/ldml/reference/flickSegment.md index 4ecb2537e..10b7e84e8 100644 --- a/developer/ldml/reference/flickSegment.md +++ b/developer/ldml/reference/flickSegment.md @@ -48,3 +48,10 @@ The `flickSegment` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-flickSegment] + +[tr35-element-flickSegment]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-flicksegment + diff --git a/developer/ldml/reference/flicks.md b/developer/ldml/reference/flicks.md index 5fef5e767..4aaa691ac 100644 --- a/developer/ldml/reference/flicks.md +++ b/developer/ldml/reference/flicks.md @@ -40,3 +40,10 @@ The `flicks` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-flicks] + +[tr35-element-flicks]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-flicks + diff --git a/developer/ldml/reference/form.md b/developer/ldml/reference/form.md index 4f667f1db..82800f3a3 100644 --- a/developer/ldml/reference/form.md +++ b/developer/ldml/reference/form.md @@ -42,3 +42,10 @@ The `form` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-form] + +[tr35-element-form]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-form + diff --git a/developer/ldml/reference/forms.md b/developer/ldml/reference/forms.md index a16b3f3b3..efb8db2c2 100644 --- a/developer/ldml/reference/forms.md +++ b/developer/ldml/reference/forms.md @@ -39,3 +39,10 @@ The `forms` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-forms] + +[tr35-element-forms]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-forms + diff --git a/developer/ldml/reference/import.md b/developer/ldml/reference/import.md index 8cba340db..f8efa8179 100644 --- a/developer/ldml/reference/import.md +++ b/developer/ldml/reference/import.md @@ -38,3 +38,10 @@ The `import` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-import] + +[tr35-element-import]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-import + diff --git a/developer/ldml/reference/index.md b/developer/ldml/reference/index.md index e33639427..f3a86ec91 100644 --- a/developer/ldml/reference/index.md +++ b/developer/ldml/reference/index.md @@ -66,7 +66,7 @@ title: LDML Reference : A variable type representing a group of characters or strings. [``](settings) -: … +: An element provides additional settings for the keyboard. [``](special) : A element used for extensions to the keyboard format. diff --git a/developer/ldml/reference/info.md b/developer/ldml/reference/info.md index 08d4c8e66..fc92d25a1 100644 --- a/developer/ldml/reference/info.md +++ b/developer/ldml/reference/info.md @@ -38,3 +38,10 @@ The `info` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-info] + +[tr35-element-info]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-info + diff --git a/developer/ldml/reference/key.md b/developer/ldml/reference/key.md index 41f3d4bec..b1b815191 100644 --- a/developer/ldml/reference/key.md +++ b/developer/ldml/reference/key.md @@ -38,3 +38,10 @@ The `key` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-key] + +[tr35-element-key]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-key + diff --git a/developer/ldml/reference/keyboard3.md b/developer/ldml/reference/keyboard3.md index f9d12cb75..6a57c2e92 100644 --- a/developer/ldml/reference/keyboard3.md +++ b/developer/ldml/reference/keyboard3.md @@ -48,3 +48,10 @@ The `keyboard3` element was added in LDML v46. The `draft` attribute was added i [CLDR Releases]: https://cldr.unicode.org/index/downloads [CLDR keyboard process]: https://cldr.unicode.org/index/process/keyboard-repository-process [BCP 47]: ../../current-version/reference/bcp-47 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-keyboard3] + +[tr35-element-keyboard3]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-keyboard3 + diff --git a/developer/ldml/reference/keys.md b/developer/ldml/reference/keys.md index bba6bf5f8..ccfd86815 100644 --- a/developer/ldml/reference/keys.md +++ b/developer/ldml/reference/keys.md @@ -38,3 +38,10 @@ The `keys` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-keys] + +[tr35-element-keys]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-keys + diff --git a/developer/ldml/reference/layer.md b/developer/ldml/reference/layer.md index 01f3e5cb7..0c6b74117 100644 --- a/developer/ldml/reference/layer.md +++ b/developer/ldml/reference/layer.md @@ -38,3 +38,10 @@ The `layer` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-layer] + +[tr35-element-layer]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-layer + diff --git a/developer/ldml/reference/layers.md b/developer/ldml/reference/layers.md index 8c07255dc..bb100c0ec 100644 --- a/developer/ldml/reference/layers.md +++ b/developer/ldml/reference/layers.md @@ -38,3 +38,10 @@ The `layers` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-layers] + +[tr35-element-layers]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-layers + diff --git a/developer/ldml/reference/locale.md b/developer/ldml/reference/locale.md index 14b1a9202..20b661721 100644 --- a/developer/ldml/reference/locale.md +++ b/developer/ldml/reference/locale.md @@ -38,3 +38,10 @@ The `locale` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-locale] + +[tr35-element-locale]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-locale + diff --git a/developer/ldml/reference/locales.md b/developer/ldml/reference/locales.md index c6bae41a9..6df106c96 100644 --- a/developer/ldml/reference/locales.md +++ b/developer/ldml/reference/locales.md @@ -38,3 +38,10 @@ The `locales` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-locales] + +[tr35-element-locales]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-locales + diff --git a/developer/ldml/reference/reorder.md b/developer/ldml/reference/reorder.md index 3a05bcc4d..552ed0ed8 100644 --- a/developer/ldml/reference/reorder.md +++ b/developer/ldml/reference/reorder.md @@ -38,3 +38,10 @@ The `reorder` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-reorder] + +[tr35-element-reorder]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-reorder + diff --git a/developer/ldml/reference/row.md b/developer/ldml/reference/row.md index 01ba78302..f4c331dba 100644 --- a/developer/ldml/reference/row.md +++ b/developer/ldml/reference/row.md @@ -38,3 +38,10 @@ The `row` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-row] + +[tr35-element-row]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-row + diff --git a/developer/ldml/reference/scanCodes.md b/developer/ldml/reference/scanCodes.md index 24b0ef8d3..c765fe33b 100644 --- a/developer/ldml/reference/scanCodes.md +++ b/developer/ldml/reference/scanCodes.md @@ -38,3 +38,10 @@ The `scanCodes` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-scanCodes] + +[tr35-element-scanCodes]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-scancodes + diff --git a/developer/ldml/reference/set.md b/developer/ldml/reference/set.md index 32ec49e12..b299c4010 100644 --- a/developer/ldml/reference/set.md +++ b/developer/ldml/reference/set.md @@ -38,3 +38,10 @@ The `set` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-set] + +[tr35-element-set]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-set + diff --git a/developer/ldml/reference/settings.md b/developer/ldml/reference/settings.md index bac1cfd39..8797eb9fb 100644 --- a/developer/ldml/reference/settings.md +++ b/developer/ldml/reference/settings.md @@ -38,3 +38,10 @@ The `settings` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-settings] + +[tr35-element-settings]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-settings + diff --git a/developer/ldml/reference/special.md b/developer/ldml/reference/special.md index 3ebdcd8c2..4f99ec8b6 100644 --- a/developer/ldml/reference/special.md +++ b/developer/ldml/reference/special.md @@ -38,3 +38,10 @@ The `special` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35][tr35-element-special] + +[tr35-element-special]: https://www.unicode.org/reports/tr35/tr35.html#special + diff --git a/developer/ldml/reference/string.md b/developer/ldml/reference/string.md index 758d777dd..084dd39bc 100644 --- a/developer/ldml/reference/string.md +++ b/developer/ldml/reference/string.md @@ -38,3 +38,10 @@ The `string` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-string] + +[tr35-element-string]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-string + diff --git a/developer/ldml/reference/transform.md b/developer/ldml/reference/transform.md index 225aa0263..c1a399d25 100644 --- a/developer/ldml/reference/transform.md +++ b/developer/ldml/reference/transform.md @@ -38,3 +38,10 @@ The `transform` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-transform] + +[tr35-element-transform]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-transform + diff --git a/developer/ldml/reference/transformGroup.md b/developer/ldml/reference/transformGroup.md index a2e339b29..234cc92b6 100644 --- a/developer/ldml/reference/transformGroup.md +++ b/developer/ldml/reference/transformGroup.md @@ -38,3 +38,10 @@ The `transformGroup` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-transformGroup] + +[tr35-element-transformGroup]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-transformgroup + diff --git a/developer/ldml/reference/transforms.md b/developer/ldml/reference/transforms.md index 785868c09..261d38b97 100644 --- a/developer/ldml/reference/transforms.md +++ b/developer/ldml/reference/transforms.md @@ -38,3 +38,10 @@ The `transforms` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-transforms] + +[tr35-element-transforms]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-transforms + diff --git a/developer/ldml/reference/uset.md b/developer/ldml/reference/uset.md index a5d1e2efd..e112babc5 100644 --- a/developer/ldml/reference/uset.md +++ b/developer/ldml/reference/uset.md @@ -38,3 +38,10 @@ The `uset` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-uset] + +[tr35-element-uset]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-uset + diff --git a/developer/ldml/reference/variables.md b/developer/ldml/reference/variables.md index 0919c073a..aac5ab918 100644 --- a/developer/ldml/reference/variables.md +++ b/developer/ldml/reference/variables.md @@ -38,3 +38,10 @@ The `variables` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-variables] + +[tr35-element-variables]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-variables + diff --git a/developer/ldml/reference/version.md b/developer/ldml/reference/version.md index 300fc4e0b..76c0f7d10 100644 --- a/developer/ldml/reference/version.md +++ b/developer/ldml/reference/version.md @@ -38,3 +38,10 @@ The `version` element was added in LDML v46 + +## See Also + +- LDML Specification: [`` in UTS#35 Part 7][tr35-element-version] + +[tr35-element-version]: https://www.unicode.org/reports/tr35/tr35-keyboards.html#element-version +