strings.xml

Android localization, translated without breaking it.

Upload your strings.xml. Get it back per locale folder — placeholders, plural quantities and CDATA intact.

  • strings.xml
  • Jetpack Compose
  • Android Views
  • Kotlin Multiplatform
values/strings.xml
<string name="greeting">Hello, %1$s!</string>
<plurals name="items">
  <item quantity="one">%1$d item</item>
  <item quantity="other">%1$d items</item>
</plurals>
values-de/strings.xml
<string name="greeting">Hallo, %1$s!</string>
<plurals name="items">
  <item quantity="one">%1$d Artikel</item>
  <item quantity="other">%1$d Artikel</item>
</plurals>

What survives the round trip

  • %1$s and %1$d positional arguments
  • <plurals> with all quantities
  • CDATA sections
  • Escaped apostrophes (\')
  • translatable="false" is respected
  • HTML markup inside strings

Why this is annoying today

Weeks of waiting

Agencies take two to four weeks per language. Your release does not wait that long.

Priced per word

Translators charge €0.10–€0.25 per word. A ten-thousand-word app runs past €1,000.

Broken placeholders

Generic tools translate your variables. A translated placeholder is not a typo — it is a crash.

How it runs

  1. 01

    Upload

    Your file, as it is. No project setup.

  2. 02

    Pick languages

    64 available. Take as many as you need.

  3. 03

    Download

    The same file back, one per language.

Why not Lokalise or Crowdin?

shipglobalLokalise · Crowdin
Price€19 per seat per month, incl. VATFrom $100 per month
SetupTwo minutesAn hour, plus a workflow
SubscriptionCancel monthly, no annual contract.Required
Translation MemoryIncluded. A string costs tokens only the first time.Included

Create an account. Upload a file. See the number.

€19 per month incl. VAT, cancel monthly. No quota to expire — and with your own model key you pay no usage at all.

Create account