@inlang/plugin-message-format
v2.2.0
Published
The Inlang Message Format is a simple storage plugin for the Inlang ecosystem. It allows you to store simple messages in a JSON file per language.
Downloads
10,039
Readme
The easiest "storage" plugin for inlang
The Inlang Message Format is a simple storage plugin for the Inlang ecosystem. It allows you to store simple messages in a JSON file per language.
You will have a JSON file for each of your languages. By default, they are in ./messages/{languageTag}.json
, although this can be moved (read Configuration).
The message files contain key-value pairs of the message ID and the translation. You can add variables in your message by using curly braces.
//messages/en.json
{
"$schema": "https://inlang.com/schema/inlang-message-format",
"hello_world": "Hello World!",
"greeting": "Good morning {name}!"
}
//messages/de.json
{
//the $schema key is automatically ignored
"$schema": "https://inlang.com/schema/inlang-message-format",
"hello_world": "Hallo Welt!",
"greeting": "Guten Tag {name}!"
}
Advanced formatting such as Plurals, Formatting functions, and Markup Interpolation are currently not supported, but they are planned.
Nesting is not supported and likely won't be.
## Installation
If you used an init CLI to create your Inlang project, most likely, this plugin is already installed.
Otherwise, you can install it in your Inlang Project by adding it to your "modules"
in project.inlang/settings.json
. You will also need to provide a pathPattern
for the plugin.
// project.inlang/settings.json
{
"modules" : [
+ "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@latest/dist/index.js"
],
+ "plugin.inlang.messageFormat": {
+ "pathPattern": "./messages/{languageTag}.json"
+ }
}
Configuration
Configuration happens in project.inlang/settings.json
under the "plugin.inlang.messageFormat"
key.
Moving the Message Files using pathPattern
The path pattern defines where the plugin will be looking for your message files. The default is ./messages/{languageTag}.json
. It's a relative path that's resolved from your package root.
The {languageTag}
placeholder will be replaced with the language tag for each of your languages.
// project.inlang/settings.json
{
"modules": [ ... ],
"plugin.inlang.messageFormat": {
"pathPattern": "./messages/{languageTag}.json"
}
}