diff --git a/core/includes/update.inc b/core/includes/update.inc index d31f994..6f44f3d 100644 --- a/core/includes/update.inc +++ b/core/includes/update.inc @@ -746,7 +746,7 @@ function update_language_list($flags = LanguageInterface::STATE_CONFIGURABLE) { if ($flags & LanguageInterface::STATE_SITE_DEFAULT) { $default = isset($default) ? $default : \Drupal::languageManager()->getDefaultLanguage(); // Rename the default language. - $default->name = t("Site's default language (@lang_name)", array('@lang_name' => $default->name)); + $default->setName(t("Site's default language (@lang_name)", array('@lang_name' => $default->getName()))); $filtered_languages['site_default'] = $default; } diff --git a/core/lib/Drupal/Core/Language/LanguageManager.php b/core/lib/Drupal/Core/Language/LanguageManager.php index 605a5ab..e87e212 100644 --- a/core/lib/Drupal/Core/Language/LanguageManager.php +++ b/core/lib/Drupal/Core/Language/LanguageManager.php @@ -134,32 +134,13 @@ public function getLanguages($flags = LanguageInterface::STATE_CONFIGURABLE) { // No language module, so use the default language only. $default = $this->getDefaultLanguage(); $this->languages = array($default->id => $default); - // Add the special languages, they will be filtered later if needed. - $this->languages += $this->getDefaultLockedLanguages($default->weight); } // Filter the full list of languages based on the value of the $all flag. By // default we remove the locked languages, but the caller may request for // those languages to be added as well. - $filtered_languages = array(); - // Add the site's default language if flagged as allowed value. - if ($flags & LanguageInterface::STATE_SITE_DEFAULT) { - $default = isset($default) ? $default : $this->getDefaultLanguage(); - // Rename the default language. But we do not want to do this globally, - // if we're acting on a global object, so clone the object first. - $default = clone $default; - $default->name = $this->t("Site's default language (@lang_name)", array('@lang_name' => $default->name)); - $filtered_languages['site_default'] = $default; - } - - foreach ($this->languages as $id => $language) { - if (($language->isLocked() && ($flags & LanguageInterface::STATE_LOCKED)) || (!$language->isLocked() && ($flags & LanguageInterface::STATE_CONFIGURABLE))) { - $filtered_languages[$id] = $language; - } - } - - return $filtered_languages; + return $this->languageFilter($this->languages, $flags); } /** @@ -186,7 +167,7 @@ public function getLanguageName($langcode) { return $this->t('None'); } if ($language = $this->getLanguage($langcode)) { - return $language->name; + return $language->getName(); } if (empty($langcode)) { return $this->t('Unknown'); @@ -383,4 +364,42 @@ public function getConfigOverrideLanguage() { return $this->getCurrentLanguage(); } + + /** + * Filters the full list of languages based on the value of the flag. + * + * The locked languages are removed by default. + * + * @param \Drupal\Core\Language\LanguageInterface[] $languages + * Array with languages to be filtered. + * + * @param int $flags + * (optional) Specifies the state of the languages that have to be returned. + * It can be: LanguageInterface::STATE_CONFIGURABLE, + * LanguageInterface::STATE_LOCKED, or LanguageInterface::STATE_ALL. + * + * @return \Drupal\Core\Language\LanguageInterface[] + * An associative array of languages, keyed by the language code. + */ + protected function languageFilter(array $languages, $flags = LanguageInterface::STATE_CONFIGURABLE) { + $filtered_languages = array(); + // Add the site's default language if flagged as allowed value. + if ($flags & LanguageInterface::STATE_SITE_DEFAULT) { + $default = $this->getDefaultLanguage(); + // Rename the default language. But we do not want to do this globally, + // if we're acting on a global object, so clone the object first. + $default = clone $default; + $default->name = $this->t("Site's default language (@lang_name)", array('@lang_name' => $default->name)); + $filtered_languages['site_default'] = $default; + } + + foreach ($languages as $id => $language) { + if (($language->isLocked() && ($flags & LanguageInterface::STATE_LOCKED)) || (!$language->isLocked() && ($flags & LanguageInterface::STATE_CONFIGURABLE))) { + $filtered_languages[$id] = $language; + } + } + + return $filtered_languages; + } + } diff --git a/core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php b/core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php index 3a0780f..cfaa743 100644 --- a/core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php +++ b/core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php @@ -77,7 +77,7 @@ public function setValue($value, $notify = TRUE) { */ public function getString() { $language = $this->getValue(); - return $language ? $language->name : ''; + return $language ? $language->getName() : ''; } /** diff --git a/core/modules/config_translation/src/Controller/ConfigTranslationController.php b/core/modules/config_translation/src/Controller/ConfigTranslationController.php index 646d3b8..0c3dfae 100644 --- a/core/modules/config_translation/src/Controller/ConfigTranslationController.php +++ b/core/modules/config_translation/src/Controller/ConfigTranslationController.php @@ -163,7 +163,7 @@ public function itemPage(Request $request, RouteMatchInterface $route_match, $pl // Prepare the language name and the operations depending on whether this // is the original language or not. if ($langcode == $original_langcode) { - $language_name = '' . $this->t('@language (original)', array('@language' => $language->name)) . ''; + $language_name = '' . $this->t('@language (original)', array('@language' => $language->getName())) . ''; // Check access for the path/route for editing, so we can decide to // include a link to edit or not. @@ -181,7 +181,7 @@ public function itemPage(Request $request, RouteMatchInterface $route_match, $pl } } else { - $language_name = $language->name; + $language_name = $language->getName(); $operations = array(); // If no translation exists for this language, link to add one. diff --git a/core/modules/config_translation/src/Form/ConfigTranslationAddForm.php b/core/modules/config_translation/src/Form/ConfigTranslationAddForm.php index 1930c3b..883574d 100644 --- a/core/modules/config_translation/src/Form/ConfigTranslationAddForm.php +++ b/core/modules/config_translation/src/Form/ConfigTranslationAddForm.php @@ -29,7 +29,7 @@ public function buildForm(array $form, FormStateInterface $form_state, Request $ $form = parent::buildForm($form, $form_state, $request, $plugin_id, $langcode); $form['#title'] = $this->t('Add @language translation for %label', array( '%label' => $this->mapper->getTitle(), - '@language' => $this->language->name, + '@language' => $this->language->getName(), )); return $form; } @@ -39,7 +39,7 @@ public function buildForm(array $form, FormStateInterface $form_state, Request $ */ public function submitForm(array &$form, FormStateInterface $form_state) { parent::submitForm($form, $form_state); - drupal_set_message($this->t('Successfully saved @language translation.', array('@language' => $this->language->name))); + drupal_set_message($this->t('Successfully saved @language translation.', array('@language' => $this->language->getName()))); } } diff --git a/core/modules/config_translation/src/Form/ConfigTranslationDeleteForm.php b/core/modules/config_translation/src/Form/ConfigTranslationDeleteForm.php index d4c18a4..0cf4ab5 100644 --- a/core/modules/config_translation/src/Form/ConfigTranslationDeleteForm.php +++ b/core/modules/config_translation/src/Form/ConfigTranslationDeleteForm.php @@ -89,7 +89,7 @@ public static function create(ContainerInterface $container) { * {@inheritdoc} */ public function getQuestion() { - return $this->t('Are you sure you want to delete the @language translation of %label?', array('%label' => $this->mapper->getTitle(), '@language' => $this->language->name)); + return $this->t('Are you sure you want to delete the @language translation of %label?', array('%label' => $this->mapper->getTitle(), '@language' => $this->language->getName())); } /** @@ -145,7 +145,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { $cache_backend->deleteAll(); } - drupal_set_message($this->t('@language translation of %label was deleted', array('%label' => $this->mapper->getTitle(), '@language' => $this->language->name))); + drupal_set_message($this->t('@language translation of %label was deleted', array('%label' => $this->mapper->getTitle(), '@language' => $this->language->getName()))); $form_state->setRedirectUrl($this->getCancelUrl()); } diff --git a/core/modules/config_translation/src/Form/ConfigTranslationEditForm.php b/core/modules/config_translation/src/Form/ConfigTranslationEditForm.php index 91e4797..2c1fc3c 100644 --- a/core/modules/config_translation/src/Form/ConfigTranslationEditForm.php +++ b/core/modules/config_translation/src/Form/ConfigTranslationEditForm.php @@ -29,7 +29,7 @@ public function buildForm(array $form, FormStateInterface $form_state, Request $ $form = parent::buildForm($form, $form_state, $request, $plugin_id, $langcode); $form['#title'] = $this->t('Edit @language translation for %label', array( '%label' => $this->mapper->getTitle(), - '@language' => $this->language->name, + '@language' => $this->language->getName(), )); return $form; } @@ -39,7 +39,7 @@ public function buildForm(array $form, FormStateInterface $form_state, Request $ */ public function submitForm(array &$form, FormStateInterface $form_state) { parent::submitForm($form, $form_state); - drupal_set_message($this->t('Successfully updated @language translation.', array('@language' => $this->language->name))); + drupal_set_message($this->t('Successfully updated @language translation.', array('@language' => $this->language->getName()))); } } diff --git a/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php b/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php index d195d24..4bb2547 100644 --- a/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php +++ b/core/modules/config_translation/src/Form/ConfigTranslationFormBase.php @@ -316,7 +316,7 @@ protected function buildConfigForm(Element $schema, $config_data, $base_config_d '!label (!source_language)', array( '!label' => $this->t($definition['label']), - '!source_language' => $this->sourceLanguage->name, + '!source_language' => $this->sourceLanguage->getName(), ) ), '#type' => 'item', diff --git a/core/modules/config_translation/src/FormElement/DateFormat.php b/core/modules/config_translation/src/FormElement/DateFormat.php index b19c66c..4081f04 100644 --- a/core/modules/config_translation/src/FormElement/DateFormat.php +++ b/core/modules/config_translation/src/FormElement/DateFormat.php @@ -29,7 +29,7 @@ public function getFormElement(DataDefinitionInterface $definition, LanguageInte $format = $this->t('Displayed as %date_format', array('%date_format' => \Drupal::service('date.formatter')->format(REQUEST_TIME, 'custom', $value))); return array( '#type' => 'textfield', - '#title' => $this->t($definition->getLabel()) . ' (' . $language->name . ')', + '#title' => $this->t($definition->getLabel()) . ' (' . $language->getName() . ')', '#description' => $description, '#default_value' => $value, '#attributes' => array('lang' => $language->id), diff --git a/core/modules/config_translation/src/FormElement/Textarea.php b/core/modules/config_translation/src/FormElement/Textarea.php index e4692ec..7d92551 100644 --- a/core/modules/config_translation/src/FormElement/Textarea.php +++ b/core/modules/config_translation/src/FormElement/Textarea.php @@ -29,7 +29,7 @@ public function getFormElement(DataDefinitionInterface $definition, LanguageInte return array( '#type' => 'textarea', '#default_value' => $value, - '#title' => $this->t($definition->getLabel()) . ' (' . $language->name . ')', + '#title' => $this->t($definition->getLabel()) . ' (' . $language->getName() . ')', '#rows' => $rows, '#attributes' => array('lang' => $language->id), ); diff --git a/core/modules/config_translation/src/FormElement/Textfield.php b/core/modules/config_translation/src/FormElement/Textfield.php index 34759dc..6c04137 100644 --- a/core/modules/config_translation/src/FormElement/Textfield.php +++ b/core/modules/config_translation/src/FormElement/Textfield.php @@ -24,7 +24,7 @@ public function getFormElement(DataDefinitionInterface $definition, LanguageInte return array( '#type' => 'textfield', '#default_value' => $value, - '#title' => $this->t($definition->getLabel()) . ' (' . $language->name . ')', + '#title' => $this->t($definition->getLabel()) . ' (' . $language->getName() . ')', '#attributes' => array('lang' => $language->id), ); } diff --git a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php index 690beee..c7dc0c0 100644 --- a/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php +++ b/core/modules/config_translation/src/Tests/ConfigTranslationUiTest.php @@ -325,7 +325,7 @@ public function testContactConfigEntityTranslation() { // Test that delete links work and operations perform properly. foreach ($this->langcodes as $langcode) { - $replacements = array('%label' => t('!label !entity_type', array('!label' => $label, '!entity_type' => Unicode::strtolower(t('Contact form')))), '@language' => language_load($langcode)->name); + $replacements = array('%label' => t('!label !entity_type', array('!label' => $label, '!entity_type' => Unicode::strtolower(t('Contact form')))), '@language' => language_load($langcode)->getName()); $this->drupalGet("$translation_base_url/$langcode/delete"); $this->assertRaw(t('Are you sure you want to delete the @language translation of %label?', $replacements)); diff --git a/core/modules/content_translation/content_translation.admin.inc b/core/modules/content_translation/content_translation.admin.inc index 92b75bf..cefdcc6 100644 --- a/core/modules/content_translation/content_translation.admin.inc +++ b/core/modules/content_translation/content_translation.admin.inc @@ -269,7 +269,7 @@ function content_translation_form_language_content_settings_validate(array $form $values = $bundle_settings['settings']['language']; if (empty($values['language_show']) && \Drupal::languageManager()->isLanguageLocked($values['langcode'])) { foreach (\Drupal::languageManager()->getLanguages(LanguageInterface::STATE_LOCKED) as $language) { - $locked_languages[] = $language->name; + $locked_languages[] = $language->getName(); } $form_state->setErrorByName($name, t('Translation is not supported if language is always one of: @locked_languages', array('@locked_languages' => implode(', ', $locked_languages)))); } diff --git a/core/modules/content_translation/content_translation.module b/core/modules/content_translation/content_translation.module index 49e4b67..45d2e0e 100644 --- a/core/modules/content_translation/content_translation.module +++ b/core/modules/content_translation/content_translation.module @@ -676,7 +676,7 @@ function content_translation_language_configuration_element_validate($element, F $values = $form_state->getValue($key); if (!$values['language_show'] && $values['content_translation'] && \Drupal::languageManager()->isLanguageLocked($values['langcode'])) { foreach (\Drupal::languageManager()->getLanguages(LanguageInterface::STATE_LOCKED) as $language) { - $locked_languages[] = $language->name; + $locked_languages[] = $language->getName(); } // @todo Set the correct form element name as soon as the element parents // are correctly set. We should be using NestedArray::getValue() but for diff --git a/core/modules/content_translation/src/ContentTranslationHandler.php b/core/modules/content_translation/src/ContentTranslationHandler.php index b619036..b9a2d44 100644 --- a/core/modules/content_translation/src/ContentTranslationHandler.php +++ b/core/modules/content_translation/src/ContentTranslationHandler.php @@ -109,7 +109,7 @@ public function entityFormAlter(array &$form, FormStateInterface $form_state, En $title = $this->entityFormTitle($entity); // When editing the original values display just the entity label. if ($form_langcode != $entity_langcode) { - $t_args = array('%language' => $languages[$form_langcode]->name, '%title' => $entity->label()); + $t_args = array('%language' => $languages[$form_langcode]->getName(), '%title' => $entity->label()); $title = empty($source_langcode) ? $title . ' [' . t('%language translation', $t_args) . ']' : t('Create %language translation of %title', $t_args); } $form['#title'] = $title; @@ -120,7 +120,7 @@ public function entityFormAlter(array &$form, FormStateInterface $form_state, En if ($has_translations && $new_translation) { $form['source_langcode'] = array( '#type' => 'details', - '#title' => t('Source language: @language', array('@language' => $languages[$source_langcode]->name)), + '#title' => t('Source language: @language', array('@language' => $languages[$source_langcode]->getName())), '#tree' => TRUE, '#weight' => -100, '#multilingual' => TRUE, @@ -139,7 +139,7 @@ public function entityFormAlter(array &$form, FormStateInterface $form_state, En ); foreach (language_list(LanguageInterface::STATE_CONFIGURABLE) as $language) { if (isset($translations[$language->id])) { - $form['source_langcode']['source']['#options'][$language->id] = $language->name; + $form['source_langcode']['source']['#options'][$language->id] = $language->getName(); } } } @@ -152,7 +152,7 @@ public function entityFormAlter(array &$form, FormStateInterface $form_state, En $form['langcode']['#options'] = array(); foreach (language_list(LanguageInterface::STATE_CONFIGURABLE) as $language) { if (empty($translations[$language->id]) || $language->id == $entity_langcode) { - $form['langcode']['#options'][$language->id] = $language->name; + $form['langcode']['#options'][$language->id] = $language->getName(); } } } @@ -450,7 +450,7 @@ public function entityFormSourceChange($form, FormStateInterface $form_state) { 'target' => $form_object->getFormLangcode($form_state), )); $languages = language_list(); - drupal_set_message(t('Source language set to: %language', array('%language' => $languages[$source]->name))); + drupal_set_message(t('Source language set to: %language', array('%language' => $languages[$source]->getName()))); } /** diff --git a/core/modules/content_translation/src/Controller/ContentTranslationController.php b/core/modules/content_translation/src/Controller/ContentTranslationController.php index b00a11f..5873d89 100644 --- a/core/modules/content_translation/src/Controller/ContentTranslationController.php +++ b/core/modules/content_translation/src/Controller/ContentTranslationController.php @@ -75,7 +75,7 @@ public function overview(Request $request, $entity_type_id = NULL) { $show_source_column = !empty($additional_source_langcodes); foreach ($languages as $language) { - $language_name = $language->name; + $language_name = $language->getName(); $langcode = $language->getId(); $add_url = new Url( @@ -160,7 +160,7 @@ public function overview(Request $request, $entity_type_id = NULL) { $source_name = $this->t('n/a'); } else { - $source_name = isset($languages[$source]) ? $languages[$source]->name : $this->t('n/a'); + $source_name = isset($languages[$source]) ? $languages[$source]->getName() : $this->t('n/a'); if ($handler->getTranslationAccess($entity, 'delete')->isAllowed()) { $links['delete'] = array( 'title' => $this->t('Delete'), diff --git a/core/modules/content_translation/src/Form/ContentTranslationDeleteForm.php b/core/modules/content_translation/src/Form/ContentTranslationDeleteForm.php index 1b723ce..f9d8233 100644 --- a/core/modules/content_translation/src/Form/ContentTranslationDeleteForm.php +++ b/core/modules/content_translation/src/Form/ContentTranslationDeleteForm.php @@ -57,7 +57,7 @@ public function getConfirmText() { * {@inheritdoc} */ public function getQuestion() { - return $this->t('Are you sure you want to delete the @language translation of %label?', array('@language' => $this->language->name, '%label' => $this->entity->label())); + return $this->t('Are you sure you want to delete the @language translation of %label?', array('@language' => $this->language->getName(), '%label' => $this->entity->label())); } /** diff --git a/core/modules/language/language.module b/core/modules/language/language.module index 40b9bfa..48527a6 100644 --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -148,7 +148,7 @@ function language_process_language_select($element) { if (!isset($element['#options'])) { $element['#options'] = array(); foreach (\Drupal::languageManager()->getLanguages($element['#languages']) as $langcode => $language) { - $element['#options'][$langcode] = $language->isLocked() ? t('- @name -', array('@name' => $language->name)) : $language->name; + $element['#options'][$langcode] = $language->locked ? t('- @name -', array('@name' => $language->getName())) : $language->getName(); } } // Add "Built-in English" language to the select when the default value is @@ -505,7 +505,7 @@ function language_form_system_regional_settings_alter(&$form, FormStateInterface $languages = \Drupal::languageManager()->getLanguages(); $default = \Drupal::languageManager()->getDefaultLanguage(); foreach ($languages as $key => $language) { - $language_options[$key] = $language->name; + $language_options[$key] = $language->getName(); } $form['locale']['site_default_language'] = array( '#type' => 'select', diff --git a/core/modules/language/src/ConfigurableLanguageManager.php b/core/modules/language/src/ConfigurableLanguageManager.php index 6699ab0..be113ed 100644 --- a/core/modules/language/src/ConfigurableLanguageManager.php +++ b/core/modules/language/src/ConfigurableLanguageManager.php @@ -278,37 +278,12 @@ public function setNegotiator(LanguageNegotiatorInterface $negotiator) { * {@inheritdoc} */ public function getLanguages($flags = LanguageInterface::STATE_CONFIGURABLE) { - if (!isset($this->languages)) { - // Prepopulate the language list with the default language to keep things - // working even if we have no configuration. - $default = $this->getDefaultLanguage(); - $this->languages = array($default->id => $default); - - // Retrieve the list of languages defined in configuration. - $prefix = 'language.entity.'; - $config_ids = $this->configFactory->listAll($prefix); - - // Instantiate languages from config objects. - $weight = 0; - foreach ($this->configFactory->loadMultiple($config_ids) as $config) { - $data = $config->get(); - $langcode = $data['id']; - // Initialize default property so callers have an easy reference and can - // save the same object without data loss. - $data['default'] = ($langcode == $default->id); - $data['name'] = $data['label']; - $this->languages[$langcode] = new Language($data); - $weight = max(array($weight, $this->languages[$langcode]->weight)); - } - - // Add locked languages, they will be filtered later if needed. - $this->languages += $this->getDefaultLockedLanguages($weight); + $languages = entity_load_multiple('configurable_language'); - // Sort the language list by weight then title. - Language::sort($this->languages); - } + // Sort the language list by weight then title. + Language::sort($languages); - return parent::getLanguages($flags); + return $this->languageFilter($languages, $flags); } /** diff --git a/core/modules/language/src/Element/LanguageConfiguration.php b/core/modules/language/src/Element/LanguageConfiguration.php index e24f8bd..7ee0f9a 100644 --- a/core/modules/language/src/Element/LanguageConfiguration.php +++ b/core/modules/language/src/Element/LanguageConfiguration.php @@ -93,14 +93,15 @@ public static function processLanguageConfiguration(&$element, FormStateInterfac */ protected static function getDefaultOptions() { $language_options = array( - 'site_default' => t("Site's default language (!language)", array('!language' => static::languageManager()->getDefaultLanguage()->name)), + 'site_default' => t("Site's default language (!language)", array('!language' => static::languageManager()->getDefaultLanguage()->getName())), 'current_interface' => t('Current interface language'), 'authors_default' => t("Author's preferred language"), ); + /* @var LanguageInterface[] $languages*/ $languages = static::languageManager()->getLanguages(LanguageInterface::STATE_ALL); foreach ($languages as $langcode => $language) { - $language_options[$langcode] = $language->isLocked() ? t('- @name -', array('@name' => $language->name)) : $language->name; + $language_options[$langcode] = $language->locked ? t('- @name -', array('@name' => $language->getName())) : $language->getName(); } return $language_options; diff --git a/core/modules/language/src/Form/LanguageAddForm.php b/core/modules/language/src/Form/LanguageAddForm.php index 8561acb..93f1445 100644 --- a/core/modules/language/src/Form/LanguageAddForm.php +++ b/core/modules/language/src/Form/LanguageAddForm.php @@ -118,7 +118,7 @@ public function validateCustom(array $form, FormStateInterface $form_state) { $this->validateCommon($form['custom_language'], $form_state); if ($language = language_load($langcode)) { - $form_state->setErrorByName('langcode', $this->t('The language %language (%langcode) already exists.', array('%language' => $language->name, '%langcode' => $langcode))); + $form_state->setErrorByName('langcode', $this->t('The language %language (%langcode) already exists.', array('%language' => $language->getName(), '%langcode' => $langcode))); } } else { @@ -136,7 +136,7 @@ public function validatePredefined($form, FormStateInterface $form_state) { } else { if ($language = language_load($langcode)) { - $form_state->setErrorByName('predefined_langcode', $this->t('The language %language (%langcode) already exists.', array('%language' => $language->name, '%langcode' => $langcode))); + $form_state->setErrorByName('predefined_langcode', $this->t('The language %language (%langcode) already exists.', array('%language' => $language->getName(), '%langcode' => $langcode))); } } } diff --git a/core/modules/language/src/Form/NegotiationBrowserForm.php b/core/modules/language/src/Form/NegotiationBrowserForm.php index 766ecb5..aea7ad1 100644 --- a/core/modules/language/src/Form/NegotiationBrowserForm.php +++ b/core/modules/language/src/Form/NegotiationBrowserForm.php @@ -64,7 +64,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { $existing_languages = array(); foreach ($languages as $langcode => $language) { - $existing_languages[$langcode] = $language->name; + $existing_languages[$langcode] = $language->getName(); } // If we have no languages available, present the list of predefined languages diff --git a/core/modules/language/src/Form/NegotiationUrlForm.php b/core/modules/language/src/Form/NegotiationUrlForm.php index f28a53d..d1d9c21 100644 --- a/core/modules/language/src/Form/NegotiationUrlForm.php +++ b/core/modules/language/src/Form/NegotiationUrlForm.php @@ -73,7 +73,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { $prefixes = language_negotiation_url_prefixes(); $domains = language_negotiation_url_domains(); foreach ($languages as $langcode => $language) { - $t_args = array('%language' => $language->name, '%langcode' => $language->id); + $t_args = array('%language' => $language->getName(), '%langcode' => $language->id); $form['prefix'][$langcode] = array( '#type' => 'textfield', '#title' => $language->isDefault() ? $this->t('%language (%langcode) path prefix (Default language)', $t_args) : $this->t('%language (%langcode) path prefix', $t_args), @@ -83,7 +83,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { ); $form['domain'][$langcode] = array( '#type' => 'textfield', - '#title' => $this->t('%language (%langcode) domain', array('%language' => $language->name, '%langcode' => $language->id)), + '#title' => $this->t('%language (%langcode) domain', array('%language' => $language->getName(), '%langcode' => $language->id)), '#maxlength' => 128, '#default_value' => isset($domains[$langcode]) ? $domains[$langcode] : '', ); @@ -120,7 +120,7 @@ public function validateForm(array &$form, FormStateInterface $form_state) { elseif (isset($count[$value]) && $count[$value] > 1) { // Throw a form error if there are two languages with the same // domain/prefix. - $form_state->setErrorByName("prefix][$langcode", $this->t('The prefix for %language, %value, is not unique.', array('%language' => $language->name, '%value' => $value))); + $form_state->setErrorByName("prefix][$langcode", $this->t('The prefix for %language, %value, is not unique.', array('%language' => $language->getName(), '%value' => $value))); } } @@ -139,7 +139,7 @@ public function validateForm(array &$form, FormStateInterface $form_state) { elseif (isset($count[$value]) && $count[$value] > 1) { // Throw a form error if there are two languages with the same // domain/domain. - $form_state->setErrorByName("domain][$langcode", $this->t('The domain for %language, %value, is not unique.', array('%language' => $language->name, '%value' => $value))); + $form_state->setErrorByName("domain][$langcode", $this->t('The domain for %language, %value, is not unique.', array('%language' => $language->getName(), '%value' => $value))); } } diff --git a/core/modules/language/src/Plugin/Condition/Language.php b/core/modules/language/src/Plugin/Condition/Language.php index 523c3df..af98eaf 100644 --- a/core/modules/language/src/Plugin/Condition/Language.php +++ b/core/modules/language/src/Plugin/Condition/Language.php @@ -72,7 +72,7 @@ public function summary() { // If the current item of the $language_list array is one of the selected // languages, add it to the $results array. if (!empty($selected[$item->id])) { - $result[$item->id] = $item->name; + $result[$item->id] = $item->getName(); } return $result; }, array()); diff --git a/core/modules/language/src/Tests/LanguageConfigurationTest.php b/core/modules/language/src/Tests/LanguageConfigurationTest.php index d7cc61f..94fbb88 100644 --- a/core/modules/language/src/Tests/LanguageConfigurationTest.php +++ b/core/modules/language/src/Tests/LanguageConfigurationTest.php @@ -156,7 +156,7 @@ protected function checkConfigurableLanguageWeight($state = 'by default') { $max_configurable_language_weight = $this->getHighestConfigurableLanguageWeight(); $replacements = array('@event' => $state); foreach (\Drupal::languageManager()->getLanguages(LanguageInterface::STATE_LOCKED) as $locked_language) { - $replacements['%language'] = $locked_language->name; + $replacements['%language'] = $locked_language->getName(); $this->assertTrue($locked_language->weight > $max_configurable_language_weight, format_string('System language %language has higher weight than configurable languages @event', $replacements)); } } diff --git a/core/modules/language/src/Tests/LanguageSelectorTranslatableTest.php b/core/modules/language/src/Tests/LanguageSelectorTranslatableTest.php new file mode 100644 index 0000000..74feafa --- /dev/null +++ b/core/modules/language/src/Tests/LanguageSelectorTranslatableTest.php @@ -0,0 +1,93 @@ +administrator = $this->drupalCreateUser($this->getAdministratorPermissions(), 'administrator'); + $this->drupalLogin($this->administrator); + + } + /** + * Returns an array of permissions needed for the translator. + */ + protected function getAdministratorPermissions() { + return array_filter( + array('translate interface', + 'administer content translation', + 'create content translations', + 'update content translations', + 'delete content translations', + 'administer languages' + ) + ); + } + + /** + * Tests content translation language selectors are correctly translate. + */ + public function testLanguageStringSelector() { + // Add another language. + $edit = array('predefined_langcode' => 'es'); + $this->drupalPostForm('admin/config/regional/language/add', $edit, t('Add language')); + + // Translate the string English in Spanish (Inglés). Override config entity. + $name_translation = 'Inglés'; + $override = \Drupal::languageManager() + ->getLanguageConfigOverride('es', 'language.entity.en') + ->set('label', $name_translation) + ->save(); + + // Check label is set correctly. + $this->assertEqual($override->get('label'), $name_translation, 'Language label for English is translated into Spanish.'); + + // Check content translation overview selector. + $path = 'es/admin/config/regional/content-language'; + $this->drupalGet($path); + + // Get en language from selector. + $elements = $this->xpath('//select[@id=:id]//option[@value=:option]', array(':id' => 'edit-settings-node-node-settings-language-langcode', ':option' => 'en')); + + // Check the language text is translated. + $this->assertEqual((string) $elements[0], $name_translation, 'Checking the option string English is translated to Spanish.'); + } + +} diff --git a/core/modules/language/src/Tests/LanguageUILanguageNegotiationTest.php b/core/modules/language/src/Tests/LanguageUILanguageNegotiationTest.php index 4753539..715893e 100644 --- a/core/modules/language/src/Tests/LanguageUILanguageNegotiationTest.php +++ b/core/modules/language/src/Tests/LanguageUILanguageNegotiationTest.php @@ -380,7 +380,7 @@ function testUrlLanguageFallback() { // language. $args = array(':id' => 'block-test-language-block', ':url' => base_path() . $GLOBALS['script_path'] . $langcode_browser_fallback); $fields = $this->xpath('//div[@id=:id]//a[@class="language-link active" and starts-with(@href, :url)]', $args); - $this->assertTrue($fields[0] == $languages[$langcode_browser_fallback]->name, 'The browser language is the URL active language'); + $this->assertTrue($fields[0] == $languages[$langcode_browser_fallback]->getName(), 'The browser language is the URL active language'); // Check that URLs are rewritten using the given browser language. $fields = $this->xpath('//strong[@class="site-name"]/a[@rel="home" and @href=:url]', $args); diff --git a/core/modules/locale/locale.install b/core/modules/locale/locale.install index b9804d6..8aa8d82 100644 --- a/core/modules/locale/locale.install +++ b/core/modules/locale/locale.install @@ -249,10 +249,10 @@ function locale_requirements($phase) { foreach ($status as $project) { foreach ($project as $langcode => $project_info) { if (empty($project_info->type)) { - $untranslated[$langcode] = $languages[$langcode]->name; + $untranslated[$langcode] = $languages[$langcode]->getName(); } elseif ($project_info->type == LOCALE_TRANSLATION_LOCAL || $project_info->type == LOCALE_TRANSLATION_REMOTE) { - $available_updates[$langcode] = $languages[$langcode]->name; + $available_updates[$langcode] = $languages[$langcode]->getName(); } } } diff --git a/core/modules/locale/locale.module b/core/modules/locale/locale.module index 40934de..c5a82ed 100644 --- a/core/modules/locale/locale.module +++ b/core/modules/locale/locale.module @@ -1277,7 +1277,7 @@ function _locale_rebuild_js($langcode = NULL) { $logger = \Drupal::logger('locale'); switch ($status) { case 'updated': - $logger->notice('Updated JavaScript translation file for the language %language.', array('%language' => $language->name)); + $logger->notice('Updated JavaScript translation file for the language %language.', array('%language' => $language->getName())); return TRUE; case 'rebuilt': @@ -1286,15 +1286,15 @@ function _locale_rebuild_js($langcode = NULL) { // been created again. case 'created': - $logger->notice('Created JavaScript translation file for the language %language.', array('%language' => $language->name)); + $logger->notice('Created JavaScript translation file for the language %language.', array('%language' => $language->getName())); return TRUE; case 'deleted': - $logger->notice('Removed JavaScript translation file for the language %language because no translations currently exist for that language.', array('%language' => $language->name)); + $logger->notice('Removed JavaScript translation file for the language %language because no translations currently exist for that language.', array('%language' => $language->getName())); return TRUE; case 'error': - $logger->error('An error occurred during creation of the JavaScript translation file for the language %language.', array('%language' => $language->name)); + $logger->error('An error occurred during creation of the JavaScript translation file for the language %language.', array('%language' => $language->getName())); return FALSE; default: diff --git a/core/modules/locale/src/Form/ExportForm.php b/core/modules/locale/src/Form/ExportForm.php index 631c4aa..e1bd4bc 100644 --- a/core/modules/locale/src/Form/ExportForm.php +++ b/core/modules/locale/src/Form/ExportForm.php @@ -62,7 +62,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { $language_options = array(); foreach ($languages as $langcode => $language) { if ($langcode != 'en' || locale_translate_english()) { - $language_options[$langcode] = $language->name; + $language_options[$langcode] = $language->getName(); } } $language_default = $this->languageManager->getDefaultLanguage(); @@ -143,7 +143,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { $reader->setLangcode($language->id); $reader->setOptions($content_options); $languages = $this->languageManager->getLanguages(); - $language_name = isset($languages[$language->id]) ? $languages[$language->id]->name : ''; + $language_name = isset($languages[$language->id]) ? $languages[$language->id]->getName() : ''; $filename = $language->id . '.po'; } else { diff --git a/core/modules/locale/src/Form/ImportForm.php b/core/modules/locale/src/Form/ImportForm.php index eda1567..ae4424c 100644 --- a/core/modules/locale/src/Form/ImportForm.php +++ b/core/modules/locale/src/Form/ImportForm.php @@ -80,7 +80,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { $existing_languages = array(); foreach ($languages as $langcode => $language) { if ($langcode != 'en' || locale_translate_english()) { - $existing_languages[$langcode] = $language->name; + $existing_languages[$langcode] = $language->getName(); } } diff --git a/core/modules/locale/src/Form/TranslateEditForm.php b/core/modules/locale/src/Form/TranslateEditForm.php index 131612f..a14983c 100644 --- a/core/modules/locale/src/Form/TranslateEditForm.php +++ b/core/modules/locale/src/Form/TranslateEditForm.php @@ -34,7 +34,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { $this->languageManager->reset(); $languages = language_list(); - $langname = isset($langcode) ? $languages[$langcode]->name : "- None -"; + $langname = isset($langcode) ? $languages[$langcode]->getName() : "- None -"; $form['#attached']['library'][] = 'locale/drupal.locale.admin'; diff --git a/core/modules/locale/src/Form/TranslateFormBase.php b/core/modules/locale/src/Form/TranslateFormBase.php index 4599c44..50d2ff7 100644 --- a/core/modules/locale/src/Form/TranslateFormBase.php +++ b/core/modules/locale/src/Form/TranslateFormBase.php @@ -165,7 +165,7 @@ protected function translateFilters() { $language_options = array(); foreach ($languages as $langcode => $language) { if ($langcode != 'en' || locale_translate_english()) { - $language_options[$langcode] = $language->name; + $language_options[$langcode] = $language->getName(); } } diff --git a/core/modules/locale/src/Form/TranslationStatusForm.php b/core/modules/locale/src/Form/TranslationStatusForm.php index 7539b8f..a818026 100644 --- a/core/modules/locale/src/Form/TranslationStatusForm.php +++ b/core/modules/locale/src/Form/TranslationStatusForm.php @@ -77,12 +77,13 @@ public function buildForm(array $form, FormStateInterface $form_state) { $projects_update = array(); // Prepare information about projects which have available translation // updates. + + /* @var LanguageInterface[] $languages*/ if ($languages && $status) { $updates = $this->prepareUpdateData($status); - // Build data options for the select table. foreach ($updates as $langcode => $update) { - $title = String::checkPlain($languages[$langcode]->name); + $title = String::checkPlain($languages[$langcode]->getName()); $locale_translation_update_info = array('#theme' => 'locale_translation_update_info'); foreach (array('updates', 'not_found') as $update_status) { if (isset($update[$update_status])) { diff --git a/core/modules/node/src/NodeViewBuilder.php b/core/modules/node/src/NodeViewBuilder.php index 8cf1c04..2377dbe 100644 --- a/core/modules/node/src/NodeViewBuilder.php +++ b/core/modules/node/src/NodeViewBuilder.php @@ -58,7 +58,7 @@ public function buildComponents(array &$build, array $entities, array $displays, $build[$id]['langcode'] = array( '#type' => 'item', '#title' => t('Language'), - '#markup' => $entity->language()->name, + '#markup' => $entity->language()->getName(), '#prefix' => '
', '#suffix' => '
' ); diff --git a/core/modules/node/src/Plugin/Search/NodeSearch.php b/core/modules/node/src/Plugin/Search/NodeSearch.php index 5d13e7d..cb4b57d 100644 --- a/core/modules/node/src/Plugin/Search/NodeSearch.php +++ b/core/modules/node/src/Plugin/Search/NodeSearch.php @@ -446,7 +446,7 @@ public function searchFormAlter(array &$form, FormStateInterface $form_state) { $language_list = \Drupal::languageManager()->getLanguages(LanguageInterface::STATE_ALL); foreach ($language_list as $langcode => $language) { // Make locked languages appear special in the list. - $language_options[$langcode] = $language->isLocked() ? t('- @name -', array('@name' => $language->name)) : $language->name; + $language_options[$langcode] = $language->locked ? t('- @name -', array('@name' => $language->getName())) : $language->getName(); } if (count($language_options) > 1) { $form['advanced']['lang-fieldset'] = array( diff --git a/core/modules/node/src/Plugin/views/field/Language.php b/core/modules/node/src/Plugin/views/field/Language.php index 16de1bb..2d1a4ec 100644 --- a/core/modules/node/src/Plugin/views/field/Language.php +++ b/core/modules/node/src/Plugin/views/field/Language.php @@ -45,7 +45,7 @@ public function render(ResultRow $values) { // ready, see http://drupal.org/node/1616594. $value = $this->getValue($values); $language = language_load($value); - $value = $language ? $language->name : ''; + $value = $language ? $language->getName() : ''; return $this->renderLink($value, $values); } diff --git a/core/modules/path/src/Form/PathFormBase.php b/core/modules/path/src/Form/PathFormBase.php index 8564156..7038341 100644 --- a/core/modules/path/src/Form/PathFormBase.php +++ b/core/modules/path/src/Form/PathFormBase.php @@ -114,7 +114,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $pid = NU $languages = \Drupal::languageManager()->getLanguages(); $language_options = array(); foreach ($languages as $langcode => $language) { - $language_options[$langcode] = $language->name; + $language_options[$langcode] = $language->getName(); } $form['langcode'] = array( diff --git a/core/modules/system/src/Tests/Form/LanguageSelectElementTest.php b/core/modules/system/src/Tests/Form/LanguageSelectElementTest.php index 3ec7fe8..f41e98b 100644 --- a/core/modules/system/src/Tests/Form/LanguageSelectElementTest.php +++ b/core/modules/system/src/Tests/Form/LanguageSelectElementTest.php @@ -56,7 +56,7 @@ function testLanguageSelectElementOptions() { $this->assertField($id, format_string('The @id field was found on the page.', array('@id' => $id))); $options = array(); foreach ($this->container->get('language_manager')->getLanguages($flags) as $langcode => $language) { - $options[$langcode] = $language->isLocked() ? t('- @name -', array('@name' => $language->name)) : $language->name; + $options[$langcode] = $language->locked ? t('- @name -', array('@name' => $language->getName())) : $language->getName(); } $this->_testLanguageSelectElementOptions($id, $options); } diff --git a/core/modules/taxonomy/src/Plugin/views/field/Language.php b/core/modules/taxonomy/src/Plugin/views/field/Language.php index f95f492..3fbc0b8 100644 --- a/core/modules/taxonomy/src/Plugin/views/field/Language.php +++ b/core/modules/taxonomy/src/Plugin/views/field/Language.php @@ -22,7 +22,7 @@ class Language extends Taxonomy { public function render(ResultRow $values) { $value = $this->getValue($values); $language = \Drupal::languageManager()->getLanguage($value); - $value = $language ? $language->name : ''; + $value = $language ? $language->getName() : ''; return $this->renderLink($this->sanitizeValue($value), $values); } diff --git a/core/modules/views/src/Plugin/views/PluginBase.php b/core/modules/views/src/Plugin/views/PluginBase.php index 17f39e1..1442c6e 100644 --- a/core/modules/views/src/Plugin/views/PluginBase.php +++ b/core/modules/views/src/Plugin/views/PluginBase.php @@ -417,7 +417,7 @@ protected function listLanguages($flags = LanguageInterface::STATE_ALL) { if ($id == 'site_default') { $id = '***LANGUAGE_' . $id . '***'; } - $list[$id] = $this->t($language->name); + $list[$id] = $this->t($language->getName()); } // Add in negotiated languages, if requested. diff --git a/core/modules/views/src/Plugin/views/field/LanguageField.php b/core/modules/views/src/Plugin/views/field/LanguageField.php index 67e8bd7..371ec91 100644 --- a/core/modules/views/src/Plugin/views/field/LanguageField.php +++ b/core/modules/views/src/Plugin/views/field/LanguageField.php @@ -44,7 +44,7 @@ public function render(ResultRow $values) { // ready, see http://drupal.org/node/1616594. $value = $this->getValue($values); $language = language_load($value); - return $language ? $language->name : ''; + return $language ? $language->getName() : ''; } }