diff -u8pdNr orig-042/chrome/content/contents.rdf exten-042/chrome/content/contents.rdf
--- orig-042/chrome/content/contents.rdf	2011-03-28 17:50:49.000000000 +0200
+++ exten-042/chrome/content/contents.rdf	2011-06-12 14:37:35.459491500 +0200
@@ -38,24 +38,33 @@
 <RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
             xmlns:chrome="http://www.mozilla.org/rdf/chrome#"> 
 
   <RDF:Seq about="urn:mozilla:package:root"> 
     <RDF:li resource="urn:mozilla:package:tinderstatus"/> 
   </RDF:Seq> 
 
   <RDF:Description about="urn:mozilla:package:tinderstatus" 
-        chrome:displayName="Mozilla Tinderstatus Extension" 
+        chrome:displayName="Tinderstatus Extended" 
         chrome:author="Myk Melez" 
         chrome:name="tinderstatus"
         chrome:extension="true"
         chrome:description="icon displaying the status of Mozilla tinderboxen"> 
   </RDF:Description>
 
   <RDF:Seq about="urn:mozilla:overlays">
     <RDF:li resource="chrome://navigator/content/navigator.xul"/>
+    <RDF:li resource="chrome://calendar/content/calendar.xul"/>
+    <RDF:li resource="chrome://sunbird/content/calendar.xul"/>
   </RDF:Seq>
 
   <RDF:Seq about="chrome://navigator/content/navigator.xul">
     <RDF:li>chrome://tinderstatus/content/overlay.xul</RDF:li>
   </RDF:Seq>
 
+  <RDF:Seq about="chrome://calendar/content/calendar.xul">
+    <RDF:li>chrome://tinderstatus/content/overlay.xul</RDF:li>
+  </RDF:Seq>
+  <RDF:Seq about="chrome://sunbird/content/calendar.xul">
+    <RDF:li>chrome://tinderstatus/content/overlay.xul</RDF:li>
+  </RDF:Seq>
+
 </RDF:RDF>
diff -u8pdNr orig-042/chrome/content/overlay.xul exten-042/chrome/content/overlay.xul
--- orig-042/chrome/content/overlay.xul	2011-06-12 14:31:51.336808800 +0200
+++ exten-042/chrome/content/overlay.xul	2011-06-12 14:36:39.161271500 +0200
@@ -30,20 +30,24 @@
    - under the terms of either the GPL or the LGPL, and not to allow others to
    - use your version of this file under the terms of the MPL, indicate your
    - decision by deleting the provisions above and replace them with the notice
    - and other provisions required by the LGPL or the GPL. If you do not delete
    - the provisions above, a recipient may use your version of this file under
    - the terms of any one of the MPL, the GPL or the LGPL.
    -
    - ***** END LICENSE BLOCK ***** -->
-<?xml-stylesheet href="chrome://tinderstatus/content/tinderstatus.css" type="text/css"?> 
+<?xml-stylesheet href="chrome://tinderstatus/content/tinderstatus.css" type="text/css"?>
+
+<!DOCTYPE overlay SYSTEM "chrome://tinderstatus/locale/overlay.dtd">
+
 <overlay id="tinderstatusOverlay" 
          xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
+  <script type="application/x-javascript" src="chrome://global/content/strres.js"/>
   <script type="application/x-javascript" src="chrome://tinderstatus/content/tinderstatus.js" />
 
   <statusbar id="status-bar">
     <!-- We use a box within the statusbarpanel instead of just treating 
        - the panel like a button so we can obtain native appearance on the panel
        - with "-moz-appearance: statusbarpanel" while still being able to style 
        - the background color of the box to reflect build status. -->
 
@@ -53,30 +57,33 @@
            onclick="loadTinderboxURI(event);" buildstatus="none"
            context="tinderstatus-context" tooltip="tinderstatus-tooltip">
          <image class="tinderstatus-icon" treestatus="none"/>
       </box>
 
       <popupset>
         <menupopup id="tinderstatus-context"
                    onpopupshowing="Tinderstatus.onContextShowing();">
-          <menuitem id="tinderstatus-open-tree" label="Open Tree:"
+          <menuitem id="tinderstatus-open-tree" label="&tinderstatus.context.opentree;"
                     disabled="true"/>
           <menuseparator id="tinderstatus-separator"/>
-          <menuitem id="tinderstatus-prefs" label="Options" accesskey="p"
+          <menuitem id="tinderstatus-prefs" label="&tinderstatus.context.preferences;"
+                    accesskey="&tinderstatus.context.preferences.accesskey;"
                     oncommand="openTinderstatusPreferences();"/>
-          <menuitem id="tinderstatus-notifications" label="Notifications"
-                    accesskey="n" type="checkbox"
+          <menuitem id="tinderstatus-notifications" label="&tinderstatus.context.notifications;"
+                    accesskey="&tinderstatus.context.notifications.accesskey;"
+                    type="checkbox"
                     oncommand="Tinderstatus.onNotificationToggled();"/>
-          <menuitem id="tinderstatus-refresh" label="Refresh Now" accesskey="R"
+          <menuitem id="tinderstatus-refresh" label="&tinderstatus.context.refresh.now;"
+                    accesskey="&tinderstatus.context.refresh.now.accesskey;"
                     oncommand="refreshTinderboxenStatus();"/>
         </menupopup>
 
         <tooltip id="tinderstatus-tooltip">
-          <description value="No status retrieved yet."/>
+          <description value="&tinderstatus.tooltip;"/>
           <description/>
         </tooltip>
       </popupset>
 
     </statusbarpanel>
 
   </statusbar>
 
diff -u8pdNr orig-042/chrome/content/prefs.js exten-042/chrome/content/prefs.js
--- orig-042/chrome/content/prefs.js	2011-03-28 17:50:49.000000000 +0200
+++ exten-042/chrome/content/prefs.js	2011-06-12 16:53:02.322553300 +0200
@@ -37,16 +37,21 @@
 if (!Cc)
   var Cc = Components.classes;
 if (!Ci)
   var Ci = Components.interfaces;
 
 var gPrefService = Cc["@mozilla.org/preferences-service;1"]
                    .getService(Ci.nsIPrefService);
 var gPrefBranch = gPrefService.getBranch("extensions.tinderstatus.");
+var gPrefDefaultBranch = gPrefService.getDefaultBranch("extensions.tinderstatus.");
+var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
+              .getService(Components.interfaces.nsIPromptService);
+
+var bundle = srGetStrBundle("chrome://tinderstatus/locale/tinderstatus.properties");
 
 const kNumWatchLists = 10;
 
 function onLoadTinderstatusPrefsPane()
 {
   var gotoTreePopup = document.getElementById("gotoTreePopup");
   var fullList = gPrefBranch.getComplexValue("fullList",
                                              Ci.nsISupportsString).data;
@@ -111,8 +116,125 @@ function syncToList(aElement)
   var wlArray = [];
   for (var i = 0; i < aElement.getRowCount(); ++i) {
     var wlNode = aElement.getItemAtIndex(i);
     if (wlNode.checked)
       wlArray.push(wlNode.id);
   }
   return wlArray.join(",");
 }
