📄️ Add context
Sometimes you need to add some context to get the proper translation. For example, Retour in French could mean Return or Back, depending on the context. Or even Back could mean a back button or my back, who knows ?
📄️ Force temporary translation
Translations are automatically made with AI. AI is very clever, but sometimes is less clever than you, and YOU know which translation suits for a specific case.
📄️ Replace values
To replace generic values, you use the replace prop/parameter.
📄️ Namespaces
A namespace partitions a project's translations so a client fetches and stores only the slice it actually renders, instead of the whole project. This is the fix for the browser storage quota error (Setting the value of 'i18n-keyless-translations' exceeded the quota) and it cuts the amount of data each screen downloads.
📄️ Debug
Sometimes there is unexpected behavior, there is a debug prop to try and detect wtf is going on.
📄️ Translate user content (UGC)
Your UI strings are written in your primary language — but your users write in their language. A comment, a review, a bio: that's user generated content (UGC), and it can arrive in any of the supported languages.
📄️ Blog posts & long content
A blog post is not forbidden. It is simply not one translation — it is one translation per block.
📄️ Upgrading to v3
v3 takes i18n-keyless from 19 languages to 48, and lets you write your app in any of them.
📄️ Reliability & scale
You are about to make every string in your app depend on a translation service. Here is
📄️ Proxy through your backend
By default your apps talk to https://api.i18n-keyless.com directly, and the
📄️ Operate it from your agent (MCP)
i18n-keyless ships an MCP server. Your agent — Claude Code, Cursor, Windsurf, Codex, or a
🗃️ React specific
3 items