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 "components/translate/core/browser/translate_manager.h" | 5 #include "components/translate/core/browser/translate_manager.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
117 // History, and so on. | 117 // History, and so on. |
118 const GURL& page_url = translate_driver_->GetVisibleURL(); | 118 const GURL& page_url = translate_driver_->GetVisibleURL(); |
119 if (!translate_client_->IsTranslatableURL(page_url)) { | 119 if (!translate_client_->IsTranslatableURL(page_url)) { |
120 TranslateBrowserMetrics::ReportInitiationStatus( | 120 TranslateBrowserMetrics::ReportInitiationStatus( |
121 TranslateBrowserMetrics::INITIATION_STATUS_URL_IS_NOT_SUPPORTED); | 121 TranslateBrowserMetrics::INITIATION_STATUS_URL_IS_NOT_SUPPORTED); |
122 return; | 122 return; |
123 } | 123 } |
124 | 124 |
125 // Get the accepted languages list. | 125 // Get the accepted languages list. |
126 std::vector<std::string> accept_languages_list; | 126 std::vector<std::string> accept_languages_list; |
127 base::SplitString(prefs->GetString(accept_languages_pref_name_.c_str()), ',', | 127 base::SplitString(prefs->GetString(accept_languages_pref_name_.c_str()), |
128 ',', | |
droger
2014/04/09 08:31:24
Why the changes to this file?
blundell
2014/04/09 08:49:27
Reverted.
On 2014/04/09 08:31:24, droger wrote:
| |
128 &accept_languages_list); | 129 &accept_languages_list); |
129 | 130 |
130 std::string target_lang = GetTargetLanguage(accept_languages_list); | 131 std::string target_lang = GetTargetLanguage(accept_languages_list); |
131 std::string language_code = | 132 std::string language_code = |
132 TranslateDownloadManager::GetLanguageCode(page_lang); | 133 TranslateDownloadManager::GetLanguageCode(page_lang); |
133 | 134 |
134 // Don't translate similar languages (ex: en-US to en). | 135 // Don't translate similar languages (ex: en-US to en). |
135 if (language_code == target_lang) { | 136 if (language_code == target_lang) { |
136 TranslateBrowserMetrics::ReportInitiationStatus( | 137 TranslateBrowserMetrics::ReportInitiationStatus( |
137 TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES); | 138 TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES); |
(...skipping 10 matching lines...) Expand all Loading... | |
148 language_code); | 149 language_code); |
149 return; | 150 return; |
150 } | 151 } |
151 | 152 |
152 scoped_ptr<TranslatePrefs> translate_prefs( | 153 scoped_ptr<TranslatePrefs> translate_prefs( |
153 translate_client_->GetTranslatePrefs()); | 154 translate_client_->GetTranslatePrefs()); |
154 | 155 |
155 TranslateAcceptLanguages* accept_languages = | 156 TranslateAcceptLanguages* accept_languages = |
156 translate_client_->GetTranslateAcceptLanguages(); | 157 translate_client_->GetTranslateAcceptLanguages(); |
157 // Don't translate any user black-listed languages. | 158 // Don't translate any user black-listed languages. |
158 if (!translate_prefs->CanTranslateLanguage(accept_languages, | 159 if (!translate_prefs->CanTranslateLanguage(accept_languages, language_code)) { |
159 language_code)) { | |
160 TranslateBrowserMetrics::ReportInitiationStatus( | 160 TranslateBrowserMetrics::ReportInitiationStatus( |
161 TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_CONFIG); | 161 TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_CONFIG); |
162 return; | 162 return; |
163 } | 163 } |
164 | 164 |
165 // Don't translate any user black-listed URLs. | 165 // Don't translate any user black-listed URLs. |
166 if (translate_prefs->IsSiteBlacklisted(page_url.HostNoBrackets())) { | 166 if (translate_prefs->IsSiteBlacklisted(page_url.HostNoBrackets())) { |
167 TranslateBrowserMetrics::ReportInitiationStatus( | 167 TranslateBrowserMetrics::ReportInitiationStatus( |
168 TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_CONFIG); | 168 TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_CONFIG); |
169 return; | 169 return; |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
353 TranslateDownloadManager::GetLanguageCode( | 353 TranslateDownloadManager::GetLanguageCode( |
354 TranslateDownloadManager::GetInstance()->application_locale())); | 354 TranslateDownloadManager::GetInstance()->application_locale())); |
355 | 355 |
356 if (TranslateDownloadManager::IsSupportedLanguage(ui_lang)) | 356 if (TranslateDownloadManager::IsSupportedLanguage(ui_lang)) |
357 return ui_lang; | 357 return ui_lang; |
358 | 358 |
359 // Will translate to the first supported language on the Accepted Language | 359 // Will translate to the first supported language on the Accepted Language |
360 // list or not at all if no such candidate exists | 360 // list or not at all if no such candidate exists |
361 std::vector<std::string>::const_iterator iter; | 361 std::vector<std::string>::const_iterator iter; |
362 for (iter = accept_languages_list.begin(); | 362 for (iter = accept_languages_list.begin(); |
363 iter != accept_languages_list.end(); ++iter) { | 363 iter != accept_languages_list.end(); |
364 ++iter) { | |
364 std::string lang_code = TranslateDownloadManager::GetLanguageCode(*iter); | 365 std::string lang_code = TranslateDownloadManager::GetLanguageCode(*iter); |
365 if (TranslateDownloadManager::IsSupportedLanguage(lang_code)) | 366 if (TranslateDownloadManager::IsSupportedLanguage(lang_code)) |
366 return lang_code; | 367 return lang_code; |
367 } | 368 } |
368 return std::string(); | 369 return std::string(); |
369 } | 370 } |
370 | 371 |
371 // static | 372 // static |
372 std::string TranslateManager::GetAutoTargetLanguage( | 373 std::string TranslateManager::GetAutoTargetLanguage( |
373 const std::string& original_language, | 374 const std::string& original_language, |
374 TranslatePrefs* translate_prefs) { | 375 TranslatePrefs* translate_prefs) { |
375 std::string auto_target_lang; | 376 std::string auto_target_lang; |
376 if (translate_prefs->ShouldAutoTranslate(original_language, | 377 if (translate_prefs->ShouldAutoTranslate(original_language, |
377 &auto_target_lang)) { | 378 &auto_target_lang)) { |
378 // We need to confirm that the saved target language is still supported. | 379 // We need to confirm that the saved target language is still supported. |
379 // Also, GetLanguageCode will take care of removing country code if any. | 380 // Also, GetLanguageCode will take care of removing country code if any. |
380 auto_target_lang = | 381 auto_target_lang = |
381 TranslateDownloadManager::GetLanguageCode(auto_target_lang); | 382 TranslateDownloadManager::GetLanguageCode(auto_target_lang); |
382 if (TranslateDownloadManager::IsSupportedLanguage(auto_target_lang)) | 383 if (TranslateDownloadManager::IsSupportedLanguage(auto_target_lang)) |
383 return auto_target_lang; | 384 return auto_target_lang; |
384 } | 385 } |
385 return std::string(); | 386 return std::string(); |
386 } | 387 } |
OLD | NEW |