Producción vs. Desarrollo
Diferencias entre los entornos de producción y de desarrollo
Descripción general
gt-react se comporta de manera diferente según el entorno en el que se ejecute 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 de API como variable de entorno, gt-react lanzará un Error. Esto es para evitar que las API Keys se expongan 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 de forma predeterminada.
Si has configurado un comportamiento personalizado de carga de traducciones, por ejemplo traducciones locales, mediante la función loadTranslations, gt-react utilizará eso en su lugar.
La recarga en caliente de traducciones está desactivada 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 lleva el prefijo NEXT_PUBLIC_, VITE_ (o similar).
Comportamiento de carga de traducciones
En desarrollo, el proveedor de gt-react primero intentará cargar las traducciones del mismo modo que en producción.
Estas traducciones se cargan en memoria.
Al renderizar un componente (que usa useGT, <T> o useTranslations) en un idioma diferente del predeterminado, el proveedor de gt-react hará lo siguiente:
- Si detecta una traducción válida almacenada para el contenido, renderizará esa traducción.
- Si no se encuentra ninguna traducción, intentará traducir el contenido dinámicamente mediante la General Translation API.
- Tras traducirlo, se renderizará la traducción y se almacenará en memoria para uso futuro.
- Si la traducción excede el tiempo de espera, recurrirá al contenido de respaldo predeterminado y renderizará el contenido original.
Nuestra API también almacena internamente en caché las traducciones de desarrollo durante un período breve, 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 traducciones 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.
API Keys de producción vs. desarrollo
Para ayudar a distinguir el comportamiento de gt-react en producción y en desarrollo, manejamos el concepto de "API Keys de producción" y "API Keys de desarrollo".
API Keys de producción
Las API Keys de producción son claves que comienzan con gtx-api-.
Cuando se proporciona una API key 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 de desarrollo y proporcionas una API key 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 traducciones mostrarán el contenido original.
Fuera de este comportamiento, gt-react no utilizará la API key de producción de ninguna otra manera.
El motivo por el que te pedimos crear una API key de producción independiente al hacer despliegues a producción es que la herramienta CLI solo accede a las API Keys de producción.
La herramienta CLI aplicará facturación y límites de tasa usando la categoría "production".
Claves de API de desarrollo
Las claves de API de desarrollo son aquellas 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 los límites de uso 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 ha parecido esta guía?

