spiegel-keyman/resources/standards-data/ldml-keyboards
Marc Durdin d61e5bbb18 refactor(core): clean up unit tests
Consolidate test frameworks and cleanup, including:
* all tests use Google Test
* reorganize folders, esp. kmnkbd -> api
* move all api tests into api folder
* replace references to test_assert or test_color with gtest equivalents
* leverage gtest patterns to remove boilerplate code
* dramatically simplify meson.build files and localize variables
* move shared helper code into helpers/ folder
* make test names unique and add gtest protocol for reporting back to
  teamcity

Fixes:
* CLDR test keyboards had invalid unicodeset escapes (needs to be raised
  upstream also) - was not failing tests because files were not loading
  but returning success

Test-bot: skip
2026-04-28 12:17:44 +02:00
..
46 refactor(core): clean up unit tests 2026-04-28 12:17:44 +02:00
fetch-latest-cldr.sh maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
fixup-schema.js chore(resources, developer,core): CLDR 46 and workaround 2025-01-30 15:41:34 -06:00
readme.md chore(resources): prepare scripts for updating CLDR from latest v45 2024-04-19 17:25:21 -05:00
unicode-license.txt chore(resources): ldml update out of techpreview 🙀 2024-03-02 22:40:38 -06:00
verify-version.mjs chore(resources): prepare scripts for updating CLDR from latest v45 2024-04-19 17:25:21 -05:00

ldml-keyboards

Data is versioned, so each directory has its version such as 45.

How to Update

  • Checkout CLDR, preferably a release version, somewhere such as /src/cldr
  • run fetch-latest-cldr.sh 45 /src/cldr (where '45' is the CLDR version)
  • check results, run tests, check in and open a PR

Data Format

Each directory contains:

  • ldmlKeyboard3.dtd - the DTD file

  • ldmlKeyboard3.xsd - the XSD file, automatically converted from the DTD using Visual Studio, hand tweaked as necessary

  • ldml-keyboard3.schema.json - the JSON schema file, automatically converted from the XSD using xsd2json (https://github.com/Mermade/jgeXml), hand tweaked as necessary:

    • change toplevel "id" to "$id"
    • add "type": "object" to /keyboard
    • change /keyboard/keys/key type to "array"
  • imports/ - the importable data files (TODO-LDML)

License