# Cldr Messages v2.0.0 - Table of Contents Localized and internationalized message formatting using Unicode MessageFormat 2 (MF2) and legacy ICU Message Format, integrated with the ex_cldr family supporting over 700 locales ## Pages - [Cldr Messages](readme.md) - [LICENSE](license.md) - [Changelog](changelog.md) - [MessageFormat 2 Syntax and Usage](message_format_v2.md) - [ICU Message Format Syntax and Usage](message_format_v1.md) ## Modules - [Cldr.Formatter.Plugin](Cldr.Formatter.Plugin.md): A CLDR/ICU message formatter for mix format plugin. - [Cldr.Gettext.Interpolation](Cldr.Gettext.Interpolation.md): As of [Gettext 0.19](https://hex.pm/packages/gettext/0.19.0), `Gettext` supports user-defined [interpolation modules](https://hexdocs.pm/gettext/Gettext.html#module-backend-configuration). This makes it easy to combine the power of ICU message formats with the broad `gettext` ecosystem and the inbuilt support for `gettext` in [Phoenix](https://hex.pm/packages/phoenix). - [Cldr.Gettext.Interpolation.V2](Cldr.Gettext.Interpolation.V2.md): Gettext interpolation module that supports both ICU MessageFormat v1 and MessageFormat 2 (MF2) messages. - [Cldr.Message](Cldr.Message.md): Implements the [ICU Message Format](http://userguide.icu-project.org/formatparse/messages) with functions to parse and interpolate messages. - [Cldr.Message.Backend](Cldr.Message.Backend.md) - [Cldr.Message.Sigil](Cldr.Message.Sigil.md): Implements sigil `~M` to canonicalize an ICU message. - [Cldr.Message.V1.Interpreter](Cldr.Message.V1.Interpreter.md) - [Cldr.Message.V1.Parser](Cldr.Message.V1.Parser.md): Implements a parser for the [ICU Message format](http://userguide.icu-project.org/formatparse/messages) - [Cldr.Message.V2.Interpreter](Cldr.Message.V2.Interpreter.md): Interprets a MessageFormat 2 AST and produces formatted output. - [Cldr.Message.V2.Nif](Cldr.Message.V2.Nif.md): NIF wrapper for ICU4C MessageFormat 2.0. - [Cldr.Message.V2.Parser](Cldr.Message.V2.Parser.md): Implements a parser for [ICU MessageFormat 2](https://unicode.org/reports/tr35/tr35-messageFormat.html). - [Cldr.Message.V2.Print](Cldr.Message.V2.Print.md): Converts a MessageFormat 2 AST back to its canonical string form. - [MyApp.Cldr](MyApp.Cldr.md): Provides the core functions to retrieve and manage the CLDR data that supports formatting and localisation. - [MyApp.Cldr.AcceptLanguage](MyApp.Cldr.AcceptLanguage.md): Parses HTTP `Accept-Language` header values as defined in [rfc2616](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4). - [MyApp.Cldr.Calendar](MyApp.Cldr.Calendar.md): Data functions to retrieve localised calendar information. - [MyApp.Cldr.Currency](MyApp.Cldr.Currency.md) - [MyApp.Cldr.Date](MyApp.Cldr.Date.md) - [MyApp.Cldr.Date.Interval](MyApp.Cldr.Date.Interval.md): Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format. - [MyApp.Cldr.DateTime](MyApp.Cldr.DateTime.md) - [MyApp.Cldr.DateTime.Format](MyApp.Cldr.DateTime.Format.md): Manages the Date, TIme and DateTime formats defined by CLDR. - [MyApp.Cldr.DateTime.Formatter](MyApp.Cldr.DateTime.Formatter.md): Implements the compilation and execution of date, time and datetime formats. - [MyApp.Cldr.DateTime.Interval](MyApp.Cldr.DateTime.Interval.md): Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format. - [MyApp.Cldr.DateTime.Relative](MyApp.Cldr.DateTime.Relative.md) - [MyApp.Cldr.Interval](MyApp.Cldr.Interval.md): Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format. - [MyApp.Cldr.List](MyApp.Cldr.List.md): Cldr backend module that formats lists. - [MyApp.Cldr.Locale](MyApp.Cldr.Locale.md): Backend module that provides functions to define new locales and display human-readable locale names for presentation purposes. - [MyApp.Cldr.Message](MyApp.Cldr.Message.md): Supports the CLDR Message format. - [MyApp.Cldr.Number](MyApp.Cldr.Number.md): Formats numbers and currencies based upon CLDR's decimal formats specification. - [MyApp.Cldr.Number.Cardinal](MyApp.Cldr.Number.Cardinal.md): Implements cardinal plural rules for numbers. - [MyApp.Cldr.Number.Format](MyApp.Cldr.Number.Format.md): Functions to manage the collection of number patterns defined in Cldr. - [MyApp.Cldr.Number.Formatter.Decimal](MyApp.Cldr.Number.Formatter.Decimal.md) - [MyApp.Cldr.Number.Ordinal](MyApp.Cldr.Number.Ordinal.md): Implements ordinal plural rules for numbers. - [MyApp.Cldr.Number.PluralRule.Range](MyApp.Cldr.Number.PluralRule.Range.md): Implements plural rules for ranges - [MyApp.Cldr.Number.Symbol](MyApp.Cldr.Number.Symbol.md) - [MyApp.Cldr.Number.System](MyApp.Cldr.Number.System.md) - [MyApp.Cldr.Number.Transliterate](MyApp.Cldr.Number.Transliterate.md): Transliteration for digits and separators. - [MyApp.Cldr.Rbnf.NumberSystem](MyApp.Cldr.Rbnf.NumberSystem.md): Functions to implement the number system rule-based-number-format rules of CLDR. - [MyApp.Cldr.Rbnf.Ordinal](MyApp.Cldr.Rbnf.Ordinal.md): Functions to implement the ordinal rule-based-number-format rules of CLDR. - [MyApp.Cldr.Rbnf.Spellout](MyApp.Cldr.Rbnf.Spellout.md): Functions to implement the spellout rule-based-number-format rules of CLDR. - [MyApp.Cldr.Time](MyApp.Cldr.Time.md) - [MyApp.Cldr.Time.Interval](MyApp.Cldr.Time.Interval.md): Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format. - [MyApp.Cldr.Unit](MyApp.Cldr.Unit.md): Supports the CLDR Units definitions which provide for the localization of many unit types. - [MyApp.Gettext](MyApp.Gettext.md) - [MyApp.Gettext.Interpolation](MyApp.Gettext.Interpolation.md) - [MyApp.Gettext.Interpolation.V2](MyApp.Gettext.Interpolation.V2.md) - [MyApp.Gettext.Interpolation2](MyApp.Gettext.Interpolation2.md) - [MyApp.Gettext.Use](MyApp.Gettext.Use.md) - [MyApp.Gettext.V2](MyApp.Gettext.V2.md) - [MyApp.Gettext.V2.Use](MyApp.Gettext.V2.Use.md) - [MyApp2.Cldr](MyApp2.Cldr.md): Provides the core functions to retrieve and manage the CLDR data that supports formatting and localisation. - [MyApp2.Cldr.AcceptLanguage](MyApp2.Cldr.AcceptLanguage.md): Parses HTTP `Accept-Language` header values as defined in [rfc2616](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4). - [MyApp2.Cldr.Calendar](MyApp2.Cldr.Calendar.md): Data functions to retrieve localised calendar information. - [MyApp2.Cldr.Currency](MyApp2.Cldr.Currency.md) - [MyApp2.Cldr.Date](MyApp2.Cldr.Date.md) - [MyApp2.Cldr.Date.Interval](MyApp2.Cldr.Date.Interval.md): Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format. - [MyApp2.Cldr.DateTime](MyApp2.Cldr.DateTime.md) - [MyApp2.Cldr.DateTime.Format](MyApp2.Cldr.DateTime.Format.md): Manages the Date, TIme and DateTime formats defined by CLDR. - [MyApp2.Cldr.DateTime.Formatter](MyApp2.Cldr.DateTime.Formatter.md): Implements the compilation and execution of date, time and datetime formats. - [MyApp2.Cldr.DateTime.Interval](MyApp2.Cldr.DateTime.Interval.md): Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format. - [MyApp2.Cldr.DateTime.Relative](MyApp2.Cldr.DateTime.Relative.md) - [MyApp2.Cldr.Interval](MyApp2.Cldr.Interval.md): Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format. - [MyApp2.Cldr.List](MyApp2.Cldr.List.md): Cldr backend module that formats lists. - [MyApp2.Cldr.Locale](MyApp2.Cldr.Locale.md): Backend module that provides functions to define new locales and display human-readable locale names for presentation purposes. - [MyApp2.Cldr.Message](MyApp2.Cldr.Message.md): Supports the CLDR Message format. - [MyApp2.Cldr.Number](MyApp2.Cldr.Number.md): Formats numbers and currencies based upon CLDR's decimal formats specification. - [MyApp2.Cldr.Number.Cardinal](MyApp2.Cldr.Number.Cardinal.md): Implements cardinal plural rules for numbers. - [MyApp2.Cldr.Number.Format](MyApp2.Cldr.Number.Format.md): Functions to manage the collection of number patterns defined in Cldr. - [MyApp2.Cldr.Number.Formatter.Decimal](MyApp2.Cldr.Number.Formatter.Decimal.md) - [MyApp2.Cldr.Number.Ordinal](MyApp2.Cldr.Number.Ordinal.md): Implements ordinal plural rules for numbers. - [MyApp2.Cldr.Number.PluralRule.Range](MyApp2.Cldr.Number.PluralRule.Range.md): Implements plural rules for ranges - [MyApp2.Cldr.Number.Symbol](MyApp2.Cldr.Number.Symbol.md) - [MyApp2.Cldr.Number.System](MyApp2.Cldr.Number.System.md) - [MyApp2.Cldr.Number.Transliterate](MyApp2.Cldr.Number.Transliterate.md): Transliteration for digits and separators. - [MyApp2.Cldr.Rbnf.NumberSystem](MyApp2.Cldr.Rbnf.NumberSystem.md): Functions to implement the number system rule-based-number-format rules of CLDR. - [MyApp2.Cldr.Rbnf.Ordinal](MyApp2.Cldr.Rbnf.Ordinal.md): Functions to implement the ordinal rule-based-number-format rules of CLDR. - [MyApp2.Cldr.Rbnf.Spellout](MyApp2.Cldr.Rbnf.Spellout.md): Functions to implement the spellout rule-based-number-format rules of CLDR. - [MyApp2.Cldr.Time](MyApp2.Cldr.Time.md) - [MyApp2.Cldr.Time.Interval](MyApp2.Cldr.Time.Interval.md): Interval formats allow for software to format intervals like "Jan 10-12, 2008" as a shorter and more natural format than "Jan 10, 2008 - Jan 12, 2008". They are designed to take a start and end date, time or datetime plus a formatting pattern and use that information to produce a localized format. - [MyApp2.Cldr.Unit](MyApp2.Cldr.Unit.md): Supports the CLDR Units definitions which provide for the localization of many unit types. - [MyApp2.Gettext](MyApp2.Gettext.md) - Exceptions - [Cldr.Message.BindError](Cldr.Message.BindError.md): Exception raised when interpreting a message and a binding is missing - [Cldr.Message.FormatError](Cldr.Message.FormatError.md): Exception raised when a value cannot be formatted by the requested MF2 function due to an incompatible type. - [Cldr.Message.ParseError](Cldr.Message.ParseError.md): Exception raised when parsing an ICU message format - [Cldr.Message.PositionalArgsNotPermitted](Cldr.Message.PositionalArgsNotPermitted.md): Exception raised when parsing an ICU message format and positional arguments are not permitted