设为首页 - 加入收藏
广告 1000x90
您的当前位置:主页 > 澳门葡京网站平台 > 正文

国际化和本地化 flask mega

来源:澳门葡京注册 编辑:澳门葡京注册 时间:2018-08-04

生成一个语言目录

这个过程的下一步就是为一个新语言创建翻译。我们说过我们要做西班牙版本(语言代码为 es),因此这是添加西班牙语到我们应用程序的命令:

flask/bin/pybabel init -i messages.pot -d app/translations -l es

pybabel init 命令把 .pot 文件作为输入,生成一个新语言目录,以 -d 选项指定的目录为新语言的目录,以 -l 指定的语言为想要翻译成的语言类型。默认情况下,Babel 希望翻译的语言在与模版相同目录级别的 translations 文件夹中,因此我们把它们放在这里。

在你运行上述命令后,一个目录 app/translations/es 是创建了。在它里面有另一个名为 LC_MESSAGES 的目录,在它里面有一个 messages.po 文件。

下面就是翻译成西班牙语的截图:

/uploads/allimg/180804/13042923C_0.jpg

一旦文本翻译完成并且保存成 messages.po 文件,还有另外一个来发布这些文本:

flask/bin/pybabel compile -d app/translations

pybabel compile 这一步会读取 .po 文件的内容并且会在相同的目录下生成一个名为 .mo 的编译的版本。这个文件以一种优化的格式包含了翻译的文本,应用程序可以更高效地使用它。

翻译已经准备好被使用了。为了验证它你可以修改浏览器上的语言设置让西班牙语为最佳语言,或者你可以直接修改 get_locale 函数(文件 app/views.py):

@babel.localeselector def get_locale(): return "es" #request.accept_languages.best_match(LANGUAGES.keys())

网友评论:

栏目分类