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 using
getTranslation()` on the node really gives you everything in the right language, but it doesn't happen. Why?