summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-04 22:10:26 +0000
committerrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-04 22:10:26 +0000
commitdedbd66b51a3dc42ec15d4373ee64771e6eb844f (patch)
tree402af1a65b89362b321bea977596e0d0a5858d17 /ui
parent9897e0960081e2e5fb87e6c57188c92278ffa757 (diff)
downloadchromium_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.mm7
-rw-r--r--ui/base/l10n/l10n_util_mac_unittest.mm3
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));