How can I translate the label of a vocabulary?
It will be default by the current language.

There are only two ways to get something else, unfortunately:

a) Use ConfigEntityStorage::loadOverrideFree to load a config entity without overrides, then it is in the default language of that entity, which is what language() returns.

b) You can set the current config language and then load the entity. See for example user_mail function :

  &lt;?php
  // Get the current language and override it.
  $language_manager = \Drupal::languageManager();
  $language = $language_manager-&gt;getLanguage($desired_langcode);
  $original_language = $language_manager-&gt;getConfigOverrideLanguage();
  $language_manager-&gt;setConfigOverrideLanguage($language);

  // Do your thing here.

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