# node: Almacenamiento local de traducciones URL: https://generaltranslation.com/es/docs/node/guides/local-tx.mdx --- title: Almacenamiento local de traducciones description: Guarda las traducciones en el bundle de tu aplicación en lugar de obtenerlas desde una CDN --- ## ¿Qué son las traducciones locales? De forma predeterminada, `gt-node` obtiene las traducciones del CDN de General Translation en tiempo de ejecución. Con las traducciones locales, incorporas los archivos de traducción directamente en tu aplicación, sin necesidad de hacer solicitudes externas. **Comportamiento predeterminado:** GT usa el almacenamiento en CDN de forma predeterminada. Cambia al almacenamiento local solo si necesitas las ventajas específicas que ofrece. ## Contrapartidas ### Ventajas de las traducciones locales * **Respuestas más rápidas**: No se hacen solicitudes de red para obtener traducciones en tiempo de ejecución * **Sin depender de servicios externos**: Tu aplicación funciona de forma independiente de la disponibilidad de la CDN * **Funciona sin conexión**: Las traducciones forman parte de tu artefacto de implementación ### Desventajas de las traducciones locales * **Mayor tamaño del bundle**: Cada configuración regional compatible aumenta el tamaño de tu deployment * **Hay que volver a implementar para actualizar**: Cambiar una traducción requiere un nuevo deployment ## Configuración ### Paso 1: Crea una función de carga Escribe una función que cargue un archivo JSON de traducción para una configuración regional: ```js title="loadTranslations.js" import { readFile } from 'fs/promises'; import path from 'path'; export default async function loadTranslations(locale) { const filePath = path.join(process.cwd(), 'translations', `${locale}.json`); const data = await readFile(filePath, 'utf-8'); return JSON.parse(data); } ``` ### Paso 2: Pásalo a `initializeGT` ```js title="server.js" import { initializeGT } from 'gt-node'; import loadTranslations from './loadTranslations.js'; initializeGT({ defaultLocale: 'en', locales: ['en', 'es', 'fr', 'ja'], projectId: process.env.GT_PROJECT_ID, loadTranslations, }); ``` ### Paso 3: Configura la CLI Ejecuta el comando de configuración y selecciona el almacenamiento local: ```bash npx gt configure ``` Cuando se te pregunte: * **¿Guardar en la CDN?** Selecciona "No" * **Directorio de traducciones:** Ingresa `./translations` ### Paso 4: Genera las traducciones ```bash npx gt translate ``` Esto descarga los archivos de traducción en el directorio `translations/`. ## Integración en la construcción Añade la generación de traducciones a tu script de construcción para que las traducciones estén siempre actualizadas: ```json title="package.json" { "scripts": { "build": "npx gt translate && " } } ``` ### Flujo de CI/CD ```yaml title=".github/workflows/deploy.yml" - name: Generate Translations run: npx gt translate - name: Build Application run: npm run build ``` ## Problemas comunes ### Faltan archivos de traducción Genera siempre los archivos de traducción antes de la construcción: ```bash # ❌ Construcción sin traducciones node server.js # ✅ Generar las traducciones primero npx gt translate && node server.js ``` ### Errores en la ruta del archivo Asegúrate de que la ruta de tu función de carga coincida con el directorio de salida de la CLI: ```js // ❌ Ruta incorrecta const filePath = path.join(process.cwd(), 'public', `${locale}.json`); // ✅ Coincide con tu directorio configurado const filePath = path.join(process.cwd(), 'translations', `${locale}.json`); ``` El almacenamiento local funciona mejor en aplicaciones con traducciones estables que no requieren actualizaciones frecuentes. ## Próximos pasos * [Comando `translate` de la CLI](/docs/cli/translate) — referencia sobre la generación de traducciones * [Configuración de la CLI](/docs/cli/reference/config) — configura el directorio de salida y el modo de almacenamiento * [Patrones de traducción de cadenas](/docs/node/guides/strings) — cómo traducir contenido