# General Translation Python SDKs: Detectar la configuración regional de la solicitud
URL: https://generaltranslation.com/es/docs/python/guides/detecting-locale.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Cómo determinar automáticamente la configuración regional de cada solicitud, o hacerlo con tu propia lógica, en General Translation para Python.

Cada llamada a [`t`](/docs/python/reference/functions/t) traduce según la configuración regional actual de la solicitud. [`initialize_gt`](/docs/python/reference/functions/initialize-gt) registra la detección de la configuración regional por ti; puedes usar la predeterminada o proporcionar tu propio callback.

## Usa la detección predeterminada [#default]

De forma predeterminada, el SDK lee la cabecera `Accept-Language`, analiza sus valores de calidad y elige la mejor coincidencia entre las configuraciones regionales que hayas configurado; si no encuentra ninguna, usa la configuración regional predeterminada. Flask hace esto en un hook `before_request`; FastAPI lo hace en middleware HTTP. No hace falta ninguna configuración adicional.

Consulta la configuración regional resuelta desde cualquier punto de una solicitud con [`get_locale`](/docs/python/reference/functions/get-locale).

```python
from gt_flask import get_locale  # o bien: from gt_fastapi import get_locale

get_locale()
```

## Define una detección personalizada [#custom]

Para respetar una elección explícita —un parámetro de consulta, una cookie o un prefijo de ruta—, pasa un callback [`get_locale`](/docs/python/reference/functions/get-locale) a [`initialize_gt`](/docs/python/reference/functions/initialize-gt). Un callback personalizado reemplaza por completo la detección de `Accept-Language`; si proporcionas el tuyo, no se usa la integrada.

<Tabs items={['Flask', 'FastAPI']}>
  <Tab value="Flask">
    ```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)
    ```
  </Tab>

  <Tab value="FastAPI">
    ```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)
    ```
  </Tab>
</Tabs>

El valor que devuelvas se almacena tal cual para la solicitud. Si tu callback devuelve un valor falsy, como `None`, la configuración regional pasará a ser la configuración regional predeterminada configurada (no `Accept-Language`), así que devuelve un contenido alternativo explícito si quieres un comportamiento distinto.

*Nota: A diferencia de la detección integrada de `Accept-Language`, el valor devuelto por un callback personalizado no se vuelve a validar con las `locales` configuradas. Devuelve una configuración regional compatible o resuelve tú mismo los valores no compatibles.*

## Next steps

- /docs/python/guides/translating-strings
- /docs/python/guides/configuring
- /docs/python/guides/declaring-variables
- /docs/python/guides/storing-translations

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
