2

I have a node I render with the following code.

$render_controller = \Drupal::entityManager()->getViewBuilder($node->getEntityTypeId());
$render_output = $render_controller->view($node);
echo \Drupal::service("renderer")->render($render_output);

The rendered field labels are always in the original language (for example, German), even if I use $node->getTranslation("en").

I find it difficult to get translated labels to render properly. I've searched through the source code all the way from back to front to find an answer. I see my translated field label in the frontend under "/admin/config/regional/config-translation/node_fields" so it must be stored somewhere.

How do I access it or even better render the whole field correctly?

Neither $field->getLabel() nor $language_manager->setConfigOverrideLanguage($language) helped. Somehow Drupal must think it's very clever and uses some default language I don't want. I want to pick a specific language and render that. I would expect that usinggetTranslation()` on the node really gives you everything in the right language, but it doesn't happen. Why?

1

You have the change the current config translation language. user_mail() has an example for that:

  $language_manager = \Drupal::languageManager();

  $language = $language_manager->getLanguage('en');
  $original_language = $language_manager->getConfigOverrideLanguage();
  $language_manager->setConfigOverrideLanguage($language);

  // Do your thing here.

  $language_manager->setConfigOverrideLanguage($original_language);
| improve this answer | |
  • Thank you for your answer, Berdir. This is exactly what I'm doing. $language_manager = \Drupal::languageManager(); $language = $language_manager->getLanguage('en'); $original_language = $language_manager->getConfigOverrideLanguage(); $language_manager->setConfigOverrideLanguage($language); $view = $myvalue->view("default"); echo strval(\Drupal::service("renderer")->render($view)); $language_manager->setConfigOverrideLanguage($original_language); It doesn't work. – rgpublic Jul 6 '16 at 10:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.