在JS中添加FlaskBabel翻译的Flask扩展
Flask-Babel-JS的Python项目详细描述
烧瓶巴别尔JS
在JS中添加Flask-Babel翻译的Flask扩展。在
安装
通过pip安装:pip install flask-babel-js
请记住,这个扩展要求您
^{
使用
您可以直接或使用应用程序初始化此扩展 工厂模式:
fromflaskimportFlaskfromflask_babelimportBabelfromflask_babel_jsimportBabelJS# Initializing directly:app=Flask(__name__)babel=Babel(app)babel_js=BabelJS(app)# Initializing via application factory pattern:babel=Babel()babel_js=BabelJS()defcreate_app():app=Flask(__name__)babel.init_app(app)babel_js.init_app(app)returnapp
当扩展初始化时,一个名为babel_catalog
的新路由
添加到路由列表中。这是一个JavaScript文件,它包含
当前区域设置中的翻译。它还包括一个非常基本的
gettext
-你可以使用的类API。它与javascript
兼容
^{
将此项添加到babel.cfg
以提取Javascript翻译字符串:
要包括翻译目录和函数,请插入以下内容 在Jinja模板中:
<script src="{{url_for("babel_catalog")}}"></script>
然后,您可以使用Javascript API中可用的所有函数。在
Javascript中的用法示例:
// Translate a stringvars=_("Some untranslated text");// Translate a string with format valuesvars2=_("Hello, %(name)s!",{name:"John"});// Translate a string with plural formsvars3=ngettext("%(n)d item was deleted.","%(n)d items were deleted.",n,{n:n});// You can access all these functions through the babel object:// babel.gettext, babel.ngettext
Python API
flask_babel_js.BabelJS(app=None, view_path="/_jstrans.js")
初始化扩展对象。在
参数:
app
:烧瓶应用。如果您正在使用应用程序,则可以是None
工厂模式。在view_path
:目录URL的路径。默认为"/_jstrans.js"
。在
init_app(app)
使用扩展对象初始化应用程序。在
参数:
app
:烧瓶应用。在
catalog_view()
为目录提供JavaScript代码的catalog视图。你不会的 需要直接使用这个。在
Javascript API
window.babel
主要的BabelJS对象。在
catalog
当前区域设置的所有gettext消息都在此对象中。关键是 传递给gettext的原始参数,值是已翻译的 版本。如果翻译文本具有复数形式,则值是 复数形式。在
format(text, variables)
使用Python百分比格式设置文本格式。目前只支持s
,d
,
和f
作为格式类型。还需要一个格式名。对于扩展,只剩下左边
支持填充。在
参数:
text
:一个Python格式的字符串。在variables
:一个包含格式说明符值的对象。在
gettext(text, variables)
转换字符串。在
此函数在全局范围内作为gettext
和_
提供。在
参数:
text
:未翻译的字符串。在variables
:一个包含格式说明符值的对象。在
ngettext(text, plural_text, n, variables)
基于值转换具有复数形式的字符串。在
此函数作为ngettext
全局可用。在
参数:
text
:未翻译的字符串。在plural_text
:复数形式的未翻译字符串。在n
:选择窗体所依据的项的数量。在variables
:一个包含格式说明符值的对象。在
plural(n)
获取与此区域设置的项数相对应的复数形式的ID。在
参数:
n
:项目数。在
注意:如果没有在 区域设置中的gettext元数据。在
许可证
©2020 Efe Mert Demir版权所有。本软件根据3条BSD授权 许可证,其副本可在LICENSE中找到。在
- 项目
标签: