Estoy trabajando con un cliente que me pidió que actualizara su tema de Drupal, y junto con eso vino una sorpresa, un módulo personalizado que muestra datos en un mapa.
El módulo personalizado hace uso de párrafos, cada subelemento contiene coordenadas relativas, un título y algunos otros campos.
¡Muy bien! Y pude "arreglarlo" para que se viera exactamente como el cliente quería …
De todos modos, al grano.
Obtener la traducción correcta
Pensé que era algo más fácil, pero me llevó unas horas de google y stackexchange.
Esta página me ayudó a entender un poco más cómo funciona, y con eso pude obtener el campo traducido de la página.
Para extraer el keypoint, tendrás que utilizar este código para obtener el mismo objeto pero con la traducción correcta:
$paragraph = Drupal::service('entity.repository')->getTranslationFromContext($paragraph, $langcode);
Para dar un poco de contexto, este código está dentro del gancho de preprocesamiento del paragrap:
función 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);
....
}
Algo así.