Commit aff95777 authored by alexpott's avatar alexpott

Issue #2309737 by rpayanm, hussainweb, max-kuzomko, herom, millerbennett,...

Issue #2309737 by rpayanm, hussainweb, max-kuzomko, herom, millerbennett, ianthomas_uk, quietone, Sutharsan, sumitmadan, toddmbloom: Remove deprecated format_plural usage
parent f14ec035
...@@ -393,12 +393,12 @@ function format_xml_elements($array) { ...@@ -393,12 +393,12 @@ function format_xml_elements($array) {
* *
* For example: * For example:
* @code * @code
* $output = format_plural($node->comment_count, '1 comment', '@count comments'); * $output = \Drupal::translation()->formatPlural($node->comment_count, '1 comment', '@count comments');
* @endcode * @endcode
* *
* Example with additional replacements: * Example with additional replacements:
* @code * @code
* $output = format_plural($update_count, * $output = \Drupal::translation()->formatPlural($update_count,
* 'Changed the content type of 1 post from %old-type to %new-type.', * 'Changed the content type of 1 post from %old-type to %new-type.',
* 'Changed the content type of @count posts from %old-type to %new-type.', * 'Changed the content type of @count posts from %old-type to %new-type.',
* array('%old-type' => $info->old_type, '%new-type' => $info->new_type)); * array('%old-type' => $info->old_type, '%new-type' => $info->new_type));
...@@ -451,7 +451,7 @@ function format_plural($count, $singular, $plural, array $args = array(), array ...@@ -451,7 +451,7 @@ function format_plural($count, $singular, $plural, array $args = array(), array
*/ */
function format_size($size, $langcode = NULL) { function format_size($size, $langcode = NULL) {
if ($size < Bytes::KILOBYTE) { if ($size < Bytes::KILOBYTE) {
return format_plural($size, '1 byte', '@count bytes', array(), array('langcode' => $langcode)); return \Drupal::translation()->formatPlural($size, '1 byte', '@count bytes', array(), array('langcode' => $langcode));
} }
else { else {
$size = $size / Bytes::KILOBYTE; // Convert bytes to kilobytes. $size = $size / Bytes::KILOBYTE; // Convert bytes to kilobytes.
......
...@@ -617,7 +617,7 @@ function template_preprocess_form_element_label(&$variables) { ...@@ -617,7 +617,7 @@ function template_preprocess_form_element_label(&$variables) {
* // The 'success' parameter means no fatal PHP errors were detected. All * // The 'success' parameter means no fatal PHP errors were detected. All
* // other error management should be handled using 'results'. * // other error management should be handled using 'results'.
* if ($success) { * if ($success) {
* $message = format_plural(count($results), 'One post processed.', '@count posts processed.'); * $message = \Drupal::translation()->formatPlural(count($results), 'One post processed.', '@count posts processed.');
* } * }
* else { * else {
* $message = t('Finished with an error.'); * $message = t('Finished with an error.');
......
...@@ -41,7 +41,7 @@ public function parse($filename) { ...@@ -41,7 +41,7 @@ public function parse($filename) {
} }
$missing_keys = array_diff($this->getRequiredKeys(), array_keys(static::$parsedInfos[$filename])); $missing_keys = array_diff($this->getRequiredKeys(), array_keys(static::$parsedInfos[$filename]));
if (!empty($missing_keys)) { if (!empty($missing_keys)) {
$message = format_plural(count($missing_keys), 'Missing required key (!missing_keys) in !file.', 'Missing required keys (!missing_keys) in !file.', array('!missing_keys' => implode(', ', $missing_keys), '!file' => $filename)); $message = String::format('Missing required keys (!missing_keys) in !file.', array('!missing_keys' => implode(', ', $missing_keys), '!file' => $filename));
throw new InfoParserException($message); throw new InfoParserException($message);
} }
if (isset(static::$parsedInfos[$filename]['version']) && static::$parsedInfos[$filename]['version'] === 'VERSION') { if (isset(static::$parsedInfos[$filename]['version']) && static::$parsedInfos[$filename]['version'] === 'VERSION') {
......
...@@ -77,8 +77,8 @@ public function viewElements(FieldItemListInterface $items) { ...@@ -77,8 +77,8 @@ public function viewElements(FieldItemListInterface $items) {
if ($this->getSetting('prefix_suffix')) { if ($this->getSetting('prefix_suffix')) {
$prefixes = isset($settings['prefix']) ? array_map(array($this, 'fieldFilterXss'), explode('|', $settings['prefix'])) : array(''); $prefixes = isset($settings['prefix']) ? array_map(array($this, 'fieldFilterXss'), explode('|', $settings['prefix'])) : array('');
$suffixes = isset($settings['suffix']) ? array_map(array($this, 'fieldFilterXss'), explode('|', $settings['suffix'])) : array(''); $suffixes = isset($settings['suffix']) ? array_map(array($this, 'fieldFilterXss'), explode('|', $settings['suffix'])) : array('');
$prefix = (count($prefixes) > 1) ? format_plural($item->value, $prefixes[0], $prefixes[1]) : $prefixes[0]; $prefix = (count($prefixes) > 1) ? $this->formatPlural($item->value, $prefixes[0], $prefixes[1]) : $prefixes[0];
$suffix = (count($suffixes) > 1) ? format_plural($item->value, $suffixes[0], $suffixes[1]) : $suffixes[0]; $suffix = (count($suffixes) > 1) ? $this->formatPlural($item->value, $suffixes[0], $suffixes[1]) : $suffixes[0];
$output = $prefix . $output . $suffix; $output = $prefix . $output . $suffix;
} }
// Output the raw value in a content attribute if the text of the HTML // Output the raw value in a content attribute if the text of the HTML
......
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
* *
* Using this trait will add t() and formatPlural() methods to the class. These * Using this trait will add t() and formatPlural() methods to the class. These
* must be used for every translatable string, similar to how procedural code * must be used for every translatable string, similar to how procedural code
* must use the global functions t() and format_plural(). This allows string * must use the global functions t() and \Drupal::translation()->formatPlural().
* extractor tools to find translatable strings. * This allows string extractor tools to find translatable strings.
* *
* If the class is capable of injecting services from the container, it should * If the class is capable of injecting services from the container, it should
* inject the 'string_translation' service and assign it to * inject the 'string_translation' service and assign it to
......
...@@ -51,7 +51,7 @@ public function compile(\Twig_Compiler $compiler) { ...@@ -51,7 +51,7 @@ public function compile(\Twig_Compiler $compiler) {
} }
// Start writing with the function to be called. // Start writing with the function to be called.
$compiler->write('echo ' . (empty($plural) ? 't' : 'format_plural') . '('); $compiler->write('echo ' . (empty($plural) ? 't' : '\Drupal::translation()->formatPlural') . '(');
// Move the count to the beginning of the parameters list. // Move the count to the beginning of the parameters list.
if (!empty($plural)) { if (!empty($plural)) {
......
...@@ -41,7 +41,7 @@ public function transChoice($id, $number, array $parameters = array(), $domain = ...@@ -41,7 +41,7 @@ public function transChoice($id, $number, array $parameters = array(), $domain =
if (!isset($ids[1])) { if (!isset($ids[1])) {
throw new \InvalidArgumentException(sprintf('The message "%s" cannot be pluralized, because it is missing a plural (e.g. "There is one apple|There are @count apples").', $id)); throw new \InvalidArgumentException(sprintf('The message "%s" cannot be pluralized, because it is missing a plural (e.g. "There is one apple|There are @count apples").', $id));
} }
return format_plural($number, $ids[0], $ids[1], $this->processParameters($parameters), $this->getOptions($domain, $locale)); return \Drupal::translation()->formatPlural($number, $ids[0], $ids[1], $this->processParameters($parameters), $this->getOptions($domain, $locale));
} }
/** /**
......
...@@ -336,8 +336,9 @@ if (window.jQuery) { ...@@ -336,8 +336,9 @@ if (window.jQuery) {
* Drupal.t() is called by this function, make sure not to pass * Drupal.t() is called by this function, make sure not to pass
* already-localized strings to it. * already-localized strings to it.
* *
* See the documentation of the server-side format_plural() function for * See the documentation of the server-side
* further details. * \Drupal\Core\StringTranslation\TranslationInterface::formatPlural()
* function for more details.
* *
* @param {Number} count * @param {Number} count
* The item count to display. * The item count to display.
......
...@@ -150,7 +150,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta ...@@ -150,7 +150,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
$lengths = array(0, 200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000); $lengths = array(0, 200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000);
$options = array_map(function($length) { $options = array_map(function($length) {
return ($length == 0) ? t('Unlimited') : format_plural($length, '1 character', '@count characters'); return ($length == 0) ? t('Unlimited') : $this->formatPlural($length, '1 character', '@count characters');
}, array_combine($lengths, $lengths)); }, array_combine($lengths, $lengths));
$form['processors'][$info['id']]['aggregator_teaser_length'] = array( $form['processors'][$info['id']]['aggregator_teaser_length'] = array(
......
...@@ -44,7 +44,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { ...@@ -44,7 +44,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
$instances = $this->entity->getInstances(); $instances = $this->entity->getInstances();
$form['message'] = array( $form['message'] = array(
'#markup' => format_plural(count($instances), 'This will also remove 1 placed block instance.', 'This will also remove @count placed block instances.'), '#markup' => $this->formatPlural(count($instances), 'This will also remove 1 placed block instance.', 'This will also remove @count placed block instances.'),
'#access' => !empty($instances), '#access' => !empty($instances),
); );
......
...@@ -71,7 +71,7 @@ public function getConfirmText() { ...@@ -71,7 +71,7 @@ public function getConfirmText() {
public function buildForm(array $form, FormStateInterface $form_state) { public function buildForm(array $form, FormStateInterface $form_state) {
$blocks = $this->queryFactory->get('block_content')->condition('type', $this->entity->id())->execute(); $blocks = $this->queryFactory->get('block_content')->condition('type', $this->entity->id())->execute();
if (!empty($blocks)) { if (!empty($blocks)) {
$caption = '<p>' . format_plural(count($blocks), '%label is used by 1 custom block on your site. You can not remove this block type until you have removed all of the %label blocks.', '%label is used by @count custom blocks on your site. You may not remove %label until you have removed all of the %label custom blocks.', array('%label' => $this->entity->label())) . '</p>'; $caption = '<p>' . $this->formatPlural(count($blocks), '%label is used by 1 custom block on your site. You can not remove this block type until you have removed all of the %label blocks.', '%label is used by @count custom blocks on your site. You may not remove %label until you have removed all of the %label custom blocks.', array('%label' => $this->entity->label())) . '</p>';
$form['description'] = array('#markup' => $caption); $form['description'] = array('#markup' => $caption);
return $form; return $form;
} }
......
...@@ -184,7 +184,7 @@ public function testBlockDelete() { ...@@ -184,7 +184,7 @@ public function testBlockDelete() {
// Delete the block. // Delete the block.
$this->drupalGet('block/1/delete'); $this->drupalGet('block/1/delete');
$this->assertText(format_plural(1, 'This will also remove 1 placed block instance.', 'This will also remove @count placed block instance.')); $this->assertText(\Drupal::translation()->formatPlural(1, 'This will also remove 1 placed block instance.', 'This will also remove @count placed block instance.'));
$this->drupalPostForm(NULL, array(), 'Delete'); $this->drupalPostForm(NULL, array(), 'Delete');
$this->assertRaw(t('Custom block %name has been deleted.', array('%name' => $edit['info[0][value]']))); $this->assertRaw(t('Custom block %name has been deleted.', array('%name' => $edit['info[0][value]'])));
......
...@@ -530,7 +530,7 @@ function comment_node_search_result(EntityInterface $node) { ...@@ -530,7 +530,7 @@ function comment_node_search_result(EntityInterface $node) {
// Do not make a string if there are no comment fields, or no comments exist // Do not make a string if there are no comment fields, or no comments exist
// or all comment fields are hidden. // or all comment fields are hidden.
if ($comments > 0 || $open) { if ($comments > 0 || $open) {
return array('comment' => format_plural($comments, '1 comment', '@count comments')); return array('comment' => \Drupal::translation()->formatPlural($comments, '1 comment', '@count comments'));
} }
} }
......
...@@ -122,7 +122,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { ...@@ -122,7 +122,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
$this->commentStorage->delete($this->comments); $this->commentStorage->delete($this->comments);
$count = count($form_state->getValue('comments')); $count = count($form_state->getValue('comments'));
$this->logger('content')->notice('Deleted @count comments.', array('@count' => $count)); $this->logger('content')->notice('Deleted @count comments.', array('@count' => $count));
drupal_set_message(format_plural($count, 'Deleted 1 comment.', 'Deleted @count comments.')); drupal_set_message($this->formatPlural($count, 'Deleted 1 comment.', 'Deleted @count comments.'));
} }
$form_state->setRedirectUrl($this->getCancelUrl()); $form_state->setRedirectUrl($this->getCancelUrl());
} }
......
...@@ -208,7 +208,7 @@ function performCommentOperation($comment, $operation, $approval = FALSE) { ...@@ -208,7 +208,7 @@ function performCommentOperation($comment, $operation, $approval = FALSE) {
if ($operation == 'delete') { if ($operation == 'delete') {
$this->drupalPostForm(NULL, array(), t('Delete comments')); $this->drupalPostForm(NULL, array(), t('Delete comments'));
$this->assertRaw(format_plural(1, 'Deleted 1 comment.', 'Deleted @count comments.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation))); $this->assertRaw(\Drupal::translation()->formatPlural(1, 'Deleted 1 comment.', 'Deleted @count comments.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation)));
} }
else { else {
$this->assertText(t('The update has been performed.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation))); $this->assertText(t('The update has been performed.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation)));
......
...@@ -345,7 +345,7 @@ function performCommentOperation(CommentInterface $comment, $operation, $approva ...@@ -345,7 +345,7 @@ function performCommentOperation(CommentInterface $comment, $operation, $approva
if ($operation == 'delete') { if ($operation == 'delete') {
$this->drupalPostForm(NULL, array(), t('Delete comments')); $this->drupalPostForm(NULL, array(), t('Delete comments'));
$this->assertRaw(format_plural(1, 'Deleted 1 comment.', 'Deleted @count comments.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation))); $this->assertRaw(\Drupal::translation()->formatPlural(1, 'Deleted 1 comment.', 'Deleted @count comments.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation)));
} }
else { else {
$this->assertText(t('The update has been performed.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation))); $this->assertText(t('The update has been performed.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation)));
......
...@@ -239,19 +239,19 @@ public function buildForm(array $form, FormStateInterface $form_state) { ...@@ -239,19 +239,19 @@ public function buildForm(array $form, FormStateInterface $form_state) {
); );
switch ($config_change_type) { switch ($config_change_type) {
case 'create': case 'create':
$form[$collection][$config_change_type]['heading']['#value'] = format_plural(count($config_names), '@count new', '@count new'); $form[$collection][$config_change_type]['heading']['#value'] = $this->formatPlural(count($config_names), '@count new', '@count new');
break; break;
case 'update': case 'update':
$form[$collection][$config_change_type]['heading']['#value'] = format_plural(count($config_names), '@count changed', '@count changed'); $form[$collection][$config_change_type]['heading']['#value'] = $this->formatPlural(count($config_names), '@count changed', '@count changed');
break; break;
case 'delete': case 'delete':
$form[$collection][$config_change_type]['heading']['#value'] = format_plural(count($config_names), '@count removed', '@count removed'); $form[$collection][$config_change_type]['heading']['#value'] = $this->formatPlural(count($config_names), '@count removed', '@count removed');
break; break;
case 'rename': case 'rename':
$form[$collection][$config_change_type]['heading']['#value'] = format_plural(count($config_names), '@count renamed', '@count renamed'); $form[$collection][$config_change_type]['heading']['#value'] = $this->formatPlural(count($config_names), '@count renamed', '@count renamed');
break; break;
} }
$form[$collection][$config_change_type]['list'] = array( $form[$collection][$config_change_type]['list'] = array(
......
...@@ -175,7 +175,7 @@ function template_preprocess_file_upload_help(&$variables) { ...@@ -175,7 +175,7 @@ function template_preprocess_file_upload_help(&$variables) {
$descriptions[] = t('Unlimited number of files can be uploaded to this field.'); $descriptions[] = t('Unlimited number of files can be uploaded to this field.');
} }
else { else {
$descriptions[] = format_plural($cardinality, 'One file only.', 'Maximum @count files.'); $descriptions[] = \Drupal::translation()->formatPlural($cardinality, 'One file only.', 'Maximum @count files.');
} }
} }
if (isset($upload_validators['file_validate_size'])) { if (isset($upload_validators['file_validate_size'])) {
......
...@@ -80,7 +80,7 @@ function assertFileHookCalled($hook, $expected_count = 1, $message = NULL) { ...@@ -80,7 +80,7 @@ function assertFileHookCalled($hook, $expected_count = 1, $message = NULL) {
$message = format_string('hook_file_@name was called correctly.', array('@name' => $hook)); $message = format_string('hook_file_@name was called correctly.', array('@name' => $hook));
} }
elseif ($expected_count == 0) { elseif ($expected_count == 0) {
$message = format_plural($actual_count, 'hook_file_@name was not expected to be called but was actually called once.', 'hook_file_@name was not expected to be called but was actually called @count times.', array('@name' => $hook, '@count' => $actual_count)); $message = \Drupal::translation()->formatPlural($actual_count, 'hook_file_@name was not expected to be called but was actually called once.', 'hook_file_@name was not expected to be called but was actually called @count times.', array('@name' => $hook, '@count' => $actual_count));
} }
else { else {
$message = format_string('hook_file_@name was expected to be called %expected times but was called %actual times.', array('@name' => $hook, '%expected' => $expected_count, '%actual' => $actual_count)); $message = format_string('hook_file_@name was expected to be called %expected times but was called %actual times.', array('@name' => $hook, '%expected' => $expected_count, '%actual' => $actual_count));
......
...@@ -92,7 +92,7 @@ function assertFileHookCalled($hook, $expected_count = 1, $message = NULL) { ...@@ -92,7 +92,7 @@ function assertFileHookCalled($hook, $expected_count = 1, $message = NULL) {
$message = format_string('hook_file_@name was called correctly.', array('@name' => $hook)); $message = format_string('hook_file_@name was called correctly.', array('@name' => $hook));
} }
elseif ($expected_count == 0) { elseif ($expected_count == 0) {
$message = format_plural($actual_count, 'hook_file_@name was not expected to be called but was actually called once.', 'hook_file_@name was not expected to be called but was actually called @count times.', array('@name' => $hook, '@count' => $actual_count)); $message = \Drupal::translation()->formatPlural($actual_count, 'hook_file_@name was not expected to be called but was actually called once.', 'hook_file_@name was not expected to be called but was actually called @count times.', array('@name' => $hook, '@count' => $actual_count));
} }
else { else {
$message = format_string('hook_file_@name was expected to be called %expected times but was called %actual times.', array('@name' => $hook, '%expected' => $expected_count, '%actual' => $actual_count)); $message = format_string('hook_file_@name was expected to be called %expected times but was called %actual times.', array('@name' => $hook, '%expected' => $expected_count, '%actual' => $actual_count));
......
...@@ -501,7 +501,7 @@ function template_preprocess_forums(&$variables) { ...@@ -501,7 +501,7 @@ function template_preprocess_forums(&$variables) {
$page_number = \Drupal::entityManager()->getStorage('comment') $page_number = \Drupal::entityManager()->getStorage('comment')
->getNewCommentPageNumber($topic->comment_count, $topic->new_replies, $topic, 'comment_forum'); ->getNewCommentPageNumber($topic->comment_count, $topic->new_replies, $topic, 'comment_forum');
$query = $page_number ? array('page' => $page_number) : NULL; $query = $page_number ? array('page' => $page_number) : NULL;
$variables['topics'][$id]->new_text = format_plural($topic->new_replies, '1 new post<span class="visually-hidden"> in topic %title</span>', '@count new posts<span class="visually-hidden"> in topic %title</span>', array('%title' => $variables['topics'][$id]->label())); $variables['topics'][$id]->new_text = \Drupal::translation()->formatPlural($topic->new_replies, '1 new post<span class="visually-hidden"> in topic %title</span>', '@count new posts<span class="visually-hidden"> in topic %title</span>', array('%title' => $variables['topics'][$id]->label()));
$variables['topics'][$id]->new_url = \Drupal::url('entity.node.canonical', ['node' => $topic->id()], ['query' => $query, 'fragment' => 'new']); $variables['topics'][$id]->new_url = \Drupal::url('entity.node.canonical', ['node' => $topic->id()], ['query' => $query, 'fragment' => 'new']);
} }
...@@ -583,7 +583,7 @@ function template_preprocess_forum_list(&$variables) { ...@@ -583,7 +583,7 @@ function template_preprocess_forum_list(&$variables) {
if ($user->isAuthenticated()) { if ($user->isAuthenticated()) {
$variables['forums'][$id]->new_topics = \Drupal::service('forum_manager')->unreadTopics($forum->id(), $user->id()); $variables['forums'][$id]->new_topics = \Drupal::service('forum_manager')->unreadTopics($forum->id(), $user->id());
if ($variables['forums'][$id]->new_topics) { if ($variables['forums'][$id]->new_topics) {
$variables['forums'][$id]->new_text = format_plural($variables['forums'][$id]->new_topics, '1 new post<span class="visually-hidden"> in forum %title</span>', '@count new posts<span class="visually-hidden"> in forum %title</span>', array('%title' => $variables['forums'][$id]->label())); $variables['forums'][$id]->new_text = \Drupal::translation()->formatPlural($variables['forums'][$id]->new_topics, '1 new post<span class="visually-hidden"> in forum %title</span>', '@count new posts<span class="visually-hidden"> in forum %title</span>', array('%title' => $variables['forums'][$id]->label()));
$variables['forums'][$id]->new_url = \Drupal::url('forum.page', ['taxonomy_term' => $forum->id()], ['fragment' => 'new']); $variables['forums'][$id]->new_url = \Drupal::url('forum.page', ['taxonomy_term' => $forum->id()], ['fragment' => 'new']);
$variables['forums'][$id]->icon_class = 'new'; $variables['forums'][$id]->icon_class = 'new';
$variables['forums'][$id]->icon_title = t('New posts'); $variables['forums'][$id]->icon_title = t('New posts');
......
...@@ -184,7 +184,7 @@ function testForum() { ...@@ -184,7 +184,7 @@ function testForum() {
// Verify the number of unread topics. // Verify the number of unread topics.
$unread_topics = $this->container->get('forum_manager')->unreadTopics($this->forum['tid'], $this->edit_any_topics_user->id()); $unread_topics = $this->container->get('forum_manager')->unreadTopics($this->forum['tid'], $this->edit_any_topics_user->id());
$unread_topics = format_plural($unread_topics, '1 new post', '@count new posts'); $unread_topics = \Drupal::translation()->formatPlural($unread_topics, '1 new post', '@count new posts');
$xpath = $this->buildXPathQuery('//tr[@id=:forum]//td[@class="topics"]//a', $forum_arg); $xpath = $this->buildXPathQuery('//tr[@id=:forum]//td[@class="topics"]//a', $forum_arg);
$this->assertFieldByXPath($xpath, $unread_topics, 'Number of unread topics found.'); $this->assertFieldByXPath($xpath, $unread_topics, 'Number of unread topics found.');
// Verify that the forum name is in the unread topics text. // Verify that the forum name is in the unread topics text.
......
...@@ -94,15 +94,15 @@ function locale_translation_batch_status_finished($success, $results) { ...@@ -94,15 +94,15 @@ function locale_translation_batch_status_finished($success, $results) {
if ($success) { if ($success) {
if (isset($results['failed_files'])) { if (isset($results['failed_files'])) {
if (\Drupal::moduleHandler()->moduleExists('dblog') && \Drupal::currentUser()->hasPermission('access site reports')) { if (\Drupal::moduleHandler()->moduleExists('dblog') && \Drupal::currentUser()->hasPermission('access site reports')) {
$message = format_plural(count($results['failed_files']), 'One translation file could not be checked. <a href="@url">See the log</a> for details.', '@count translation files could not be checked. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview'))); $message = \Drupal::translation()->formatPlural(count($results['failed_files']), 'One translation file could not be checked. <a href="@url">See the log</a> for details.', '@count translation files could not be checked. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview')));
} }
else { else {
$message = format_plural(count($results['failed_files']), 'One translation files could not be checked. See the log for details.', '@count translation files could not be checked. See the log for details.'); $message = \Drupal::translation()->formatPlural(count($results['failed_files']), 'One translation files could not be checked. See the log for details.', '@count translation files could not be checked. See the log for details.');
} }
drupal_set_message($message, 'error'); drupal_set_message($message, 'error');
} }
if (isset($results['files'])) { if (isset($results['files'])) {
drupal_set_message(format_plural( drupal_set_message(\Drupal::translation()->formatPlural(
count($results['files']), count($results['files']),
'Checked available interface translation updates for one project.', 'Checked available interface translation updates for one project.',
'Checked available interface translation updates for @count projects.' 'Checked available interface translation updates for @count projects.'
......
...@@ -359,10 +359,10 @@ function locale_translate_batch_finished($success, array $results) { ...@@ -359,10 +359,10 @@ function locale_translate_batch_finished($success, array $results) {
$additions = $updates = $deletes = $skips = $config = 0; $additions = $updates = $deletes = $skips = $config = 0;
if (isset($results['failed_files'])) { if (isset($results['failed_files'])) {
if (\Drupal::moduleHandler()->moduleExists('dblog') && \Drupal::currentUser()->hasPermission('access site reports')) { if (\Drupal::moduleHandler()->moduleExists('dblog') && \Drupal::currentUser()->hasPermission('access site reports')) {
$message = format_plural(count($results['failed_files']), 'One translation file could not be imported. <a href="@url">See the log</a> for details.', '@count translation files could not be imported. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview'))); $message = \Drupal::translation()->formatPlural(count($results['failed_files']), 'One translation file could not be imported. <a href="@url">See the log</a> for details.', '@count translation files could not be imported. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview')));
} }
else { else {
$message = format_plural(count($results['failed_files']), 'One translation file could not be imported. See the log for details.', '@count translation files could not be imported. See the log for details.'); $message = \Drupal::translation()->formatPlural(count($results['failed_files']), 'One translation file could not be imported. See the log for details.', '@count translation files could not be imported. See the log for details.');
} }
drupal_set_message($message, 'error'); drupal_set_message($message, 'error');
} }
...@@ -381,7 +381,7 @@ function locale_translate_batch_finished($success, array $results) { ...@@ -381,7 +381,7 @@ function locale_translate_batch_finished($success, array $results) {
} }
} }
} }
drupal_set_message(format_plural(count($results['files']), drupal_set_message(\Drupal::translation()->formatPlural(count($results['files']),
'One translation file imported. %number translations were added, %update translations were updated and %delete translations were removed.', 'One translation file imported. %number translations were added, %update translations were updated and %delete translations were removed.',
'@count translation files imported. %number translations were added, %update translations were updated and %delete translations were removed.', '@count translation files imported. %number translations were added, %update translations were updated and %delete translations were removed.',
array('%number' => $additions, '%update' => $updates, '%delete' => $deletes) array('%number' => $additions, '%update' => $updates, '%delete' => $deletes)
...@@ -390,10 +390,10 @@ function locale_translate_batch_finished($success, array $results) { ...@@ -390,10 +390,10 @@ function locale_translate_batch_finished($success, array $results) {
if ($skips) { if ($skips) {
if (\Drupal::moduleHandler()->moduleExists('dblog') && \Drupal::currentUser()->hasPermission('access site reports')) { if (\Drupal::moduleHandler()->moduleExists('dblog') && \Drupal::currentUser()->hasPermission('access site reports')) {
$message = format_plural($skips, 'One translation string was skipped because of disallowed or malformed HTML. <a href="@url">See the log</a> for details.', '@count translation strings were skipped because of disallowed or malformed HTML. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview'))); $message = \Drupal::translation()->formatPlural($skips, 'One translation string was skipped because of disallowed or malformed HTML. <a href="@url">See the log</a> for details.', '@count translation strings were skipped because of disallowed or malformed HTML. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview')));
} }
else { else {
$message = format_plural($skips, 'One translation string was skipped because of disallowed or malformed HTML. See the log for details.', '@count translation strings were skipped because of disallowed or malformed HTML. See the log for details.'); $message = \Drupal::translation()->formatPlural($skips, 'One translation string was skipped because of disallowed or malformed HTML. See the log for details.', '@count translation strings were skipped because of disallowed or malformed HTML. See the log for details.');
} }
drupal_set_message($message, 'warning'); drupal_set_message($message, 'warning');
$logger->warning('@count disallowed HTML string(s) in files: @files.', array('@count' => $skips, '@files' => implode(',', $skipped_files))); $logger->warning('@count disallowed HTML string(s) in files: @files.', array('@count' => $skips, '@files' => implode(',', $skipped_files)));
......
...@@ -73,7 +73,7 @@ function template_preprocess_locale_translation_update_info(array &$variables) { ...@@ -73,7 +73,7 @@ function template_preprocess_locale_translation_update_info(array &$variables) {
// Build output for updates not found. // Build output for updates not found.
if (isset($variables['not_found'])) { if (isset($variables['not_found'])) {
$releases = array(); $releases = array();
$variables['missing_updates_status'] = format_plural(count($variables['not_found']), 'Missing translations for one project', 'Missing translations for @count projects'); $variables['missing_updates_status'] = \Drupal::translation()->formatPlural(count($variables['not_found']), 'Missing translations for one project', 'Missing translations for @count projects');
if ($variables['not_found']) { if ($variables['not_found']) {
foreach ($variables['not_found'] as $update) { foreach ($variables['not_found'] as $update) {
$version = $update['version'] ? $update['version'] : t('no version'); $version = $update['version'] ? $update['version'] : t('no version');
......
...@@ -125,7 +125,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { ...@@ -125,7 +125,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
for ($i = 0; $i < $plural_formulas[$langcode]['plurals']; $i++) { for ($i = 0; $i < $plural_formulas[$langcode]['plurals']; $i++) {
$form['strings'][$string->lid]['translations'][$i] = array( $form['strings'][$string->lid]['translations'][$i] = array(
'#type' => 'textarea', '#type' => 'textarea',
'#title' => ($i == 0 ? $this->t('Singular form') : format_plural($i, 'First plural form', '@count. plural form')), '#title' => ($i == 0 ? $this->t('Singular form') : $this->formatPlural($i, 'First plural form', '@count. plural form')),
'#rows' => $rows, '#rows' => $rows,
'#default_value' => isset($translation_array[$i]) ? $translation_array[$i] : '', '#default_value' => isset($translation_array[$i]) ? $translation_array[$i] : '',
'#attributes' => array('lang' => $langcode), '#attributes' => array('lang' => $langcode),
......
...@@ -34,7 +34,8 @@ protected function setUp() { ...@@ -34,7 +34,8 @@ protected function setUp() {
} }
/** /**
* Tests locale_get_plural() and format_plural() functionality. * Tests locale_get_plural() and \Drupal::translation()->formatPlural()
* functionality.
*/ */
public function testGetPluralFormat() { public function testGetPluralFormat() {
// Import some .po files with formulas to set up the environment. // Import some .po files with formulas to set up the environment.
...@@ -129,7 +130,7 @@ public function testGetPluralFormat() { ...@@ -129,7 +130,7 @@ public function testGetPluralFormat() {
// expected index as per the logic for translation lookups. // expected index as per the logic for translation lookups.
$expected_plural_index = ($count == 1) ? 0 : $expected_plural_index; $expected_plural_index = ($count == 1) ? 0 : $expected_plural_index;
$expected_plural_string = str_replace('@count', $count, $plural_strings[$langcode][$expected_plural_index]); $expected_plural_string = str_replace('@count', $count, $plural_strings[$langcode][$expected_plural_index]);
$this->assertIdentical(format_plural($count, '1 hour', '@count hours', array(), array('langcode' => $langcode)), $expected_plural_string, 'Plural translation of 1 hours / @count hours for count ' . $count . ' in ' . $langcode . ' is ' . $expected_plural_string); $this->assertIdentical(\Drupal::translation()->formatPlural($count, '1 hour', '@count hours', array(), array('langcode' => $langcode)), $expected_plural_string, 'Plural translation of 1 hours / @count hours for count ' . $count . ' in ' . $langcode . ' is ' . $expected_plural_string);
} }
} }
} }
...@@ -217,7 +218,7 @@ public function testPluralEditExport() { ...@@ -217,7 +218,7 @@ public function testPluralEditExport() {
// langcode here because the language will be English by default and will // langcode here because the language will be English by default and will
// not save our source string for performance optimization if we do not ask // not save our source string for performance optimization if we do not ask
// specifically for a language. // specifically for a language.
format_plural(1, '1 day', '@count days', array(), array('langcode' => 'fr')); \Drupal::translation()->formatPlural(1, '1 day', '@count days', array(), array('langcode' => 'fr'));
$lid = db_query("SELECT lid FROM {locales_source} WHERE source = :source AND context = ''", array(':source' => "1 day" . LOCALE_PLURAL_DELIMITER . "@count days"))->fetchField(); $lid = db_query("SELECT lid FROM {locales_source} WHERE source = :source AND context = ''", array(':source' => "1 day" . LOCALE_PLURAL_DELIMITER . "@count days"))->fetchField();
// Look up editing page for this plural string and check fields. // Look up editing page for this plural string and check fields.
$search = array( $search = array(
......
...@@ -76,7 +76,7 @@ public function getDescription() { ...@@ -76,7 +76,7 @@ public function getDescription() {
$caption = ''; $caption = '';
$num_links = $this->menuLinkManager->countMenuLinks($this->entity->id()); $num_links = $this->menuLinkManager->countMenuLinks($this->entity->id());
if ($num_links) { if ($num_links) {
$caption .= '<p>' . format_plural($num_links, '<strong>Warning:</strong> There is currently 1 menu link in %title. It will be deleted (system-defined items will be reset).', '<strong>Warning:</strong> There are currently @count menu links in %title. They will be deleted (system-defined links will be reset).', array('%title' => $this->entity->label())) . '</p>'; $caption .= '<p>' . $this->formatPlural($num_links, '<strong>Warning:</strong> There is currently 1 menu link in %title. It will be deleted (system-defined items will be reset).', '<strong>Warning:</strong> There are currently @count menu links in %title. They will be deleted (system-defined links will be reset).', array('%title' => $this->entity->label())) . '</p>';
} }
$caption .= '<p>' . t('This action cannot be undone.') . '</p>'; $caption .= '<p>' . t('This action cannot be undone.') . '</p>';
return $caption; return $caption;
......
...@@ -159,7 +159,7 @@ function _node_mass_update_batch_finished($success, $results, $operations) { ...@@ -159,7 +159,7 @@ function _node_mass_update_batch_finished($success, $results, $operations) {
} }
else { else {
drupal_set_message(t('An error occurred and processing did not complete.'), 'error'); drupal_set_message(t('An error occurred and processing did not complete.'), 'error');
$message = format_plural(count($results), '1 item successfully processed:', '@count items successfully processed:'); $message = \Drupal::translation()->formatPlural(count($results), '1 item successfully processed:', '@count items successfully processed:');
$item_list = array( $item_list = array(
'#theme' => 'item_list', '#theme' => 'item_list',
'#items' => $results, '#items' => $results,
......
...@@ -380,7 +380,7 @@ function hook_node_access(\Drupal\node\NodeInterface $node, $op, \Drupal\Core\Se ...@@ -380,7 +380,7 @@ function hook_node_access(\Drupal\node\NodeInterface $node, $op, \Drupal\Core\Se
*/ */
function hook_node_search_result(\Drupal\node\NodeInterface $node, $langcode) { function hook_node_search_result(\Drupal\node\NodeInterface $node, $langcode) {
$rating = db_query('SELECT SUM(points) FROM {my_rating} WHERE nid = :nid', array('nid' => $node->id()))->fetchField(); $rating = db_query('SELECT SUM(points) FROM {my_rating} WHERE nid = :nid', array('nid' => $node->id()))->fetchField();
return array('rating' => format_plural($rating, '1 point', '@count points')); return array('rating' => \Drupal::translation()->formatPlural($rating, '1 point', '@count points'));
} }
/** /**
......
...@@ -20,7 +20,7 @@ function node_requirements($phase) { ...@@ -20,7 +20,7 @@ function node_requirements($phase) {
// implement hook_node_grants(). // implement hook_node_grants().
$grant_count = \Drupal::entityManager()->getAccessControlHandler('node')->countGrants(); $grant_count = \Drupal::entityManager()->getAccessControlHandler('node')->countGrants();
if ($grant_count != 1 || count(\Drupal::moduleHandler()->getImplementations('node_grants')) > 0) { if ($grant_count != 1 || count(\Drupal::moduleHandler()->getImplementations('node_grants')) > 0) {
$value = format_plural($grant_count, 'One permission in use', '@count permissions in use', array('@count' => $grant_count)); $value = \Drupal::translation()->formatPlural($grant_count, 'One permission in use', '@count permissions in use', array('@count' => $grant_count));
} }
else { else {
$value = t('Disabled'); $value = t('Disabled');
......
...@@ -190,7 +190,7 @@ function node_title_list(StatementInterface $result, $title = NULL) { ...@@ -190,7 +190,7 @@ function node_title_list(StatementInterface $result, $title = NULL) {