I finished adding support for localization to the extension. It previously used l10n for the XUL files, but I just finished localizing strings in the scripts. If you or somebody you know would like to help translate this extension please let me know.
Contact Conversion Rewrite
I completely re-wrote the methods that convert contacts from Google Contacts to Thunderbird Address Book cards and vice versa and went from nearly 700 lines of code to just under 275 (with comments). To do so, I defined an object that stores Thunderbird’s name for the property (like DisplayName), and information on how Google stores the contact data in Atom/XML (the namespace, tag name, whether the data is stored in an attribute or in the child node, and more).
As of now, the supported attributes in Thunderbird include:
DisplayName, Notes, PrimaryEmail, SecondEmail, CellularNumber, HomePhone, WorkPhone, PagerNumber, FaxNumber, HomeAddress, WorkAddress, _AimScreenName, Company, and JobTitle
I finally decided on a possible name that some initial searching on Google tells me is unique: gContactSync. Any feedback on the name is welcome and I’ll gladly change it if I find a better name.
I removed the need for the “shortDelay” preference.