GT ClassMethodsTranslation

translateMany

Referencia de API del método translateMany de GT para traducciones en lote

Descripción general

El método translateMany traduce de forma eficiente varios elementos de contenido en una sola solicitud a la API. Está optimizado para el procesamiento por lotes y ofrece un rendimiento superior al de realizar múltiples llamadas individuales a translate.

const gt = new GT({
  apiKey: 'your-api-key',
  projectId: 'your-project-id'
});

const result = await gt.translateMany([
  { source: '¡Hola, mundo!' },
  { source: 'Bienvenido a nuestra app' },
  { source: 'Haz clic aquí para continuar' }
], { targetLocale: 'es' });

Referencias

Parámetros

Prop

Type

Descripción de parámetros

ParámetroDescripción
sourcesMatriz de objetos Entry que contienen el contenido de origen y metadatos opcionales por elemento
globalMetadataMetadatos globales aplicados a todas las entradas, incluido el targetLocale obligatorio

Estructura del objeto Entry

Cada elemento del arreglo sources puede contener:

interface Entry {
  source: Content;           // El contenido que se traducirá
  targetLocale?: string;     // Sobrescribir el locale de destino global
  context?: string;          // Contexto de traducción para esta entrada
  tags?: string[];          // Etiquetas para la categorización
  // ... otras propiedades de EntryMetadata
}

Valores de retorno

Promesa<TranslateManyResult>

El resultado incluye entradas traducidas y cualquier información sobre errores:

interface TranslateManyResult {
  translations: Array<ResultadoDeTraducción | TranslationError>;
  metadata: {
    totalRequests: number;
    successCount: number;
    errorCount: number;
    processingTime: number;
  };
}

Comportamiento

Metadatos globales vs por elemento

  • Los metadatos globales se aplican a todas las Entry como valores predeterminados
  • Los metadatos por elemento reemplazan la configuración global para Entry específicas
  • El locale de destino se puede especificar por Entry

Estrategia de manejo de errores

  • Los fallos de traducción individuales no detienen el lote completo
  • Cada resultado indica de forma independiente si fue exitoso o fallido
  • Los escenarios de éxito parcial están totalmente admitidos

Resolución de locales

  • El locale de destino global se usa como valor predeterminado para todas las Entry
  • Los locales de destino por Entry reemplazan la configuración global
  • Todos los locales se resuelven mediante un mapeo personalizado si está configurado

Ejemplos

const menuItems = await gt.translateMany([
  { source: 'Inicio' },
  { source: 'Acerca de' },
  { source: 'Productos' },
  { source: 'Contacto' }
], {
  targetLocale: 'fr',
  context: 'Elementos del menú de navegación'
});

menuItems.translations.forEach((result, index) => {
  if ('translation' in result) {
    console.log(`Elemento ${index}: ${result.translation}`);
  } else {
    console.error(`Error en el elemento ${index}: ${result.error}`);
  }
});

Notas

  • Traduce varios elementos en una única solicitud a la API
  • Los errores de traducción en una entrada no afectan a las demás
  • Los resultados mantienen el mismo orden que las entradas de origen
  • Los metadatos globales se combinan con los metadatos por entrada (estos últimos tienen prioridad)

Próximos pasos

¿Qué te parece esta guía?