Table of content
Here at LingoHub, we support all the file formats commonly used in software internalization and localization. Some of these formats have well-defined standards, but for others, we had to adopt best practices instead. After providing the general information concerning the file formats, we will describe each of them, one post per file format. If the format used by your application is not currently supported by LingoHub or if the syntax you use is different from ours, please don’t hesitate to contact us. As always, we will be happy to tailor LingoHub to your needs.
Resource files are generally used for storing parameters. For the purposes of internationalization and localization, the parameters stored are key-value pairs: the name of the phrase that is being translated, and the translated phrase itself. The key-value pairs are usually delimited by new lines or some special characters. Each key normally holds a single value, although some formats may allow multiple values. Key nesting is also allowed by some formats.
Placeholders are positions within the translated phrase to which a programmer can dynamically insert some content during run-time, for example a current user’s name. Not all formats support placeholders.
Content that should be ignored by parsers can be commented out. Since these comments usually contain information that is intended for either developers or translators, instead of discarding that information, we process it, store it and export it back to the resource files generated on the file download.
A comment is usually “assigned” to the key-value pair directly after it (without the blank lines in between), and is stored as a translation description for that pair. There is also one additional special use for translation comments, but it will be described in a next article of its own.
Please note that currently only the comments in the master locale resource files are being processed.
For some file formats a specific encoding is defined by the standard or is traditionally used. While we adopt this as a default behavior, our users can choose the encoding that suits their needs best. You can read more about it in the previous post.
Related articles

Angular i18n update from ng-conf 2015
The LingoHub team described new Angular i18n usage and tooling in this article. Take a look in detail at how this work. Click and read all inside.

Gettext i18n system
What is gettext, what are its features, and what resource file types use? We highlighted all these questions in our blog. Find more inside.

i18n gem advanced features - Ruby on Rails internationalization
Find inside this article the highlighting of some i18n gem advanced features in Ruby on Rails internationalization.

i18n and l10n for AngularJS apps from development to deployment
Incorporating multiple languages into your app requires careful planning for adequate multilingual support. Read about i18n and l10n for AngularJS apps in our blog