diff --git a/chrome.manifest b/chrome.manifest
index f799d9377..5d9ce7847 100644
--- a/chrome.manifest
+++ b/chrome.manifest
@@ -32,9 +32,9 @@ locale	zotero	pt-BR		chrome/locale/pt-BR/zotero/
 locale	zotero	pt-PT		chrome/locale/pt-PT/zotero/
 locale	zotero	ro-RO		chrome/locale/ro-RO/zotero/
 locale	zotero	ru-RU		chrome/locale/ru-RU/zotero/
+locale  zotero  sk-SK		chrome/locale/sk-SK/zotero/
 locale	zotero	sl-SI		chrome/locale/sl-SI/zotero/
 locale	zotero	sr-RS		chrome/locale/sr-RS/zotero/
-locale	zotero	sr-YU		chrome/locale/sr-YU/zotero/
 locale	zotero	sv-SE		chrome/locale/sv-SE/zotero/
 locale	zotero	th-TH		chrome/locale/th-TH/zotero/
 locale	zotero	tr-TR		chrome/locale/tr-TR/zotero/
diff --git a/chrome/content/zotero/about.xul b/chrome/content/zotero/about.xul
index 0290c8dfd..6414110a9 100644
--- a/chrome/content/zotero/about.xul
+++ b/chrome/content/zotero/about.xul
@@ -54,7 +54,7 @@
 					"de-DE": [
 						"Harald Kliems",
 						"Jason Verber",
-						"Helga"
+						"Morris Vollmann"
 					],
 					
 					"el-GR": [
@@ -147,6 +147,10 @@
 						"Yaroslav"
 					],
 					
+					"sk-SK": [
+						"athelas"
+					],
+					
 					"sl-SI": [
 						"Martin Srebotnjak"
 					],
@@ -158,7 +162,11 @@
 					"sv-SE": [
 						"Erik Stattin"
 					],
-					
+
+					"th-TH": [
+						"chin"
+					],
+										
 					"tr-TR": [
 						"Zeki Celikbas"
 					],
diff --git a/chrome/content/zotero/bibliography.js b/chrome/content/zotero/bibliography.js
index 8a77b1d14..a52fb3f4d 100644
--- a/chrome/content/zotero/bibliography.js
+++ b/chrome/content/zotero/bibliography.js
@@ -110,13 +110,19 @@ var Zotero_File_Interface_Bibliography = new function() {
 			document.getElementById("fields").label = Zotero.getString("integration."+formatOption+".label");
 			document.getElementById("fields-caption").textContent = Zotero.getString("integration."+formatOption+".caption");
 			
-			// add border on Windows
 			if(Zotero.isWin) {
+				// add border on Windows
 				document.getElementById("zotero-doc-prefs-dialog").style.border = "1px solid black";
 			}
 		}
-		window.sizeToContent();
-		window.centerWindowOnScreen();
+		
+		// Center popup manually after a delay on Windows, since window
+		// isn't resizable and there might be a persisted position
+		if (Zotero.isWin) {
+			setTimeout(function () {
+				window.centerWindowOnScreen();
+			}, 1);
+		}
 	}
 	
 	/*
diff --git a/chrome/content/zotero/bindings/relatedbox.xml b/chrome/content/zotero/bindings/relatedbox.xml
index f1d91adc4..9f0ab20eb 100644
--- a/chrome/content/zotero/bindings/relatedbox.xml
+++ b/chrome/content/zotero/bindings/relatedbox.xml
@@ -138,8 +138,12 @@
 				<body>
 					<![CDATA[
 						var io = {dataIn: null, dataOut: null};
-						window.openDialog('chrome://zotero/content/selectItemsDialog.xul','','chrome,modal',io);
-
+						
+						Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
+							.getService(Components.interfaces.nsIWindowWatcher)
+							.openWindow(null, 'chrome://zotero/content/selectItemsDialog.xul', '',
+								'chrome,modal,centerscreen', io);
+						
 						if(io.dataOut && this.item)
 						{
 							for(var i = 0; i < io.dataOut.length; i++)
diff --git a/chrome/content/zotero/bindings/tagselector.xml b/chrome/content/zotero/bindings/tagselector.xml
index db3145433..0f736b9c0 100644
--- a/chrome/content/zotero/bindings/tagselector.xml
+++ b/chrome/content/zotero/bindings/tagselector.xml
@@ -44,7 +44,7 @@
 				<getter>
 					<![CDATA[
 					var types = [0];
-					if (this.showAutomatic == 'true') {
+					if (this.showAutomatic) {
 						types.push(1);
 					}
 					return types;
diff --git a/chrome/content/zotero/bindings/zoterosearch.xml b/chrome/content/zotero/bindings/zoterosearch.xml
index dea7fc4f1..365654111 100644
--- a/chrome/content/zotero/bindings/zoterosearch.xml
+++ b/chrome/content/zotero/bindings/zoterosearch.xml
@@ -542,7 +542,9 @@
 							
 							this.mode = condition['mode'];
 							this.id('operatorsmenu').value = condition['operator'];
-							this.value = prefix + condition['value'];
+							this.value = prefix +
+								(condition.value ? condition.value : '');
+
 							this.dontupdate = false;
 						}
 						
diff --git a/chrome/content/zotero/reportInterface.js b/chrome/content/zotero/reportInterface.js
index 08c7c9d10..38aeba120 100644
--- a/chrome/content/zotero/reportInterface.js
+++ b/chrome/content/zotero/reportInterface.js
@@ -36,10 +36,10 @@ var Zotero_Report_Interface = new function() {
 		var id = ZoteroPane.getSelectedCollection(true);
 		var sortColumn = ZoteroPane.getSortField();
 		var sortDirection = ZoteroPane.getSortDirection();
-		
-		if (sortColumn != 'title' || sortDirection != 'ascending') {
+		// See note re: 'ascending'/'descending' for ItemTreeView.getSortDirection()
+		if (sortColumn != 'title' || sortDirection != 'descending') {
 			queryString = '?sort=' + sortColumn +
-				(sortDirection != 'ascending' ? '/d' : '');
+				(sortDirection != 'descending' ? '/d' : '');
 		}
 		
 		if (id) {
diff --git a/chrome/content/zotero/selectItemsDialog.js b/chrome/content/zotero/selectItemsDialog.js
index 1c0a7b91b..bff07b766 100644
--- a/chrome/content/zotero/selectItemsDialog.js
+++ b/chrome/content/zotero/selectItemsDialog.js
@@ -39,6 +39,15 @@ function doLoad()
 	
 	collectionsView = new Zotero.CollectionTreeView();
 	document.getElementById('zotero-collections-tree').view = collectionsView;
+	
+	// Center popup manually after a delay on Windows, since window
+	// isn't resizable and there might be a persisted position
+	if (Zotero.isWin &&
+			window.document.activeElement.id != 'zotero-select-items-dialog') {
+		setTimeout(function () {
+			window.centerWindowOnScreen();
+		}, 1);
+	}
 }
 
 function doUnload()
diff --git a/chrome/content/zotero/selectItemsDialog.xul b/chrome/content/zotero/selectItemsDialog.xul
index 1f6a065c4..e11b1ac13 100644
--- a/chrome/content/zotero/selectItemsDialog.xul
+++ b/chrome/content/zotero/selectItemsDialog.xul
@@ -35,7 +35,8 @@
 	onload="doLoad();"
 	onunload="doUnload();"
 	xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-	style="padding:2em">
+	style="padding:2em"
+	persist="screenX screenY">
 	
 	<script src="include.js"/>
 	<script src="selectItemsDialog.js"/>
@@ -44,7 +45,8 @@
 	
 	<hbox align="center" pack="end">
 		<label value="&zotero.toolbar.search.label;" control="zotero-tb-search"/>
-		<textbox id="zotero-tb-search" type="timed" timeout="250" oncommand="onSearch()" dir="reverse" onkeypress="if(event.keyCode == event.DOM_VK_ESCAPE) { this.value = ''; this.doCommand('cmd_zotero_search'); return false; }">
+		<textbox id="zotero-tb-search" type="timed" timeout="250" oncommand="onSearch()" dir="reverse"
+				onkeypress="if(event.keyCode == event.DOM_VK_ESCAPE) { if (this.value == '') { cancelDialog(); return false; } this.value = ''; this.doCommand('cmd_zotero_search'); return false; } return true;">
 			<toolbarbutton id="zotero-tb-search-cancel" oncommand="this.parentNode.value='';" hidden="true"/>
 		</textbox>
 	</hbox>
diff --git a/chrome/content/zotero/xpcom/cite.js b/chrome/content/zotero/xpcom/cite.js
index 8049e5cf8..34048bc92 100644
--- a/chrome/content/zotero/xpcom/cite.js
+++ b/chrome/content/zotero/xpcom/cite.js
@@ -1994,6 +1994,7 @@ Zotero.CSL.Item._zoteroFieldMap = {
 		"issue":"issue",
 		"number-of-volumes":"numberOfVolumes",
 		"edition":"edition",
+		"version":"version",
 		"section":"section",
 		"genre":["type", "artworkSize"], /* artworkSize should move to SQL mapping tables, or added as a CSL variable */
 		"medium":"medium",
diff --git a/chrome/content/zotero/xpcom/collectionTreeView.js b/chrome/content/zotero/xpcom/collectionTreeView.js
index 07c4a620a..cfc611d16 100644
--- a/chrome/content/zotero/xpcom/collectionTreeView.js
+++ b/chrome/content/zotero/xpcom/collectionTreeView.js
@@ -965,14 +965,9 @@ Zotero.ItemGroup.prototype.getChildItems = function()
 		var ids = s.search();
 	}
 	catch (e) {
-		if (typeof e == 'string' && e.match(/Saved search [0-9]+ does not exist/)) {
-			Zotero.DB.rollbackTransaction();
-			Zotero.debug(e, 2);
-			return false;
-		}
-		else {
-			throw (e);
-		}
+		Zotero.DB.rollbackAllTransactions();
+		Zotero.debug(e, 2);
+		throw (e);
 	}
 	return Zotero.Items.get(ids);
 }
diff --git a/chrome/content/zotero/xpcom/data/collection.js b/chrome/content/zotero/xpcom/data/collection.js
index 9387b78c2..2a96b56b8 100644
--- a/chrome/content/zotero/xpcom/data/collection.js
+++ b/chrome/content/zotero/xpcom/data/collection.js
@@ -911,8 +911,14 @@ Zotero.Collection.prototype._loadChildCollections = function () {
 }
 
 Zotero.Collection.prototype._loadChildItems = function() {
-	var sql = "SELECT itemID FROM collectionItems WHERE collectionID=?";
-	var ids = Zotero.DB.columnQuery(sql, this.id);
+	var sql = "SELECT itemID FROM collectionItems WHERE collectionID=? ";
+		// DEBUG: Fix for child items created via context menu on parent within
+		// a collection being added to the current collection
+		+ "AND itemID NOT IN "
+			+ "(SELECT itemID FROM itemNotes WHERE sourceItemID IS NOT NULL) "
+		+ "AND itemID NOT IN "
+			+ "(SELECT itemID FROM itemAttachments WHERE sourceItemID IS NOT NULL)";
+	var ids = Zotero.DB.columnQuery(sql, this._id);
 	
 	this._childItems = [];
 	
diff --git a/chrome/content/zotero/xpcom/data/item.js b/chrome/content/zotero/xpcom/data/item.js
index 15cc4f46c..d0adb4743 100644
--- a/chrome/content/zotero/xpcom/data/item.js
+++ b/chrome/content/zotero/xpcom/data/item.js
@@ -399,9 +399,18 @@ Zotero.Item.prototype.setType = function(itemTypeID, loadIn) {
 		if (creators) {
 			for (var i in creators) {
 				if (!Zotero.CreatorTypes.isValidForItemType(creators[i].creatorTypeID, itemTypeID)) {
+					// Convert existing primary creator type to new item type's
+					// primary creator type, or contributor (creatorTypeID 2)
+					// if none or not currently primary
+					var oldPrimary = Zotero.CreatorTypes.getPrimaryIDForType(this.getType());
+					if (oldPrimary == creators[i].creatorTypeID) {
+						var newPrimary = Zotero.CreatorTypes.getPrimaryIDForType(itemTypeID);
+					}
+					var target = newPrimary ? newPrimary : 2;
+					
 					// Reset to contributor (creatorTypeID 2), which exists in all
-					this.setCreator(i, creators[i].ref, 2);
-				}
+					this.setCreator(i, creators[i].firstName,
+						creators[i].lastName, target, creators[i].fieldMode);				}
 			}
 		}
 	}
