How do I get a field rendered with translated labels? I have a node I render with the following code.

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


The rendered field labels are always in the original language (for example, German), even if I use $node-&gt;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-&gt;getLabel() nor $language_manager-&gt;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?
You have the change the current config translation language. user_mail() has an example for that:

  $language_manager = \Drupal::languageManager();

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

  // Do your thing here.

  $language_manager-&gt;setConfigOverrideLanguage($original_language);