summaryrefslogtreecommitdiffstats
path: root/components/translate/core/browser
diff options
context:
space:
mode:
authorhajimehoshi <hajimehoshi@chromium.org>2014-11-12 20:05:53 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-13 04:06:16 +0000
commit098153f8613fa71e15397537baa0a1310d82cd07 (patch)
tree5c522dde7dd5d17c19b8f712d6dc879dd62c1dee /components/translate/core/browser
parent1bc033c4375e34fa4ccfc4913e2a9582442f2446 (diff)
downloadchromium_src-098153f8613fa71e15397537baa0a1310d82cd07.zip
chromium_src-098153f8613fa71e15397537baa0a1310d82cd07.tar.gz
chromium_src-098153f8613fa71e15397537baa0a1310d82cd07.tar.bz2
Convert Chinese lang codes with a region code to a compatible lang code
Convert zh-HK, zh-MO, zh-SG to their compatible language codes such as zh-CN and zh-TW. This will help to show Translate UI on websites in the Chinese langs with the region codes. BUG=409606 TEST=components_unittests --gtest_filter=Language*:Translate*, unit_tests --gtest_filter=Translate*, browser_tests --gtest_filter=ChromeRenderViewTest.LanguageCommonMistakesAreCorrected Review URL: https://codereview.chromium.org/715593002 Cr-Commit-Position: refs/heads/master@{#303981}
Diffstat (limited to 'components/translate/core/browser')
-rw-r--r--components/translate/core/browser/translate_manager.cc7
-rw-r--r--components/translate/core/browser/translate_prefs.cc25
-rw-r--r--components/translate/core/browser/translate_prefs.h6
3 files changed, 8 insertions, 30 deletions
diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc
index 6fa1aa4..065e102 100644
--- a/components/translate/core/browser/translate_manager.cc
+++ b/components/translate/core/browser/translate_manager.cc
@@ -28,6 +28,7 @@
#include "components/translate/core/common/translate_constants.h"
#include "components/translate/core/common/translate_pref_names.h"
#include "components/translate/core/common/translate_switches.h"
+#include "components/translate/core/common/translate_util.h"
#include "net/base/url_util.h"
#include "net/http/http_status_code.h"
@@ -350,9 +351,9 @@ void TranslateManager::OnTranslateScriptFetchComplete(
// static
std::string TranslateManager::GetTargetLanguage(
const std::vector<std::string>& accept_languages_list) {
- std::string ui_lang = TranslatePrefs::ConvertLangCodeForTranslation(
- TranslateDownloadManager::GetLanguageCode(
- TranslateDownloadManager::GetInstance()->application_locale()));
+ std::string ui_lang = TranslateDownloadManager::GetLanguageCode(
+ TranslateDownloadManager::GetInstance()->application_locale());
+ translate::ToTranslateLanguageSynonym(&ui_lang);
if (TranslateDownloadManager::IsSupportedLanguage(ui_lang))
return ui_lang;
diff --git a/components/translate/core/browser/translate_prefs.cc b/components/translate/core/browser/translate_prefs.cc
index 4f9c2a7..a7cd5c1 100644
--- a/components/translate/core/browser/translate_prefs.cc
+++ b/components/translate/core/browser/translate_prefs.cc
@@ -492,38 +492,21 @@ void TranslatePrefs::CreateBlockedLanguages(
for (std::vector<std::string>::const_iterator it = accept_languages.begin();
it != accept_languages.end(); ++it) {
- std::string converted_lang = ConvertLangCodeForTranslation(*it);
+ std::string lang = *it;
+ translate::ToTranslateLanguageSynonym(&lang);
// Regarding http://crbug.com/36182, even though English exists in Accept
// language list, English could be translated on non-English locale.
- if (converted_lang == "en" && !is_ui_english)
+ if (lang == "en" && !is_ui_english)
continue;
- result.insert(converted_lang);
+ result.insert(lang);
}
blocked_languages->insert(
blocked_languages->begin(), result.begin(), result.end());
}
-// static
-std::string TranslatePrefs::ConvertLangCodeForTranslation(
- const std::string& lang) {
- std::vector<std::string> tokens;
- base::SplitString(lang, '-', &tokens);
- if (tokens.size() < 1)
- return lang;
-
- std::string main_part = tokens[0];
-
- // Translate doesn't support General Chinese and the sub code is necessary.
- if (main_part == "zh")
- return lang;
-
- translate::ToTranslateLanguageSynonym(&main_part);
- return main_part;
-}
-
bool TranslatePrefs::IsValueInList(const base::ListValue* list,
const std::string& in_value) const {
for (size_t i = 0; i < list->GetSize(); ++i) {
diff --git a/components/translate/core/browser/translate_prefs.h b/components/translate/core/browser/translate_prefs.h
index c1b89c5..8625ee3 100644
--- a/components/translate/core/browser/translate_prefs.h
+++ b/components/translate/core/browser/translate_prefs.h
@@ -115,12 +115,6 @@ class TranslatePrefs {
static void MigrateUserPrefs(PrefService* user_prefs,
const char* accept_languages_pref);
- // Converts the language code for Translate. This removes the sub code (like
- // -US) except for Chinese, and converts the synonyms.
- // The same logic exists at language_options.js, and please keep consistency
- // with the JavaScript file.
- static std::string ConvertLangCodeForTranslation(const std::string& lang);
-
private:
friend class TranslatePrefsTest;
FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, CreateBlockedLanguages);