summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/status
diff options
context:
space:
mode:
authorsatorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-09 07:16:20 +0000
committersatorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-09 07:16:20 +0000
commitf3bfdbcabfa6a178f1128b08cdfb905bb9785830 (patch)
tree503a960be725124a5ce16c0bcfdf84a6f1be6342 /chrome/browser/chromeos/status
parent63331e5c1d82de360133712ef3eafdadb2fb3710 (diff)
downloadchromium_src-f3bfdbcabfa6a178f1128b08cdfb905bb9785830.zip
chromium_src-f3bfdbcabfa6a178f1128b08cdfb905bb9785830.tar.gz
chromium_src-f3bfdbcabfa6a178f1128b08cdfb905bb9785830.tar.bz2
Show language names rather than input method names.
For instance, we'll show "Japanese" instead of "Anthy". Depends on http://codereview.chromium.org/652106 TEST=manually BUG=none Review URL: http://codereview.chromium.org/652222 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41012 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/status')
-rw-r--r--chrome/browser/chromeos/status/language_menu_button.cc30
1 files changed, 29 insertions, 1 deletions
diff --git a/chrome/browser/chromeos/status/language_menu_button.cc b/chrome/browser/chromeos/status/language_menu_button.cc
index be16920..15b0e91 100644
--- a/chrome/browser/chromeos/status/language_menu_button.cc
+++ b/chrome/browser/chromeos/status/language_menu_button.cc
@@ -9,6 +9,7 @@
#include "app/l10n_util.h"
#include "app/resource_bundle.h"
#include "base/time.h"
+#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/status/status_area_host.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
@@ -66,12 +67,39 @@ const int kRadioGroupNone = -1;
const size_t kMaxLanguageNameLen = 7;
const wchar_t kSpacer[] = L"MMMMMMM";
+// Returns the language name for the given |language|. Instead of input
+// method names like "Pinyin" and "Anthy", we'll show language names like
+// "Chinese (Simplified)" and "Japanese".
+std::string GetLanguageName(const chromeos::InputLanguage& language) {
+ std::string language_code = language.language_code;
+ if (language.id == "pinyin") {
+ // The pinyin input method returns "zh_CN" as language_code, but
+ // l10n_util expects "zh-CN".
+ language_code = "zh-CN";
+ } else if (language.id == "chewing") {
+ // Likewise, the chewing input method returns "zh" as language_code,
+ // which is ambiguous. We use zh-TW instead.
+ language_code = "zh-TW";
+ } else if (language_code == "t") {
+ // "t" is used by input methods that do not associate with a
+ // particular language. Returns the display name as-is.
+ return language.display_name;
+ }
+ const string16 language_name = l10n_util::GetDisplayNameForLocale(
+ language_code,
+ g_browser_process->GetApplicationLocale(),
+ true);
+ // TODO(satorux): We should add input method names if multiple input
+ // methods are available for one input language.
+ return UTF16ToUTF8(language_name);
+}
+
// Converts chromeos::InputLanguage object into human readable string. Returns
// a string for the drop-down menu if |for_menu| is true. Otherwise, returns a
// string for the status area.
std::string FormatInputLanguage(
const chromeos::InputLanguage& language, bool for_menu) {
- std::string formatted = language.display_name;
+ std::string formatted = GetLanguageName(language);
if (formatted.empty()) {
formatted = language.id;
}