+
+function tinderstatus_showhideTinderboxesDialog() {
+    document.documentElement.openSubDialog("chrome://tinderstatus/content/showhideTinderboxes.xul", "chrome", "add");
+}
+
+function tinderstatus_clearWatchList() {
+  var oldList = document.getElementById("watchList");
+  var oldList1 = document.getElementById("watchList1");
+  var oldList2 = document.getElementById("watchList2");
+  var oldList3 = document.getElementById("watchList3");
+  var oldList4 = document.getElementById("watchList4");
+  var oldList5 = document.getElementById("watchList5");
+  var oldList6 = document.getElementById("watchList6");
+  var oldList7 = document.getElementById("watchList7");
+  var oldList8 = document.getElementById("watchList8");
+  var oldList9 = document.getElementById("watchList9");
+  while(oldList.hasChildNodes()){
+    oldList.removeChild(oldList.firstChild);
+  }
+  while(oldList1.hasChildNodes()){
+    oldList1.removeChild(oldList1.firstChild);
+  }
+  while(oldList2.hasChildNodes()){
+    oldList2.removeChild(oldList2.firstChild);
+  }
+  while(oldList3.hasChildNodes()){
+    oldList3.removeChild(oldList3.firstChild);
+  }
+  while(oldList4.hasChildNodes()){
+    oldList4.removeChild(oldList4.firstChild);
+  }
+  while(oldList5.hasChildNodes()){
+    oldList5.removeChild(oldList5.firstChild);
+  }
+  while(oldList6.hasChildNodes()){
+    oldList6.removeChild(oldList6.firstChild);
+  }
+  while(oldList7.hasChildNodes()){
+    oldList7.removeChild(oldList7.firstChild);
+  }
+  while(oldList8.hasChildNodes()){
+    oldList8.removeChild(oldList8.firstChild);
+  }
+  while(oldList9.hasChildNodes()){
+    oldList9.removeChild(oldList9.firstChild);
+  }
+}
+
+function tinderstatus_resetFullList() {
+  var defaultList = gPrefDefaultBranch.getComplexValue("fullList",
+                                           Ci.nsISupportsString).data;
+  void gPrefBranch.setCharPref("fullList",defaultList);
+}
+
+function tinderstatus_clearGotoTreePopup() {
+  var oldList = document.getElementById("gotoTreePopup");
+  while(oldList.hasChildNodes()){
+    oldList.removeChild(oldList.firstChild);
+  }
+ }
+
+function tinderstatus_clearNotifyTrees() {
+  var oldList = document.getElementById("notifyTrees");
+  while(oldList.hasChildNodes()){
+    oldList.removeChild(oldList.firstChild);
+  }
+ }
+ 
+function tinderstatus_clearNotifyTinderboxes() {
+  var oldList = document.getElementById("notifyTinderboxes");
+  while(oldList.hasChildNodes()){
+    oldList.removeChild(oldList.firstChild);
+  }
+ }
+ 
+function tinderstatus_resetNotifyTrees() {
+  var defaultList = gPrefDefaultBranch.getComplexValue("notifyTrees",
+                                           Ci.nsISupportsString).data;
+  void gPrefBranch.setCharPref("notifyTrees",defaultList);
+ }
+ 
+function tinderstatus_resetNotifyTinderboxes() {
+  var defaultList = gPrefDefaultBranch.getComplexValue("notifyTinderboxes",
+                                           Ci.nsISupportsString).data;
+  void gPrefBranch.setCharPref("notifyTinderboxes",defaultList);
+ }
+
+function tinderstatus_resetWatchList() {
+  var defaultList = gPrefDefaultBranch.getComplexValue("watchList",
+                                           Ci.nsISupportsString).data;
+  void gPrefBranch.setCharPref("watchList",defaultList);
+}
+
+function tinderstatus_resetGoToTreePopup() {
+  var defaultList = gPrefDefaultBranch.getComplexValue("gotoTree",
+                                           Ci.nsISupportsString).data;
+  void gPrefBranch.setCharPref("gotoTree",defaultList);
+}
+
+function tinderstatus_resetRefreshTime() {
+  var defaultTime = gPrefDefaultBranch.getIntPref("refreshTime");
+  void gPrefBranch.setIntPref("refreshTime",defaultTime);
+}
+
+function tinderstatus_reset() {
+  tinderstatus_resetRefreshTime()
+  tinderstatus_resetFullList();
+  tinderstatus_clearWatchList();
+  tinderstatus_clearGotoTreePopup();
+  tinderstatus_clearNotifyTrees();
+  tinderstatus_clearNotifyTinderboxes();
+  tinderstatus_resetNotifyTrees();
+  tinderstatus_resetNotifyTinderboxes();
+  tinderstatus_resetWatchList();
+  tinderstatus_resetGoToTreePopup();
+  onLoadTinderstatusPrefsPane();
+}
diff -u8pdNr orig-042/chrome/content/prefs.xul exten-042/chrome/content/prefs.xul
--- orig-042/chrome/content/prefs.xul	2011-03-28 17:50:49.000000000 +0200
+++ exten-042/chrome/content/prefs.xul	2011-06-12 17:02:25.052739600 +0200
@@ -30,25 +30,29 @@
    - use your version of this file under the terms of the MPL, indicate your
    - decision by deleting the provisions above and replace them with the notice
    - and other provisions required by the LGPL or the GPL. If you do not delete
    - the provisions above, a recipient may use your version of this file under
    - the terms of any one of the MPL, the GPL or the LGPL.
    -
    - ***** END LICENSE BLOCK ***** -->
 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+
+<!DOCTYPE dialog SYSTEM "chrome://tinderstatus/locale/prefs.dtd">
  
 <prefwindow id="tinderstatus-prefs"
-     title="Tinderstatus Preferences"
+     title="&tinderstatus.preferences.title;"
      xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  
-<prefpane id="tinderstatus-prefspane" label="Tinderstatus Settings"
+<prefpane id="tinderstatus-prefspane" label="&tinderstatus.preferences.prefspane.label;"
           onpaneload="onLoadTinderstatusPrefsPane();">
 
   <script type="application/x-javascript"
+          src="chrome://global/content/strres.js"/>
+  <script type="application/x-javascript"
           src="chrome://tinderstatus/content/prefs.js" />
 
   <preferences>
     <preference id="extensions.tinderstatus.watchList"
                 name="extensions.tinderstatus.watchList" type="string"/>
     <preference id="extensions.tinderstatus.watchList1"
                 name="extensions.tinderstatus.watchList1" type="string"/>
     <preference id="extensions.tinderstatus.watchList2"
@@ -84,60 +88,61 @@
   <vbox>
     <grid>
       <columns>
         <column/>
         <column/>
       </columns>
       <rows>
         <row>
-          <label control="refreshTime" accesskey="i"
-                 value="Time between status updates (minutes):"/>
+          <label control="refreshTime" accesskey="&tinderstatus.preferences.refreshtime.accesskey;"
+                 value="&tinderstatus.preferences.refreshtime;"/>
           <textbox id="refreshTime" type="number" size="2" min="1" max="60"
                    preference="extensions.tinderstatus.refreshTime"/>
         </row>
 
         <row>
-          <label control="gotoTree" accesskey="C"
-                 value="Clicking tinderstatus icon loads the tree:"/>
+          <label control="gotoTree" accesskey="&tinderstatus.preferences.gototree.accesskey;"
+                 value="&tinderstatus.preferences.gototree;"/>
           <menulist id="gotoTree" preference="extensions.tinderstatus.gotoTree"
                     flex="0">
             <menupopup id="gotoTreePopup"/>
           </menulist>
         </row>
         <row>
-          <label control="numTrees" accesskey="N"
-                 value="Number of Status Icons"/>
+          <label control="numTrees" accesskey="&tinderstatus.preferences.numberstatusicons.accesskey;"
+                 value="&tinderstatus.preferences.numberstatusicons;"/>
           <textbox id="numTrees" type="number" size="2" min="1" max="10"
                    preference="extensions.tinderstatus.numTrees"/>
         </row>
       </rows>
     </grid>
 
     <tabbox id="mainTabs">
       <tabs>
-        <tab label="Notifications" id="notifyTreesTab"/>
-        <tab label="Tree Watching" id="treeWatchTab"/>
+        <tab label="&tinderstatus.preferences.notifyTreesTab.label;" id="notifyTreesTab"/>
+        <tab label="&tinderstatus.preferences.treeWatchTab.label;" id="treeWatchTab"/>
       </tabs>
     <tabpanels>
       <vbox>
-        <checkbox label="Notifications On" preference="extensions.tinderstatus.notifications"/>
+        <checkbox label="&tinderstatus.preferences.notificationsOn.label;"
+                  preference="extensions.tinderstatus.notifications"/>
         <hbox>
           <vbox>
             <label control="notifyTrees"
-                   value="Notify me when these trees change status:"/>
+                   value="&tinderstatus.preferences.notifyTrees.label;"/>
             <listbox id="notifyTrees"
                      preference="extensions.tinderstatus.notifyTrees"
                      onsynctopreference="return syncToList(this);"
                      onclick="userChangedValue(event.target);"
                      onkeyup="userChangedValue(event.target);"/>
           </vbox>
           <vbox>
             <label control="notifyTinderboxes"
-                   value="Notify me about individual builds on these trees:"/>
+                   value="&tinderstatus.preferences.notifyTinderboxes.label;"/>
             <listbox id="notifyTinderboxes"
                      preference="extensions.tinderstatus.notifyTinderboxes"
                      onsynctopreference="return syncToList(this);"
                      onclick="userChangedValue(event.target);"
                      onkeyup="userChangedValue(event.target);"/>
           </vbox>
         </hbox>
       </vbox>
@@ -156,88 +161,106 @@
         <tab label="7" id="tab6"/>
         <tab label="8" id="tab7"/>
         <tab label="9" id="tab8"/>
         <tab label="10" id="tab9"/>
       </tabs>
 
       <tabpanels>
         <vbox>
-          <label control="watchList" value="Trees to Watch:" accesskey="T"/>
+          <label control="watchList" value="&tinderstatus.preferences.watchlist;"
+                 accesskey="&tinderstatus.preferences.watchlist.accesskey;"/>
 
           <!-- onclick/onkeyup used due to the listitems not reporting up that
                they have been changed -->
           <listbox preference="extensions.tinderstatus.watchList" id="watchList"
                    onsynctopreference="return syncToList(this);"
                    onclick="userChangedValue(event.target);"
                    onkeyup="userChangedValue(event.target);"/>
 	</vbox>
         <vbox>
-          <label control="watchList1" value="Trees to Watch:" accesskey="T"/>
+          <label control="watchList1" value="&tinderstatus.preferences.watchlist;"
+                 accesskey="&tinderstatus.preferences.watchlist.accesskey;"/>
           <listbox preference="extensions.tinderstatus.watchList1" id="watchList1"
                    onsynctopreference="return syncToList(this);"
                    onclick="userChangedValue(event.target);"
                    onkeyup="userChangedValue(event.target);"/>
 	</vbox>
         <vbox>
-          <label control="watchList2" value="Trees to Watch:" accesskey="T"/>
+          <label control="watchList2" value="&tinderstatus.preferences.watchlist;"
+                 accesskey="&tinderstatus.preferences.watchlist.accesskey;"/>
           <listbox preference="extensions.tinderstatus.watchList2" id="watchList2"
                    onsynctopreference="return syncToList(this);"
                    onclick="userChangedValue(event.target);"
                    onkeyup="userChangedValue(event.target);"/>
 	</vbox>
         <vbox>
-          <label control="watchList3" value="Trees to Watch:" accesskey="T"/>
+          <label control="watchList3" value="&tinderstatus.preferences.watchlist;"
+                 accesskey="&tinderstatus.preferences.watchlist.accesskey;"/>
           <listbox preference="extensions.tinderstatus.watchList3" id="watchList3"
                    onsynctopreference="return syncToList(this);"
                    onclick="userChangedValue(event.target);"
                    onkeyup="userChangedValue(event.target);"/>
 	</vbox>
         <vbox>
-          <label control="watchList4" value="Trees to Watch:" accesskey="T"/>
+          <label control="watchList4" value="&tinderstatus.preferences.watchlist;"
+                 accesskey="&tinderstatus.preferences.watchlist.accesskey;"/>
           <listbox preference="extensions.tinderstatus.watchList4" id="watchList4"
                    onsynctopreference="return syncToList(this);"
                    onclick="userChangedValue(event.target);"
                    onkeyup="userChangedValue(event.target);"/>
 	</vbox>
         <vbox>
-          <label control="watchList5" value="Trees to Watch:" accesskey="T"/>
+          <label control="watchList5" value="&tinderstatus.preferences.watchlist;"
+                 accesskey="&tinderstatus.preferences.watchlist.accesskey;"/>
           <listbox preference="extensions.tinderstatus.watchList5" id="watchList5"
                    onsynctopreference="return syncToList(this);"
                    onclick="userChangedValue(event.target);"
                    onkeyup="userChangedValue(event.target);"/>
 	</vbox>
         <vbox>
-          <label control="watchList6" value="Trees to Watch:" accesskey="T"/>
+          <label control="watchList6" value="&tinderstatus.preferences.watchlist;"
+                 accesskey="&tinderstatus.preferences.watchlist.accesskey;"/>
           <listbox preference="extensions.tinderstatus.watchList6" id="watchList6"
                    onsynctopreference="return syncToList(this);"
                    onclick="userChangedValue(event.target);"
                    onkeyup="userChangedValue(event.target);"/>
 	</vbox>
         <vbox>
-          <label control="watchList7" value="Trees to Watch:" accesskey="T"/>
+          <label control="watchList7" value="&tinderstatus.preferences.watchlist;"
+                 accesskey="&tinderstatus.preferences.watchlist.accesskey;"/>
           <listbox preference="extensions.tinderstatus.watchList7" id="watchList7"
                    onsynctopreference="return syncToList(this);"
                    onclick="userChangedValue(event.target);"
                    onkeyup="userChangedValue(event.target);"/>
 	</vbox>
         <vbox>
-          <label control="watchList8" value="Trees to Watch:" accesskey="T"/>
+          <label control="watchList8" value="&tinderstatus.preferences.watchlist;"
+                 accesskey="&tinderstatus.preferences.watchlist.accesskey;"/>
           <listbox preference="extensions.tinderstatus.watchList8" id="watchList8"
                    onsynctopreference="return syncToList(this);"
                    onclick="userChangedValue(event.target);"
                    onkeyup="userChangedValue(event.target);"/>
 	</vbox>
         <vbox>
-          <label control="watchList9" value="Trees to Watch:" accesskey="T"/>
+          <label control="watchList9" value="&tinderstatus.preferences.watchlist;"
+                 accesskey="&tinderstatus.preferences.watchlist.accesskey;"/>
           <listbox preference="extensions.tinderstatus.watchList9" id="watchList9"
                    onsynctopreference="return syncToList(this);"
                    onclick="userChangedValue(event.target);"
                    onkeyup="userChangedValue(event.target);"/>
 	</vbox>
       </tabpanels>
     </tabbox>
     </tabpanels>
     </tabbox>
+    <hbox>
+      <button id="ts-addTinderbox-button" label="&tinderstatus.preferences.showhide.tinderboxes.button;"
+              accesskey="&tinderstatus.preferences.showhide.tinderboxes.accesskey;"
+              oncommand="tinderstatus_showhideTinderboxesDialog();"/>
+      <button id="ts-resetWatchList-button" label="&tinderstatus.preferences.resettodefault;"
+              accesskey="&tinderstatus.preferences.resettodefault.accesskey;"
+              oncommand="tinderstatus_reset();"/>
+    </hbox>
   </vbox>
 </prefpane>
 
 </prefwindow>
