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

Unified Diff: chrome/browser/translate/translate_manager.cc

Issue 15295004: Translate: enable against unknown languages with server side detection (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: update Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/translate/translate_manager.cc
diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc
index a5b3dbb99a9bf2635adce83d309bcfc4a2fe3931..7437d1061b3d0f19fda35eb03611dde6020c247d 100644
--- a/chrome/browser/translate/translate_manager.cc
+++ b/chrome/browser/translate/translate_manager.cc
@@ -30,6 +30,7 @@
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
@@ -658,7 +659,7 @@ void TranslateManager::InitiateTranslationPosted(
}
void TranslateManager::TranslatePage(WebContents* web_contents,
- const std::string& source_lang,
+ const std::string& original_source_lang,
const std::string& target_lang) {
NavigationEntry* entry = web_contents->GetController().GetActiveEntry();
if (!entry) {
@@ -669,6 +670,15 @@ void TranslateManager::TranslatePage(WebContents* web_contents,
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
+ std::string source_lang(original_source_lang);
+
+ // Translation can be kicked by context menu against unsupported languages.
+ // Unsupported language strings should be replaced with
+ // kUnknownLanguageCode in order to send a translation request with enabling
+ // server side auto language detection.
+ if (!IsSupportedLanguage(source_lang))
+ source_lang = std::string(chrome::kUnknownLanguageCode);
+
TranslateInfoBarDelegate::Create(
InfoBarService::FromWebContents(web_contents), true,
TranslateInfoBarDelegate::TRANSLATING, TranslateErrors::NONE,
@@ -762,8 +772,9 @@ void TranslateManager::DoTranslatePage(WebContents* web_contents,
void TranslateManager::PageTranslated(WebContents* web_contents,
PageTranslatedDetails* details) {
if ((details->error_type == TranslateErrors::NONE) &&
+ details->source_language != chrome::kUnknownLanguageCode &&
!IsSupportedLanguage(details->source_language)) {
- // TODO(jcivelli): http://crbug.com/9390 We should change the "after
+ // TODO(jcivelli): http://crbug.com/48918 We should change the "after
MAD 2013/05/17 17:33:11 Do we still need this TODO? The bug you refer to i
Takashi Toyoshima 2013/05/17 17:57:07 It looks fine to remove this TODO now. Or we shoul
MAD 2013/05/17 18:42:25 OK, so for now, can you replace jcivelli with your
Takashi Toyoshima 2013/05/20 06:56:08 Done.
// translate" infobar to support unknown as the original
// language.
TranslateManagerMetrics::ReportUnsupportedLanguage();

Powered by Google App Engine
This is Rietveld 408576698