Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6435)

Unified Diff: chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc

Issue 397723002: Extract l10n-related parts of NetworkScreenHandler to a helper file (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rename a few method arguments for consistency. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc
diff --git a/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc
index 3c31fccf733cf60ed4d0e8b06112999b837e375c..468666b8e54028fd70b02695647a065be01bfdb3 100644
--- a/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc
+++ b/chrome/browser/ui/webui/options/chromeos/cros_language_options_handler.cc
@@ -8,7 +8,6 @@
#include <iterator>
#include <map>
#include <set>
-#include <vector>
#include "base/bind.h"
#include "base/bind_helpers.h"
@@ -57,8 +56,7 @@ bool IsBlacklisted(const std::string& language_code) {
namespace chromeos {
namespace options {
-const char kVendorOtherLanguagesListDivider[] =
- "VENDOR_OTHER_LANGUAGES_LIST_DIVIDER";
+const char kMostRelevantLanguagesDivider[] = "MOST_RELEVANT_LANGUAGES_DIVIDER";
CrosLanguageOptionsHandler::CrosLanguageOptionsHandler()
: composition_extension_appended_(false),
@@ -195,6 +193,7 @@ base::ListValue* CrosLanguageOptionsHandler::GetInputMethodList(
base::ListValue* CrosLanguageOptionsHandler::GetLanguageListInternal(
const input_method::InputMethodDescriptors& descriptors,
const std::vector<std::string>& base_language_codes,
+ const std::vector<std::string>& most_relevant_language_codes,
const bool insert_divider) {
const std::string app_locale = g_browser_process->GetApplicationLocale();
@@ -208,16 +207,10 @@ base::ListValue* CrosLanguageOptionsHandler::GetLanguageListInternal(
language_codes.insert(languages[i]);
}
- const StartupCustomizationDocument* startup_manifest =
- StartupCustomizationDocument::GetInstance();
-
- const std::vector<std::string>& configured_locales =
- startup_manifest->configured_locales();
-
// Languages sort order.
std::map<std::string, int /* index */> language_index;
- for (size_t i = 0; i < configured_locales.size(); ++i) {
- language_index[configured_locales[i]] = i;
+ for (size_t i = 0; i < most_relevant_language_codes.size(); ++i) {
+ language_index[most_relevant_language_codes[i]] = i;
}
// Map of display name -> {language code, native_display_name}.
@@ -228,14 +221,14 @@ base::ListValue* CrosLanguageOptionsHandler::GetLanguageListInternal(
typedef std::map<base::string16, LanguagePair> LanguageMap;
LanguageMap language_map;
- // The auxiliary vector mentioned above. (except vendor locales)
+ // The auxiliary vector mentioned above. (except the most relevant locales)
std::vector<base::string16> display_names;
- // Separate vector of vendor locales.
- std::vector<base::string16> configured_locales_display_names(
- configured_locales.size());
+ // Separate vector of the most relevant locales.
+ std::vector<base::string16> most_relevant_locales_display_names(
+ most_relevant_language_codes.size());
- size_t configured_locales_count = 0;
+ size_t most_relevant_locales_count = 0;
// Build the list of display names, and build the language map.
@@ -281,8 +274,8 @@ base::ListValue* CrosLanguageOptionsHandler::GetLanguageListInternal(
language_map[display_name] =
std::make_pair(language_id, native_display_name);
- configured_locales_display_names[language_idx] = display_name;
- ++configured_locales_count;
+ most_relevant_locales_display_names[language_idx] = display_name;
+ ++most_relevant_locales_count;
}
// Translate language codes, generated from input methods.
@@ -308,16 +301,16 @@ base::ListValue* CrosLanguageOptionsHandler::GetLanguageListInternal(
language_index.find(*iter);
if (index_pos != language_index.end()) {
base::string16& stored_display_name =
- configured_locales_display_names[index_pos->second];
+ most_relevant_locales_display_names[index_pos->second];
if (stored_display_name.empty()) {
stored_display_name = display_name;
- ++configured_locales_count;
+ ++most_relevant_locales_count;
}
} else {
display_names.push_back(display_name);
}
}
- DCHECK_EQ(display_names.size() + configured_locales_count,
+ DCHECK_EQ(display_names.size() + most_relevant_locales_count,
language_map.size());
// Build the list of display names, and build the language map.
@@ -343,8 +336,8 @@ base::ListValue* CrosLanguageOptionsHandler::GetLanguageListInternal(
const std::map<std::string, int>::const_iterator index_pos =
language_index.find(base_language_codes[i]);
if (index_pos != language_index.end()) {
- configured_locales_display_names[index_pos->second] = display_name;
- ++configured_locales_count;
+ most_relevant_locales_display_names[index_pos->second] = display_name;
+ ++most_relevant_locales_count;
} else {
display_names.push_back(display_name);
}
@@ -352,19 +345,18 @@ base::ListValue* CrosLanguageOptionsHandler::GetLanguageListInternal(
// Sort display names using locale specific sorter.
l10n_util::SortStrings16(app_locale, &display_names);
- // Concatenate configured_locales_display_names and display_names.
+ // Concatenate most_relevant_locales_display_names and display_names.
// Insert special divider in between.
std::vector<base::string16> out_display_names;
- for (size_t i = 0; i < configured_locales_display_names.size(); ++i) {
- if (configured_locales_display_names[i].size() == 0)
+ for (size_t i = 0; i < most_relevant_locales_display_names.size(); ++i) {
+ if (most_relevant_locales_display_names[i].size() == 0)
continue;
- out_display_names.push_back(configured_locales_display_names[i]);
+ out_display_names.push_back(most_relevant_locales_display_names[i]);
}
base::string16 divider16;
if (insert_divider) {
- divider16 = base::ASCIIToUTF16(
- insert_divider ? "" : kVendorOtherLanguagesListDivider);
+ divider16 = base::ASCIIToUTF16(kMostRelevantLanguagesDivider);
out_display_names.push_back(divider16);
}
@@ -380,7 +372,7 @@ base::ListValue* CrosLanguageOptionsHandler::GetLanguageListInternal(
if (insert_divider && display_name == divider16) {
// Insert divider.
base::DictionaryValue* dictionary = new base::DictionaryValue();
- dictionary->SetString("code", kVendorOtherLanguagesListDivider);
+ dictionary->SetString("code", kMostRelevantLanguagesDivider);
language_list->Append(dictionary);
continue;
}
@@ -409,15 +401,25 @@ base::ListValue* CrosLanguageOptionsHandler::GetAcceptLanguageList(
const std::string app_locale = g_browser_process->GetApplicationLocale();
std::vector<std::string> accept_language_codes;
l10n_util::GetAcceptLanguagesForLocale(app_locale, &accept_language_codes);
- return GetLanguageListInternal(descriptors, accept_language_codes, false);
+ return GetLanguageListInternal(
+ descriptors,
+ accept_language_codes,
+ StartupCustomizationDocument::GetInstance()->configured_locales(),
+ false);
}
// static
base::ListValue* CrosLanguageOptionsHandler::GetUILanguageList(
- const input_method::InputMethodDescriptors& descriptors) {
+ const input_method::InputMethodDescriptors& descriptors,
+ const std::vector<std::string>* most_relevant_language_codes) {
// Collect the language codes from the available locales.
return GetLanguageListInternal(
- descriptors, l10n_util::GetAvailableLocales(), true);
+ descriptors,
+ l10n_util::GetAvailableLocales(),
+ most_relevant_language_codes
+ ? *most_relevant_language_codes
+ : StartupCustomizationDocument::GetInstance()->configured_locales(),
+ true);
}
base::ListValue*

Powered by Google App Engine
This is Rietveld 408576698