diff options
author | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-04 22:10:26 +0000 |
---|---|---|
committer | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-04 22:10:26 +0000 |
commit | dedbd66b51a3dc42ec15d4373ee64771e6eb844f (patch) | |
tree | 402af1a65b89362b321bea977596e0d0a5858d17 /ui | |
parent | 9897e0960081e2e5fb87e6c57188c92278ffa757 (diff) | |
download | chromium_src-dedbd66b51a3dc42ec15d4373ee64771e6eb844f.zip chromium_src-dedbd66b51a3dc42ec15d4373ee64771e6eb844f.tar.gz chromium_src-dedbd66b51a3dc42ec15d4373ee64771e6eb844f.tar.bz2 |
Menu item titles include Windows-style accelerator marker.
Macintosh port remove it in runtime, But current implemented logic
is not sufficient for non-English locales.
BUG=chromium:70765
TEST=add new tests and pass it(app_unittests)
Review URL: http://codereview.chromium.org/6409039
Patch from Takashi Toyoshima <toyoshim@google.com>.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73853 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r-- | ui/base/l10n/l10n_util_mac.mm | 7 | ||||
-rw-r--r-- | ui/base/l10n/l10n_util_mac_unittest.mm | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/ui/base/l10n/l10n_util_mac.mm b/ui/base/l10n/l10n_util_mac.mm index 528c486..cab5ab9 100644 --- a/ui/base/l10n/l10n_util_mac.mm +++ b/ui/base/l10n/l10n_util_mac.mm @@ -70,7 +70,12 @@ NSString* FixUpWindowsStyleLabel(const string16& label) { ret.reserve(label_len); for (size_t i = 0; i < label_len; ++i) { char16 c = label[i]; - if (c == '&') { + if (c == '(' && i + 3 < label_len && label[i + 1] == '&' + && label[i + 3] == ')') { + // Strip '(&?)' patterns which means Windows-style accelerator in some + // non-English locales such as Japanese. + i += 3; + } else if (c == '&') { if (i + 1 < label_len && label[i + 1] == '&') { ret.push_back(c); ++i; diff --git a/ui/base/l10n/l10n_util_mac_unittest.mm b/ui/base/l10n/l10n_util_mac_unittest.mm index 8084027..0c899bf 100644 --- a/ui/base/l10n/l10n_util_mac_unittest.mm +++ b/ui/base/l10n/l10n_util_mac_unittest.mm @@ -32,6 +32,9 @@ TEST_F(L10nUtilMacTest, FixUpWindowsStyleLabel) { { @"foo..bar", @"foo..bar" }, { @"foo...bar", @"foo\u2026bar" }, { @"foo...bar...", @"foo\u2026bar\u2026" }, + { @"foo(&b)", @"foo" }, + { @"foo(&b)...", @"foo\u2026" }, + { @"(&b)foo", @"foo" }, }; for (size_t idx = 0; idx < ARRAYSIZE_UNSAFE(data); ++idx) { string16 input16(base::SysNSStringToUTF16(data[idx].input)); |