跳转到主要内容

Muffin框架的本地化支持

项目描述

松饼-Babel – 是Muffin的扩展,通过Babel添加本地化支持。

Tests Status PYPI Version Python Versions

要求

  • python >= 3.9

安装

松饼-Babel应使用pip安装

pip install muffin-babel

用法

初始化和设置插件

import muffin
import muffin_babel

# Create Muffin Application
app = muffin.Application('example')

# Initialize the plugin
# As alternative: babel = muffin_babel.Plugin(app, **options)
babel = muffin_babel.Plugin()
babel.setup(app, template_folders=['src/templates'])

# Use it inside your handlers
@app.route('/')
async def index(request):
    # Get current locale
    assert babel.current_locale
    # Translate a text
    return babel.gettext('Hello World!')

设置一个区域选择函数(默认情况下,插件解析accept-language头)

@babel.locale_selector
async def get_locale(request):
    """ Return locale either from request.query or from request headers. """
    locale = request.query.get('lang')
    if not locale:
        return await muffin_babel.select_locale_by_request(request, default)
    return locale

在您的代码中使用babel.gettextbabel.pgettext可调用函数

@app.route('/')
def index(request):
    return babel.gettext('Hello!')

Jinja2

Muffin-BabelMuffin-Jinja2集成,因此如果您启用了muffin_jinja2插件,则插件在Jinja2模板的上下文中提供gettextngettext函数。

选项

名称

默认值

描述

AUTO_DETECT_LOCALE

True

安装一个中间件以自动检测用户的区域设置

CONFIGURE_JINJA2

True

通过muffin-jinja为jinja2模板安装国际化支持

DEFAULT_LOCALE

"en"

默认区域设置

DOMAIN

"messages"

默认本地化域

SOURCES_MAP

Babel源映射

OPTIONS_MAP

babel配置选项映射

在初始化插件时,您可以提供这些选项

babel.setup(app, default_locale='fr')

或者,在Muffin.Application配置中使用BABEL_前缀来设置它

BABEL_DEFAULT_LOCALE = 'fr'

Muffin.Application的配置选项不区分大小写

命令

此插件为您的Muffin应用增加了两个命令。

提取消息

从您的应用程序中提取字符串到本地化

$ muffin app_package babel_extract_messages [OPTIONS] appdir

翻译.po文件并编译翻译

$ muffin app_package babel_compile_messages [OPTIONS]

错误跟踪器

如果您有任何建议、错误报告或不满,请向https://github.com/klen/muffin-babel/issues的问题跟踪器报告

贡献

Muffin-Babel的开发发生在:https://github.com/klen/muffin-babel

贡献者

  • klen (Kirill Klenov)

许可协议

许可协议为MIT许可证

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装软件包的信息。

源代码分发

muffin_babel-1.5.0.tar.gz (5.9 kB 查看哈希值)

上传时间: 源代码

构建分发

muffin_babel-1.5.0-py3-none-any.whl (6.0 kB 查看哈希值)

上传时间: Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面