diff -u8pdNr orig-042/chrome/content/showhideTinderboxes.js exten-042/chrome/content/showhideTinderboxes.js
--- orig-042/chrome/content/showhideTinderboxes.js	1970-01-01 01:00:00.000000000 +0100
+++ exten-042/chrome/content/showhideTinderboxes.js	2011-06-12 17:39:47.876021800 +0200
@@ -0,0 +1,113 @@
+if (!Cc)
+  var Cc = Components.classes;
+if (!Ci)
+  var Ci = Components.interfaces;
+
+var gPrefService = Cc["@mozilla.org/preferences-service;1"]
+                   .getService(Ci.nsIPrefService);
+var gPrefBranch = gPrefService.getBranch("extensions.tinderstatus.");
+var gPrefDefaultBranch = gPrefService.getDefaultBranch("extensions.tinderstatus.");
+var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
+              .getService(Components.interfaces.nsIPromptService);
+
+var bundle = srGetStrBundle("chrome://tinderstatus/locale/tinderstatus.properties");
+
+function initializeCustomizeWindow()
+{
+  initializeApplicationsList();
+  initializeL10nList();
+}
+
+function initializeApplicationsList()
+{
+  var listApplications = document.getElementById("listApplications");
+  var fullList = gPrefBranch.getComplexValue("fullList",
+                                             Ci.nsISupportsString).data;
+  var fullListApplications = gPrefBranch.getComplexValue("fullList.applications",
+                                             Ci.nsISupportsString).data;
+  fullList = fullList.split(",");
+  var applicationsList = fullListApplications.split(",");
+
+  var item;
+
+  for (var i = 0; i < applicationsList.length; ++i) {
+    // Add the item to the watch list
+    item = document.createElement("listitem");
+    item.setAttribute("id", applicationsList[i]);
+    item.setAttribute("label", applicationsList[i]);
+    item.setAttribute("type", "checkbox");
+    item.setAttribute("checked", fullList.indexOf(applicationsList[i]) != -1);
+    listApplications.appendChild(item);
+  }
+}
+
+function initializeL10nList()
+{
+  var listL10n = document.getElementById("listL10n");
+  var fullList = gPrefBranch.getComplexValue("fullList",
+                                             Ci.nsISupportsString).data;
+  var fullListMozillaL10n = gPrefBranch.getComplexValue("fullList.localizations",
+                                             Ci.nsISupportsString).data;
+  fullList = fullList.split(",");
+  var mozillaL10nList = fullListMozillaL10n.split(",");
+
+  var item;
+
+  for (var i = 0; i < mozillaL10nList.length; ++i) {
+    // Add the item to the watch list
+    item = document.createElement("listitem");
+    item.setAttribute("id", mozillaL10nList[i]);
+    item.setAttribute("label", mozillaL10nList[i]);
+    item.setAttribute("type", "checkbox");
+    item.setAttribute("checked", fullList.indexOf(mozillaL10nList[i]) != -1);
+    listL10n.appendChild(item);
+  }
+}
+
+function syncToFullListApplications()
+{
+  var syncItems = document.getElementById("listApplications");
+  var syncItemsChecked = new Array();
+  syncItemsChecked = syncItems.getElementsByAttribute( "checked", true );
+  var syncApplications = new Array();
+  for (var i = 0; i < syncItemsChecked.length; ++i) {
+    var syncNode = syncItemsChecked[i];
+  	syncApplications.push(syncNode.id);
+  }
+  return syncApplications;
+}
+
+function syncToFullListL10n()
+{
+  var syncItems = document.getElementById("listL10n");
+  var syncItemsChecked = new Array();
+  syncItemsChecked = syncItems.getElementsByAttribute( "checked", true );
+  var syncL10n = new Array();
+  for (var i = 0; i < syncItemsChecked.length; ++i) {
+    var syncNode = syncItemsChecked[i];
+      syncL10n.push(syncNode.id);
+  }
+  return syncL10n;
+}
+
+function mergeAndSync()
+{
+  var syncArray = [];
+  var syncApplications = syncToFullListApplications();
+  var syncL10n = syncToFullListL10n();
+  syncArray = syncApplications.concat(syncL10n);
+  syncArray.sort();
+  syncArray.join(",");
+  // Workaround for Win: Write changes immediately
+  void gPrefBranch.setCharPref("fullList",syncArray);
+  return syncArray;
+}
+
+function refreshParent()
+{
+  opener.tinderstatus_clearWatchList();
+  opener.tinderstatus_clearGotoTreePopup();
+  opener.tinderstatus_clearNotifyTrees();
+  opener.tinderstatus_clearNotifyTinderboxes();
+  opener.onLoadTinderstatusPrefsPane();
+}
diff -u8pdNr orig-042/chrome/content/showhideTinderboxes.xul exten-042/chrome/content/showhideTinderboxes.xul
--- orig-042/chrome/content/showhideTinderboxes.xul	1970-01-01 01:00:00.000000000 +0100
+++ exten-042/chrome/content/showhideTinderboxes.xul	2008-04-03 00:09:42.000000000 +0200
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+
+<!DOCTYPE dialog SYSTEM "chrome://tinderstatus/locale/showhideTinderboxes.dtd">
+
+<prefwindow
+        id="tinderstatus-showhide-tinderboxes-dialog"
+        title="&tinderstatus.showhide.tinderboxes.title;"
+        buttons="accept"
+        type="child"
+        ondialogaccept="refreshParent();"
+        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+<prefpane id="tinderstatus-showhide-tinderboxes-prefspane" label="&tinderstatus.showhide.tinderboxes.caption;"
+          onpaneload="initializeCustomizeWindow();">
+
+  <script type="application/x-javascript"
+          src="chrome://global/content/strres.js"/>
+  <script type="application/x-javascript"
+          src="chrome://tinderstatus/content/prefs.js" />
+  <script type="application/x-javascript"
+          src="chrome://tinderstatus/content/showhideTinderboxes.js" />
+
+  <preferences>
+    <preference id="extensions.tinderstatus.fullList"
+                name="extensions.tinderstatus.fullList" type="string"/>
+  </preferences>
+
+  <vbox flex="1">
+  <hbox>
+
+    <groupbox orient="vertical">
+      <caption label="&tinderstatus.showhide.tinderboxes.applications;"/>
+        <listbox preference="extensions.tinderstatus.fullList" id="listApplications" rows="10"
+               onsynctopreference="return mergeAndSync();"
+               onclick="userChangedValue(event.target);"
+               onkeyup="userChangedValue(event.target);"/>
+    </groupbox>
+
+    <groupbox orient="vertical">
+      <caption label="&tinderstatus.showhide.tinderboxes.localizations;"/>
+        <listbox preference="extensions.tinderstatus.fullList" id="listL10n" rows="10"
+               onsynctopreference="return mergeAndSync();"
+               onclick="userChangedValue(event.target);"
+               onkeyup="userChangedValue(event.target);"/>
+    </groupbox>
+  </hbox>
+
+  <hbox>
+    <vbox>
+      <description>&tinderstatus.showhide.tinderboxes.info1;</description>
+    </vbox>
+  </hbox>
+  <hbox>
+    <vbox>
+      <description>&tinderstatus.showhide.tinderboxes.info2;</description>
+    </vbox>
+  </hbox>
+</vbox>
+
+</prefpane>
+
+</prefwindow>
diff -u8pdNr orig-042/chrome/content/tinderstatus.css exten-042/chrome/content/tinderstatus.css
--- orig-042/chrome/content/tinderstatus.css	2011-03-29 10:03:46.000000000 +0200
+++ exten-042/chrome/content/tinderstatus.css	2011-06-12 13:20:18.168072700 +0200
@@ -41,16 +41,17 @@ statusbarpanel#tinderstatus-panel {
   -moz-box-align: stretch;
 }
 
 .tinderstatus-box {
   background-color: grey;
   
   /* Center-align the enclosed icon so it doesn't stretch to fill the box. */
   -moz-box-align: center;
+  min-width: 14px;
 
   padding: 0px 2px 0px 2px;
 /*
   max-width: 7px;*/
 }
 
 /* Style the background color of the box to reflect build status. */
 .tinderstatus-box[buildstatus="success"] {
diff -u8pdNr orig-042/chrome/content/tinderstatus.js exten-042/chrome/content/tinderstatus.js
--- orig-042/chrome/content/tinderstatus.js	2011-03-29 10:03:46.000000000 +0200
+++ exten-042/chrome/content/tinderstatus.js	2011-06-12 17:57:48.818848200 +0200
@@ -43,16 +43,33 @@ if (!Cc)
   var Cc = Components.classes;
 if (!Ci)
   var Ci = Components.interfaces;
 
 // FIXME: don't set a bunch of non-namespaced global variables.
 
 var gXMLHttpRequest;
 
+var ioservice = Cc["@mozilla.org/network/io-service;1"]
+  .getService(Ci.nsIIOService);
+var extps = Cc["@mozilla.org/uriloader/external-protocol-service;1"]
+  .getService(Components.interfaces.nsIExternalProtocolService);
+var appInfo = Cc['@mozilla.org/xre/app-info;1']
+  .getService(Components.interfaces.nsIXULAppInfo);
+
+var bundle = srGetStrBundle("chrome://tinderstatus/locale/tinderstatus.properties");
+var preferencesLabel = bundle.GetStringFromName( "preferencesLabel" );
+var noTinderboxSelected = bundle.GetStringFromName( "noTinderboxSelected" );
+var lastUpdate = bundle.GetStringFromName( "lastUpdate" );
+var tinderboxesAllGreen = bundle.GetStringFromName( "tinderboxesAllGreen" );
+var tinderboxesUnknownStatus = bundle.GetStringFromName( "tinderboxesUnknownStatus" );
+var tooltipWatching = bundle.GetStringFromName( "tooltipWatching" );
+var updatedTreeStatusLabel = bundle.GetStringFromName( "updatedTreeStatusLabel" );
+var stillNoSuccessLabel = bundle.GetStringFromName( "stillNoSuccessLabel" );
+
 // The order in this list somewhat matters, as the first item is the one
 // that gets loaded when you click on the statusbar icon.
 var gTinderboxIndex = -1;
 var gTinderboxText  = "";
 var gTinderboxURIIndex = 0;
 var gTinderboxIntervalID = 0;
 var gTinderboxLastUpdate = null;
 
@@ -185,17 +202,17 @@ var Tinderstatus = {
 	prefValue =
           this._prefs.getComplexValue(i > 0 ? "watchList" + i : "watchList",
                                       Ci.nsISupportsString).data;
       }
       catch (e) { }
 
       this._treeBoxes[i].trees = prefValue;
       this._treeBoxes[i].tooltip
-          .childNodes[1].setAttribute("value", "Watching: " + prefValue);
+          .childNodes[1].setAttribute("value", tooltipWatching + prefValue);
       newList = newList.concat(prefValue.split(","));
     }
 
     // Also add any we're getting notifications for, but not actually watching
     var notifyTrees = this._prefs.getCharPref("notifyTinderboxes") + "," +
                       this._prefs.getCharPref("notifyTrees");
 
     newList = newList.concat(notifyTrees.split(","));
@@ -236,17 +253,17 @@ var Tinderstatus = {
     let currentStatus = this.translateStatus(this.tinderboxDetails[index].result);
     let notifyTrees = this._prefs.getCharPref("notifyTrees").split(",");
     let treeName = this.tinderboxDetails[index].tree;
     let lastStatus = this.tinderboxDetails[index].lastStatus;
 
     if (notifyTrees.indexOf(treeName) != -1 &&
         lastStatus != currentStatus &&
         currentStatus != "Unknown" && lastStatus != "Unknown") {
-      this.showAlert(treeName, "Tree state is now: " + currentStatus);
+      this.showAlert(treeName, updatedTreeStatusLabel + currentStatus);
     }
     this.tinderboxDetails[index].lastStatus = currentStatus;
   },
 
   checkUpdatedTinderboxes: function (index) {
     let currentText = this.tinderboxDetails[index].result;
     let boxes = currentText.split("\n");
 
@@ -277,17 +294,17 @@ var Tinderstatus = {
 
         // Show an alert if the status has changed
         if (lastBoxStatus != boxStatus && lastBoxStatus != "Unknown")
           this.showAlert(treeName, "Builder: " + boxName + " Status: " + boxStatus);
         // Show an alert if the status isn't success and a new build has
         // completed but not changed state.
         else if (lastBoxStatus == boxStatus && boxStatus != "Success" &&
             lastBoxTime != details[4])
-          this.showAlert(treeName, "Builder: " + boxName + " is still " + boxStatus);
+          this.showAlert(treeName, "Builder: " + boxName + stillNoSuccessLabel + boxStatus);
       }
 
       this.tinderboxDetails[index][boxName].status = boxStatus;
       this.tinderboxDetails[index][boxName].time = details[4];
     }
   },
 
   get _prefSvc() {
@@ -363,31 +380,29 @@ var tinderstatusPrefObserver =
         break;
     }
   }
 };
 
 function initializeTinderstatus() {
   Tinderstatus.init();
 
-  var appInfo = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo);
-
   // If we're running in SeaMonkey and the version is less than 2.*, then the
   // options dialog won't work, so disable the menu option.
   if (appInfo.ID == "{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}") {
     var versionChecker = Cc["@mozilla.org/xpcom/version-comparator;1"]
       .getService(Ci.nsIVersionComparator);
 
     if (versionChecker.compare(appInfo.version, "2.0a1pre") < 0)
       document.getElementById("tinderstatus-prefs").hidden = true;
   }
 
   // If we're not on windows, use preferences for the menu instead of Options.
   if (navigator.platform.toLowerCase().indexOf('win') == -1)
-    document.getElementById("tinderstatus-prefs").label = "Preferences";
+    document.getElementById("tinderstatus-prefs").label = preferencesLabel;
 
   // Set up the tree icons and prefs
   Tinderstatus.updateTreeIconsAndPrefs();
 
   // Kick off the first update.
   refreshTinderboxenStatus();
 
   // Setup the menu
