Module

i18n.middleware

Locale middleware — detect and set locale per request.

Classes

LocaleMiddleware 2
Detect locale from request and set it for the current context. Detection order (configurable): 1. …

Detect locale from request and set it for the current context.

Detection order (configurable):

  1. URL prefix (/es/...) — when url_prefix is True
  2. Cookie (chirp_locale)
  3. Accept-Language header
  4. Default locale

Usage::

app.add_middleware(LocaleMiddleware(
    supported_locales=("en", "es", "ja"),
    default_locale="en",
))

Methods

Internal Methods 2
__init__ 4
def __init__(self, supported_locales: tuple[str, ...] = ('en',), default_locale: str = 'en', cookie_name: str = 'chirp_locale', url_prefix: bool = False) -> None
Parameters
Name Type Description
supported_locales Default:('en',)
default_locale Default:'en'
cookie_name Default:'chirp_locale'
url_prefix Default:False
__call__ 2 AnyResponse
async
async def __call__(self, request: Request, next: Next) -> AnyResponse
Parameters
Name Type Description
request
next
Returns
AnyResponse