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::TRIM_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::TRIM_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::TRIM_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 |