# General Translation Python SDKs: Быстрый старт
URL: https://generaltranslation.com/ru/docs/python/quickstart.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Установите Python SDK от General Translation и переведите своё первое приложение на Flask или FastAPI.

Python SDK от General Translation переводит пользовательские строки в приложениях Flask и FastAPI. Вы один раз инициализируете его в приложении, а затем оборачиваете строки в маршрутах функцией [`t`](/docs/python/reference/functions/t), которая переводит их в локаль текущего запроса.

Установите интеграцию для своего фреймворка: `gt-flask` для Flask, `gt-fastapi` для FastAPI. Обе интеграции построены на общем runtime `gt-i18n`, который также можно использовать напрямую в проекте без фреймворка.

<Callout type="warn">
  Python SDK **экспериментальный и нестабильный**. `gt-i18n`, `gt-flask` и `gt-fastapi` всё ещё находятся на ранней стадии разработки, и между релизами в них возможны ломающие изменения. Требуется Python 3.10 или новее.
</Callout>

## Что умеет Python SDK [#overview]

SDK предоставляет:

* **Перевод строк** с помощью [`t`](/docs/python/reference/functions/t) с использованием синтаксиса сообщений ICU.
* **Определение локали для каждого запроса** по заголовку `Accept-Language` или по вашей собственной логике.
* **Фиксированные варианты** с [`derive`](/docs/python/reference/functions/derive) и непереводимые значения с [`declare_var`](/docs/python/reference/functions/declare-var).
* **Доставку переводов через CDN или локально**, сгенерированных с помощью [General Translation CLI](/docs/cli/quickstart).

## Быстрый старт [#quickstart]

Установите интеграцию, добавьте файл конфигурации, инициализируйте её в приложении и переведите строку.

### 1. Установите интеграцию

<Tabs items={['Flask', 'FastAPI']}>
  <Tab value="Flask">
    ```bash
    pip install gt-flask
    ```
  </Tab>

  <Tab value="FastAPI">
    ```bash
    pip install gt-fastapi
    ```
  </Tab>
</Tabs>

### 2. Настройте локали

Создайте файл `gt.config.json` в корне проекта и укажите в нём идентификатор проекта и `locales`. Описание каждого ключа см. в [справочнике по конфигурации](/docs/python/reference/config).

```json title="gt.config.json"
{
  "projectId": "your-project-id",
  "defaultLocale": "en",
  "locales": ["es", "fr"]
}
```

Если используется placeholder `projectId`, приложение по-прежнему запускается, а локаль запроса по-прежнему меняется, но все строки возвращаются на языке-источнике. Это нормально, пока вы не укажете собственный идентификатор проекта и не опубликуете переводы.

### 3. Инициализация в приложении

Вызовите `initialize_gt(app)` один раз при запуске. Функция считывает `gt.config.json`, регистрирует определение локали для каждого запроса и заранее загружает переводы. Параметр ключа API не нужен — загрузка через CDN использует `project_id` и `cache_url`.

<Tabs items={['Flask', 'FastAPI']}>
  <Tab value="Flask">
    ```python title="app.py"
    from flask import Flask
    from gt_flask import initialize_gt, t, get_locale

    app = Flask(__name__)
    initialize_gt(app)

    @app.route("/")
    def index():
        return {"message": t("Hello, world!"), "locale": get_locale()}
    ```

    Запустите командой:

    ```bash
    flask --app app run
    ```
  </Tab>

  <Tab value="FastAPI">
    ```python title="main.py"
    from fastapi import FastAPI
    from gt_fastapi import initialize_gt, t, get_locale

    app = FastAPI()
    initialize_gt(app)

    @app.get("/")
    def index():
        return {"message": t("Hello, world!"), "locale": get_locale()}
    ```

    Для FastAPI требуется отдельный ASGI-сервер. Установите Uvicorn и запустите приложение командой:

    ```bash
    pip install "uvicorn[standard]"
    uvicorn main:app
    ```
  </Tab>
</Tabs>

### 4. Перевод с использованием переменных

Используйте плейсхолдеры ICU и передавайте значения в виде именованных аргументов.

```python
t("Hello, {name}!", name="Alice")
```

### 5. Сгенерируйте переводы

Используйте [General Translation CLI](/docs/cli/quickstart), чтобы перевести контент перед развертыванием, — тогда переводы будут доступны во время выполнения. CLI — это инструмент для Node, поэтому у вас должен быть установлен Node; запуск выполняется через `npx`.

```bash
npx gt translate
```

## Используйте основную библиотеку без фреймворка [#core]

Если вы не используете Flask или FastAPI, установите `gt-i18n` напрямую. В основной библиотеке нет [`initialize_gt`](/docs/python/reference/functions/initialize-gt) — создайте [`I18nManager`](/docs/python/reference/classes/i18n-manager), зарегистрируйте его с помощью [`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager) и самостоятельно задайте локаль запроса.

```bash
pip install gt-i18n
```

```python
from gt_i18n import I18nManager, set_i18n_manager, t

manager = I18nManager(default_locale="en", locales=["es", "fr"])
set_i18n_manager(manager)

manager.set_locale("es")
print(t("Hello, world!"))
```

(См. [Перевод строк](/docs/python/guides/translating-strings), чтобы узнать о контексте и переменных, и [Определение локали запроса](/docs/python/guides/detecting-locale), чтобы настроить определение локали).

## Next steps

- /docs/python/guides/translating-strings
- /docs/python/guides/detecting-locale
- /docs/python/guides/declaring-variables
- /docs/python/guides/storing-translations

## Sitemap

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