An Internationalization GitHub Action to Replace Crowdin with LLMs
An Internationalization GitHub Action to Replace Crowdin with LLMs
I built an open-source GitHub Action that translates i18n files using LLMs, designed as a drop-in replacement for Lokalise, Phrase, and Crowdin. The problem: TMS platforms charge per-word and per-seat, and their machine translation lacks product context. A typical SaaS with 500 strings across 9 languages costs $200-500/month. How it works: - Extracts strings from your codebase (XLIFF, JSON, PO, YAML) - Diffs against previous translations (only translates what changed) - Sends to any LLM (Claude, GPT-4, Gemini, Ollama) with your product context, glossary, and style guide - Commits translations back to your branch Key technical bits: - Structured generation for ICU message format (CLDR plural rules handled correctly - Russian 4-form, Arabic 6-form, etc.) - Hash-based caching to avoid re-translating unchanged strings - Provider-agnostic interface - swap LLMs without config changes GitHub: https://github.com/webdecoy/ai-i18n Happy to answer questions about the ICU handling, prompt design, or anything else.
Share cardActual performance
Launch Intel predictions
Analyze your own launch →Correct prediction on native model
Similar products
Asciidoctor GitHub Action
GitHub Action to find Log4j vulnerabilities
OpenHands' GitHub Action
Replace "approve" with "bless" in GitHub UI
Video Puppet GitHub Action
GitHub Action to minify container image by up to 30x
BrowserBox as Onion Service, GitHub Action
Tail.select 1.0.0 is out (replace your dropdowns now)
Topaz – replace three Azure emulators with one binary
Emojify – Replace variable identifiers with emojis