# gt-next: General Translation Next.js SDK: withGTConfig URL: https://generaltranslation.com/ru/docs/next/api/config/with-gt-config.mdx --- title: withGTConfig description: Справочная документация по API withGTConfig(), ранее initGT() --- ## Обзор `withGTConfig` — основной способ настройки библиотеки `gt-next`. Он напрямую оборачивает объект `NextConfig`. ```js title="next.config.mjs" import { withGTConfig } from 'gt-next/config'; const nextConfig = { // ваш существующий next.config.js } export default withGTConfig(nextConfig, { // Дополнительные параметры конфигурации }); ``` **Устаревшее** `initGT` — устаревший способ настройки библиотеки `gt-next`. Он возвращает функцию обратного вызова, которую затем вызывают, передавая объект `NextConfig`. Параметры обеих функций одинаковы, за исключением того, что в `withGTProps` нужно дополнительно передать `NextConfig`. Используйте `withGTConfig`, чтобы: * Настроить поддерживаемые языки и локаль по умолчанию (то есть резервный язык). * Указать ключи API и идентификаторы проектов для доступа к сервисам GT. * Задать поведение загрузки. * Настроить параметры тайм-аута. * Настроить пользовательские эндпоинты. * Настроить поведение перевода, кэширование и пакетную обработку запросов. * Настроить проверку на этапе сборки через плагин SWC. `withGTConfig` необходимо использовать в файле `next.config.js`, чтобы включить поддержку перевода. ## Справка По умолчанию `withGTConfig` ищет файл `gt.config.json` в той же директории, что и `next.config.js`. Этот JSON-файл загружается и объединяется с конфигурацией, переданной в `withGTConfig`. Подробнее о файле конфигурации см. в [справке по gt.config.json](/docs/next/api/config/gt-config-json). CLI-инструмент читает конфигурацию только из файла `gt.config.json`, поэтому рекомендуем использовать `gt.config.json` как единый источник истины для приложения. Дополнительные параметры конфигурации, которых нет в `gt.config.json`, можно передать в `withGTConfig` напрямую через props. ### Обязательные пропсы ### Рекомендуемые пропсы | Prop | Описание | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `defaultLocale` | Локаль приложения по умолчанию. Если локаль не указана, в качестве резервного языка используется английский. | | `locales` | Закрытый список поддерживаемых локалей приложения. Если поступает запрос для неподдерживаемой локали, произойдёт перенаправление на следующую локаль из списка, предпочтительную для браузера. Если совпадений не найдено, будет использован `defaultLocale`. | | `description` | Описание сайта на естественном языке, используемое для улучшения перевода. | ### Расширенные пропсы | Пропс | Описание | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `projectId` | Идентификатор проекта, который можно указать здесь или через переменную окружения. | | `apiKey` | Хотя это не рекомендуется, здесь можно указать ключ API. Его также можно передать через переменную окружения. | | `devApiKey` | Хотя это не рекомендуется, здесь можно указать ключ API для разработки. Его также можно передать через переменную окружения. | | `preferredModelProvider` | Предпочтительный провайдер модели ИИ. Сейчас поддерживаются только [Anthropic](https://anthropic.com) и [OpenAI](https://openai.com). Оставьте это поле пустым, и мы будем выбирать оптимального провайдера для каждого перевода отдельно. В периоды высокой нагрузки или если провайдер отключён, мы не можем гарантировать использование выбранного вами провайдера. | | `runtimeUrl` | Базовый URL API GT. Чтобы отключить автоматический перевод, укажите пустую строку. | | `cacheUrl` | URL, по которому хранятся кэшированные переводы. Его можно настроить так, чтобы он указывал на собственный сервер кэша. | | `cacheExpiryTime` | Время в миллисекундах до истечения срока действия локально кэшированных переводов. | | `renderSettings` | Объект, задающий поведение загрузки для переводов во время выполнения. | | `maxConcurrentRequests` | Максимальное количество одновременных запросов на перевод, разрешённых для API GT. | | `maxBatchSize` | Максимальное количество переводов, объединяемых в пакет перед отправкой запроса. | | `batchInterval` | Интервал в миллисекундах между пакетными запросами на перевод. Помогает контролировать частоту отправки запросов. | | `dictionary` | Необязательный путь к файлу конфигурации словаря. Как и `i18n`, принимает строку для указания пользовательского пути. По умолчанию поддерживаются словари с именем `dictionary.js` (или `.jsx`, `.ts`, `.tsx` и т. д.), размещённые в корне проекта или в папке `src`. | ### Возвращает Объект `NextConfig`, дополненный указанными настройками GT. ### Исключения Выбрасывает `Error`, если отсутствует `projectId` и используются URL-адреса по умолчанию, либо если требуется ключ API, но он не указан. *** ## Настройки рендеринга Настройки рендеринга определяют поведение переводов во время загрузки. Это относится только к переводам, выполняемым во время выполнения. Если перевод берётся из кэша, время отклика слишком мало, чтобы применять отдельное поведение загрузки. | Свойство | Описание | | --------- | --------------------------------------------------------------------------------------------------- | | `method` | Метод, используемый для рендеринга страницы. Доступные варианты: `skeleton`, `replace` и `default`. | | `timeout` | Время в миллисекундах до срабатывания тайм-аута метода. Значение по умолчанию — 8000 мс. | ### Методы рендеринга * `skeleton`: Отрисовывает фрагмент. * `replace`: Пока идёт ожидание, отрисовывает содержимое на языке по умолчанию. * `default`: Для локалей с одним и тем же языком (например, `en-US` и `en-GB`) ведет себя как `replace`. Для локалей с разными языками (например, `en-US` и `fr`) ведет себя как `skeleton`. ### Тайм-аут Тайм-ауты применяются только к переводам, выполняемым во время выполнения, то есть к переводам, которые нужно запрашивать по требованию, поскольку они не были кэшированы. По умолчанию тайм-аут составляет 8 секунд. Это решение принято с учётом пользователей Vercel: в бесплатном плане тайм-аут для serverless-функций по умолчанию составляет 10 секунд. *** ## Примеры ### Настройки рендеринга В этом примере `gt-next` настроен так, чтобы показывать скелетон, пока загружаются переводы. Если загрузка перевода занимает больше 8 секунд, сработает тайм-аут, и будет отрендерен контент на языке по умолчанию. ```json title="gt.config.json" { "defaultLocale": "en-US", "locales": ["en-US", "es", "fr"], } ``` ```js title="next.config.mjs" copy import { withGTConfig } from 'gt-next/config'; const nextConfig = { // Другие настройки Next.js }; export default withGTConfig(nextConfig, { renderSettings: { method: 'skeleton', timeout: 10000, }, }); ``` *** ## Примечания * `withGTConfig` добавляет в ваше приложение Next.js возможности перевода GT и должен использоваться в корневом файле конфигурации. * Такие параметры, как `apiKey` и `projectId`, можно задать прямо в конфигурации или через переменные окружения. * Расширенные параметры, такие как `renderSettings` и `_batchInterval`, позволяют тонко настраивать поведение перевода и производительность. ## Следующие шаги * Добавьте [перевод в свой процесс CD](/docs/next/tutorials/quickdeploy).