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 is a platform-specific solution. It supports plural forms but does not support contextual variance unless done through the resource key.
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.
.RESX is an XML-based format developed for .NET. It does not support plural forms or contextual variance.
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.
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.
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.
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