# General Translation Python SDKs: Определение локали запроса URL: https://generaltranslation.com/ru/docs/python/guides/detecting-locale.mdx --- title: Определение локали запроса description: Как автоматически определять локаль для каждого запроса или задавать собственную логику в General Translation для Python. related: links: - /docs/python/guides/translating-strings - /docs/python/guides/configuring - /docs/python/guides/declaring-variables - /docs/python/guides/storing-translations --- Каждый вызов [`t`](/docs/python/reference/functions/t) переводит текст в локаль текущего запроса. [`initialize_gt`](/docs/python/reference/functions/initialize-gt) настраивает определение локали за вас; вы можете использовать вариант по умолчанию или передать собственный callback. ## Используйте определение по умолчанию [#default] По умолчанию SDK читает заголовок `Accept-Language`, разбирает его q-параметры и выбирает наиболее подходящее значение из настроенных `locales`, а если совпадения нет — использует локаль по умолчанию. Flask делает это в хуке `before_request`, а FastAPI — в HTTP middleware. Дополнительная настройка не требуется. Получить определённую локаль в любом месте запроса можно с помощью [`get_locale`](/docs/python/reference/functions/get-locale). ```python from gt_flask import get_locale # или: from gt_fastapi import get_locale get_locale() ``` ## Настройте собственное определение локали [#custom] Чтобы учитывать явный выбор — параметр строки запроса, cookie-файл или префикс пути, — передайте callback `get_locale` в `initialize_gt`. Пользовательский callback полностью заменяет определение через `Accept-Language`; при его использовании `Accept-Language` больше не учитывается. ```python def detect_locale(request): return request.args.get("lang") or request.cookies.get("locale") or "en" initialize_gt(app, default_locale="en", locales=["es", "fr"], get_locale=detect_locale) ``` ```python def detect_locale(request): return request.query_params.get("lang") or request.cookies.get("locale") or "en" initialize_gt(app, default_locale="en", locales=["es", "fr"], get_locale=detect_locale) ``` Возвращённое вами значение сохраняется для запроса как есть. Если callback возвращает ложное значение, например `None`, будет использована настроенная локаль по умолчанию (а не `Accept-Language`), поэтому, если вам нужно другое поведение, возвращайте явное резервное значение. *Примечание: в отличие от встроенного определения через `Accept-Language`, возвращаемое значение пользовательского callback не проверяется повторно на соответствие настроенным `locales`. Возвращайте поддерживаемую локаль или самостоятельно обрабатывайте неподдерживаемые значения.* ## Next steps - /docs/python/guides/translating-strings - /docs/python/guides/configuring - /docs/python/guides/declaring-variables - /docs/python/guides/storing-translations