Extract gettext calls from JavaScript, EJS, and other template formats.
Clone or download
cruzdanilo and BYK Update: add es8/es2017 support (#119)
add es8/es2017 support. this is critical for trailing function commas (acornjs/acorn#460), for example.
Latest commit 72547b0 Sep 6, 2017


jsxgettext Build Status NPM version

A node module with a CLI that extracts gettext strings from JavaScript, EJS, Jade, Jinja, Swig and Handlebars files. Uses a real parser, acorn, for JavaScript files and recognizes the following uses:

gettext("Hello world!");
gettext("Hello " + 'world!');
myModule.gettext("Hello " + 'world!');
gettext.call(myObj, "Hello " + 'world!');
ngettext("Here's an apple for you", "Here are %s apples for you", 3);
ngettext("Here's an apple" + ' for you', "Here are %s apples" + ' for you', 3);
myModule.ngettext("Here's an apple" + ' for you', "Here are %s apples" + ' for you', 3);
ngettext.call(myObj, "Here's an apple" + ' for you', "Here are %s apples" + ' for you', 3);

It also extracts comments that begin with "L10n:" when they appear above or next to a gettext call:

// L10n: Don't forget the exclamation mark
gettext("Hello world!");  // L10n: Salutation to the world

"L10n:" is a default value and you can change it with -c option.


npm install jsxgettext

Or from source:

git clone https://github.com/zaach/jsxgettext.git
cd jsxgettext
npm link


$ jsxgettext -h

Usage: cli [options] [file ...]


  -h, --help                         output usage information
  -V, --version                      output the version number
  -o, --output <file>                write output to specified <file>
  -p, --output-dir <path>            output files will be placed in directory <path>
  -k, --keyword [keywords]           additional keywords to be looked for
  -j, --join-existing                join messages with existing file
  -L, --language [lang]              use the specified language (javascript, ejs, jinja, handlebars, jade, swig) [javascript]
  -s, --sanity                       sanity check during the extraction
  --project-id-version [version]     This is the project name and version of the generated package/catalog.
  --report-bugs-to [bug address]     An email address or URL where you can report bugs in the untranslated strings.
  -c, --add-comments [tag]           place comment blocks starting with TAG and preceding keyword lines in output file (default: "L10n:").
  --parser-options [parser options]  A json to customize acorn parser.