npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

xlf-merge

v2.0.1

Published

Command-line tool for merging XLF files

Downloads

3,375

Readme

xlf-merge

Command line tool that merges any number of XLF 1.2 files, JSON text dictionaries, and ARB text dictionaries. Input and output is tested and compatible with Angular compiler.

Designed for (but not limited to) Angular-based applications to simplify their i18n process. The NG compiler requires a single dictionay file per language. If your translations are organized into many small files, you can run this tool to merge them before invoking the Angular compilation.

Installation

# Install globally (run by xlf-merge <parameters>)
npm install xlf-merge -g

# Install locally as development tool (run by node ./node_modules/xlf-merge <parameters>)
npm install xlf-merge --save-dev

Usage

  • Accepts any number of input files (wildcards supported)
  • File format is detected by file extension
    • *.xlf, *.xml - file treated as XLF 1.2
    • *.json - file treated as JSON text dictionary
    • *.abr - file treated as ARB text dictionary
  • Requires single output file path (--output parameter) to merge translated texts
# Merges three input files into output.xlf
xlf-merge input1.xlf input2.xlf input3.xlf --output all-translations.xlf

# Merges all language-specific XLF files in directory i18n into a file containing all translations per language
xlf-merge i18n/*.en.xlf -o all.en.xlf
xlf-merge i18n/*.de.xlf -o all.de.xlf
xlf-merge i18n/*.fr.xlf -o all.fr.xlf

# Merges *.de.xlf files recursively in the current path
xlf-merge **/*.de.xlf -o all.de.xlf

# Merges all XLF and JSON files with patterns *.de.xlf and *.de.json. Merged file has JSON format.
xlf-merge i18n/**/*.de.xlf i18n/**/*.de.json --output all.de.json
  • Supply the --convert parameter to convert all found files
    • Each converted file is saved in the same path as its source file
    • Conversion is allowed with or without the --output parameter (which also merges all input files)
# Converts all XLF files in current directory into JSON format
xlf-merge *.xlf --convert json

# Recursively converts all XLF files into ARB format
xlf-merge **/*.xlf --convert arb

Example set-up

Supposing XLF files are in path src/i18n/**. German translations have pattern *.de.xlf, Swedish translations have pattern *.sv.xlf.

  • Install Xlf-merge locally by running "npm install --save-dev xlf-merge"
  • Run xlf-merge before production build of Angular application
  • Write npm scripts to automate the entire build task, for example:
"scripts": {
    "merge-de": "node ./node_modules/xlf-merge src/i18n/**/*.de.xlf",
    "merge-sv": "node ./node_modules/xlf-merge src/i18n/**/*.sv.xlf",
    "merge-all": "npm run merge-de && npm run merge-sv",
    "build": "npm run merge-all && ng build --prod"
}

Author

Jaroslav Svak, 2018 - 2021

License

MIT