# General Translation Python SDKs: hash_message
URL: https://generaltranslation.com/ru/docs/python/reference/functions/hash-message.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Хеширует строку ICU MessageFormat для поиска перевода в General Translation Python. Справочник API для hash_message.

Возвращает шестнадцатеричный ключ, используемый для поиска перевода строки ICU MessageFormat, вычисляемый путём хеширования строки. Это тот же хеш, который [`t`](/docs/python/reference/functions/t) вычисляет внутри, поэтому вы можете использовать его для создания или проверки словаря переводов.

## Обзор [#overview]

Вызовите `hash_message`, передав исходную строку и необязательные именованные параметры `context`, `id` и `max-chars`. Функция индексирует переменные сообщения, а затем вычисляет его хеш с `data_format="ICU"`.

```python
from gt_i18n import hash_message

h = hash_message("Hello, world!")
```

Сигнатура:

```python
hash_message(
    message: str,
    *,
    context: str | None = None,
    id: str | None = None,
    max_chars: int | None = None,
) -> str
```

Импортируйте `hash_message` из `gt_i18n`. `hash_message` не реэкспортируется пакетами фреймворка.

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

* **Индексация переменных.** Сначала сообщение нормализуется за счёт индексации переменных, чтобы эквивалентные сообщения давали одинаковый хеш.
* **Хеширование.** Затем вычисляется хеш нормализованного сообщения вместе с `context`, `id` и `max_chars` в соответствии с реализацией JS gt-i18n. Изменение любого из этих значений приводит к другому хешу.

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

| Параметр                  | Описание                                     | Тип           | Необязательный | По умолчанию |
| ------------------------- | -------------------------------------------- | ------------- | -------------- | ------------ |
| [`message`](#message)     | Исходная строка в формате ICU MessageFormat. | `str`         | Нет            | —            |
| [`context`](#context)     | Строка контекста для снятия неоднозначности. | `str \| None` | Да             | `None`       |
| [`id`](#id)               | Явный идентификатор сообщения.               | `str \| None` | Да             | `None`       |
| [`max_chars`](#max-chars) | Максимально допустимое количество символов.  | `int \| None` | Да             | `None`       |

### `message` [#message]

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

Исходная строка ICU MessageFormat, для которой вычисляется хеш.

### `context` [#context]

**Тип** `str | None` · **Необязательно** · **По умолчанию** `None`

Необязательный контекст (параметр `_context` в [`t`](/docs/python/reference/functions/t)), который используется, чтобы различать одинаковый исходный текст.

### `id` [#id]

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

Необязательный явный идентификатор сообщения (опция `_id` в [`t`](/docs/python/reference/functions/t)).

### `max_chars` [#max-chars]

**Тип** `int | None` · **Необязательно** · **По умолчанию** `None`

Необязательное максимально допустимое количество символов (параметр `_max_chars` в [`t`](/docs/python/reference/functions/t)).

## Возвращает [#returns]

**Тип** `str`

Шестнадцатеричная хеш-строка, используемая как ключ для поиска перевода.

## Пример [#example]

```python
from gt_i18n import hash_message

# Создать словарь переводов с хешами в качестве ключей
translations = {
    hash_message("Hello, world!"): "Hola, mundo!",
}
```

## Sitemap

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