@eliware/translate
v2.0.0
Published
A tool for translating locale files for discord apps built on @eliware/discord
Maintainers
Readme
@eliware/translate

A CLI tool for translating Discord JSON files with OpenAI.
It supports two workflows:
- Locale translation: translate
en-US.jsoninto all other supported Discord locales in the same directory. - Command manifest translation: translate Discord application command JSON files in the current directory.
Features
- Translates
en-US.jsonto supported Discord locales - Can also process command manifest JSON files in place
- Parallel translation with a simple progress indicator
- Uses OpenAI chat completions
- Designed for use with the skeleton Discord.js app template
Requirements
- Node.js 26 or newer
- An OpenAI API key
- A
.envfile next to the repository root
Installation
cd /path/to
# Clone the repository
git clone https://github.com/eliware/translate.git
cd translate
npm install
# Copy and edit the .env file
cp .env.example .env
# Run the required validation
npm test
npm run lint
# Optional: symlink for global CLI usage
# Requires sudo/root
ln -s /path/to/translate/translate.mjs /usr/local/bin/translateSetup
Obtain an OpenAI API key and add it to your
.envfile:OPENAI_API_KEY=your_openai_api_key_hereFor locale translation, place your English source translations in
en-US.jsonin the directory you want to process.For command translation, place Discord command manifest JSON files in the directory you want to process.
Usage
Locale translation
cd /path/to/your/locales/
translateIf en-US.json exists in the current directory, the tool will:
- read
en-US.json - load
prompt.json - generate translations for all supported locales
- write files such as
fr.json,de.json, andzh-CN.jsoninto the same directory
Existing locale files are overwritten.
Command manifest translation
cd /path/to/your/commands/
translateIf en-US.json is not present, the tool will scan the current directory for .json files that look like Discord command manifests. Files must contain at least:
nameas a stringtypeas a number
Each matching file is then passed through prompt-commands.json, and the result is written back to the same file.
Supported Locales
Discord locales supported by the locale workflow include:
bg, cs, da, de, el, en-GB, es-419, es-ES, fi, fr, hi, hr, hu, id, it, ja, ko, lt, nl, no, pl, pt-BR, ro, ru, sv-SE, th, tr, uk, vi, zh-CN, zh-TW
Prompt Templates
prompt.jsonis used for locale translation.prompt-commands.jsonis used for command manifest translation.- The locale workflow replaces
{json}with the raw contents ofen-US.jsonwhen that placeholder is present. - Both workflows support
{target_locale}in prompt text.
Project Structure
src/- Main source codetests/- Test suiteprompt.json- Locale translation prompt templateprompt-commands.json- Command translation prompt templatetranslate.mjs- CLI entry point
Support
For help or questions, join the community and chat with the author:
License
MIT © 2025 Eli Sterling, eliware.org


