diff options
author | hajimehoshi <hajimehoshi@chromium.org> | 2014-11-12 20:05:53 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-13 04:06:16 +0000 |
commit | 098153f8613fa71e15397537baa0a1310d82cd07 (patch) | |
tree | 5c522dde7dd5d17c19b8f712d6dc879dd62c1dee /components/translate/core/browser/translate_prefs.cc | |
parent | 1bc033c4375e34fa4ccfc4913e2a9582442f2446 (diff) | |
download | chromium_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/translate_prefs.cc')
-rw-r--r-- | components/translate/core/browser/translate_prefs.cc | 25 |
1 files changed, 4 insertions, 21 deletions
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) { |