Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Muffin-Babel ############
.. _description:
Muffin-Babel -- an extension to Muffin_ that adds localization support with help of Babel_.
.. _badges:
.. image:: https://github.com/klen/muffin-babel/workflows/tests/badge.svg :target: https://github.com/klen/muffin-babel/actions :alt: Tests Status
.. image:: https://img.shields.io/pypi/v/muffin-babel :target: https://pypi.org/project/muffin-babel/ :alt: PYPI Version
.. image:: https://img.shields.io/pypi/pyversions/muffin-babel :target: https://pypi.org/project/muffin-babel/ :alt: Python Versions
.. _contents:
.. contents::
.. _requirements:
.. _installation:
Muffin-Babel should be installed using pip: ::
pip install muffin-babel
.. _usage:
Initialize and setup the plugin:
.. code-block:: python
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!')
Setup a locale selector function (by default the plugin is parsing accept-language
header):
.. code-block:: python
@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
Use babel.gettext
, babel.pgettext
callables in your code:
.. code-block:: python
@app.route('/')
def index(request):
return babel.gettext('Hello!')
The Muffin-Babel
has integration with Muffin-Jinja2
, so if you have
muffin_jinja2
plugin enabled, the plugin provides gettext
and ngettext
function inside the Jinja2 templates' context.
========================== ============== ===============================================
Name Default Value Description
========================== ============== ===============================================
AUTO_DETECT_LOCALE True
Installs a middleware to automatically detect users locales
CONFIGURE_JINJA2 True
Installs i18n support for jinja2 templates (through muffin-jinja
)
DEFAULT_LOCALE "en"
Default locale
DOMAIN "messages"
Default localization domain
SOURCES_MAP Babel sources map
OPTIONS_MAP Babel options map
========================== ============== ===============================================
You are able to provide the options when you are initiliazing the plugin:
.. code-block:: python
babel.setup(app, default_locale='fr')
Or setup it inside Muffin.Application
config using the BABEL_
prefix:
.. code-block:: python
BABEL_DEFAULT_LOCALE = 'fr'
Muffin.Application
configuration options are case insensitive
The plugin adds two commands to your Muffin_ application.
Extract strings from your application to locales: ::
$ muffin app_package babel_extract_messages [OPTIONS] appdir
Translate .po
files and compile translations: ::
$ muffin app_package babel_compile_messages [OPTIONS]
.. _bugtracker:
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/muffin-babel/issues
.. _contributing:
Development of Muffin-Babel happens at: https://github.com/klen/muffin-babel
.. _license:
Licensed under a MIT license
_.
.. _links:
.. _klen: https://github.com/klen .. _Muffin: https://github.com/klen/muffin .. _Muffin-Jinja2: https://github.com/klen/muffin-jinja2 .. _Babel: http://babel.edgewall.org/
.. _MIT license: http://opensource.org/licenses/MIT
FAQs
Localization support for the Muffin Framework
We found that muffin-babel demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.