Config

loadTranslations()

Referencia de API para la función loadTranslations().

Descripción general

Utiliza loadTranslations() para especificar el comportamiento de carga de traducciones. Por defecto, tu aplicación cargará las traducciones desde el GT CDN en producción. Puedes especificar una función loadTranslations() para cargar traducciones desde una fuente diferente, como:

  • Desde el paquete de tu aplicación (lo más común)
  • Desde una base de datos
  • Desde una API
  • Desde un CDN diferente

Hemos integrado soporte para cargar traducciones desde archivos locales en el paquete de tu aplicación. Sigue esta guía para configurar traducciones locales en tu aplicación Next.js.

Si deseas definir manualmente tus propias traducciones, consulta la guía de traducciones personalizadas y la función loadDictionary().

Referencia

Parámetros

PropTypeDefault
locale?
string
-

Descripción

TipoDescripción
localeEl locale para el cual se deben cargar las traducciones.

Retorna

Un Promise<any> que resuelve a un diccionario que mapea ids a traducciones para el locale dado.


Configuración

Define tu loadTranslations() como la exportación por defecto de un archivo llamado loadTranslations.js o loadTranslations.ts ya sea en el directorio src/ o en la raíz. Asegúrate de que la función retorne una promesa que resuelva a un objeto con las traducciones para la localidad dada.

src/loadTranslations.js
export default async function loadTranslations(locale) {
  const translations = await import(`../public/locales/${locale}.json`);
  return translations.default;
};

Si deseas usar un nombre o ruta diferente, pasa la ruta relativa a través del parámetro loadTranslationsPath en withGTConfig().


Ejemplos

Obtener traducciones desde tu paquete

src/loadTranslations.js
export default async function loadTranslations(locale) {
  const translations = await import(`../public/locales/${locale}.json`);
  return translations.default;
};

Cuando está configurado para usar traducciones locales, el comando gtx-cli translate, guardará las traducciones en el árbol de archivos de tu proyecto.

Puedes generar archivos de traducción para tu paquete con este comando:

npx gtx-cli translate --no-publish --translations-dir ./public/locales

Cargar traducciones desde un CDN

loadTranslations.js
export default async function loadTranslations(locale) {
  try {
    const translations = await fetch(`https://your-cdn.com/translations/${locale}.json`);
    const data = await translations.json();
    return data;
  } catch (e) {
    console.error(e);
    return {};
  }
};

Cargar traducciones desde tu propia base de datos

loadTranslations.js
export default async function loadTranslations(locale) {
  try {
    const translations = await prisma.translation.findUnique({
      where: {
        locale: locale,
      },
    });
    return translations;
  } catch (e) {
    console.error(e);
    return {};
  }
};

Pregunta: ¿Cuál es la diferencia entre loadTranslations() y loadDictionary()?

  • loadTranslations() se utiliza para definir un comportamiento personalizado de carga para obtener traducciones para tu aplicación. Esto puede ser obtener traducciones desde un CDN, una base de datos o el paquete de tu aplicación. Normalmente, estas son traducciones generadas por máquina, gestionadas por la herramienta cli, y no son muy fáciles de editar para los usuarios.
  • loadDictionary() está destinado para implementaciones de gt-next como una biblioteca independiente. Los usuarios traen sus propias traducciones y no se utiliza ninguna infraestructura de traducción.

Notas

  • loadTranslations() te da la posibilidad de personalizar cómo se cargan las traducciones en tu aplicación en producción.
  • Su caso de uso más común es para agregar traducciones locales

Próximos pasos

¿Qué te parece esta guía?