I'm adding language translation support to my project. The code is on Python and has jinja2 in the html files, and Javascript.
I'm trying to use Babel to do the translation, but it doesn't recognize the extraction method of jinja2. Maybe I'm using an incorrect name for it.
This is my ini file:
# Extraction from Python source files
[python: **.py]
# Extraction from Jinja2 template files
[jinja2: **.html]
# Extraction from JavaScript files
[javascript: **.js]
extract_messages = $._, jQuery._
And this is the error I receive;
C:\>python Babel-0.9.6/babel/messages/frontend.py extract --project=GV --version=1 --no-location -o locale\messages.pot -F babel.ini frontend te
mplates
extracting messages from frontend\__init__.py
INFO:babel:extracting messages from frontend\__init__.py
...
Traceback (most recent call last):File "Babel-0.9.6/babel/messages/frontend.py", line 1208, in <module>main()File "Babel-0.9.6/babel/messages/frontend.py", line 1107, in mainreturn CommandLineInterface().run(sys.argv)File "Babel-0.9.6/babel/messages/frontend.py", line 651, in runreturn getattr(self, cmdname)(args[1:])File "Babel-0.9.6/babel/messages/frontend.py", line 912, in extractfor filename, lineno, message, comments in extracted:File "c:\Python27\lib\site-packages\babel-0.9.6-py2.7.egg\babel\messages\extract.py", line 172, in extract_from_dirstrip_comment_tags):File "c:\Python27\lib\site-packages\babel-0.9.6-py2.7.egg\babel\messages\extract.py", line 202, in extract_from_filestrip_comment_tags))File "c:\Python27\lib\site-packages\babel-0.9.6-py2.7.egg\babel\messages\extract.py", line 271, in extractraise ValueError('Unknown extraction method %r' % method)
ValueError: Unknown extraction method 'jinja2'
Press any key to continue . . .
Any ideas?
Thanks,
Gadi
I saw that your question was still unanswered. Your problem looks similar to what I got after reinstalling my development environment:
$ pybabel extract -F babel.cfg -o messages.pot .
extracting messages from admin.py
:
extracting messages from templates/404.html (extensions="jinja2.ext.autoescape,jinja2.ext.with_")
Traceback (most recent call last):File "/usr/local/bin/pybabel", line 9, in <module>load_entry_point('Babel==0.9.6', 'console_scripts', 'pybabel')()File "/usr/local/lib/python2.7/dist-packages/Babel-0.9.6-py2.7.egg/babel/messages/frontend.py", line 1107, in mainreturn CommandLineInterface().run(sys.argv)File "/usr/local/lib/python2.7/dist-packages/Babel-0.9.6-py2.7.egg/babel/messages/frontend.py", line 651, in runreturn getattr(self, cmdname)(args[1:])File "/usr/local/lib/python2.7/dist-packages/Babel-0.9.6-py2.7.egg/babel/messages/frontend.py", line 912, in extractfor filename, lineno, message, comments in extracted:File "/usr/local/lib/python2.7/dist-packages/Babel-0.9.6-py2.7.egg/babel/messages/extract.py", line 171, in extract_from_dirstrip_comment_tags):File "/usr/local/lib/python2.7/dist-packages/Babel-0.9.6-py2.7.egg/babel/messages/extract.py", line 201, in extract_from_filestrip_comment_tags))File "/usr/local/lib/python2.7/dist-packages/Babel-0.9.6-py2.7.egg/babel/messages/extract.py", line 270, in extractraise ValueError('Unknown extraction method %r' % method)
ValueError: Unknown extraction method 'jinja2'
It turned out that I had forgotten to install jinja2. Since the server environment had it installed I didn't notice it first. After installing jinja2 with:
$ sudo pip install jinja2
the extraction would complete:
$ pybabel extract -F babel.cfg -o messages.pot .
extracting messages from admin.py
:
extracting messages from test/item_tests.py
writing PO template file to messages.pot