Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to generate po file from js file using poedit

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?

like image 968
Prasanth K C Avatar asked May 15 '13 05:05

Prasanth K C


People also ask

What is a PO file?

A . PO file is a portable object file, which is text-based. These types of files are used in commonly in software development. The . PO file may be referenced by Java programs, GNU gettext, or other software programs as a properties file.


4 Answers

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.

like image 85
Prasanth K C Avatar answered Sep 29 '22 05:09

Prasanth K C


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.

like image 29
smhg Avatar answered Sep 29 '22 04:09

smhg


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.

like image 22
Tim Avatar answered Sep 29 '22 04:09

Tim


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

xgettext --output=output.pot --language=JavaScript *.js
like image 27
laurent Avatar answered Sep 29 '22 03:09

laurent