Index: ui/base/l10n/l10n_util.cc |
diff --git a/ui/base/l10n/l10n_util.cc b/ui/base/l10n/l10n_util.cc |
index 354db4b98977f5a35e465935d9738fb3f816a4e8..23ca7ce1af9ad7c66e2daac06e1bbe133d52316b 100644 |
--- a/ui/base/l10n/l10n_util.cc |
+++ b/ui/base/l10n/l10n_util.cc |
@@ -823,25 +823,24 @@ base::string16 GetStringFUTF16Int(int message_id, int64 a) { |
return GetStringFUTF16(message_id, base::UTF8ToUTF16(base::Int64ToString(a))); |
} |
-base::string16 GetPluralStringFUTF16(const std::vector<int>& message_ids, |
- int number) { |
- scoped_ptr<icu::PluralFormat> format = BuildPluralFormat(message_ids); |
- DCHECK(format); |
- |
+base::string16 GetPluralStringFUTF16(int message_id, int number) { |
+ base::string16 pattern = GetStringUTF16(message_id); |
UErrorCode err = U_ZERO_ERROR; |
- icu::UnicodeString result_files_string = format->format(number, err); |
- int capacity = result_files_string.length() + 1; |
+ icu::MessageFormat format( |
+ icu::UnicodeString(FALSE, pattern.data(), pattern.length()), err); |
+ icu::UnicodeString result_unistring; |
+ FormatNumberInPlural(format, number, &result_unistring, &err); |
+ int capacity = result_unistring.length() + 1; |
DCHECK_GT(capacity, 1); |
base::string16 result; |
- result_files_string.extract( |
+ result_unistring.extract( |
static_cast<UChar*>(WriteInto(&result, capacity)), capacity, err); |
DCHECK(U_SUCCESS(err)); |
return result; |
} |
-std::string GetPluralStringFUTF8(const std::vector<int>& message_ids, |
- int number) { |
- return base::UTF16ToUTF8(GetPluralStringFUTF16(message_ids, number)); |
+std::string GetPluralStringFUTF8(int message_id, int number) { |
+ return base::UTF16ToUTF8(GetPluralStringFUTF16(message_id, number)); |
} |
void SortStrings16(const std::string& locale, |