Index: chrome/browser/translate/translate_manager.cc |
diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc |
index 9cb8c149fac41b54c40107d9263d029a6abe1417..cec67ab0ac85a0bb6031970a85a1421883fe002f 100644 |
--- a/chrome/browser/translate/translate_manager.cc |
+++ b/chrome/browser/translate/translate_manager.cc |
@@ -587,3 +587,29 @@ std::string TranslateManager::GetAutoTargetLanguage( |
} |
return std::string(); |
} |
+ |
+// static |
+void TranslateManager::GetTranslateLanguages(content::WebContents* web_contents, |
+ std::string* source, |
+ std::string* target) { |
+ DCHECK(source != NULL); |
+ DCHECK(target != NULL); |
+ |
+ TranslateTabHelper* translate_tab_helper = |
+ TranslateTabHelper::FromWebContents(web_contents); |
+ *source = translate_tab_helper->GetLanguageState().original_language(); |
+ |
+ Profile* profile = |
+ Profile::FromBrowserContext(web_contents->GetBrowserContext()); |
+ Profile* original_profile = profile->GetOriginalProfile(); |
+ PrefService* prefs = original_profile->GetPrefs(); |
+ if (!web_contents->GetBrowserContext()->IsOffTheRecord()) { |
+ std::string auto_translate_language = |
+ TranslateManager::GetAutoTargetLanguage(*source, prefs); |
+ if (!auto_translate_language.empty()) { |
+ *target = auto_translate_language; |
+ return; |
+ } |
+ } |
+ *target = TranslateManager::GetTargetLanguage(prefs); |
+} |