AI translation for i18n files
Translate a file in under a minute.
Upload a JSON, YAML, XML, or ARB file. We read your keys as context, translate to any of 50+ locales, and return the exact same file format.
No account. No credit card. Same file back.
Frequently asked questions about i18n file translation
How do I translate a YAML localization file?
Upload your YAML file (e.g., en.yaml), pick target languages, and download a translated file in the same YAML format. Indentation, key order, multi-line strings, and placeholders like %{name} round-trip unchanged. Works with Ruby on Rails i18n, Symfony translations, and other YAML-based i18n setups. Supported in Plus and above.
XLIFF translator that preserves placeholders
Upload your .xlf / .xliff file (XLIFF 1.2 or 2.0), select target locales, and download a translated file with the same XLIFF structure. The <trans-unit> IDs, source/target XML tags, and inline <x> / <ph> / <g> placeholders round-trip unchanged. ICU and {} placeholders inside the source text are protected from being translated or broken. The free tier handles XLIFF up to 200 keys.
next-intl translation tool
next-intl is JSON-based. Upload your messages/en.json (or any locale folder), pick target languages, and download translated files named for each locale folder (e.g., messages/fr.json, messages/de.json, messages/zh.json). Nested keys and ICU MessageFormat placeholders round-trip. The free tier handles a single next-intl locale file up to 200 keys; Plus handles full projects.
react-i18next translation API
react-i18next loads JSON translation files. Upload your source JSON, choose target languages, and download translated JSON files in the same nested-key format. The translation engine treats {name} / {{count}} placeholders and <Trans> JSX as protected — they round-trip unchanged. Output is a drop-in replacement in your public/locales folder.
vue-i18n translation service
vue-i18n uses JSON or YAML. Upload your en.json (or .yaml), pick target languages, and download translated files in the same format. Nested keys, placeholders like {name} or t('key', { count: n }), and pluralization rules round-trip. The free tier handles vue-i18n JSON up to 200 keys.
How do I translate a SaaS product into 30 languages at once?
The Max plan supports up to 15 target languages per task, with 200,000 word-locales per month. For 30 languages on a single project, run two batches back-to-back (15 + 15) and the output files all keep the same key structure. For higher volume, the Ultra tier is contact-based; all output files preserve placeholders and the original file format.
How accurate is AI translation for app localization?
Modern AI models (GPT-4-class and beyond) are usually good enough for app UI copy — they're context-aware, understand domain terms, and don't break placeholders. They are not as good as a human localizer for marketing copy, idioms, and brand voice. Localee uses a translation engine that is tuned for i18n files: placeholders are protected, file structure round-trips, and the output is validated against the source. For 95% of app UI strings, that's better than a human translator for the cost.
AI translation vs human translation — what's the difference for i18n files?
AI translation is fast (seconds per file), cheap (cents per thousand word-locales), and consistent across all your strings. Human translation is slow, expensive, and variable. For app UI copy, AI is usually good enough — Localee's pipeline is tuned to preserve placeholders and file structure, which is the part humans miss too. For marketing landing pages or brand voice, human review is still recommended.
Free i18n file translator no signup
Localee's free tier is exactly this. Open the app, upload your JSON / YAML / Android XML / iOS strings / XLIFF / Flutter ARB / Excel file, pick one target language, and download a translated file. No account, no card. 1 target language, up to 200 keys per file. Sign in for higher limits; Pro for unlimited.
Translate JSON to 10 languages at once
The Plus plan supports up to 5 target languages per task; Max supports up to 15. For 10 languages, Max is the right tier — upload your JSON once, pick all 10 target locales, and download 10 translated files in a single run. All files keep the same JSON structure; only the string values change. Word-locales are pooled across all 10 languages.
How do I translate a 5000-key i18n file?
The free tier caps at 200 keys per file. The Plus plan covers up to 50,000 word-locales per month (a 5,000-key JSON file at ~30 chars per key is about 150,000 characters total, or ~25,000 words — over 5 languages, that's 125,000 word-locales, so you'd need Max or two months on Plus). The translation runs in one batch and produces a single translated file in the same format. Failed keys fall back to the source string.
Translate with placeholders like %s, %d, %@, {name}, {{count}}
Localee protects placeholders before translating, and validates the output after — if a placeholder is missing or extra, the translation is retried with the source kept as fallback. Supported placeholder types: React/Next {name} / {{count}}, Java/Kotlin %s / %d / %1$s / %@, iOS %@ / %d, ICU MessageFormat, and inline HTML <b>, <i>, <a>. The output file is drop-in ready for your app.
Figma strings to i18n JSON
Export your Figma strings to a CSV or JSON file (e.g., via the Figma Strings plugin or your design system export), then upload to Localee. Pick target languages, and download a translated JSON file in the nested-key format your i18n library expects. The translation engine treats the strings as UI copy — no design context needed for the typical case. Placeholder variables in the strings round-trip.
PO / POT (gettext) file translator
Upload your .po or .pot file. Localee translates the msgstr strings while keeping the msgid keys, the file header, and msgctxt context comments intact. Plural forms (msgid_plural / msgstr[0] / msgstr[1]) are translated per locale. The output is a translated .po file you can drop into your gettext-based project (WordPress, PHP, Python gettext, etc.).
CSV translation key-value translator
Upload a CSV with one column per language. Localee translates the source column into each target column, preserving the header row, the key column, and the cell structure. Empty cells stay empty; failed cells fall back to the source. Output is a CSV you can paste into a spreadsheet or feed into a translation pipeline.
Continuous localization CI/CD pipeline
Localee is a SaaS, not a CI tool — for now, the typical setup is: source-of-truth JSON in your repo → a script that uploads new strings to Localee → translated files are committed back. Localee doesn't have a CLI or webhook today, but the upload-download workflow is repeatable per release. For a fully automated pipeline, look at Crowdin or Lokalise. (Localee is adding a CLI in the backlog.)
Will the file structure survive translation?
Yes. Localee's translation engine is built for the format round-trip: key order, nesting, comments, file headers, plural forms, and inline HTML/Markdown all round-trip unchanged. Only the string values change. The output is a drop-in replacement in your app — no manual reformatting, no re-sorting, no flattening.
JSON i18n translator that preserves nesting
Upload your source JSON (e.g., en.json with nested keys like auth.login.title), and the translated file keeps the exact same nested structure. The translation engine only touches the string values; it does not flatten nesting, reorder keys, or merge objects. Output is a drop-in replacement in your i18n setup (next-intl, react-i18next, vue-i18n, i18next).
Translate a SaaS app to Chinese / Japanese / Korean / Spanish / French / German / Arabic / Portuguese
Localee supports 30+ target languages including the major app markets: zh-CN, zh-TW, ja, ko, es, es-MX, fr, fr-CA, de, ar, pt, pt-BR, ru, it, nl, pl, tr, vi, th, id, hi, and more. Upload your source file, pick all the locales you need, and download one file per locale. Arabic, Hebrew, Urdu, and Persian render the strings in the target script (your app is responsible for setting dir="rtl" on the rendered HTML).
Indie developer i18n localization on a budget
The free tier covers 1 target language up to 200 keys per file, no signup. That's enough for an indie SaaS MVP launching in 1-2 languages. The Plus plan at $9/month covers 50,000 word-locales — enough to translate a typical indie app into 5 languages. No per-seat fees, no platform lock-in, cancel any time. Credit packs from $5 (Starter 10K / Small 25K / Medium 60K / Large 200K word-locales) are available for one-time purchases outside subscriptions and expire 12 months after purchase.
Translate an open source project's i18n files
Upload the source file (any format Localee supports — JSON, YAML, Android XML, iOS strings, XLIFF, Flutter ARB, Excel, PO, CSV), pick target languages, and download translated files in the same format. The translation engine treats the file as standard i18n — placeholders, comments, and structure round-trip. Output is a PR-ready file you can commit. Localee doesn't claim ownership of the translation; it's your call whether to attribute or not.
YAML i18n translator (Rails, Symfony, etc.)
Upload your YAML file, pick target languages, and download a translated file in the same YAML format. Indentation, key order, multi-line strings, and placeholders like %{name} round-trip unchanged. Works with Ruby on Rails i18n, Symfony translations, and other YAML-based i18n setups. Supported in Plus and above.
Excel i18n translator with multiple languages in one file
Upload an .xlsx with one column per language. The first row is the header (source language, target language codes). The translation engine fills the target columns. Failed cells fall back to the source. Output is a multi-language .xlsx you can hand to a translator for review or import directly into your CMS / translation memory.
How much does Localee cost?
Free tier: $0, 1 target language, 200 keys per file, no signup. Plus: $9/month or $90/year, 50,000 word-locales per month, 5 target languages per task. Max: $29/month or $290/year, 200,000 word-locales per month, 15 target languages per task, priority processing. Ultra: $99/month or $990/year, 1,000,000 word-locales per month, unlimited target languages, dedicated support. Credit packs (Starter $5, Small $10, Medium $20, Large $75) are available for one-time purchases outside subscriptions and expire 12 months after purchase. Paddle is the Merchant of Record; 14-day refund window.
How is Localee different from Google Translate?
Google Translate is a free web tool that translates text but loses i18n file structure. It does not preserve JSON nesting, key order, placeholders, or comments. It is a translator; Localee is a file translator. The output of Localee is a drop-in replacement in your app; the output of Google Translate is text you'd have to re-paste into your i18n file by hand, then reformat and re-fix placeholders.
How do I translate an Android app into 10 languages?
Upload your Android strings.xml (and any plural plurals.xml resources), pick target languages, and download translated XML files in the same structure. The translation engine treats %1$s, %d, <b>, and <xliff:g> placeholders as protected. RTL languages (Arabic, Hebrew, Urdu) are translated; your app is responsible for setting android:supportsRtl="true" and the layout direction at the activity level.
How do I keep my JSON key order after translation?
Localee preserves key order. The translation engine reads the source file, translates the string values, and writes a new file with the same key order. Nested objects keep their original structure. The output file is a drop-in replacement for the source — no need to re-sort or reformat. This matters for i18n libraries that depend on key order for fallback resolution (i18next) or human readability of the file.
Best i18n file translator for indie hackers
Localee is built for indie hackers, solo developers, and small teams. The free tier covers 1 target language up to 200 keys per file, no signup. The Plus plan at $9/month covers 50,000 word-locales — enough for an indie SaaS translated into 5 languages. No per-seat fees, no platform lock-in, no learning curve. Upload a file, pick languages, download the translated file. That's it.