Skip to content

Commit a5507bf

Browse files
authored
Describe registry use and conformance
Addresses my comments in #561
1 parent 0e177d1 commit a5507bf

File tree

1 file changed

+40
-3
lines changed

1 file changed

+40
-3
lines changed

spec/registry.md

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# WIP DRAFT MessageFormat 2.0 Registry
22

3-
_This document is non-normative._
4-
5-
The implementations and tooling can greatly benefit from a
3+
Implementations and tooling can greatly benefit from a
64
structured definition of formatting and matching functions available to messages at runtime.
75
The _registry_ is a mechanism for storing such declarations in a portable manner.
86

97
## Goals
108

9+
_This section is non-normative._
10+
1111
The registry provides a machine-readable description of MessageFormat 2 extensions (custom functions),
1212
in order to support the following goals and use-cases:
1313

@@ -25,8 +25,45 @@ in order to support the following goals and use-cases:
2525
- Display/edit known message metadata.
2626
- Restrict input in GUI by providing a dropdown with all viable option values.
2727

28+
## Conformance and Use
29+
30+
_This section is normative._
31+
32+
To be conformant with MessageFormat 2.0, an implementation MUST implement
33+
all of the _selectors_ and _functions_ described in the default registry,
34+
including all of the _options_ and _option_ values, _operands_ and outputs
35+
described by the default registry.
36+
37+
Implementations are not required to provide a registry nor to read or interpret
38+
a copy of this registry in order to be conformant.
39+
40+
The MessageFormat 2.0 Registry was created to describe the core set of _selectors_
41+
and _functions_, including _operands_, _options_, _option_ values, as well
42+
as expected outputs.
43+
The descriptions in this registry are intended to describe the specific required
44+
signatures for _selectors_ and _functions_ that all implementations of MessageFormat 2.0
45+
MUST implement.
46+
The goal is to ensure message interoperability between implementations,
47+
regardless of programming language or runtime environment.
48+
This ensures that developers do not have to relearn core MessageFormat syntax
49+
when moving between platforms
50+
and that translators do not need to know about the runtime environment for most
51+
selection or formatting operations.
52+
53+
The registry provides a machine-readable description of _selectors_ and _functions_
54+
suitable for tools, such as those used in translation automation, so that
55+
variant expansion and information about available _options_ and their effects
56+
are available in the translation ecosystem.
57+
To that end, implementations are strongly encouraged to provide appropriately
58+
tailored versions of the registry for consumption by tools
59+
(even if not included in software distributions)
60+
and to encourage any add-on or plug-in functionality to provide
61+
a registry to support localization tooling.
62+
2863
## Data Model
2964

65+
_This section is normative._
66+
3067
The registry contains descriptions of function signatures.
3168
[`registry.dtd`](./registry.dtd) describes its data model.
3269

0 commit comments

Comments
 (0)