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

Unified Diff: chrome/browser/chromeos/status/language_menu_button.cc

Issue 3185020: Remove redundant "keyboard layout" suffix and fix redundant language display. (Closed)
Patch Set: Merge trunk. Created 10 years, 4 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/chromeos/status/language_menu_button.cc
diff --git a/chrome/browser/chromeos/status/language_menu_button.cc b/chrome/browser/chromeos/status/language_menu_button.cc
index 6e89c3d162b9edefc0868e35083a3e54a961da9f..0d9580e72d36df6ccfb425071cf1bd593000cfce 100644
--- a/chrome/browser/chromeos/status/language_menu_button.cc
+++ b/chrome/browser/chromeos/status/language_menu_button.cc
@@ -321,13 +321,7 @@ string16 LanguageMenuButton::GetLabelAt(int index) const {
std::wstring name;
if (IndexIsInInputMethodList(index)) {
- const std::string language_code =
- input_method::GetLanguageCodeFromDescriptor(
- input_method_descriptors_->at(index));
- const bool need_method_name =
- (ambiguous_language_code_set_.count(language_code) > 0);
- name = GetTextForMenu(input_method_descriptors_->at(index),
- need_method_name);
+ name = GetTextForMenu(input_method_descriptors_->at(index));
} else if (GetPropertyIndex(index, &index)) {
const ImePropertyList& property_list
= CrosLibrary::Get()->GetInputMethodLibrary()->current_ime_properties();
@@ -493,8 +487,7 @@ void LanguageMenuButton::UpdateIndicator(
void LanguageMenuButton::UpdateIndicatorFromInputMethod(
const InputMethodDescriptor& input_method) {
const std::wstring name = GetTextForIndicator(input_method);
- const std::wstring tooltip =
- GetTextForMenu(input_method, true /* add_method_name */);
+ const std::wstring tooltip = GetTextForMenu(input_method);
UpdateIndicator(name, tooltip);
}
@@ -504,7 +497,6 @@ void LanguageMenuButton::RebuildModel() {
// Indicates if separator's needed before each section.
bool need_separator = false;
- ambiguous_language_code_set_.clear();
if (!input_method_descriptors_->empty()) {
// We "abuse" the command_id and group_id arguments of AddRadioItem method.
// A COMMAND_ID_XXX enum value is passed as command_id, and array index of
@@ -513,8 +505,6 @@ void LanguageMenuButton::RebuildModel() {
model_->AddRadioItem(COMMAND_ID_INPUT_METHODS, dummy_label, i);
}
- GetAmbiguousLanguageCodeSet(*input_method_descriptors_,
- &ambiguous_language_code_set_);
need_separator = true;
}
@@ -637,18 +627,27 @@ std::wstring LanguageMenuButton::GetTextForIndicator(
}
std::wstring LanguageMenuButton::GetTextForMenu(
- const InputMethodDescriptor& input_method, bool add_method_name) {
+ const InputMethodDescriptor& input_method) {
+ // We don't show language here. Name of keyboard layout or input method
+ // usually imply (or explicitly include) its language.
+
+ // Special case for Dutch, French and German: these languages have multiple
+ // keyboard layouts and share the same laout of keyboard (Belgian). We need to
+ // show explicitly the language for the layout.
+ // For Arabic, Hebrew and Hindi: they share "Standard Input Method".
const std::string language_code
= input_method::GetLanguageCodeFromDescriptor(input_method);
-
- // For the drop-down menu and tooltip, we'll show language names like
- // "Chinese (Simplified)" and "Japanese", instead of input method names
- // like "Pinyin" and "Mozc".
- std::wstring text = GetLanguageName(language_code);
- if (add_method_name) {
- text += L" - ";
- text += input_method::GetString(input_method.display_name);
+ std::wstring text;
+ if (language_code == "ar" ||
+ language_code == "he" ||
+ language_code == "hi" ||
+ language_code == "nl" ||
+ language_code == "fr" ||
+ language_code == "de") {
+ text = GetLanguageName(language_code) + L" - ";
}
+ text += input_method::GetString(input_method.display_name);
+
DCHECK(!text.empty());
return text;
}
@@ -658,31 +657,6 @@ void LanguageMenuButton::RegisterPrefs(PrefService* local_state) {
"");
}
-void LanguageMenuButton::GetAmbiguousLanguageCodeSet(
- const InputMethodDescriptors& input_method_descriptors,
- std::set<std::string>* ambiguous_language_code_set) {
- DCHECK(ambiguous_language_code_set);
- ambiguous_language_code_set->clear();
-
- std::set<std::string> languages_seen;
- for (size_t i = 0; i < input_method_descriptors.size(); ++i) {
- const std::string language_code
- = input_method::GetLanguageCodeFromDescriptor(
- input_method_descriptors.at(i));
- // If there is more than one input method for this language, then we need
- // to display the method name.
- if (languages_seen.count(language_code) > 0 ||
- // Special-case Japanese as showing the language name alone is
- // confusing when Japanese keyboard is enabled but Japanese
- // input methods are not.
- language_code == "ja") {
- ambiguous_language_code_set->insert(language_code);
- } else {
- languages_seen.insert(language_code);
- }
- }
-}
-
void LanguageMenuButton::Observe(NotificationType type,
const NotificationSource& source,
const NotificationDetails& details) {
« no previous file with comments | « chrome/browser/chromeos/status/language_menu_button.h ('k') | chrome/browser/chromeos/status/language_menu_button_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698