# General Translation Knowledge Base: Как интернационализировать приложение с помощью Cursor или Claude Code?
URL: https://generaltranslation.com/ru/kb/ai-agent-i18n-setup.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Начните с промпта Setup for Agents от General Translation в Cursor или Claude Code, выберите функциональность и целевые языки, а затем поручите агенту реализовать и проверить результат. Вход через браузер, машиночитаемая документация и инструменты MCP связывают настройку с переводом и проверкой. Используйте Locadex, чтобы автоматизировать дальнейшую локализацию через пул-реквесты.
Category: Интернационализация
Last updated: 2026-10-21
Authors: Kevin Liu, Kevin Wu
Published: 2026-10-21

Запрос «Переведи моё приложение на испанский» оставляет без ответа сразу несколько вопросов. Должен ли агент сохранить уже используемую библиотеку? Нужен ли испанской версии отдельный URL? Кто будет переводить новые тексты, когда эта сессия закончится? Определите эти рамки, прежде чем просить агента вносить изменения в приложение.

General Translation предлагает регулярно обновляемый промпт настройки, который последовательно проводит агента для написания кода через анализ проекта, интеграцию, перевод и проверку. Начните с одной работающей функциональности, а затем распространите проверенный паттерн на всю кодовую базу.

## Video

The video is narrated in English, with English captions.

