Trying to print translated field label/values to twig
First the {{ trans }} and {{ var|t }} methods only do substitutions from the UI language strings (e.g. specific strings (e.g. "More") that have translations defined (in the UI or code). So, this will not work for 'random' text entered into a field.

That said, it looks like tab_label is an entity reference field.  So, tab_label.entity will always get the default language entity.

I would say do the theme_preprocess_xxx to add the current language to what you are rendering (e.g. if it's a block or a node use those, not just page.  Preprocess variables may or may not trickle down.  I'd only pass on the langcode just to save a bit of memory.  So the preprocess function would look like:

function theme_preprocess_XXX(&amp;$variables) {
    $language = \Drupal::languageManager()-&gt;getCurrentLanguage();
    $variables['lang_code'] = $language-&gt;getId();
}


Next in the twig file, you can use this code to get the translations:

{% if tab_label.entity.hastranslation(lang_code) %}
  {% set tabLabel = tab_label.entity.translation(lang_code).field_tab_title.entity.label %}
{% else %}
  {% set tabLabel =tab_label.entity.field_tab_title.entity.label %}
{% endif %}
&lt;li class='tab'&gt;{{ tabLabel }}&lt;/li&gt;


Using the set will help keep your HTML easy to validate in the template.