OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/translate/translate_prefs.h" | 5 #include "chrome/browser/translate/translate_prefs.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/strings/string_split.h" | 10 #include "base/strings/string_split.h" |
11 #include "base/strings/string_util.h" | 11 #include "base/strings/string_util.h" |
12 #include "chrome/browser/browser_process.h" | 12 #include "chrome/browser/browser_process.h" |
13 #include "chrome/browser/prefs/scoped_user_pref_update.h" | 13 #include "chrome/browser/prefs/scoped_user_pref_update.h" |
14 #include "chrome/browser/profiles/profile.h" | 14 #include "chrome/browser/profiles/profile.h" |
15 #include "chrome/browser/translate/translate_accept_languages.h" | 15 #include "chrome/browser/translate/translate_accept_languages.h" |
16 #include "chrome/browser/translate/translate_manager.h" | 16 #include "chrome/browser/translate/translate_manager.h" |
17 #include "chrome/common/pref_names.h" | 17 #include "chrome/common/pref_names.h" |
18 #include "chrome/common/translate/translate_util.h" | 18 #include "components/translate/common/translate_util.h" |
19 #include "components/user_prefs/pref_registry_syncable.h" | 19 #include "components/user_prefs/pref_registry_syncable.h" |
20 | 20 |
21 const char TranslatePrefs::kPrefTranslateLanguageBlacklist[] = | 21 const char TranslatePrefs::kPrefTranslateLanguageBlacklist[] = |
22 "translate_language_blacklist"; | 22 "translate_language_blacklist"; |
23 const char TranslatePrefs::kPrefTranslateSiteBlacklist[] = | 23 const char TranslatePrefs::kPrefTranslateSiteBlacklist[] = |
24 "translate_site_blacklist"; | 24 "translate_site_blacklist"; |
25 const char TranslatePrefs::kPrefTranslateWhitelists[] = | 25 const char TranslatePrefs::kPrefTranslateWhitelists[] = |
26 "translate_whitelists"; | 26 "translate_whitelists"; |
27 const char TranslatePrefs::kPrefTranslateDeniedCount[] = | 27 const char TranslatePrefs::kPrefTranslateDeniedCount[] = |
28 "translate_denied_count"; | 28 "translate_denied_count"; |
(...skipping 27 matching lines...) Expand all Loading... |
56 base::SplitString(lang, '-', &tokens); | 56 base::SplitString(lang, '-', &tokens); |
57 if (tokens.size() < 1) | 57 if (tokens.size() < 1) |
58 return lang; | 58 return lang; |
59 | 59 |
60 std::string main_part = tokens[0]; | 60 std::string main_part = tokens[0]; |
61 | 61 |
62 // Translate doesn't support General Chinese and the sub code is necessary. | 62 // Translate doesn't support General Chinese and the sub code is necessary. |
63 if (main_part == "zh") | 63 if (main_part == "zh") |
64 return lang; | 64 return lang; |
65 | 65 |
66 TranslateUtil::ToTranslateLanguageSynonym(&main_part); | 66 translate::ToTranslateLanguageSynonym(&main_part); |
67 return main_part; | 67 return main_part; |
68 } | 68 } |
69 | 69 |
70 // Expands language codes to make these more suitable for Accept-Language. | 70 // Expands language codes to make these more suitable for Accept-Language. |
71 // Example: ['en-US', 'ja', 'en-CA'] => ['en-US', 'en', 'ja', 'en-CA']. | 71 // Example: ['en-US', 'ja', 'en-CA'] => ['en-US', 'en', 'ja', 'en-CA']. |
72 // 'en' won't appear twice as this function eliminates duplicates. | 72 // 'en' won't appear twice as this function eliminates duplicates. |
73 void ExpandLanguageCodes(const std::vector<std::string>& languages, | 73 void ExpandLanguageCodes(const std::vector<std::string>& languages, |
74 std::vector<std::string>* expanded_languages) { | 74 std::vector<std::string>* expanded_languages) { |
75 DCHECK(expanded_languages); | 75 DCHECK(expanded_languages); |
76 DCHECK(expanded_languages->empty()); | 76 DCHECK(expanded_languages->empty()); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 return IsValueBlacklisted(kPrefTranslateBlockedLanguages, | 109 return IsValueBlacklisted(kPrefTranslateBlockedLanguages, |
110 original_language); | 110 original_language); |
111 } | 111 } |
112 | 112 |
113 void TranslatePrefs::BlockLanguage( | 113 void TranslatePrefs::BlockLanguage( |
114 const std::string& original_language) { | 114 const std::string& original_language) { |
115 BlacklistValue(kPrefTranslateBlockedLanguages, original_language); | 115 BlacklistValue(kPrefTranslateBlockedLanguages, original_language); |
116 | 116 |
117 // Add the language to the language list at chrome://settings/languages. | 117 // Add the language to the language list at chrome://settings/languages. |
118 std::string language = original_language; | 118 std::string language = original_language; |
119 TranslateUtil::ToChromeLanguageSynonym(&language); | 119 translate::ToChromeLanguageSynonym(&language); |
120 | 120 |
121 std::vector<std::string> languages; | 121 std::vector<std::string> languages; |
122 GetLanguageList(&languages); | 122 GetLanguageList(&languages); |
123 | 123 |
124 if (std::find(languages.begin(), languages.end(), language) == | 124 if (std::find(languages.begin(), languages.end(), language) == |
125 languages.end()) { | 125 languages.end()) { |
126 languages.push_back(language); | 126 languages.push_back(language); |
127 UpdateLanguageList(languages); | 127 UpdateLanguageList(languages); |
128 } | 128 } |
129 } | 129 } |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 ListValue* list = update.Get(); | 414 ListValue* list = update.Get(); |
415 DCHECK(list != NULL); | 415 DCHECK(list != NULL); |
416 list->Swap(&blocked_languages_list); | 416 list->Swap(&blocked_languages_list); |
417 } | 417 } |
418 | 418 |
419 // Update kAcceptLanguages | 419 // Update kAcceptLanguages |
420 for (std::vector<std::string>::const_iterator it = | 420 for (std::vector<std::string>::const_iterator it = |
421 blocked_languages.begin(); | 421 blocked_languages.begin(); |
422 it != blocked_languages.end(); ++it) { | 422 it != blocked_languages.end(); ++it) { |
423 std::string lang = *it; | 423 std::string lang = *it; |
424 TranslateUtil::ToChromeLanguageSynonym(&lang); | 424 translate::ToChromeLanguageSynonym(&lang); |
425 bool not_found = | 425 bool not_found = |
426 std::find(accept_languages.begin(), accept_languages.end(), lang) == | 426 std::find(accept_languages.begin(), accept_languages.end(), lang) == |
427 accept_languages.end(); | 427 accept_languages.end(); |
428 if (not_found) | 428 if (not_found) |
429 accept_languages.push_back(lang); | 429 accept_languages.push_back(lang); |
430 } | 430 } |
431 | 431 |
432 std::string new_accept_languages_str = JoinString(accept_languages, ","); | 432 std::string new_accept_languages_str = JoinString(accept_languages, ","); |
433 user_prefs->SetString(prefs::kAcceptLanguages, new_accept_languages_str); | 433 user_prefs->SetString(prefs::kAcceptLanguages, new_accept_languages_str); |
434 } | 434 } |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 | 524 |
525 bool TranslatePrefs::IsListEmpty(const char* pref_id) const { | 525 bool TranslatePrefs::IsListEmpty(const char* pref_id) const { |
526 const ListValue* blacklist = prefs_->GetList(pref_id); | 526 const ListValue* blacklist = prefs_->GetList(pref_id); |
527 return (blacklist == NULL || blacklist->empty()); | 527 return (blacklist == NULL || blacklist->empty()); |
528 } | 528 } |
529 | 529 |
530 bool TranslatePrefs::IsDictionaryEmpty(const char* pref_id) const { | 530 bool TranslatePrefs::IsDictionaryEmpty(const char* pref_id) const { |
531 const DictionaryValue* dict = prefs_->GetDictionary(pref_id); | 531 const DictionaryValue* dict = prefs_->GetDictionary(pref_id); |
532 return (dict == NULL || dict->empty()); | 532 return (dict == NULL || dict->empty()); |
533 } | 533 } |
OLD | NEW |