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-translate

v2.0.5

Published

Populate XLIFF (.XLF) files with existing translations

Downloads

16,908

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