# gt-next: General Translation Next.js SDK: Продакшен и разработка URL: https://generaltranslation.com/ru/docs/next/concepts/environments.mdx --- title: Продакшен и разработка description: Различия между средами продакшена и разработки --- ## Обзор Поведение `gt-next` зависит от среды, в которой выполняется ваше приложение Next.js. Среда определяется по значению переменной окружения `NODE_ENV`. ## поведение в production ### Переменные окружения В production `gt-next` читает только переменные окружения `GT_PROJECT_ID` и `GT_API_KEY`. Ключ API должен быть Production API-ключом и начинаться с `gtx-api-`. Если вы используете Development API-ключ, `gt-next` выдаст ошибку. ### Поведение загрузки переводов В production `gt-next` по умолчанию пытается загружать переводы из CDN General Translation. Если вы настроили собственное поведение загрузки переводов, например локальные переводы, через функцию `loadTranslations`, `gt-next` будет использовать его. Горячая перезагрузка переводов отключена, поскольку это production-среда. On-demand перевод динамического контента с помощью компонента `` или функции `tx` включён, но только в серверных компонентах. ## Поведение в режиме разработки ### Переменные окружения `gt-next` поддерживает переменные окружения `GT_PROJECT_ID` и `GT_API_KEY`. API-ключ может быть либо Production API-ключом, начинающимся с `gtx-api-`, либо Development API-ключом, начинающимся с `gtx-dev-`. Если в среде разработки указан Production API-ключ, `gt-next` будет работать так, как будто приложение запущено в production. Это означает, что горячая перезагрузка переводов будет отключена, а компоненты без переводов будут отображать исходный контент. ### Поведение загрузки переводов В режиме разработки `gt-next` сначала пытается загружать переводы так же, как в продакшене. Эти переводы загружаются в память. При рендеринге компонента (использующего `useGT`, `` или `useTranslations`) на языке, отличном от языка по умолчанию, `gt-next` делает следующее: 1. Если обнаруживается корректный сохранённый перевод для данного контента, будет отрендерен перевод. 2. Если перевод не найден, система попытается динамически перевести контент через API General Translation. 3. После перевода результат будет отрендерен и сохранён в памяти для дальнейшего использования. 4. Если время ожидания перевода истечёт, система выполнит откат и отрендерит исходный контент. Наш API также на короткое время кэширует переводы в режиме разработки, поэтому при повторном запросе того же перевода он будет отдан из кэша. Эти переводы изолированы на уровне проекта, поэтому они не смешиваются с переводами из других проектов. Кроме того, кэш привязан к сеансам разработки, поэтому кэшированные переводы не используются в продакшене. `gt-next` обнаруживает изменения в компонентах, использующих `useGT`, `` или `useTranslations`, и динамически переводит изменённый контент через наш API. ## API-ключи для production и development [#api-keys] Чтобы различать поведение `gt-next` в production и development, мы используем понятия «Production API-ключи» и «Development API-ключи». ### Production API-ключи Production API-ключи — это API-ключи, начинающиеся с `gtx-api-`. Если указан Production API-ключ, `gt-next` будет вести себя так, как описано в разделе [Поведение в production](#production-behavior). Это означает, что если вы запускаете приложение Next.js в режиме разработки и указываете Production API-ключ, `gt-next` будет вести себя так, как будто приложение работает в production. Горячая перезагрузка переводов будет отключена, а компоненты без переводов будут отображать исходный контент. Кроме этого, `gt-next` никак не использует Production API-ключ. Инструмент CLI считывает переменную окружения `GT_API_KEY` и принимает только Production API-ключи. Для CLI тарификация и ограничение частоты запросов применяются по категории "production". ### Development API-ключи Development API-ключи — это API-ключи, начинающиеся с `gtx-dev-`. Если указан Development API-ключ, `gt-next` будет работать так, как описано в разделе [Поведение в режиме разработки](#development-behavior). При использовании Development API-ключа тарификация и ограничение частоты запросов применяются в категории "development". Переводы, созданные с помощью Development API-ключа, не сохраняются и недоступны для использования в production. Переводы для разработки предназначены для того, чтобы вы могли протестировать приложение перед выпуском в production.