Producción vs. Desarrollo
Diferencias entre los entornos de producción y desarrollo
Descripción general
gt-react se comporta de forma diferente según el entorno en el que se esté ejecutando tu aplicación de 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 de API como variable de entorno, gt-react lanzará un error. Esto evita que las claves de API queden expuestas en el cliente.
Comportamiento de carga de traducciones
En producción, el proveedor gt-react intentará cargar las traducciones desde el CDN de traducciones de General Translation, de forma predeterminada.
Si has configurado un comportamiento personalizado de carga de traducciones, como traducciones locales, mediante la función loadTranslations, gt-react usará eso en su lugar.
La recarga en caliente de traducciones está deshabilitada en producción.
Comportamiento en tiempo de 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 está prefijada con NEXT_PUBLIC_, VITE_ (o similar).
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 memoria.
Al renderizar un componente (que use useGT, <T> o useTranslations) en un idioma distinto del predeterminado, el proveedor de gt-react hará lo siguiente:
- Si detecta una traducción válida y almacenada para el contenido indicado, renderizará la traducción.
- Si no se encuentra ninguna traducción, intentará traducir dinámicamente el contenido mediante la General Translation API.
- Tras traducir, se renderizará la traducción y se almacenará en memoria para usos futuros.
- Si la traducción excede el tiempo de espera, recurrirá al contenido de respaldo predeterminado y se renderizará el contenido original.
Nuestra API también almacena en caché internamente las traducciones de desarrollo durante un breve período, por lo que, si se solicita nuevamente la misma traducción, se servirá desde la caché.
Estas traducciones están aisladas a nivel de proyecto, por lo que no se mezclarán con las de otros proyectos. Además, la caché es exclusiva de las sesiones de desarrollo, por lo que las traducciones en caché no se usarán en producción.
gt-react detectará cambios en los componentes que usan useGT, <T> o useTranslations y traducirá dinámicamente el contenido modificado mediante nuestra API.
Claves de API de producción vs. desarrollo
Para distinguir el comportamiento de gt-react en producción y en desarrollo, contamos con el concepto de “claves de API de producción” y “claves de API de desarrollo”.
Claves de API de producción
Las claves de API de producción son aquellas que comienzan con gtx-api-.
Cuando se proporciona una clave de API de producción, gt-react se comportará como se describe en la sección Comportamiento en producción.
Esto significa que, si estás ejecutando tu aplicación de React en modo desarrollo y proporcionas una clave de API de producción, gt-react se comportará como si estuvieras en producción.
La recarga en caliente de traducciones se desactivará y los componentes sin traducción mostrarán el contenido original.
Fuera de este comportamiento, gt-react no utilizará la clave de API de producción de ninguna otra manera.
El motivo por el que te pedimos crear una clave de API de producción independiente al publicar en producción es que la herramienta CLI solo accede a las claves de API de producción.
La herramienta CLI aplicará la facturación y la limitación de velocidad usando la categoría “production”.
Claves de API de desarrollo
Las claves de API de desarrollo son claves de API que comienzan con gtx-dev-.
Cuando se proporciona una clave de API de desarrollo, gt-react se comportará como se describe en la sección Comportamiento en desarrollo.
Al usar una clave de API de desarrollo, la facturación y la limitación de velocidad se aplicarán bajo la categoría “development”.
Las traducciones creadas con una clave de API de desarrollo no se almacenarán y no estarán disponibles para su uso en producción.
El objetivo de las traducciones de desarrollo es permitirte probar tu aplicación antes de lanzarla a producción.
¿Qué te parece esta guía?