summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-15 21:00:15 +0000
committerjcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-15 21:00:15 +0000
commit5e7ffe7a47223528d9158e26f14b1c6466e63b64 (patch)
tree732313dc440e60a0c6eb60e4321f802f469260a7
parenta196ea18299fa71547e380c1fa8f306f898bb4ac (diff)
downloadchromium_src-5e7ffe7a47223528d9158e26f14b1c6466e63b64.zip
chromium_src-5e7ffe7a47223528d9158e26f14b1c6466e63b64.tar.gz
chromium_src-5e7ffe7a47223528d9158e26f14b1c6466e63b64.tar.bz2
Always enable the "Translate to English' context menu to allow translating pages containing text fragments in another language.
BUG=76200 TEST=Visit a page that is mostly in English but contains some fragments in another language (ex: Google News, add a feed in another language). Right-click in the page, select 'Translate to English'. The non-English fragments should get translated. Review URL: http://codereview.chromium.org/6683020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78287 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/tab_contents/render_view_context_menu.cc5
-rw-r--r--chrome/browser/translate/translate_manager_browsertest.cc8
2 files changed, 4 insertions, 9 deletions
diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc
index d6cd581..6c8f23b 100644
--- a/chrome/browser/tab_contents/render_view_context_menu.cc
+++ b/chrome/browser/tab_contents/render_view_context_menu.cc
@@ -897,10 +897,13 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) const {
source_tab_contents_->language_state().original_language();
std::string target_lang = g_browser_process->GetApplicationLocale();
target_lang = TranslateManager::GetLanguageCode(target_lang);
+ // Note that we intentionally enable the menu even if the original and
+ // target languages are identical. This is to give a way to user to
+ // translate a page that might contains text fragments in a different
+ // language.
return !!(params_.edit_flags & WebContextMenuData::CanTranslate) &&
source_tab_contents_->language_state().page_translatable() &&
!original_lang.empty() && // Did we receive the page language yet?
- original_lang != target_lang &&
// Only allow translating languages we explitly support and the
// unknown language (in which case the page language is detected on
// the server side).
diff --git a/chrome/browser/translate/translate_manager_browsertest.cc b/chrome/browser/translate/translate_manager_browsertest.cc
index 2deca55..48ec8da 100644
--- a/chrome/browser/translate/translate_manager_browsertest.cc
+++ b/chrome/browser/translate/translate_manager_browsertest.cc
@@ -1080,14 +1080,6 @@ TEST_F(TranslateManagerTest, ContextMenu) {
// No message expected since the translation should have been ignored.
EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
- // Test that the translate context menu is disabled when the page is in the
- // same language as the UI.
- SimulateNavigation(url, "Google", "en", true);
- menu.reset(TestRenderViewContextMenu::CreateContextMenu(contents()));
- menu->Init();
- EXPECT_TRUE(menu->IsItemPresent(IDC_CONTENT_CONTEXT_TRANSLATE));
- EXPECT_FALSE(menu->IsCommandIdEnabled(IDC_CONTENT_CONTEXT_TRANSLATE));
-
// Test that the translate context menu is enabled when the page is in an
// unknown language.
SimulateNavigation(url, "G00g1e", "und", true);