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

i18n-json-po

v1.0.7

Published

i18n .json to .pot file converter

Downloads

513

Readme

i18n-json-po

jsonpo is a CLI tool to convert JSON i18n entry list to gettext's POT file.

Command-line usage

To install jsonpo system-wide, run:

$ sudo npm install -g i18n-json-po

Then you can use it like this:

$ jsonpo --help

i18n JSON -> POT converter

Options:
   -h / --help                   Show this help
   -s / --src FILE               Define input JSON file name. Defaults
                                 to stdin.
   -o / --output FILE            Define output PO[T] file name. If a file
                                 already exists, it's contents will be
                                 overwritten. Defaults to stdout.
   -p / --printOccurences        Print "#:" comments which indicate string
                                 occurences in source code.

   -c / --copyrightSubject SUBJ  Team name or author name.
   -b / --bugsEmail EMAIL        Email for sending bugs
   -y / --year YEAR              Copyright year, defaults to current year.

By default jsonpo accepts input JSON file from stdin, so it's possible to combine it with i18n-stex nicely:

$ stex -s 'src/**/*.ts' | jsonpo -p > strings.pot

Output defaults to stdout, so you can use standard unix stream redirection syntax.

PO and POT

By default, if optional meta field is not present in input file, jsonpo creates POT (template) file without any translations. If you need to add translations into file, you MUST pass meta field according to its format. This will result in fully translated PO file. Note that if your translations include plural forms, you MUST provide pluralForms member in meta field: this field should contain formula describing how to choose proper plural form. See Plural-Forms header in gettext's PO file description.

API usage

Take a look at CLI entry point - index.ts. Usage of the one and only convert function is pretty straightforward and there you will find all examples you ever need.

Contributing

i18n-json-po uses github-flow to accept & merge fixes and improvements. Basic process is:

  • Fork the repo.
  • Create a branch.
  • Add or fix some code.
  • Run Karma testing suite with npm run test and make sure nothing is broken
  • Add some tests for your new code or fix broken tests.
  • Run npm run build to build pure-js distribution files.
  • Commit & push.
  • Create a new pull request to original repo.

Pull requests with failing tests will not be accepted. Also, if you add or modify packages to package.json, make sure you use yarn and update yarn.lock.