An app localization tool that ships new languages without breaking the build
Send string files from your repository or current TMS. LanguageOps translates them with AI that follows your glossary, style guide and UI context, protects variables and markup, runs QA, and returns files in the same format and key structure.
- Key structure preserved
- Glossary and UI tone enforced
- Works alongside Lokalise and Phrase
- 1Changed strings detecteden.json · 214 new or updated keysStep 1
- 2AI translation with contextGlossary, UI tone, memory matchesStep 2
- 3Review and QATags, numbers, terminology, LQAStep 3
- 4Files returnedfr.json · de.json · ja.jsonDone
Short strings, very little context, and a build that has to compile
A button label is two words with no sentence around it. The same English word can be a noun on one screen and a verb on the next. Variables, plurals and markup sit inside the text, and one broken placeholder can crash a screen. A good app localization tool has to supply context and protect structure, not just translate.
-
Structure in, structure out
Keys, nesting, comments and file layout are preserved. Only translatable values are extracted, and the target file mirrors the source.
-
Consistent UI terminology
A shared glossary keeps “Settings”, “Sign in” and your feature names identical across every screen, platform and release.
-
Checks before merge
QA flags broken or missing tags, changed numbers and unapproved terminology before translated files reach your repository.
What 338,859 shipped UI translations tell you
We measured every shipped translation in Mastodon, Signal and WordPress across 27 languages. Translated UI text grows, most strings are tiny, and variables break even in mature projects.
How much longer translated UI text runs than English
Change in visible characters, 338,859 shipped translations in Mastodon, Signal and WordPress. The thin line spans the lowest to highest of the three apps.
- French +32%
- German +28%
- Spanish +24%
- Italian +23%
- Dutch +20%
- Portuguese (Brazil) +16%
- Polish +16%
- Swedish +11%
- Japanese −45%
- Chinese (Simplified) −66%
1 in 13
French UI strings at least twice as long
1 in 13 French UI strings and 1 in 17 German strings are at least twice as long as the English, so a layout sized exactly for English will truncate or wrap them.
Original research LanguageOps UI string study, 23 October 2026
53–65%
UI strings of 20 characters or fewer
53–65% of app UI strings are 20 characters or fewer, with a median of 16–19 characters, so most strings give translators very little text to work with.
Original research LanguageOps UI string study, 23 October 2026
1 in 8
UI strings containing a variable
11.8–14.2% of app UI strings contain at least one variable placeholder such as %s or {name}.
Original research LanguageOps UI string study, 23 October 2026
1 in 950
Shipped translations with a broken placeholder
About 1 in 950 shipped translations that contain a placeholder drop, add or break it (47 of 44,495), across three mature, widely translated open-source apps.
Original research LanguageOps UI string study, 23 October 2026
50
App Store listing languages
App Store Connect supports localised app metadata in 50 languages, after adding 11 in March 2026, ten of them Indian languages.
Apple Developer News, 31 March 2026
76%
Online shoppers who prefer their own language
76% of online shoppers prefer to buy products with information in their native language.
CSA Research, Can't Read, Won't Buy – B2C (8,709 consumers, 29 countries), 7 July 2020
How strings move from code to every language
- Collect
Bring in the strings
Upload resource files, connect a GitHub repository, or pull keys from an existing Lokalise or Phrase project.
- Translate
AI with your context
Key names, developer comments, glossary, style guide and translation memory are applied, so short UI strings are translated for the screen they appear on.
- Review
Human review where it matters
Native reviewers check onboarding, paywalls, store listings and legal text in the editor. LQA scoring tells them where to look first.
- Ship
Return and release
Export files in the original format, open a pull request, or push translations back to the connected TMS for your next build.
Everything a product team needs to localize an app
Every feature is included on every paid plan.
Developer file formats
JSON, XLIFF, XML, YAML, PO/POT, Java .properties, .NET RESX and iOS .strings, with key previews and include or exclude rules.
Repository workflow
The GitHub connector (in beta) pulls changed strings from branches and paths and returns translations as a pull request.
Works with your current TMS
Already on Lokalise or Phrase? Use the connectors to bring jobs into LanguageOps for translation and review, then push them back.
Translation memory
Unchanged and repeated strings are reused across releases and platforms, so you only pay attention to what is new.
Store listings and marketing
Localize App Store and Google Play descriptions, release notes, help center articles and onboarding emails in the same account.
API, CLI and MCP
Create jobs and fetch results from CI, scripts or AI coding agents.
No per-key or per-language surcharges
Plans are metered by source words and AI tokens, with every feature included. Professional starts at £250/month with five users and unlimited production collaborators.
What makes app localization hard
App localization fails in predictable ways. A good tool is designed around each of them:
| Problem | What goes wrong | How LanguageOps handles it |
|---|---|---|
| Missing context | “Open”, “Post” or “Charge” is translated with the wrong meaning | Key names, developer comments, glossary and memory are given to the AI and shown to reviewers |
| Broken variables and markup | {count}, %@ or <b> is edited or dropped, and a screen breaks |
Inline codes are protected as tags, and QA blocks missing or unbalanced tags |
| Inconsistent terminology | The same feature has three names across iOS, Android and web | One shared glossary and memory for every platform and release |
| Text expansion | French and German UI text runs 28–32% longer than English, and 1 in 13 French strings doubles | Reviewers see the source and target side by side, and style rules can ask for concise UI copy |
| Slow release cycles | Localization starts after code freeze and holds up the release | Changed strings are translated from the branch, and repeated strings are reused from memory |
| Everything outside the app | Store listings, help articles and onboarding emails are forgotten | Documents, web content and video are localized in the same account |
How to choose an app localization tool
- Format fidelity: does it return your resource files with keys, nesting, comments and encoding exactly as they were?
- Developer workflow: can it pull from and return to your repository, or connect to the TMS you already use?
- Context for translators and AI: are key names, comments and screenshots or descriptions available when strings are translated?
- Protection and QA: are variables and markup locked, and are broken strings caught before merge?
- Quality beyond strings: can the same tool handle store listings, help content, marketing and video, so terminology stays consistent?
- Pricing that scales with you: watch for per-key, per-language or per-seat charges that grow faster than your product.
App localization checklist before your first release
- Externalize every user-facing string into resource files. No hard-coded text in views.
- Use named variables (
{userName}, not concatenated fragments) so translators can reorder sentences. - Handle plurals and gender with your platform’s plural rules rather than
if (count == 1). - Leave room for expansion. In our study of shipped app translations, French UI text was 32% longer than English and German 28%, so design flexible layouts.
- Add developer comments for ambiguous keys: where the string appears and what it does.
- Build a glossary of feature names and UI terms before the first translation, not after.
- Localize the store listing and screenshots, which are what users see before they install.
- Test with pseudo-localization or a long language before release to catch truncation and hard-coded text.
LanguageOps also localizes the rest of your product content, including documentation and websites, video tutorials and market-specific variants. For engineering-led teams, see the API and the MCP server and CLI.
App localization, explained
What is an app localization tool?
What is the difference between app translation and app localization?
Which file formats do you support for apps?
How much longer does app text get when it is translated?
How do you keep variables and placeholders safe?
Can AI translate app strings accurately?
Do I have to leave Lokalise, Phrase or Crowdin?
Localize a real string file today
Send one resource file and your target languages. We will show you the AI output, the QA report and the file you get back.