For developers & teams

App localization without paying again for every update

iOS, Android, React Native & Flutter. Translate once, updates only for new strings.

Language rules and file formats

Regional number formats. Preserved placeholders.

Translate text for the language and region you need. Recognised numbers and dates follow fixed rules; technical placeholders are protected and checked.

Explore format examples

Sample values, not an analysis of an uploaded file.
Valuede-DEen-US
Number1.234.567,891,234,567.89
Date13.09.20269/13/2026
Time17:305:30 PM
Percent12,5 %12.5%
EUR amount1.234,56 €€1,234.56

Your variables stay usable

Recognised placeholders retain their names and types. For ICU messages, branch text is translated and the technical structure is checked.

{name} · {{count}} · %1$s · {price, number}

Check and retry what needs fixing

Missing or technically invalid translations are retried selectively. If errors remain, the file is not released as a finished translation. Budgets and retry counts are limited.

The rule data covers 1,082 language, script and region variants. This is not a claim of linguistically reviewed translation quality for that many languages.

View all rules, supported content and limits

Supported formats

All common localization formats are supported

iOS .strings

Localizable.strings for Swift & Objective-C

Android XML

strings.xml for Kotlin & Java

JSON i18n

For React, Vue, Angular, Next.js

Flutter ARB

Application Resource Bundle for Flutter

XLIFF

Cross-platform localization format

For developers

Integration in just a few minutes

Placeholder protection

Recognised variables are protected and checked for names, types and occurrences after translation.

Nested JSON

Nested structures are processed correctly

Plural Handling

ICU messages are checked structurally; text inside the branches is translated.

Translation Memory

One-time payment, updates forever

With app updates you only pay for new or changed strings. Unchanged translations are 100% free.

First translation

10,000 characters

52 €

Update (3 months later)

2,000 new characters

€11

79% saved

Why us instead of ChatGPT?

The differences at a glance

FeatureshipglobalChatGPT / DIYAgency
Translation Memory
Translate once; updates are free
Tokens only the first time
New every time
New every time
Large files
No size limit
Unlimited
Token limit
No limit
Placeholder protection
{name}, %@, {{count}} remain intact
Automatic
Error-prone
Manual
Original format
JSON, XML, and .strings are preserved
Automatic
Copy-paste required
Depends on provider
64 languages
Translate all at once
Simultaneously
Individually
Expensive
Consistency
Same terms = same translation
Reuse matching translations
Inconsistent
Varies
Price
Cost per translation
$€19 per seat per month, incl. VAT
$$Time + API
$$$10-50x more expensive

Frequently Asked Questions

Which app formats are supported?
iOS .strings, Android resource XML, JSON, Flutter ARB and XLIFF, plus Markdown/MDX. The language rules overview describes limits for each format. Apple .xcstrings still needs a dedicated translation adapter.
How does placeholder protection work?
The engine masks recognised placeholders before the model call, restores their original spelling and checks their technical contract. Missing or invalid results are retried selectively; remaining errors prevent release as a finished translation.
What is Translation Memory?
Translation Memory stores your translations. On updates, identical strings are reused for free — you pay only for new content.
How long does a translation take?
Duration depends on text volume, target languages, model and any required repair attempts. Progress and errors appear directly in the app or browser workspace.

Ready to translate your app?

Reach a global audience in minutes