Drupal 8: https://www.drupal.org/project/taxonomy_facets に移植するカスタムモジュールの内部を構築しています
リンクの前に追加できるように、現在の言語プレフィックスを取得する必要があります。 I Drupal 7それは次のように単純でした:
global $language;
$prefix = $language->prefix;
$mylink = $prefix . '/example/something';
Drupal 8でこれをどのように行うことができますか?
編集:特に私の問題は、Home >> Administration >> Configuration >> Regional and language >> Languages >> Detection and selection
のデフォルト言語の言語プレフィックスをNONE
に設定していることです。 (admin/config/regional/language/detection/url)
デフォルトの言語の場合、コードで実際のプレフィックスを返すようにします。 e。 NONE
ではなくen
(デフォルト言語の英語のコード)。
Drupal 8では、 languageManager クラスを使用して言語コードを取得します。
$languagecode = \Drupal::languageManager()->getCurrentLanguage()->getId();
編集:現在の言語がデフォルト言語である場合にNONE
を返したい場合、おそらくヘルパー関数を作成する必要があります:
$languagecode = \Drupal::languageManager()->getCurrentLanguage()->getId();
$default_languagecode = \Drupal::languageManager()->getDefaultLanguage()->getId();
if ($languagecode == $default_languagecode) {
return "NONE";
}
else {
return $languagecode;
}
設定からそれを取得するヘルパー関数
function getLanguagePrefix() {
if($prefixes = \Drupal::config('language.negotiation')->get('url.prefixes')) {
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
return "/". $prefixes[$language];
}
return null;
}