[MD Bookmarks] Separate single vs plural messages in toasts.
This CL separates the single and plural messages for copying and deleting
items. This is necessary because mixing $1 style placeholders with
ICU style plural formatting was providing translators with a string that
excluded the placeholder. This then broke when the translated string
was fed into a build, because it was missing the placeholder.
Bug: 741195
Change-Id: Ib4bb619081282c9b497c7363c1a2b72252e3252f
Reviewed-on: https://chromium-review.googlesource.com/572478
Commit-Queue: calamity <[email protected]>
Reviewed-by: Tim Sergeant <[email protected]>
Cr-Commit-Position: refs/heads/master@{#487346}diff --git a/chrome/app/bookmarks_strings.grdp b/chrome/app/bookmarks_strings.grdp
index fbea426..acae39a 100644
--- a/chrome/app/bookmarks_strings.grdp
+++ b/chrome/app/bookmarks_strings.grdp
@@ -431,17 +431,21 @@
<message name="IDS_MD_BOOKMARK_MANAGER_TOAST_FOLDER_SORTED" desc="Label displayed in toast popup message when a folder's children are sorted.">
Folder sorted
</message>
- <message name="IDS_MD_BOOKMARK_MANAGER_TOAST_ITEMS_DELETED" desc="Label displayed in toast popup message when several items are deleted.">
+ <message name="IDS_MD_BOOKMARK_MANAGER_TOAST_ITEM_DELETED" desc="Label displayed in toast popup message when a single item is deleted.">
+ '<ph name="DELETED_ITEM_NAME">$1<ex>Bookmark X</ex></ph>' has been deleted
+ </message>
+ <message name="IDS_MD_BOOKMARK_MANAGER_TOAST_ITEMS_DELETED" desc="Label displayed in toast popup message when two or more items are deleted.">
{COUNT, plural,
- =1 {'<ph name="DELETED_ITEM_NAME">$1</ph>' has been deleted}
other {# bookmarks deleted}}
</message>
<message name="IDS_MD_BOOKMARK_MANAGER_TOAST_URL_COPIED" desc="Label displayed in toast popup message when a URL is copied.">
URL copied
</message>
- <message name="IDS_MD_BOOKMARK_MANAGER_TOAST_ITEMS_COPIED" desc="Label displayed in a toast popup message when several bookmark items are copied">
+ <message name="IDS_MD_BOOKMARK_MANAGER_TOAST_ITEM_COPIED" desc="Label displayed in toast popup message when a single item is copied.">
+ '<ph name="COPIED_ITEM_NAME">$1<ex>Bookmark X</ex></ph>' copied
+ </message>
+ <message name="IDS_MD_BOOKMARK_MANAGER_TOAST_ITEMS_COPIED" desc="Label displayed in a toast popup message when two or more bookmark items are copied">
{COUNT, plural,
- =1 {'<ph name="COPIED_ITEM_NAME">$1</ph>' copied}
other {# items copied}}
</message>
<!-- End of material design Bookmarks Manager strings. -->
diff --git a/chrome/browser/resources/md_bookmarks/command_manager.js b/chrome/browser/resources/md_bookmarks/command_manager.js
index 020f92b1..ce6ae6b1 100644
--- a/chrome/browser/resources/md_bookmarks/command_manager.js
+++ b/chrome/browser/resources/md_bookmarks/command_manager.js
@@ -273,6 +273,9 @@
if (command == Command.COPY_URL) {
labelPromise =
Promise.resolve(loadTimeData.getString('toastUrlCopied'));
+ } else if (idList.length == 1) {
+ labelPromise =
+ Promise.resolve(loadTimeData.getString('toastItemCopied'));
} else {
labelPromise = cr.sendWithPromise(
'getPluralString', 'toastItemsCopied', idList.length);
@@ -290,8 +293,16 @@
case Command.DELETE:
var idList = Array.from(this.minimizeDeletionSet_(itemIds));
var title = state.nodes[idList[0]].title;
- var labelPromise = cr.sendWithPromise(
- 'getPluralString', 'toastItemsDeleted', idList.length);
+ var labelPromise;
+
+ if (idList.length == 1) {
+ labelPromise =
+ Promise.resolve(loadTimeData.getString('toastItemDeleted'));
+ } else {
+ labelPromise = cr.sendWithPromise(
+ 'getPluralString', 'toastItemsDeleted', idList.length);
+ }
+
chrome.bookmarkManagerPrivate.removeTrees(idList, function() {
this.showTitleToast_(labelPromise, title, true);
}.bind(this));
diff --git a/chrome/browser/ui/webui/md_bookmarks/md_bookmarks_ui.cc b/chrome/browser/ui/webui/md_bookmarks/md_bookmarks_ui.cc
index 12316c4..fbe77ca 100644
--- a/chrome/browser/ui/webui/md_bookmarks/md_bookmarks_ui.cc
+++ b/chrome/browser/ui/webui/md_bookmarks/md_bookmarks_ui.cc
@@ -103,6 +103,10 @@
AddLocalizedString(source, "title", IDS_MD_BOOKMARK_MANAGER_TITLE);
AddLocalizedString(source, "toastFolderSorted",
IDS_MD_BOOKMARK_MANAGER_TOAST_FOLDER_SORTED);
+ AddLocalizedString(source, "toastItemCopied",
+ IDS_MD_BOOKMARK_MANAGER_TOAST_ITEM_COPIED);
+ AddLocalizedString(source, "toastItemDeleted",
+ IDS_MD_BOOKMARK_MANAGER_TOAST_ITEM_DELETED);
AddLocalizedString(source, "toastUrlCopied",
IDS_MD_BOOKMARK_MANAGER_TOAST_URL_COPIED);
AddLocalizedString(source, "undo", IDS_BOOKMARK_BAR_UNDO);