我正在通过Miguel Grinberg的新Flask教程,并将其制作成i18n / l10n。本章的一半令人头疼。
首先,pybabel extract -F babel.cfg -k _l -o messages.pot
不会运行。我得到的只是:pybabel: error: no input files or directories specified
无论如何,谷歌快速搜索说:pybabel extract -F babel.cfg -k _l -o messages.pot --input-dir=.
可行。确实如此。
我看到它应该在读数中提取的所有文件。
...
extracting messages from app/routes.py
extracting messages from app/templates/404.html (extensions="jinja2.ext.autoescape,jinja2.ext.with_")
...
下载,生成语言目录。 pybabel init -i messages.pot -d app/translations -l es
运行时没有错误,当我打开文件时看起来很好。当我发现我的messages.po
文件比Miguel短了100行时,我开始复制/粘贴翻译。
我仔细查看了我的文件版本,发现虽然pybabel可能已经查看了我的所有文件,但它并没有从某些文件中提取任何内容。
我只能推测添加--input-dir=.
可能会改变一些事情,但我无法让pybabel在没有它的情况下运行而谷歌搜索pybabel extract babel.cfg messages.pot "no input files"
会返回3个结果,所有这些都提到了改变。
对于熟悉Mega教程的任何人,pybabel都不会从我的base.html
,_post.html
或user.html
文件中提取任何内容。
答案 0 :(得分:0)
我认为你的错误在于提取命令。它应该是:
pybabel extract -F babel.cfg -k _l -o messages.pot .
注意messages.pot之后的点。这是pybabel需要开始扫描文件的目录。我甚至都不知道--input-dir
选项,你在哪里找到它?它没有列在extract command的pybabel文档中。