# General Translation Python SDKs: t
URL: https://generaltranslation.com/ru/docs/python/reference/functions/t.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Переводит строку ICU MessageFormat и выполняет интерполяцию с помощью General Translation в Python. Справка по API для t.

Переводит строку ICU MessageFormat и выполняет интерполяцию для активной локали запроса. `t` — основная пользовательская функция перевода.

## Обзор [#overview]

Вызовите `t`, передав исходную строку и любые переменные для интерполяции в виде именованных аргументов. Она возвращает переведённую строку с подставленными значениями для текущей локали, а если перевод не найден — исходную строку с подставленными значениями.

```python
from gt_flask import t  # или: from gt_fastapi import t, или: from gt_i18n import t

message = t("Hello, {name}!", name="World")
```

Сигнатура:

```python
t(message: str, **kwargs: object) -> str
```

*Примечание: `t` использует активный менеджер, поэтому сначала нужно вызвать [`initialize_gt`](/docs/python/reference/functions/initialize-gt) (или [`set_i18n_manager`](/docs/python/reference/functions/set-i18n-manager)). В противном случае будет вызвано исключение `RuntimeError`.*

## Как это работает [#how-it-works]

* **Проверка локали.** Функция получает текущую локаль из менеджера. Если для этой локали перевод не требуется (например, она совпадает с локалью по умолчанию), поиск пропускается и выполняется только интерполяция исходного текста.
* **Поиск по хешу.** В противном случае она хеширует сообщение (с `_context`, `_id` и `_max_chars`) и получает кэшированный перевод для этой локали из кэша в памяти. Кэш синхронный, поэтому перевод должен быть уже загружен — см. [предварительная загрузка](/docs/python/guides/configuring#preload).
* **Интерполяция.** Найденный перевод интерполируется с помощью ICU MessageFormat с использованием ваших переменных и исходного текста в качестве `__fallback` для разрешения объявленных переменных `_gt_`.
* **Резервный вариант.** Если перевод не найден, функция интерполирует и возвращает исходную строку.

## Параметры [#parameters]

| Параметр              | Описание                                                  | Тип                   | Необязательный | По умолчанию |
| --------------------- | --------------------------------------------------------- | --------------------- | -------------- | ------------ |
| [`message`](#message) | Исходная строка в формате ICU MessageFormat.              | `str`                 | Нет            | —            |
| [`kwargs`](#kwargs)   | Переменные интерполяции и зарезервированные параметры GT. | именованные аргументы | Да             | —            |

### `message` [#message]

**Тип** `str` · **Обязательно**

Исходная строка в формате ICU MessageFormat для перевода и интерполяции.

### `kwargs` [#kwargs]

**Тип** именованные аргументы · **Необязательно**

Переменные интерполяции, соответствующие заполнителям ICU, а также следующие зарезервированные параметры GT, которые исключаются из интерполяции и включаются в хеш сообщения:

* `_context` (`str`) — дополнительный контекст, помогающий различать переводы с одинаковым исходным текстом.
* `_id` (`str`) — пользовательский идентификатор для записи перевода.
* `_max_chars` (`int`) — максимальная длина результата в символах.

*Пользовательская переменная, имя которой начинается с одного символа подчёркивания (например, `_name`), по-прежнему считается переменной интерполяции; зарезервированы только три указанных выше ключа.*

## Возвращаемое значение [#returns]

**Тип** `str`

Переведённая строка с подставленными значениями либо исходная строка с подставленными значениями, если перевод недоступен.

## Примеры [#examples]

```python
# Простой перевод
t("Hello, world!")
```

```python
# С переменными
t("Hello, {name}!", name="Alice")
```

```python
# С контекстом для разграничения одинакового исходного текста
t("Bank", _context="financial institution")
t("Bank", _context="river bank")
```

```python
# С f-строками и declare_var — оборачивайте динамические значения, чтобы они сохранялись
from gt_flask import t, declare_var

# До i18n:
message = f"{name} goes home"

# После i18n — оберните с помощью t() и declare_var():
message = t(f"{declare_var(name, name='name')} goes home")
```

```python
# С ограничением по количеству символов
t("This is a very long message that might need truncation", _max_chars=20)
```

## Sitemap

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