Config

loadTranslations()

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

Resumen

Usa loadTranslations() para especificar el comportamiento de carga de traducciones. Por defecto, tu aplicación cargará 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 estás buscando 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
localeLa configuración regional para la cual se deben cargar las traducciones.

Retornos

Un Promise<any> que se resuelve en un diccionario que mapea ids a traducciones para la configuración regional dada.


Configuración

Define tu loadTranslations() como la exportación por defecto para un archivo con el nombre loadTranslations.js o loadTranslations.ts ya sea en el directorio src/ o en la raíz. Asegúrate de que la función devuelva una promesa que se resuelva en un objeto con 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 de 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 obtener 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 de carga personalizado para obtener traducciones para tu aplicación. Esto podría ser obtener traducciones de un CDN, una base de datos o el paquete de tu aplicación. Estas suelen ser traducciones generadas por máquina, gestionadas por la herramienta cli, y no son muy amigables para editar.
  • loadDictionary() está destinado para implementaciones de gt-next como una biblioteca independiente. Los usuarios traen sus propias traducciones y no se utiliza infraestructura de traducción.

Notas

  • loadTranslations() te da la capacidad 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

En esta página