Programatically render a node in a specific language
The field labels are used from the config translation system. You also need to set the config override language. See user_mail() in core.

  // Temporarily alter the language manager.
  $language_manager = \Drupal::languageManager();
  $langcode = $message['langcode'];
  $variables = array('user' =&gt; $params['account']);

  $language = \Drupal::languageManager()-&gt;getLanguage($params['account']-&gt;getPreferredLangcode());
  $original_language = $language_manager-&gt;getConfigOverrideLanguage();
  $language_manager-&gt;setConfigOverrideLanguage($language);
  $mail_config = \Drupal::config('user.mail');

  // Restore the language manager.
  $language_manager-&gt;setConfigOverrideLanguage($original_language);