在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翻译字符串:

^{pr2}$

要包括翻译目录和函数,请插入以下内容 在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百分比格式设置文本格式。目前只支持sd, 和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中找到。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener