Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: components/translate/core/browser/translate_manager.cc

Issue 2650003004: Don't offer to translate between Simplified and Traditional Chinese (Closed)
Patch Set: Fixes unittests by simulating online mode and setting behavior for mock function. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | components/translate/core/browser/translate_manager_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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>
kjellander_chromium 2017/01/26 05:30:06 I'm confused how this could pass the _CheckNoIOStr
7 #include <map> 8 #include <map>
8 9
9 #include "base/bind.h" 10 #include "base/bind.h"
10 #include "base/command_line.h" 11 #include "base/command_line.h"
11 #include "base/memory/ptr_util.h" 12 #include "base/memory/ptr_util.h"
12 #include "base/metrics/field_trial.h" 13 #include "base/metrics/field_trial.h"
13 #include "base/metrics/histogram.h" 14 #include "base/metrics/histogram.h"
14 #include "base/profiler/scoped_tracker.h" 15 #include "base/profiler/scoped_tracker.h"
15 #include "base/strings/string_number_conversions.h" 16 #include "base/strings/string_number_conversions.h"
16 #include "base/strings/string_split.h" 17 #include "base/strings/string_split.h"
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 std::unique_ptr<TranslatePrefs> translate_prefs( 218 std::unique_ptr<TranslatePrefs> translate_prefs(
218 translate_client_->GetTranslatePrefs()); 219 translate_client_->GetTranslatePrefs());
219 220
220 std::string target_lang = GetTargetLanguage(translate_prefs.get()); 221 std::string target_lang = GetTargetLanguage(translate_prefs.get());
221 std::string language_code = 222 std::string language_code =
222 TranslateDownloadManager::GetLanguageCode(page_lang); 223 TranslateDownloadManager::GetLanguageCode(page_lang);
223 224
224 InitTranslateEvent(language_code, target_lang, *translate_prefs); 225 InitTranslateEvent(language_code, target_lang, *translate_prefs);
225 226
226 // Don't translate similar languages (ex: en-US to en). 227 // Don't translate similar languages (ex: en-US to en).
227 if (language_code == target_lang) { 228 // Also do not offer to translate between Simplified and Traditional Chinese.
229 if (language_code == target_lang ||
230 (language_code == "zh-CN" && target_lang == "zh-TW") ||
231 (language_code == "zh-TW" && target_lang == "zh-CN")) {
228 TranslateBrowserMetrics::ReportInitiationStatus( 232 TranslateBrowserMetrics::ReportInitiationStatus(
229 TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES); 233 TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES);
230 return; 234 return;
231 } 235 }
232
233 // Nothing to do if either the language Chrome is in or the language of the 236 // Nothing to do if either the language Chrome is in or the language of the
234 // page is not supported by the translation server. 237 // page is not supported by the translation server.
235 if (target_lang.empty() || 238 if (target_lang.empty() ||
236 !TranslateDownloadManager::IsSupportedLanguage(language_code)) { 239 !TranslateDownloadManager::IsSupportedLanguage(language_code)) {
237 TranslateBrowserMetrics::ReportInitiationStatus( 240 TranslateBrowserMetrics::ReportInitiationStatus(
238 TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED); 241 TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED);
239 TranslateBrowserMetrics::ReportUnsupportedLanguageAtInitiation( 242 TranslateBrowserMetrics::ReportUnsupportedLanguageAtInitiation(
240 language_code); 243 language_code);
241 RecordTranslateEvent(metrics::TranslateEventProto::UNSUPPORTED_LANGUAGE); 244 RecordTranslateEvent(metrics::TranslateEventProto::UNSUPPORTED_LANGUAGE);
242 return; 245 return;
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 void TranslateManager::RecordTranslateEvent(int event_type) { 601 void TranslateManager::RecordTranslateEvent(int event_type) {
599 DCHECK(metrics::TranslateEventProto::EventType_IsValid(event_type)); 602 DCHECK(metrics::TranslateEventProto::EventType_IsValid(event_type));
600 translate_event_->set_event_type( 603 translate_event_->set_event_type(
601 static_cast<metrics::TranslateEventProto::EventType>(event_type)); 604 static_cast<metrics::TranslateEventProto::EventType>(event_type));
602 translate_event_->set_event_timestamp_sec( 605 translate_event_->set_event_timestamp_sec(
603 (base::TimeTicks::Now() - base::TimeTicks()).InSeconds()); 606 (base::TimeTicks::Now() - base::TimeTicks()).InSeconds());
604 TranslateRanker::GetInstance()->RecordTranslateEvent(*translate_event_); 607 TranslateRanker::GetInstance()->RecordTranslateEvent(*translate_event_);
605 } 608 }
606 609
607 } // namespace translate 610 } // namespace translate
OLDNEW
« no previous file with comments | « no previous file | components/translate/core/browser/translate_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698