diff options
author | jcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-15 21:00:15 +0000 |
---|---|---|
committer | jcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-15 21:00:15 +0000 |
commit | 5e7ffe7a47223528d9158e26f14b1c6466e63b64 (patch) | |
tree | 732313dc440e60a0c6eb60e4321f802f469260a7 | |
parent | a196ea18299fa71547e380c1fa8f306f898bb4ac (diff) | |
download | chromium_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.cc | 5 | ||||
-rw-r--r-- | chrome/browser/translate/translate_manager_browsertest.cc | 8 |
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); |