diff --git a/English.lproj/MainMenu.xib b/English.lproj/MainMenu.xib
index bbbfbfeed..d5e8280d2 100644
--- a/English.lproj/MainMenu.xib
+++ b/English.lproj/MainMenu.xib
@@ -12,6 +12,7 @@
@@ -65,6 +98,38 @@
771
+
+
+ _menu
+
+
+
+ 779
+
+
+
+ _updater
+
+
+
+ 794
+
+
+
+ deploy:
+
+
+
+ 795
+
+
+
+ checkForUpdates:
+
+
+
+ 796
+
@@ -105,6 +170,33 @@
SquirrelPanel
+
+ 772
+
+
+ Updater
+
+
+ 773
+
+
+ YES
+
+
+
+
+ Menu
+
+
+ 774
+
+
+
+
+ 776
+
+
+
@@ -116,6 +208,11 @@
-3.IBPluginDependency
252.IBPluginDependency
770.IBPluginDependency
+ 772.IBPluginDependency
+ 773.IBEditorWindowLastContentRect
+ 773.IBPluginDependency
+ 774.IBPluginDependency
+ 776.IBPluginDependency
YES
@@ -124,6 +221,11 @@
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ {{542, 469}, {190, 43}}
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
+ com.apple.InterfaceBuilder.CocoaPlugin
@@ -142,7 +244,7 @@
- 771
+ 796
@@ -150,17 +252,30 @@
SquirrelApplicationDelegate
NSObject
+
+ deploy:
+ id
+
+
+ deploy:
+
+ deploy:
+ id
+
+
YES
YES
_menu
_panel
+ _updater
YES
NSMenu
SquirrelPanel
+ id
@@ -169,6 +284,7 @@
YES
_menu
_panel
+ _updater
YES
@@ -180,6 +296,10 @@
_panel
SquirrelPanel
+
+ _updater
+ id
+
@@ -196,6 +316,50 @@
+
+ YES
+
+ NSObject
+
+ IBDocumentRelativeSource
+ ../Sparkle.framework/Versions/A/Headers/SUAppcast.h
+
+
+
+ NSObject
+
+ IBDocumentRelativeSource
+ ../Sparkle.framework/Versions/A/Headers/SUUpdater.h
+
+
+
+ SUUpdater
+ NSObject
+
+ checkForUpdates:
+ id
+
+
+ checkForUpdates:
+
+ checkForUpdates:
+ id
+
+
+
+ delegate
+ id
+
+
+ delegate
+
+ delegate
+ id
+
+
+
+
+
YES
@@ -249,6 +413,14 @@
AppKit.framework/Headers/NSMenu.h
+
+ NSMenuItem
+ NSObject
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSMenuItem.h
+
+
NSObject
@@ -358,7 +530,7 @@
NSObject
-
+
IBFrameworkSource
AppKit.framework/Headers/NSView.h
@@ -503,6 +675,20 @@
InputMethodKit.framework/Headers/IMKInputController.h
+
+ NSObject
+
+ IBFrameworkSource
+ Sparkle.framework/Headers/SUAppcast.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Sparkle.framework/Headers/SUUpdater.h
+
+
NSResponder
@@ -518,6 +704,56 @@
AppKit.framework/Headers/NSResponder.h
+
+ NSView
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSClipView.h
+
+
+
+ NSView
+
+
+
+ NSView
+
+ IBFrameworkSource
+ AppKit.framework/Headers/NSRulerView.h
+
+
+
+ NSView
+ NSResponder
+
+
+
+ SUUpdater
+ NSObject
+
+ checkForUpdates:
+ id
+
+
+ checkForUpdates:
+
+ checkForUpdates:
+ id
+
+
+
+ delegate
+ id
+
+
+ delegate
+
+ delegate
+ id
+
+
+
+
0
@@ -537,5 +773,18 @@
YES
../Squirrel.xcodeproj
3
+
+ YES
+
+ YES
+ NSMenuCheckmark
+ NSMenuMixedState
+
+
+ YES
+ {9, 8}
+ {7, 2}
+
+
diff --git a/Info.plist b/Info.plist
index e38aba86d..daf0d5053 100644
--- a/Info.plist
+++ b/Info.plist
@@ -7,7 +7,7 @@
CFBundleExecutable
Squirrel
CFBundleIconFile
- rime.icns
+ zhung.png
CFBundleIdentifier
com.googlecode.rimeime.inputmethod.Squirrel
CFBundleInfoDictionaryVersion
@@ -27,9 +27,9 @@
InputMethodServerDelegateClass
SquirrelInputController
LSBackgroundOnly
-
- LSUIElement
+ LSUIElement
+
NSMainNibFile
MainMenu
NSPrincipalClass
@@ -41,5 +41,9 @@
tsInputMethodIconFileKey
rime.icns
+ SUPublicDSAKeyFile
+ dsa_pub.pem
+ SUFeedURL
+ http://rimeime.googlecode.com/svn/trunk/squirrel/update/appcast.xml
diff --git a/Sparkle.framework/Headers b/Sparkle.framework/Headers
new file mode 120000
index 000000000..a177d2a6b
--- /dev/null
+++ b/Sparkle.framework/Headers
@@ -0,0 +1 @@
+Versions/Current/Headers
\ No newline at end of file
diff --git a/Sparkle.framework/Resources b/Sparkle.framework/Resources
new file mode 120000
index 000000000..953ee36f3
--- /dev/null
+++ b/Sparkle.framework/Resources
@@ -0,0 +1 @@
+Versions/Current/Resources
\ No newline at end of file
diff --git a/Sparkle.framework/Sparkle b/Sparkle.framework/Sparkle
new file mode 120000
index 000000000..b2c52731e
--- /dev/null
+++ b/Sparkle.framework/Sparkle
@@ -0,0 +1 @@
+Versions/Current/Sparkle
\ No newline at end of file
diff --git a/Sparkle.framework/Versions/A/Headers/SUAppcast.h b/Sparkle.framework/Versions/A/Headers/SUAppcast.h
new file mode 100644
index 000000000..171148a4d
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Headers/SUAppcast.h
@@ -0,0 +1,33 @@
+//
+// SUAppcast.h
+// Sparkle
+//
+// Created by Andy Matuschak on 3/12/06.
+// Copyright 2006 Andy Matuschak. All rights reserved.
+//
+
+#ifndef SUAPPCAST_H
+#define SUAPPCAST_H
+
+@class SUAppcastItem;
+@interface SUAppcast : NSObject {
+ NSArray *items;
+ NSString *userAgentString;
+ id delegate;
+ NSMutableData *incrementalData;
+}
+
+- (void)fetchAppcastFromURL:(NSURL *)url;
+- (void)setDelegate:delegate;
+- (void)setUserAgentString:(NSString *)userAgentString;
+
+- (NSArray *)items;
+
+@end
+
+@interface NSObject (SUAppcastDelegate)
+- (void)appcastDidFinishLoading:(SUAppcast *)appcast;
+- (void)appcast:(SUAppcast *)appcast failedToLoadWithError:(NSError *)error;
+@end
+
+#endif
diff --git a/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h b/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h
new file mode 100644
index 000000000..7f1ca65c0
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Headers/SUAppcastItem.h
@@ -0,0 +1,47 @@
+//
+// SUAppcastItem.h
+// Sparkle
+//
+// Created by Andy Matuschak on 3/12/06.
+// Copyright 2006 Andy Matuschak. All rights reserved.
+//
+
+#ifndef SUAPPCASTITEM_H
+#define SUAPPCASTITEM_H
+
+@interface SUAppcastItem : NSObject {
+ NSString *title;
+ NSDate *date;
+ NSString *itemDescription;
+
+ NSURL *releaseNotesURL;
+
+ NSString *DSASignature;
+ NSString *minimumSystemVersion;
+
+ NSURL *fileURL;
+ NSString *versionString;
+ NSString *displayVersionString;
+
+ NSDictionary *propertiesDictionary;
+}
+
+// Initializes with data from a dictionary provided by the RSS class.
+- initWithDictionary:(NSDictionary *)dict;
+
+- (NSString *)title;
+- (NSString *)versionString;
+- (NSString *)displayVersionString;
+- (NSDate *)date;
+- (NSString *)itemDescription;
+- (NSURL *)releaseNotesURL;
+- (NSURL *)fileURL;
+- (NSString *)DSASignature;
+- (NSString *)minimumSystemVersion;
+
+// Returns the dictionary provided in initWithDictionary; this might be useful later for extensions.
+- (NSDictionary *)propertiesDictionary;
+
+@end
+
+#endif
diff --git a/Sparkle.framework/Versions/A/Headers/SUUpdater.h b/Sparkle.framework/Versions/A/Headers/SUUpdater.h
new file mode 100644
index 000000000..e78c4d353
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Headers/SUUpdater.h
@@ -0,0 +1,118 @@
+//
+// SUUpdater.h
+// Sparkle
+//
+// Created by Andy Matuschak on 1/4/06.
+// Copyright 2006 Andy Matuschak. All rights reserved.
+//
+
+#ifndef SUUPDATER_H
+#define SUUPDATER_H
+
+#import
+
+@class SUUpdateDriver, SUAppcastItem, SUHost, SUAppcast;
+@interface SUUpdater : NSObject {
+ NSTimer *checkTimer;
+ SUUpdateDriver *driver;
+
+ SUHost *host;
+ IBOutlet id delegate;
+}
+
++ (SUUpdater *)sharedUpdater;
++ (SUUpdater *)updaterForBundle:(NSBundle *)bundle;
+- (NSBundle *)hostBundle;
+
+- (void)setDelegate:(id)delegate;
+- delegate;
+
+- (void)setAutomaticallyChecksForUpdates:(BOOL)automaticallyChecks;
+- (BOOL)automaticallyChecksForUpdates;
+
+- (void)setUpdateCheckInterval:(NSTimeInterval)interval;
+- (NSTimeInterval)updateCheckInterval;
+
+- (void)setFeedURL:(NSURL *)feedURL;
+- (NSURL *)feedURL;
+
+- (void)setSendsSystemProfile:(BOOL)sendsSystemProfile;
+- (BOOL)sendsSystemProfile;
+
+- (void)setAutomaticallyDownloadsUpdates:(BOOL)automaticallyDownloadsUpdates;
+- (BOOL)automaticallyDownloadsUpdates;
+
+// This IBAction is meant for a main menu item. Hook up any menu item to this action,
+// and Sparkle will check for updates and report back its findings verbosely.
+- (IBAction)checkForUpdates:sender;
+
+// This kicks off an update meant to be programmatically initiated. That is, it will display no UI unless it actually finds an update,
+// in which case it proceeds as usual. If the fully automated updating is turned on, however, this will invoke that behavior, and if an
+// update is found, it will be downloaded and prepped for installation.
+- (void)checkForUpdatesInBackground;
+
+// Date of last update check. Returns null if no check has been performed.
+- (NSDate*)lastUpdateCheckDate;
+
+// This begins a "probing" check for updates which will not actually offer to update to that version. The delegate methods, though,
+// (up to updater:didFindValidUpdate: and updaterDidNotFindUpdate:), are called, so you can use that information in your UI.
+- (void)checkForUpdateInformation;
+
+// Call this to appropriately schedule or cancel the update checking timer according to the preferences for time interval and automatic checks. This call does not change the date of the next check, but only the internal NSTimer.
+- (void)resetUpdateCycle;
+
+- (BOOL)updateInProgress;
+@end
+
+@interface NSObject (SUUpdaterDelegateInformalProtocol)
+// This method allows you to add extra parameters to the appcast URL, potentially based on whether or not Sparkle will also be sending along the system profile. This method should return an array of dictionaries with keys: "key", "value", "displayKey", "displayValue", the latter two being specifically for display to the user.
+- (NSArray *)feedParametersForUpdater:(SUUpdater *)updater sendingSystemProfile:(BOOL)sendingProfile;
+
+// Use this to override the default behavior for Sparkle prompting the user about automatic update checks.
+- (BOOL)updaterShouldPromptForPermissionToCheckForUpdates:(SUUpdater *)bundle;
+
+// Implement this if you want to do some special handling with the appcast once it finishes loading.
+- (void)updater:(SUUpdater *)updater didFinishLoadingAppcast:(SUAppcast *)appcast;
+
+// If you're using special logic or extensions in your appcast, implement this to use your own logic for finding
+// a valid update, if any, in the given appcast.
+- (SUAppcastItem *)bestValidUpdateInAppcast:(SUAppcast *)appcast forUpdater:(SUUpdater *)bundle;
+
+// Sent when a valid update is found by the update driver.
+- (void)updater:(SUUpdater *)updater didFindValidUpdate:(SUAppcastItem *)update;
+
+// Sent when a valid update is not found.
+- (void)updaterDidNotFindUpdate:(SUUpdater *)update;
+
+// Sent immediately before installing the specified update.
+- (void)updater:(SUUpdater *)updater willInstallUpdate:(SUAppcastItem *)update;
+
+// Return YES to delay the relaunch until you do some processing; invoke the given NSInvocation to continue.
+- (BOOL)updater:(SUUpdater *)updater shouldPostponeRelaunchForUpdate:(SUAppcastItem *)update untilInvoking:(NSInvocation *)invocation;
+
+// Called immediately before relaunching.
+- (void)updaterWillRelaunchApplication:(SUUpdater *)updater;
+
+// This method allows you to provide a custom version comparator.
+// If you don't implement this method or return nil, the standard version comparator will be used.
+- (id )versionComparatorForUpdater:(SUUpdater *)updater;
+
+// Returns the path which is used to relaunch the client after the update is installed. By default, the path of the host bundle.
+- (NSString *)pathToRelaunchForUpdater:(SUUpdater *)updater;
+
+@end
+
+// Define some minimum intervals to avoid DOS-like checking attacks. These are in seconds.
+#ifdef DEBUG
+#define SU_MIN_CHECK_INTERVAL 60
+#else
+#define SU_MIN_CHECK_INTERVAL 60*60
+#endif
+
+#ifdef DEBUG
+#define SU_DEFAULT_CHECK_INTERVAL 60
+#else
+#define SU_DEFAULT_CHECK_INTERVAL 60*60*24
+#endif
+
+#endif
diff --git a/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h b/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h
new file mode 100644
index 000000000..3d11ae873
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h
@@ -0,0 +1,27 @@
+//
+// SUVersionComparisonProtocol.h
+// Sparkle
+//
+// Created by Andy Matuschak on 12/21/07.
+// Copyright 2007 Andy Matuschak. All rights reserved.
+//
+
+#ifndef SUVERSIONCOMPARISONPROTOCOL_H
+#define SUVERSIONCOMPARISONPROTOCOL_H
+
+/*!
+ @protocol
+ @abstract Implement this protocol to provide version comparison facilities for Sparkle.
+*/
+@protocol SUVersionComparison
+
+/*!
+ @method
+ @abstract An abstract method to compare two version strings.
+ @discussion Should return NSOrderedAscending if b > a, NSOrderedDescending if b < a, and NSOrderedSame if they are equivalent.
+*/
+- (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB;
+
+@end
+
+#endif
diff --git a/Sparkle.framework/Versions/A/Headers/Sparkle.h b/Sparkle.framework/Versions/A/Headers/Sparkle.h
new file mode 100644
index 000000000..08dd57775
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Headers/Sparkle.h
@@ -0,0 +1,21 @@
+//
+// Sparkle.h
+// Sparkle
+//
+// Created by Andy Matuschak on 3/16/06. (Modified by CDHW on 23/12/07)
+// Copyright 2006 Andy Matuschak. All rights reserved.
+//
+
+#ifndef SPARKLE_H
+#define SPARKLE_H
+
+// This list should include the shared headers. It doesn't matter if some of them aren't shared (unless
+// there are name-space collisions) so we can list all of them to start with:
+
+#import
+
+#import
+#import
+#import
+
+#endif
diff --git a/Sparkle.framework/Versions/A/Resources/Info.plist b/Sparkle.framework/Versions/A/Resources/Info.plist
new file mode 100644
index 000000000..c7f277d04
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/Info.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ Sparkle
+ CFBundleIdentifier
+ org.andymatuschak.Sparkle
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ Sparkle
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.5 Beta 6
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 313
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/License.txt b/Sparkle.framework/Versions/A/Resources/License.txt
new file mode 100644
index 000000000..20466c417
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/License.txt
@@ -0,0 +1,7 @@
+Copyright (c) 2006 Andy Matuschak
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist b/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist
new file mode 100644
index 000000000..92ef9471e
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist
@@ -0,0 +1,174 @@
+
+
+
+
+ ADP2,1
+ Developer Transition Kit
+ MacBook1,1
+ MacBook (Core Duo)
+ MacBook2,1
+ MacBook (Core 2 Duo)
+ MacBook4,1
+ MacBook (Core 2 Duo Feb 2008)
+ MacBookAir1,1
+ MacBook Air (January 2008)
+ MacBookPro1,1
+ MacBook Pro Core Duo (15-inch)
+ MacBookPro1,2
+ MacBook Pro Core Duo (17-inch)
+ MacBookPro2,1
+ MacBook Pro Core 2 Duo (17-inch)
+ MacBookPro2,2
+ MacBook Pro Core 2 Duo (15-inch)
+ MacBookPro3,1
+ MacBook Pro Core 2 Duo (15-inch LED, Core 2 Duo)
+ MacBookPro3,2
+ MacBook Pro Core 2 Duo (17-inch HD, Core 2 Duo)
+ MacBookPro4,1
+ MacBook Pro (Core 2 Duo Feb 2008)
+ MacPro1,1
+ Mac Pro (four-core)
+ MacPro2,1
+ Mac Pro (eight-core)
+ MacPro3,1
+ Mac Pro (January 2008 4- or 8- core "Harpertown")
+ Macmini1,1
+ Mac Mini (Core Solo/Duo)
+ PowerBook1,1
+ PowerBook G3
+ PowerBook2,1
+ iBook G3
+ PowerBook2,2
+ iBook G3 (FireWire)
+ PowerBook2,3
+ iBook G3
+ PowerBook2,4
+ iBook G3
+ PowerBook3,1
+ PowerBook G3 (FireWire)
+ PowerBook3,2
+ PowerBook G4
+ PowerBook3,3
+ PowerBook G4 (Gigabit Ethernet)
+ PowerBook3,4
+ PowerBook G4 (DVI)
+ PowerBook3,5
+ PowerBook G4 (1GHz / 867MHz)
+ PowerBook4,1
+ iBook G3 (Dual USB, Late 2001)
+ PowerBook4,2
+ iBook G3 (16MB VRAM)
+ PowerBook4,3
+ iBook G3 Opaque 16MB VRAM, 32MB VRAM, Early 2003)
+ PowerBook5,1
+ PowerBook G4 (17 inch)
+ PowerBook5,2
+ PowerBook G4 (15 inch FW 800)
+ PowerBook5,3
+ PowerBook G4 (17-inch 1.33GHz)
+ PowerBook5,4
+ PowerBook G4 (15 inch 1.5/1.33GHz)
+ PowerBook5,5
+ PowerBook G4 (17-inch 1.5GHz)
+ PowerBook5,6
+ PowerBook G4 (15 inch 1.67GHz/1.5GHz)
+ PowerBook5,7
+ PowerBook G4 (17-inch 1.67GHz)
+ PowerBook5,8
+ PowerBook G4 (Double layer SD, 15 inch)
+ PowerBook5,9
+ PowerBook G4 (Double layer SD, 17 inch)
+ PowerBook6,1
+ PowerBook G4 (12 inch)
+ PowerBook6,2
+ PowerBook G4 (12 inch, DVI)
+ PowerBook6,3
+ iBook G4
+ PowerBook6,4
+ PowerBook G4 (12 inch 1.33GHz)
+ PowerBook6,5
+ iBook G4 (Early-Late 2004)
+ PowerBook6,7
+ iBook G4 (Mid 2005)
+ PowerBook6,8
+ PowerBook G4 (12 inch 1.5GHz)
+ PowerMac1,1
+ Power Macintosh G3 (Blue & White)
+ PowerMac1,2
+ Power Macintosh G4 (PCI Graphics)
+ PowerMac10,1
+ Mac Mini G4
+ PowerMac10,2
+ Mac Mini (Late 2005)
+ PowerMac11,2
+ Power Macintosh G5 (Late 2005)
+ PowerMac12,1
+ iMac G5 (iSight)
+ PowerMac2,1
+ iMac G3 (Slot-loading CD-ROM)
+ PowerMac2,2
+ iMac G3 (Summer 2000)
+ PowerMac3,1
+ Power Macintosh G4 (AGP Graphics)
+ PowerMac3,2
+ Power Macintosh G4 (AGP Graphics)
+ PowerMac3,3
+ Power Macintosh G4 (Gigabit Ethernet)
+ PowerMac3,4
+ Power Macintosh G4 (Digital Audio)
+ PowerMac3,5
+ Power Macintosh G4 (Quick Silver)
+ PowerMac3,6
+ Power Macintosh G4 (Mirrored Drive Door)
+ PowerMac4,1
+ iMac G3 (Early/Summer 2001)
+ PowerMac4,2
+ iMac G4 (Flat Panel)
+ PowerMac4,4
+ eMac
+ PowerMac4,5
+ iMac G4 (17-inch Flat Panel)
+ PowerMac5,1
+ Power Macintosh G4 Cube
+ PowerMac6,1
+ iMac G4 (USB 2.0)
+ PowerMac6,3
+ iMac G4 (20-inch Flat Panel)
+ PowerMac6,4
+ eMac (USB 2.0, 2005)
+ PowerMac7,2
+ Power Macintosh G5
+ PowerMac7,3
+ Power Macintosh G5
+ PowerMac8,1
+ iMac G5
+ PowerMac8,2
+ iMac G5 (Ambient Light Sensor)
+ PowerMac9,1
+ Power Macintosh G5 (Late 2005)
+ RackMac1,1
+ Xserve G4
+ RackMac1,2
+ Xserve G4 (slot-loading, cluster node)
+ RackMac3,1
+ Xserve G5
+ Xserve1,1
+ Xserve (Intel Xeon)
+ Xserve2,1
+ Xserve (January 2008 quad-core)
+ iMac1,1
+ iMac G3 (Rev A-D)
+ iMac4,1
+ iMac (Core Duo)
+ iMac4,2
+ iMac for Education (17-inch, Core Duo)
+ iMac5,1
+ iMac (Core 2 Duo, 17 or 20 inch, SuperDrive)
+ iMac5,2
+ iMac (Core 2 Duo, 17 inch, Combo Drive)
+ iMac6,1
+ iMac (Core 2 Duo, 24 inch, SuperDrive)
+ iMac8,1
+ iMac (April 2008)
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/SUStatus.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/SUStatus.nib/classes.nib
new file mode 100644
index 000000000..22f13f8b6
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/SUStatus.nib/classes.nib
@@ -0,0 +1,56 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ CLASS
+ NSApplication
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSResponder
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ CLASS
+ SUStatusController
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ actionButton
+ NSButton
+ progressBar
+ NSProgressIndicator
+
+ SUPERCLASS
+ SUWindowController
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/SUStatus.nib/info.nib b/Sparkle.framework/Versions/A/Resources/SUStatus.nib/info.nib
new file mode 100644
index 000000000..a9ac8673c
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/SUStatus.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 670
+ IBLastKnownRelativeProjectPath
+ Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 10A96
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib
new file mode 100644
index 000000000..4f1d59817
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..4b1ab30e5
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/classes.nib
@@ -0,0 +1,50 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ doNotInstall
+ id
+ installLater
+ id
+ installNow
+ id
+
+ CLASS
+ SUAutomaticUpdateAlert
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..2e04cfa03
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 667
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..6b926302e
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..994d4c368
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/classes.nib
@@ -0,0 +1,67 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ CLASS
+ NSApplication
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSResponder
+
+
+ ACTIONS
+
+ installUpdate
+ id
+ remindMeLater
+ id
+ skipThisVersion
+ id
+
+ CLASS
+ SUUpdateAlert
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ description
+ NSTextField
+ releaseNotesView
+ WebView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..2e04cfa03
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 667
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..b4353d2f7
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/classes.nib
new file mode 100644
index 000000000..5220a221f
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/classes.nib
@@ -0,0 +1,59 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ finishPrompt
+ id
+ toggleMoreInfo
+ id
+
+ CLASS
+ SUUpdatePermissionPrompt
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ descriptionTextField
+ NSTextField
+ moreInfoButton
+ NSButton
+ moreInfoView
+ NSView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/info.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/info.nib
new file mode 100644
index 000000000..2e04cfa03
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 667
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
new file mode 100644
index 000000000..b403a3e45
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings
new file mode 100644
index 000000000..b31f928fd
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings differ
diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..4b1ab30e5
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib
@@ -0,0 +1,50 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ doNotInstall
+ id
+ installLater
+ id
+ installNow
+ id
+
+ CLASS
+ SUAutomaticUpdateAlert
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..ab36d3103
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 658
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9C7010
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..7630390c8
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..994d4c368
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/classes.nib
@@ -0,0 +1,67 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ CLASS
+ NSApplication
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSResponder
+
+
+ ACTIONS
+
+ installUpdate
+ id
+ remindMeLater
+ id
+ skipThisVersion
+ id
+
+ CLASS
+ SUUpdateAlert
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ description
+ NSTextField
+ releaseNotesView
+ WebView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..2fb8a8372
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 670
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 18
+
+ IBSystem Version
+ 10A96
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..e7e7497db
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/classes.nib
new file mode 100644
index 000000000..5220a221f
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/classes.nib
@@ -0,0 +1,59 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ finishPrompt
+ id
+ toggleMoreInfo
+ id
+
+ CLASS
+ SUUpdatePermissionPrompt
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ descriptionTextField
+ NSTextField
+ moreInfoButton
+ NSButton
+ moreInfoView
+ NSView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/info.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/info.nib
new file mode 100644
index 000000000..b1cd28edd
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/info.nib
@@ -0,0 +1,21 @@
+
+
+
+
+ IBFramework Version
+ 670
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+ 41
+
+ IBSystem Version
+ 10A96
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
new file mode 100644
index 000000000..e8dc5b880
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings
new file mode 100644
index 000000000..16e0787b4
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/en.lproj/Sparkle.strings differ
diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..4b1ab30e5
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/classes.nib
@@ -0,0 +1,50 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ doNotInstall
+ id
+ installLater
+ id
+ installNow
+ id
+
+ CLASS
+ SUAutomaticUpdateAlert
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..2e04cfa03
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 667
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..6b2f938f9
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..994d4c368
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/classes.nib
@@ -0,0 +1,67 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ CLASS
+ NSApplication
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSResponder
+
+
+ ACTIONS
+
+ installUpdate
+ id
+ remindMeLater
+ id
+ skipThisVersion
+ id
+
+ CLASS
+ SUUpdateAlert
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ description
+ NSTextField
+ releaseNotesView
+ WebView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..2e04cfa03
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 667
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..c9b1e7d88
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/classes.nib
new file mode 100644
index 000000000..5220a221f
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/classes.nib
@@ -0,0 +1,59 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ finishPrompt
+ id
+ toggleMoreInfo
+ id
+
+ CLASS
+ SUUpdatePermissionPrompt
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ descriptionTextField
+ NSTextField
+ moreInfoButton
+ NSButton
+ moreInfoView
+ NSView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/info.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/info.nib
new file mode 100644
index 000000000..3eb7f818e
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 667
+ IBLastKnownRelativeProjectPath
+ ../../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
new file mode 100644
index 000000000..8c54c217c
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings
new file mode 100644
index 000000000..f83ea23cd
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings differ
diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..4b1ab30e5
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/classes.nib
@@ -0,0 +1,50 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ doNotInstall
+ id
+ installLater
+ id
+ installNow
+ id
+
+ CLASS
+ SUAutomaticUpdateAlert
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..33a60200f
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/info.nib
@@ -0,0 +1,16 @@
+
+
+
+
+ IBFramework Version
+ 629
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..4cd529a56
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..994d4c368
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/classes.nib
@@ -0,0 +1,67 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ CLASS
+ NSApplication
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSResponder
+
+
+ ACTIONS
+
+ installUpdate
+ id
+ remindMeLater
+ id
+ skipThisVersion
+ id
+
+ CLASS
+ SUUpdateAlert
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ description
+ NSTextField
+ releaseNotesView
+ WebView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..d2586ea20
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/info.nib
@@ -0,0 +1,16 @@
+
+
+
+
+ IBFramework Version
+ 629
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ IBSystem Version
+ 9E17
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..65dfc95e3
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/classes.nib
new file mode 100644
index 000000000..5220a221f
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/classes.nib
@@ -0,0 +1,59 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ finishPrompt
+ id
+ toggleMoreInfo
+ id
+
+ CLASS
+ SUUpdatePermissionPrompt
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ descriptionTextField
+ NSTextField
+ moreInfoButton
+ NSButton
+ moreInfoView
+ NSView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/info.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/info.nib
new file mode 100644
index 000000000..d2586ea20
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/info.nib
@@ -0,0 +1,16 @@
+
+
+
+
+ IBFramework Version
+ 629
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ IBSystem Version
+ 9E17
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
new file mode 100644
index 000000000..4b7cc9054
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings
new file mode 100644
index 000000000..ea175ae71
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings differ
diff --git a/Sparkle.framework/Versions/A/Resources/fr.lproj/fr.lproj b/Sparkle.framework/Versions/A/Resources/fr.lproj/fr.lproj
new file mode 120000
index 000000000..88614fe23
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/fr.lproj/fr.lproj
@@ -0,0 +1 @@
+/Users/andym/Development/Build Products/Release/Sparkle.framework/Resources/fr.lproj
\ No newline at end of file
diff --git a/Sparkle.framework/Versions/A/Resources/fr_CA.lproj b/Sparkle.framework/Versions/A/Resources/fr_CA.lproj
new file mode 120000
index 000000000..88614fe23
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/fr_CA.lproj
@@ -0,0 +1 @@
+/Users/andym/Development/Build Products/Release/Sparkle.framework/Resources/fr.lproj
\ No newline at end of file
diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..4b1ab30e5
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib
@@ -0,0 +1,50 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ doNotInstall
+ id
+ installLater
+ id
+ installNow
+ id
+
+ CLASS
+ SUAutomaticUpdateAlert
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..2e04cfa03
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 667
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..15ba8f4c8
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..994d4c368
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/classes.nib
@@ -0,0 +1,67 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ CLASS
+ NSApplication
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSResponder
+
+
+ ACTIONS
+
+ installUpdate
+ id
+ remindMeLater
+ id
+ skipThisVersion
+ id
+
+ CLASS
+ SUUpdateAlert
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ description
+ NSTextField
+ releaseNotesView
+ WebView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..2e04cfa03
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 667
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..298406450
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/classes.nib
new file mode 100644
index 000000000..5220a221f
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/classes.nib
@@ -0,0 +1,59 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ finishPrompt
+ id
+ toggleMoreInfo
+ id
+
+ CLASS
+ SUUpdatePermissionPrompt
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ descriptionTextField
+ NSTextField
+ moreInfoButton
+ NSButton
+ moreInfoView
+ NSView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/info.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/info.nib
new file mode 100644
index 000000000..c4934850f
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 667
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 5
+
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
new file mode 100644
index 000000000..55cc2c271
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings
new file mode 100644
index 000000000..5c410d070
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings differ
diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..4b1ab30e5
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib
@@ -0,0 +1,50 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ doNotInstall
+ id
+ installLater
+ id
+ installNow
+ id
+
+ CLASS
+ SUAutomaticUpdateAlert
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..3f0979083
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib
@@ -0,0 +1,18 @@
+
+
+
+
+ IBFramework Version
+ 629
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..aa38f86ba
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..994d4c368
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/classes.nib
@@ -0,0 +1,67 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ CLASS
+ NSApplication
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSResponder
+
+
+ ACTIONS
+
+ installUpdate
+ id
+ remindMeLater
+ id
+ skipThisVersion
+ id
+
+ CLASS
+ SUUpdateAlert
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ description
+ NSTextField
+ releaseNotesView
+ WebView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..d2586ea20
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/info.nib
@@ -0,0 +1,16 @@
+
+
+
+
+ IBFramework Version
+ 629
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ IBSystem Version
+ 9E17
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..c82d3581b
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/classes.nib
new file mode 100644
index 000000000..5220a221f
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/classes.nib
@@ -0,0 +1,59 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ finishPrompt
+ id
+ toggleMoreInfo
+ id
+
+ CLASS
+ SUUpdatePermissionPrompt
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ descriptionTextField
+ NSTextField
+ moreInfoButton
+ NSButton
+ moreInfoView
+ NSView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/info.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/info.nib
new file mode 100644
index 000000000..d2586ea20
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/info.nib
@@ -0,0 +1,16 @@
+
+
+
+
+ IBFramework Version
+ 629
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ IBSystem Version
+ 9E17
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
new file mode 100644
index 000000000..ac298ce7e
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings
new file mode 100644
index 000000000..67cf535ee
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings differ
diff --git a/Sparkle.framework/Versions/A/Resources/relaunch b/Sparkle.framework/Versions/A/Resources/relaunch
new file mode 100755
index 000000000..e7b96d614
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/relaunch differ
diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..4b1ab30e5
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/classes.nib
@@ -0,0 +1,50 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ doNotInstall
+ id
+ installLater
+ id
+ installNow
+ id
+
+ CLASS
+ SUAutomaticUpdateAlert
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..2b3d42576
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 670
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9E17
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..1d4655c59
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..994d4c368
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/classes.nib
@@ -0,0 +1,67 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ CLASS
+ NSApplication
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSResponder
+
+
+ ACTIONS
+
+ installUpdate
+ id
+ remindMeLater
+ id
+ skipThisVersion
+ id
+
+ CLASS
+ SUUpdateAlert
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ description
+ NSTextField
+ releaseNotesView
+ WebView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..2b3d42576
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 670
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 9E17
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..103b1cf84
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/classes.nib
new file mode 100644
index 000000000..0f776c895
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/classes.nib
@@ -0,0 +1,59 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ finishPrompt
+ id
+ toggleMoreInfo
+ id
+
+ CLASS
+ SUUpdatePermissionPrompt
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ descriptionTextField
+ NSTextField
+ moreInfoButton
+ NSButton
+ moreInfoView
+ NSView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/info.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/info.nib
new file mode 100644
index 000000000..5132e29f2
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/info.nib
@@ -0,0 +1,18 @@
+
+
+
+
+ IBFramework Version
+ 670
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ IBSystem Version
+ 9E17
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
new file mode 100644
index 000000000..c09d9e70d
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings
new file mode 100644
index 000000000..f3ff9d86c
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings differ
diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..4b1ab30e5
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/classes.nib
@@ -0,0 +1,50 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ doNotInstall
+ id
+ installLater
+ id
+ installNow
+ id
+
+ CLASS
+ SUAutomaticUpdateAlert
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..c5a067e89
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 670
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 10A96
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..53cb91a9b
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/classes.nib
new file mode 100644
index 000000000..018710af8
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/classes.nib
@@ -0,0 +1,39 @@
+{
+ IBClasses = (
+ {
+ CLASS = FirstResponder;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSObject;
+ },
+ {
+ CLASS = NSApplication;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSResponder;
+ },
+ {
+ CLASS = NSObject;
+ LANGUAGE = ObjC;
+ },
+ {
+ ACTIONS = {
+ installUpdate = id;
+ remindMeLater = id;
+ skipThisVersion = id;
+ };
+ CLASS = SUUpdateAlert;
+ LANGUAGE = ObjC;
+ OUTLETS = {
+ delegate = id;
+ description = NSTextField;
+ releaseNotesView = WebView;
+ };
+ SUPERCLASS = SUWindowController;
+ },
+ {
+ CLASS = SUWindowController;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSWindowController;
+ }
+ );
+ IBVersion = 1;
+}
\ No newline at end of file
diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/info.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/info.nib
new file mode 100644
index 000000000..6b787d4b9
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/info.nib
@@ -0,0 +1,18 @@
+
+
+
+
+ IBDocumentLocation
+ 69 14 356 240 0 0 1280 778
+ IBFramework Version
+ 489.0
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBSystem Version
+ 9D34
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 000000000..7e6d490e7
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/classes.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/classes.nib
new file mode 100644
index 000000000..5220a221f
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/classes.nib
@@ -0,0 +1,59 @@
+
+
+
+
+ IBClasses
+
+
+ CLASS
+ SUWindowController
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSWindowController
+
+
+ ACTIONS
+
+ finishPrompt
+ id
+ toggleMoreInfo
+ id
+
+ CLASS
+ SUUpdatePermissionPrompt
+ LANGUAGE
+ ObjC
+ OUTLETS
+
+ delegate
+ id
+ descriptionTextField
+ NSTextField
+ moreInfoButton
+ NSButton
+ moreInfoView
+ NSView
+
+ SUPERCLASS
+ SUWindowController
+
+
+ CLASS
+ FirstResponder
+ LANGUAGE
+ ObjC
+ SUPERCLASS
+ NSObject
+
+
+ CLASS
+ NSObject
+ LANGUAGE
+ ObjC
+
+
+ IBVersion
+ 1
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/info.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/info.nib
new file mode 100644
index 000000000..c5a067e89
--- /dev/null
+++ b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/info.nib
@@ -0,0 +1,20 @@
+
+
+
+
+ IBFramework Version
+ 670
+ IBLastKnownRelativeProjectPath
+ ../Sparkle.xcodeproj
+ IBOldestOS
+ 5
+ IBOpenObjects
+
+ 6
+
+ IBSystem Version
+ 10A96
+ targetFramework
+ IBCocoaFramework
+
+
diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
new file mode 100644
index 000000000..64babac12
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib differ
diff --git a/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings b/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings
new file mode 100644
index 000000000..b676a4f5d
Binary files /dev/null and b/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings differ
diff --git a/Sparkle.framework/Versions/A/Sparkle b/Sparkle.framework/Versions/A/Sparkle
new file mode 100755
index 000000000..0db0a8f01
Binary files /dev/null and b/Sparkle.framework/Versions/A/Sparkle differ
diff --git a/Sparkle.framework/Versions/Current b/Sparkle.framework/Versions/Current
new file mode 120000
index 000000000..8c7e5a667
--- /dev/null
+++ b/Sparkle.framework/Versions/Current
@@ -0,0 +1 @@
+A
\ No newline at end of file
diff --git a/Squirrel.xcodeproj/project.pbxproj b/Squirrel.xcodeproj/project.pbxproj
index 03f9066f7..66575d3d3 100644
--- a/Squirrel.xcodeproj/project.pbxproj
+++ b/Squirrel.xcodeproj/project.pbxproj
@@ -7,36 +7,46 @@
objects = {
/* Begin PBXBuildFile section */
- 4407F3B014EC078F001329FE /* to_tw_variants.txt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4407F39E14EC071E001329FE /* to_tw_variants.txt */; };
- 4407F3B114EC078F001329FE /* trad_to_simp_characters.ocd in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4407F39F14EC071E001329FE /* trad_to_simp_characters.ocd */; };
- 4407F3B214EC078F001329FE /* trad_to_simp_phrases.ocd in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4407F3A014EC071E001329FE /* trad_to_simp_phrases.ocd */; };
- 4407F3B314EC078F001329FE /* zht2zhs.ini in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4407F3A114EC071E001329FE /* zht2zhs.ini */; };
- 4407F3B414EC078F001329FE /* zht2zhtw_v.ini in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4407F3A214EC071E001329FE /* zht2zhtw_v.ini */; };
- 4426D35E150290C3009100C7 /* terra_pinyin.dict.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4426D34515028210009100C7 /* terra_pinyin.dict.yaml */; };
- 4426D35F150290C3009100C7 /* terra_pinyin.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4426D34615028210009100C7 /* terra_pinyin.schema.yaml */; };
- 4426D360150290CF009100C7 /* bopomofo.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4426D34415028210009100C7 /* bopomofo.schema.yaml */; };
- 44935C1614F0531D00346874 /* double_pinyin.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44935C0214F052EC00346874 /* double_pinyin.schema.yaml */; };
- 44935C1714F0531D00346874 /* jyutping.dict.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44935C0314F052EC00346874 /* jyutping.dict.yaml */; };
- 44935C1814F0531D00346874 /* jyutping.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44935C0414F052EC00346874 /* jyutping.schema.yaml */; };
- 44935C1914F0531D00346874 /* wubi86.dict.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44935C0514F052EC00346874 /* wubi86.dict.yaml */; };
- 44935C1A14F0531D00346874 /* wubi86.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44935C0614F052EC00346874 /* wubi86.schema.yaml */; };
- 44935C1C14F0531D00346874 /* wugniu.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44935C0814F052EC00346874 /* wugniu.schema.yaml */; };
- 44935C1D14F0531D00346874 /* wugniu_lopha.dict.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44935C0914F052EC00346874 /* wugniu_lopha.dict.yaml */; };
- 44935C1E14F0531D00346874 /* wugniu_lopha.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44935C0A14F052EC00346874 /* wugniu_lopha.schema.yaml */; };
+ 4407F3B014EC078F001329FE /* to_tw_variants.txt in Copy opencc Files */ = {isa = PBXBuildFile; fileRef = 4407F39E14EC071E001329FE /* to_tw_variants.txt */; };
+ 4407F3B114EC078F001329FE /* trad_to_simp_characters.ocd in Copy opencc Files */ = {isa = PBXBuildFile; fileRef = 4407F39F14EC071E001329FE /* trad_to_simp_characters.ocd */; };
+ 4407F3B214EC078F001329FE /* trad_to_simp_phrases.ocd in Copy opencc Files */ = {isa = PBXBuildFile; fileRef = 4407F3A014EC071E001329FE /* trad_to_simp_phrases.ocd */; };
+ 4407F3B314EC078F001329FE /* zht2zhs.ini in Copy opencc Files */ = {isa = PBXBuildFile; fileRef = 4407F3A114EC071E001329FE /* zht2zhs.ini */; };
+ 4407F3B414EC078F001329FE /* zht2zhtw_v.ini in Copy opencc Files */ = {isa = PBXBuildFile; fileRef = 4407F3A214EC071E001329FE /* zht2zhtw_v.ini */; };
+ 4426D35E150290C3009100C7 /* terra_pinyin.dict.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 4426D34515028210009100C7 /* terra_pinyin.dict.yaml */; };
+ 4426D35F150290C3009100C7 /* terra_pinyin.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 4426D34615028210009100C7 /* terra_pinyin.schema.yaml */; };
+ 4426D360150290CF009100C7 /* bopomofo.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 4426D34415028210009100C7 /* bopomofo.schema.yaml */; };
+ 44935C1614F0531D00346874 /* double_pinyin.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44935C0214F052EC00346874 /* double_pinyin.schema.yaml */; };
+ 44935C1714F0531D00346874 /* jyutping.dict.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44935C0314F052EC00346874 /* jyutping.dict.yaml */; };
+ 44935C1814F0531D00346874 /* jyutping.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44935C0414F052EC00346874 /* jyutping.schema.yaml */; };
+ 44935C1914F0531D00346874 /* wubi86.dict.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44935C0514F052EC00346874 /* wubi86.dict.yaml */; };
+ 44935C1A14F0531D00346874 /* wubi86.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44935C0614F052EC00346874 /* wubi86.schema.yaml */; };
+ 44935C1C14F0531D00346874 /* wugniu.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44935C0814F052EC00346874 /* wugniu.schema.yaml */; };
+ 44935C1D14F0531D00346874 /* wugniu_lopha.dict.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44935C0914F052EC00346874 /* wugniu_lopha.dict.yaml */; };
+ 44935C1E14F0531D00346874 /* wugniu_lopha.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44935C0A14F052EC00346874 /* wugniu_lopha.schema.yaml */; };
44943BB815066A540005EE85 /* postflight in Resources */ = {isa = PBXBuildFile; fileRef = 44943BB715066A540005EE85 /* postflight */; };
- 44ABBE7014DD5A2100B8A82D /* default.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44ABBE6314DD59EA00B8A82D /* default.yaml */; };
- 44ABBE7114DD5A2700B8A82D /* essay.kct in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44DA7A2714DD596700C1ED3B /* essay.kct */; };
- 44ABBE7214DD5A4000B8A82D /* cangjie5.dict.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44DA7A2914DD596700C1ED3B /* cangjie5.dict.yaml */; };
- 44ABBE7314DD5A4000B8A82D /* cangjie5.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44DA7A2A14DD596700C1ED3B /* cangjie5.schema.yaml */; };
- 44ABBE7514DD5A4000B8A82D /* luna_pinyin.dict.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44DA7A2C14DD596700C1ED3B /* luna_pinyin.dict.yaml */; };
- 44ABBE7614DD5A4000B8A82D /* luna_pinyin.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44DA7A2D14DD596700C1ED3B /* luna_pinyin.schema.yaml */; };
- 44ABBE7714DD5A4000B8A82D /* luna_pinyin_fluency.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44DA7A2E14DD596700C1ED3B /* luna_pinyin_fluency.schema.yaml */; };
- 44ABBE7814DD5A4000B8A82D /* luna_pinyin_simp.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44DA7A2F14DD596700C1ED3B /* luna_pinyin_simp.schema.yaml */; };
- 44ABBE7914DD5A4000B8A82D /* luna_pinyin_tw.schema.yaml in CopyFiles */ = {isa = PBXBuildFile; fileRef = 44DA7A3014DD596700C1ED3B /* luna_pinyin_tw.schema.yaml */; };
+ 44ABBE7014DD5A2100B8A82D /* default.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44ABBE6314DD59EA00B8A82D /* default.yaml */; };
+ 44ABBE7114DD5A2700B8A82D /* essay.kct in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44DA7A2714DD596700C1ED3B /* essay.kct */; };
+ 44ABBE7214DD5A4000B8A82D /* cangjie5.dict.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44DA7A2914DD596700C1ED3B /* cangjie5.dict.yaml */; };
+ 44ABBE7314DD5A4000B8A82D /* cangjie5.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44DA7A2A14DD596700C1ED3B /* cangjie5.schema.yaml */; };
+ 44ABBE7514DD5A4000B8A82D /* luna_pinyin.dict.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44DA7A2C14DD596700C1ED3B /* luna_pinyin.dict.yaml */; };
+ 44ABBE7614DD5A4000B8A82D /* luna_pinyin.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44DA7A2D14DD596700C1ED3B /* luna_pinyin.schema.yaml */; };
+ 44ABBE7714DD5A4000B8A82D /* luna_pinyin_fluency.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44DA7A2E14DD596700C1ED3B /* luna_pinyin_fluency.schema.yaml */; };
+ 44ABBE7814DD5A4000B8A82D /* luna_pinyin_simp.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44DA7A2F14DD596700C1ED3B /* luna_pinyin_simp.schema.yaml */; };
+ 44ABBE7914DD5A4000B8A82D /* luna_pinyin_tw.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44DA7A3014DD596700C1ED3B /* luna_pinyin_tw.schema.yaml */; };
44AC951A1430CF6000C888FB /* SquirrelApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 44AC95171430CF6000C888FB /* SquirrelApplicationDelegate.m */; };
44AC951B1430CF6000C888FB /* SquirrelInputController.m in Sources */ = {isa = PBXBuildFile; fileRef = 44AC95191430CF6000C888FB /* SquirrelInputController.m */; };
44AC951E1430CF7D00C888FB /* rime.icns in Resources */ = {isa = PBXBuildFile; fileRef = 44AC951D1430CF7D00C888FB /* rime.icns */; };
44E98EC314AE1AC900847AD6 /* utf8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 44E98EC214AE1AC900847AD6 /* utf8.cpp */; };
+ 44F01493152AF6AF00EFDAC3 /* Sparkle.framework in Copy 3rd-party Frameworks */ = {isa = PBXBuildFile; fileRef = 44F01492152AF6AF00EFDAC3 /* Sparkle.framework */; };
+ 44F01538152B2D9300EFDAC3 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44F01492152AF6AF00EFDAC3 /* Sparkle.framework */; };
+ 44F7707A152B312E005CF491 /* zhung.png in Resources */ = {isa = PBXBuildFile; fileRef = 44F77079152B312E005CF491 /* zhung.png */; };
+ 44F7708F152B3334005CF491 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = 44F7708E152B3334005CF491 /* dsa_pub.pem */; };
+ 44F771CD152B7BC7005CF491 /* double_pinyin_abc.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44F771C7152B7BC7005CF491 /* double_pinyin_abc.schema.yaml */; };
+ 44F771CE152B7BC7005CF491 /* double_pinyin_flypy.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44F771C8152B7BC7005CF491 /* double_pinyin_flypy.schema.yaml */; };
+ 44F771CF152B7BC7005CF491 /* double_pinyin_mspy.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44F771C9152B7BC7005CF491 /* double_pinyin_mspy.schema.yaml */; };
+ 44F771D0152B7BC7005CF491 /* quick5.dict.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44F771CA152B7BC7005CF491 /* quick5.dict.yaml */; };
+ 44F771D1152B7BC7005CF491 /* quick5.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44F771CB152B7BC7005CF491 /* quick5.schema.yaml */; };
+ 44F771D2152B7BC7005CF491 /* stenotype.schema.yaml in Copy Shared Support Files */ = {isa = PBXBuildFile; fileRef = 44F771CC152B7BC7005CF491 /* stenotype.schema.yaml */; };
44F84AD714E94C490005D70B /* SquirrelPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = 44F84AD614E94C490005D70B /* SquirrelPanel.m */; };
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
@@ -49,47 +59,55 @@
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
- 4407F3CA14EC079A001329FE /* CopyFiles */ = {
+ 4407F3CA14EC079A001329FE /* Copy opencc Files */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = opencc;
dstSubfolderSpec = 12;
files = (
- 4407F3B014EC078F001329FE /* to_tw_variants.txt in CopyFiles */,
- 4407F3B114EC078F001329FE /* trad_to_simp_characters.ocd in CopyFiles */,
- 4407F3B214EC078F001329FE /* trad_to_simp_phrases.ocd in CopyFiles */,
- 4407F3B314EC078F001329FE /* zht2zhs.ini in CopyFiles */,
- 4407F3B414EC078F001329FE /* zht2zhtw_v.ini in CopyFiles */,
+ 4407F3B014EC078F001329FE /* to_tw_variants.txt in Copy opencc Files */,
+ 4407F3B114EC078F001329FE /* trad_to_simp_characters.ocd in Copy opencc Files */,
+ 4407F3B214EC078F001329FE /* trad_to_simp_phrases.ocd in Copy opencc Files */,
+ 4407F3B314EC078F001329FE /* zht2zhs.ini in Copy opencc Files */,
+ 4407F3B414EC078F001329FE /* zht2zhtw_v.ini in Copy opencc Files */,
);
+ name = "Copy opencc Files";
runOnlyForDeploymentPostprocessing = 0;
};
- 44DA7A1614DD581B00C1ED3B /* CopyFiles */ = {
+ 44DA7A1614DD581B00C1ED3B /* Copy Shared Support Files */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 12;
files = (
- 44ABBE7014DD5A2100B8A82D /* default.yaml in CopyFiles */,
- 44ABBE7114DD5A2700B8A82D /* essay.kct in CopyFiles */,
- 4426D360150290CF009100C7 /* bopomofo.schema.yaml in CopyFiles */,
- 44ABBE7214DD5A4000B8A82D /* cangjie5.dict.yaml in CopyFiles */,
- 44ABBE7314DD5A4000B8A82D /* cangjie5.schema.yaml in CopyFiles */,
- 44935C1614F0531D00346874 /* double_pinyin.schema.yaml in CopyFiles */,
- 44ABBE7514DD5A4000B8A82D /* luna_pinyin.dict.yaml in CopyFiles */,
- 44ABBE7614DD5A4000B8A82D /* luna_pinyin.schema.yaml in CopyFiles */,
- 44ABBE7714DD5A4000B8A82D /* luna_pinyin_fluency.schema.yaml in CopyFiles */,
- 44ABBE7814DD5A4000B8A82D /* luna_pinyin_simp.schema.yaml in CopyFiles */,
- 44ABBE7914DD5A4000B8A82D /* luna_pinyin_tw.schema.yaml in CopyFiles */,
- 4426D35E150290C3009100C7 /* terra_pinyin.dict.yaml in CopyFiles */,
- 4426D35F150290C3009100C7 /* terra_pinyin.schema.yaml in CopyFiles */,
- 44935C1714F0531D00346874 /* jyutping.dict.yaml in CopyFiles */,
- 44935C1814F0531D00346874 /* jyutping.schema.yaml in CopyFiles */,
- 44935C1914F0531D00346874 /* wubi86.dict.yaml in CopyFiles */,
- 44935C1A14F0531D00346874 /* wubi86.schema.yaml in CopyFiles */,
- 44935C1C14F0531D00346874 /* wugniu.schema.yaml in CopyFiles */,
- 44935C1D14F0531D00346874 /* wugniu_lopha.dict.yaml in CopyFiles */,
- 44935C1E14F0531D00346874 /* wugniu_lopha.schema.yaml in CopyFiles */,
+ 44ABBE7014DD5A2100B8A82D /* default.yaml in Copy Shared Support Files */,
+ 44ABBE7114DD5A2700B8A82D /* essay.kct in Copy Shared Support Files */,
+ 4426D360150290CF009100C7 /* bopomofo.schema.yaml in Copy Shared Support Files */,
+ 44ABBE7214DD5A4000B8A82D /* cangjie5.dict.yaml in Copy Shared Support Files */,
+ 44ABBE7314DD5A4000B8A82D /* cangjie5.schema.yaml in Copy Shared Support Files */,
+ 44935C1614F0531D00346874 /* double_pinyin.schema.yaml in Copy Shared Support Files */,
+ 44F771CD152B7BC7005CF491 /* double_pinyin_abc.schema.yaml in Copy Shared Support Files */,
+ 44F771CE152B7BC7005CF491 /* double_pinyin_flypy.schema.yaml in Copy Shared Support Files */,
+ 44F771CF152B7BC7005CF491 /* double_pinyin_mspy.schema.yaml in Copy Shared Support Files */,
+ 44ABBE7514DD5A4000B8A82D /* luna_pinyin.dict.yaml in Copy Shared Support Files */,
+ 44ABBE7614DD5A4000B8A82D /* luna_pinyin.schema.yaml in Copy Shared Support Files */,
+ 44ABBE7714DD5A4000B8A82D /* luna_pinyin_fluency.schema.yaml in Copy Shared Support Files */,
+ 44ABBE7814DD5A4000B8A82D /* luna_pinyin_simp.schema.yaml in Copy Shared Support Files */,
+ 44ABBE7914DD5A4000B8A82D /* luna_pinyin_tw.schema.yaml in Copy Shared Support Files */,
+ 44F771D2152B7BC7005CF491 /* stenotype.schema.yaml in Copy Shared Support Files */,
+ 4426D35E150290C3009100C7 /* terra_pinyin.dict.yaml in Copy Shared Support Files */,
+ 4426D35F150290C3009100C7 /* terra_pinyin.schema.yaml in Copy Shared Support Files */,
+ 44935C1714F0531D00346874 /* jyutping.dict.yaml in Copy Shared Support Files */,
+ 44935C1814F0531D00346874 /* jyutping.schema.yaml in Copy Shared Support Files */,
+ 44F771D0152B7BC7005CF491 /* quick5.dict.yaml in Copy Shared Support Files */,
+ 44F771D1152B7BC7005CF491 /* quick5.schema.yaml in Copy Shared Support Files */,
+ 44935C1914F0531D00346874 /* wubi86.dict.yaml in Copy Shared Support Files */,
+ 44935C1A14F0531D00346874 /* wubi86.schema.yaml in Copy Shared Support Files */,
+ 44935C1C14F0531D00346874 /* wugniu.schema.yaml in Copy Shared Support Files */,
+ 44935C1D14F0531D00346874 /* wugniu_lopha.dict.yaml in Copy Shared Support Files */,
+ 44935C1E14F0531D00346874 /* wugniu_lopha.schema.yaml in Copy Shared Support Files */,
);
+ name = "Copy Shared Support Files";
runOnlyForDeploymentPostprocessing = 0;
};
A464E3780F65263000148227 /* Copy 3rd-party Frameworks */ = {
@@ -98,6 +116,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
+ 44F01493152AF6AF00EFDAC3 /* Sparkle.framework in Copy 3rd-party Frameworks */,
);
name = "Copy 3rd-party Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@@ -149,7 +168,16 @@
44E98EA714AE16DD00847AD6 /* unchecked.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unchecked.h; sourceTree = ""; };
44E98EC114AE1AC900847AD6 /* utf8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utf8.h; sourceTree = ""; };
44E98EC214AE1AC900847AD6 /* utf8.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = utf8.cpp; sourceTree = ""; };
+ 44F01492152AF6AF00EFDAC3 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = ""; };
44F1EB381431F8270015FD04 /* Squirrel.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Squirrel.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 44F77079152B312E005CF491 /* zhung.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = zhung.png; sourceTree = ""; };
+ 44F7708E152B3334005CF491 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_pub.pem; sourceTree = ""; };
+ 44F771C7152B7BC7005CF491 /* double_pinyin_abc.schema.yaml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = double_pinyin_abc.schema.yaml; sourceTree = ""; };
+ 44F771C8152B7BC7005CF491 /* double_pinyin_flypy.schema.yaml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = double_pinyin_flypy.schema.yaml; sourceTree = ""; };
+ 44F771C9152B7BC7005CF491 /* double_pinyin_mspy.schema.yaml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = double_pinyin_mspy.schema.yaml; sourceTree = ""; };
+ 44F771CA152B7BC7005CF491 /* quick5.dict.yaml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = quick5.dict.yaml; sourceTree = ""; };
+ 44F771CB152B7BC7005CF491 /* quick5.schema.yaml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = quick5.schema.yaml; sourceTree = ""; };
+ 44F771CC152B7BC7005CF491 /* stenotype.schema.yaml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = stenotype.schema.yaml; sourceTree = ""; };
44F84AD514E94C490005D70B /* SquirrelPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SquirrelPanel.h; sourceTree = ""; };
44F84AD614E94C490005D70B /* SquirrelPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SquirrelPanel.m; sourceTree = ""; };
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; };
@@ -169,6 +197,7 @@
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
E93074B70A5C264700470842 /* InputMethodKit.framework in Frameworks */,
A4B8E1B30F645B870094E08B /* Carbon.framework in Frameworks */,
+ 44F01538152B2D9300EFDAC3 /* Sparkle.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -199,6 +228,7 @@
isa = PBXGroup;
children = (
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
+ 44F01492152AF6AF00EFDAC3 /* Sparkle.framework */,
);
name = "Linked Frameworks";
sourceTree = "";
@@ -237,8 +267,10 @@
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
+ 44F7708E152B3334005CF491 /* dsa_pub.pem */,
44943BB715066A540005EE85 /* postflight */,
44AC951D1430CF7D00C888FB /* rime.icns */,
+ 44F77079152B312E005CF491 /* zhung.png */,
A4FC48C90F6530EF0069BE81 /* Localizable.strings */,
8D1107310486CEB800E47090 /* Info.plist */,
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
@@ -272,6 +304,12 @@
44935C0114F052EC00346874 /* supplement */ = {
isa = PBXGroup;
children = (
+ 44F771C7152B7BC7005CF491 /* double_pinyin_abc.schema.yaml */,
+ 44F771C8152B7BC7005CF491 /* double_pinyin_flypy.schema.yaml */,
+ 44F771C9152B7BC7005CF491 /* double_pinyin_mspy.schema.yaml */,
+ 44F771CA152B7BC7005CF491 /* quick5.dict.yaml */,
+ 44F771CB152B7BC7005CF491 /* quick5.schema.yaml */,
+ 44F771CC152B7BC7005CF491 /* stenotype.schema.yaml */,
44935C0214F052EC00346874 /* double_pinyin.schema.yaml */,
44935C0314F052EC00346874 /* jyutping.dict.yaml */,
44935C0414F052EC00346874 /* jyutping.schema.yaml */,
@@ -336,8 +374,8 @@
8D11072C0486CEB800E47090 /* Sources */,
8D11072E0486CEB800E47090 /* Frameworks */,
A464E3780F65263000148227 /* Copy 3rd-party Frameworks */,
- 44DA7A1614DD581B00C1ED3B /* CopyFiles */,
- 4407F3CA14EC079A001329FE /* CopyFiles */,
+ 44DA7A1614DD581B00C1ED3B /* Copy Shared Support Files */,
+ 4407F3CA14EC079A001329FE /* Copy opencc Files */,
);
buildRules = (
);
@@ -385,6 +423,8 @@
A4FC48CB0F6530EF0069BE81 /* Localizable.strings in Resources */,
44AC951E1430CF7D00C888FB /* rime.icns in Resources */,
44943BB815066A540005EE85 /* postflight in Resources */,
+ 44F7707A152B312E005CF491 /* zhung.png in Resources */,
+ 44F7708F152B3334005CF491 /* dsa_pub.pem in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -440,7 +480,13 @@
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
- FRAMEWORK_SEARCH_PATHS = "$(inherited)";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ );
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)\"";
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)\"";
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_MODEL_TUNING = G5;
@@ -481,7 +527,13 @@
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
- FRAMEWORK_SEARCH_PATHS = "$(inherited)";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ );
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)\"";
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)\"";
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_MODEL_TUNING = G5;
INFOPLIST_FILE = Info.plist;
diff --git a/SquirrelApplicationDelegate.h b/SquirrelApplicationDelegate.h
index b94e875f0..0aa11b8cf 100644
--- a/SquirrelApplicationDelegate.h
+++ b/SquirrelApplicationDelegate.h
@@ -7,14 +7,19 @@
{
IBOutlet NSMenu* _menu;
IBOutlet SquirrelPanel* _panel;
+ IBOutlet id _updater;
+
// global options
- bool _useUSKeyboardLayout;
+ BOOL _useUSKeyboardLayout;
}
-(NSMenu*)menu;
-(SquirrelPanel*)panel;
--(bool)useUSKeyboardLayout;
+-(id)updater;
+-(BOOL)useUSKeyboardLayout;
--(void)loadConfig;
+-(IBAction)deploy:(id)sender;
+-(void)startRimeWithFullCheck:(BOOL)fullCheck;
+-(void)loadSquirrelConfig;
@end
diff --git a/SquirrelApplicationDelegate.m b/SquirrelApplicationDelegate.m
index 64d49d48a..6a9f921d7 100644
--- a/SquirrelApplicationDelegate.m
+++ b/SquirrelApplicationDelegate.m
@@ -15,18 +15,54 @@ -(SquirrelPanel*)panel
return _panel;
}
--(bool)useUSKeyboardLayout
+-(id)updater
+{
+ return _updater;
+}
+
+-(BOOL)useUSKeyboardLayout
{
return _useUSKeyboardLayout;
}
--(void)loadConfig
+-(IBAction)deploy:(id)sender
+{
+ NSLog(@"Start maintenace...");
+ RimeConfig config;
+ RimeConfigOpen("default.custom", &config);
+ // schedule a workspace update
+ RimeConfigUpdateSignature(&config, "Squirrel");
+ RimeConfigClose(&config);
+ // restart
+ RimeFinalize();
+ [self startRimeWithFullCheck:TRUE];
+ [self loadSquirrelConfig];
+}
+
+-(void)startRimeWithFullCheck:(BOOL)fullCheck
+{
+ RimeTraits squirrel_traits;
+ squirrel_traits.shared_data_dir = [[[NSBundle mainBundle] sharedSupportPath] UTF8String];
+ squirrel_traits.user_data_dir = [[@"~/Library/Rime" stringByStandardizingPath] UTF8String];
+ squirrel_traits.distribution_code_name = "Squirrel";
+ squirrel_traits.distribution_name = "鼠鬚管";
+ squirrel_traits.distribution_version = "0.9.3";
+ NSLog(@"Initializing la rime...");
+ RimeInitialize(&squirrel_traits);
+ if (RimeStartMaintenance((Bool)fullCheck)) {
+ // TODO: notification
+ NSArray* args = [NSArray arrayWithObjects:@"Preparing Rime for updates; patience.", nil];
+ [NSTask launchedTaskWithLaunchPath:@"/usr/bin/say" arguments:args];
+ }
+}
+
+-(void)loadSquirrelConfig
{
RimeConfig config;
if (!RimeConfigOpen("squirrel", &config)) {
- NSLog(@"Error opening squirrel config.");
return;
}
+ NSLog(@"Loading squirrel specific config...");
_useUSKeyboardLayout = FALSE;
Bool value;
if (RimeConfigGetBool(&config, "us_keyboard_layout", &value)) {
diff --git a/SquirrelInputController.m b/SquirrelInputController.m
index a6f7ddb21..a9ecdd7c5 100644
--- a/SquirrelInputController.m
+++ b/SquirrelInputController.m
@@ -28,7 +28,7 @@ -(BOOL)handleEvent:(NSEvent*)event client:(id)sender
//NSLog(@"handleEvent:client:");
- if (!_session) {
+ if (!_session || !RimeFindSession(_session)) {
[self createSession];
if (!_session) return NO;
}
@@ -148,6 +148,20 @@ -(void)commitComposition:(id)sender
// TODO: force committing existing Rime composition
}
+// a piece of comment from SunPinyin's macos wrapper says:
+// > though we specified the showPrefPanel: in SunPinyinApplicationDelegate as the
+// > action receiver, the IMKInputController will actually receive the event.
+// so here we deliver messages to our responsible SquirrelApplicationDelegate
+-(void)deploy:(id)sender
+{
+ [[NSApp delegate] deploy:sender];
+}
+
+-(void)checkForUpdates:(id)sender
+{
+ [[[NSApp delegate] updater] performSelector:@selector(checkForUpdates:) withObject:sender];
+}
+
-(NSMenu*)menu
{
return [[NSApp delegate] menu];
diff --git a/SquirrelPanel.m b/SquirrelPanel.m
index a482d3c2b..92329c6c8 100644
--- a/SquirrelPanel.m
+++ b/SquirrelPanel.m
@@ -59,7 +59,7 @@ @implementation SquirrelPanel
-(id)init
{
- NSLog(@"SqurrelPanel init");
+ //NSLog(@"SqurrelPanel init");
_position = NSMakeRect(0, 0, 0, 0);
_window = [[NSWindow alloc] initWithContentRect:_position
styleMask:NSBorderlessWindowMask
diff --git a/dsa_pub.pem b/dsa_pub.pem
new file mode 100644
index 000000000..d959bbb5a
--- /dev/null
+++ b/dsa_pub.pem
@@ -0,0 +1,20 @@
+-----BEGIN PUBLIC KEY-----
+MIIDOjCCAi0GByqGSM44BAEwggIgAoIBAQCLZ3CD0hYkkyqUWAJgCfBj0Rqll2JW
+2c2lLVaRjSTT8t0PDMA+dsf71fqBFgf+dJ7zw6mHQ333sPvpe2TgZ1L1KrTlE+Em
+OpHhM1a8TMJncS1TIhyA1zOpgn6NLUftDOp0la2BLtkknsUKVzcpkS0j75VKvtK8
+r1RGpljvx1PID/Hu5gVaB/M6HckVGYkhgle29gv4aVpCGdklrHx6CQJ188HpgfIk
+UWqqoVJTQCAnCl681OI128xT2yoLITHLnEIhqzcF04WPoIS6FEBGVzabXqm4PcF4
+gYvK1aGz5MeYmF/jrILuLnI2wTCA0a7jsTcs0IfGcwHc8zbvaluIpEsxAhUAvfS1
+/crimKeoMwmW/caDDCL2F5UCggEAE2EzijeeLGluuhSWRcjJ/yKmkdFvGjaIpsPm
+D4bAYNUJQGW4qqniEfBMMMxLHKEIL5Tl5jY+EYloA17YUTk5HQbgX8fXLtd8uQHA
+zlafKR2N0ZLwGvDLnwWXSowpvQVOgZPD9/q52P1aVJ2/Ek/gNMJPIGnIy/36CF8o
+aSzbpbHcPbPSrTjEpzC7aelHVAdHV4520diO34NjA72BKkZV4DPRSBVcIr0y4bwQ
+pSD0CMdld8Vm/wZOTyx59CMPtoI6APVadR7pD04SaOfFx4ubXdHL5uH4uuqRZrWZ
+pA11/qfMzYqzwn6d7L6lz/0L3C/a25jrSHhoR6WuEJF0/bXpIwOCAQUAAoIBACoU
+ydicX3v9p20qmm6X86nm5RylB+5CR17Ioj8w7izjYIxsxzBYcamcPW/8QMD0lppf
+TnXp0wAET0zZCueduWN+I6mFcwO2ae5ZuqDKZcsX/ngww3vke9Iq7vphocpJIRnb
+Ds4gADszsJsIlVvRRSsQOSM8nTlqGZ6SGDyXhtQB6CGOR4zOJPjI/31B/70qXtGw
+GQZ1CkWkzzEJsYUEEfzuItGlhRJORsJp2nThArlK0i433C1rqAIZ1rNq04xE3UF5
+9bPbDfJu3mYopQzz2y9z2Q1b2joMV3WFNpwJFtBEg92/T3CSOw1g4kdJOeGvuei+
+ZsuKlFnDmMCSJqPgr0w=
+-----END PUBLIC KEY-----
diff --git a/main.m b/main.m
index 97c6e81b4..90c7356b7 100644
--- a/main.m
+++ b/main.m
@@ -1,4 +1,5 @@
+#import "SquirrelApplicationDelegate.h"
#import
#import
#import
@@ -32,21 +33,9 @@ int main(int argc, char *argv[])
// opencc will be configured with relative dictionary paths
[[NSFileManager defaultManager] changeCurrentDirectoryPath:[[NSBundle mainBundle] sharedSupportPath]];
- // start Rime
- RimeTraits squirrel_traits;
- squirrel_traits.shared_data_dir = [[[NSBundle mainBundle] sharedSupportPath] UTF8String];
- squirrel_traits.user_data_dir = [[@"~/Library/Rime" stringByStandardizingPath] UTF8String];
- squirrel_traits.distribution_code_name = "Squirrel";
- squirrel_traits.distribution_name = "鼠鬚管";
- squirrel_traits.distribution_version = "0.9.3";
- NSLog(@"Initializing la rime...");
- RimeInitialize(&squirrel_traits);
- if (RimeStartMaintenanceOnWorkspaceChange()) {
- // TODO: notification...
- }
+ [[NSApp delegate] startRimeWithFullCheck:FALSE];
+ [[NSApp delegate] loadSquirrelConfig];
NSLog(@"Squirrel reporting!");
- // load Squirrel specific config
- [[NSApp delegate] loadConfig];
// finally run everything
[[NSApplication sharedApplication] run];
diff --git a/zhung.png b/zhung.png
new file mode 100644
index 000000000..21b3c6592
Binary files /dev/null and b/zhung.png differ