diff --git a/core/modules/language/src/Form/LanguageEditForm.php b/core/modules/language/src/Form/LanguageEditForm.php index de2213a..36ccf33 100644 --- a/core/modules/language/src/Form/LanguageEditForm.php +++ b/core/modules/language/src/Form/LanguageEditForm.php @@ -9,6 +9,7 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\language\Form\LanguageFormBase; +use Drupal\Core\Language\LanguageInterface; /** * Controller for language edit forms. @@ -48,13 +49,16 @@ public function actions(array $form, FormStateInterface $form_state) { * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { - // Prepare a language object for saving. - $languages = language_list(); + // Get the language object identifed by 'langcode'. + $languages = \Drupal::languageManager()->getLanguages(LanguageInterface::STATE_CONFIGURABLE); $langcode = $form_state->getValue('langcode'); $language = $languages[$langcode]; - $language->name = $form_state->getValue('name'); - $language->direction = $form_state->getValue('direction'); - language_save($language); + + // Clone the language object and update. + $updatedLanguage = $language.toLanguageObject(); + $updatedLanguage['name'] = $form_state->getValue('name'); + $updatedLanguage['direction'] = $form_state->getValue('direction'); + language_save($updatedLanguage); $form_state->setRedirect('language.admin_overview'); }