You are here

function language_hierarchy_form_language_admin_edit_form_alter in Language Hierarchy 8

Same name and namespace in other branches
  1. 2.x language_hierarchy.module \language_hierarchy_form_language_admin_edit_form_alter()

Implements hook_form_FORM_ID_alter().

File

./language_hierarchy.module, line 88
Add sublanguage handling functionality to Drupal.

Code

function language_hierarchy_form_language_admin_edit_form_alter(&$form, FormStateInterface $form_state) {

  /** @var Drupal\language\Entity\ConfigurableLanguage $this_language */
  $this_language = $form_state
    ->getFormObject()
    ->getEntity();
  $languages = Drupal::languageManager()
    ->getLanguages();
  $options = [];
  foreach ($languages as $language) {

    // Only include this language if it's not itself.
    if ($language
      ->getId() != $this_language
      ->getId()) {
      $options[$language
        ->getId()] = $language
        ->getName();
    }
  }
  $form['language_hierarchy_fallback_langcode'] = [
    '#type' => 'select',
    '#title' => t('Translation fallback language'),
    '#description' => t('When a translation is not available for text, this fallback language is used. If that is not available either, the fallback continues onward.'),
    '#options' => $options,
    '#default_value' => $this_language
      ->getThirdPartySetting('language_hierarchy', 'fallback_langcode', ''),
    // Allow to not fall back on any other language.
    '#empty_value' => '',
  ];
  $form['#entity_builders'][] = 'language_hierarchy_form_language_admin_edit_form_builder';
}