.xcstrings · .strings

iOS localization, translated without breaking it.

Upload your .xcstrings string catalog or Localizable.strings. Get it back with every language you already had, plus the new ones — variations and plurals intact.

  • String Catalogs (Xcode 15+)
  • Localizable.strings
  • SwiftUI
  • UIKit
Localizable.xcstrings
"apps_blocked" : {
  "variations" : {
    "plural" : {
      "one"   : { "value" : "%lld app blocked" },
      "other" : { "value" : "%lld apps blocked" }
    }
  }
}
+ de
"apps_blocked" : {
  "variations" : {
    "plural" : {
      "one"   : { "value" : "%lld App blockiert" },
      "other" : { "value" : "%lld Apps blockiert" }
    }
  }
}

What survives the round trip

  • %@ and %lld format specifiers
  • %1$@ positional arguments
  • Plural variations
  • Device variations
  • Every language already in the catalog
  • comment and extractionState

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€0.12 per 1,000 charactersFrom $100 per month
SetupTwo minutesAn hour, plus a workflow
SubscriptionNone. You spend a balance.Required
Translation MemoryIncluded. A string is paid for once.Included

Upload a file. See the number.

The first 50,000 characters in two languages are free, and we do not ask for a card.

Start now