Paragrafi Drupal – ottieni i valori dei campi della traduzione

Sto lavorando con un cliente che mi ha chiesto di aggiornare il tema di Drupal, e insieme a questo è stata una sorpresa, un modulo personalizzato che visualizza i dati su una mappa.

Il modulo personalizzato utilizza paragrafi, ogni sottoelemento contiene coordinate relative, un titolo e pochi altri campi.

Abbastanza bello! E sono stato in grado di "aggiustarlo" per apparire esattamente come il cliente voleva …

Comunque, sul punto.

Ottenere la traduzione corretta

Ho pensato che fosse qualcosa di più semplice, ma mi ci sono volute alcune ore di google e stackexchange.

Questa pagina mi ha aiutato a capire un po 'di più come funziona, e con ciò sono stato in grado di ottenere il campo tradotto della pagina.

Per estrarre il keypoint, dovrai usare questo codice per ottenere lo stesso oggetto ma con la giusta traduzione:

$paragraph = Drupal::service('entity.repository')->getTranslationFromContext($paragraph, $langcode);

Per dare un po 'di contesto, questo codice è all'interno del gancio di pre-elaborazione del paragrap:

funzione hook_preprocess_paragraph(&$variables) {
  $paragraph = $variables ['paragraph'] ;
  $langcode = $paragraph->language()->getId();

switch($paragraph->getType()) {
    caso «my_paragraph_field»:
      $translatedParagraph = Drupal::service('entity.repository')->getTranslationFromContext($paragraph, $langcode);

....

}

Qualcosa del genere.

Pubblicato in Sviluppo web.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.