我无法在Flask Babel中获得基本的翻译工作。
以下是我的步骤。
我在页面{{_("Hello")}}
我运行此命令。
pybabel extract -F babel.cfg -o messages.pot .
然后我为德语运行此命令。
pybabel init -i messages.pot -d translations -l de
以下是/app/translations/de/LC_MESSAGES/messages.po
# German translations for PROJECT.
# Copyright (C) 2012 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2012-09-24 03:36+0800\n"
"PO-Revision-Date: 2012-09-24 03:37+0800\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: de <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
#: templates/baseh5.html:129
msgid "Hello"
msgstr "Guten Tag"
我运行此命令。
pybabel compile -d translations
这就是我得到的。
catalog 'translations/de/LC_MESSAGES/messages.po' is marked as fuzzy, skipping
设置这是烧瓶
app.config['BABEL_DEFAULT_LOCALE'] = 'de'
我能得到什么?我得到Hello
。为什么Flask Babel不起作用?我该如何处理模糊?这应该是基本的。
答案 0 :(得分:8)
您可以强制pybabel compile
使用-f
(或--use-fuzzy
)命令行开关编译标记为模糊的消息:
pybabel compile -f -d translations
'模糊'消息在#, fuzzy
行上方标有msgid
行,并且是合并的结果,其中消息被认为与先前版本稍有不同。标记为fuzzy
的消息应该由人查看以确保翻译不需要更新,之后人工翻译将删除该标记。
答案 1 :(得分:3)
正如pybabel所说:目录本身被标记为“模糊”(第6行)。如果删除该行,则不需要“强制”选项。