Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tsvetomir/xlf-translate
Populate XLIFF (.XLF) files with existing translations in Angular 2 apps
https://github.com/tsvetomir/xlf-translate
angular angular-2 i18n language-files translation xlf
Last synced: about 1 month ago
JSON representation
Populate XLIFF (.XLF) files with existing translations in Angular 2 apps
- Host: GitHub
- URL: https://github.com/tsvetomir/xlf-translate
- Owner: tsvetomir
- License: bsd-3-clause
- Created: 2017-01-30T23:42:25.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-10-17T05:32:05.000Z (about 1 year ago)
- Last Synced: 2024-04-15T02:10:22.001Z (7 months ago)
- Topics: angular, angular-2, i18n, language-files, translation, xlf
- Language: JavaScript
- Homepage:
- Size: 2.08 MB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/tsvetomir/xlf-translate.svg?branch=master)](https://travis-ci.org/tsvetomir/xlf-translate)
[![npm version](https://badge.fury.io/js/xlf-translate.svg)](https://badge.fury.io/js/xlf-translate)# xlf-translate
Populates translations in XLIFF (.xlf) message files. Specifically developed for [Angular 2 i18n](https://angular.io/docs/ts/latest/cookbook/i18n.html) - enabled apps, but might work for others as well.
**Check out my blog post on [Making Sense of Angular Internationalization (i18n)](https://medium.com/@t_tsonev/making-sense-of-angular-internationalization-i18n-e7b26fb9c587)**
## Description
Normally, you'd localize an attribute using the following syntax:
```html
Hello!
```This utility makes use of the optional meaning tag to associate the message with an unique key.
```html
Hello!
```The key will be persisted in the messages file as a "meaning":
```xmlHello!
A hello world message for the localized component
localized.component.hello```
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:```yaml
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
* [Sample usage in an i18n Angular app](https://github.com/tsvetomir/angular-cli-i18n-sample)
* [Angular 2 - Internationalization (i18n)](https://angular.io/docs/ts/latest/cookbook/i18n.html)
* [Deploying an i18n Angular app with angular-cli](https://medium.com/@feloy/deploying-an-i18n-angular-app-with-angular-cli-fc788f17e358#.2qlq8lfad)