translate

star 1

Local multilingual translation via Ollama — 119 languages, no API key, no network, no data leaves the machine. Use when translating to/from Japanese, Chinese, Korean, French, Spanish, German, Portuguese, Russian, Arabic, or any other language. Also for localization, i18n text, and roundtrip validation. Qwen3:32b on Apple Silicon — faster and cheaper than cloud APIs.

ryanmaclean By ryanmaclean schedule Updated 4/15/2026

name: translate description: > Local multilingual translation via Ollama — 119 languages, no API key, no network, no data leaves the machine. Use when translating to/from Japanese, Chinese, Korean, French, Spanish, German, Portuguese, Russian, Arabic, or any other language. Also for localization, i18n text, and roundtrip validation. Qwen3:32b on Apple Silicon — faster and cheaper than cloud APIs.

translate — Local Translation via Ollama

Offline-first. Qwen3 via Ollama. No data leaves the machine.

Models (64GB unified memory)

Model Size Use
qwen3:32b 20GB Default — best quality
qwen3:30b 19GB MoE Fast — near-same quality
qwen3:14b 9.3GB Acceptable quality, fastest
ollama pull qwen3:32b   # one-time

Run the script

# Translate text to a target language
nu script/translate.nu "Japanese" "technical-formal" "Your text here"

# From a file
nu script/translate.nu "Japanese" "technical-formal" \
  --file /path/to/input.txt

# Round-trip validation (EN -> JP -> EN)
nu script/translate.nu "Japanese" "technical-formal" \
  "Your text" --roundtrip

Workflow checklist

Translation Progress:
- [ ] 1. Choose target language and register (see registers table below)
- [ ] 2. Run: nu script/translate.nu "Language" "register" "text"
- [ ] 3. Verify: does output read naturally? Check for register flattening.
- [ ] 4. For critical text: run --roundtrip and compare back-translation
- [ ] 5. For legal/published copy: use Qwen-MT API instead (see cjk.md)

Registers (Japanese)

Context Register
Engineering spec, PR technical-formal
Stakeholder report formal
Slack / team chat casual
Customer-facing docs polite
Legal / contract keigo

Thinking mode

  • /no_think — default, faster, use for technical docs and UI strings
  • /think — use for literary passages, ambiguous register, irony

CJK detail

For CJK-specific system prompts, register rules, honorific mapping, chengyu handling, and Korean verb ending nuances: see cjk.md

Shell escaping rule

Never interpolate text into jq strings. Always --arg + pipe via @-. The script handles this correctly. See cjk.md for the pattern.

Limitations

  • Qwen3:32b local vs Qwen-MT API: local strong, Qwen-MT better for legal/published
  • Proper nouns: verify katakana readings for obscure new names
  • No pitch accent reconstruction for TTS output
Install via CLI
npx skills add https://github.com/ryanmaclean/skills --skill translate
Repository Details
star Stars 1
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator