When I woke up this morning, I was pleasantly surprised to see several e-mail messages about my extension. After seeing the web traffic for my website rise from a dozen or so visitors per day to nearly 500, I discovered that several sites have written about the extension even though it is still in the testing stage in both English (ghacks.net, Lifehacker, etc.) and Spanish, which, fortunately, I can read (Incubaweb, VisualBeta.es). After reading the Spanish articles, I am now wondering if I should attempt to add a Spanish locale… The only problem is that we don’t exactly talk about synchronization and e-mail clients much in Spanish class so I would have to learn some new words.
Currently, synchronizing addresses with gContactSync is painful as the reviews mention, especially if you have a lot of contacts. It involves editing every contact in Google with an address.
This technically isn’t necessary, and if you skip doing it the Map It feature in both Gmail and Thunderbird will still work.
For example, here is a standard US postal address:
1234 E. Sesame St. New York, NY 10001
If the address looks like that in Gmail, Thunderbird will display it as shown, but if you look in the Edit Card Dialog, you will notice that only two address fields are full: Address and Address Line 2. If you can sleep at night knowing that the city, state, zip (and possibly country) are all on one mislabeled line everything should sync as expected.
If the address has three lines, like the sample below, things change slightly:
Apt. #2 1234 E. Sesame St. New York, NY 10001
Now, the first line in Thunderbird is Apt. #2, the second line is 1234 E. Sesame St, and the “City” is New York, NY 10001. It won’t necessarily cause any problems, and the Map It button will still work, but the labels are incorrect.
One solution would be to remove the Address, Address Line 2, City, State, ZipCode, and Country textboxes and replace them with a text area that allows multiple lines like Google has. If there is no value for that address, I could populate it from the old fields either separated with newlines or formatted US-style. I am interested in hearing some opinions on this idea.
Update: Instead of replacing the textboxes, I could add a text area for home and work address in a different tab (similar to the Other Address text area) that allows multiple lines and directly synchronizes with Google. If the area is blank, it would be filled at sync time by combining the 6 fields (Address, Address2, City, State, ZipCode, and Country). In the card view on the bottom I could hide the original if the new address field is present. This is the solution currently used.
What are your thoughts on synchronizing addresses?
After receiving a comment on a previous blog post, I added some preferences and redesigned my preferences dialog.
It now has three tabs: Main, Extended, and Address. The wording and layout of the preferences will probably change, but any feedback is welcome.
All of the main preferences.
- Name of the Address Book – The name of the Address Book that is synced. The default is Google Contacts. You should synchronize contacts before changing the name, and you will have to delete the old one if you want.
- Synchronize Interval – The length of time, in minutes, between automatic synchronizations. The default is 30 minutes. (Note: The screenshot was taken when this was still in milliseconds)
- Initial sync delay – How long the extension should wait after the Address Book is opened, in milliseconds, before synchronizing.
- Always update Google during conflicts – Check this if Thunderbird should have priority if a contact changes in Thunderbird and Google Contacts.
- Confirm before deleting duplicates – Check this if you would like to be prompted to delete each “duplicate” that the extension finds. Recommended.
- Sync extended properties – Check if you would like more properties (like Department, FirstName, LastName, NickName, etc.) synchronized. They will not be visible from Google Contacts. The next section explains this in more detail.
The extended properties to synchronize. As explained before, they are not visible from Google Contacts, but they are visible from the New and Edit Card dialogs. Leave the last few blank if you don’t want to synchronize 10. The last checkbox on the previous tab (Main) must be checked to sync these properties.
This tab determines how addresses are synchronized. As explained in a previous post, Google only has one field that allows multiple lines for addresses while Thunderbird has 6: Address, Address2, City, State, ZipCode, and Country. My solution is to separate different attributes in Thunderbird with a newline character. You can choose up to 6 attributes to sync. Don’t include Home or Work in these. Valid choices are limited to Address, Address2, City, State, ZipCode, and Country. If you type something else it will not sync. If you do not want any or all attributes synced, leave blank line(s) at the end.
Thunderbird stores addresses using 6 fields: 2 lines for the address, the city, the state, the zip code, and the country. Google stores addresses in one field (supports multiple lines). Since these two differ so greatly, it is difficult to synchronize addresses properly.
Splitting the address with newline characters in Google
Address Line 1
Address Line 2
Any empty fields in Thunderbird would mean an empty line in Google. Google’s mapping feature worked perfectly with the method listed above.
Splitting the address with semicolons
Another possibility is using semicolons instead of newlines to split the address. Google was also able to map an address formatting in this fashion. Example:
Address Line 1;Address Line 2;City;State;Zip;Country
Separating using newlines seems to be the most readable (to me), but Google only shows up to 4 lines in the address field and makes you scroll to see beyond that.
Any other ideas or thoughts?