This document contains the charter for the MessageFormat Working Group (MFWG) and informs decisions about the scope and priority of its efforts.
A dynamic message string is a string whose content changes due to the value of or insertion of some data value or values.
The Unicode MessageFormat Standard is an industry standard for the representation of localizable dynamic message strings.
The MessageFormat Working Group maintains and extends the Unicode MessageFormat Standard, provides documentation; encourages implementation, including the development of tools and best practices; manages default and Unicode-defined function sets; and provides for interoperability with other standards.
The MessageFormat Working Group is a working group the CLDR-TC.
- Encourage adoption of Unicode MessageFormat as measured by developing [messageformat.unicode.org] and other appropriate materials to include a user guide, MF1 migration guide, implementation support, and usage materials while maintaining a high bar as a model for other Unicode websites.
- Support a determination there are at least ### additional interoperable implementations.
- Support migration and adoption by moving all functions and options necessary to match the features of ICU MessageFormat ("MF1") to Stable.
- Support migration and adoption by making significant additions to the default function set to support additional use cases.
- Develop a machine-readable function description format or syntax to support the needs of implementations, including localization tools.
- Deliver as Stable all remaining functions needed to support migration from MF1
:datetime
and all date/time functions- percent formatting
- Deliver at least as Technical Preview (v49) and Stable (v50) all draft functions and options
:unit
u:id
,u:dir
, andu:locale
options
- Deliver as Technical Preview additional functions to support significant additional functionality. Such functions could include: lists, ranges, relative time, inflection.
- Deliver as Technical Preview a machine-readable function description format or syntax.
The original design goals are listed below.
-
Allow users to write messages that are both grammatically correct and can be translated in a grammatically correct manner to languages that have different requirements. For example, providing a mechanism that uses CLDR's plural rules to select between various strings to use based on a numeric input value.
-
Express formattable data, such as numbers, dates, currencies, or units, in a locale-appropriate way.
-
Represent structured data alongside translations, such as markup.
-
Be capable of localization roundtrip.
-
Enable the creation of implementations, frameworks and tools building on top of the standard, manifesting different ideas and programming paradigms, and optimized for different uses and audiences.
The original deliverables were:
-
A formal definition of the canonical data model for representing localizable dynamic message strings.
-
A formal definition of the canonical syntax for representing the data model, with well defined rules for handling text, special characters, escape sequences, whitespace, markup, as well as parsing errors.
-
A specification for a one-to-one mapping between the data model and XLIFF. Note: This deliverable was not included in the LDMLv47 release.
-
A specification for resolving messages at runtime, including runtime errors.
-
A conformance test suite for parsing and formatting messages sufficient to ensure implementations can validate conformance to the specification(s) provided.
-
A determination that there are at least two interoperable independent implementations compliant with the conformance test suite in order to demonstrate that the specification(s) are practical and meet requirements.
The following is a list of potential goals which are explicitly excluded from the scope of the MFWG.
-
Design a general interchange format for storing and transferring translations. Instead, ensure compatibility with the existing interchange formats.
-
Support all grammatical features of all languages. Instead, focus on features most commonly encountered in user interfaces, textual, graphical and spoken ones alike.
-
Create an automated engine capable of transforming parts of speech in a grammatically-correct fashion. Instead, allow interfacing with such automatic and non-automatic engines from within the data model.
-
Build a framework for localizing software. Instead, design the standard as a building block to be used by third parties to create localization frameworks.