Android App Localization: strings.xml Across Android, TV, Wear & Auto

By The strings.dev team · Last updated

Frequently asked questions

Does strings.dev localize my Google Play listing too?

No. strings.dev localizes in-app native strings only — the values in your res/values/strings.xml resource files. Your Play Console listing metadata (title, descriptions, screenshots, keywords) is translated separately in the Google Play Console, not in your app's resource files. Keep the two tasks distinct.

How does strings.dev handle Android <plurals>?

It reads your <plurals> element and expands it per locale into the Unicode CLDR quantity categories that language actually requires (zero, one, two, few, many, other). A target such as Arabic, Russian, or Polish may need categories your English source never defined, and those are generated rather than mirrored from English one/other. The plural keys round-trip in the native strings.xml.

Will my placeholders and escaped characters survive translation?

Yes. Because strings.dev writes native strings.xml, it preserves %s/%d and positional %1$s/%2$d placeholders untouched (and can reorder positional arguments where the target grammar needs it), and it applies Android's escaping rules to translated values — apostrophes, leading @ and ?, and XML characters — so the file compiles as-is with no XLIFF round-trip.

Do Android TV, Wear OS, and Android Auto need a different localization format?

No. All Android form factors draw user-facing text from the same res/values*/strings.xml resource system using the same <string>, <plurals>, and folder-qualifier rules. Localize the strings.xml once and every surface — phone, tablet, TV, Wear, Auto — gets its translated resource folder from the same pipeline.

What's the difference between values-es-rMX and values-b+ folders?

Both are directory qualifiers Android uses to pick the right strings.xml at runtime. The older form (values-es-rMX) uses a lowercase language plus an r-prefixed region. The newer BCP 47 form (values-b+zh+Hans) handles scripts and complex tags, which is how Simplified (zh-Hans) and Traditional (zh-Hant) Chinese are distinguished. strings.dev's locales map onto both.

Can I localize an Android app for free?

Yes. The free Indie tier covers 1 project and 1 language with unlimited word translations — enough to localize your strings.xml into a first market end to end. Unlimited languages, 2 projects, brand context, and the QA & analytics dashboard are part of Indie Plus at $20/mo, or $10/mo billed annually.

Related

Localize your strings.xml free