28 Commits

Author SHA1 Message Date
Tomáš Znamenáček f743bdaa5b Release 2.3.6 2016-10-30 09:51:39 +01:00
Tomáš Znamenáček 6444d3f9a2 Fix wrong header import 2016-10-28 15:10:19 +02:00
Tomáš Znamenáček e7f7ee50a6 Using numerical value instead of the __MAC_10_12 symbol 2016-10-28 15:05:17 +02:00
Tomáš Znamenáček 7dfde95369 Key mask conditional compilation fix #2 2016-10-28 14:59:31 +02:00
Tomáš Znamenáček 0d54ede869 Trying to fix conditional key mask definition on 10.12 2016-10-28 14:52:37 +02:00
Tomáš Znamenáček f12ed861b0 Use modern key mask constants instead of the ones deprecated in 10.12
See #99 for details.
2016-10-28 14:40:32 +02:00
Tomáš Znamenáček bf4329178d Update build warnings as suggested by Xcode 8 2016-10-28 13:10:58 +02:00
Tomáš Znamenáček 0e0bc77433 Release 2.3.5 2016-09-07 08:56:18 +02:00
Tomáš Znamenáček 37b480f32a Improve Italian localization 2016-09-07 08:53:17 +02:00
Tomáš Znamenáček 2d1bb41d0c Link to a commit message writing guide 2016-08-12 11:53:26 +02:00
Tomáš Znamenáček 409699c3c0 Version bump to 2.3.4 2016-08-12 11:49:17 +02:00
Vadim Shpakovski 928bbe25b4 Upgrade Projects to Xcode 7 2016-08-08 18:24:19 +03:00
Vadim Shpakovski 658a4e1e78 Merge pull request #94 from sfsam/master
Added Makefile to build from the command line
2016-07-15 09:45:59 +03:00
Sanjay Madan bd3cf9bf9c Added Makefile to build from the command line 2016-07-14 22:12:06 -07:00
Vadim Shpakovski a4dd585497 Merge pull request #93 from pointum/master
ru localization update
2016-07-13 17:35:07 +03:00
Maxim Ananov 843cb81697 ru localization update 2016-07-13 17:26:02 +03:00
Tomáš Znamenáček 9471ddbc7c Update CHANGES 2016-04-14 10:08:23 +02:00
Vadim Shpakovski 46bd84f57d Merge pull request #89 from radex/add-translations
Add Korean, Dutch, Polish, Russian & update Spanish translations
2016-04-14 11:04:37 +03:00
radex 6233bfac56 Add ko, nl, pl, ru, es translations 2016-04-14 09:55:34 +02:00
Tomáš Znamenáček 03e3ed398a Use correct quote signs for German translation.
The quotes should be like „this“, not ‘this’.
2016-02-14 09:44:45 +01:00
Tomáš Znamenáček 00b5041867 Shortened the new German translation strings to fit the UI.
Closes #85.
2016-02-14 09:41:52 +01:00
Tomáš Znamenáček 69b0a06656 Added basic German localization to the demo project.
This makes it possible to test the German MASShortcut localization
on the demo project.
2016-02-10 19:13:53 +01:00
Tomáš Znamenáček abb1ac2799 Updated CHANGES. 2016-02-05 10:07:59 +01:00
Vadim Shpakovski 9bbb5b3e6a Merge pull request #84 from floschliep/master
Improve German Localization
2016-02-05 09:30:17 +01:00
Florian Schliep 00dd8616f1 Improved German Localization
I translated the missing strings and improved the existing ones.
2016-02-04 18:56:50 +01:00
Tomáš Znamenáček d359752bef Updated CHANGES. 2016-01-22 10:29:17 +01:00
Tomáš Znamenáček 6b80ea95b5 Merge pull request #83 from MichaelRow/master
Simplified and traditional Chinese localizations.
2016-01-22 10:28:06 +01:00
MichaelRow 8e14c20ca4 Simplified and traditional Chinese localizations. 2016-01-22 12:04:51 +08:00
25 changed files with 433 additions and 58 deletions
+12
View File
@@ -1,3 +1,15 @@
2.3.6 2016/10/30
- Improve compatibility with the 10.12 SDK [thanks to Clemens Schulz]
2.3.5 2016/9/7
- Improve Italian localization [zoul]
2.3.4 2016/8/12
- Simplified and traditional Chinese localization [MichaelRow]
- Add Korean, Dutch, Polish, Russian & update Spanish localizations [Radek Pietruszewski]
- Improved German localization [Florian Schliep]
Add a Makefile to improve command-line building [sfsam]
2.3.3 2016/1/9
- Improved Japanese localization [oreshinya]
- Improved Frech localization [magiclantern]
+2 -2
View File
@@ -4,7 +4,7 @@ Please note that this framework supports older OS X versions down to 10.6. When
# Commit Messages
Please use descriptive commit message. As an example, _Bug fix_ commit message doesnt say much, while _Fixed a memory-management bug in formatting code_ works much better.
Please use descriptive commit message. As an example, _Bug fix_ commit message doesnt say much, while _Fix a memory-management bug in formatting code_ works much better. A [nice detailed article about writing commit messages](http://chris.beams.io/posts/git-commit/) is also available.
# How to Release a New Version
@@ -26,4 +26,4 @@ Now push both the commits and tags (`--tags`) to GitHub and push the new podspec
This will run sanity checks on the podspec and fail if the spec does not validate.
Thats it. Go have a beer or a cup of tea to celebrate.
Thats it. Go have a beer or a cup of tea to celebrate.
+1 -1
View File
@@ -83,7 +83,7 @@ static void *MASObservingContext = &MASObservingContext;
- (void) setHardcodedShortcutEnabled: (BOOL) enabled
{
MASShortcut *shortcut = [MASShortcut shortcutWithKeyCode:kVK_F2 modifierFlags:NSCommandKeyMask];
MASShortcut *shortcut = [MASShortcut shortcutWithKeyCode:kVK_F2 modifierFlags:NSEventModifierFlagCommand];
if (enabled) {
[[MASShortcutMonitor sharedMonitor] registerShortcut:shortcut withAction:^{
[self playShortcutFeedback];
+1 -1
View File
@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>com.shpakovski.mac.${PRODUCT_NAME:rfc1034identifier}</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
+3
View File
@@ -0,0 +1,3 @@
/* Feedback thats displayed when user presses the sample shortcut. */
"Shortcut pressed!" = "Kurzbefehl gedrückt!";
+4 -4
View File
@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>com.github.shpakovski.${PRODUCT_NAME:rfc1034identifier}</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
@@ -15,10 +15,10 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>2.3.3</string>
<string>2.3.6</string>
<key>CFBundleVersion</key>
<string>2.3.3</string>
<string>2.3.6</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright © 20142015 Vadim Shpakovski. All rights reserved.</string>
<string>Copyright © Vadim Shpakovski. All rights reserved.</string>
</dict>
</plist>
+6 -5
View File
@@ -1,5 +1,6 @@
#import <Carbon/Carbon.h>
#import <AppKit/AppKit.h>
#import "MASKeyMasks.h"
// These glyphs are missed in Carbon.h
enum {
@@ -30,14 +31,14 @@ NS_INLINE NSString* NSStringFromMASKeyCode(unsigned short ch)
NS_INLINE NSUInteger MASPickCocoaModifiers(NSUInteger flags)
{
return (flags & (NSControlKeyMask | NSShiftKeyMask | NSAlternateKeyMask | NSCommandKeyMask));
return (flags & (NSEventModifierFlagControl | NSEventModifierFlagShift | NSEventModifierFlagOption | NSEventModifierFlagCommand));
}
NS_INLINE UInt32 MASCarbonModifiersFromCocoaModifiers(NSUInteger cocoaFlags)
{
return
(cocoaFlags & NSCommandKeyMask ? cmdKey : 0)
| (cocoaFlags & NSAlternateKeyMask ? optionKey : 0)
| (cocoaFlags & NSControlKeyMask ? controlKey : 0)
| (cocoaFlags & NSShiftKeyMask ? shiftKey : 0);
(cocoaFlags & NSEventModifierFlagCommand ? cmdKey : 0)
| (cocoaFlags & NSEventModifierFlagOption ? optionKey : 0)
| (cocoaFlags & NSEventModifierFlagControl ? controlKey : 0)
| (cocoaFlags & NSEventModifierFlagShift ? shiftKey : 0);
}
+18
View File
@@ -0,0 +1,18 @@
#import <Availability.h>
// https://github.com/shpakovski/MASShortcut/issues/99
//
// Long story short: NSControlKeyMask and friends were replaced with NSEventModifierFlagControl
// and similar in macOS Sierra. The project builds fine & clean, but including MASShortcut in
// a project with deployment target set to 10.12 results in several deprecation warnings because
// of the control masks. Simply replacing the old symbols with the new ones isnt an option,
// since it breaks the build on older SDKs in Travis, for example.
//
// It should be safe to remove this whole thing once the 10.12 SDK is ubiquitous.
#if __MAC_OS_X_VERSION_MAX_ALLOWED < 101200
#define NSEventModifierFlagCommand NSCommandKeyMask
#define NSEventModifierFlagControl NSControlKeyMask
#define NSEventModifierFlagOption NSAlternateKeyMask
#define NSEventModifierFlagShift NSShiftKeyMask
#endif
+2 -1
View File
@@ -1,7 +1,8 @@
#import "MASKeyMasks.h"
#import "MASShortcut.h"
#import "MASShortcutValidator.h"
#import "MASShortcutMonitor.h"
#import "MASShortcutBinder.h"
#import "MASDictionaryTransformer.h"
#import "MASShortcutView.h"
#import "MASShortcutView+Bindings.h"
#import "MASShortcutView+Bindings.h"
+2 -2
View File
@@ -1,7 +1,7 @@
# coding: utf-8
Pod::Spec.new do |s|
s.name = 'MASShortcut'
s.version = '2.3.3'
s.version = '2.3.6'
s.summary = 'Modern framework for managing global keyboard shortcuts compatible with Mac App Store'
s.homepage = 'https://github.com/shpakovski/MASShortcut'
s.license = 'BSD 2-clause'
@@ -10,7 +10,7 @@ Pod::Spec.new do |s|
s.platform = :osx
s.osx.deployment_target = "10.6"
s.source = { :git => 'https://github.com/shpakovski/MASShortcut.git', :tag => '2.3.3' }
s.source = { :git => 'https://github.com/shpakovski/MASShortcut.git', :tag => '2.3.6' }
s.source_files = 'Framework/*.{h,m}'
s.exclude_files = 'Framework/*Tests.m'
s.osx.frameworks = 'Carbon', 'AppKit'
+44 -1
View File
@@ -33,6 +33,7 @@
0D827D9F19911A190010B8EF /* MASShortcutValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D827D9D19911A190010B8EF /* MASShortcutValidator.m */; };
0D827DA519912D240010B8EF /* MASShortcutMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D827DA319912D240010B8EF /* MASShortcutMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; };
0D827DAD199132840010B8EF /* MASShortcutBinder.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D827DAB199132840010B8EF /* MASShortcutBinder.h */; settings = {ATTRIBUTES = (Public, ); }; };
0DA8BCFC1DC37D8000C96EB9 /* MASKeyMasks.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DA8BCFB1DC37D8000C96EB9 /* MASKeyMasks.h */; settings = {ATTRIBUTES = (Public, ); }; };
0DC2F17619922798003A0131 /* MASHotKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DC2F17419922798003A0131 /* MASHotKey.h */; };
0DC2F17719922798003A0131 /* MASHotKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DC2F17519922798003A0131 /* MASHotKey.m */; };
0DC2F17C199232EA003A0131 /* MASShortcutMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D827DA419912D240010B8EF /* MASShortcutMonitor.m */; };
@@ -114,6 +115,7 @@
0D827DA419912D240010B8EF /* MASShortcutMonitor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MASShortcutMonitor.m; path = Framework/MASShortcutMonitor.m; sourceTree = "<group>"; };
0D827DAB199132840010B8EF /* MASShortcutBinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MASShortcutBinder.h; path = Framework/MASShortcutBinder.h; sourceTree = "<group>"; };
0D827DAC199132840010B8EF /* MASShortcutBinder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MASShortcutBinder.m; path = Framework/MASShortcutBinder.m; sourceTree = "<group>"; };
0DA8BCFB1DC37D8000C96EB9 /* MASKeyMasks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MASKeyMasks.h; path = Framework/MASKeyMasks.h; sourceTree = "<group>"; };
0DC2F17419922798003A0131 /* MASHotKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MASHotKey.h; path = Framework/MASHotKey.h; sourceTree = "<group>"; };
0DC2F17519922798003A0131 /* MASHotKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MASHotKey.m; path = Framework/MASHotKey.m; sourceTree = "<group>"; };
0DC2F18819925F8F003A0131 /* MASShortcutBinderTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MASShortcutBinderTests.m; path = Framework/MASShortcutBinderTests.m; sourceTree = "<group>"; };
@@ -122,6 +124,13 @@
0DC2F18F199372B4003A0131 /* MASDictionaryTransformerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MASDictionaryTransformerTests.m; path = Framework/MASDictionaryTransformerTests.m; sourceTree = "<group>"; };
0DC2F19619938EFA003A0131 /* MASShortcutView+Bindings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "MASShortcutView+Bindings.h"; path = "Framework/MASShortcutView+Bindings.h"; sourceTree = "<group>"; };
0DC2F19719938EFA003A0131 /* MASShortcutView+Bindings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "MASShortcutView+Bindings.m"; path = "Framework/MASShortcutView+Bindings.m"; sourceTree = "<group>"; };
0DEDAA021C6BB479001605F5 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
6EA6034E1CBF822000A3ED9C /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = "<group>"; };
6EA6034F1CBF822800A3ED9C /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = "<group>"; };
6EA603501CBF822D00A3ED9C /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = "<group>"; };
6EA603511CBF823600A3ED9C /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = "<group>"; };
76A0597D1C51DC940014B271 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
76A0597E1C51DC9F0014B271 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.strings"; sourceTree = "<group>"; };
EAFFDC811AACFF3300F38834 /* MASShortcut.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; name = MASShortcut.modulemap; path = Framework/MASShortcut.modulemap; sourceTree = "<group>"; };
ED8737791BCE459800BB1716 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -230,6 +239,7 @@
0D827DA019912A660010B8EF /* Model */ = {
isa = PBXGroup;
children = (
0DA8BCFB1DC37D8000C96EB9 /* MASKeyMasks.h */,
0D827D9619910FF70010B8EF /* MASKeyCodes.h */,
0D827D1B1990D55E0010B8EF /* MASShortcut.h */,
0D827D1C1990D55E0010B8EF /* MASShortcut.m */,
@@ -286,6 +296,7 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
0DA8BCFC1DC37D8000C96EB9 /* MASKeyMasks.h in Headers */,
0D827D9719910FF70010B8EF /* MASKeyCodes.h in Headers */,
0D827D2B1990D55E0010B8EF /* MASShortcutView.h in Headers */,
0D827D99199110F60010B8EF /* Prefix.pch in Headers */,
@@ -364,7 +375,7 @@
0D827CCA1990D4420010B8EF /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0610;
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = "Vadim Shpakovski";
TargetAttributes = {
0D827D8219910AFF0010B8EF = {
@@ -384,6 +395,12 @@
it,
fr,
ja,
"zh-Hans",
"zh-Hant",
pl,
ko,
ru,
nl,
);
mainGroup = 0D827CC91990D4420010B8EF;
productRefGroup = 0D827CD41990D4420010B8EF /* Products */;
@@ -483,6 +500,12 @@
0D58DE541BA166270023BFBE /* it */,
0D58DE551BA166390023BFBE /* fr */,
0D58DE561BA166420023BFBE /* ja */,
76A0597D1C51DC940014B271 /* zh-Hans */,
76A0597E1C51DC9F0014B271 /* zh-Hant */,
6EA6034E1CBF822000A3ED9C /* pl */,
6EA6034F1CBF822800A3ED9C /* ko */,
6EA603501CBF822D00A3ED9C /* ru */,
6EA603511CBF823600A3ED9C /* nl */,
);
name = Localizable.strings;
sourceTree = "<group>";
@@ -502,6 +525,7 @@
0D2CAB221B834464005431FC /* en */,
0D2CAB241B834467005431FC /* cs */,
ED8737791BCE459800BB1716 /* ja */,
0DEDAA021C6BB479001605F5 /* de */,
);
name = Localizable.strings;
sourceTree = "<group>";
@@ -513,6 +537,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -522,13 +547,19 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@@ -552,6 +583,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -561,14 +593,19 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
@@ -595,6 +632,7 @@
INSTALL_PATH = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.6;
MODULEMAP_FILE = Framework/MASShortcut.modulemap;
PRODUCT_BUNDLE_IDENTIFIER = "com.github.shpakovski.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = framework;
@@ -615,6 +653,7 @@
INSTALL_PATH = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.6;
MODULEMAP_FILE = Framework/MASShortcut.modulemap;
PRODUCT_BUNDLE_IDENTIFIER = "com.github.shpakovski.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
WRAPPER_EXTENSION = framework;
@@ -634,6 +673,7 @@
);
INFOPLIST_FILE = Demo/Info.plist;
MACOSX_DEPLOYMENT_TARGET = 10.6;
PRODUCT_BUNDLE_IDENTIFIER = "com.shpakovski.mac.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
@@ -648,6 +688,7 @@
GCC_PREFIX_HEADER = Demo/Prefix.pch;
INFOPLIST_FILE = Demo/Info.plist;
MACOSX_DEPLOYMENT_TARGET = 10.6;
PRODUCT_BUNDLE_IDENTIFIER = "com.shpakovski.mac.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
@@ -668,6 +709,7 @@
"$(inherited)",
);
INFOPLIST_FILE = Tests/Info.plist;
PRODUCT_BUNDLE_IDENTIFIER = "com.github.shpakovski.MASShortcut.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = xctest;
};
@@ -684,6 +726,7 @@
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Tests/Prefix.pch;
INFOPLIST_FILE = Tests/Info.plist;
PRODUCT_BUNDLE_IDENTIFIER = "com.github.shpakovski.MASShortcut.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = xctest;
};
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0610"
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0610"
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
@@ -37,10 +37,10 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
@@ -62,15 +62,18 @@
ReferencedContainer = "container:MASShortcut.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
@@ -85,10 +88,10 @@
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
+10
View File
@@ -0,0 +1,10 @@
.PHONY: release
ifndef BUILDDIR
BUILDDIR := $(shell mktemp -d "$(TMPDIR)/MASShortcut.XXXXXX")
endif
release:
xcodebuild -scheme MASShortcut -configuration Release -derivedDataPath "$(BUILDDIR)" build
open "$(BUILDDIR)/Build/Products/Release"
+2
View File
@@ -39,6 +39,8 @@ If you want to stick to the 1.x branch, you can use the version smart match oper
You can also install via [Carthage](https://github.com/Carthage/Carthage), or you can use Git submodules and link against the MASShortcut framework manually.
To build from the command line, type 'make release'. The framework will be created in a temporary directory and revealed in Finder when the build is complete.
# Usage
I hope, it is really easy:
+1 -1
View File
@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>com.github.shpakovski.MASShortcut.${PRODUCT_NAME:rfc1034identifier}</string>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
+13 -13
View File
@@ -2,46 +2,46 @@
"Cancel" = "Abbrechen";
/* Tooltip for non-empty shortcut button */
"Click to record new shortcut" = "Click to record new shortcut";
"Click to record new shortcut" = "Klicken um neuen Kurzbefehl aufzunehmen";
/* Tooltip for hint button near the non-empty shortcut */
"Delete shortcut" = "Delete shortcut";
"Delete shortcut" = "Kurzbefehl Löschen";
/* VoiceOver title */
"keyboard shortcut" = "keyboard shortcut";
"keyboard shortcut" = "Kurzbefehl";
/* Alert button when shortcut is already used */
"OK" = "OK";
/* Empty shortcut button in normal state */
"Record Shortcut" = "Tastaturkürzel speichern";
"Record Shortcut" = "Kurzbefehl aufnehmen";
/* VoiceOver: Shortcut cleared */
"Shortcut cleared" = "Shortcut cleared";
"Shortcut cleared" = "Kurzbefehl gelöscht";
/* VoiceOver: Shortcut set */
"Shortcut set" = "Shortcut set";
"Shortcut set" = "Kurzbefehl gesetzt";
/* Shortcut glyph name for SPACE key */
"Space" = "Leertaste";
/* Title for alert when shortcut is already used */
"The key combination %@ cannot be used" = "The key combination %@ cannot be used";
"The key combination %@ cannot be used" = "Die Tastenkombination %@ kann nicht genutzt werden";
/* Message for alert when shortcut is already used by the system */
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences.";
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "Diese Kombination kann nicht genutzt werden, weil sie bereits als systemweiter Kurzbefehl genutzt wird.\nFalls du diese Tastenkombination wirklich benutzen willst, können die meisten Kurzbefehle in den Tastatur Systemeinstellungen geändert werden.";
/* Message for alert when shortcut is already used */
"This shortcut cannot be used because it is already used by the menu item %@." = "This shortcut cannot be used because it is already used by the menu item %@.";
"This shortcut cannot be used because it is already used by the menu item %@." = "Dieser Kurzbefehl kann nicht genutzt werden, weil er bereits vom Menüpunkt „%@“ genutzt wird.";
/* VoiceOver shortcut help */
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut.";
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "Drücke diesen Button, um einen neuen Kurzbefehl aufzunehmen. Tippe dann den neuen Kurzbefehl oder drücke Löschen, um den aktuellen Kurzbefehl zu löschen.";
/* Non-empty shortcut button in recording state */
"Type New Shortcut" = "Tastaturkürzel eingeben";
"Type New Shortcut" = "Neuen eingeben";
/* Empty shortcut button in recording state */
"Type Shortcut" = "Tastaturkürzel eingeben";
"Type Shortcut" = "Kurzbefehl eingeben";
/* Cancel action button for non-empty shortcut in recording state */
"Use Old Shortcut" = "Use Old Shortcut";
"Use Old Shortcut" = "Alten nutzen";
+10 -10
View File
@@ -2,13 +2,13 @@
"Cancel" = "Cancelar";
/* Tooltip for non-empty shortcut button */
"Click to record new shortcut" = "Click to record new shortcut";
"Click to record new shortcut" = "Haga clic para grabar nuevo atajo";
/* Tooltip for hint button near the non-empty shortcut */
"Delete shortcut" = "Delete shortcut";
"Delete shortcut" = "Borrar atajo";
/* VoiceOver title */
"keyboard shortcut" = "keyboard shortcut";
"keyboard shortcut" = "atajo de teklado";
/* Alert button when shortcut is already used */
"OK" = "OK";
@@ -17,25 +17,25 @@
"Record Shortcut" = "Grabar atajo";
/* VoiceOver: Shortcut cleared */
"Shortcut cleared" = "Shortcut cleared";
"Shortcut cleared" = "Atajo borrado";
/* VoiceOver: Shortcut set */
"Shortcut set" = "Shortcut set";
"Shortcut set" = "Atajo creado";
/* Shortcut glyph name for SPACE key */
"Space" = "Espacio";
/* Title for alert when shortcut is already used */
"The key combination %@ cannot be used" = "The key combination %@ cannot be used";
"The key combination %@ cannot be used" = "La combinación de claves %@ no se puede utilizada";
/* Message for alert when shortcut is already used by the system */
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences.";
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "Esta combinación no se puede utilizar debido a que ya es en us como atajo del sistema.\nSi realmente desea utilizar esta combinación de teclas, la mayoría de los atajos se puede cambiar en el panel de Teclado y Ratón de Preferencias del Sistema.";
/* Message for alert when shortcut is already used */
"This shortcut cannot be used because it is already used by the menu item %@." = "This shortcut cannot be used because it is already used by the menu item %@.";
"This shortcut cannot be used because it is already used by the menu item %@." = "Este atajo no se puede utilizar debido a que ya es utilizado por el elemento de menú '%@'.";
/* VoiceOver shortcut help */
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut.";
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "Para grabar un nuevo atajo, haga clic en este botón, a continuar, escriba el nuevo atajo, o pulse borrar para qutar un atajo existente.";
/* Non-empty shortcut button in recording state */
"Type New Shortcut" = "Escribir atajo";
@@ -44,4 +44,4 @@
"Type Shortcut" = "Escribir atajo";
/* Cancel action button for non-empty shortcut in recording state */
"Use Old Shortcut" = "Use Old Shortcut";
"Use Old Shortcut" = "Usa atajo anterior";
+11 -11
View File
@@ -2,13 +2,13 @@
"Cancel" = "Annulla";
/* Tooltip for non-empty shortcut button */
"Click to record new shortcut" = "Click to record new shortcut";
"Click to record new shortcut" = "Cliccare per registrare una nuova combinazione";
/* Tooltip for hint button near the non-empty shortcut */
"Delete shortcut" = "Delete shortcut";
"Delete shortcut" = "Cancella scorciatoia";
/* VoiceOver title */
"keyboard shortcut" = "keyboard shortcut";
"keyboard shortcut" = "Scorciatoia da tastiera";
/* Alert button when shortcut is already used */
"OK" = "OK";
@@ -17,31 +17,31 @@
"Record Shortcut" = "Registra scorciatoia";
/* VoiceOver: Shortcut cleared */
"Shortcut cleared" = "Shortcut cleared";
"Shortcut cleared" = "Scorciatoia rimossa";
/* VoiceOver: Shortcut set */
"Shortcut set" = "Shortcut set";
"Shortcut set" = "Scorciatoia impostata";
/* Shortcut glyph name for SPACE key */
"Space" = "Spazio";
/* Title for alert when shortcut is already used */
"The key combination %@ cannot be used" = "The key combination %@ cannot be used";
"The key combination %@ cannot be used" = "Questa combinazione %@ di tasti non può essere usata";
/* Message for alert when shortcut is already used by the system */
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences.";
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "Questa combinazione di tasti non può essere usata perchè è già usata da una scorciatoia da tastiera a livello di Sistema.\nSe volete davvero usare questa combinazione di tasti, la maggior parte delle scorciatoie possono essere cambiate nel pannello Tastiera e Mouse delle Preferenze di Sistema.";
/* Message for alert when shortcut is already used */
"This shortcut cannot be used because it is already used by the menu item %@." = "This shortcut cannot be used because it is already used by the menu item %@.";
"This shortcut cannot be used because it is already used by the menu item %@." = "Questa combinazione di tasti non può essere usata perchè è già usata dalla voce di menù %@.";
/* VoiceOver shortcut help */
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut.";
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "Per registrare una nuova scorciatoia, cliccare su questo pulsante e poi inserire la muova scorciatoia o premere cancella per resettare una scorciatoia esistente.";
/* Non-empty shortcut button in recording state */
"Type New Shortcut" = "Digita scorciatoia";
"Type New Shortcut" = "Digita nuova";
/* Empty shortcut button in recording state */
"Type Shortcut" = "Digita scorciatoia";
/* Cancel action button for non-empty shortcut in recording state */
"Use Old Shortcut" = "Use Old Shortcut";
"Use Old Shortcut" = "Usare vecchia";
+47
View File
@@ -0,0 +1,47 @@
/* Cancel action button in recording state */
"Cancel" = "취소";
/* Tooltip for non-empty shortcut button */
"Click to record new shortcut" = "클릭해 단축 키를 입력";
/* Tooltip for hint button near the non-empty shortcut */
"Delete shortcut" = "단축키 삭제";
/* VoiceOver title */
"keyboard shortcut" = "키보드 단축키";
/* Alert button when shortcut is already used */
"OK" = "좋아";
/* Empty shortcut button in normal state */
"Record Shortcut" = "단축키 입력";
/* VoiceOver: Shortcut cleared */
"Shortcut cleared" = "단축키 삭제됨";
/* VoiceOver: Shortcut set */
"Shortcut set" = "단축키 설정됨";
/* Shortcut glyph name for SPACE key */
"Space" = "스페이스 바";
/* Title for alert when shortcut is already used */
"The key combination %@ cannot be used" = "%@ 단축키로 설정할 수 없습니다";
/* Message for alert when shortcut is already used by the system */
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "이 결합은 시스템 전체에서 사용 때문에 단축키로 설정 할 수 없습니다.\n단축키를 사용하고 싶으면 시스템 환경 설정의 키보드, 마우스 패널에서 이미 설정되어있는 단축키를 변경하십시오.";
/* Message for alert when shortcut is already used */
"This shortcut cannot be used because it is already used by the menu item %@." = "이 단축키는 ‘%@’ 메뉴 아이템에 사용되고 있기 때문에 설정할 수 없습니다.";
/* VoiceOver shortcut help */
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "이 버튼을 클릭하고 단축키를 입력하면 새로운 단축키가 설정됩니다. 또한 삭제 버튼을 누르면 단축키가 삭제됩니다.";
/* Non-empty shortcut button in recording state */
"Type New Shortcut" = "새 단축키 입력";
/* Empty shortcut button in recording state */
"Type Shortcut" = "단축키 입력";
/* Cancel action button for non-empty shortcut in recording state */
"Use Old Shortcut" = "오래된 단축키를 사용";
+47
View File
@@ -0,0 +1,47 @@
/* Cancel action button in recording state */
"Cancel" = "Verbreken";
/* Tooltip for non-empty shortcut button */
"Click to record new shortcut" = "Druk om een nieuwe sneltoets in te voeren";
/* Tooltip for hint button near the non-empty shortcut */
"Delete shortcut" = "Verwijder sneltoets";
/* VoiceOver title */
"keyboard shortcut" = "sneltoets";
/* Alert button when shortcut is already used */
"OK" = "OK";
/* Empty shortcut button in normal state */
"Record Shortcut" = "Sneltoets opnemen";
/* VoiceOver: Shortcut cleared */
"Shortcut cleared" = "Sneltoets verwijderd";
/* VoiceOver: Shortcut set */
"Shortcut set" = "Sneltoets zetten";
/* Shortcut glyph name for SPACE key */
"Space" = "Spatie";
/* Title for alert when shortcut is already used */
"The key combination %@ cannot be used" = "De sneltoetsencombinatie kan niet worden gebruikt";
/* Message for alert when shortcut is already used by the system */
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "Deze combinatie kan niet worden gebruikt want hij wordt al gebruikt door een systeembreed sneltoets.\nAls je deze combinatie echt wilt gebruiken, kun je de meeste sneltoetsen binnen Toetsenbordinstellingen veranderen.";
/* Message for alert when shortcut is already used */
"This shortcut cannot be used because it is already used by the menu item %@." = "Deze sneltoets kan niet worden gebruikt want hij wordt al gebruikt door het menu item %@.";
/* VoiceOver shortcut help */
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "Om nieuwe sneltoets op te nemen, druk op deze knop, en voer een nieuwe sneltoets in, of druk op verwijder om bestaande sneltoets te verwijderen.";
/* Non-empty shortcut button in recording state */
"Type New Shortcut" = "Voer Nieuwe Sneltoets in";
/* Empty shortcut button in recording state */
"Type Shortcut" = "Voer Sneltoets in";
/* Cancel action button for non-empty shortcut in recording state */
"Use Old Shortcut" = "Gebruik Oude Sneltoets";
+47
View File
@@ -0,0 +1,47 @@
/* Cancel action button in recording state */
"Cancel" = "Anuluj";
/* Tooltip for non-empty shortcut button */
"Click to record new shortcut" = "Kliknij, by ustawić nowy skrót";
/* Tooltip for hint button near the non-empty shortcut */
"Delete shortcut" = "Usuń skrót";
/* VoiceOver title */
"keyboard shortcut" = "skrót klawiszowy";
/* Alert button when shortcut is already used */
"OK" = "OK";
/* Empty shortcut button in normal state */
"Record Shortcut" = "Utwórz skrót";
/* VoiceOver: Shortcut cleared */
"Shortcut cleared" = "Skrót usunięty";
/* VoiceOver: Shortcut set */
"Shortcut set" = "Skrót ustawiony";
/* Shortcut glyph name for SPACE key */
"Space" = "Spacja";
/* Title for alert when shortcut is already used */
"The key combination %@ cannot be used" = "Nie można użyć kombinacji klawiszy %@";
/* Message for alert when shortcut is already used by the system */
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "Nie można użyć tej kombinacji, ponieważ jest już zajęta przez skrót systemowy.\nMożesz to zmienić w panelu Klawiatura w Preferencjach systemowych.";
/* Message for alert when shortcut is already used */
"This shortcut cannot be used because it is already used by the menu item %@." = "Ten skrót nie może być użyty, ponieważ w menu ma już przypisaną funkcję %@.";
/* VoiceOver shortcut help */
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "Aby ustawić nowy skrót, użyj tego przycisku, a następnie wpisz nowy skrót albo naciśnij klawisz delete, by usunąć istniejący skrót";
/* Non-empty shortcut button in recording state */
"Type New Shortcut" = "Wpisz nowy skrót";
/* Empty shortcut button in recording state */
"Type Shortcut" = "Wpisz skrót";
/* Cancel action button for non-empty shortcut in recording state */
"Use Old Shortcut" = "Użyj starego skrótu";
+47
View File
@@ -0,0 +1,47 @@
/* Cancel action button in recording state */
"Cancel" = "Отмена";
/* Tooltip for non-empty shortcut button */
"Click to record new shortcut" = "Нажмите для записи сочетания клавиш";
/* Tooltip for hint button near the non-empty shortcut */
"Delete shortcut" = "Удалить горячую клавишу";
/* VoiceOver title */
"keyboard shortcut" = "сочетание клавиш";
/* Alert button when shortcut is already used */
"OK" = "ОК";
/* Empty shortcut button in normal state */
"Record Shortcut" = "Ввести сочетание";
/* VoiceOver: Shortcut cleared */
"Shortcut cleared" = "Сочетание клавиш удалено";
/* VoiceOver: Shortcut set */
"Shortcut set" = "Сочетание клавиш назначено";
/* Shortcut glyph name for SPACE key */
"Space" = "Пробел";
/* Title for alert when shortcut is already used */
"The key combination %@ cannot be used" = "Нельзя использовать сочетание клавиш %@";
/* Message for alert when shortcut is already used by the system */
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "Нельзя использовать это сочетание клавиш, потому что оно уже используется в системе.\n Если вы хотите использовать это сочетание, измените существующее системное сочетание клавиш через панель Клавиатура в Cистемных настройках.";
/* Message for alert when shortcut is already used */
"This shortcut cannot be used because it is already used by the menu item %@." = "Нельзя использовать это сочетание, потому что оно уже связано с элементом ‘%@’.";
/* VoiceOver shortcut help */
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "Чтобы назначить новое сочетание клавиш, нажмите эту кнопку и введите новое сочетание, или нажмите \"Удалить\", чтобы удалить действующее сочетание клавиш.";
/* Non-empty shortcut button in recording state */
"Type New Shortcut" = "Введите сочетание";
/* Empty shortcut button in recording state */
"Type Shortcut" = "Введите сочетание";
/* Cancel action button for non-empty shortcut in recording state */
"Use Old Shortcut" = "Вернуть старое";
+47
View File
@@ -0,0 +1,47 @@
/* Cancel action button in recording state */
"Cancel" = "取消";
/* Tooltip for non-empty shortcut button */
"Click to record new shortcut" = "点击以记录新快捷键";
/* Tooltip for hint button near the non-empty shortcut */
"Delete shortcut" = "删除快捷键";
/* VoiceOver title */
"keyboard shortcut" = "键盘快捷键";
/* Alert button when shortcut is already used */
"OK" = "好";
/* Empty shortcut button in normal state */
"Record Shortcut" = "记录快捷键";
/* VoiceOver: Shortcut cleared */
"Shortcut cleared" = "快捷键已清除";
/* VoiceOver: Shortcut set */
"Shortcut set" = "快捷键已设置";
/* Shortcut glyph name for SPACE key */
"Space" = "空格键";
/* Title for alert when shortcut is already used */
"The key combination %@ cannot be used" = "按键组合“%@”无法使用";
/* Message for alert when shortcut is already used by the system */
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "当前按键组合无法使用,因为它已经用作其他系统全局快捷键。\n如果您真的想使用这个按键组合,大部分系统全局快捷键能在“系统偏好设置”里的“键盘”和“鼠标”面板中重设。";
/* Message for alert when shortcut is already used */
"This shortcut cannot be used because it is already used by the menu item %@." = "当前快捷键无法使用,因为它已用作菜单项“%@”的快捷键。";
/* VoiceOver shortcut help */
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "若要记录新的快捷键,单击此按钮,然后键入新的快捷键,或者按“delete键”删除已经存在的快捷键。";
/* Non-empty shortcut button in recording state */
"Type New Shortcut" = "键入新快捷键";
/* Empty shortcut button in recording state */
"Type Shortcut" = "键入快捷键";
/* Cancel action button for non-empty shortcut in recording state */
"Use Old Shortcut" = "还原快捷键";
+47
View File
@@ -0,0 +1,47 @@
/* Cancel action button in recording state */
"Cancel" = "取消";
/* Tooltip for non-empty shortcut button */
"Click to record new shortcut" = "點選以記錄新快捷鍵";
/* Tooltip for hint button near the non-empty shortcut */
"Delete shortcut" = "刪除快捷鍵";
/* VoiceOver title */
"keyboard shortcut" = "鍵盤快捷鍵";
/* Alert button when shortcut is already used */
"OK" = "好";
/* Empty shortcut button in normal state */
"Record Shortcut" = "記錄快捷鍵";
/* VoiceOver: Shortcut cleared */
"Shortcut cleared" = "快捷鍵已清除";
/* VoiceOver: Shortcut set */
"Shortcut set" = "快捷鍵已設定";
/* Shortcut glyph name for SPACE key */
"Space" = "空格鍵";
/* Title for alert when shortcut is already used */
"The key combination %@ cannot be used" = "按鍵組合“%@”無法使用";
/* Message for alert when shortcut is already used by the system */
"This combination cannot be used because it is already used by a system-wide keyboard shortcut.\nIf you really want to use this key combination, most shortcuts can be changed in the Keyboard & Mouse panel in System Preferences." = "當前按鍵組合無法使用,因為它已經用作其他系統全局快捷鍵。\n如果您真的想使用這個按鍵組合,大部分系統全局快捷鍵能在“系統偏好設定”裡的“鍵盤”和“滑鼠”面板中重設。";
/* Message for alert when shortcut is already used */
"This shortcut cannot be used because it is already used by the menu item %@." = "當前快捷鍵無法使用,因為它已用作選單項“%@”的快捷鍵。";
/* VoiceOver shortcut help */
"To record a new shortcut, click this button, and then type the new shortcut, or press delete to clear an existing shortcut." = "若要記錄新的快捷鍵,單擊此按鈕,然後鍵入新的快捷鍵,或者按“delete鍵”刪除已經存在的快捷鍵。";
/* Non-empty shortcut button in recording state */
"Type New Shortcut" = "鍵入新快捷鍵";
/* Empty shortcut button in recording state */
"Type Shortcut" = "鍵入快捷鍵";
/* Cancel action button for non-empty shortcut in recording state */
"Use Old Shortcut" = "還原快捷鍵";