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 mejor rendimiento que 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ámetro | Descripción | 
|---|---|
| sources | Matriz de objetos Entryque contienen el contenido de origen y metadatos opcionales por elemento | 
| globalMetadata | Metadatos globales aplicados a todas las entradas, incluido el targetLocalerequerido | 
Estructura del objeto Entry
Cada Entry en el array sources puede contener:
interface Entry {
  source: Content;           // Contenido que se va a traducir
  targetLocale?: string;     // Sobrescribir el target locale global
  context?: string;          // Contexto de traducción para esta Entry
  tags?: string[];          // Etiquetas para la categorización
  // ... otras propiedades de EntryMetadata
}Valores de retorno
Promise<TranslateManyResult>El resultado incluye las entradas traducidas y cualquier información de errores:
interface TranslateManyResult {
  translations: Array<TranslationResult | TranslationError>;
  metadata: {
    totalRequests: number;
    successCount: number;
    errorCount: number;
    processingTime: number;
  };
}Comportamiento
Metadatos globales vs. por elemento
- Los metadatos globales se aplican a todas las entradas como valores predeterminados
- Los metadatos por elemento reemplazan la configuración global para entradas específicas
- El locale de destino puede establecerse de forma independiente por entrada
Estrategia de gestión de errores
- Los fallos de traducción individuales no detienen todo el lote
- Cada resultado indica de forma independiente si fue exitoso o fallido
- Se admiten escenarios de éxito parcial
Resolución de locales
- El locale de destino global se usa como valor predeterminado para todas las entradas
- Los locales de destino definidos por entrada sobrescriben 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(`Elemento ${index} falló: ${result.error}`);
  }
});Notas
- Traduce varios elementos en una sola solicitud a la API
- Los fallos de traducción en una Entry no afectan a las demás
- Los resultados mantienen el mismo orden que las Entry de entrada
- Los metadatos globales se combinan con los metadatos por Entry (los de cada Entry tienen prioridad)
Próximos pasos
- Aprende sobre traducciones individuales con translate
- Explora los tipos Entry y EntryMetadata
- Comprende la estructura de TranslateManyResult
¿Qué te ha parecido esta guía?

