Alternatives
Products that do what Local, In-Browser i18n Translations does
Hey HN, This idea came to me after using ChatGPT to translate my i18n files. It worked well, but it was inconvenient having to specify each language I wanted to be output. Not to mention the token usage. So, I built this using transformers.js alongside the Xenova/nllb-200-distilled-600M model to enable in-browser translations. There is no server involved with the translation functionality. The only backend-related code running is authentication to enable a few premium features. Would love to know your thoughts :) Cody
- 1

- 2

- 3

- 4

- 5

- 6

- 7

- 8

- 9

- 10

- 11

- 12

- 13AS
I built this because I was frustrated with how messy translation files get as projects scale. Most i18n solutions force you to manage big JSON dictionaries, spread across multiple files, and then manually wire everything into your UI. It quickly becomes hard to keep things organized, especially in component-heavy apps. This approach is component-first i18n: translations live close to the UI they belong to. That makes it easier to keep things organized, avoid duplication, and scale without the usual chaos of string management. It’s lightweight, works with React/Next.js, and is designed…
2025 · github.com
- 14

- 15

- 16

- 17

- 18

- 19

- 20

- 21AT
2020 · github.com
- 22

- 23TA
2020 · github.com
- 24LI
Hi HN! I'm Ilya, creator of Localit.io - a translation management system for dev teams who are tired of expensive tools like Lokalise and Phrase. The problem: Traditional TMS solutions charge $100-2000/month for basic localization features. Complex setups take hours, and many charge extra for Git integrations. What we built: - Direct GitHub/GitLab/Bitbucket integration (including Enterprise) - AI translations via ChatGPT, DeepL, Google Translate - Professional translators through Gengo - Built-in team chat with message translation - Mobile app for remote translators - Same…
2025 · localit.io
Ranked by how close each launch is in meaning, then by votes. Refine with a description →