| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <iostream> | |
| 8 #include <map> | 7 #include <map> |
| 9 | 8 |
| 10 #include "base/bind.h" | 9 #include "base/bind.h" |
| 11 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| 12 #include "base/memory/ptr_util.h" | 11 #include "base/memory/ptr_util.h" |
| 13 #include "base/metrics/field_trial.h" | 12 #include "base/metrics/field_trial.h" |
| 14 #include "base/metrics/histogram.h" | 13 #include "base/metrics/histogram.h" |
| 15 #include "base/profiler/scoped_tracker.h" | 14 #include "base/profiler/scoped_tracker.h" |
| 16 #include "base/strings/string_number_conversions.h" | 15 #include "base/strings/string_number_conversions.h" |
| 17 #include "base/strings/string_split.h" | 16 #include "base/strings/string_split.h" |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 std::unique_ptr<TranslatePrefs> translate_prefs( | 217 std::unique_ptr<TranslatePrefs> translate_prefs( |
| 219 translate_client_->GetTranslatePrefs()); | 218 translate_client_->GetTranslatePrefs()); |
| 220 | 219 |
| 221 std::string target_lang = GetTargetLanguage(translate_prefs.get()); | 220 std::string target_lang = GetTargetLanguage(translate_prefs.get()); |
| 222 std::string language_code = | 221 std::string language_code = |
| 223 TranslateDownloadManager::GetLanguageCode(page_lang); | 222 TranslateDownloadManager::GetLanguageCode(page_lang); |
| 224 | 223 |
| 225 InitTranslateEvent(language_code, target_lang, *translate_prefs); | 224 InitTranslateEvent(language_code, target_lang, *translate_prefs); |
| 226 | 225 |
| 227 // Don't translate similar languages (ex: en-US to en). | 226 // Don't translate similar languages (ex: en-US to en). |
| 228 // Also do not offer to translate between Simplified and Traditional Chinese. | 227 if (language_code == target_lang) { |
| 229 if (language_code == target_lang || | |
| 230 (language_code == "zh-CN" && target_lang == "zh-TW") || | |
| 231 (language_code == "zh-TW" && target_lang == "zh-CN")) { | |
| 232 TranslateBrowserMetrics::ReportInitiationStatus( | 228 TranslateBrowserMetrics::ReportInitiationStatus( |
| 233 TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES); | 229 TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES); |
| 234 return; | 230 return; |
| 235 } | 231 } |
| 232 |
| 236 // Nothing to do if either the language Chrome is in or the language of the | 233 // Nothing to do if either the language Chrome is in or the language of the |
| 237 // page is not supported by the translation server. | 234 // page is not supported by the translation server. |
| 238 if (target_lang.empty() || | 235 if (target_lang.empty() || |
| 239 !TranslateDownloadManager::IsSupportedLanguage(language_code)) { | 236 !TranslateDownloadManager::IsSupportedLanguage(language_code)) { |
| 240 TranslateBrowserMetrics::ReportInitiationStatus( | 237 TranslateBrowserMetrics::ReportInitiationStatus( |
| 241 TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED); | 238 TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED); |
| 242 TranslateBrowserMetrics::ReportUnsupportedLanguageAtInitiation( | 239 TranslateBrowserMetrics::ReportUnsupportedLanguageAtInitiation( |
| 243 language_code); | 240 language_code); |
| 244 RecordTranslateEvent(metrics::TranslateEventProto::UNSUPPORTED_LANGUAGE); | 241 RecordTranslateEvent(metrics::TranslateEventProto::UNSUPPORTED_LANGUAGE); |
| 245 return; | 242 return; |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 601 void TranslateManager::RecordTranslateEvent(int event_type) { | 598 void TranslateManager::RecordTranslateEvent(int event_type) { |
| 602 DCHECK(metrics::TranslateEventProto::EventType_IsValid(event_type)); | 599 DCHECK(metrics::TranslateEventProto::EventType_IsValid(event_type)); |
| 603 translate_event_->set_event_type( | 600 translate_event_->set_event_type( |
| 604 static_cast<metrics::TranslateEventProto::EventType>(event_type)); | 601 static_cast<metrics::TranslateEventProto::EventType>(event_type)); |
| 605 translate_event_->set_event_timestamp_sec( | 602 translate_event_->set_event_timestamp_sec( |
| 606 (base::TimeTicks::Now() - base::TimeTicks()).InSeconds()); | 603 (base::TimeTicks::Now() - base::TimeTicks()).InSeconds()); |
| 607 TranslateRanker::GetInstance()->RecordTranslateEvent(*translate_event_); | 604 TranslateRanker::GetInstance()->RecordTranslateEvent(*translate_event_); |
| 608 } | 605 } |
| 609 | 606 |
| 610 } // namespace translate | 607 } // namespace translate |
| OLD | NEW |