You are here

function language_selection_page_requirements in Language Selection Page 8.2

Same name and namespace in other branches
  1. 6 language_selection_page.install \language_selection_page_requirements()
  2. 7.2 language_selection_page.install \language_selection_page_requirements()
  3. 7 language_selection_page.install \language_selection_page_requirements()

Implements hook_requirements().

File

./language_selection_page.install, line 16

Code

function language_selection_page_requirements($phase) {
  $requirements = [];
  if ($phase === 'install') {
    return $requirements;
  }
  $languages = \Drupal::languageManager()
    ->getNativeLanguages();
  $language_negotiation_config = \Drupal::config('language.negotiation')
    ->get('url');
  $prefixes = array_filter($language_negotiation_config['prefixes']);
  $lang_list_without_prefix = [];
  foreach ($languages as $language) {
    if (empty($prefixes[$language
      ->getId()])) {
      $lang_list_without_prefix[$language
        ->getId()] = t('You should <a href=":admin">add a path prefix</a> to @language language if you want to have it enabled in the Language Selection Page.', [
        '@language' => $language
          ->getName(),
        ':admin' => Url::fromRoute('language.negotiation_url')
          ->toString(),
      ]);
    }
  }
  if (count($lang_list_without_prefix) >= 1) {
    $requirements['language_selection_page'] = [
      'title' => 'Language Selection Page',
      'value' => [
        '#theme' => 'item_list',
        '#items' => $lang_list_without_prefix,
      ],
    ];
  }
  else {
    $requirements['language_selection_page'] = [
      'title' => 'Language Selection Page',
      'value' => t('All your languages have language prefixes.'),
      'severity' => REQUIREMENT_OK,
    ];
  }
  return $requirements;
}