Trying to print translated field label/values to twig I have been trying to figure out how I can print or display the translated values based on the current language of the page. 

I have tried using some of the following options {% trans %} and {% endtrans %} does not work

{# {% trans  %}
&lt;li class="tab"&gt;{{ tab_label.entity.field_tab_title_selection.value }}&lt;/li&gt;
{% endtrans %} #}




2nd Option using preprocess, the problem with this method in the event I have multiple language setup I have to create multiple if's statement. Lets say I have 10 languages then I have to create 10 conditions 

Using Pre-process

function iom_preprocess_page(&amp;$variables) {

    $language = \Drupal::languageManager()-&gt;getCurrentLanguage()-&gt;getId();
    $vars['language'] = $language;

}




{# {% if (language.getId() == 'fr')  %}

&lt;li class="tab"&gt;{{ tab_label.entity.field_tab_title.entity.translation('fr').label }}&lt;/li&gt;

{% else %}

&lt;li class="tab"&gt;{{ tab_label.entity.field_tab_title.entity.label }}&lt;/li&gt;

{% endif %} #}
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.