How do I get a field label in different languages? In a module (not a template), I need the label of a specific field in multiple languages.

$entity-&gt;getFieldDefinition('myField')-&gt;label() gives me the label in current/active language (let's say, English).

What doesn't work as expected is the following:

$entity-&gt;getTranslation('fr')-&gt;getFieldDefinition('myField')-&gt;label()

I would expect the label in French. Instead, I get the label English. How to get the French label?
You can load an entity's translation by using the entity repository service. The field configuration is an entity itself. So you could try this:

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();


EDIT:

As stated by 4k4 within the comments, config entities don't behave like content entities. So in order to get their translations, you will need to override the language before getting their translatable strings. Adjusted the example accordingly.