Installation#

Globetrotter is distributed as the globetrotter command-line binary.

Homebrew#

brew install --cask LuupSystems/tap/globetrotter

The tap installs a prebuilt release. Upgrade it with the normal Homebrew workflow:

brew upgrade --cask globetrotter

From crates.io#

The binary is published by the globetrotter-cli crate:

cargo install --locked globetrotter-cli

--locked uses the dependency versions recorded for the published release.

Prebuilt releases#

Release archives for supported platforms are attached to the GitHub releases. Extract the archive and put the globetrotter executable on your PATH.

From source#

git clone https://github.com/LuupSystems/globetrotter
cd globetrotter
cargo build --release --package globetrotter-cli

The binary is written to target/release/globetrotter.

Verify the installation#

globetrotter --version
globetrotter --help
$ globetrotter --help
 
Polyglot, type-safe internationalization
 
Usage: globetrotter [OPTIONS] [COMMAND]
 
Commands:
  format  Formats translation files in place
  lint    Lints translation files and reports any issues
  help    Print this message or the help of the given subcommand(s)
 
Options:
      --log <LOG_LEVEL>
          Log level. When using a more sophisticated logging setup using RUST_LOG environment variable, this option is overwritten.
 
          [env: LOG_LEVEL=]
 
      --log-format <LOG_FORMAT>
          log format (json, pretty, or pretty-compact)
 
          [env: LOG_FORMAT=]
 
      --color <COLOR_CHOICE>
          enable or disable color
 
          [env: GLOBETROTTER_COLOR=]
 
  -c, --config <CONFIG_PATHS>
          Paths to globetrotter config files or directories to search for one
 
  -i, --translation <TRANSLATIONS>
          Paths to translation files to process
 
      --engine <TEMPLATE_ENGINE>
          Template engine to use for rendering translations
 
      --strict[=<STRICT>]
          Treat warnings as errors
 
          [possible values: true, false]
 
      --check[=<CHECK_TEMPLATES>]
          Whether to validate that all templates render successfully
 
          [possible values: true, false]
 
      --absolute[=<PRINT_ABSOLUTE_PATHS>]
          Print absolute paths instead of paths relative to the common base directory
 
          [possible values: true, false]
 
      --dry-run[=<DRY_RUN>]
          Run without writing any output files
 
          [possible values: true, false]
 
      --max-keys <N>
          Process only the first `N` translation keys of each config.
 
          A debugging aid for large corpora: try a change — or the LLM judge — against a small subset of real translations before paying for a full run. Applies to linting and generation alike; the truncation is warned about, never silent.
 
      --cache-dir <DIR>
          Directory for cached data (e.g. LLM judge verdicts).
 
          Defaults to a `globetrotter` folder in the OS user cache directory (e.g. `~/.cache/globetrotter` on Linux).
 
          [env: GLOBETROTTER_CACHE_DIR=]
 
  -h, --help
          Print help (see a summary with '-h')
 
  -V, --version
          Print version

The CLI has no runtime service and does not need a database. A project only needs a YAML config and one or more TOML translation files.

Next: generate the quick-start example.