i18n-keyless compared
Prices surveyed on 2026-09-08, read on each product's pricing page on that day. Prices change, some pages show a different currency by country, and most list only the annual-billing figure. Check the linked page before you decide; every row links to it.
The two scenarios, so the numbers are comparable: an app with 1,000 source strings in 5 target languages, then 10,000 strings in 5 languages. Where a product bills words, one string is counted as 8 words: 8,000 and 80,000 source words, 40,000 and 400,000 words across the target languages.
The table
| 1,000 strings × 5 languages | 10,000 strings × 5 languages | Self-hosting | Licence | Setup | Keys | Export | |
|---|---|---|---|---|---|---|---|
| i18n-keyless, hosted (pricing) | €4 to €99 / month per project, by monthly active users (€4 up to 1,000 MAU, €9 up to 5,000, €29 up to 50,000, €99 up to 500,000). Strings and languages do not change the price. | Same: €4 to €99 / month. | — (see the next row) | SDKs MIT; server ELv2 | init with a key and the languages, wrap the strings. No files, no extraction, no CI step. | No — the source string is the lookup | JSON, every row, one click |
| i18n-keyless, self-hosted (details) | €0 for one project; €30 once for unlimited projects. Plus your server and your AI provider's bill. | Same. | Yes — the same Docker image as the hosted service, SQLite or Postgres, any AI provider | SDKs MIT; server Elastic License 2.0, source public | docker run, create the admin, paste an AI key, set API_URL in the SDK | No | JSON, every row, one click |
| Crowdin (pricing) | Pro, €45 / month: 60K hosted words, 2 private projects | Team+, €401 / month: 500K hosted words. Team (100K words, €134 / month) plus a hosted-words add-on may be cheaper; the add-on price is not shown as text. | Not found on crowdin.com; Enterprise is a cloud plan, price on request | Proprietary | Keys and locale files in the repo, the Crowdin CLI or a Git integration to sync them, a project set up on the platform | Yes | Yes, JSON and many formats |
| Lokalise (pricing) | Explorer, $144 / month billed annually: 5 projects, a cap of ten target locales, 60K processed words / year. Hosted words are unlimited on paid plans; you pay for words processed (translated, imported, updated). | Advanced, $999 / month billed annually (1M processed words / year). 400K processed words exceed Explorer's 60K base and Growth's 225K to 300K ($375 / month). Explorer can be topped up to 500K; the top-up price is not shown. | Not offered | Proprietary | Keys and files, the Lokalise CLI or a Git integration, a project on the platform | Yes | Yes, JSON and many formats |
| Phrase Strings (pricing) | $525 / month billed annually ($6,300 / year), the "Software UI/UX" plan: 15 seats, 1M managed words | Same, $525 / month: both scenarios fit in 1M managed words | Not found on phrase.com | Proprietary | Keys and files, the Phrase CLI, a project on the platform | Yes | Yes, JSON and many formats |
| Tolgee, cloud (pricing) | Team, €49 / month billed annually (€59 monthly): 2,000 keys, 4 seats, 10K machine-translation credits. Keys are counted once whatever the number of languages; the free plan stops at 500 keys. | Advanced, €499 / month billed annually (€599 monthly): 20,000 keys — or Business at €179 / month plus 5 × "extra 1,000 keys" at €5, €204 / month billed annually | See the next row | Server Apache 2.0, with an ee folder under the Tolgee Enterprise License | Keys and files, the Tolgee CLI or SDK, a project on the platform | Yes | Yes, JSON and XLIFF |
| Tolgee, self-hosted (pricing) | €0: the free self-hosted tier has the core features, up to 10 seats, machine translation with your own API keys. SSO and granular permissions need a paid licence, price on request (keys and seats). Plus your server: a Java application and Postgres. | Same. | Yes | Apache 2.0 (core) | Docker Compose with Postgres, then the same client setup as the cloud | Yes | Yes, JSON and XLIFF |
| i18next + files in the repo (GitHub) | €0 in licences. The cost is the work: a key for every string, one file per language, and somebody or something to fill them. | Same. | Nothing to host | MIT | Keys, JSON files per language, a loader, a CI step if you extract keys | Yes | The files are the export |
| i18next + locize (pricing) | Growth, $49 / month: 60K words counted across all languages (48K here, source included), a cap of ten locales, 5M CDN downloads | Enterprise, $199 / month + $140 of overage (280K extra words at $5 per 10K) = $339 / month, downloads not counted | Not offered | i18next MIT; locize proprietary | i18next keys and files, the locize backend plugin or CLI, a project on the platform | Yes | Yes, JSON and other formats |
Dollars and euros are as each page displayed them; the difference does not change any row's order. Lokalise's pricing page and its documentation disagree on the Growth plan's processed words (225K vs 300K per year); both are given.
What the others do that i18n-keyless does not
None of this is on i18n-keyless's roadmap; if you need it, take the product that has it.
- Translation memory — every one of Crowdin, Lokalise, Phrase, Tolgee and locize reuses a sentence already translated. i18n-keyless caches each string, but a new string is a new AI call, with no memory of the previous ones.
- Glossary and term base — all five. i18n-keyless has
contextper string, and nothing at project level. - In-context editing — Tolgee (alt-click a string in the running app), Crowdin, Lokalise, Phrase and locize all have an editor over the live product. i18n-keyless has a table in the dashboard, and no extension. The equivalent: take a screenshot of the screen with the wrong string and give it to an AI agent connected to the MCP server; it finds the string and overrides the translation for you.
- Screenshot context for translators — Tolgee, Crowdin, Lokalise, Phrase. Not locize, not i18n-keyless: there is no translator to show it to. A screenshot goes to your agent instead, as above.
- QA checks (placeholders, length, consistency) — all five. i18n-keyless validates the ICU plural forms it generates and nothing else.
- A translator workflow — assigning, reviewing, ordering professional translation from a vendor: all five. i18n-keyless has a per-cell "reviewed" mark and members with the same rights.
- Hand-authored ICU MessageFormat — the key-based libraries let you write the plural and
select branches yourself, with exact matches (
=0) and nesting. i18n-keyless generates the forms from one sentence (count,ordinal,select) and does not accept ICU written by hand. - Fully Apache-licensed server — Tolgee's core. The i18n-keyless server is source-available under the Elastic License 2.0: read it, run it, change it, but do not sell it as a hosted service.
What i18n-keyless does that the others do not
- No keys, no files. The source string in the code is the lookup. A new string is translated on its first request; a changed string is a new one. There is nothing to extract and nothing to sync.
- A price that does not move with the strings. Hosted plans are per project by monthly active users; the self-hosted licence is a one-off. None of the rows above meter seats, words or keys.
- One container to self-host, with SQLite, and any AI provider — the very image behind the hosted service.
- An MCP server, so an agent can list missing translations, fix one, or set up a project.
Who should take what
- You have translators, a review process, or legal copy that a person must sign off in every language: Crowdin, Lokalise, Phrase or Tolgee. The translator tooling is the product.
- You want the server under Apache 2.0 and do not mind running Java and Postgres: Tolgee self-hosted.
- You already have i18next and files and want a hosted editor for them: locize.
- An engineering-led team without translators, that writes its copy in the code and wants every language without a workflow: i18n-keyless. Hosted if you do not want to run a server; self-hosted if your strings may not leave your infrastructure.
The one-to-one articles go deeper: vs Tolgee, vs Crowdin, vs Lokalise, vs Phrase, vs i18next, and the roundup of i18next alternatives. The FAQ answers the questions a sceptic asks first.