# General Translation Changelog: gt-next 6.13.0: msg() принимает массивы
URL: https://generaltranslation.com/ru/blog/gt-next_v6_13_0.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 
Authors: Ernest McCarter
Published: 2026-02-25

## Обзор

[`msg()`](/docs/react/reference/functions/msg) теперь поддерживает массивы.

Раньше, чтобы зарегистрировать список связанных строк, приходилось оборачивать каждую отдельно:

```tsx
const confirmations = [
  msg("Yes"),
  msg("Yup"),
  msg("Right"),
  msg("Absolutely"),
  msg("Exactly"),
];
```

Здесь есть две проблемы. Во-первых, для каждой строки требуется вызов [`msg()`](/docs/react/reference/functions/msg). Во-вторых, связанные строки часто используют одни и те же метаданные — `$context`, `$id` и т. д. — и эти метаданные нужно указывать прямо в строке, потому что CLI обрабатывает их на этапе сборки. Для строк вроде &quot;Right&quot; или &quot;Exactly&quot;, которые сами по себе неоднозначны, в итоге приходится повторять `$context` в каждой записи:

```tsx
const confirmations = [
  msg("Yes"),
  msg("Yup"),
  msg("Right", { $context: "As in a confirmation" }),
  msg("Absolutely", { $context: "As in a confirmation" }),
  msg("Exactly", { $context: "As in a confirmation" }),
];
```

Теперь можно сделать так:

```tsx
const confirmations = msg([
  "Yes",
  "Yup",
  "Right",
  "Absolutely",
  "Exactly",
], { $context: "Confirmation responses" });
```

## Устройство

### Генерация идентификаторов

Если указан `$id`, каждый элемент массива получает идентификатор на основе индекса: `${id}.0`, `${id}.1` и т. д.

```tsx
const greetings = msg([
  "Hi",
  "Hello",
  "Howdy",
], { $id: "greeting" });
// "Hi"    → id: "greeting.0"
// "Hello" → id: "greeting.1"
// "Howdy" → id: "greeting.2"
```


## Почему не объекты?

Было заманчиво распространить это и на объекты, но мы решили отказаться от этой идеи. В объектах обычно смешаны поля, которые нужно переводить, и поля, которые переводить не нужно:

```tsx
{
  id: 'planning.v1',           // не переводить
  message: 'Not yet enabled',  // перевести
}
```

Нет удобного способа указать, какие поля нужно регистрировать, не добавляя новый синтаксис. С массивами такой проблемы нет — каждый элемент в них представляет собой строку для перевода.


## В будущем

Поддержка массивов в `gt()` — естественный следующий шаг. И `gt()`, и [`msg()`](/docs/react/reference/functions/msg) — это функции регистрации, поэтому паритет между ними вполне логичен. Это относится и к `m()`, поскольку [`msg()`](/docs/react/reference/functions/msg) и `m()` часто используются вместе: если `m()` принимает массивы, передача в `m()` результата [`msg()`](/docs/react/reference/functions/msg) не приведет к сбою.

## Sitemap

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