python - Babel 无法识别语言支持的 jinja2 提取方法

标签 python jinja2 translation python-babel

我正在为我的项目添加语言翻译支持。代码在 Python 上,在 html 文件和 Javascript 中有 jinja2。

我正在尝试使用 Babel 进行翻译,但它无法识别 jinja2 的提取方法。也许我使用的名称不正确。

这是我的 ini 文件:

# Extraction from Python source files
[python: **.py]
# Extraction from Jinja2 template files
[jinja2: **.html]
# Extraction from JavaScript files
[javascript: **.js]
extract_messages = $._, jQuery._

这是我收到的错误;

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 main
    return CommandLineInterface().run(sys.argv)
  File "Babel-0.9.6/babel/messages/frontend.py", line 651, in run
    return getattr(self, cmdname)(args[1:])
  File "Babel-0.9.6/babel/messages/frontend.py", line 912, in extract
    for 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_dir
    strip_comment_tags):
  File "c:\Python27\lib\site-packages\babel-0.9.6-py2.7.egg\babel\messages\extract.py", line 202, in extract_from_file
    strip_comment_tags))
  File "c:\Python27\lib\site-packages\babel-0.9.6-py2.7.egg\babel\messages\extract.py", line 271, in extract
    raise ValueError('Unknown extraction method %r' % method)
ValueError: Unknown extraction method 'jinja2'
Press any key to continue . . .

有什么想法吗? 谢谢, 嘎迪

最佳答案

我看到您的问题仍未得到解答。您的问题看起来与我重新安装开发环境后遇到的问题类似:

$ 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 main
    return 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 run
    return 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 extract
    for 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_dir
    strip_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_file
    strip_comment_tags))
  File "/usr/local/lib/python2.7/dist-packages/Babel-0.9.6-py2.7.egg/babel/messages/extract.py", line 270, in extract
    raise ValueError('Unknown extraction method %r' % method)
ValueError: Unknown extraction method 'jinja2'

原来是我忘记安装了jinja2 .由于服务器环境已经安装了它,所以我没有首先注意到它。在installing之后jinja2 有:

$ sudo pip install jinja2

提取将完成:

$ 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

关于python - Babel 无法识别语言支持的 jinja2 提取方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12046998/

相关文章:

python - 将 Flask 表单数据转换为 JSON 只获取第一个值

python - 在 Python 中将空字符串写入文本文件

python - 如何为Jinja Undefined错误创建自定义终结点?

python - 使用 Jinja 按嵌套字典值过滤

c++ - Qt 翻译文件在 make clean 上被删除,使用 CMake

c# - C#到PHP转换器

python - 考虑到 p 在 python 中是素数,当我执行 p/p+1 + p+1/p 操作时出错

python - pandas 将列合并为单个时间序列

python - Django 和 Bootstrap : Knowing Which Tab is Active

java - 可以逆转 I18N 翻译吗?