# General Translation Python SDKs: t URL: https://generaltranslation.com/ru/docs/python/reference/functions/t.mdx --- title: t 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) ```