@@ -408,17 +423,17 @@ function setUpTinderboxMenuPopup() {
 
   // Get the full list of tinderboxes that we know about.
   var fullList;
 
   try {
     fullList = Tinderstatus._prefs.getComplexValue("fullList", Ci.nsISupportsString).data;
   }
   catch (ex) {
-    fullList = "Bugzilla,Camino,Firefox,Firefox3.0,Firefox3.5,Firefox-Ports,Mobile,SeaMonkey,SeaMonkey-Ports,Sunbird,Thunderbird,Thunderbird3.0,XULRunner";
+    fullList = "Birch,Bugzilla,Build-System,Camino,Cedar,Firefox,Firefox3.6,Firefox3.5,Mapel,Miramar,Mobile,Places,SeaMonkey,CalendarTrunk,Calendar1.0,ThunderbirdTrunk,Thunderbird3.1,TraceMonkey,XULRunner";
   }
 
   fullList = fullList.split(",");
 
   // Now add the tinderboxes onto the menu
   var item;
   for (var i = 0; i < fullList.length; ++i) {
     item = document.createElement("menuitem");
@@ -487,23 +502,37 @@ function loadTinderboxURI(evt) {
   }
   catch (ex) {
     // If we can't get the pref, set to the default
     tinderboxToLoad = "Firefox";
   }
 
   if (tinderboxToLoad != "") {
     var url = "http://tinderbox.mozilla.org/" + tinderboxToLoad + "/";
-    if (!handleLinkClick(evt, url, null))
-      loadURI(url);
+    if(appInfo.name == 'Sunbird') {
+        var uriTinderbox = ioservice.newURI(url, null, null);
+        extps.loadURI(uriTinderbox, null);
+        }
+      else {
+        if (!handleLinkClick(evt, url, null)) {
+          loadURI(url);
+        }
+    }
   }
 }
 
 function loadTinderboxPage(pageName) {
-  loadURI("http://tinderbox.mozilla.org/" + pageName + "/");
+  var url = "http://tinderbox.mozilla.org/" + pageName + "/";
+  if(appInfo.name == 'Sunbird') {
+    var uriTinderbox = ioservice.newURI(url, null, null);
+    extps.loadURI(uriTinderbox, null);
+  }
+  else {
+    loadURI(url);
+  }
 }
 
 function refreshTinderboxenStatus() {
   // Check we aren't currently doing an update
   if (gTinderboxIndex != -1)
     return;
 
   Tinderstatus.updateCurrentTinderboxList();
@@ -516,17 +545,17 @@ function refreshTinderboxenStatus() {
  * Request a tinderbox summary from one tree.
  */
 function getTinderboxStatus() {
   // If no items selected, just show nothing.
   if (Tinderstatus.tinderboxDetails.length == 0) {
     document.getElementById('tinderstatus-box')
             .setAttribute("buildstatus", "none");
 
-    //    setTinderboxStatus("No tinderboxes selected.");
+    //    setTinderboxStatus(noTinderboxSelected);
     gTinderboxURIIndex = 0;
     return;
   }
 
   gTinderboxIndex++;
   if (gTinderboxIndex == Tinderstatus.tinderboxDetails.length) {
     return;
   }
@@ -548,17 +577,17 @@ function handleRequestError() {
   // Abort current attempt, wait for next refresh
   gTinderboxIndex = -1;
   gTinderboxText = "";
 }
 
 function getSetLastUpdated() {
   gTinderboxLastUpdate = new Date();
 
-  var result = "Last Updated: ";
+  var result = lastUpdate;
 
   if (gTinderboxLastUpdate.getHours() < 10)
     result += "0";
 
   result += gTinderboxLastUpdate.getHours();
 
   result += gTinderboxLastUpdate.getMinutes() < 10 ? ":0" : ":";
 
@@ -658,22 +687,22 @@ function displayTinderboxStatus()
       box.setAttribute("buildstatus", "testfailed");
     }
     else if (reducedText.indexOf("exception") != -1) {
       re = /.*exception/g;
       fillTinderboxStatus(tooltip, reducedText, re);
       box.setAttribute("buildstatus", "exception");
     }
     else if (reducedText.indexOf("success") != -1) {
-      setTinderboxStatus(tooltip, "All tinderboxes are green.");
+      setTinderboxStatus(tooltip, tinderboxesAllGreen);
       box.setAttribute("buildstatus", "success");
       gTinderboxURIIndex = 0;
     }
     else {
-      setTinderboxStatus(tooltip, "Unknown tinderbox status.");
+      setTinderboxStatus(tooltip, tinderboxesUnknownStatus);
       box.setAttribute("buildstatus", "none");
       gTinderboxURIIndex = 0;
     }
 
     // Change the icon superimposed on the box to reflect tree status.
     var icon = box.firstChild;
     if (reducedText.indexOf("closed") != -1)
       icon.setAttribute("treestatus", "closed");
diff -u8pdNr orig-042/chrome/locale/de/overlay.dtd exten-042/chrome/locale/de/overlay.dtd
--- orig-042/chrome/locale/de/overlay.dtd	1970-01-01 01:00:00.000000000 +0100
+++ exten-042/chrome/locale/de/overlay.dtd	2011-06-12 14:21:18.312601900 +0200
@@ -0,0 +1,8 @@
+<!ENTITY tinderstatus.context.opentree "Offener Verzeichnisbaum:">
+<!ENTITY tinderstatus.context.preferences "Einstellungen…">
+<!ENTITY tinderstatus.context.preferences.accesskey "E">
+<!ENTITY tinderstatus.context.notifications "Benachrichtigungen">
+<!ENTITY tinderstatus.context.notifications.accesskey "B">
+<!ENTITY tinderstatus.context.refresh.now "Jetzt aktualisieren">
+<!ENTITY tinderstatus.context.refresh.now.accesskey "a">
+<!ENTITY tinderstatus.tooltip "Bislang keine Statusinformationen erhalten.">
diff -u8pdNr orig-042/chrome/locale/de/prefs.dtd exten-042/chrome/locale/de/prefs.dtd
--- orig-042/chrome/locale/de/prefs.dtd	1970-01-01 01:00:00.000000000 +0100
+++ exten-042/chrome/locale/de/prefs.dtd	2011-06-12 17:31:01.584919700 +0200
@@ -0,0 +1,19 @@
+<!ENTITY tinderstatus.preferences.title "Tinderstatus Extended - Einstellungen">
+<!ENTITY tinderstatus.preferences.prefspane.label "Tinderstatus Extended - Einstellungen">
+<!ENTITY tinderstatus.preferences.refreshtime "Intervall für Status-Aktualisierungen in Minuten:">
+<!ENTITY tinderstatus.preferences.refreshtime.accesskey "i">
+<!ENTITY tinderstatus.preferences.gototree "Mit Klick auf das Tinderstatus-Symbol diesen Quellen-Verzeichnisbaum laden:">
+<!ENTITY tinderstatus.preferences.gototree.accesskey "K">
+<!ENTITY tinderstatus.preferences.watchlist "Zu beobachtende Quellen-Verzeichnisbäume auswählen: ">
+<!ENTITY tinderstatus.preferences.watchlist.accesskey "T">
+<!ENTITY tinderstatus.preferences.showhide.tinderboxes.button "Liste anpassen…">
+<!ENTITY tinderstatus.preferences.showhide.tinderboxes.accesskey "L">
+<!ENTITY tinderstatus.preferences.resettodefault "Einstellungen zurücksetzen">
+<!ENTITY tinderstatus.preferences.resettodefault.accesskey "z">
+<!ENTITY tinderstatus.preferences.numberstatusicons "Anzahl Statusleisten-Symbole:">
+<!ENTITY tinderstatus.preferences.numberstatusicons.accesskey "N">
+<!ENTITY tinderstatus.preferences.notifyTreesTab.label "Benachrichtigungen">
+<!ENTITY tinderstatus.preferences.treeWatchTab.label "Quellen-Beobachtung">
+<!ENTITY tinderstatus.preferences.notificationsOn.label "Benachrichtigungen anzeigen">
+<!ENTITY tinderstatus.preferences.notifyTrees.label "Benachrichtigung bei Statusänderung:">
+<!ENTITY tinderstatus.preferences.notifyTinderboxes.label "Benachrichtigung für einzelne Builds:">
diff -u8pdNr orig-042/chrome/locale/de/showhideTinderboxes.dtd exten-042/chrome/locale/de/showhideTinderboxes.dtd
--- orig-042/chrome/locale/de/showhideTinderboxes.dtd	1970-01-01 01:00:00.000000000 +0100
+++ exten-042/chrome/locale/de/showhideTinderboxes.dtd	2008-07-04 14:26:22.000000000 +0200
@@ -0,0 +1,6 @@
+<!ENTITY tinderstatus.showhide.tinderboxes.title "Tinderbox-Liste bearbeiten">
+<!ENTITY tinderstatus.showhide.tinderboxes.caption "Tinderbox-Liste bearbeiten">
+<!ENTITY tinderstatus.showhide.tinderboxes.applications "Anwendungen, Diverse">
+<!ENTITY tinderstatus.showhide.tinderboxes.localizations "Lokalisierungen">
+<!ENTITY tinderstatus.showhide.tinderboxes.info1 "Hier kann festgelegt werden, welche Quellen-Verzeichnisbäume im">
+<!ENTITY tinderstatus.showhide.tinderboxes.info2 " Einstellungsdialog für die Beobachtung zur Auswahl stehen sollen.">
diff -u8pdNr orig-042/chrome/locale/de/tinderstatus.properties exten-042/chrome/locale/de/tinderstatus.properties
--- orig-042/chrome/locale/de/tinderstatus.properties	1970-01-01 01:00:00.000000000 +0100
+++ exten-042/chrome/locale/de/tinderstatus.properties	2011-06-12 17:57:11.479712500 +0200
@@ -0,0 +1,9 @@
+extensions.{CE49928A-7804-4688-8C9E-ABCBC7FB9BCF}.description=Statusleisten-Symbol, das über den Status von Mozilla-Tinderboxen informiert.
+preferencesLabel=Einstellungen…
+noTinderboxSelected=Keine Tinderbox ausgewählt.
+lastUpdate=Letzte Aktualisierung:
+tinderboxesAllGreen=Alle Tinderboxen sind grün.
+tinderboxesUnknownStatus=Unbekannter Tinderbox-Status.
+tooltipWatching=Beobachte: 
+updatedTreeStatusLabel=Status ist jetzt: 
+stillNoSuccessLabel= ist weiterhin 
diff -u8pdNr orig-042/chrome/locale/en-US/overlay.dtd exten-042/chrome/locale/en-US/overlay.dtd
--- orig-042/chrome/locale/en-US/overlay.dtd	1970-01-01 01:00:00.000000000 +0100
+++ exten-042/chrome/locale/en-US/overlay.dtd	2011-06-12 14:19:45.314282700 +0200
@@ -0,0 +1,8 @@
+<!ENTITY tinderstatus.context.opentree "Open Tree:">
+<!ENTITY tinderstatus.context.preferences "Options">
+<!ENTITY tinderstatus.context.preferences.accesskey "O">
+<!ENTITY tinderstatus.context.notifications "Notifications">
+<!ENTITY tinderstatus.context.notifications.accesskey "N">
+<!ENTITY tinderstatus.context.refresh.now "Refresh now">
+<!ENTITY tinderstatus.context.refresh.now.accesskey "R">
+<!ENTITY tinderstatus.tooltip "No status retrieved yet.">
diff -u8pdNr orig-042/chrome/locale/en-US/prefs.dtd exten-042/chrome/locale/en-US/prefs.dtd
--- orig-042/chrome/locale/en-US/prefs.dtd	1970-01-01 01:00:00.000000000 +0100
+++ exten-042/chrome/locale/en-US/prefs.dtd	2011-06-12 17:02:04.225548400 +0200
@@ -0,0 +1,19 @@
+<!ENTITY tinderstatus.preferences.title "Tinderstatus Extended - Preferences">
+<!ENTITY tinderstatus.preferences.prefspane.label "Tinderstatus Extended - Preferences">
+<!ENTITY tinderstatus.preferences.refreshtime "Time between status updates (minutes):">
+<!ENTITY tinderstatus.preferences.refreshtime.accesskey "i">
+<!ENTITY tinderstatus.preferences.gototree "Clicking tinderstatus icon loads the tree:">
+<!ENTITY tinderstatus.preferences.gototree.accesskey "C">
+<!ENTITY tinderstatus.preferences.watchlist "Choose trees to watch: ">
+<!ENTITY tinderstatus.preferences.watchlist.accesskey "T">
+<!ENTITY tinderstatus.preferences.showhide.tinderboxes.button "Customize list…">
+<!ENTITY tinderstatus.preferences.showhide.tinderboxes.accesskey "L">
+<!ENTITY tinderstatus.preferences.resettodefault "Reset settings to default">
+<!ENTITY tinderstatus.preferences.resettodefault.accesskey "d">
+<!ENTITY tinderstatus.preferences.numberstatusicons "Number of Status Icons">
+<!ENTITY tinderstatus.preferences.numberstatusicons.accesskey "N">
+<!ENTITY tinderstatus.preferences.notifyTreesTab.label "Notifications">
+<!ENTITY tinderstatus.preferences.treeWatchTab.label "Tree Watching">
+<!ENTITY tinderstatus.preferences.notificationsOn.label "Notifications On">
+<!ENTITY tinderstatus.preferences.notifyTrees.label "Notify me when these trees change status:">
+<!ENTITY tinderstatus.preferences.notifyTinderboxes.label "Notify me about individual builds on these trees:">
diff -u8pdNr orig-042/chrome/locale/en-US/showhideTinderboxes.dtd exten-042/chrome/locale/en-US/showhideTinderboxes.dtd
--- orig-042/chrome/locale/en-US/showhideTinderboxes.dtd	1970-01-01 01:00:00.000000000 +0100
+++ exten-042/chrome/locale/en-US/showhideTinderboxes.dtd	2008-07-04 15:14:58.000000000 +0200
@@ -0,0 +1,6 @@
+<!ENTITY tinderstatus.showhide.tinderboxes.title "Edit list of tinderboxes">
+<!ENTITY tinderstatus.showhide.tinderboxes.caption "Edit list of tinderboxes">
+<!ENTITY tinderstatus.showhide.tinderboxes.applications "Applications, Misc">
+<!ENTITY tinderstatus.showhide.tinderboxes.localizations "Localizations">
+<!ENTITY tinderstatus.showhide.tinderboxes.info1 "Choose which trees the options dialog offers to watch.">
+<!ENTITY tinderstatus.showhide.tinderboxes.info2 "">
diff -u8pdNr orig-042/chrome/locale/en-US/tinderstatus.properties exten-042/chrome/locale/en-US/tinderstatus.properties
--- orig-042/chrome/locale/en-US/tinderstatus.properties	1970-01-01 01:00:00.000000000 +0100
+++ exten-042/chrome/locale/en-US/tinderstatus.properties	2011-06-12 17:53:20.895523800 +0200
@@ -0,0 +1,9 @@
+extensions.{CE49928A-7804-4688-8C9E-ABCBC7FB9BCF}.description=Satusbar icon showing the status of Mozilla tinderboxes.
+preferencesLabel=Options…
+noTinderboxSelected=No tinderbox selected.
+lastUpdate=Last Updated: 
+tooltipWatching=Watching: 
+tinderboxesAllGreen=All tinderboxes are green.
+tinderboxesUnknownStatus=Unknown tinderbox status.
+updatedTreeStatusLabel=Tree state is now: 
+stillNoSuccessLabel= is still 
diff -u8pdNr orig-042/chrome.manifest exten-042/chrome.manifest
--- orig-042/chrome.manifest	2011-03-28 17:50:49.000000000 +0200
+++ exten-042/chrome.manifest	2011-06-12 14:35:39.707870900 +0200
@@ -1,7 +1,13 @@
-content tinderstatus content/
+content tinderstatus chrome/content/
+locale tinderstatus en-US chrome/locale/en-US/
+locale tinderstatus de chrome/locale/de/
 
 # For Firefox
 overlay chrome://browser/content/browser.xul chrome://tinderstatus/content/overlay.xul
 
 # For SeaMonkey
 overlay chrome://navigator/content/navigator.xul chrome://tinderstatus/content/overlay.xul
+
+# For Sunbird
+overlay chrome://calendar/content/calendar.xul chrome://tinderstatus/content/overlay.xul
+overlay chrome://sunbird/content/calendar.xul chrome://tinderstatus/content/overlay.xul
diff -u8pdNr orig-042/defaults/preferences/tinderstatus.js exten-042/defaults/preferences/tinderstatus.js
--- orig-042/defaults/preferences/tinderstatus.js	2011-03-29 10:06:40.000000000 +0200
+++ exten-042/defaults/preferences/tinderstatus.js	2011-06-12 16:46:59.418796400 +0200
@@ -1,9 +1,12 @@
+pref("extensions.{CE49928A-7804-4688-8C9E-ABCBC7FB9BCF}.description", "chrome://tinderstatus/locale/tinderstatus.properties");
 pref("extensions.tinderstatus.fullList", "Birch,Bugzilla,Build-System,Camino,Cedar,Firefox,Firefox3.6,Firefox3.5,Mapel,Miramar,Mobile,Places,SeaMonkey,CalendarTrunk,Calendar1.0,ThunderbirdTrunk,Thunderbird3.1,TraceMonkey,XULRunner");
+pref("extensions.tinderstatus.fullList.applications", "Accessibility,Addons,AddonsMgr,AddonTester,Bugzilla,Bugzilla3.0,Bugzilla3.2,Bugzilla3.4,Bugzilla3.6,Bugzilla4.0,Build-System,Calendar1.0,CalendarTrunk,Camino,Cedar,Devtools,Electrolysis,Electrolysis-Unittest,Firefox,Firefox-Ports,Firefox-Release,Firefox-Staging,Firefox-Unittest,Firefox3.5,Firefox3.5-Unittest,Firefox3.6,Firefox3.6-Release,Firefox3.6-Unittest,Firefox4.0,Firefox4.0-Release,Firefox4.0-Unittest,Fx-Team,Geriatric-Machines,Graphics,Jaegermonkey,Jetpack,LeakTest,Maple,Miramar,Miramar-Release,Mobile,Mobile1.1,Mobile2.0,Mobile5.0,MobileTest,Mozilla-Aurora,Mozilla-Beta,Mozilla-Beta-Release,Mozilla-Inbound,MozillaExperimental,MozillaRelease,MozillaStaging,MozillaTest,MozillaTest-BACKUP,MozillaTest-Release,MozillaTestBroken,MozillaTestBroken2,MozillaTry,Nanojit,NSS,NSS-Stable-Branch,Places,Places-Unittest,Private-Browsing,Releng-Preproduction,Rust,SeaMonkey,SeaMonkey-Aurora,SeaMonkey-Beta,SeaMonkey-Ports,SeaMonkey2.0,SeaMonkey2.1,Services-Central,Shadow-Central,Sunbird,Sunbird-Mozilla1.8,Testing,Thunderbird,Thunderbird-Aurora,Thunderbird-Beta,Thunderbird-Ports,Thunderbird-Release,Thunderbird3.0,Thunderbird3.0-Release,Thunderbird3.1,Thunderbird3.1-Release,ThunderbirdTest,ThunderbirdTrunk,ThunderbirdTry,TraceMonkey,TraceMonkeyUnitTest,Try,UnitTest,UX,Ux,XULRunner");
+pref("extensions.tinderstatus.fullList.localizations", "Mozilla-l10n,Mozilla-l10n-af,Mozilla-l10n-ak,Mozilla-l10n-ar,Mozilla-l10n-as,Mozilla-l10n-ast,Mozilla-l10n-be,Mozilla-l10n-bg,Mozilla-l10n-bn-BD,Mozilla-l10n-bn-IN,Mozilla-l10n-br,Mozilla-l10n-bs,Mozilla-l10n-ca,Mozilla-l10n-cs,Mozilla-l10n-cy,Mozilla-l10n-da,Mozilla-l10n-de,Mozilla-l10n-el,Mozilla-l10n-en-GB,Mozilla-l10n-en-ZA,Mozilla-l10n-eo,Mozilla-l10n-es-AR,Mozilla-l10n-es-CL,Mozilla-l10n-es-ES,Mozilla-l10n-es-MX,Mozilla-l10n-et,Mozilla-l10n-eu,Mozilla-l10n-fa,Mozilla-l10n-fi,Mozilla-l10n-fr,Mozilla-l10n-fy-NL,Mozilla-l10n-ga-IE,Mozilla-l10n-gd,Mozilla-l10n-gl,Mozilla-l10n-gu-IN,Mozilla-l10n-he,Mozilla-l10n-hi-IN,Mozilla-l10n-hr,Mozilla-l10n-hu,Mozilla-l10n-hy-AM,Mozilla-l10n-id,Mozilla-l10n-ilo,Mozilla-l10n-is,Mozilla-l10n-it,Mozilla-l10n-ja,Mozilla-l10n-ja-JP-mac,Mozilla-l10n-ka,Mozilla-l10n-kk,Mozilla-l10n-km,Mozilla-l10n-kn,Mozilla-l10n-ko,Mozilla-l10n-ku,Mozilla-l10n-lg,Mozilla-l10n-lt,Mozilla-l10n-lv,Mozilla-l10n-mai,Mozilla-l10n-mk,Mozilla-l10n-ml,Mozilla-l10n-mn,Mozilla-l10n-mr,Mozilla-l10n-ms,Mozilla-l10n-nb-NO,Mozilla-l10n-ne-NP,Mozilla-l10n-nl,Mozilla-l10n-nn-NO,Mozilla-l10n-nso,Mozilla-l10n-oc,Mozilla-l10n-or,Mozilla-l10n-pa-IN,Mozilla-l10n-pl,Mozilla-l10n-pt-BR,Mozilla-l10n-pt-PT,Mozilla-l10n-rm,Mozilla-l10n-ro,Mozilla-l10n-ru,Mozilla-l10n-rw,Mozilla-l10n-si,Mozilla-l10n-sk,Mozilla-l10n-sl,Mozilla-l10n-son,Mozilla-l10n-sq,Mozilla-l10n-sr,Mozilla-l10n-sv-SE,Mozilla-l10n-ta,Mozilla-l10n-ta-LK,Mozilla-l10n-te,Mozilla-l10n-th,Mozilla-l10n-tr,Mozilla-l10n-uk,Mozilla-l10n-vi,Mozilla-l10n-zh-CN,Mozilla-l10n-zh-TW,Mozilla-l10n-zu");
 pref("extensions.tinderstatus.watchList", "Firefox,Firefox3.5,Firefox3.6,Mobile,SeaMonkey,ThunderbirdTrunk");
 pref("extensions.tinderstatus.gotoTree", "Firefox");
 pref("extensions.tinderstatus.refreshTime", 1);
 pref("extensions.tinderstatus.numTrees", 1);
 pref("extensions.tinderstatus.renamed_Firefox3.1_to_Firefox3.5", false);
 pref("extensions.tinderstatus.notifications", true);
-pref("extensions.tinderstatus.notifyTrees", "Firefox");
+pref("extensions.tinderstatus.notifyTrees", "");
 pref("extensions.tinderstatus.notifyTinderboxes", "");
diff -u8pdNr orig-042/install.js exten-042/install.js
--- orig-042/install.js	2011-03-28 17:50:49.000000000 +0200
+++ exten-042/install.js	2011-06-12 14:10:17.764543200 +0200
@@ -1,9 +1,9 @@
-initInstall("Mozilla Tinderstatus Extension", "/mozdev/tinderstatus", "0.3.1");
+initInstall("Tinderstatus Extended", "/mozdev/tinderstatus", "0.4.2");
 
 var chromeDir = getFolder("Profile", "chrome");
 
 // Specify the directory into which we're going to install the extension.
 var installDir = getFolder(chromeDir, "tinderstatus");
 setPackageFolder(installDir);
 
 // Specify the directory into which we're going to install the content files,
diff -u8pdNr orig-042/install.rdf exten-042/install.rdf
--- orig-042/install.rdf	2011-03-29 10:06:58.000000000 +0200
+++ exten-042/install.rdf	2011-06-12 18:08:37.109928300 +0200
@@ -1,39 +1,50 @@
 <?xml version="1.0"?>
 
 <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 
   <Description about="urn:mozilla:install-manifest">
-    <em:name>Tinderstatus</em:name>
-    <em:id>{a4ebc7e4-5ffe-4811-b9c6-a782bba8c1c2}</em:id>
+    <em:name>Tinderstatus Extended</em:name>
+    <em:id>{CE49928A-7804-4688-8C9E-ABCBC7FB9BCF}</em:id>
     <em:version>0.4.2</em:version>
 
     <em:description>icon showing the status of Mozilla tinderboxen</em:description>
     <em:creator>Myk Melez</em:creator>
     <em:contributor>Alex Vincent</em:contributor>
     <em:contributor>Mark Banner</em:contributor>
     <em:contributor>Frédéric Buclin</em:contributor>
     <em:homepageURL>http://tinderstatus.mozdev.org/</em:homepageURL>
     <em:optionsURL>chrome://tinderstatus/content/prefs.xul</em:optionsURL>
+    <em:updateURL>http://www.nadelundhirn.de/krams/exten/tinderstatus/update.rdf</em:updateURL>
+    <em:updateKey>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJ9vts188WYuHxbA5Dmj8H1F7b4JoGolHIQKWVixZfnyQg9Qq2FDjXGwEFAtowO6bXHnB+PuLBD/LpbqcJEcTSjQkziYsjmduiQVQcLcmv6Jc1dN6H0XuOTRDIAmfxVQewjJm8yYQIf6F93MZdPeSZ5gWBl7s29h8WcjMHglLfmwIDAQAB</em:updateKey>
 
     <!-- Firefox -->
     <em:targetApplication>
       <Description>
         <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
         <em:minVersion>1.5</em:minVersion>
-        <em:maxVersion>4.2a1pre</em:maxVersion>
+        <em:maxVersion>7.0a1</em:maxVersion>
       </Description>
     </em:targetApplication>
 
     <!-- SeaMonkey -->
     <em:targetApplication>
       <Description>
         <em:id>{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}</em:id>
-        <em:minVersion>1.0</em:minVersion>
-        <em:maxVersion>2.2a1pre</em:maxVersion>
+        <em:minVersion>2.0a1</em:minVersion>
+        <em:maxVersion>2.4a1</em:maxVersion>
       </Description>
     </em:targetApplication>
 
+    <!-- Sunbird -->
+    <em:targetApplication>
+      <Description>
+        <em:id>{718e30fb-e89b-41dd-9da7-e25a45638b28}</em:id>
+        <em:minVersion>1.0b1pre</em:minVersion>
+        <em:maxVersion>1.0pre</em:maxVersion>
+        </Description>
+    </em:targetApplication>
+
   </Description>
 
 </RDF>

