From fc7b7f94441caac2e79fec5a0bcbff395cddba22 Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Mon, 31 Mar 2025 11:13:57 -0700 Subject: [PATCH 01/10] Rebranding to Unicode MessageFormat Rebranding the specification as _Unicode MessageFormat_ in the wake of v47's stable release. Fixes #1058 --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8b835d2fd6..f428626bb3 100644 --- a/README.md +++ b/README.md @@ -12,13 +12,16 @@ while providing a framework for increasingly complex features, such as gender, i Our goal is to provide an interoperable syntax, message data model, and associated processing that is capable of being adopted by any presentation framework or programming environement. -## MessageFormat 2 +## The Unicode MessageFormat Standard -The [MessageFormat 2 specification](./spec/) has been approved by the CLDR Technical Committee -and is now a stable part of -the [LDML](https://www.unicode.org/reports/tr35/) specification. +The [Unicode MessageFormat Standard](./spec/) has been approved by the CLDR Technical Committee. +It is now a stable part of CLDR. +The normative version of the specification is a part of [TR35](https://www.unicode.org/reports/tr35/). It is now recommended for implementation and adoption. +**Unicode MessageFormat** is sometimes referred to as _MessageFormat 2.0_, +since it replaces earlier message formatting capabilities built into ICU. + Some _default functions_ and items in the `u:` namespace are still in Draft status. Feedback from users and implementers might result in changes to these capabilities. From 9fce7ed150120da195ccb11cce5cc262aeec8510 Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Mon, 31 Mar 2025 11:17:18 -0700 Subject: [PATCH 02/10] Update README.md --- spec/README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/spec/README.md b/spec/README.md index c32a74ad5f..76841fccde 100644 --- a/spec/README.md +++ b/spec/README.md @@ -1,13 +1,13 @@ -# MessageFormat 2.0 Specification +# The Unicode MessageFormat Standard Specification > [!IMPORTANT] > This page is not a part of the specification and is not normative. -## What is MessageFormat 2? +## What is Unicode MessageFormat? Software needs to construct messages that incorporate various pieces of information. The complexities of the world's languages make this challenging. -MessageFormat 2 defines the data model, syntax, processing, and conformance requirements +_Unicode MessageFormat_ defines the data model, syntax, processing, and conformance requirements for the next generation of dynamic messages. It is intended for adoption by programming languages, software libraries, and software localization tooling. It enables the integration of internationalization APIs (such as date or number formats), @@ -17,6 +17,10 @@ or message selection logic that add on to the core capabilities. Its data model provides a means of representing existing syntaxes, thus enabling gradual adoption by users of older formatting systems. +During its development, _Unicode MessageFormat_ was known as "MessageFormat 2.0", +since the specification was intended to replace earlier message formatting capabilities +developed in the [ICU](https://icu.unicode.org) project. + The goal is to allow developers and translators to create natural-sounding, grammatically-correct, user interfaces that can appear in any language and support the needs of diverse cultures. From f36e8eb2f6b2b171a06267ba69a290ce92d3a073 Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Mon, 31 Mar 2025 11:18:44 -0700 Subject: [PATCH 03/10] Update intro.md --- spec/intro.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/spec/intro.md b/spec/intro.md index 305e681a13..6e6144b9fe 100644 --- a/spec/intro.md +++ b/spec/intro.md @@ -1,4 +1,4 @@ -# MessageFormat 2.0 Specification +# The Unicode MessageFormat Standard Specification ## Table of Contents @@ -46,8 +46,7 @@ existing internationalization APIs (such as the date and number formats shown ab grammatical matching (such as plurals or genders), as well as user-defined formats and message selectors. -The document is the successor to ICU MessageFormat, -henceforth called ICU MessageFormat 1.0. +The document is the successor to ICU MessageFormat. ### Conformance From 8949e4172abc9d7c85055132a4d031cda9a8d757 Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Mon, 31 Mar 2025 11:23:05 -0700 Subject: [PATCH 04/10] Update (data model) README.md --- spec/data-model/README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/spec/data-model/README.md b/spec/data-model/README.md index 20ab3b3829..c164833c4e 100644 --- a/spec/data-model/README.md +++ b/spec/data-model/README.md @@ -1,6 +1,6 @@ ## Interchange Data Model -This section defines a data model representation of MessageFormat 2 _messages_. +This section defines a data model representation of Unicode MessageFormat _messages_. Implementations are not required to use this data model for their internal representation of messages. Neither are they required to provide an interface that accepts or produces @@ -8,8 +8,8 @@ representations of this data model. The major reason this specification provides a data model is to allow interchange of the logical representation of a _message_ between different implementations. -This includes mapping legacy formatting syntaxes (such as MessageFormat 1) -to a MessageFormat 2 implementation. +This includes mapping legacy formatting syntaxes (such as ICU MessageFormat) +to a Unicode MessageFormat implementation. Another use would be in converting to or from translation formats without the need to continually parse and serialize all or part of a message. @@ -17,17 +17,17 @@ Implementations that expose APIs supporting the production, consumption, or tran _message_ as a data structure are encouraged to use this data model. This data model provides these capabilities: -- any MessageFormat 2.0 message can be parsed into this representation +- any Unicode MessageFormat _message_ can be parsed into this representation - this data model representation can be serialized as a well-formed -MessageFormat 2.0 message -- parsing a MessageFormat 2.0 message into a data model representation + Unicode MessageFormat _message_ +- parsing a Unicode MessageFormat _message_ into a data model representation and then serializing it results in an equivalently functional message This data model might also be used to: -- parse a non-MessageFormat 2 message into a data model - (and therefore re-serialize it as MessageFormat 2). +- parse non Unicode MessageFormat messages into a data model + (and therefore re-serialize it as Unicode MessageFormat). Note that this depends on compatibility between the two syntaxes. -- re-serialize a MessageFormat 2 message into some other format +- re-serialize a Unicode MessageFormat _message_ into some other format including (but not limited to) other formatting syntaxes or translation formats. @@ -43,7 +43,7 @@ declarations, options, and attributes to be optional rather than required proper > [!IMPORTANT] > The data model uses the field name `name` to denote various interface identifiers. -> In the MessageFormat 2 [syntax](/spec/syntax.md), the source for these `name` fields +> In the Unicode MessageFormat [syntax](/spec/syntax.md), the source for these `name` fields > sometimes uses the production `identifier`. > This happens when the named item, such as a _function_, supports namespacing. @@ -100,7 +100,7 @@ interface LocalDeclaration { In a `SelectMessage`, the `keys` and `value` of each _variant_ are represented as an array of `Variant`. For the `CatchallKey`, a string `value` may be provided to retain an identifier. -This is always `'*'` in MessageFormat 2 syntax, but may vary in other formats. +This is always `'*'` in the Unicode MessageFormat syntax, but may vary in other formats. ```ts interface Variant { From 656a05751f3ef274ceb63417b6e336048eb038c2 Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Mon, 31 Mar 2025 11:23:59 -0700 Subject: [PATCH 05/10] Update appendices.md --- spec/appendices.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/appendices.md b/spec/appendices.md index 37c610c094..d2112af8df 100644 --- a/spec/appendices.md +++ b/spec/appendices.md @@ -2,7 +2,7 @@ ### Security Considerations -MessageFormat _patterns_ are meant to allow a _message_ to include any string value +Unicode MessageFormat _patterns_ are meant to allow a _message_ to include any string value which users might normally wish to use in their environment. Programming languages and other environments vary in what characters are permitted to appear in a valid string. @@ -45,7 +45,7 @@ In addition, end-users need to be aware of the risks involved. ### Acknowledgements -Special thanks to the following people for their contributions to making MessageFormat 2.0. +Special thanks to the following people for their contributions to making the Unicode MessageFormat Standard. The following people contributed to our github repo and are listed in order by contribution size: Addison Phillips, From 8630a80364c4027f3df95342ffd877c6da6c5bdd Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Mon, 31 Mar 2025 14:42:31 -0700 Subject: [PATCH 06/10] Address comment --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f428626bb3..fc9c099ea4 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,11 @@ capable of being adopted by any presentation framework or programming environeme ## The Unicode MessageFormat Standard -The [Unicode MessageFormat Standard](./spec/) has been approved by the CLDR Technical Committee. -It is now a stable part of CLDR. -The normative version of the specification is a part of [TR35](https://www.unicode.org/reports/tr35/). -It is now recommended for implementation and adoption. +The [Unicode MessageFormat Standard](./spec/) is a stable part of CLDR. +It was approved by the CLDR Technical Committee +and is recommended for implementation and adoption. +The normative version of the specification is published as a part of [TR35](https://www.unicode.org/reports/tr35/). +This repository contains the editor's copy. **Unicode MessageFormat** is sometimes referred to as _MessageFormat 2.0_, since it replaces earlier message formatting capabilities built into ICU. From dc0adb07cc3c9299e2db209e13291b9f27b47744 Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Mon, 31 Mar 2025 14:44:20 -0700 Subject: [PATCH 07/10] Address comments --- spec/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/README.md b/spec/README.md index 76841fccde..c825adfefc 100644 --- a/spec/README.md +++ b/spec/README.md @@ -1,4 +1,4 @@ -# The Unicode MessageFormat Standard Specification +# The Unicode MessageFormat Standard > [!IMPORTANT] > This page is not a part of the specification and is not normative. @@ -18,8 +18,8 @@ Its data model provides a means of representing existing syntaxes, thus enabling gradual adoption by users of older formatting systems. During its development, _Unicode MessageFormat_ was known as "MessageFormat 2.0", -since the specification was intended to replace earlier message formatting capabilities -developed in the [ICU](https://icu.unicode.org) project. +since the specification supersedes earlier message formatting capabilities +such as those developed in the [ICU](https://icu.unicode.org) project. The goal is to allow developers and translators to create natural-sounding, grammatically-correct, user interfaces that can appear in any language and support the needs of diverse cultures. From f790db750a155879530add679eb755c2f84c019c Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Tue, 1 Apr 2025 07:02:18 -0700 Subject: [PATCH 08/10] Update datetime.md --- spec/functions/datetime.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/functions/datetime.md b/spec/functions/datetime.md index 827bb72994..9fb2917055 100644 --- a/spec/functions/datetime.md +++ b/spec/functions/datetime.md @@ -234,7 +234,7 @@ When the offset is not present, implementations SHOULD use a floating time type For more information, see [Working with Timezones](https://w3c.github.io/timezone). > [!IMPORTANT] -> The [ABNF](/spec/message.abnf) and [syntax](/spec/syntax.md) of MF2 +> The [ABNF](/spec/message.abnf) and [syntax](/spec/syntax.md) of Unicode MessageFormat > do not formally define date/time literals. > This means that a _message_ can be syntactically valid but produce > a _Bad Operand_ error at runtime. From d6b644380fcc82115b72f5e36ef8d51330ec7daf Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Tue, 1 Apr 2025 07:03:26 -0700 Subject: [PATCH 09/10] Update tests.schema.json --- test/schemas/v0/tests.schema.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/schemas/v0/tests.schema.json b/test/schemas/v0/tests.schema.json index e738e2247f..9b03dcf511 100644 --- a/test/schemas/v0/tests.schema.json +++ b/test/schemas/v0/tests.schema.json @@ -1,8 +1,8 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/unicode-org/message-format-wg/main/test/schemas/v0/tests.schema.json", - "title": "MessageFormat 2 data-driven tests", - "description": "The main schema for MessageFormat 2 test data.", + "title": "Unicode MessageFormat data-driven tests", + "description": "The main schema for Unicode MessageFormat test data.", "type": "object", "additionalProperties": false, "required": [ From 23d906ffdfe961ded0dc3abff68ccdadae404d1e Mon Sep 17 00:00:00 2001 From: Addison Phillips Date: Tue, 1 Apr 2025 07:45:57 -0700 Subject: [PATCH 10/10] Update tests.schema.json --- test/schemas/v0/tests.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/schemas/v0/tests.schema.json b/test/schemas/v0/tests.schema.json index 9b03dcf511..cf8e821947 100644 --- a/test/schemas/v0/tests.schema.json +++ b/test/schemas/v0/tests.schema.json @@ -185,7 +185,7 @@ "type": "string" }, "src": { - "description": "The MF2 syntax source.", + "description": "The message source in the Unicode MessageFormat syntax.", "type": "string" }, "bidiIsolation": {