translateMany
Référence de l’API pour la méthode GT translateMany, destinée aux traductions en lot
Présentation
La méthode translateMany permet de traduire efficacement plusieurs éléments de contenu en une seule requête API.
Elle est optimisée pour le traitement par lots et offre de meilleures performances que plusieurs appels translate individuels.
const gt = new GT({
  apiKey: 'your-api-key',
  projectId: 'your-project-id'
});
const result = await gt.translateMany([
  { source: 'Bonjour, monde !' },
  { source: 'Bienvenue dans notre application' },
  { source: 'Cliquez ici pour continuer' }
], { targetLocale: 'es' });Références
Paramètres
Prop
Type
Description des paramètres
| Paramètre | Description | 
|---|---|
| sources | Tableau d’objets Entrycontenant le contenu source et des métadonnées optionnelles par élément | 
| globalMetadata | Métadonnées globales appliquées à toutes les entrées, y compris le targetLocalerequis | 
Structure de l’Entry
Chaque Entry dans le tableau sources peut contenir :
interface Entry {
  source: Content;           // Le contenu à traduire
  targetLocale?: string;     // Remplace la locale cible globale
  context?: string;          // Contexte de traduction pour cette entrée
  tags?: string[];          // Étiquettes pour la catégorisation
  // ... autres propriétés EntryMetadata
}Renvoie
Promise<TranslateManyResult>Le résultat contient les entrées traduites ainsi que toute information d’erreur :
interface TranslateManyResult {
  translations: Array<TranslationResult | TranslationError>;
  metadata: {
    totalRequests: number;
    successCount: number;
    errorCount: number;
    processingTime: number;
  };
}Comportement
Métadonnées globales vs par élément
- Les métadonnées globales s’appliquent à toutes les entrées par défaut
- Les métadonnées par élément remplacent les paramètres globaux pour des entrées spécifiques
- La locale cible peut être définie au niveau de chaque entrée, en remplaçant la valeur globale
Stratégie de gestion des erreurs
- Les échecs de traduction individuels n’arrêtent pas tout le lot
- Chaque résultat indique, de manière indépendante, un succès ou un échec
- Les scénarios de réussite partielle sont entièrement pris en charge
Résolution de la locale
- La locale cible globale est utilisée par défaut pour toutes les entrées
- Les locales cibles définies par entrée remplacent le paramètre global
- Toutes les locales sont résolues via un mappage personnalisé s’il est configuré
Exemples
const menuItems = await gt.translateMany([
  { source: 'Accueil' },
  { source: 'À propos' },
  { source: 'Produits' },
  { source: 'Contact' }
], {
  targetLocale: 'fr',
  context: 'Éléments du menu de navigation'
});
menuItems.translations.forEach((result, index) => {
  if ('translation' in result) {
    console.log(`Élément ${index} : ${result.translation}`);
  } else {
    console.error(`Élément ${index} en échec : ${result.error}`);
  }
});Notes
- Traduit plusieurs éléments en une seule requête API
- Un échec de traduction dans une entrée n’affecte pas les autres
- Les résultats conservent le même ordre que les entrées fournies
- Les métadonnées globales sont fusionnées avec celles propres à chaque entrée (ces dernières priment)
Prochaines étapes
- Découvrez les traductions individuelles avec translate
- Explorez les types Entry et EntryMetadata
- Comprenez la structure de TranslateManyResult
Que pensez-vous de ce guide ?

