<?php
// Categorías estructurales de contenido → traducciones (es_term_id => [en,fr,it,pt])
$D = [
  410  => ['Nuevo Testamento', 'New Testament','Nouveau Testament','Nuovo Testamento','Novo Testamento'],
  411  => ['Antiguo Testamento','Old Testament','Ancien Testament','Antico Testamento','Antigo Testamento'],
  49   => ['Adviento y Navidad','Advent and Christmas','Avent et Noël','Avvento e Natale','Advento e Natal'],
  12   => ['In memoriam','In Memoriam','In Memoriam','In Memoriam','In Memoriam'],
  1651 => ['Noticias','News','Actualités','Notizie','Notícias'],
  61   => ['Comunidades cristianas','Christian Communities','Communautés chrétiennes','Comunità cristiane','Comunidades cristãs'],
  23   => ['Cartas que nos llegan','Letters We Receive','Lettres reçues','Lettere che riceviamo','Cartas que recebemos'],
  39   => ['Temas','Topics','Thèmes','Temi','Temas'],
  27   => ['Índice cronológico','Chronological Index','Index chronologique','Indice cronologico','Índice cronológico'],
  63   => ['EFFA','EFFA','EFFA','EFFA','EFFA'],
];
$LangSlug = ['en'=>'en','fr'=>'fr','it'=>'it','pt'=>'pt'];
$created=0;
foreach ($D as $es_id => $names) {
  $es_term = get_term($es_id, 'category');
  if (!$es_term || is_wp_error($es_term)) { echo "skip $es_id (no existe)\n"; continue; }
  $existing = pll_get_term_translations($es_id);
  $group = $existing;
  $i = 1;
  foreach (['en','fr','it','pt'] as $L) {
    $i++;
    if (!empty($existing[$L])) { $group[$L]=$existing[$L]; continue; }
    $name = $names[$i-1];
    $slug = sanitize_title($name).'-'.$L;
    $res = wp_insert_term($name, 'category', ['slug'=>$slug]);
    if (is_wp_error($res)) { echo "  $es_id $L ERROR: ".$res->get_error_message()."\n"; continue; }
    $tid = $res['term_id'];
    pll_set_term_language($tid, $L);
    $group[$L] = $tid;
    $created++;
  }
  pll_save_term_translations($group);
  echo "#$es_id ".$names[0]." → ".implode(",", array_map(function($k,$v){return $k.":".$v;}, array_keys($group),$group))."\n";
}
echo "términos traducidos creados: $created\n";
