AI-first localization for app teams
AI drafts every language. You verify before it ships.
Import the strings files your app already ships. AI drafts every other language against your glossary, each key’s description and its length limit. Every step is also a CLI command and an HTTP call, so a coding agent can create the keys, write the source text and pull the translations into your build without opening the editor. Only strings a person has marked verified reach your users over the air.
- AI drafts, a person verifies
- A coding agent can run it end to end
- Updates over the air, no store release
Every language is included on every plan, from €29 a month.
How it works
Import. Draft. Verify. Ship.
Your strings files go in as they are. From then on the catalog lives here: your build pulls from it, your app fetches updates between releases, and a source string that changes sends its verified translations back for review. Each language gets exactly the plural forms it uses - Arabic six, Japanese one.
Import what you have
An
.lprojfolder, an.xcstrings, astrings.xml, JSON or CSV. Every language in the file lands at once, and a key's comment becomes its description.AI writes the first draft
The model gets the source text, the key's description, its length limit and the conventions of the target market. Glossary terms you mark do-not-translate are masked before it sees them, and a source string already translated in the project is reused rather than generated again.
Your team verifies
A draft stays a proposal until a person reads it in the row and marks it verified. Writing a value from the CLI never does that.
Ship without a store release
Publish, and your app fetches one JSON bundle the next time it asks. Only verified strings are in it; a key still in review keeps the wording of the last publish.
Quality
Mistakes are caught on the row, not in production.
Five checks run on every translation as it is saved, and each finding is attached to the string it concerns, so fixing it means reading one row.
Placeholders
A
%@,%1$sor{count}that is missing, added or altered in the translation is flagged. Numbered arguments may change order; unnumbered ones may not.Length
A translation over the key's character budget is flagged with the count:
62 / 24 characters.Terminology
A do-not-translate term that does not appear verbatim in the target, or a term whose preferred translation is missing from it.
Consistency
The same source text translated two different ways under two keys.
Missing translations
An empty target is flagged as missing, and nothing else is reported on it until it has text.
Nothing unverified ships
The over-the-air bundle is built from verified strings only. A draft, an AI proposal or a string still in review is left out, and devices keep the last published wording for that key.
For developers
Fits into how your team already builds.
Almost everything you can do in the editor, your build system or a coding assistant can do too, through the anylocale command line tool or a plain web request: fetch the latest translations before a release, send new text up when a feature is merged, add and fill in texts. Access is granted per project in three levels, read, push and manage, so a build that only reads can never delete anything.
# your strings, in your build
$ anylocale sync \
--project wetterpro --platform ios \
--out-dir Sources/ResourcesSynced ar.lproj
Synced de.lproj
Synced fr.lproj
Synced ja.lproj
Synced 4 locales into Sources/Resources - no line breaks foundTranslations arrive before the build
Your build pulls the latest text in the file format each platform expects, Xcode, Android or web, before it compiles. Nobody copies files by hand.
New text goes up with every merge
One step in your CI sends a feature's new strings over the moment it is merged. Only additions arrive, so a broken or half-written file can never delete what is already there.
Every common file format
Xcode string catalogs (
.xcstrings), the older iOS files (.strings,.stringsdict), Android resources (strings.xml), JSON, next-intl and CSV spreadsheets. A placeholder for a name or a count is recognised however the platform writes it, so translators see the same thing everywhere.A coding assistant can do the whole job
Adding a text, describing it, setting a length limit and filling in every language are plain commands, so an AI coding assistant can localize most new text end to end. Nothing it writes ships until a person has verified it.
Updates reach the app without a release
The app checks for new translations when it starts, skips the download when nothing changed, and only ever receives text a person has verified. A fixed typo reaches users the same day.
Have a look inside.
The whole product, running on a sample app.
The demo needs no account, no credentials, nothing to install. Plans from $29/month.