forge i18n
Contributor1 min readUpdated
The translation commands: interface strings, guide texts in other languages, and English left on screen.
forge i18n checks and edits Polestar's translations: the interface strings of Polestar and the
RecorderThe optional Polestar_Recorder addon that records play (opt-in; RECORDING.md); forge record import (this PC) and forge record pull (the recording server) turn its chunks into data/recordings. (addon/<addon>/Locales/<locale>.lua), a packAn addon of guides for Polestar, built by the compiler from a folder with a pack.json (the folder is a pack too); Polestar's own is Polestar_Guides (pack id guides).'s guideOne route, written as a .guide file and compiled to Lua; its id reads like forever/alliance/human/01-elwynn-forest. texts in other languages
(<pack>/locales/<locale>/) and the English a non-English client would still show. It is the
forge-i18n crate (rust/crates/forge-i18n). Translating is the
translators' guide; this page has the commands.
| Command | What it does |
|---|---|
forge i18n status [--markdown] | every language: its status, translators and how much of it is translated |
forge i18n check [<locale>...] | fails (exit 1) on a file Lua cannot load, a stale key, a key set twice or a broken format; glossary drift only warns. CI runs it |
forge i18n sync [<locale>...] | adds the keys the code gained, commented out, and moves translations of keys it lost to the end; never rewrites a translation |
forge i18n keys | every interface key with where it is used |
forge i18n import <locale> <file.lua>... | merges translations written apart into a locale's file |
forge i18n leaks [<locale>...] | runs the addon on the client stub in each language and lists the English left on screen |
forge i18n guides sync|check|stats | a pack's texts files: write them, check them, size the work |
Every command reads the checkout above the working directory (or above the forgeThe Rust pipeline that makes the leveling routes from the installed game and the guides (each race's start zone, then one shared route per faction), writes the leveling guides and plays them through the route check (forge build, FORGE.md). binary); `--root
<dir>` names another one. `--json` prints one document; `--addon Polestar_Recorder` limits status, check, sync, keys and import to the Recorder.forge i18n --help
forge i18n status
forge i18n check
forge i18n keysThe data the commands read is in data/i18n/: the glossary (glossary/<locale>.json), the leaks
allow list (leaks-allow.json) and the names no source has in a language (leaks-baseline.json).
forge i18n leaks needs the CodexLookup's database of items, mounts, pets, recipes, NPCs, rares, quests, zones, dungeons and treasures, with where each comes from (forge data codex, the Polestar_Codex addon). and the quest database built (forge data codex,
forge data questdb); without them every scene is skipped.
The names addons are forge data names (Forge data). One subcommand still runs on the JS
tools: node tools/polestar.js i18n fit (it needs the preview renderer).