# General Translation Python SDKs: initialize_gt
URL: https://generaltranslation.com/ru/docs/python/reference/functions/initialize-gt.mdx
Docs index: https://generaltranslation.com/llms.txt
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`](/docs/python/reference/classes/i18n-manager) с определёнными параметрами и регистрируется через [`set_i18n_manager`](/docs/python/reference/functions/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)               | 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`](/docs/platform/core/reference/types/custom-mapping) · **Необязательно** · **Значение `конфигурация` по умолчанию**

Сопоставление пользовательских кодов локалей со стандартными кодами или переопределениями свойств. См. [`customMapping`](/docs/python/reference/config#custom-mapping).

### `project_id` [#project-id]

**Тип** `str` · **Необязательный** · **По умолчанию** — значение из `config`

Ваш 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`](/docs/python/reference/classes/i18n-manager)

Настроенный [`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)
```

## Sitemap

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