starlette-i18n

Localisation helper for starlette


Keywords
babel, i18n, starlette
License
Apache-2.0
Install
pip install starlette-i18n==2.0.0

Documentation

starlette-i18n

CI codecov pypi downloads versions license

starlette-i18n is a localisation helper for starlette.

Installation

starlette-i18n is available on PyPI. Use pip to install:

$ pip install starlette-i18n

Basic Usage

import uvicorn
from starlette.applications import Starlette
from starlette.responses import PlainTextResponse

from starlette_i18n import (
    DEFAULT_LOCALE,
    LANGUAGE_HEADER,
    LocaleFromHeaderMiddleware,
    load_gettext_translations,
)
from starlette_i18n import gettext_lazy as _

BABEL_DOMAIN = "messages"
BABEL_LOCALES_PATH = "locales"


def init_app():
    load_gettext_translations(directory=BABEL_LOCALES_PATH, domain=BABEL_DOMAIN)

    app_ = Starlette()
    app_.add_middleware(
        LocaleFromHeaderMiddleware, 
        language_header=LANGUAGE_HEADER, 
        default_code=DEFAULT_LOCALE
    )

    @app_.route("/")
    def success(request):
        return PlainTextResponse(_("OK"), status_code=200)

    return app_


app = init_app()

if __name__ == "__main__":
    uvicorn.run(app=app)

License

starlette-i18n is developed and distributed under the Apache 2.0 license.

Reporting a Security Vulnerability

See our security policy.