mirror of
https://github.com/tappollo/Xcode-Quick-Localization.git
synced 2026-03-28 22:31:32 +08:00
support for Xcode 5 GM
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<string>icon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.nanaimostudio.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
@@ -22,11 +22,34 @@
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>CFPlugInDynamicRegisterFunction</key>
|
||||
<string></string>
|
||||
<key>CFPlugInDynamicRegistration</key>
|
||||
<string>NO</string>
|
||||
<key>CFPlugInFactories</key>
|
||||
<dict>
|
||||
<key>00000000-0000-0000-0000-000000000000</key>
|
||||
<string>MyFactoryFunction</string>
|
||||
</dict>
|
||||
<key>CFPlugInTypes</key>
|
||||
<dict>
|
||||
<key>00000000-0000-0000-0000-000000000000</key>
|
||||
<array>
|
||||
<string>00000000-0000-0000-0000-000000000000</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>CFPlugInUnloadFunction</key>
|
||||
<string></string>
|
||||
<key>XC4Compatible</key>
|
||||
<true/>
|
||||
<key>XCGCReady</key>
|
||||
<true/>
|
||||
<false/>
|
||||
<key>XCPluginHasUI</key>
|
||||
<false/>
|
||||
<key>DVTPlugInCompatibilityUUIDs</key>
|
||||
<array>
|
||||
<string>63FC1C47-140D-42B0-BB4D-A10B2D225574</string>
|
||||
<string>37B30044-3B14-46BA-ABAA-F01000C27B63</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -17,10 +17,10 @@ static NSString *localizeRegexs[] = {
|
||||
};
|
||||
static NSString *stringRegexs = @"@\"[^\"]*\"";
|
||||
@implementation QuickLocalization
|
||||
static id sharedPlugin = nil;
|
||||
|
||||
|
||||
+ (void)pluginDidLoad:(NSBundle *)plugin {
|
||||
static id sharedPlugin = nil;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
sharedPlugin = [[self alloc] init];
|
||||
@@ -29,26 +29,18 @@ static NSString *stringRegexs = @"@\"[^\"]*\"";
|
||||
|
||||
- (id)init {
|
||||
if (self = [super init]) {
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(applicationDidFinishLaunching:)
|
||||
name:NSApplicationDidFinishLaunchingNotification
|
||||
object:nil];
|
||||
NSMenuItem *viewMenuItem = [[NSApp mainMenu] itemWithTitle:@"Edit"];
|
||||
if (viewMenuItem) {
|
||||
[[viewMenuItem submenu] addItem:[NSMenuItem separatorItem]];
|
||||
NSMenuItem *sample = [[NSMenuItem alloc] initWithTitle:@"Quick Localization" action:@selector(quickLocalization) keyEquivalent:@"d"];
|
||||
[sample setKeyEquivalentModifierMask:NSCommandKeyMask | NSAlternateKeyMask];
|
||||
[sample setTarget:self];
|
||||
[[viewMenuItem submenu] addItem:sample];
|
||||
}
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)applicationDidFinishLaunching:(NSNotification *)notification {
|
||||
NSMenuItem *viewMenuItem = [[NSApp mainMenu] itemWithTitle:@"Edit"];
|
||||
if (viewMenuItem) {
|
||||
[[viewMenuItem submenu] addItem:[NSMenuItem separatorItem]];
|
||||
NSMenuItem *sample = [[NSMenuItem alloc] initWithTitle:@"Quick Localization" action:@selector(quickLocalization) keyEquivalent:@"c"];
|
||||
[sample setKeyEquivalentModifierMask:NSCommandKeyMask | NSShiftKeyMask];
|
||||
[sample setTarget:self];
|
||||
[[viewMenuItem submenu] addItem:sample];
|
||||
[sample release];
|
||||
}
|
||||
}
|
||||
|
||||
// Sample Action, for menu item:
|
||||
- (void)quickLocalization {
|
||||
IDESourceCodeDocument *document = [RCXcode currentSourceCodeDocument];
|
||||
@@ -64,10 +56,10 @@ static NSString *stringRegexs = @"@\"[^\"]*\"";
|
||||
NSRange lineRange = [textView.textStorage.string lineRangeForRange:range];
|
||||
NSString *line = [textView.textStorage.string substringWithRange:lineRange];
|
||||
|
||||
NSRegularExpression *localizedRex = [[[NSRegularExpression alloc] initWithPattern:localizeRegexs[0] options:NSRegularExpressionCaseInsensitive error:nil] autorelease];
|
||||
NSRegularExpression *localizedRex = [[NSRegularExpression alloc] initWithPattern:localizeRegexs[0] options:NSRegularExpressionCaseInsensitive error:nil];
|
||||
NSArray *localizedMatches = [localizedRex matchesInString:line options:0 range:NSMakeRange(0, [line length])];
|
||||
|
||||
NSRegularExpression *regex = [[[NSRegularExpression alloc] initWithPattern:stringRegexs options:NSRegularExpressionCaseInsensitive error:nil] autorelease];
|
||||
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:stringRegexs options:NSRegularExpressionCaseInsensitive error:nil];
|
||||
NSArray *matches = [regex matchesInString:line options:0 range:NSMakeRange(0, [line length])];
|
||||
NSUInteger addedLength = 0;
|
||||
for (int i = 0; i < [matches count]; i++) {
|
||||
@@ -83,7 +75,7 @@ static NSString *stringRegexs = @"@\"[^\"]*\"";
|
||||
addedLength = addedLength + outputString.length - string.length;
|
||||
if ([textView shouldChangeTextInRange:matchedRangeInDocument replacementString:outputString]) {
|
||||
[textView.textStorage replaceCharactersInRange:matchedRangeInDocument
|
||||
withAttributedString:[[[NSAttributedString alloc] initWithString:outputString] autorelease]];
|
||||
withAttributedString:[[NSAttributedString alloc] initWithString:outputString]];
|
||||
[textView didChangeText];
|
||||
}
|
||||
|
||||
@@ -105,9 +97,4 @@ static NSString *stringRegexs = @"@\"[^\"]*\"";
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
||||
BIN
QuickLocalization/icon.icns
Normal file
BIN
QuickLocalization/icon.icns
Normal file
Binary file not shown.
Reference in New Issue
Block a user