常見問題

Everything you need to know about i18n-keyless before you start.

我需要管理翻譯文件嗎?

不。沒有 JSON 檔案,沒有金鑰提取步驟,也沒有建置時外掛程式。您用原始語言撰寫句子,SDK 在首次請求時將它們傳送到 API,API 使用 AI 進行翻譯,之後的每次請求都從快取提供。您的程式碼是唯一的真理來源。

當我更改來源文字時會發生什麼?

原始文本就是鍵。修改它,你就會得到一個新的鍵,並獲得全新的AI翻譯。舊鍵將不再被請求,儀表板會在30天未使用後自動清理。修正拼寫錯誤也是一樣:在程式碼中修正它,部署,新文本將在首次請求時被翻譯。

多少錢?

託管計劃為每個專案每月8歐元,按月計費,隨時可以取消。自託管版本對於一個專案是免費的;無限專案一次性30歐元——無需訂閱,無使用限制。在這兩種情況下,您都可以自帶AI金鑰。沒有按座位、按字數或按請求的定價。

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.

自架設還是訂閱:選擇哪一個?

訂閱:由我們營運,更新自動進行,每個專案一個價格。自託管:在您自己的伺服器上使用完全相同的Docker映像,免費安裝,一個專案永久免費,無限專案一次性30歐元,使用您自己的AI金鑰且數據留在本地。除非您想運行伺服器,否則選擇訂閱。

閱讀完整答案,包括程式碼
How 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.

我如何處理複數形式?

故意沒有提供複數API。將每種形式寫成完整的句子——“1個項目”和“{count}個項目”——並透過替換注入數字。模型會將每個句子翻譯成其自身語言,因此即使有更多形式的語言在常見情況下也能自然閱讀。

閱讀完整答案,包括程式碼
我如何處理性別?

同樣方式:每個表單一整句,再加上一個上下文告訴模型誰在說話、針對誰。兩個上下文會為相同的詞提供兩種不同的翻譯,因此「Welcome back」無論對女性還是男性都不會產生衝突。

閱讀完整答案,包括程式碼
如何格式化日期、數字和貨幣?

SDK 不會格式化它們,而是由你的運行時處理。使用 Intl.DateTimeFormat 和 Intl.NumberFormat,結合 SDK 中的當前語言,然後用 replace 將結果插入句子。一句話,一句翻譯,每種語言都有正確的格式。

閱讀完整答案,包括程式碼
我可以自訂翻譯提示嗎?

不,你也不需要這麼做。提示會讀取每個鍵的上下文:這就是語氣、受眾和含義所在的地方,也是讓同一個詞在不同地方翻譯不同的原因。任何翻譯都可以在儀表板中手動覆蓋;API 永遠不會覆蓋你寫的內容。

閱讀完整答案,包括程式碼
Does 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.

如何修復輸入錯誤?

來源文字就是金鑰。修正來源文字中的錯字後,你會得到一個新的金鑰及其全新的翻譯;舊字串不再被要求,儀表板會在30天未使用後自動清理。翻譯中的錯字:在儀表板中編輯儲存格,修正將永久生效。

閱讀完整答案,包括程式碼