diff --git a/chrome/content/zotero/xpcom/ingester.js b/chrome/content/zotero/xpcom/ingester.js
index 842e9a8d9..3aa22a8a1 100644
--- a/chrome/content/zotero/xpcom/ingester.js
+++ b/chrome/content/zotero/xpcom/ingester.js
@@ -647,11 +647,13 @@ Zotero.Ingester.MIMEHandler = new function() {
 	function init() {
 		var prefStatus = Zotero.Prefs.get("parseEndNoteMIMETypes");
 		if(!on && prefStatus) {
+			Zotero.debug("Registering URIContentListener for RIS/Refer");
 			var uriLoader = Components.classes["@mozilla.org/uriloader;1"].
 			                getService(Components.interfaces.nsIURILoader);
 			uriLoader.registerContentListener(Zotero.Ingester.MIMEHandler.URIContentListener);
 			on = true;
 		} else if(on && !prefStatus) {
+			Zotero.debug("Unregistering URIContentListener for RIS/Refer");
 			var uriLoader = Components.classes["@mozilla.org/uriloader;1"].
 			                getService(Components.interfaces.nsIURILoader);
 			uriLoader.unRegisterContentListener(Zotero.Ingester.MIMEHandler.URIContentListener);
diff --git a/chrome/content/zotero/xpcom/integration.js b/chrome/content/zotero/xpcom/integration.js
index 6d35ce03d..2c4ca7a76 100644
--- a/chrome/content/zotero/xpcom/integration.js
+++ b/chrome/content/zotero/xpcom/integration.js
@@ -25,6 +25,8 @@ const API_VERSION = 5;
 Zotero.Integration = new function() {
 	var _contentLengthRe = /[\r\n]Content-Length: *([0-9]+)/i;
 	var _XMLRe = /<\?[^>]+\?>/;
+	var _onlineObserverRegistered;
+	
 	this.ns = "http://www.zotero.org/namespaces/SOAP";
 	
 	this.init = init;
@@ -35,20 +37,26 @@ Zotero.Integration = new function() {
 	 * initializes a very rudimentary web server used for SOAP RPC
 	 */
 	function init() {
-		// start listening on socket
-		var sock = Components.classes["@mozilla.org/network/server-socket;1"];
-		serv = sock.createInstance();
-		serv = serv.QueryInterface(Components.interfaces.nsIServerSocket);
+		if (Zotero.Utilities.HTTP.browserIsOffline()) {
+			Zotero.debug('Browser is offline -- not initializing integration HTTP server');
+			_registerOnlineObserver()
+			return;
+		}
 		
+		// start listening on socket
+		var serv = Components.classes["@mozilla.org/network/server-socket;1"]
+					.createInstance(Components.interfaces.nsIServerSocket);
 		try {
 			// bind to a random port on loopback only
-			serv.init(50001, true, -1);
+			serv.init(Zotero.Prefs.get('integration.port'), true, -1);
 			serv.asyncListen(Zotero.Integration.SocketListener);
 			
 			Zotero.debug("Integration HTTP server listening on 127.0.0.1:"+serv.port);
 		} catch(e) {
-			Zotero.debug("Not initializing integration HTTP");
+			Zotero.debug("Not initializing integration HTTP server");
 		}
+		
+		_registerOnlineObserver()
 	}
 	
 	/*
@@ -173,10 +181,34 @@ Zotero.Integration = new function() {
 		
 		return response;
 	}
+	
+	
+	function _registerOnlineObserver() {
+		if (_onlineObserverRegistered) {
+			return;
+		}
+		
+		// Observer to enable the integration when we go online
+		var observer = {
+			observe: function(subject, topic, data) {
+				if (data == 'online') {
+					Zotero.Integration.init();
+				}
+			}
+		};
+		
+		var observerService =
+			Components.classes["@mozilla.org/observer-service;1"]
+				.getService(Components.interfaces.nsIObserverService);
+		observerService.addObserver(observer, "network:offline-status-changed", false);
+		
+		_onlineObserverRegistered = true;
+	}
 }
 
 Zotero.Integration.SocketListener = new function() {
 	this.onSocketAccepted = onSocketAccepted;
+	this.onStopListening = onStopListening;
 	
 	/*
 	 * called when a socket is opened
@@ -192,6 +224,10 @@ Zotero.Integration.SocketListener = new function() {
 		pump.init(iStream, -1, -1, 0, 0, false);
 		pump.asyncRead(dataListener, null);
 	}
+	
+	function onStopListening(serverSocket, status) {
+		Zotero.debug("Integration HTTP server going offline");
+	}
 }
 
 /*
@@ -1036,6 +1072,9 @@ Zotero.Integration.Session.prototype.loadDocumentData = function(json) {
 	if(documentData.custom) {
 		for(var itemID in documentData.custom) {
 			var item = this.itemSet.getItemsByIds([itemID])[0];
+			if (!item) {
+				continue;
+			}
 			item.setProperty("bibliography-Integration", documentData.custom[itemID]);
 		}
 	}
diff --git a/chrome/content/zotero/xpcom/itemTreeView.js b/chrome/content/zotero/xpcom/itemTreeView.js
index ff9ca4f6b..9aba838b6 100644
--- a/chrome/content/zotero/xpcom/itemTreeView.js
+++ b/chrome/content/zotero/xpcom/itemTreeView.js
@@ -1463,7 +1463,9 @@ Zotero.ItemTreeView.prototype.getSortField = function() {
 /*
  * Returns 'ascending' or 'descending'
  *
- * A-Z == 'descending'
+ * A-Z == 'descending', because Mozilla is confused
+ *	(an upwards-facing triangle is A-Z on OS X and Windows,
+ *   but Firefox uses the opposite)
  */
 Zotero.ItemTreeView.prototype.getSortDirection = function() {
 	var column = this._treebox.columns.getSortedColumn();
diff --git a/chrome/content/zotero/xpcom/quickCopy.js b/chrome/content/zotero/xpcom/quickCopy.js
index 930ab8e30..96d58ef70 100644
--- a/chrome/content/zotero/xpcom/quickCopy.js
+++ b/chrome/content/zotero/xpcom/quickCopy.js
@@ -144,6 +144,44 @@ Zotero.QuickCopy = new function() {
 			return true;
 		}
 		else if (mode == 'bibliography') {
+			// Move notes to separate array
+			var allNotes = true;
+			var notes = [];
+			for (var i=0; i<items.length; i++) {
+				if (items[i].isNote()) {
+					notes.push(items.splice(i, 1)[0]);
+					i--;
+				}
+				else {
+					allNotes = false;
+				}
+			}
+			
+			// If all notes, export full content
+			if (allNotes) {
+				var content = [];
+				for (var i=0; i<notes.length; i++) {
+					content.push(notes[i].getNote());
+				}
+				
+				default xml namespace = '';
+				var html = <div/>;
+				for (var i=0; i<content.length; i++) {
+					var p = <p>{content[i]}</p>;
+					p.@style = 'white-space: pre-wrap';
+					html.p += p;
+				}
+				
+				html = html.toXMLString();
+				
+				var content = {
+					text: contentType == "html" ? html : content.join('\n\n\n'),
+					html: html
+				};
+				
+				return content;
+			}
+			
 			var csl = Zotero.Cite.getStyle(format);
 			var itemSet = csl.createItemSet(items);
 			var bibliography = {
diff --git a/chrome/content/zotero/xpcom/search.js b/chrome/content/zotero/xpcom/search.js
index 19cb0a50f..845ff9bad 100644
--- a/chrome/content/zotero/xpcom/search.js
+++ b/chrome/content/zotero/xpcom/search.js
@@ -1329,7 +1329,8 @@ Zotero.Search.prototype._buildQuery = function(){
 							case 'isNot': // excluded with NOT IN above
 								// Automatically cast values which might
 								// have been stored as integers
-								if (condition.value.match(/^[1-9]+[0-9]*$/)) {
+								if (condition.value
+										&& condition.value.match(/^[1-9]+[0-9]*$/)) {
 									condSQL += ' LIKE ?';
 								}
 								else {
diff --git a/chrome/content/zotero/xpcom/translate.js b/chrome/content/zotero/xpcom/translate.js
index 76b3afb07..a33f1a819 100644
--- a/chrome/content/zotero/xpcom/translate.js
+++ b/chrome/content/zotero/xpcom/translate.js
@@ -1308,14 +1308,21 @@ Zotero.Translate.prototype._itemDone = function(item, attachedTo) {
 			}
 		}
 		
+		var automaticSnapshots = Zotero.Prefs.get("automaticSnapshots");
+		var downloadAssociatedFiles = Zotero.Prefs.get("downloadAssociatedFiles");
+		
 		// handle attachments
-		if(item.attachments && Zotero.Prefs.get("automaticSnapshots")) {
+		if(item.attachments && (automaticSnapshots || downloadAssociatedFiles)) {
 			for each(var attachment in item.attachments) {
 				if(this.type == "web") {
 					if(!attachment.url && !attachment.document) {
 						Zotero.debug("Translate: not adding attachment: no URL specified");
 					} else {
 						if(attachment.snapshot === false) {
+							if(!automaticSnapshots) {
+								continue;
+							}
+							
 							// if snapshot is explicitly set to false, attach as link
 							if(attachment.document) {
 								Zotero.Attachments.linkFromURL(attachment.document.location.href, myID,
@@ -1336,7 +1343,8 @@ Zotero.Translate.prototype._itemDone = function(item, attachedTo) {
 							}
 						} else if(attachment.document
 						|| (attachment.mimeType && attachment.mimeType == "text/html")
-						|| Zotero.Prefs.get("downloadAssociatedFiles")) {
+						|| downloadAssociatedFiles) {
+						
 							// if snapshot is not explicitly set to false, retrieve snapshot
 							if(attachment.document) {
 								try {
@@ -1344,10 +1352,13 @@ Zotero.Translate.prototype._itemDone = function(item, attachedTo) {
 								} catch(e) {
 									Zotero.debug("Translate: error attaching document");
 								}
-							} else {
+							// Save attachment if snapshot pref enabled or not HTML
+							// (in which case downloadAssociatedFiles applies)
+							} else if(automaticSnapshots || !attachment.mimeType
+									|| attachment.mimeType != "text/html") {
 								var mimeType = null;
 								var title = null;
-								
+
 								if(attachment.mimeType) {
 									// first, try to extract mime type from mimeType attribute
 									mimeType = attachment.mimeType;
@@ -1355,18 +1366,18 @@ Zotero.Translate.prototype._itemDone = function(item, attachedTo) {
 									// if that fails, use document if possible
 									mimeType = attachment.document.contentType
 								}
-								
+
 								// same procedure for title as mime type
 								if(attachment.title) {
 									title = attachment.title;
 								} else if(attachment.document && attachment.document.title) {
 									title = attachment.document.title;
 								}
-								
+
 								if(this.locationIsProxied) {
 									attachment.url = Zotero.Ingester.ProxyMonitor.properToProxy(attachment.url);
 								}
-								
+
 								var fileBaseName = Zotero.Attachments.getFileBaseNameFromItem(myID);
 								try {
 									Zotero.Attachments.importFromURL(attachment.url, myID, title, fileBaseName);
diff --git a/chrome/content/zotero/xpcom/utilities.js b/chrome/content/zotero/xpcom/utilities.js
index 24099c0dd..39e708f1b 100644
--- a/chrome/content/zotero/xpcom/utilities.js
+++ b/chrome/content/zotero/xpcom/utilities.js
@@ -784,7 +784,8 @@ Zotero.Utilities.HTTP.processDocuments = function(firstDoc, urls, processor, don
 	var urlIndex = -1;
 	
 	var removeListeners = function() {
-		hiddenBrowser.removeEventListener("load", onLoad, true);
+		var loadEvent = Zotero.isFx2 ? "load" : "pageshow";
+		hiddenBrowser.removeEventListener(loadEvent, onLoad, true);
 		if(!saveBrowser) {
 			Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
 		}
diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js
index f73db74e6..237dcdee9 100644
--- a/chrome/content/zotero/xpcom/zotero.js
+++ b/chrome/content/zotero/xpcom/zotero.js
@@ -120,6 +120,12 @@ var Zotero = new function(){
 		this.version
 			= gExtensionManager.getItemForID(ZOTERO_CONFIG['GUID']).version;
 		
+		var appInfo =
+			Components.classes["@mozilla.org/xre/app-info;1"].
+				getService(Components.interfaces.nsIXULAppInfo)
+		this.isFx2 = appInfo.platformVersion.indexOf('1.8') === 0; // TODO: remove
+		this.isFx3 = appInfo.platformVersion.indexOf('1.9') === 0;
+		
 		// OS platform
 		var win = Components.classes["@mozilla.org/appshell/appShellService;1"]
 			   .getService(Components.interfaces.nsIAppShellService)
@@ -211,6 +217,7 @@ var Zotero = new function(){
 			Zotero.DB.test();
 		}
 		catch (e) {
+			Components.utils.reportError(e);
 			this.skipLoading = true;
 			Zotero.DB.skipBackup = true;
 			return;
@@ -524,11 +531,14 @@ var Zotero = new function(){
 				"No chrome package registered for chrome://communicator",
 				'[JavaScript Error: "Components is not defined" {file: "chrome://nightly/content/talkback/talkback.js',
 				'[JavaScript Error: "document.getElementById("sanitizeItem")',
-				'chrome://webclipper',
 				'No chrome package registered for chrome://piggy-bank',
 				'[JavaScript Error: "[Exception... "\'Component is not available\' when calling method: [nsIHandlerService::getTypeFromExtension',
 				'[JavaScript Error: "this._uiElement is null',
-				'Error: a._updateVisibleText is not a function'
+				'Error: a._updateVisibleText is not a function',
+				'[JavaScript Error: "Warning: unrecognized command line flag -psn',
+				'LibX:',
+				'function skype_',
+				'[JavaScript Error: "uncaught exception: Permission denied to call method Location.toString"]'
 			];
 			
 			for (var i=0; i<blacklist.length; i++) {
@@ -1694,6 +1704,7 @@ Zotero.Browser = new function() {
 		
 		// Create a hidden browser
 		var hiddenBrowser = win.document.createElement("browser");
+		hiddenBrowser.setAttribute('disablehistory', 'true');
 		win.document.documentElement.appendChild(hiddenBrowser);
 		Zotero.debug("created hidden browser ("
 			+ win.document.getElementsByTagName('browser').length + ")");
diff --git a/chrome/locale/cs-CZ/zotero/zotero.dtd b/chrome/locale/cs-CZ/zotero/zotero.dtd
index d0cda8b72..130be7f69 100644
--- a/chrome/locale/cs-CZ/zotero/zotero.dtd
+++ b/chrome/locale/cs-CZ/zotero/zotero.dtd
@@ -5,8 +5,8 @@
 <!ENTITY zotero.errorReport.submissionInProgress "Čekejte, prosím, dokud nebude chybová zpráva podána.">
 <!ENTITY zotero.errorReport.submitted "Hlášení o chybách bylo odesláno.">
 <!ENTITY zotero.errorReport.reportID "ID hlášení:">
-<!ENTITY zotero.errorReport.postToForums "Please post a message to the Zotero forums (forums.zotero.org) with this Report ID, a description of the problem, and any steps necessary to reproduce it.">
-<!ENTITY zotero.errorReport.notReviewed "Error reports are generally not reviewed unless referred to in the forums.">
+<!ENTITY zotero.errorReport.postToForums "Prosím, napište zprávu do Zotero fóra (forums.zotero.org). Napište ID hlášení, popis problému a postupné kroky k jeho reprodukování.">
+<!ENTITY zotero.errorReport.notReviewed "Chybová hlášení nejsou zpracovávána, dokud nahlášena do fóra.">
 
 <!ENTITY zotero.upgrade.newVersionInstalled "Nainstalovali jste novou verzi Zotero.">
 <!ENTITY zotero.upgrade.upgradeRequired "Databáze vašeho Zotera musí být upgradeována, aby mohla pracovat s novou verzí.">
@@ -35,10 +35,10 @@
 <!ENTITY zotero.items.date_column "Datum">
 <!ENTITY zotero.items.year_column "Rok">
 <!ENTITY zotero.items.publisher_column "Vydavatel">
-<!ENTITY zotero.items.publication_column "Publication">
-<!ENTITY zotero.items.journalAbbr_column "Journal Abbr">
+<!ENTITY zotero.items.publication_column "Publikace">
+<!ENTITY zotero.items.journalAbbr_column "Zkratka časopisu">
 <!ENTITY zotero.items.language_column "Jazyk">
-<!ENTITY zotero.items.accessDate_column "Accessed">
+<!ENTITY zotero.items.accessDate_column "Přistoupeno">
 <!ENTITY zotero.items.callNumber_column "Signatura">
 <!ENTITY zotero.items.repository_column "Repozitář">
 <!ENTITY zotero.items.rights_column "Práva">
diff --git a/chrome/locale/es-ES/zotero/zotero.dtd b/chrome/locale/es-ES/zotero/zotero.dtd
index 790a8e202..16aad7b52 100644
--- a/chrome/locale/es-ES/zotero/zotero.dtd
+++ b/chrome/locale/es-ES/zotero/zotero.dtd
@@ -5,8 +5,8 @@
 <!ENTITY zotero.errorReport.submissionInProgress "Por favor, espera mientras se envía el informe de error.">
 <!ENTITY zotero.errorReport.submitted "Se ha enviado el informe de error.">
 <!ENTITY zotero.errorReport.reportID "Identificador de informe:">
-<!ENTITY zotero.errorReport.postToForums "Please post a message to the Zotero forums (forums.zotero.org) with this Report ID, a description of the problem, and any steps necessary to reproduce it.">
-<!ENTITY zotero.errorReport.notReviewed "Error reports are generally not reviewed unless referred to in the forums.">
+<!ENTITY zotero.errorReport.postToForums "Envía un mensaje a los foros de Zotero (forums.zotero.org) con este identificador de informe, una descripción del problema, y los pasos necesarios para repetirlo.">
+<!ENTITY zotero.errorReport.notReviewed "Los informes de error, en general, no se revisan a menos que se los mencione en los foros.">
 
 <!ENTITY zotero.upgrade.newVersionInstalled "Has instalado una versión nueva de Zotero.">
 <!ENTITY zotero.upgrade.upgradeRequired "Tu base de datos de Zotero debe actualizarse para funcionar con la versión nueva.">
@@ -35,7 +35,7 @@
 <!ENTITY zotero.items.date_column "Fecha">
 <!ENTITY zotero.items.year_column "Año">
 <!ENTITY zotero.items.publisher_column "Editorial">
-<!ENTITY zotero.items.publication_column "Publication">
+<!ENTITY zotero.items.publication_column "Publicación">
 <!ENTITY zotero.items.journalAbbr_column "Abrev. de la revista">
 <!ENTITY zotero.items.language_column "Idioma">
 <!ENTITY zotero.items.accessDate_column "Visto">
diff --git a/chrome/locale/fr-FR/zotero/zotero.properties b/chrome/locale/fr-FR/zotero/zotero.properties
index ace0de5bc..5061358d8 100644
--- a/chrome/locale/fr-FR/zotero/zotero.properties
+++ b/chrome/locale/fr-FR/zotero/zotero.properties
@@ -4,7 +4,7 @@ general.error=Erreur
 general.warning=Avertissement
 general.dontShowWarningAgain=Ne plus montrer cet avertissement à nouveau.
 general.browserIsOffline=%S est actuellement en mode hors connexion.
-general.locate=En cours de localisation…
+general.locate=Localisation en cours…
 general.restartRequired=Redémarrage nécessaire
 general.restartRequiredForChange=Firefox doit être redémarré pour que la modification soit prise en compte.
 general.restartRequiredForChanges=Firefox doit être redémarré pour que les modifications soient prises en compte.
@@ -340,7 +340,7 @@ ingester.scrapeErrorDescription.linkText=Problèmes connus de collecteur
 ingester.scrapeError.transactionInProgress.previousError=Le processus de sauvegarde a échoué à cause d'une erreur antérieure de Zotero.
 
 db.dbCorrupted=La base de données Zotero '%S' semble avoir été corrompue.
-db.dbCorrupted.restart=Redémarrez Firefox SVP pour tenter une restauration automatique à partir de la dernière sauvegarde.
+db.dbCorrupted.restart=Veuillez redémarrer Firefox pour tenter une restauration automatique à partir de la dernière sauvegarde.
 db.dbCorruptedNoBackup=La base de données Zotero '%S' semble avoir été corrompue et aucune sauvegarde automatique n'est disponible.\n\nUn nouveau fichier de base de données a été créé. Le fichier endommagé a été enregistré dans le dossier Zotero.
 db.dbRestored=La base de données Zotero '%1$S' semble avoir été corrompue.\n\nVos données ont été rétablies à partir de la dernière sauvegarde automatique faite le %2$S à %3$S. Le fichier endommagé a été enregistré dans le dossier Zotero.
 db.dbRestoreFailed=La base de données Zotero '%S'semble avoir été corrompue et une tentative de rétablissement à partir de la dernière sauvegarde automatique a échoué.\n\nUn nouveau fichier de base de données a été créé. Le fichier endommagé a été enregistré dans le dossier Zotero.
@@ -476,7 +476,7 @@ annotations.collapse.tooltip=Réduire l'annotation
 annotations.expand.tooltip=Développer l'annotation
 annotations.oneWindowWarning=Les annotations pour une capture d'écran ne peuvent être ouvertes simultanément que dans une fenêtre du navigateur. Cette capture sera ouverte sans annotation.
 
-integration.incompatibleVersion=Cette version du plugin Zotero pour traitement de texte ($INTEGRATION_VERSION) est incompatible avec la version du module complémentaire Zotero de Firefox (%1$S) actuellement installée. Veuillez vous assurer que vous utilisez la dernière version des deux composants.
+integration.incompatibleVersion=Cette version du plugin Zotero pour traitement de texte ($INTEGRATION_VERSION) est incompatible avec la version de Zotero pour Firefox (%1$S) actuellement installée. Veuillez vous assurer que vous utilisez la dernière version des deux composants.
 integration.fields.label=Champs
 integration.referenceMarks.label=Champs
 integration.fields.caption=Les champs de Microsoft Word risquent moins d'être modifiés accidentellement mais ne peuvent pas être partagés avec OpenOffice.org.
diff --git a/chrome/locale/it-IT/zotero/zotero.dtd b/chrome/locale/it-IT/zotero/zotero.dtd
index cae141d9e..6182ba703 100644
--- a/chrome/locale/it-IT/zotero/zotero.dtd
+++ b/chrome/locale/it-IT/zotero/zotero.dtd
@@ -5,8 +5,8 @@
 <!ENTITY zotero.errorReport.submissionInProgress "Attendere, rapporto di errore in fase di invio.">
 <!ENTITY zotero.errorReport.submitted "Il rapporto di errore è stato inviato.">
 <!ENTITY zotero.errorReport.reportID "ID rapporto:">
-<!ENTITY zotero.errorReport.postToForums "Please post a message to the Zotero forums (forums.zotero.org) with this Report ID, a description of the problem, and any steps necessary to reproduce it.">
-<!ENTITY zotero.errorReport.notReviewed "Error reports are generally not reviewed unless referred to in the forums.">
+<!ENTITY zotero.errorReport.postToForums "Inviare un messaggio ai forum di Zotero (forums.zotero.org)riportando il numero ID del rapporto di errore, una descrizione del problema ed esponendo i passaggi che hanno condotto all&apos;errore.">
+<!ENTITY zotero.errorReport.notReviewed "In genere, i rapporti di errore non vengono esaminati se non sono stati inviati ai forum.">
 
 <!ENTITY zotero.upgrade.newVersionInstalled "Nuova versione di Zotero installata correttamente.">
 <!ENTITY zotero.upgrade.upgradeRequired "Il database deve essere aggiornato alla nuova versione di Zotero.">
@@ -35,10 +35,10 @@
 <!ENTITY zotero.items.date_column "Data">
 <!ENTITY zotero.items.year_column "Anno">
 <!ENTITY zotero.items.publisher_column "Editore">
-<!ENTITY zotero.items.publication_column "Publication">
-<!ENTITY zotero.items.journalAbbr_column "Journal Abbr">
+<!ENTITY zotero.items.publication_column "Pubblicazione">
+<!ENTITY zotero.items.journalAbbr_column "Abbreviazione dei titoli di periodici">
 <!ENTITY zotero.items.language_column "Lingua">
-<!ENTITY zotero.items.accessDate_column "Accessed">
+<!ENTITY zotero.items.accessDate_column "Consultato">
 <!ENTITY zotero.items.callNumber_column "Segnatura">
 <!ENTITY zotero.items.repository_column "Deposito">
 <!ENTITY zotero.items.rights_column "Diritti">
diff --git a/chrome/locale/mn-MN/zotero/zotero.properties b/chrome/locale/mn-MN/zotero/zotero.properties
index cc30da2b7..3250618af 100644
--- a/chrome/locale/mn-MN/zotero/zotero.properties
+++ b/chrome/locale/mn-MN/zotero/zotero.properties
@@ -1,20 +1,20 @@
 extensions.zotero@chnm.gmu.edu.description=The Next-Generation Research Tool
 
 general.error=Алдаа
-general.warning=Warning
+general.warning=Сэрэмжлүүлэг
 general.dontShowWarningAgain=Don't show this warning again.
 general.browserIsOffline=%S is currently in offline mode.
 general.locate=Locate...
 general.restartRequired=Restart Required
 general.restartRequiredForChange=Firefox must be restarted for the change to take effect.
 general.restartRequiredForChanges=Firefox must be restarted for the changes to take effect.
-general.restartNow=Restart now
-general.restartLater=Restart later
+general.restartNow=Одоо ачаалах
+general.restartLater=Дараа ачаалах
 general.errorHasOccurred=An error has occurred.
-general.restartFirefox=Please restart Firefox.
+general.restartFirefox=Галт үнэг ахин ачаална уу.
 general.restartFirefoxAndTryAgain=Please restart Firefox and try again.
 general.checkForUpdate=Check for update
-general.install=Install
+general.install=Суулга
 general.updateAvailable=Update Available
 general.upgrade=Upgrade
 general.yes=Тийм
@@ -24,14 +24,14 @@ general.failed=Failed
 general.and=and
 
 install.quickStartGuide=Quick Start Guide
-install.quickStartGuide.message.welcome=Welcome to Zotero!
+install.quickStartGuide.message.welcome=Зотерод тавтай морил!
 install.quickStartGuide.message.clickViewPage=Click the "View Page" button above to visit our Quick Start Guide and learn how to get started collecting, managing, and citing your research.
-install.quickStartGuide.message.thanks=Thanks for installing Zotero.
+install.quickStartGuide.message.thanks=Зотеро суулгасанд баярлалаа.
 
 upgrade.failed=Upgrading of the Zotero database failed:
 upgrade.advanceMessage=Press %S to upgrade now.
 
-errorReport.reportErrors=Report Errors...
+errorReport.reportErrors=Алдаануудыг илгээх...
 errorReport.reportInstructions=You can report this error by selecting "%S" from the Actions (gear) menu.
 errorReport.followingErrors=The following errors have occurred:
 errorReport.advanceMessage=Press %S to send an error report to the Zotero developers.
@@ -55,8 +55,8 @@ pane.collections.name=Enter a name for this collection:
 pane.collections.newSavedSeach=New Saved Search
 pane.collections.savedSearchName=Enter a name for this saved search:
 pane.collections.rename=Rename collection:
-pane.collections.library=My Library
-pane.collections.untitled=Untitled
+pane.collections.library=Миний номын сан
+pane.collections.untitled=Гарчиггүй
 
 pane.collections.menu.rename.collection=Rename Collection...
 pane.collections.menu.edit.savedSearch=Edit Saved Search
@@ -81,7 +81,7 @@ pane.tagSelector.numSelected.plural=%S tags selected
 pane.items.loading=Loading items list...
 pane.items.delete=Are you sure you want to delete the selected item?
 pane.items.delete.multiple=Are you sure you want to delete the selected items?
-pane.items.delete.title=Delete
+pane.items.delete.title=Устгах
 pane.items.delete.attached=Erase attached notes and files
 pane.items.menu.remove=Remove Selected Item
 pane.items.menu.remove.multiple=Remove Selected Items
@@ -108,7 +108,7 @@ pane.items.interview.manyParticipants=Interview by %S et al.
 pane.item.selected.zero=No items selected
 pane.item.selected.multiple=%S items selected
 
-pane.item.goToURL.online.label=View
+pane.item.goToURL.online.label=Үзэх
 pane.item.goToURL.online.tooltip=Go to this item online
 pane.item.goToURL.snapshot.label=View Snapshot
 pane.item.goToURL.snapshot.tooltip=View snapshot for this item
@@ -119,25 +119,25 @@ pane.item.defaultLastName=Сүүлийн
 pane.item.defaultFullName=Бүтэн нэр
 pane.item.switchFieldMode.one=Switch to single field
 pane.item.switchFieldMode.two=Switch to two fields
-pane.item.notes.untitled=Untitled Note
+pane.item.notes.untitled=Гарчиггүй тэмдэглэл
 pane.item.notes.delete.confirm=Are you sure you want to delete this note?
-pane.item.notes.count.zero=%S notes:
-pane.item.notes.count.singular=%S note:
-pane.item.notes.count.plural=%S notes:
+pane.item.notes.count.zero=%S тэмдэглэлүүд:
+pane.item.notes.count.singular=%S тэмдэглэл:
+pane.item.notes.count.plural=%S тэмдэглэлүүд:
 pane.item.attachments.rename.title=Шинэ гарчиг
 pane.item.attachments.rename.renameAssociatedFile=Rename associated file
 pane.item.attachments.rename.error=An error occurred while renaming the file.
 pane.item.attachments.view.link=Хуудас үзэх
 pane.item.attachments.view.snapshot=View Snapshot
-pane.item.attachments.view.file=View File
+pane.item.attachments.view.file=Файл үзэх
 pane.item.attachments.fileNotFound.title=Файл олдсонгүй
 pane.item.attachments.fileNotFound.text=The attached file could not be found.\n\nIt may have been moved or deleted outside of Zotero.
 pane.item.attachments.delete.confirm=Are you sure you want to delete this attachment?
-pane.item.attachments.count.zero=%S attachments:
-pane.item.attachments.count.singular=%S attachment:
-pane.item.attachments.count.plural=%S attachments:
+pane.item.attachments.count.zero=%S хавсралтууд:
+pane.item.attachments.count.singular=%S хавсралт:
+pane.item.attachments.count.plural=%S хавсралтууд:
 pane.item.attachments.select=Файлыг сонгох
-pane.item.noteEditor.clickHere=click here
+pane.item.noteEditor.clickHere=Энд сонго
 pane.item.tags=Tags:
 pane.item.tags.count.zero=%S tags:
 pane.item.tags.count.singular=%S tag:
@@ -149,10 +149,10 @@ pane.item.related.count.zero=%S related:
 pane.item.related.count.singular=%S related:
 pane.item.related.count.plural=%S related:
 
-noteEditor.editNote=Edit Note
+noteEditor.editNote=Тэмдэглэл засварлах
 
-itemTypes.note=Note
-itemTypes.attachment=Attachment
+itemTypes.note=Тэмдэглэл
+itemTypes.attachment=Хавсралт
 itemTypes.book=Ном
 itemTypes.bookSection=Номын хэсэг
 itemTypes.journalArticle=Сэтгүүлийн өгүүлэл
@@ -165,15 +165,15 @@ itemTypes.interview=Ярилцлага
 itemTypes.film=Кино
 itemTypes.artwork=Artwork
 itemTypes.webpage=Вэб хуудас
-itemTypes.report=Report
+itemTypes.report=Тайлан
 itemTypes.bill=Bill
 itemTypes.case=Case
 itemTypes.hearing=Hearing
-itemTypes.patent=Patent
+itemTypes.patent=Патент
 itemTypes.statute=Statute
 itemTypes.email=Электрон шуудан
 itemTypes.map=Газрын зураг
-itemTypes.blogPost=Blog Post
+itemTypes.blogPost=Блог бичлэг
 itemTypes.instantMessage=Instant Message
 itemTypes.forumPost=Forum Post
 itemTypes.audioRecording=Audio Recording
@@ -182,32 +182,32 @@ itemTypes.videoRecording=Video Recording
 itemTypes.tvBroadcast=TV Broadcast
 itemTypes.radioBroadcast=Radio Broadcast
 itemTypes.podcast=Podcast
-itemTypes.computerProgram=Computer Program
-itemTypes.conferencePaper=Conference Paper
+itemTypes.computerProgram=Компьютерийн програм
+itemTypes.conferencePaper=Хурлын өгүүлэл
 itemTypes.document=Баримт
-itemTypes.encyclopediaArticle=Encyclopedia Article
+itemTypes.encyclopediaArticle=Тайлбар толийн өгүүлэл
 itemTypes.dictionaryEntry=Dictionary Entry
 
-itemFields.itemType=Type
-itemFields.title=Title
+itemFields.itemType=Төрөл
+itemFields.title=Гарчиг
 itemFields.dateAdded=Date Added
 itemFields.dateModified=Modified
 itemFields.source=Source
-itemFields.notes=Тэмдэглэл
+itemFields.notes=Тэмдэглэлүүд
 itemFields.tags=Tags
-itemFields.attachments=Attachments
+itemFields.attachments=Хавсралтууд
 itemFields.related=Related
 itemFields.url=URL
-itemFields.rights=Rights
+itemFields.rights=Эрхүүд
 itemFields.series=Series
 itemFields.volume=Volume
 itemFields.issue=Issue
 itemFields.edition=Edition
 itemFields.place=Place
-itemFields.publisher=Publisher
-itemFields.pages=Pages
+itemFields.publisher=Хэвлэгч
+itemFields.pages=Хуудасууд
 itemFields.ISBN=ISBN
-itemFields.publicationTitle=Publication
+itemFields.publicationTitle=Хэвлэл
 itemFields.ISSN=ISSN
 itemFields.date=Он сар өдөр
 itemFields.section=Section
@@ -247,17 +247,17 @@ itemFields.interviewMedium=Дунд
 itemFields.letterType=Төрөл
 itemFields.manuscriptType=Төрөл
 itemFields.mapType=Төрөл
-itemFields.scale=Scale
+itemFields.scale=Масштаб
 itemFields.thesisType=Төрөл
 itemFields.websiteType=Вэб сайтын төрөл
 itemFields.audioRecordingType=Бичлэгийн төрөл
-itemFields.label=Label
+itemFields.label=Шошго
 itemFields.presentationType=Төрөл
 itemFields.meetingName=Уулзалтын нэр
 itemFields.studio=Studio
 itemFields.runningTime=Running Time
 itemFields.network=Сүлжээ
-itemFields.postType=Post Type
+itemFields.postType=Бичлэгийн төрөл
 itemFields.audioFileType=Файлын төрөл
 itemFields.version=Хувилбар
 itemFields.system=Систем
@@ -367,12 +367,12 @@ zotero.preferences.search.pdf.automaticInstall=Zotero can automatically download
 zotero.preferences.search.pdf.advancedUsers=Advanced users may wish to view the %S for manual installation instructions.
 zotero.preferences.search.pdf.documentationLink=documentation
 zotero.preferences.search.pdf.checkForInstaller=Check for installer
-zotero.preferences.search.pdf.downloading=Downloading...
+zotero.preferences.search.pdf.downloading=Татаж байна...
 zotero.preferences.search.pdf.toolDownloadsNotAvailable=The %S utilities are not currently available for your platform via zotero.org.
 zotero.preferences.search.pdf.viewManualInstructions=View the documentation for manual installation instructions.
 zotero.preferences.search.pdf.availableDownloads=Available downloads for %1$S from %2$S:
 zotero.preferences.search.pdf.availableUpdates=Available updates for %1$S from %2$S:
-zotero.preferences.search.pdf.toolVersionPlatform=%1$S version %2$S
+zotero.preferences.search.pdf.toolVersionPlatform=%1$S хувилбар %2$S
 zotero.preferences.search.pdf.zoteroCanInstallVersion=Zotero can automatically install it into the Zotero data directory.
 zotero.preferences.search.pdf.zoteroCanInstallVersions=Zotero can automatically install these applications into the Zotero data directory.
 zotero.preferences.search.pdf.toolsDownloadError=An error occurred while attempting to download the %S utilities from zotero.org.
@@ -446,7 +446,7 @@ searchConditions.fileTypeID=Attachment File Type
 searchConditions.annotation=Annotation
 
 fulltext.indexState.indexed=Indexed
-fulltext.indexState.unavailable=Unknown
+fulltext.indexState.unavailable=Мэдэхгүй
 fulltext.indexState.partial=Partial
 
 exportOptions.exportNotes=Export Notes
diff --git a/chrome/locale/nb-NO/zotero/zotero.dtd b/chrome/locale/nb-NO/zotero/zotero.dtd
index 2682abb63..106d2c91f 100644
--- a/chrome/locale/nb-NO/zotero/zotero.dtd
+++ b/chrome/locale/nb-NO/zotero/zotero.dtd
@@ -5,8 +5,8 @@
 <!ENTITY zotero.errorReport.submissionInProgress "Vennligst vent mens feilrapporten blir levert.">
 <!ENTITY zotero.errorReport.submitted "Feilrapporten er levert.">
 <!ENTITY zotero.errorReport.reportID "Rapport-ID:">
-<!ENTITY zotero.errorReport.postToForums "Please post a message to the Zotero forums (forums.zotero.org) with this Report ID, a description of the problem, and any steps necessary to reproduce it.">
-<!ENTITY zotero.errorReport.notReviewed "Error reports are generally not reviewed unless referred to in the forums.">
+<!ENTITY zotero.errorReport.postToForums "Vennligst skriv en melding i Zotero-forumene (forums.zotero.org) med denne rapport-IDen, en beskrivelse av problemet og nødvendige steg for å reprodusere problemet.">
+<!ENTITY zotero.errorReport.notReviewed "Feilrapporter blir vanligvis ikke kommentert, dersom problemet ikke tas opp i forumene.">
 
 <!ENTITY zotero.upgrade.newVersionInstalled "Du ha installert en ny versjon av Zotero.">
 <!ENTITY zotero.upgrade.upgradeRequired "Zotero-databasen din må oppgraderes for å fungere med den nye versjonen.">
@@ -35,10 +35,10 @@
 <!ENTITY zotero.items.date_column "Dato">
 <!ENTITY zotero.items.year_column "År">
 <!ENTITY zotero.items.publisher_column "Utgiver">
-<!ENTITY zotero.items.publication_column "Publication">
-<!ENTITY zotero.items.journalAbbr_column "Journal Abbr">
+<!ENTITY zotero.items.publication_column "Publikasjon">
+<!ENTITY zotero.items.journalAbbr_column "Tidsskriftsforkortelse">
 <!ENTITY zotero.items.language_column "Språk">
-<!ENTITY zotero.items.accessDate_column "Accessed">
+<!ENTITY zotero.items.accessDate_column "Sist åpnet">
 <!ENTITY zotero.items.callNumber_column "Plass-signatur">
 <!ENTITY zotero.items.repository_column "Oppbevaringsplass">
 <!ENTITY zotero.items.rights_column "Rettigheter">
diff --git a/chrome/locale/sk-SK/zotero/about.dtd b/chrome/locale/sk-SK/zotero/about.dtd
new file mode 100644
index 000000000..5a788a15d
--- /dev/null
+++ b/chrome/locale/sk-SK/zotero/about.dtd
@@ -0,0 +1,10 @@
+<!ENTITY zotero.version "verzia">
+<!ENTITY zotero.createdby "Vytvorili:">
+<!ENTITY zotero.directors "Pod vedením:">
+<!ENTITY zotero.developers "Vývojári:">
+<!ENTITY zotero.alumni "Alumni:">
+<!ENTITY zotero.about.localizations "Lokalizácia:">
+<!ENTITY zotero.about.additionalSoftware "Softvér tretích strán a štandardy:">
+<!ENTITY zotero.executiveProducer "Výkonný producent:">
+<!ENTITY zotero.thanks "Špeciálne poďakovanie:">
+<!ENTITY zotero.about.close "Zatvor">
diff --git a/chrome/locale/sk-SK/zotero/preferences.dtd b/chrome/locale/sk-SK/zotero/preferences.dtd
new file mode 100644
index 000000000..fa5864c61
--- /dev/null
+++ b/chrome/locale/sk-SK/zotero/preferences.dtd
@@ -0,0 +1,92 @@
+<!ENTITY zotero.preferences.title "Zotero - Predvoľby">
+
+<!ENTITY zotero.preferences.default "Predvolené:">
+
+<!ENTITY zotero.preferences.prefpane.general "Všeobecné">
+
+<!ENTITY zotero.preferences.userInterface "Používateľské rozhranie">
+<!ENTITY zotero.preferences.position "Zobraz Zotero">
+<!ENTITY zotero.preferences.position.above "pod">
+<!ENTITY zotero.preferences.position.below "nad">
+<!ENTITY zotero.preferences.position.browser "hlavným oknom prehliadača">
+<!ENTITY zotero.preferences.statusBarIcon "Ikonka v spodnej lište:">
+<!ENTITY zotero.preferences.statusBarIcon.none "žiadna">
+<!ENTITY zotero.preferences.fontSize "Veľkosť písma:">
+<!ENTITY zotero.preferences.fontSize.small "malé">
+<!ENTITY zotero.preferences.fontSize.medium "stredné">
+<!ENTITY zotero.preferences.fontSize.large "veľké">
+
+<!ENTITY zotero.preferences.miscellaneous "Rôzne">
+<!ENTITY zotero.preferences.autoUpdate "automaticky kontroluj aktualizácie konvertorov">
+<!ENTITY zotero.preferences.updateNow "Aktualizuj teraz">
+<!ENTITY zotero.preferences.reportTranslationFailure "hlás chybné konvertory">
+<!ENTITY zotero.preferences.parseRISRefer "použi Zotero pre prevzaté RIS/Refer súbory">
+<!ENTITY zotero.preferences.automaticSnapshots "pri vytváraní položiek s webových stránok automaticky urob snímku">
+<!ENTITY zotero.preferences.downloadAssociatedFiles "pri ukladaní položiek automaticky pripoj prepojené PDF a ostatné súbory">
+<!ENTITY zotero.preferences.automaticTags "automaticky použi kľúčové slová a predmetové heslá ako tagy">
+
+<!ENTITY zotero.preferences.openurl.caption "OpenURL">
+
+<!ENTITY zotero.preferences.openurl.search "Hľadaj resolvery">
+<!ENTITY zotero.preferences.openurl.custom "Vlastné...">
+<!ENTITY zotero.preferences.openurl.server "Resolver:">
+<!ENTITY zotero.preferences.openurl.version "Verzia:">
+
+<!ENTITY zotero.preferences.prefpane.search "Vyhľadávanie">
+<!ENTITY zotero.preferences.search.fulltextCache "Index pre plnotextové vyhľadávanie">
+<!ENTITY zotero.preferences.search.pdfIndexing "Indexovanie PDF súborov">
+<!ENTITY zotero.preferences.search.indexStats "Štatistiky indexu pre plnotextové vyhľadávanie">
+
+<!ENTITY zotero.preferences.search.indexStats.indexed "Indexovaných:">
+<!ENTITY zotero.preferences.search.indexStats.partial "Čiastočne indexovaných:">
+<!ENTITY zotero.preferences.search.indexStats.unindexed "Neindexovaných:">
+<!ENTITY zotero.preferences.search.indexStats.words "Slov:">
+
+<!ENTITY zotero.preferences.fulltext.textMaxLength "Maximálny počet indexovaných znakov z 1 súboru:">
+<!ENTITY zotero.preferences.fulltext.pdfMaxPages "Maximálny počet indexovaných stránok z jedného súboru:">
+
+<!ENTITY zotero.preferences.prefpane.export "Export">
+
+<!ENTITY zotero.preferences.citationOptions.caption "Možnosti citovania">
+<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Zahrň do referencií URL adresy článkov">
+<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Keď táto voľba nie je vybraná, Zotero vloží URL adresy pri citovaní článkov (z odborných a populárnych časopisov alebo novín) iba v prípade, ak článok nemá špecifikovaný rozsah strán.">
+
+<!ENTITY zotero.preferences.quickCopy.caption "Rýchle kopírovanie">
+<!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Predvolený formát výstupu:">
+<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Kopíruj ako HTML">
+<!ENTITY zotero.preferences.quickCopy.macWarning "Poznámka: Formát textu sa v Mac OS X nezachová.">
+<!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Nastavenia pre jednotlivé sídla:">
+<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "doména/cesta">
+<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(napr. wikipedia.org)">
+<!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "výstupný formát">
+
+<!ENTITY zotero.preferences.export.getAdditionalStyles "Získaj ďalšie štýly">
+
+<!ENTITY zotero.preferences.prefpane.keys "Klávesové skratky">
+
+<!ENTITY zotero.preferences.keys.openZotero "Otvorenie/zatvorenie Zotera">
+<!ENTITY zotero.preferences.keys.toggleFullscreen "Prepnutie Zotera do celého okna">
+<!ENTITY zotero.preferences.keys.library "Knižnica">
+<!ENTITY zotero.preferences.keys.quicksearch "Rýchle hľadanie">
+<!ENTITY zotero.preferences.keys.newItem "Vytvorenie novej položky">
+<!ENTITY zotero.preferences.keys.newNote "Vytvorenie novej poznámky">
+<!ENTITY zotero.preferences.keys.toggleTagSelector "Zobrazenie/skrytie tagov">
+<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Kopírovanie vybraných citácií do schránky">
+<!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Kopírovanie vybraných položiek do schránky">
+<!ENTITY zotero.preferences.keys.overrideGlobal "Pokús sa získať kontrolu v prípade konfliktu skratiek s inými rozšíreniami">
+<!ENTITY zotero.preferences.keys.changesTakeEffect "Zmeny sa prejavia iba v nových oknách">
+
+
+<!ENTITY zotero.preferences.prefpane.advanced "Pokročilé">
+
+<!ENTITY zotero.preferences.dataDir "Ukladanie dát">
+<!ENTITY zotero.preferences.dataDir.useProfile "Použi priečinok, kde má Firefox uložený profil">
+<!ENTITY zotero.preferences.dataDir.custom "Vlastné umiestnenie:">
+<!ENTITY zotero.preferences.dataDir.choose "Vyber...">
+<!ENTITY zotero.preferences.dataDir.reveal "Zobraz priečinok s dátami">
+
+<!ENTITY zotero.preferences.dbMaintenance "Údržba databázy">
+<!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Skontroluj integritu">
+<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Obnov konvertory a citačné štýly...">
+<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Obnov konvertory...">
+<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Obnov citačné štýly...">
diff --git a/chrome/locale/sk-SK/zotero/searchbox.dtd b/chrome/locale/sk-SK/zotero/searchbox.dtd
new file mode 100644
index 000000000..784a7d972
--- /dev/null
+++ b/chrome/locale/sk-SK/zotero/searchbox.dtd
@@ -0,0 +1,23 @@
+<!ENTITY zotero.search.name "Meno:">
+
+<!ENTITY zotero.search.joinMode.prefix "Zodpovedá">
+<!ENTITY zotero.search.joinMode.any "ktorémukoľvek">
+<!ENTITY zotero.search.joinMode.all "všetkým">
+<!ENTITY zotero.search.joinMode.suffix "z nasledujúcich pravidiel">
+
+<!ENTITY zotero.search.recursive.label "Hľadaj v podpriečinkoch">
+<!ENTITY zotero.search.noChildren "Zobrazuj iba položky z prvej úrovne">
+<!ENTITY zotero.search.includeParentsAndChildren "K nájdeným položkám zahrň aj všetky rodičovské a dcérske položky">
+
+<!ENTITY zotero.search.textModes.phrase "Výraz">
+<!ENTITY zotero.search.textModes.phraseBinary "Výraz (vrátane binárnych súborov)">
+<!ENTITY zotero.search.textModes.regexp "regulárny výraz">
+<!ENTITY zotero.search.textModes.regexpCS "regulárny výraz (rozliš. malé a veľké)">
+
+<!ENTITY zotero.search.date.units.days "dni">
+<!ENTITY zotero.search.date.units.months "mesiace">
+<!ENTITY zotero.search.date.units.years "roky">
+
+<!ENTITY zotero.search.search "Hľadaj">
+<!ENTITY zotero.search.clear "Vymaž">
+<!ENTITY zotero.search.saveSearch "Ulož vyhľadávanie">
diff --git a/chrome/locale/sk-SK/zotero/timeline.properties b/chrome/locale/sk-SK/zotero/timeline.properties
new file mode 100644
index 000000000..dc8400ae2
--- /dev/null
+++ b/chrome/locale/sk-SK/zotero/timeline.properties
@@ -0,0 +1,21 @@
+general.title=Zotero časová os
+general.filter=Filter:
+general.highlight=Zvýrazni:
+general.clearAll=Odznač všetko
+general.jumpToYear=Skoč na rok:
+general.firstBand=Prvá os:
+general.secondBand=Druhá os:
+general.thirdBand=Tretia os:
+general.dateType=Typ dátumu:
+general.timelineHeight=Vyška osi:
+general.fitToScreen=Prispôsob veľkosti okna
+
+interval.day=deň
+interval.month=mesiac
+interval.year=rok
+interval.decade=dekáda
+interval.century=storočie
+interval.millennium=tisícročie
+
+dateType.published=dátum publikovania
+dateType.modified=dátum zmeny
diff --git a/chrome/locale/sk-SK/zotero/zotero.dtd b/chrome/locale/sk-SK/zotero/zotero.dtd
new file mode 100644
index 000000000..e09e86a54
--- /dev/null
+++ b/chrome/locale/sk-SK/zotero/zotero.dtd
@@ -0,0 +1,153 @@
+<!ENTITY zotero.general.optional "(Voliteľné)">
+<!ENTITY zotero.general.note "Poznámka:">
+
+<!ENTITY zotero.errorReport.unrelatedMessages "Hlásenie o chybe môže obsahovať informácie nesúvisiace so Zoterom.">
+<!ENTITY zotero.errorReport.submissionInProgress "Prosím počkajte kým sa hlásenie o chybe neodošle.">
+<!ENTITY zotero.errorReport.submitted "Hlásenie o chybe bola odoslaná.">
+<!ENTITY zotero.errorReport.reportID "ID hlásenia:">
+<!ENTITY zotero.errorReport.postToForums "Prosím napíšte správu do diskusného Zotero fóra (forums.zotero.org) obsahujúcu toto ID, popis problému a kroky, ktoré sú potrebné k jeho reprodukovaniu.">
+<!ENTITY zotero.errorReport.notReviewed "Hlásenia o chybách nie sú zvyčajne preskúmané pokiaľ o nich nie je zmienka vo diskusných fórach.">
+
+<!ENTITY zotero.upgrade.newVersionInstalled "Nainštalovali ste novú verziu Zotera.">
+<!ENTITY zotero.upgrade.upgradeRequired "Na to, aby ste mohli pracovať s novou verziou je potrebné aktualizovať vašu Zotero databázu.">
+<!ENTITY zotero.upgrade.autoBackup "Pred tým, než budú vykonané zmeny, sa vaša súčasná databáza automaticky archivuje.">
+<!ENTITY zotero.upgrade.upgradeInProgress "Prosím počkajte kým sa dokončí aktualizácia. Môže to trvať niekoľko minút.">
+<!ENTITY zotero.upgrade.upgradeSucceeded "Vaša Zotero databáza bola úspešne aktualizovaná.">
+<!ENTITY zotero.upgrade.changeLogBeforeLink "Prosím prezrite si">
+<!ENTITY zotero.upgrade.changeLogLink "protokol o zmenách">
+<!ENTITY zotero.upgrade.changeLogAfterLink "aby ste sa dozvedeli, čo je nového.">
+
+<!ENTITY zotero.contextMenu.addTextToCurrentNote "Pridajte výber do Zotera ako poznámku">
+<!ENTITY zotero.contextMenu.addTextToNewNote "Pridajte výber do Zotera ako novú položku a poznámku">
+<!ENTITY zotero.contextMenu.saveLinkAsSnapshot "Uložte odkaz do Zotera ako snímku">
+<!ENTITY zotero.contextMenu.saveImageAsSnapshot "Uložte obrázok do Zotera ako snímku.">
+
+<!ENTITY zotero.tabs.info.label "Info">
+<!ENTITY zotero.tabs.notes.label "Poznámky">
+<!ENTITY zotero.tabs.attachments.label "Prílohy">
+<!ENTITY zotero.tabs.tags.label "Tagy">
+<!ENTITY zotero.tabs.related.label "Súvisiace">
+<!ENTITY zotero.notes.separate "Uprav v samostatnom okne">
+
+<!ENTITY zotero.items.type_column "Typ">
+<!ENTITY zotero.items.title_column "Názov">
+<!ENTITY zotero.items.creator_column "Autor">
+<!ENTITY zotero.items.date_column "Dátum">
+<!ENTITY zotero.items.year_column "Rok">
+<!ENTITY zotero.items.publisher_column "Vydavateľ">
+<!ENTITY zotero.items.publication_column "Publikácia">
+<!ENTITY zotero.items.journalAbbr_column "Skratka periodika">
+<!ENTITY zotero.items.language_column "Jazyk">
+<!ENTITY zotero.items.accessDate_column "Citované">
+<!ENTITY zotero.items.callNumber_column "Signatúra">
+<!ENTITY zotero.items.repository_column "Repozitár">
+<!ENTITY zotero.items.rights_column "Práva">
+<!ENTITY zotero.items.dateAdded_column "Pridané dňa">
+<!ENTITY zotero.items.dateModified_column "Upravené dňa">
+<!ENTITY zotero.items.numChildren_column "+">
+
+<!ENTITY zotero.items.menu.showInLibrary "Zobraz v knižnici">
+<!ENTITY zotero.items.menu.attach.note "Pridaj poznámku">
+<!ENTITY zotero.items.menu.attach.snapshot "Pripoj snímku aktuálnej stránky">
+<!ENTITY zotero.items.menu.attach.link "Pripoj odkaz na aktuálnu stránku">
+<!ENTITY zotero.items.menu.duplicateItem "Duplikuj vybranú položku">
+
+<!ENTITY zotero.collections.name_column "Kolekcie">
+
+<!ENTITY zotero.toolbar.newItem.label "Nová položka">
+<!ENTITY zotero.toolbar.moreItemTypes.label "Viac">
+<!ENTITY zotero.toolbar.newItemFromPage.label "Vytvor novú položku z aktuálnej stránky">
+<!ENTITY zotero.toolbar.removeItem.label "Odstráň položku...">
+<!ENTITY zotero.toolbar.newCollection.label "Nová kolekcia...">
+<!ENTITY zotero.toolbar.newSubcollection.label "Nový sub-kolekcia...">
+<!ENTITY zotero.toolbar.newSavedSearch.label "Nové uložené vyhľadávanie...">
+<!ENTITY zotero.toolbar.tagSelector.label "Ukáž/skry tagy">
+<!ENTITY zotero.toolbar.actions.label "Akcie">
+<!ENTITY zotero.toolbar.import.label "Import...">
+<!ENTITY zotero.toolbar.export.label "Exportuj knižnicu...">
+<!ENTITY zotero.toolbar.timeline.label "Vytvor časovú os">
+<!ENTITY zotero.toolbar.preferences.label "Predvoľby...">
+<!ENTITY zotero.toolbar.documentation.label "Dokumentácia">
+<!ENTITY zotero.toolbar.about.label "O Zotere">
+<!ENTITY zotero.toolbar.advancedSearch "Pokročilé vyhľadávanie">
+<!ENTITY zotero.toolbar.search.label "Hľadaj:">
+<!ENTITY zotero.toolbar.fullscreen.tooltip "Zväčši do celého okna">
+<!ENTITY zotero.toolbar.openURL.label "Nájdi">
+<!ENTITY zotero.toolbar.openURL.tooltip "Nájdi v miestnej knižnici">
+
+<!ENTITY zotero.item.add "Pridaj">
+<!ENTITY zotero.item.attachment.file.show "Zobraz súbor">
+<!ENTITY zotero.item.textTransform "Preveď text">
+<!ENTITY zotero.item.textTransform.lowercase "malé písmená">
+<!ENTITY zotero.item.textTransform.titlecase "Prvé Veľké">
+
+<!ENTITY zotero.toolbar.note.standalone "Nová samostatná poznámka">
+<!ENTITY zotero.toolbar.attachment.linked "Odkaz na súbor...">
+<!ENTITY zotero.toolbar.attachment.add "Ulož kópiu súboru...">
+<!ENTITY zotero.toolbar.attachment.weblink "Ulož odkaz na aktuálnu stránku">
+<!ENTITY zotero.toolbar.attachment.snapshot "Urob snímku z aktuálnej stránky">
+
+<!ENTITY zotero.tagSelector.noTagsToDisplay "Žiadne tagy na zobrazenie">
+<!ENTITY zotero.tagSelector.filter "Filter:">
+<!ENTITY zotero.tagSelector.showAutomatic "Zobrazuj automaticky">
+<!ENTITY zotero.tagSelector.displayAll "Zobraz všetky tagy">
+<!ENTITY zotero.tagSelector.selectVisible "Označ viditeľné">
+<!ENTITY zotero.tagSelector.clearVisible "Odznač viditeľné">
+<!ENTITY zotero.tagSelector.clearAll "Odznač všetky">
+<!ENTITY zotero.tagSelector.renameTag "Premenuj tag...">
+<!ENTITY zotero.tagSelector.deleteTag "Vymaž tag...">
+
+<!ENTITY zotero.selectitems.title "Označte položky">
+<!ENTITY zotero.selectitems.intro.label "Označte, ktoré položky chcete pridať do Zotera">
+<!ENTITY zotero.selectitems.cancel.label "Zrušiť">
+<!ENTITY zotero.selectitems.select.label "OK">
+
+<!ENTITY zotero.bibliography.title "Vytvor bibliografiu">
+<!ENTITY zotero.bibliography.style.label "Citačný štýl:">
+<!ENTITY zotero.bibliography.output.label "Výstupný formát">
+<!ENTITY zotero.bibliography.saveAsRTF.label "Ulož ako RTF">
+<!ENTITY zotero.bibliography.saveAsHTML.label "Ulož ako HTML">
+<!ENTITY zotero.bibliography.copyToClipboard.label "Skopíruj do schránky">
+<!ENTITY zotero.bibliography.macClipboardWarning "(Formát textu sa nezachová)">
+<!ENTITY zotero.bibliography.print.label "Tlač">
+
+<!ENTITY zotero.integration.docPrefs.title "Vlastnosti dokumentu">
+<!ENTITY zotero.integration.addEditCitation.title "Pridaj/Uprav citáciu">
+<!ENTITY zotero.integration.editBibliography.title "Uprav bibliografiu">
+
+<!ENTITY zotero.progress.title "Postup">
+
+<!ENTITY zotero.exportOptions.title "Export...">
+<!ENTITY zotero.exportOptions.format.label "Formát:">
+<!ENTITY zotero.exportOptions.translatorOptions.label "Možnosti konvertora">
+
+<!ENTITY zotero.citation.keepSorted.label "Zachovaj zdroje zoradené">
+
+<!ENTITY zotero.citation.page "Strana">
+<!ENTITY zotero.citation.paragraph "Odstavec">
+<!ENTITY zotero.citation.line "Riadok">
+<!ENTITY zotero.citation.suppressAuthor.label "Potlač autora">
+<!ENTITY zotero.citation.prefix.label "Predpona:">
+<!ENTITY zotero.citation.suffix.label "Prípona:">
+
+<!ENTITY zotero.richText.italic.label "Kruzíva">
+<!ENTITY zotero.richText.bold.label "Tučné">
+<!ENTITY zotero.richText.underline.label "Podčiarknuté">
+<!ENTITY zotero.richText.superscript.label "Horný index">
+<!ENTITY zotero.richText.subscript.label "Dolný index">
+
+<!ENTITY zotero.annotate.toolbar.add.label "Vlož anotáciu">
+<!ENTITY zotero.annotate.toolbar.collapse.label "Zbaľ všetky anotácie">
+<!ENTITY zotero.annotate.toolbar.expand.label "Rozbaľ všetky anotácie">
+<!ENTITY zotero.annotate.toolbar.highlight.label "Zvýrazni text">
+<!ENTITY zotero.annotate.toolbar.unhighlight.label "Zruš zvýraznenie">
+
+<!ENTITY zotero.integration.prefs.displayAs.label "Zobraz citácie ako:">
+<!ENTITY zotero.integration.prefs.footnotes.label "poznámky pod čiarou">
+<!ENTITY zotero.integration.prefs.endnotes.label "poznámky na konci textu">
+
+<!ENTITY zotero.integration.prefs.formatUsing.label "Formátuj pomocou:">
+<!ENTITY zotero.integration.prefs.bookmarks.label "záložiek">
+<!ENTITY zotero.integration.prefs.bookmarks.caption "Záložky sa zachovajú pri prenose z MS Wordu do OpenOffice a naopak, ale môžu byť náhodne modifikované.">
+
+<!ENTITY zotero.integration.references.label "Referencie v bibliografii">
diff --git a/chrome/locale/sk-SK/zotero/zotero.properties b/chrome/locale/sk-SK/zotero/zotero.properties
new file mode 100644
index 000000000..92b7dee1c
--- /dev/null
+++ b/chrome/locale/sk-SK/zotero/zotero.properties
@@ -0,0 +1,495 @@
+extensions.zotero@chnm.gmu.edu.description=Nástroj pre výskum novej generácie
+
+general.error=Chyba
+general.warning=Upozornenie
+general.dontShowWarningAgain=Toto upozornenie už viacej nezobrazovať
+general.browserIsOffline=%S je momentálne v režime offline.
+general.locate=Nájdi...
+general.restartRequired=Požaduje sa reštart
+general.restartRequiredForChange=Aby sa zmena aplikovala, je potrebné reštartovať Firefox.
+general.restartRequiredForChanges=Aby sa zmeny aplikovali, je potrebné reštartovať Firefox.
+general.restartNow=Reštartovať teraz
+general.restartLater=Reštartovať neskôr
+general.errorHasOccurred=Vyskytla sa chyba.
+general.restartFirefox=Prosím, reštartujte Firefox.
+general.restartFirefoxAndTryAgain=Prosím, reštartujte Firefox a skúste to opäť.
+general.checkForUpdate=Hľadaj aktualizácie
+general.install=Inštaluj
+general.updateAvailable=Nová aktualizácia
+general.upgrade=Aktualizuj
+general.yes=Áno
+general.no=Nie
+general.passed=Prešiel
+general.failed=Neprešiel
+general.and=a
+
+install.quickStartGuide=Rýchly sprievodca
+install.quickStartGuide.message.welcome=Vitajte v Zotere!
+install.quickStartGuide.message.clickViewPage=Pre zobrazenie Rýchleho sprievodcu kliknite na hore tlačidlo "Prezrieť stránku" a naučte sa ako začať získavať a spravovať citácie a ako ich následne použiť pri vašom výskume.
+install.quickStartGuide.message.thanks=Ďakujeme, že ste si nainštalovali Zotero.
+
+upgrade.failed=Aktualizácia Zotero databázy sa nepodarila:
+upgrade.advanceMessage=Stlačte %S ak chcete aktualizovať teraz.
+
+errorReport.reportErrors=Ohlás chyby...
+errorReport.reportInstructions=Túto chybu môžete nahlásiť zvolením "%S" z menu Akcie (ozubené koliesko).
+errorReport.followingErrors=Vyskytli sa nasledujúce chyby:
+errorReport.advanceMessage=Pre nahlásenie chyby vývojárom stlačte %S.
+errorReport.stepsToReproduce=Kroky, ktoré viedli k chybe:
+errorReport.expectedResult=Čo ste očakávali, že sa stane:
+errorReport.actualResult=Čo sa stalo naozaj:
+
+dataDir.notFound=Zotero nemôže nájsť svoj priečinok s dátami.
+dataDir.previousDir=Predchádzajúci priečinok:
+dataDir.useProfileDir=Použi priečinok s profilom Firefoxu
+dataDir.selectDir=Vyberte si priečinok, kam má Zotero ukladať dáta
+dataDir.selectedDirNonEmpty.title=Priečinok nie je prázdny
+dataDir.selectedDirNonEmpty.text=Zvolený priečinok nie je prázdny a nevyzerá, že by obsahoval dáta zo Zotera.\n\nChcete napriek tomu, aby sa súbory vytvorili v tomto priečinku?
+
+startupError=Pri spúštaní Zotera sa vyskytla chyba.
+
+pane.collections.delete=Naozaj chcete vymazať vybranú kolekciu?
+pane.collections.deleteSearch=Naozaj chcete vymazať vybrané vyhľadávanie?
+pane.collections.newCollection=Nová kolekcia
+pane.collections.name=Vložte názov pre túto kolekciu:
+pane.collections.newSavedSeach=Nové uložené vyhľadávanie
+pane.collections.savedSearchName=Vložte názov pre toto uložené vyhľadávanie:
+pane.collections.rename=Premenuj kolekciu:
+pane.collections.library=Moja knižnica
+pane.collections.untitled=Bez názvu
+
+pane.collections.menu.rename.collection=Premenuj kolekciu...
+pane.collections.menu.edit.savedSearch=Uprav uložené vyhľadávanie
+pane.collections.menu.remove.collection=Odstráň kolekciu...
+pane.collections.menu.remove.savedSearch=Odtráň uložené vyhľadávanie...
+pane.collections.menu.export.collection=Exportuj kolekciu...
+pane.collections.menu.export.savedSearch=Exportuj uložené vyhľadávanie...
+pane.collections.menu.createBib.collection=Vytvor bibliografiu z kolekcie...
+pane.collections.menu.createBib.savedSearch=Vytvor bibliografiu z uloženého vyhľadávania...
+
+pane.collections.menu.generateReport.collection=Vytvor správu z kolekcie...
+pane.collections.menu.generateReport.savedSearch=Vytvor správu z uloženého vyhľadávania...
+
+pane.tagSelector.rename.title=Premenuj tag
+pane.tagSelector.rename.message=Prosím vložte nový názov pre tento tag.\n\nTag bude zmenený vo všetkých položkách, ktoré ho obsahujú.
+pane.tagSelector.delete.title=Vymaž tag
+pane.tagSelector.delete.message=Naozaj chcete vymazať tento tag?\n\nTag bude odstránený zo všetkých položiek.
+pane.tagSelector.numSelected.none=Nie je vybraný žiaden tag
+pane.tagSelector.numSelected.singular=%S vybraný tag
+pane.tagSelector.numSelected.plural=%S vybraných tagov
+
+pane.items.loading=Nahrávam zoznam položiek...
+pane.items.delete=Naozaj chcete vymazať zvolenú položku?
+pane.items.delete.multiple=Naozaj že chcete vymazať zvolené položky?
+pane.items.delete.title=Vymaž
+pane.items.delete.attached=Vymaž priložené poznámky a súbory
+pane.items.menu.remove=Odstráň vybranú položku
+pane.items.menu.remove.multiple=Odstráň vybrané položky
+pane.items.menu.erase=Vymaž vybranú položku z knižnice...
+pane.items.menu.erase.multiple=Vymaž vybrané položky z knižnice...
+pane.items.menu.export=Exportuj vybranú položku...
+pane.items.menu.export.multiple=Exportuj vybrané položky...
+pane.items.menu.createBib=Vytvor bibliografiu z vybranej položky...
+pane.items.menu.createBib.multiple=Vytvor bibliografiu z vybraných položiek...
+pane.items.menu.generateReport=Vytvor správu z vybranej položky...
+pane.items.menu.generateReport.multiple=Vytvor správu z vybraných položiek...
+pane.items.menu.reindexItem=Reindexuj položku
+pane.items.menu.reindexItem.multiple=Reindexuj položky
+
+pane.items.letter.oneParticipant=List pre %S
+pane.items.letter.twoParticipants=List pre %S a %S
+pane.items.letter.threeParticipants=List pre %S, %S a %S
+pane.items.letter.manyParticipants=List pre %S et al.
+pane.items.interview.oneParticipant=Rozhovor - %S
+pane.items.interview.twoParticipants=Rozhovor - %S a %S
+pane.items.interview.threeParticipants=Rozhovor - %S, %S a %S
+pane.items.interview.manyParticipants=Rozhovor - %S et al.
+
+pane.item.selected.zero=Nie sú vybrané žiadne položky
+pane.item.selected.multiple=%S vybraných položiek
+
+pane.item.goToURL.online.label=Zobraz
+pane.item.goToURL.online.tooltip=Prejdi na túto položku na internete
+pane.item.goToURL.snapshot.label=Zobraz snímku
+pane.item.goToURL.snapshot.tooltip=Zobraz snímku tejto položky
+pane.item.changeType.title=Zmeň typ položky
+pane.item.changeType.text=Naozaj chcete zmeniť typ položky?\n\nNasledujúce polia sa stratia:
+pane.item.defaultFirstName=krstné
+pane.item.defaultLastName=priezvisko
+pane.item.defaultFullName=celé meno
+pane.item.switchFieldMode.one=Spoločné pole pre meno
+pane.item.switchFieldMode.two=Samostatné polia pre meno
+pane.item.notes.untitled=Nepomenovaná poznámka
+pane.item.notes.delete.confirm=Naozaj chcete vymazať túto poznámku?
+pane.item.notes.count.zero=Žiadne poznámky:
+pane.item.notes.count.singular=%S poznámka:
+pane.item.notes.count.plural=%S poznámok:
+pane.item.attachments.rename.title=Nový názov:
+pane.item.attachments.rename.renameAssociatedFile=Premenuj príslušný súbor
+pane.item.attachments.rename.error=Pri premenovávaní súboru sa vyskytla chyba.
+pane.item.attachments.view.link=Zobraz stránku
+pane.item.attachments.view.snapshot=Zobraz snímku
+pane.item.attachments.view.file=Zobraz súbor
+pane.item.attachments.fileNotFound.title=Súbor sa nenašiel
+pane.item.attachments.fileNotFound.text=Pripojený súbor sa nenašiel.\n\nMožno bol upravený alebo vymazaný mimo Zotera.
+pane.item.attachments.delete.confirm=Naozaj chcete vymazať túto prílohu?
+pane.item.attachments.count.zero=Žiadne prílohy:
+pane.item.attachments.count.singular=%S príloha:
+pane.item.attachments.count.plural=%S príloh:
+pane.item.attachments.select=Vyberte súbor
+pane.item.noteEditor.clickHere=kliknite sem
+pane.item.tags=Tagy:
+pane.item.tags.count.zero=Žiadne tagy:
+pane.item.tags.count.singular=%S tag:
+pane.item.tags.count.plural=%S tagov:
+pane.item.tags.icon.user=Tag pridaný používateľov
+pane.item.tags.icon.automatic=Automaticky pridaný tag
+pane.item.related=Súvisiace:
+pane.item.related.count.zero=Žiadne súvisiace položky:
+pane.item.related.count.singular=%S súvisiaca položka:
+pane.item.related.count.plural=%S súvisiacich položiek:
+
+noteEditor.editNote=Uprav poznámku
+
+itemTypes.note=Poznámka
+itemTypes.attachment=Príloha
+itemTypes.book=Kniha
+itemTypes.bookSection=Časť knihy
+itemTypes.journalArticle=Článok v odbornom časopise
+itemTypes.magazineArticle=Článok v populárnom časopise
+itemTypes.newspaperArticle=Článok v novinách
+itemTypes.thesis=Záverečná práca
+itemTypes.letter=List
+itemTypes.manuscript=Manuskript
+itemTypes.interview=Osobná komunikácia
+itemTypes.film=Film
+itemTypes.artwork=Umelecké dielo
+itemTypes.webpage=Webová stránka
+itemTypes.report=Správa
+itemTypes.bill=Legislatívny dokument
+itemTypes.case=Prípad (súdny)
+itemTypes.hearing=Výsluch (konanie)
+itemTypes.patent=Patent
+itemTypes.statute=Nariadenie
+itemTypes.email=e-mail
+itemTypes.map=Mapa
+itemTypes.blogPost=Príspevok na blogu
+itemTypes.instantMessage=Chatová správa
+itemTypes.forumPost=Príspevok do fóra
+itemTypes.audioRecording=Audio záznam
+itemTypes.presentation=Prezentácia
+itemTypes.videoRecording=Video záznam
+itemTypes.tvBroadcast=Televízne vysielanie
+itemTypes.radioBroadcast=Rádio
+itemTypes.podcast=Podcast
+itemTypes.computerProgram=Počítačový program
+itemTypes.conferencePaper=Príspevok na konferenciu
+itemTypes.document=Dokument
+itemTypes.encyclopediaArticle=Článok v encyklopédii
+itemTypes.dictionaryEntry=Položka v slovníku
+
+itemFields.itemType=Typ
+itemFields.title=Názov
+itemFields.dateAdded=Dátum vloženia
+itemFields.dateModified=Upravené
+itemFields.source=Zdroj
+itemFields.notes=Poznámky
+itemFields.tags=Tagy
+itemFields.attachments=Prílohy
+itemFields.related=Súvisiace
+itemFields.url=URL
+itemFields.rights=Práva
+itemFields.series=Séria
+itemFields.volume=Ročník
+itemFields.issue=Číslo
+itemFields.edition=Edícia
+itemFields.place=Miesto
+itemFields.publisher=Vydavateľ
+itemFields.pages=Strany
+itemFields.ISBN=ISBN
+itemFields.publicationTitle=Názov publikácie
+itemFields.ISSN=ISSN
+itemFields.date=Dátum
+itemFields.section=Sekcia
+itemFields.callNumber=Signatúra
+itemFields.archiveLocation=Lokácia
+itemFields.distributor=Distribútor
+itemFields.extra=Extra
+itemFields.journalAbbreviation=Skratka časopisu
+itemFields.DOI=DOI
+itemFields.accessDate=Citované
+itemFields.seriesTitle=Názov série
+itemFields.seriesText=Text série
+itemFields.seriesNumber=Číslo série
+itemFields.institution=Inštitúcia
+itemFields.reportType=Druh správy
+itemFields.code=Zákonník
+itemFields.session=Zasadnutie
+itemFields.legislativeBody=Legislatívny orgán
+itemFields.history=História
+itemFields.reporter=Zbierka súd. rozhodnutí
+itemFields.court=Súd
+itemFields.numberOfVolumes=Počet ročníkov
+itemFields.committee=Výbor/porota
+itemFields.assignee=Prihlasovateľ
+itemFields.patentNumber=Číslo patentu
+itemFields.priorityNumbers=Čísla priority
+itemFields.issueDate=Dátum vydania
+itemFields.references=Odkazy
+itemFields.legalStatus=Právny status
+itemFields.codeNumber=Kódové číslo
+itemFields.artworkMedium=Médium
+itemFields.number=Číslo
+itemFields.artworkSize=Rozmery
+itemFields.repository=Repozitár
+itemFields.videoRecordingType=Druh záznamu
+itemFields.interviewMedium=Médium
+itemFields.letterType=Druh
+itemFields.manuscriptType=Druh
+itemFields.mapType=Druh
+itemFields.scale=Mierka
+itemFields.thesisType=Druh záv. práce
+itemFields.websiteType=Druh sídla
+itemFields.audioRecordingType=Druh záznamu
+itemFields.label=Vydavateľstvo
+itemFields.presentationType=Typ prezentácie
+itemFields.meetingName=Názov stretnutia
+itemFields.studio=Štúdio
+itemFields.runningTime=Dĺžka
+itemFields.network=Sieť
+itemFields.postType=Druh príspevku
+itemFields.audioFileType=Typ súboru
+itemFields.version=Verzia
+itemFields.system=Operačný systém
+itemFields.company=Spoločnosť
+itemFields.conferenceName=Názov konferencie
+itemFields.encyclopediaTitle=Názov encyklopédie
+itemFields.dictionaryTitle=Názov slovníku
+itemFields.language=Jazyk
+itemFields.programmingLanguage=Program. jazyk
+itemFields.university=Univerzita
+itemFields.abstractNote=Abstrakt
+itemFields.websiteTitle=Názov webstránky
+itemFields.reportNumber=Číslo správy
+itemFields.billNumber=Číslo
+itemFields.codeVolume=Ročník
+itemFields.codePages=Strany
+itemFields.dateDecided=Dátum rozhodnutia
+itemFields.reporterVolume=Ročník
+itemFields.firstPage=Prvá strana
+itemFields.documentNumber=Číslo dokumentu
+itemFields.dateEnacted=Dátum vstúp. do platnosti
+itemFields.publicLawNumber=Číslo zákona
+itemFields.country=Štát
+itemFields.applicationNumber=Číslo prihlášky
+itemFields.forumTitle=Názov fóra/Diskusnej skupiny
+itemFields.episodeNumber=Číslo epizódy
+itemFields.blogTitle=Názov blogy
+itemFields.caseName=Názov prípadu
+itemFields.nameOfAct=Názov zákona
+itemFields.subject=Predmet
+itemFields.proceedingsTitle=Názov zborníka
+itemFields.bookTitle=Názov knihy
+itemFields.shortTitle=Krátky názov
+
+creatorTypes.author=Autor
+creatorTypes.contributor=Prispievateľ
+creatorTypes.editor=Editor
+creatorTypes.translator=Prekladateľ
+creatorTypes.seriesEditor=Autor série
+creatorTypes.interviewee=Rozhovor s
+creatorTypes.interviewer=Spytujúci sa
+creatorTypes.director=Režisér
+creatorTypes.scriptwriter=Scenárista
+creatorTypes.producer=Producent
+creatorTypes.castMember=Účinkujúci
+creatorTypes.sponsor=Spoznor
+creatorTypes.counsel=Právny zástupca
+creatorTypes.inventor=Vynálezca
+creatorTypes.attorneyAgent=Advokát/Zástupca
+creatorTypes.recipient=Príjemca
+creatorTypes.performer=Interpret
+creatorTypes.composer=Skladateľ
+creatorTypes.wordsBy=Autor textu
+creatorTypes.cartographer=Kartograf
+creatorTypes.programmer=Programátor
+creatorTypes.reviewedAuthor=Recenzent
+creatorTypes.artist=Umelec
+creatorTypes.commenter=Komentátor
+creatorTypes.presenter=Prezentujúci
+creatorTypes.guest=Hosť
+creatorTypes.podcaster=Autor podcastu
+
+fileTypes.webpage=Web stránka
+fileTypes.image=Obrázok
+fileTypes.pdf=PDF
+fileTypes.audio=Audio
+fileTypes.video=Video
+fileTypes.presentation=Prezentácia
+fileTypes.document=Dokument
+
+save.attachment=Ukladám snímku...
+save.link=Ukladám odkaz...
+
+ingester.saveToZotero=Uložiť do Zotera
+ingester.scraping=Ukladám položku...
+ingester.scrapeComplete=Položka uložená
+ingester.scrapeError=Nemôžem uložiť položku
+ingester.scrapeErrorDescription=Pri ukladaní položky sa vyskytla chyba. Viac informácii nájdete kliknutím sem %S.
+ingester.scrapeErrorDescription.linkText=Známe problémy s konvertormi
+ingester.scrapeError.transactionInProgress.previousError=Kvôli predchádzajúcej chybe Zotera ukladanie zlyhalo.
+
+db.dbCorrupted=Zdá sa, že došlo k porušeniu Zotero databázy '%S'.
+db.dbCorrupted.restart=Prosím, reštartujte Firefox aby bolo možné pokúsiť sa o automatickú obnovu z poslednej zálohy.
+db.dbCorruptedNoBackup=Zdá sa, že došlo k porušeniu Zotero databázy '%S' a automatická záloha nie je k dispozícii.\n\nBola vytvorená nová databáza a pôvodný poškodený súbor bol uložený vo vašom Zotero adresári.
+db.dbRestored=Keďže sa zdá, že došlo k porušeniu Zotero databázy '%1$S'.\n\nvaše dáta boli obnovené z poslednej automatickej zálohy vytvorenej %2$S o %3$S. Pôvodný poškodený súbor bol uložený vo vašom Zotero adresári.
+db.dbRestoreFailed=Zdá sa, že došlo k porušeniu Zotero databázy '%S' a pokus o obnovu dát z automatickej zálohy zlyhal.\n\nBola vytvorená nová databáza a pôvodný poškodený súbor bol uložený vo vašom Zotero adresári.
+
+db.integrityCheck.passed=Databáza je v úplnom poriadku.
+db.integrityCheck.failed=V databáze boli nájdené chyby!
+
+zotero.preferences.update.updated=Aktualizované
+zotero.preferences.update.upToDate=Aktuálne
+zotero.preferences.update.error=Chyba
+zotero.preferences.openurl.resolversFound.zero=Nebol nájdený žiadny resolver
+zotero.preferences.openurl.resolversFound.singular=Našiel sa %S resolver
+zotero.preferences.openurl.resolversFound.plural=Nájdených %S resolverov
+zotero.preferences.search.rebuildIndex=Znovu vytvoriť index
+zotero.preferences.search.rebuildWarning=Naozaj chcete znovu vytvoriť celý index? Môže to chvíľu trvať.\n\nAk chcete indexovať len položky, ktoré neboli indexované, použite %S.
+zotero.preferences.search.clearIndex=Vymazať index
+zotero.preferences.search.clearWarning=Po vymazaní indexu nebude možné vyhľadávať v prílohách.\n\nInternetové odkazy nie je možné znovu indexovať bez navštívenia daných stránok. Ak chcete internetové odkazy ponechať indexované, použite %S.
+zotero.preferences.search.clearNonLinkedURLs=Vymazať všetko okrem internetových odkazov
+zotero.preferences.search.indexUnindexed=Indexovať neindexované položky
+zotero.preferences.search.pdf.toolRegistered=%S je nainštalovaný
+zotero.preferences.search.pdf.toolNotRegistered=%S NIE JE nainštalovaný
+zotero.preferences.search.pdf.toolsRequired=Indexovanie PDF súborov vyžaduje %1$S a %2$S - nástroje z projektu %3$S.
+zotero.preferences.search.pdf.automaticInstall=Pre určité systémy dokáže Zotero tieto aplikácie automaticky prevziať a nainštalovať z adresy zotero.org.
+zotero.preferences.search.pdf.advancedUsers=Pokročilí používatelia si možno budú chcieť prezrieť %S s inštrukciami pre manuálnu inštaláciu.
+zotero.preferences.search.pdf.documentationLink=dokumentáciu
+zotero.preferences.search.pdf.checkForInstaller=Zisti, či je k dispozícii inštalátor
+zotero.preferences.search.pdf.downloading=Sťahujem...
+zotero.preferences.search.pdf.toolDownloadsNotAvailable=%S nástroje nie sú momentálne prostredníctvom zotero.org pre váš systém dostupné.
+zotero.preferences.search.pdf.viewManualInstructions=Prezrite si prosím dokumentáciu s inštrukciami pre manuálnu inštaláciu.
+zotero.preferences.search.pdf.availableDownloads=%1$S možno sťahovať z adresy %2$S:
+zotero.preferences.search.pdf.availableUpdates=%1$S možno aktualizovať z adresy %2$S:
+zotero.preferences.search.pdf.toolVersionPlatform=%1$S verzia %2$S
+zotero.preferences.search.pdf.zoteroCanInstallVersion=Zotero to môže automaticky nainštalovať svojho dátového adresára.
+zotero.preferences.search.pdf.zoteroCanInstallVersions=Zotero môže tieto aplikácie automaticky nainštalovať do svojho dátového adresára.
+zotero.preferences.search.pdf.toolsDownloadError=Pri pokuse o prevzatie nástrojov %S zo zotero.org sa vyskytla chyba.
+zotero.preferences.search.pdf.tryAgainOrViewManualInstructions=Prosím, skúste to opäť neskôr alebo si prezrite dokumentáciu s inštrukciami pre manuálnu inštaláciu.
+zotero.preferences.export.quickCopy.bibStyles=Bibliografické štýly
+zotero.preferences.export.quickCopy.exportFormats=Formáty pre export
+zotero.preferences.export.quickCopy.instructions=Rýchle kopírovanie vám umožňuje kopírovať referencie do schránky stlačením klávesovej skratky (%S) alebo pretiahnutím položiek do textového poľa na webovej schránke.
+
+zotero.preferences.advanced.resetTranslatorsAndStyles=Obnov konvertory a štýly
+zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Všetky nové alebo modifikované konvertory alebo štýly budú stratené.
+zotero.preferences.advanced.resetTranslators=Obnov konvertory
+zotero.preferences.advanced.resetTranslators.changesLost=Všetky nové alebo modifikované konvertory budú stratené.
+zotero.preferences.advanced.resetStyles=Obnov štýly
+zotero.preferences.advanced.resetStyles.changesLost=Všetky nové alebo modifikované štýly budú stratené.
+
+dragAndDrop.existingFiles=Nasledujúce súbory už v cieľovom priečinku existovali a neboli skopírované:
+dragAndDrop.filesNotFound=Nasledujúce súbory sa nenašli a neboli skopírované:
+
+fileInterface.itemsImported=Importujem položky...
+fileInterface.itemsExported=Exportujem položky...
+fileInterface.import=Import
+fileInterface.export=Export
+fileInterface.exportedItems=Exportované položky
+fileInterface.imported=Importované
+fileInterface.fileFormatUnsupported=Pre daný súbor nemôžem nájsť žiaden konvertor.
+fileInterface.untitledBibliography=Nepomenovaná bibliografia
+fileInterface.bibliographyHTMLTitle=Bibliografia
+fileInterface.importError=Pri importovaní zvoleného súboru sa vyskytla chyba. Prosím, skontrolujte či je súbor v poriadku a skúste to znova.
+fileInterface.noReferencesError=Označené položky neobsahujú žiadne referencie. Prosím, vyberte jednu alebo viac referencií a skúste to znovu.
+fileInterface.bibliographyGenerationError=Pri vytváraní bibliografie sa vyskytla chyba. Skúste to znovu.
+fileInterface.exportError=Pri exportovaní vybraného súboru sa vyskytla chyba.
+
+advancedSearchMode=Pokročilé vyhľadávanie - pre hľadanie stlačte Enter
+searchInProgress=Vyhľadávam - prosím čakajte.
+
+searchOperator.is=je
+searchOperator.isNot=nie je
+searchOperator.beginsWith=začína s
+searchOperator.contains=obsahuje
+searchOperator.doesNotContain=neobsahuje
+searchOperator.isLessThan=je menšie než
+searchOperator.isGreaterThan=je väčšie než
+searchOperator.isBefore=je pred
+searchOperator.isAfter=je po
+searchOperator.isInTheLast=je v posledných
+
+searchConditions.tooltip.fields=Polia:
+searchConditions.collectionID=Kolekcia
+searchConditions.itemTypeID=Typ položky
+searchConditions.tag=Tag
+searchConditions.note=Poznámka
+searchConditions.childNote=Vnorená poznámka
+searchConditions.creator=Autor
+searchConditions.type=Typ
+searchConditions.thesisType=Druh záverečnej práce
+searchConditions.reportType=Druh správy
+searchConditions.videoRecordingType=Druh videozáznamu
+searchConditions.audioFileType=Typ audio súboru
+searchConditions.audioRecordingType=Druh audiozáznamu
+searchConditions.letterType=Druh listu
+searchConditions.interviewMedium=Komunikačné médium
+searchConditions.manuscriptType=Druh manuskriptu
+searchConditions.presentationType=Typ prezentácie
+searchConditions.mapType=Druh mapy
+searchConditions.medium=Médium
+searchConditions.artworkMedium=Médium umeleckého diela
+searchConditions.dateModified=Dátum zmeny
+searchConditions.fulltextContent=Obsah prílohy
+searchConditions.programmingLanguage=Programovací jazyk
+searchConditions.fileTypeID=Typ priloženého súboru
+searchConditions.annotation=Anotácia
+
+fulltext.indexState.indexed=Indexované
+fulltext.indexState.unavailable=Neznáme
+fulltext.indexState.partial=Čiastočne indexované
+
+exportOptions.exportNotes=Exportuj poznámky
+exportOptions.exportFileData=Exportuj súbory
+exportOptions.UTF8=Exportuj v UTF-8
+
+date.daySuffixes=,,,
+date.abbreviation.year=r
+date.abbreviation.month=m
+date.abbreviation.day=d
+
+citation.multipleSources=Viaceré zdroje...
+citation.singleSource=Jeden zdroj...
+citation.showEditor=Zobraz editor
+citation.hideEditor=Skry editor...
+
+report.title.default=Hlásenie Zotera
+report.parentItem=Rodičovská položka:
+report.notes=Poznámky:
+report.tags=Tagy:
+
+annotations.confirmClose.title=Naozaj chcete zatvoriť túto anotáciu?
+annotations.confirmClose.body=Všetok text sa stratí.
+annotations.close.tooltip=Zmaž anotáciu
+annotations.move.tooltip=Presuň anotáciu
+annotations.collapse.tooltip=Zbaľ anotáciu
+annotations.expand.tooltip=Rozbaľ anotáciu
+annotations.oneWindowWarning=Anotácie pre snímky môžu byť naraz otvorené iba v jednom okne. Táto snímka bude otvorená bez anotácií.
+
+integration.incompatibleVersion=Verzia doplnku Zotero Word ($INTEGRATION_VERSION) nie je kompatibilná s aktuálne nainštalovanou rozšírenia Zotero pre Firefox (%1$S). Prosím uistite sa, že používate najnovšie verzie oboch komponentov.
+integration.fields.label=polí
+integration.referenceMarks.label=Odkazy na referencie
+integration.fields.caption=Pri poliach v MS Worde je menšia pravdepodobnosť, že budú náhodne modifikované, ale nie je ich možné zdieľať s OpenOffice.org.
+integration.referenceMarks.caption=Pri odkazoch na referencie v OpenOffice.org je menšia pravdepodobnosť, že budú náhodne modifikované, ale nie je ich možné zdieľať s MS Wordom.
+
+integration.regenerate.title=Chcete znovu vygenerovať citácie?
+integration.regenerate.body=Zmeny, ktoré ste urobili v editore citácií sa stratia.
+integration.regenerate.saveBehavior=Vždy sa drž tohto výberu.
+
+integration.deleteCitedItem.title=Naozaj chcete odstrániť túto referenciu?
+integration.deleteCitedItem.body=Táto referencia je v dokumente už citovaná. Jej vymazaním odstránite všetky príslušné citácie.
+
+styles.installStyle=Nainštalovať štýl "%1$S" z %2$S?
+styles.updateStyle=Aktualizovať existujúci štýl "%1$S" s "%2$S" z %3$S?
+styles.installed=Štýl "%S" bol úspešne nainštalovaný.
+styles.installError=%S sa nejaví ako platný CSL súbor.
diff --git a/chrome/locale/sl-SI/zotero/searchbox.dtd b/chrome/locale/sl-SI/zotero/searchbox.dtd
index 4f55e1277..fe5d5c417 100644
--- a/chrome/locale/sl-SI/zotero/searchbox.dtd
+++ b/chrome/locale/sl-SI/zotero/searchbox.dtd
@@ -1,8 +1,8 @@
 <!ENTITY zotero.search.name "Ime:">
 
-<!ENTITY zotero.search.joinMode.prefix "Ujemanje z">
-<!ENTITY zotero.search.joinMode.any "katerimkoli">
-<!ENTITY zotero.search.joinMode.all "vsemi">
+<!ENTITY zotero.search.joinMode.prefix "Ujemanje">
+<!ENTITY zotero.search.joinMode.any "s katerimkoli">
+<!ENTITY zotero.search.joinMode.all "z vsemi">
 <!ENTITY zotero.search.joinMode.suffix "izmed naslednjih:">
 
 <!ENTITY zotero.search.recursive.label "Išči v podmapah">
diff --git a/chrome/locale/sr-YU/zotero/about.dtd b/chrome/locale/sr-YU/zotero/about.dtd
deleted file mode 100644
index 377d909e9..000000000
--- a/chrome/locale/sr-YU/zotero/about.dtd
+++ /dev/null
@@ -1,10 +0,0 @@
-<!ENTITY zotero.version "верзија">
-<!ENTITY zotero.createdby "Направљена од стране:">
-<!ENTITY zotero.directors "Директори:">
-<!ENTITY zotero.developers "Програмери:">
-<!ENTITY zotero.alumni "Предходни:">
-<!ENTITY zotero.about.localizations "Локализације:">
-<!ENTITY zotero.about.additionalSoftware "Стандарди и софтвер трећег лица:">
-<!ENTITY zotero.executiveProducer "Извршни продуцент:">
-<!ENTITY zotero.thanks "Посебне захвалнице:">
-<!ENTITY zotero.about.close "Затвори">
diff --git a/chrome/locale/sr-YU/zotero/preferences.dtd b/chrome/locale/sr-YU/zotero/preferences.dtd
deleted file mode 100644
index dd422e7ad..000000000
--- a/chrome/locale/sr-YU/zotero/preferences.dtd
+++ /dev/null
@@ -1,92 +0,0 @@
-<!ENTITY zotero.preferences.title "Зотеро поставке">
-
-<!ENTITY zotero.preferences.default "Подразумевано:">
-
-<!ENTITY zotero.preferences.prefpane.general "Опште">
-
-<!ENTITY zotero.preferences.userInterface "Корисничко сучеље">
-<!ENTITY zotero.preferences.position "Прикажи Зотеро">
-<!ENTITY zotero.preferences.position.above "изнад">
-<!ENTITY zotero.preferences.position.below "испод">
-<!ENTITY zotero.preferences.position.browser "садржаја веб претраживача">
-<!ENTITY zotero.preferences.statusBarIcon "Икона статусне линије:">
-<!ENTITY zotero.preferences.statusBarIcon.none "Ништа">
-<!ENTITY zotero.preferences.fontSize "Величина фонта:">
-<!ENTITY zotero.preferences.fontSize.small "Мали">
-<!ENTITY zotero.preferences.fontSize.medium "Средњи">
-<!ENTITY zotero.preferences.fontSize.large "Велики">
-
-<!ENTITY zotero.preferences.miscellaneous "Разне поставке">
-<!ENTITY zotero.preferences.autoUpdate "Самостално провери за ажуриране преводиоце">
-<!ENTITY zotero.preferences.updateNow "Ажурирај сада">
-<!ENTITY zotero.preferences.reportTranslationFailure "Извести о грешкама у „преводиоцу странице“">
-<!ENTITY zotero.preferences.parseRISRefer "Користи Зотеро за преузимање RIS/Refer датотека">
-<!ENTITY zotero.preferences.automaticSnapshots "Самостално узми снимак када се прави ставка са веб странице">
-<!ENTITY zotero.preferences.downloadAssociatedFiles "Самостално приложи повезане PDF и друге датотека када чуваш ставке">
-<!ENTITY zotero.preferences.automaticTags "Самостално стави назнаку на ставке са кључним речима и насловом субјекта">
-
-<!ENTITY zotero.preferences.openurl.caption "OpenURL">
-
-<!ENTITY zotero.preferences.openurl.search "Нађи разрешиваче">
-<!ENTITY zotero.preferences.openurl.custom "Прилагођено...">
-<!ENTITY zotero.preferences.openurl.server "Разрешивач:">
-<!ENTITY zotero.preferences.openurl.version "Верзија:">
-
-<!ENTITY zotero.preferences.prefpane.search "Претражи">
-<!ENTITY zotero.preferences.search.fulltextCache "Текст кеш">
-<!ENTITY zotero.preferences.search.pdfIndexing "PDF индексирање">
-<!ENTITY zotero.preferences.search.indexStats "Статистика индекса">
-
-<!ENTITY zotero.preferences.search.indexStats.indexed "Индексирано:">
-<!ENTITY zotero.preferences.search.indexStats.partial "Делимично:">
-<!ENTITY zotero.preferences.search.indexStats.unindexed "Није индексирано:">
-<!ENTITY zotero.preferences.search.indexStats.words "Речи:">
-
-<!ENTITY zotero.preferences.fulltext.textMaxLength "Број знакова индексираних по датотеци:">
-<!ENTITY zotero.preferences.fulltext.pdfMaxPages "Број страница индексираних по датотеци:">
-
-<!ENTITY zotero.preferences.prefpane.export "Извоз">
-
-<!ENTITY zotero.preferences.citationOptions.caption "Опције за цитате">
-<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Укључи УРЛе чланака у референцама">
-<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Када је ова опција искључена, Zoterо ће ставити УРЛе при цитирању чланака из журнала, магазина и новина само ако чланак нема наведен опсег страница.">
-
-<!ENTITY zotero.preferences.quickCopy.caption "Брзо умножавање">
-<!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Подразумевани излазни формат:">
-<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML">
-<!ENTITY zotero.preferences.quickCopy.macWarning "Белешка: Rich-text формат ће бити изгубљен на Mac OS X.">
-<!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Поставке нарочите за веб место:">
-<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Домен/путања">
-<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(нпр. sr.wikipedia.org)">
-<!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Излазни формат">
-
-<!ENTITY zotero.preferences.export.getAdditionalStyles "Добави додатне стилове...">
-
-<!ENTITY zotero.preferences.prefpane.keys "Пречице на тастатури">
-
-<!ENTITY zotero.preferences.keys.openZotero "Отвори/затвори Зотеро површ">
-<!ENTITY zotero.preferences.keys.toggleFullscreen "Укључи/искључи приказ преко целог екрана">
-<!ENTITY zotero.preferences.keys.library "Библиотека">
-<!ENTITY zotero.preferences.keys.quicksearch "Брза претрага">
-<!ENTITY zotero.preferences.keys.newItem "Направи нову ставку">
-<!ENTITY zotero.preferences.keys.newNote "Направи нову белешку">
-<!ENTITY zotero.preferences.keys.toggleTagSelector "Искључи/укључи избирача ознаке">
-<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Умножи изабрани предмет цитата у списак исечака">
-<!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Умножи изабране ставке у списак исечака">
-<!ENTITY zotero.preferences.keys.overrideGlobal "Покушај да премостиш сукобљене пречице">
-<!ENTITY zotero.preferences.keys.changesTakeEffect "Промене су постављене само у новом прозору">
-
-
-<!ENTITY zotero.preferences.prefpane.advanced "Напредно">
-
-<!ENTITY zotero.preferences.dataDir "Место за складиштење">
-<!ENTITY zotero.preferences.dataDir.useProfile "Користи Firefox директоријум за профил">
-<!ENTITY zotero.preferences.dataDir.custom "Прилагођено:">
-<!ENTITY zotero.preferences.dataDir.choose "Изабери...">
-<!ENTITY zotero.preferences.dataDir.reveal "Прикажи директоријум података">
-
-<!ENTITY zotero.preferences.dbMaintenance "Одржавање базе података">
-<!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Провери целовитост базе података">
-<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Постави на почетне вредности преводиоце и стилове...">
-<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Постави на почетне вредности преводиоце...">
-<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Постави на почетне вредности стилове...">
diff --git a/chrome/locale/sr-YU/zotero/searchbox.dtd b/chrome/locale/sr-YU/zotero/searchbox.dtd
deleted file mode 100644
index 983698b8c..000000000
--- a/chrome/locale/sr-YU/zotero/searchbox.dtd
+++ /dev/null
@@ -1,23 +0,0 @@
-<!ENTITY zotero.search.name "Име:">
-
-<!ENTITY zotero.search.joinMode.prefix "Преклапај">
-<!ENTITY zotero.search.joinMode.any "било шта">
-<!ENTITY zotero.search.joinMode.all "све">
-<!ENTITY zotero.search.joinMode.suffix "од следећег:">
-
-<!ENTITY zotero.search.recursive.label "Претражи подфасцикле">
-<!ENTITY zotero.search.noChildren "Прикажи само ставке на највишем нивоу">
-<!ENTITY zotero.search.includeParentsAndChildren "Укључи родитеља и дете ставке која се преклапа са нађеним ставкама">
-
-<!ENTITY zotero.search.textModes.phrase "Израз">
-<!ENTITY zotero.search.textModes.phraseBinary "Израз (укључујући бинарне датотеке)">
-<!ENTITY zotero.search.textModes.regexp "Регуларни израз">
-<!ENTITY zotero.search.textModes.regexpCS "Регуларни израз (препознаје велика/мала слова)">
-
-<!ENTITY zotero.search.date.units.days "дани">
-<!ENTITY zotero.search.date.units.months "месеци">
-<!ENTITY zotero.search.date.units.years "године">
-
-<!ENTITY zotero.search.search "Претражи">
-<!ENTITY zotero.search.clear "Очисти">
-<!ENTITY zotero.search.saveSearch "Сачувај претрагу">
diff --git a/chrome/locale/sr-YU/zotero/timeline.properties b/chrome/locale/sr-YU/zotero/timeline.properties
deleted file mode 100644
index 26d34cd0b..000000000
--- a/chrome/locale/sr-YU/zotero/timeline.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-general.title=Временски ток Зотера
-general.filter=Филтер:
-general.highlight=Назначи:
-general.clearAll=Очисти све
-general.jumpToYear=Иди на годину:
-general.firstBand=Први опсег:
-general.secondBand=Други опсег:
-general.thirdBand=Трећи опсег:
-general.dateType=Врста времена:
-general.timelineHeight=Висина временског тока:
-general.fitToScreen=Прекриј екран
-
-interval.day=Дан
-interval.month=Месец
-interval.year=Година
-interval.decade=Декада
-interval.century=Век
-interval.millennium=Миленијум
-
-dateType.published=Датум објављивања
-dateType.modified=Датум измене
diff --git a/chrome/locale/sr-YU/zotero/zotero.dtd b/chrome/locale/sr-YU/zotero/zotero.dtd
deleted file mode 100644
index 23119cf80..000000000
--- a/chrome/locale/sr-YU/zotero/zotero.dtd
+++ /dev/null
@@ -1,153 +0,0 @@
-<!ENTITY zotero.general.optional "(Изборно)">
-<!ENTITY zotero.general.note "Белешка:">
-
-<!ENTITY zotero.errorReport.unrelatedMessages "Днвеник грешака може да садржи поруке невезане за Зотеро.">
-<!ENTITY zotero.errorReport.additionalInfo "Додатни подаци">
-<!ENTITY zotero.errorReport.emailAddress "Ваша ел. адреса:">
-<!ENTITY zotero.errorReport.errorSteps "Шта сте радили када је дошло до грешке? Ако је могуће, укључите кораке како доћи до грешке.">
-<!ENTITY zotero.errorReport.submissionInProgress "Сачекајте док се извештај о грешци шаље.">
-<!ENTITY zotero.errorReport.submitted "Извештај о грешци је послат.">
-<!ENTITY zotero.errorReport.reportID "Бр. извештаја:">
-<!ENTITY zotero.errorReport.furtherAssistance "Погледајте страницу Познати проблеми и форуме за даљу помоћ.">
-<!ENTITY zotero.errorReport.includeReportID "Укључите број извештаја са током било које преписке са програмерима Зотера у вези ове грешке.">
-
-<!ENTITY zotero.upgrade.newVersionInstalled "Инсталирали сте нову верзију Зотера.">
-<!ENTITY zotero.upgrade.upgradeRequired "Ваша Зотеро база података мора бити надограђена да би радила са новом верзијом.">
-<!ENTITY zotero.upgrade.autoBackup "Резерва за Вашу постојећу базу података ће бити аутоматски направљена пре било које измене.">
-<!ENTITY zotero.upgrade.upgradeInProgress "Сачекајте док се процес надоградње извршава. Ово може потрајати неколико минута.">
-<!ENTITY zotero.upgrade.upgradeSucceeded "Зотеро база података је успешно надограђена.">
-<!ENTITY zotero.upgrade.changeLogBeforeLink "Погледајте">
-<!ENTITY zotero.upgrade.changeLogLink "дневник промена">
-<!ENTITY zotero.upgrade.changeLogAfterLink "да би видели шта је ново.">
-
-<!ENTITY zotero.contextMenu.addTextToCurrentNote "Додај назначено у Зотеро белешке">
-<!ENTITY zotero.contextMenu.addTextToNewNote "Направи Зотеро ставку и белешку из назначеног">
-<!ENTITY zotero.contextMenu.saveLinkAsSnapshot "Сачувај везу као Зотеро снимак">
-<!ENTITY zotero.contextMenu.saveImageAsSnapshot "Сачувај слику као Зотеро снимак">
-
-<!ENTITY zotero.tabs.info.label "Инфо">
-<!ENTITY zotero.tabs.notes.label "Белешке">
-<!ENTITY zotero.tabs.attachments.label "Прилози">
-<!ENTITY zotero.tabs.tags.label "Ознаке">
-<!ENTITY zotero.tabs.related.label "Сродно">
-<!ENTITY zotero.notes.separate "Уреди у одвојеном прозору">
-
-<!ENTITY zotero.items.type_column "Врста">
-<!ENTITY zotero.items.title_column "Наслов">
-<!ENTITY zotero.items.creator_column "Аутор">
-<!ENTITY zotero.items.date_column "Датум">
-<!ENTITY zotero.items.year_column "Година">
-<!ENTITY zotero.items.publisher_column "Издавач">
-<!ENTITY zotero.items.language_column "Језик">
-<!ENTITY zotero.items.callNumber_column "Сигнатура">
-<!ENTITY zotero.items.repository_column "Ризница">
-<!ENTITY zotero.items.rights_column "Права">
-<!ENTITY zotero.items.dateAdded_column "Датум додавања">
-<!ENTITY zotero.items.dateModified_column "Датум промене">
-<!ENTITY zotero.items.numChildren_column "+">
-
-<!ENTITY zotero.items.menu.showInLibrary "Прикажи у библиотеци">
-<!ENTITY zotero.items.menu.attach.note "Додај белешку">
-<!ENTITY zotero.items.menu.attach.snapshot "Додај снимак текуће странице">
-<!ENTITY zotero.items.menu.attach.link "Додај везу до текуће странице">
-<!ENTITY zotero.items.menu.duplicateItem "Умножите изабрану ставку">
-
-<!ENTITY zotero.collections.name_column "Збирке">
-
-<!ENTITY zotero.toolbar.newItem.label "Нова ставка">
-<!ENTITY zotero.toolbar.moreItemTypes.label "Више">
-<!ENTITY zotero.toolbar.newItemFromPage.label "Направи нову ставку од текуће странице">
-<!ENTITY zotero.toolbar.removeItem.label "Избаци ставку...">
-<!ENTITY zotero.toolbar.newCollection.label "Нова збирка...">
-<!ENTITY zotero.toolbar.newSubcollection.label "Нова подзбирка...">
-<!ENTITY zotero.toolbar.newSavedSearch.label "Нова сачувана претрага...">
-<!ENTITY zotero.toolbar.tagSelector.label "Покажи/сакриј изборника ознаке">
-<!ENTITY zotero.toolbar.actions.label "Радње">
-<!ENTITY zotero.toolbar.import.label "Увези...">
-<!ENTITY zotero.toolbar.export.label "Извези библиотеку...">
-<!ENTITY zotero.toolbar.timeline.label "Направите временски ток">
-<!ENTITY zotero.toolbar.preferences.label "Поставке...">
-<!ENTITY zotero.toolbar.documentation.label "Документација">
-<!ENTITY zotero.toolbar.about.label "О програму Зотеро">
-<!ENTITY zotero.toolbar.advancedSearch "Напредна претрага">
-<!ENTITY zotero.toolbar.search.label "Претражи:">
-<!ENTITY zotero.toolbar.fullscreen.tooltip "Укључи/искључи приказ преко читавог екрана">
-<!ENTITY zotero.toolbar.openURL.label "Пронађи">
-<!ENTITY zotero.toolbar.openURL.tooltip "Нађи кроз Вашу локалну библиотеку">
-
-<!ENTITY zotero.item.add "Додај">
-<!ENTITY zotero.item.attachment.file.show "Прикажи датотеку">
-<!ENTITY zotero.item.textTransform "Преиначи текст">
-<!ENTITY zotero.item.textTransform.lowercase "мала слова">
-<!ENTITY zotero.item.textTransform.titlecase "Величина слова у наслову">
-
-<!ENTITY zotero.toolbar.note.standalone "Нова самостојећа белешка">
-<!ENTITY zotero.toolbar.attachment.linked "Повежи са датотеком...">
-<!ENTITY zotero.toolbar.attachment.add "Сачувај умножак датотеке...">
-<!ENTITY zotero.toolbar.attachment.weblink "Сачувај везу на тренутну страницу">
-<!ENTITY zotero.toolbar.attachment.snapshot "Узми снимак тренутне странице">
-
-<!ENTITY zotero.tagSelector.noTagsToDisplay "Нема ознаке за приказ">
-<!ENTITY zotero.tagSelector.filter "Филтер:">
-<!ENTITY zotero.tagSelector.showAutomatic "Самостално покажи">
-<!ENTITY zotero.tagSelector.displayAll "Прикажи све ознаке">
-<!ENTITY zotero.tagSelector.selectVisible "Изабери видљиве">
-<!ENTITY zotero.tagSelector.clearVisible "Избаци из избора видљиве">
-<!ENTITY zotero.tagSelector.clearAll "Избаци из избора све">
-<!ENTITY zotero.tagSelector.renameTag "Преименуј ознаку...">
-<!ENTITY zotero.tagSelector.deleteTag "Избриши ознаку...">
-
-<!ENTITY zotero.selectitems.title "Изабери ставке">
-<!ENTITY zotero.selectitems.intro.label "Изабери које ставке бисте желели додати у вашу библиотеку">
-<!ENTITY zotero.selectitems.cancel.label "Откажи">
-<!ENTITY zotero.selectitems.select.label "У реду">
-
-<!ENTITY zotero.bibliography.title "Направи библиографију">
-<!ENTITY zotero.bibliography.style.label "Стил цитата:">
-<!ENTITY zotero.bibliography.output.label "Излазни формат">
-<!ENTITY zotero.bibliography.saveAsRTF.label "Сними као RTF">
-<!ENTITY zotero.bibliography.saveAsHTML.label "Сними као HTML">
-<!ENTITY zotero.bibliography.copyToClipboard.label "Умножи">
-<!ENTITY zotero.bibliography.macClipboardWarning "(rich-text формат ће бити изгубљен.)">
-<!ENTITY zotero.bibliography.print.label "Штампај">
-
-<!ENTITY zotero.integration.docPrefs.title "Поставке документа">
-<!ENTITY zotero.integration.addEditCitation.title "Додај/уреди цитације">
-<!ENTITY zotero.integration.editBibliography.title "Уреди библиографију">
-
-<!ENTITY zotero.progress.title "Напредак">
-
-<!ENTITY zotero.exportOptions.title "Извоз...">
-<!ENTITY zotero.exportOptions.format.label "Формат:">
-<!ENTITY zotero.exportOptions.translatorOptions.label "Опције преводиоца">
-
-<!ENTITY zotero.citation.keepSorted.label "Држи изворе поредане">
-
-<!ENTITY zotero.citation.page "Страна">
-<!ENTITY zotero.citation.paragraph "Параграф">
-<!ENTITY zotero.citation.line "Ред">
-<!ENTITY zotero.citation.suppressAuthor.label "Потисни аутора">
-<!ENTITY zotero.citation.prefix.label "Префикс:">
-<!ENTITY zotero.citation.suffix.label "Суфикс:">
-
-<!ENTITY zotero.richText.italic.label "Курзив">
-<!ENTITY zotero.richText.bold.label "Подебљана">
-<!ENTITY zotero.richText.underline.label "Подвучена">
-<!ENTITY zotero.richText.superscript.label "Суперскрипт">
-<!ENTITY zotero.richText.subscript.label "Супскрипт">
-
-<!ENTITY zotero.annotate.toolbar.add.label "Додај напомену">
-<!ENTITY zotero.annotate.toolbar.collapse.label "Скупи све напомене">
-<!ENTITY zotero.annotate.toolbar.expand.label "Рашири све напомене">
-<!ENTITY zotero.annotate.toolbar.highlight.label "Назначи текст">
-<!ENTITY zotero.annotate.toolbar.unhighlight.label "Склони назнаку текста">
-
-<!ENTITY zotero.integration.prefs.displayAs.label "Прикажи цитате као:">
-<!ENTITY zotero.integration.prefs.footnotes.label "Фуснота">
-<!ENTITY zotero.integration.prefs.endnotes.label "Енднота">
-
-<!ENTITY zotero.integration.prefs.formatUsing.label "Форматирај користећи:">
-<!ENTITY zotero.integration.prefs.bookmarks.label "Пречице">
-<!ENTITY zotero.integration.prefs.bookmarks.caption "Пречице су сачуване кроз Microsoft Word и OpenOffice.org, али могу бити нехотично промењене.">
-
-<!ENTITY zotero.integration.references.label "Референце у библиографији">
diff --git a/chrome/locale/sr-YU/zotero/zotero.properties b/chrome/locale/sr-YU/zotero/zotero.properties
deleted file mode 100644
index dcf975e07..000000000
--- a/chrome/locale/sr-YU/zotero/zotero.properties
+++ /dev/null
@@ -1,495 +0,0 @@
-extensions.zotero@chnm.gmu.edu.description=Алатка за испомоћ у истраживачком раду следеће генерације
-
-general.error=Грешка
-general.warning=Упозорење
-general.dontShowWarningAgain=Не показуј ово упозорење поново.
-general.browserIsOffline=%S је тренутно у режиму без повезаности са мрежом.
-general.locate=Нађи...
-general.restartRequired=Поновно покретање је потребно
-general.restartRequiredForChange=Firefox се море поново покренути да би промена дошла у дејство.
-general.restartRequiredForChanges=Фајерфокс се море поново покренути да би промене дошле у дејство.
-general.restartNow=Поново покрени сада
-general.restartLater=Поново покрени касније
-general.errorHasOccurred=Дошло је до грешке.
-general.restartFirefox=Поново покрените Firefox
-general.restartFirefoxAndTryAgain=Поново покрените Firefox и покушајте поново.
-general.checkForUpdate=Проверите за ажурирања
-general.install=Инсталирај
-general.updateAvailable=Ажурирања доступна
-general.upgrade=Надогради
-general.yes=Да
-general.no=Не
-general.passed=Успешно
-general.failed=Неуспешно
-general.and=и
-
-install.quickStartGuide=Водич за брзи почетак
-install.quickStartGuide.message.welcome=Добродошли у Зотеро!
-install.quickStartGuide.message.clickViewPage=Кликните на дугме "Преглед странице" како би посетили наш Водич за брзи почетак и научили како започети скупљање, уређивање и цитирање вашег истрживачког рада.
-install.quickStartGuide.message.thanks=Хвала за инсталарацију Зотера.
-
-upgrade.failed=Надоградња Зотеро базе података је неуспешна:
-upgrade.advanceMessage=Притисните %S да надоградите сада.
-
-errorReport.reportErrors=Направи извештај о грешкама...
-errorReport.reportInstructions=Можете известити ову грешку избором „%S“ из менија за Радње (зупчаник).
-errorReport.followingErrors=Дошло је до следећих грешака
-errorReport.advanceMessage=Притисните %S да пошаљете извештај о грешци програмерима Зотера
-errorReport.stepsToReproduce=Кораци за репродукцију:
-errorReport.expectedResult=Очекивани резултати:
-errorReport.actualResult=Стварни резултат:
-
-dataDir.notFound=Зотеро подаци се нису могли наћи.
-dataDir.previousDir=Предходни директоријум:
-dataDir.useProfileDir=Користи директоријум за Фајерфокс профил
-dataDir.selectDir=Изабери директоријум за Зотеро податке
-dataDir.selectedDirNonEmpty.title=Директоријум није празан
-dataDir.selectedDirNonEmpty.text=Директоријум који сте изабрали није празан и не изгледа као Зотеро директоријум за податке.\n\n Да се направе Зотеро датотеке у овом директоријуму свакако?
-
-startupError=Дошло је до грешке приликом покретања Зотера.
-
-pane.collections.delete=Да ли сте сигурни да желите избрисати изабране збирке?
-pane.collections.deleteSearch=Да ли сте сигурни да желите избрисати изабране претраге?
-pane.collections.newCollection=Нова збирка
-pane.collections.name=Име збирке:
-pane.collections.newSavedSeach=Нова сачувана претрага
-pane.collections.savedSearchName=Упишите назив за ову сачувану претрагу:
-pane.collections.rename=Преименуј збирку:
-pane.collections.library=Моја библиотека
-pane.collections.untitled=Безимено
-
-pane.collections.menu.rename.collection=Преименуј збирку...
-pane.collections.menu.edit.savedSearch=Уреди сачувану претрагу
-pane.collections.menu.remove.collection=Избаци збирку...
-pane.collections.menu.remove.savedSearch=Избаци сачуване претраге...
-pane.collections.menu.export.collection=Изведи збирку...
-pane.collections.menu.export.savedSearch=Изведи сачувану претрагу...
-pane.collections.menu.createBib.collection=Направи библиографију од збирке...
-pane.collections.menu.createBib.savedSearch=Направи библиографију од сачуване претраге..
-
-pane.collections.menu.generateReport.collection=Направи извештај од збирке...
-pane.collections.menu.generateReport.savedSearch=Направи извештај од сачуване претраге...
-
-pane.tagSelector.rename.title=Преименуј ознаку.
-pane.tagSelector.rename.message=Унеси ново име за ову ознаку.\n\nОзнака ће бити промењена у свим повезаним ставкама.
-pane.tagSelector.delete.title=Избриши ознаку
-pane.tagSelector.delete.message=Да ли сте сигурни да желите избрисати ову ознаку?\n\nОзнака ће бити избачена из свих ставки.
-pane.tagSelector.numSelected.none=0 ознака изабрано
-pane.tagSelector.numSelected.singular=%S ознака изабрана
-pane.tagSelector.numSelected.plural=%S ознаке(а) изабране
-
-pane.items.loading=Учитавам списак ставки...
-pane.items.delete=Да ли сте сигурни да желите избрисати изабрану ставку?
-pane.items.delete.multiple=Да ли сте сигурни да желите избрисати изабране ставке?
-pane.items.delete.title=Избриши
-pane.items.delete.attached=Избриши приложене белешке и датотеке
-pane.items.menu.remove=Избаци изабрану ставку
-pane.items.menu.remove.multiple=Избаци изабране ставке
-pane.items.menu.erase=Избриши изабрану ставку из библиотеке...
-pane.items.menu.erase.multiple=Избриши изабране ставке из библиотеке...
-pane.items.menu.export=Извези изабрану ставку...
-pane.items.menu.export.multiple=Извези изабране ставке...
-pane.items.menu.createBib=Направи библиографију од изабране ставке...
-pane.items.menu.createBib.multiple=Направи библиографију од изабраних ставки...
-pane.items.menu.generateReport=Направи извештај од изабране ставке
-pane.items.menu.generateReport.multiple=Направи извештај од изабраних ставки
-pane.items.menu.reindexItem=Поново индексирај ставке
-pane.items.menu.reindexItem.multiple=Поново индексирај ставке
-
-pane.items.letter.oneParticipant=Писмо за %S
-pane.items.letter.twoParticipants=Писмо за %S и %S
-pane.items.letter.threeParticipants=Писмо за %S, %S и %S
-pane.items.letter.manyParticipants=Писмо за %S и остале
-pane.items.interview.oneParticipant=Интервју %S
-pane.items.interview.twoParticipants=Интервју %S и %S
-pane.items.interview.threeParticipants=Интервју %S, %S и %S
-pane.items.interview.manyParticipants=Интервју %S и осталих
-
-pane.item.selected.zero=Ни једна ставка није изабрана
-pane.item.selected.multiple=%S изабраних ставки
-
-pane.item.goToURL.online.label=Отвори
-pane.item.goToURL.online.tooltip=Отвори ову ставку преко мреже
-pane.item.goToURL.snapshot.label=Отвори снимак
-pane.item.goToURL.snapshot.tooltip=Прегледај снимак ове ставке
-pane.item.changeType.title=Промени врсту ставке
-pane.item.changeType.text=Да ли сте сигурни да желите променити врсту ставке?/n/nСледећа поља ће бити изгубљена:
-pane.item.defaultFirstName=први
-pane.item.defaultLastName=задњи
-pane.item.defaultFullName=пуно име
-pane.item.switchFieldMode.one=Промени на једно поље
-pane.item.switchFieldMode.two=Промени на два поља
-pane.item.notes.untitled=Безимена белешка
-pane.item.notes.delete.confirm=Да ли сте сигурни да желите избрисати ову белешку?
-pane.item.notes.count.zero=%S белешки:
-pane.item.notes.count.singular=%S белешка:
-pane.item.notes.count.plural=%S белешке(и):
-pane.item.attachments.rename.title=Нови наслов:
-pane.item.attachments.rename.renameAssociatedFile=Преименујте повезану датотеку
-pane.item.attachments.rename.error=Грешка током промене имена датотеке.
-pane.item.attachments.view.link=Отвори страницу
-pane.item.attachments.view.snapshot=Отвори снимак
-pane.item.attachments.view.file=Отвори датотеку
-pane.item.attachments.fileNotFound.title=Датотека није нађена
-pane.item.attachments.fileNotFound.text=Приложена датотека није нађена.\n\nМогуће је да је померена или избрисана изван Зотера.
-pane.item.attachments.delete.confirm=Да ли сте сигурни да желите избрисати овај прилог?
-pane.item.attachments.count.zero=%S прилога:
-pane.item.attachments.count.singular=%S прилог:
-pane.item.attachments.count.plural=%S прилога:
-pane.item.attachments.select=Изабери датотеку
-pane.item.noteEditor.clickHere=Кликни овде
-pane.item.tags=Ознаке:
-pane.item.tags.count.zero=%S ознака:
-pane.item.tags.count.singular=%S ознака:
-pane.item.tags.count.plural=%S ознаке(а):
-pane.item.tags.icon.user=Ознаке додане од стране корисника
-pane.item.tags.icon.automatic=Самостално додане ознаке
-pane.item.related=Сродно:
-pane.item.related.count.zero=%S сродних
-pane.item.related.count.singular=%S сродна:
-pane.item.related.count.plural=%S сродне(их):
-
-noteEditor.editNote=Уреди белешку
-
-itemTypes.note=Белешка
-itemTypes.attachment=Прилог
-itemTypes.book=Књига
-itemTypes.bookSection=Поглавље у књизи
-itemTypes.journalArticle=Чланак из журнала
-itemTypes.magazineArticle=Чланак из часописа
-itemTypes.newspaperArticle=Чланак из новина
-itemTypes.thesis=Теза
-itemTypes.letter=Писмо
-itemTypes.manuscript=Рукопис
-itemTypes.interview=Интервју
-itemTypes.film=Филм
-itemTypes.artwork=Уметничко дело
-itemTypes.webpage=Веб страница
-itemTypes.report=Извештај
-itemTypes.bill=Закон
-itemTypes.case=Случај
-itemTypes.hearing=Саслушање
-itemTypes.patent=Патент
-itemTypes.statute=Уредба
-itemTypes.email=Ел. пошта
-itemTypes.map=Мапа
-itemTypes.blogPost=Блог порука
-itemTypes.instantMessage=Брза порука
-itemTypes.forumPost=Порука на форуму
-itemTypes.audioRecording=Звучни снимак
-itemTypes.presentation=Презентација
-itemTypes.videoRecording=Видео снимак
-itemTypes.tvBroadcast=ТВ пренос
-itemTypes.radioBroadcast=Радио пренос
-itemTypes.podcast=Подкаст
-itemTypes.computerProgram=Рачунарски програм
-itemTypes.conferencePaper=Папир са конференције
-itemTypes.document=Документ
-itemTypes.encyclopediaArticle=Чланак из енциклопедије
-itemTypes.dictionaryEntry=Унос из речника
-
-itemFields.itemType=Врста
-itemFields.title=Наслов
-itemFields.dateAdded=Датум додавања
-itemFields.dateModified=Промењено
-itemFields.source=Извор
-itemFields.notes=Белешке
-itemFields.tags=Ознаке
-itemFields.attachments=Прилози
-itemFields.related=Сродно
-itemFields.url=УРЛ
-itemFields.rights=Права
-itemFields.series=Серије
-itemFields.volume=Том
-itemFields.issue=Издање
-itemFields.edition=Редакција
-itemFields.place=Место
-itemFields.publisher=Издавач
-itemFields.pages=Странице
-itemFields.ISBN=ISBN
-itemFields.publicationTitle=Издање
-itemFields.ISSN=ISSN
-itemFields.date=Датум
-itemFields.section=Секција
-itemFields.callNumber=Заводни број
-itemFields.archiveLocation=Место у архиви
-itemFields.distributor=Опскрбљивач
-itemFields.extra=Додатни подаци
-itemFields.journalAbbreviation=Скраћеница за часопис
-itemFields.DOI=DOI
-itemFields.accessDate=Приступљено
-itemFields.seriesTitle=Наслов серије
-itemFields.seriesText=Текст серије
-itemFields.seriesNumber=Број серије
-itemFields.institution=Институција
-itemFields.reportType=Врста извештаја
-itemFields.code=Код
-itemFields.session=Сесија
-itemFields.legislativeBody=Законодавно тело
-itemFields.history=Историја
-itemFields.reporter=Известитељ
-itemFields.court=Суд
-itemFields.numberOfVolumes=Број томова
-itemFields.committee=Комисија
-itemFields.assignee=Пуномоћник
-itemFields.patentNumber=Број патента
-itemFields.priorityNumbers=Бројеви приоритета
-itemFields.issueDate=Датум издања
-itemFields.references=Референце
-itemFields.legalStatus=Правни положај
-itemFields.codeNumber=Број кода
-itemFields.artworkMedium=Медијум уметничког дела
-itemFields.number=Број
-itemFields.artworkSize=Величина уметничког дела
-itemFields.repository=Ризница
-itemFields.videoRecordingType=Врста снимка
-itemFields.interviewMedium=Медијум
-itemFields.letterType=Врста
-itemFields.manuscriptType=Врста
-itemFields.mapType=Врста
-itemFields.scale=Опсег
-itemFields.thesisType=Врста
-itemFields.websiteType=Врста веб места
-itemFields.audioRecordingType=Врста снимка
-itemFields.label=Ознака
-itemFields.presentationType=Врста
-itemFields.meetingName=Име састанка
-itemFields.studio=Студио
-itemFields.runningTime=Дужина трајања
-itemFields.network=Мрежа
-itemFields.postType=Врста поруке
-itemFields.audioFileType=Врста датотеке
-itemFields.version=Верзија
-itemFields.system=Систем
-itemFields.company=Предузеће
-itemFields.conferenceName=Име конференције
-itemFields.encyclopediaTitle=Наслов енциклопедије
-itemFields.dictionaryTitle=Наслов речника
-itemFields.language=Језик
-itemFields.programmingLanguage=Језик
-itemFields.university=Универзитет
-itemFields.abstractNote=Сиже
-itemFields.websiteTitle=Наслов веб странице
-itemFields.reportNumber=Број извештаја
-itemFields.billNumber=Број закона
-itemFields.codeVolume=Код тома
-itemFields.codePages=Код страница
-itemFields.dateDecided=Датум одлуке
-itemFields.reporterVolume=Том известиоца
-itemFields.firstPage=Прва страница
-itemFields.documentNumber=Број документа
-itemFields.dateEnacted=Датум озакоњена
-itemFields.publicLawNumber=Јавни број закона
-itemFields.country=Земља
-itemFields.applicationNumber=Број програма
-itemFields.forumTitle=Наслов форума или listserv
-itemFields.episodeNumber=Број епизоде
-itemFields.blogTitle=Наслов блога
-itemFields.caseName=Број случаја
-itemFields.nameOfAct=Име указа
-itemFields.subject=Субјекат
-itemFields.proceedingsTitle=Наслов списа
-itemFields.bookTitle=Наслов књиге
-itemFields.shortTitle=Кратак наслов
-
-creatorTypes.author=Аутор
-creatorTypes.contributor=Сарадник
-creatorTypes.editor=Уредник
-creatorTypes.translator=Преводиоц
-creatorTypes.seriesEditor=Уредник серије
-creatorTypes.interviewee=Разговор са
-creatorTypes.interviewer=Водич
-creatorTypes.director=Директор
-creatorTypes.scriptwriter=Сценариста
-creatorTypes.producer=Продуцент
-creatorTypes.castMember=Члан посаде
-creatorTypes.sponsor=Спонзор
-creatorTypes.counsel=Савет
-creatorTypes.inventor=Проналазач
-creatorTypes.attorneyAgent=Адвокат/Представник
-creatorTypes.recipient=Прималац
-creatorTypes.performer=Извођач
-creatorTypes.composer=Композитор
-creatorTypes.wordsBy=Речи написао
-creatorTypes.cartographer=Картографер
-creatorTypes.programmer=Програмер
-creatorTypes.reviewedAuthor=Оверени аутор
-creatorTypes.artist=Уметник
-creatorTypes.commenter=Коментатор
-creatorTypes.presenter=Представник
-creatorTypes.guest=Гост
-creatorTypes.podcaster=Подкастер
-
-fileTypes.webpage=Веб страница
-fileTypes.image=Слика
-fileTypes.pdf=PDF
-fileTypes.audio=Звук
-fileTypes.video=Видео
-fileTypes.presentation=Презентација
-fileTypes.document=Документ
-
-save.attachment=Чувам снимак...
-save.link=Чувам везу...
-
-ingester.saveToZotero=Сачувај у Зотеру
-ingester.scraping=Чувам ставку...
-ingester.scrapeComplete=Ставка сачувана.
-ingester.scrapeError=Нисам могао сачувати ставку.
-ingester.scrapeErrorDescription=Грешка је начињена током чувања ове ставке. Погледајте %S за више података.
-ingester.scrapeErrorDescription.linkText=Познати проблеми преводиоца
-ingester.scrapeError.transactionInProgress.previousError=Процес чувања није успео због предходне грешке у Зотеру.
-
-db.dbCorrupted=Зотеро база података „%S“ изгледа оштећена.
-db.dbCorrupted.restart=Поново покрените Firefox да би покушали самостални повраћај података из најновије резерве.
-db.dbCorruptedNoBackup=Зотеро база података „%S“ изгледа оштећена, а нема ни једне самонаправљене резервне копије. \n\nНова датотека датабазе је направљена. Оштећена датотека је сачувана у вашем Зотеро директоријуму.
-db.dbRestored=Зотеро база података „%1$S“ изгледа оштећена.\n\nВаши подаци су обновљени из задње самонаправљене резервне копије %2$S у %3$S. Оштећена датотека је сачувана у вашем Зотеро директоријуму.
-db.dbRestoreFailed=Зотеро база података „%S“ изгледа оштећена, а покушај да се поврате подаци из задње самостално направљене резерве је неуспешан.\n\nНова датотека за базу података је направљена. Оштећена датотека је сачувана у Зотеро директоријуму.
-
-db.integrityCheck.passed=База података нема грешака.
-db.integrityCheck.failed=Постоје грешке у Зотеро бази података!
-
-zotero.preferences.update.updated=Ажурирано
-zotero.preferences.update.upToDate=Усклађено
-zotero.preferences.update.error=Грешка
-zotero.preferences.openurl.resolversFound.zero=%S система за решавање нађено
-zotero.preferences.openurl.resolversFound.singular=%S систем за решавање нађен
-zotero.preferences.openurl.resolversFound.plural=%S система за решавања нађено
-zotero.preferences.search.rebuildIndex=Поново изгради индекс
-zotero.preferences.search.rebuildWarning=Да ли желите изградити читав индекс? Ово може узети доста времена.\n\nДа би индексирали само ставке које нису биле индексиране користите %S.
-zotero.preferences.search.clearIndex=Очисти индекс
-zotero.preferences.search.clearWarning=После чишћења индекса, садржај прилога се неће више моћи претраживати.\n\nПрилози у облику веб везе не могу бити поновно индексирани без посећивања странице. Да би оставили веб везе индексиране, изаберите %S.
-zotero.preferences.search.clearNonLinkedURLs=Избриши све осим веб веза
-zotero.preferences.search.indexUnindexed=Индексирај не индексиране ставке
-zotero.preferences.search.pdf.toolRegistered=%S је инсталиран
-zotero.preferences.search.pdf.toolNotRegistered=%S није инсталиран
-zotero.preferences.search.pdf.toolsRequired=PDF индексирање захтева %1$S и %2$S алатке из %3$S пројекта.
-zotero.preferences.search.pdf.automaticInstall=Зотеро може самостално преузети и инсталирати ове програме са zotero.org за поједине платформе.
-zotero.preferences.search.pdf.advancedUsers=Напредни корисници можда желе да виде %S за упуства за ручну инсталацију.
-zotero.preferences.search.pdf.documentationLink=документацију
-zotero.preferences.search.pdf.checkForInstaller=Провери за постојање инсталатера
-zotero.preferences.search.pdf.downloading=Преузимам...
-zotero.preferences.search.pdf.toolDownloadsNotAvailable=%S алатке нису тренутно доступне за Вашу платформу преко zotero.org
-zotero.preferences.search.pdf.viewManualInstructions=Прегледајте документацију за упуства за ручну инсталацију
-zotero.preferences.search.pdf.availableDownloads=Доступна преузимања за %1$S из %2$S:
-zotero.preferences.search.pdf.availableUpdates=Доступна ажурирања за %1$S из %2$S:
-zotero.preferences.search.pdf.toolVersionPlatform=%1$S верзија %2$S
-zotero.preferences.search.pdf.zoteroCanInstallVersion=Зотеро га може самостално инсталирати у Зотеро директоријум података.
-zotero.preferences.search.pdf.zoteroCanInstallVersions=Зотеро може самостално инсталирати ове програме у Зотеро директоријум података.
-zotero.preferences.search.pdf.toolsDownloadError=Дошло је до грешке приликом покушаја преузимања %S алатки са zotero.org.
-zotero.preferences.search.pdf.tryAgainOrViewManualInstructions=Покушајте поново касније, или погледајте документацију за упутства за ручну инсталацију.
-zotero.preferences.export.quickCopy.bibStyles=Библиографски стил
-zotero.preferences.export.quickCopy.exportFormats=Извозни формат
-zotero.preferences.export.quickCopy.instructions=Брзо умножавање вам дозвољава да умножите изабране референце у списак исечака (clipboard) притискајући дугме за пречицу (%S) или превлачењем ставки у поље за текст на веб страници.
-
-zotero.preferences.advanced.resetTranslatorsAndStyles=Постави на почетне вредности преводиоце и стилове
-zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Сви нови или измењени преводиоци или стилови ће бити изгубљени.
-zotero.preferences.advanced.resetTranslators=Постави на почетне вредности преводиоце
-zotero.preferences.advanced.resetTranslators.changesLost=Сви нови или измењени преводиоци ће бити изгубљени.
-zotero.preferences.advanced.resetStyles=Постави на почетне вредности стилове
-zotero.preferences.advanced.resetStyles.changesLost=Сви нови или измењени стилови ће бити изгубљени.
-
-dragAndDrop.existingFiles=Следеће датотеке већ постоје у одредишном директоријуму и нису умножене:
-dragAndDrop.filesNotFound=Следеће датотеке нису нађене и због тога нису умножене:
-
-fileInterface.itemsImported=Увожење ставки...
-fileInterface.itemsExported=Извоз ставки...
-fileInterface.import=Увоз
-fileInterface.export=Извоз
-fileInterface.exportedItems=Изведене ставке
-fileInterface.imported=Увезено
-fileInterface.fileFormatUnsupported=Преводилац за дату датотеку се није могао наћи.
-fileInterface.untitledBibliography=Безимена библиографија
-fileInterface.bibliographyHTMLTitle=Библиографија
-fileInterface.importError=Грешка се десила током покушаја увеза изабране датотеке. Молим проверите исправност датотеке и покушајте поново.
-fileInterface.noReferencesError=Ставке које сте изабрали не садрже референце. Молимо изаберите једну или више референци и покушајте поново.
-fileInterface.bibliographyGenerationError=Грешка се десила током прављења библиографије. Покушајте поново.
-fileInterface.exportError=Грешка се десила током покушаја извоза изабране датотеке.
-
-advancedSearchMode=Напредни режим претраге -- притисните Enter за претрагу.
-searchInProgress=Претрага у току -- молим сачекајте.
-
-searchOperator.is=је
-searchOperator.isNot=није
-searchOperator.beginsWith=почиње са
-searchOperator.contains=садржи
-searchOperator.doesNotContain=не садржи
-searchOperator.isLessThan=је мање од
-searchOperator.isGreaterThan=је веће од
-searchOperator.isBefore=је пре
-searchOperator.isAfter=је после
-searchOperator.isInTheLast=је у задњих
-
-searchConditions.tooltip.fields=Поља:
-searchConditions.collectionID=Колекција
-searchConditions.itemTypeID=Врста ставке
-searchConditions.tag=Ознака
-searchConditions.note=Белешка
-searchConditions.childNote=Белешка детета
-searchConditions.creator=Стваралац
-searchConditions.type=Врста
-searchConditions.thesisType=Врста тезе
-searchConditions.reportType=Врста извештаја
-searchConditions.videoRecordingType=Врста видео конференције
-searchConditions.audioFileType=Врста звучне датотеке
-searchConditions.audioRecordingType=Врста звучног снимка
-searchConditions.letterType=Врста писма
-searchConditions.interviewMedium=Медијум разговора
-searchConditions.manuscriptType=Врста рукописа
-searchConditions.presentationType=Врста презентације
-searchConditions.mapType=Врста мапе
-searchConditions.medium=Медијум
-searchConditions.artworkMedium=Медијум уметничког дела
-searchConditions.dateModified=Датум измене
-searchConditions.fulltextContent=Садржај прилога
-searchConditions.programmingLanguage=Програмски језик
-searchConditions.fileTypeID=Врста приложене датотеке
-searchConditions.annotation=Напомена
-
-fulltext.indexState.indexed=Индексирано
-fulltext.indexState.unavailable=Непознато
-fulltext.indexState.partial=Делимично
-
-exportOptions.exportNotes=Извези белешке
-exportOptions.exportFileData=Извези датотеке
-exportOptions.UTF8=Извези ка UTF-8
-
-date.daySuffixes=-ог, -ог, -ег, -ог
-date.abbreviation.year=г
-date.abbreviation.month=м
-date.abbreviation.day=д
-
-citation.multipleSources=Вишеструки извори...
-citation.singleSource=Један извор...
-citation.showEditor=Прикажи уређивач...
-citation.hideEditor=Сакриј уређивач...
-
-report.title.default=Зотеро извештај
-report.parentItem=Родитељски предмет:
-report.notes=Белешке:
-report.tags=Ознаке:
-
-annotations.confirmClose.title=Да ли сте сигурни да желите затворити ову напомену?
-annotations.confirmClose.body=Текст ће бити изгубљен.
-annotations.close.tooltip=Избриши напомену
-annotations.move.tooltip=Премести напомену
-annotations.collapse.tooltip=Скупи напомену
-annotations.expand.tooltip=Рашири напомену
-annotations.oneWindowWarning=Напомене за снимак могу једино бити отворене у једном прозору веб читача истовремено. Овај снимак ће бити отворен без напомена.
-
-integration.incompatibleVersion=This version of the Zotero Word plugin ($INTEGRATION_VERSION) is incompatible with the currently installed version of the Zotero Firefox extension (%1$S). Please ensure you are using the latest versions of both components.
-integration.fields.label=Поља
-integration.referenceMarks.label=Референтне Ознаке
-integration.fields.caption=Мања је могућност случајне промене Microsoft Word поља, али она не могу бити дељена са OpenOffice.org-ом.
-integration.referenceMarks.caption=Мања је могућност случајне промене OpenOffice.org референтних ознака, али оне не могу бити дељене са Microsoft Word-ом.
-
-integration.regenerate.title=Да ли желите поново направити табелу цитација?
-integration.regenerate.body=Промене које сте направили у уређивачу цитација ће бити изгубљене.
-integration.regenerate.saveBehavior=Увек прати овај избор.
-
-integration.deleteCitedItem.title=Да ли сте сигурни да желите избацити ову референцу?
-integration.deleteCitedItem.body=Ова референца је цитирана у тексту вашег документа. Брисање ње ће избацити све цитације.
-
-styles.installStyle=Инсталирати стил „%1$S“ из %2$S?
-styles.updateStyle=Ажурирати постојећи стил „%1$S“ са „%2$S“ из %3$S?
-styles.installed=Стил „%S“ је успешно инсталиран.
-styles.installError=%S не изгледа као исправна CSL датотека.
diff --git a/chrome/locale/th-TH/zotero/preferences.dtd b/chrome/locale/th-TH/zotero/preferences.dtd
index ea5634589..bcf4a525c 100644
--- a/chrome/locale/th-TH/zotero/preferences.dtd
+++ b/chrome/locale/th-TH/zotero/preferences.dtd
@@ -54,7 +54,7 @@
 <!ENTITY zotero.preferences.quickCopy.caption "ทำสำเนาอย่างเร็ว">
 <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:">
 <!ENTITY zotero.preferences.quickCopy.copyAsHTML "ทำสำเนาเป็น HTML">
-<!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X.">
+<!ENTITY zotero.preferences.quickCopy.macWarning "โน๊ต: การจัดหน้าจะสูญหายไปบน Mac OS X">
 <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:">
 <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path">
 <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(เช่น wikipedia.org)">
@@ -62,16 +62,16 @@
 
 <!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles...">
 
-<!ENTITY zotero.preferences.prefpane.keys "Shortcut Keys">
+<!ENTITY zotero.preferences.prefpane.keys "คีย์ลัด">
 
 <!ENTITY zotero.preferences.keys.openZotero "Open/Close Zotero Pane">
 <!ENTITY zotero.preferences.keys.toggleFullscreen "Toggle Fullscreen Mode">
-<!ENTITY zotero.preferences.keys.library "Library">
+<!ENTITY zotero.preferences.keys.library "ไลบรารี่">
 <!ENTITY zotero.preferences.keys.quicksearch "ค้นหาด่วน">
 <!ENTITY zotero.preferences.keys.newItem "สร้างไอเทมใหม่">
 <!ENTITY zotero.preferences.keys.newNote "สร้างโน๊ตใหม่">
 <!ENTITY zotero.preferences.keys.toggleTagSelector "Toggle Tag Selector">
-<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Copy Selected Item Citations to Clipboard">
+<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "ทำสำเนาอ้างอิงที่เลือกไว้ไปที่คลิปบอร์ด">
 <!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "ทำสำเนาไอเทมไปที่คลิปบอร์ด">
 <!ENTITY zotero.preferences.keys.overrideGlobal "Try to override conflicting shortcuts">
 <!ENTITY zotero.preferences.keys.changesTakeEffect "Changes take effect in new windows only">
@@ -83,7 +83,7 @@
 <!ENTITY zotero.preferences.dataDir.useProfile "ใช้ไดเรคทอรีของโปรไฟล์ไฟร์ฟ๊อกซ์">
 <!ENTITY zotero.preferences.dataDir.custom "Custom:">
 <!ENTITY zotero.preferences.dataDir.choose "โปรดเลือก...">
-<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory">
+<!ENTITY zotero.preferences.dataDir.reveal "แสดงไดเรคทอรีข้อมูล">
 
 <!ENTITY zotero.preferences.dbMaintenance "Database Maintenance">
 <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "ตรวจสอบความถูกต้องของฐานข้อมูล">
diff --git a/chrome/locale/th-TH/zotero/zotero.properties b/chrome/locale/th-TH/zotero/zotero.properties
index 936ff0866..704d47533 100644
--- a/chrome/locale/th-TH/zotero/zotero.properties
+++ b/chrome/locale/th-TH/zotero/zotero.properties
@@ -55,15 +55,15 @@ pane.collections.name=ใส่ชื่อสำหรับคอลเลค
 pane.collections.newSavedSeach=บันทึกผลการค้นหาใหม่
 pane.collections.savedSearchName=ใส่ชื่อสำหรับบันทึกผลการค้นหานี้
 pane.collections.rename=เปลี่ยนชื่อคอลเลคชัน
-pane.collections.library=My Library
+pane.collections.library=ไลบรารีของฉัน
 pane.collections.untitled=ไม่มีชื่อ
 
 pane.collections.menu.rename.collection=เปลี่ยนชื่อคอลเลคชัน
-pane.collections.menu.edit.savedSearch=Edit Saved Search
+pane.collections.menu.edit.savedSearch=แก้ไขบันทึกผลการค้นหา
 pane.collections.menu.remove.collection=ลบคอลเลคชัน
-pane.collections.menu.remove.savedSearch=Remove Saved Search...
+pane.collections.menu.remove.savedSearch=ลบบันทึกผลการค้นหา
 pane.collections.menu.export.collection=ส่งออกคอลเลคชัน
-pane.collections.menu.export.savedSearch=Export Saved Search...
+pane.collections.menu.export.savedSearch=ส่งออกบันทึกผลการค้นหา
 pane.collections.menu.createBib.collection=Create Bibliography From Collection...
 pane.collections.menu.createBib.savedSearch=Create Bibliography From Saved Search...
 
diff --git a/chrome/locale/tr-TR/zotero/zotero.dtd b/chrome/locale/tr-TR/zotero/zotero.dtd
index 130b6bdcb..f9652c59c 100644
--- a/chrome/locale/tr-TR/zotero/zotero.dtd
+++ b/chrome/locale/tr-TR/zotero/zotero.dtd
@@ -5,8 +5,8 @@
 <!ENTITY zotero.errorReport.submissionInProgress "Lütfen hata raporu gönderilene kadar bekleyiniz.">
 <!ENTITY zotero.errorReport.submitted "Hata raporu gönderilmiştir.">
 <!ENTITY zotero.errorReport.reportID "Rapor ID:">
-<!ENTITY zotero.errorReport.postToForums "Please post a message to the Zotero forums (forums.zotero.org) with this Report ID, a description of the problem, and any steps necessary to reproduce it.">
-<!ENTITY zotero.errorReport.notReviewed "Error reports are generally not reviewed unless referred to in the forums.">
+<!ENTITY zotero.errorReport.postToForums "Lütfen bu Rapor ile ilgili olarak Zotero forumlarına ileti gönderiniz, ayrıca iletinizde sorunun bir tanımı ve sorunu oluşturan adımları da yazınız.">
+<!ENTITY zotero.errorReport.notReviewed "Genellikle hata raporları forumlara gönderilmediği sürece incelenmez.">
 
 <!ENTITY zotero.upgrade.newVersionInstalled "Zotero&apos;nun yeni bir sürümünü kurdunuz.">
 <!ENTITY zotero.upgrade.upgradeRequired "Zotero veri tabanınız yeni sürüm ile birlikte çalışabilmesi için yükseltilmesi gerekir.">
@@ -35,12 +35,12 @@
 <!ENTITY zotero.items.date_column "Tarih">
 <!ENTITY zotero.items.year_column "Yıl">
 <!ENTITY zotero.items.publisher_column "Yayıncı">
-<!ENTITY zotero.items.publication_column "Publication">
-<!ENTITY zotero.items.journalAbbr_column "Journal Abbr">
+<!ENTITY zotero.items.publication_column "Yayın">
+<!ENTITY zotero.items.journalAbbr_column "Dergi Kısaltması">
 <!ENTITY zotero.items.language_column "Dil">
-<!ENTITY zotero.items.accessDate_column "Accessed">
+<!ENTITY zotero.items.accessDate_column "Erişildi">
 <!ENTITY zotero.items.callNumber_column "Yer Numarası">
-<!ENTITY zotero.items.repository_column "Havuz">
+<!ENTITY zotero.items.repository_column "Depo">
 <!ENTITY zotero.items.rights_column "Telif">
 <!ENTITY zotero.items.dateAdded_column "Eklendiği Tarih">
 <!ENTITY zotero.items.dateModified_column "Değiştirildiği Tarih">
diff --git a/components/zotero-protocol-handler.js b/components/zotero-protocol-handler.js
index b41d64a8f..20861dff1 100644
--- a/components/zotero-protocol-handler.js
+++ b/components/zotero-protocol-handler.js
@@ -142,6 +142,7 @@ function ChromeExtensionHandler() {
 				var includeAllChildItems = Zotero.Prefs.get('report.includeAllChildItems');
 				var combineChildItems = Zotero.Prefs.get('report.combineChildItems');
 				
+				var unhandledParents = {};
 				for (var i=0; i<results.length; i++) {
 					// Don't add child items directly
 					// (instead mark their parents for inclusion below)
@@ -155,12 +156,16 @@ function ChromeExtensionHandler() {
 						includeAllChildItems = false;
 					}
 					// If combining children or standalone note/attachment, add matching parents
-					else if (combineChildItems || !results[i].isRegularItem()) {
-						itemsHash[results[i].getID()] = items.length;
+					else if (combineChildItems || !results[i].isRegularItem()
+							|| results[i].numChildren() == 0) {
+						itemsHash[results[i].getID()] = [items.length];
 						items.push(results[i].toArray(2));
 						// Flag item as a search match
 						items[items.length - 1].reportSearchMatch = true;
 					}
+					else {
+						unhandledParents[i] = true;
+					}
 					searchItemIDs[results[i].getID()] = true;
 				}
 				
@@ -186,11 +191,21 @@ function ChromeExtensionHandler() {
 						}
 					}
 				}
+				// If not including all children, add matching parents,
+				// in case they don't have any matching children below
+				else {
+					for (var i in unhandledParents) {
+						itemsHash[results[i].id] = [items.length];
+						items.push(results[i].toArray(2));
+						// Flag item as a search match
+						items[items.length - 1].reportSearchMatch = true;
+					}
+				}
 				
 				if (combineChildItems) {
 					// Add parents of matches if parents aren't matches themselves
 					for (var id in searchParentIDs) {
-						if (!searchItemIDs[id]) {
+						if (!searchItemIDs[id] && !itemsHash[id]) {
 							var item = Zotero.Items.get(id);
 							itemsHash[id] = items.length;
 							items.push(item.toArray(2));
@@ -290,51 +305,68 @@ function ChromeExtensionHandler() {
 					
 					// Multidimensional sort
 					do {
-						// Note and attachment sorting when combineChildItems is false
-						if (!combineChildItems && sorts[index].field == 'note') {
-							if (a.itemType == 'note' || a.itemType == 'attachment') {
-								var valA = a.note;
-							}
-							else if (a.reportChildren) {
-								var valA = a.reportChildren.notes[0].note;
-							}
-							else {
-								var valA = '';
+						// In combineChildItems, use note or attachment as item
+						if (!combineChildItems) {
+							if (a.reportChildren) {
+								if (a.reportChildren.notes.length) {
+									a = a.reportChildren.notes[0];
+								}
+								else {
+									a = a.reportChildren.attachments[0];
+								}
 							}
 							
-							if (b.itemType == 'note' || b.itemType == 'attachment') {
-								var valB = b.note;
+							if (b.reportChildren) {
+								if (b.reportChildren.notes.length) {
+									b = b.reportChildren.notes[0];
+								}
+								else {
+									b = b.reportChildren.attachments[0];
+								}
 							}
-							else if (b.reportChildren) {
-								var valB = b.reportChildren.notes[0].note;
+						}
+						
+						var valA, valB;
+						
+						if (sorts[index].field == 'title') {
+							// For notes, use content for 'title'
+							if (a.itemType == 'note') {
+								valA = a.note;
 							}
 							else {
-								var valB = '';
+								valA = a.title; 
 							}
 							
-							// Put items without notes last
-							if (valA == '' && valB != '') {
-								var cmp = 1;
-							}
-							else if (valA != '' && valB == '') {
-								var cmp = -1;
+							if (b.itemType == 'note') {
+								valB = b.note;
 							}
 							else {
-								var cmp = collation.compareString(0, valA, valB);
+								valB = b.title; 
 							}
+							
+							valA = Zotero.Items.getSortTitle(valA);
+							valB = Zotero.Items.getSortTitle(valB);
 						}
 						else {
-							var cmp = collation.compareString(0,
-								a[sorts[index].field],
-								b[sorts[index].field]
-							);
+							var valA = a[sorts[index].field];
+							var valB = b[sorts[index].field];
 						}
 						
-						if (cmp == 0) {
-							continue;
+						// Put empty values last
+						if (!valA && valB) {
+							var cmp = 1;
+						}
+						else if (valA && !valB) {
+							var cmp = -1;
+						}
+						else {
+							var cmp = collation.compareString(0, valA, valB);
 						}
 						
-						var result = cmp * sorts[index].order;
+						var result = 0;
+						if (cmp != 0) {
+							result = cmp * sorts[index].order;
+						}
 						index++;
 					}
 					while (result == 0 && sorts[index]);
diff --git a/defaults/preferences/zotero.js b/defaults/preferences/zotero.js
index 6197c0fb0..54be5e3d5 100644
--- a/defaults/preferences/zotero.js
+++ b/defaults/preferences/zotero.js
@@ -66,6 +66,7 @@ pref("extensions.zotero.export.citePaperJournalArticleURL", false);
 pref("extensions.zotero.export.quickCopy.setting", 'bibliography=http://www.zotero.org/styles/chicago-note');
 
 // Integration settings
+pref("extensions.zotero.integration.port", 50001);
 pref("extensions.zotero.integration.autoRegenerate", -1);	// -1 = ask; 0 = no; 1 = yes
 
 // Zeroconf
diff --git a/scrapers.sql b/scrapers.sql
index 00502f6f4..3cbc292e6 100644
--- a/scrapers.sql
+++ b/scrapers.sql
@@ -22,7 +22,7 @@
 
 
 -- Set the following timestamp to the most recent scraper update date
-REPLACE INTO version VALUES ('repository', STRFTIME('%s', '2008-05-15 21:30:00'));
+REPLACE INTO version VALUES ('repository', STRFTIME('%s', '2008-06-11 05:00:00'));
 
 REPLACE INTO translators VALUES ('96b9f483-c44d-5784-cdad-ce21b984fe01', '1.0.0b4.r1', '', '2008-03-21 20:00:00', '1', '100', '4', 'Amazon.com', 'Sean Takats and Michael Berkowitz', '^https?://(?:www\.)?amazon', 
 'function detectWeb(doc, url) { 
@@ -1089,11 +1089,1338 @@ REPLACE INTO translators VALUES ('88915634-1af6-c134-0171-56fd198235ed', '1.0.0b
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('83538f48-906f-40ef-bdb3-e94f63676307', '1.0.0b4.r5', '', '2008-05-09 23:15:00', '0', '100', '4', 'NAA RecordSearch', 'Tim Sherratt', 'http://naa12.naa.gov.au/scripts/', 
+REPLACE INTO translators VALUES ('59cce211-9d77-4cdd-876d-6229ea20367f', '1.0.0b4.r5', '', '2008-06-10 22:30:00', '0', '100', '4', 'Bibliothèque et Archives nationales du Québec', 'Adam Crymble', 'http://catalogue.banq.qc.ca', 
 'function detectWeb(doc, url) {
-    if (url.match("Items_listing")) {
+	if (doc.title.match("Search")) {
+		return "multiple";
+	} else if (doc.title.match("Recherche")) {
+		return "multiple";
+		
+	} else if (doc.evaluate(''//td[2]/a/img'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src.match("book")) {
+		return "book";
+	} else if (doc.evaluate(''//td[2]/a/img'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src.match("mmusic")) {
+		return "book";	
+	} else if (doc.evaluate(''//td[2]/a/img'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src.match("manalytic")) {
+		return "book";
+		
+	} else if (doc.evaluate(''//td[2]/a/img'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src.match("msdisc")) {
+		return "audioRecording";
+	} else if (doc.evaluate(''//td[2]/a/img'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src.match("msound")) {
+		return "audioRecording";
+	} else if (doc.evaluate(''//td[2]/a/img'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src.match("mscas")) {
+		return "audioRecording";
+		
+	} else if (doc.evaluate(''//td[2]/a/img'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src.match("mvdisc")) {
+		return "videoRecording";
+	
+	} else if (doc.evaluate(''//td[2]/a/img'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src.match("mpaint")) {
+		return "artwork";
+	
+	} else if (doc.evaluate(''//td[2]/a/img'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src.match("mserial")) {
+		return "report";
+	
+	} else if (doc.evaluate(''//td[2]/a/img'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src.match("mcomponent")) {
+		return "newspaperArticle";
+	}
+}
+
+', 
+'//Bibliotheque et Archives National du Quebec. Code by Adam Crymble
+
+function associateData (newItem, dataTags, field, zoteroField) {
+	if (dataTags[field]) {
+		newItem[zoteroField] = dataTags[field];
+	}
+}
+
+function scrape(doc, url) {
+	var namespace = doc.documentElement.namespaceURI;
+	var nsResolver = namespace ? function(prefix) {
+		if (prefix == ''x'') return namespace; else return null;
+	} : null;
+	
+	var dataTags = new Object();
+	var fieldTitle;
+	var contents;	
+	var descriptionField;
+	var tagsContent= new Array();
+	var inField = 0;
+
+	//determines media type	
+	if (detectWeb(doc, url) == "book") {
+		var newItem = new Zotero.Item("book");
+		descriptionField = "pages";
+	} else if (detectWeb(doc, url) == "audioRecording") {
+		var newItem = new Zotero.Item("audioRecording");
+		descriptionField = "runningTime";
+	} else if (detectWeb(doc, url) == "videoRecording") {
+		var newItem = new Zotero.Item("videoRecording");
+		descriptionField = "runningTime";
+	} else if (detectWeb(doc, url) == "artwork") {
+		var newItem = new Zotero.Item("artwork");
+		descriptionField = "artworkSize";
+	} else if (detectWeb(doc, url) == "report") {
+		var newItem = new Zotero.Item("report");
+		descriptionField = "pages";
+	}  else if (detectWeb(doc, url) == "newspaperArticle") {
+		var newItem = new Zotero.Item("newspaperArticle");
+		descriptionField = "pages"
+	}
+	
+//determines  language	
+	var lang = doc.evaluate(''//td[2]/a/img'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+	var langCount = doc.evaluate(''count (//td[2]/a/img)'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+	var lang1 = lang.iterateNext().src;
+	
+	if (langCount.numberValue > 1) {	
+		lang1 = lang.iterateNext().src;
+
+		if (lang1.match("lfre")) {
+			newItem.language = "French";
+		} else if (lang1.match("leng")) {
+			newItem.language = "English";
+		}
+	}
+	
+//scraping XPaths	
+	var xPathHeadings = doc.evaluate(''//td/table/tbody/tr/td[2]/b'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+	var xPathContents = doc.evaluate(''//td[2]/table/tbody/tr/td/table/tbody/tr/td[4]'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+	var xPathCount = doc.evaluate(''count (//td/table/tbody/tr/td[2]/b)'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+	
+	if (doc.evaluate(''//td/table/tbody/tr/td[2]/b'', doc, nsResolver, XPathResult.ANY_TYPE, null)) {
+		
+	   	for (i=0; i<xPathCount.numberValue; i++) {	 
+			
+			fieldTitle  = xPathHeadings.iterateNext().textContent.replace(/\s+/g, '''');
+			contents = xPathContents.iterateNext().textContent;
+			
+			if (contents.match("[*]") && fieldTitle!= "Publisher" && fieldTitle!= "Éditeur") {
+				var removeTagExcess = contents.indexOf("[");
+				contents = contents.substr(0, removeTagExcess);
+			}		
+			
+			if (fieldTitle == "Author" | fieldTitle == "Auteur") {
+				fieldTitle = "Author";
+				dataTags[fieldTitle] = (contents);
+			     	var authorName = dataTags["Author"].split(",");
+		     		authorName[0] = authorName[0].replace(/\s+/g, '''');
+		
+		     		dataTags["Author"] = (authorName[1] + (" ") + authorName[0]);
+		     		newItem.creators.push(Zotero.Utilities.cleanAuthor(dataTags["Author"], "author"));  		
+		
+	 	 //publishing info    		
+			} else if (fieldTitle == "Publisher" | fieldTitle == "Éditeur") {
+				fieldTitle = "Publisher";
+				
+				dataTags["Publisher"] = (contents);
+				
+				if (dataTags["Publisher"].match(":")) {
+				
+					var place1 = dataTags["Publisher"].split(":");
+					dataTags["Place"] = place1[0].replace(/^\s*|\[|\]/g,'''');
+					
+					var publish = place1[1].split(",");
+					dataTags["Publish"] = (publish[0].replace(/^\s*|\[|\]/g,''''));
+					
+					place1[1] = place1[1].replace(/^\s*|\s*$|\[|\]/g, '''');
+					if (place1[1].match("/?")) {
+						var dateLength = place1[1].length-5;
+					} else {
+						var dateLength = place1[1].length-4;
+					}
+					dataTags["Date"] = place1[1].substr(dateLength);
+				} else {
+					dataTags["Date"] = (contents);
+				}
+			
+		//tags		
+			} else if (fieldTitle == "Subjects" | fieldTitle == "Sujets") {
+			     	fieldTitle = "Subjects";
+			     	tagsContent = contents.split("\n");
+		
+		//source	
+			} else  if (fieldTitle == "Source") {
+				dataTags[fieldTitle] = (contents.replace(/^\s*|\s*$/g, ''''));
+				dataTags["Source"] = ("Source: " + dataTags["Source"]);
+				Zotero.debug(doc.title);  	
+		//normal	     					
+			} else {
+				dataTags[fieldTitle] = (contents.replace(/^\s*|\s*$/g, ''''));	
+			}    
+		}
+	
+	//series	
+		if (fieldTitle == "Series" | fieldTitle == "Collection") {
+			fieldTitle = "Series";
+			dataTags[fieldTitle] = (contents.replace(/\s\s\s*/g, ''''));
+		}
+			
+	//makes tags	
+		for (i = 0; i < tagsContent.length; i++) {
+			if (tagsContent[i] != ("") && tagsContent[i] !=(" ")) {							
+				newItem.tags[i] = tagsContent[i];
+			} 
+	     	}
+			
+	associateData (newItem, dataTags, "Description", descriptionField);
+			
+	associateData (newItem, dataTags, "Title", "title");
+	associateData (newItem, dataTags, "Place", "place");
+	associateData (newItem, dataTags, "Publish", "publisher");
+	associateData (newItem, dataTags, "Date", "date");
+	associateData (newItem, dataTags, "Source", "extra");
+	associateData (newItem, dataTags, "ISBN", "ISBN");
+	associateData (newItem, dataTags, "Localinf.", "rights");
+	associateData (newItem, dataTags, "Series", "series");
+	associateData (newItem, dataTags, "Notes", "abstractNote");
+	associateData (newItem, dataTags, "Numbering", "reportNumber");
+	
+	associateData (newItem, dataTags, "Titre", "title");
+	associateData (newItem, dataTags, "Numérotation", "reportNumber");
+	
+	}
+	
+	newItem.url = doc.location.href;
+	newItem.complete();	
+}
+
+function doWeb(doc, url) {
+	var namespace = doc.documentElement.namespaceURI;
+	var nsResolver = namespace ? function(prefix) {
+		if (prefix == ''x'') return namespace; else return null;
+	} : null;
+	
+	var articles = new Array();
+	
+	if (detectWeb(doc, url) == "multiple") {
+		var items = new Object();
+		var next_title = new Array();
+		var links1 = new Array();
+		var y = 0;
+		var next_title1 = new Array();
+		
+		var titlesCount = doc.evaluate(''count (//p/table/tbody/tr/td/b)'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+		var numAndTitle= doc.evaluate(''//p/table/tbody/tr/td/b'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+		var links = doc.evaluate(''//p/table/tbody/tr/td/a[img]'', doc, nsResolver, XPathResult.ANY_TYPE, null);		
+		var multipleTest = 0;
+		
+		for (j=0; j < titlesCount.numberValue; j++) {
+			
+			next_title[j] = numAndTitle.iterateNext().textContent;
+			next_title[j] = next_title[j].substr(0, next_title[j].length-1);
+		
+			if (/^\d*$/.test(next_title[j])) {
+				multipleTest = 0;
+			} else if (multipleTest < 1) {
+				multipleTest++;
+				next_title1[y] = next_title[j];
+			 	y++;
+			 	Zotero.debug(next_title1[0]);
+				
+			} else if (multipleTest > 1) {
+				multipleTest = 0;
+			}
+		}
+		
+		for (j = 0; j < 10; j++) {
+				links1[j] = links.iterateNext().href;
+				//Zotero.debug(links1[0]);
+				items[links1] = next_title1[j];
+		}
+		
+		
+		items = Zotero.selectItems(items);
+		for (var i in items) {
+			articles.push(i);
+		}
+	} else {
+		articles = [url];
+	}
+	Zotero.Utilities.processDocuments(articles, scrape, function() {Zotero.done();});
+	Zotero.wait();
+	
+}');
+
+REPLACE INTO translators VALUES ('2d174277-7651-458f-86dd-20e168d2f1f3', '1.0.0b4.r5', '', '2008-06-06 08:45:00', '0', '100', '4', 'Canadiana.org', 'Adam Crymble', 'http://(www.)?canadiana.org', 
+'function detectWeb(doc, url) {
+   
+   //checks the title of the webpage. If it matches, then the little blue book symbol appears in the address bar.
+   //works for English and French versions of the page.
+    
+   	 if(doc.title == "Early Canadiana Online - Item Record"|doc.title == "Notre mémoire en ligne - Notice") {
+        	return "book";
+	} else if (doc.evaluate(''//div[@id="Content"]/div[@class="NormalRecord"]/h3/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+		return  "multiple";
+	}
+}
+
+', 
+'//Canadiana Translator Coding by Adam Crymble
+//because the site uses so many random formats for the "Imprint" field, it''s not always perfect. But it works for MOST entries
+
+function associateData (newItem, dataTags, field, zoteroField) {
+	if (dataTags[field]) {
+		newItem[zoteroField] = dataTags[field];
+	}
+}
+
+function scrape(doc, url) {
+	var namespace = doc.documentElement.namespaceURI;
+	var nsResolver = namespace ? function(prefix) {
+		if (prefix == "x" ) return namespace; else return null;
+	} : null;
+        	
+       	//declaring variables to be used later.
+	var newItem = new Zotero.Item("book");
+	newItem.url = doc.location.href;
+	
+	var dataTags = new Object();
+	var fieldTitle;
+	var tagsContent= new Array();
+        
+        //these variables tell the program where to find the data we want in the HTML file we''re looking at.
+        //in this case, the data is found in a table.
+        var xPath1 = ''//tr/td[1][@class="Label"]'';
+        var xPath2 = ''//tr/td[2]'';
+       
+      
+       //at this point, all the data we want has been saved into the following 2 Objects: one for the headings, one for the content.
+       // The 3rd object tells us how many items we''ve found.
+       if (doc.evaluate(''//tr/td[1][@class="Label"]'', doc, nsResolver, XPathResult.ANY_TYPE, null)) {
+       		 var xPath1Results = doc.evaluate(xPath1, doc, nsResolver, XPathResult.ANY_TYPE, null);
+      		  var xPath2Results = doc.evaluate(xPath2, doc, nsResolver, XPathResult.ANY_TYPE, null);
+      		  var xPathCount = doc.evaluate( ''count (//tr/td[1][@class="Label"])'', doc, nsResolver, XPathResult.ANY_TYPE, null);       	
+  	}  
+  
+  	//At this point we have two lists (xPath1Results and xPath2Results). this loop matches the first item in the first list
+  	//with the first item in the second list, and on until the end. 
+  	//If we then ask for the "Principal Author" the program returns "J.K. Rowling" instead of "Principal Author"
+   	if (doc.evaluate(''//tr/td[1][@class="Label"]'', doc, nsResolver, XPathResult.ANY_TYPE, null)) {
+	   	for (i=0; i<xPathCount.numberValue; i++) {	 	
+	     			
+	     		fieldTitle=xPath1Results.iterateNext().textContent.replace(/\s+/g, '''');
+	     		
+	     			//gets the author''s name without cleaning it away using cleanTags.
+	     		if (fieldTitle =="PrincipalAuthor:" || fieldTitle == "Auteurprincipal:") {
+		     		
+		     		fieldTitle="PrincipalAuthor:";
+		     		dataTags[fieldTitle]=(xPath2Results.iterateNext().textContent);
+		     		var authorName =dataTags["PrincipalAuthor:"].split(",");
+		     		authorName[0]=authorName[0].replace(/\s+/g, '''');
+		     		dataTags["PrincipalAuthor:"]= (authorName[1] + (" ") + authorName[0]);
+		     		newItem.creators.push(Zotero.Utilities.cleanAuthor(dataTags["PrincipalAuthor:"], "author"));
+	     		
+		     		//Splits Adressebibliographique or Imprint into 3 fields and cleans away any extra whitespace or unwanted characters.      		
+	     		} else if (fieldTitle =="Adressebibliographique:" || fieldTitle == "Imprint:") {
+	     		     	
+	     		     	fieldTitle = "Imprint:";
+	     		     	dataTags[fieldTitle] = Zotero.Utilities.cleanTags(xPath2Results.iterateNext().textContent);
+	     		     	
+	     		     	var separateImprint = dataTags["Imprint:"].split(":");
+	     		     	separateImprint[0]= separateImprint[0].replace(/^\s*|\[|\]/g,'''');
+		     		dataTags["Place:"]=separateImprint[0];
+		     		
+		     		var justDate = separateImprint[1].replace(/\D/g, '''');
+		     		dataTags["Date:"]= justDate;
+		     		
+		     		separateImprint[1] = separateImprint[1].replace(/\d|\[|\]|\./g, '''');
+		     		separateImprint[1] = separateImprint[1].replace(/^\s*|\s*$/g, '''');
+		     		dataTags["Publisher:"]= separateImprint[1];
+		     		
+		     		// determines how many tags there will be, pushes them into an array and clears away whitespace.
+		     	} else if (fieldTitle == "Subject:" || fieldTitle == "Sujet:") {
+			     	
+			     	tagsContent.push(Zotero.Utilities.cleanTags(xPath2Results.iterateNext().textContent.replace(/^\s*|\s*$/g, '''')));
+			     	while (fieldTitle != "Collection:") {
+				     	i=i+1;
+				     	tagsContent.push(Zotero.Utilities.cleanTags(xPath2Results.iterateNext().textContent.replace(/^\s*|\s*$/g, '''')));
+				     	fieldTitle=xPath1Results.iterateNext().textContent.replace(/\s+/g, '''');
+			     	}
+	    
+	     		} else {
+	     			
+	     			dataTags[fieldTitle] = Zotero.Utilities.cleanTags(xPath2Results.iterateNext().textContent.replace(/^\s*|\s*$/g, ''''));
+	     		
+	     		}
+	     	}
+     	}
+     		//Adds a string to CIHM no: and ICMH no: so that the resulting number makes sense to the reader.
+     		if (dataTags["CIHMno.:"]) {
+	     		
+	     		dataTags["CIHMno.:"]=("CIHM Number: " + dataTags["CIHMno.:"]);
+     		}
+     		
+     		if (dataTags["ICMHno:"]) {
+	     		
+	     		dataTags["ICMHno:"]=("ICMH nombre: " + dataTags["ICMHno:"]);
+     		}
+     		
+     		//makes tags of the items in the "tagsContent" array.
+     		for (var i = 0; i < tagsContent.length; i++) {
+	     		newItem.tags[i] = tagsContent[i];
+     		}
+     	
+     	//calls the associateData function to put the data in the correct Zotero field.	
+	associateData (newItem, dataTags, "Title:", "title");
+	associateData (newItem, dataTags, "Place:", "place");
+     	associateData (newItem, dataTags, "Publisher:", "publisher");
+     	associateData (newItem, dataTags, "Date:", "date");			
+	associateData (newItem, dataTags, "PageCount:", "pages");
+	associateData (newItem, dataTags, "CIHMno.:", "extra");
+	associateData (newItem, dataTags, "DocumentSource:", "rights");
+	
+	associateData (newItem, dataTags, "Titre:", "title" );
+	associateData (newItem, dataTags, "Nombredepages:", "pages");
+	associateData (newItem, dataTags, "ICMHno:", "extra");
+	associateData (newItem, dataTags, "Documentoriginal:", "rights");
+	
+	//Saves everything to Zotero.	
+	newItem.complete();
+
+}
+
+
+function doWeb(doc, url) {
+	var namespace = doc.documentElement.namespaceURI;
+	var nsResolver = namespace ? function(prefix) {
+		if (prefix == ''x'') return namespace; else return null;
+	} : null;
+	
+	var articles = new Array();
+	
+	if (detectWeb(doc, url) == "multiple") {
+		var items = new Object();
+		var titles = doc.evaluate(''//div[@id="Content"]/div[@class="NormalRecord"]/h3/a'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+		var next_title;
+		while (next_title = titles.iterateNext()) {
+			items[next_title.href] = next_title.textContent;
+		}
+		items = Zotero.selectItems(items);
+		for (var i in items) {
+			articles.push(i);
+		}
+	} else {
+		articles = [url];
+	}
+	Zotero.Utilities.processDocuments(articles, scrape, function() {Zotero.done();});
+	Zotero.wait();
+	
+	
+	
+}');
+
+REPLACE INTO translators VALUES ('1f245496-4c1b-406a-8641-d286b3888231', '1.0.0b4.r5', '', '2008-06-06 08:45:00', '0', '100', '4', 'The Boston Globe', 'Adam Crymble', 'http://(www|search).boston.com/', 
+'function detectWeb(doc, url) {
+	if (url.match("search.boston.com")) {
+		return "multiple";
+	} else if (doc.evaluate(''//div[@id="headTools"]/h1'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+		return "newspaperArticle";
+	} else if (doc.evaluate(''//div[@id="blogEntry"]/h1/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+		return "blogPost";
+	} 
+}', 
+'//Boston Globe and Boston.com Translator. Code by Adam Crymble
+
+function scrape (doc, url) {
+	var namespace = doc.documentElement.namespaceURI;
+	var nsResolver = namespace ? function(prefix) {
+	}: null;
+		
+	//sets variables that remain constant in both formats
+					
+		if (doc.evaluate(''//span[@id="dateline"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext())  {
+			var xPathDateResults = doc.evaluate (''//span[@id="dateline"]'', doc, nsResolver, XPathResult.ANY_TYPE, null);	
+		}
+		
+		if (doc.evaluate(''//span[@id="byline"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext())  {
+			var xPathAuthorResults= doc.evaluate (''//span[@id="byline"]'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+		}	
+		
+	
+	//sets variables unique to the blog posts on Boston.com		
+	
+		if (doc.evaluate(''//div[@id="blogEntry"]/h1/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+			
+			var newItem =new Zotero.Item("blogPost");
+			newItem.publicationTitle = "Boston.com";
+			
+			//title
+			var xPathTitle = ''//div[@id="blogEntry"]/h1/a'';
+			
+			//date
+			var articleDate = xPathDateResults.iterateNext().textContent;
+			newItem.date = articleDate;
+			
+			//author
+			var articleAuthor = xPathAuthorResults.iterateNext().textContent.replace(/Posted by /i, '''');
+			articleAuthor = articleAuthor.split('','');
+			var authorName = articleAuthor[0].split("and ");
+	
+	//else it sets the variables unique to the articles on the Boston Globe	
+	
+		} else if (doc.evaluate(''//div[@id="headTools"]/h1'', doc, null, XPathResult.ANY_TYPE, null).iterateNext())  {
+			
+			var newItem = new Zotero.Item("newspaperArticle");
+			newItem.publicationTitle = "The Boston Globe";
+		
+			//title
+			var xPathTitle = ''//div[@id="headTools"]/h1'';
+			
+			//date
+			if (doc.evaluate(''//span[@id="dateline"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext())  {
+				var articleDate = xPathDateResults.iterateNext().textContent;
+				if (articleDate.match(''/'')) {
+					articleDate = articleDate.split(''/'');
+				newItem.date = articleDate[1];	
+				} else {
+					newItem.date = articleDate;
+				}
+				
+			}			
+			
+			//author(s)
+				var articleAuthor = xPathAuthorResults.iterateNext().textContent.replace(/^\s*|\s*$/g, '''');
+				articleAuthor= articleAuthor.substr(3);
+				var authorName = articleAuthor.split("and ");
+			
+			
+			//byline	
+			if (doc.evaluate(''//div[@id="headTools"]/h2'', doc, null, XPathResult.ANY_TYPE, null).iterateNext())  {		
+				newItem.abstractNote = doc.evaluate (''//div[@id="headTools"]/h2'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
+			}
+		}
+			
+		//creates title using xPaths defined above
+			var xPathTitleResults = doc.evaluate (xPathTitle, doc, nsResolver, XPathResult.ANY_TYPE, null);
+			newItem.title = xPathTitleResults.iterateNext().textContent;
+		
+		//pushes author(s)	
+			
+			for (var i=0; i<authorName.length; i++) {
+				newItem.creators.push(Zotero.Utilities.cleanAuthor(authorName[i], "author"));
+			}	
+		
+		newItem.url = doc.location.href;
+			
+		newItem.complete();
+}
+
+
+function doWeb (doc, url) {
+	var namespace = doc.documentElement.namespaceURI;
+	var nsResolver = namespace ? function(prefix) {
+	}: null;
+	
+	var uris= new Array();
+
+	if (detectWeb(doc, url) == "multiple") {
+		var items = new Object();
+		var result =  doc.evaluate(''//div[@class="regTZ"]/a[@class="titleLink"]'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+		var elmt = result.iterateNext();
+		Zotero.debug(elmt);
+		while (elmt) {
+			//items.push(elmt.href);
+			items[elmt.href] = elmt.textContent;
+			elmt = result.iterateNext();
+		}
+		
+		items = Zotero.selectItems(items);
+		
+		if (!items) {
+			return true;
+		}
+		
+		for (var i in items) {
+			uris.push(i);
+		}
+	} else
+		uris.push(url);
+		Zotero.debug(uris);
+	Zotero.Utilities.processDocuments(uris, scrape, function() {Zotero.done();});
+	Zotero.wait();
+}');
+
+REPLACE INTO translators VALUES ('91acf493-0de7-4473-8b62-89fd141e6c74', '1.0.0b3.r1', '', '2008-06-10 22:30:00', '1', '100', '1', 'MAB2', 'Simon Kornblith. Adaptions for MAB2: Leon Krauthausen (FUB)', 'mab2', 
+'function detectImport() {
+	var mab2RecordRegexp = /^[0-9]{3}[a-z ]{2}[a-z ]{3}$/
+	var read = Zotero.read(8);
+	if(mab2RecordRegexp.test(read)) {
+		return true;
+	}
+}', 
+'var fieldTerminator = "\x1E";
+var recordTerminator = "\x1D";
+var subfieldDelimiter = "\x1F";
+
+/*
+* CLEANING FUNCTIONS
+*/
+
+// general purpose cleaning
+function clean(value) {
+	value = value.replace(/^[\s\.\,\/\:;]+/, '''');
+	value = value.replace(/[\s\.\,\/\:;]+$/, '''');
+	value = value.replace(/<<+/g, '''');
+	value = value.replace(/>>+/g, '''');
+	value = value.replace(/ +/g, '' '');
+	
+	var char1 = value[0];
+	var char2 = value[value.length-1];
+	if((char1 == "[" && char2 == "]") || (char1 == "(" && char2 == ")")) {
+		// chop of extraneous characters
+		return value.substr(1, value.length-2);
+	}
+	
+	return value;
+}
+
+function cleanTag(value) {
+	// Chop off Authority-IDs
+	value = value.slice(0, value.indexOf(''|''));
+	return value;
+}
+
+// number extraction
+function pullNumber(text) {
+	var pullRe = /[0-9]+/;
+	var m = pullRe.exec(text);
+	if(m) {
+		return m[0];
+	}
+}
+
+// ISBN extraction
+function pullISBN(text) {
+	var pullRe = /[0-9X\-]+/;
+	var m = pullRe.exec(text);
+	if(m) {
+		return m[0];
+	}
+}
+
+// corporate author extraction
+function corpAuthor(author) {
+	return {lastName:author, fieldMode:true};
+}
+
+// regular author extraction
+function author(author, type, useComma) {
+	return Zotero.Utilities.cleanAuthor(author, type, useComma);
+}
+
+// MAB2 author extraction 
+// evaluates subfield $b and sets authType 
+function authorMab(author, authType, useComma) {
+		if(!authType) var authType=''author'';
+		authType = authType.replace(''[Hrsg.]'', ''editor'');
+		authType = authType.replace(''[Mitarb.]'', ''contributor'');
+		authType = authType.replace(''[Übers.]'', ''translator'');
+		return Zotero.Utilities.cleanAuthor(author, authType, useComma);
+}
+/*
+* END CLEANING FUNCTIONS
+*/
+
+var record = function() {
+	this.directory = new Object();
+	this.leader = "";
+	this.content = "";
+	
+	// defaults
+	this.indicatorLength = 2;
+	this.subfieldCodeLength = 2;
+}
+
+// import a binary MAB2 record into this record
+record.prototype.importBinary = function(record) {
+	// get directory and leader
+	var directory = record.substr(0, record.indexOf(fieldTerminator));
+	this.leader = directory.substr(0, 24);
+	var directory = directory.substr(24);
+	
+	// get various data
+	this.indicatorLength = parseInt(this.leader[10], 10);
+	this.subfieldCodeLength = parseInt(this.leader[11], 10);
+	var baseAddress = parseInt(this.leader.substr(12, 5), 10);
+	
+	// get record data
+	var contentTmp = record.substr(baseAddress);
+	
+	// MARC wants one-byte characters, so when we have multi-byte UTF-8
+	// sequences, add null characters so that the directory shows up right. we
+	// can strip the nulls later.
+	this.content = "";
+	for(i=0; i<contentTmp.length; i++) {
+		this.content += contentTmp[i];
+		if(contentTmp.charCodeAt(i) > 0x00FFFF) {
+			this.content += "\x00\x00\x00";
+		} else if(contentTmp.charCodeAt(i) > 0x0007FF) {
+			this.content += "\x00\x00";
+		} else if(contentTmp.charCodeAt(i) > 0x00007F) {
+			this.content += "\x00";
+		}
+	}
+	
+	// read directory
+	for(var i=0; i<directory.length; i+=12) {
+		var tag = parseInt(directory.substr(i, 3), 10);
+		var fieldLength = parseInt(directory.substr(i+3, 4), 10);
+		var fieldPosition = parseInt(directory.substr(i+7, 5), 10);
+		
+		if(!this.directory[tag]) {
+			this.directory[tag] = new Array();
+		}
+		this.directory[tag].push([fieldPosition, fieldLength]);
+	}
+}
+
+// add a field to this record
+record.prototype.addField = function(field, indicator, value) {
+	field = parseInt(field, 10);
+	// make sure indicator is the right length
+	if(indicator.length > this.indicatorLength) {
+		indicator = indicator.substr(0, this.indicatorLength);
+	} else if(indicator.length != this.indicatorLength) {
+		indicator = Zotero.Utilities.lpad(indicator, " ", this.indicatorLength);
+	}
+	
+	// add terminator
+	value = indicator+value+fieldTerminator;
+	
+	// add field to directory
+	if(!this.directory[field]) {
+		this.directory[field] = new Array();
+	}
+	this.directory[field].push([this.content.length, value.length]);
+	
+	// add field to record
+	this.content += value;
+}
+
+// get all fields with a certain field number
+record.prototype.getField = function(field) {
+	field = parseInt(field, 10);
+	var fields = new Array();
+	
+	// make sure fields exist
+	if(!this.directory[field]) {
+		return fields;
+	}
+	
+	// get fields
+	for(var i in this.directory[field]) {
+		var location = this.directory[field][i];
+		
+		// add to array, replacing null characters
+		fields.push([this.content.substr(location[0], this.indicatorLength),
+		             this.content.substr(location[0]+this.indicatorLength,
+	                     location[1]-this.indicatorLength-1).replace(/\x00/g, "")]);
+	}
+	
+	return fields;
+}
+
+// get subfields from a field
+record.prototype.getFieldSubfields = function(tag) { // returns a two-dimensional array of values
+	var fields = this.getField(tag);
+	var returnFields = new Array();
+	
+	for(var i in fields) {
+		returnFields[i] = new Object();
+		
+		var subfields = fields[i][1].split(subfieldDelimiter);
+		if (subfields.length == 1) {
+			returnFields[i]["?"] = fields[i][1];
+		} else {
+			for(var j in subfields) {
+				if(subfields[j]) {
+					var subfieldIndex = subfields[j].substr(0, this.subfieldCodeLength-1);
+					if(!returnFields[i][subfieldIndex]) {
+						returnFields[i][subfieldIndex] = subfields[j].substr(this.subfieldCodeLength-1);
+					}
+				}
+			}
+		}
+	}
+	
+	return returnFields;
+}
+
+// add field to DB
+record.prototype._associateDBField = function(item, fieldNo, part, fieldName, execMe, arg1, arg2) {
+	var field = this.getFieldSubfields(fieldNo);
+	Zotero.debug(''MARC: found ''+field.length+'' matches for ''+fieldNo+part);
+	if(field) {
+		for(var i in field) {
+			var value = false;
+			for(var j=0; j<part.length; j++) {
+				var myPart = part[j];
+				if(field[i][myPart]) {
+					if(value) {
+						value += " "+field[i][myPart];
+					} else {
+						value = field[i][myPart];
+					}
+				}
+			}
+			if(value) {
+				value = clean(value);
+				
+				if(execMe) {
+					value = execMe(value, arg1, arg2);
+				}
+				
+				if(fieldName == "creator") {
+					item.creators.push(value);
+				} else {
+					item[fieldName] = value;
+					return;
+				}
+			}
+		}
+	}
+}
+
+// add field to DB as tags
+record.prototype._associateTags = function(item, fieldNo, part) {
+	var field = this.getFieldSubfields(fieldNo);
+	for(var i in field) {
+		for(var j=0; j<part.length; j++) {
+			var myPart = part[j];
+			if(field[i][myPart]) {
+				item.tags.push(cleanTag(field[i][myPart]));
+			}
+		}
+	}
+}
+
+// this function loads a MAB2 record into our database
+record.prototype.translate = function(item) {
+	// get item type
+	if(this.leader) {
+		var marcType = this.leader[6];
+		if(marcType == "g") {
+			item.itemType = "film";
+		} else if(marcType == "k" || marcType == "e" || marcType == "f") {
+			item.itemType = "artwork";
+		} else if(marcType == "t") {
+			item.itemType = "manuscript";
+		} else {
+			item.itemType = "book";
+		}
+	} else {
+		item.itemType = "book";
+	}
+	
+	// Extract MAB2 fields
+	// FUB Added language, edition, pages, url, edition, series, ISBN, url
+	for (var i = 100; i <= 196; i++) {
+		if (this.getFieldSubfields(i)[0]) {
+			var field = this.getFieldSubfields(i)[0][''a''];
+			var authType = this.getFieldSubfields(i)[0][''b''];
+			this._associateDBField(item, i, "a", "creator", authorMab, authType, true);
+		}
+	}
+
+	// if (this.getFieldSubfields("800")[0]) this._associateDBField(item, "800", "a", "creator", author, "author", true);
+	if (!item.language) this._associateDBField(item, "037b", "a", "language");	
+	this._associateDBField(item, "200", "a", "creator", corpAuthor);
+	if (!item.title) this._associateDBField(item, "331", "a", "title");
+	this._associateDBField(item, "304", "a", "extra");
+	if (this.getFieldSubfields("335")[0]) {
+		item.title = item.title + ": " + this.getFieldSubfields("335")[0][''a''];
+	}	
+	if (!item.edition) this._associateDBField(item, "403", "a", "edition");
+	if (!item.place) this._associateDBField(item, "410", "a", "place");
+	if (!item.publisher) this._associateDBField(item, "412", "a", "publisher");
+	if (!item.title) this._associateDBField(item, "1300", "a", "title");
+	if (!item.date) this._associateDBField(item, "425", "a", "date", pullNumber);
+	if (!item.pages) this._associateDBField(item, "433", "a", "pages", pullNumber);
+	if (!item.series) this._associateDBField(item, "451", "a", "series");
+	this._associateDBField(item, "501", "a", "extra");
+	this._associateDBField(item, "519", "a", "extra");
+	if (!item.edition) this._associateDBField(item, "523", "a", "edition");
+	if (!item.ISBN) this._associateDBField(item, "540", "a", "ISBN", pullISBN);
+	if (!item.date) this._associateDBField(item, "595", "a", "date", pullNumber);
+	if (!item.url) this._associateDBField(item, "655e", "u", "url");	
+
+	// Extract German subject headings (RSWK) as tags
+	this._associateTags(item, "902", "acfgpkstz");
+	this._associateTags(item, "907", "acfgpkstz");	
+	this._associateTags(item, "912", "acfgpkstz");	
+	this._associateTags(item, "917", "acfgpkstz");	
+	this._associateTags(item, "922", "acfgpkstz");	
+	this._associateTags(item, "927", "acfgpkstz");	
+	this._associateTags(item, "932", "acfgpkstz");	
+	this._associateTags(item, "937", "acfgpkstz");	
+	this._associateTags(item, "942", "acfgpkstz");	
+
+
+}
+
+function doImport() {
+	var text;
+	var holdOver = "";	// part of the text held over from the last loop
+	
+	Zotero.setCharacterSet("utf-8");
+	
+	while(text = Zotero.read(4096)) {	// read in 4096 byte increments
+		var records = text.split("\x1D");
+		
+		if(records.length > 1) {
+			records[0] = holdOver + records[0];
+			holdOver = records.pop(); // skip last record, since it''s not done
+			
+			for(var i in records) {
+				var newItem = new Zotero.Item();
+				
+				// create new record
+				var rec = new record();	
+				rec.importBinary(records[i]);
+				rec.translate(newItem);
+				
+				newItem.complete();
+			}
+		} else {
+			holdOver += text;
+		}
+	}
+}');
+
+REPLACE INTO translators VALUES ('b662c6eb-e478-46bd- bad4-23cdfd0c9d67', '1.0.0b4.r5', '', '2008-06-10 22:30:00', '0', '100', '4', 'JurPC', 'Oliver Vivell and Michael Berkowitz', 'http://www.jurpc.de/', 
+'function detectWeb(doc, url) {
+        var doctype = doc.evaluate(''//meta/@doctype'', doc, null,XPathResult.ANY_TYPE, null).iterateNext().textContent;
+
+        if (doctype == "Aufsatz"){
+                return "Aufsatz";
+        }else{
+                return "Rechtsprechung";
+        }
+}', 
+'function doWeb(doc, url) {
+
+        var articles = new Array();
+
+        if (detectWeb(doc, url) == "Aufsatz") {
+
+                // Aufsatz gefunden
+
+                Zotero.debug("Ok, we have an JurPC Article");
+                var authors = ''//meta/@Author'';
+                var title = ''//meta/@Title'';
+                var webdoktext = ''//meta/@WebDok'';
+
+                var authors = parseDoc(authors,doc);
+                var title = parseDoc(title,doc);
+
+                var webabs = webdoktext.substr(webdoktext.lastIndexOf("Abs."), webdoktext.length);
+
+                //Zotero.debug(doctype);
+                 Zotero.debug(webdoktext);
+                var year = url.substr(28, 4);
+
+                //Get Year & WebDok Number from Url
+                var webdok = url.substr(32, 4);
+
+                var suche = webdok.indexOf("0");
+                if (suche == 0){
+                         webdok = url.substr(33, 3);
+                         suche = webdok.indexOf("0");
+
+                        if(suche == 0){
+                                webdok = url.substr(34, 2);
+                                suche = webdok.indexOf("0");
+                                }
+                                //Zotero.debug(suche);
+                                if(suche == 0){
+                                        webdok = url.substr(35, 1);
+                                        suche = webdok.indexOf("0");
+                                }
+                }
+
+                var re = /<[^>]*>/
+                Zotero.debug(re);
+                        title = title.replace(re,"");
+                        title = title.replace(re,"");
+                        title = title.replace(re,"");
+                Zotero.debug(title);
+
+                var newArticle = new Zotero.Item(''journalArticle'');
+
+                newArticle.title = title;
+                newArticle.journal = "JurPC";
+                newArticle.journalAbbreviation = "JurPC";
+                newArticle.year = year;
+                newArticle.volume =  "WebDok " + webdok + "/" + year;
+                newArticle.pages = webabs ;
+                newArticle.url = url;
+                var aus = authors.split("/");
+                for (var i=0; i< aus.length ; i++) {
+                        Zotero.debug(aus[0]);
+                        newArticle.creators.push(Zotero.Utilities.cleanAuthor(aus[i], "author"));
+                }
+                newArticle.complete();
+        } else {
+
+                // Dokument ist ein Urteil
+
+                var gericht = ''//meta/@Gericht'';
+                var ereignis =  ''//meta/@Ereignis'';
+                var datum = ''//meta/@Datum'';
+                var aktz = ''//meta/@aktz'';
+                var titel =  ''//meta/@Title'';
+                var webdok = ''//meta/@WebDok'';
+
+                try{
+                        var gericht = parseDoc(gericht,doc);
+                        var ereignis = parseDoc(ereignis,doc);
+                        var datum = parseDoc(datum,doc);
+                        var aktz = parseDoc(aktz,doc);
+                        var webdok = parseDoc(webdok,doc);
+                        var titel = parseDoc(titel,doc);
+                } catch (e) { var titel = doc.evaluate(''//meta/@Titel'', doc, null,XPathResult.ANY_TYPE, null).iterateNext().textContent;}
+                //Zotero.debug(titel); 
+
+
+                 // Informationen an Zotero übergeben
+
+                var newCase = new Zotero.Item(''case'');
+                 newCase.court = gericht;
+                 newCase.caseName = titel;
+                 newCase.title = titel;
+                 newCase.shortTitle = "WebDok " + webdok;
+                 newCase.dateDecided = ereignis + "  , " + aktz;
+                 newCase.url = url;
+                 newCase.journalAbbreviation = "JurPC";
+                //Zotero.debug(newCase.codeNumber);
+                newCase.complete();
+	}
+}
+
+function parseDoc(xpath, doc) {
+        var content = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE,null).iterateNext().textContent;
+        return content;
+}');
+
+REPLACE INTO translators VALUES ('cae7d3ec-bc8d-465b-974f-8b0dcfe24290', '1.0.0b4.r5', '', '2008-06-10 22:30:00', '0', '100', '4', 'BIUM', 'Michael Berkowitz', 'http://hip.bium.univ-paris5.fr/', 
+'function detectWeb(doc, url) {
+	if (doc.evaluate(''//td/a[@class="itemTitle"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+		return "multiple";
+	} else if (doc.evaluate(''//td[1]/span[@class="uportal-channel-strong"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+		return "book";
+	}
+}', 
+'function makeMARCurl(link, rsId, rrsId, query) {
+	return ''http://hip.bium.univ-paris5.fr/uPortal/Print?link='' + link + ''&xslFileName=com/dynix/hip/uportal/channels/standard/FullMarc.xsl&F=/searching/getmarcdata&responseSessionId='' + rsId + ''&responseResultSetId='' + rrsId + ''&searchGroup=BIUM-13&query='' + query + ''&searchTargets=16&locale=fr_FR'';
+}
+
+function doWeb(doc, url) {
+	var n = doc.documentElement.namespaceURI;
+	var ns = n ? function(prefix) {
+		if (prefix == ''x'') return n; else return null;
+	} : null;
+	
+	var books = new Array();
+	if (detectWeb(doc, url) == "multiple") {
+		var items = new Object();
+		var links = doc.evaluate(''//a[@class="itemTitle"]'', doc, ns, XPathResult.ANY_TYPE, null);
+		var link;
+		while (link = links.iterateNext()) {
+			items[link.href] = Zotero.Utilities.trimInternal(link.textContent);
+		}
+		items = Zotero.selectItems(items);
+		var rsId = doc.evaluate(''//input[@name="responseSessionId"]'', doc, ns, XPathResult.ANY_TYPE, null).iterateNext().value;
+		var rrsId = doc.evaluate(''//input[@name="responseResultSetId"]'', doc, ns, XPathResult.ANY_TYPE, null).iterateNext().value;
+		var query = doc.evaluate(''//input[@name="query"]'', doc, ns, XPathResult.ANY_TYPE, null).iterateNext().value;
+		var linkRE = new RegExp("''([^'']+)''", "g");
+		for (var i in items) {
+			var link = linkRE.exec(i)[1];
+			Zotero.debug(link);
+			books.push(makeMARCurl(link, rsId, rrsId, query));
+		}
+	} else {
+		var link = url.match(/link=([^&]+)/)[1];
+		var rsId = url.match(/responseSessionId=([^&]+)/)[1];
+		var rrsId = url.match(/responseResultSetId=([^&]+)/)[1];
+		var query = url.match(/query=([^&]+)/)[1];
+		books = [makeMARCurl(link, rsId, rrsId, query)];
+	}
+	var translator = Zotero.loadTranslator("import");
+	translator.setTranslator("a6ee60df-1ddc-4aae-bb25-45e0537be973");
+	var marc = translator.getTranslatorObject();
+	Zotero.Utilities.processDocuments(books, function(doc) {
+		var rows = doc.evaluate(''//center/table/tbody/tr'', doc, ns, XPathResult.ANY_TYPE, null);
+		var row;
+		var record = new marc.record();
+		while (row = rows.iterateNext()) {
+			var field = Zotero.Utilities.trimInternal(doc.evaluate(''./td[1]'', row, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent.replace(":", ""));
+			if (field) {
+				var value = doc.evaluate(''./td[2]'', row, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent;
+				if (value.split(/\n/)[1]) value = Zotero.Utilities.trimInternal(value.split(/\n/)[1]);
+				if (field == "LDR") {
+					record.leader = value;
+				} else if (field != "FMT") {
+					value = value.replace(/\¤([a-z])/g, marc.subfieldDelimiter+ "$1");
+					var code = field.substring(0, 3);
+					var ind = "";
+					if (field.length > 3) {
+						ind = field[3];
+						if (field.length > 4) {
+							ind += field[4];
+						}
+					}
+					record.addField(code, ind, value);
+				}
+			}
+		}
+		var item = new Zotero.Item();
+		record.translate(item);
+		
+		var oldauthors = item.creators;
+		var newauthors = new Array();
+		for each (var aut in oldauthors) {
+			if (aut.lastName.match(/^[A-Z][^\s]+\s[^\s]+/)) newauthors.push(Zotero.Utilities.cleanAuthor(aut.lastName.match(/^[A-Z][^\s]+\s[^\s]+/)[0].replace(/^([^\s]+)\s+(.*)$/, "$2 $1"), "author"));
+		}
+		item.creators = newauthors;
+		item.complete();
+	}, function() {Zotero.done;});
+	Zotero.wait();
+}');
+
+REPLACE INTO translators VALUES ('fc410e64-0252-4cd3-acb1-25e584775fa2', '1.0.0b4.r5', '', '2008-06-08 23:00:00', '0', '100', '4', 'National Library of Australia', 'Michael Berkowitz', 'http://librariesaustralia.nla.gov.au/', 
+'function detectWeb(doc, url) {
+	if (url.match("action=Search")) {
+		return "multiple";
+	} else if (url.match("action=Display")) {
+		return "book";
+	}
+}', 
+'function doWeb(doc, url) {
+	var n = doc.documentElement.namespaceURI;
+	var ns = n ? function(prefix) {
+		if (prefix == ''x'') return n; else return null;
+	} : null;
+	var books = new Array();
+	if (detectWeb(doc, url) == "multiple") {
+		var items = Zotero.Utilities.getItemArray(doc, doc, ''action=Display&'');
+		items = Zotero.selectItems(items);
+		for (var i in items) {
+			books.push(i);
+		}
+	} else {
+		books = [url];
+	}
+	Zotero.Utilities.processDocuments(books, function(doc) {
+		var table = doc.evaluate(''//tbody/tr[td[1][@class="CellAlignRight"]/strong]'', doc, ns, XPathResult.ANY_TYPE, null);
+		var row;
+		var data = new Object();
+		while (row = table.iterateNext()) {
+			var heading = doc.evaluate(''./td[1]'', row, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent;
+			var value = doc.evaluate(''./td[2]'', row, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent;
+			data[Zotero.Utilities.trimInternal(heading)] = value;
+		}
+		item = new Zotero.Item("book");
+		item.title = Zotero.Utilities.trimInternal(data[''Title:''].match(/^[^/]+/)[0]);
+		if (data[''Author:''].match(/\w+/)) item.creators.push(Zotero.Utilities.cleanAuthor(data[''Author:''], "author", true));
+		if (data[''Published:''].match(/\w+/)) {
+			var pub = data[''Published:''].match(/^([^:]+):([^,]+),(.*)$/);
+			item.location = Zotero.Utilities.trimInternal(pub[1]);
+			item.publisher = Zotero.Utilities.trimInternal(pub[2]);
+			item.date = Zotero.Utilities.trimInternal(pub[3].replace(/\D/g, ""));
+		}
+		if (data[''Subjects:'']) {
+			var kws = data[''Subjects:''].split(".");
+			Zotero.debug(kws);
+			for each (var key in kws) {
+				if (key.match(/\w+/)) item.tags.push(key);
+			}
+		}
+		if (data[''ISBN:''].match(/\w+/)) item.ISBN = Zotero.Utilities.trimInternal(data[''ISBN:''].match(/^[^(]+/)[0]);
+		item.complete();
+	}, function() {Zotero.done;});
+	Zotero.wait();
+}');
+
+REPLACE INTO translators VALUES ('e40a27bc-0eef-4c50-b78b-37274808d7d2', '1.0.0b4.r5', '', '2008-06-06 08:45:00', '0', '100', '4', 'J-Stage', 'Michael Berkowitz', 'http://www.jstage.jst.go.jp/', 
+'function detectWeb(doc, url) {
+	if (doc.evaluate(''//a[contains(@href, "_ris")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+		return "journalArticle";
+	} else if (doc.evaluate(''//tr/td[2]/table/tbody/tr/td/table/tbody/tr[td[2]//a]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext() ||
+		doc.evaluate(''//tr/td/table/tbody/tr/td/table/tbody/tr[td[1]//a]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+		return "multiple";
+	}
+}
+', 
+'function RISify(str) {
+	return str.replace("_article", "_ris").replace("article", "download");
+}
+
+function doWeb(doc, url) {
+	var n = doc.documentElement.namespaceURI;
+	var ns = n ? function(prefix) {
+		if (prefix == ''x'') return n; else return null;
+	} : null;
+	
+	var arts = new Array();
+	if (detectWeb(doc, url) == "multiple") {
+		var items = new Object();
+		var xpath;
+		var titlex;
+		var linkx;
+		if (doc.evaluate(''//tr/td[2]/table/tbody/tr/td/table/tbody/tr[td[2]//a]'', doc, ns, XPathResult.ANY_TYPE, null).iterateNext()) {
+			xpath = ''//tr/td[2]/table/tbody/tr/td/table/tbody/tr[td[2]//a]'';
+			titlex = ''./td[2]//strong'';
+			linkx = ''./td[2]//a[1]'';
+		} else if (doc.evaluate(''//tr/td/table/tbody/tr/td/table/tbody/tr[td[1]//a]'', doc, ns, XPathResult.ANY_TYPE, null).iterateNext()) {
+			xpath = ''/html/body/div/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[td//a[contains(@href, "_pdf")]]'';
+			titlex = ''.//td/b'';
+			linkx = ''.//td/a[contains(@href, "_article")]'';
+		}
+		Zotero.debug(xpath);
+		
+		var list = doc.evaluate(xpath, doc, ns, XPathResult.ANY_TYPE, null);
+		var nextitem;
+		while (nextitem = list.iterateNext()) {
+			var title = Zotero.Utilities.trimInternal(doc.evaluate(titlex, nextitem, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+			var link = doc.evaluate(linkx, nextitem, ns, XPathResult.ANY_TYPE, null).iterateNext().href;
+			items[link] = title;
+		}
+		items = Zotero.selectItems(items);
+		for (var i in items) {
+			arts.push(RISify(i));
+		}
+	} else {
+		arts = [RISify(url)];
+	}
+	Zotero.debug(arts);
+	for each (var uri in arts) {
+		Zotero.Utilities.HTTP.doGet(uri, function(text) {
+			Zotero.debug(text);
+			var translator = Zotero.loadTranslator("import");
+			translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
+			translator.setString(text);
+			translator.setHandler("itemDone", function(obj, item) {
+				item.url = uri.replace("download", "article").replace("_ris", "_article");
+				var pdfurl = item.url.replace(/(\d+)_(\d+)\/_article/, "$2/_pdf").replace("download", "article");
+				Zotero.debug(pdfurl);
+				item.attachments = [
+					{url:item.url, title:item.publicationTitle + " Snapshot", mimeType:"text/html"},
+					{url:pdfurl, title:item.publicationTitle + " PDF", mimeType:"application/pdf"}
+				];
+				item.complete();
+			});
+			translator.translate();
+		});
+	}
+}');
+
+REPLACE INTO translators VALUES ('bbf1617b-d836-4665-9aae-45f223264460', '1.0.0b4.r5', '', '2008-06-03 19:40:00', '0', '100', '4', 'A Contra Corriente', 'Michael Berkowitz', 'http://www.ncsu.edu/project/acontracorriente', 
+'function detectWeb(doc, url) {
+	if (doc.evaluate(''//tr[td[1]//img][td[3]]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+		return "multiple";
+	}
+}', 
+'function doWeb(doc, url) {
+	var arts = doc.evaluate(''//tr[td[1]//img][td[3]]'', doc, null, XPathResult.ANY_TYPE, null);
+	var art;
+	var selectList = new Object();
+	var items = new Object();
+	while (art = arts.iterateNext()) {
+		var item = new Object();
+		var title = doc.evaluate(''.//a'', art, null, XPathResult.ANY_TYPE, null).iterateNext();
+		item[''title''] = Zotero.Utilities.trimInternal(title.textContent);
+		item[''pdfurl''] = title.href;
+		item[''author''] = doc.evaluate(''.//strong'', art, null, XPathResult.ANY_TYPE, null).iterateNext().textContent;
+		selectList[item.title] = item.title;
+		items[item.title] = item;
+	}
+	var selected = Zotero.selectItems(selectList);
+	var voliss = Zotero.Utilities.trimInternal(doc.evaluate(''//td[@class="red01"]/font[2]/strong'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+	voliss = voliss.match(/Vol\.\s+(\d+),\s+No\.\s+(\d+)\.\s+([^|]+)|/);
+	Zotero.debug(voliss);
+	for each (var title in selected) {
+		var item = new Zotero.Item("journalArticle");
+		var olditem = items[title];
+		item.title = olditem.title;
+		item.creators = [Zotero.Utilities.cleanAuthor(olditem.author, "author")];
+		item.volume = voliss[1];
+		item.issue = voliss[2]
+		item.date = Zotero.Utilities.trimInternal(voliss[3]);
+		item.complete();
+	}
+}');
+
+REPLACE INTO translators VALUES ('0aea3026-a246-4201-a4b5-265f75b9a6a7', '1.0.0b4.r5', '', '2008-05-30 08:00:00', '0', '100', '4', 'Australian Dictionary of Biography', 'Tim Sherratt and Michael Berkowitz', 'http://www.adb.online.anu.edu.au', 
+'function detectWeb(doc, url) {
+    if (url.match(/adbp-ent_search|browse_people|browse_authors/)) {
         return "multiple";
-    } else if (url.match("ItemDetail")) {
+    } else if (url.match(/biogs\/AS*\d+b.htm/)) {
+	return "bookSection";
+    }
+}', 
+'function doWeb(doc, url) {
+	var namespace = doc.documentElement.namespaceURI;
+	var nsResolver = namespace ? function(prefix) {
+			if (prefix == "x") return namespace; else return null;
+		} : null;
+	if (detectWeb(doc, url) == "multiple") {
+		var records = new Array();
+		var items = new Object();
+		if (url.match(/browse_people/)) {
+			var titles = doc.evaluate(''//ul[@class="pb-results"]/li'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+			var links = doc.evaluate(''//ul[@class="pb-results"]/li/a[1]'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+		} else if (url.match(/browse_authors/)) {
+			var titles = doc.evaluate(''//div[@id="content"]/dl/dd'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+			var links = doc.evaluate(''//div[@id="content"]/dl/dd/a[1]'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+		} else if (url.match(/adbp-ent_search/)) {
+			var titles = doc.evaluate(''//div[@id="content"]/ol/li'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+			var links = doc.evaluate(''//div[@id="content"]/ol/li//a[1]'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+		}
+		var title;
+		var link;
+		while ((link = links.iterateNext()) && (title = titles.iterateNext())) {
+			items[link.href] = Zotero.Utilities.trimInternal(title.textContent);
+		}
+		
+		items = Zotero.selectItems(items);
+		for (var i in items) {
+			records.push(i);
+		}
+	} else {
+		records = [url]; 
+	}
+	Zotero.Utilities.processDocuments(records, function(doc) {
+		var item = new Zotero.Item("bookSection");
+		var author = Zotero.Utilities.cleanString(doc.evaluate(''//div[@id="content"]/p[strong="Author"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().lastChild.textContent);
+		item.creators.push(Zotero.Utilities.cleanAuthor(author, "author"));
+		item.title = Zotero.Utilities.cleanString(doc.evaluate(''//h1'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+		var pubdetails = Zotero.Utilities.cleanString(doc.evaluate(''//div[@id="content"]/p[strong="Print Publication Details"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+		pubdetails = pubdetails.match(/Volume (\d+), ([\w ]+), (\d{4}), p+\.*\s+([\d-]+)/);
+		item.volume = RegExp.$1;
+		item.publisher = RegExp.$2;
+		item.date = RegExp.$3;
+		item.pages = RegExp.$4;
+		item.url = doc.location.href;
+		item.bookTitle = "Australian Dictionary of Biography";
+		item.place = "Melbourne";
+		item.repository = "Australian Dictionary of Biography";
+		var tags = doc.evaluate(''//li/a[starts-with(@title, "find people with the occupation")]'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+		while (tag = tags.iterateNext()) {
+			item.tags.push(tag.textContent);
+		}
+		item.attachments = [
+			{url:item.url, title: "Snapshot - " + item.title, mimeType:"text/html"},
+		];
+		item.complete();
+		
+	}, function() {Zotero.done;});
+}');
+
+REPLACE INTO translators VALUES ('83538f48-906f-40ef-bdb3-e94f63676307', '1.0.0b4.r5', '', '2008-05-30 08:00:00', '1', '100', '4', 'NAA RecordSearch', 'Tim Sherratt', 'http://naa12.naa.gov.au/scripts/', 
+'function detectWeb(doc, url) {
+    if (url.match(/Items_listing.asp/i)) {
+        return "multiple";
+    } else if (url.match(/ItemDetail.asp/i)) {
 	return "manuscript";
     }
 }', 
@@ -1149,7 +2476,297 @@ REPLACE INTO translators VALUES ('83538f48-906f-40ef-bdb3-e94f63676307', '1.0.0b
 	}, function() {Zotero.done;});
 }');
 
-REPLACE INTO translators VALUES ('882f70a8-b8ad-403e-bd76-cb160224999d', '1.0.0b4.r5', '', '2008-05-15 21:30:00', '0', '100', '4', 'Vanderbilt eJournals', 'Michael Berkowitz', 'http://ejournals.library.vanderbilt.edu/', 
+REPLACE INTO translators VALUES ('cdf8269c-86b9-4039-9bc4-9d998c67740e', '1.0.0b4.r5', '', '2008-05-21 19:15:00', '0', '100', '4', 'Verniana-Jules Verne Studies', 'Michael Berkowitz', 'http://jv.gilead.org.il/studies/', 
+'function detectWeb(doc, url) {
+	if (url.match(/article\/view/)) {
+		return "journalArticle";
+	} else  if (url.match(/(issue|advancedResults)/)) {
+		return "multiple";
+	}
+}', 
+'function prepNos(link) {
+	if (link.match(/\d+\/\d+$/)) {
+		var nos = link.match(/\d+\/\d+$/)[0];
+	} else {
+		var nos = link.match(/\d+$/)[0] + ''/0'';
+	}
+	return ''http://jv.gilead.org.il/studies/index.php/studies/rt/captureCite/'' + nos + ''/RefManCitationPlugin'';
+}
+
+function doWeb(doc, url) {
+	var n = doc.documentElement.namespaceURI;
+	var ns = n ? function(prefix) {
+		if (prefix == ''x'') return n; else return null;
+	} : null;
+	
+	var arts = new Array();
+	if (detectWeb(doc, url) == "multiple") {
+		var items = new Object();
+		var xpath = ''//tr[td/a[2]]'';
+		if (url.match(/issue/)) {
+			var titlex = ''./td[1]'';
+			var linkx = ''./td[2]/a[contains(text(), "HTML")]'';
+		} else if (url.match(/advanced/)) {
+			var titlex = ''./td[2]'';
+			var linkx = ''./td[3]/a[contains(text(), "HTML")]'';
+		}
+		var results = doc.evaluate(xpath, doc, ns, XPathResult.ANY_TYPE, null);
+		var result;
+		while (result = results.iterateNext()) {
+			var title = Zotero.Utilities.trimInternal(doc.evaluate(titlex, result, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+			var link = doc.evaluate(linkx, result, ns, XPathResult.ANY_TYPE, null).iterateNext().href;
+			items[link] = title;
+		}
+		items = Zotero.selectItems(items);
+		for (var i in items) {
+			arts.push(prepNos(i));
+		}
+	} else {
+		arts = [prepNos(url)];
+	}
+	Zotero.Utilities.HTTP.doGet(arts, function(text) {
+		var translator = Zotero.loadTranslator("import");
+		translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
+		translator.setString(text);
+		translator.setHandler("itemDone", function(obj, item) {
+			var auts = new Array();
+			for each (var aut in item.creators) {
+				auts.push(Zotero.Utilities.cleanAuthor(aut.lastName, "author"));
+			}
+			item.creators = auts;
+			item.attachments = [{url:item.url, title:"Verniana Snapshot", mimeType:"text/html"}];
+			var bits = item.publicationTitle.split(/;/);
+			item.publicationTitle = bits[0];
+			var voliss = bits[1].match(/Vol\s+(\d+)\s+\((\d+)\)/);
+			item.volume = voliss[1];
+			item.date = voliss[2];
+			item.complete();	
+		});
+		translator.translate();
+	});
+	Zotero.wait();
+}');
+
+REPLACE INTO translators VALUES ('b33af0e1-d122-45b2-b144-4b4eedd12d5d', '1.0.0b4.r5', '', '2008-05-21 19:15:00', '0', '100', '4', 'Wildlife Biology in Practice', 'Michael Berkowitz', 'http://www.socpvs.org/journals/index.php/wbp', 
+'function detectWeb(doc, url) {
+	if (url.match(/showToc/) || url.match(/advancedResults/)) {
+		return "multiple";
+	} else if (url.match(/article/)) {
+		return "journalArticle";
+	}
+}', 
+'function doWeb(doc, url) {
+	var n = doc.documentElement.namespaceURI;
+	var ns = n ? function(prefix) {
+		if (prefix == ''x'') return n; else return null;
+	} : null;
+	
+	var arts = new Array();
+	if (detectWeb(doc, url) == "multiple") {
+		var items = new Object();
+		var xpath = ''//tr[td/a[2]]'';
+		if (url.match(/issue/)) {
+			var linkx = ''./td[2]/a[1]'';
+			var titlex = ''./td[1]'';
+		} else if (url.match(/advanced/)) {
+			var linkx = ''./td[3]/a[1]'';
+			var titlex = ''./td[2]'';
+		}
+		var results = doc.evaluate(xpath, doc, ns, XPathResult.ANY_TYPE, null);
+		var result;
+		while (result = results.iterateNext()) {
+			var title = doc.evaluate(titlex, result, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent;
+			var link = doc.evaluate(linkx, result, ns, XPathResult.ANY_TYPE, null).iterateNext().href;
+			items[link] = Zotero.Utilities.trimInternal(title);
+		}
+		items = Zotero.selectItems(items);
+		for (var i in items) {
+			arts.push(i.replace(/view/, "viewArticle"));
+		}
+	} else {
+		arts = [url.replace(/viewRST/, "viewArticle")];
+	}
+	Zotero.Utilities.processDocuments(arts, function(doc) {
+		var item = new Zotero.Item("journalArticle");
+		var voliss = Zotero.Utilities.trimInternal(doc.evaluate(''//div[@id="main"]/h2'', doc, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+		voliss = voliss.match(/^([^,]+),\s+([^;]+);\s+(\d+)\((\d+)\);\s+([^;]+)/);
+		item.journalAbbreviation = voliss[1];
+		item.date = voliss[2];
+		item.issue = voliss[3];
+		item.volume = voliss[4];
+		item.pages = voliss[5];
+		var authors = doc.evaluate(''//div[@id="authorDetails"]/ul[@class="lista"]/li/strong/a'', doc, ns, XPathResult.ANY_TYPE, null);
+		var author;
+		while (author = authors.iterateNext()) {
+			item.creators.push(Zotero.Utilities.cleanAuthor(author.title.match(/^\w+\b\s+(.*)\s+\b\w+$/)[1], "author"));
+		}
+		item.publicationTitle = "Wildlife Biology in Practice";
+		item.ISSN = "1646-2742";
+		item.DOI = doc.evaluate(''//div[@id="copyArticle"]/a[1]'', doc, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent.match(/doi:\s+([^\s]+)/)[1];
+		item.url = doc.location.href;
+		item.title = Zotero.Utilities.trimInternal(doc.evaluate(''//div[@id="content"]/h3'', doc, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+		item.abstractNote = Zotero.Utilities.trimInternal(doc.evaluate(''//div[@id="abstract"]/blockquote/p'', doc, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+		item.tags = doc.evaluate(''//div[@id="abstract"]'', doc, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent.match(/Keywords:\s+([^\.]+)/)[1].split(/,\s+/);
+		
+		var pdfurl = doc.evaluate(''//div[@id="rt"]/a[@class="action noarrow"]'', doc, ns, XPathResult.ANY_TYPE, null).iterateNext().href;
+		item.attachments = [
+			{url:item.url, title:item.publicationTitle + " Snapshot", mimeType:"text/html"},
+			{url:pdfurl, title:item.publicationTitle + " PDF", mimeType:"application/pdf"}
+		];
+		item.complete();
+	}, function() {Zotero.done;});
+	Zotero.wait();
+}');
+
+REPLACE INTO translators VALUES ('d2416f31-4f24-4e18-8c66-06122af5bc2c', '1.0.0b4.r5', '', '2008-05-20 19:10:00', '0', '100', '4', 'Women in Judaism', 'Michael Berkowitz', 'http://jps.library.utoronto.ca/', 
+'function detectWeb(doc, url) {
+	if (doc.evaluate(''//tr[td/a[2]]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+		return "multiple";
+	} else if (url.match(/article\/view/)) {
+		return "journalArticle";
+	}
+}', 
+'function doWeb(doc, url) {
+	var n = doc.documentElement.namespaceURI;
+	var ns = n ? function(prefix) {
+		if (prefix == ''x'') return n; else return null;
+	} : null;
+	
+	var arts = new Array();
+	if (detectWeb(doc, url) == "multiple") {
+		var xpath = ''//tr[td/a[2]]'';
+		if (url.match(/search/)) {
+			var titlex = ''./td[2]'';
+			var linkx = ''./td[3]/a[1]'';
+		} else if (url.match(/issue/)) {
+			var titlex = ''./td[1]'';
+			var linkx = ''./td[2]/a[1]'';
+		}
+		var items = new Object();
+		var results = doc.evaluate(xpath, doc, ns, XPathResult.ANY_TYPE, null);
+		var result;
+		while (result = results.iterateNext()) {
+			var title = Zotero.Utilities.trimInternal(doc.evaluate(titlex, result, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+			var link = doc.evaluate(linkx, result, ns, XPathResult.ANY_TYPE, null).iterateNext().href;
+			items[link] = title;
+		}
+		items = Zotero.selectItems(items);
+		for (var i in items) {
+			arts.push(i.replace("view", "viewArticle"));
+		}
+	} else {
+		arts = [url];
+	}
+	Zotero.debug(arts);
+	Zotero.Utilities.processDocuments(arts,function(doc) {
+		var newDoc = doc;
+		//var newDoc = doc.defaultView.window.frames[0].document;
+		Zotero.debug(newDoc.location.href);
+		
+		var item = new Zotero.Item("journalArticle");
+		if (newDoc.evaluate(''//div[@class="Section1"]/div/p/b/span'', newDoc, ns, XPathResult.ANY_TYPE, null).iterateNext()) {
+			item.title = Zotero.Utilities.trimInternal(newDoc.evaluate(''//div[@class="Section1"]/div/p/b/span'', newDoc, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+		} else {
+			item.title = Zotero.Utilities.trimInternal(newDoc.evaluate(''//div[@id="content"]/h3'', newDoc, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+		}
+		var absX = ''//div[@id="content"]/div[2]'';
+		if (newDoc.evaluate(absX, newDoc, ns, XPathResult.ANY_TYPE, null).iterateNext()) item.abstractNote = Zotero.Utilities.trimInternal(newDoc.evaluate(absX, newDoc, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+		if (newDoc.evaluate(''//div[@id="content"]/div/i'', newDoc, ns, XPathResult.ANY_TYPE, null).iterateNext()) {
+			var authors = newDoc.evaluate(''//div[@id="content"]/div/i'', newDoc, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent.split(/,\s+/);
+			for each (var aut in authors) {
+				item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author"));
+			}
+			var voliss = newDoc.evaluate(''//div[@id="breadcrumb"]/a[2]'', newDoc, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent.match(/(\d+)/g);
+			item.volume = voliss[0];
+			item.issue = voliss[1];
+			item.date = voliss[2];
+		}
+		var pdfurl = doc.evaluate(''//a[contains(text(), "PDF")]'', newDoc, ns, XPathResult.ANY_TYPE, null).iterateNext().href.replace("view", "download");
+		item.attachments = [
+			{url:doc.location.href, title:"Women In Judaism Snapshot", mimeType:"text/html"},
+			{url:pdfurl, title:"Women In Judaism PDF", mimeType:"application/pdf"}
+		];
+		item.complete();
+	}, function() {Zotero.done;});
+	Zotero.wait();
+}');
+
+REPLACE INTO translators VALUES ('4f62425a-c99f-4ce1-b7c1-5a3ac0d636a3', '1.0.0b4.r5', '', '2008-05-20 19:10:00', '0', '100', '4', 'AfroEuropa', 'Michael Berkowitz', 'http://journal.afroeuropa.eu/', 
+'function detectWeb(doc, url) {
+	if (doc.evaluate(''//tr[td/a[2]]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+		return "multiple";
+	} else if (url.match(/article\/view\//)) {
+		return "journalArticle";
+	}
+}', 
+'function makeExport(site, str) {
+	var nums = str.match(/\d+(\/\d+)?/)[0];
+	if (!nums.match(/\//)) nums += "/0";
+	return site + ''rt/captureCite/'' + nums + ''/referenceManager'';
+}
+
+function doWeb(doc, url) {
+	var n = doc.documentElement.namespaceURI;
+	var ns = n ? function(prefix) {
+		if (prefix == ''x'') return n; else return null;
+	} : null;
+	
+	var site = url.match(/^http:\/\/([^/]*\/)+index\.php\/[^/]*\//)[0];
+	var arts = new Array();
+	if (detectWeb(doc, url) == "multiple") {
+		var xpath = ''//tr[td/a]'';
+		if (url.match(/search/)) {
+			var titlex = ''./td[2]'';
+			var linkx = ''./td[3]/a[1]'';
+		} else if (url.match(/issue/)) {
+			var titlex = ''./td[1]'';
+			var linkx = ''./td[2]/a[1]'';
+		}
+		var items = new Object();
+		var results = doc.evaluate(xpath, doc, ns, XPathResult.ANY_TYPE, null);
+		var result;
+		while (result = results.iterateNext()) {
+			var title = Zotero.Utilities.trimInternal(doc.evaluate(titlex, result, ns, XPathResult.ANY_TYPE, null).iterateNext().textContent);
+			var link = doc.evaluate(linkx, result, ns, XPathResult.ANY_TYPE, null).iterateNext().href;
+			items[makeExport(site, link)] = title;
+		}
+		items = Zotero.selectItems(items);
+		for (var i in items) {
+			arts.push(i);
+		}
+	} else {
+		arts = [makeExport(cite, url)];
+	}
+	Zotero.Utilities.HTTP.doGet(arts, function(text) {
+		var translator = Zotero.loadTranslator("import");
+		translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
+		translator.setString(text);
+		translator.setHandler("itemDone", function(obj, item) {
+			item.title = Zotero.Utilities.capitalizeTitle(item.title);
+			var voliss = item.publicationTitle.split(/;\s+/);
+			item.publicationTitle = Zotero.Utilities.trimInternal(voliss[0]);
+			voliss = voliss[1].match(/(\d+),\s+No\s+(\d+)\s+\((\d+)\)/);
+			item.volume = voliss[1];
+			item.issue = voliss[2];
+			item.date = voliss[3];
+			var auts = new Array();
+			for each (var aut in item.creators) {
+				auts.push(aut.lastName);
+			}
+			item.creators = new Array();
+			for each (var aut in auts) {
+				item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author"));
+			}
+			item.attachments[0].mimeType = "text/html";
+			item.attachments[0].title = "AfroEuropa Snapshot";
+			item.complete();
+		});
+		translator.translate();
+	});
+	Zotero.wait();
+}');
+
+REPLACE INTO translators VALUES ('882f70a8-b8ad-403e-bd76-cb160224999d', '1.0.0b4.r5', '', '2008-05-19 17:20:00', '0', '100', '4', 'Vanderbilt eJournals', 'Michael Berkowitz', 'http://ejournals.library.vanderbilt.edu/', 
 'function detectWeb(doc, url) {
 	if (url.match(/viewarticle.php/)) {
 		return "journalArticle";
@@ -2093,9 +3710,9 @@ REPLACE INTO translators VALUES ('bdaac15c-b0ee-453f-9f1d-f35d00c7a994', '1.0.0b
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('5278b20c-7c2c-4599-a785-12198ea648bf', '1.0.0b4.r5', '', '2008-05-08 20:30:00', '1', '100', '4', 'ARTstor', 'Ameer Ahmed and Michael Berkowitz', 'http://web2.artstor.org', 
+REPLACE INTO translators VALUES ('5278b20c-7c2c-4599-a785-12198ea648bf', '1.0.0b4.r5', '', '2008-05-19 19:00:00', '1', '100', '4', 'ARTstor', 'Ameer Ahmed and Michael Berkowitz', 'http://[^/]*web2.artstor.org[^/]*', 
 'function detectWeb(doc, url) {
-	if (url.match(/(S|s)earch/)) return "multiple"
+	if (url.match(/(S|s)earch/) && (doc.evaluate(''//div[@id="thumbContentWrap"]/div'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent.match(/\w+/))) return "multiple"
 }', 
 'function doWeb(doc, url) {
 	if (url.indexOf("|")!=-1){	
@@ -3103,7 +4720,7 @@ function doWeb(doc, url) {
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('4afb932d-9211-4c0b-a31c-cfa984d62b66', '1.0.0b4.r5', '', '2008-04-18 08:55:00', '0', '100', '4', 'OAIster', 'Michael Berkowitz', 'http://quod.lib.umich.edu/cgi/b/', 
+REPLACE INTO translators VALUES ('4afb932d-9211-4c0b-a31c-cfa984d62b66', '1.0.0b4.r5', '', '2008-05-20 19:10:00', '1', '100', '4', 'OAIster', 'Michael Berkowitz', 'http://quod.lib.umich.edu/cgi/b/', 
 'function detectWeb(doc, url) {
 	if (doc.title.indexOf("OAIster") != -1) {
 		return "multiple";
@@ -3152,17 +4769,21 @@ REPLACE INTO translators VALUES ('4afb932d-9211-4c0b-a31c-cfa984d62b66', '1.0.0b
 			item.itemType = "journalArticle";
 		} else if (itemType.match(/(T|t)hesis/)) {
 			item.itemType = "thesis";
+		} else if (itemType == "image") {
+			item.itemType = "artwork";
 		}
 		item.title = data[''Title''];
-		var authors = data[''Author/Creator''].split(/;/);
-		for each (var aut in authors) {
-			if (aut.match(/,/)) {
-				aut = aut.split(/,\s+/);
-				aut = aut[1] + " " + aut[0];
+		if (data[''Author/Creator'']) {
+			var authors = data[''Author/Creator''].split(/;/);
+			for each (var aut in authors) {
+				if (aut.match(/,/)) {
+					aut = aut.split(/,\s+/);
+					aut = aut[1] + " " + aut[0];
+				}
+				item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author"));
 			}
-			item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author"));
 		}
-		item.date = data[''Year''].match(/\d{4}\-\d{2}\-\d{2}/)[0];
+		item.date = data[''Year'']; //.match(/\d{4}\-\d{2}\-\d{2}/)[0];
 		item.url = data[''URL''];
 		if (data[''Note'']) item.abstractNote = Zotero.Utilities.trimInternal(data[''Note'']);
 		if (data[''Subject'']) {
@@ -3801,7 +5422,7 @@ REPLACE INTO translators VALUES ('a69deb08-47d9-46ad-afca-bc3a2499ad34', '1.0.0b
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('d921155f-0186-1684-615c-ca57682ced9b', '1.0.0b4.r1', '', '2008-05-15 18:30:00', '1', '100', '4', 'JSTOR', 'Simon Kornblith, Sean Takats and Michael Berkowitz', 'https?://[^/]*jstor\.org[^/]*/(action/(showArticle|doBasicSearch|doAdvancedSearch)|stable/|pss)', 
+REPLACE INTO translators VALUES ('d921155f-0186-1684-615c-ca57682ced9b', '1.0.0b4.r1', '', '2008-05-27 16:45:00', '1', '100', '4', 'JSTOR', 'Simon Kornblith, Sean Takats and Michael Berkowitz', 'https?://[^/]*jstor\.org[^/]*/(action/(showArticle|doBasicSearch|doAdvancedSearch)|stable/|pss|sici)', 
 'function detectWeb(doc, url) {
 	var namespace = doc.documentElement.namespaceURI;
 	var nsResolver = namespace ? function(prefix) {
@@ -3840,8 +5461,8 @@ REPLACE INTO translators VALUES ('d921155f-0186-1684-615c-ca57682ced9b', '1.0.0b
 		var downloadString = "&noDoi=yesDoi&downloadFileName=deadbeef&suffix=" + jid;
 		var pdfYes = false;
 	} else {
-		if(elmts.iterateNext()) {
-				var jid;
+		if(elmt = elmts.iterateNext()) {
+			var jid;
 			var jidRe1 = new RegExp("doi=[0-9\.]+/([0-9]+)");
 			var jidRe2 = new RegExp("stable/view/([0-9]+)");
 			var jidRe3 = new RegExp("stable/([0-9]+)");
@@ -3855,7 +5476,7 @@ REPLACE INTO translators VALUES ('d921155f-0186-1684-615c-ca57682ced9b', '1.0.0b
 			} else if (jidmatch3) {
 				jid = jidmatch3[1];
 			} else {
-				return false;
+				jid = elmt.href.match(/jid=([0-9]+)/)[1];
 			}
 			var downloadString = "&noDoi=yesDoi&downloadFileName=deadbeef&suffix="+jid;
 		}
@@ -4607,11 +6228,11 @@ function doWeb(doc, url) {
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('b8a86e36-c270-48c9-bdd1-22aaa167ef46', '1.0.0b4.r5', '', '2008-03-30 08:00:00', '0', '100', '4', 'Agencia del ISBN', 'Michael Berkowitz', 'http://www.mcu.es/cgi-brs/BasesHTML', 
+REPLACE INTO translators VALUES ('b8a86e36-c270-48c9-bdd1-22aaa167ef46', '1.0.0b4.r5', '', '2008-06-08 23:00:00', '0', '100', '4', 'Agencia del ISBN', 'Michael Berkowitz', 'http://www.mcu.es/webISBN', 
 'function detectWeb(doc, url) {
-	if (doc.evaluate(''//div[@id="formularios"]/div[@class="isbnResultado"]/div[@class="isbnResDescripcion"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+	if (doc.evaluate(''//div[@class="isbnResultado"]/div[@class="isbnResDescripcion"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
 		return "multiple";
-	} else if (doc.evaluate(''//div[@id="fichaISBN"]/table/tbody/tr'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+	} else if (doc.evaluate(''//div[@class="fichaISBN"]/div[@class="cabecera"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
 		return "book";
 	}
 }', 
@@ -4619,7 +6240,7 @@ REPLACE INTO translators VALUES ('b8a86e36-c270-48c9-bdd1-22aaa167ef46', '1.0.0b
 	var books = new Array();
 	if (detectWeb(doc, url) == "multiple") {
 		var items = new Object();
-		var boxes = doc.evaluate(''//div[@id="formularios"]/div[@class="isbnResultado"]/div[@class="isbnResDescripcion"]'', doc, null, XPathResult.ANY_TYPE, null);
+		var boxes = doc.evaluate(''//div[@class="isbnResultado"]/div[@class="isbnResDescripcion"]'', doc, null, XPathResult.ANY_TYPE, null);
 		var box;
 		while (box = boxes.iterateNext()) {
 			var book = doc.evaluate(''./p/span/strong/a'', box, null, XPathResult.ANY_TYPE, null).iterateNext();
@@ -4634,36 +6255,27 @@ REPLACE INTO translators VALUES ('b8a86e36-c270-48c9-bdd1-22aaa167ef46', '1.0.0b
 	}
 	Zotero.Utilities.processDocuments(books, function(newDoc) {
 		var data = new Object();
-		var rows = newDoc.evaluate(''//div[@id="fichaISBN"]/table/tbody/tr'', newDoc, null, XPathResult.ANY_TYPE, null);
+		var rows = newDoc.evaluate(''//div[@class="fichaISBN"]/table/tbody/tr'', newDoc, null, XPathResult.ANY_TYPE, null);
 		var next_row;
 		while (next_row = rows.iterateNext()) {
 			var heading = newDoc.evaluate(''./th'', next_row, null, XPathResult.ANY_TYPE, null).iterateNext().textContent;
 			var value = newDoc.evaluate(''./td'', next_row, null, XPathResult.ANY_TYPE, null).iterateNext().textContent;
-			data[heading] = Zotero.Utilities.trimInternal(value);
+			data[heading.replace(/\W/g, "")] = value;
 		}
 		var isbn = Zotero.Utilities.trimInternal(newDoc.evaluate(''//span[@class="cabTitulo"]/strong'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent);
 		var item = new Zotero.Item("book");
 		item.ISBN = isbn;
-		item.title = data[''Título:''];
-		author = data[''Autor:''];
+		item.title = Zotero.Utilities.trimInternal(data[''Ttulo'']);
+		
+		author = data[''Autores''];
 		if (author) {
-			if (author.match(/tr\.$/)) {
-				item.creators.push(Zotero.Utilities.cleanAuthor(author.match(/([\w\s,]+)/)[1], "author"));
-				if (author.match(/\[([^\]]+)\]/)) {
-					item.creators.push(Zotero.Utilities.cleanAuthor(author.match(/\[([^\]]+)\]/)[1], "translator"));
-				} else {
-					item.creators.push(Zotero.Utilities.cleanAuthor(author.match(/\)(.*)tr\./)[1], "translator"));
-				}
-			} else {
-				item.creators.push(Zotero.Utilities.cleanAuthor(author, "author"));
+			var authors = author.match(/\b.*,\s+\w+[^([]/g);
+			for each (aut in authors) {
+				item.creators.push(Zotero.Utilities.cleanAuthor(Zotero.Utilities.trimInternal(aut), "author", true));
 			}
 		}
-		if (data[''Publicación:'']) {
-			var pub = data[''Publicación:''].match(/([^.]+)\.([\D]+)([\d\/]+)$/);
-			item.place = pub[1];
-			item.publisher = Zotero.Utilities.trimInternal(pub[2]).replace(/[\s,]+$/, "");
-			item.date = pub[3];
-		}
+		if (data[''Publicacin'']) item.publisher = Zotero.Utilities.trimInternal(data[''Publicacin'']);
+		if (data[''FechaEdicin'']) item.date = Zotero.Utilities.trimInternal(data[''FechaEdicin'']);
 		item.complete();
 	}, function() {Zotero.done;});
 	Zotero.wait();
@@ -5065,9 +6677,9 @@ function doWeb(doc, url) {
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('9e306d5d-193f-44ae-9dd6-ace63bf47689', '1.0.0b3r1', '', '2008-03-28 16:30:00', '1', '100', '4', 'IngentaConnect', 'Michael Berkowitz', 'http://(www.)?ingentaconnect.com', 
+REPLACE INTO translators VALUES ('9e306d5d-193f-44ae-9dd6-ace63bf47689', '1.0.0b3r1', '', '2008-05-30 08:00:00', '1', '100', '4', 'IngentaConnect', 'Michael Berkowitz', 'http://(www.)?ingentaconnect.com', 
 'function detectWeb(doc, url) {
-	if (url.indexOf("article?") != -1 || url.indexOf("article;") != -1) {
+	if (url.indexOf("article?") != -1 || url.indexOf("article;") != -1 || url.indexOf("/art") != -1) {
 		return "journalArticle";
 	} else if (url.indexOf("search?") !=-1 || url.indexOf("search;") != -1) {
 		return "multiple";
@@ -5097,9 +6709,10 @@ REPLACE INTO translators VALUES ('9e306d5d-193f-44ae-9dd6-ace63bf47689', '1.0.0b
 		var key;
 		var keys = new Array();
 		while (key = keywords.iterateNext()) {
-			keys.push(key.textContent);
+			keys.push(Zotero.Utilities.capitalizeTitle(key.textContent));
 		}
 		Zotero.Utilities.HTTP.doGet(risurl, function(text) {
+			text = text.replace(/\/{2,}/g, "").replace(/\//g, "-");
 			var translator = Zotero.loadTranslator("import");
 			translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
 			translator.setString(text);
@@ -5184,7 +6797,7 @@ REPLACE INTO translators VALUES ('636c8ea6-2af7-4488-8ccd-ea280e4a7a98', '1.0.0b
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('3eabecf9-663a-4774-a3e6-0790d2732eed', '1.0.0b4.r5', '', '2008-05-15 00:30:00', '1', '100', '4', 'SciELO', 'Michael Berkowitz', 'http://(www.)?scielo.(org|br)/', 
+REPLACE INTO translators VALUES ('3eabecf9-663a-4774-a3e6-0790d2732eed', '1.0.0b4.r5', '', '2008-05-30 08:00:00', '1', '100', '4', 'SciELO', 'Michael Berkowitz', 'http://(www.)?scielo.(org|br)/', 
 'function detectWeb(doc, url) {
 	if (url.indexOf("wxis.exe") != -1) {
 		if (doc.evaluate(''//*[@class="isoref"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
@@ -5199,7 +6812,7 @@ REPLACE INTO translators VALUES ('3eabecf9-663a-4774-a3e6-0790d2732eed', '1.0.0b
 	}
 }', 
 'function makeURL(host, str) {
-	return ''http://'' + host + ''/scieloOrg/php/articleXML.php?pid='' + str.match(/pid=([^&]+)/)[1] + ''&lang=en'';
+	return ''http://www.scielo.br/scieloOrg/php/articleXML.php?pid='' + str.match(/pid=([^&]+)/)[1];
 }
 
 function doWeb(doc, url) {
@@ -5463,11 +7076,11 @@ function doWeb(doc, url) {
 	Zotero.Utilities.processDocuments(articles, scrape, function() {Zotero.done;});
 }');
 
-REPLACE INTO translators VALUES ('0abd577b-ec45-4e9f-9081-448737e2fd34', '1.0.0b4.r5', '', '2008-02-22 20:30:00', '0', '100', '4', 'DSpace', 'Michael Berkowitz', 'dspace',
+REPLACE INTO translators VALUES ('0abd577b-ec45-4e9f-9081-448737e2fd34', '1.0.0b4.r5', '', '2008-06-06 08:45:00', '0', '100', '4', 'DSpace', 'Michael Berkowitz', '(dspace|upcommons.upc.edu)', 
 'function detectWeb(doc, url) {
-	if (doc.evaluate(''//center/table[@class="itemDisplayTable"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+	if (doc.evaluate(''//table[@class="itemDisplayTable"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
 		return "document";
-	} else if (doc.evaluate(''//table[@class="miscTable"]//td[2]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+	} else if (doc.evaluate(''//table[@class="miscTable"]//td[2]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext() || doc.evaluate(''//div[@id="main"]/ul[@class="browselist"]/li/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
 		return "multiple";
 	}
 }', 
@@ -5483,7 +7096,11 @@ function doWeb(doc, url) {
 	var records = new Array();
 	if (detectWeb(doc, url) == "multiple") {
 		var items = new Object();
-		var xpath = ''//table[@class="miscTable"]/tbody/tr/td[2]/a'';
+		if (doc.evaluate(''//div[@id="main"]/ul[@class="browselist"]/li/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+			var xpath = ''//div[@id="main"]/ul[@class="browselist"]/li/a'';
+		} else {
+			var xpath = ''//table[@class="miscTable"]//td[2]//a'';
+		}
 		var rows = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null);
 		var row;
 		while (row = rows.iterateNext()) {
@@ -5496,9 +7113,7 @@ function doWeb(doc, url) {
 	} else {
 		records = [url.match(/^([^?]+)\??/)[1] + "?mode=full"];
 	}
-	Zotero.debug(records);
 	Zotero.Utilities.processDocuments(records, function(newDoc) {
-		Zotero.debug(newDoc.location.href);
 		var values = new Object();
 		var fields = newDoc.evaluate(''//table[@class="itemDisplayTable"]/tbody/tr/td[1]'', newDoc, null, XPathResult.ANY_TYPE, null);
 		var data = newDoc.evaluate(''//table[@class="itemDisplayTable"]/tbody/tr/td[2]'', newDoc, null, XPathResult.ANY_TYPE, null);
@@ -5541,12 +7156,11 @@ function doWeb(doc, url) {
 				newItem.rights = datum;
 			}
 		}
-		var pdf = newDoc.evaluate(''//td[@class="standard"]/a'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().href;
-		newItem.attachments = [
-			{url:newDoc.location.href, title:"DSpace Snapshot", mimeType:"text/html"},
-			{url:pdf, title:"DSpace PDF", mimeType:"application/pdf"}
-		];
-		Zotero.debug(newItem);
+		if (newDoc.evaluate(''//td[@class="standard"]/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) var pdf = newDoc.evaluate(''//td[@class="standard"]/a'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().href;
+		newItem.attachments = [{url:newDoc.location.href, title:"DSpace Snapshot", mimeType:"text/html"}];
+		if (pdf) {
+			newItem.attachments.push({url:pdf, title:"DSpace PDF", mimeType:"application/pdf"});
+		}
 		newItem.complete();
 	}, function() {Zotero.done;});
 }');
@@ -5850,7 +7464,7 @@ function doWeb(doc, url) {
 
 }');
 
-REPLACE INTO translators VALUES ('e4660e05-a935-43ec-8eec-df0347362e4c', '1.0.0b4.r1', '', '2007-07-31 16:45:00', '0', '100', '4', 'ERIC', 'Ramesh Srigiriraju', '^http://(?:www\.)?eric\.ed\.gov/', 
+REPLACE INTO translators VALUES ('e4660e05-a935-43ec-8eec-df0347362e4c', '1.0.0b4.r1', '', '2008-06-03 19:40:00', '0', '100', '4', 'ERIC', 'Ramesh Srigiriraju', '^http://(?:www\.)?eric\.ed\.gov/', 
 'function detectWeb(doc, url)	{
 	var namespace=doc.documentElement.namespaceURI;
 	var nsResolver=namespace?function(prefix)	{
@@ -5926,14 +7540,9 @@ REPLACE INTO translators VALUES ('e4660e05-a935-43ec-8eec-df0347362e4c', '1.0.0b
 	if(doc.evaluate(singpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext())	{
 		var idpath=''//input[@type="hidden"][@name="accno"]/@value'';
 		var idpath2=''//meta[@name="eric #"]/@content'';
-		var id;
-		var temp=doc.evaluate(idpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext();
-		if(temp)
-			id=temp.nodeValue;
-		else
-			id=doc.evaluate(idpath2, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().nodeValue;
+		var id = url.match(/accno=([^&]+)/)[1];
 		var string="http://eric.ed.gov/ERICWebPortal/custom/portlets/clipboard/performExport.jsp?accno=";
-		string+=id+"&texttype=endnote&citationtype=brief&Download.x=86&Download.y=14";
+		string+= id+"&texttype=endnote&citationtype=brief&Download.x=86&Download.y=14";
 		Zotero.Utilities.HTTP.doGet(string, function(text)	{
 			var trans=Zotero.loadTranslator("import");
 			trans.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
@@ -5952,7 +7561,7 @@ REPLACE INTO translators VALUES ('e4660e05-a935-43ec-8eec-df0347362e4c', '1.0.0b
 	}
 }');
 
-REPLACE INTO translators VALUES ('5dd22e9a-5124-4942-9b9e-6ee779f1023e', '1.0.0b4.r5', '', '2007-11-29 18:00:00', '1', '100', '4', 'Flickr', 'Sean Takats', '^http://(?:www\.)?flickr\.com/', 
+REPLACE INTO translators VALUES ('5dd22e9a-5124-4942-9b9e-6ee779f1023e', '1.0.0b4.r5', '', '2008-06-01 17:20:00', '1', '100', '4', 'Flickr', 'Sean Takats', '^http://(?:www\.)?flickr\.com/', 
 'function detectWeb(doc, url) {
 	var namespace = doc.documentElement.namespaceURI;
 	var nsResolver = namespace ? function(prefix) {
@@ -6022,7 +7631,7 @@ REPLACE INTO translators VALUES ('5dd22e9a-5124-4942-9b9e-6ee779f1023e', '1.0.0b
 			}
 // tagged with
 		} else if (doc.evaluate(''//p[@class="StreamList" or @class="UserTagList"]/a'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){
-			var elmts = doc.evaluate(''//p[@class="StreamList" or @class="UserTagList"]/a[img]'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+			var elmts = doc.evaluate(''//p[@class="StreamList" or @class="UserTagList"]//a[img]'', doc, nsResolver, XPathResult.ANY_TYPE, null);
 			while (elmt = elmts.iterateNext()){
 				var title = Zotero.Utilities.trimInternal(elmt.title);
 				var link = elmt.href;
@@ -7361,7 +8970,7 @@ REPLACE INTO translators VALUES ('b86bb082-6310-4772-a93c-913eaa3dfa1b', '1.0.0b
 	}
 }');
 
-REPLACE INTO translators VALUES ('d9be934c-edb9-490c-a88d-34e2ee106cd7', '1.0.0b4.r5', '', '2008-03-25 18:20:36', '0', '100', '4', 'Time.com', 'Michael Berkowitz', '^http://www.time.com/time/', 
+REPLACE INTO translators VALUES ('d9be934c-edb9-490c-a88d-34e2ee106cd7', '1.0.0b4.r5', '', '2008-05-21 19:15:00', '0', '100', '4', 'Time.com', 'Michael Berkowitz', 'http://www.time.com/time/', 
 'function detectWeb(doc, url) {
 	if (doc.title == "TIME Magazine - Search Results") {
 		return "multiple";
@@ -7384,7 +8993,7 @@ REPLACE INTO translators VALUES ('d9be934c-edb9-490c-a88d-34e2ee106cd7', '1.0.0b
 ', 
 'function associateMeta(newItem, metaTags, field, zoteroField) {
 	if (metaTags[field]) {
-		newItem[zoteroField] = metaTags[field];
+		newItem[zoteroField] = Zotero.Utilities.trimInternal(metaTags[field]);
 	}
 }
 
@@ -7393,7 +9002,6 @@ function scrape(doc, url) {
 	newItem.publicationTitle = "Time Magazine";
 	newItem.ISSN = "0040-718X";
 	newItem.url = doc.location.href;
-	
 	var metaTags = new Object();
 	
 	var metaTagHTML = doc.getElementsByTagName("meta")
@@ -7431,7 +9039,7 @@ function scrape(doc, url) {
 		 newItem.date = date.join(", ");
 	 }
 	if (metaTags["keywords"]) {
-		newItem.tags = Zotero.Utilities.cleanString(metaTags["keywords"]).split(", ");
+		newItem.tags = Zotero.Utilities.trimInternal(metaTags["keywords"]).split(", ");
 		for (var i in newItem.tags) {
 			if (newItem.tags[i] == "" || newItem.tags[i] == " ") {
 				break;
@@ -7449,12 +9057,12 @@ function scrape(doc, url) {
 	}
 	
 	if (metaTags["byline"]) {
-		var byline = Zotero.Utilities.cleanString(metaTags["byline"]);
+		var byline = Zotero.Utilities.trimInternal(metaTags["byline"]);
 		var byline1 = byline.split(" and ");
 		for (var i = 0 ; i < byline1.length ; i++) {
 			var byline2 = byline1[i].split("/");
 			for (var j = 0 ; j < byline2.length ; j++) {
-				byline2[j] = Zotero.Utilities.cleanString(byline2[j]);
+				byline2[j] = Zotero.Utilities.trimInternal(byline2[j]);
 				if (byline2[j].indexOf(" ") == -1) {
 					if (byline2[j].length == 2) {
 						newItem.extra = byline2[j];
@@ -7486,7 +9094,6 @@ function doWeb(doc, url) {
 	if (doc.title == "TIME Magazine - Search Results") {
 		var items = new Array();
 		var items = Zotero.Utilities.getItemArray(doc, doc.getElementById("search_results").getElementsByTagName("h3"), ''^http://www.time.com/time/.*\.html$'');
-		Zotero.debug(items);
 
 		items = Zotero.selectItems(items);
 	
@@ -7499,11 +9106,12 @@ function doWeb(doc, url) {
 				urls.push(i);
 			}
 		}
-		Zotero.Utilities.processDocuments(urls, scrape, function() { Zotero.done(); } );
 	} else if (doc.evaluate(''//meta[@name="byline"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() || doc.evaluate(''//div[@class="byline"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() || doc.evaluate(''//div[@class="copy"]/div[@class="byline"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() ) {
-		scrape(doc, doc.location.href);
+		urls.push(doc.location.href);
 	}
-	
+	Zotero.Utilities.processDocuments(urls, function(newDoc) {
+		scrape(newDoc);
+	}, function() { Zotero.done; } );
 	Zotero.wait();
 }');
 
@@ -7698,7 +9306,7 @@ function doWeb(doc, url) {
 	}
 }');
 
-REPLACE INTO translators VALUES ('6ec8008d-b206-4a4c-8d0a-8ef33807703b', '1.0.0b4.r5', '', '2007-08-27 02:00:00', '1', '100', '4', 'The Economist', 'Michael Berkowitz', '^http://(www.)?economist.com/', 
+REPLACE INTO translators VALUES ('6ec8008d-b206-4a4c-8d0a-8ef33807703b', '1.0.0b4.r5', '', '2008-05-22 20:30:00', '1', '100', '4', 'The Economist', 'Michael Berkowitz', '^http://(www.)?economist.com/', 
 'function detectWeb(doc, url) {
        if (doc.location.href.indexOf("search") != -1) {
                return "multiple";
@@ -7744,12 +9352,10 @@ REPLACE INTO translators VALUES ('6ec8008d-b206-4a4c-8d0a-8ef33807703b', '1.0.0b
                newItem.abstractNote = doc.evaluate(''//div[@id="content"]/div[@class="clear top-border"]/div[@class="col-left"]/h2'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
        } else if (doc.evaluate(''//div[@class="clear"][@id="pay-barrier"]/div[@class="col-left"]/div[@class="article"]/p/strong'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() ) {
                newItem.abstractNote = doc.evaluate(''//div[@class="clear"][@id="pay-barrier"]/div[@class="col-left"]/div[@class="article"]/p/strong'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
+       } else if (doc.evaluate(''//div[@id="content"]/div[@class="clear top-border"]/div[@class="col-left"]/p[3]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) {
+       		newItem.abstractNote = doc.evaluate(''//div[@id="content"]/div[@class="clear top-border"]/div[@class="col-left"]/p[3]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
        }
-       
-       if (newItem.abstractNote[newItem.abstractNote.length - 1] != ".") {
-	       newItem.abstractNote += ".";
-       }
-
+       if (newItem.abstractNote) newItem.abstractNote = Zotero.Utilities.trimInternal(newItem.abstractNote);
        //get date and extra stuff
        if (doc.evaluate(''//div[@class="col-left"]/p[@class="info"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() ) {
                newItem.date = doc.evaluate(''//div[@class="col-left"]/p[@class="info"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.substr(0,13);
@@ -7803,7 +9409,6 @@ function doWeb(doc, url) {
        Zotero.Utilities.processDocuments(urls, scrape, function() { Zotero.done(); });
        
        Zotero.wait();
-
 }');
 
 REPLACE INTO translators VALUES ('84bd421d-c6d1-4223-ab80-a156f98a8e30', '1.0.0b4.r1', '', '2007-07-31 16:45:00', '0', '100', '4', 'International Herald Tribune', 'Michael Berkowitz', '^http://(www.)?iht.com/',
@@ -9986,7 +11591,7 @@ REPLACE INTO translators VALUES ('a1a97ad4-493a-45f2-bd46-016069de4162', '1.0.0b
 	
 }');
 
-REPLACE INTO translators VALUES ('b61c224b-34b6-4bfd-8a76-a476e7092d43', '1.0.0b4.r5', '', '2008-05-05 07:45:00', '1', '100', '4', 'SSRN', 'Michael Berkowitz', 'http://papers\.ssrn\.com/', 
+REPLACE INTO translators VALUES ('b61c224b-34b6-4bfd-8a76-a476e7092d43', '1.0.0b4.r5', '', '2008-05-22 19:00:00', '1', '100', '4', 'SSRN', 'Michael Berkowitz', 'http://papers\.ssrn\.com/', 
 'function detectWeb(doc, url)	{
 	var namespace=doc.documentElement.namespaceURI;
 	var nsResolver=namespace?function(prefix)	{
@@ -10023,31 +11628,54 @@ REPLACE INTO translators VALUES ('b61c224b-34b6-4bfd-8a76-a476e7092d43', '1.0.0b
 		uris.push(url);
 	}
 	
-	Zotero.Utilities.processDocuments(uris, function(newDoc) {
-		var id = newDoc.location.href.match(/abstract_id=(\d+)/)[1];
-		if (newDoc.evaluate(''//a[@title="Download from Social Science Research Network"]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) {
-			var pdfurl = newDoc.evaluate(''//a[@title="Download from Social Science Research Network"]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href;
-		}
-		var newURL = ''http://papers.ssrn.com/sol3/RefExport.cfm?abstract_id='' + id + ''&format=3'';
-		Zotero.Utilities.HTTP.doGet(newURL, function(text) {
-			var ris=text.match(/<input type=\"Hidden\"\s+name=\"hdnContent\"\s+value=\"([^"]*)\">/)[1];
-			var trans=Zotero.loadTranslator("import");
-			trans.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
-			trans.setString(ris);
-			trans.setHandler("itemDone", function(obj, item) {
-				item.itemType = "journalArticle";
-				var tags = new Array();
-				for each (var tag in item.tags) {
-					var newtags = tag.split(",");
-					for each (var newtag in newtags) tags.push(newtag);
-				}
-				item.tags = tags;
-				item.attachments = [{url:item.url, title:"SSRN Snapshot", mimeType:"text/html"}];
-				if (pdfurl) item.attachments.push({url:pdfurl, title:"SSRN Full Text PDF", mimeType:"application/pdf"});
-				item.complete();
+	Zotero.Utilities.processDocuments(uris, function(doc) {
+		if (doc.evaluate(''//span[@id="knownuser"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) {
+			var id = doc.location.href.match(/abstract_id=(\d+)/)[1];
+			if (doc.evaluate(''//a[@title="Download from Social Science Research Network"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) {
+				var pdfurl = doc.evaluate(''//a[@title="Download from Social Science Research Network"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href;
+			}
+			var newURL = ''http://papers.ssrn.com/sol3/RefExport.cfm?abstract_id='' + id + ''&format=3'';
+			Zotero.Utilities.HTTP.doGet(newURL, function(text) {
+				var ris=text.match(/<input type=\"Hidden\"\s+name=\"hdnContent\"\s+value=\"([^"]*)\">/)[1];
+				var trans=Zotero.loadTranslator("import");
+				trans.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
+				trans.setString(ris);
+				trans.setHandler("itemDone", function(obj, item) {
+					item.itemType = "journalArticle";
+					var tags = new Array();
+					for each (var tag in item.tags) {
+						var newtags = tag.split(",");
+						for each (var newtag in newtags) tags.push(newtag);
+					}
+					item.tags = tags;
+					item.attachments = [{url:item.url, title:"SSRN Snapshot", mimeType:"text/html"}];
+					if (pdfurl) item.attachments.push({url:pdfurl, title:"SSRN Full Text PDF", mimeType:"application/pdf"});
+					item.complete();
+				});
+				trans.translate();
 			});
-			trans.translate();
-		});
+		} else {
+			var item = new Zotero.Item("journalArticle");
+			item.title = Zotero.Utilities.capitalizeTitle(Zotero.Utilities.trimInternal(doc.evaluate(''//tbody/tr/td[2]/font/strong'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent));
+			var authors = doc.evaluate(''//tr/td/center/font/a[@class="textlink"]'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+			var author;
+			while (author = authors.iterateNext()) {
+				var aut = Zotero.Utilities.capitalizeTitle(Zotero.Utilities.trimInternal(author.textContent));
+				item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author"));
+			}
+			item.abstractNote = Zotero.Utilities.trimInternal(doc.evaluate(''//td[strong/font]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent).substr(10);
+			item.tags = Zotero.Utilities.trimInternal(doc.evaluate(''//font[contains(text(), "Key")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent).substr(10).split(/,\s+/);
+			item.publicationTitle = "SSRN eLibrary";
+			
+			var bits = doc.evaluate(''//tr/td/center/font'', doc, nsResolver, XPathResult.ANY_TYPE, null);
+			var bit;
+			while (bit = bits.iterateNext()) {
+				if (bit.textContent.match(/\d{4}/)) item.date = Zotero.Utilities.trimInternal(bit.textContent);
+			}
+			item.url = doc.location.href;
+			item.attachments = [{url:item.url, title:"SSRN Snapshot", mimeType:"text/html"}];
+			item.complete();
+		}
 	}, function() {Zotero.done;});
 	Zotero.wait();
 }');
@@ -10478,10 +12106,11 @@ function doWeb(doc, url)	{
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('4fd6b89b-2316-2dc4-fd87-61a97dd941e8', '1.0.0b3.r1', '', '2008-05-15 00:30:00', '1', '200', '4', 'Library Catalog (InnoPAC)', 'Simon Kornblith and Michael Berkowitz', 'https?://[^/]+/(search(\*spi)?(\?|~(S[\d]+)?)?)\??/(a|X|t)?\??', 
+REPLACE INTO translators VALUES ('4fd6b89b-2316-2dc4-fd87-61a97dd941e8', '1.0.0b3.r1', '', '2008-05-28 18:30:00', '1', '200', '4', 'Library Catalog (InnoPAC)', 'Simon Kornblith and Michael Berkowitz', '(search~|\/search\?|(a|X|t|Y|w)\?|\?(searchtype|searchscope)|frameset&FF)', 
 'function detectWeb(doc, url) {
+	if (!url.match(/SEARCH=/) && !url.match(/searchargs?=/) && !url.match(/&FF/)) return false;
 	// First, check to see if the URL alone reveals InnoPAC, since some sites don''t reveal the MARC button
-	var matchRegexp = new RegExp(''^https?://[^/]+/search[^/]*\\??/[^/]+(/[^/]+/[0-9]+\%2C[^/]+/frameset(.+)$)?'');
+	var matchRegexp = new RegExp(''^https?://[^/]+/search[^/]*\\??/[^/]+/[^/]+/[0-9]+\%2C[^/]+/frameset(.+)$'');
 	if(matchRegexp.test(doc.location.href)) {
 		if (!url.match("SEARCH") && !url.match("searchtype")) {
 			return "book";
@@ -10501,7 +12130,7 @@ REPLACE INTO translators VALUES ('4fd6b89b-2316-2dc4-fd87-61a97dd941e8', '1.0.0b
 	// Also, check for links to an item display page
 	var tags = doc.getElementsByTagName("a");
 	for(var i=0; i<tags.length; i++) {
-		if(matchRegexp.test(tags[i].href) || tags[i].href.match(/^https?:\/\/[^/]+\/(?:search\??\/|record=?|search%7e\/)/)) {
+		if(matchRegexp.test(tags[i].href) || tags[i].href.match(/^https?:\/\/([^/]+\/(?:search\??\/|record=?|search%7e\/)|frameset&FF=)/)) {
 			return "multiple";
 		}
 	}
@@ -10626,12 +12255,10 @@ function doWeb(doc, url) {
 		var i = 0;
 		while(tableRow = tableRows.iterateNext()) {
 			// get link
-			var links = doc.evaluate(''.//span[@class="briefcitTitle"]/a'', tableRow,
-									 nsResolver, XPathResult.ANY_TYPE, null);
+			var links = doc.evaluate(''.//span[@class="briefcitTitle"]/a'', tableRow, nsResolver, XPathResult.ANY_TYPE, null);
 			var link = links.iterateNext();
 			if(!link) {
-				var links = doc.evaluate(".//a", tableRow, nsResolver, 
-										 XPathResult.ANY_TYPE, null);
+				var links = doc.evaluate(".//a", tableRow, nsResolver, XPathResult.ANY_TYPE, null);
 				link = links.iterateNext();
 			}
 			
@@ -10643,7 +12270,7 @@ function doWeb(doc, url) {
 				
 				// Go through links
 				while(link) {
-					availableItems[link.href] = link.textContent;
+					if (link.textContent.match(/\w+/)) availableItems[link.href] = link.textContent;
 					link = links.iterateNext();
 				}
 				i++;
@@ -10666,7 +12293,7 @@ function doWeb(doc, url) {
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('add7c71c-21f3-ee14-d188-caf9da12728b', '1.0.0b3.r1', '', '2007-03-25 00:50:00', '1', '100', '4', 'Library Catalog (SIRSI)', 'Sean Takats', '/uhtbin/cgisirsi', 
+REPLACE INTO translators VALUES ('add7c71c-21f3-ee14-d188-caf9da12728b', '1.0.0b3.r1', '', '2008-05-27 20:00:00', '1', '100', '4', 'Library Catalog (SIRSI)', 'Sean Takats', '/uhtbin/cgisirsi', 
 'function detectWeb(doc, url) {
 	var namespace = doc.documentElement.namespaceURI;
 	var nsResolver = namespace ? function(prefix) {
@@ -10721,6 +12348,7 @@ REPLACE INTO translators VALUES ('add7c71c-21f3-ee14-d188-caf9da12728b', '1.0.0b
 	var newItem = new Zotero.Item("book");
 	newItem.extra = "";
 	
+	authors = [];
 	while(elmt) {
 		try {
 			var node = doc.evaluate(''./TD[1]/A[1]/text()[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext();
@@ -10742,28 +12370,49 @@ REPLACE INTO translators VALUES ('add7c71c-21f3-ee14-d188-caf9da12728b', '1.0.0b
 					var re = /^[0-9](?:[0-9X]+)/;
 					var m = re.exec(value);
 					newItem.ISBN = m[0];
-				} else if(field == "title") {
+				} else if(field == "title" || field == "título") {
 					var titleParts = value.split(" / ");
 					newItem.title = Zotero.Utilities.capitalizeTitle(titleParts[0]);
-				} else if(field == "publication info") {
+				} else if(field == "publication info" || field == "publicación") {
 					var pubParts = value.split(" : ");
 					newItem.place = pubParts[0];
-				} else if(field == "personal author") {
-					newItem.creators.push(Zotero.Utilities.cleanAuthor(value, "author", true));
-				} else if(field == "author"){				 
-					newItem.creators.push(Zotero.Utilities.cleanAuthor(value, "author", true));
+					if (pubParts[1].match(/\d+/)) newItem.date = pubParts[1].match(/\d+/)[0];
+				} else if(field == "personal author" || field == "autor personal") {
+					if(authors.indexOf(value) == -1) {
+						value = value.replace(/(\(|\)|\d+|\-)/g, "");
+						newItem.creators.push(Zotero.Utilities.cleanAuthor(value, "author", true));
+						authors.push(value);
+					}
+				} else if(field == "author"){		
+					if(authors.indexOf(value) == -1) { 
+						newItem.creators.push(Zotero.Utilities.cleanAuthor(value, "author", true));
+						authors.push(value);
+					}
 				} else if(field == "added author") {
-					newItem.creators.push(Zotero.Utilities.cleanAuthor(value, "contributor", true));
+					if(authors.indexOf(value) == -1) {
+						newItem.creators.push(Zotero.Utilities.cleanAuthor(value, "contributor", true));
+						authors.push(value);
+					}
 				} else if(field == "corporate author") {
-					newItem.creators.push({lastName:author, fieldMode:true});
+					if(authors.indexOf(value) == -1) {
+						newItem.creators.push({lastName:value, fieldMode:true});
+						authors.push(value);
+					}
 				} else if(field == "edition") {
-					newItem.tags = newItem.edition = value;
+					newItem.edition = value;
 				} else if(field == "subject term" || field == "corporate subject" || field == "geographic term" || field == "subject") {
 					var subjects = value.split("--");
-					newItem.tags = newItem.tags.concat(subjects);
+					for(var i=0; i<subjects.length; i++) {
+						if(newItem.tags.indexOf(subjects[i]) == -1) {
+							newItem.tags.push(subjects[i]);
+						}
+					}
 				} else if(field == "personal subject") {
 					var subjects = value.split(", ");
-					newItem.tags = newItem.tags.push(value[0]+", "+value[1]);
+					var tag = value[0]+", "+value[1];
+					if(newItems.tag.indexOf(tag) == -1) {
+						newItem.tags.push(tag);
+					}
 				} else if(value && field != "http") {
 					newItem.extra += casedField+": "+value+"\n";
 				}
@@ -11632,7 +13281,7 @@ REPLACE INTO translators VALUES ('b047a13c-fe5c-6604-c997-bef15e502b09', '1.0.0b
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('5e3e6245-83da-4f55-a39b-b712df54a935', '1.0.0b3.r1', '', '2007-08-27 05:00:00', '0', '90', '4', 'Melvyl', 'Sean Takats', '^https?://(?:melvyl.cdlib.org|melvyl-dev.cdlib.org:8162)/F(?:/[A-Z0-9\-]+(?:\?.*)?$|\?func=find|\?func=scan)', 
+REPLACE INTO translators VALUES ('5e3e6245-83da-4f55-a39b-b712df54a935', '1.0.0b3.r1', '', '2008-05-19 17:20:00', '0', '90', '4', 'Melvyl', 'Sean Takats and Michael Berkowitz', '^https?://(?:melvyl.cdlib.org|melvyl-dev.cdlib.org:8162)/F(?:/[A-Z0-9\-]+(?:\?.*)?$|\?func=find|\?func=scan)', 
 'function detectWeb(doc, url) {
 	var singleRe = new RegExp("^https?://[^/]+/F/[A-Z0-9\-]+\?.*(?:func=full-set-set.*\&format=[0-9]{3}|func=direct)");
 	
@@ -11712,7 +13361,7 @@ REPLACE INTO translators VALUES ('5e3e6245-83da-4f55-a39b-b712df54a935', '1.0.0b
 	var marc = translator.getTranslatorObject();
 	Zotero.Utilities.processDocuments(newUris, function(newDoc) {
 		var uri = newDoc.location.href;
-		
+
 		var namespace = newDoc.documentElement.namespaceURI;
 		var nsResolver = namespace ? function(prefix) {
 		  if (prefix == ''x'') return namespace; else return null;
@@ -11724,14 +13373,13 @@ REPLACE INTO translators VALUES ('5e3e6245-83da-4f55-a39b-b712df54a935', '1.0.0b
 		
 		var record = new marc.record();
 		while(elmt = elmts.iterateNext()) {
-			var field = Zotero.Utilities.superCleanString(doc.evaluate(''./TD[1]/strong/text()[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().nodeValue);
-			var value = doc.evaluate(''./TD[2]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
+			var field = Zotero.Utilities.trimInternal(newDoc.evaluate(''./TD[1]/strong/text()[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().nodeValue);
+			var value = newDoc.evaluate(''./TD[2]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
 			
 			if(field == "LDR") {
 				record.leader = value;
 			} else if(field != "FMT") {
 				
-				Zotero.debug("field=" + field);
 				value = value.replace(/\|([a-z]) /g, marc.subfieldDelimiter+"$1");
 				
 				var code = field.substring(0, 3);
@@ -11742,7 +13390,6 @@ REPLACE INTO translators VALUES ('5e3e6245-83da-4f55-a39b-b712df54a935', '1.0.0b
 						ind += field[4];
 					}
 				}
-				
 				record.addField(code, ind, value);
 			}
 		}
@@ -11759,9 +13406,9 @@ REPLACE INTO translators VALUES ('5e3e6245-83da-4f55-a39b-b712df54a935', '1.0.0b
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('cf87eca8-041d-b954-795a-2d86348999d5', '1.0.0b3.r1', '', '2008-04-15 07:30:00', '1', '100', '4', 'Library Catalog (Aleph)', 'Simon Kornblith and Michael Berkowitz', 'https?://[^/]+/F(?:/[A-Z0-9\-]+(?:\?.*)?$|\?func=find|\?func=scan)', 
+REPLACE INTO translators VALUES ('cf87eca8-041d-b954-795a-2d86348999d5', '1.0.0b3.r1', '', '2008-06-10 22:30:00', '1', '100', '4', 'Library Catalog (Aleph)', 'Simon Kornblith and Michael Berkowitz', 'https?://[^/]+/F(?:/[A-Z0-9\-]+(?:\?.*)?$|\?func=find|\?func=scan|\?func=short)', 
 'function detectWeb(doc, url) {
-	var singleRe = new RegExp("^https?://[^/]+/F/[A-Z0-9\-]+\?.*(?:func=full-set-set.*\&format=[0-9]{3}|func=direct)");
+	var singleRe = new RegExp("^https?://[^/]+/F/[A-Z0-9\-]+\?.*(?:func=full-set-set.*\&format=[0-9]{3}|func=direct|func=myshelf-full.*)");
 	
 	if(singleRe.test(doc.location.href)) {
 		return "book";
@@ -11775,7 +13422,8 @@ REPLACE INTO translators VALUES ('cf87eca8-041d-b954-795a-2d86348999d5', '1.0.0b
 	}
 }', 
 'function doWeb(doc, url) {
-	var detailRe = new RegExp("^https?://[^/]+/F/[A-Z0-9\-]+\?.*(?:func=full-set-set.*\&format=[0-9]{3}|func=direct)");
+	var detailRe = new RegExp("^https?://[^/]+/F/[A-Z0-9\-]+\?.*(?:func=full-set-set.*\&format=[0-9]{3}|func=direct|func=myshelf-full.*)");
+	var mab2Opac = new RegExp("^https?://[^/]+berlin|193\.30\.112\.134|duisburg-essen/F/[A-Z0-9\-]+\?.*");
 	var uri = doc.location.href;
 	var newUris = new Array();
 	
@@ -11784,7 +13432,7 @@ REPLACE INTO translators VALUES ('cf87eca8-041d-b954-795a-2d86348999d5', '1.0.0b
 		if (newuri == uri) newuri += "&format=001";
 		newUris.push(newuri);
 	} else {
-		var itemRegexp = ''^https?://[^/]+/F/[A-Z0-9\-]+\?.*(?:func=full-set-set.*\&format=999|func=direct)''
+		var itemRegexp = ''^https?://[^/]+/F/[A-Z0-9\-]+\?.*(?:func=full-set-set.*\&format=999|func=direct|func=myshelf-full.*)''
 		var items = Zotero.Utilities.getItemArray(doc, doc, itemRegexp, ''^[0-9]+$'');
 		
 		// ugly hack to see if we have any items
@@ -11814,7 +13462,11 @@ REPLACE INTO translators VALUES ('cf87eca8-041d-b954-795a-2d86348999d5', '1.0.0b
 		}
 	}
 	var translator = Zotero.loadTranslator("import");
-	translator.setTranslator("a6ee60df-1ddc-4aae-bb25-45e0537be973");
+	if(mab2Opac.test(uri)) {
+		translator.setTranslator("91acf493-0de7-4473-8b62-89fd141e6c74");
+	} else {
+		translator.setTranslator("a6ee60df-1ddc-4aae-bb25-45e0537be973");
+	}	
 	var marc = translator.getTranslatorObject();
 	Zotero.Utilities.processDocuments(newUris, function(newDoc) {
 		var uri = newDoc.location.href;
@@ -12490,7 +14142,7 @@ REPLACE INTO translators VALUES ('c54d1932-73ce-dfd4-a943-109380e06574', '1.0.0b
 	}
 }');
 
-REPLACE INTO translators VALUES ('fcf41bed-0cbc-3704-85c7-8062a0068a7a', '1.0.0b3.r1', '', '2008-03-14 18:00:00', '1', '100', '4', 'NCBI PubMed', 'Simon Kornblith and Michael Berkowitz', 'http://[^/]*www\.ncbi\.nlm\.nih\.gov[^/]*/(pubmed|sites/entrez|entrez/query\.fcgi\?.*db=PubMed)', 
+REPLACE INTO translators VALUES ('fcf41bed-0cbc-3704-85c7-8062a0068a7a', '1.0.0b3.r1', '', '2008-06-11 05:00:00', '1', '100', '4', 'NCBI PubMed', 'Simon Kornblith and Michael Berkowitz', 'http://[^/]*www\.ncbi\.nlm\.nih\.gov[^/]*/(pubmed|sites/entrez|entrez/query\.fcgi\?.*db=PubMed)', 
 'function detectWeb(doc, url) {
 	var namespace = doc.documentElement.namespaceURI;
 	var nsResolver = namespace ? function(prefix) {
@@ -12570,7 +14222,7 @@ function detectSearch(item) {
 			if(article.Journal.length()) {
 				var issn = article.Journal.ISSN.text().toString();
 				if(issn) {
-					newItem.ISSN = issn.replace(/[^0-9]/g, "");
+					newItem.ISSN = issn;
 				}
 
 				newItem.journalAbbreviation = Zotero.Utilities.superCleanString(citation.MedlineJournalInfo.MedlineTA.text().toString());
@@ -12618,6 +14270,9 @@ function detectSearch(item) {
 			}
 			newItem.abstractNote = article.Abstract.AbstractText.toString()
 			
+			newItem.DOI = xml.PubmedArticle[i].PubmedData.ArticleIdList.ArticleId[0].text().toString();
+			newItem.journalAbbreviation = newItem.journalAbbreviation.replace(/(\w\b)/g, "$1.");
+			newItem.publicationTitle = Zotero.Utilities.capitalizeTitle(newItem.publicationTitle);
 			newItem.complete();
 		}
 
@@ -14418,7 +16073,7 @@ function doWeb(doc, url) {
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('d0b1914a-11f1-4dd7-8557-b32fe8a3dd47', '1.0.0b3.r1', '', '2008-05-05 07:45:00', '1', '100', '4', 'EBSCOhost', 'Simon Kornblith', 'https?://[^/]+/(?:bsi|ehost)/(?:results|detail|folder)', 
+REPLACE INTO translators VALUES ('d0b1914a-11f1-4dd7-8557-b32fe8a3dd47', '1.0.0b3.r1', '', '2008-05-22 20:30:00', '1', '100', '4', 'EBSCOhost', 'Simon Kornblith', 'https?://[^/]+/(?:bsi|ehost)/(?:results|detail|folder)', 
 'function detectWeb(doc, url) {
 	var namespace = doc.documentElement.namespaceURI;
 	var nsResolver = namespace ? function(prefix) {
@@ -14480,11 +16135,6 @@ function downloadFunction(text) {
 			if (text.match("L3")) {
 				item.DOI = text.match(/L3\s+\-\s*(.*)/)[1];
 			}
-			
-			if(item.notes && item.notes[0]) {
-				item.abstractNote = item.notes[0].note;
-				item.notes = new Array();
-			}
 			item.complete();
 		});
 		translator.translate();
@@ -15618,12 +17268,12 @@ REPLACE INTO translators VALUES ('fe728bc9-595a-4f03-98fc-766f1d8d0936', '1.0.0b
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('b6d0a7a-d076-48ae-b2f0-b6de28b194e', '1.0.0b3.r1', '', '2008-04-28 17:50:00', '1', '100', '4', 'ScienceDirect', 'Michael Berkowitz', 'https?://www\.sciencedirect\.com[^/]*/science(\/article)?\?(?:.+\&|)_ob=(?:ArticleURL|ArticleListURL|PublicationURL)', 
+REPLACE INTO translators VALUES ('b6d0a7a-d076-48ae-b2f0-b6de28b194e', '1.0.0b3.r1', '', '2008-05-27 17:30:00', '1', '100', '4', 'ScienceDirect', 'Michael Berkowitz', 'https?://www\.sciencedirect\.com[^/]*/science(\/article)?\?(?:.+\&|)_ob=(?:ArticleURL|ArticleListURL|PublicationURL)', 
 'function detectWeb(doc, url) {
 	if ((url.indexOf("_ob=DownloadURL") != -1) || doc.title == "ScienceDirect Login") {
 		return false;
 	}
-	if(url.indexOf("_ob=ArticleURL") == -1) {
+	if(url.indexOf("_ob=ArticleURL") == -1 || url.indexOf("/journal/") != -1) {
 		return "multiple";
 	} else {
 		return "journalArticle";
@@ -15652,7 +17302,7 @@ REPLACE INTO translators VALUES ('b6d0a7a-d076-48ae-b2f0-b6de28b194e', '1.0.0b3.
 			while (next_row = rows.iterateNext()) {
 				var title = next_row.textContent;
 				var link = next_row.href;
-				items[link] = title;
+				if (!title.match(/PDF \(/) && !title.match(/Related Articles/)) items[link] = title;
 			}
 			items = Zotero.selectItems(items);
 			for (var i in items) {
@@ -15737,17 +17387,11 @@ REPLACE INTO translators VALUES ('b6d0a7a-d076-48ae-b2f0-b6de28b194e', '1.0.0b3.
 			var title = doc2.title.match(/^[^-]+\-([^:]+):(.*)$/);
 			item.title = Zotero.Utilities.trimInternal(title[2]);
 			item.publicationTitle = Zotero.Utilities.trimInternal(title[1]);
-			var voliss = Zotero.Utilities.trimInternal(doc2.evaluate(''//div[@class="pageText"][@id="sdBody"]/table/tbody/tr/td[1]'', doc2, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent).split(/,/);
-			if (voliss[3] && voliss[3].match(/[\-\d]+/)) {
-				item.volume = voliss[0].match(/\d+/)[0];
-				item.issue = voliss[1].match(/[\-\d]+/)[0];
-				item.date = Zotero.Utilities.trimInternal(voliss[2]);
-				item.pages = voliss[3].match(/[R\-\d]+/)[0];
-			} else if (voliss[2]) {
-				item.volume = voliss[0].match(/\d+/)[0];
-				item.date = Zotero.Utilities.trimInternal(voliss[1]);
-				item.pages = voliss[2].match(/[R\-\d]+/)[0];
-			}
+			voliss = doc2.evaluate(''//div[@class="pageText"][@id="sdBody"]/table/tbody/tr/td[1]'', doc2, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
+			if (voliss.match(/Volume\s+\d+/)) item.volume = voliss.match(/Volume\s+(\d+)/)[1];
+			if (voliss.match(/Issues?\s+[^,]+/)) item.issue = voliss.match(/Issues?\s+([^,]+)/)[1];
+			if (voliss.match(/(J|F|M|A|S|O|N|D)\w+\s+\d{4}/)) item.date = voliss.match(/(J|F|M|A|S|O|N|D)\w+\s+\d{4}/)[0];
+			if (voliss.match(/Pages?\s+[^,^\s]+/)) item.pages = voliss.match(/Pages?\s+([^,^\s]+)/)[1];
 			item.DOI = doc2.evaluate(''//div[@class="articleHeaderInner"][@id="articleHeader"]/a[contains(text(), "doi")]'', doc2, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.substr(4);
 			var abspath = ''//div[@class="articleHeaderInner"][@id="articleHeader"]/div[@class="articleText"]/p'';
 			var absx = doc2.evaluate(abspath, doc2, nsResolver, XPathResult.ANY_TYPE, null);
@@ -16621,7 +18265,7 @@ REPLACE INTO translators VALUES ('92d4ed84-8d0-4d3c-941f-d4b9124cfbb', '1.0.0b3.
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('7bdb79e-a47f-4e3d-b317-ccd5a0a74456', '1.0.0b3.r1', '', '2007-03-24 22:20:00', '1', '100', '4', 'Factiva', 'Simon Kornblith', '^https?://global\.factiva\.com[^/]*/ha/default\.aspx$', 
+REPLACE INTO translators VALUES ('7bdb79e-a47f-4e3d-b317-ccd5a0a74456', '1.0.0b3.r1', '', '2008-05-20 19:10:00', '1', '100', '4', 'Factiva', 'Simon Kornblith', 'https?://[^/]*global\.factiva\.com[^/]*/ha/default\.aspx$', 
 'function detectWeb(doc, url) {
 	var namespace = doc.documentElement.namespaceURI;
 	var nsResolver = namespace ? function(prefix) {
@@ -16842,7 +18486,7 @@ function doWeb(doc, url){
 	Zotero.wait();
 }');
 
-REPLACE INTO translators VALUES ('82174f4f-8c13-403b-99b2-affc7bc7769b', '1.0.0b3.r1', '', '2008-03-20 20:00:00', '1', '100', '4', 'Cambridge Scientific Abstracts', 'Simon Kornblith and Michael Berkowitz', 'https?://[^/]+/ids70/(?:results.php|view_record.php)', 
+REPLACE INTO translators VALUES ('82174f4f-8c13-403b-99b2-affc7bc7769b', '1.0.0b3.r1', '', '2008-05-28 18:30:00', '1', '100', '4', 'Cambridge Scientific Abstracts', 'Simon Kornblith and Michael Berkowitz', 'https?://[^/]+/ids70/(?:results.php|view_record.php)', 
 'function detectWeb(doc, url) {
 	var namespace = doc.documentElement.namespaceURI;
 	var nsResolver = namespace ? function(prefix) {
@@ -16920,16 +18564,14 @@ REPLACE INTO translators VALUES ('82174f4f-8c13-403b-99b2-affc7bc7769b', '1.0.0b
 		} else if(heading == "author") {
 			var authors = content.split("; ");
 			for each(var author in authors) {
-				newItem.creators.push(Zotero.Utilities.cleanAuthor(author, "author", true));
+				newItem.creators.push(Zotero.Utilities.cleanAuthor(author.replace(/\d+/g, ""), "author", true));
 			}
 		} else if(heading == "source") {
 			if(itemType == "journalArticle") {
 				var parts = content.split(/(,|;)/);
 				newItem.publicationTitle = parts.shift();
-				Zotero.debug(parts);
 				for each (var i in parts) {
 					if (i.match(/\d+/)) {
-						Zotero.debug(i);
 						if (i.match(/v(ol)?/)) {
 							newItem.volume = i.match(/\d+/)[0];
 						} else if (i.match(/pp/)) {
@@ -17019,7 +18661,7 @@ function doWeb(doc, url) {
 	}
 }');
 
-REPLACE INTO translators VALUES ('e78d20f7-488-4023-831-dfe39679f3f', '1.0.0b3.r1', '', '2008-03-04 20:00:00', '1', '100', '4', 'ACM', 'Simon Kornblith', 'https?://[^/]*portal\.acm\.org[^/]*/(?:results\.cfm|citation\.cfm)', 
+REPLACE INTO translators VALUES ('e78d20f7-488-4023-831-dfe39679f3f', '1.0.0b3.r1', '', '2008-06-06 08:45:00', '1', '100', '4', 'ACM', 'Simon Kornblith and Michael Berkowitz', 'https?://[^/]*portal\.acm\.org[^/]*/(?:results\.cfm|citation\.cfm)', 
 'function detectWeb(doc, url) {
 	if(url.indexOf("/results.cfm") != -1) {
 		var items = Zotero.Utilities.getItemArray(doc, doc, ''^https?://[^/]+/citation.cfm\\?[^#]+$'');
@@ -17055,10 +18697,13 @@ function scrape(doc) {
 		null).iterateNext().getAttribute("onClick");
 	var m = onClick.match(/''([^'']+)''/);
 	
-	var abstract = doc.evaluate(''//div[@class="abstract"]/p[@class="abstract"]'', doc, null,
-		XPathResult.ANY_TYPE, null).iterateNext();
-	if(abstract) abstract = Zotero.Utilities.cleanString(abstract.textContent);
-	
+	if (doc.evaluate(''//div[@class="abstract"]/p[@class="abstract"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) {
+		var abstract = doc.evaluate(''//div[@class="abstract"]/p[@class="abstract"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext();
+		if (!abstract.textContent.match(/\w+/)) {
+			var abstract = doc.evaluate(''//div[@class="abstract"]/p[2]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext();
+		}
+		if(abstract) abstract = Zotero.Utilities.cleanString(abstract.textContent);
+	}
 	var snapshot = doc.location.href;
 	
 	var attachments = new Array();
@@ -17953,7 +19598,7 @@ function doWeb(doc, url) {
 		
 }');
 
-REPLACE INTO translators VALUES ('1b9ed730-69c7-40b0-8a06-517a89a3a278', '1.0.0b3.r1', '', '2007-01-24 01:35:00', '0', '100', '4', 'Sudoc', 'Sean Takats', '^http://www\.sudoc\.abes\.fr', 
+REPLACE INTO translators VALUES ('1b9ed730-69c7-40b0-8a06-517a89a3a278', '1.0.0b3.r1', '', '2008-05-19 17:30:00', '0', '100', '4', 'Sudoc', 'Sean Takats and Michael Berkowitz', '^http://www\.sudoc\.abes\.fr', 
 'function detectWeb(doc, url) {
 		var namespace = doc.documentElement.namespaceURI;
 		var nsResolver = namespace ? function(prefix) {
@@ -18028,7 +19673,7 @@ REPLACE INTO translators VALUES ('1b9ed730-69c7-40b0-8a06-517a89a3a278', '1.0.0b
 				var field = doc.evaluate(''./td[1]'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
 				var value = doc.evaluate(''./td[2]'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
 				field = Zotero.Utilities.superCleanString(field);
-
+				field = field.replace(/(\(s\))?\s*:\s*$/, "");
 				if (field == "Titre" || field == "Title"){
 						Zotero.debug("title = " + value);
 						value = value.replace(/(\[[^\]]+\])/g,"");
@@ -18040,7 +19685,7 @@ REPLACE INTO translators VALUES ('1b9ed730-69c7-40b0-8a06-517a89a3a278', '1.0.0b
 						while (author = authors.iterateNext()){
 								var authorText = author.textContent;
 								var authorParts = authorText.split(" ("); 
-								newItem.creators.push(Zotero.Utilities.cleanAuthor(authorParts[0], 1, true));
+								newItem.creators.push(Zotero.Utilities.cleanAuthor(authorParts[0], "author", true));
 						}
 				}
 				if (field.substr(0,4) == "Date"){
@@ -21110,7 +22755,7 @@ function doExport() {
 	}
 }');
 
-REPLACE INTO translators VALUES ('9cb70025-a888-4a29-a210-93ec52da40d4', '1.0.0b4.r1', '', '2008-05-06 18:45:00', '1', '200', '3', 'BibTeX', 'Simon Kornblith', 'bib', 
+REPLACE INTO translators VALUES ('9cb70025-a888-4a29-a210-93ec52da40d4', '1.0.0b4.r1', '', '2008-05-20 06:00:00', '1', '200', '3', 'BibTeX', 'Simon Kornblith', 'bib', 
 'Zotero.configure("dataMode", "block");
 Zotero.addOption("UTF8", true);
 
@@ -21163,6 +22808,7 @@ var fieldMap = {
 var inputFieldMap = {
 	booktitle :"publicationTitle",
 	school:"publisher",
+	institution:"publisher",
 	publisher:"publisher"
 };
 
@@ -21188,7 +22834,8 @@ var zotero2bibtexTypeMap = {
 	"film":"misc",
 	"artwork":"misc",
 	"webpage":"misc",
-	"conferencePaper":"inproceedings"
+	"conferencePaper":"inproceedings",
+	"report":"techreport"
 };
 
 var bibtex2zoteroTypeMap = {
@@ -22207,7 +23854,8 @@ var reversemappingTable = {
     "\u2026":"{\\textellipsis}", // HORIZONTAL ELLIPSIS
     "\u2030":"{\\textperthousand}", // PER MILLE SIGN
     "\u2034":"''''''", // TRIPLE PRIME
-    "\u2036":"``", // REVERSED DOUBLE PRIME
+    "\u201D":"''''", // RIGHT DOUBLE QUOTATION MARK (could be a double prime)
+    "\u201C":"``", // LEFT DOUBLE QUOTATION MARK (could be a reversed double prime)
     "\u2037":"```", // REVERSED TRIPLE PRIME
     "\u2039":"{\\guilsinglleft}", // SINGLE LEFT-POINTING ANGLE QUOTATION MARK
     "\u203A":"{\\guilsinglright}", // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
@@ -23004,13 +24652,13 @@ function doExport() {
 				writeField(field, item[fieldMap[field]]);
 			}
 		}
-		
-		if(item.proceedingsTitle || item.conferenceName) {
-			writeField("booktitle", item.proceedingsTitle || item.conferenceName);
+
+		if(item.reportNumber || item.issue) {
+			writeField("number", item.reportNumber || item.issue);
 		}
 
 		if(item.publicationTitle) {
-			if(item.itemType == "chapter") {
+			if(item.itemType == "chapter" || item.itemType == "conferencePaper") {
 				writeField("booktitle", item.publicationTitle);
 			} else {
 				writeField("journal", item.publicationTitle);
@@ -23020,6 +24668,8 @@ function doExport() {
 		if(item.publisher) {
 			if(item.itemType == "thesis") {
 				writeField("school", item.publisher);
+			} else if(item.itemType =="report") {
+				writeField("institution", item.publisher);
 			} else {
 				writeField("publisher", item.publisher);
 			}
@@ -23075,7 +24725,7 @@ function doExport() {
 		}
 		
 		if(item.pages) {
-			writeField("pages", item.pages);
+			writeField("pages", item.pages.replace("-","--"));
 		}
 		
 		if(item.itemType == "webpage") {