# General Translation Python SDKs: initialize_gt URL: https://generaltranslation.com/es/docs/python/reference/functions/initialize-gt.mdx --- title: initialize_gt description: Configura una vez el SDK de Python de General Translation para una aplicación Flask o FastAPI. Referencia de la API de initialize_gt. --- Configura General Translation para una aplicación Flask o FastAPI. Llama a `initialize_gt` una vez al iniciar la aplicación, antes de cualquier otra función de traducción, para crear el administrador de traducción, registrar la detección de configuración regional por solicitud y configurar la entrega de traducciones. ## Resumen general [#overview] Llama a `initialize_gt` con tu app. La configuración se carga desde `gt.config.json` en el directorio de trabajo actual, y cualquier argumento por palabra clave sobrescribe los valores del archivo. Devuelve el [`I18nManager`](/docs/python/reference/classes/i18n-manager) configurado y lo registra como el administrador activo, para que las llamadas posteriores a [`t`](/docs/python/reference/functions/t) y las utilidades de configuración regional funcionen automáticamente. ```python from flask import Flask from gt_flask import initialize_gt app = Flask(__name__) initialize_gt(app) ``` Firma: ```python initialize_gt( app, *, default_locale: str | None = None, locales: list[str] | None = None, custom_mapping: CustomMapping | None = None, project_id: str | None = None, cache_url: str | None = None, version_id: str | None = None, get_locale: Callable[..., str] | None = None, load_translations: Callable[[str], dict[str, str]] | None = None, eager_loading: bool = True, config_path: str | None = None, load_config: Callable[[str | None], GTConfig] | None = None, ) -> I18nManager ``` Importa `initialize_gt` desde `gt_flask` o `gt_fastapi`, según tu framework. La firma es idéntica en ambos casos. No hay ningún `initialize_gt` en la biblioteca Core; si no usas un framework, crea un [`I18nManager`](/docs/python/reference/classes/i18n-manager) y llama a [`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager) en su lugar. *Nota: No existe el parámetro `api_key`. La entrega por CDN depende de `project_id` y `cache_url`.* ## Cómo funciona [#how-it-works] * **Resolución de la configuración.** Carga la configuración (mediante `load_config`, una `config_path` explícita o el valor predeterminado `gt.config.json`) y luego resuelve cada ajuste usando, en este orden, el argumento de palabra clave, el valor de la configuración y, por último, el valor predeterminado de la biblioteca. * **Inicialización del administrador.** Construye un `I18nManager` con los ajustes resueltos y lo registra con `set_i18n_manager`. * **Detección de la configuración regional.** En Flask registra un hook `before_request`; en FastAPI añade un middleware HTTP y envuelve el ciclo de vida de la aplicación. En cada solicitud, establece la configuración regional a partir de [`get_locale`](/docs/python/reference/functions/get-locale) si se proporciona; de lo contrario, a partir de la cabecera `Accept-Language`. * **Carga anticipada.** Cuando `eager_loading` es `true` y se conocen las configuraciones regionales de destino, carga todas las traducciones por adelantado. En Flask, esto comprueba el argumento `locales` que pasas directamente (no las configuraciones regionales definidas solo en la configuración); en FastAPI, se ejecuta dentro del ciclo de vida envuelto con las configuraciones regionales resueltas. ## Parámetros [#parameters] | Parámetro | Descripción | Tipo | Opcional | Predeterminado | | ----------------------------------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------- | -------- | --------------------- | | [`app`](#app) | La instancia de la aplicación Flask o FastAPI. | `Flask \| FastAPI` | No | — | | [`default_locale`](#default-locale) | Configuración regional de origen y de respaldo. | `str` | Sí | Config y luego `"en"` | | [`locales`](#locales) | Configuraciones regionales de destino admitidas. | `list[str]` | Sí | Config | | [`custom_mapping`](#custom-mapping) | Códigos de configuración regional personalizados y anulaciones de propiedades. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Sí | Config | | [`project_id`](#project-id) | ID del proyecto; habilita el cargador de CDN cuando se establece. | `str` | Sí | Config | | [`cache_url`](#cache-url) | Anulación de la URL base de la CDN. | `str` | Sí | Config | | [`version_id`](#version-id) | Versión de traducción fijada. | `str` | Sí | Config | | [`get_locale`](#get-locale) | Callback personalizada para detectar la configuración regional. | `(request) -> str` | Sí | `Accept-Language` | | [`load_translations`](#load-translations) | Cargador personalizado que devuelve traducciones para una configuración regional. | `(locale: str) -> dict[str, str]` | Sí | — | | [`eager_loading`](#eager-loading) | Precarga todas las traducciones al iniciar. | `bool` | Sí | `True` | | [`config_path`](#config-path) | Ruta a un archivo `gt.config.json`. | `str` | Sí | `gt.config.json` | | [`load_config`](#load-config) | Cargador de configuración personalizado que reemplaza el predeterminado. | `(path: str \| None) -> GTConfig` | Sí | — | ### `app` [#app] **Tipo** `Flask | FastAPI` · **obligatorio** La instancia de la aplicación que se va a configurar. Se pasa por posición; todos los demás parámetros deben pasarse por nombre. ### `default_locale` [#default-locale] **Tipo** `str` · **Opcional** · **Predeterminado** valor de configuración, luego `"en"` La configuración regional de origen en la que está escrito tu contenido, y el contenido alternativo cuando no se encuentra ninguna traducción. Se determina a partir del argumento, luego de `defaultLocale` en `gt.config.json` y, por último, de `"en"`. ### `locales` [#locales] **Tipo** `list[str]` · **Opcional** · **Valor de configuración predeterminado** Las configuraciones regionales de destino que se admitirán. Toma el valor del argumento o, si no se proporciona, del array `locales` de `gt.config.json`. La configuración regional predeterminada siempre se incluye entre las configuraciones regionales del administrador. ### `custom_mapping` [#custom-mapping] **Tipo** `CustomMapping` · **Opcional** · **Valor predeterminado de la configuración** Un mapeo de códigos de configuración regional personalizados a códigos estándar o a anulaciones de propiedades. Consulta [`customMapping`](/docs/python/reference/config#custom-mapping). ### `project_id` [#project-id] **Tipo** `str` · **Opcional** · **Valor predeterminado** valor de configuración El ID de tu proyecto de General Translation. Cuando se establece (y no se proporciona `load_translations`), habilita la carga de traducciones desde la CDN en `{cache_url}/{project_id}/{locale}`. ### `cache_url` [#cache-url] **Type** `str` · **Optional** · **Valor de configuración predeterminado** Permite sobrescribir la URL base de la CDN que se usa para cargar las traducciones. La CDN de General Translation es `https://cdn.gtx.dev`. ### `version_id` [#version-id] **Tipo** `str` · **Opcional** · **Valor predeterminado** de la configuración La versión fijada de la traducción que se cargará. Corresponde a la clave de configuración `_versionId` y la devuelve [`get_version_id`](/docs/python/reference/functions/get-version-id). ### `get_locale` [#get-locale] **Tipo** `(request) -> str` · **Opcional** · **Predeterminado** análisis de `Accept-Language` Un callback personalizado para detectar la configuración regional. Recibe la solicitud y devuelve un código de configuración regional, sustituyendo por completo la detección integrada de `Accept-Language`. Si devuelve un valor falso, se usa la configuración regional predeterminada. ```python def get_locale(request): return request.args.get("lang") or "en" initialize_gt(app, get_locale=get_locale) ``` ### `load_translations` [#load-translations] **Tipo** `(locale: str) -> dict[str, str]` · **Opcional** Una función personalizada que carga traducciones para una configuración regional desde tu propio origen en lugar de la CDN. Si se proporciona, anula el cargador de la CDN. Puede ser síncrona o devolver un valor awaitable. ```python def load_translations(locale: str) -> dict[str, str]: # Carga las traducciones desde tu propia fuente ... initialize_gt(app, load_translations=load_translations) ``` ### `eager_loading` [#eager-loading] **Tipo** `bool` · **Opcional** · **Predeterminado** `True` Si es `true`, todas las traducciones se cargan al iniciarse en lugar de hacerlo en el primer uso. Consulta la nota [Cómo funciona](#how-it-works) sobre la diferencia entre Flask y FastAPI en cuanto al origen de la configuración regional. ### `config_path` [#config-path] **Tipo** `str` · **Opcional** · **Predeterminado** `gt.config.json` La ruta de un archivo `gt.config.json`. De forma predeterminada, se usa `gt.config.json` en el directorio de trabajo actual. Si se especifica una ruta que no existe, se genera `FileNotFoundError`. ### `load_config` [#load-config] **Tipo** `(path: str | None) -> GTConfig` · **Opcional** Una función personalizada para cargar la configuración que reemplaza al cargador de archivos predeterminado. Recibe `config_path` y devuelve un diccionario `GTConfig`. ## Devuelve [#returns] **Tipo** `I18nManager` El [`I18nManager`](/docs/python/reference/classes/i18n-manager) configurado, que ya está registrado como administrador activo. ## Ejemplos [#examples] ```python # Configuración mínima, leyendo gt.config.json from flask import Flask from gt_flask import initialize_gt app = Flask(__name__) initialize_gt(app) ``` ```python # Configuraciones regionales explícitas con un translation loader personalizado from fastapi import FastAPI from gt_fastapi import initialize_gt app = FastAPI() def load_translations(locale: str) -> dict[str, str]: # Carga las traducciones desde tu propia fuente ... initialize_gt(app, default_locale="en", locales=["es", "fr"], load_translations=load_translations) ```