# General Translation Python SDKs: initialize_gt URL: https://generaltranslation.com/ru/docs/python/reference/functions/initialize-gt.mdx --- title: initialize_gt description: Однократно настройте Python SDK General Translation для приложения Flask или FastAPI. Справочник по API для initialize_gt. --- Настраивает General Translation для приложения Flask или FastAPI. Вызовите `initialize_gt` один раз при запуске — до вызова любых других функций перевода, — чтобы создать менеджер переводов, зарегистрировать определение локали для каждого запроса и настроить доставку переводов. ## Обзор [#overview] Вызовите `initialize_gt`, передав приложение. Настройки загружаются из `gt.config.json` в текущем рабочем каталоге, а любые именованные аргументы переопределяют значения из файла. Функция возвращает настроенный [`I18nManager`](/docs/python/reference/classes/i18n-manager) и регистрирует его как активный менеджер, поэтому последующие вызовы [`t`](/docs/python/reference/functions/t) и вспомогательных функций локали работают автоматически. ```python from flask import Flask from gt_flask import initialize_gt app = Flask(__name__) initialize_gt(app) ``` Сигнатура: ```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 ``` Импортируйте `initialize_gt` из `gt_flask` или `gt_fastapi` — в зависимости от используемого фреймворка. Сигнатура в обоих случаях одинакова. В основной библиотеке `initialize_gt` нет; если вы не используете фреймворк, создайте [`I18nManager`](/docs/python/reference/classes/i18n-manager) и вместо этого вызовите [`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager). *Примечание: параметра `api_key` нет. Доставка через CDN определяется параметрами `project_id` и `cache_url`.* ## Как это работает [#how-it-works] * **Разрешение конфигурации.** Загружается конфигурация (через `load_config`, явно указанный `config_path` или `gt.config.json` по умолчанию), после чего каждый параметр определяется в следующем порядке: сначала аргумент ключевого слова, затем значение из конфигурации, затем значение библиотеки по умолчанию. * **Инициализация менеджера.** Создаётся `I18nManager` с определёнными параметрами и регистрируется через `set_i18n_manager`. * **Определение локали.** В Flask регистрируется hook `before_request`; в FastAPI добавляется HTTP middleware и оборачивается жизненный цикл приложения. Для каждого запроса локаль задаётся через [`get_locale`](/docs/python/reference/functions/get-locale), если он указан, в противном случае — из header `Accept-Language`. * **Предварительная загрузка.** Когда `eager_loading` равно true и целевые локали известны, все переводы загружаются заранее. В Flask при этом проверяется аргумент `locales`, который вы передаёте напрямую (а не локали, указанные только в конфигурации); в FastAPI это выполняется внутри обёрнутого жизненного цикла приложения для определённых локалей. ## Параметры [#parameters] | Параметр | Описание | Тип | Необязательный | По умолчанию | | ----------------------------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------- | -------------- | -------------------------- | | [`app`](#app) | Экземпляр приложения Flask или FastAPI. | `Flask \| FastAPI` | Нет | — | | [`default_locale`](#default-locale) | Исходная и резервная локаль. | `str` | Да | Конфигурация, затем `"en"` | | [`locales`](#locales) | Поддерживаемые целевые локали. | `list[str]` | Да | Конфигурация | | [`custom_mapping`](#custom-mapping) | Пользовательские коды локалей и переопределения свойств. | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Да | Конфигурация | | [`project_id`](#project-id) | Идентификатор проекта; при указании включает загрузчик CDN. | `str` | Да | Конфигурация | | [`cache_url`](#cache-url) | Переопределение базового URL CDN. | `str` | Да | Конфигурация | | [`version_id`](#version-id) | Закреплённая версия переводов. | `str` | Да | Конфигурация | | [`get_locale`](#get-locale) | Пользовательский колбэк для определения локали. | `(request) -> str` | Да | `Accept-Language` | | [`load_translations`](#load-translations) | Пользовательский загрузчик, возвращающий переводы для локали. | `(locale: str) -> dict[str, str]` | Да | — | | [`eager_loading`](#eager-loading) | Предзагружать все переводы при запуске. | `bool` | Да | `True` | | [`config_path`](#config-path) | Путь к файлу `gt.config.json`. | `str` | Да | `gt.config.json` | | [`load_config`](#load-config) | Пользовательский загрузчик конфигурации вместо стандартного. | `(path: str \| None) -> GTConfig` | Да | — | ### `app` [#app] **Тип** `Flask | FastAPI` · **Обязательно** Экземпляр приложения, который требуется настроить. Он передаётся как позиционный аргумент; все остальные параметры — только по ключу. ### `default_locale` [#default-locale] **Тип** `str` · **Необязательный** · **По умолчанию** значение из конфигурации, затем `"en"` Локаль исходного контента, а также резервная локаль, если перевод не найден. Определяется по аргументу, затем по `defaultLocale` в `gt.config.json`, затем по `"en"`. ### `locales` [#locales] **Тип** `list[str]` · **Необязательный** · **По умолчанию:** значение конфигурации Поддерживаемые целевые локали. Используется значение аргумента, а если оно не указано — массив `locales` из `gt.config.json`. Локаль по умолчанию всегда включена в набор локалей менеджера. ### `custom_mapping` [#custom-mapping] **Тип** `CustomMapping` · **Необязательно** · **Значение `config` по умолчанию** Сопоставление пользовательских кодов локалей со стандартными кодами или переопределениями свойств. См. [`customMapping`](/docs/python/reference/config#custom-mapping). ### `project_id` [#project-id] **Тип** `str` · **Необязательный** · **По умолчанию** — значение из `config` Ваш project ID в General Translation. Если он задан (и `load_translations` не указан), включается загрузка переводов из CDN по адресу `{cache_url}/{project_id}/{locale}`. ### `cache_url` [#cache-url] **Тип** `str` · **Необязательный** · **Значение конфигурации по умолчанию** Позволяет переопределить базовый URL CDN, используемый для загрузки переводов. CDN General Translation: `https://cdn.gtx.dev`. ### `version_id` [#version-id] **Тип** `str` · **Необязательный** · **Значение config по умолчанию** Закреплённая версия перевода, которую нужно загрузить. Соответствует ключу конфигурации `_versionId` и возвращается функцией [`get_version_id`](/docs/python/reference/functions/get-version-id). ### `get_locale` [#get-locale] **Тип** `(request) -> str` · **Необязательно** · **По умолчанию** разбор `Accept-Language` Пользовательский колбэк для определения локали. Он принимает запрос и возвращает код локали, полностью заменяя встроенное определение через `Accept-Language`. Если возвращается falsy-значение, используется локаль по умолчанию. ```python def get_locale(request): return request.args.get("lang") or "en" initialize_gt(app, get_locale=get_locale) ``` ### `load_translations` [#load-translations] **Тип** `(locale: str) -> dict[str, str]` · **Необязательно** Пользовательская функция, которая загружает переводы для локали из собственного источника вместо CDN. Если она указана, то переопределяет загрузчик CDN. Она может быть синхронной или возвращать awaitable-объект. ```python def load_translations(locale: str) -> dict[str, str]: # Загрузите переводы из вашего источника ... initialize_gt(app, load_translations=load_translations) ``` ### `eager_loading` [#eager-loading] **Тип** `bool` · **Необязательно** · **По умолчанию** `True` Если значение равно true, все переводы загружаются при запуске, а не при первом использовании. См. примечание [Как это работает](#how-it-works) о различии в источнике локали между Flask и FastAPI. ### `config_path` [#config-path] **Тип** `str` · **Необязательный** · **По умолчанию** `gt.config.json` Путь к файлу `gt.config.json`. По умолчанию используется файл `gt.config.json` из текущего рабочего каталога. Если указан явный путь, но такого файла не существует, возникает `FileNotFoundError`. ### `load_config` [#load-config] **Тип** `(path: str | None) -> GTConfig` · **Необязательный** Пользовательская функция загрузки конфигурации, заменяющая стандартный загрузчик файлов. Получает `config_path` и возвращает словарь `GTConfig`. ## Возвращает [#returns] **Тип** `I18nManager` Настроенный [`I18nManager`](/docs/python/reference/classes/i18n-manager), уже зарегистрированный в качестве активного менеджера. ## Примеры [#examples] ```python # Минимальная настройка, чтение gt.config.json from flask import Flask from gt_flask import initialize_gt app = Flask(__name__) initialize_gt(app) ``` ```python # Явные локали с пользовательским загрузчиком переводов from fastapi import FastAPI from gt_fastapi import initialize_gt app = FastAPI() def load_translations(locale: str) -> dict[str, str]: # Загрузите переводы из собственного источника ... initialize_gt(app, default_locale="en", locales=["es", "fr"], load_translations=load_translations) ```