8 ms·
Show HN: 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 https://github.com/webdecoy/ai-i18n
Happy to answer questions about the ICU handling, prompt design, or anything else.
- cranberryturkey 8mo agoCrazy when I worked at PayPal back in 2004 it was a very manual process and they had a team dedicated to translation how times have changed