Skip to content
/ xtexts Public

A tool to extract translation strings from JS/JSX projects.

License

Notifications You must be signed in to change notification settings

borgar/xtexts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xtexts

A minimal utility for pulling translation strings from a project. It mimics xgettext to some degree and can emit .po format, but it can work on JSX and modern .es files.

Install

npm install xtexts --save-dev

CLI commands:

Extract

Extract translatable texts from a project.

xtexts extract <path>

Will print out a list translation terms in the format specified (defaulting to gettext .po).

You may specify format with the --format option, which can be any of json, csv, or gettext.

xtexts extract --format csv src/

Supply a list of function names to be read by the --keyword (or -k) option. The format xtests likes is the same as xgettext's.

There is no upper limit to the amount you can supply. The program defaults to most of the standard gettext ones:

  • _
  • gettext
  • dgettext
  • dcgettext
  • ngettext
  • dngettext
  • ppgettext
  • dpgettext

Be warned that what xtexts reads is any call to a function that has any of these keywords. The following are equivalent in the eyes of the parser:

foo.bar.gettext("string")
gettext("string")

Use

Dump a JSON dictionary of usage from the project.

This performs the same run as the extract command, except the output is a JSON formatted dictionary of term usage.

{
  "term1": [ "src/foo.js:10", "src/bar.js:5" ],
  "term2": [ "src/bar.js:34" ],
  "term3": [ "src/baz.js:17" ]
}

This can be useful to help you track conflicts in your project.

Test

Test if any translations are broken.

Will run against the project and report any flawed translation calls. Currently, this means any instances where a translation function has been called but no string was detected. This normally indicates a developer absent mindely trying to use template strings or passing variables.

The process exits with a code 1 if any problems were found but otherwise does nothing. Perfect for putting your tests.

About

A tool to extract translation strings from JS/JSX projects.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published