LDML Support in Keyman
SIL Keyman is adding support for the LDML Keyboard specification.
Introducing the LDML Keyboard specification
LDML is the Locale Data Markup Language. It it an XML-based format specified as the Unicode Consortium’s specification UTS#35, maintained by the Common Locale Data Repository (CLDR) Technical Commitee. Part 7 of UTS#35 pertains to keyboard layouts. This specification is currently being rewritten and further developed by the CLDR Keyboard Subcommittee.
Like the Keyman Keyboard Language (
.kmn) format, 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 International. The intention is to provide a draft specification as a technical preview for public review in mid-2023, with a first release later in 2023.
<!-- Example: French AZERTY Keyboard in LDML format --> <layer modifier="shift"> <row keys="1 2 3 4 5 6 7 8 9 0 degree plus" /> <row keys="A Z E R T Y U I O P umlaut pound" /> <row keys="Q S D F G H J K L M percent micro" /> <row keys="close-angle W X C V B N question period slash section" /> <row keys="space" /> </layer>
Keyman and LDML
As was announced in the March 2022 February 2023 roadmaps, the Keyman team has been working in anticipation of LDML support in Keyman and Keyman Developer. We plan to provide initial support for the LDML technical preview version in desktop devices in the Keyman 17.0 release and some supporting tools, with Keyman Developer support and touch platforms coming in version 18.0.
The LDML support is being developed in our cross-platform Keyman Core component, which will enable a consistent feature set across all platforms including web by version 19.0, with a common code base.
Below is a screen capture showing the use of an LDML keyboard via a development version of Keyman for Linux.
Frequently Asked Questions for Keyman LDML Support
How will the LDML format be supported with Keyman?
From a technical perspective, the LDML format will be a newly supported input to the Keyman Command Line Compiler. The XML file will be compiled into a KMX compiled keyboard file, and can be used just as
.kmnfiles which are compiled to
How will the LDML format be supported with Keyman Developer?
LDML support in Keyman Developer is still in the planning stages, but is being planned for Keyman 18.0
What is the impact on existing developed keyboards in .kmn format?
None. Keyman and Keyman Developer continue to support the thousands of languages in .kmn files and the .kmn format.
Will there be a facility available to automatically convert .kmn to LDML or vice versa?
The LDML specification is designed primarily to support new keyboard layouts. At a later stage, we would like to make available software to assist developers in migrating keyboards to the new format, including tooling to compare and verify the capabilities of a .kmn versus a similar LDML keyboard definition.
I have other questions. Who should I ask?
Please direct any other questions regarding LDML to the SIL Keyman Community.