g18n-dev

A small development-time generator for g18n webpage translations.

Package Version Hex Docs

Installation

Add the runtime package and the development generator:

gleam add g18n
gleam add --dev g18n_dev

Translation files

Place one JSON file per language in your application’s translation directory:

src/<project>/translations/
├── en.json
├── es.json
└── fr.json

The filename identifies the language but has no runtime semantics. g18n does not apply locale or language rules.

Each file may use flat dotted keys:

{
  "page.title": "Welcome",
  "page.greeting": "Hello {name}!"
}

Or nested objects:

{
  "page": {
    "title": "Welcome",
    "greeting": "Hello {name}!"
  }
}

Both formats may be used with the same command.

Generate the module

gleam run -m g18n/dev generate

The generator writes src/<project>/translations.gleam. For en.json, it creates:

It also creates:

Use the generated module directly in a webpage:

import g18n
import my_app/translations

let translator = translations.en_translator()
g18n.translate(translator, "page.title")

Your application chooses the generated translator. The generator does not parse locales, negotiate languages, apply plural rules, or add browser runtime code.

Commands

generate  Generate the translation module from every JSON file
help      Show command help

License

MIT

Search Document