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: 5 months 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 (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-10-17T05:32:05.000Z (almost 3 years ago)
- Last Synced: 2024-10-30T06:40:20.886Z (over 1 year 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
[](https://badge.fury.io/js/xlf-translate)
# xlf-translate
Populates translations in XLIFF (.xlf) message files. Specifically developed for [Angular i18n](https://angular.dev/guide/i18n) - enabled apps, but might work for others as well.
## 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":
```xml
Hello!
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 - Internationalization (i18n)](https://angular.dev/guide/i18n)