rem: var titleString = vxHistory.mBundle.getString("historyWindowTitle"); titleString = titleString.replace(/%FORM_NAME%/, documentTitle); 
add: var titleString = vxHistory.mBundle.getFormattedString("historyWindowTitle", [ documentTitle ]); 
context:   Observe: function (aSubject, aTopic, aData)   {    // only update if we need to switch datasources.     _ddf(aData.mDocumentID, vxHistory.mDocumentID);    if (aData.mDocumentID === vxHistory.mDocumentID) {      _dd("Not re-rooting for the same ID");      return false;    }    vxHistory.mDocumentID = aData.mDocumentID;      var historyTree = document.getElementById("historyTree");    if (historyTree) {      var datasources = historyTree.database.GetDataSources();      while(datasources.hasMoreElements()) {        var currDS = datasources.getNext();        currDS = currDS.QueryInterface(Components.interfaces.nsIRDFDataSource);        historyTree.database.RemoveDataSource(currDS);      }      var datasource = aSubject.QueryInterface(Components.interfaces.nsIRDFDataSource);      if (datasource) {        historyTree.database.AddDataSource(datasource);        historyTree.builder.rebuild();                if (aData.vfdDocumentWindowNode) {          var documentTitle = aData.vfdDocumentWindowNode.getAttribute("title");          var titleString = vxHistory.mBundle.getString("historyWindowTitle");          titleString = titleString.replace(/%FORM_NAME%/, documentTitle);          window.title = titleString;        }                /*        // XXX - inspect the datasource        var RDFService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService();        RDFService = RDFService.QueryInterface(Components.interfaces.nsIRDFService);        gVxTransactionHead = RDFService.GetResource(kTxnHeadURI);        gVxTransactionList = RDFService.GetResource(kVixenRDF + "transaction-list");        var seq = datasource.GetTarget(gVxTransactionHead, gVxTransactionList, true);        seq = seq.QueryInterface(Components.interfaces.nsIRDFResource);        gVxTxnDescription = RDFService.GetResource(kVixenRDF + "description");        var container = Components.classes["@mozilla.org/rdf/container;1"].getService();        container = container.QueryInterface(Components.interfaces.nsIRDFContainer);        container.Init(datasource, seq);        var elts = container.GetElements();                while (elts.hasMoreElements()) {          var currElt = elts.getNext();          currElt = currElt.QueryInterface(Components.interfaces.nsIRDFResource);          var commandString = datasource.GetTarget(currElt, gVxTxnDescription, true);          commandString = commandString.QueryInterface(Components.interfaces.nsIRDFLiteral);          _ddf("commandString", commandString.Value);        }        */      }    }    return true;  }
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/d98372f71ceb26eb6ccc2fa9d1f29e92a78a4826/history.js/clean/extensions/vixen/resources/content/history/history.js