OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/translate/translate_infobar_delegate.h" | 5 #include "chrome/browser/translate/translate_infobar_delegate.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/i18n/string_compare.h" | 9 #include "base/i18n/string_compare.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
273 | 273 |
274 // static | 274 // static |
275 string16 TranslateInfoBarDelegate::GetLanguageDisplayableName( | 275 string16 TranslateInfoBarDelegate::GetLanguageDisplayableName( |
276 const std::string& language_code) { | 276 const std::string& language_code) { |
277 return l10n_util::GetDisplayNameForLocale( | 277 return l10n_util::GetDisplayNameForLocale( |
278 language_code, g_browser_process->GetApplicationLocale(), true); | 278 language_code, g_browser_process->GetApplicationLocale(), true); |
279 } | 279 } |
280 | 280 |
281 // static | 281 // static |
282 void TranslateInfoBarDelegate::GetAfterTranslateStrings( | 282 void TranslateInfoBarDelegate::GetAfterTranslateStrings( |
283 std::vector<string16>* strings, bool* swap_languages) { | 283 std::vector<string16>* strings, |
284 DCHECK(strings); | 284 bool* swap_languages, |
285 DCHECK(swap_languages); | 285 bool autodetermined_source_language) { |
286 | |
287 std::vector<size_t> offsets; | |
288 string16 text = | |
289 l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_AFTER_MESSAGE, | |
290 string16(), string16(), &offsets); | |
291 DCHECK_EQ(2U, offsets.size()); | |
292 | |
293 *swap_languages = (offsets[0] > offsets[1]); | |
294 if (*swap_languages) | |
295 std::swap(offsets[0], offsets[1]); | |
296 | |
297 strings->push_back(text.substr(0, offsets[0])); | |
298 strings->push_back(text.substr(offsets[0], offsets[1] - offsets[0])); | |
299 strings->push_back(text.substr(offsets[1])); | |
300 } | |
301 | |
302 // static | |
303 void TranslateInfoBarDelegate::GetAfterTranslateWithAutoStrings( | |
304 std::vector<string16>* strings) { | |
305 DCHECK(strings); | 286 DCHECK(strings); |
306 | 287 |
307 size_t offset; | 288 if (autodetermined_source_language) { |
308 string16 text = | 289 size_t offset; |
309 l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_AFTER_MESSAGE_WITH_AUTO, | 290 string16 text = l10n_util::GetStringFUTF16( |
310 string16(), &offset); | 291 IDS_TRANSLATE_INFOBAR_AFTER_MESSAGE_AUTODETERMINED_SOURCE_LANGUAGE, |
292 string16(), | |
293 &offset); | |
311 | 294 |
312 strings->push_back(text.substr(0, offset)); | 295 strings->push_back(text.substr(0, offset)); |
313 strings->push_back(text.substr(offset)); | 296 strings->push_back(text.substr(offset)); |
297 } else { | |
Peter Kasting
2013/05/23 19:59:56
Tiny nit: Might be better to early-return here so
Takashi Toyoshima
2013/05/27 06:07:51
Done.
| |
298 DCHECK(swap_languages); | |
299 | |
300 std::vector<size_t> offsets; | |
301 string16 text = l10n_util::GetStringFUTF16( | |
302 IDS_TRANSLATE_INFOBAR_AFTER_MESSAGE, | |
303 string16(), | |
304 string16(), | |
305 &offsets); | |
306 DCHECK_EQ(2U, offsets.size()); | |
307 | |
308 *swap_languages = (offsets[0] > offsets[1]); | |
309 if (*swap_languages) | |
310 std::swap(offsets[0], offsets[1]); | |
311 | |
312 strings->push_back(text.substr(0, offsets[0])); | |
313 strings->push_back(text.substr(offsets[0], offsets[1] - offsets[0])); | |
314 strings->push_back(text.substr(offsets[1])); | |
315 } | |
314 } | 316 } |
315 | 317 |
316 TranslateInfoBarDelegate::TranslateInfoBarDelegate( | 318 TranslateInfoBarDelegate::TranslateInfoBarDelegate( |
317 Type infobar_type, | 319 Type infobar_type, |
318 TranslateErrors::Type error_type, | 320 TranslateErrors::Type error_type, |
319 InfoBarService* infobar_service, | 321 InfoBarService* infobar_service, |
320 PrefService* prefs, | 322 PrefService* prefs, |
321 ShortcutConfiguration shortcut_config, | 323 ShortcutConfiguration shortcut_config, |
322 const std::string& original_language, | 324 const std::string& original_language, |
323 const std::string& target_language) | 325 const std::string& target_language) |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
401 | 403 |
402 TranslateInfoBarDelegate* | 404 TranslateInfoBarDelegate* |
403 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { | 405 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { |
404 return this; | 406 return this; |
405 } | 407 } |
406 | 408 |
407 std::string TranslateInfoBarDelegate::GetPageHost() { | 409 std::string TranslateInfoBarDelegate::GetPageHost() { |
408 NavigationEntry* entry = web_contents()->GetController().GetActiveEntry(); | 410 NavigationEntry* entry = web_contents()->GetController().GetActiveEntry(); |
409 return entry ? entry->GetURL().HostNoBrackets() : std::string(); | 411 return entry ? entry->GetURL().HostNoBrackets() : std::string(); |
410 } | 412 } |
OLD | NEW |