A node module with a CLI that extracts gettext strings from JavaScript, EJS, 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
Usage: jsxgettext [options] [file ...]
Options:
-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, 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:").