Message
messageformat2.format_message(msg, inputs=None, locale=None, *, formatters=None, selectors=None)
Format a message.
Use this function if you only need to format a message once.
Examples:
>>> message = Message("Hello, {$name}!")
>>> message.format({"name": "Alice"})
'Hello, Alice!'
>>> message = Message('''\
... .match {$count :integer}
... one {{You have one notification}}
... * {{You have {$count} notifications}}''')
>>> message.format({"count": 3}, "en")
'You have 3 notifications'
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
msg
|
str
|
The message to format. |
required |
locale
|
Locale | str | None
|
The locale in which to format the message. Defaults to the system locale. |
None
|
inputs
|
dict[str, Any] | None
|
Input variables referenced by the message. |
None
|
formatters
|
dict[str, Formatter] | None
|
Additional formatters. |
None
|
selectors
|
dict[str, Selector] | None
|
Additional selectors. |
None
|
Returns:
| Type | Description |
|---|---|
str
|
The formatted message. |
Raises:
| Type | Description |
|---|---|
ParseError
|
If the message contains a syntax error. |
DataModelError
|
If the message contains a semantic error. |
FormatError
|
If the message cannot be formatted. |
Source code in messageformat2/message.py
messageformat2.Message
Source code in messageformat2/message.py
__init__(msg)
Create a new Message object that can be formatted.
Use this class if you need to format the same message multiple times as the message is only parsed once.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
msg
|
str
|
The message. |
required |
Raises:
| Type | Description |
|---|---|
ParseError
|
If the message contains a syntax error. |
DataModelError
|
If the message contains a semantic error. |
Source code in messageformat2/message.py
format(inputs=None, locale=None, *, formatters=None, selectors=None)
Format the message.
Examples:
>>> message = Message("Hello, {$name}!")
>>> message.format({"name": "Alice"})
'Hello, Alice!'
>>> message = Message('''\
... .match {$count :integer}
... one {{You have one notification}}
... * {{You have {$count} notifications}}''')
>>> message.format({"count": 3}, "en")
'You have 3 notifications'
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
locale
|
Locale | str | None
|
The locale in which to format the message. Defaults to the system locale. |
None
|
inputs
|
dict[str, Any] | None
|
Input variables referenced by the message. |
None
|
formatters
|
dict[str, Formatter] | None
|
Additional formatters. |
None
|
selectors
|
dict[str, Selector] | None
|
Additional selectors. |
None
|
Returns:
| Type | Description |
|---|---|
str
|
The formatted message. |
Raises:
| Type | Description |
|---|---|
FormatError
|
If the message cannot be formatted. |