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

Posté le Lundi 6 août 2018 - 18:18

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.

Aller plus loin ?

Ajouter un commentaire

Ne sera pas publié

Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...