xlf-translate

Populate XLIFF (.XLF) files with existing translations

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
xlf-translate
532.0.52 years ago7 years agoMinified + gzip package size for xlf-translate in KB

Readme

Build Status npm version
xlf-translate
Populates translations in XLIFF (.xlf) message files. Specifically developed for Angular 2 i18n - enabled apps, but might work for others as well.
Check out my blog post on Making Sense of Angular Internationalization (i18n)

Description

Normally, you'd localize an attribute using the following syntax:
<span i18n="A hello world message for the localized component">Hello!</span>

This utility makes use of the optional meaning tag to associate the message with an unique key.
<span i18n="localized.component.hello|A hello world message for the localized component">Hello!</span>

The key will be persisted in the messages file as a "meaning":
<trans-unit id="cb5fabf68b14f52c0d7cbc2b90393f8897310ba7" datatype="html">
  <source>Hello!</source>
  <target/>
  <note priority="1" from="description">A hello world message for the localized component</note>
  <note priority="1" from="meaning">localized.component.hello</note>
</trans-unit>

This utility will look up the keys in the supplied language file to provide the target translation.

Language Files

The language files contain translations corresponding to the keys in the description. For example, the localized.component.hello key and its translation are represented as:
localized:
    component:
        hello: Bonjour!

Installation

npm install -g xlf-translate

Usage

xlf-translate --lang-file sample/lang/fr.yml sample/messages.fr.xlf
This will populate all empty target elements in the messages.xlf file with matching translations. Non-empty target elements will be skipped to avoid overwriting user translations.
The messages file will be updated in place.

You can also force overwriting all translations, regardless if empty or not:
xlf-translate --force --lang-file sample/lang/fr.yml sample/messages.fr.xlf

See Also