summaryrefslogtreecommitdiffstats
path: root/app/l10n_util_mac.mm
diff options
context:
space:
mode:
Diffstat (limited to 'app/l10n_util_mac.mm')
-rw-r--r--app/l10n_util_mac.mm106
1 files changed, 106 insertions, 0 deletions
diff --git a/app/l10n_util_mac.mm b/app/l10n_util_mac.mm
new file mode 100644
index 0000000..a664eb3
--- /dev/null
+++ b/app/l10n_util_mac.mm
@@ -0,0 +1,106 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import <Foundation/Foundation.h>
+#include "app/l10n_util_mac.h"
+#include "base/sys_string_conversions.h"
+
+namespace l10n_util {
+
+// Remove the Windows-style accelerator marker and change "..." into an
+// ellipsis. Returns the result in an autoreleased NSString.
+NSString* FixUpWindowsStyleLabel(const string16& label) {
+ const char16 kEllipsisUTF16 = 0x2026;
+ string16 ret;
+ size_t label_len = label.length();
+ ret.reserve(label_len);
+ for (size_t i = 0; i < label_len; ++i) {
+ char16 c = label[i];
+ if (c == '&') {
+ if (i + 1 < label_len && label[i + 1] == '&') {
+ ret.push_back(c);
+ ++i;
+ }
+ } else if (c == '.' && i + 2 < label_len && label[i + 1] == '.'
+ && label[i + 2] == '.') {
+ ret.push_back(kEllipsisUTF16);
+ i += 2;
+ } else {
+ ret.push_back(c);
+ }
+ }
+
+ return base::SysUTF16ToNSString(ret);
+}
+
+NSString* GetNSString(int message_id) {
+ return base::SysUTF16ToNSString(l10n_util::GetStringUTF16(message_id));
+}
+
+NSString* GetNSStringF(int message_id,
+ const string16& a) {
+ return base::SysUTF16ToNSString(l10n_util::GetStringFUTF16(message_id,
+ a));
+}
+
+NSString* GetNSStringF(int message_id,
+ const string16& a,
+ const string16& b) {
+ return base::SysUTF16ToNSString(l10n_util::GetStringFUTF16(message_id,
+ a, b));
+}
+
+NSString* GetNSStringF(int message_id,
+ const string16& a,
+ const string16& b,
+ const string16& c) {
+ return base::SysUTF16ToNSString(l10n_util::GetStringFUTF16(message_id,
+ a, b, c));
+}
+
+NSString* GetNSStringF(int message_id,
+ const string16& a,
+ const string16& b,
+ const string16& c,
+ const string16& d) {
+ return base::SysUTF16ToNSString(l10n_util::GetStringFUTF16(message_id,
+ a, b, c, d));
+}
+
+NSString* GetNSStringWithFixup(int message_id) {
+ return FixUpWindowsStyleLabel(l10n_util::GetStringUTF16(message_id));
+}
+
+NSString* GetNSStringFWithFixup(int message_id,
+ const string16& a) {
+ return FixUpWindowsStyleLabel(l10n_util::GetStringFUTF16(message_id,
+ a));
+}
+
+NSString* GetNSStringFWithFixup(int message_id,
+ const string16& a,
+ const string16& b) {
+ return FixUpWindowsStyleLabel(l10n_util::GetStringFUTF16(message_id,
+ a, b));
+}
+
+NSString* GetNSStringFWithFixup(int message_id,
+ const string16& a,
+ const string16& b,
+ const string16& c) {
+ return FixUpWindowsStyleLabel(l10n_util::GetStringFUTF16(message_id,
+ a, b, c));
+}
+
+NSString* GetNSStringFWithFixup(int message_id,
+ const string16& a,
+ const string16& b,
+ const string16& c,
+ const string16& d) {
+ return FixUpWindowsStyleLabel(l10n_util::GetStringFUTF16(message_id,
+ a, b, c, d));
+}
+
+
+} // namespace l10n_util