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(); |