[Can an AI coding agent set up i18n for me?](https://caxecubb9c64cezv.public.blob.vercel-storage.com/films/kb-ai-agent-i18n-setup.mp4) (46 с)

General Translation lets your agent set up i18n with the prompt from Setup for Agents. The prompt has the agent run `gt login`, which you approve in your browser, and run `gt init` with a flag for every question, so the command asks nothing. Then it wraps your page in the `T` component, adds a `LocaleSelector`, runs `gt translate`, builds the app and reports what it actually verified.

## Начните с Setup for Agents

Воспользуйтесь **Setup for Agents** на generaltranslation.com или передайте Cursor либо Claude Code [официальный промпт для агента](https://generaltranslation.com/agent-prompt.md). Промпт поручает агенту изучить ваш проект и следовать актуальным инструкциям для используемого фреймворка. Для поддерживаемых проектов [`gt init`](/docs/cli/reference/commands/init) предлагает экспериментальную настройку фреймворка, после чего агент проверяет сгенерированную интеграцию, размечает контент, генерирует переводы и проверяет работу приложения.

Для локального доступа к сервису используйте [`gt login`](/docs/cli/reference/commands/login): эта команда позволяет подтвердить вход в браузере, не вставляя ключ API в чат. При этом в CLI по-прежнему должен быть выбран или настроен нужный проект. С помощью флагов настройки можно ответить на вопросы мастера без интерактивного терминала, однако первый вход всё равно требует вашего подтверждения. Для автоматических сборок используйте учётные данные с ограниченными правами из хранилища секретов CI.

Агент может находить документацию через [`llms.txt`](https://generaltranslation.com/llms.txt), получать исходный текст без разметки, добавив `.mdx` к URL страницы документации, и обращаться к [спецификации OpenAPI](https://generaltranslation.com/openapi.yaml). В [руководстве для агентов-программистов](/docs/overview/for-coding-agents) есть готовые инструкции для проекта. Эти ресурсы поддерживаются в актуальном состоянии, поэтому настройка всегда соответствует текущим API продукта. В [статье о том, как мы проектировали документацию](/blog/rewriting-our-docs), рассказывается, как работают эти точки доступа для агентов.

## Поставьте агенту чётко ограниченную задачу

Попросите его изучить фреймворк, установленные версии, модель рендеринга, маршруты, текущую конфигурацию i18n и скрипты сборки. Если в приложении уже используется библиотека интернационализации, оставьте её, если только миграция не входит в задачу. CLI GT умеет [переводить существующие каталоги поддерживаемых форматов](/docs/cli/guides/generating-translations), включая next-intl и react-i18next.

Укажите язык-источник, целевые локали и функциональность, которую нужно изменить. Не забудьте про сообщения об ошибках валидации, подсказки, метки для специальных возможностей и метаданные. Выберите локальную доставку или доставку через CDN и определите, кто будет проверять результат в [Редакторе переводов на панели управления](/docs/platform/dashboard/guides/reviewing-translations).

## Подключение MCP-сервера General Translation

Размещённый [сервер Model Context Protocol (MCP)](/docs/overview/for-coding-agents#mcp) от General Translation позволяет вашему агенту для написания кода просматривать актуальные настройки проекта и управлять контекстом перевода. Агент может узнать локали вашего проекта, прочитать общую терминологию и при необходимости обновить термины Glossary или пользовательские промпты. Так изменения в коде согласуются с правилами перевода, которые ваша команда ведёт в General Translation.

Подключение охватывает весь процесс перевода — от начала до конца — с помощью инструментов для:

* перевода содержимого, загрузки исходных файлов, постановки заданий на перевод в очередь, проверки статуса и скачивания результатов;
* публикации переводов в CDN или снятия их с публикации;
* поиска и создания проектов, а также создания ключей API проекта с ограниченной областью действия (при наличии прав);
* управления контекстными группами, терминами Glossary и пользовательскими промптами.

Выдайте агенту разрешения, которые нужны для выполнения требуемого рабочего процесса. Храните сгенерированные ключи в защищённом хранилище секретов — ни в коем случае не в чате и не в браузерном коде. Генерация переводов выполняется сервисом и оплачивается по тарифам за использование; CLI, описанный ниже, отвечает за локальное извлечение и перевод в приложении.

В **Cursor** добавьте эту запись сервера в файл `.cursor/mcp.json` вашего проекта, сохранив все существующие записи. Параметры конфигурации и аутентификации см. в [руководстве по настройке MCP в Cursor](https://cursor.com/docs/mcp).

```json title=".cursor/mcp.json"
{
  "mcpServers": {
    "generaltranslation": {
      "url": "https://api.gtx.dev/mcp"
    }
  }
}
```

В **Claude Code** зарегистрируйте тот же сервер через [HTTP-транспорт](https://code.claude.com/docs/en/mcp):

```bash
claude mcp add --transport http generaltranslation https://api.gtx.dev/mcp
```

Пройдите в клиенте процедуру входа через OAuth или настройте ключ API в параметрах секретного заголовка, как описано в [руководстве по аутентификации MCP](/docs/overview/for-coding-agents#mcp). Для управления контекстом (Context Management) нужен доступ к контексту организации (Organization Context) через OAuth или ключ организации с соответствующими разрешениями Context; ключам проекта эти инструменты недоступны.

Начните с конкретного запроса: «Используй MCP-сервер generaltranslation, чтобы вывести список моих проектов и показать настройки локалей для проекта, который мы локализуем». Затем попросите агента изучить контекстные группы (Context Groups), назначенные проекту: в них хранятся общие термины Glossary и пользовательские промпты (Custom Prompts). Агент может опираться на эти термины и инструкции при подготовке функциональности, а если вы попросите изменить терминологию или стиль — обновить их.

Для интеграции в код используйте документацию по фреймворку, а для описанных ниже шагов извлечения и перевода — CLI. Подключение к MCP даёт агенту доступ к рабочему проекту и его контексту, но приложению по-прежнему нужны настройка SDK, переведённый контент и проверка.

## Добавьте краткое описание функции с критериями приёмки

Добавьте это описание в официальный промпт настройки. Укажите вместо функции и локалей из примера свои требования; в примере ниже используются английский, испанский и французский языки.

```text
Интернационализируй функцию списка проектов в этом приложении.
Используй английский как язык-источник, а испанский и французский — как целевые языки.
Охвати заголовок, имя владельца, количество проектов, поле поиска, видимую метку,
плейсхолдер и переключатель языка. Используй переводы, включённые в сборку локально, и
сохрани существующие маршруты и провайдеры. Через подключённый MCP-сервер GT
читай настройки проекта и назначенную терминологию, если это разрешено. Сообщай обо всех
проблемах с подключением или разрешениями. Не изменяй общий контекст за рамками этой задачи.
Проверь количество 0, 1 и 2, имя со знаками препинания, метки и
плейсхолдеры полей ввода, переключение языка, сохранение после перезагрузки и сборку для рабочей среды.
Проверь контент, отрисованный на сервере, если приложение использует SSR. Укажи фактически выполненные команды
и их результаты, статус проверки переводов и всё, что осталось непроверенным. Исходные шаблоны —
это не готовые переводы. Ограничь изменения этой функцией и её настройкой.
Не выполняй развёртывание и слияние.
```

Храните правила проекта там, откуда их считывает ваш агент. О [правилах проекта и AGENTS.md](https://cursor.com/docs/rules) рассказано в документации Cursor, а о [CLAUDE.md и других инструкциях проекта](https://code.claude.com/docs/en/memory) — в документации Claude Code. Добавьте в существующие инструкции выбранную библиотеку, исходную локаль, команду перевода и обязательные проверки. Не держите несколько параллельных копий: со временем они начнут расходиться.

## Изучите типовую реализацию

Для React-приложения, работающего только в браузере, [Быстрый старт SPA для React](/docs/react/react-spa-quickstart) описывает, как настроить `gt-react` перед рендерингом. В этом примере предполагается, что настройка уже выполнена, а локальные файлы сохраняются в `src/_gt/[locale].json`. Используются `gt-react@11.4.12` и CLI `gt@2.26.5`.

Компонент ниже охватывает статический текст, динамическое значение, формы множественного числа и текст полей ввода. Отрендерите его, передав количество проектов и имя владельца из вашего приложения.

```tsx title="src/ProjectSummary.tsx"
import { Num, Plural, T, Var, useGT } from 'gt-react';

export default function ProjectSummary({
  count,
  ownerName,
}: {
  count: number;
  ownerName: string;
}) {
  const gt = useGT();

  return (
    <section>
      <T>
        <h1>Projects for <Var>{ownerName}</Var></h1>
        <p>
          <Plural
            n={count}
            one={<>You have <Num>{count}</Num> project.</>}
            other={<>You have <Num>{count}</Num> projects.</>}
          />
        </p>
      </T>
      <label>
        <T>Search projects</T>
        <input type='search' placeholder={gt('Search projects')} />
      </label>
    </section>
  );
}
```

[`<Var>`](/docs/react/reference/components/var) сохраняет имя владельца без изменений, пока переводится окружающее сообщение; само значение в API перевода не отправляется. [`<Plural>`](/docs/react/reference/components/plural) выбирает ветвь по правилам локали, а [`<Num>`](/docs/react/reference/components/num) форматирует количество. [`useGT`](/docs/react/reference/hooks/use-gt) возвращает функцию перевода напрямую. Видимая метка оборачивает поле ввода, поэтому у элемента управления есть и метка, и переведённая подсказка.

Ветви `one` и `other` описывают английский источник. В переводах на целевые языки должны быть представлены формы множественного числа, свойственные этим языкам; не стоит полагать, что проверки английской пары «единственное/множественное число» достаточно для всех языков. См. [руководство по обработке форм множественного числа в React](/kb/how-to-handle-plurals-in-react).

В React SPA описанная в документации настройка [`initializeGTSPA`](/docs/react/reference/config#initialize-spa) загружает переводы до запуска приложения. Входящий в неё [`LocaleSelector`](/docs/react/reference/components/locale-selector) сохраняет выбранный язык в cookie-файле и перезагружает страницу. Для фреймворков с рендерингом на сервере требования к настройке другие — воспользуйтесь соответствующим руководством по быстрому старту.

## Сгенерируйте переводы, прежде чем оценивать результат

Для локальной проверки после добавления компонента выполните следующую команду в настроенном каталоге приложения:

```bash
npx gt generate
```

[`gt generate`](/docs/cli/reference/commands/generate) создаёт исходные шаблоны, не обращаясь к сервису перевода. Заполните испанский и французский файлы переведённым текстом, сохранив сгенерированные ключи, маркеры переменных и структуру JSX. Само наличие `es.json` ещё не означает, что в нём есть текст на испанском.

Чтобы получить переводы от сервиса, выполните [аутентификацию в CLI и настройку проекта](/docs/cli/quickstart), а затем используйте [`gt translate`](/docs/cli/reference/commands/translate). Пройдите аутентификацию через вход в CLI или с помощью ключа API, а идентификатор проекта настройте отдельно: сам по себе вход не выбирает проект. Для автоматических запусков в CI передайте `GT_API_KEY` через настройки секретов CI-провайдера, предоставив ключу разрешения для процесса перевода. См. [руководство по настройке учётных данных](/docs/cli/guides/configuring#credentials) и не допускайте попадания ключей для инструментов в браузерный код. Использование сервиса тарифицируется.

General Translation переводит размеченный JSX с учётом его структуры и любого явно заданного вами контекста. Добавляйте [проп `context`](/docs/react/reference/components/t#context) для неоднозначных текстов и применяйте общие для проекта [термины Glossary и пользовательские промпты](/docs/platform/dashboard/guides/defining-context-for-translations), чтобы задать продуктовую терминологию и тон. Так при создании переводов соблюдаются те же правила продукта, которые агент для написания кода получает через MCP.

При использовании [переводов, включённых в сборку](/docs/react/guides/storing-translations), подготовьте файлы локалей до сборки для рабочей среды. Храните файлы, которые ведутся вручную, в системе контроля версий или в вашем конвейере перевода. Не добавляйте единственную копию отредактированных вручную переводов в игнорируемые файлы, как если бы это был одноразовый сгенерированный результат.

## Проверьте функцию, затем расширяйте охват

Запустите [`gt validate`](/docs/cli/reference/commands/validate), чтобы выявить поддерживаемые ошибки встроенного перевода ещё до запроса к API, а затем попросите агента сообщить фактические результаты по каждой из проверок ниже.

| Проверка                                          | Ожидаемый результат                                                                    |
| ------------------------------------------------- | -------------------------------------------------------------------------------------- |
| Выберите испанский, затем французский             | Заголовок, сообщение со счётчиком, метка и подсказка отображаются на выбранном языке |
| Перезагрузите страницу после выбора языка         | Выбранный язык сохраняется в соответствии с политикой приложения                       |
| Попробуйте значения 0, 1 и 2                      | В каждом языке применяются свои правила множественного числа; число отображается верно |
| Укажите владельца, например O&#39;Connor          | Имя остаётся без изменений на всех языках                                              |
| Проверьте доступное имя поля ввода                | Оно совпадает с переведённой видимой меткой                                            |
| Запустите сборку для рабочей среды и предпросмотр | Функция работает так же с файлами, которые попадут в релиз                             |

В этом примере [ноль во французском и ноль в английском относятся к разным категориям множественного числа](https://cldr.unicode.org/index/cldr-spec/plural-rules). Убедитесь, что в отрендеренном предложении используется правильная форма и сохраняется значение счётчика.

Когда паттерн заработает, расширяйте охват постепенно — по одному маршруту или функции за раз. Рецензенты могут редактировать переводы в [Редакторе переводов в панели управления](/docs/platform/dashboard/guides/reviewing-translations). Чтобы пригласить переводчиков, менеджеров проектов и рецензентов из целевых стран, нужен тариф Starter или Enterprise; оба тарифа включают [неограниченное число пользователей](https://generaltranslation.com/pricing). В тарифе Enterprise также доступно утверждение переводов. Если ваша команда редактирует сгенерированные локальные файлы, включите [`gt save-local`](/docs/cli/reference/commands/save-local), чтобы загружать эти изменения для дальнейшего повторного использования. Подробнее о рабочем процессе проверки см. в разделе [проверка AI-переводов](/kb/review-translations).

## Как поддерживать локализацию после завершения сессии агента

Добавьте [`gt translate` перед сборкой для рабочей среды](/docs/cli/guides/generating-translations), чтобы переводы обновлялись при изменении исходных текстов. Инкрементальный рабочий процесс повторно использует подходящие переводы, а не генерирует все сообщения заново при каждом запуске.

Чтобы локализация продолжалась без участия вашего собственного ИИ-ассистента, используйте облачного агента General Translation — [Locadex](/docs/platform/locadex/guides/configuring-automations). Он умеет интернационализировать новый UI, создавать переводы и синхронизировать добавленные или удалённые локали. Настройте запуск по пул-реквестам, push или вручную; изменения поступают в виде пул-реквестов. [Auto-merge](/docs/platform/locadex/guides/auto-merging-prs) включается по желанию. ИИ-ассистент может выполнить первоначальную интеграцию, а Locadex — поддерживать её в последующих релизах. Для Locadex требуется тариф Starter или Enterprise, а его запуски оплачиваются по [фактическому использованию](https://generaltranslation.com/pricing/usage). Инструкции по настройке см. в [справочнике по автоматизациям](/docs/platform/locadex/reference/automations). Также можно [запускать перевод в CI](/kb/translations-in-ci) в собственном конвейере.

## Related questions

- [Как добавить i18n в приложение Next.js на App Router?](https://generaltranslation.com/ru/kb/add-i18n-to-nextjs.mdx): Начните с gt init, чтобы настроить General Translation в поддерживаемом проекте на App Router, затем разметьте исходное содержимое, создайте переводы и проверьте переключение языка. gt-next хранит тексты прямо в JSX вместе с контекстом перевода, а CLI, редактор в панели управления и Locadex берут на себя генерацию, проверку и последующие обновления. В этом руководстве также показана явная настройка с локальными файлами.
- [Можно ли делать i18n без файлов перевода?](https://generaltranslation.com/ru/kb/i18n-without-translation-files.mdx): Да. Библиотеки gt-react и gt-next от General Translation обеспечивают i18n для React и Next.js без ключей перевода и без отдельного JSON-файла для каждого языка, который приходится поддерживать. Тексты остаются встроенными в JSX внутри компонента `<T>`, а команда gt translate генерирует переводы для каждого языка во время сборки, учитывая контекст из вашего кода. Locadex может поддерживать их в актуальном состоянии через пул-реквесты.
- [Как работать с формами множественного числа в React?](https://generaltranslation.com/ru/kb/how-to-handle-plurals-in-react.mdx): Чтобы работать с формами множественного числа в React, задайте для каждого языка по одному предложению на каждую форму множественного числа и выбирайте нужное по правилам множественного числа этого языка — ведь в английском 2 формы, в русском 4, а в арабском 6. Компонент `<Plural>` от General Translation в gt-react и gt-next принимает формы на исходном языке, а General Translation генерирует формы, нужные каждому языку перевода.
- [Что делает агент Locadex?](https://generaltranslation.com/ru/kb/what-is-locadex.mdx): Locadex — это AI-агент General Translation, который интернационализирует ваш код и переводит контент в вашем репозитории GitHub. Его автоматизации запускаются при открытии пул-реквеста, при пуше коммита или вручную, а каждое изменение поступает в виде пул-реквеста.

## Previous and next questions

- Previous question: [Как добавить i18n в приложение Next.js на App Router?](https://generaltranslation.com/ru/kb/add-i18n-to-nextjs.mdx)
- Next question: [Как перевести Google Slides?](https://generaltranslation.com/ru/kb/translate-google-slides.mdx)

## Sitemap

See the [Knowledge Base sitemap](https://generaltranslation.com/ru/kb/sitemap.md) for every article.
