summaryrefslogtreecommitdiffstats
path: root/chrome/browser/tab_contents
diff options
context:
space:
mode:
authorjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-19 00:52:05 +0000
committerjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-19 00:52:05 +0000
commitd905e7a7d5efb36cfa2ac0e474ffe8fed5008017 (patch)
tree76dda9173e629f7367f2511d19653fbdfd43c0de /chrome/browser/tab_contents
parent6dc033c2daee6c71bec401c3324c4440975561bc (diff)
downloadchromium_src-d905e7a7d5efb36cfa2ac0e474ffe8fed5008017.zip
chromium_src-d905e7a7d5efb36cfa2ac0e474ffe8fed5008017.tar.gz
chromium_src-d905e7a7d5efb36cfa2ac0e474ffe8fed5008017.tar.bz2
Porting the infobars on Linux to the new TranslateInfobarDelegate2 (relanding)
Each translate infobar is now its own class and most of the logic is in the delegate. Original review: http://codereview.chromium.org/2836006/show BUG=40828 TEST=Thoroughly test the translate feature on Linux. Review URL: http://codereview.chromium.org/2817015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50308 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tab_contents')
-rw-r--r--chrome/browser/tab_contents/render_view_context_menu.cc20
1 files changed, 18 insertions, 2 deletions
diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc
index ef4e6d7..30e004a 100644
--- a/chrome/browser/tab_contents/render_view_context_menu.cc
+++ b/chrome/browser/tab_contents/render_view_context_menu.cc
@@ -35,7 +35,7 @@
#include "chrome/browser/tab_contents/navigation_entry.h"
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/translate/translate_manager.h"
-#if defined(OS_WIN)
+#if defined(OS_WIN) || defined(OS_LINUX)
#include "chrome/browser/translate/translate_manager2.h"
#endif
#include "chrome/common/chrome_switches.h"
@@ -449,7 +449,11 @@ void RenderViewContextMenu::AppendPageItems() {
menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT);
std::string locale = g_browser_process->GetApplicationLocale();
+#if defined(OS_WIN) || defined(OS_LINUX)
+ locale = TranslateManager2::GetLanguageCode(locale);
+#else
locale = TranslateManager::GetLanguageCode(locale);
+#endif
string16 language = l10n_util::GetDisplayNameForLocale(locale, locale, true);
menu_model_.AddItem(
IDC_CONTENT_CONTEXT_TRANSLATE,
@@ -723,11 +727,19 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) const {
std::string original_lang =
source_tab_contents_->language_state().original_language();
std::string target_lang = g_browser_process->GetApplicationLocale();
+#if defined(OS_WIN) || defined(OS_LINUX)
+ target_lang = TranslateManager2::GetLanguageCode(target_lang);
+#else
target_lang = TranslateManager::GetLanguageCode(target_lang);
+#endif
return original_lang != target_lang &&
!source_tab_contents_->language_state().IsPageTranslated() &&
!source_tab_contents_->interstitial_page() &&
+#if defined(OS_WIN) || defined(OS_LINUX)
+ TranslateManager2::IsTranslatableURL(params_.page_url);
+#else
TranslateManager::IsTranslatableURL(params_.page_url);
+#endif
}
case IDC_CONTENT_CONTEXT_OPENLINKNEWTAB:
@@ -1132,13 +1144,17 @@ void RenderViewContextMenu::ExecuteCommand(int id) {
std::string original_lang =
source_tab_contents_->language_state().original_language();
std::string target_lang = g_browser_process->GetApplicationLocale();
+#if defined(OS_WIN) || defined(OS_LINUX)
+ target_lang = TranslateManager2::GetLanguageCode(target_lang);
+#else
target_lang = TranslateManager::GetLanguageCode(target_lang);
+#endif
// Since the user decided to translate for that language and site, clears
// any preferences for not translating them.
TranslatePrefs prefs(profile_->GetPrefs());
prefs.RemoveLanguageFromBlacklist(original_lang);
prefs.RemoveSiteFromBlacklist(params_.page_url.HostNoBrackets());
-#if defined(OS_WIN)
+#if defined(OS_WIN) || defined(OS_LINUX)
Singleton<TranslateManager2>::get()->TranslatePage(
source_tab_contents_, original_lang, target_lang);
#else