kgaut.net // Développeur web PHP / Drupal freelance
contactez-moi

Drupal 8 - Créer la traduction d'une chaine de caractère dans le code

Cet article a été écrit il y a plus de quatre ans, son contenu n'est peut-être plus d'actualité.

Dans un processus de déploiement, il est utile de gérer les traductions de chaînes de caractères dans le code, afin de pouvoir les déployer plus facilement.

Exemple avec cette fonction d'update à adapter en fonction de vos besoins :

/**
 * Création d'une traduction
 */
function mespronos_tweaks_update_8005() {
  $chaine = 'Forgotten password';
  $traduction = 'Mot de passe oublié';
  $storage = \Drupal::service('locale.storage');
  $string = $storage->findString(['source' => $chaine]);
  if ($string === NULL) {
    $string = new \Drupal\locale\SourceString();
    $string->setString($chaine);
    $string->setStorage($storage);
    $string->save();
  }

  $translation = $storage->createTranslation(array(
    'lid' => $string->lid,
    'language' => 'fr',
    'translation' => $traduction,
  ))->save();
}

Pour un exemple réel, il sera plus pratique de passer par un tableau associatif (à deux dimensions si l'on veut importer plusieurs langues) qui sera parcouru par un ou deux foreach.

Commentaires (0)