Config

loadTranslations

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

Descripción general

Usa loadTranslations para especificar cómo se cargan las traducciones. De forma predeterminada, tu app cargará las traducciones desde el GT CDN en producción. Puedes definir una función loadTranslations para cargar las traducciones desde otra fuente, como:

  • Desde el bundle de tu app (lo más común)
  • Desde una base de datos
  • Desde una API
  • Desde otro CDN

Hemos integrado compatibilidad para cargar traducciones desde archivos locales dentro del bundle de tu app. Sigue esta guía para configurar traducciones locales en tu app de Next.js.

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

Referencias

Parámetros

Prop

Type

Descripción

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

Devuelve

Una Promise<any> que se resuelve en un diccionario que asigna ids a traducciones para la locale indicada.


Configuración

Define loadTranslations como la exportación predeterminada 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 devuelva una promesa que se resuelva en un objeto con las traducciones para el locale indicado.

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 una ruta distintos, pasa la ruta relativa mediante el 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 se configura para usar traducciones locales, el comando gtx-cli translate guardará las traducciones en el árbol de archivos de tu proyecto.

npx gtx-cli translate

Cargar traducciones desde una CDN

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

Carga las 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 las traducciones de tu app. Esto puede implicar obtener traducciones desde un CDN (Content Delivery Network), una base de datos o el bundle de tu app. Por lo general, son traducciones generadas automáticamente, gestionadas por la herramienta de la CLI, y no son muy prácticas de editar para los usuarios.
  • loadDictionary está pensado para implementaciones de gt-next como biblioteca independiente. Los usuarios aportan sus propias traducciones y no se utiliza ninguna infraestructura de traducción.

Notas

  • loadTranslations te permite personalizar cómo se cargan las traducciones en tu app en producción.
  • Su caso de uso más habitual es añadir local translations

Próximos pasos

¿Qué te ha parecido esta guía?

loadTranslations