How do I get translated label for a base field definition? As mentioned here and here, there is a (complicated) way, to get can get a translated labels for bundle fields.

use Drupal\field\Entity\FieldConfig;

// Override language before loading field configuration.
$language = \Drupal::languageManager()-&gt;getLanguage('fr');
\Drupal::languageManager()-&gt;setConfigOverrideLanguage($langu‌​age);

// $entity_type, $bundle, $field.
$field_info = FieldConfig::loadByName('entity_type', 'bundle', 'myField'); 

$label = $field_info-&gt;getLabel();


I however cannot find a way, how to achieve this for base fields. A hack like supplying a(any) bundle also leads to no success.
There are two possible translation methods for a base field, interface translation and configuration translation.

Base fields are defined in code and translated by t(), which gets the translatable string from the core interface translation table.

$translatableMarkup = t($label, [], ["langcode" =&gt; $langcode]);
//optionally, render to string
$translatedLabel = $translatableMarkup-&gt;render();


If a base field override exists in configuration, then it contains a translatable label:

// Override language before loading field configuration.
$language = \Drupal::languageManager()-&gt;getLanguage('fr');
\Drupal::languageManager()-&gt;setConfigOverrideLanguage($langu‌​age);

$field_override = BaseFieldOverride::loadByName('entity_type', 'bundle', 'myField');
if ($field_override) {
  $label = $field_override-&gt;getLabel();
}