| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/translate/core/browser/translate_prefs.h" | 5 #include "components/translate/core/browser/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/prefs/scoped_user_pref_update.h" | 10 #include "base/prefs/scoped_user_pref_update.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 std::set<std::string> seen; | 72 std::set<std::string> seen; |
| 73 | 73 |
| 74 for (std::vector<std::string>::const_iterator it = languages.begin(); | 74 for (std::vector<std::string>::const_iterator it = languages.begin(); |
| 75 it != languages.end(); ++it) { | 75 it != languages.end(); ++it) { |
| 76 const std::string& language = *it; | 76 const std::string& language = *it; |
| 77 if (seen.find(language) == seen.end()) { | 77 if (seen.find(language) == seen.end()) { |
| 78 expanded_languages->push_back(language); | 78 expanded_languages->push_back(language); |
| 79 seen.insert(language); | 79 seen.insert(language); |
| 80 } | 80 } |
| 81 | 81 |
| 82 std::vector<std::string> tokens; | 82 std::vector<std::string> tokens = base::SplitString( |
| 83 base::SplitString(language, '-', &tokens); | 83 language, "-", base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL); |
| 84 if (tokens.size() == 0) | 84 if (tokens.size() == 0) |
| 85 continue; | 85 continue; |
| 86 const std::string& main_part = tokens[0]; | 86 const std::string& main_part = tokens[0]; |
| 87 if (seen.find(main_part) == seen.end()) { | 87 if (seen.find(main_part) == seen.end()) { |
| 88 expanded_languages->push_back(main_part); | 88 expanded_languages->push_back(main_part); |
| 89 seen.insert(main_part); | 89 seen.insert(main_part); |
| 90 } | 90 } |
| 91 } | 91 } |
| 92 } | 92 } |
| 93 | 93 |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 void TranslatePrefs::GetLanguageList(std::vector<std::string>* languages) { | 312 void TranslatePrefs::GetLanguageList(std::vector<std::string>* languages) { |
| 313 DCHECK(languages); | 313 DCHECK(languages); |
| 314 DCHECK(languages->empty()); | 314 DCHECK(languages->empty()); |
| 315 | 315 |
| 316 #if defined(OS_CHROMEOS) | 316 #if defined(OS_CHROMEOS) |
| 317 const char* key = preferred_languages_pref_.c_str(); | 317 const char* key = preferred_languages_pref_.c_str(); |
| 318 #else | 318 #else |
| 319 const char* key = accept_languages_pref_.c_str(); | 319 const char* key = accept_languages_pref_.c_str(); |
| 320 #endif | 320 #endif |
| 321 | 321 |
| 322 std::string languages_str = prefs_->GetString(key); | 322 *languages = base::SplitString(prefs_->GetString(key), ",", |
| 323 base::SplitString(languages_str, ',', languages); | 323 base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL); |
| 324 } | 324 } |
| 325 | 325 |
| 326 void TranslatePrefs::UpdateLanguageList( | 326 void TranslatePrefs::UpdateLanguageList( |
| 327 const std::vector<std::string>& languages) { | 327 const std::vector<std::string>& languages) { |
| 328 #if defined(OS_CHROMEOS) | 328 #if defined(OS_CHROMEOS) |
| 329 std::string languages_str = base::JoinString(languages, ","); | 329 std::string languages_str = base::JoinString(languages, ","); |
| 330 prefs_->SetString(preferred_languages_pref_.c_str(), languages_str); | 330 prefs_->SetString(preferred_languages_pref_.c_str(), languages_str); |
| 331 #endif | 331 #endif |
| 332 | 332 |
| 333 // Save the same language list as accept languages preference as well, but we | 333 // Save the same language list as accept languages preference as well, but we |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 // should be translated instead of the blacklist. The blacklist is no longer | 442 // should be translated instead of the blacklist. The blacklist is no longer |
| 443 // used after launching the settings UI. | 443 // used after launching the settings UI. |
| 444 // After that, Set 'translate_languages_not_translate' to Accept languages to | 444 // After that, Set 'translate_languages_not_translate' to Accept languages to |
| 445 // enable settings for users. | 445 // enable settings for users. |
| 446 bool merged = user_prefs->HasPrefPath(kPrefTranslateBlockedLanguages); | 446 bool merged = user_prefs->HasPrefPath(kPrefTranslateBlockedLanguages); |
| 447 | 447 |
| 448 if (!merged) { | 448 if (!merged) { |
| 449 std::vector<std::string> blacklisted_languages; | 449 std::vector<std::string> blacklisted_languages; |
| 450 GetBlacklistedLanguages(user_prefs, &blacklisted_languages); | 450 GetBlacklistedLanguages(user_prefs, &blacklisted_languages); |
| 451 | 451 |
| 452 std::string accept_languages_str = | 452 std::vector<std::string> accept_languages = base::SplitString( |
| 453 user_prefs->GetString(accept_languages_pref); | 453 user_prefs->GetString(accept_languages_pref), ",", |
| 454 std::vector<std::string> accept_languages; | 454 base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL); |
| 455 base::SplitString(accept_languages_str, ',', &accept_languages); | |
| 456 | 455 |
| 457 std::vector<std::string> blocked_languages; | 456 std::vector<std::string> blocked_languages; |
| 458 CreateBlockedLanguages( | 457 CreateBlockedLanguages( |
| 459 &blocked_languages, blacklisted_languages, accept_languages); | 458 &blocked_languages, blacklisted_languages, accept_languages); |
| 460 | 459 |
| 461 // Create the new preference kPrefTranslateBlockedLanguages. | 460 // Create the new preference kPrefTranslateBlockedLanguages. |
| 462 { | 461 { |
| 463 base::ListValue blocked_languages_list; | 462 base::ListValue blocked_languages_list; |
| 464 for (std::vector<std::string>::const_iterator it = | 463 for (std::vector<std::string>::const_iterator it = |
| 465 blocked_languages.begin(); | 464 blocked_languages.begin(); |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 576 const base::ListValue* blacklist = prefs_->GetList(pref_id); | 575 const base::ListValue* blacklist = prefs_->GetList(pref_id); |
| 577 return (blacklist == NULL || blacklist->empty()); | 576 return (blacklist == NULL || blacklist->empty()); |
| 578 } | 577 } |
| 579 | 578 |
| 580 bool TranslatePrefs::IsDictionaryEmpty(const char* pref_id) const { | 579 bool TranslatePrefs::IsDictionaryEmpty(const char* pref_id) const { |
| 581 const base::DictionaryValue* dict = prefs_->GetDictionary(pref_id); | 580 const base::DictionaryValue* dict = prefs_->GetDictionary(pref_id); |
| 582 return (dict == NULL || dict->empty()); | 581 return (dict == NULL || dict->empty()); |
| 583 } | 582 } |
| 584 | 583 |
| 585 } // namespace translate | 584 } // namespace translate |
| OLD | NEW |