I apologize for any slow response you may receive to emails you send to me. Im currently traveling with only intermittent internet access. I promise Ill catch up as soon as I can when Im back in the states!
Author Archives: Paul Kehrer - Page 5
Incommunicado
Localizing Safari 5 Extensions
Update: If you’re a registered developer you can check this thread for more information. The gist is that settings strings are not localizable at this time. I’ve filed a bug 8105949 against it (I recommend everyone report one as well if they want this fixed).
I’ve gotten a great deal of requests to localize my Safari extensions into various languages. Unfortunately, Apple hasn’t released any documentation on whether or not the Info.plist data can be localized.
In normal Mac OS X applications you can define key/value pairs using a Language.lproj directory with an InfoPlist.strings file. OS X then automatically uses the translated strings based on the primary language. As this seemed a likely candidate for i18n support, I’ve been experimenting with this for the past day or two…without success. So now I’m pleading with you, the internet! Is there a way to do i18n in extensions? Or will we need to wait for Safari 5.x to add this (critical) feature?
Updraft – A Cloud Backup and Restore Plugin For WordPress
Over the past several months I have been working hard on a new plugin for WordPress and now I am pleased to unveil the initial release.
Updraft is a backup and restore plugin for WordPress. It can do scheduled or one time backups of your plugins, themes, uploads, and DB itself. These backups can be kept locally, emailed, sent to an FTP server, uploaded to Rackspace Cloud Files, or transferred to Amazon S3.1
Additionally, you can pick the number of backups to retain and restore from a backup of your choice either by using a local backup, uploading copies yourself, or pulling them down from your cloud service.2
Visit the Updraft homepage to learn more, see a screencast, and give feedback on bugs or features you’d like to see. I look forward to hearing from you!
Fixing GrowlMail in 10.6.4 (Mail 4.3)
Update 2: Fix for 10.6.7 and Mail 4.5
Update: Fix for 10.6.5 and Mail 4.4
Another OS X release, another broken GrowlMail bundle. I did a post just like this for 10.6.2. Check it out if you want more background on why this occurs.
Easy Fix
Download a pre-patched GrowlMail.bundle and drop it in your ~/Library/Mail/Bundles/ directory1. If you want it available to multiple users on your system, use /Library/Mail/Bundles/.
If you use this method you’re all set; no need to use the command line solution below.
Add New UUIDs to SupportedPluginCompatibilityUUIDs
If you have already had your plugins disabled by opening Mail.app you’ll need to look in ~/Library/Mail (or /Library/Mail if you installed globally) and move the files back to the active bundles directory. They’ll typically be in Bundles (Disabled), so quit Mail, find them, and move them back into the proper directory.
If you have a local installation:
defaults write ~/Library/Mail/Bundles/GrowlMail.mailbundle/Contents/Info SupportedPluginCompatibilityUUIDs -array-add "E71BD599-351A-42C5-9B63-EA5C47F7CE8E" defaults write ~/Library/Mail/Bundles/GrowlMail.mailbundle/Contents/Info SupportedPluginCompatibilityUUIDs -array-add "B842F7D0-4D81-4DDF-A672-129CA5B32D57"
Global installation:
defaults write /Library/Mail/Bundles/GrowlMail.mailbundle/Contents/Info SupportedPluginCompatibilityUUIDs -array-add "E71BD599-351A-42C5-9B63-EA5C47F7CE8E" defaults write /Library/Mail/Bundles/GrowlMail.mailbundle/Contents/Info SupportedPluginCompatibilityUUIDs -array-add "B842F7D0-4D81-4DDF-A672-129CA5B32D57"
- ~ means your home directory if you’re unfamiliar with the syntax. You can click the home icon on your Finder sidebar if you’re still confused ↩
Tab Duplicator, A Safari 5 Extension
Tab Duplicator adds a contextual menu item as well as a toolbar icon1 that will duplicate your active tab. By default it creates a new tab in the background, but it can be configured to make them foreground as well. You can also select tab positioning (first, last, before active tab, after active tab).
To install:
You can view the source on GitHub as well! If you have suggestions for improvements let me know! Bug reports should be directed to the issues page.
Changes in 1.2
- Added toolbar icon in addition to contextual menu. If you don’t want it you can hold command and click and drag it off to remove.
- You can now choose where to position your duplicated tabs. Choices are after current tab (default), before current tab, beginning, or end.
- Optimized code. No more injected script.
- Validation of events (disables button/contextual menu item if no URL is loaded)
Thanks to Brian Kim for the icon!
Enabling Extensions In Safari 5
People keep asking me how to install extensions in Safari 5, so here’s a quick visual primer.
Open Safari’s preferences, click the advanced tab at the top, and check “Show Develop menu in menu bar”.

Now click the Develop menu in the menu bar and select “Enable Extensions”.

Extensions are now enabled! Double click your extension to add it, and then you can control them in the Safari prefs under the Extensions tab.

