Ofte stilte spørsmål
Everything you need to know about i18n-keyless before you start.
Må jeg administrere oversettelsesfiler?
Nei. Det finnes ingen JSON-filer, ingen nøkkeluttrekkingsprosess og ingen byggetid-plugin. Du skriver setningene dine på kilde språket ditt, SDK sender dem til API-et ved den første forespørselen, API-et oversetter dem med AI, og hver påfølgende forespørsel blir betjent fra hurtiglageret. Koden din er den eneste kilde til sannhet.
Hva skjer når jeg endrer kilde teksten?
Kildeteksten er nøkkelen. Endrer du den, får du en ny nøkkel med en frisk AI-oversettelse. Den gamle nøkkelen blir ikke lenger etterspurt, og dashbordet fjerner den etter 30 dager uten bruk. En stavefeilretting fungerer på samme måte: rett den i koden, deploy, og den nye teksten blir oversatt ved første forespørsel.
Hvor mye koster det?
Den hostede planen koster 8 € per prosjekt per måned, fakturert månedlig, du kan kansellere når som helst. Den selvhostede versjonen er gratis for ett prosjekt; 30 € én gang for ubegrensede prosjekter — ingen abonnement, ingen bruksbegrensning. Du tar med din egen AI-nøkkel i begge tilfeller. Det er ingen prising per sete, per ord eller per forespørsel.
Can I export my translations?
Yes. The dashboard has an "Export JSON" button that downloads every translation in your project as a single JSON file. The export includes all rows, not just the ones used in the last 30 days, so it is a full backup. There is no lock-in: your data is always one click away.
What frameworks does it support?
React, React Native, Vue, Svelte, Vanilla JS, Node.js, Ruby on Rails, Python, Go, Swift and Kotlin. Every SDK works the same way: wrap your text in a translation call, and the API returns the translation for the current language. The server SDKs are thread-safe and cache translations in memory.
How many languages are supported?
48 languages, including regional variants like zh-Hans / zh-Hant, en / en-GB, fr / fr-CA, pt / pt-BR, and es / es-MX. Arabic, Hebrew and Urdu are in the list, so right-to-left languages work too. Adding a new language to your project is one click in the dashboard.
Does it work with server-side rendering?
Yes. The Node.js SDK uses AsyncLocalStorage so your loaders, head functions and server components can translate without a React provider. On the client side, the React provider hydrates from the server-rendered HTML. There are step-by-step guides for Next.js, Nuxt, and TanStack Start in the documentation.
Does it slow down my app?
The first time a new string is requested, the API calls the AI model — that takes one to two seconds. Every request after that is served from the database, which is a regular cache hit. The SDK also caches translations locally, so returning users see zero network delay. If ten users request the same string at the same time, only one AI call is made.
What happens if the service goes down?
Every SDK caches translations locally — in localStorage on the web, AsyncStorage on mobile, and in memory on the server. If the API is unreachable, the SDK serves the cached translations. Your users see the last known translation, never a blank string. When the API comes back, the SDK refreshes silently.
Which AI provider does it use?
Five providers are supported: Mistral, OpenAI, Anthropic, Google, and any OpenAI-compatible endpoint such as Ollama, Groq, or Together. The operator picks the provider and the model from the dashboard or from the environment. The default on i18n-keyless.com is Mistral. Self-hosted users can run Ollama locally and send nothing to a third party.
Can I override an AI translation?
Yes. Click any cell in the dashboard, type the correct text, and save. The fix is permanent: the API never overwrites a value that was set by hand. You can also override translations through the API or through the MCP server, so an AI coding agent can fix a translation for you.
Can I migrate from i18next or another library?
Yes. There is a step-by-step migration guide for i18next, react-intl, and Lokalise in the documentation. The API has a migrate endpoint that imports your existing translations one by one, with no AI call and nothing billed. The MCP server has the same tool, so an AI agent can do the migration for you.
Is there a free plan?
There is no time-limited free trial. The self-hosted edition gives you one project free forever — install the Docker image, use your own AI key, and keep your data on your own server. The hosted plan is €8 per month per project, with no minimum commitment.
Is the source code available?
The server, the dashboard and the Docker image are published on GitHub under the Elastic License 2.0. You can read every line, run the code, and change it. The SDKs — React, Vue, Node, Rails and the others — are MIT-licensed. The only restriction: you may not offer the software as a hosted service to third parties.
Selvhostet eller abonnement: hvilken?
Abonnement: vi driver det, oppdateringer er automatiske, én pris per prosjekt. Selvhostet: det samme Docker-avbildningen på din egen server, gratis å installere, ett prosjekt gratis for alltid, 30 € én gang for ubegrensede prosjekter, med din egen AI-nøkkel og dataene dine hjemme. Velg abonnementet med mindre du ønsker å kjøre en server.
Les hele svaret, med kodeHow do I handle dynamic values like names or counts?
Use the replace option. Write the sentence with a placeholder — "Hello {name}, you have {count} items" — and pass the values at render time with replace: { "{name}": userName, "{count}": String(n) }. The AI sees the placeholder and keeps it in every translation. The SDK substitutes the value at runtime.
Hvordan håndterer jeg flertall?
Det er ingen flertalls-API med hensikt. Skriv hver form som sin egen fullstendige setning — "1 element" og "{count} elementer" — og sett inn tallet med erstatning. Modellen oversetter hver setning til sitt eget språk, så språk med flere former høres fortsatt naturlige ut for vanlige tilfeller.
Les hele svaret, med kodeHvordan håndterer jeg kjønn?
På samme måte: én fullstendig setning per skjema, pluss en kontekst som forteller modellen hvem som snakker og hvem som blir tiltalt. To kontekster gir to separate oversettelser av de samme ordene, så "Welcome back" for en kvinne og for en mann kolliderer aldri.
Les hele svaret, med kodeHvordan formaterer jeg datoer, tall og valutaer?
SDK formaterer dem ikke, det gjør kjøretiden din. Bruk Intl.DateTimeFormat og Intl.NumberFormat med gjeldende språk fra SDK, og legg deretter resultatet inn i setningen med replace. Én setning, én oversettelse, riktig format på hvert språk.
Les hele svaret, med kodeKan jeg tilpasse oversettelsesprompten?
Nei, og du trenger ikke gjøre det. Prompten leser konteksten din for hver nøkkel: det er her tonen, målgruppen og betydningen fastsettes, og det er derfor det samme ordet oversettes forskjellig to steder. Og enhver oversettelse kan manuelt overskrives i kontrollpanelet; API-en overskriver aldri det du har skrevet.
Les hele svaret, med kodeDoes it have an MCP server for AI coding agents?
Yes. The API is also an MCP server with OAuth 2.1 authentication. An AI agent can list translations, translate strings, override values, import existing translations, and manage project members — the same operations a human does in the dashboard. Connect it from Claude Code, Cursor, Windsurf, or any MCP-compatible client.
Can I use it for backend strings and emails?
Yes. The Node.js, Ruby on Rails, Python and Go SDKs run on the server. Translate an email subject, an error message, or a push notification the same way you translate a UI string. The server SDKs cache translations in memory and refresh in the background, so they do not add latency to your request.
Can my whole team work on translations?
Yes. Add team members to a project from the dashboard or through the API. Every member can see all translations, override any value, and add languages. Admins create projects and manage members. There is no per-seat pricing: add as many people as you need.
Hvordan fikser jeg en skrivefeil?
Kildeteksten er nøkkelen. Hvis du retter en skrivefeil i kildeteksten, får du en ny nøkkel med en ny oversettelse; den gamle strengen blir ganske enkelt ikke lenger bedt om, og dashbordet rydder den automatisk opp etter 30 dager uten bruk. En skrivefeil i en oversettelse: rediger cellen i dashbordet, og rettelsen er permanent.
Les hele svaret, med kode