Question

i am using Gettext.js library to localize my contents generated from a JS file. Now the situation is, i have to create and write each and every po files manually. I know we can scan php files for gettext strings using PoEdit. So, is it possible to scan JS files for gettext strings using PoEdit?

Was it helpful?

Solution

Achieved this by creating a new parser of python language in PoEdit.

File > Preferences > Parsers > New

Language:

JS

List of extension:

*.js

Parser command:

xgettext --language=Python --force-po -o %o %C %K %F

Item in Keyword List:

-k%k

Item in input files list:

%f

Source code charset:

--from-code=%c

i found this tutorial while searching on this, which helped me to attain the situation Tutorial Here>>

Actually the tutorial is in French and the link is a google translated(to English) one.

OTHER TIPS

Since version xgettext 0.18.3, you can use JavaScript as the language parameter.

This version of xgettext is used in Poedit since at least version 1.6.2.

The xgettext commandline program is used to scan source code and can parse the following languages:

C, C++, ObjectiveC, Shell, Python, Lisp, EmacsLisp, librep, Scheme, Java, C#, awk, Tcl, Perl, PHP, GCC-source, Glade

Although JavaScript is not listed as a language, I just tried it with a few and Perl actually worked. Try this:

echo " testFunc('foo');" > test.js;
xgettext --keyword=testFunc --output=- test.js --language="perl";

To do this from POEdit, open Preferences > Parsers > Perl add ;*.js to the file extensions list and add --language=Perl after xgettext in the Parser command field. This worked for me and I was able to get new strings from a JS file this way.

Although I don't know how gettext.js works a better approach may be to convert PO files to a native JavaScript file format.

xgettext now supports JavaScript natively, so the command is simply:

xgettext --output=output.pot --language=JavaScript *.js
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top