Commit ed71ff55 authored by catch's avatar catch

Issue #2507235 by Gogowitsch, ckaotik, Arla, tstoeckler, Berdir, Gábor Hojtsy:...

Issue #2507235 by Gogowitsch, ckaotik, Arla, tstoeckler, Berdir, Gábor Hojtsy: EntityType::getLowercaseLabel() breaks translation
parent c6a7ce5a
......@@ -39,7 +39,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
$form['deleted_translations'] = [
'#theme' => 'item_list',
'#title' => $this->t('The following @entity-type translations will be deleted:', [
'@entity-type' => $entity->getEntityType()->getLowercaseLabel(),
'@entity-type' => $entity->getEntityType()->getSingularLabel(),
]),
'#items' => $languages,
];
......@@ -96,7 +96,7 @@ protected function getDeletionMessage() {
if (!$entity->isDefaultTranslation()) {
return $this->t('The @entity-type %label @language translation has been deleted.', [
'@entity-type' => $entity->getEntityType()->getLowercaseLabel(),
'@entity-type' => $entity->getEntityType()->getSingularLabel(),
'%label' => $entity->label(),
'@language' => $entity->language()->getName(),
]);
......@@ -114,7 +114,7 @@ protected function logDeletionMessage() {
if (!$entity->isDefaultTranslation()) {
$this->logger($entity->getEntityType()->getProvider())->notice('The @entity-type %label @language translation has been deleted.', [
'@entity-type' => $entity->getEntityType()->getLowercaseLabel(),
'@entity-type' => $entity->getEntityType()->getSingularLabel(),
'%label' => $entity->label(),
'@language' => $entity->language()->getName(),
]);
......@@ -134,7 +134,7 @@ public function getQuestion() {
if (!$entity->isDefaultTranslation()) {
return $this->t('Are you sure you want to delete the @language translation of the @entity-type %label?', [
'@language' => $entity->language()->getName(),
'@entity-type' => $this->getEntity()->getEntityType()->getLowercaseLabel(),
'@entity-type' => $this->getEntity()->getEntityType()->getSingularLabel(),
'%label' => $this->getEntity()->label(),
]);
}
......
......@@ -148,7 +148,7 @@ public function addPage($entity_type_id) {
if ($bundle_entity_type_id) {
$bundle_argument = $bundle_entity_type_id;
$bundle_entity_type = $this->entityTypeManager->getDefinition($bundle_entity_type_id);
$bundle_entity_type_label = $bundle_entity_type->getLowercaseLabel();
$bundle_entity_type_label = $bundle_entity_type->getSingularLabel();
$build['#cache']['tags'] = $bundle_entity_type->getListCacheTags();
// Build the message shown when there are no bundles.
......@@ -204,7 +204,7 @@ public function addPage($entity_type_id) {
*/
public function addTitle($entity_type_id) {
$entity_type = $this->entityTypeManager->getDefinition($entity_type_id);
return $this->t('Add @entity-type', ['@entity-type' => $entity_type->getLowercaseLabel()]);
return $this->t('Add @entity-type', ['@entity-type' => $entity_type->getSingularLabel()]);
}
/**
......
......@@ -45,7 +45,7 @@ trait EntityDeleteFormTrait {
*/
public function getQuestion() {
return $this->t('Are you sure you want to delete the @entity-type %label?', [
'@entity-type' => $this->getEntity()->getEntityType()->getLowercaseLabel(),
'@entity-type' => $this->getEntity()->getEntityType()->getSingularLabel(),
'%label' => $this->getEntity()->label(),
]);
}
......@@ -66,7 +66,7 @@ public function getConfirmText() {
protected function getDeletionMessage() {
$entity = $this->getEntity();
return $this->t('The @entity-type %label has been deleted.', [
'@entity-type' => $entity->getEntityType()->getLowercaseLabel(),
'@entity-type' => $entity->getEntityType()->getSingularLabel(),
'%label' => $entity->label(),
]);
}
......@@ -110,7 +110,7 @@ protected function getRedirectUrl() {
protected function logDeletionMessage() {
$entity = $this->getEntity();
$this->logger($entity->getEntityType()->getProvider())->notice('The @entity-type %label has been deleted.', [
'@entity-type' => $entity->getEntityType()->getLowercaseLabel(),
'@entity-type' => $entity->getEntityType()->getSingularLabel(),
'%label' => $entity->label(),
]);
}
......
......@@ -775,6 +775,7 @@ public function getLabel() {
* {@inheritdoc}
*/
public function getLowercaseLabel() {
@trigger_error('EntityType::getLowercaseLabel() is deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Instead, you should call getSingularLabel(). See https://www.drupal.org/node/3075567', E_USER_DEPRECATED);
return mb_strtolower($this->getLabel());
}
......@@ -794,7 +795,7 @@ public function getCollectionLabel() {
*/
public function getSingularLabel() {
if (empty($this->label_singular)) {
$lowercase_label = $this->getLowercaseLabel();
$lowercase_label = mb_strtolower($this->getLabel());
$this->label_singular = $lowercase_label;
}
return $this->label_singular;
......@@ -805,7 +806,7 @@ public function getSingularLabel() {
*/
public function getPluralLabel() {
if (empty($this->label_plural)) {
$lowercase_label = $this->getLowercaseLabel();
$lowercase_label = $this->getSingularLabel();
$this->label_plural = new TranslatableMarkup('@label entities', ['@label' => $lowercase_label], [], $this->getStringTranslation());
}
return $this->label_plural;
......@@ -816,7 +817,7 @@ public function getPluralLabel() {
*/
public function getCountLabel($count) {
if (empty($this->label_count)) {
return $this->formatPlural($count, '@count @label', '@count @label entities', ['@label' => $this->getLowercaseLabel()], ['context' => 'Entity type label']);
return $this->formatPlural($count, '@count @label', '@count @label entities', ['@label' => $this->getSingularLabel()], ['context' => 'Entity type label']);
}
$context = isset($this->label_count['context']) ? $this->label_count['context'] : 'Entity type label';
return $this->formatPlural($count, $this->label_count['singular'], $this->label_count['plural'], ['context' => $context]);
......
......@@ -659,6 +659,10 @@ public function getLabel();
* @return string
* The lowercase form of the human-readable entity type name.
*
* @deprecated deprecated in drupal:8.8.0 and is removed from drupal:9.0.0.
* Instead, you should call getSingularLabel().
* See https://www.drupal.org/node/3075567
*
* @see \Drupal\Core\Entity\EntityTypeInterface::getLabel()
*/
public function getLowercaseLabel();
......@@ -684,6 +688,9 @@ public function getCollectionLabel();
* "opportunities"), "child" (with the plural as "children"), or "content
* item" (with the plural as "content items").
*
* Think of it as an "in a full sentence, this is what we call this" label. As
* a consequence, the English version is lowercase.
*
* @return string|\Drupal\Core\StringTranslation\TranslatableMarkup
* The singular label.
*/
......
......@@ -259,7 +259,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
$storage->delete($delete_entities);
foreach ($delete_entities as $entity) {
$this->logger($entity->getEntityType()->getProvider())->notice('The @entity-type %label has been deleted.', [
'@entity-type' => $entity->getEntityType()->getLowercaseLabel(),
'@entity-type' => $entity->getEntityType()->getSingularLabel(),
'%label' => $entity->label(),
]);
}
......@@ -275,7 +275,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
$entity->save();
foreach ($translations as $translation) {
$this->logger($entity->getEntityType()->getProvider())->notice('The @entity-type %label @language translation has been deleted.', [
'@entity-type' => $entity->getEntityType()->getLowercaseLabel(),
'@entity-type' => $entity->getEntityType()->getSingularLabel(),
'%label' => $entity->label(),
'@language' => $translation->language()->getName(),
]);
......
......@@ -41,7 +41,7 @@ public function validate($items, Constraint $constraint) {
if ($value_taken) {
$this->context->addViolation($constraint->message, [
'%value' => $item->value,
'@entity_type' => $entity->getEntityType()->getLowercaseLabel(),
'@entity_type' => $entity->getEntityType()->getSingularLabel(),
'@field_name' => mb_strtolower($items->getFieldDefinition()->getLabel()),
]);
}
......
......@@ -31,7 +31,7 @@ public function getConfirmText() {
*/
public function getQuestion() {
return $this->t('Are you sure you want to remove the @entity-type %label?', [
'@entity-type' => $this->getEntity()->getEntityType()->getLowercaseLabel(),
'@entity-type' => $this->getEntity()->getEntityType()->getSingularLabel(),
'%label' => $this->getEntity()->label(),
]);
}
......@@ -42,7 +42,7 @@ public function getQuestion() {
protected function getDeletionMessage() {
$entity = $this->getEntity();
return $this->t('The @entity-type %label has been removed.', [
'@entity-type' => $entity->getEntityType()->getLowercaseLabel(),
'@entity-type' => $entity->getEntityType()->getSingularLabel(),
'%label' => $entity->label(),
]);
}
......
......@@ -219,7 +219,7 @@ public function getQuestion() {
else {
$definition = $this->entityTypeManager->getDefinition($this->data['config_type']);
$name = $this->data['import'][$definition->getKey('id')];
$type = $definition->getLowercaseLabel();
$type = $definition->getSingularLabel();
}
$args = [
......
......@@ -142,7 +142,7 @@ function config_translation_config_translation_info(&$info) {
$info[$entity_type_id] = [
'class' => '\Drupal\config_translation\ConfigEntityMapper',
'base_route_name' => $base_route_name,
'title' => $entity_type->getLowercaseLabel(),
'title' => $entity_type->getSingularLabel(),
'names' => [],
'entity_type' => $entity_type_id,
'weight' => 10,
......
......@@ -110,13 +110,13 @@ public function testMapperListPage() {
$entity_type = \Drupal::entityTypeManager()->getDefinition($test_entity->getEntityTypeId());
$this->drupalGet($base_url . '/translate');
$title = $test_entity->label() . ' ' . $entity_type->getLowercaseLabel();
$title = $test_entity->label() . ' ' . $entity_type->getSingularLabel();
$title = 'Translations for <em class="placeholder">' . Html::escape($title) . '</em>';
$this->assertRaw($title);
$this->assertRaw('<th>' . t('Language') . '</th>');
$this->drupalGet($base_url);
$this->assertLink(t('Translate @title', ['@title' => $entity_type->getLowercaseLabel()]));
$this->assertLink(t('Translate @title', ['@title' => $entity_type->getSingularLabel()]));
}
}
......
......@@ -85,7 +85,7 @@ public function contentPermissions() {
// bundle.
foreach ($this->entityTypeManager->getDefinitions() as $entity_type_id => $entity_type) {
if ($permission_granularity = $entity_type->getPermissionGranularity()) {
$t_args = ['@entity_label' => $entity_type->getLowercaseLabel()];
$t_args = ['@entity_label' => $entity_type->getSingularLabel()];
switch ($permission_granularity) {
case 'bundle':
......
......@@ -117,7 +117,7 @@ public function render() {
'data' => [
'#type' => 'link',
'#url' => Url::fromRoute($short_type == 'view' ? 'entity.entity_view_mode.add_form' : 'entity.entity_form_mode.add_form', ['entity_type_id' => $entity_type]),
'#title' => $this->t('Add new @entity-type %label', ['@entity-type' => $this->entityTypes[$entity_type]->getLabel(), '%label' => $this->entityType->getLowercaseLabel()]),
'#title' => $this->t('Add new @entity-type %label', ['@entity-type' => $this->entityTypes[$entity_type]->getLabel(), '%label' => $this->entityType->getSingularLabel()]),
],
'colspan' => count($table['#header']),
];
......
......@@ -28,7 +28,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $entity_t
// Change replace_pattern to avoid undesired dots.
$form['id']['#machine_name']['replace_pattern'] = '[^a-z0-9_]+';
$definition = $this->entityTypeManager->getDefinition($this->targetEntityTypeId);
$form['#title'] = $this->t('Add new @entity-type %label', ['@entity-type' => $definition->getLabel(), '%label' => $this->entityType->getLowercaseLabel()]);
$form['#title'] = $this->t('Add new @entity-type %label', ['@entity-type' => $definition->getLabel(), '%label' => $this->entityType->getSingularLabel()]);
return $form;
}
......
......@@ -16,7 +16,7 @@ class EntityDisplayModeDeleteForm extends EntityDeleteForm {
*/
public function getDescription() {
$entity_type = $this->entity->getEntityType();
return $this->t('Deleting a @entity-type will cause any output still requesting to use that @entity-type to use the default display settings.', ['@entity-type' => $entity_type->getLowercaseLabel()]);
return $this->t('Deleting a @entity-type will cause any output still requesting to use that @entity-type to use the default display settings.', ['@entity-type' => $entity_type->getSingularLabel()]);
}
}
......@@ -78,7 +78,7 @@ public function exists($entity_id, array $element) {
* {@inheritdoc}
*/
public function save(array $form, FormStateInterface $form_state) {
$this->messenger()->addStatus($this->t('Saved the %label @entity-type.', ['%label' => $this->entity->label(), '@entity-type' => $this->entityType->getLowercaseLabel()]));
$this->messenger()->addStatus($this->t('Saved the %label @entity-type.', ['%label' => $this->entity->label(), '@entity-type' => $this->entityType->getSingularLabel()]));
$this->entity->save();
\Drupal::service('entity_field.manager')->clearCachedFieldDefinitions();
$form_state->setRedirectUrl($this->entity->toUrl('collection'));
......
......@@ -811,7 +811,7 @@ function core_field_views_data(FieldStorageConfigInterface $field_storage) {
// Provide a reverse relationship for the entity type that is referenced by
// the field.
$args['@entity'] = $entity_type->getLabel();
$args['@label'] = $target_entity_type->getLowercaseLabel();
$args['@label'] = $target_entity_type->getSingularLabel();
$pseudo_field_name = 'reverse__' . $entity_type_id . '__' . $field_name;
$data[$target_base_table][$pseudo_field_name]['relationship'] = [
'title' => t('@entity using @field_name', $args),
......
......@@ -84,7 +84,7 @@ public function testEntityWithStringIdWithViolation($id) {
$message = new FormattableMarkup('A @entity_type with @field_name %value already exists.', [
'%value' => $value,
'@entity_type' => $entity->getEntityType()->getLowercaseLabel(),
'@entity_type' => $entity->getEntityType()->getSingularLabel(),
'@field_name' => 'name',
]);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment