Je construis interne dans mon module personnalisé que je porte sur Drupal 8: https://www.drupal.org/project/taxonomy_facets
J'ai besoin d'obtenir un préfixe de langue actuel afin de pouvoir l'ajouter au lien. I Drupal 7 c'était aussi simple que:
global $language;
$prefix = $language->prefix;
$mylink = $prefix . '/example/something';
Comment faire cela dans Drupal 8?
EDIT: Mon problème est précisément que j'ai un préfixe de langue défini sur NONE
pour la langue par défaut à Home >> Administration >> Configuration >> Regional and language >> Languages >> Detection and selection
. (admin/config/régional/langue/détection/url)
Pour la langue par défaut, je veux que le code renvoie le vrai préfixe, i. e. NONE
, pas en
(le code de la langue par défaut, l'anglais).
Dans Drupal 8, vous utilisez la classe languageManager pour obtenir le code de langue:
$languagecode = \Drupal::languageManager()->getCurrentLanguage()->getId();
EDIT: Si vous souhaitez retourner NONE
si la langue actuelle est la langue par défaut, vous devez probablement faire une fonction d'assistance:
$languagecode = \Drupal::languageManager()->getCurrentLanguage()->getId();
$default_languagecode = \Drupal::languageManager()->getDefaultLanguage()->getId();
if ($languagecode == $default_languagecode) {
return "NONE";
}
else {
return $languagecode;
}
fonction d'aide pour le ge à partir des paramètres
function getLanguagePrefix() {
if($prefixes = \Drupal::config('language.negotiation')->get('url.prefixes')) {
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
return "/". $prefixes[$language];
}
return null;
}