Localization File Format Overview

For anyone beginning the process of translating their digital content, the question often becomes, “Which localization file format should I use?” There are a few things to consider:

  • Is there native (or third party) technology support for a particular format within my technology stack?
  • Does the file format need to support various plural forms?
  • Does the file format I choose need to support contextual variance?
  • Is the format easy for my developers to understand without needing extra training?
  • Can the format I choose be ingested easily by translation management software?

These questions are important to answer before beginning the process so that you find the format that’s right for you and your business.

To help you with your decision, here’s a quick overview of some common localization file formats and their capabilities.

Android XML

Android XML is a platform-specific solution. It supports plural forms but does not support contextual variance unless done through the resource key.

Read more here.


Gettext is a format that has been around for a while now. It supports both plural forms as well as contextual variance and has libraries in many different programming languages. In fact, several javascript libraries use Gettext to transfer javascript strings into a translation management system. Overall, it’s a great and simple option for software localization.

Read more here.

Java Properties

Property files are a default, basic option for java localization. Java properties do not support plural forms and don’t have native support for contextual variance. However, it can be done through the resource key.

Read more here.

.RESX is an XML-based format developed for .NET. It does not support plural forms or contextual variance.

Read more here.

ObjectiveC/iOS strings

Strings files have excellent support as part of ObjectiveC libraries. There isn’t any support for plural forms or native support for contextual variance unless done through the resource key. However, Smartling has developed a library to add plural forms support for ObjectiveC.

Read more here.


XLIFF was created specifically to transfer data between translation management tools during the localization process but is not a true localization format. We don’t recommend using it as a localization file as it’s fairly complex and translation management tool support varies for its various bells and whistles.

Read more here.


The YAML format has many features including arrays, conditional formating, strong typing, plural forms, etc. One limitation however, is that it doesn’t have native support for contextual variance unless programmed through the resource key. It has wide programming language support but implementation options vary. Similarly, translation management software may or may not support particular YAML features. There are different forks of YAML implementation that are not fully compatible with one another.

Read more here.

Other structured file formats

Structured file formats like XML and JSON can also be used for localization. Like XLIFF, we do not typically recommend use of these formats as they lack plural form and contextual variance support. Interoperability with many translation management systems is also limited. However, we have implemented flexible support for these files in our Smartling TMS.

*To continue the conversation, tweet Andrey at @chelya

About Andrey Akselrod

Andrey comes to Smartling from his role as VP, Technology at SpaFinder, where he developed and maintained the site and eCommerce platform in 6 languages. Previously, he held executive positions at RunTime Technologies and consulted for JP Morgan Chase, where he was responsible for eCommerce, digital asset management, data warehousing and other large-scale projects. He’s a native Russian speaker. He holds a BS in Computer Science from Brooklyn College and lives in New Jersey with his wife and children. He’s passionate about all things technology, and a good cup of coffee. If not in the office, you can probably find him at Stumptown.