diff options
author | jeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-17 07:49:53 +0000 |
---|---|---|
committer | jeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-17 07:49:53 +0000 |
commit | 2e59325fed2416cd23d0b418cd46e302148aa584 (patch) | |
tree | 12a5fa4d92c38c32b4e03a8df4a55a8688f1e449 /chrome/browser/views/infobars/translate_infobars.cc | |
parent | 3e52d7d6df02b80809826c8a68b897d337ec8f94 (diff) | |
download | chromium_src-2e59325fed2416cd23d0b418cd46e302148aa584.zip chromium_src-2e59325fed2416cd23d0b418cd46e302148aa584.tar.gz chromium_src-2e59325fed2416cd23d0b418cd46e302148aa584.tar.bz2 |
Translate: Move label parsing logic into common code.
* Add a string16 & Cocoa version of GetStringF().
* Move logic for parsing translate infobar label into translate_infobars_delegates.
* Make views variant of translate infobars use new code.
BUG=34466
TEST=Translate infobars should continue to workon Windows.
Review URL: http://codereview.chromium.org/597042
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39206 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/infobars/translate_infobars.cc')
-rw-r--r-- | chrome/browser/views/infobars/translate_infobars.cc | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/chrome/browser/views/infobars/translate_infobars.cc b/chrome/browser/views/infobars/translate_infobars.cc index 9c2c175..d9660d2 100644 --- a/chrome/browser/views/infobars/translate_infobars.cc +++ b/chrome/browser/views/infobars/translate_infobars.cc @@ -623,24 +623,11 @@ void TranslateInfoBar::Observe(NotificationType type, void TranslateInfoBar::CreateLabels() { // Determine text for labels. std::vector<size_t> offsets; - std::wstring message_text = l10n_util::GetStringF( - (GetDelegate()->state() == TranslateInfoBarDelegate::kAfterTranslate ? - IDS_TRANSLATE_INFOBAR_AFTER_MESSAGE : - IDS_TRANSLATE_INFOBAR_BEFORE_MESSAGE), - std::wstring(), std::wstring(), &offsets); - if (!offsets.empty() && offsets.size() <= 2) { - // Sort the offsets if necessary. - if (offsets.size() == 2 && offsets[0] > offsets[1]) { - size_t offset0 = offsets[0]; - offsets[0] = offsets[1]; - offsets[1] = offset0; - swapped_language_placeholders_ = true; - } - if (offsets[offsets.size() - 1] != message_text.length()) - offsets.push_back(message_text.length()); - } else { - NOTREACHED() << "Invalid no. of placeholders in label."; - } + string16 message_text_utf16; + GetDelegate()->GetMessageText(&message_text_utf16, &offsets, + &swapped_language_placeholders_); + + std::wstring message_text = UTF16ToWideHack(message_text_utf16); // Create label controls. const gfx::Font& font = ResourceBundle::GetSharedInstance().GetFont( |