Producción vs Desarrollo

Diferencias entre entornos de producción y desarrollo

Descripción general

gt-react se comporta de manera diferente dependiendo del entorno en el que se ejecuta tu aplicación React.

Detecta el entorno comprobando la variable de entorno NODE_ENV.

Comportamiento en Producción

Variables de Entorno

En producción, la única variable de entorno aceptada es GT_PROJECT_ID (o una versión con prefijo, como NEXT_PUBLIC_GT_PROJECT_ID).

Si se proporciona una clave API como variable de entorno, gt-react lanzará un error. Esto es para evitar que las claves API queden expuestas al cliente.

Comportamiento de Carga de Traducciones

En producción, el proveedor de gt-react intentará cargar las traducciones desde el CDN de General Translation, por defecto.

Si has configurado un comportamiento personalizado de carga de traducciones, como traducciones locales, a través de la función loadTranslations, gt-react usará eso en su lugar.

La recarga en caliente de traducciones está desactivada ya que está en producción.

Comportamiento en Desarrollo

Variables de Entorno

Como el desarrollo es local y no está expuesto a usuarios externos, gt-react aceptará cualquier variable de entorno de General Translation, incluso si tienen prefijos como NEXT_PUBLIC_, VITE_, (o similares).

Comportamiento de Carga de Traducciones

En desarrollo, el proveedor de gt-react intentará primero cargar las traducciones de la misma manera que en producción. Estas traducciones se cargan en la memoria.

Al renderizar un componente (que utiliza useGT(), <T>, o useDict()) en un idioma diferente al predeterminado, el proveedor de gt-react hará lo siguiente:

  1. Si detecta una traducción válida y almacenada para el contenido dado, renderizará la traducción.
  2. Si no se encuentra ninguna traducción, intentará traducir dinámicamente el contenido a través de la API de General Translation.
  3. Después de traducir, la traducción se renderizará y se almacenará en memoria para uso futuro.
  4. Si la traducción agota el tiempo de espera, volverá al contenido original como respaldo.

Nuestra API también almacena internamente en caché las traducciones de desarrollo durante un corto período de tiempo, por lo que si se solicita la misma traducción nuevamente, se servirá desde la caché.

Estas traducciones están aisladas a nivel de proyecto, por lo que no se mezclarán con traducciones de otros proyectos. Además, la caché es única para las sesiones de desarrollo, por lo que las traducciones en caché no se utilizarán en producción.

gt-react detectará cambios en los componentes que utilizan useGT(), <T>, o useDict() y traducirá dinámicamente el contenido modificado a través de nuestra API.

Claves API de Producción vs Desarrollo

Para ayudar a distinguir entre el comportamiento de producción y desarrollo de gt-react, tenemos el concepto de "Claves API de Producción" y "Claves API de Desarrollo".

Claves API de Producción

Las claves API de producción son claves API que comienzan con gtx-api-.

Cuando se proporciona una clave API de Producción, gt-react se comportará como se describe en la sección Comportamiento de Producción.

Esto significa que si estás ejecutando tu aplicación React en modo de desarrollo, y proporcionas una clave API de Producción, gt-react se comportará como si estuvieras en producción. La recarga en caliente de traducciones estará desactivada, y los componentes sin traducciones mostrarán el contenido original.

Aparte de este comportamiento, gt-react no utilizará la clave API de Producción de ninguna otra manera.

La razón por la que te pedimos crear una clave API de producción separada cuando despliegas a producción es porque la herramienta CLI solo accede a las claves API de Producción.

La herramienta CLI aplicará facturación y límites de tasa utilizando la categoría "producción".

Claves API de Desarrollo

Las claves API de desarrollo son claves API que comienzan con gtx-dev-.

Cuando se proporciona una clave API de Desarrollo, gt-react se comportará como se describe en la sección Comportamiento de Desarrollo.

Cuando se utiliza una clave API de Desarrollo, la facturación y los límites de tasa se aplicarán utilizando la categoría "desarrollo".

Las traducciones creadas con una clave API de Desarrollo no se almacenarán y no estarán disponibles para su uso en producción.

El propósito de las traducciones de desarrollo es permitirte probar tu aplicación antes de desplegarla a producción.

¿Qué te parece esta guía?