Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/language_combobox_model.h" | 5 #include "chrome/browser/language_combobox_model.h" |
| 6 | 6 |
| 7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "base/i18n/rtl.h" | 8 #include "base/i18n/rtl.h" |
| 9 #include "base/string_split.h" | 9 #include "base/string_split.h" |
| 10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 83 DCHECK(it != native_names_.end()); | 83 DCHECK(it != native_names_.end()); |
| 84 | 84 |
| 85 // If the name is the same in the native language and local language, | 85 // If the name is the same in the native language and local language, |
| 86 // don't show it twice. | 86 // don't show it twice. |
| 87 if (it->second.native_name == locale_names_[index]) | 87 if (it->second.native_name == locale_names_[index]) |
| 88 return it->second.native_name; | 88 return it->second.native_name; |
| 89 | 89 |
| 90 // We must add directionality formatting to both the native name and the | 90 // We must add directionality formatting to both the native name and the |
| 91 // locale name in order to avoid text rendering problems such as misplaced | 91 // locale name in order to avoid text rendering problems such as misplaced |
| 92 // parentheses or languages appearing in the wrong order. | 92 // parentheses or languages appearing in the wrong order. |
| 93 std::wstring locale_name_localized; | 93 std::wstring locale_name_localized; |
|
Avi (use Gerrit)
2010/11/23 16:07:08
This string is no longer needed. Delete.
| |
| 94 std::wstring locale_name; | 94 std::wstring locale_name = locale_names_[index]; |
| 95 if (base::i18n::AdjustStringForLocaleDirection(locale_names_[index], | 95 base::i18n::AdjustStringForLocaleDirection(&locale_name); |
| 96 &locale_name_localized)) | |
| 97 locale_name.assign(locale_name_localized); | |
| 98 else | |
| 99 locale_name.assign(locale_names_[index]); | |
| 100 | 96 |
| 101 std::wstring native_name_localized; | 97 std::wstring native_name = it->second.native_name; |
| 102 std::wstring native_name; | 98 base::i18n::AdjustStringForLocaleDirection(&native_name); |
| 103 if (base::i18n::AdjustStringForLocaleDirection(it->second.native_name, | |
| 104 &native_name_localized)) | |
| 105 native_name.assign(native_name_localized); | |
| 106 else | |
| 107 native_name.assign(it->second.native_name); | |
| 108 | 99 |
| 109 // We used to have a localizable template here, but none of translators | 100 // We used to have a localizable template here, but none of translators |
| 110 // changed the format. We also want to switch the order of locale_name | 101 // changed the format. We also want to switch the order of locale_name |
| 111 // and native_name without going back to translators. | 102 // and native_name without going back to translators. |
| 112 std::wstring formatted_item; | 103 std::wstring formatted_item; |
| 113 base::SStringPrintf(&formatted_item, L"%ls - %ls", locale_name.c_str(), | 104 base::SStringPrintf(&formatted_item, L"%ls - %ls", locale_name.c_str(), |
| 114 native_name.c_str()); | 105 native_name.c_str()); |
| 115 if (base::i18n::IsRTL()) | 106 if (base::i18n::IsRTL()) |
| 116 // Somehow combo box (even with LAYOUTRTL flag) doesn't get this | 107 // Somehow combo box (even with LAYOUTRTL flag) doesn't get this |
| 117 // right so we add RTL BDO (U+202E) to set the direction | 108 // right so we add RTL BDO (U+202E) to set the direction |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 177 if (!profile_) | 168 if (!profile_) |
| 178 local_state = g_browser_process->local_state(); | 169 local_state = g_browser_process->local_state(); |
| 179 else | 170 else |
| 180 local_state = profile_->GetPrefs(); | 171 local_state = profile_->GetPrefs(); |
| 181 | 172 |
| 182 DCHECK(local_state); | 173 DCHECK(local_state); |
| 183 const std::string& current_locale = local_state->GetString(prefs.c_str()); | 174 const std::string& current_locale = local_state->GetString(prefs.c_str()); |
| 184 | 175 |
| 185 return GetIndexFromLocale(current_locale); | 176 return GetIndexFromLocale(current_locale); |
| 186 } | 177 } |
| OLD | NEW |