commit 416f023384ea0fd829fc88c082eaf7bb265bc51c parent 7f0d7364efb2aaea82ebd31922f152f8fe5a14a9 Author: Dan Stillman <dstillman@zotero.org> Date: Mon, 5 May 2008 07:19:34 +0000 Merged revisions 2190-2192,2194,2196-2199,2202-2205,2209,2212,2214-2215,2227-2228,2230,2232-2243,2245,2247-2256,2263-2272,2276,2278-2279,2281,2284-2286,2292,2296-2297,2299-2302,2304-2305,2309-2310,2314,2317-2323,2325-2329,2331-2337,2339,2341-2342,2344,2347-2366,2370-2371,2373-2377,2379-2391,2393-2402,2405-2410,2413,2415-2416,2418,2420-2421,2423,2427-2429,2431-2433,2437,2440-2441,2443-2450,2453,2455-2459,2461-2467,2471,2475-2480,2482-2490,2493,2495-2499,2501-2506,2511,2513-2519,2521,2525-2536,2540,2543-2553,2555-2559,2561-2576,2578,2580-2603,2606-2609,2611-2616,2618-2620,2624-2630,2632-2633 to trunk via svnmerge from 1.0 branch Diffstat:
127 files changed, 9040 insertions(+), 4738 deletions(-)
diff --git a/chrome.manifest b/chrome.manifest @@ -10,7 +10,7 @@ locale zotero cs-CZ chrome/locale/cs-CZ/zotero/ locale zotero da-DK chrome/locale/da-DK/zotero/ locale zotero de-AT chrome/locale/de-AT/zotero/ locale zotero de-CH chrome/locale/de-CH/zotero/ -locale zotero de chrome/locale/de/zotero/ +locale zotero de-DE chrome/locale/de-DE/zotero/ locale zotero el-GR chrome/locale/el-GR/zotero/ locale zotero es-ES chrome/locale/es-ES/zotero/ locale zotero et-EE chrome/locale/et-EE/zotero/ @@ -31,6 +31,7 @@ locale zotero ro-RO chrome/locale/ro-RO/zotero/ locale zotero ru-RU chrome/locale/ru-RU/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/ locale zotero vi-VN chrome/locale/vi-VN/zotero/ locale zotero zh-CN chrome/locale/zh-CN/zotero/ diff --git a/chrome/content/zotero/addCitationDialog.js b/chrome/content/zotero/addCitationDialog.js @@ -66,7 +66,7 @@ var Zotero_Citation_Dialog = new function () { io = window.arguments[0].wrappedJSObject; // find accept button - _acceptButton = document.getElementById("add-citation-dialog").getButton("accept"); + _acceptButton = document.getElementById("zotero-add-citation-dialog").getButton("accept"); _autoRegeneratePref = Zotero.Prefs.get("integration.autoRegenerate"); // if a style with sortable citations, present checkbox @@ -144,7 +144,7 @@ var Zotero_Citation_Dialog = new function () { _multipleSourcesOn = !_multipleSourcesOn; if(_multipleSourcesOn) { document.getElementById("multiple-sources").hidden = undefined; - document.getElementById("add-citation-dialog").width = "750"; + document.getElementById("zotero-add-citation-dialog").width = "750"; document.getElementById("multiple-sources-button").label = Zotero.getString("citation.singleSource"); window.sizeToContent(); window.moveTo((window.screenX-75), window.screenY); @@ -153,7 +153,7 @@ var Zotero_Citation_Dialog = new function () { _itemSelected(false); } else { document.getElementById("multiple-sources").hidden = true; - document.getElementById("add-citation-dialog").width = "600"; + document.getElementById("zotero-add-citation-dialog").width = "600"; document.getElementById("multiple-sources-button").label = Zotero.getString("citation.multipleSources"); window.sizeToContent(); window.moveTo((window.screenX+75), window.screenY); diff --git a/chrome/content/zotero/addCitationDialog.xul b/chrome/content/zotero/addCitationDialog.xul @@ -27,7 +27,7 @@ <!DOCTYPE window SYSTEM "chrome://zotero/locale/zotero.dtd"> <dialog - id="add-citation-dialog" + id="zotero-add-citation-dialog" orient="vertical" title="&zotero.integration.addEditCitation.title;" width="600" height="450" @@ -37,7 +37,8 @@ ondialogcancel="Zotero_Citation_Dialog.cancel();" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" - style="padding: 0"> + style="padding: 0" + persist="screenX screenY"> <script src="include.js"/> <script src="selectItemsDialog.js"/> @@ -49,7 +50,8 @@ <vbox align="stretch" flex="1"> <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; } return true;"> + <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/bibliography.js b/chrome/content/zotero/bibliography.js @@ -112,7 +112,7 @@ var Zotero_File_Interface_Bibliography = new function() { // add border on Windows if(Zotero.isWin) { - document.getElementById("doc-prefs-dialog").style.border = "1px solid black"; + document.getElementById("zotero-doc-prefs-dialog").style.border = "1px solid black"; } } window.sizeToContent(); diff --git a/chrome/content/zotero/bindings/styled-textbox.xml b/chrome/content/zotero/bindings/styled-textbox.xml @@ -181,7 +181,10 @@ this._styleWithCSS = true; } - this._browser.contentDocument.execCommand("styleWithCSS", false, this._styleWithCSS); + try { + this._browser.contentDocument.execCommand("styleWithCSS", false, this._styleWithCSS); + } + catch (e) {} } return val; ]]></setter> diff --git a/chrome/content/zotero/editBibliographyDialog.xul b/chrome/content/zotero/editBibliographyDialog.xul @@ -27,7 +27,7 @@ <!DOCTYPE window SYSTEM "chrome://zotero/locale/zotero.dtd"> <dialog - id="edit-bibliography-dialog" + id="zotero-edit-bibliography-dialog" orient="vertical" title="&zotero.integration.editBibliography.title;" width="750" height="450" @@ -37,7 +37,8 @@ buttons="accept" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" - style="padding: 0"> + style="padding: 0" + persist="screenX screenY"> <script src="include.js"/> <script src="selectItemsDialog.js"/> diff --git a/chrome/content/zotero/errorReport.xul b/chrome/content/zotero/errorReport.xul @@ -19,33 +19,29 @@ var data = obj.data; var msg = data.msg; var e = data.e; - var askForSteps = data.askForSteps; var extraData = data.extraData ? data.extraData : ''; function init() { var wizard = document.getElementById('zotero-error-report'); + if (document.getElementById('zotero-failure-message').hasChildNodes()) { + var textNode = document.getElementById('zotero-failure-message').firstChild; + document.getElementById('zotero-failure-message').removeChild(textNode); + } document.getElementById('zotero-failure-message').appendChild(document.createTextNode(msg)); document.getElementById('zotero-error-message').value = e; var continueButtonName = wizard.getButton('next').getAttribute('label'); var str = Zotero.getString('errorReport.advanceMessage', continueButtonName); document.getElementById('zotero-advance-message').setAttribute('value', str); - - if (askForSteps) { - var str = Zotero.getString('errorReport.stepsToReproduce') + "\n\n1.\n2.\n3.\n\n" - + Zotero.getString('errorReport.expectedResult') + "\n\n" - + Zotero.getString('errorReport.actualResult') + "\n"; - document.getElementById('zotero-error-steps').value = str; - document.getElementById('zotero-error-steps-box').setAttribute('hidden', false) - } } function sendErrorReport() { + var wizard = document.getElementById('zotero-error-report'); + var continueButtonName = wizard.getButton('next').disabled = true; + var parts = { error: "true", - email: document.getElementById('zotero-email-address').value, - errorSteps: document.getElementById('zotero-error-steps').value, errorData: Zotero.getErrors(true).join('\n'), extraData: extraData, diagnostic: Zotero.getSystemInfo() @@ -111,18 +107,6 @@ <description id="zotero-advance-message"/> </wizardpage> - <wizardpage label="&zotero.errorReport.additionalInfo; &zotero.general.optional;"> - <hbox id="zotero-email-address-box"> - <label value="&zotero.errorReport.emailAddress;" control="zotero-email-address"/> - <textbox id="zotero-email-address" flex="1"/> - </hbox> - - <vbox id="zotero-error-steps-box" hidden="true"> - <description control="zotero-error-steps">&zotero.errorReport.errorSteps;</description> - <textbox id="zotero-error-steps" multiline="true" rows="6"/> - </vbox> - </wizardpage> - <wizardpage onpageshow="Zotero_Error_Report.sendErrorReport()"> <description>&zotero.errorReport.submissionInProgress;</description> </wizardpage> @@ -133,7 +117,7 @@ &zotero.errorReport.reportID; <textbox id="zotero-report-id" class="plain" readonly="true"/> </description> - <description>&zotero.errorReport.includeReportID;</description> - <description>&zotero.errorReport.furtherAssistance;</description> + <description>&zotero.errorReport.postToForums;</description> + <description>&zotero.errorReport.notReviewed;</description> </wizardpage> </wizard> diff --git a/chrome/content/zotero/integrationDocPrefs.xul b/chrome/content/zotero/integrationDocPrefs.xul @@ -5,14 +5,15 @@ <!DOCTYPE window SYSTEM "chrome://zotero/locale/zotero.dtd"> <dialog - id="doc-prefs-dialog" + id="zotero-doc-prefs-dialog" orient="vertical" buttons="accept" title="&zotero.integration.docPrefs.title;" onload="Zotero_File_Interface_Bibliography.init();" ondialogaccept="Zotero_File_Interface_Bibliography.acceptSelection();" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" - style="padding: 0"> + style="padding: 0" + persist="screenX screenY"> <script src="include.js"/> <script src="bibliography.js"/> diff --git a/chrome/content/zotero/overlay.js b/chrome/content/zotero/overlay.js @@ -2030,12 +2030,22 @@ var ZoteroPane = new function() file.reveal(); } catch (e) { - // On platforms that don't support nsILocalFile.reveal() (e.g. Linux), we - // open a small window with a selected read-only textbox containing the - // file path, so the user can open it, Control-c, Control-w, Alt-Tab, and - // Control-v the path into another app - var io = {alertText: file.path}; - window.openDialog('chrome://zotero/content/selectableAlert.xul', "zotero-reveal-window", "chrome", io); + // On platforms that don't support nsILocalFile.reveal() (e.g. Linux), + // "double-click" the parent directory + try { + var parent = file.parent.QueryInterface(Components.interfaces.nsILocalFile); + parent.launch(); + } + // If launch also fails, try the OS handler + catch (e) { + var uri = Components.classes["@mozilla.org/network/io-service;1"]. + getService(Components.interfaces.nsIIOService). + newFileURI(parent); + var protocolService = + Components.classes["@mozilla.org/uriloader/external-protocol-service;1"]. + getService(Components.interfaces.nsIExternalProtocolService); + protocolService.loadUrl(uri); + } } } else { diff --git a/chrome/content/zotero/selectItemsDialog.js b/chrome/content/zotero/selectItemsDialog.js @@ -39,10 +39,6 @@ function doLoad() collectionsView = new Zotero.CollectionTreeView(); document.getElementById('zotero-collections-tree').view = collectionsView; - - // move to center of screen - window.sizeToContent(); - window.centerWindowOnScreen(); } function doUnload() diff --git a/chrome/content/zotero/tools/csledit.xul b/chrome/content/zotero/tools/csledit.xul @@ -132,9 +132,10 @@ // Generate bibliography var bibliography = '<hr/><h1>Bibliography</h1>' + csl.formatBibliography(itemSet, "HTML"); - iframe.contentDocument.documentElement.innerHTML = - citations + - multCitations + bibliography; + iframe.contentDocument.documentElement.innerHTML = + '<div style="white-space: pre">' + + citations + multCitations + bibliography + + '</div>'; } diff --git a/chrome/content/zotero/tools/cslpreview.xul b/chrome/content/zotero/tools/cslpreview.xul @@ -133,7 +133,8 @@ // Generate bibliography var bibliography = '<p>' + csl.formatBibliography(itemSet, "HTML"); - return citations + bibliography; + return '<div style="white-space: pre">' + + citations + bibliography + '</div>'; } diff --git a/chrome/content/zotero/webpagedump/domsaver.js b/chrome/content/zotero/webpagedump/domsaver.js @@ -343,8 +343,9 @@ var wpdDOMSaver = { aDownload=aNode.complete; } catch(ex) {} } - var aFileName = this.download(aNode.src,aDownload); - if (aFileName) aNode.setAttribute("src", aFileName); + var aFileName = this.download(aNode.src,aDownload); + // Changed by Dan S. for Zotero -- see this.repairRelativeLinks() + if (aFileName) aNode.setAttribute("src", this.relativeLinkFix(aFileName)); } else { return wpdCommon.removeNodeFromParent(aNode); } @@ -352,7 +353,8 @@ var wpdDOMSaver = { case "object" : // for embedding different data sources in the html page if ( this.option["format"] ) { var aFileName = this.download(aNode.data,true); - if (aFileName) aNode.setAttribute("data", aFileName); + // Changed by Dan S. for Zotero -- see this.repairRelativeLinks() + if (aFileName) aNode.setAttribute("data", this.relativeLinkFix(aFileName)); } else { return wpdCommon.removeNodeFromParent(aNode); } @@ -360,7 +362,8 @@ var wpdDOMSaver = { case "body" : if ( this.option["format"] ) { var aFileName = this.download(aNode.background,true); - if (aFileName) aNode.setAttribute("background", aFileName); + // Changed by Dan S. for Zotero -- see this.repairRelativeLinks() + if (aFileName) aNode.setAttribute("background", this.relativeLinkFix(aFileName)); } else { aNode.removeAttribute("background"); aNode.removeAttribute("bgcolor"); @@ -373,7 +376,8 @@ var wpdDOMSaver = { case "td" : if ( this.option["format"] ) { var aFileName = this.download(aNode.getAttribute("background"),true); - if (aFileName) aNode.setAttribute("background", aFileName); + // Changed by Dan S. for Zotero -- see this.repairRelativeLinks() + if (aFileName) aNode.setAttribute("background", this.relativeLinkFix(aFileName)); } else { aNode.removeAttribute("background"); aNode.removeAttribute("bgcolor"); @@ -383,7 +387,8 @@ var wpdDOMSaver = { if ( aNode.type.toLowerCase() == "image" ) { if ( this.option["format"] ) { var aFileName = this.download(aNode.src,true); - if (aFileName) aNode.setAttribute("src", aFileName); + // Changed by Dan S. for Zotero -- see this.repairRelativeLinks() + if (aFileName) aNode.setAttribute("src", this.relativeLinkFix(aFileName)); } else { aNode.setAttribute("type", "button"); aNode.removeAttribute("src"); @@ -399,10 +404,12 @@ var wpdDOMSaver = { return wpdCommon.removeNodeFromParent(aNode); } else if ( (aNode.getAttribute("rel").toLowerCase() == "shortcut icon") || (aNode.getAttribute("rel").toLowerCase() == "icon") ) { var aFileName = this.download(aNode.href,true); - if (aFileName) aNode.setAttribute("href", aFileName); + // Changed by Dan S. for Zotero -- see this.repairRelativeLinks() + if (aFileName) aNode.setAttribute("href", this.relativeLinkFix(aFileName)); } else if (aNode.getAttribute("rel").toLowerCase() == "fontdef") { var aFileName = this.download(aNode.src,true); - if (aFileName) aNode.setAttribute("src", aFileName); + // Changed by Dan S. for Zotero -- see this.repairRelativeLinks() + if (aFileName) aNode.setAttribute("src", this.relativeLinkFix(aFileName)); } else { aNode.setAttribute("href", aNode.href); } @@ -419,7 +426,8 @@ var wpdDOMSaver = { if ( this.option["script"] ) { if ( aNode.hasAttribute("src") ) { var aFileName = this.download(aNode.src,true); - if (aFileName) aNode.setAttribute("src", aFileName); + // Changed by Dan S. for Zotero -- see this.repairRelativeLinks() + if (aFileName) aNode.setAttribute("src", this.relativeLinkFix(aFileName)); } } else { if ( WPD_JAVASCRIPTSRCBUG && aNode.hasAttribute("src") ) { @@ -566,7 +574,23 @@ var wpdDOMSaver = { } return aHTMLText; }, - + + + relativeLinkFix : function(aFileName) + { + return "about:blank?" + aFileName; + }, + + // Added by Dan S. for Zotero to restore relative links, + // which are prepended with "about:blank?" to fix a bug in Scrapbook/WPD + // that sending an invalid request to the server when the img src + // is a relative link to a file in a different directory + repairRelativeLinks : function(aHTMLText) + { + return aHTMLText.replace(/(src)="about:blank\?([^"]*)"/g, '$1="$2"'); + }, + + // process the CSS text of one stylesheet element processCSSText : function(aCSStext, aCSShref, inline) { @@ -760,7 +784,11 @@ var wpdDOMSaver = { HTMLText = HTMLText.replace(/\x00/g, " "); // replace the & added by the innerHTML method // because we have already generated all entities - if (WPD_ENTITYBUG) HTMLText = HTMLText.replace(/&/g,"&"); + if (WPD_ENTITYBUG) HTMLText = HTMLText.replace(/&/g,"&"); + + // Added by Dan S. for Zotero + HTMLText = this.repairRelativeLinks(HTMLText); + return this.repairInlineCSS(HTMLText); }, diff --git a/chrome/content/zotero/xpcom/attachments.js b/chrome/content/zotero/xpcom/attachments.js @@ -975,6 +975,8 @@ Zotero.Attachments = new function(){ nsIURL.fileBaseName = nsIURL.fileBaseName + '.' + tld; } + nsIURL.fileBaseName = Zotero.File.getValidFileName(nsIURL.fileBaseName); + return nsIURL.fileName; } diff --git a/chrome/content/zotero/xpcom/cite.js b/chrome/content/zotero/xpcom/cite.js @@ -311,7 +311,7 @@ Zotero.CSL._namesVariables = { "translator":true, "recipient":true, "interviewer":true, - "series-editor":true, + "collection-editor":true, "author":true } @@ -338,7 +338,7 @@ Zotero.CSL.prototype.createCitation = function(citationItems) { /* * create a citation (in-text or footnote) */ -Zotero.CSL._firstNameRegexp = /^[a-zA-Z0-9]*/; +Zotero.CSL._firstNameRegexp = /^[^\s]*/; Zotero.CSL._textCharRegexp = /[a-zA-Z0-9]/; Zotero.CSL._numberRegexp = /\d+/; Zotero.CSL.prototype.formatCitation = function(citation, format) { @@ -375,8 +375,10 @@ Zotero.CSL.prototype.formatCitation = function(citation, format) { var span = []; // loop through citation numbers and collect ranges in span for(var i in citationNumbers) { - if(i == parseInt(previousI, 10)+1) { // could be part of a range - // including the previous number + if(i != -1 && !citation.citationItems[citationNumbers[i]].prefix + && !citation.citationItems[citationNumbers[i]].suffix + && i == parseInt(previousI, 10)+1) { + // could be part of a range including the previous number span.push(citationNumbers[i]); } else { // not part of a range if(span.length) citationItems[span[0]] = citation.citationItems[span[0]]; @@ -775,7 +777,7 @@ Zotero.CSL.prototype._processNames = function(item, element, formattedString, co var newString = formattedString.clone(); if(formattedString.format != "Sort" && variables[j] == "author" && context - && context.option.(@name == "subsequent-author-substitute") == "true" + && context.option.(@name == "subsequent-author-substitute").length() && item.getProperty("subsequent-author-substitute") && context.localName() == "bibliography") { newString.append(context.option.(@name == "subsequent-author-substitute").@value.toString()); @@ -1068,7 +1070,15 @@ Zotero.CSL.prototype._processElements = function(item, element, formattedString, } if(term !== false && value) { - var isPlural = value.indexOf("-") != -1 || value.indexOf(",") != -1 || value.indexOf("\u2013") != -1; + if (child["@pluralize"] == "always") { + var isPlural = true; + } + else if (child["@pluralize"] == "never") { + var isPlural = false; + } + else { // contextual + var isPlural = value.indexOf("-") != -1 || value.indexOf(",") != -1 || value.indexOf("\u2013") != -1; + } var text = this._getTerm(term, isPlural, child.@form.toString(), child["@include-period"] == "true"); if(text) { @@ -1310,7 +1320,7 @@ Zotero.CSL.prototype._processElements = function(item, element, formattedString, } else if(attribute == "locator") { exists = citationItem && citationItem.locator && (citationItem.locatorType == variables[j] - || (!citation.locatorType && variables[j] == "page")); + || (!citationItem.locatorType && variables[j] == "page")); } else { // attribute == "position" if(variables[j] == "first") { exists = !citationItem @@ -1368,24 +1378,40 @@ Zotero.CSL.prototype._processElements = function(item, element, formattedString, * Compares two items, in order to sort the reference list * Returns -1 if A comes before B, 1 if B comes before A, or 0 if they are equal */ -Zotero.CSL.prototype._compareItem = function(a, b, context) { +Zotero.CSL.prototype._compareItem = function(a, b, context, cache) { var sortA = []; var sortB = []; - Zotero.debug("CompareItem"); + var aID = a.getID(); + var bID = b.getID(); + // author if(context.sort.key.length()) { - Zotero.debug("Context Sort by " + context.sort.key.length + " keys"); + var keyA, keyB; for each(var key in context.sort.key) { - var keyA = new Zotero.CSL.SortString(); - var keyB = new Zotero.CSL.SortString(); - if(key.@macro.length()) { - Zotero.debug("Context macro "); - this._processElements(a, this._csl.macro.(@name == key.@macro), keyA); - this._processElements(b, this._csl.macro.(@name == key.@macro), keyB); + var aCacheKey = aID+"-macro-"+key.@macro; + var bCacheKey = bID+"-macro-"+key.@macro; + + if(cache[aCacheKey]) { + keyA = cache[aCacheKey]; + } else { + keyA = new Zotero.CSL.SortString(); + this._processElements(a, this._csl.macro.(@name == key.@macro), keyA); + cache[aCacheKey] = keyA; + } + + if(cache[bCacheKey]) { + keyB = cache[bCacheKey]; + } else { + keyB = new Zotero.CSL.SortString(); + this._processElements(b, this._csl.macro.(@name == key.@macro), keyB); + cache[bCacheKey] = keyB; + } } else if(key.@variable.length()) { var variable = key.@variable.toString(); + var keyA = new Zotero.CSL.SortString(); + var keyB = new Zotero.CSL.SortString(); if(Zotero.CSL._dateVariables[variable]) { // date var date = a.getDate(variable); @@ -1399,8 +1425,6 @@ Zotero.CSL.prototype._compareItem = function(a, b, context) { this._processNames(a, element, keyA, context, null, [variable]); this._processNames(b, element, keyB, context, null, [variable]); } else { // text - Zotero.debug("Context key " + variable); - if(variable == "citation-number") { keyA.append(a.getProperty(variable)); keyB.append(b.getProperty(variable)); @@ -1422,7 +1446,7 @@ Zotero.CSL.prototype._compareItem = function(a, b, context) { } } - // sort by index + // sort by index in document var aIndex = a.getProperty("index"); var bIndex = b.getProperty("index"); if(aIndex !== "" && (bIndex === "" || aIndex < bIndex)) { @@ -1431,13 +1455,73 @@ Zotero.CSL.prototype._compareItem = function(a, b, context) { return 1; } + // sort by old index (to make this a stable sort) + var aOldIndex = a.getProperty("oldIndex"); + var bOldIndex = b.getProperty("oldIndex"); + if(aOldIndex < bOldIndex) { + return -1; + } else if(aOldIndex != bOldIndex) { + return 1; + } + return 0; } + +/** + * Sorts a list of items, keeping a cache of processed keys + **/ +Zotero.CSL.prototype.cachedSort = function(items, context, field) { + var me = this; + var cache = new Object(); + + for(var i=0; i<items.length; i++) { + if(items[i].setProperty) items[i].setProperty("oldIndex", i); + } + + if(field) { + var newItems = items.sort(function(a, b) { + return me._compareItem(a[field], b[field], context, cache); + }); + } else { + var newItems = items.sort(function(a, b) { + return me._compareItem(a, b, context, cache); + }); + } + + delete cache; + return newItems; +} + +Zotero.CSL.prototype.getEqualCitations = function(items) { + var citationsEqual = []; + + if(items) { + var context = this._csl.citation; + + var string = new Zotero.CSL.FormattedString(context.options, "Text"); + this._processElements(items[0], context.layout, string, + context, "subsequent"); + var lastString = string.get(); + + for(var i=1; i<items.length; i++) { + string = new Zotero.CSL.FormattedString(context.option, "Text"); + this._processElements(items[i], context.layout, string, + context, "subsequent"); + string = string.get(); + + citationsEqual[i] = string == lastString; + lastString = string; + } + } + + return citationsEqual; +} + /* * Compares two citations; returns true if they are different, false if they are equal */ -Zotero.CSL.prototype._compareCitations = function(a, b, context) { +Zotero.CSL.prototype.compareCitations = function(a, b, context) { if((!a && b) || (a && !b)) { return true; } else if(!a && !b) { @@ -1743,10 +1827,7 @@ Zotero.CSL.Citation = function(citationItems, csl) { */ Zotero.CSL.Citation.prototype.sort = function() { if(this.sortable) { - var me = this; - this.citationItems = this.citationItems.sort(function(a, b) { - return me._csl._compareItem(a.item, b.item, me._citation); - }); + this.citationItems = this._csl.cachedSort(this.citationItems, this._citation, "item"); } } @@ -1858,7 +1939,7 @@ Zotero.CSL.Item.prototype.getID = function() { * Mappings for names */ Zotero.CSL.Item._zoteroNameMap = { - "series-editor":"seriesEditor" + "collection-editor":"seriesEditor" } /* @@ -1919,6 +2000,7 @@ Zotero.CSL.Item._zoteroFieldMap = { "URL":"url", "DOI":"DOI", "ISBN" : "ISBN", + "call-number":"callNumber", "note":"extra", "number":"number", "references":"history" @@ -2075,6 +2157,7 @@ Zotero.CSL.Item._optionalTypeMap = { magazineArticle:"article-magazine", newspaperArticle:"article-newspaper", thesis:"thesis", + conferencePaper:"paper-conference", letter:"personal_communication", manuscript:"manuscript", interview:"interview", @@ -2093,11 +2176,11 @@ Zotero.CSL.Item._optionalTypeMap = { instantMessage:"personal_communication", forumPost:"webpage", audioRecording:"song", // ?? - presentation:"paper-conference", + presentation:"speech", videoRecording:"motion_picture", tvBroadcast:"motion_picture", radioBroadcast:"motion_picture", - podcast:"speech", // ?? + podcast:"song", // ?? computerProgram:"book" // ?? }; @@ -2109,6 +2192,8 @@ Zotero.CSL.Item._fallbackTypeMap = { magazineArticle:"article", newspaperArticle:"article", thesis:"article", + encyclopediaArticle:"chapter", + dictionaryEntry:"chapter", conferencePaper:"chapter", letter:"article", manuscript:"article", @@ -2373,10 +2458,7 @@ Zotero.CSL.ItemSet.prototype.remove = function(items) { */ Zotero.CSL.ItemSet.prototype.resort = function() { // sort - var me = this; - this.items = this.items.sort(function(a, b) { - return me.csl._compareItem(a, b, me.bibliography); - }); + this.items = this.csl.cachedSort(this.items, this.bibliography); // first loop through to collect disambiguation data by item, so we can // see if any items have changed; also collect last names @@ -2397,7 +2479,7 @@ Zotero.CSL.ItemSet.prototype.resort = function() { if(!names) names = this.items[i].getNames("translator"); if(!names) names = this.items[i].getNames("recipient"); if(!names) names = this.items[i].getNames("interviewer"); - if(!names) names = this.items[i].getNames("series-editor"); + if(!names) names = this.items[i].getNames("collection-editor"); if(!names) continue; namesByItem[i] = names; } @@ -2441,15 +2523,18 @@ Zotero.CSL.ItemSet.prototype.resort = function() { // determine how to format name var theNames = allNames[lastName]; if(theNames && theNames.length > 1) { - nameType[lastName] = Zotero.CSL.NAME_USE_INITIAL; + // have two items with identical last names but different + // first names + nameType[lastName] = Zotero.CSL.NAME_USE_INITIAL; + // check initials to see if any match var initials = new Object(); for(var k=0; k<theNames.length; k++) { if(initials[theNames[k][0]]) { nameType[lastName] = Zotero.CSL.NAME_USE_FULL; + break; } initials[theNames[k][0]] = true; - break; } } } @@ -2465,11 +2550,8 @@ Zotero.CSL.ItemSet.prototype.resort = function() { } // loop through once to determine where items equal the previous item - if(this._disambiguate) { - var citationsEqual = []; - for(var i=1; i<this.items.length; i++) { - citationsEqual[i] = this.csl._compareCitations(this.items[i-1], this.items[i], this.citation); - } + if(this._disambiguate && this.items.length) { + var citationsEqual = this.csl.getEqualCitations(this.items, this.citation); } var allNames = {}; @@ -2488,7 +2570,7 @@ Zotero.CSL.ItemSet.prototype.resort = function() { var names = namesByItem[i]; var disambiguated = false; - if(this._disambiguate && i != 0 && citationsEqual[i] == 0) { + if(this._disambiguate && i != 0 && citationsEqual[i] == true) { // some options can only be applied if there are actual authors if(names && lastNames && this.options["disambiguate-add-names"]) { // try adding names to disambiguate @@ -2575,7 +2657,7 @@ Zotero.CSL.ItemSet.prototype.resort = function() { item.setProperty("disambiguate-condition", true); // if we cannot disambiguate with the conditional, revert - if(me.csl._compareCitations(lastItem, item) == 0) { + if(this.csl.compareCitations(lastItem, item) == 0) { if(!oldCondition) { lastItem.setProperty("disambiguate-condition", undefined); } @@ -2584,17 +2666,16 @@ Zotero.CSL.ItemSet.prototype.resort = function() { } } - if(this.options["subsequent-author-substitute"]) { + if(this.options["subsequent-author-substitute"] + && lastNames && names.length && lastNames.length == names.length) { var namesDiffer = false; - for(var j=0; j<numberOfNames; j++) { + for(var j=0; j<names.length; j++) { namesDiffer = (names[j].getNameVariable("lastName") != lastNames[j].getNameVariable("lastName") || (names[j].getNameVariable("firstName") != lastNames[j].getNameVariable("firstName"))); if(namesDiffer) break; } - if(!namesDiffer) { - item.setProperty("subsequent-author-substitute", true); - } + if(!namesDiffer) item.setProperty("subsequent-author-substitute", true); } item.setProperty("citation-number", citationNumber++); @@ -2638,15 +2719,14 @@ Zotero.CSL.FormattedString = function(context, format, delimiter, subsequent) { this.format = format; this.delimiter = delimiter; this.string = ""; - this.closePunctuation = false; + this.closePunctuation = ""; this.closeFormatting = ""; this.useBritishStyleQuotes = false; // insert tab iff second-field-align is on this.insertTabAfterField = (!subsequent && this.option.(@name == "second-field-align").@value.toString()); - // whether to remove whitespace from next appended string - this.suppressLeadingWhitespace = false; - // whether to prepend a newline to the next appended string + this.insertTabBeforeField = false; + // append line before next this.prependLine = false; if(format == "RTF") { @@ -2690,8 +2770,8 @@ Zotero.CSL.FormattedString.prototype.concat = function(formattedString, element) if(formattedString.closePunctuation || formattedString.closeFormatting) { haveAppended = true; // add the new close punctuation - this.closeFormatting = formattedString.closeFormatting; - this.closePunctuation = formattedString.closePunctuation; + this.closeFormatting += formattedString.closeFormatting; + this.closePunctuation += formattedString.closePunctuation; } // append suffix, if we didn't before @@ -2708,38 +2788,57 @@ Zotero.CSL.FormattedString._rtfEscapeFunction = function(aChar) { * appends a string (with format parameters) to the current one */ Zotero.CSL.FormattedString.prototype.append = function(string, element, dontDelimit, dontEscape) { + if(!string && string !== 0) return false; if(typeof(string) != "string") { string = string.toString(); } + // get prefix + var prefix = ""; + if(element && element.@prefix.length()) { + var prefix = element.@prefix.toString(); + } + + // append tab before if necessary + if(!dontDelimit && this.insertTabBeforeField) { + // replace any space preceding tab + this.string = this.string.replace(/\s+$/, ""); + + if(this.format == "HTML") { + this.string += '</td><td style="padding-left:4pt;">'; + } else if(this.format == "RTF") { + this.string += "\\tab "; + } else if(this.format == "Integration") { + this.string += "\t"; + } else { + this.string += " "; + } + + this.insertTabBeforeField = false; + if(prefix !== "") { + prefix = prefix.replace(/^\s+/, ""); + } else { + string = string.replace(/^\s+/, ""); + } + } + // append delimiter if necessary if(this.delimiter && this.string && !dontDelimit) { this.append(this.delimiter, null, true); } // append prefix before closing punctuation - if(element && element.@prefix.length()) { - var prefix = element.@prefix.toString(); - if(this.suppressLeadingWhitespace) { - var newPrefix = prefix.replace(/^\s+/, ""); - if(newPrefix != "" && newPrefix != prefix) { - this.suppressLeadingWhitespace = false; - } - prefix = newPrefix; - } - } - - if(prefix) { + if(prefix !== "") { this.append(prefix, null, true); } var addBefore = ""; var addAfter = ""; - // append line before if display="block" - if(element && (element["@display"] == "block" || this.appendLine)) { + // prepend line before if display="block" + if(element && (element["@display"] == "block" || this.prependLine)) { if(this.format == "HTML") { if(this.option.(@name == "hanging-indent").@value == "true") { addBefore += '<div style="text-indent:0.5in;">' @@ -2755,15 +2854,10 @@ Zotero.CSL.FormattedString.prototype.append = function(string, element, dontDeli } else { addBefore += (Zotero.isWin ? "\r\n" : "\n"); } - this.appendLine = element["@display"] == "block"; + this.prependLine = element["@display"] == "block"; } } - if(this.suppressLeadingWhitespace) { - string = string.replace(/^\s+/, ""); - this.suppressLeadingWhitespace = false; - } - // close quotes, etc. using punctuation if(this.closePunctuation) { if(Zotero.CSL.FormattedString._punctuation.indexOf(string[0]) != -1) { @@ -2771,7 +2865,7 @@ Zotero.CSL.FormattedString.prototype.append = function(string, element, dontDeli string = string.substr(1); } this.string += this.closePunctuation; - this.closePunctuation = false; + this.closePunctuation = ""; } // clean up @@ -2805,9 +2899,12 @@ Zotero.CSL.FormattedString.prototype.append = function(string, element, dontDeli } else if(element["@text-case"] == "uppercase") { // all uppercase string = string.toUpperCase(); + } else if(element["@text-case"] == "sentence") { + // for now capitalizes only the first letter, the rest are lowercase + string = string[0].toUpperCase()+string.substr(1).toLowerCase(); } else if(element["@text-case"] == "capitalize-first") { // capitalize first - string = string[0].toUpperCase()+string.substr(1).toLowerCase(); + string = string[0].toUpperCase()+string.substr(1); } else if(element["@text-case"] == "capitalize-all") { // capitalize first var strings = string.split(" "); @@ -2906,30 +3003,14 @@ Zotero.CSL.FormattedString.prototype.append = function(string, element, dontDeli this.string += addBefore+string; - var suffix; if(element && element.@suffix.length()) { this.append(element.@suffix.toString(), null, true); } - // close div for display=block in HTML - // save for second-field-align if(!dontDelimit && this.insertTabAfterField) { - // replace any space following this entry - this.string = this.string.replace(/\s+$/, ""); - - if(this.format == "HTML") { - addAfter += '</td><td style="padding-left:4pt;">'; - } else if(this.format == "RTF") { - addAfter += "\\tab "; - } else if(this.format == "Integration") { - addAfter += "\t"; - } else { - addAfter += " "; - } - this.insertTabAfterField = false; - this.suppressLeadingWhitespace = true; + this.insertTabBeforeField = true; } this.closeFormatting = addAfter; @@ -2941,7 +3022,7 @@ Zotero.CSL.FormattedString.prototype.append = function(string, element, dontDeli * gets the formatted string */ Zotero.CSL.FormattedString.prototype.get = function() { - return this.string+(this.closeFormatting ? this.closeFormatting : "")+(this.closePunctuation ? this.closePunctuation : ""); + return this.string+this.closeFormatting+this.closePunctuation; } /* diff --git a/chrome/content/zotero/xpcom/file.js b/chrome/content/zotero/xpcom/file.js @@ -27,6 +27,7 @@ Zotero.File = new function(){ this.getContents = getContents; this.getContentsFromURL = getContentsFromURL; this.putContents = putContents; + this.getValidFileName = getValidFileName; this.copyToUnique = this.copyToUnique; this.getCharsetFromFile = getCharsetFromFile; this.addCharsetListener = addCharsetListener; @@ -120,7 +121,7 @@ Zotero.File = new function(){ /* * Return the contents of a URL as a string * - * Runs asynchronously, so should only be run on local (e.g. chrome) URLs + * Runs synchronously, so should only be run on local (e.g. chrome) URLs */ function getContentsFromURL(url) { var xmlhttp = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] @@ -159,6 +160,20 @@ Zotero.File = new function(){ } + // Strip potentially invalid characters + // See http://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words + function getValidFileName(fileName) { + // TODO: use space instead, and figure out what's doing extra + // URL encode when saving attachments that trigger this + fileName = fileName.replace(/[\/\\\?%\*:|"<>\.]/g, ''); + // Don't allow blank filename + if (!fileName) { + fileName = '_'; + } + return fileName; + } + + /* * Not implemented, but it'd sure be great if it were */ diff --git a/chrome/content/zotero/xpcom/fulltext.js b/chrome/content/zotero/xpcom/fulltext.js @@ -407,7 +407,7 @@ Zotero.Fulltext = new function(){ if (_pdfInfo) { var infoFile = cacheFile.parent; infoFile.append(this.pdfInfoCacheFile); - Zotero.debug('Running pdfinfo ' + file.path + '" "' + infoFile.path + '"'); + Zotero.debug('Running pdfinfo "' + file.path + '" "' + infoFile.path + '"'); var proc = Components.classes["@mozilla.org/process/util;1"]. createInstance(Components.interfaces.nsIProcess); @@ -424,7 +424,7 @@ Zotero.Fulltext = new function(){ var maxPages = Zotero.Prefs.get('fulltext.pdfMaxPages'); - Zotero.debug('Running pdftotext -nopgbrk ' + Zotero.debug('Running pdftotext -enc UTF-8 -nopgbrk ' + (allPages ? '' : '-l ' + maxPages) + ' "' + file.path + '" "' + cacheFile.path + '"'); @@ -432,7 +432,7 @@ Zotero.Fulltext = new function(){ createInstance(Components.interfaces.nsIProcess); proc.init(_pdfConverter); - var args = ['-nopgbrk']; + var args = ['-enc', 'UTF-8', '-nopgbrk']; if (allPages) { if (totalPages) { var pagesIndexed = totalPages; diff --git a/chrome/content/zotero/xpcom/ingester.js b/chrome/content/zotero/xpcom/ingester.js @@ -41,15 +41,17 @@ Zotero.Ingester = new Object(); * Precompile proxy regexps */ Zotero.Ingester.ProxyMonitor = new function() { - var _ezProxyRe = new RegExp(); - _ezProxyRe.compile("\\?(?:.+&)?(url|qurl)=([^&]+)", "i"); + var _ezProxyRe = /\?(?:.+&)?(url|qurl)=([^&]+)/i; + var _juniperProxyRe = /^(https?:\/\/[^\/:]+(?:\:[0-9]+)?)\/(.*)?,DanaInfo=([^+,]*)([^+]*)(?:\+(.*))?$/; + var _pathRe = /([^?]*\/)([^?\/]*)(\?(.*))?$/ /*var _hostRe = new RegExp(); _hostRe.compile("^https?://(([^/:]+)(?:\:([0-9]+))?)");*/ var ioService = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var on = false; - var _mapFromProxy = null; - var _mapToProxy = null; + var _mapFromEZProxy = null; + var _mapToJuniperProxy = null; + var _mapToEZProxy = null; this.init = init; this.proxyToProper = proxyToProper; @@ -125,12 +127,12 @@ Zotero.Ingester.ProxyMonitor = new function() { Zotero.debug("EZProxy: host "+newURI.hostPort+" is really "+properURI.hostPort); // Initialize variables here so people who never use EZProxies // don't get the (very very minor) speed hit - if(!_mapFromProxy) { - _mapFromProxy = new Object(); - _mapToProxy = new Object(); + if(!_mapFromEZProxy) { + _mapFromEZProxy = new Object(); + _mapToEZProxy = new Object(); } - _mapFromProxy[newURI.hostPort] = properURI.hostPort; - _mapToProxy[properURI.hostPort] = newURI.hostPort; + _mapFromEZProxy[newURI.hostPort] = properURI.hostPort; + _mapToEZProxy[properURI.hostPort] = newURI.hostPort; } } } catch(e) {} @@ -140,12 +142,20 @@ Zotero.Ingester.ProxyMonitor = new function() { * Returns a page's proper url, adjusting for proxying */ function proxyToProper(url) { - if(_mapFromProxy) { + var m = _juniperProxyRe.exec(url); + if(m) { + url = "http://"+m[3]+"/"+m[2]+m[5]; + + if(!_mapToJuniperProxy) _mapToJuniperProxy = new Object(); + _mapToJuniperProxy[m[3]] = {prePath:m[1], additionalInfo:m[4], danaInfoBeforeFile:(m[2].substr(m[2].length-1) == "/")}; + + Zotero.debug("Juniper Proxy: proper url is "+url); + } else if(_mapFromEZProxy) { // EZProxy detection is active var uri = _parseURL(url); - if(uri && _mapFromProxy[uri.hostPort]) { - url = url.replace(uri.hostPort, _mapFromProxy[uri.hostPort]); + if(uri && _mapFromEZProxy[uri.hostPort]) { + url = url.replace(uri.hostPort, _mapFromEZProxy[uri.hostPort]); Zotero.debug("EZProxy: proper url is "+url); } } @@ -157,14 +167,27 @@ Zotero.Ingester.ProxyMonitor = new function() { * Returns a page's proxied url from the proper url */ function properToProxy(url) { - if(_mapToProxy) { - // EZProxy detection is active - + if(_mapToJuniperProxy || _mapToEZProxy) { + // Proxy detection is active var uri = _parseURL(url); - if(uri && _mapToProxy[uri.hostPort]) { - // Actually need to map - url = url.replace(uri.hostPort, _mapToProxy[uri.hostPort]); - Zotero.debug("EZProxy: proxied url is "+url); + + if(uri) { + if(_mapToEZProxy && _mapToEZProxy[uri.hostPort]) { + // Actually need to map + url = url.replace(uri.hostPort, _mapToEZProxy[uri.hostPort]); + Zotero.debug("EZProxy: proxied url is "+url); + } else if(_mapToJuniperProxy && _mapToJuniperProxy[uri.hostPort]) { + var m = _pathRe.exec(uri.path); + + if(_mapToJuniperProxy[uri.hostPort].danaInfoBeforeFile) { + url = _mapToJuniperProxy[uri.hostPort].prePath+m[1]+",DanaInfo="+uri.hostPort+_mapToJuniperProxy[uri.hostPort].additionalInfo+"+"; + if(m[2]) url += m[2]; + } else { + url = _mapToJuniperProxy[uri.hostPort].prePath+m[1]+m[2]+",DanaInfo="+uri.hostPort+_mapToJuniperProxy[uri.hostPort].additionalInfo+"+"; + } + if(m[3]) url += m[3]; + Zotero.debug("Juniper Proxy: proxied url is "+url); + } } } diff --git a/chrome/content/zotero/xpcom/integration.js b/chrome/content/zotero/xpcom/integration.js @@ -20,7 +20,7 @@ ***** END LICENSE BLOCK ***** */ -const API_VERSION = 4; +const API_VERSION = 5; Zotero.Integration = new function() { var _contentLengthRe = /[\r\n]Content-Length: *([0-9]+)/i; @@ -519,7 +519,7 @@ Zotero.Integration.SOAP = new function() { } watcher.openWindow(null, 'chrome://zotero/content/integrationDocPrefs.xul', '', - 'chrome,modal'+(Zotero.isWin ? ',popup' : ''), io, true); + 'chrome,modal,centerscreen' + (Zotero.isWin ? ',popup' : ''), io, true); session.setStyle(io.style, io.useEndnotes, io.useBookmarks); if(!oldStyle || oldStyle == io.style) { session.regenerateAll = session.bibliographyHasChanged = true; @@ -798,7 +798,7 @@ Zotero.Integration.Session.prototype.editCitation = function(index, citation) { Components.classes["@mozilla.org/embedcomp/window-watcher;1"] .getService(Components.interfaces.nsIWindowWatcher) .openWindow(null, 'chrome://zotero/content/addCitationDialog.xul', '', - 'chrome,modal'+(Zotero.isWin ? ',popup' : ''), io); + 'chrome,modal,centerscreen' + (Zotero.isWin ? ',popup' : ''), io); if(citation && !io.citation.citationItems.length) { io.citation = citation; @@ -958,7 +958,7 @@ Zotero.Integration.Session.prototype.editBibliography = function() { Components.classes["@mozilla.org/embedcomp/window-watcher;1"] .getService(Components.interfaces.nsIWindowWatcher) .openWindow(null, 'chrome://zotero/content/editBibliographyDialog.xul', '', - 'chrome,modal'+(Zotero.isWin ? ',popup' : ''), io, true); + 'chrome,modal,centerscreen' + (Zotero.isWin ? ',popup' : ''), io, true); } diff --git a/chrome/content/zotero/xpcom/itemTreeView.js b/chrome/content/zotero/xpcom/itemTreeView.js @@ -1536,17 +1536,22 @@ Zotero.ItemTreeView.prototype.onDragStart = function (evt,transferData,action) transferData.data.addDataForFlavour("text/unicode", text); } - var [mode, ] = format.split('='); - if (mode == 'export') { - Zotero.QuickCopy.getContentFromItems(items, format, exportCallback); - } - else if (mode.indexOf('bibliography') == 0) { - var content = Zotero.QuickCopy.getContentFromItems(items, format); - transferData.data.addDataForFlavour("text/unicode", content.text); - transferData.data.addDataForFlavour("text/html", content.html); + try { + var [mode, ] = format.split('='); + if (mode == 'export') { + Zotero.QuickCopy.getContentFromItems(items, format, exportCallback); + } + else if (mode.indexOf('bibliography') == 0) { + var content = Zotero.QuickCopy.getContentFromItems(items, format); + transferData.data.addDataForFlavour("text/unicode", content.text); + transferData.data.addDataForFlavour("text/html", content.html); + } + else { + Components.utils.reportError("Invalid Quick Copy mode '" + mode + "'"); + } } - else { - Components.utils.reportError("Invalid Quick Copy mode '" + mode + "'"); + catch (e) { + Components.utils.reportError(e + " with format '" + format + "'"); } } @@ -1587,6 +1592,12 @@ Zotero.ItemTreeView.fileDragDataProvider.prototype = { // Make sure files exist var notFoundNames = []; for (var i=0; i<draggedItems.length; i++) { + // TODO create URL? + if (!draggedItems[i].isAttachment() || + draggedItems[i].getAttachmentLinkMode() == Zotero.Attachments.LINK_MODE_LINKED_URL) { + continue; + } + if (draggedItems[i].getFile()) { items.push(draggedItems[i]); } diff --git a/chrome/content/zotero/xpcom/mime.js b/chrome/content/zotero/xpcom/mime.js @@ -37,16 +37,20 @@ Zotero.MIME = new function(){ ["%PDF-", "application/pdf", 0], ["%!PS-Adobe-", 'application/postscript', 0], ["%! PS-Adobe-", 'application/postscript', 0], + ["\uFFFD\uFFFD\x11\u0871\x1A\uFFFD\x00\x00", "application/msword", 0], ["From", 'text/plain', 0], [">From", 'text/plain', 0], ["#!", 'text/plain', 0], ["<?xml", 'text/xml', 0], ["<!DOCTYPE html", 'text/html', 0], ["<html", 'text/html', 0], - ["\uFFFD\uFFFD", 'image/jpeg', 0], - ["JFIF", 'image/jpeg'], + ["\uFFFD\uFFFD\uFFFD\uFFFD", 'image/jpeg', 0], ["GIF8", 'image/gif', 0], - ["\uFFFDPNG", 'image/png', 0] + ["\uFFFDPNG", 'image/png', 0], + ["PK\x03\x04", "application/vnd.oasis.opendocument.text", 0], + ["JFIF", 'image/jpeg'], + ["FLV", "video/x-flv", 0] + ]; var _textTypes = { @@ -71,7 +75,8 @@ Zotero.MIME = new function(){ // Extensions of text files (generally XML) to force to be external var _externalTextExtensions = { - 'graffle': true + graffle: true, + mm: true }; @@ -98,8 +103,78 @@ Zotero.MIME = new function(){ switch (mimeType) { case 'text/html': return 'html'; + case 'application/pdf': + case 'application/x-pdf': + case 'application/acrobat': + case 'applications/vnd.pdf': + case 'text/pdf': + case 'text/x-pdf': return 'pdf'; + + case 'image/jpg': + case 'image/jpeg': + return 'jpg'; + + case 'image/gif': + return 'gif'; + + case 'application/msword': + case 'application/doc': + case 'application/vnd.msword': + case 'application/vnd.ms-word': + case 'application/winword': + case 'application/word': + case 'application/x-msw6': + case 'application/x-msword': + return 'doc'; + + case 'application/vnd.oasis.opendocument.text': + case 'application/x-vnd.oasis.opendocument.text': + return 'odt'; + + case 'video/flv': + case 'video/x-flv': + return 'flv'; + + case 'image/tif': + case 'image/tiff': + case 'image/tif': + case 'image/x-tif': + case 'image/tiff': + case 'image/x-tiff': + case 'application/tif': + case 'application/x-tif': + case 'application/tiff': + case 'application/x-tiff': + return 'tiff'; + + case 'application/zip': + case 'application/x-zip': + case 'application/x-zip-compressed': + case 'application/x-compress': + case 'application/x-compressed': + case 'multipart/x-zip': + return 'zip'; + + case 'video/quicktime': + case 'video/x-quicktime': + return 'mov'; + + case 'video/avi': + case 'video/msvideo': + case 'video/x-msvideo': + return 'avi'; + + case 'audio/wav': + case 'audio/x-wav': + case 'audio/wave': + return 'wav'; + + case 'audio/aiff': + case 'audio/x-aiff': + case 'sound/aiff': + return 'aiff'; } try { diff --git a/chrome/content/zotero/xpcom/quickCopy.js b/chrome/content/zotero/xpcom/quickCopy.js @@ -15,7 +15,8 @@ Zotero.QuickCopy = new function() { _init(); } - return _formattedNames[this.stripContentType(setting)]; + var name = _formattedNames[this.stripContentType(setting)]; + return name ? name : ''; } function getSettingFromFormattedName(name) { diff --git a/chrome/content/zotero/xpcom/schema.js b/chrome/content/zotero/xpcom/schema.js @@ -171,7 +171,7 @@ Zotero.Schema = new function(){ **/ function updateScrapersRemote(force, callback) { // Little hack to manually update from repo on upgrade to 1.0.3 - if (!force) { + if (!force && Zotero.Prefs.get('automaticScraperUpdates')) { var syncTargetVersion = 2; // increment this when releasing new version that requires it var syncVersion = _getDBVersion('sync'); if (syncVersion < syncTargetVersion) { diff --git a/chrome/content/zotero/xpcom/utilities.js b/chrome/content/zotero/xpcom/utilities.js @@ -131,8 +131,8 @@ Zotero.Utilities.prototype.superCleanString = function(x) { throw "superCleanString: argument must be a string"; } - var x = x.replace(/^[^\w(]+/, ""); - return x.replace(/[^\w)]+$/, ""); + var x = x.replace(/^[\x00-\x27\x29-\x2F\x3A-\x40\x5B-\x60\x7B-\x7F]+/, ""); + return x.replace(/[\x00-\x28\x2A-\x2F\x3A-\x40\x5B-\x60\x7B-\x7F]+$/, ""); } /* @@ -383,7 +383,7 @@ Zotero.Utilities.prototype.getLocalizedCreatorType = function(type) { * Follows capitalizeTitles pref, unless |force| is true */ Zotero.Utilities.prototype.capitalizeTitle = function(string, force) { - string = this.cleanString(string); + string = this.trimInternal(string); if(Zotero.Prefs.get('capitalizeTitles') || force) { // fix colons string = string.replace(" : ", ": ", "g"); @@ -474,7 +474,7 @@ Zotero.Utilities.Ingester.prototype.getItemArray = function(doc, inHere, urlRe, if(!urlRe || urlRegexp.test(links[i].href)) { var text = links[i].textContent; if(text) { - text = this.cleanString(text); + text = this.trimInternal(text); if(!rejectRe || !rejectRegexp.test(text)) { if(availableItems[links[i].href]) { if(text != availableItems[links[i].href]) { @@ -831,7 +831,7 @@ Zotero.Utilities.HTTP.processDocuments = function(firstDoc, urls, processor, don } }; var init = function() { - hiddenBrowser.addEventListener("load", onLoad, true); + hiddenBrowser.addEventListener("pageshow", onLoad, true); if (firstDoc) { processor(firstDoc, doLoad); diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js @@ -156,6 +156,7 @@ var Zotero = new function(){ var xmlhttp = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] .createInstance(); xmlhttp.open('GET', 'chrome://global/locale/global.dtd', false); + xmlhttp.overrideMimeType('text/plain'); xmlhttp.send(null); this.dir = xmlhttp.responseText.match(/(ltr|rtl)/)[0]; @@ -521,12 +522,14 @@ var Zotero = new function(){ '[JavaScript Error: "document.getElementById("sanitizeItem")', 'chrome://webclipper', 'No chrome package registered for chrome://piggy-bank', - 'global/global.dtd' + '[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' ]; for (var i=0; i<blacklist.length; i++) { if (msg.message.indexOf(blacklist[i]) != -1) { - Zotero.debug("Skipping blacklisted error: " + msg.message); + //Zotero.debug("Skipping blacklisted error: " + msg.message); continue msgblock; } } diff --git a/chrome/locale/af-ZA/zotero/preferences.dtd b/chrome/locale/af-ZA/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Kitskopieer"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Verstek-afvoerformaat:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Let wel: rykteksformatering sal op Mac OS X verlore gaan."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Werfspesifieke instellings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domein/pad"> diff --git a/chrome/locale/af-ZA/zotero/zotero.properties b/chrome/locale/af-ZA/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/ar/zotero/preferences.dtd b/chrome/locale/ar/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "نسخ سريع"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "شكل المخرجات الإفتراضي:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "ملاحظة: التنسيق الغني للنصوص سيفقد عند استخدام نظام ماكنتوش."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "إعدادات خاصة حسب الموقع:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "المجال/المسار"> diff --git a/chrome/locale/ar/zotero/zotero.properties b/chrome/locale/ar/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=تقليص الحاشية annotations.expand.tooltip=توسيع الحاشية annotations.oneWindowWarning=لا يمكن عرض الحواشي للقطات الفوتوغرافية في اكثر من نافذة في نفس الوقت. سيتم عرض هذه اللقطة بدون حواشي. -integration.incompatibleVersion=هذه الإصدارة من إضافة "كلمة زوتيرو" غير متوافقة مع النسخة الموجودة حاليا في جهازك. فضلاً تأكد من أنك تستخدم آخر نسخة من كلا التطبيقين. +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=حقول مايكروسوفت وورد أقل عرضة للتعديل الغير مقصود ، ولكنه لا يمكن مشاركته ببرنامج OpenOffice.org. diff --git a/chrome/locale/bg-BG/zotero/preferences.dtd b/chrome/locale/bg-BG/zotero/preferences.dtd @@ -1,11 +1,11 @@ -<!ENTITY zotero.preferences.title "Настройки на Zotero"> +<!ENTITY zotero.preferences.title "Настройки на Зотеро"> <!ENTITY zotero.preferences.default "По подразбиране:"> <!ENTITY zotero.preferences.prefpane.general "Общи"> <!ENTITY zotero.preferences.userInterface "Потребителски интерфейс"> -<!ENTITY zotero.preferences.position "Покaзване на Zotero"> +<!ENTITY zotero.preferences.position "Покaзване на Зотеро"> <!ENTITY zotero.preferences.position.above "над"> <!ENTITY zotero.preferences.position.below "под"> <!ENTITY zotero.preferences.position.browser "съдържанието на браузера"> @@ -20,7 +20,7 @@ <!ENTITY zotero.preferences.autoUpdate "Автоматична проверка за усъвременени преводачи"> <!ENTITY zotero.preferences.updateNow "Незабано осъвременяване"> <!ENTITY zotero.preferences.reportTranslationFailure "Осведомяване за неработещи преводачи на страници"> -<!ENTITY zotero.preferences.parseRISRefer "Отваряне на изтеглените RIS/Refer файлове с Zotero"> +<!ENTITY zotero.preferences.parseRISRefer "Отваряне на изтеглените RIS/Refer файлове с Зотеро"> <!ENTITY zotero.preferences.automaticSnapshots "Автоматично правене на снимки когато се създават обекти от интернет страници"> <!ENTITY zotero.preferences.downloadAssociatedFiles "Автоматично прикачване на асоциираните PDF и други файлове по време на записа на обектите"> <!ENTITY zotero.preferences.automaticTags "Автоматично маркиране на обектите с ключови думи и заглавие на темата"> @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "Експорт"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> +<!ENTITY zotero.preferences.citationOptions.caption "Опции за цитиране"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Включи интернет адреса на статиите в списъка с литературните източници"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Когато тази опция е изключена, Зотеро включва интернет адреса на цитираната статия от списание или вестник, само ако номерата на страниците не са указани."> <!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 formatting ще бъде загубен при Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Настройки специфични за страницата:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Домен/пътека"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(напр. wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Изходящ формат"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "Инсталиране на допълнителни стилове..."> <!ENTITY zotero.preferences.prefpane.keys "Клавишни Комбинации"> @@ -86,6 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "Подръжка на базата дани"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Проберка на цялостта на базата дани"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Възстановяване на преводачите и стиловете..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Възстановяване на преводачите..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Възстановяване на стиловете..."> diff --git a/chrome/locale/bg-BG/zotero/timeline.properties b/chrome/locale/bg-BG/zotero/timeline.properties @@ -1,4 +1,4 @@ -general.title=Хронология на Zotero +general.title=Хронология на Зотеро general.filter=Филтър: general.highlight=Маркиране: general.clearAll=Изчистване на всичко diff --git a/chrome/locale/bg-BG/zotero/zotero.dtd b/chrome/locale/bg-BG/zotero/zotero.dtd @@ -1,7 +1,7 @@ <!ENTITY zotero.general.optional "(По желание)"> <!ENTITY zotero.general.note "Бележка:"> -<!ENTITY zotero.errorReport.unrelatedMessages "Дневника с грешките може да съдържа съобщения несвързани с Zotero."> +<!ENTITY zotero.errorReport.unrelatedMessages "Дневника с грешките може да съдържа съобщения несвързани с Зотеро."> <!ENTITY zotero.errorReport.additionalInfo "Допълнителна информация"> <!ENTITY zotero.errorReport.emailAddress "Адресът на вашата електронна поща:"> <!ENTITY zotero.errorReport.errorSteps "Какво правихте когато възникна грешката? Ако е възможно, моля опишете стъпките необходими, за да се възпроизведе грешката."> @@ -11,19 +11,19 @@ <!ENTITY zotero.errorReport.furtherAssistance "За повече помощ разгледайте страницата с известните проблеми и форумите."> <!ENTITY zotero.errorReport.includeReportID "Моля включете идентификационият номер на отчета във всичката кореспонденция с разработчиците на зотеро, която касае този проблем."> -<!ENTITY zotero.upgrade.newVersionInstalled "Инсталирахте нова версия на Zotero."> -<!ENTITY zotero.upgrade.upgradeRequired "Вашата база дани на Zotero трябва да бъде осъвременена за да може да работи с новата версия."> +<!ENTITY zotero.upgrade.newVersionInstalled "Инсталирахте нова версия на Зотеро."> +<!ENTITY zotero.upgrade.upgradeRequired "Вашата база дани на Зотеро трябва да бъде осъвременена за да може да работи с новата версия."> <!ENTITY zotero.upgrade.autoBackup "Автоматично ще бъде направено копие на вашата база дани, преди да бъдат въвеждани каквито и да било промени."> <!ENTITY zotero.upgrade.upgradeInProgress "Моля изчакайте процеса на осъвременяване да приключи. Това може да отнеме няколко минути."> -<!ENTITY zotero.upgrade.upgradeSucceeded "Вашата база дани на Zotero беше осъвременена успешно."> +<!ENTITY zotero.upgrade.upgradeSucceeded "Вашата база дани на Зотеро беше осъвременена успешно."> <!ENTITY zotero.upgrade.changeLogBeforeLink "Моля вижте"> <!ENTITY zotero.upgrade.changeLogLink "дневника на промените"> <!ENTITY zotero.upgrade.changeLogAfterLink "за да откриете новото."> -<!ENTITY zotero.contextMenu.addTextToCurrentNote "Добавяне избраното към бележка в Zotero"> -<!ENTITY zotero.contextMenu.addTextToNewNote "Създаване на обект и бележка в Zotero от избраното."> -<!ENTITY zotero.contextMenu.saveLinkAsSnapshot "Запазване на копие на връзката в Zotero"> -<!ENTITY zotero.contextMenu.saveImageAsSnapshot "Запазване на копие образа в Zotero"> +<!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 "Бележки"> @@ -68,7 +68,7 @@ <!ENTITY zotero.toolbar.timeline.label "Създаване на хронология"> <!ENTITY zotero.toolbar.preferences.label "Настройки..."> <!ENTITY zotero.toolbar.documentation.label "Документация"> -<!ENTITY zotero.toolbar.about.label "За Zotero"> +<!ENTITY zotero.toolbar.about.label "За Зотеро"> <!ENTITY zotero.toolbar.advancedSearch "Търсене за напреднали"> <!ENTITY zotero.toolbar.search.label "Търсене:"> <!ENTITY zotero.toolbar.fullscreen.tooltip "Превключване в режим на цял екран"> diff --git a/chrome/locale/bg-BG/zotero/zotero.properties b/chrome/locale/bg-BG/zotero/zotero.properties @@ -24,29 +24,29 @@ general.failed=Неуспех general.and=и install.quickStartGuide=Кратко ръководство за начинаещи -install.quickStartGuide.message.welcome=Добре дошли в Zotero +install.quickStartGuide.message.welcome=Добре дошли в Зотеро! install.quickStartGuide.message.clickViewPage=Натиснете бутона "Разглеждане на страницата" за да посетите краткото ръководство за начинаещи и научите как да започнете да събирате, управлявате и цитирате вашите литературни източници. -install.quickStartGuide.message.thanks=Благодаря, че инсталирахте Zotero. +install.quickStartGuide.message.thanks=Благодаря, че инсталирахте Зотеро. -upgrade.failed=Осъвременяването на базата дани не Zotero не успя: +upgrade.failed=Осъвременяването на базата дани не Зотеро не успя: upgrade.advanceMessage=Натиснете %S, за незабавно осъвременяване. errorReport.reportErrors=Докладване на грешките... errorReport.reportInstructions=Можете да докладвате тази грешка като изберете "%S" от менюто за действия (икона със зъбчато колело) errorReport.followingErrors=Възникнаха следните грешки: -errorReport.advanceMessage=Натиснете %S за да изпратите отчет с грешките до разработчиците на Zotero. +errorReport.advanceMessage=Натиснете %S за да изпратите отчет с грешките до разработчиците на Зотеро. errorReport.stepsToReproduce=Стъпки за възпроизвеждане: errorReport.expectedResult=Очакван резултат: errorReport.actualResult=Получен резултат: -dataDir.notFound=Папката се даните на Zotero не беше намерена. +dataDir.notFound=Папката се даните на Зотеро не беше намерена. dataDir.previousDir=Предишна папка: dataDir.useProfileDir=Използване на папката на Firefox профила dataDir.selectDir=Изберете папка за даните на Зотеро dataDir.selectedDirNonEmpty.title=Папката не е празна -dataDir.selectedDirNonEmpty.text=Папката която избрахте не е празна и не изглежда като папка за дани на Zotero.\n\nДа бъдат ли създадени файловете на Zotero независимо от това? +dataDir.selectedDirNonEmpty.text=Папката която избрахте не е празна и не изглежда като папка за дани на Зотеро.\n\nДа бъдат ли създадени файловете на Зотеро независимо от това? -startupError=Появи се грешка при стартирането на Zotero. +startupError=Появи се грешка при стартирането на Зотеро. pane.collections.delete=Сигурни ли сте, че искате да изтриете избраната колекция? pane.collections.deleteSearch=Сигурни ли сте, че искате да изтриете избраното търсене? @@ -131,7 +131,7 @@ 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Възможно е да е бил преместен или изтрит извън Zotero. +pane.item.attachments.fileNotFound.text=Прикаченият фай не беше намерен.\n\nВъзможно е да е бил преместен или изтрит извън Зотеро. pane.item.attachments.delete.confirm=Сигурни ли сте, че искате да изтриете това приложение? pane.item.attachments.count.zero=%S приложения: pane.item.attachments.count.singular=%S приложение: @@ -318,7 +318,7 @@ creatorTypes.artist=Създател creatorTypes.commenter=Коментатор creatorTypes.presenter=Изнесен от creatorTypes.guest=Гост -creatorTypes.podcaster=Автор на Подкаст +creatorTypes.podcaster=Автор на подкаст fileTypes.webpage=Интернет страница fileTypes.image=Образ @@ -331,22 +331,22 @@ fileTypes.document=Документ save.attachment=Записване на копие... save.link=Записване на връзка... -ingester.saveToZotero=Записване в Zotero +ingester.saveToZotero=Записване в Зотеро ingester.scraping=Записване на Обекта... ingester.scrapeComplete=Обекта е Записан. ingester.scrapeError=Обекта не Беше Записан. ingester.scrapeErrorDescription=По време на записа на този обект възникна грешка. Моля опитайте отново. Ако тази грешка продължава да се появява, моля свържете се с автора на преводача. ingester.scrapeErrorDescription.linkText=Известни проблеми с преводача -ingester.scrapeError.transactionInProgress.previousError=Записът е прекратен поради предходяща грешка в Zotero. +ingester.scrapeError.transactionInProgress.previousError=Записът е прекратен поради предходяща грешка в Зотеро. -db.dbCorrupted=Базата данни '%S' на Zotero вероятно е повредена. +db.dbCorrupted=Базата данни '%S' на Зотеро вероятно е повредена. db.dbCorrupted.restart=Моля рестартирайте Firefox за да опитате автоматично възстановяване от последното резервно копие. db.dbCorruptedNoBackup=Базата дани на Зотеро е повредена и резервното копие липсва.\n\nСъздадена е нова база дани. Повреденият файл е записан в папката на Зотеро. db.dbRestored=Базата дани на Зотеро е повредена.\n\nВаште дани са възстановени от резервното копие направено на %1$S в %2$S. Повреденият файл е записан в папката на Зотеро. db.dbRestoreFailed=Базата дани на Зотеро е повредена и не може да бъде възстановена от резервното копие.\n\nСъздадена е нова база дани. Повреденият файл е записан в папката на Зотеро. db.integrityCheck.passed=Не бяха намерени грешки в базата дани. -db.integrityCheck.failed=Бяха намерени грешки в базата дани на Zotero! +db.integrityCheck.failed=Бяха намерени грешки в базата дани на Зотеро! zotero.preferences.update.updated=Осъвременен zotero.preferences.update.upToDate=Актуален @@ -363,7 +363,7 @@ 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 може автоматично да изтегли и инсталира тези приложения от zotero.org. +zotero.preferences.search.pdf.automaticInstall=За някои операциони системи Зотеро може автоматично да изтегли и инсталира тези приложения от zotero.org. zotero.preferences.search.pdf.advancedUsers=Напредналите потребители могат да видят %S за инструкции за ръчно инсталиране. zotero.preferences.search.pdf.documentationLink=документация zotero.preferences.search.pdf.checkForInstaller=Проверка за инсталатор @@ -373,20 +373,20 @@ 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 може да го инсталира автоматично в папката с дани на Zotero. -zotero.preferences.search.pdf.zoteroCanInstallVersions=Zotero може да инсталира автоматично тези приложения в папката с дани на Zotero. +zotero.preferences.search.pdf.zoteroCanInstallVersion=Zotero може да го инсталира автоматично в папката с дани на Зотеро. +zotero.preferences.search.pdf.zoteroCanInstallVersions=Zotero може да инсталира автоматично тези приложения в папката с дани на Зотеро. 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=Бързо копиране ви позволява да копирате избраните отпратки в клипборда с клавишната комбинация (%S) или да ги издърпате в текстова кутия от интернет страница. -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +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=Следните файлове не бяха намерени и не могат да бъдат копирани: @@ -421,14 +421,14 @@ searchOperator.isInTheLast=е в последните searchConditions.tooltip.fields=Полета: searchConditions.collectionID=Колекция -searchConditions.itemTypeID=Тип на Обекта +searchConditions.itemTypeID=Тип на обекта searchConditions.tag=Отметка searchConditions.note=Бележка searchConditions.childNote=Дъщерна бележка searchConditions.creator=Създател searchConditions.type=Тип -searchConditions.thesisType=Тип на Дисертацията -searchConditions.reportType=Тип на Отчета +searchConditions.thesisType=Тип на дисертацията +searchConditions.reportType=Тип на отчета searchConditions.videoRecordingType=Тип на видеозаписа searchConditions.audioFileType=Тип на звуков файл searchConditions.audioRecordingType=Тип на звукозаписа @@ -451,7 +451,7 @@ fulltext.indexState.partial=Частичен exportOptions.exportNotes=Експорт на бележки exportOptions.exportFileData=Експорт на Файлове -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=Експорт в UTF-8 date.daySuffixes=ви, ри, ти, ти date.abbreviation.year=г @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Свиване на анотацията annotations.expand.tooltip=Разгръщане на анотацията annotations.oneWindowWarning=Анотациите на копие могат да бъдат отворени само в един прозорец на броузера. Това копие ще бъде отворено без анотации. -integration.incompatibleVersion=Тази версия на Zotero плъгина в Word е несъвместима с инсталираната версия на разшиернието Zotero в Firefox. Моля използвайте най-новите версии на двата компонента. +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. @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=Винаги следвай този изб integration.deleteCitedItem.title=Сигурни ли сте, че искате да премахните тази отпратка? integration.deleteCitedItem.body=Тази отпратка е цитирана в текста на вашият документ. Изтриването и ще премахне всички цитати. -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +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/ca-AD/zotero/preferences.dtd b/chrome/locale/ca-AD/zotero/preferences.dtd @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "Exporta"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> +<!ENTITY zotero.preferences.citationOptions.caption "Opcions de cita"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Incloure URLs d'articles en paper a les referències"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Quan aquesta opció està deshabilitada, Zotero inclou URLs quan es citen articles de premsa, revistes i revistes acadèmiques només si l'article no té un ranc de pàgines assignat."> <!ENTITY zotero.preferences.quickCopy.caption "Còpia ràpida"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Format de sortida per defecte:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Nota: el format de text enriquit es perdrà en Mac OS X"> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Configuració específica per a llos web:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domini/Ruta"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(p.ex. wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Format de sortida"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "Aconsegueix estils adicionals..."> <!ENTITY zotero.preferences.prefpane.keys "Dreceres de teclat"> @@ -86,6 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "Manteniment de la base de dades"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Comprova la integritat de la base de dades"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reinicialitza traductors i estils..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reinicialitza traductors..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reinicialitza estils..."> diff --git a/chrome/locale/ca-AD/zotero/zotero.properties b/chrome/locale/ca-AD/zotero/zotero.properties @@ -1,4 +1,4 @@ -extensions.zotero@chnm.gmu.edu.description=L'eina de recerca de la Pròxima Generació +extensions.zotero@chnm.gmu.edu.description=L'eina de recerca de la Següent Generació general.error=Error general.warning=Advertència @@ -157,7 +157,7 @@ itemTypes.book=Llibre itemTypes.bookSection=Capítol d'un llibre itemTypes.journalArticle=Article de revista acadèmica itemTypes.magazineArticle=Article de revista -itemTypes.newspaperArticle=Article de diari +itemTypes.newspaperArticle=Article de premsa itemTypes.thesis=Tesi itemTypes.letter=Carta itemTypes.manuscript=Manuscrit @@ -381,12 +381,12 @@ zotero.preferences.export.quickCopy.bibStyles=Estils bibliogràfics zotero.preferences.export.quickCopy.exportFormats=Formats d'exportació zotero.preferences.export.quickCopy.instructions=Copia ràpida permet copiar les referències seleccionades al portaretalls prement una drecera de teclat o arrossegant els elements a un quadre de text en una pàgina web. -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +zotero.preferences.advanced.resetTranslatorsAndStyles=Reinicialitzar traductors i estils +zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Qualsevol traductor i/o estil nou o modificat es perdrà +zotero.preferences.advanced.resetTranslators=Reinicialitzar traductors +zotero.preferences.advanced.resetTranslators.changesLost=Qualsevol traductor nou o modificat es perdrà +zotero.preferences.advanced.resetStyles=Reinicialitzar estils +zotero.preferences.advanced.resetStyles.changesLost=Qualsevol estil nou o modificat es perdrà dragAndDrop.existingFiles=Els següents arxiu ja existeixen al directori de destí i no poden ser copiats: dragAndDrop.filesNotFound=Els següents arxius no s'han trobat i no s'han pogut copiar: @@ -451,7 +451,7 @@ fulltext.indexState.partial=Parcial exportOptions.exportNotes=Exportar les notes exportOptions.exportFileData=Exportar els arxius adjunts -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=Exportar com UTF-8 date.daySuffixes=r, n, r, rt, é date.abbreviation.year=a @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Col·lapsa l'anotació. annotations.expand.tooltip=Expandeix l'anotació. annotations.oneWindowWarning=Les anotacions en una captura només es poden obrir en una finestra del navegador simultàniament. Aquesta captura s'obrirà sense aanotacions -integration.incompatibleVersion=Aquesta versió del plugin de Zotero per a Word és incompatible amb la versió actualment instal·lada de Zotero. Si-us-plau assegura't que estàs utilitzat les últimes´versions d'ambdós components. +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=Camps integration.referenceMarks.label=Marques de referències integration.fields.caption=Els camps de Microsoft Word són menys susceptibles de ser accidentalment modificats però no es poden compartir amb OpenOffice.org. @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=Segueix sempre aquesta selecció. integration.deleteCitedItem.title=Estàs segur que vols eliminar aquesta referència? integration.deleteCitedItem.body=Aquesta referència està citada en el text del teu document. Eliminant-la s'eliminaran també totes les cites. -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +styles.installStyle=Instal·la estil "%1$S" des de %2$S? +styles.updateStyle=Actualitza l'estil existent "%1$S" amb "%2$S" des de %3$S? +styles.installed=L'estil "%S" s'ha instal·lat correctament +styles.installError=%S no sembla un arxiu CSL vàlid diff --git a/chrome/locale/cs-CZ/zotero/preferences.dtd b/chrome/locale/cs-CZ/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> diff --git a/chrome/locale/cs-CZ/zotero/zotero.properties b/chrome/locale/cs-CZ/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/da-DK/zotero/preferences.dtd b/chrome/locale/da-DK/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> diff --git a/chrome/locale/da-DK/zotero/zotero.properties b/chrome/locale/da-DK/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/de-AT/zotero/preferences.dtd b/chrome/locale/de-AT/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> diff --git a/chrome/locale/de-AT/zotero/zotero.properties b/chrome/locale/de-AT/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/de-CH/zotero/preferences.dtd b/chrome/locale/de-CH/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> diff --git a/chrome/locale/de-CH/zotero/zotero.properties b/chrome/locale/de-CH/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/de-DE/zotero/preferences.dtd b/chrome/locale/de-DE/zotero/preferences.dtd @@ -47,14 +47,21 @@ <!ENTITY zotero.preferences.prefpane.export "Export"> +<!ENTITY zotero.preferences.citationOptions.caption "Zitationsoptionen"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Die URLs von gedruckten Artikeln in Literaturverzeichnis aufführen."> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Wenn diese Option deaktiviert ist, führt Zotero URLs bei der Zitierung von Zeitschriften-, Magazin-, oder Zeitungsartikeln nur dann auf, wenn bei dem Artikel kein Seitenbereich angegeben ist."> + <!ENTITY zotero.preferences.quickCopy.caption "Quick-Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Standardausgabeformat"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Achtung: Rich-Text-Formatierungen gehen unter Mac OS X verloren."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Website-spezifische Einstellungen:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Pfad"> -<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(z.B. wikipedia.org)"> +<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(z. B. wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Ausgabeformat"> +<!ENTITY zotero.preferences.export.getAdditionalStyles "Weitere Stile hinzufügen..."> + <!ENTITY zotero.preferences.prefpane.keys "Tastenkombinationen"> <!ENTITY zotero.preferences.keys.openZotero "Zotero-Panel öffnen/schließen"> @@ -80,4 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "Datenbankwartung"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Integrität der Datenbank überprüfen"> -<!ENTITY zotero.preferences.dbMaintenance.rebuildTranslators "Tabelle der Übersetzern neu aufbauen"> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Übersetzer und Stile zurücksetzen..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Übersetzer zurücksetzen..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Stile zurücksetzen..."> diff --git a/chrome/locale/de-DE/zotero/zotero.properties b/chrome/locale/de-DE/zotero/zotero.properties @@ -381,8 +381,12 @@ zotero.preferences.export.quickCopy.bibStyles=Zitierstile zotero.preferences.export.quickCopy.exportFormats=Export-Formate zotero.preferences.export.quickCopy.instructions=Quick Copy erlaubt Ihnen, ausgewählte Literaturangaben durch Drücken einer Tastenkombination (%S) in die Zwischenablage zu kopieren oder Einträge in ein Textfeld auf einer Webseite zu ziehen. -zotero.preferences.advanced.rebuildTranslators.rebuildTable=Tabelle neu aufbauen -zotero.preferences.advanced.rebuildTranslators.changesLost=Alle Änderungen, die Sie an den Übersetzern vorgenommen haben, werden verloren gehen. +zotero.preferences.advanced.resetTranslatorsAndStyles=Übersetzer und Stile zurücksetzen +zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Sämtliche neue oder modifizierte Übersetzer oder Stile werden verloren gehen. +zotero.preferences.advanced.resetTranslators=Übersetzer zurücksetzen +zotero.preferences.advanced.resetTranslators.changesLost=Sämtliche neue oder modifizierte Übersetzer werden verloren gehen. +zotero.preferences.advanced.resetStyles=Stile zurücksetzen +zotero.preferences.advanced.resetStyles.changesLost=Sämtliche neue oder modifizierte Stile werden verloren gehen. dragAndDrop.existingFiles=Die folgenden Datein waren im Zielordner bereits vorhanden und wurden nicht kopiert: dragAndDrop.filesNotFound=Die folgenden Datei wurden nicht gefunden und konnten nicht kopiert werden. @@ -447,6 +451,7 @@ fulltext.indexState.partial=Unvollständig exportOptions.exportNotes=Notizen exportieren exportOptions.exportFileData=Dateien exportieren +exportOptions.UTF8=Als UTF-8 exportieren date.daySuffixes=. date.abbreviation.year=J @@ -458,7 +463,7 @@ citation.singleSource=Einzelne Quelle... citation.showEditor=Editor anzeigen... citation.hideEditor=Editor verbergen... -report.title.default=Zotero Bericht +report.title.default=Zotero-Bericht report.parentItem=Übergeordneter Eintrag: report.notes=Notizen: report.tags=Tags: @@ -471,7 +476,7 @@ annotations.collapse.tooltip=Anmerkung einklappen annotations.expand.tooltip=Anmerkung ausklappen annotations.oneWindowWarning=Anmerkungen für einen Schnappschuss können nur einem Browserfenster auf einmal geöffnet werden. Dieser Schnappschuss wird ohne Anmerkungen geöffnet werden. -integration.incompatibleVersion=Diese Version des Zotero-Word-Plugins ist mit der gegenwärtig installierten Version der Zotero-Firefox-Erweiterung nicht kompatibel. Bitte stellen Sie sicher, dass Sie die neuesten Versionen beider Komponenten verwenden. +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=Felder integration.referenceMarks.label=Referenzmarken integration.fields.caption=Microsoft-Word-Felder sind mit geringerer Wahrscheinlichkeit verändert, aber sie können nicht mit OpenOffice.org ausgetauscht werden. @@ -483,3 +488,8 @@ integration.regenerate.saveBehavior=Diese Auswahl dauerhaft übernehmen. integration.deleteCitedItem.title=Sind Sie sicher, dass Sie diese Literaturangabe löschen wollen? integration.deleteCitedItem.body=Diese Literaturangabe wird im Text Ihres Dokuments zitiert. Sie zu löschen, wird alle Zitationen entfernen. + +styles.installStyle=Stil "%1$S" von %2$S? installieren. +styles.updateStyle=Bestehenden Stil "%1$S" mit "%2$S" von %3$S updaten? +styles.installed=Der Stil "%S" wurde erfolgreich installiert. +styles.installError=%S scheint keine gültige CSL-Datei zu sein. diff --git a/chrome/locale/de/zotero/about.dtd b/chrome/locale/de/zotero/about.dtd @@ -1,10 +0,0 @@ -<!ENTITY zotero.version "Version"> -<!ENTITY zotero.createdby "Erstellt von:"> -<!ENTITY zotero.directors "Direktoren:"> -<!ENTITY zotero.developers "Entwickler:"> -<!ENTITY zotero.alumni "Alumni:"> -<!ENTITY zotero.about.localizations "Lokalisierungen:"> -<!ENTITY zotero.about.additionalSoftware "Software und Standards von Drittherstellern:"> -<!ENTITY zotero.executiveProducer "Produktionsleiter:"> -<!ENTITY zotero.thanks "Besonderer Dank gebührt:"> -<!ENTITY zotero.about.close "Schließen"> diff --git a/chrome/locale/de/zotero/preferences.dtd b/chrome/locale/de/zotero/preferences.dtd @@ -1,91 +0,0 @@ -<!ENTITY zotero.preferences.title "Zotero-Einstellungen"> - -<!ENTITY zotero.preferences.default "Standardeinstellungen:"> - -<!ENTITY zotero.preferences.prefpane.general "Allgemein"> - -<!ENTITY zotero.preferences.userInterface "Benutzer-Interface"> -<!ENTITY zotero.preferences.position "Zotero anzeigen"> -<!ENTITY zotero.preferences.position.above "über"> -<!ENTITY zotero.preferences.position.below "unter"> -<!ENTITY zotero.preferences.position.browser "Browser-Inhalt"> -<!ENTITY zotero.preferences.statusBarIcon "Statusleisten-Icon:"> -<!ENTITY zotero.preferences.statusBarIcon.none "Keine"> -<!ENTITY zotero.preferences.fontSize "Fontgröße"> -<!ENTITY zotero.preferences.fontSize.small "Klein"> -<!ENTITY zotero.preferences.fontSize.medium "Mittel"> -<!ENTITY zotero.preferences.fontSize.large "Groß"> - -<!ENTITY zotero.preferences.miscellaneous "Verschiedenes"> -<!ENTITY zotero.preferences.autoUpdate "Automatisch nach neuen Übersetzern suchen"> -<!ENTITY zotero.preferences.updateNow "Jetzt aktualisieren"> -<!ENTITY zotero.preferences.reportTranslationFailure "Fehlerhafte Übersetzer melden"> -<!ENTITY zotero.preferences.parseRISRefer "Zotero für heruntergeladene RIS/Refer-Dateien verwenden"> -<!ENTITY zotero.preferences.automaticSnapshots "Automatisch einen Schnappschuss erstellen, wenn ein Eintrag aus einer Webseite erstellt wird"> -<!ENTITY zotero.preferences.downloadAssociatedFiles "Automatisch zugehörige PDFs und andere Dateien beim Speichern von Einträgen anhängen"> -<!ENTITY zotero.preferences.automaticTags "Automatisch Tags aus Schlüsselwörtern und Schlagwörtern erstellen"> - -<!ENTITY zotero.preferences.openurl.caption "OpenURL"> - -<!ENTITY zotero.preferences.openurl.search "Nach Resolvern suchen"> -<!ENTITY zotero.preferences.openurl.custom "Eigene..."> -<!ENTITY zotero.preferences.openurl.server "Resolver:"> -<!ENTITY zotero.preferences.openurl.version "Version:"> - -<!ENTITY zotero.preferences.prefpane.search "Suche"> -<!ENTITY zotero.preferences.search.fulltextCache "Volltext-Cache"> -<!ENTITY zotero.preferences.search.pdfIndexing "PDF-Indizierung"> -<!ENTITY zotero.preferences.search.indexStats "Index-Statistik"> - -<!ENTITY zotero.preferences.search.indexStats.indexed "Indiziert:"> -<!ENTITY zotero.preferences.search.indexStats.partial "Teilweise:"> -<!ENTITY zotero.preferences.search.indexStats.unindexed "Nicht indiziert:"> -<!ENTITY zotero.preferences.search.indexStats.words "Wörter:"> - -<!ENTITY zotero.preferences.fulltext.textMaxLength "Maximal indizierte Zeichenanzahl pro Datei:"> -<!ENTITY zotero.preferences.fulltext.pdfMaxPages "Maximal indizierte Seiten pro Datei:"> - -<!ENTITY zotero.preferences.prefpane.export "Export"> - -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> - -<!ENTITY zotero.preferences.quickCopy.caption "Quick-Copy"> -<!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Standardausgabeformat"> -<!ENTITY zotero.preferences.quickCopy.macWarning "Achtung: Rich-Text-Formatierungen gehen unter Mac OS X verloren."> -<!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Website-spezifische Einstellungen:"> -<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Pfad"> -<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(z.B. wikipedia.org)"> -<!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Ausgabeformat"> - -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> - -<!ENTITY zotero.preferences.prefpane.keys "Tastenkombinationen"> - -<!ENTITY zotero.preferences.keys.openZotero "Zotero-Panel öffnen/schließen"> -<!ENTITY zotero.preferences.keys.toggleFullscreen "Vollbild-Modus an/aus"> -<!ENTITY zotero.preferences.keys.library "Bibliothek"> -<!ENTITY zotero.preferences.keys.quicksearch "Schnellsuche"> -<!ENTITY zotero.preferences.keys.newItem "Neuen Eintrag erstellen"> -<!ENTITY zotero.preferences.keys.newNote "Neue Notiz erstellen"> -<!ENTITY zotero.preferences.keys.toggleTagSelector "Tag-Selector an/aus"> -<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Ausgewählte Eintragszitationen in die Zwischenablage kopieren"> -<!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Ausgewählte Einträge in die Zwischenablage kopieren"> -<!ENTITY zotero.preferences.keys.overrideGlobal "Versuche, konfligierende Tastenkombinationen zu überschreiben"> -<!ENTITY zotero.preferences.keys.changesTakeEffect "Änderungen werden nur in neuen Fenstern wirksam"> - - -<!ENTITY zotero.preferences.prefpane.advanced "Fortgeschritten"> - -<!ENTITY zotero.preferences.dataDir "Speicherort"> -<!ENTITY zotero.preferences.dataDir.useProfile "Verwende den Firefox-Profil-Ordner"> -<!ENTITY zotero.preferences.dataDir.custom "Eigene:"> -<!ENTITY zotero.preferences.dataDir.choose "Auswählen..."> -<!ENTITY zotero.preferences.dataDir.reveal "Datenverzeichnis anzeigen"> - -<!ENTITY zotero.preferences.dbMaintenance "Datenbankwartung"> -<!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Integrität der Datenbank überprüfen"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> diff --git a/chrome/locale/de/zotero/searchbox.dtd b/chrome/locale/de/zotero/searchbox.dtd @@ -1,23 +0,0 @@ -<!ENTITY zotero.search.name "Name:"> - -<!ENTITY zotero.search.joinMode.prefix "Ergebnisse finden mit"> -<!ENTITY zotero.search.joinMode.any "irgendeinem"> -<!ENTITY zotero.search.joinMode.all "allen"> -<!ENTITY zotero.search.joinMode.suffix "der folgenden:"> - -<!ENTITY zotero.search.recursive.label "Unterverzeichnisse durchsuchen"> -<!ENTITY zotero.search.noChildren "Nur Einträge der obersten Ebene anzeigen"> -<!ENTITY zotero.search.includeParentsAndChildren "Über- und untergeordnete Einträge von Treffern einschließen"> - -<!ENTITY zotero.search.textModes.phrase "Phrase"> -<!ENTITY zotero.search.textModes.phraseBinary "Phrase (inkl. Binärdateien)"> -<!ENTITY zotero.search.textModes.regexp "Regexp"> -<!ENTITY zotero.search.textModes.regexpCS "Regexp (Beachtung der Groß- und Kleinschreibung)"> - -<!ENTITY zotero.search.date.units.days "Tage"> -<!ENTITY zotero.search.date.units.months "Monate"> -<!ENTITY zotero.search.date.units.years "Jahre"> - -<!ENTITY zotero.search.search "Suchen"> -<!ENTITY zotero.search.clear "Löschen"> -<!ENTITY zotero.search.saveSearch "Suche speichern"> diff --git a/chrome/locale/de/zotero/timeline.properties b/chrome/locale/de/zotero/timeline.properties @@ -1,21 +0,0 @@ -general.title=Zotero Zeitstrahl -general.filter=Filtern: -general.highlight=Hervorheben: -general.clearAll=Alle Felder zurücksetzen -general.jumpToYear=Springe zu Jahr: -general.firstBand=Erster Streifen: -general.secondBand=Zweiter Streifen: -general.thirdBand=Dritter Streifen: -general.dateType=Datumstyp: -general.timelineHeight=Höhe des Zeitstrahls: -general.fitToScreen=An Bildschirm anpassen - -interval.day=Tag -interval.month=Monat -interval.year=Jahr -interval.decade=Jahrzehnt -interval.century=Jahrhundert -interval.millennium=Jahrtausend - -dateType.published=Publikationsdatum -dateType.modified=Datum der letzten Veränderung diff --git a/chrome/locale/de/zotero/zotero.dtd b/chrome/locale/de/zotero/zotero.dtd @@ -1,153 +0,0 @@ -<!ENTITY zotero.general.optional "(Optional)"> -<!ENTITY zotero.general.note "Anmerkung:"> - -<!ENTITY zotero.errorReport.unrelatedMessages "Dieses Fehlerprotokoll kann unter Umständen Nachrichten enthalten, die nicht mit Zotero in Verbindung stehen."> -<!ENTITY zotero.errorReport.additionalInfo "Zusätzliche Informationen"> -<!ENTITY zotero.errorReport.emailAddress "Ihre E-Mail-Adresse"> -<!ENTITY zotero.errorReport.errorSteps "Was haben Sie gemacht, als der Fehler auftrat? Falls möglich, beschreiben Sie bitte die Schritte zur Reproduktion des Fehlers."> -<!ENTITY zotero.errorReport.submissionInProgress "Bitte warten Sie, während der Fehlerbericht übermittelt wird."> -<!ENTITY zotero.errorReport.submitted "Der Fehlerbericht wurde übermittelt."> -<!ENTITY zotero.errorReport.reportID "Bericht-ID:"> -<!ENTITY zotero.errorReport.furtherAssistance "Bitte gehen Sie zur Seite mit bekannten Problemen oder wenden Sie sich an die Foren für weitere Unterstützung."> -<!ENTITY zotero.errorReport.includeReportID "Bitte geben Sie die Bericht-ID immer mit an, wenn Sie die Zotero-Entwickler wegen des entsprechenden Problems kontaktieren."> - -<!ENTITY zotero.upgrade.newVersionInstalled "Sie haben eine neue Version von Zotero installiert."> -<!ENTITY zotero.upgrade.upgradeRequired "Ihre Zotero-Datenbank muss aktualisiert werden, damit sie mit der neuen Version funktioniert."> -<!ENTITY zotero.upgrade.autoBackup "Ihre existierende Datenbank wird automatisch gesichert, bevor Änderungen vorgenommen werden."> -<!ENTITY zotero.upgrade.upgradeInProgress "Bitte warten Sie, bis die Aktualisierung abgeschlossen ist. Dies kann einige Minuten dauern."> -<!ENTITY zotero.upgrade.upgradeSucceeded "Ihre Zotero-Datenbank wurde erfolgreich aktualisiert."> -<!ENTITY zotero.upgrade.changeLogBeforeLink "Neuigkeiten und Änderungen sind"> -<!ENTITY zotero.upgrade.changeLogLink "im Changelog"> -<!ENTITY zotero.upgrade.changeLogAfterLink "aufgelistet."> - -<!ENTITY zotero.contextMenu.addTextToCurrentNote "Auswahl zu Zotero-Notiz hinzufügen"> -<!ENTITY zotero.contextMenu.addTextToNewNote "Zotero-Notiz aus Auswahl erstellen"> -<!ENTITY zotero.contextMenu.saveLinkAsSnapshot "Link als Zotero-Schnappschuss speichern"> -<!ENTITY zotero.contextMenu.saveImageAsSnapshot "Bild als Zotero-Schnappschuss speichern"> - -<!ENTITY zotero.tabs.info.label "Infos"> -<!ENTITY zotero.tabs.notes.label "Notizen"> -<!ENTITY zotero.tabs.attachments.label "Anhänge"> -<!ENTITY zotero.tabs.tags.label "Tags"> -<!ENTITY zotero.tabs.related.label "Zugehörig"> -<!ENTITY zotero.notes.separate "In einem neuen Fenster bearbeiten"> - -<!ENTITY zotero.items.type_column "Typ"> -<!ENTITY zotero.items.title_column "Titel"> -<!ENTITY zotero.items.creator_column "Ersteller"> -<!ENTITY zotero.items.date_column "Datum"> -<!ENTITY zotero.items.year_column "Jahr"> -<!ENTITY zotero.items.publisher_column "Verlag"> -<!ENTITY zotero.items.language_column "Sprache"> -<!ENTITY zotero.items.callNumber_column "Signatur"> -<!ENTITY zotero.items.repository_column "Repository"> -<!ENTITY zotero.items.rights_column "Rechte"> -<!ENTITY zotero.items.dateAdded_column "hinzugefügt am"> -<!ENTITY zotero.items.dateModified_column "geändert am"> -<!ENTITY zotero.items.numChildren_column "+"> - -<!ENTITY zotero.items.menu.showInLibrary "In Bibliothek anzeigen"> -<!ENTITY zotero.items.menu.attach.note "Notiz hinzufügen"> -<!ENTITY zotero.items.menu.attach.snapshot "Schnappschuss von aktueller Webseite anhängen"> -<!ENTITY zotero.items.menu.attach.link "Link zu aktueller Webseite anhängen"> -<!ENTITY zotero.items.menu.duplicateItem "Ausgewähltes Item duplizieren"> - -<!ENTITY zotero.collections.name_column "Sammlungen"> - -<!ENTITY zotero.toolbar.newItem.label "Neuer Eintrag"> -<!ENTITY zotero.toolbar.moreItemTypes.label "Mehr"> -<!ENTITY zotero.toolbar.newItemFromPage.label "Neuen Eintrag aus aktueller Webseite erstellen"> -<!ENTITY zotero.toolbar.removeItem.label "Eintrag entfernen..."> -<!ENTITY zotero.toolbar.newCollection.label "Neue Sammlung..."> -<!ENTITY zotero.toolbar.newSubcollection.label "Neue Untersammlung..."> -<!ENTITY zotero.toolbar.newSavedSearch.label "Neue gespeicherte Suche..."> -<!ENTITY zotero.toolbar.tagSelector.label "Tag-Selector anzeigen/ausblenden"> -<!ENTITY zotero.toolbar.actions.label "Aktionen"> -<!ENTITY zotero.toolbar.import.label "Importieren..."> -<!ENTITY zotero.toolbar.export.label "Bibliothek exportieren..."> -<!ENTITY zotero.toolbar.timeline.label "Zeitstrahl erzeugen"> -<!ENTITY zotero.toolbar.preferences.label "Einstellungen..."> -<!ENTITY zotero.toolbar.documentation.label "Dokumentation"> -<!ENTITY zotero.toolbar.about.label "Über Zotero"> -<!ENTITY zotero.toolbar.advancedSearch "Erweiterte Suche"> -<!ENTITY zotero.toolbar.search.label "Suche:"> -<!ENTITY zotero.toolbar.fullscreen.tooltip "Vollbild-Modus an/aus"> -<!ENTITY zotero.toolbar.openURL.label "Finden"> -<!ENTITY zotero.toolbar.openURL.tooltip "In lokaler Bibliothek finden"> - -<!ENTITY zotero.item.add "Hinzufügen"> -<!ENTITY zotero.item.attachment.file.show "Datei zeigen"> -<!ENTITY zotero.item.textTransform "Text transformieren"> -<!ENTITY zotero.item.textTransform.lowercase "Kleinschreibung"> -<!ENTITY zotero.item.textTransform.titlecase "englische Titel-Kapitalisierung"> - -<!ENTITY zotero.toolbar.note.standalone "Neue unabhängige Notiz"> -<!ENTITY zotero.toolbar.attachment.linked "Auf Datei verlinken..."> -<!ENTITY zotero.toolbar.attachment.add "Kopie einer Datei speichern..."> -<!ENTITY zotero.toolbar.attachment.weblink "Link zur aktuellen Seite speichern"> -<!ENTITY zotero.toolbar.attachment.snapshot "Schnappschuss von aktueller Seite machen"> - -<!ENTITY zotero.tagSelector.noTagsToDisplay "Keine Tags vorhanden"> -<!ENTITY zotero.tagSelector.filter "Filter:"> -<!ENTITY zotero.tagSelector.showAutomatic "Automatisch anzeigen"> -<!ENTITY zotero.tagSelector.displayAll "Alle Tags anzeigen"> -<!ENTITY zotero.tagSelector.selectVisible "Sichtbare auswählen"> -<!ENTITY zotero.tagSelector.clearVisible "Sichtbare abwählen"> -<!ENTITY zotero.tagSelector.clearAll "Alle abwählen"> -<!ENTITY zotero.tagSelector.renameTag "Tag umbennen..."> -<!ENTITY zotero.tagSelector.deleteTag "Tag löschen..."> - -<!ENTITY zotero.selectitems.title "Einträge auswählen"> -<!ENTITY zotero.selectitems.intro.label "Auswählen, welche Artikel zu Ihrer Bibliothek hinzugefügt werden sollen"> -<!ENTITY zotero.selectitems.cancel.label "Abbrechen"> -<!ENTITY zotero.selectitems.select.label "OK"> - -<!ENTITY zotero.bibliography.title "Literaturverzeichnis erstellen"> -<!ENTITY zotero.bibliography.style.label "Zitationsstil:"> -<!ENTITY zotero.bibliography.output.label "Ausgabeformat"> -<!ENTITY zotero.bibliography.saveAsRTF.label "Als RTF speichern"> -<!ENTITY zotero.bibliography.saveAsHTML.label "Als HTML speicher"> -<!ENTITY zotero.bibliography.copyToClipboard.label "In die Zwischenablage kopieren"> -<!ENTITY zotero.bibliography.macClipboardWarning "(Rich-Text-Formatierung geht dabei verloren.)"> -<!ENTITY zotero.bibliography.print.label "Drucken"> - -<!ENTITY zotero.integration.docPrefs.title "Dokument-Eigenschaften"> -<!ENTITY zotero.integration.addEditCitation.title "Zitation hinzufügen/ändern"> -<!ENTITY zotero.integration.editBibliography.title "Bibliographie editieren"> - -<!ENTITY zotero.progress.title "Fortschritt"> - -<!ENTITY zotero.exportOptions.title "Exportieren..."> -<!ENTITY zotero.exportOptions.format.label "Format:"> -<!ENTITY zotero.exportOptions.translatorOptions.label "Übersetzer-Einstellungen"> - -<!ENTITY zotero.citation.keepSorted.label "Quellen sortiert halten"> - -<!ENTITY zotero.citation.page "Seite"> -<!ENTITY zotero.citation.paragraph "Absatz"> -<!ENTITY zotero.citation.line "Zeile"> -<!ENTITY zotero.citation.suppressAuthor.label "Autor unterdrücken"> -<!ENTITY zotero.citation.prefix.label "Präfix:"> -<!ENTITY zotero.citation.suffix.label "Suffix:"> - -<!ENTITY zotero.richText.italic.label "Kursiv"> -<!ENTITY zotero.richText.bold.label "Fett"> -<!ENTITY zotero.richText.underline.label "Unterstrichen"> -<!ENTITY zotero.richText.superscript.label "Hochgestellt"> -<!ENTITY zotero.richText.subscript.label "Tiefgestellt"> - -<!ENTITY zotero.annotate.toolbar.add.label "Anmerkung hinzufügen"> -<!ENTITY zotero.annotate.toolbar.collapse.label "Alle Anmerkungen einklappen"> -<!ENTITY zotero.annotate.toolbar.expand.label "Alle Anmerkungen ausklappen"> -<!ENTITY zotero.annotate.toolbar.highlight.label "Text hervorheben"> -<!ENTITY zotero.annotate.toolbar.unhighlight.label "Text nicht hervorheben"> - -<!ENTITY zotero.integration.prefs.displayAs.label "Literaturangaben anzeigen als:"> -<!ENTITY zotero.integration.prefs.footnotes.label "Fußnoten"> -<!ENTITY zotero.integration.prefs.endnotes.label "Endnoten"> - -<!ENTITY zotero.integration.prefs.formatUsing.label "Formatieren unter Verwendung von:"> -<!ENTITY zotero.integration.prefs.bookmarks.label "Lesezeichen"> -<!ENTITY zotero.integration.prefs.bookmarks.caption "Lesezeichen werden zwischen Microsoft Word und OpenOffice.org erhalten, können sich aber versehentlich verändern."> - -<!ENTITY zotero.integration.references.label "Literaturangaben in Bibliographie"> diff --git a/chrome/locale/de/zotero/zotero.properties b/chrome/locale/de/zotero/zotero.properties @@ -1,495 +0,0 @@ -extensions.zotero@chnm.gmu.edu.description=Das Wissenswerkzeug der nächsten Generation - -general.error=Fehler -general.warning=Warnung -general.dontShowWarningAgain=Diese Warnung nicht noch einmal anzeigen. -general.browserIsOffline=%S is momentan im Offline-Modus. -general.locate=Lokalisieren... -general.restartRequired=Neustart erforderlich -general.restartRequiredForChange=Firefox muss neu gestartet werden, damit die Änderung wirksam wird. -general.restartRequiredForChanges=Firefox muss neu gestartet werden, damit die Änderungen wirksam werden. -general.restartNow=Jetzt neustarten -general.restartLater=Später neustarten -general.errorHasOccurred=Ein Fehler ist aufgetreten. -general.restartFirefox=Bitte starten Sie Firefox neu. -general.restartFirefoxAndTryAgain=Bitte starten Sie Firefox neu und versuchen Sie es erneut. -general.checkForUpdate=Auf Updates überprüfen -general.install=Installieren -general.updateAvailable=Update verfügbar -general.upgrade=Upgrade -general.yes=Ja -general.no=Nein -general.passed=Erfolgreich -general.failed=Fehlgeschlagen -general.and=und - -install.quickStartGuide=Schnelleinstieg -install.quickStartGuide.message.welcome=Willkommen bei Zotero! -install.quickStartGuide.message.clickViewPage=Klicken Sie auf den "Seite anzeigen"-Button, um zu unserem Schnelleinstieg zu gelangen. Dort lernen Sie, wie Sie Ihre Texte sammeln, verwalten und zitieren. -install.quickStartGuide.message.thanks=Vielen Dank, dass Sie Zotero installiert haben. - -upgrade.failed=Upgrade der Zotero-Datenbank schlug fehl: -upgrade.advanceMessage=Drücken Sie %S, um jetzt ein Upgrade durchzuführen. - -errorReport.reportErrors=Fehler melden... -errorReport.reportInstructions=Sie können diesen Fehler melden, indem sie "%S" im Aktivitäten-Menü (Zahnrad) auswählen. -errorReport.followingErrors=Die folgenden Fehler sind aufgetreten. -errorReport.advanceMessage=Drücken sie %S, um einen Fehlerbericht an das Zotero-Team zu senden. -errorReport.stepsToReproduce=Schritte zur Reproduktion: -errorReport.expectedResult=Erwartetes Ergebnis: -errorReport.actualResult=Tatsächliches Ergebnis: - -dataDir.notFound=Der Ordner mit den Zotero-Daten konnte nicht gefunden werden. -dataDir.previousDir=Vorheriges Verzeichnis: -dataDir.useProfileDir=Den Firefox-Profil-Ordner verwenden -dataDir.selectDir=Zotero-Daten-Ordner auswählen -dataDir.selectedDirNonEmpty.title=Verzeichnis nicht leer -dataDir.selectedDirNonEmpty.text=Das Verzeichnis, das Sie ausgewählt haben, ist nicht leer und scheint kein Zotero-Daten-Verzeichnis zu sein.\n\nDie Zotero-Daten trotzdem in diesem Ordner anlegen? - -startupError=Es gab einen Fehler beim Starten von Zotero. - -pane.collections.delete=Sind Sie sicher, dass Sie die ausgewählte Sammlung löschen möchten? -pane.collections.deleteSearch=Sind Sie sicher, dass Sie die ausgewählte Suche löschen möchten? -pane.collections.newCollection=Neue Sammlung -pane.collections.name=Name der Sammlung: -pane.collections.newSavedSeach=Neue gespeicherte Suche -pane.collections.savedSearchName=Geben Sie einen Namen für diese gespeicherte Suche an: -pane.collections.rename=Sammlung umbenennen: -pane.collections.library=Meine Bibliothek -pane.collections.untitled=Ohne Titel - -pane.collections.menu.rename.collection=Sammlung umbenennen... -pane.collections.menu.edit.savedSearch=Gespeicherte Suche bearbeiten -pane.collections.menu.remove.collection=Sammlung entfernen... -pane.collections.menu.remove.savedSearch=Gespeicherte Suche entfernen... -pane.collections.menu.export.collection=Sammlung exportieren... -pane.collections.menu.export.savedSearch=Gespeicherte Suche exportieren... -pane.collections.menu.createBib.collection=Bibliographie aus Sammlung erstellen... -pane.collections.menu.createBib.savedSearch=Literaturverzeichnis aus gespeicherter Suche erstellen... - -pane.collections.menu.generateReport.collection=Bericht aus Sammlung erstellen... -pane.collections.menu.generateReport.savedSearch=Bericht aus gespeicherter Suche erstellen... - -pane.tagSelector.rename.title=Bitte geben Sie einen neuen Namen für das Tag ein. -pane.tagSelector.rename.message=Das Tag wird in allen zugehörigen Einträgen geändert werden. -pane.tagSelector.delete.title=Sind Sie sicher, dass Sie dieses Tag löschen wollen? -pane.tagSelector.delete.message=Das Tag wird aus allen Einträgen entfernt werden. -pane.tagSelector.numSelected.none=0 Tags ausgewählt -pane.tagSelector.numSelected.singular=%S Tag ausgewählt -pane.tagSelector.numSelected.plural=%S Tags ausgewählt - -pane.items.loading=Lade die Liste der Einträge... -pane.items.delete=Sind Sie sicher, dass Sie den ausgewählten Eintrag löschen möchten? -pane.items.delete.multiple=Sind Sie sicher, dass Sie die ausgewählten Einträge löschen möchten? -pane.items.delete.title=Löschen -pane.items.delete.attached=Angehängte Notizen und Dateien löschen -pane.items.menu.remove=Ausgewählten Eintrag entfernen -pane.items.menu.remove.multiple=Ausgewählte Einträge entfernen -pane.items.menu.erase=Ausgewählten Eintrag aus der Bibliothek löschen... -pane.items.menu.erase.multiple=Ausgewählte Einträge aus der Bibliothek löschen... -pane.items.menu.export=Ausgewählten Eintrag exportieren... -pane.items.menu.export.multiple=Ausgewählte Einträge exportieren... -pane.items.menu.createBib=Literaturverzeichnis aus dem ausgewählten Artikel erstellen... -pane.items.menu.createBib.multiple=Literaturverzeichnis aus den ausgewählten Einträgen erstellen... -pane.items.menu.generateReport=Bericht aus dem ausgewählten Eintrag erstellen... -pane.items.menu.generateReport.multiple=Bericht aus den ausgewählten Einträgen erstellen... -pane.items.menu.reindexItem=Eintrag neu indizieren -pane.items.menu.reindexItem.multiple=Einträge neu indizieren - -pane.items.letter.oneParticipant=Brief an %S -pane.items.letter.twoParticipants=Brief an %S und %S -pane.items.letter.threeParticipants=Brief an %S, %S und %S -pane.items.letter.manyParticipants=Brief an %S et al. -pane.items.interview.oneParticipant=Interview von %S -pane.items.interview.twoParticipants=Interview von %S and %S -pane.items.interview.threeParticipants=Interview von %S, %S und %S -pane.items.interview.manyParticipants=Interview von %S et al. - -pane.item.selected.zero=Keine Einträge ausgewählt -pane.item.selected.multiple=%S Einträge ausgewählt - -pane.item.goToURL.online.label=Anzeigen -pane.item.goToURL.online.tooltip=Online zu diesem Eintrag gehen -pane.item.goToURL.snapshot.label=Schnappschuss anzeigen -pane.item.goToURL.snapshot.tooltip=Schnappschuss für diesen Eintrag anzeigen -pane.item.changeType.title=Eintragstyp ändern -pane.item.changeType.text=Sind Sie sicher, dass Sie den Eintragstyp ändern wollen?\n\nDie folgenden Felder werden verloren gehen: -pane.item.defaultFirstName=Vorname -pane.item.defaultLastName=Name -pane.item.defaultFullName=vollständiger Name -pane.item.switchFieldMode.one=Zu einfachem Feld wechseln -pane.item.switchFieldMode.two=Zu zwei Feldern wechseln -pane.item.notes.untitled=Notiz ohne Titel -pane.item.notes.delete.confirm=Sind Sie sicher, dass Sie diese Notiz löschen möchten? -pane.item.notes.count.zero=%S Notizen: -pane.item.notes.count.singular=%S Notiz: -pane.item.notes.count.plural=%S Notizen: -pane.item.attachments.rename.title=Neuer Titel: -pane.item.attachments.rename.renameAssociatedFile=Zugehörige Datei umbenennen -pane.item.attachments.rename.error=Beim Umbenennen der Datei trat ein Fehler auf. -pane.item.attachments.view.link=Seite ansehen -pane.item.attachments.view.snapshot=Schnappschuss ansehen -pane.item.attachments.view.file=Datei ansehen -pane.item.attachments.fileNotFound.title=Datei nicht gefunden -pane.item.attachments.fileNotFound.text=Die angehängte Datei konnte nicht gefunden werden.\n\nEs könnte sein, dass sie außerhalb von Zotero verschoben oder gelöscht wurde. -pane.item.attachments.delete.confirm=Sind Sie sicher, dass Sie diesen Anhang löschen möchten? -pane.item.attachments.count.zero=%S Anhänge: -pane.item.attachments.count.singular=%S Anhang -pane.item.attachments.count.plural=%S Anhänge -pane.item.attachments.select=Datei auswählen -pane.item.noteEditor.clickHere=hier klicken -pane.item.tags=Tags: -pane.item.tags.count.zero=%S Tags: -pane.item.tags.count.singular=%S Tag: -pane.item.tags.count.plural=%S Tags: -pane.item.tags.icon.user=Benutzer-hinzugefügtes Tag -pane.item.tags.icon.automatic=Automatisch hinzugefügtes Tag -pane.item.related=Verwandte Einträge: -pane.item.related.count.zero=%S verwandte Einträge: -pane.item.related.count.singular=%S verwandter Eintrag: -pane.item.related.count.plural=%S verwandte Einträge: - -noteEditor.editNote=Notiz editieren - -itemTypes.note=Notiz -itemTypes.attachment=Anhang -itemTypes.book=Buch -itemTypes.bookSection=Buchteil -itemTypes.journalArticle=Zeitschriftenartikel -itemTypes.magazineArticle=Magazin-Artikel -itemTypes.newspaperArticle=Zeitungsartikel -itemTypes.thesis=Dissertation -itemTypes.letter=Brief -itemTypes.manuscript=Manuskript -itemTypes.interview=Interview -itemTypes.film=Film -itemTypes.artwork=Kunstwerk -itemTypes.webpage=Webseite -itemTypes.report=Bericht -itemTypes.bill=Gesetzentwurf -itemTypes.case=Fall -itemTypes.hearing=Anhörung -itemTypes.patent=Patent -itemTypes.statute=Gesetz -itemTypes.email=E-Mail -itemTypes.map=Karte -itemTypes.blogPost=Blog-Eintrag -itemTypes.instantMessage=Instant-Message -itemTypes.forumPost=Forum-Eintrag -itemTypes.audioRecording=Tonaufnahme -itemTypes.presentation=Vortrag -itemTypes.videoRecording=Videoaufnahme -itemTypes.tvBroadcast=Fernsehsendung -itemTypes.radioBroadcast=Radiosendung -itemTypes.podcast=Podcast -itemTypes.computerProgram=Computerprogramm -itemTypes.conferencePaper=Konferenz-Paper -itemTypes.document=Dokument -itemTypes.encyclopediaArticle=Enzyklopädieartikel -itemTypes.dictionaryEntry=Wörterbucheintrag - -itemFields.itemType=Art -itemFields.title=Titel -itemFields.dateAdded=Hinzugefügt am -itemFields.dateModified=Geändert am -itemFields.source=Quelle -itemFields.notes=Notizen -itemFields.tags=Tags -itemFields.attachments=Anhänge -itemFields.related=Verwandte Einträge -itemFields.url=URL -itemFields.rights=Rechte -itemFields.series=Reihe -itemFields.volume=Band -itemFields.issue=Ausgabe -itemFields.edition=Auflage -itemFields.place=Erscheinungsort -itemFields.publisher=Verlag -itemFields.pages=Seiten -itemFields.ISBN=ISBN -itemFields.publicationTitle=Publikation -itemFields.ISSN=ISSN -itemFields.date=Datum -itemFields.section=Teil -itemFields.callNumber=Signatur -itemFields.archiveLocation=Standort im Archiv -itemFields.distributor=Verleih -itemFields.extra=Extra -itemFields.journalAbbreviation=Journal Abk. -itemFields.DOI=DOI -itemFields.accessDate=Heruntergeladen am -itemFields.seriesTitle=Titel der Reihe -itemFields.seriesText=Reihe Text -itemFields.seriesNumber=Reihe Nummer -itemFields.institution=Institution -itemFields.reportType=Art von Bericht -itemFields.code=Code -itemFields.session=Sitzung -itemFields.legislativeBody=Gesetzgebende Körperschaft -itemFields.history=Geschichte -itemFields.reporter=Reporter -itemFields.court=Gericht -itemFields.numberOfVolumes=# von Bänden -itemFields.committee=Ausschuss -itemFields.assignee=Beauftragter -itemFields.patentNumber=Patent-Nummer -itemFields.priorityNumbers=Prioritätsnummern -itemFields.issueDate=Erscheinungsdatum -itemFields.references=Quellenangaben -itemFields.legalStatus=Rechtsstatus -itemFields.codeNumber=Codenummer -itemFields.artworkMedium=Medium des Kunstwerks -itemFields.number=Nummer -itemFields.artworkSize=Größe des Kunstwerks -itemFields.repository=Aufbewahrungsort -itemFields.videoRecordingType=Art der Aufnahme -itemFields.interviewMedium=Medium -itemFields.letterType=Art -itemFields.manuscriptType=Art -itemFields.mapType=Art -itemFields.scale=Maßstab -itemFields.thesisType=Art -itemFields.websiteType=Art von Webseite -itemFields.audioRecordingType=Art von Aufnahme -itemFields.label=Label -itemFields.presentationType=Art -itemFields.meetingName=Name der Sitzung -itemFields.studio=Studio -itemFields.runningTime=Laufzeit -itemFields.network=Netzwerk -itemFields.postType=Art von Eintrag -itemFields.audioFileType=Dateityp -itemFields.version=Version -itemFields.system=System -itemFields.company=Firma -itemFields.conferenceName=Name der Konferenz -itemFields.encyclopediaTitle=Titel der Enzyklopädie -itemFields.dictionaryTitle=Titel des Wörterbuchs -itemFields.language=Sprache -itemFields.programmingLanguage=Sprache -itemFields.university=Universität -itemFields.abstractNote=Zusammenfassung -itemFields.websiteTitle=Titel der Website -itemFields.reportNumber=Nummer des Berichts -itemFields.billNumber=Nummer des Gesetzentwurfs -itemFields.codeVolume=Band des Codes -itemFields.codePages=Seiten des Codes -itemFields.dateDecided=Beschlussdatum -itemFields.reporterVolume=Nummer des Reporters -itemFields.firstPage=Erste Seite -itemFields.documentNumber=Dokumentennummer -itemFields.dateEnacted=Datum des Inkrafttretens -itemFields.publicLawNumber=Öffentliche Gesetzesnummer -itemFields.country=Land -itemFields.applicationNumber=Bewerbungsnummer -itemFields.forumTitle=Titel des Forums/Listservs -itemFields.episodeNumber=Nummer der Episode -itemFields.blogTitle=Titel des Blogs -itemFields.caseName=Name des Falls -itemFields.nameOfAct=Name des Erlasses -itemFields.subject=Betreff -itemFields.proceedingsTitle=Titel des Konferenzbandes -itemFields.bookTitle=Buchtitel -itemFields.shortTitle=Kurztitel - -creatorTypes.author=Autor -creatorTypes.contributor=Mitarbeiter -creatorTypes.editor=Herausgeber -creatorTypes.translator=Übersetzer -creatorTypes.seriesEditor=Hrsg. der Reihe -creatorTypes.interviewee=Interview mit -creatorTypes.interviewer=Interviewer -creatorTypes.director=Regisseur -creatorTypes.scriptwriter=Drehbuchautor -creatorTypes.producer=Produzent -creatorTypes.castMember=Ensemble -creatorTypes.sponsor=Sponsor -creatorTypes.counsel=Berater -creatorTypes.inventor=Erfinder -creatorTypes.attorneyAgent=Anwalt/Agent -creatorTypes.recipient=Empfänger -creatorTypes.performer=Darsteller -creatorTypes.composer=Komponist -creatorTypes.wordsBy=Text von -creatorTypes.cartographer=Kartograph -creatorTypes.programmer=Programmierer -creatorTypes.reviewedAuthor=Rezensierter Autor -creatorTypes.artist=Künstler -creatorTypes.commenter=Kommentator -creatorTypes.presenter=Vortragender -creatorTypes.guest=Gast -creatorTypes.podcaster=Podcaster - -fileTypes.webpage=Webseite -fileTypes.image=Bild -fileTypes.pdf=PDF -fileTypes.audio=Audio -fileTypes.video=Video -fileTypes.presentation=Präsentation -fileTypes.document=Dokument - -save.attachment=Speichere Schnappschuss... -save.link=Speichere Link... - -ingester.saveToZotero=In Zotero speichern -ingester.scraping=Speichere Eintrag... -ingester.scrapeComplete=Artikel gespeichert. -ingester.scrapeError=Artikel konnte nicht gespeichert werden. -ingester.scrapeErrorDescription=Ein Fehler ist aufgetreten bei dem Versuch, diesen Artikel zu speichern. Wenn dieser Fehler weiterhin auftritt, kontaktieren Sie bitte den Autor des Übersetzers. -ingester.scrapeErrorDescription.linkText=Bekannte Translator-Probleme -ingester.scrapeError.transactionInProgress.previousError=Der Speichervorgang scheiterte wegen eines vorangegangenen Zotero-Fehlers. - -db.dbCorrupted=Die Zotero-Datenbank '%S' scheint beschädigt zu sein. -db.dbCorrupted.restart=Bitte starten Sie Firefox neu, um eine automatische Wiederherstellung aus dem letzten Backup zu versuchen. -db.dbCorruptedNoBackup=Die Zotero-Datenbank scheint beschädigt zu sein und es gibt kein automatisches Backup.\n\nEine neue Datenbank wurde erstellt. Die beschädigte Datei bleibt im Zotero-Ordner gespeichert. -db.dbRestored=Die Zotero-Datenbank scheint beschädigt zu sein.\n\nDie Daten wurde aus dem letzten automatischen Backup vom %1$S um %2$S wiederhergestellt. Die beschädigte Datei bleibt im Zotero-Ordner gespeichert. -db.dbRestoreFailed=Die Zotero-Datenbank scheint beschädigt zu sein, und der Versuch, die Daten aus dem letzten automatischen Backup wiederherzustellen, hat nicht funktioniert.\n\nEine neue Datenbank wurde erstellt. Die beschädigte Datei bleibt im Zotero-Ordner gespeichert. - -db.integrityCheck.passed=Es wurden keine Fehler in der Datenbank gefunden. -db.integrityCheck.failed=Es wurden Fehler in der Zotero-Datenbank gefunden! - -zotero.preferences.update.updated=Update durchgeführt -zotero.preferences.update.upToDate=Auf dem neuesten Stand -zotero.preferences.update.error=Fehler -zotero.preferences.openurl.resolversFound.zero=%S Resolver gefunden -zotero.preferences.openurl.resolversFound.singular=%S Resolver gefunden -zotero.preferences.openurl.resolversFound.plural=%S Resolver gefunden -zotero.preferences.search.rebuildIndex=Index neu aufbauen -zotero.preferences.search.rebuildWarning=Wollen Sie den gesamten Index neu aufbauen? Dies kann eine Weile dauern.\n\nUm nur die noch nicht indizierten Einträge zu indizieren, verwenden Sie %S. -zotero.preferences.search.clearIndex=Index löschen -zotero.preferences.search.clearWarning=Nach dem Löschen des Indizes wird der Inhalt von Anhängen nicht mehr länger durchsuchbar sein\n\nAnhänge aus Webseiten können neu indiziert werden, ohne die Seite neu aufzurufen. Um Weblinks indiziert zu belassen, wählen Sie %S. -zotero.preferences.search.clearNonLinkedURLs=Alles außer Weblinks löschen -zotero.preferences.search.indexUnindexed=Nicht-indizierte Einträge indizieren -zotero.preferences.search.pdf.toolRegistered=%S ist installiert -zotero.preferences.search.pdf.toolNotRegistered=%S ist NICHT installiert -zotero.preferences.search.pdf.toolsRequired=Das Indizieren von PDF-Dateien erfordert die Werkzeuge %1$S und %1$S aus dem %3$S-Projekt. -zotero.preferences.search.pdf.automaticInstall=Für bestimmte Plattformen kann Zotero diese Anwendungen automatisch von zotero.org herunterladen und installieren. -zotero.preferences.search.pdf.advancedUsers=Fortgeschrittene Nutzerinnen und Nutzer sehen bitte in die %S für Anweisungen zur manuellen Installation. -zotero.preferences.search.pdf.documentationLink=Dokumentation -zotero.preferences.search.pdf.checkForInstaller=Nach Installer suchen -zotero.preferences.search.pdf.downloading=Lade herunter... -zotero.preferences.search.pdf.toolDownloadsNotAvailable=Die %S-Werkzeuge sind im Moment für Ihre Plattform nicht via zotero.org verfügbar. -zotero.preferences.search.pdf.viewManualInstructions=Sehen Sie in die Dokumentation für manuelle Installationsanweisungen. -zotero.preferences.search.pdf.availableDownloads=Vefügbare Downloads für %1$S von %2$S: -zotero.preferences.search.pdf.availableUpdates=Vefügbare Updates für %1$S von %2$S: -zotero.preferences.search.pdf.toolVersionPlatform=%1$S Version %2$S -zotero.preferences.search.pdf.zoteroCanInstallVersion=Zotero kann es automatisch in den Zotero-Daten-Ordner installieren. -zotero.preferences.search.pdf.zoteroCanInstallVersions=Zotero kann diese Anwendungen automatisch in den Zotero-Daten-Ordner installieren. -zotero.preferences.search.pdf.toolsDownloadError=Ein Fehler trat auf beim Download der %S-Utilities von zotero.org. -zotero.preferences.search.pdf.tryAgainOrViewManualInstructions=Bitte versuchen Sie es später erneut oder sehen Sie in die Dokumentation für Anweisungen zur manuellen Installation. -zotero.preferences.export.quickCopy.bibStyles=Zitierstile -zotero.preferences.export.quickCopy.exportFormats=Export-Formate -zotero.preferences.export.quickCopy.instructions=Quick Copy erlaubt Ihnen, ausgewählte Literaturangaben durch Drücken einer Tastenkombination (%S) in die Zwischenablage zu kopieren oder Einträge in ein Textfeld auf einer Webseite zu ziehen. - -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. - -dragAndDrop.existingFiles=Die folgenden Datein waren im Zielordner bereits vorhanden und wurden nicht kopiert: -dragAndDrop.filesNotFound=Die folgenden Datei wurden nicht gefunden und konnten nicht kopiert werden. - -fileInterface.itemsImported=Einträge werden importiert... -fileInterface.itemsExported=Einträge werden exportiert... -fileInterface.import=Importieren -fileInterface.export=Exportieren -fileInterface.exportedItems=Exportierte Einträge -fileInterface.imported=Importiert -fileInterface.fileFormatUnsupported=Kein Übersetzer wurde für die ausgewählte Datei gefunden. -fileInterface.untitledBibliography=Literaturverzeichnis ohne Titel -fileInterface.bibliographyHTMLTitle=Literaturverzeichnis -fileInterface.importError=Ein Fehler ist aufgetreten beim Importieren der ausgewählten Datei. Bitte überprüfen Sie, ob die Datei korrekt ist und versuchen Sie es erneut. -fileInterface.noReferencesError=Die ausgewählten Einträge beinhalten keine Quellenangaben. Bitte eine oder mehrere Quellenangaben auswählen und erneut versuchen. -fileInterface.bibliographyGenerationError=Ein Fehler ist aufgetreten bei dem Versuch, das Literaturverzeichnis zu erstellen. Bitte erneut versuchen. -fileInterface.exportError=Ein Fehler ist aufgetreten bei dem Versuch, die ausgewählte Datei zu exportieren. - -advancedSearchMode=Erweiterter Suchmodus — drücken Sie die Eingabetaste zum Suchen. -searchInProgress=Suche läuft — bitte warten. - -searchOperator.is=ist -searchOperator.isNot=ist nicht -searchOperator.beginsWith=beginnt mit -searchOperator.contains=enthält -searchOperator.doesNotContain=enthält nicht -searchOperator.isLessThan=ist kleiner als -searchOperator.isGreaterThan=ist größer als -searchOperator.isBefore=ist vor -searchOperator.isAfter=ist nach -searchOperator.isInTheLast=ist in den letzten - -searchConditions.tooltip.fields=Felder: -searchConditions.collectionID=Sammlung -searchConditions.itemTypeID=Art des Eintrags -searchConditions.tag=Tag -searchConditions.note=Notiz -searchConditions.childNote=Unter-Notiz -searchConditions.creator=Ersteller -searchConditions.type=Typ -searchConditions.thesisType=Art der Dissertation -searchConditions.reportType=Art des Berichts -searchConditions.videoRecordingType=Art der Videoaufnahme -searchConditions.audioFileType=Art der Audiodatei -searchConditions.audioRecordingType=Art der Tonaufnahme -searchConditions.letterType=Art des Briefs -searchConditions.interviewMedium=Medium des Interviews -searchConditions.manuscriptType=Art des Manuskripts -searchConditions.presentationType=Art des Vortrags -searchConditions.mapType=Art der Karte -searchConditions.medium=Medium -searchConditions.artworkMedium=Medium des Kunstwerks -searchConditions.dateModified=verändert am -searchConditions.fulltextContent=Inhalt des Anhangs -searchConditions.programmingLanguage=Programmiersprache -searchConditions.fileTypeID=Dateityp des Anhangs -searchConditions.annotation=Anmerkung - -fulltext.indexState.indexed=Indiziert -fulltext.indexState.unavailable=Unbekannt -fulltext.indexState.partial=Unvollständig - -exportOptions.exportNotes=Notizen exportieren -exportOptions.exportFileData=Dateien exportieren -exportOptions.UTF8=Export as UTF-8 - -date.daySuffixes=. -date.abbreviation.year=J -date.abbreviation.month=M -date.abbreviation.day=T - -citation.multipleSources=Mehrere Quellen... -citation.singleSource=Einzelne Quelle... -citation.showEditor=Editor anzeigen... -citation.hideEditor=Editor verbergen... - -report.title.default=Zotero Bericht -report.parentItem=Übergeordneter Eintrag: -report.notes=Notizen: -report.tags=Tags: - -annotations.confirmClose.title=Sind Sie sicher, dass Sie diese Anmerkung schließen wollen? -annotations.confirmClose.body=Jeglicher Text wird verloren gehen. -annotations.close.tooltip=Anmerkung löschen -annotations.move.tooltip=Anmerkung verschieben -annotations.collapse.tooltip=Anmerkung einklappen -annotations.expand.tooltip=Anmerkung ausklappen -annotations.oneWindowWarning=Anmerkungen für einen Schnappschuss können nur einem Browserfenster auf einmal geöffnet werden. Dieser Schnappschuss wird ohne Anmerkungen geöffnet werden. - -integration.incompatibleVersion=Diese Version des Zotero-Word-Plugins ist mit der gegenwärtig installierten Version der Zotero-Firefox-Erweiterung nicht kompatibel. Bitte stellen Sie sicher, dass Sie die neuesten Versionen beider Komponenten verwenden. -integration.fields.label=Felder -integration.referenceMarks.label=Referenzmarken -integration.fields.caption=Microsoft-Word-Felder sind mit geringerer Wahrscheinlichkeit verändert, aber sie können nicht mit OpenOffice.org ausgetauscht werden. -integration.referenceMarks.caption=OpenOffice.org-Referenzmarken sind mit geringerer Wahrscheinlichkeit verändert, aber sie können nicht mit Microsoft-Word ausgetauscht werden. - -integration.regenerate.title=Wollen Sie diese Zitation neu erzeugen? -integration.regenerate.body=Die Änderungen, die Sie an der Zitation vorgenommen haben, werden verloren gehen. -integration.regenerate.saveBehavior=Diese Auswahl dauerhaft übernehmen. - -integration.deleteCitedItem.title=Sind Sie sicher, dass Sie diese Literaturangabe löschen wollen? -integration.deleteCitedItem.body=Diese Literaturangabe wird im Text Ihres Dokuments zitiert. Sie zu löschen, wird alle Zitationen entfernen. - -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. diff --git a/chrome/locale/el-GR/zotero/preferences.dtd b/chrome/locale/el-GR/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> diff --git a/chrome/locale/el-GR/zotero/zotero.properties b/chrome/locale/el-GR/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/en-US/zotero/zotero.dtd b/chrome/locale/en-US/zotero/zotero.dtd @@ -2,14 +2,11 @@ <!ENTITY zotero.general.note "Note:"> <!ENTITY zotero.errorReport.unrelatedMessages "The error log may include messages unrelated to Zotero."> -<!ENTITY zotero.errorReport.additionalInfo "Additional Information"> -<!ENTITY zotero.errorReport.emailAddress "Your e-mail address:"> -<!ENTITY zotero.errorReport.errorSteps "What were you doing when the error occurred? If possible, please include steps to reproduce the error."> <!ENTITY zotero.errorReport.submissionInProgress "Please wait while the error report is submitted."> -<!ENTITY zotero.errorReport.submitted "The error report has been submitted."> +<!ENTITY zotero.errorReport.submitted "Your error report has been submitted."> <!ENTITY zotero.errorReport.reportID "Report ID:"> -<!ENTITY zotero.errorReport.furtherAssistance "See the Known Issues page and the forums for further assistance."> -<!ENTITY zotero.errorReport.includeReportID "Please include the Report ID in any correspondence with the Zotero developers regarding this issue."> +<!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.upgrade.newVersionInstalled "You have installed a new version of Zotero."> <!ENTITY zotero.upgrade.upgradeRequired "Your Zotero database must be upgraded to work with the new version."> diff --git a/chrome/locale/en-US/zotero/zotero.properties b/chrome/locale/en-US/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip = Collapse Annotation annotations.expand.tooltip = Expand Annotation annotations.oneWindowWarning = Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion = This version of the Zotero Word plug-in ($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.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 = Fields integration.referenceMarks.label = ReferenceMarks integration.fields.caption = Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. @@ -491,4 +491,4 @@ integration.deleteCitedItem.body = This reference is cited in the text of your d styles.installStyle = Install style "%1$S" from %2$S? styles.installed = The style "%S" was installed successfully. -styles.installError = %S does not appear to be a valid CSL file. -\ No newline at end of file +styles.installError = %S does not appear to be a valid CSL file. diff --git a/chrome/locale/es-ES/zotero/about.dtd b/chrome/locale/es-ES/zotero/about.dtd @@ -4,7 +4,7 @@ <!ENTITY zotero.developers "Desarrolladores:"> <!ENTITY zotero.alumni "Eméritos:"> <!ENTITY zotero.about.localizations "Traducciones:"> -<!ENTITY zotero.about.additionalSoftware "Third-Party Software and Standards:"> +<!ENTITY zotero.about.additionalSoftware "Programas y normativas externos:"> <!ENTITY zotero.executiveProducer "Productor ejecutivo:"> <!ENTITY zotero.thanks "Agradecimientos especiales:"> <!ENTITY zotero.about.close "Cerrar"> diff --git a/chrome/locale/es-ES/zotero/preferences.dtd b/chrome/locale/es-ES/zotero/preferences.dtd @@ -8,7 +8,7 @@ <!ENTITY zotero.preferences.position "Mostrar Zotero"> <!ENTITY zotero.preferences.position.above "encima"> <!ENTITY zotero.preferences.position.below "debajo"> -<!ENTITY zotero.preferences.position.browser "contenido del navegador"> +<!ENTITY zotero.preferences.position.browser "del contenido del navegador"> <!ENTITY zotero.preferences.statusBarIcon "Icono en la barra de estado:"> <!ENTITY zotero.preferences.statusBarIcon.none "Nada"> <!ENTITY zotero.preferences.fontSize "Tamaño de letra:"> @@ -18,8 +18,8 @@ <!ENTITY zotero.preferences.miscellaneous "Miscelánea"> <!ENTITY zotero.preferences.autoUpdate "Comprobar automáticamente si hay traductores actualizados"> -<!ENTITY zotero.preferences.updateNow "Actualizarse ahora"> -<!ENTITY zotero.preferences.reportTranslationFailure "Informar de traductores de sitio incorrectos"> +<!ENTITY zotero.preferences.updateNow "Hacerlo ahora"> +<!ENTITY zotero.preferences.reportTranslationFailure "Informar de fallos en los traductores de página"> <!ENTITY zotero.preferences.parseRISRefer "Usar Zotero para los ficheros RIS/Refer descargados"> <!ENTITY zotero.preferences.automaticSnapshots "Tomar instantáneas automáticamente al crear ítems a partir de páginas Web"> <!ENTITY zotero.preferences.downloadAssociatedFiles "Adjuntar automáticamente los archivos PDF y de otros tipos al guardar ítems"> @@ -27,13 +27,13 @@ <!ENTITY zotero.preferences.openurl.caption "OpenURL"> -<!ENTITY zotero.preferences.openurl.search "Search for resolvers"> +<!ENTITY zotero.preferences.openurl.search "Buscar servidores"> <!ENTITY zotero.preferences.openurl.custom "Personalizar..."> -<!ENTITY zotero.preferences.openurl.server "Resolutor:"> +<!ENTITY zotero.preferences.openurl.server "Servidor:"> <!ENTITY zotero.preferences.openurl.version "Versión:"> <!ENTITY zotero.preferences.prefpane.search "Búsqueda"> -<!ENTITY zotero.preferences.search.fulltextCache "Full-Text Cache"> +<!ENTITY zotero.preferences.search.fulltextCache "Copia local para búsquedas a texto completo"> <!ENTITY zotero.preferences.search.pdfIndexing "Indizado de PDF"> <!ENTITY zotero.preferences.search.indexStats "Estadísticas de indizado"> @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "Exportar"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> +<!ENTITY zotero.preferences.citationOptions.caption "Opciones de cita"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Incluir los URLs de los artículos en las referencias"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Sin esta opción, Zotero sólo incluye los URLs al citar artículos de revistas y periódicos si el artículo no tiene un intervalo de páginas especificado."> <!ENTITY zotero.preferences.quickCopy.caption "Copia rápida"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Formato de salida normal:"> -<!ENTITY zotero.preferences.quickCopy.macWarning "Nota: el formato especial se perderá en Mac OS X."> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> +<!ENTITY zotero.preferences.quickCopy.macWarning "Nota: en Mac OS X, el texto se copiará sin formato."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Ajustes específicos del sitio:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Dominio/camino"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(p.ej. wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Formato de salida"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "Obtener estilos adicionales..."> <!ENTITY zotero.preferences.prefpane.keys "Atajos de teclado"> @@ -70,22 +71,22 @@ <!ENTITY zotero.preferences.keys.newItem "Crear un nuevo ítem"> <!ENTITY zotero.preferences.keys.newNote "Crear una nueva nota"> <!ENTITY zotero.preferences.keys.toggleTagSelector "Conmutar el selector de marcas"> -<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Copiar los ítems de cita seleccionados al portapapeles"> +<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Copiar las citas para los ítems seleccionados al portapapeles"> <!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Copiar los ítems seleccionados al portapapeles"> -<!ENTITY zotero.preferences.keys.overrideGlobal "Intentar eliminar los atajos contradictorios"> +<!ENTITY zotero.preferences.keys.overrideGlobal "Intentar suprimir los atajos de otras aplicaciones que coincidan"> <!ENTITY zotero.preferences.keys.changesTakeEffect "Los cambios tendrán efecto sólo en las ventanas nuevas"> <!ENTITY zotero.preferences.prefpane.advanced "Avanzadas"> <!ENTITY zotero.preferences.dataDir "Lugar de almacenamiento"> -<!ENTITY zotero.preferences.dataDir.useProfile "Usar el directorio de perfil de Firefox"> +<!ENTITY zotero.preferences.dataDir.useProfile "Usar el directorio del perfil de usuario en Firefox"> <!ENTITY zotero.preferences.dataDir.custom "Especial:"> <!ENTITY zotero.preferences.dataDir.choose "Elegir..."> <!ENTITY zotero.preferences.dataDir.reveal "Mostrar el directorio de datos"> <!ENTITY zotero.preferences.dbMaintenance "Mantenimiento de la base de datos"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Comprobar la integridad de la base de datos"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Restablecer los traductores y estilos..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Restablecer los traductores..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Restablecer los estilos..."> diff --git a/chrome/locale/es-ES/zotero/searchbox.dtd b/chrome/locale/es-ES/zotero/searchbox.dtd @@ -6,8 +6,8 @@ <!ENTITY zotero.search.joinMode.suffix "los siguientes:"> <!ENTITY zotero.search.recursive.label "Buscar en carpetas interiores"> -<!ENTITY zotero.search.noChildren "Only show top-level items"> -<!ENTITY zotero.search.includeParentsAndChildren "Include parent and child items of matching items"> +<!ENTITY zotero.search.noChildren "Mostrar sólo los ítems de primer nivel"> +<!ENTITY zotero.search.includeParentsAndChildren "Incluír los ítems padres e hijos de los encontrados"> <!ENTITY zotero.search.textModes.phrase "Frase"> <!ENTITY zotero.search.textModes.phraseBinary "Frase (incl. archivos binarios)"> @@ -18,6 +18,6 @@ <!ENTITY zotero.search.date.units.months "meses"> <!ENTITY zotero.search.date.units.years "años"> -<!ENTITY zotero.search.search "Search"> -<!ENTITY zotero.search.clear "Clear"> -<!ENTITY zotero.search.saveSearch "Save Search"> +<!ENTITY zotero.search.search "Buscar"> +<!ENTITY zotero.search.clear "Borrar"> +<!ENTITY zotero.search.saveSearch "Guardar búsqueda"> diff --git a/chrome/locale/es-ES/zotero/zotero.dtd b/chrome/locale/es-ES/zotero/zotero.dtd @@ -1,7 +1,7 @@ <!ENTITY zotero.general.optional "(Opcional)"> <!ENTITY zotero.general.note "Nota:"> -<!ENTITY zotero.errorReport.unrelatedMessages "The informe de errores puede incluir mensajes sin relación con Zotero."> +<!ENTITY zotero.errorReport.unrelatedMessages "El informe de errores puede incluir mensajes sin relación con Zotero."> <!ENTITY zotero.errorReport.additionalInfo "Información adicional"> <!ENTITY zotero.errorReport.emailAddress "Tu dirección de correo electrónico:"> <!ENTITY zotero.errorReport.errorSteps "¿Qué estabas haciendo cuando ocurrió el error? Si es posible, incluye los pasos necesarios para repetir el error."> @@ -14,9 +14,9 @@ <!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."> <!ENTITY zotero.upgrade.autoBackup "Se hará una copia de seguridad de tu base de datos antes de hacer cambios."> -<!ENTITY zotero.upgrade.upgradeInProgress "Por favor, espera a que finalice el proceso de actualización. Puede llevar algunos minutos."> +<!ENTITY zotero.upgrade.upgradeInProgress "Por favor, espera a que finalice el proceso de actualización. Puede tardar algunos minutos."> <!ENTITY zotero.upgrade.upgradeSucceeded "Tu base de datos se ha actualizado correctamente."> -<!ENTITY zotero.upgrade.changeLogBeforeLink "Por favor, mira en"> +<!ENTITY zotero.upgrade.changeLogBeforeLink "Véase"> <!ENTITY zotero.upgrade.changeLogLink "el informe de cambios"> <!ENTITY zotero.upgrade.changeLogAfterLink "para ver qué hay de nuevo."> @@ -39,8 +39,8 @@ <!ENTITY zotero.items.year_column "Año"> <!ENTITY zotero.items.publisher_column "Editorial"> <!ENTITY zotero.items.language_column "Idioma"> -<!ENTITY zotero.items.callNumber_column "Call Number"> -<!ENTITY zotero.items.repository_column "Repository"> +<!ENTITY zotero.items.callNumber_column "Número de catálogo"> +<!ENTITY zotero.items.repository_column "Repositorio"> <!ENTITY zotero.items.rights_column "Derechos"> <!ENTITY zotero.items.dateAdded_column "Fecha de adición"> <!ENTITY zotero.items.dateModified_column "Fecha de modificación"> @@ -89,18 +89,18 @@ <!ENTITY zotero.tagSelector.noTagsToDisplay "No hay marcas que mostrar"> <!ENTITY zotero.tagSelector.filter "Filtro:"> -<!ENTITY zotero.tagSelector.showAutomatic "Mostrar automáticas"> +<!ENTITY zotero.tagSelector.showAutomatic "Mostrar las automáticas"> <!ENTITY zotero.tagSelector.displayAll "Mostrar todas las marcas"> <!ENTITY zotero.tagSelector.selectVisible "Seleccionar las visibles"> -<!ENTITY zotero.tagSelector.clearVisible "Deseleccionar las visibles"> -<!ENTITY zotero.tagSelector.clearAll "Deseleccionar todas"> -<!ENTITY zotero.tagSelector.renameTag "Renombrar marca..."> +<!ENTITY zotero.tagSelector.clearVisible "Descartar las visibles"> +<!ENTITY zotero.tagSelector.clearAll "Sin selección"> +<!ENTITY zotero.tagSelector.renameTag "Cambiar nombre..."> <!ENTITY zotero.tagSelector.deleteTag "Borrar marca..."> <!ENTITY zotero.selectitems.title "Seleccionar ítems"> -<!ENTITY zotero.selectitems.intro.label "Seleccionar qué ítems te apetece añadir a tu biblioteca"> +<!ENTITY zotero.selectitems.intro.label "Marca los ítems que te apetezca añadir a tu biblioteca"> <!ENTITY zotero.selectitems.cancel.label "Cancelar"> -<!ENTITY zotero.selectitems.select.label "Seleccionar"> +<!ENTITY zotero.selectitems.select.label "Añadir"> <!ENTITY zotero.bibliography.title "Crear bibliografía"> <!ENTITY zotero.bibliography.style.label "Estilo de cita:"> @@ -143,7 +143,7 @@ <!ENTITY zotero.annotate.toolbar.unhighlight.label "Normalizar"> <!ENTITY zotero.integration.prefs.displayAs.label "Mostrar citas como:"> -<!ENTITY zotero.integration.prefs.footnotes.label "notas al pié"> +<!ENTITY zotero.integration.prefs.footnotes.label "notas al pie"> <!ENTITY zotero.integration.prefs.endnotes.label "notas al final"> <!ENTITY zotero.integration.prefs.formatUsing.label "Dar formato mediante:"> diff --git a/chrome/locale/es-ES/zotero/zotero.properties b/chrome/locale/es-ES/zotero/zotero.properties @@ -42,7 +42,7 @@ errorReport.actualResult=Resultado real: dataDir.notFound=No se encuentra el directorio de datos de Zotero. dataDir.previousDir=Directorio anterior: dataDir.useProfileDir=Usar el directorio de perfil de Firefox -dataDir.selectDir=Seleccionar un directorio de datos para Zotero +dataDir.selectDir=Elige un directorio de datos para Zotero dataDir.selectedDirNonEmpty.title=El directorio no está vacío dataDir.selectedDirNonEmpty.text=El directorio que has seleccionado no está vacío y no parece que sea un directorio de datos de Zotero.\n\n¿Deseas crear los ficheros de Zotero ahí de todas formas? @@ -55,7 +55,7 @@ pane.collections.name=Nombre de la colección: pane.collections.newSavedSeach=Nueva carpeta de búsqueda pane.collections.savedSearchName=Nombre para esta carpeta de búsqueda: pane.collections.rename=Renombrar colección: -pane.collections.library=My biblioteca +pane.collections.library=Mi biblioteca pane.collections.untitled=Sin título pane.collections.menu.rename.collection=Renombrar la colección... @@ -71,10 +71,10 @@ pane.collections.menu.generateReport.collection=Producir un informe a partir de pane.collections.menu.generateReport.savedSearch=Producir un informe a partir de la carpeta de búsqueda... pane.tagSelector.rename.title=¿Nombre para la nueva marca? -pane.tagSelector.rename.message=La marca será cambiada en todos los ítems asociados. -pane.tagSelector.delete.title=¿Seguro que quieres borrar esta marca? -pane.tagSelector.delete.message=La marca será eliminada de todos los ítems. -pane.tagSelector.numSelected.none=Ninguna marca seleccionada +pane.tagSelector.rename.message=Escribe un nombre nuevo para esta marca.\n\nLa marca se cambiará en todos los ítems asociados. +pane.tagSelector.delete.title=Borrar marca +pane.tagSelector.delete.message=¿Seguro que quieres borrar esta marca?\n\nLa marca se eliminará de todos los ítems. +pane.tagSelector.numSelected.none=Ninguna seleccionada pane.tagSelector.numSelected.singular=%S marca seleccionada pane.tagSelector.numSelected.plural=%S marcas seleccionadas @@ -121,7 +121,7 @@ pane.item.switchFieldMode.one=Cambiar a campo simple pane.item.switchFieldMode.two=Cambiar a dos campos pane.item.notes.untitled=Nota sin título pane.item.notes.delete.confirm=¿Seguro que quieres borrar esta nota? -pane.item.notes.count.zero=Ninguna nota: +pane.item.notes.count.zero=Ninguna nota. pane.item.notes.count.singular=%S nota: pane.item.notes.count.plural=%S notas: pane.item.attachments.rename.title=Nuevo título: @@ -133,10 +133,10 @@ pane.item.attachments.view.file=Ver archivo pane.item.attachments.fileNotFound.title=Fichero no encontrado pane.item.attachments.fileNotFound.text=No se encuentra el fichero adjunto.\n\nPuede haber sido movido o borrado fuera de Zotero. pane.item.attachments.delete.confirm=¿Seguro que quieres borrar este adjunto? -pane.item.attachments.count.zero=Ningún adjunto: +pane.item.attachments.count.zero=Ningún adjunto. pane.item.attachments.count.singular=%S adjunto: pane.item.attachments.count.plural=%S adjuntos: -pane.item.attachments.select=Seleccionar un archivo +pane.item.attachments.select=Elige un archivo pane.item.noteEditor.clickHere=pulsa aquí pane.item.tags=Marcas: pane.item.tags.count.zero=Ninguna marca: @@ -145,7 +145,7 @@ pane.item.tags.count.plural=%S marcas: pane.item.tags.icon.user=Marca definida por el usuario pane.item.tags.icon.automatic=Marca automática pane.item.related=Relacionado: -pane.item.related.count.zero=Ninguno relacionado: +pane.item.related.count.zero=Nada relacionado: pane.item.related.count.singular=%S relacionado: pane.item.related.count.plural=%S relacionados: @@ -173,7 +173,7 @@ itemTypes.patent=Patente itemTypes.statute=Estatuto itemTypes.email=Correo electrónico itemTypes.map=Mapa -itemTypes.blogPost=Mensaje en un «blog» +itemTypes.blogPost=Entrada en un «blog» itemTypes.instantMessage=Mensaje instantáneo itemTypes.forumPost=Mensaje en un foro itemTypes.audioRecording=Grabación de sonido @@ -215,7 +215,7 @@ itemFields.callNumber=Número de registro itemFields.archiveLocation=Posición en archivo itemFields.distributor=Distribuidor itemFields.extra=Adicional -itemFields.journalAbbreviation=Abreviatura de revista científica +itemFields.journalAbbreviation=Abrev. de la revista itemFields.DOI=DOI itemFields.accessDate=Accedido itemFields.seriesTitle=Título de la serie @@ -255,7 +255,7 @@ itemFields.label=Etiqueta itemFields.presentationType=Tipo itemFields.meetingName=Nombre de la reunión itemFields.studio=Estudio -itemFields.runningTime=Tiempo de funcionamiento +itemFields.runningTime=Duración itemFields.network=Red itemFields.postType=Tipo de mensaje itemFields.audioFileType=Tipo de archivo @@ -272,23 +272,23 @@ itemFields.abstractNote=Resumen itemFields.websiteTitle=Título de página web itemFields.reportNumber=Número de informe itemFields.billNumber=Número de factura -itemFields.codeVolume=Code Volume -itemFields.codePages=Code Pages +itemFields.codeVolume=Volumen del código +itemFields.codePages=Páginas del código itemFields.dateDecided=Fecha de sentencia -itemFields.reporterVolume=Reporter Volume +itemFields.reporterVolume=Volumen de las actas itemFields.firstPage=Primera página itemFields.documentNumber=Número de documento itemFields.dateEnacted=Fecha de entrada en vigor -itemFields.publicLawNumber=Public Law Number +itemFields.publicLawNumber=Número de ley pública itemFields.country=País -itemFields.applicationNumber=Application Number -itemFields.forumTitle=Forum/Listserv Title +itemFields.applicationNumber=Número de solicitud +itemFields.forumTitle=Título de foro o lista de correo itemFields.episodeNumber=Número de episodio itemFields.blogTitle=Título de «blog» -itemFields.caseName=Case Name -itemFields.nameOfAct=Name of Act -itemFields.subject=Subject -itemFields.proceedingsTitle=Proceedings Title +itemFields.caseName=Nombre del caso +itemFields.nameOfAct=Nombre de la ley +itemFields.subject=Asunto +itemFields.proceedingsTitle=Título de las actas itemFields.bookTitle=Título del libro itemFields.shortTitle=Título corto @@ -306,7 +306,7 @@ creatorTypes.castMember=Miembro del reparto creatorTypes.sponsor=Patrocinador creatorTypes.counsel=Consejero creatorTypes.inventor=Inventor -creatorTypes.attorneyAgent=Abogado/agente +creatorTypes.attorneyAgent=Abogado/representante creatorTypes.recipient=Receptor creatorTypes.performer=Intérprete creatorTypes.composer=Compositor @@ -335,15 +335,15 @@ ingester.saveToZotero=Guardar en Zotero ingester.scraping=Guardando ítem... ingester.scrapeComplete=Ítem guardado. ingester.scrapeError=No he podido guardar el ítem. -ingester.scrapeErrorDescription=Ha ocurrido un error al grabar este ítem. Prueba de nuevo, y si hay error de nuevo, informa al autor del traductor. +ingester.scrapeErrorDescription=Ha ocurrido un error al grabar este ítem. Mira en %S para más información. ingester.scrapeErrorDescription.linkText=Problemas conocidos del traductor ingester.scrapeError.transactionInProgress.previousError=La grabación ha fallado debido a un error anterior en Zotero. db.dbCorrupted=La base de datos de Zotero '%S' parece haberse corrompido. db.dbCorrupted.restart=Reinicia Firefox para intentar la recuperación automática con la última copia de seguridad. db.dbCorruptedNoBackup=La base de datos de Zotero parece haberse corrompido, y no hay copia de seguridad automática.\n\nSe ha creado una base de datos nueva. El archivo dañado ha sido guardado en tu directorio de Zotero. -db.dbRestored=La base de datos de Zotero parece haberse corrompido.\n\nTus datos se han recuperado a partir de la última copia de seguridad automática hecha el %1$S a las %2$S. El archivo dañado ha sido guardado en tu directorio de Zotero. -db.dbRestoreFailed=La base de datos de Zotero parece haberse corrompido, y el intento de recuperarla a partir de la última copia de seguridad ha fallado.\n\nSe ha creado una base de datos nueva. El archivo dañado se ha grabado en tu directorio de Zotero. +db.dbRestored=La base de datos de Zotero '%1$S' parece haberse corrompido.\n\nTus datos se han recuperado a partir de la última copia de seguridad automática hecha el %2$S a las %3$S. El archivo dañado ha sido guardado en tu directorio de Zotero. +db.dbRestoreFailed=La base de datos de Zotero '%S' parece haberse corrompido, y el intento de recuperarla a partir de la última copia de seguridad ha fallado.\n\nSe ha creado una base de datos nueva. El archivo dañado se ha grabado en tu directorio de Zotero. db.integrityCheck.passed=No se han encontrado errores en la base de datos. db.integrityCheck.failed=Se han encontrado errores en la base de datos de Zotero. @@ -355,7 +355,7 @@ zotero.preferences.openurl.resolversFound.zero=Ningún resolutor encontrado zotero.preferences.openurl.resolversFound.singular=%S resolutor encontrado zotero.preferences.openurl.resolversFound.plural=%S resolutores encontrados zotero.preferences.search.rebuildIndex=Reconstruir índice -zotero.preferences.search.rebuildWarning=¿Deseas reconstruir el índice entero? Puede tardar un rato.\n\nPara indizar sólo ítems nuevos, usa %S. +zotero.preferences.search.rebuildWarning=¿Quieres reconstruir el índice entero? Puede tardar un rato.\n\nPara indizar sólo ítems nuevos, usa %S. zotero.preferences.search.clearIndex=Vaciar el índice zotero.preferences.search.clearWarning=Tras vaciar el índice, no se podrá buscar más en el contenido de los adjuntos.\n\nLos enlaces web adjuntos no se pueden reindizar sin volver a la página. Para dejar los enlaces indizados, elige %S. zotero.preferences.search.clearNonLinkedURLs=Vaciar todo excepto los enlaces web @@ -363,33 +363,33 @@ zotero.preferences.search.indexUnindexed=Indizar los ítems nuevos zotero.preferences.search.pdf.toolRegistered=%S está instalado zotero.preferences.search.pdf.toolNotRegistered=%S no está instalado zotero.preferences.search.pdf.toolsRequired=El indizado de PDF require las utilidades %1$S y %2%S del proyecto %3$S. -zotero.preferences.search.pdf.automaticInstall=Zotero puede descargar e instalar automáticamente estas aplicaciones desde zotero.or en ciertas plataformas. -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.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.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. -zotero.preferences.search.pdf.tryAgainOrViewManualInstructions=Please try again later, or view the documentation for manual installation instructions. -zotero.preferences.export.quickCopy.bibStyles=Bibliographic Styles -zotero.preferences.export.quickCopy.exportFormats=Export Formats -zotero.preferences.export.quickCopy.instructions=Quick Copy allows you to copy selected references to the clipboard by pressing a shortcut key (%S) or dragging items into a text box on a web page. - -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. - -dragAndDrop.existingFiles=The following files already existed in the destination directory and were not copied: -dragAndDrop.filesNotFound=The following files were not found and could not be copied: +zotero.preferences.search.pdf.automaticInstall=Zotero puede descargar e instalar automáticamente estas aplicaciones desde zotero.org en ciertas plataformas. +zotero.preferences.search.pdf.advancedUsers=Usuarios avanzados: véase el %S para instrucciones de instalación manual. +zotero.preferences.search.pdf.documentationLink=documentación +zotero.preferences.search.pdf.checkForInstaller=Comprobar si hay instalador +zotero.preferences.search.pdf.downloading=Descargando... +zotero.preferences.search.pdf.toolDownloadsNotAvailable=Las utilidades %S no están disponibles para tu plataforma en zotero.org. +zotero.preferences.search.pdf.viewManualInstructions=Véase la documentación para instrucciones de instalación manual. +zotero.preferences.search.pdf.availableDownloads=Descargas disponibles para %1$S en %2$S: +zotero.preferences.search.pdf.availableUpdates=Actualizaciones disponibles para %1$S en %2$S: +zotero.preferences.search.pdf.toolVersionPlatform=%1$S versión %2$S +zotero.preferences.search.pdf.zoteroCanInstallVersion=Zotero puede instalarlo automáticamente en su directorio de datos. +zotero.preferences.search.pdf.zoteroCanInstallVersions=Zotero puede instalar automáticamente esas aplicaciones en su directorio de datos. +zotero.preferences.search.pdf.toolsDownloadError=Ha ocurrido un error al tratar de descargar las utilidades %S de zotero.org. +zotero.preferences.search.pdf.tryAgainOrViewManualInstructions=Prueba de nuevo más tarde, o consulta la documentación sobre las instalación manual. +zotero.preferences.export.quickCopy.bibStyles=Estilos bibliográficos +zotero.preferences.export.quickCopy.exportFormats=Formatos de exportación +zotero.preferences.export.quickCopy.instructions=La copia rápida te permite copiar referencias seleccionadas al portapapeles pulsando un atajo (%S) o arrastrando ítems a una casilla de texto en una página web. + +zotero.preferences.advanced.resetTranslatorsAndStyles=Restablecer los traductores y estilos +zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Se perderán los traductores y estilos añadidos o modificados. +zotero.preferences.advanced.resetTranslators=Restablecer traductores +zotero.preferences.advanced.resetTranslators.changesLost=Se perderán los traductores añadidos o modificados. +zotero.preferences.advanced.resetStyles=Restablecer estilos +zotero.preferences.advanced.resetStyles.changesLost=Se perderán los estilos añadidos o modificados. + +dragAndDrop.existingFiles=Ya existían los siguientes ficheros en el directorio de destino, y no se han copiado: +dragAndDrop.filesNotFound=No se han encontrado los siguientes ficheros, y no han podido ser copiados: fileInterface.itemsImported=Imporando ítems... fileInterface.itemsExported=Exportando ítems... @@ -405,53 +405,53 @@ fileInterface.noReferencesError=Los ítems que has seleccionado no contienen ref fileInterface.bibliographyGenerationError=Ha ocurrido un error al generar tu bibliografía. Prueba de nuevo. fileInterface.exportError=Ha ocurrido un error al intentar exportar el archivo seleccionado. -advancedSearchMode=Modo de búsqueda avanzada â�� pulsa Intro para buscar. -searchInProgress=Búsqueda en marcha â�� espera, por favor. +advancedSearchMode=Modo de búsqueda avanzada — pulsa Intro para buscar. +searchInProgress=Búsqueda en marcha — espera, por favor. searchOperator.is=es searchOperator.isNot=no es -searchOperator.beginsWith=begins with +searchOperator.beginsWith=empieza con searchOperator.contains=contiene searchOperator.doesNotContain=no contiene searchOperator.isLessThan=es menor que searchOperator.isGreaterThan=es mayor que searchOperator.isBefore=es anterior al searchOperator.isAfter=es posterior al -searchOperator.isInTheLast=es en el último +searchOperator.isInTheLast=en los últimos -searchConditions.tooltip.fields=Fields: +searchConditions.tooltip.fields=Campos: searchConditions.collectionID=Colección searchConditions.itemTypeID=Tipo de ítem searchConditions.tag=Marca searchConditions.note=Nota -searchConditions.childNote=Child Note +searchConditions.childNote=Nota subordinada searchConditions.creator=Creador -searchConditions.type=Type +searchConditions.type=Tipo searchConditions.thesisType=Tipo de tesis searchConditions.reportType=Tipo de informe searchConditions.videoRecordingType=Tipo de grabación de vídeo -searchConditions.audioFileType=Audio File Type -searchConditions.audioRecordingType=Tipo de grabación de audio +searchConditions.audioFileType=Tipo de fichero de sonido +searchConditions.audioRecordingType=Tipo de grabación de sonido searchConditions.letterType=Tipo de carta searchConditions.interviewMedium=Medio de la entrevista searchConditions.manuscriptType=Tipo de manuscrito searchConditions.presentationType=Tipo de presentación searchConditions.mapType=Tipo de mapa -searchConditions.medium=Medium -searchConditions.artworkMedium=Artwork Medium +searchConditions.medium=Medio +searchConditions.artworkMedium=Medio artístico searchConditions.dateModified=Fecha de modificación searchConditions.fulltextContent=Contenido del adjunto -searchConditions.programmingLanguage=Programming Language -searchConditions.fileTypeID=Attachment File Type -searchConditions.annotation=Annotation +searchConditions.programmingLanguage=Lenguage de programación +searchConditions.fileTypeID=Tipo de fichero adjunto +searchConditions.annotation=Anotación -fulltext.indexState.indexed=Indexed -fulltext.indexState.unavailable=Unknown -fulltext.indexState.partial=Partial +fulltext.indexState.indexed=Indizado +fulltext.indexState.unavailable=Desconocido +fulltext.indexState.partial=Parcial exportOptions.exportNotes=Exportar notas exportOptions.exportFileData=Exportar archivos -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=Exportar como UTF-8 date.daySuffixes=º, º, º, º date.abbreviation.year=a @@ -460,36 +460,36 @@ date.abbreviation.day=d citation.multipleSources=Fuentes múltiples... citation.singleSource=Fuente única... -citation.showEditor=Show Editor... -citation.hideEditor=Hide Editor... +citation.showEditor=Mostrar editor... +citation.hideEditor=Ocultar editor... report.title.default=Informe de Zotero -report.parentItem=Parent Item: -report.notes=Notes: -report.tags=Tags: - -annotations.confirmClose.title=Are you sure you want to close this annotation? -annotations.confirmClose.body=All text will be lost. -annotations.close.tooltip=Delete Annotation -annotations.move.tooltip=Move Annotation -annotations.collapse.tooltip=Collapse Annotation -annotations.expand.tooltip=Expand Annotation -annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. - -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. -integration.fields.label=Fields -integration.referenceMarks.label=ReferenceMarks -integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. -integration.referenceMarks.caption=OpenOffice.org ReferenceMarks are less likely to be accidentally modified, but cannot be shared with Microsoft Word. - -integration.regenerate.title=Do you want to regenerate the citation? -integration.regenerate.body=The changes you have made in the citation editor will be lost. -integration.regenerate.saveBehavior=Always follow this selection. - -integration.deleteCitedItem.title=Are you sure you want to remove this reference? -integration.deleteCitedItem.body=This reference is cited in the text of your document. Deleting it will remove all citations. - -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +report.parentItem=Ítem contenedor: +report.notes=Notas: +report.tags=Marcas: + +annotations.confirmClose.title=¿Seguro que quieres cerrar esta anotación? +annotations.confirmClose.body=Se perderá todo el texto. +annotations.close.tooltip=Borrar anotación +annotations.move.tooltip=Trasladar anotación +annotations.collapse.tooltip=Colapsar anotación +annotations.expand.tooltip=Expandir anotación +annotations.oneWindowWarning=Sólo se pueden abrir las anotaciones de una instantánea en una ventana de navegador simultáneamente. Esta instantánea se abrirá sin anotaciones. + +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=Campos +integration.referenceMarks.label=Marcas de referencia +integration.fields.caption=Es menos probable que se modifiquen accidentalmente los campos de Microsoft Word, pero no pueden compartirse con OpenOffice.org. +integration.referenceMarks.caption=Es menos probable que se modifiquen accidentalmente las marcas de referencia de OpenOffice.org, pero no pueden compartirse con Microsoft Word. + +integration.regenerate.title=¿Quieres regenerar la cita? +integration.regenerate.body=Se perderán los cambios hechos en el editor de citas. +integration.regenerate.saveBehavior=Seguir siempre esta selección. + +integration.deleteCitedItem.title=¿Seguro que quieres eliminar esta referencia? +integration.deleteCitedItem.body=Esta referencia se cita en el texto de tu documento. Al borrarla se eliminarán todas las citas. + +styles.installStyle=¿Instalar el estilo "%1$S" desde %2$S? +styles.updateStyle=¿Actualizar el estilo existente "%1$S" con "%2$S" desde %3$S? +styles.installed=El estilo "%S" se ha instalado correctamente. +styles.installError=No parece que %S sea un fichero CSL válido. diff --git a/chrome/locale/et-EE/zotero/preferences.dtd b/chrome/locale/et-EE/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> diff --git a/chrome/locale/et-EE/zotero/zotero.properties b/chrome/locale/et-EE/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/fr-FR/zotero/preferences.dtd b/chrome/locale/fr-FR/zotero/preferences.dtd @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "Exportation"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> +<!ENTITY zotero.preferences.citationOptions.caption "Options de citation"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Inclure les URLs des articles de journaux dans les références"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Quand cette option est désactivée, Zotero inclut les URLs en citant les articles de revue, magazine et journal seulement si l'article n'indique pas une série de pages."> <!ENTITY zotero.preferences.quickCopy.caption "Copie rapide"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Format de sortie par défaut :"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Noter que le format texte enrichi (RTF) sera perdu sur Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Paramètres spécifiques au site :"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domaine/Chemin"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(p. ex. wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Format de sortie"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "Obtenir des styles complémentaires…"> <!ENTITY zotero.preferences.prefpane.keys "Raccourcis clavier"> @@ -86,6 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "Maintenance de la base de données"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Vérifier l'intégrité de la base de données"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Réinitialiser les convertisseurs et les styles…"> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Réinitialiser les convertisseurs…"> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Réinitialiser les styles…"> diff --git a/chrome/locale/fr-FR/zotero/zotero.properties b/chrome/locale/fr-FR/zotero/zotero.properties @@ -381,12 +381,12 @@ zotero.preferences.export.quickCopy.bibStyles=Styles bibliographiques zotero.preferences.export.quickCopy.exportFormats=Formats d'exportation zotero.preferences.export.quickCopy.instructions=La copie rapide vous permet de copier les références sélectionnées dans le presse-papiers par un raccourci clavier (%S) ou en glissant les objets dans une zone de texte d'une page Web. -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +zotero.preferences.advanced.resetTranslatorsAndStyles=Réinitialiser les convertisseurs et les styles +zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Tous les convertisseurs ou styles nouveaux ou modifiés seront perdus. +zotero.preferences.advanced.resetTranslators=Réinitialiser les convertisseurs +zotero.preferences.advanced.resetTranslators.changesLost=Tous les convertisseurs nouveaux ou modifiés seront perdus. +zotero.preferences.advanced.resetStyles=Réinitialiser les styles +zotero.preferences.advanced.resetStyles.changesLost=Tous les styles nouveaux ou modifiés seront perdus. dragAndDrop.existingFiles=Les fichiers suivants existent déjà dans le répertoire de destination et n'ont pas été copiés : dragAndDrop.filesNotFound=Les fichiers suivants n'ont pu être trouvés et donc copiés : @@ -451,7 +451,7 @@ fulltext.indexState.partial=Partiel exportOptions.exportNotes=Exporter les notes exportOptions.exportFileData=Exporter les fichiers -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=Exporter en UTF-8 date.daySuffixes=er, , , date.abbreviation.year=a @@ -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 Word de Zotero est incompatible avec la version actuellement installée de Zotero pour Firefox. Assurez-vous que vous utilisez les dernières versions des deux composants. +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=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. @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=Toujours faire ainsi. integration.deleteCitedItem.title=Voulez-vous vraiment supprimer cette référence ? integration.deleteCitedItem.body=Cette référence est citée dans le texte de votre document. La supprimer supprimera toutes les citations. -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +styles.installStyle=Installer le style "%1$S" à partir de %2$S ? +styles.updateStyle=Actualiser le style "%1$S" existant avec "%2$S" à partir de %3$S ? +styles.installed=Le style "%S" a été installé avec succès. +styles.installError=%S ne paraît pas être un fichier CSL valide. diff --git a/chrome/locale/he-IL/zotero/about.dtd b/chrome/locale/he-IL/zotero/about.dtd @@ -2,8 +2,8 @@ <!ENTITY zotero.createdby ":נוצר על ידי"> <!ENTITY zotero.directors ":במאים"> <!ENTITY zotero.developers ":מפתחים"> -<!ENTITY zotero.alumni "Alumni:"> -<!ENTITY zotero.about.localizations "Localizations:"> +<!ENTITY zotero.alumni ":בוגרים"> +<!ENTITY zotero.about.localizations ":לוקליזציה"> <!ENTITY zotero.about.additionalSoftware "Third-Party Software and Standards:"> <!ENTITY zotero.executiveProducer ":מפיק בפועל"> <!ENTITY zotero.thanks ":תודות מיוחדות"> diff --git a/chrome/locale/he-IL/zotero/preferences.dtd b/chrome/locale/he-IL/zotero/preferences.dtd @@ -1,26 +1,26 @@ -<!ENTITY zotero.preferences.title "Zotero Preferences"> +<!ENTITY zotero.preferences.title "Zotero העדפות"> -<!ENTITY zotero.preferences.default "Default:"> +<!ENTITY zotero.preferences.default ":ברירת מחדל"> <!ENTITY zotero.preferences.prefpane.general "כללי"> <!ENTITY zotero.preferences.userInterface "User Interface"> -<!ENTITY zotero.preferences.position "Display Zotero"> +<!ENTITY zotero.preferences.position "Zotero הצג את"> <!ENTITY zotero.preferences.position.above "מתחת"> <!ENTITY zotero.preferences.position.below "מעל"> <!ENTITY zotero.preferences.position.browser "תוכן הדפדפן"> <!ENTITY zotero.preferences.statusBarIcon "Status bar icon:"> <!ENTITY zotero.preferences.statusBarIcon.none "None"> -<!ENTITY zotero.preferences.fontSize "Font size:"> +<!ENTITY zotero.preferences.fontSize ":גודל גופן"> <!ENTITY zotero.preferences.fontSize.small "קטן"> <!ENTITY zotero.preferences.fontSize.medium "בינוני"> <!ENTITY zotero.preferences.fontSize.large "גדול"> -<!ENTITY zotero.preferences.miscellaneous "Miscellaneous"> +<!ENTITY zotero.preferences.miscellaneous "שונות"> <!ENTITY zotero.preferences.autoUpdate "Automatically check for updated translators"> <!ENTITY zotero.preferences.updateNow "עדכן עכשיו"> <!ENTITY zotero.preferences.reportTranslationFailure "Report broken site translators"> -<!ENTITY zotero.preferences.parseRISRefer "Use Zotero for downloaded RIS/Refer files"> +<!ENTITY zotero.preferences.parseRISRefer "השתמש ב-Zotero להורדה של קבצי RIS/Refer"> <!ENTITY zotero.preferences.automaticSnapshots "Automatically take snapshots when creating items from web pages"> <!ENTITY zotero.preferences.downloadAssociatedFiles "Automatically attach associated PDFs and other files when saving items"> <!ENTITY zotero.preferences.automaticTags "Automatically tag items with keywords and subject headings"> @@ -28,19 +28,19 @@ <!ENTITY zotero.preferences.openurl.caption "OpenURL"> <!ENTITY zotero.preferences.openurl.search "Search for resolvers"> -<!ENTITY zotero.preferences.openurl.custom "Custom..."> +<!ENTITY zotero.preferences.openurl.custom "מותאם אישית..."> <!ENTITY zotero.preferences.openurl.server "Resolver:"> <!ENTITY zotero.preferences.openurl.version "גירסה:"> <!ENTITY zotero.preferences.prefpane.search "Search"> <!ENTITY zotero.preferences.search.fulltextCache "Full-Text Cache"> <!ENTITY zotero.preferences.search.pdfIndexing "PDF Indexing"> -<!ENTITY zotero.preferences.search.indexStats "Index Statistics"> +<!ENTITY zotero.preferences.search.indexStats "סטטיסטיקות אינדקס"> <!ENTITY zotero.preferences.search.indexStats.indexed "Indexed:"> -<!ENTITY zotero.preferences.search.indexStats.partial "Partial:"> +<!ENTITY zotero.preferences.search.indexStats.partial "חלקי:"> <!ENTITY zotero.preferences.search.indexStats.unindexed "Unindexed:"> -<!ENTITY zotero.preferences.search.indexStats.words "Words:"> +<!ENTITY zotero.preferences.search.indexStats.words "מילים:"> <!ENTITY zotero.preferences.fulltext.textMaxLength "Maximum characters to index per file:"> <!ENTITY zotero.preferences.fulltext.pdfMaxPages "Maximum pages to index per file:"> @@ -51,23 +51,24 @@ <!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> <!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> -<!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> -<!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.caption "העתקה מהירה"> +<!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "ברירת מחדל של פורמט פלט:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on 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 "(e.g. wikipedia.org)"> -<!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Output Format"> +<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(לדוגמה wikipedia.org)"> +<!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "פורמט פלט"> <!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> <!ENTITY zotero.preferences.prefpane.keys "Shortcut Keys"> -<!ENTITY zotero.preferences.keys.openZotero "Open/Close Zotero Pane"> +<!ENTITY zotero.preferences.keys.openZotero "פתח/סגור חלונות Zotero"> <!ENTITY zotero.preferences.keys.toggleFullscreen "Toggle Fullscreen Mode"> <!ENTITY zotero.preferences.keys.library "ספרייה"> -<!ENTITY zotero.preferences.keys.quicksearch "Quick Search"> -<!ENTITY zotero.preferences.keys.newItem "Create a new item"> +<!ENTITY zotero.preferences.keys.quicksearch "חיפוש מהיר"> +<!ENTITY zotero.preferences.keys.newItem "צור פריט חדש"> <!ENTITY zotero.preferences.keys.newNote "Create a new note"> <!ENTITY zotero.preferences.keys.toggleTagSelector "Toggle Tag Selector"> <!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Copy Selected Item Citations to Clipboard"> @@ -78,14 +79,14 @@ <!ENTITY zotero.preferences.prefpane.advanced "מתקדם"> -<!ENTITY zotero.preferences.dataDir "Storage Location"> +<!ENTITY zotero.preferences.dataDir "מיקום אחסון"> <!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory"> -<!ENTITY zotero.preferences.dataDir.custom "Custom:"> -<!ENTITY zotero.preferences.dataDir.choose "Choose..."> +<!ENTITY zotero.preferences.dataDir.custom "מותאם אישית:"> +<!ENTITY zotero.preferences.dataDir.choose "בחר..."> <!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory"> <!ENTITY zotero.preferences.dbMaintenance "Database Maintenance"> -<!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Check Database Integrity"> +<!ENTITY zotero.preferences.dbMaintenance.integrityCheck "בדוק שלמות מסד נתונים"> <!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> <!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> <!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> diff --git a/chrome/locale/he-IL/zotero/searchbox.dtd b/chrome/locale/he-IL/zotero/searchbox.dtd @@ -1,9 +1,9 @@ <!ENTITY zotero.search.name "שם:"> -<!ENTITY zotero.search.joinMode.prefix "Match"> -<!ENTITY zotero.search.joinMode.any "any"> +<!ENTITY zotero.search.joinMode.prefix "השווה"> +<!ENTITY zotero.search.joinMode.any "כל אחד"> <!ENTITY zotero.search.joinMode.all "הכל"> -<!ENTITY zotero.search.joinMode.suffix "of the following:"> +<!ENTITY zotero.search.joinMode.suffix "מהבאים:"> <!ENTITY zotero.search.recursive.label "חפש תיקיות משנה"> <!ENTITY zotero.search.noChildren "Only show top-level items"> @@ -19,5 +19,5 @@ <!ENTITY zotero.search.date.units.years "שנים"> <!ENTITY zotero.search.search "חיפוש"> -<!ENTITY zotero.search.clear "Clear"> +<!ENTITY zotero.search.clear "נקה"> <!ENTITY zotero.search.saveSearch "שמור חיפוש"> diff --git a/chrome/locale/he-IL/zotero/zotero.properties b/chrome/locale/he-IL/zotero/zotero.properties @@ -11,20 +11,20 @@ general.restartRequiredForChanges=Firefox must be restarted for the changes to t general.restartNow=Restart now general.restartLater=Restart later 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.upgrade=שדרג general.yes=כן general.no=לא -general.passed=Passed -general.failed=Failed +general.passed=עבר +general.failed=נכשל general.and=and install.quickStartGuide=Quick Start Guide -install.quickStartGuide.message.welcome=Welcome to Zotero! +install.quickStartGuide.message.welcome=!Zotero-ברוכים הבאים ל 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. @@ -43,18 +43,18 @@ dataDir.notFound=The Zotero data directory could not be found. dataDir.previousDir=Previous directory: dataDir.useProfileDir=Use Firefox profile directory dataDir.selectDir=Select a Zotero data directory -dataDir.selectedDirNonEmpty.title=Directory Not Empty +dataDir.selectedDirNonEmpty.title=ספרייה אינה ריקה dataDir.selectedDirNonEmpty.text=The directory you selected is not empty and does not appear to be a Zotero data directory.\n\nCreate Zotero files in this directory anyway? -startupError=There was an error starting Zotero. +startupError=.Zotero התרחשה שגיאה בעת הפעלת pane.collections.delete=האם ברצונך למחוק את האוסף הנבחר? pane.collections.deleteSearch=האם ברצונך למחוק את החיפוש הנבחר? pane.collections.newCollection=אוסף חדש pane.collections.name=שם אוסף pane.collections.newSavedSeach=חיפוש שמור חדש -pane.collections.savedSearchName=Enter a name for this saved search: -pane.collections.rename=שינוי שם אוסף +pane.collections.savedSearchName=:רשום שם לחיפוש השמור +pane.collections.rename=:שינוי שם אוסף pane.collections.library=הספרייה שלי pane.collections.untitled=ללא שם @@ -74,11 +74,11 @@ pane.tagSelector.rename.title=אנא הזן שם חדש עבור תג זה pane.tagSelector.rename.message=Please enter a new name for this tag.\n\nThe tag will be changed in all associated items. pane.tagSelector.delete.title=האם אתה רוצה למחוק תג זה? pane.tagSelector.delete.message=תג זה ימחק מכל הפריטים -pane.tagSelector.numSelected.none=0 tags selected +pane.tagSelector.numSelected.none=0 תגיות נבחרו pane.tagSelector.numSelected.singular=%S tag selected pane.tagSelector.numSelected.plural=%S tags selected -pane.items.loading=Loading items list... +pane.items.loading=טוען רשימת פריטים... pane.items.delete=Are you sure you want to delete the selected item? pane.items.delete.multiple=האם אתה רוצה למחוק את הפריטים הנבחרים? pane.items.delete.title=מחק @@ -87,8 +87,8 @@ pane.items.menu.remove=הסר פריטים נבחרים pane.items.menu.remove.multiple=הסר פריטים נבחרים pane.items.menu.erase=מחק פריטים נבחרים מספריה... pane.items.menu.erase.multiple=Delete Selected Items from Library... -pane.items.menu.export=Export Selected Item... -pane.items.menu.export.multiple=Export Selected Items... +pane.items.menu.export=ייצא פריטים שנבחרו... +pane.items.menu.export.multiple=ייצא פריטים שנבחרו... pane.items.menu.createBib=צור ביבליוגרפיה מפריט נבחר pane.items.menu.createBib.multiple=Create Bibliography from Selected Items... pane.items.menu.generateReport=Generate Report from Selected Item... @@ -138,7 +138,7 @@ pane.item.attachments.count.singular=%S attachment: pane.item.attachments.count.plural=%S attachments: pane.item.attachments.select=בחר קובץ pane.item.noteEditor.clickHere=לחץ כאן -pane.item.tags=Tags: +pane.item.tags=תגיות: pane.item.tags.count.zero=%S tags: pane.item.tags.count.singular=%S tag: pane.item.tags.count.plural=%S tags: @@ -149,9 +149,9 @@ 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.note=הערה itemTypes.attachment=קובץ מצורף itemTypes.book=ספר itemTypes.bookSection=פרק מספר @@ -160,21 +160,21 @@ itemTypes.magazineArticle=מאמר ממגזין itemTypes.newspaperArticle=מאמר מעיתון itemTypes.thesis=תזה itemTypes.letter=מכתב -itemTypes.manuscript=Manuscript +itemTypes.manuscript=כתב-יד itemTypes.interview=ראיון itemTypes.film=סרט -itemTypes.artwork=Artwork +itemTypes.artwork=יצירת אומנות itemTypes.webpage=דף אינטרנט itemTypes.report=דוח itemTypes.bill=Bill -itemTypes.case=Case +itemTypes.case=תיק itemTypes.hearing=שימוע itemTypes.patent=פטנט itemTypes.statute=Statute itemTypes.email=דואר אלקטרוני itemTypes.map=מפה -itemTypes.blogPost=Blog Post -itemTypes.instantMessage=Instant Message +itemTypes.blogPost=רשומת יומן רשת +itemTypes.instantMessage=מסר מיידי itemTypes.forumPost=הודעה בפורום itemTypes.audioRecording=Audio Recording itemTypes.presentation=מצגת @@ -242,12 +242,12 @@ itemFields.artworkMedium=Medium itemFields.number=מספר itemFields.artworkSize=Artwork Size itemFields.repository=Repository -itemFields.videoRecordingType=Recording Type +itemFields.videoRecordingType=סוג הקלטה itemFields.interviewMedium=מדיום itemFields.letterType=סוג itemFields.manuscriptType=סוג itemFields.mapType=סוג -itemFields.scale=Scale +itemFields.scale=קנה מידה itemFields.thesisType=סוג itemFields.websiteType=סוג אתר itemFields.audioRecordingType=סוג הקלטה @@ -306,7 +306,7 @@ creatorTypes.castMember=Cast Member creatorTypes.sponsor=נותן חסות creatorTypes.counsel=Counsel creatorTypes.inventor=ממציא -creatorTypes.attorneyAgent=Attorney/Agent +creatorTypes.attorneyAgent=עורך דין/סוכן creatorTypes.recipient=Recipient creatorTypes.performer=מבצע creatorTypes.composer=מלחין @@ -316,7 +316,7 @@ creatorTypes.programmer=מתכנת creatorTypes.reviewedAuthor=Reviewed Author creatorTypes.artist=אומן creatorTypes.commenter=Commenter -creatorTypes.presenter=Presenter +creatorTypes.presenter=מציג creatorTypes.guest=אורח creatorTypes.podcaster=Podcaster @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/hu-HU/zotero/preferences.dtd b/chrome/locale/hu-HU/zotero/preferences.dtd @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "Exportálás"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> +<!ENTITY zotero.preferences.citationOptions.caption "Hivatkozási beállítások"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "URL megjelenítése a nyomtatásban megjelent cikkeknél"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Ha ez a lehetőség nincs bekapcsolva, a Zotero csak akkor jeleníti meg az URL-t folyóirat-, újság- vagy magazincikkeknél, ha nincs megadva oldalszám."> <!ENTITY zotero.preferences.quickCopy.caption "Gyorsmásolás"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Alapértelmezett kimeneti formátum"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Megjegyzés: A formázás Mac OS X alatt elveszik."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Weboldal-specifikus beállítások:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(pl: wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Kimeneti formátum"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "További stílusok telepítése..."> <!ENTITY zotero.preferences.prefpane.keys "Billentyűparancsok"> @@ -86,6 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "Adatbázis karbantartás"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Az adatbázis integritásának ellenőrzése"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Fordítók és stílusok visszaállítása..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Fordítók visszaállítása"> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Stílusok visszaállítása..."> diff --git a/chrome/locale/hu-HU/zotero/zotero.properties b/chrome/locale/hu-HU/zotero/zotero.properties @@ -381,12 +381,12 @@ zotero.preferences.export.quickCopy.bibStyles=Bibliográfiai stíélusok zotero.preferences.export.quickCopy.exportFormats=Exportálási formátumok zotero.preferences.export.quickCopy.instructions=A Gyorsmásolás segítségével a kiválasztott hivatkozásokat a vágólapra lehet másolni a %S gyorsbillentyű lenyomásával. A hivatkozást egy tetszőleges weboldal szövegmezőjébe is be lehet másolni, ha a kijelölt hivatkozást a szövegmezőbe húzzuk. -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +zotero.preferences.advanced.resetTranslatorsAndStyles=Fordítók és stílusok visszaállítása +zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Az új vagy módosított fordítók és stílusok elvesznek. +zotero.preferences.advanced.resetTranslators=Fordítók visszaállítása +zotero.preferences.advanced.resetTranslators.changesLost=Az új vagy módosított fordítók elvesznek. +zotero.preferences.advanced.resetStyles=Stílusok visszaállítása +zotero.preferences.advanced.resetStyles.changesLost=Az új vagy módosított stílusok elvesznek. dragAndDrop.existingFiles=Az alábbi fájlok már léteznek a célmappában, ezért nem kerültek bemásolásra. dragAndDrop.filesNotFound=Az alábbi fájlok nem találhatóak, ezért nem lehet őket másolni: @@ -451,7 +451,7 @@ fulltext.indexState.partial=Részleges exportOptions.exportNotes=Jegyzetek exportálása exportOptions.exportFileData=Fájlok exportálása -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=Exportálás UTF-8 formátumban date.daySuffixes=. date.abbreviation.year=év @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Jegyzet bezárása annotations.expand.tooltip=Jegyzet megnyitása annotations.oneWindowWarning=A pillanatfelvételhez kapcsolódó jegyzeteket egyszerre csak egy ablakban lehet megnyitni. A pillanatfelvétel jegyzetek nélkül lesz megnyitva. -integration.incompatibleVersion=Ez a Zotero Word plug-in nem kompatibilis a Zotero jelenleg telepített verziójával. Mindkét komponensből a legfrissebb verzióra van szükség. +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=Mezők integration.referenceMarks.label=Hivatkozási jelek integration.fields.caption=Microsoft Word mezők esetében nem valószínű a véletlen módosítás, de nem kompatibilis az OpenOffice.org-gal. @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=Beállítás megőrzése. integration.deleteCitedItem.title=A hivatkozás törlésének megerősítése? integration.deleteCitedItem.body=A hivatkozás említve van a dokumentum szövegében. Törlés után az összes hivatkozás törlésre kerül. -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +styles.installStyle=A "%1$S" stílus importálása a %2$S-ból? +styles.updateStyle=A "%1$S" stílus lecserélése %2$S-re a %3$S-ból? +styles.installed=A "%1$S" stílus importálása sikerült. +styles.installError=A "%1$S" érvénytelen CSL fájl. diff --git a/chrome/locale/is-IS/zotero/preferences.dtd b/chrome/locale/is-IS/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> diff --git a/chrome/locale/is-IS/zotero/zotero.properties b/chrome/locale/is-IS/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/it-IT/zotero/preferences.dtd b/chrome/locale/it-IT/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Copia veloce"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Formato di output predefinito"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Nota: la formattazione RTF verrà persa su Mac OS X"> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Impostazioni specifiche per sito:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Dominio o percorso"> diff --git a/chrome/locale/it-IT/zotero/zotero.dtd b/chrome/locale/it-IT/zotero/zotero.dtd @@ -33,7 +33,7 @@ <!ENTITY zotero.notes.separate "Modifica in una nuova finestra"> <!ENTITY zotero.items.type_column "Tipo"> -<!ENTITY zotero.items.title_column "Titolo dell'articolo"> +<!ENTITY zotero.items.title_column "Titolo"> <!ENTITY zotero.items.creator_column "Autore"> <!ENTITY zotero.items.date_column "Data"> <!ENTITY zotero.items.year_column "Anno"> diff --git a/chrome/locale/it-IT/zotero/zotero.properties b/chrome/locale/it-IT/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collassa annotazione annotations.expand.tooltip=Espandi annotazione annotations.oneWindowWarning=Le annotazioni di un'istantanea sono visualizzabili contemporaneamente solo all'interno di un'unica pagina. Questa istantanea verrà visualizzata senza annotazioni. -integration.incompatibleVersion=Questa versione del componente Word di Zotero è incompatibile con l'attuale versione di Zotero. Utilizzare le versioni più recenti di entrambi. +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=Campi integration.referenceMarks.label=Contrassegni integration.fields.caption=Ci sono scarse probabilità che i campi di Microsoft Word subiscano modifiche non previste, ma non saranno compatibili con OpenOffice.org diff --git a/chrome/locale/ja-JP/zotero/about.dtd b/chrome/locale/ja-JP/zotero/about.dtd @@ -2,9 +2,9 @@ <!ENTITY zotero.createdby "作成者:"> <!ENTITY zotero.directors "指導者:"> <!ENTITY zotero.developers "開発者:"> -<!ENTITY zotero.alumni "Alumni:"> +<!ENTITY zotero.alumni "同窓会員:"> <!ENTITY zotero.about.localizations "ローカライズ:"> -<!ENTITY zotero.about.additionalSoftware "Third-Party Software and Standards:"> +<!ENTITY zotero.about.additionalSoftware "サードパーティのソフトウェアとスタンダード:"> <!ENTITY zotero.executiveProducer "製作責任者:"> <!ENTITY zotero.thanks "次のコミュニティメンバーに謝辞を表します:"> <!ENTITY zotero.about.close "閉じる"> diff --git a/chrome/locale/ja-JP/zotero/preferences.dtd b/chrome/locale/ja-JP/zotero/preferences.dtd @@ -10,24 +10,24 @@ <!ENTITY zotero.preferences.position.below "下"> <!ENTITY zotero.preferences.position.browser "にZoteroを表示する"> <!ENTITY zotero.preferences.statusBarIcon "ステータスバーのアイコン:"> -<!ENTITY zotero.preferences.statusBarIcon.none "None"> +<!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 "Automatically check for updated translators"> +<!ENTITY zotero.preferences.autoUpdate "アップ・デートされた翻訳者を自動的にチェック"> <!ENTITY zotero.preferences.updateNow "アップデート"> <!ENTITY zotero.preferences.reportTranslationFailure "壊れたスクレーパを報告する"> -<!ENTITY zotero.preferences.parseRISRefer "Use Zotero for downloaded RIS/Refer files"> +<!ENTITY zotero.preferences.parseRISRefer "ダウン・ロードされたRIS/ReferファイルにZoteroを使用"> <!ENTITY zotero.preferences.automaticSnapshots "ウェブページのアイテムを作成するときに自動的にスナップショットを作成する"> <!ENTITY zotero.preferences.downloadAssociatedFiles "アイテムを作成するときに自動的に関連PDFや他のファイルを添付する"> <!ENTITY zotero.preferences.automaticTags "キーワードと件名標目のあるアイテムに自動的にタグを付ける"> <!ENTITY zotero.preferences.openurl.caption "OpenURL"> -<!ENTITY zotero.preferences.openurl.search "Search for resolvers"> +<!ENTITY zotero.preferences.openurl.search "リンク・リゾルバーを検索"> <!ENTITY zotero.preferences.openurl.custom "カスタム..."> <!ENTITY zotero.preferences.openurl.server "リンク・リゾルバ:"> <!ENTITY zotero.preferences.openurl.version "バージョン:"> @@ -37,10 +37,10 @@ <!ENTITY zotero.preferences.search.pdfIndexing "PDF索引"> <!ENTITY zotero.preferences.search.indexStats "索引統計"> -<!ENTITY zotero.preferences.search.indexStats.indexed "Indexed:"> -<!ENTITY zotero.preferences.search.indexStats.partial "Partial:"> -<!ENTITY zotero.preferences.search.indexStats.unindexed "Unindexed:"> -<!ENTITY zotero.preferences.search.indexStats.words "Words:"> +<!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 "各ファイルの索引の最大ページ数:"> @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "クィックコピー"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "標準アウトプットフォーマット:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "注意:Mac OS Xにはリッチテキスト形式は失われます。"> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "サイト固有の設定:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "ドメイン/パス"> @@ -70,7 +71,7 @@ <!ENTITY zotero.preferences.keys.newItem "新規アイテムを作成"> <!ENTITY zotero.preferences.keys.newNote "新規メモを作成"> <!ENTITY zotero.preferences.keys.toggleTagSelector "タグ・セレクターを表示"> -<!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 "矛盾するショートカットを上書く"> <!ENTITY zotero.preferences.keys.changesTakeEffect "変更を有効にするために、新規画面を開いてください"> @@ -82,10 +83,10 @@ <!ENTITY zotero.preferences.dataDir.useProfile "Firefoxプロファイルダイレクトリーを使用する"> <!ENTITY zotero.preferences.dataDir.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 "Check Database Integrity"> +<!ENTITY zotero.preferences.dbMaintenance "データベースの管理"> +<!ENTITY zotero.preferences.dbMaintenance.integrityCheck "データベースの整合性をチェック"> <!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> <!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> <!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> diff --git a/chrome/locale/ja-JP/zotero/zotero.dtd b/chrome/locale/ja-JP/zotero/zotero.dtd @@ -1,14 +1,14 @@ <!ENTITY zotero.general.optional "(オプショナル)"> -<!ENTITY zotero.general.note "Note:"> +<!ENTITY zotero.general.note "メモ:"> -<!ENTITY zotero.errorReport.unrelatedMessages "The error log may include messages unrelated to Zotero."> +<!ENTITY zotero.errorReport.unrelatedMessages "エラー・ログはZoteroとは関係していないメッセージを含んでいる可能性があります。"> <!ENTITY zotero.errorReport.additionalInfo "追加情報"> <!ENTITY zotero.errorReport.emailAddress "あなたの電子メールアドレス:"> <!ENTITY zotero.errorReport.errorSteps "エラーが発生したときに何をしていましたか?可能であれば、エラー発生までのステップを説明してください。"> <!ENTITY zotero.errorReport.submissionInProgress "エラーレポートは送信されるまでお待ちください。"> <!ENTITY zotero.errorReport.submitted "エラーレポートは送信されました。"> <!ENTITY zotero.errorReport.reportID "レポートID:"> -<!ENTITY zotero.errorReport.furtherAssistance "See the Known Issues page and the forums for further assistance."> +<!ENTITY zotero.errorReport.furtherAssistance "さらにヘルプが必要な場合、既知問題のページとフォーラムを参照して下さい。"> <!ENTITY zotero.errorReport.includeReportID "Zotero開発者と連絡する際に、この問題に関するレポートIDを報告してください。"> <!ENTITY zotero.upgrade.newVersionInstalled "Zoteroの新しいバージョンはインストールされました。"> @@ -102,7 +102,7 @@ <!ENTITY zotero.selectitems.cancel.label "キャンセル"> <!ENTITY zotero.selectitems.select.label "OK"> -<!ENTITY zotero.bibliography.title "参考文献を作成"> +<!ENTITY zotero.bibliography.title "参照文献を作成"> <!ENTITY zotero.bibliography.style.label "引用スタイル"> <!ENTITY zotero.bibliography.output.label "アウトプット・フォーマット"> <!ENTITY zotero.bibliography.saveAsRTF.label "RTFとして保存"> @@ -112,8 +112,8 @@ <!ENTITY zotero.bibliography.print.label "印刷"> <!ENTITY zotero.integration.docPrefs.title "ドキュメントの設定"> -<!ENTITY zotero.integration.addEditCitation.title "Add/Edit Citation"> -<!ENTITY zotero.integration.editBibliography.title "Edit Bibliography"> +<!ENTITY zotero.integration.addEditCitation.title "引用を追加・編集"> +<!ENTITY zotero.integration.editBibliography.title "参照文献リストを編集"> <!ENTITY zotero.progress.title "進行"> @@ -121,20 +121,20 @@ <!ENTITY zotero.exportOptions.format.label "フォーマット:"> <!ENTITY zotero.exportOptions.translatorOptions.label "トランスレーターのオプション"> -<!ENTITY zotero.citation.keepSorted.label "Keep Sources Sorted"> +<!ENTITY zotero.citation.keepSorted.label "参照文献の配列をキープ"> <!ENTITY zotero.citation.page "ページ"> <!ENTITY zotero.citation.paragraph "段落"> <!ENTITY zotero.citation.line "行"> -<!ENTITY zotero.citation.suppressAuthor.label "Suppress Author"> -<!ENTITY zotero.citation.prefix.label "Prefix:"> -<!ENTITY zotero.citation.suffix.label "Suffix:"> +<!ENTITY zotero.citation.suppressAuthor.label "著者名の非表示"> +<!ENTITY zotero.citation.prefix.label "接頭辞"> +<!ENTITY zotero.citation.suffix.label "接尾辞"> -<!ENTITY zotero.richText.italic.label "Italic"> -<!ENTITY zotero.richText.bold.label "Bold"> -<!ENTITY zotero.richText.underline.label "Underline"> -<!ENTITY zotero.richText.superscript.label "Superscript"> -<!ENTITY zotero.richText.subscript.label "Subscript"> +<!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 "すべてのアノテーションを折りたたみ表示"> @@ -150,4 +150,4 @@ <!ENTITY zotero.integration.prefs.bookmarks.label "ブックマーク"> <!ENTITY zotero.integration.prefs.bookmarks.caption "ブックマークはMicrosoft Word、OpenOffice.org双方で保存されますが、偶然に変更されてしまう場合があります。"> -<!ENTITY zotero.integration.references.label "References in Bibliography"> +<!ENTITY zotero.integration.references.label "参照文献リストの中の参照文献"> diff --git a/chrome/locale/ja-JP/zotero/zotero.properties b/chrome/locale/ja-JP/zotero/zotero.properties @@ -381,12 +381,12 @@ zotero.preferences.export.quickCopy.bibStyles=参考文献のスタイル zotero.preferences.export.quickCopy.exportFormats=エクスポートフォーマット zotero.preferences.export.quickCopy.instructions=クイックコピー機能で、ショートカットキーを押してクリップボードに選択された参照文献のコピー、またはウェブページのテキストボックスにアイテムをドラッグすることができます。 -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +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=次のファイルは見つからず、コピーできませんでした。 @@ -451,7 +451,7 @@ fulltext.indexState.partial=部分作成 exportOptions.exportNotes=メモをエクスポート exportOptions.exportFileData=ファイルをエクスポート -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=UTF-8としてエクスポート date.daySuffixes=日, 日, 日, 日 date.abbreviation.year=年 @@ -476,7 +476,7 @@ annotations.collapse.tooltip=アノテーションを折りたたみ表示 annotations.expand.tooltip=アノテーションを展開表示 annotations.oneWindowWarning=スナップショットのアノテーションは同時に複数のブラウザ画面に開けることができません。このスナップショットはアノテーションなしで開かれます。 -integration.incompatibleVersion=このZoteroのWordプラグ・インバージョンは現在インストールされたZoteroのFirefox拡張機能には適用されません。両コンポーネントの最新版がインストールされているか確認してください。 +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と共有することができません。 @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=常にこの設定を使用する。 integration.deleteCitedItem.title=この参照事項を削除してよろしいですか? integration.deleteCitedItem.body=この参照事項はあなたのドキュメントの文章の中に引用されています。削除するときに全ての引用はなくなります。 -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +styles.installStyle=スタイル"%1$S"を%2$Sからインストールしますか? +styles.updateStyle=既存のスタイル"%1$S"を%3$Sからの"%2$S"でアップデートしますか? +styles.installed=スタイル"%S"が正常にインストールされました。 +styles.installError=%Sは有効なCSLファイルではないようです。 diff --git a/chrome/locale/ko-KR/zotero/about.dtd b/chrome/locale/ko-KR/zotero/about.dtd @@ -2,7 +2,7 @@ <!ENTITY zotero.createdby "제작자:"> <!ENTITY zotero.directors "감독:"> <!ENTITY zotero.developers "개발자:"> -<!ENTITY zotero.alumni "Alumni:"> +<!ENTITY zotero.alumni "졸업생:"> <!ENTITY zotero.about.localizations "지역화 담당자:"> <!ENTITY zotero.about.additionalSoftware "제삼자 소프트웨어 및 기준:"> <!ENTITY zotero.executiveProducer "행정 감독:"> diff --git a/chrome/locale/ko-KR/zotero/preferences.dtd b/chrome/locale/ko-KR/zotero/preferences.dtd @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "내보내기"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> +<!ENTITY zotero.preferences.citationOptions.caption "인용 선택사항"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "참조 내 신문 기사의 URL포함"> <!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> <!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 "(예. wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "출력 형식"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "추가 스타일 받기..."> <!ENTITY zotero.preferences.prefpane.keys "단축키"> @@ -86,6 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "데이터베이스 유지"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "데이터베이스 무결성 점검"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "중계기 및 스타일 재설정..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "중계기 재설정..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "스타일 재설정..."> diff --git a/chrome/locale/ko-KR/zotero/zotero.properties b/chrome/locale/ko-KR/zotero/zotero.properties @@ -268,7 +268,7 @@ itemFields.dictionaryTitle=사전 명 itemFields.language=언어 itemFields.programmingLanguage=언어 itemFields.university=대학 -itemFields.abstractNote=적요 +itemFields.abstractNote=요약 itemFields.websiteTitle=웹사이트 명 itemFields.reportNumber=보고서 번호 itemFields.billNumber=의안 번호 @@ -381,11 +381,11 @@ zotero.preferences.export.quickCopy.bibStyles=도서목록 형식 zotero.preferences.export.quickCopy.exportFormats=내보내기 형식 zotero.preferences.export.quickCopy.instructions=빠른 복사는 단축 키 (%S)를 누르거나 웹 페이지내 텍스트 박스 안으로 항목을 끌어 오면 클립보드에 선택한 참고를 복사하는 것을 허용시킵니다. -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles +zotero.preferences.advanced.resetTranslatorsAndStyles=중계기 및 스타일 재설정 zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators +zotero.preferences.advanced.resetTranslators=중계기 재설정 zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles +zotero.preferences.advanced.resetStyles=스타일 재설정 zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. dragAndDrop.existingFiles=다음 파일은 목적 디렉토리내 이미 존재하며 복사하지는 않았습니다: @@ -451,7 +451,7 @@ fulltext.indexState.partial=부분적 exportOptions.exportNotes=노트 내보내기 exportOptions.exportFileData=파일 내보내기 -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=UTF-8로 내보내기 date.daySuffixes=일, 일, 일, 일 date.abbreviation.year=y @@ -476,7 +476,7 @@ annotations.collapse.tooltip=주석 접기 annotations.expand.tooltip=주석 펼치기 annotations.oneWindowWarning=스냅샷을 위한 주석은 오직 1개의 브라우저 윈도우에서만 동시에 열릴지 모릅니다. 이 스냅샷은 주석 없이 열릴 겁니다. -integration.incompatibleVersion=Zotero Word 플러그 인 버전이 현재 설치된 Zotero Firefox 확장기능의 버전과 호환되지 않습니다. 양쪽 구성요소 모두 최신 버전을 사용하도록 하십시오. +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와 공유할 수는 없습니다. @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=언제나 이 선택을 따릅니다. integration.deleteCitedItem.title=이 참조를 삭제하길 원하는 것이 맞습니까? integration.deleteCitedItem.body=이 참조는 문서의 문장 내에 인용되고 있습니다. 삭제할 경우에 모든 인용은 없어집니다. -styles.installStyle=Install style "%1$S" from %2$S? +styles.installStyle=%2$S로 부터 %1$S(을)를 내보내시겠습니까? styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. +styles.installed=스타일 "%S"(을)를 성공적으로 설치했습니다. styles.installError=%S does not appear to be a valid CSL file. diff --git a/chrome/locale/mn-MN/zotero/preferences.dtd b/chrome/locale/mn-MN/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> diff --git a/chrome/locale/mn-MN/zotero/zotero.properties b/chrome/locale/mn-MN/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/nb-NO/zotero/about.dtd b/chrome/locale/nb-NO/zotero/about.dtd @@ -1,10 +1,10 @@ <!ENTITY zotero.version "versjon"> -<!ENTITY zotero.createdby "Skapt av:"> +<!ENTITY zotero.createdby "Utviklet av:"> <!ENTITY zotero.directors "Direksjonsmedlemmer:"> <!ENTITY zotero.developers "Utviklere:"> <!ENTITY zotero.alumni "Alumni:"> <!ENTITY zotero.about.localizations "Lokaliseringer:"> -<!ENTITY zotero.about.additionalSoftware "Third-Party Software and Standards:"> +<!ENTITY zotero.about.additionalSoftware "Tredjeparts programvare og standarder:"> <!ENTITY zotero.executiveProducer "Ledende produsent:"> <!ENTITY zotero.thanks "Spesiell takk til:"> <!ENTITY zotero.about.close "Lukk"> diff --git a/chrome/locale/nb-NO/zotero/preferences.dtd b/chrome/locale/nb-NO/zotero/preferences.dtd @@ -10,18 +10,18 @@ <!ENTITY zotero.preferences.position.below "under"> <!ENTITY zotero.preferences.position.browser "nettleserinnhold"> <!ENTITY zotero.preferences.statusBarIcon "Ikon på statuslinje:"> -<!ENTITY zotero.preferences.statusBarIcon.none "None"> -<!ENTITY zotero.preferences.fontSize "Font size:"> -<!ENTITY zotero.preferences.fontSize.small "Small"> +<!ENTITY zotero.preferences.statusBarIcon.none "Ingen"> +<!ENTITY zotero.preferences.fontSize "Skriftstørrelse"> +<!ENTITY zotero.preferences.fontSize.small "Liten"> <!ENTITY zotero.preferences.fontSize.medium "Medium"> -<!ENTITY zotero.preferences.fontSize.large "Large"> +<!ENTITY zotero.preferences.fontSize.large "Stor"> -<!ENTITY zotero.preferences.miscellaneous "Miscellaneous"> -<!ENTITY zotero.preferences.autoUpdate "Automatically check for updated translators"> +<!ENTITY zotero.preferences.miscellaneous "Diverse"> +<!ENTITY zotero.preferences.autoUpdate "Sjekk automatisk for oppdaterte oversettere"> <!ENTITY zotero.preferences.updateNow "Oppdater nå"> <!ENTITY zotero.preferences.reportTranslationFailure "Rapporter ødelagte nettstedoversettere"> -<!ENTITY zotero.preferences.parseRISRefer "Use Zotero for downloaded RIS/Refer files"> -<!ENTITY zotero.preferences.automaticSnapshots "Ta automatisk snapshots når du lager elementer fra nettsider"> +<!ENTITY zotero.preferences.parseRISRefer "Bruk Zotero for nedlastede RIS/Refer-filer"> +<!ENTITY zotero.preferences.automaticSnapshots "Ta automatisk øyeblikksbilder når du lager elementer fra nettsider"> <!ENTITY zotero.preferences.downloadAssociatedFiles "Lagre assosierte PDF-filer og andre filer når du lagrer elementer"> <!ENTITY zotero.preferences.automaticTags "Automatically tag items with keywords and subject headings"> @@ -32,20 +32,20 @@ <!ENTITY zotero.preferences.openurl.server "Resolver:"> <!ENTITY zotero.preferences.openurl.version "Versjon:"> -<!ENTITY zotero.preferences.prefpane.search "Search"> +<!ENTITY zotero.preferences.prefpane.search "Søk"> <!ENTITY zotero.preferences.search.fulltextCache "Full-Text Cache"> <!ENTITY zotero.preferences.search.pdfIndexing "PDF Indexing"> <!ENTITY zotero.preferences.search.indexStats "Index Statistics"> -<!ENTITY zotero.preferences.search.indexStats.indexed "Indexed:"> +<!ENTITY zotero.preferences.search.indexStats.indexed "Indeksert:"> <!ENTITY zotero.preferences.search.indexStats.partial "Partial:"> <!ENTITY zotero.preferences.search.indexStats.unindexed "Unindexed:"> -<!ENTITY zotero.preferences.search.indexStats.words "Words:"> +<!ENTITY zotero.preferences.search.indexStats.words "Ord:"> <!ENTITY zotero.preferences.fulltext.textMaxLength "Maximum characters to index per file:"> <!ENTITY zotero.preferences.fulltext.pdfMaxPages "Maximum pages to index per file:"> -<!ENTITY zotero.preferences.prefpane.export "Export"> +<!ENTITY zotero.preferences.prefpane.export "Eksporter:"> <!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> <!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> @@ -76,12 +77,12 @@ <!ENTITY zotero.preferences.keys.changesTakeEffect "Endringer gjelder kun for nye vinduer"> -<!ENTITY zotero.preferences.prefpane.advanced "Advanced"> +<!ENTITY zotero.preferences.prefpane.advanced "Avansert"> <!ENTITY zotero.preferences.dataDir "Storage Location"> <!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory"> <!ENTITY zotero.preferences.dataDir.custom "Custom:"> -<!ENTITY zotero.preferences.dataDir.choose "Choose..."> +<!ENTITY zotero.preferences.dataDir.choose "Velg..."> <!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory"> <!ENTITY zotero.preferences.dbMaintenance "Database Maintenance"> diff --git a/chrome/locale/nb-NO/zotero/timeline.properties b/chrome/locale/nb-NO/zotero/timeline.properties @@ -2,20 +2,20 @@ general.title=Zotero tidslinje general.filter=Filter: general.highlight=Highlight: general.clearAll=Clear All -general.jumpToYear=Jump to Year: +general.jumpToYear=Gå til år: general.firstBand=First Band: general.secondBand=Second Band: general.thirdBand=Third Band: -general.dateType=Date Type: -general.timelineHeight=Timeline Height: -general.fitToScreen=Fit to Screen +general.dateType=Datotype: +general.timelineHeight=Høyde på tidslinjen: +general.fitToScreen=Tilpass skjermen -interval.day=Day -interval.month=Month -interval.year=Year -interval.decade=Decade -interval.century=Century -interval.millennium=Millennium +interval.day=Dag +interval.month=Måned +interval.year=År +interval.decade=Tiår +interval.century=Århundre +interval.millennium=Årtusen -dateType.published=Date Published -dateType.modified=Date Modified +dateType.published=Publiseringsdato +dateType.modified=Endringsdato diff --git a/chrome/locale/nb-NO/zotero/zotero.dtd b/chrome/locale/nb-NO/zotero/zotero.dtd @@ -1,4 +1,4 @@ -<!ENTITY zotero.general.optional "(Optional)"> +<!ENTITY zotero.general.optional "(Valgfri)"> <!ENTITY zotero.general.note "Note:"> <!ENTITY zotero.errorReport.unrelatedMessages "The error log may include messages unrelated to Zotero."> @@ -11,14 +11,14 @@ <!ENTITY zotero.errorReport.furtherAssistance "See the Known Issues page and the forums for further assistance."> <!ENTITY zotero.errorReport.includeReportID "Please include the Report ID in any correspondence with the Zotero developers regarding this issue."> -<!ENTITY zotero.upgrade.newVersionInstalled "You have installed a new version of Zotero."> -<!ENTITY zotero.upgrade.upgradeRequired "Your Zotero database must be upgraded to work with the new version."> -<!ENTITY zotero.upgrade.autoBackup "Your existing database will be backed up automatically before any changes are made."> -<!ENTITY zotero.upgrade.upgradeInProgress "Please wait for the upgrade process to finish. This may take a few minutes."> -<!ENTITY zotero.upgrade.upgradeSucceeded "Your Zotero database has been successfully upgraded."> -<!ENTITY zotero.upgrade.changeLogBeforeLink "Please see"> -<!ENTITY zotero.upgrade.changeLogLink "the changelog"> -<!ENTITY zotero.upgrade.changeLogAfterLink "to find out what's new."> +<!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."> +<!ENTITY zotero.upgrade.autoBackup "Det lages en sikkerhetskopi av den eksisterende databasen før den oppgraderes."> +<!ENTITY zotero.upgrade.upgradeInProgress "Vennligst vent mens oppgraderingen utføres. Dette kan ta noen minutter."> +<!ENTITY zotero.upgrade.upgradeSucceeded "Oppgraderingen av Zotero-databasen din var vellykket."> +<!ENTITY zotero.upgrade.changeLogBeforeLink "Vennligst se"> +<!ENTITY zotero.upgrade.changeLogLink "endringslogg"> +<!ENTITY zotero.upgrade.changeLogAfterLink "for å finne ut hva som er nytt."> <!ENTITY zotero.contextMenu.addTextToCurrentNote "Legg valgt til Zotero Note"> <!ENTITY zotero.contextMenu.addTextToNewNote "Lag Zotero Note fra valgte"> @@ -35,10 +35,10 @@ <!ENTITY zotero.items.type_column "Type"> <!ENTITY zotero.items.title_column "Tittel"> <!ENTITY zotero.items.creator_column "Skaper"> -<!ENTITY zotero.items.date_column "Date"> -<!ENTITY zotero.items.year_column "Year"> -<!ENTITY zotero.items.publisher_column "Publisher"> -<!ENTITY zotero.items.language_column "Language"> +<!ENTITY zotero.items.date_column "Dato"> +<!ENTITY zotero.items.year_column "År"> +<!ENTITY zotero.items.publisher_column "Utgiver"> +<!ENTITY zotero.items.language_column "Språk"> <!ENTITY zotero.items.callNumber_column "Call Number"> <!ENTITY zotero.items.repository_column "Repository"> <!ENTITY zotero.items.rights_column "Rettigheter"> @@ -50,7 +50,7 @@ <!ENTITY zotero.items.menu.attach.note "Legg til notat"> <!ENTITY zotero.items.menu.attach.snapshot "Legg til snapshot av gjeldende side"> <!ENTITY zotero.items.menu.attach.link "Legg til lenke til gjeldende side"> -<!ENTITY zotero.items.menu.duplicateItem "Duplicate Selected Item"> +<!ENTITY zotero.items.menu.duplicateItem "Dupliser det valgte elementet"> <!ENTITY zotero.collections.name_column "Samlinger"> @@ -65,11 +65,11 @@ <!ENTITY zotero.toolbar.actions.label "Handlinger"> <!ENTITY zotero.toolbar.import.label "Importer..."> <!ENTITY zotero.toolbar.export.label "Eksporter bibliotek..."> -<!ENTITY zotero.toolbar.timeline.label "Create Timeline"> +<!ENTITY zotero.toolbar.timeline.label "Lag tidslinje"> <!ENTITY zotero.toolbar.preferences.label "Innstillinger..."> -<!ENTITY zotero.toolbar.documentation.label "Documentation"> +<!ENTITY zotero.toolbar.documentation.label "Dokumentasjon"> <!ENTITY zotero.toolbar.about.label "Om Zotero"> -<!ENTITY zotero.toolbar.advancedSearch "Advanced Search"> +<!ENTITY zotero.toolbar.advancedSearch "Avansert søk"> <!ENTITY zotero.toolbar.search.label "Søk:"> <!ENTITY zotero.toolbar.fullscreen.tooltip "Velg fullskjermmodus"> <!ENTITY zotero.toolbar.openURL.label "Lokaliser"> diff --git a/chrome/locale/nb-NO/zotero/zotero.properties b/chrome/locale/nb-NO/zotero/zotero.properties @@ -1,64 +1,64 @@ -extensions.zotero@chnm.gmu.edu.description=The Next-Generation Research Tool +extensions.zotero@chnm.gmu.edu.description=Et neste-generasjons forskningsverktøy general.error=Feil general.warning=Advarsel -general.dontShowWarningAgain=Ikke vis denne advarselen igjen -general.browserIsOffline=%S er for øyeblikket i offline-modus +general.dontShowWarningAgain=Ikke vis denne advarselen igjen. +general.browserIsOffline=%S er for øyeblikket i frakoblet modus. general.locate=Lokaliser... general.restartRequired=Omstart er nødvendig -general.restartRequiredForChange=Firefox må startes om igjen før endringen virker -general.restartRequiredForChanges=Firefox må startes om igjen før endringene virker +general.restartRequiredForChange=Firefox må startes om igjen før endringen trer i kraft. +general.restartRequiredForChanges=Firefox må startes om igjen før endringene trer i kraft. general.restartNow=Start på nytt nå general.restartLater=Start på nytt senere -general.errorHasOccurred=En feil oppsto -general.restartFirefox=Please restart Firefox. -general.restartFirefoxAndTryAgain=Please restart Firefox and try again. -general.checkForUpdate=Check for update -general.install=Install -general.updateAvailable=Update Available -general.upgrade=Upgrade -general.yes=Yes -general.no=No -general.passed=Passed -general.failed=Failed -general.and=and - -install.quickStartGuide=Quick Start Guide -install.quickStartGuide.message.welcome=Welcome to Zotero! -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. - -upgrade.failed=Upgrading of the Zotero database failed: -upgrade.advanceMessage=Press %S to upgrade now. - -errorReport.reportErrors=Report Errors... -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. -errorReport.stepsToReproduce=Steps to Reproduce: -errorReport.expectedResult=Expected result: -errorReport.actualResult=Actual result: - -dataDir.notFound=The Zotero data directory could not be found. -dataDir.previousDir=Previous directory: -dataDir.useProfileDir=Use Firefox profile directory -dataDir.selectDir=Select a Zotero data directory -dataDir.selectedDirNonEmpty.title=Directory Not Empty -dataDir.selectedDirNonEmpty.text=The directory you selected is not empty and does not appear to be a Zotero data directory.\n\nCreate Zotero files in this directory anyway? - -startupError=There was an error starting Zotero. +general.errorHasOccurred=En feil oppstod. +general.restartFirefox=Vennligst start Firefox på nytt. +general.restartFirefoxAndTryAgain=Vennligst start Firefox på nytt og prøv igjen. +general.checkForUpdate=Se etter oppdatering +general.install=Installer +general.updateAvailable=Oppdatering tilgjengelig +general.upgrade=Oppgrader +general.yes=Ja +general.no=Nei +general.passed=Lyktes +general.failed=Feilet +general.and=og + +install.quickStartGuide=Rask innføring +install.quickStartGuide.message.welcome=Velkommen til Zotero +install.quickStartGuide.message.clickViewPage=Klikk "Vis side"-knappen over for å finne Hurtigstartguiden og lær hvordan du kan samle inn, håndtere og sitere forskningen din. +install.quickStartGuide.message.thanks=Takk for at du installerte Zotero. + +upgrade.failed=Oppgradering av Zotero-databasen mislyktes: +upgrade.advanceMessage=Velg %S for å oppgradere nå. + +errorReport.reportErrors=Rapporter feil... +errorReport.reportInstructions=Du kan rapportere denne feilen ved å velge "%S" fra Handling-menyen (tannhjulet). +errorReport.followingErrors=De følgende feilene har oppstått: +errorReport.advanceMessage=Velg %S for å sende en feilrapport til Zotero-utviklerne. +errorReport.stepsToReproduce=Trinn for å reprodusere feilen: +errorReport.expectedResult=Forventet resultat: +errorReport.actualResult=Faktisk resultat: + +dataDir.notFound=Zoteros datamappe ble ikke funnet. +dataDir.previousDir=Forrige mappe: +dataDir.useProfileDir=Bruk profilmappen til Firefox +dataDir.selectDir=Velg en datamappe +dataDir.selectedDirNonEmpty.title=Mappen er ikke tom +dataDir.selectedDirNonEmpty.text=Mappen du valgte er ikke tom og ser ikke ut til å være en Zotero-datamappe.\n\nSkal Zotero likevel opprette datafiler i denne mappen? + +startupError=Det oppstod en feil ved oppstarten av Zotero. pane.collections.delete=Er du sikker på at du vil slette den valgte samlingen? pane.collections.deleteSearch=Er du sikker på at du vil slette det valgte søket? -pane.collections.newCollection=New Collection -pane.collections.name=Samlingsnavn: -pane.collections.newSavedSeach=New Saved Search -pane.collections.savedSearchName=Enter a name for this saved search: -pane.collections.rename=Gi samling nytt navn: +pane.collections.newCollection=Ny samling +pane.collections.name=Oppgi et navn på denne samlingen: +pane.collections.newSavedSeach=Nytt lagret søk +pane.collections.savedSearchName=Oppgi navn på dette lagrede søket: +pane.collections.rename=Gi samlingen nytt navn: pane.collections.library=Mitt bibliotek pane.collections.untitled=Uten tittel -pane.collections.menu.rename.collection=Gi nytt navn til samlingen... +pane.collections.menu.rename.collection=Gi samlingen nytt navn... pane.collections.menu.edit.savedSearch=Rediger lagret søk pane.collections.menu.remove.collection=Fjern samling... pane.collections.menu.remove.savedSearch=Fjern lagret søk... @@ -70,15 +70,15 @@ pane.collections.menu.createBib.savedSearch=Opprett bibliografi fra lagret søk. pane.collections.menu.generateReport.collection=Generer rapport fra samling... pane.collections.menu.generateReport.savedSearch=Generer rapport fra lagret søk... -pane.tagSelector.rename.title=Vennligst skriv inn et nytt navn for denne taggen. -pane.tagSelector.rename.message=Denne taggen vil endres i alle tilknyttede elementer. -pane.tagSelector.delete.title=Er du sikker på at du vil slette denne taggen? -pane.tagSelector.delete.message=Denne taggen til fjernes fra alle tilknyttede elementer. +pane.tagSelector.rename.title=Gi taggen nytt navn +pane.tagSelector.rename.message=Vennligst skriv inn et nytt navn for denne taggen.\n\nTaggen blir endret i alle tilknyttede elementer. +pane.tagSelector.delete.title=Slett tagg +pane.tagSelector.delete.message=Er du sikker på at du vil slette denne taggen?\n\nTaggen blir fjernet fra alle elementer. pane.tagSelector.numSelected.none=0 tagger valgt pane.tagSelector.numSelected.singular=%S tagg valgt -pane.tagSelector.numSelected.plural=%S tagger vvalgt +pane.tagSelector.numSelected.plural=%S tagger valgt -pane.items.loading=Loading items list... +pane.items.loading=Laster elementliste... pane.items.delete=Er du sikker på at du vil slette det valgte elementet? pane.items.delete.multiple=Er du sikker på at du vil slette de valgte elementene? pane.items.delete.title=Slett @@ -89,73 +89,73 @@ pane.items.menu.erase=Slett valgt element fra bibliotek... pane.items.menu.erase.multiple=Slett valgte elementer fra bibliotek... pane.items.menu.export=Eksporter valgt element... pane.items.menu.export.multiple=Eksporter valgte elementer... -pane.items.menu.createBib=Skap bibliografi fra valgt element... -pane.items.menu.createBib.multiple=Skap bibliografi fra valgte elementer... +pane.items.menu.createBib=Lag bibliografi fra valgt element... +pane.items.menu.createBib.multiple=Lag bibliografi fra valgte elementer... pane.items.menu.generateReport=Generer rapport fra valgt element... pane.items.menu.generateReport.multiple=Generer rapport fra valgte elementer... -pane.items.menu.reindexItem=Reindex Item -pane.items.menu.reindexItem.multiple=Reindex Items - -pane.items.letter.oneParticipant=Letter to %S -pane.items.letter.twoParticipants=Letter to %S and %S -pane.items.letter.threeParticipants=Letter to %S, %S, and %S -pane.items.letter.manyParticipants=Letter to %S et al. -pane.items.interview.oneParticipant=Interview by %S -pane.items.interview.twoParticipants=Interview by %S and %S -pane.items.interview.threeParticipants=Interview by %S, %S, and %S -pane.items.interview.manyParticipants=Interview by %S et al. +pane.items.menu.reindexItem=Registrer elementet på nytt +pane.items.menu.reindexItem.multiple=Registrer elementene på nytt + +pane.items.letter.oneParticipant=Brev til %S +pane.items.letter.twoParticipants=Brev til %S og %S +pane.items.letter.threeParticipants=Brev til %S, %S og %S +pane.items.letter.manyParticipants=Brev til %S mfl. +pane.items.interview.oneParticipant=Intervju av %S +pane.items.interview.twoParticipants=Intervju av %S og %S +pane.items.interview.threeParticipants=Intervju av %S, %S og %S +pane.items.interview.manyParticipants=Intervju av %S mfl. pane.item.selected.zero=Ingen elementer er valgt pane.item.selected.multiple=%S elementer er valgt -pane.item.goToURL.online.label=View -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 -pane.item.changeType.title=Change Item Type -pane.item.changeType.text=Are you sure you want to change the item type?\n\nThe following fields will be lost: +pane.item.goToURL.online.label=Vis +pane.item.goToURL.online.tooltip=Gå til dette elementet på Internett +pane.item.goToURL.snapshot.label=Vis øyeblikksbilde +pane.item.goToURL.snapshot.tooltip=Vis øyeblikksbilde for denne enheten +pane.item.changeType.title=Endre elementtype +pane.item.changeType.text=Vil du virkelig forandre elementtypen?\n\nDe følgende feltene vil bli slettet: pane.item.defaultFirstName=først pane.item.defaultLastName=sist pane.item.defaultFullName=fullt navn -pane.item.switchFieldMode.one=Switch to single field -pane.item.switchFieldMode.two=Switch to two fields +pane.item.switchFieldMode.one=Bytt til ett felt +pane.item.switchFieldMode.two=Bytt til to felt pane.item.notes.untitled=Notat uten tittel pane.item.notes.delete.confirm=Er du sikker på at du vil slette dette notatet? -pane.item.notes.count.zero=%S notes: -pane.item.notes.count.singular=%S notat -pane.item.notes.count.plural=%S notater +pane.item.notes.count.zero=%S notater: +pane.item.notes.count.singular=%S notat: +pane.item.notes.count.plural=%S notater: pane.item.attachments.rename.title=Ny tittel: pane.item.attachments.rename.renameAssociatedFile=Gi nytt navn til tilknyttet fil pane.item.attachments.rename.error=En feil oppsto mens filnavnet ble endret. pane.item.attachments.view.link=Vis side pane.item.attachments.view.snapshot=Vis snapshot pane.item.attachments.view.file=Vis fil -pane.item.attachments.fileNotFound.title=File Not Found -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.fileNotFound.title=Fant ikke filen +pane.item.attachments.fileNotFound.text=Den tilknyttede filen ble ikke funnet.\n\nDen kan være flyttet eller slettet fra utsiden av Zotero. pane.item.attachments.delete.confirm=Er du sikker på at du vil slette dette vedlegget? pane.item.attachments.count.zero=%S vedlegg: -pane.item.attachments.count.singular=%S vedlegg -pane.item.attachments.count.plural=%S vedlegg +pane.item.attachments.count.singular=%S vedlegg: +pane.item.attachments.count.plural=%S vedlegg: pane.item.attachments.select=Velg en fil -pane.item.noteEditor.clickHere=click here -pane.item.tags=Tags: +pane.item.noteEditor.clickHere=Klikk her +pane.item.tags=Tagger: pane.item.tags.count.zero=%S tagger: pane.item.tags.count.singular=%S tag pane.item.tags.count.plural=%S tagger -pane.item.tags.icon.user=User-added tag -pane.item.tags.icon.automatic=Automatically added tag -pane.item.related=Related: +pane.item.tags.icon.user=Brukerdefinert tagg: +pane.item.tags.icon.automatic=Automatisk tagg: +pane.item.related=Relatert: pane.item.related.count.zero=%S relaterte: pane.item.related.count.singular=%S relatert: pane.item.related.count.plural=%S relaterte: -noteEditor.editNote=Edit Note +noteEditor.editNote=Rediger notat itemTypes.note=Notat itemTypes.attachment=Vedlegg itemTypes.book=Bok itemTypes.bookSection=Bokseksjon -itemTypes.journalArticle=Tidsskriftartikkel +itemTypes.journalArticle=Tidsskriftsartikkel itemTypes.magazineArticle=Magasinartikkel itemTypes.newspaperArticle=Avisartikkel itemTypes.thesis=Avhandling @@ -185,8 +185,8 @@ itemTypes.podcast=Podcast itemTypes.computerProgram=Dataprogram itemTypes.conferencePaper=Konferanseinnlegg itemTypes.document=Dokument -itemTypes.encyclopediaArticle=Encyclopedia Article -itemTypes.dictionaryEntry=Dictionary Entry +itemTypes.encyclopediaArticle=Artikkel i oppslagsverk +itemTypes.dictionaryEntry=Ordboksoppslag itemFields.itemType=Type itemFields.title=Tittel @@ -194,7 +194,7 @@ itemFields.dateAdded=Dato lagt til itemFields.dateModified=Modifisert itemFields.source=Kilde itemFields.notes=Notater -itemFields.tags=Tags +itemFields.tags=Tagger itemFields.attachments=Vedlegg itemFields.related=Relaterte itemFields.url=URL @@ -211,11 +211,11 @@ itemFields.publicationTitle=Publikasjon itemFields.ISSN=ISSN itemFields.date=Dato itemFields.section=Seksjon -itemFields.callNumber=Plassignatur +itemFields.callNumber=Plass-signatur itemFields.archiveLocation=Lokalisering i arkiv itemFields.distributor=Distributør itemFields.extra=Ekstra -itemFields.journalAbbreviation=Tidsskriftforkortelse +itemFields.journalAbbreviation=Tidsskriftsforkortelse itemFields.DOI=DOI itemFields.accessDate=Aksessert itemFields.seriesTitle=Serietittel @@ -230,7 +230,7 @@ itemFields.history=Historie itemFields.reporter=Reporter itemFields.court=Rett itemFields.numberOfVolumes=# av volumer -itemFields.committee=Komite +itemFields.committee=Komité itemFields.assignee=Fullmektig itemFields.patentNumber=Patentnummer itemFields.priorityNumbers=Prioritetsnummer @@ -238,9 +238,9 @@ itemFields.issueDate=Kjennelsesdato itemFields.references=Referanser itemFields.legalStatus=Legal status itemFields.codeNumber=Kode nummer -itemFields.artworkMedium=Kunstverk medium +itemFields.artworkMedium=Kunstverk-medium itemFields.number=Nummer -itemFields.artworkSize=Kunstverk størrelse +itemFields.artworkSize=Kunstverk-størrelse itemFields.repository=Oppbevaringssted itemFields.videoRecordingType=Opptakstype itemFields.interviewMedium=Medium @@ -263,34 +263,34 @@ itemFields.version=Versjon itemFields.system=System itemFields.company=Selskap itemFields.conferenceName=Konferansens navn -itemFields.encyclopediaTitle=Encyclopedia Title -itemFields.dictionaryTitle=Dictionary Title -itemFields.language=Language -itemFields.programmingLanguage=Language -itemFields.university=University -itemFields.abstractNote=Abstract -itemFields.websiteTitle=Website Title -itemFields.reportNumber=Report Number -itemFields.billNumber=Bill Number -itemFields.codeVolume=Code Volume -itemFields.codePages=Code Pages -itemFields.dateDecided=Date Decided -itemFields.reporterVolume=Reporter Volume -itemFields.firstPage=First Page -itemFields.documentNumber=Document Number -itemFields.dateEnacted=Date Enacted -itemFields.publicLawNumber=Public Law Number -itemFields.country=Country -itemFields.applicationNumber=Application Number -itemFields.forumTitle=Forum/Listserv Title -itemFields.episodeNumber=Episode Number -itemFields.blogTitle=Blog Title +itemFields.encyclopediaTitle=Oppslagverkets tittel +itemFields.dictionaryTitle=Ordbokens tittel +itemFields.language=Språk +itemFields.programmingLanguage=Språk +itemFields.university=Universitet +itemFields.abstractNote=Sammendrag +itemFields.websiteTitle=Nettsidens tittel +itemFields.reportNumber=Rapportnummer +itemFields.billNumber=Lov nummer +itemFields.codeVolume=Kode volum +itemFields.codePages=Kode sider +itemFields.dateDecided=Dato avgjort +itemFields.reporterVolume=Reporter volum +itemFields.firstPage=Første side +itemFields.documentNumber=Dokumentnummer +itemFields.dateEnacted=Dato innført +itemFields.publicLawNumber=Offentlig lov nummer +itemFields.country=Land +itemFields.applicationNumber=Program nummer +itemFields.forumTitle=Forum/listservtittel +itemFields.episodeNumber=Episode nummer +itemFields.blogTitle=Bloggtittel itemFields.caseName=Case Name -itemFields.nameOfAct=Name of Act -itemFields.subject=Subject +itemFields.nameOfAct=Navn på loven +itemFields.subject=Emne itemFields.proceedingsTitle=Proceedings Title -itemFields.bookTitle=Book Title -itemFields.shortTitle=Short Title +itemFields.bookTitle=Boktittel +itemFields.shortTitle=Kort tittel creatorTypes.author=Forfatter creatorTypes.contributor=Medforfatter @@ -320,33 +320,33 @@ creatorTypes.presenter=Presenterer creatorTypes.guest=Gjest creatorTypes.podcaster=Podcaster -fileTypes.webpage=Web Page -fileTypes.image=Image +fileTypes.webpage=Nettside +fileTypes.image=Bilde fileTypes.pdf=PDF -fileTypes.audio=Audio +fileTypes.audio=Lyd fileTypes.video=Video -fileTypes.presentation=Presentation -fileTypes.document=Document +fileTypes.presentation=Presentasjon +fileTypes.document=Dokument -save.attachment=Saving Snapshot... -save.link=Saving Link... +save.attachment=Lagrer øyeblikksbilde +save.link=Lagrer lenke... -ingester.saveToZotero=Save to Zotero +ingester.saveToZotero=Lagre i Zotero ingester.scraping=Lagrer element... ingester.scrapeComplete=Element lagret. ingester.scrapeError=Kunne ikke lagre element. -ingester.scrapeErrorDescription=En feil oppsto mens dette elementet ble forsøkt lagret. Vennligst prøv igjen. Vennligst kontakt forfatteren av oversetteren dersom denne feilen vedvarer. -ingester.scrapeErrorDescription.linkText=Known Translator Issues -ingester.scrapeError.transactionInProgress.previousError=The saving process failed due to a previous Zotero error. +ingester.scrapeErrorDescription=En feil oppsto mens dette elementet ble forsøkt lagret. Se %S for mer informasjon. +ingester.scrapeErrorDescription.linkText=Kjente feil med oversetteren +ingester.scrapeError.transactionInProgress.previousError=Lagring mislyktes på grunn av en foregående feil. -db.dbCorrupted=The Zotero database '%S' appears to have become corrupted. -db.dbCorrupted.restart=Please restart Firefox to attempt an automatic restore from the last backup. -db.dbCorruptedNoBackup=Zotero-databasen synes å ha blitt korrupt, og ingen automatisk backup er tilgjengelig.\n\nEn ny database har blitt skapt. Den skadde filen ble lagret i Zotero-mappen. -db.dbRestored=Zotero-databasen synes å ha blitt korrupt.\n\nDataene dine ble gjenopprettet fra den siste automatiske backupfilen, skapt %1$S den %2$S. Den skadde filen ble lagret i Zotero-mappen. -db.dbRestoreFailed=Zotero-databasen synes å ha blitt korrupt, og et forsøk på å gjenopprette fra sist backup feilet.\n\nEn ny database har blitt skapt. Den skadde filen ble lagret i Zotero-mappen. +db.dbCorrupted=Zotero-databasen '%S' ser ut til å være skadet. +db.dbCorrupted.restart=Start Firefox på nytt for å forsøke en automatisk gjenoppretting fra den siste sikkerhetskopien. +db.dbCorruptedNoBackup=Zotero-databasen '%S' ser ut til å være skadet, og ingen automatisk sikkerhetskopi er tilgjengelig.\n\nEn ny database er generert. Den skadede filen ble lagret i Zotero-mappen din. +db.dbRestored=Zotero-databasen '%1$S' ser ut til å være skadet.\n\nDataene dine ble gjenopprettet fra den siste automatiske sikkerhetskopien, generert %3$S, den %2$S. Den skadede filen ble lagret i Zotero-mappen din. +db.dbRestoreFailed=Zotero-databasen '%S' ser ut til å være skadet, og et forsøk på å gjenopprette fra siste sikkerhetskopi mislyktes.\n\nEn ny database har blitt generert. Den skadede filen ble lagret i Zotero-mappen. -db.integrityCheck.passed=No errors were found in the database. -db.integrityCheck.failed=Errors were found in the Zotero database! +db.integrityCheck.passed=Ingen feil ble funnet i databasen. +db.integrityCheck.failed=Det er oppdaget feil i Zotero-databasen! zotero.preferences.update.updated=Oppdatert zotero.preferences.update.upToDate=Oppdatert @@ -354,30 +354,30 @@ zotero.preferences.update.error=Feil zotero.preferences.openurl.resolversFound.zero=%S resolvers funnet zotero.preferences.openurl.resolversFound.singular=%S resolver funnet zotero.preferences.openurl.resolversFound.plural=%S resolvers funnet -zotero.preferences.search.rebuildIndex=Rebuild Index -zotero.preferences.search.rebuildWarning=Do you want to rebuild the entire index? This may take a while.\n\nTo index only items that haven't been indexed, use %S. +zotero.preferences.search.rebuildIndex=Generer register på nytt +zotero.preferences.search.rebuildWarning=Vil du generere registeret på nytt? Dette kan ta en stund.\n\nHvis du bare vil registrere elementer som ikke allerede er registrert, bruk %S. zotero.preferences.search.clearIndex=Clear Index zotero.preferences.search.clearWarning=After clearing the index, attachment content will no longer be searchable.\n\nWeb link attachments cannot be reindexed without revisiting the page. To leave web links indexed, choose %S. zotero.preferences.search.clearNonLinkedURLs=Clear All Except Web Links zotero.preferences.search.indexUnindexed=Index Unindexed Items -zotero.preferences.search.pdf.toolRegistered=%S is installed -zotero.preferences.search.pdf.toolNotRegistered=%S is NOT installed -zotero.preferences.search.pdf.toolsRequired=PDF indexing requires the %1$S and %2$S utilities from the %3$S project. -zotero.preferences.search.pdf.automaticInstall=Zotero can automatically download and install these applications from zotero.org for certain platforms. -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.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.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. -zotero.preferences.search.pdf.tryAgainOrViewManualInstructions=Please try again later, or view the documentation for manual installation instructions. -zotero.preferences.export.quickCopy.bibStyles=Bibliographic Styles +zotero.preferences.search.pdf.toolRegistered=%S er installert +zotero.preferences.search.pdf.toolNotRegistered=%S er IKKE installert +zotero.preferences.search.pdf.toolsRequired=PDF-registrering krever verktøyene %1$S og %2$S fra %3$S-prosjektet. +zotero.preferences.search.pdf.automaticInstall=Zotero kan laste ned og installere disse vertøyene fra zotero.org for enkelte plattformer. +zotero.preferences.search.pdf.advancedUsers=Avanserte brukere, som ønsker å utføre manuell installasjon, kan se %S. +zotero.preferences.search.pdf.documentationLink=dokumentasjon +zotero.preferences.search.pdf.checkForInstaller=Se etter installasjonsverktøy +zotero.preferences.search.pdf.downloading=Laster ned... +zotero.preferences.search.pdf.toolDownloadsNotAvailable=Verktøyene %S er for tiden ikke tilgjengelige fra zotero.org til din plattform. +zotero.preferences.search.pdf.viewManualInstructions=Se instruksjoner om manuell installasjon i dokumentasjonen. +zotero.preferences.search.pdf.availableDownloads=Tilgjengelige nedlastninger for %1$S fra %2$S: +zotero.preferences.search.pdf.availableUpdates=Tilgjengelige oppdateringer for %1$S fra %2$S: +zotero.preferences.search.pdf.toolVersionPlatform=%1$S, versjon %2$S +zotero.preferences.search.pdf.zoteroCanInstallVersion=Zotero kan automatisk installere den i Zoteros datamappe. +zotero.preferences.search.pdf.zoteroCanInstallVersions=Zotero kan automatisk installere disse verktøyene i Zoteros datamappe. +zotero.preferences.search.pdf.toolsDownloadError=Det oppstod en feil da Zotero forsøkte å laste ned verktøyene %S fra zotero.org. +zotero.preferences.search.pdf.tryAgainOrViewManualInstructions=Prøv igjen senere eller se dokumentasjonen for å installere manuelt. +zotero.preferences.export.quickCopy.bibStyles=Bibliografistiler zotero.preferences.export.quickCopy.exportFormats=Export Formats zotero.preferences.export.quickCopy.instructions=Quick Copy allows you to copy selected references to the clipboard by pressing a shortcut key (%S) or dragging items into a text box on a web page. @@ -388,8 +388,8 @@ zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified tra zotero.preferences.advanced.resetStyles=Reset Styles zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. -dragAndDrop.existingFiles=The following files already existed in the destination directory and were not copied: -dragAndDrop.filesNotFound=The following files were not found and could not be copied: +dragAndDrop.existingFiles=De følgende filene fantes allerede i målmappen og ble ikke kopiert: +dragAndDrop.filesNotFound=De følgende filene ble ikke funnet og kunne ikke kopieres: fileInterface.itemsImported=Importerer elementer... fileInterface.itemsExported=Eksporterer elementer... @@ -397,7 +397,7 @@ fileInterface.import=Importer fileInterface.export=Eksporter fileInterface.exportedItems=Eksporterte elementer fileInterface.imported=Importert -fileInterface.fileFormatUnsupported=Ingen oversetter kunne finnes for den gjeldende filen. +fileInterface.fileFormatUnsupported=Ingen oversetter ble funnet for den gjeldende filen. fileInterface.untitledBibliography=Bibliografi uten tittel fileInterface.bibliographyHTMLTitle=Bibliografi fileInterface.importError=En feil oppsto under importeringen av den valgte filen. Vennligst forsikre deg om at filen er gyldig før du prøver igjen. @@ -406,11 +406,11 @@ fileInterface.bibliographyGenerationError=En feil oppsto under genereringen av b fileInterface.exportError=En feil oppsto under eksporteringen av den valgte filen. advancedSearchMode=Avansert søkemodus â trykk Enter for å søke. -searchInProgress=Søk underveis â trykk vent. +searchInProgress=Søk underveis â vennligst vent. searchOperator.is=er searchOperator.isNot=er ikke -searchOperator.beginsWith=begins with +searchOperator.beginsWith=begynner med searchOperator.contains=inneholder searchOperator.doesNotContain=inneholder ikke searchOperator.isLessThan=er mindre enn @@ -419,10 +419,10 @@ searchOperator.isBefore=er før searchOperator.isAfter=er etter searchOperator.isInTheLast=er i den siste -searchConditions.tooltip.fields=Fields: +searchConditions.tooltip.fields=Felter: searchConditions.collectionID=Samling searchConditions.itemTypeID=Elementtype -searchConditions.tag=Tag +searchConditions.tag=Tagg searchConditions.note=Notat searchConditions.childNote=Child Note searchConditions.creator=Skaper @@ -430,7 +430,7 @@ searchConditions.type=Type searchConditions.thesisType=Avhandlingstype searchConditions.reportType=Rapporttype searchConditions.videoRecordingType=Videoopptakstype -searchConditions.audioFileType=Audio File Type +searchConditions.audioFileType=Lydfil-type searchConditions.audioRecordingType=Lydopptakstype searchConditions.letterType=Brevtype searchConditions.interviewMedium=Intervjumedium @@ -438,16 +438,16 @@ searchConditions.manuscriptType=Manuskripttype searchConditions.presentationType=Presentasjonstype searchConditions.mapType=Karttype searchConditions.medium=Medium -searchConditions.artworkMedium=Artwork Medium +searchConditions.artworkMedium=Kunstmedium searchConditions.dateModified=Sist endret searchConditions.fulltextContent=Vedleggsinnhold -searchConditions.programmingLanguage=Programming Language -searchConditions.fileTypeID=Attachment File Type -searchConditions.annotation=Annotation +searchConditions.programmingLanguage=Programmeringsspråk +searchConditions.fileTypeID=Vedleggets filtype +searchConditions.annotation=Kommentar -fulltext.indexState.indexed=Indexed -fulltext.indexState.unavailable=Unknown -fulltext.indexState.partial=Partial +fulltext.indexState.indexed=Registrert +fulltext.indexState.unavailable=Ukjent +fulltext.indexState.partial=Delvis exportOptions.exportNotes=Eksporter notater exportOptions.exportFileData=Eksporter filer @@ -460,34 +460,34 @@ date.abbreviation.day=d citation.multipleSources=Flere kilder... citation.singleSource=Enkeltkilde... -citation.showEditor=Show Editor... -citation.hideEditor=Hide Editor... +citation.showEditor=Vis behandler... +citation.hideEditor=Skjul behandler... report.title.default=Zotero-rapport report.parentItem=Parent Item: -report.notes=Notes: -report.tags=Tags: - -annotations.confirmClose.title=Are you sure you want to close this annotation? -annotations.confirmClose.body=All text will be lost. -annotations.close.tooltip=Delete Annotation -annotations.move.tooltip=Move Annotation -annotations.collapse.tooltip=Collapse Annotation -annotations.expand.tooltip=Expand Annotation +report.notes=Notater: +report.tags=Tagger: + +annotations.confirmClose.title=Er du sikker på at du vil lukke denne kommentaren? +annotations.confirmClose.body=All tekst blir borte. +annotations.close.tooltip=Slett kommentar +annotations.move.tooltip=Flytt kommentar +annotations.collapse.tooltip=Skjul kommentar +annotations.expand.tooltip=Vis kommentar annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. -integration.fields.label=Fields -integration.referenceMarks.label=ReferenceMarks -integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. -integration.referenceMarks.caption=OpenOffice.org ReferenceMarks are less likely to be accidentally modified, but cannot be shared with Microsoft Word. +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=Felter +integration.referenceMarks.label=Referansefelter +integration.fields.caption=Microsoft Words felter er i mindre grad utsatt for utilsiktede endringer, men kan ikke deles med OpenOffice.org. +integration.referenceMarks.caption=Referansefeltene i OpenOffice.org er i mindre grad utsatt for utilsiktede endringer, men kan ikke deles med Microsoft Word. -integration.regenerate.title=Do you want to regenerate the citation? -integration.regenerate.body=The changes you have made in the citation editor will be lost. -integration.regenerate.saveBehavior=Always follow this selection. +integration.regenerate.title=Ønsker du å lage henvisningen på nytt? +integration.regenerate.body=Du mister de forandringene som er gjort i referanse-behandleren. +integration.regenerate.saveBehavior=Alltid bruk dette utvalget. -integration.deleteCitedItem.title=Are you sure you want to remove this reference? -integration.deleteCitedItem.body=This reference is cited in the text of your document. Deleting it will remove all citations. +integration.deleteCitedItem.title=Vil du virkelig fjerne denne referansen? +integration.deleteCitedItem.body=Det er henvisninger til denne referansen i dokumentet ditt. Hvis du fjerner den, blir alle henvisningene slettet. styles.installStyle=Install style "%1$S" from %2$S? styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? diff --git a/chrome/locale/nl-NL/zotero/about.dtd b/chrome/locale/nl-NL/zotero/about.dtd @@ -4,7 +4,7 @@ <!ENTITY zotero.developers "Ontwikkelaars:"> <!ENTITY zotero.alumni "Alumni:"> <!ENTITY zotero.about.localizations "Vertalingen:"> -<!ENTITY zotero.about.additionalSoftware "Programmatuur van Derden en Standaarden:"> -<!ENTITY zotero.executiveProducer "Uitvoerend Producent:"> +<!ENTITY zotero.about.additionalSoftware "Programmatuur van derden en standaarden:"> +<!ENTITY zotero.executiveProducer "Uitvoerend producent:"> <!ENTITY zotero.thanks "Met speciale dank aan:"> <!ENTITY zotero.about.close "Sluiten"> diff --git a/chrome/locale/nl-NL/zotero/preferences.dtd b/chrome/locale/nl-NL/zotero/preferences.dtd @@ -1,4 +1,4 @@ -<!ENTITY zotero.preferences.title "Zotero Voorkeuren"> +<!ENTITY zotero.preferences.title "Zotero voorkeuren"> <!ENTITY zotero.preferences.default "Standaard:"> @@ -33,7 +33,7 @@ <!ENTITY zotero.preferences.openurl.version "Versie:"> <!ENTITY zotero.preferences.prefpane.search "Zoeken"> -<!ENTITY zotero.preferences.search.fulltextCache "Volledige-tekst Cache"> +<!ENTITY zotero.preferences.search.fulltextCache "Volledige-tekst cache"> <!ENTITY zotero.preferences.search.pdfIndexing "PDF-indexering"> <!ENTITY zotero.preferences.search.indexStats "Indexstatistieken"> @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "Exporteren"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> +<!ENTITY zotero.preferences.citationOptions.caption "Citatie opties"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Voeg URLs van atikelen toe aan referenties"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Als deze optie uitgeschakeld wordt zal Zotero de URLs van geciteerde tijdschrift-, magazine en kranteartilels enkel citeren indien van het artikel geen paginering gespecifieerd werd."> -<!ENTITY zotero.preferences.quickCopy.caption "Snelle Kopie"> -<!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Standaard Uitvoerformaat:"> +<!ENTITY zotero.preferences.quickCopy.caption "Snelle kopie"> +<!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Standaard uitvoerformaat:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Let op: onder Mac OS X gaat hierbij de tekstopmaak verloren."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Webpagina-specifieke instellingen:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domein/Pad"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(b.v. wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Uitvoerformaat"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "Bijkomende stijlen ophalen..."> <!ENTITY zotero.preferences.prefpane.keys "Sneltoetsen"> @@ -70,8 +71,8 @@ <!ENTITY zotero.preferences.keys.newItem "Nieuw object aanmaken"> <!ENTITY zotero.preferences.keys.newNote "Nieuwe aantekening aanmaken"> <!ENTITY zotero.preferences.keys.toggleTagSelector "Label-kiezer Weergeven"> -<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Citaties van Geselecteerde Objecten naar Klembord Kopiëren"> -<!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Geselecteerde Objecten naar Klembord Kopiëren"> +<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Verwijzingen van geselecteerde objecten naar klembord kopiëren"> +<!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Geselecteerde objecten naar klembord kopiëren"> <!ENTITY zotero.preferences.keys.overrideGlobal "Probeer voorrang te krijgen bij conflicterende sneltoetsen"> <!ENTITY zotero.preferences.keys.changesTakeEffect "Aanpassingen worden pas zichtbaar in nieuwe vensters"> @@ -82,10 +83,10 @@ <!ENTITY zotero.preferences.dataDir.useProfile "Gebruik de profielmap van Firefox"> <!ENTITY zotero.preferences.dataDir.custom "Aangepast:"> <!ENTITY zotero.preferences.dataDir.choose "Kiezen..."> -<!ENTITY zotero.preferences.dataDir.reveal "Data-map Tonen"> +<!ENTITY zotero.preferences.dataDir.reveal "Opslagmap tonen"> <!ENTITY zotero.preferences.dbMaintenance "Database Onderhoud"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Controleer Integriteit Database"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Vertalers en stijlen opnieuw instellen..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Vertalers opnieuw instellen..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Stijlen opnieuw instellen..."> diff --git a/chrome/locale/nl-NL/zotero/timeline.properties b/chrome/locale/nl-NL/zotero/timeline.properties @@ -1,13 +1,13 @@ -general.title=Zotero Tijdslijn +general.title=Zotero tijdslijn general.filter=Filter: general.highlight=Markeer: -general.clearAll=Alle Velden Wissen -general.jumpToYear=Ga naar Jaar: -general.firstBand=Bovenste Strook: -general.secondBand=Middelste Strook: -general.thirdBand=Onderste Strook: -general.dateType=Datum Type: -general.timelineHeight=Hoogte Tijdslijn: +general.clearAll=Alles wissen +general.jumpToYear=Ga naar jaar: +general.firstBand=Bovenste strook: +general.secondBand=Middelste strook: +general.thirdBand=Onderste strook: +general.dateType=Datum type: +general.timelineHeight=Hoogte tijdslijn: general.fitToScreen=Schermvullend maken interval.day=Dag @@ -17,5 +17,5 @@ interval.decade=Decennium interval.century=Eeuw interval.millennium=Millennium -dateType.published=Datum Publicatie -dateType.modified=Datum Aanpassing +dateType.published=Datum publicatie +dateType.modified=Datum aangepast diff --git a/chrome/locale/nl-NL/zotero/zotero.dtd b/chrome/locale/nl-NL/zotero/zotero.dtd @@ -2,14 +2,14 @@ <!ENTITY zotero.general.note "Let op:"> <!ENTITY zotero.errorReport.unrelatedMessages "Het foutenlogboek kan berichten bevatten die niet gerelateerd zijn aan Zotero."> -<!ENTITY zotero.errorReport.additionalInfo "Extra Informatie"> +<!ENTITY zotero.errorReport.additionalInfo "Extra informatie"> <!ENTITY zotero.errorReport.emailAddress "Uw e-mailadres:"> <!ENTITY zotero.errorReport.errorSteps "Wat deed u toen de fout optrad? Geef indien mogelijk de stappen aan waarmee de fout gereproduceerd kan worden."> <!ENTITY zotero.errorReport.submissionInProgress "Even geduld a.u.b. totdat het fout-rapport is verstuurd."> <!ENTITY zotero.errorReport.submitted "Het fout-rapport is verstuurd."> <!ENTITY zotero.errorReport.reportID "Rapport ID:"> <!ENTITY zotero.errorReport.furtherAssistance "Bekijk de "Known Issues"-webpagina en de fora voor meer assistentie."> -<!ENTITY zotero.errorReport.includeReportID "Vermeldt het rapport ID in verdere correspondentie met de Zotero-ontwikkelaars over dit onderwerp."> +<!ENTITY zotero.errorReport.includeReportID "Vermeld het rapport ID in verdere correspondentie met de Zotero-ontwikkelaars over dit onderwerp."> <!ENTITY zotero.upgrade.newVersionInstalled "U heeft een nieuwe versie van Zotero geinstalleerd."> <!ENTITY zotero.upgrade.upgradeRequired "Uw Zotero database moet bijgewerkt worden om te kunnen werken met de nieuwe versie."> @@ -20,17 +20,17 @@ <!ENTITY zotero.upgrade.changeLogLink "changelog"> <!ENTITY zotero.upgrade.changeLogAfterLink "om te zien wat er in de nieuwe versie veranderd is."> -<!ENTITY zotero.contextMenu.addTextToCurrentNote "Selectie aan Zotero Aantekening Toevoegen"> -<!ENTITY zotero.contextMenu.addTextToNewNote "Zotero Object en Aantekening Maken van Selectie"> -<!ENTITY zotero.contextMenu.saveLinkAsSnapshot "Koppeling Opslaan als Zotero Snapshot"> -<!ENTITY zotero.contextMenu.saveImageAsSnapshot "Afbeelding Opslaan als Zotero Snapshot"> +<!ENTITY zotero.contextMenu.addTextToCurrentNote "Selectie toevoegen aan Zotero-aantekening"> +<!ENTITY zotero.contextMenu.addTextToNewNote "Zotero-object en -aantekening maken van selectie"> +<!ENTITY zotero.contextMenu.saveLinkAsSnapshot "Koppeling opslaan als Zotero-snapshot"> +<!ENTITY zotero.contextMenu.saveImageAsSnapshot "Afbeelding opslaan als Zotero-snapshot"> <!ENTITY zotero.tabs.info.label "Info"> <!ENTITY zotero.tabs.notes.label "Aantekeningen"> -<!ENTITY zotero.tabs.attachments.label "Bijlagen"> +<!ENTITY zotero.tabs.attachments.label "Bijlages"> <!ENTITY zotero.tabs.tags.label "Labels"> <!ENTITY zotero.tabs.related.label "Gerelateerd"> -<!ENTITY zotero.notes.separate "Bewerk in een nieuw venster"> +<!ENTITY zotero.notes.separate "In een nieuw venster bewerken"> <!ENTITY zotero.items.type_column "Type"> <!ENTITY zotero.items.title_column "Titel"> @@ -42,50 +42,50 @@ <!ENTITY zotero.items.callNumber_column "Referentienummer"> <!ENTITY zotero.items.repository_column "Repositorium"> <!ENTITY zotero.items.rights_column "Rechten"> -<!ENTITY zotero.items.dateAdded_column "Datum van Toevoeging"> -<!ENTITY zotero.items.dateModified_column "Datum van Laatste Bewerking"> +<!ENTITY zotero.items.dateAdded_column "Datum toegevoegd"> +<!ENTITY zotero.items.dateModified_column "Datum bewerkt"> <!ENTITY zotero.items.numChildren_column "+"> -<!ENTITY zotero.items.menu.showInLibrary "In Bibliotheek Tonen"> -<!ENTITY zotero.items.menu.attach.note "Aantekening Toevoegen"> -<!ENTITY zotero.items.menu.attach.snapshot "Snapshot van Huidige Pagina Toevoegen"> -<!ENTITY zotero.items.menu.attach.link "Koppeling naar Huidige Pagina Toevoegen"> -<!ENTITY zotero.items.menu.duplicateItem "Kopie Maken van Geselecteerd Object"> +<!ENTITY zotero.items.menu.showInLibrary "In bibliotheek tonen"> +<!ENTITY zotero.items.menu.attach.note "Aantekening toevoegen"> +<!ENTITY zotero.items.menu.attach.snapshot "Snapshot van huidige pagina toevoegen"> +<!ENTITY zotero.items.menu.attach.link "Koppeling naar huidige pagina toevoegen"> +<!ENTITY zotero.items.menu.duplicateItem "Kopie maken van geselecteerd object"> <!ENTITY zotero.collections.name_column "Verzamelingen"> -<!ENTITY zotero.toolbar.newItem.label "Nieuw Object"> +<!ENTITY zotero.toolbar.newItem.label "Nieuw object"> <!ENTITY zotero.toolbar.moreItemTypes.label "Meer"> -<!ENTITY zotero.toolbar.newItemFromPage.label "Nieuw Object Aanmaken van Huidige Pagina"> -<!ENTITY zotero.toolbar.removeItem.label "Object Verwijderen..."> -<!ENTITY zotero.toolbar.newCollection.label "Nieuwe Verzameling Aanmaken..."> -<!ENTITY zotero.toolbar.newSubcollection.label "Nieuwe Deelverzameling Aanmaken..."> -<!ENTITY zotero.toolbar.newSavedSearch.label "Nieuwe Bewaarde Zoekopdracht Aanmaken..."> -<!ENTITY zotero.toolbar.tagSelector.label "Label-kiezer Weergeven/Verbergen"> +<!ENTITY zotero.toolbar.newItemFromPage.label "Nieuw object aanmaken van huidige pagina"> +<!ENTITY zotero.toolbar.removeItem.label "Object verwijderen..."> +<!ENTITY zotero.toolbar.newCollection.label "Nieuwe verzameling aanmaken..."> +<!ENTITY zotero.toolbar.newSubcollection.label "Nieuwe deelverzameling aanmaken..."> +<!ENTITY zotero.toolbar.newSavedSearch.label "Nieuwe bewaarde zoekopdracht aanmaken..."> +<!ENTITY zotero.toolbar.tagSelector.label "Label-kiezer weergeven/verbergen"> <!ENTITY zotero.toolbar.actions.label "Acties"> <!ENTITY zotero.toolbar.import.label "Importeren..."> -<!ENTITY zotero.toolbar.export.label "Bibliotheek Exporteren..."> +<!ENTITY zotero.toolbar.export.label "Bibliotheek exporteren..."> <!ENTITY zotero.toolbar.timeline.label "Tijdslijn maken"> <!ENTITY zotero.toolbar.preferences.label "Voorkeuren..."> <!ENTITY zotero.toolbar.documentation.label "Documentatie"> <!ENTITY zotero.toolbar.about.label "Over Zotero"> -<!ENTITY zotero.toolbar.advancedSearch "Uitgebreid Zoeken"> +<!ENTITY zotero.toolbar.advancedSearch "Uitgebreid zoeken"> <!ENTITY zotero.toolbar.search.label "Zoeken:"> -<!ENTITY zotero.toolbar.fullscreen.tooltip "Zotero Schermvullend Maken"> -<!ENTITY zotero.toolbar.openURL.label "Localiseren"> +<!ENTITY zotero.toolbar.fullscreen.tooltip "Zotero schermvullend maken"> +<!ENTITY zotero.toolbar.openURL.label "Opzoeken"> <!ENTITY zotero.toolbar.openURL.tooltip "Vinden via uw plaatselijke bibliotheek"> <!ENTITY zotero.item.add "Toevoegen"> -<!ENTITY zotero.item.attachment.file.show "Bestand Tonen"> -<!ENTITY zotero.item.textTransform "Tekst Wijzigen"> +<!ENTITY zotero.item.attachment.file.show "Bestand tonen"> +<!ENTITY zotero.item.textTransform "Tekst wijzigen"> <!ENTITY zotero.item.textTransform.lowercase "kleine letters"> <!ENTITY zotero.item.textTransform.titlecase "Hoofdletters voor titel"> -<!ENTITY zotero.toolbar.note.standalone "Nieuwe Zelfstandige Aantekening"> -<!ENTITY zotero.toolbar.attachment.linked "Koppeling naar Bestand..."> -<!ENTITY zotero.toolbar.attachment.add "Kopie Bewaren van Bestand..."> -<!ENTITY zotero.toolbar.attachment.weblink "Koppeling Bewaren naar Huidige Webpagina"> -<!ENTITY zotero.toolbar.attachment.snapshot "Neem Snapshot van Huidige Webpagina"> +<!ENTITY zotero.toolbar.note.standalone "Nieuwe zelfstandige aantekening"> +<!ENTITY zotero.toolbar.attachment.linked "Koppeling naar bestand..."> +<!ENTITY zotero.toolbar.attachment.add "Kopie bewaren van bestand..."> +<!ENTITY zotero.toolbar.attachment.weblink "Koppeling bewaren naar huidige webpagina"> +<!ENTITY zotero.toolbar.attachment.snapshot "Neem snapshot van huidige webpagina"> <!ENTITY zotero.tagSelector.noTagsToDisplay "Geen labels om te tonen"> <!ENTITY zotero.tagSelector.filter "Filter:"> @@ -94,26 +94,26 @@ <!ENTITY zotero.tagSelector.selectVisible "Selecteer zichtbare labels"> <!ENTITY zotero.tagSelector.clearVisible "Selectie zichtbare labels ongedaan maken"> <!ENTITY zotero.tagSelector.clearAll "Niets selecteren"> -<!ENTITY zotero.tagSelector.renameTag "Label Hernoemen..."> -<!ENTITY zotero.tagSelector.deleteTag "Label Verwijderen..."> +<!ENTITY zotero.tagSelector.renameTag "Label hernoemen..."> +<!ENTITY zotero.tagSelector.deleteTag "Label verwijderen..."> -<!ENTITY zotero.selectitems.title "Objecten Selecteren"> +<!ENTITY zotero.selectitems.title "Objecten selecteren"> <!ENTITY zotero.selectitems.intro.label "Selecteer de objecten die u aan uw bibliotheek wilt toevoegen"> <!ENTITY zotero.selectitems.cancel.label "Annuleren"> <!ENTITY zotero.selectitems.select.label "OK"> -<!ENTITY zotero.bibliography.title "Bibliografie Aanmaken"> +<!ENTITY zotero.bibliography.title "Bibliografie aanmaken"> <!ENTITY zotero.bibliography.style.label "Citeerstijl:"> <!ENTITY zotero.bibliography.output.label "Uitvoerformaat"> <!ENTITY zotero.bibliography.saveAsRTF.label "Bewaar als RTF"> <!ENTITY zotero.bibliography.saveAsHTML.label "Bewaar als HTML"> -<!ENTITY zotero.bibliography.copyToClipboard.label "Naar Klembord Kopiëren"> +<!ENTITY zotero.bibliography.copyToClipboard.label "Naar klembord kopiëren"> <!ENTITY zotero.bibliography.macClipboardWarning "(Tekstopmaak zal verloren gaan.)"> <!ENTITY zotero.bibliography.print.label "Afdrukken"> <!ENTITY zotero.integration.docPrefs.title "Documentvoorkeuren"> -<!ENTITY zotero.integration.addEditCitation.title "Citatie Toevoegen/Bijwerken"> -<!ENTITY zotero.integration.editBibliography.title "Bibliografie Bijwerken"> +<!ENTITY zotero.integration.addEditCitation.title "Citatie toevoegen/bijwerken"> +<!ENTITY zotero.integration.editBibliography.title "Bibliografie bijwerken"> <!ENTITY zotero.progress.title "Vooruitgang"> @@ -121,12 +121,12 @@ <!ENTITY zotero.exportOptions.format.label "Formaat:"> <!ENTITY zotero.exportOptions.translatorOptions.label "Vertaler-opties"> -<!ENTITY zotero.citation.keepSorted.label "Bronnen Gesorteerd Houden"> +<!ENTITY zotero.citation.keepSorted.label "Bronnen gesorteerd houden"> <!ENTITY zotero.citation.page "Pagina"> <!ENTITY zotero.citation.paragraph "Paragraaf"> <!ENTITY zotero.citation.line "Regel"> -<!ENTITY zotero.citation.suppressAuthor.label "Auteur Weglaten"> +<!ENTITY zotero.citation.suppressAuthor.label "Auteur weglaten"> <!ENTITY zotero.citation.prefix.label "Voorvoegsel:"> <!ENTITY zotero.citation.suffix.label "Achtervoegsel:"> @@ -136,13 +136,13 @@ <!ENTITY zotero.richText.superscript.label "Superscript"> <!ENTITY zotero.richText.subscript.label "Subscript"> -<!ENTITY zotero.annotate.toolbar.add.label "Annotatie Toevoegen"> -<!ENTITY zotero.annotate.toolbar.collapse.label "Alle Annotaties Inklappen"> -<!ENTITY zotero.annotate.toolbar.expand.label "Alle Annotaties Uitklappen"> -<!ENTITY zotero.annotate.toolbar.highlight.label "Tekst Markeren"> -<!ENTITY zotero.annotate.toolbar.unhighlight.label "Tekstmarkering Weghalen"> +<!ENTITY zotero.annotate.toolbar.add.label "Annotatie toevoegen"> +<!ENTITY zotero.annotate.toolbar.collapse.label "Alle annotaties inklappen"> +<!ENTITY zotero.annotate.toolbar.expand.label "Alle annotaties uitklappen"> +<!ENTITY zotero.annotate.toolbar.highlight.label "Tekst markeren"> +<!ENTITY zotero.annotate.toolbar.unhighlight.label "Tekstmarkering weghalen"> -<!ENTITY zotero.integration.prefs.displayAs.label "Toon Citaties Als:"> +<!ENTITY zotero.integration.prefs.displayAs.label "Toon verwijzingen als:"> <!ENTITY zotero.integration.prefs.footnotes.label "Voetnoten"> <!ENTITY zotero.integration.prefs.endnotes.label "Eindnoten"> @@ -150,4 +150,4 @@ <!ENTITY zotero.integration.prefs.bookmarks.label "Bookmarks"> <!ENTITY zotero.integration.prefs.bookmarks.caption "Bookmarks worden behouden tussen Microsoft Word en OpenOffice.org, maar kunnen per ongeluk worden gewijzigd."> -<!ENTITY zotero.integration.references.label "Verwijzingen in Bibliografie"> +<!ENTITY zotero.integration.references.label "Verwijzingen in bibliografie"> diff --git a/chrome/locale/nl-NL/zotero/zotero.properties b/chrome/locale/nl-NL/zotero/zotero.properties @@ -1,81 +1,81 @@ -extensions.zotero@chnm.gmu.edu.description=Het Nieuwe-Generatie Onderzoekshulpmiddel +extensions.zotero@chnm.gmu.edu.description=Een onderzoekshulpmiddel van de volgende generatie general.error=Fout general.warning=Waarschuwing general.dontShowWarningAgain=Deze waarschuwing niet meer tonen. general.browserIsOffline=%S is momenteel in offline-modus. -general.locate=Localiseren... -general.restartRequired=Herstarten Noodzakelijk +general.locate=Opzoeken... +general.restartRequired=Herstart is nodig general.restartRequiredForChange=Firefox moet herstart worden om de verandering uit te voeren. general.restartRequiredForChanges=Firefox moet herstart worden om de veranderingen uit te voeren. -general.restartNow=Nu Herstarten -general.restartLater=Later Herstarten +general.restartNow=Nu herstarten +general.restartLater=Later herstarten general.errorHasOccurred=Er is een fout opgetreden. -general.restartFirefox=Herstart Firefox a.u.b. +general.restartFirefox=Herstart Firefox. general.restartFirefoxAndTryAgain=Herstart Firefox en probeer het opnieuw. -general.checkForUpdate=Naar Update Zoeken +general.checkForUpdate=Naar update zoeken general.install=Installeren -general.updateAvailable=Update Beschikbaar +general.updateAvailable=Update beschikbaar general.upgrade=Bijwerken general.yes=Ja general.no=Nee -general.passed=Uitgevoerd +general.passed=Voltooid general.failed=Mislukt general.and=en install.quickStartGuide=Beknopte Handleiding install.quickStartGuide.message.welcome=Welkom bij Zotero! -install.quickStartGuide.message.clickViewPage=Klik op de "Pagina Tonen"-knop om de Beknopte Handleiding te bekijken en leer hoe u kunt beginnen met verzamelen, organiseren en citeren. +install.quickStartGuide.message.clickViewPage=Klik op de "Pagina tonen"-knop om de Beknopte Handleiding te bekijken en leer hoe u kunt beginnen met verzamelen, organiseren en refereren. install.quickStartGuide.message.thanks=Bedankt voor het installeren van Zotero. upgrade.failed=Het bijwerken van de Zotero database is mislukt: -upgrade.advanceMessage=Druk %S om een nieuwe versie te downloaden. +upgrade.advanceMessage=Druk op %S om een nieuwe versie te downloaden. -errorReport.reportErrors=Fouten Rapporteren... -errorReport.reportInstructions=U kunt deze fout melden door "%S" te selecteren in het Acties menu (tandwiel-pictogram). +errorReport.reportErrors=Fouten rapporteren... +errorReport.reportInstructions=U kunt deze fout melden door "%S" te selecteren in het Acties-menu (tandwiel-pictogram). errorReport.followingErrors=De volgende fouten zijn opgetreden: -errorReport.advanceMessage=Druk %S om een foutrapport te versturen naar de Zotero-ontwikkelaars. -errorReport.stepsToReproduce=Stappen om te Reproduceren: +errorReport.advanceMessage=Druk op %S om een fouten-rapport te versturen naar de Zotero-ontwikkelaars. +errorReport.stepsToReproduce=Stappen om te reproduceren: errorReport.expectedResult=Verwacht resultaat: -errorReport.actualResult=Uiteindelijk resultaat: +errorReport.actualResult=Werkelijk resultaat: -dataDir.notFound=De Zotero data-map kon niet worden gevonden. +dataDir.notFound=De opslagmap van Zotero kon niet worden gevonden. dataDir.previousDir=Vorige map: -dataDir.useProfileDir=Firefox profiel-map Gebruiken -dataDir.selectDir=Selecteer een Zotero data-map -dataDir.selectedDirNonEmpty.title=Map Niet Leeg -dataDir.selectedDirNonEmpty.text=De map die u selecteerde is niet leeg and lijkt geen Zotero data-map te zijn.\n\nWilt u Zotero toch bestanden aan laten maken in deze map? +dataDir.useProfileDir=Firefox profiel-map gebruiken +dataDir.selectDir=Selecteer opslagmap voor Zotero +dataDir.selectedDirNonEmpty.title=Map niet leeg +dataDir.selectedDirNonEmpty.text=De map die u selecteerde is niet leeg and lijkt geen Zotero opslagmap te zijn.\n\nWilt u Zotero toch bestanden aan laten maken in deze map? startupError=Er is een fout opgetreden bij het starten van Zotero. pane.collections.delete=Wilt u de geselecteerde verzameling verwijderen? pane.collections.deleteSearch=Wilt u de geselecteerde zoekopdracht verwijderen? -pane.collections.newCollection=Nieuwe Verzameling +pane.collections.newCollection=Nieuwe verzameling pane.collections.name=Geef een naam aan deze verzameling: -pane.collections.newSavedSeach=Nieuwe Bewaarde Zoekopdracht +pane.collections.newSavedSeach=Nieuwe bewaarde zoekopdracht pane.collections.savedSearchName=Geef een naam aan deze bewaarde zoekopdracht: pane.collections.rename=Naam verzameling wijzigen: pane.collections.library=Mijn Bibliotheek pane.collections.untitled=Zonder Titel -pane.collections.menu.rename.collection=Naam Verzameling Wijzigen... -pane.collections.menu.edit.savedSearch=Bewaarde Zoekopdracht Bewerken -pane.collections.menu.remove.collection=Verzameling Verwijderen... -pane.collections.menu.remove.savedSearch=Bewaarde Zoekopdracht Verwijderen... -pane.collections.menu.export.collection=Verzameling Exporteren... -pane.collections.menu.export.savedSearch=Bewaarde Zoekopdracht Exporteren... -pane.collections.menu.createBib.collection=Bibliografie Aanmaken uit Verzameling... -pane.collections.menu.createBib.savedSearch=Bibliografie Aanmaken uit Bewaarde Zoekopdracht... +pane.collections.menu.rename.collection=Naam verzameling wijzigen... +pane.collections.menu.edit.savedSearch=Bewaarde zoekopdracht bewerken +pane.collections.menu.remove.collection=Verzameling verwijderen... +pane.collections.menu.remove.savedSearch=Bewaarde zoekopdracht verwijderen... +pane.collections.menu.export.collection=Verzameling exporteren... +pane.collections.menu.export.savedSearch=Bewaarde zoekopdracht exporteren... +pane.collections.menu.createBib.collection=Bibliografie aanmaken uit verzameling... +pane.collections.menu.createBib.savedSearch=Bibliografie aanmaken uit bewaarde zoekopdracht... -pane.collections.menu.generateReport.collection=Maak Rapport van Verzameling... -pane.collections.menu.generateReport.savedSearch=Rapport Aanmaken van Bewaarde Zoekopdracht... +pane.collections.menu.generateReport.collection=Rapport aanmaken uit verzameling... +pane.collections.menu.generateReport.savedSearch=Rapport aanmaken van bewaarde zoekopdracht... -pane.tagSelector.rename.title=Label Hernoemen +pane.tagSelector.rename.title=Label hernoemen pane.tagSelector.rename.message=Geef een nieuwe naam aan dit label.\n\nHet label zal worden aangepast worden voor alle geassocieerde objecten. -pane.tagSelector.delete.title=Label Verwijderen -pane.tagSelector.delete.message=Wil u dit label verwijderen?\n\nHet label zal van alle objecten verwijderd worden. +pane.tagSelector.delete.title=Label verwijderen +pane.tagSelector.delete.message=Wilt u dit label verwijderen?\n\nHet label zal van alle objecten verwijderd worden. pane.tagSelector.numSelected.none=0 labels geselecteerd -pane.tagSelector.numSelected.singular=%S labels geselecteerd +pane.tagSelector.numSelected.singular=%S label geselecteerd pane.tagSelector.numSelected.plural=%S labels geselecteerd pane.items.loading=Objecten-lijst wordt geladen... @@ -83,18 +83,18 @@ pane.items.delete=Wilt u het geselecteerde object verwijderen? pane.items.delete.multiple=Wilt u de geselecteerde objecten verwijderen? pane.items.delete.title=Verwijderen pane.items.delete.attached=Bijgevoegde aantekeningen en bestanden wissen -pane.items.menu.remove=Geselecteerd Object Verwijderen -pane.items.menu.remove.multiple=Geselecteerde Objecten Verwijderen -pane.items.menu.erase=Object Verwijderen uit Bibliotheek... -pane.items.menu.erase.multiple=Geselecteerde Objecten Verwijderen uit Bibliotheek... -pane.items.menu.export=Geselecteerd Object Exporteren... -pane.items.menu.export.multiple=Geselecteerde Objecten Exporteren... -pane.items.menu.createBib=Bibliografie Aanmaken van Object... -pane.items.menu.createBib.multiple=Bibliografie Aanmaken van Geselecteerde Objecten... -pane.items.menu.generateReport=Rapport Aanmaken van Object... -pane.items.menu.generateReport.multiple=Rapport Aanmaken van Geselecteerde Objecten... -pane.items.menu.reindexItem=Object Herindexeren -pane.items.menu.reindexItem.multiple=Objecten Herindexeren +pane.items.menu.remove=Geselecteerd object verwijderen +pane.items.menu.remove.multiple=Geselecteerde objecten verwijderen +pane.items.menu.erase=Object verwijderen uit bibliotheek... +pane.items.menu.erase.multiple=Geselecteerde objecten verwijderen uit bibliotheek... +pane.items.menu.export=Geselecteerd object exporteren... +pane.items.menu.export.multiple=Geselecteerde objecten exporteren... +pane.items.menu.createBib=Bibliografie aanmaken van geselecteerd object... +pane.items.menu.createBib.multiple=Bibliografie aanmaken van geselecteerde objecten... +pane.items.menu.generateReport=Rapport aanmaken van object... +pane.items.menu.generateReport.multiple=Rapport aanmaken van geselecteerde objecten... +pane.items.menu.reindexItem=Object herindexeren +pane.items.menu.reindexItem.multiple=Objecten herindexeren pane.items.letter.oneParticipant=Brief naar %S pane.items.letter.twoParticipants=Brief naar %S en %S @@ -110,16 +110,16 @@ pane.item.selected.multiple=%S objecten geselecteerd pane.item.goToURL.online.label=Bekijken pane.item.goToURL.online.tooltip=Dit object online bekijken -pane.item.goToURL.snapshot.label=Snapshot Bekijken +pane.item.goToURL.snapshot.label=Snapshot bekijken pane.item.goToURL.snapshot.tooltip=Snapshot van dit object bekijken -pane.item.changeType.title=Object-type Veranderen -pane.item.changeType.text=Wilt u het Object-type veranderen?\n\nDe volgende velden zullen verloren gaan: +pane.item.changeType.title=Object-type veranderen +pane.item.changeType.text=Wilt u het object-type veranderen?\n\nDe volgende velden zullen verloren gaan: pane.item.defaultFirstName=voornaam pane.item.defaultLastName=achternaam -pane.item.defaultFullName=naam +pane.item.defaultFullName=volledige naam pane.item.switchFieldMode.one=Omschakelen naar enkel veld pane.item.switchFieldMode.two=Omschakelen naar twee velden -pane.item.notes.untitled=Aantekening Zonder Titel +pane.item.notes.untitled=Aantekening zonder titel pane.item.notes.delete.confirm=Wilt u deze aantekening verwijderen? pane.item.notes.count.zero=%S aantekeningen: pane.item.notes.count.singular=%S aantekening: @@ -127,16 +127,16 @@ pane.item.notes.count.plural=%S aantekeningen: pane.item.attachments.rename.title=Nieuwe titel: pane.item.attachments.rename.renameAssociatedFile=Naam geassocieerd bestand wijzigen pane.item.attachments.rename.error=Er is een fout opgetreden bij het wijzigen van de bestandsnaam. -pane.item.attachments.view.link=Pagina Tonen -pane.item.attachments.view.snapshot=Snapshot Tonen -pane.item.attachments.view.file=Bestand Tonen -pane.item.attachments.fileNotFound.title=Bestand Niet Gevonden +pane.item.attachments.view.link=Pagina tonen +pane.item.attachments.view.snapshot=Snapshot tonen +pane.item.attachments.view.file=Bestand tonen +pane.item.attachments.fileNotFound.title=Bestand niet gevonden pane.item.attachments.fileNotFound.text=Het bijgevoegde bestand kon niet gevonden worden.\n\nHet kan verplaatst of verwijderd zijn buiten Zotero. pane.item.attachments.delete.confirm=Wilt u deze bijlage verwijderen? -pane.item.attachments.count.zero=%S bijlagen: +pane.item.attachments.count.zero=%S bijlages: pane.item.attachments.count.singular=%S bijlage: -pane.item.attachments.count.plural=%S bijlagen: -pane.item.attachments.select=Selecteer een Bestand +pane.item.attachments.count.plural=%S bijlages: +pane.item.attachments.select=Bestand selecteren pane.item.noteEditor.clickHere=klik hier pane.item.tags=Labels: pane.item.tags.count.zero=%S labels: @@ -145,20 +145,20 @@ pane.item.tags.count.plural=%S labels: pane.item.tags.icon.user=Door de gebruiker toegevoegd label pane.item.tags.icon.automatic=Automatisch toegevoegd label pane.item.related=Gerelateerd: -pane.item.related.count.zero=%S gerelateerde items: -pane.item.related.count.singular=%S gerelateerd item: -pane.item.related.count.plural=%S gerelateerde items: +pane.item.related.count.zero=%S gerelateerd: +pane.item.related.count.singular=%S gerelateerd: +pane.item.related.count.plural=%S gerelateerd: -noteEditor.editNote=Aantekening Wijzigen +noteEditor.editNote=Aantekening wijzigen itemTypes.note=Aantekening itemTypes.attachment=Bijlage itemTypes.book=Boek -itemTypes.bookSection=Sectie uit Boek -itemTypes.journalArticle=Artikel in Academisch Tijdschrift -itemTypes.magazineArticle=Artikel in Tijdschrift +itemTypes.bookSection=Sectie uit boek +itemTypes.journalArticle=Artikel in academisch tijdschrift +itemTypes.magazineArticle=Artikel in tijdschrift itemTypes.newspaperArticle=Krantenartikel -itemTypes.thesis=Proefschrift +itemTypes.thesis=Verhandeling itemTypes.letter=Brief itemTypes.manuscript=Manuscript itemTypes.interview=Interview @@ -176,30 +176,30 @@ itemTypes.map=Kaart itemTypes.blogPost=Blogbericht itemTypes.instantMessage=Instant Message itemTypes.forumPost=Forumbericht -itemTypes.audioRecording=Audio-opname +itemTypes.audioRecording=Geluidsopname itemTypes.presentation=Presentatie itemTypes.videoRecording=Video-opname -itemTypes.tvBroadcast=TV-uitzending +itemTypes.tvBroadcast=Televisie-uitzending itemTypes.radioBroadcast=Radio-uitzending itemTypes.podcast=Podcast itemTypes.computerProgram=Computerprogramma itemTypes.conferencePaper=Conferentiebijdrage itemTypes.document=Document itemTypes.encyclopediaArticle=Encyclopedie-artikel -itemTypes.dictionaryEntry=Woordenboek Trefwoord +itemTypes.dictionaryEntry=Lemma itemFields.itemType=Type itemFields.title=Titel -itemFields.dateAdded=Toegevoegd op -itemFields.dateModified=Laatste Bewerking +itemFields.dateAdded=Datum van toevoegen +itemFields.dateModified=Bewerkt itemFields.source=Bron itemFields.notes=Aantekeningen -itemFields.tags=Tags -itemFields.attachments=Bijlagen +itemFields.tags=Labels +itemFields.attachments=Bijlages itemFields.related=Gerelateerd itemFields.url=URL itemFields.rights=Rechten -itemFields.series=Serie +itemFields.series=Reeks itemFields.volume=Volume itemFields.issue=Nummer itemFields.edition=Editie @@ -212,17 +212,17 @@ itemFields.ISSN=ISSN itemFields.date=Datum itemFields.section=Sectie itemFields.callNumber=Referentienummer -itemFields.archiveLocation=Locatie in Archief +itemFields.archiveLocation=Locatie in archief itemFields.distributor=Distributeur itemFields.extra=Extra -itemFields.journalAbbreviation=Tijdschrift-afkorting +itemFields.journalAbbreviation=Afkorting tijdschrift itemFields.DOI=DOI -itemFields.accessDate=Laatst Bekeken +itemFields.accessDate=Benaderd itemFields.seriesTitle=Reekstitel itemFields.seriesText=Reekstekst itemFields.seriesNumber=Reeksnummer itemFields.institution=Instituut -itemFields.reportType=Rapport Type +itemFields.reportType=Rapport type itemFields.code=Code itemFields.session=Sessie itemFields.legislativeBody=Rechtsorgaan @@ -230,7 +230,7 @@ itemFields.history=Geschiedenis itemFields.reporter=Journalist itemFields.court=Rechtbank itemFields.numberOfVolumes=# Volume(s) -itemFields.committee=Comité +itemFields.committee=Commissie itemFields.assignee=Rechthebbende itemFields.patentNumber=Patentnummer itemFields.priorityNumbers=Prioriteitsnummers @@ -240,20 +240,20 @@ itemFields.legalStatus=Wettelijke status itemFields.codeNumber=Codenummer itemFields.artworkMedium=Medium itemFields.number=Nummer -itemFields.artworkSize=Afmetingen +itemFields.artworkSize=Grootte kunstwerk itemFields.repository=Repositorium -itemFields.videoRecordingType=Opnametype +itemFields.videoRecordingType=Type opname itemFields.interviewMedium=Medium itemFields.letterType=Type itemFields.manuscriptType=Type itemFields.mapType=Type itemFields.scale=Schaal itemFields.thesisType=Type -itemFields.websiteType=Type Website -itemFields.audioRecordingType=Type Audio-opname +itemFields.websiteType=Type website +itemFields.audioRecordingType=Type geluidsopname itemFields.label=Label -itemFields.presentationType=Type Presentatie -itemFields.meetingName=Naam Bijeenkomst +itemFields.presentationType=Type +itemFields.meetingName=Naam bijeenkomst itemFields.studio=Studio itemFields.runningTime=Duur itemFields.network=Netwerk @@ -263,41 +263,41 @@ itemFields.version=Versie itemFields.system=Systeem itemFields.company=Bedrijf itemFields.conferenceName=Conferentienaam -itemFields.encyclopediaTitle=Encyclopedie Titel -itemFields.dictionaryTitle=Woordenboek Titel +itemFields.encyclopediaTitle=Encyclopedie titel +itemFields.dictionaryTitle=Woordenboek titel itemFields.language=Taal itemFields.programmingLanguage=Taal itemFields.university=Universiteit -itemFields.abstractNote=Abstract -itemFields.websiteTitle=Webpagina Titel +itemFields.abstractNote=Samenvatting +itemFields.websiteTitle=Webpagina titel itemFields.reportNumber=Rapportnummer itemFields.billNumber=Wetsvoorstel nummer -itemFields.codeVolume=Code Volume -itemFields.codePages=Code Pagina's -itemFields.dateDecided=Datum Beslissing -itemFields.reporterVolume=Reporter Volume -itemFields.firstPage=Eerste Pagina +itemFields.codeVolume=Code volume +itemFields.codePages=Code pagina's +itemFields.dateDecided=Datum beslissing +itemFields.reporterVolume=Reporter volume +itemFields.firstPage=Eerste pagina itemFields.documentNumber=Documentnummer itemFields.dateEnacted=Datum van in-werking-treding -itemFields.publicLawNumber=Publieke Wet Nummer +itemFields.publicLawNumber=Publiekrecht nummer itemFields.country=Land -itemFields.applicationNumber=Toepassing Nummer -itemFields.forumTitle=Forum/Listserv Titel -itemFields.episodeNumber=Aflevering Nummer -itemFields.blogTitle=Blog Titel -itemFields.caseName=Rechtszaak Nummer -itemFields.nameOfAct=Naam van Wet +itemFields.applicationNumber=Toepassing nummer +itemFields.forumTitle=Forum/Listserv titel +itemFields.episodeNumber=Aflevering nummer +itemFields.blogTitle=Blog titel +itemFields.caseName=Naam rechtzaak +itemFields.nameOfAct=Naam wet itemFields.subject=Onderwerp -itemFields.proceedingsTitle=Proceedings Titel -itemFields.bookTitle=Boektitel +itemFields.proceedingsTitle=Titel notulen +itemFields.bookTitle=Titel boek itemFields.shortTitle=Verkorte Titel creatorTypes.author=Auteur creatorTypes.contributor=Coauteur creatorTypes.editor=Redacteur creatorTypes.translator=Vertaler -creatorTypes.seriesEditor=Redacteur van Reeks -creatorTypes.interviewee=Interview Met +creatorTypes.seriesEditor=Redacteur van reeks +creatorTypes.interviewee=Interview met creatorTypes.interviewer=Interviewer creatorTypes.director=Regisseur creatorTypes.scriptwriter=Tekstschrijver @@ -310,10 +310,10 @@ creatorTypes.attorneyAgent=Advocaat/Agent creatorTypes.recipient=Ontvanger creatorTypes.performer=Uitvoerder creatorTypes.composer=Componist -creatorTypes.wordsBy=Tekst Door +creatorTypes.wordsBy=Tekst door creatorTypes.cartographer=Cartograaf creatorTypes.programmer=Programmeur -creatorTypes.reviewedAuthor=Besproken Auteur +creatorTypes.reviewedAuthor=Besproken auteur creatorTypes.artist=Kunstenaar creatorTypes.commenter=Commentator creatorTypes.presenter=Presentator @@ -332,11 +332,11 @@ save.attachment=Snapshot wordt opgeslagen... save.link=Koppeling wordt opgeslagen... ingester.saveToZotero=Opslaan in Zotero -ingester.scraping=Item wordt opgeslagen... -ingester.scrapeComplete=Item opgeslagen. -ingester.scrapeError=Dit item kon niet opgeslagen worden. -ingester.scrapeErrorDescription=Er is een fout opgetreden bij het opslaan van dit item. Bekijk %S voor meer informatie. -ingester.scrapeErrorDescription.linkText=Bekende Vertalers Problemen +ingester.scraping=Object wordt opgeslagen... +ingester.scrapeComplete=Object opgeslagen +ingester.scrapeError=Object kon niet opgeslagen worden. +ingester.scrapeErrorDescription=Er is een fout opgetreden bij het opslaan van dit object. Bekijk %S voor meer informatie. +ingester.scrapeErrorDescription.linkText=Bekende problemen met vertalers ingester.scrapeError.transactionInProgress.previousError=Het opslaan is mislukt door een eerdere Zotero fout. db.dbCorrupted=De Zotero database '%S' is beschadigd geraakt. @@ -356,17 +356,17 @@ zotero.preferences.openurl.resolversFound.singular=%S resolver gevonden zotero.preferences.openurl.resolversFound.plural=%S resolvers gevonden zotero.preferences.search.rebuildIndex=Index herbouwen zotero.preferences.search.rebuildWarning=Wilt u de gehele index herbouwen? Dit kan even duren.\n\nOm enkel items te indexeren die nog niet geindexeerd zijn, gebruik %S. -zotero.preferences.search.clearIndex=Index leegmaken +zotero.preferences.search.clearIndex=Index wissen zotero.preferences.search.clearWarning=Na het wissen van de index is het niet meer mogelijk de inhoud van bijlages te doorzoeken.\n\nWebkoppeling-bijlages kunnen niet opnieuw worden geindexeerd zonder de webpagina opnieuw te bezoeken. Om de indexering van webkoppelingen te behouden, kies %S. -zotero.preferences.search.clearNonLinkedURLs=Wis alles behalve webkoppelingen -zotero.preferences.search.indexUnindexed=Indexeer de niet-geindexeerde items +zotero.preferences.search.clearNonLinkedURLs=Alles wissen behalve webkoppelingen +zotero.preferences.search.indexUnindexed=Indexeer de niet-geindexeerde objecten zotero.preferences.search.pdf.toolRegistered=%S is geinstalleerd zotero.preferences.search.pdf.toolNotRegistered=%S is NIET geinstalleerd zotero.preferences.search.pdf.toolsRequired=Voor PDF-indexering zijn de hulpprogramma's %1$S en %2$S van het %3$S project nodig. -zotero.preferences.search.pdf.automaticInstall=Zotero kan deze programma's automatisch downloaden en installeren vanaf zotero.org voor een aantal besturingssystemen. +zotero.preferences.search.pdf.automaticInstall=Zotero kan deze programma's voor bepaalde besturingssystemen automatisch downloaden en installeren vanaf zotero.org. zotero.preferences.search.pdf.advancedUsers=Gevorderde gebruikers kunnen de %S bekijken voor handmatige installatie-instructies. zotero.preferences.search.pdf.documentationLink=documentatie -zotero.preferences.search.pdf.checkForInstaller=Zoek naar installatie-programma +zotero.preferences.search.pdf.checkForInstaller=Installatie-programma zoeken zotero.preferences.search.pdf.downloading=Bezig met downloaden... zotero.preferences.search.pdf.toolDownloadsNotAvailable=De %S hulpprogramma's zijn op dit moment niet beschikbaar voor uw besturingssysteem via zotero.org. zotero.preferences.search.pdf.viewManualInstructions=Lees de documentatie voor handmatige installatie-instructies. @@ -374,34 +374,34 @@ zotero.preferences.search.pdf.availableDownloads=Beschikbare downloads voor %1$S zotero.preferences.search.pdf.availableUpdates=Beschikbare updates voor %1$S van %2$S: zotero.preferences.search.pdf.toolVersionPlatform=%1$S versie %2$S zotero.preferences.search.pdf.zoteroCanInstallVersion=Zotero kan het automatisch installeren in de Zotero opslagmap. -zotero.preferences.search.pdf.zoteroCanInstallVersions=Zotero can deze programma's automatisch installeren in de Zotero opslagmap. +zotero.preferences.search.pdf.zoteroCanInstallVersions=Zotero kan deze programma's automatisch installeren in de Zotero opslagmap. zotero.preferences.search.pdf.toolsDownloadError=Er is een fout opgetreden bij het downloaden van de %S hulpprogramma's van zotero.org. zotero.preferences.search.pdf.tryAgainOrViewManualInstructions=Probeer het later opnieuw, of lees de documentatie voor handmatige installatie-instructies. zotero.preferences.export.quickCopy.bibStyles=Bibliografie-stijlen zotero.preferences.export.quickCopy.exportFormats=Exportformaten -zotero.preferences.export.quickCopy.instructions=Met Snelle Kopie kunt u geselecteerde verwijzingen naar het klembord kopiëren met behulp van een sneltoets (%S) of door de items naar een tekstvak te slepen. +zotero.preferences.export.quickCopy.instructions=Met Snelle Kopie kunt u geselecteerde verwijzingen naar het klembord kopiëren met behulp van een sneltoets (%S) of door objecten naar een tekstvak op een webpagina te slepen. -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +zotero.preferences.advanced.resetTranslatorsAndStyles=Vertalers en stijlen opnieuw instellen +zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Nieuwe of aangepaste vertalers en stijlen zullen verloren gaan +zotero.preferences.advanced.resetTranslators=Vertalers opnieuw instellen +zotero.preferences.advanced.resetTranslators.changesLost=Nieuwe of aangepaste vertalers zullen verloren gaan +zotero.preferences.advanced.resetStyles=Stijlen opnieuw instellen +zotero.preferences.advanced.resetStyles.changesLost=Nieuwe of aangepaste stijlen zullen verloren gaan dragAndDrop.existingFiles=De volgende bestanden waren al aanwezig in de bestemmingsmap en zijn niet gekopieerd: dragAndDrop.filesNotFound=De volgende bestanden konden niet gevonden en gekopieerd worden: -fileInterface.itemsImported=Bezig met importeren van items... -fileInterface.itemsExported=Bezig met exporteren van items... -fileInterface.import=Importeer -fileInterface.export=Exporteer -fileInterface.exportedItems=Geëxporteerde items -fileInterface.imported=Geïmporteerde items -fileInterface.fileFormatUnsupported=Voor dit bestand werd geen vertaler gevonden. -fileInterface.untitledBibliography=Bibliografie Zonder Titel +fileInterface.itemsImported=Bezig met importeren van objecten... +fileInterface.itemsExported=Bezig met exporteren van objecten... +fileInterface.import=Importeren +fileInterface.export=Exporteren +fileInterface.exportedItems=Geëxporteerde objecten +fileInterface.imported=Geïmporteerde objecten +fileInterface.fileFormatUnsupported=Voor dit bestand kon geen vertaler worden gevonden. +fileInterface.untitledBibliography=Bibliografie zonder titel fileInterface.bibliographyHTMLTitle=Bibliografie fileInterface.importError=Er is een fout opgetreden bij het importeren van het geselecteerde bestand. Controleer dat het bestand geldig is en probeer opnieuw. -fileInterface.noReferencesError=De door u geselecteerde items bevatten geen verwijzingen. Selecteer één of meerdere verwijzingen en probeer opnieuw. +fileInterface.noReferencesError=De door u geselecteerde objecten bevatten geen verwijzingen. Selecteer één of meerdere verwijzingen en probeer opnieuw. fileInterface.bibliographyGenerationError=Er is een fout opgetreden bij het aanmaken van uw bibliografie. Probeer opnieuw. fileInterface.exportError=Er is een fout opgetreden bij het exporteren van het geselecteerde bestand. @@ -420,27 +420,27 @@ searchOperator.isAfter=is na searchOperator.isInTheLast=is in de laatste searchConditions.tooltip.fields=Velden: -searchConditions.collectionID=Collectie -searchConditions.itemTypeID=Item type -searchConditions.tag=Tag +searchConditions.collectionID=Verzameling +searchConditions.itemTypeID=Object type +searchConditions.tag=Label searchConditions.note=Aantekening -searchConditions.childNote=Begeleidende Aantekening +searchConditions.childNote=Begeleidende aantekening searchConditions.creator=Auteur searchConditions.type=Type -searchConditions.thesisType=Type Verhandeling -searchConditions.reportType=Type Rapport -searchConditions.videoRecordingType=Type Video-opname -searchConditions.audioFileType=Audio Bestandsformaat -searchConditions.audioRecordingType=Type Audio-opname -searchConditions.letterType=Type Brief -searchConditions.interviewMedium=Medium Interview -searchConditions.manuscriptType=Type Manuscript -searchConditions.presentationType=Type Presentatie -searchConditions.mapType=Type Kaart +searchConditions.thesisType=Type verhandeling +searchConditions.reportType=Type rapport +searchConditions.videoRecordingType=Type video-opname +searchConditions.audioFileType=Audio bestandsformaat +searchConditions.audioRecordingType=Type geluidsopname +searchConditions.letterType=Type brief +searchConditions.interviewMedium=Medium interview +searchConditions.manuscriptType=Type manuscript +searchConditions.presentationType=Type presentatie +searchConditions.mapType=Type kaart searchConditions.medium=Medium searchConditions.artworkMedium=Medium kunstwerk -searchConditions.dateModified=Datum Aangepast -searchConditions.fulltextContent=Inhoud Bijlage +searchConditions.dateModified=Datum aangepast +searchConditions.fulltextContent=Inhoud bijlage searchConditions.programmingLanguage=Programmeertaal searchConditions.fileTypeID=Bestandstype van bijlage searchConditions.annotation=Annotatie @@ -449,47 +449,47 @@ fulltext.indexState.indexed=Geindexeerd fulltext.indexState.unavailable=Onbekend fulltext.indexState.partial=Gedeeltelijk -exportOptions.exportNotes=Exporteer Aantekeningen -exportOptions.exportFileData=Exporteer Bestanden -exportOptions.UTF8=Export as UTF-8 +exportOptions.exportNotes=Exporteer aantekeningen +exportOptions.exportFileData=Exporteer bestanden +exportOptions.UTF8=Exporteer als UTF-8 date.daySuffixes=e, e, e, e date.abbreviation.year=j date.abbreviation.month=m date.abbreviation.day=d -citation.multipleSources=Meerdere Bronnen... -citation.singleSource=Enkele Bron... -citation.showEditor=Toon Editor... -citation.hideEditor=Verberg Editor... +citation.multipleSources=Meerdere bronnen... +citation.singleSource=Enkele bron... +citation.showEditor=Toon editor... +citation.hideEditor=Verberg editor... -report.title.default=Zotero Rapport +report.title.default=Zotero rapport report.parentItem=Hoofdobject: report.notes=Aantekeningen: report.tags=Labels: annotations.confirmClose.title=Wilt u deze annotatie sluiten? annotations.confirmClose.body=Alle tekst zal verloren gaan. -annotations.close.tooltip=Verwijder Annotatie -annotations.move.tooltip=Verplaats Annotatie -annotations.collapse.tooltip=Inklappen Annotatie -annotations.expand.tooltip=Uitklappen Annotatie +annotations.close.tooltip=Verwijder annotatie +annotations.move.tooltip=Verplaats annotatie +annotations.collapse.tooltip=Inklappen annotatie +annotations.expand.tooltip=Uitklappen annotatie annotations.oneWindowWarning=Annotaties van een snapshot kunnen slechts in een venster tegelijk worden getoond. Het snapshot zal worden geopend in een venster zonder annotaties. -integration.incompatibleVersion=Deze versie van de Zotero Word plug-in is niet compatibel met de geinstalleerde versie van de Zotero Firefox-uitbreiding. Controleer of u van beide componenten de laatste versie gebruikt. +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=Velden integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields worden minder snel per ongeluk gewijzigd, maar kunnen niet gedeeld worden met OpenOffice.org. integration.referenceMarks.caption=OpenOffice.org ReferenceMarks worden minder snel per ongeluk gewijzigd, maar kunnen niet gedeeld worden met Microsoft Word. -integration.regenerate.title=Wilt u de citatie opnieuw genereren? -integration.regenerate.body=De veranderingen die u in de citatie-bewerker heeft gemaakt zullen verloren gaan. +integration.regenerate.title=Wilt u de verwijzing opnieuw aanmaken? +integration.regenerate.body=De veranderingen die u in de verwijzing-bewerker heeft gemaakt zullen verloren gaan. integration.regenerate.saveBehavior=Altijd deze selectie volgen. integration.deleteCitedItem.title=Wilt u deze verwijzing verwijderen? -integration.deleteCitedItem.body=Deze verwijzing is geciteerd in de tekst van uw document. Als u de verwijzing wist worden de citaties verwijderd. +integration.deleteCitedItem.body=Deze verwijzing is geciteerd in de tekst van uw document. Als u de verwijzing wist worden deze citaties verwijderd. -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +styles.installStyle=Stijl "%1$S" vanuit %2$S installeren? +styles.updateStyle=Bestaande stijl "%1$S" bijwerken met "%2$S" vanuit %3$S? +styles.installed=Stijl "%S" werd met succes geïnstalleerd. +styles.installError=%S lijkt geen geldig CSL bestand te zijn. diff --git a/chrome/locale/pl-PL/zotero/preferences.dtd b/chrome/locale/pl-PL/zotero/preferences.dtd @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "Eksport"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> +<!ENTITY zotero.preferences.citationOptions.caption "Opcje bibliografii"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Dołącz adresy URL do pozycji bibliograficznych artykułów w wersji papierowej."> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Gdy ta opcja nie jest wybrana, Zotero dołącza adresy URL tylko wtedy, gdy cytowane są artykuły z czasopism, magazynów, gazet, w których nie ma podanych stron."> <!ENTITY zotero.preferences.quickCopy.caption "Szybka kopia"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Domyślny format wyjściowy"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Uwaga: formatowanie RTF zostanie utracone w systemie Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Ustawienia właściwe tylko dla danej strony:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domena/Ścieżka dostępu"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(np. wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Format wyjściowy"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "Pobierz dodatkowe style..."> <!ENTITY zotero.preferences.prefpane.keys "Skróty klawiaturowe"> @@ -86,6 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "Konserwacja bazy danych"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Sprawdź spójność bazy danych"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Resetuj translatory i style..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Resetuj translatory..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Resetuj style..."> diff --git a/chrome/locale/pl-PL/zotero/zotero.properties b/chrome/locale/pl-PL/zotero/zotero.properties @@ -381,12 +381,12 @@ zotero.preferences.export.quickCopy.bibStyles=Style bibliograficzne zotero.preferences.export.quickCopy.exportFormats=Eksportuj formaty zotero.preferences.export.quickCopy.instructions=Szybka kopia pozwala na skopiowanie wybranych pozycji bibliograficznych do schowka poprzez użycie skrótu klawiaturowego (%S) lub poprzez przeciągnięcie elementu w obszar pola tekstowego na stronie internetowej. -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +zotero.preferences.advanced.resetTranslatorsAndStyles=Resetuj translatory i style +zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Nowe lub zmodyfikowane translatory i style zostaną utracone. +zotero.preferences.advanced.resetTranslators=Resetuj translatory +zotero.preferences.advanced.resetTranslators.changesLost=Nowe lub zmodyfikowane translatory zostaną utracone. +zotero.preferences.advanced.resetStyles=Resetuj style +zotero.preferences.advanced.resetStyles.changesLost=Nowe lub zmodyfikowane style zostaną utracone. dragAndDrop.existingFiles=Następujące pliki istnieją już w katalogu docelowym i nie zostały skopiowane: dragAndDrop.filesNotFound=Następujących plików nie znaleziono i nie mogą zostać skopiowane: @@ -451,7 +451,7 @@ fulltext.indexState.partial=Częściowy exportOptions.exportNotes=Eksportuj notatki exportOptions.exportFileData=Eksportuj pliki -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=Eksportuj jako UTF-8 date.daySuffixes=-szy, -gi, -ci, -ty date.abbreviation.year=r. @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Zwiń adnotację annotations.expand.tooltip=Rozwiń adnotację annotations.oneWindowWarning=Adnotacja do zrzutu ekranu może być otwarta tylko w jednym oknie przeglądarki. Ten zrzut zostanie otwarty bez adnotacji. -integration.incompatibleVersion=Ta wersja wtyczki Zotero Word nie jest kompatybilna z zainstalowaną wersją rozszerzenia Zotero. Proszę sprawdzić, czy są zainstalowane aktualne wersje obu komponentów. +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=Pola integration.referenceMarks.label=Znaki odniesienia integration.fields.caption=Jest mało prawdopodobne, by znaki odniesienia w programie Microsoft Word były przypadkiem modyfikowane, ale nie mogą być wspóldzielone z programem OpenOffice.org. @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=Zawsze korzystaj z tej sekcji. integration.deleteCitedItem.title=Czy chcesz usunąć tę pozycję bibliograficzną? integration.deleteCitedItem.body=W tekście dokumentu znajdują się odwołania do tej pozycji bibliograficznej. Usunięcie jej spowoduje usunięcie wszystkich odwołań. -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +styles.installStyle=Zainstalować styl "%1$S" z %2$S? +styles.updateStyle=Czy zastąpić istniejący styl "%1$S" stylem "%2$S" pobranym z %3$S? +styles.installed=Styl "%S" został zainstalowany. +styles.installError=%S nie jest prawidłowym plikiem CSL. diff --git a/chrome/locale/pt-BR/zotero/preferences.dtd b/chrome/locale/pt-BR/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> diff --git a/chrome/locale/pt-BR/zotero/zotero.properties b/chrome/locale/pt-BR/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/pt-PT/zotero/preferences.dtd b/chrome/locale/pt-PT/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> diff --git a/chrome/locale/pt-PT/zotero/zotero.properties b/chrome/locale/pt-PT/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/ro-RO/zotero/preferences.dtd b/chrome/locale/ro-RO/zotero/preferences.dtd @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "Exportare"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> +<!ENTITY zotero.preferences.citationOptions.caption "Opţiuni citare"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URL-urile articolelor în referinţe"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Când această opţiune nu este funcţională, Zotero include URL-urile în timp ce citează articole de jurnale, reviste şi ziare doar dacă pentru articol nu a s-a specificat un interval de pagini."> <!ENTITY zotero.preferences.quickCopy.caption "Copiere rapidă"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Stil implicit de formatare:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Notă: Formatarea RTF se va pierde pe Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Setări specifice site:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domeniu/Cale"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(ex. wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Stil de formatare"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "Obţine stiluri suplimentare..."> <!ENTITY zotero.preferences.prefpane.keys "Scurtături de la tastatură"> @@ -86,6 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "Întreţinerea bazei de date"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Controlează integritatea bazei de date"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Resetează traducători şi stiluri..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Resetează traducători..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Resetează stiluri..."> diff --git a/chrome/locale/ro-RO/zotero/zotero.dtd b/chrome/locale/ro-RO/zotero/zotero.dtd @@ -63,7 +63,7 @@ <!ENTITY zotero.toolbar.newSavedSearch.label "Căutare salvată nouă..."> <!ENTITY zotero.toolbar.tagSelector.label "Arată/Ascunde selectorul de etichete"> <!ENTITY zotero.toolbar.actions.label "Acţiuni"> -<!ENTITY zotero.toolbar.import.label "Import..."> +<!ENTITY zotero.toolbar.import.label "Importă..."> <!ENTITY zotero.toolbar.export.label "Exportă biblioteca..."> <!ENTITY zotero.toolbar.timeline.label "Creează cronologie"> <!ENTITY zotero.toolbar.preferences.label "Preferinţe..."> diff --git a/chrome/locale/ro-RO/zotero/zotero.properties b/chrome/locale/ro-RO/zotero/zotero.properties @@ -229,7 +229,7 @@ itemFields.legislativeBody=Corp legislativ itemFields.history=Istorie itemFields.reporter=Reporter itemFields.court=Curte -itemFields.numberOfVolumes=# de volume +itemFields.numberOfVolumes=Nr. de volume itemFields.committee=Comitet itemFields.assignee=Reprezentant itemFields.patentNumber=Număr brevet @@ -294,7 +294,7 @@ itemFields.shortTitle=Titlu scurt creatorTypes.author=Autor creatorTypes.contributor=Autor secundar -creatorTypes.editor=Editor +creatorTypes.editor=Editor (coord.) creatorTypes.translator=Traducător creatorTypes.seriesEditor=Coordonator colecţie creatorTypes.interviewee=Interviu cu @@ -381,20 +381,20 @@ zotero.preferences.export.quickCopy.bibStyles=Stiluri bibliografice zotero.preferences.export.quickCopy.exportFormats=Exportă formate zotero.preferences.export.quickCopy.instructions=Copierea rapidă îţi permite să selectezi referinţele în memoria clipboard apăsând scurtătura de la tastatură (%S) sau trăgând înregistrările pe o pagină web, într-o casetă de text. -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +zotero.preferences.advanced.resetTranslatorsAndStyles=Resetează traducătorii şi stilurile +zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Toţi traducătorii sau stilurile noi ori cu modificări vor fi pierduţi/pierdute +zotero.preferences.advanced.resetTranslators=Resetează traducători +zotero.preferences.advanced.resetTranslators.changesLost=Toţi traducătorii noi sau modificaţi vor fi pierduţi +zotero.preferences.advanced.resetStyles=Resetează stiluri +zotero.preferences.advanced.resetStyles.changesLost=Toate stilurile noi sau modificate vor fi pierdute dragAndDrop.existingFiles=Fişierele următoare există deja în dosarul de destinaţie şi nu au fost copiate: dragAndDrop.filesNotFound=Următoarele fişiere nu au fost găsite şi nu pot fi copiate: fileInterface.itemsImported=Importă înregistrări... fileInterface.itemsExported=Exportă înregistrări... -fileInterface.import=Import -fileInterface.export=Export +fileInterface.import=Importă +fileInterface.export=Exportă fileInterface.exportedItems=Înregistări exportate fileInterface.imported=Importate fileInterface.fileFormatUnsupported=Niciun translator nu a fost găsit pentru fişierul dat. @@ -451,7 +451,7 @@ fulltext.indexState.partial=Parţial exportOptions.exportNotes=Export note exportOptions.exportFileData=Export fişiere -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=Exportă ca UTF-8 date.daySuffixes=, , , date.abbreviation.year=a @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Restrânge adnotare annotations.expand.tooltip=Extinde adnotare annotations.oneWindowWarning=Adnotările unui instantaneu pot fi deschise simultand doar în fereastra unui browser. Acest instantaneu va fi deschis fără adnotări. -integration.incompatibleVersion=Această versiune a plug-in-ului Word pentru Zotero este incompatibiă cu versiunea curentă instalată a extensiei Zotero din Firefox. Asigură-te, te rog, că foloseşti ultimele versiuni ale celor două componente. +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=Câmpuri integration.referenceMarks.label=Mărci pentru referinţe integration.fields.caption=Câmpurile lui Microsoft Word nu pot fi modificate accidental cu uşurinţă, dar nu pot fi nici partajate cu OpenOffice.org. @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=Întotdeauna urmează această selecţie. integration.deleteCitedItem.title=Eşti sigur că vrei să ştergi această referinţă? integration.deleteCitedItem.body=Referinţa este citată în textul documentului tău. Dacă o ştergi, toate citările vor fi şterse. -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +styles.installStyle=Să instalez stilul "%1$S" de la %2$S? +styles.updateStyle=Să actualizez stilul "%1$S" cu "%2$S" de la %3$S? +styles.installed=Stilul "%S" a fost instalat cu succes. +styles.installError=%S nu pare a fi un fişier CSL valid. diff --git a/chrome/locale/ru-RU/zotero/preferences.dtd b/chrome/locale/ru-RU/zotero/preferences.dtd @@ -38,7 +38,7 @@ <!ENTITY zotero.preferences.search.indexStats "Статистика индексации"> <!ENTITY zotero.preferences.search.indexStats.indexed "Проиндексированных:"> -<!ENTITY zotero.preferences.search.indexStats.partial "Частично проиндескированных:"> +<!ENTITY zotero.preferences.search.indexStats.partial "Частично проиндексированных:"> <!ENTITY zotero.preferences.search.indexStats.unindexed "Непроиндексированных:"> <!ENTITY zotero.preferences.search.indexStats.words "Слов:"> @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "Экспортировать"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> +<!ENTITY zotero.preferences.citationOptions.caption "Опции цитирования"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Включать URL бумажных статей в ссылках"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Когда эта опция отключена, Zotero включает URL, при цитировании журнала и газетную статью только если статья не имеет указанной страницы."> <!ENTITY zotero.preferences.quickCopy.caption "Быстро копировать"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Выходящий формат по умолчанию:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Примечание: форматирование RTF будет утрачено в Mac OS X"> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Установки для сайта:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Домен/путь"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(например wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Выходной формат"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "Загрузить дополнительные стили..."> <!ENTITY zotero.preferences.prefpane.keys "Горячие клавиши"> @@ -86,6 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "Поддержка БД"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Проверить целостность БД"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Обнулить трансляторы и стили..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Обнулить трансляторы..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Обнулить стили..."> diff --git a/chrome/locale/ru-RU/zotero/zotero.properties b/chrome/locale/ru-RU/zotero/zotero.properties @@ -1,7 +1,7 @@ extensions.zotero@chnm.gmu.edu.description=Исследовательский инструмент следующего поколения general.error=Ошибка -general.warning=Внимание +general.warning=Предупреждение general.dontShowWarningAgain=Больше не показывать это предупреждение general.browserIsOffline=%S сейчас в автономном режиме general.locate=Найти... @@ -381,12 +381,12 @@ zotero.preferences.export.quickCopy.bibStyles=Библиографические zotero.preferences.export.quickCopy.exportFormats=Форматы экспорта zotero.preferences.export.quickCopy.instructions=Быстрое копирование позволяет Вам копировать выбранные ссылки в буфер обмена, нажав горячую клавишу (%S) или перетащить документы в текстовое поле веб-страницы -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +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=Файлы не были найдены и не могут быть скопированы: @@ -451,7 +451,7 @@ fulltext.indexState.partial=Частичное exportOptions.exportNotes=Экспорт Заметок exportOptions.exportFileData=Экспорт Файлов -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=Экспортировать в UTF-8 date.daySuffixes=ый,ой, ий, ый date.abbreviation.year=г @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Свернуть аннотацию annotations.expand.tooltip=Развернуть аннотацию annotations.oneWindowWarning=Аннотации к снимку могут быть одновременно открыты только в одном окне браузера. Этот снимок будет открыт без аннотаций -integration.incompatibleVersion=Эта версия расширения Zotero для Word несовместима с текущей установленной версией расширения Zotero для Firefox. Убедитесь, что Вы используете последние версии обоих компонентов. +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 @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=Всегда следовать этому integration.deleteCitedItem.title=Вы уверены, что хотите удалить эту ссылку? integration.deleteCitedItem.body=Эта ссылка цитируется в тексте вашего документа. Удалив ее, вы удалите все цитаты -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +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/sr-YU/zotero/preferences.dtd b/chrome/locale/sr-YU/zotero/preferences.dtd @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "Извоз"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> +<!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 "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "Добави додатне стилове..."> <!ENTITY zotero.preferences.prefpane.keys "Пречице на тастатури"> @@ -86,6 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "Одржавање базе података"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Провери целовитост базе података"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Постави на почетне вредности преводиоце и стилове..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Постави на почетне вредности преводиоце..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Постави на почетне вредности стилове..."> diff --git a/chrome/locale/sr-YU/zotero/zotero.properties b/chrome/locale/sr-YU/zotero/zotero.properties @@ -6,13 +6,13 @@ general.dontShowWarningAgain=Не показуј ово упозорење по general.browserIsOffline=%S је тренутно у режиму без повезаности са мрежом. general.locate=Нађи... general.restartRequired=Поновно покретање је потребно -general.restartRequiredForChange=Фајерфокс се море поново покренути да би промена дошла у дејство. +general.restartRequiredForChange=Firefox се море поново покренути да би промена дошла у дејство. general.restartRequiredForChanges=Фајерфокс се море поново покренути да би промене дошле у дејство. general.restartNow=Поново покрени сада general.restartLater=Поново покрени касније general.errorHasOccurred=Дошло је до грешке. -general.restartFirefox=Поново покрените Фајерфокс -general.restartFirefoxAndTryAgain=Поново покрените Фајерфокс и покушајте поново. +general.restartFirefox=Поново покрените Firefox +general.restartFirefoxAndTryAgain=Поново покрените Firefox и покушајте поново. general.checkForUpdate=Проверите за ажурирања general.install=Инсталирај general.updateAvailable=Ажурирања доступна @@ -26,7 +26,7 @@ general.and=и install.quickStartGuide=Водич за брзи почетак install.quickStartGuide.message.welcome=Добродошли у Зотеро! install.quickStartGuide.message.clickViewPage=Кликните на дугме "Преглед странице" како би посетили наш Водич за брзи почетак и научили како започети скупљање, уређивање и цитирање вашег истрживачког рада. -install.quickStartGuide.message.thanks=Хвала за инсталирацију Зотера. +install.quickStartGuide.message.thanks=Хвала за инсталарацију Зотера. upgrade.failed=Надоградња Зотеро базе података је неуспешна: upgrade.advanceMessage=Притисните %S да надоградите сада. @@ -122,7 +122,7 @@ 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 белешкa: +pane.item.notes.count.singular=%S белешка: pane.item.notes.count.plural=%S белешке(и): pane.item.attachments.rename.title=Нови наслов: pane.item.attachments.rename.renameAssociatedFile=Преименујте повезану датотеку @@ -340,7 +340,7 @@ ingester.scrapeErrorDescription.linkText=Познати проблеми пре ingester.scrapeError.transactionInProgress.previousError=Процес чувања није успео због предходне грешке у Зотеру. db.dbCorrupted=Зотеро база података „%S“ изгледа оштећена. -db.dbCorrupted.restart=Поново покрените Фајерфокс да би покушали самостални повраћај података из најновије резерве. +db.dbCorrupted.restart=Поново покрените Firefox да би покушали самостални повраћај података из најновије резерве. db.dbCorruptedNoBackup=Зотеро база података „%S“ изгледа оштећена, а нема ни једне самонаправљене резервне копије. \n\nНова датотека датабазе је направљена. Оштећена датотека је сачувана у вашем Зотеро директоријуму. db.dbRestored=Зотеро база података „%1$S“ изгледа оштећена.\n\nВаши подаци су обновљени из задње самонаправљене резервне копије %2$S у %3$S. Оштећена датотека је сачувана у вашем Зотеро директоријуму. db.dbRestoreFailed=Зотеро база података „%S“ изгледа оштећена, а покушај да се поврате подаци из задње самостално направљене резерве је неуспешан.\n\nНова датотека за базу података је направљена. Оштећена датотека је сачувана у Зотеро директоријуму. @@ -381,12 +381,12 @@ zotero.preferences.export.quickCopy.bibStyles=Библиографски сти zotero.preferences.export.quickCopy.exportFormats=Извозни формат zotero.preferences.export.quickCopy.instructions=Брзо умножавање вам дозвољава да умножите изабране референце у списак исечака (clipboard) притискајући дугме за пречицу (%S) или превлачењем ставки у поље за текст на веб страници. -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +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=Следеће датотеке нису нађене и због тога нису умножене: @@ -451,7 +451,7 @@ fulltext.indexState.partial=Делимично exportOptions.exportNotes=Извези белешке exportOptions.exportFileData=Извези датотеке -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=Извези ка UTF-8 date.daySuffixes=-ог, -ог, -ег, -ог date.abbreviation.year=г @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Скупи напомену annotations.expand.tooltip=Рашири напомену annotations.oneWindowWarning=Напомене за снимак могу једино бити отворене у једном прозору веб читача истовремено. Овај снимак ће бити отворен без напомена. -integration.incompatibleVersion=Ова верзија Зотеро Word додатка није усаглашена са тренутно инсталираном верзијом Зотеро Фајерфокс проширења. Проверите да користите најновију верзију обе компоненте. +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-ом. @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=Увек прати овај избор. integration.deleteCitedItem.title=Да ли сте сигурни да желите избацити ову референцу? integration.deleteCitedItem.body=Ова референца је цитирана у тексту вашег документа. Брисање ње ће избацити све цитације. -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +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/sv-SE/zotero/preferences.dtd b/chrome/locale/sv-SE/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Site-Specific Settings:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domain/Path"> diff --git a/chrome/locale/sv-SE/zotero/zotero.properties b/chrome/locale/sv-SE/zotero/zotero.properties @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Collapse Annotation annotations.expand.tooltip=Expand Annotation annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. -integration.incompatibleVersion=This version of the Zotero Word plug-in is incompatible with the currently installed version of the Zotero Firefox extension. Please ensure you are using the latest versions of both components. +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=Fields integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. diff --git a/chrome/locale/th-TH/zotero/about.dtd b/chrome/locale/th-TH/zotero/about.dtd @@ -0,0 +1,10 @@ +<!ENTITY zotero.version "รุ่น"> +<!ENTITY zotero.createdby "สร้างโดย:"> +<!ENTITY zotero.directors "ผู้ควบคุม:"> +<!ENTITY zotero.developers "ผู้พัฒนา:"> +<!ENTITY zotero.alumni "Alumni:"> +<!ENTITY zotero.about.localizations "Localizations:"> +<!ENTITY zotero.about.additionalSoftware "Third-Party Software and Standards:"> +<!ENTITY zotero.executiveProducer "Executive Producer:"> +<!ENTITY zotero.thanks "ขอบคุณเป็นพิเศษ:"> +<!ENTITY zotero.about.close "ปิด"> diff --git a/chrome/locale/th-TH/zotero/preferences.dtd b/chrome/locale/th-TH/zotero/preferences.dtd @@ -0,0 +1,92 @@ +<!ENTITY zotero.preferences.title "Zotero Preferences"> + +<!ENTITY zotero.preferences.default "พื้นฐาน:"> + +<!ENTITY zotero.preferences.prefpane.general "ทั่วไป"> + +<!ENTITY zotero.preferences.userInterface "ส่วนต่อประสานกับผู้ใช้"> +<!ENTITY zotero.preferences.position "แสดงโซแทโร"> +<!ENTITY zotero.preferences.position.above "above"> +<!ENTITY zotero.preferences.position.below "below"> +<!ENTITY zotero.preferences.position.browser "browser content"> +<!ENTITY zotero.preferences.statusBarIcon "Status bar icon:"> +<!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 "Miscellaneous"> +<!ENTITY zotero.preferences.autoUpdate "Automatically check for updated translators"> +<!ENTITY zotero.preferences.updateNow "Update now"> +<!ENTITY zotero.preferences.reportTranslationFailure "Report broken site translators"> +<!ENTITY zotero.preferences.parseRISRefer "Use Zotero for downloaded RIS/Refer files"> +<!ENTITY zotero.preferences.automaticSnapshots "Automatically take snapshots when creating items from web pages"> +<!ENTITY zotero.preferences.downloadAssociatedFiles "Automatically attach associated PDFs and other files when saving items"> +<!ENTITY zotero.preferences.automaticTags "Automatically tag items with keywords and subject headings"> + +<!ENTITY zotero.preferences.openurl.caption "OpenURL"> + +<!ENTITY zotero.preferences.openurl.search "Search for resolvers"> +<!ENTITY zotero.preferences.openurl.custom "Custom..."> +<!ENTITY zotero.preferences.openurl.server "Resolver:"> +<!ENTITY zotero.preferences.openurl.version "Version:"> + +<!ENTITY zotero.preferences.prefpane.search "Search"> +<!ENTITY zotero.preferences.search.fulltextCache "Full-Text Cache"> +<!ENTITY zotero.preferences.search.pdfIndexing "PDF Indexing"> +<!ENTITY zotero.preferences.search.indexStats "Index Statistics"> + +<!ENTITY zotero.preferences.search.indexStats.indexed "Indexed:"> +<!ENTITY zotero.preferences.search.indexStats.partial "Partial:"> +<!ENTITY zotero.preferences.search.indexStats.unindexed "Unindexed:"> +<!ENTITY zotero.preferences.search.indexStats.words "Words:"> + +<!ENTITY zotero.preferences.fulltext.textMaxLength "Maximum characters to index per file:"> +<!ENTITY zotero.preferences.fulltext.pdfMaxPages "Maximum pages to index per file:"> + +<!ENTITY zotero.preferences.prefpane.export "Export"> + +<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> + +<!ENTITY zotero.preferences.quickCopy.caption "Quick Copy"> +<!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Default Output Format:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> +<!ENTITY zotero.preferences.quickCopy.macWarning "Note: Rich-text formatting will be lost on 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 "(e.g. wikipedia.org)"> +<!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "Output Format"> + +<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> + +<!ENTITY zotero.preferences.prefpane.keys "Shortcut 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.quicksearch "Quick Search"> +<!ENTITY zotero.preferences.keys.newItem "Create a new item"> +<!ENTITY zotero.preferences.keys.newNote "Create a new note"> +<!ENTITY zotero.preferences.keys.toggleTagSelector "Toggle Tag Selector"> +<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Copy Selected Item Citations to Clipboard"> +<!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Copy Selected Items to Clipboard"> +<!ENTITY zotero.preferences.keys.overrideGlobal "Try to override conflicting shortcuts"> +<!ENTITY zotero.preferences.keys.changesTakeEffect "Changes take effect in new windows only"> + + +<!ENTITY zotero.preferences.prefpane.advanced "Advanced"> + +<!ENTITY zotero.preferences.dataDir "Storage Location"> +<!ENTITY zotero.preferences.dataDir.useProfile "Use Firefox profile directory"> +<!ENTITY zotero.preferences.dataDir.custom "Custom:"> +<!ENTITY zotero.preferences.dataDir.choose "Choose..."> +<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory"> + +<!ENTITY zotero.preferences.dbMaintenance "Database Maintenance"> +<!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Check Database Integrity"> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> diff --git a/chrome/locale/th-TH/zotero/searchbox.dtd b/chrome/locale/th-TH/zotero/searchbox.dtd @@ -0,0 +1,23 @@ +<!ENTITY zotero.search.name "ชื่อ:"> + +<!ENTITY zotero.search.joinMode.prefix "ตรงกัน"> +<!ENTITY zotero.search.joinMode.any "ใด ๆ"> +<!ENTITY zotero.search.joinMode.all "ทั้งหมด"> +<!ENTITY zotero.search.joinMode.suffix "of the following:"> + +<!ENTITY zotero.search.recursive.label "Search subfolders"> +<!ENTITY zotero.search.noChildren "แสดงเฉพาะไอเทมบนสุด"> +<!ENTITY zotero.search.includeParentsAndChildren "Include parent and child items of matching items"> + +<!ENTITY zotero.search.textModes.phrase "Phrase"> +<!ENTITY zotero.search.textModes.phraseBinary "Phrase (incl. binary files)"> +<!ENTITY zotero.search.textModes.regexp "Regexp"> +<!ENTITY zotero.search.textModes.regexpCS "Regexp (case-sensitive)"> + +<!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/th-TH/zotero/timeline.properties b/chrome/locale/th-TH/zotero/timeline.properties @@ -0,0 +1,21 @@ +general.title=ไทม์ไลน์ของโซแทโร +general.filter=ฟิลเตอร์: +general.highlight=Highlight: +general.clearAll=เคลียร์ทั้งหมด +general.jumpToYear=ไปที่ปี: +general.firstBand=First Band: +general.secondBand=Second Band: +general.thirdBand=Third Band: +general.dateType=รูปแบบวันที่: +general.timelineHeight=Timeline Height: +general.fitToScreen=เท่ากับขนาดจอ + +interval.day=วัน +interval.month=เดือน +interval.year=ปี +interval.decade=ทศวรรษ +interval.century=ศตวรรษ +interval.millennium=สหัสวรรษ + +dateType.published=วันที่แสดง +dateType.modified=วันที่แก้ไข diff --git a/chrome/locale/th-TH/zotero/zotero.dtd b/chrome/locale/th-TH/zotero/zotero.dtd @@ -0,0 +1,153 @@ +<!ENTITY zotero.general.optional "(Optional)"> +<!ENTITY zotero.general.note "Note:"> + +<!ENTITY zotero.errorReport.unrelatedMessages "The error log may include messages unrelated to Zotero."> +<!ENTITY zotero.errorReport.additionalInfo "ข้อมูลเพิ่มเติม"> +<!ENTITY zotero.errorReport.emailAddress "อีเมลของคุณ:"> +<!ENTITY zotero.errorReport.errorSteps "What were you doing when the error occurred? If possible, please include steps to reproduce the error."> +<!ENTITY zotero.errorReport.submissionInProgress "โปรดรอในระหว่างที่รายงานข้อผิดพลาดกำลังส่งอยู่"> +<!ENTITY zotero.errorReport.submitted "รายงานข้อผิดพลาดได้รับการส่งเรียบร้อยแล้ว"> +<!ENTITY zotero.errorReport.reportID "รหัสรายงาน:"> +<!ENTITY zotero.errorReport.furtherAssistance "See the Known Issues page and the forums for further assistance."> +<!ENTITY zotero.errorReport.includeReportID "Please include the Report ID in any correspondence with the Zotero developers regarding this issue."> + +<!ENTITY zotero.upgrade.newVersionInstalled "You have installed a new version of Zotero."> +<!ENTITY zotero.upgrade.upgradeRequired "ฐานข้อมูลโซแทโรของท่าน จำเป็นต้องอัพเกรดก่อนเพื่อให้ทำงานได้กับรุ่นใหม่"> +<!ENTITY zotero.upgrade.autoBackup "ฐานข้อมูลปัจจุบันของท่านจะได้รับการทำสำรองไว้โดยอัตโนมัติ ก่อนที่จะมีการเปลี่ยนแปลงใด ๆ เกิดขึ้น"> +<!ENTITY zotero.upgrade.upgradeInProgress "โปรดรอจนกว่าจะบวนการอัพเกรดจะเสร็จสิ้น ซึ่งอาจใช้เวลาหลายนาที"> +<!ENTITY zotero.upgrade.upgradeSucceeded "ฐานข้อมูลโซแทโรของท่านได้รับการอัพเกรดแล้ว"> +<!ENTITY zotero.upgrade.changeLogBeforeLink "โปรดดู"> +<!ENTITY zotero.upgrade.changeLogLink "the changelog"> +<!ENTITY zotero.upgrade.changeLogAfterLink "ดูว่ามีอะไรใหม่"> + +<!ENTITY zotero.contextMenu.addTextToCurrentNote "Add Selection to Zotero Note"> +<!ENTITY zotero.contextMenu.addTextToNewNote "Create Zotero Item and Note from Selection"> +<!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 "Related"> +<!ENTITY zotero.notes.separate "Edit in a separate window"> + +<!ENTITY zotero.items.type_column "รูปแบบ"> +<!ENTITY zotero.items.title_column "Title"> +<!ENTITY zotero.items.creator_column "Creator"> +<!ENTITY zotero.items.date_column "วันที่"> +<!ENTITY zotero.items.year_column "ปี"> +<!ENTITY zotero.items.publisher_column "Publisher"> +<!ENTITY zotero.items.language_column "ภาษา"> +<!ENTITY zotero.items.callNumber_column "Call Number"> +<!ENTITY zotero.items.repository_column "Repository"> +<!ENTITY zotero.items.rights_column "Rights"> +<!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 "Add Note"> +<!ENTITY zotero.items.menu.attach.snapshot "Attach Snapshot of Current Page"> +<!ENTITY zotero.items.menu.attach.link "Attach Link to Current Page"> +<!ENTITY zotero.items.menu.duplicateItem "Duplicate Selected Item"> + +<!ENTITY zotero.collections.name_column "Collections"> + +<!ENTITY zotero.toolbar.newItem.label "New Item"> +<!ENTITY zotero.toolbar.moreItemTypes.label "More"> +<!ENTITY zotero.toolbar.newItemFromPage.label "Create New Item from Current Page"> +<!ENTITY zotero.toolbar.removeItem.label "Remove Item..."> +<!ENTITY zotero.toolbar.newCollection.label "New Collection..."> +<!ENTITY zotero.toolbar.newSubcollection.label "New Subcollection..."> +<!ENTITY zotero.toolbar.newSavedSearch.label "New Saved Search..."> +<!ENTITY zotero.toolbar.tagSelector.label "Show/Hide Tag Selector"> +<!ENTITY zotero.toolbar.actions.label "Actions"> +<!ENTITY zotero.toolbar.import.label "Import..."> +<!ENTITY zotero.toolbar.export.label "Export Library..."> +<!ENTITY zotero.toolbar.timeline.label "Create Timeline"> +<!ENTITY zotero.toolbar.preferences.label "Preferences..."> +<!ENTITY zotero.toolbar.documentation.label "Documentation"> +<!ENTITY zotero.toolbar.about.label "About Zotero"> +<!ENTITY zotero.toolbar.advancedSearch "Advanced Search"> +<!ENTITY zotero.toolbar.search.label "Search:"> +<!ENTITY zotero.toolbar.fullscreen.tooltip "Toggle Fullscreen Mode"> +<!ENTITY zotero.toolbar.openURL.label "Locate"> +<!ENTITY zotero.toolbar.openURL.tooltip "Find through your local library"> + +<!ENTITY zotero.item.add "Add"> +<!ENTITY zotero.item.attachment.file.show "Show File"> +<!ENTITY zotero.item.textTransform "Transform Text"> +<!ENTITY zotero.item.textTransform.lowercase "lower case"> +<!ENTITY zotero.item.textTransform.titlecase "Title Case"> + +<!ENTITY zotero.toolbar.note.standalone "New Standalone Note"> +<!ENTITY zotero.toolbar.attachment.linked "Link to File..."> +<!ENTITY zotero.toolbar.attachment.add "Store Copy of File..."> +<!ENTITY zotero.toolbar.attachment.weblink "Save Link to Current Page"> +<!ENTITY zotero.toolbar.attachment.snapshot "Take Snapshot of Current Page"> + +<!ENTITY zotero.tagSelector.noTagsToDisplay "No tags to display"> +<!ENTITY zotero.tagSelector.filter "Filter:"> +<!ENTITY zotero.tagSelector.showAutomatic "Show automatic"> +<!ENTITY zotero.tagSelector.displayAll "Display all tags"> +<!ENTITY zotero.tagSelector.selectVisible "Select visible"> +<!ENTITY zotero.tagSelector.clearVisible "Deselect visible"> +<!ENTITY zotero.tagSelector.clearAll "Deselect all"> +<!ENTITY zotero.tagSelector.renameTag "Rename Tag..."> +<!ENTITY zotero.tagSelector.deleteTag "Delete Tag..."> + +<!ENTITY zotero.selectitems.title "Select Items"> +<!ENTITY zotero.selectitems.intro.label "Select which items you'd like to add to your library"> +<!ENTITY zotero.selectitems.cancel.label "Cancel"> +<!ENTITY zotero.selectitems.select.label "OK"> + +<!ENTITY zotero.bibliography.title "Create Bibliography"> +<!ENTITY zotero.bibliography.style.label "Citation Style:"> +<!ENTITY zotero.bibliography.output.label "Output Format"> +<!ENTITY zotero.bibliography.saveAsRTF.label "Save as RTF"> +<!ENTITY zotero.bibliography.saveAsHTML.label "Save as HTML"> +<!ENTITY zotero.bibliography.copyToClipboard.label "Copy to Clipboard"> +<!ENTITY zotero.bibliography.macClipboardWarning "(Rich-text formatting will be lost.)"> +<!ENTITY zotero.bibliography.print.label "Print"> + +<!ENTITY zotero.integration.docPrefs.title "Document Preferences"> +<!ENTITY zotero.integration.addEditCitation.title "Add/Edit Citation"> +<!ENTITY zotero.integration.editBibliography.title "Edit Bibliography"> + +<!ENTITY zotero.progress.title "Progress"> + +<!ENTITY zotero.exportOptions.title "Export..."> +<!ENTITY zotero.exportOptions.format.label "Format:"> +<!ENTITY zotero.exportOptions.translatorOptions.label "Translator Options"> + +<!ENTITY zotero.citation.keepSorted.label "Keep Sources Sorted"> + +<!ENTITY zotero.citation.page "Page"> +<!ENTITY zotero.citation.paragraph "Paragraph"> +<!ENTITY zotero.citation.line "Line"> +<!ENTITY zotero.citation.suppressAuthor.label "Suppress Author"> +<!ENTITY zotero.citation.prefix.label "Prefix:"> +<!ENTITY zotero.citation.suffix.label "Suffix:"> + +<!ENTITY zotero.richText.italic.label "Italic"> +<!ENTITY zotero.richText.bold.label "Bold"> +<!ENTITY zotero.richText.underline.label "Underline"> +<!ENTITY zotero.richText.superscript.label "Superscript"> +<!ENTITY zotero.richText.subscript.label "Subscript"> + +<!ENTITY zotero.annotate.toolbar.add.label "Add Annotation"> +<!ENTITY zotero.annotate.toolbar.collapse.label "Collapse All Annotations"> +<!ENTITY zotero.annotate.toolbar.expand.label "Expand All Annotations"> +<!ENTITY zotero.annotate.toolbar.highlight.label "Highlight Text"> +<!ENTITY zotero.annotate.toolbar.unhighlight.label "Unhighlight Text"> + +<!ENTITY zotero.integration.prefs.displayAs.label "Display Citations As:"> +<!ENTITY zotero.integration.prefs.footnotes.label "Footnotes"> +<!ENTITY zotero.integration.prefs.endnotes.label "Endnotes"> + +<!ENTITY zotero.integration.prefs.formatUsing.label "Format Using:"> +<!ENTITY zotero.integration.prefs.bookmarks.label "Bookmarks"> +<!ENTITY zotero.integration.prefs.bookmarks.caption "Bookmarks are preserved across Microsoft Word and OpenOffice.org, but may be accidentally modified."> + +<!ENTITY zotero.integration.references.label "References in Bibliography"> diff --git a/chrome/locale/th-TH/zotero/zotero.properties b/chrome/locale/th-TH/zotero/zotero.properties @@ -0,0 +1,495 @@ +extensions.zotero@chnm.gmu.edu.description=The Next-Generation Research Tool + +general.error=ผิดพลาด +general.warning=คำเตือน +general.dontShowWarningAgain=ไม่ต้องแสดงคำเตือนนี้อีก +general.browserIsOffline=%S อยู่ในสถานะออฟไลน์ +general.locate=Locate... +general.restartRequired=ต้องการการเริ่มใหม่ +general.restartRequiredForChange=จำเป็นต้องปิดและเรียกใช้ไฟล์ฟอกซ์ใหม่ เพื่อให้การเปลี่ยนแปลงมีผล +general.restartRequiredForChanges=จำเป็นต้องปิดและเรียกใช้ไฟล์ฟอกซ์ใหม่ เพื่อให้การเปลี่ยนแปลงมีผล +general.restartNow=เริ่มใหม่เดี๋ยวนี้ +general.restartLater=เริ่มใหม่ทีหลัง +general.errorHasOccurred=เกิดข้อผิดพลาด +general.restartFirefox=โปรดเริ่มไฟล์ฟอกซ์ใหม่ +general.restartFirefoxAndTryAgain=โปรดเริ่มไฟล์ฟอกซ์ใหม่และทดลองอีกครั้ง +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=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=ขอบคุณที่ติดตั้งโซแทโร + +upgrade.failed=Upgrading of the Zotero database failed: +upgrade.advanceMessage=กด %S เพื่ออัพเกรดทันที + +errorReport.reportErrors=Report Errors... +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. +errorReport.stepsToReproduce=Steps to Reproduce: +errorReport.expectedResult=Expected result: +errorReport.actualResult=Actual result: + +dataDir.notFound=The Zotero data directory could not be found. +dataDir.previousDir=Previous directory: +dataDir.useProfileDir=Use Firefox profile directory +dataDir.selectDir=Select a Zotero data directory +dataDir.selectedDirNonEmpty.title=Directory Not Empty +dataDir.selectedDirNonEmpty.text=The directory you selected is not empty and does not appear to be a Zotero data directory.\n\nCreate Zotero files in this directory anyway? + +startupError=There was an error starting Zotero. + +pane.collections.delete=Are you sure you want to delete the selected collection? +pane.collections.deleteSearch=Are you sure you want to delete the selected search? +pane.collections.newCollection=New Collection +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.menu.rename.collection=Rename Collection... +pane.collections.menu.edit.savedSearch=Edit Saved Search +pane.collections.menu.remove.collection=Remove Collection... +pane.collections.menu.remove.savedSearch=Remove Saved Search... +pane.collections.menu.export.collection=Export Collection... +pane.collections.menu.export.savedSearch=Export Saved Search... +pane.collections.menu.createBib.collection=Create Bibliography From Collection... +pane.collections.menu.createBib.savedSearch=Create Bibliography From Saved Search... + +pane.collections.menu.generateReport.collection=Generate Report from Collection... +pane.collections.menu.generateReport.savedSearch=Generate Report from Saved Search... + +pane.tagSelector.rename.title=Rename Tag +pane.tagSelector.rename.message=Please enter a new name for this tag.\n\nThe tag will be changed in all associated items. +pane.tagSelector.delete.title=Delete Tag +pane.tagSelector.delete.message=Are you sure you want to delete this tag?\n\nThe tag will be removed from all items. +pane.tagSelector.numSelected.none=0 tags selected +pane.tagSelector.numSelected.singular=%S tag selected +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.attached=Erase attached notes and files +pane.items.menu.remove=Remove Selected Item +pane.items.menu.remove.multiple=Remove Selected Items +pane.items.menu.erase=Delete Selected Item from Library... +pane.items.menu.erase.multiple=Delete Selected Items from Library... +pane.items.menu.export=Export Selected Item... +pane.items.menu.export.multiple=Export Selected Items... +pane.items.menu.createBib=Create Bibliography from Selected Item... +pane.items.menu.createBib.multiple=Create Bibliography from Selected Items... +pane.items.menu.generateReport=Generate Report from Selected Item... +pane.items.menu.generateReport.multiple=Generate Report from Selected Items... +pane.items.menu.reindexItem=Reindex Item +pane.items.menu.reindexItem.multiple=Reindex Items + +pane.items.letter.oneParticipant=Letter to %S +pane.items.letter.twoParticipants=Letter to %S and %S +pane.items.letter.threeParticipants=Letter to %S, %S, and %S +pane.items.letter.manyParticipants=Letter to %S et al. +pane.items.interview.oneParticipant=Interview by %S +pane.items.interview.twoParticipants=Interview by %S and %S +pane.items.interview.threeParticipants=Interview by %S, %S, and %S +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.tooltip=Go to this item online +pane.item.goToURL.snapshot.label=View Snapshot +pane.item.goToURL.snapshot.tooltip=View snapshot for this item +pane.item.changeType.title=Change Item Type +pane.item.changeType.text=Are you sure you want to change the item type?\n\nThe following fields will be lost: +pane.item.defaultFirstName=first +pane.item.defaultLastName=last +pane.item.defaultFullName=full name +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.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.attachments.rename.title=New 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=View Page +pane.item.attachments.view.snapshot=View Snapshot +pane.item.attachments.view.file=View File +pane.item.attachments.fileNotFound.title=File Not Found +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.select=Select a File +pane.item.noteEditor.clickHere=click here +pane.item.tags=Tags: +pane.item.tags.count.zero=%S tags: +pane.item.tags.count.singular=%S tag: +pane.item.tags.count.plural=%S tags: +pane.item.tags.icon.user=User-added tag +pane.item.tags.icon.automatic=Automatically added tag +pane.item.related=Related: +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 + +itemTypes.note=Note +itemTypes.attachment=Attachment +itemTypes.book=Book +itemTypes.bookSection=Book Section +itemTypes.journalArticle=Journal Article +itemTypes.magazineArticle=Magazine Article +itemTypes.newspaperArticle=Newspaper Article +itemTypes.thesis=Thesis +itemTypes.letter=Letter +itemTypes.manuscript=Manuscript +itemTypes.interview=Interview +itemTypes.film=Film +itemTypes.artwork=Artwork +itemTypes.webpage=Web Page +itemTypes.report=Report +itemTypes.bill=Bill +itemTypes.case=Case +itemTypes.hearing=Hearing +itemTypes.patent=Patent +itemTypes.statute=Statute +itemTypes.email=E-mail +itemTypes.map=Map +itemTypes.blogPost=Blog Post +itemTypes.instantMessage=Instant Message +itemTypes.forumPost=Forum Post +itemTypes.audioRecording=Audio Recording +itemTypes.presentation=Presentation +itemTypes.videoRecording=Video Recording +itemTypes.tvBroadcast=TV Broadcast +itemTypes.radioBroadcast=Radio Broadcast +itemTypes.podcast=Podcast +itemTypes.computerProgram=Computer Program +itemTypes.conferencePaper=Conference Paper +itemTypes.document=Document +itemTypes.encyclopediaArticle=Encyclopedia Article +itemTypes.dictionaryEntry=Dictionary Entry + +itemFields.itemType=Type +itemFields.title=Title +itemFields.dateAdded=Date Added +itemFields.dateModified=Modified +itemFields.source=Source +itemFields.notes=Notes +itemFields.tags=Tags +itemFields.attachments=Attachments +itemFields.related=Related +itemFields.url=URL +itemFields.rights=Rights +itemFields.series=Series +itemFields.volume=Volume +itemFields.issue=Issue +itemFields.edition=Edition +itemFields.place=Place +itemFields.publisher=Publisher +itemFields.pages=Pages +itemFields.ISBN=ISBN +itemFields.publicationTitle=Publication +itemFields.ISSN=ISSN +itemFields.date=Date +itemFields.section=Section +itemFields.callNumber=Call Number +itemFields.archiveLocation=Loc. in Archive +itemFields.distributor=Distributor +itemFields.extra=Extra +itemFields.journalAbbreviation=Journal Abbr +itemFields.DOI=DOI +itemFields.accessDate=Accessed +itemFields.seriesTitle=Series Title +itemFields.seriesText=Series Text +itemFields.seriesNumber=Series Number +itemFields.institution=Institution +itemFields.reportType=Report Type +itemFields.code=Code +itemFields.session=Session +itemFields.legislativeBody=Legislative Body +itemFields.history=History +itemFields.reporter=Reporter +itemFields.court=Court +itemFields.numberOfVolumes=# of Volumes +itemFields.committee=Committee +itemFields.assignee=Assignee +itemFields.patentNumber=Patent Number +itemFields.priorityNumbers=Priority Numbers +itemFields.issueDate=Issue Date +itemFields.references=References +itemFields.legalStatus=Legal Status +itemFields.codeNumber=Code Number +itemFields.artworkMedium=Medium +itemFields.number=Number +itemFields.artworkSize=Artwork Size +itemFields.repository=Repository +itemFields.videoRecordingType=Recording Type +itemFields.interviewMedium=Medium +itemFields.letterType=Type +itemFields.manuscriptType=Type +itemFields.mapType=Type +itemFields.scale=Scale +itemFields.thesisType=Type +itemFields.websiteType=Website Type +itemFields.audioRecordingType=Recording Type +itemFields.label=Label +itemFields.presentationType=Type +itemFields.meetingName=Meeting Name +itemFields.studio=Studio +itemFields.runningTime=Running Time +itemFields.network=Network +itemFields.postType=Post Type +itemFields.audioFileType=File Type +itemFields.version=Version +itemFields.system=System +itemFields.company=Company +itemFields.conferenceName=Conference Name +itemFields.encyclopediaTitle=Encyclopedia Title +itemFields.dictionaryTitle=Dictionary Title +itemFields.language=Language +itemFields.programmingLanguage=Language +itemFields.university=University +itemFields.abstractNote=Abstract +itemFields.websiteTitle=Website Title +itemFields.reportNumber=Report Number +itemFields.billNumber=Bill Number +itemFields.codeVolume=Code Volume +itemFields.codePages=Code Pages +itemFields.dateDecided=Date Decided +itemFields.reporterVolume=Reporter Volume +itemFields.firstPage=First Page +itemFields.documentNumber=Document Number +itemFields.dateEnacted=Date Enacted +itemFields.publicLawNumber=Public Law Number +itemFields.country=Country +itemFields.applicationNumber=Application Number +itemFields.forumTitle=Forum/Listserv Title +itemFields.episodeNumber=Episode Number +itemFields.blogTitle=Blog Title +itemFields.caseName=Case Name +itemFields.nameOfAct=Name of Act +itemFields.subject=Subject +itemFields.proceedingsTitle=Proceedings Title +itemFields.bookTitle=Book Title +itemFields.shortTitle=Short Title + +creatorTypes.author=Author +creatorTypes.contributor=Contributor +creatorTypes.editor=Editor +creatorTypes.translator=Translator +creatorTypes.seriesEditor=Series Editor +creatorTypes.interviewee=Interview With +creatorTypes.interviewer=Interviewer +creatorTypes.director=Director +creatorTypes.scriptwriter=Scriptwriter +creatorTypes.producer=Producer +creatorTypes.castMember=Cast Member +creatorTypes.sponsor=Sponsor +creatorTypes.counsel=Counsel +creatorTypes.inventor=Inventor +creatorTypes.attorneyAgent=Attorney/Agent +creatorTypes.recipient=Recipient +creatorTypes.performer=Performer +creatorTypes.composer=Composer +creatorTypes.wordsBy=Words By +creatorTypes.cartographer=Cartographer +creatorTypes.programmer=Programmer +creatorTypes.reviewedAuthor=Reviewed Author +creatorTypes.artist=Artist +creatorTypes.commenter=Commenter +creatorTypes.presenter=Presenter +creatorTypes.guest=Guest +creatorTypes.podcaster=Podcaster + +fileTypes.webpage=Web Page +fileTypes.image=Image +fileTypes.pdf=PDF +fileTypes.audio=Audio +fileTypes.video=Video +fileTypes.presentation=Presentation +fileTypes.document=Document + +save.attachment=Saving Snapshot... +save.link=Saving Link... + +ingester.saveToZotero=Save to Zotero +ingester.scraping=Saving Item... +ingester.scrapeComplete=Item Saved +ingester.scrapeError=Could Not Save Item +ingester.scrapeErrorDescription=An error occurred while saving this item. Check %S for more information. +ingester.scrapeErrorDescription.linkText=Known Translator Issues +ingester.scrapeError.transactionInProgress.previousError=The saving process failed due to a previous Zotero error. + +db.dbCorrupted=The Zotero database '%S' appears to have become corrupted. +db.dbCorrupted.restart=Please restart Firefox to attempt an automatic restore from the last backup. +db.dbCorruptedNoBackup=The Zotero database '%S' appears to have become corrupted, and no automatic backup is available.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. +db.dbRestored=The Zotero database '%1$S' appears to have become corrupted.\n\nYour data was restored from the last automatic backup made on %2$S at %3$S. The damaged file was saved in your Zotero directory. +db.dbRestoreFailed=The Zotero database '%S' appears to have become corrupted, and an attempt to restore from the last automatic backup failed.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. + +db.integrityCheck.passed=No errors were found in the database. +db.integrityCheck.failed=Errors were found in the Zotero database! + +zotero.preferences.update.updated=Updated +zotero.preferences.update.upToDate=Up to date +zotero.preferences.update.error=Error +zotero.preferences.openurl.resolversFound.zero=%S resolvers found +zotero.preferences.openurl.resolversFound.singular=%S resolver found +zotero.preferences.openurl.resolversFound.plural=%S resolvers found +zotero.preferences.search.rebuildIndex=Rebuild Index +zotero.preferences.search.rebuildWarning=Do you want to rebuild the entire index? This may take a while.\n\nTo index only items that haven't been indexed, use %S. +zotero.preferences.search.clearIndex=Clear Index +zotero.preferences.search.clearWarning=After clearing the index, attachment content will no longer be searchable.\n\nWeb link attachments cannot be reindexed without revisiting the page. To leave web links indexed, choose %S. +zotero.preferences.search.clearNonLinkedURLs=Clear All Except Web Links +zotero.preferences.search.indexUnindexed=Index Unindexed Items +zotero.preferences.search.pdf.toolRegistered=%S is installed +zotero.preferences.search.pdf.toolNotRegistered=%S is NOT installed +zotero.preferences.search.pdf.toolsRequired=PDF indexing requires the %1$S and %2$S utilities from the %3$S project. +zotero.preferences.search.pdf.automaticInstall=Zotero can automatically download and install these applications from zotero.org for certain platforms. +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.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.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. +zotero.preferences.search.pdf.tryAgainOrViewManualInstructions=Please try again later, or view the documentation for manual installation instructions. +zotero.preferences.export.quickCopy.bibStyles=Bibliographic Styles +zotero.preferences.export.quickCopy.exportFormats=Export Formats +zotero.preferences.export.quickCopy.instructions=Quick Copy allows you to copy selected references to the clipboard by pressing a shortcut key (%S) or dragging items into a text box on a web page. + +zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles +zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. +zotero.preferences.advanced.resetTranslators=Reset Translators +zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. +zotero.preferences.advanced.resetStyles=Reset Styles +zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. + +dragAndDrop.existingFiles=The following files already existed in the destination directory and were not copied: +dragAndDrop.filesNotFound=The following files were not found and could not be copied: + +fileInterface.itemsImported=Importing items... +fileInterface.itemsExported=Exporting items... +fileInterface.import=Import +fileInterface.export=Export +fileInterface.exportedItems=Exported Items +fileInterface.imported=Imported +fileInterface.fileFormatUnsupported=No translator could be found for the given file. +fileInterface.untitledBibliography=Untitled Bibliography +fileInterface.bibliographyHTMLTitle=Bibliography +fileInterface.importError=An error occurred while trying to import the selected file. Please ensure that the file is valid and try again. +fileInterface.noReferencesError=The items you have selected contain no references. Please select one or more references and try again. +fileInterface.bibliographyGenerationError=An error occurred generating your bibliography. Please try again. +fileInterface.exportError=An error occurred while trying to export the selected file. + +advancedSearchMode=Advanced search mode — press Enter to search. +searchInProgress=Search in progress — please wait. + +searchOperator.is=is +searchOperator.isNot=is not +searchOperator.beginsWith=begins with +searchOperator.contains=contains +searchOperator.doesNotContain=does not contain +searchOperator.isLessThan=is less than +searchOperator.isGreaterThan=is greater than +searchOperator.isBefore=is before +searchOperator.isAfter=is after +searchOperator.isInTheLast=is in the last + +searchConditions.tooltip.fields=Fields: +searchConditions.collectionID=Collection +searchConditions.itemTypeID=Item Type +searchConditions.tag=Tag +searchConditions.note=Note +searchConditions.childNote=Child Note +searchConditions.creator=Creator +searchConditions.type=Type +searchConditions.thesisType=Thesis Type +searchConditions.reportType=Report Type +searchConditions.videoRecordingType=Video Recording Type +searchConditions.audioFileType=Audio File Type +searchConditions.audioRecordingType=Audio Recording Type +searchConditions.letterType=Letter Type +searchConditions.interviewMedium=Interview Medium +searchConditions.manuscriptType=Manuscript Type +searchConditions.presentationType=Presentation Type +searchConditions.mapType=Map Type +searchConditions.medium=Medium +searchConditions.artworkMedium=Artwork Medium +searchConditions.dateModified=Date Modified +searchConditions.fulltextContent=Attachment Content +searchConditions.programmingLanguage=Programming Language +searchConditions.fileTypeID=Attachment File Type +searchConditions.annotation=Annotation + +fulltext.indexState.indexed=Indexed +fulltext.indexState.unavailable=Unknown +fulltext.indexState.partial=Partial + +exportOptions.exportNotes=Export Notes +exportOptions.exportFileData=Export Files +exportOptions.UTF8=Export as UTF-8 + +date.daySuffixes=st, nd, rd, th +date.abbreviation.year=y +date.abbreviation.month=m +date.abbreviation.day=d + +citation.multipleSources=Multiple Sources... +citation.singleSource=Single Source... +citation.showEditor=Show Editor... +citation.hideEditor=Hide Editor... + +report.title.default=Zotero Report +report.parentItem=Parent Item: +report.notes=Notes: +report.tags=Tags: + +annotations.confirmClose.title=Are you sure you want to close this annotation? +annotations.confirmClose.body=All text will be lost. +annotations.close.tooltip=Delete Annotation +annotations.move.tooltip=Move Annotation +annotations.collapse.tooltip=Collapse Annotation +annotations.expand.tooltip=Expand Annotation +annotations.oneWindowWarning=Annotations for a snapshot may only be opened in one browser window simultaneously. This snapshot will be opened without annotations. + +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=Fields +integration.referenceMarks.label=ReferenceMarks +integration.fields.caption=Microsoft Word Fields are less likely to be accidentally modified, but cannot be shared with OpenOffice.org. +integration.referenceMarks.caption=OpenOffice.org ReferenceMarks are less likely to be accidentally modified, but cannot be shared with Microsoft Word. + +integration.regenerate.title=Do you want to regenerate the citation? +integration.regenerate.body=The changes you have made in the citation editor will be lost. +integration.regenerate.saveBehavior=Always follow this selection. + +integration.deleteCitedItem.title=Are you sure you want to remove this reference? +integration.deleteCitedItem.body=This reference is cited in the text of your document. Deleting it will remove all citations. + +styles.installStyle=Install style "%1$S" from %2$S? +styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? +styles.installed=The style "%S" was installed successfully. +styles.installError=%S does not appear to be a valid CSL file. diff --git a/chrome/locale/tr-TR/zotero/about.dtd b/chrome/locale/tr-TR/zotero/about.dtd @@ -2,9 +2,9 @@ <!ENTITY zotero.createdby "Yaratan:"> <!ENTITY zotero.directors "Yöneticiler:"> <!ENTITY zotero.developers "Geliştiriciler:"> -<!ENTITY zotero.alumni "Alumni:"> +<!ENTITY zotero.alumni "Mezun:"> <!ENTITY zotero.about.localizations "Yerelleştirenler:"> -<!ENTITY zotero.about.additionalSoftware "Third-Party Software and Standards:"> +<!ENTITY zotero.about.additionalSoftware "Üçüncü Parti Yazılımlar ve Standartlar:"> <!ENTITY zotero.executiveProducer "Uygulayıcı Yapımcı:"> <!ENTITY zotero.thanks "Özel teşekkürler:"> <!ENTITY zotero.about.close "Kapat"> diff --git a/chrome/locale/tr-TR/zotero/preferences.dtd b/chrome/locale/tr-TR/zotero/preferences.dtd @@ -10,24 +10,24 @@ <!ENTITY zotero.preferences.position.below "Alt"> <!ENTITY zotero.preferences.position.browser "tarayıcı içeriği"> <!ENTITY zotero.preferences.statusBarIcon "Durum çubuğu simgesi:"> -<!ENTITY zotero.preferences.statusBarIcon.none "None"> +<!ENTITY zotero.preferences.statusBarIcon.none "Hiçbiri"> <!ENTITY zotero.preferences.fontSize "Font boyu:"> <!ENTITY zotero.preferences.fontSize.small "Küçük"> <!ENTITY zotero.preferences.fontSize.medium "Orta"> <!ENTITY zotero.preferences.fontSize.large "Büyük"> <!ENTITY zotero.preferences.miscellaneous "Çeşitli"> -<!ENTITY zotero.preferences.autoUpdate "Automatically check for updated translators"> +<!ENTITY zotero.preferences.autoUpdate "Güncel çevirmenler için otomatik kontrol yap"> <!ENTITY zotero.preferences.updateNow "Şimdi Güncelle"> <!ENTITY zotero.preferences.reportTranslationFailure "Bozuk site çevirilerini raporla"> -<!ENTITY zotero.preferences.parseRISRefer "Use Zotero for downloaded RIS/Refer files"> +<!ENTITY zotero.preferences.parseRISRefer "İndirilmiş RIS/Refer dosyaları için Zotero'yu kullan"> <!ENTITY zotero.preferences.automaticSnapshots "Web sayfalarından eserler yaratılırken sayfa görünümü otomatik olarak kaydet"> <!ENTITY zotero.preferences.downloadAssociatedFiles "Eserleri kaydederken birleşik PDF ve diğer dosyaları da otomatik olarak ekle"> <!ENTITY zotero.preferences.automaticTags "Anahtar kelimeler ve konu başlıkları ile eserleri otomatik olarak etiketle"> <!ENTITY zotero.preferences.openurl.caption "OpenURL"> -<!ENTITY zotero.preferences.openurl.search "Search for resolvers"> +<!ENTITY zotero.preferences.openurl.search "Resolvers'ler için ara"> <!ENTITY zotero.preferences.openurl.custom "Özel"> <!ENTITY zotero.preferences.openurl.server "Resolver:"> <!ENTITY zotero.preferences.openurl.version "Sürüm:"> @@ -37,10 +37,10 @@ <!ENTITY zotero.preferences.search.pdfIndexing "PDF Dizinleme"> <!ENTITY zotero.preferences.search.indexStats "Dizin İstatistikleri"> -<!ENTITY zotero.preferences.search.indexStats.indexed "Indexed:"> -<!ENTITY zotero.preferences.search.indexStats.partial "Partial:"> -<!ENTITY zotero.preferences.search.indexStats.unindexed "Unindexed:"> -<!ENTITY zotero.preferences.search.indexStats.words "Words:"> +<!ENTITY zotero.preferences.search.indexStats.indexed "Dizinli"> +<!ENTITY zotero.preferences.search.indexStats.partial "Kısmi:"> +<!ENTITY zotero.preferences.search.indexStats.unindexed "Dizinlenmemiş:"> +<!ENTITY zotero.preferences.search.indexStats.words "Kelimeler:"> <!ENTITY zotero.preferences.fulltext.textMaxLength "Her dosyayı dizinlemek için en fazla karakter:"> <!ENTITY zotero.preferences.fulltext.pdfMaxPages "Her dosyada dizinlenecek en fazla sayfa sayısı:"> @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Çabuk Kopyala"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Varsayılan Çıktı Biçimi:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Uyarı: Zengin-metin biçimi Mac OS X'de kaybolacaktır."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Siteye Özgü Ayarlar:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Etki alanı/Yol"> @@ -70,7 +71,7 @@ <!ENTITY zotero.preferences.keys.newItem "Yeni eser yarat"> <!ENTITY zotero.preferences.keys.newNote "Yeni not yarat"> <!ENTITY zotero.preferences.keys.toggleTagSelector "Konu Seçiciyi Aç"> -<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Copy Selected Item Citations to Clipboard"> +<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Seçili eserin Atıflarını Pano'ya kopyala"> <!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Seçilen eserleri panoya kopyala"> <!ENTITY zotero.preferences.keys.overrideGlobal "Çelişen kısayolların üzerine yazdırmayı dene"> <!ENTITY zotero.preferences.keys.changesTakeEffect "Değişiklikler yeni açılan pencerelerde etkili olacaktır."> @@ -82,10 +83,10 @@ <!ENTITY zotero.preferences.dataDir.useProfile "Firefox profil dizinini kullan"> <!ENTITY zotero.preferences.dataDir.custom "Özel:"> <!ENTITY zotero.preferences.dataDir.choose "Seç..."> -<!ENTITY zotero.preferences.dataDir.reveal "Show Data Directory"> +<!ENTITY zotero.preferences.dataDir.reveal "Veri Dizinini Göster"> -<!ENTITY zotero.preferences.dbMaintenance "Database Maintenance"> -<!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Check Database Integrity"> +<!ENTITY zotero.preferences.dbMaintenance "Veritabanı Bakımı"> +<!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Veritabanı Bütünlüğünü Kontrol et"> <!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> <!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> <!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> diff --git a/chrome/locale/tr-TR/zotero/zotero.dtd b/chrome/locale/tr-TR/zotero/zotero.dtd @@ -1,14 +1,14 @@ <!ENTITY zotero.general.optional "(Seçimli)"> -<!ENTITY zotero.general.note "Note:"> +<!ENTITY zotero.general.note "Not:"> -<!ENTITY zotero.errorReport.unrelatedMessages "The error log may include messages unrelated to Zotero."> +<!ENTITY zotero.errorReport.unrelatedMessages "Hata kaydı Zotero ile ilgili olmayan iletileri de içerebilir."> <!ENTITY zotero.errorReport.additionalInfo "Ek Bilgi"> <!ENTITY zotero.errorReport.emailAddress "e-posta adresiniz:"> <!ENTITY zotero.errorReport.errorSteps "Hata meydana geldiğinde ne yapıyordunuz? Eğer mümkünse, lütfen hatayı üreten adımları dahil ediniz."> <!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.furtherAssistance "See the Known Issues page and the forums for further assistance."> +<!ENTITY zotero.errorReport.furtherAssistance "Daha fazla yardım için Bilinen Sorunlar sayfasına ve forumlara bakınız."> <!ENTITY zotero.errorReport.includeReportID "Lütfen bu konu ile ilgili olarak Zotero geliştiricileri ile yapacağınız tüm yazışmalarda bu Rapor ID'sini kullanınız."> <!ENTITY zotero.upgrade.newVersionInstalled "Zotero'nun yeni bir sürümünü kurdunuz."> @@ -112,8 +112,8 @@ <!ENTITY zotero.bibliography.print.label "Yazdır"> <!ENTITY zotero.integration.docPrefs.title "Döküman Tercihleri"> -<!ENTITY zotero.integration.addEditCitation.title "Add/Edit Citation"> -<!ENTITY zotero.integration.editBibliography.title "Edit Bibliography"> +<!ENTITY zotero.integration.addEditCitation.title "Atıf Ekle/Düzenle"> +<!ENTITY zotero.integration.editBibliography.title "Kaynakça Düzenle"> <!ENTITY zotero.progress.title "İşlem"> @@ -121,20 +121,20 @@ <!ENTITY zotero.exportOptions.format.label "Biçim"> <!ENTITY zotero.exportOptions.translatorOptions.label "Çeviri Seçenekleri"> -<!ENTITY zotero.citation.keepSorted.label "Keep Sources Sorted"> +<!ENTITY zotero.citation.keepSorted.label "Kaynakları Sıralı Tut"> <!ENTITY zotero.citation.page "Sayfa"> <!ENTITY zotero.citation.paragraph "Paragraf"> <!ENTITY zotero.citation.line "Satır"> -<!ENTITY zotero.citation.suppressAuthor.label "Suppress Author"> -<!ENTITY zotero.citation.prefix.label "Prefix:"> -<!ENTITY zotero.citation.suffix.label "Suffix:"> +<!ENTITY zotero.citation.suppressAuthor.label "Yazarı Sakla"> +<!ENTITY zotero.citation.prefix.label "Önek:"> +<!ENTITY zotero.citation.suffix.label "Sonek:"> -<!ENTITY zotero.richText.italic.label "Italic"> -<!ENTITY zotero.richText.bold.label "Bold"> -<!ENTITY zotero.richText.underline.label "Underline"> -<!ENTITY zotero.richText.superscript.label "Superscript"> -<!ENTITY zotero.richText.subscript.label "Subscript"> +<!ENTITY zotero.richText.italic.label "İtalik"> +<!ENTITY zotero.richText.bold.label "Kalın"> +<!ENTITY zotero.richText.underline.label "Altçizgi"> +<!ENTITY zotero.richText.superscript.label "Üstsimge"> +<!ENTITY zotero.richText.subscript.label "Altsimge"> <!ENTITY zotero.annotate.toolbar.add.label "Dipnot Ekle"> <!ENTITY zotero.annotate.toolbar.collapse.label "Tüm Dipnotları Daralt"> @@ -150,4 +150,4 @@ <!ENTITY zotero.integration.prefs.bookmarks.label "Yer imleri"> <!ENTITY zotero.integration.prefs.bookmarks.caption "Yerimleri Microsoft Word ve OpenOffice.org karşısında korunmuştur, fakat yanlışlıkla değiştirilebilir."> -<!ENTITY zotero.integration.references.label "References in Bibliography"> +<!ENTITY zotero.integration.references.label "Kaynakçadaki Kaynaklar"> diff --git a/chrome/locale/tr-TR/zotero/zotero.properties b/chrome/locale/tr-TR/zotero/zotero.properties @@ -25,7 +25,7 @@ general.and=ve install.quickStartGuide=Çabuk Başlama Rehberi install.quickStartGuide.message.welcome=Zotero'ya Hoşgeldiniz! -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.clickViewPage=Araştırma için nasıl yayın biriktirilir, yönetilir ve kaynak gösterilir öğrenmek ve Çabuk Başlangıç Rehberini ziyaret etmek için yukarıdaki "Sayfayı Gör" tuşuna tıklayınız. install.quickStartGuide.message.thanks=Zotero'yu kurduğunuz için teşekkürler. upgrade.failed=Zotero veritabanının yükseltmesi başarısız: @@ -96,14 +96,14 @@ pane.items.menu.generateReport.multiple=Seçili Eserlerden Rapor Oluştur... pane.items.menu.reindexItem=Eseri tekrar dizinle pane.items.menu.reindexItem.multiple=Eserleri tekrar dizinle -pane.items.letter.oneParticipant=Letter to %S -pane.items.letter.twoParticipants=Letter to %S and %S -pane.items.letter.threeParticipants=Letter to %S, %S, and %S -pane.items.letter.manyParticipants=Letter to %S et al. -pane.items.interview.oneParticipant=Interview by %S -pane.items.interview.twoParticipants=Interview by %S and %S -pane.items.interview.threeParticipants=Interview by %S, %S, and %S -pane.items.interview.manyParticipants=Interview by %S et al. +pane.items.letter.oneParticipant=Harf %S +pane.items.letter.twoParticipants=Harf %S ve %S +pane.items.letter.threeParticipants=Harf %S, %S ve %S +pane.items.letter.manyParticipants=Harf %S ve tümü. +pane.items.interview.oneParticipant=Görüşme %S +pane.items.interview.twoParticipants=Görüşme %S ve %S +pane.items.interview.threeParticipants=Görüşme %S, %S ve %S +pane.items.interview.manyParticipants=Görüşme %S ve tümü pane.item.selected.zero=Hiçbir Eser Seçilmedi pane.item.selected.multiple=%S Eser seçildi @@ -117,8 +117,8 @@ pane.item.changeType.text=Eser tipini değiştirmek istediğinize emin misiniz?\ pane.item.defaultFirstName=ilk pane.item.defaultLastName=son pane.item.defaultFullName=tam isim -pane.item.switchFieldMode.one=Switch to single field -pane.item.switchFieldMode.two=Switch to two fields +pane.item.switchFieldMode.one=Tek alana geç +pane.item.switchFieldMode.two=İki alana geç pane.item.notes.untitled=Başlıksız Not pane.item.notes.delete.confirm=Bu notu silmek istediğinize emin misiniz? pane.item.notes.count.zero=%S not: @@ -137,19 +137,19 @@ pane.item.attachments.count.zero=%S eklenti: pane.item.attachments.count.singular=%S eklenti: pane.item.attachments.count.plural=%S eklenti: pane.item.attachments.select=Bir Dosya Seç -pane.item.noteEditor.clickHere=click here -pane.item.tags=Tags: +pane.item.noteEditor.clickHere=buraya tıkla +pane.item.tags=Etiketler: pane.item.tags.count.zero=%S konu: pane.item.tags.count.singular=%S konu: pane.item.tags.count.plural=%S konu: pane.item.tags.icon.user=Kullanıcının eklediği konu pane.item.tags.icon.automatic=Otomatik olarak eklenen konu -pane.item.related=Related: +pane.item.related=İlgili pane.item.related.count.zero=%S ilgili: pane.item.related.count.singular=%S ilgili: pane.item.related.count.plural=$S ilgili: -noteEditor.editNote=Edit Note +noteEditor.editNote=Düzenleme Notu itemTypes.note=Not itemTypes.attachment=Eklenti @@ -331,7 +331,7 @@ fileTypes.document=Doküman save.attachment=Enstantene Kaydediliyor... save.link=Bağlantıyı Kaydet... -ingester.saveToZotero=Save to Zotero +ingester.saveToZotero=Zotero'ya Kaydet ingester.scraping=Eser kaydediliyor... ingester.scrapeComplete=Eser Kaydedildi. ingester.scrapeError=Eser Kaydedilemiyor. @@ -389,7 +389,7 @@ zotero.preferences.advanced.resetStyles=Reset Styles zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. dragAndDrop.existingFiles=Aşağıdaki dosyalar hedef dizinde zaten varlar ve kopyalanmadılar: -dragAndDrop.filesNotFound=The following files were not found and could not be copied: +dragAndDrop.filesNotFound=Aşağıdaki dosyalar bulunamadı ve kopyalanamaz: fileInterface.itemsImported=Eserler içeri aktarılıyor... fileInterface.itemsExported=Eserler dışarı aktarılıyor... @@ -451,7 +451,7 @@ fulltext.indexState.partial=bölümsel exportOptions.exportNotes=Notları Dışarı Aktar exportOptions.exportFileData=Dosyaları Dışarı Aktar -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=UTF-8 olarak dışarı aktar date.daySuffixes=st, nd, rd, th date.abbreviation.year=y @@ -464,9 +464,9 @@ citation.showEditor=Editörü Göster... citation.hideEditor=Editörü Gizle... report.title.default=Zotero Rapor -report.parentItem=Parent Item: -report.notes=Notes: -report.tags=Tags: +report.parentItem=Üst Eser: +report.notes=Notlar +report.tags=Etiketler: annotations.confirmClose.title=Bu açıklamayı kapatmak istediğinize emin misiniz? annotations.confirmClose.body=Tüm metin kaybolacak @@ -476,20 +476,20 @@ annotations.collapse.tooltip=Açıklamayı Daralt annotations.expand.tooltip=Açıklamayı Genişlet annotations.oneWindowWarning=Bir enstantene için dipnotlar aynı anda yalnızca bir tarayıcı penceresinde açılabilir. Bu enstantene dipnontlar olmaksızın açılacaktır. -integration.incompatibleVersion=Zotero Word eklentisinin bu sürümü şu an kurulu olan Zotero Firefox eklentisi ile uyumlu değildir. Lütfen her iki bileşenin de son sürümlerini kullandığınızdan emin olunuz. +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=Alanlar integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word alanlarının kazara değiştirilmesi olası değildir, fakat OpenOffice.org ile paylaşılamaz. integration.referenceMarks.caption=OpenOffice.org ReferenceMars'ların kazara değiştirilmesi olası değildir, fakat Microsoft Word ile paylaşılamaz. -integration.regenerate.title=Do you want to regenerate the citation? -integration.regenerate.body=The changes you have made in the citation editor will be lost. -integration.regenerate.saveBehavior=Always follow this selection. +integration.regenerate.title=Atıf yaratmak istiyor musunuz? +integration.regenerate.body=Atıf düzenleyici de yaptığınız değişiklikler kaybolacak. +integration.regenerate.saveBehavior=Her zaman bu seçimi izle -integration.deleteCitedItem.title=Are you sure you want to remove this reference? -integration.deleteCitedItem.body=This reference is cited in the text of your document. Deleting it will remove all citations. +integration.deleteCitedItem.title=Bu kaynakçayı silmek istediğinize emin misiniz? +integration.deleteCitedItem.body=Bu kaynakça belgenizdeki metinde atıf olarak gösterilmiştir. Bunu silmek tüm atıfları silecektir. styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? +styles.updateStyle=Geçerli sitili "%1$S" %3$S den "%2$S" e güncellensinmi? styles.installed=The style "%S" was installed successfully. styles.installError=%S does not appear to be a valid CSL file. diff --git a/chrome/locale/vi-VN/zotero/preferences.dtd b/chrome/locale/vi-VN/zotero/preferences.dtd @@ -53,6 +53,7 @@ <!ENTITY zotero.preferences.quickCopy.caption "Sao chép nhanh"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "Định dạng mặc định của dữ liệu đầu ra:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "Chú ý: Định dạng rich-text sẽ bị mất khi dùng Mac OS X."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Những thiết lập đặc thù cho từng Website:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Tên miền/Đường dẫn"> diff --git a/chrome/locale/vi-VN/zotero/zotero.properties b/chrome/locale/vi-VN/zotero/zotero.properties @@ -34,7 +34,7 @@ upgrade.advanceMessage=Ấn %S để nâng cấp ngay bây giờ. errorReport.reportErrors=Báo cáo lỗi... errorReport.reportInstructions=Bạn có thể báo cáo lỗi này bằng cách chọn "%S" trong menu Hành động (nút có hình bánh răng cưa). errorReport.followingErrors=Đã xảy ra các lỗi sau: -errorReport.advanceMessage=Ấn "S để gửi một báo cáo lỗi cho các tác giả của Zotero. +errorReport.advanceMessage=Ấn %S để gửi một báo cáo lỗi cho các tác giả của Zotero. errorReport.stepsToReproduce=Các bước để tái lập lỗi: errorReport.expectedResult=Kết quả mong đợi: errorReport.actualResult=Kết quả thực sự đã nhận được: @@ -451,7 +451,7 @@ fulltext.indexState.partial=Bán phần exportOptions.exportNotes=Xuất khẩu các Ghi chép exportOptions.exportFileData=Xuất khẩu các Tập tin -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=Xuất khẩu dưới dạng UTF-8 date.daySuffixes=st, nd, rd, th date.abbreviation.year=năm @@ -476,7 +476,7 @@ annotations.collapse.tooltip=Thu gọn Chú thích annotations.expand.tooltip=Mở rộng Chú thích annotations.oneWindowWarning=Các chú thích của một bản lưu trang Web chỉ có thể được hiển thị trong một cửa sổ trình duyệt. Bản lưu trang Web này sẽ được hiển thị không có chú thích. -integration.incompatibleVersion=Phiên bản này của Zotero Word plug-in không tương thích với phiên bản đang dùng của Zotero trong Firefox. Xin bạn hãy sử dụng các phiên bản mới nhất của cả hai bộ phận này. +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=Fields (trường mã) integration.referenceMarks.label=ReferenceMarks integration.fields.caption=Microsoft Word Fields ít có khả năng bị thay đổi một cách tình cờ, nhưng nó lại không dùng chung được với OpenOffice.org. @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=Luôn luôn theo lựa chọn này. integration.deleteCitedItem.title=Bạn có chắc bạn muốn xóa tham khảo này không? integration.deleteCitedItem.body=Tham khảo này được trích dẫn trong văn bản tài liệu của bạn. Nếu tham khảo này bị xóa, tất cả các trích dẫn tương ứng sẽ được gỡ bỏ khỏi văn bản. -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +styles.installStyle=Cài đặt style "%1$S" từ %2$S? +styles.updateStyle=Cập nhật style "%1$S" với "%2$S" từ %3$S? +styles.installed=Style "%S" đã được cài đặt thành công. +styles.installError=%S không phải là một tệp tin CSL hợp lệ. diff --git a/chrome/locale/zh-CN/zotero/preferences.dtd b/chrome/locale/zh-CN/zotero/preferences.dtd @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "导出"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> +<!ENTITY zotero.preferences.citationOptions.caption "引文选项"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "在参考文献里包含文章链接"> <!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> <!ENTITY zotero.preferences.quickCopy.caption "快速复制"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "默认输出格式:"> -<!ENTITY zotero.preferences.quickCopy.macWarning "注意: 富文本格式在Mac OS X下将丢失."> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> +<!ENTITY zotero.preferences.quickCopy.macWarning "注意: 在Mac OS X下富文本格式将丢失."> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "特定站点设置:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "域/路径"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(e.g. wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "输出格式"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "获取更多样式..."> <!ENTITY zotero.preferences.prefpane.keys "快捷键"> @@ -86,6 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "数据库维护"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "数据库完整性检测"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "重设转换器和样式..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "重设转换器..."> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "重设样式..."> diff --git a/chrome/locale/zh-CN/zotero/zotero.properties b/chrome/locale/zh-CN/zotero/zotero.properties @@ -24,7 +24,7 @@ general.failed=失败 general.and=and install.quickStartGuide=快速入门指南 -install.quickStartGuide.message.welcome=欢迎来到Zotero! +install.quickStartGuide.message.welcome=欢迎使用Zotero! install.quickStartGuide.message.clickViewPage=请点击上方"查看页面"按钮, 访问我们的快速入门指南. 来学习如何来收集, 管理及引用文献. install.quickStartGuide.message.thanks=谢谢您安装Zotero. @@ -381,12 +381,12 @@ zotero.preferences.export.quickCopy.bibStyles=文献目录样式 zotero.preferences.export.quickCopy.exportFormats=导出格式 zotero.preferences.export.quickCopy.instructions=快速复制可以让你通过快捷键(%S)或拖放条目到文本框的方式将所选引文复制到剪切板. -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +zotero.preferences.advanced.resetTranslatorsAndStyles=重设转换器(Translators)和样式(Styles) +zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=任何新加或修改过的转换器和样式都将丢失. +zotero.preferences.advanced.resetTranslators=重设转换器(Translators) +zotero.preferences.advanced.resetTranslators.changesLost=任何新加或修改的转换器将丢失. +zotero.preferences.advanced.resetStyles=重设样式(Styles) +zotero.preferences.advanced.resetStyles.changesLost=任何新加的或修改过的样式都将丢失. dragAndDrop.existingFiles=下列文件因已在目标文件夹中, 所以没有复制: dragAndDrop.filesNotFound=未找到下列文件, 无法复制. @@ -451,7 +451,7 @@ fulltext.indexState.partial=部分 exportOptions.exportNotes=导出笔记 exportOptions.exportFileData=导出文件 -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=导出为UTF-8 date.daySuffixes=st, nd, rd, th date.abbreviation.year=y @@ -476,7 +476,7 @@ annotations.collapse.tooltip=闭合标注 annotations.expand.tooltip=展开标注 annotations.oneWindowWarning=快照中的标注只可以在同一浏览窗口中同步的显示. 此快照将以无标注的形式打开. -integration.incompatibleVersion=此版本的Zotero Word插件与现在安装的Zotero Firefox扩展不兼容. 请确保您使用的所有组件都为最新版. +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域(Fields)不大可能被偶然修改, 但不能与OpenOffice.org共用. @@ -491,5 +491,5 @@ integration.deleteCitedItem.body=您的文档里引用了此文献. 删除它会 styles.installStyle=Install style "%1$S" from %2$S? styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +styles.installed=样式"%S"已成功安装. +styles.installError=%S似乎不是一个有效的CSL文件. diff --git a/chrome/locale/zh-TW/zotero/preferences.dtd b/chrome/locale/zh-TW/zotero/preferences.dtd @@ -47,19 +47,20 @@ <!ENTITY zotero.preferences.prefpane.export "匯出"> -<!ENTITY zotero.preferences.citationOptions.caption "Citation Options"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Include URLs of paper articles in references"> -<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "When this option is disabled, Zotero includes URLs when citing journal, magazine, and newspaper articles only if the article does not have a page range specified."> +<!ENTITY zotero.preferences.citationOptions.caption "引用文獻選項"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "包含參考文獻中論文文章的網址"> +<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "停用此選項時,Zotero 在引用期刊、雜誌、報紙文章的時後,只會在沒有指定文章的頁面範圍時才包含網址。"> <!ENTITY zotero.preferences.quickCopy.caption "快速複製"> <!ENTITY zotero.preferences.quickCopy.defaultOutputFormat "預設輸出格式:"> +<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Copy as HTML"> <!ENTITY zotero.preferences.quickCopy.macWarning "注意!在 Mac OS X 平台下會失去富文本的格式。"> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "特定網站的設定:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "網域/路徑"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(例如 wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.outputFormat "輸出格式"> -<!ENTITY zotero.preferences.export.getAdditionalStyles "Get additional styles..."> +<!ENTITY zotero.preferences.export.getAdditionalStyles "獲取額外的樣式…"> <!ENTITY zotero.preferences.prefpane.keys "快速鍵"> @@ -86,6 +87,6 @@ <!ENTITY zotero.preferences.dbMaintenance "資料庫維修"> <!ENTITY zotero.preferences.dbMaintenance.integrityCheck "檢查資料庫完整性"> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "Reset Translators and Styles..."> -<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "Reset Translators..."> -<!ENTITY zotero.preferences.dbMaintenance.resetStyles "Reset Styles..."> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslatorsAndStyles "重設轉譯器與樣式…"> +<!ENTITY zotero.preferences.dbMaintenance.resetTranslators "重設轉譯器…"> +<!ENTITY zotero.preferences.dbMaintenance.resetStyles "重設樣式…"> diff --git a/chrome/locale/zh-TW/zotero/zotero.properties b/chrome/locale/zh-TW/zotero/zotero.properties @@ -335,7 +335,7 @@ ingester.saveToZotero=儲存到 Zotero ingester.scraping=儲存項目中… ingester.scrapeComplete=項目己儲存 ingester.scrapeError=無法儲存項目 -ingester.scrapeErrorDescription=在儲存這個項目時發生了錯誤。可檢查 %S 來獲取更多資訊。 +ingester.scrapeErrorDescription=儲存這個項目時發生了錯誤。可檢查 %S 以取得更多資訊。 ingester.scrapeErrorDescription.linkText=已知的轉譯器問題 ingester.scrapeError.transactionInProgress.previousError=因先前 Zotero 的錯誤,儲存程序失敗了。 @@ -381,12 +381,12 @@ zotero.preferences.export.quickCopy.bibStyles=參考文獻的樣式 zotero.preferences.export.quickCopy.exportFormats=匯出格式 zotero.preferences.export.quickCopy.instructions=快速複製讓你可以按快捷鍵(%S)來把選取的參考文獻複製到剪貼簿,或者拖放項目到網頁的文字輸入區。 -zotero.preferences.advanced.resetTranslatorsAndStyles=Reset Translators and Styles -zotero.preferences.advanced.resetTranslatorsAndStyles.changesLost=Any new or modified translators or styles will be lost. -zotero.preferences.advanced.resetTranslators=Reset Translators -zotero.preferences.advanced.resetTranslators.changesLost=Any new or modified translators will be lost. -zotero.preferences.advanced.resetStyles=Reset Styles -zotero.preferences.advanced.resetStyles.changesLost=Any new or modified styles will be lost. +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=找不到以下的檔案而無法加以複製: @@ -451,7 +451,7 @@ fulltext.indexState.partial=部分的 exportOptions.exportNotes=匯出筆記 exportOptions.exportFileData=匯出檔案 -exportOptions.UTF8=Export as UTF-8 +exportOptions.UTF8=以 UTF-8 匯出 date.daySuffixes=日, 日, 日, 日 date.abbreviation.year=年 @@ -476,7 +476,7 @@ annotations.collapse.tooltip=摺疊起標註 annotations.expand.tooltip=展開標註 annotations.oneWindowWarning=快照的標註同一時間只能在一個瀏覽器視窗中開啟。開啟這個快照時將不會開啟它的標註。 -integration.incompatibleVersion=這版本的 Zotero Word plug-in 和目前安裝的 Zotero Firefox 擴充套件並不相容。請確定你是使用兩者的最新版本。 +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=微軟 Word 的欄位比較不會受到意外的更動,但是不能和 OpenOffice.org 共用。 @@ -489,7 +489,7 @@ integration.regenerate.saveBehavior=每次都作相同的選擇。 integration.deleteCitedItem.title=你確定要移除這個參考資料嗎? integration.deleteCitedItem.body=在你文件的內文中有引用到這個參考資料,刪除它將會移除所有的引用文獻。 -styles.installStyle=Install style "%1$S" from %2$S? -styles.updateStyle=Update existing style "%1$S" with "%2$S" from %3$S? -styles.installed=The style "%S" was installed successfully. -styles.installError=%S does not appear to be a valid CSL file. +styles.installStyle=從 %2$S 安裝樣式 "%1$S"? +styles.updateStyle=從 %3$S 用 "%2$S" 更新現有的樣式 "%1$S"? +styles.installed=已成功安裝樣式 "%S"。 +styles.installError=%S 似乎不是有效的 CSL 檔。 diff --git a/chrome/skin/default/zotero/overlay.css b/chrome/skin/default/zotero/overlay.css @@ -77,7 +77,7 @@ #zotero-items-pane { - min-width: 300px; + min-width: 290px; } #zotero-item-pane diff --git a/scrapers.sql b/scrapers.sql @@ -22,9 +22,9 @@ -- Set the following timestamp to the most recent scraper update date -REPLACE INTO version VALUES ('repository', STRFTIME('%s', '2008-01-30 07:30:00')); +REPLACE INTO version VALUES ('repository', STRFTIME('%s', '2008-05-03 06:00:00')); -REPLACE INTO translators VALUES ('96b9f483-c44d-5784-cdad-ce21b984fe01', '1.0.0b4.r1', '', '2007-06-21 20:00:00', '1', '100', '4', 'Amazon.com', 'Sean Takats', '^https?://(?:www\.)?amazon', +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) { var suffixRe = new RegExp("https?://(?:www\.)?amazon\.([^/]+)/"); @@ -81,6 +81,7 @@ REPLACE INTO translators VALUES ('96b9f483-c44d-5784-cdad-ce21b984fe01', '1.0.0b if (suffix == "co.jp"){ suffix = "jp"; } + if (suffix == ".com") suffix = "com"; if(m) { var xpath = ''//a/span[@class="srTitle"]''; var elmts = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); @@ -93,11 +94,12 @@ REPLACE INTO translators VALUES ('96b9f483-c44d-5784-cdad-ce21b984fe01', '1.0.0b do { var link = doc.evaluate(''../@href'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().nodeValue; var searchTitle = elmt.textContent; - availableItems[i] = searchTitle; - var asinMatch = asinRe.exec(link); - asins[i] = asinMatch[2]; - Zotero.debug(searchTitle + " @ " + asins[i]); - i++; + if (asinRe.exec(link)) { + var asinMatch = asinRe.exec(link); + availableItems[i] = searchTitle; + asins[i] = asinMatch[2]; + i++; + } } while (elmt = elmts.iterateNext()); var items = Zotero.selectItems(availableItems); @@ -118,16 +120,14 @@ REPLACE INTO translators VALUES ('96b9f483-c44d-5784-cdad-ce21b984fe01', '1.0.0b } uris.push("http://ecs.amazonaws." + suffix + "/onca/xml?Service=AWSECommerceService&Version=2006-06-28&Operation=ItemLookup&SubscriptionId=0H174V5J5R5BE02YQN02&ItemId=" + asin + "&ResponseGroup=ItemAttributes"); } - Zotero.Utilities.HTTP.doGet(uris, function(text) { text = text.replace(/<!DOCTYPE[^>]*>/, "").replace(/<\?xml[^>]*\?>/, ""); var texts = text.split("<Items>"); texts = texts[1].split("</ItemLookupResponse>"); text = "<Items>" + texts[0]; var xml = new XML(text); - Zotero.debug(text); - var publisher = ""; + if (xml..Publisher.length()){ publisher = Zotero.Utilities.cleanString(xml..Publisher[0].text().toString()); } @@ -176,7 +176,7 @@ REPLACE INTO translators VALUES ('96b9f483-c44d-5784-cdad-ce21b984fe01', '1.0.0b // Retrieve authors and other creators for(var i=0; i<xml..Author.length(); i++) { - newItem.creators.push(Zotero.Utilities.cleanAuthor(xml..Author[i].text().toString())); + newItem.creators.push(Zotero.Utilities.cleanAuthor(xml..Author[i].text().toString(), "author")); } if (newItem.creators.length == 0){ for(var i=0; i<xml..Creator.length(); i++) { @@ -354,7 +354,7 @@ function doWeb(doc, url){ } }'); -REPLACE INTO translators VALUES ('0dda3f89-15de-4479-987f-cc13f1ba7999', '1.0.0b4.r1', '', '2007-09-08 12:00:00', '0', '100', '4', 'Ancestry.com US Federal Census', 'Elena Razlogova', '^https?://search.ancestry.com/(.*)usfedcen|1890orgcen|1910uscenindex', +REPLACE INTO translators VALUES ('0dda3f89-15de-4479-987f-cc13f1ba7999', '1.0.0b4.r1', '', '2008-03-24 02:15:00', '0', '100', '4', 'Ancestry.com US Federal Census', 'Elena Razlogova', '^https?://search.ancestry.com/(.*)usfedcen|1890orgcen|1910uscenindex', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -405,7 +405,7 @@ function scrape(doc) { } : null; // get initial census data; a proper census record item type should have separate fields for all of these except perhaps dbid - var info = doc.evaluate(''//div[@class="g_container"]/div[@class="g_panelWrap"]/div[@class="g_panelCore"]/div[@class="g_right"]/div[@class="g_box"]/p/a'', + var info = doc.evaluate(''//div[@class="facets"][@id="connect"]/div[@class="g_box"]/p/a'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); if(info) { @@ -478,17 +478,17 @@ function scrape(doc) { var creator = new Array(); creator.firstName = firstName; creator.lastName = lastName; - creator.creatorType = "contributor"; + creator.creatorType = "author"; newItem.creators.push(creator); //add proper author for citation var creator = new Array(); creator.lastName = "United States of America, Bureau of the Census"; - creator.creatorType = "author"; + creator.creatorType = "contributor"; newItem.creators.push(creator); // get scan of the census image - var scanInfo = doc.evaluate(''//div[@class="g_container"]/div[@class="g_panelWrap"]/div[@class="g_panelCore"]/div[@class="g_main"]/div[@class="g_outerBox"]/div[@class="s_container"]/div[@class="g_box2"]/table[@class="p_recTable"]/tbody/tr/td[2][@class="recordTN"]/a'', + var scanInfo = doc.evaluate(''//div[@id="record-main"]/table[@class="p_recTable"]/tbody/tr/td[2][@class="recordTN"]/a'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); if(scanInfo) { @@ -553,7 +553,7 @@ function doWeb(doc, url) { var name; while (listElt = listElts.iterateNext()) { recInfo = doc.evaluate(''.//a'', listElt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - var recidRe = /^javascript:go[0-9]+_([0-9]+)/; + var recidRe = /recid=([0-9]+)/; var m = recidRe.exec(recInfo); if(m) { recid = m[1]; @@ -577,7 +577,7 @@ function doWeb(doc, url) { } }'); -REPLACE INTO translators VALUES ('838d8849-4ffb-9f44-3d0d-aa8a0a079afe', '1.0.0b3.r1', '', '2007-12-12 05:00:00', 1, 100, 4, 'OCLC WorldCat FirstSearch', 'Simon Kornblith', '^https?://(?:new)?firstsearch\.oclc\.org[^/]*/WebZ/', +REPLACE INTO translators VALUES ('838d8849-4ffb-9f44-3d0d-aa8a0a079afe', '1.0.0b3.r1', '', '2008-02-07 21:15:00', 1, 100, 4, 'OCLC WorldCat FirstSearch', 'Simon Kornblith', 'https?://[^/]*firstsearch\.oclc\.org[^/]*/WebZ/', 'function detectWeb(doc, url) { var detailRe = /FirstSearch: [\w ]+ Detailed Record/; var searchRe = /FirstSearch: [\w ]+ List of Records/; @@ -772,7 +772,7 @@ function doWeb(doc, url) { Zotero.wait(); }'); -REPLACE INTO translators VALUES ('a2363670-7040-4cb9-8c48-6b96584e92ee', '1.0.0b4r1', '', '2007-09-13 12:00:00', '0', '100', '4', 'Florida University Libraries (Endeca 1)', 'Sean Takats', '^http://[^/]+/[^\.]+.jsp\?Nt.=', +REPLACE INTO translators VALUES ('a2363670-7040-4cb9-8c48-6b96584e92ee', '1.0.0b4.r5', '', '2008-02-08 20:30:00', '0', '100', '4', 'Florida University Libraries (Endeca 1)', 'Sean Takats', '^http://[^/]+/[^\.]+.jsp\?[^/]*(?:Ntt=|NttWRD=)', 'function detectWeb(doc, url){ var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -866,7 +866,7 @@ REPLACE INTO translators VALUES ('a2363670-7040-4cb9-8c48-6b96584e92ee', '1.0.0b Zotero.wait(); }'); -REPLACE INTO translators VALUES ('da440efe-646c-4a18-9958-abe1f7d55cde', '1.0.0b4r1', '', '2007-09-13 12:00:00', '0', '100', '4', 'NCSU Library (Endeca 2)', 'Sean Takats', '^https?://[^\.]+.lib.ncsu.edu/(?:web2/tramp2\.exe|catalog/\?)', +REPLACE INTO translators VALUES ('da440efe-646c-4a18-9958-abe1f7d55cde', '1.0.0b4.r1', '', '2008-03-26 03:00:00', '0', '100', '4', 'NCSU Library (Endeca 2)', 'Sean Takats', '^https?://[^\.]+.lib.ncsu.edu/(?:web2/tramp2\.exe|catalog/\?)', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -930,7 +930,7 @@ function doWeb(doc, url) { } }'); -REPLACE INTO translators VALUES ('88915634-1af6-c134-0171-56fd198235ed', '1.0.0b3.r1', '', '2008-01-30 07:30:00', '1', '100', '4', 'Library Catalog (Voyager)', 'Simon Kornblith', 'Pwebrecon\.cgi', +REPLACE INTO translators VALUES ('88915634-1af6-c134-0171-56fd198235ed', '1.0.0b3.r1', '', '2008-04-30 18:15:00', '1', '100', '4', 'Library Catalog (Voyager)', 'Simon Kornblith', 'Pwebrecon\.cgi', 'function detectWeb(doc, url) { var export_options = doc.forms.namedItem(''frm'').elements.namedItem(''RD'').options; for(var i in export_options) { @@ -942,7 +942,8 @@ REPLACE INTO translators VALUES ('88915634-1af6-c134-0171-56fd198235ed', '1.0.0b || export_options[i].text == ''MARC UTF-8'' || export_options[i].text == ''UTF-8 MARC (Unicode)'' || export_options[i].text == ''UTF8-Unicode'' - || export_options[i].text == ''MARC (non-Unicode/MARC-8)'') { + || export_options[i].text == ''MARC (non-Unicode/MARC-8)'' + || export_options[i].text == ''MARC communication format'') { // We have an exportable single record if(doc.forms.namedItem(''frm'').elements.namedItem(''RC'')) { return "multiple"; @@ -1042,7 +1043,8 @@ REPLACE INTO translators VALUES ('88915634-1af6-c134-0171-56fd198235ed', '1.0.0b || export_options[i].text == ''UTF-8 MARC (Unicode)'' || export_options[i].text == ''UTF8-Unicode'' || export_options[i].text == ''MARC UTF-8'' - || export_options[i].text == ''MARC (Unicode/UTF-8)'') { + || export_options[i].text == ''MARC (Unicode/UTF-8)'' + || export_options[i].text == ''MARC communication format'') { unicode = i; } } @@ -1087,320 +1089,3586 @@ REPLACE INTO translators VALUES ('88915634-1af6-c134-0171-56fd198235ed', '1.0.0b Zotero.wait(); }'); -REPLACE INTO translators VALUES ('d921155f-0186-1684-615c-ca57682ced9b', '1.0.0b4.r1', '', '2008-01-09 20:00:00', '1', '100', '4', 'JSTOR', 'Simon Kornblith', 'https?://[^/]*jstor\.org[^/]*/(?:view|browse/[^/]+/[^/]+\?|search/|cgi-bin/jstor/viewitem)', +REPLACE INTO translators VALUES ('2e304579-dd7b-4770-85e9-0d724c9b49a5', '1.0.0b4.r5', '', '2008-05-01 20:30:00', '0', '100', '4', 'European Educational Research Journal', 'Michael Berkowitz', 'http://www.wwwords.co.uk/eerj/', 'function detectWeb(doc, url) { - var namespace = doc.documentElement.namespaceURI; - var nsResolver = namespace ? function(prefix) { - if (prefix == ''x'') return namespace; else return null; - } : null; - - // See if this is a seach results page - if(doc.title == "JSTOR: Search Results" || url.indexOf("/browse/") != -1) { + if (doc.evaluate(''//div[@id="maincontent"]/table[*//p[@class="articletitle"]]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { return "multiple"; - } else if(url.indexOf("/search/") != -1) { - return false; - } - - // If this is a view page, find the link to the citation - var xpath = ''/html/body/div[@class="indent"]//a[@class="nav"]''; - var elmts = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - if(elmts.iterateNext()) { - return "journalArticle"; } }', -'function getJSTORAttachment(viewURL) { - var viewRe = new RegExp("(^https?://[^/]+/)view([^?]+)"); - var m = viewRe.exec(viewURL); - if(m) { - return {url:m[1]+"cgi-bin/jstor/printpage"+m[2]+".pdf?dowhat=Acrobat", - mimeType:"application/pdf", title:"JSTOR Full Text PDF"}; - } else { - return false; - } -} - -function itemComplete(newItem, url) { - if(newItem.url) { - newItem.attachments.push({url:newItem.url, mimeType:"text/html", - title:"JSTOR Link", snapshot:false}); - } else { - if(newItem.ISSN) { - newItem.url = "http://www.jstor.org/browse/"+newItem.ISSN; +'function titleCase(str) { + var skipWords = ["but", "or", "yet", "so", "for", "and", "nor", "a", "an", "the", "at", "by", "from", "in", "into", "of", "on", "to", "with", "up", "down", "as"]; + var words = str.toLowerCase().split(/\s+/); + var newstr = ""; + for each (var word in words) { + if (skipWords.indexOf(word.replace(/[^a-zA-Z]+/, "")) != -1) { + newstr += " " + word; + } else if (word.indexOf("-") != -1) { + newword = word.split("-"); + newstr += " " + newword[0][0].toUpperCase() + newword[0].substr(1) + "-" + newword[1][0].toUpperCase() + newword[1].substr(1); } else { - newItem.url = url; + newstr += " " + word[0].toUpperCase() + word.substr(1); } } - - newItem.complete(); + return Zotero.Utilities.trimInternal(newstr); } function doWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { - if (prefix == ''x'') return namespace; else return null; + if (prefix == ''x'') return namespace; else return false; } : null; - var saveCitations = new Array(); - var viewPages = new Array(); - - var hostRegexp = new RegExp("^(https?://[^/]+)/"); - var hMatch = hostRegexp.exec(url); - var host = hMatch[1]; - - if(doc.title == "JSTOR: Search Results") { - var availableItems = new Object(); - - // Require link to match this - var tagRegexp = new RegExp(); - tagRegexp.compile(''citationAction=''); - - var tableRows = doc.evaluate(''//tr[td/span[@class="printDownloadSaveLinks"]]'', doc, nsResolver, XPathResult.ANY_TYPE, null); - var tableRow; - // Go through table rows - var tableView = new Array(); - var tableSave = new Array(); - var i = 0; - while(tableRow = tableRows.iterateNext()) { - i++; - var links = tableRow.getElementsByTagName("a"); - // Go through links - for(var j=0; j<links.length; j++) { - if(links[j].href.indexOf("citationAction=") != -1) { - tableSave[i] = links[j].href; - var link = doc.evaluate(''.//a[strong]'', tableRow, null, XPathResult.ANY_TYPE, null).iterateNext(); - if(link) { - tableView[i] = link.href; - } - - var text = doc.evaluate(''.//strong/text()'', tableRow, null, XPathResult.ANY_TYPE, null).iterateNext(); - if(text && text.nodeValue) { - text = Zotero.Utilities.trimInternal(text.nodeValue); - if(availableItems[i]) { - availableItems[i] += " "+text; - } else { - availableItems[i] = text; - } - } + var items = new Object(); + var titles = doc.evaluate(''//p[@class="articletitle"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var title; + while (title = titles.iterateNext()) { + var text = Zotero.Utilities.trimInternal(title.textContent); + items[text] = text; + } + items = Zotero.selectItems(items); + Zotero.debug(items); + + var articles = doc.evaluate(''//div[@id="maincontent"]/table[*//p[@class="articletitle"]]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var art; + while (art = articles.iterateNext()) { + var title = Zotero.Utilities.trimInternal(doc.evaluate(''.//p[@class="articletitle"]'', art, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); + if (items[title]) { + var pdfurl = doc.evaluate(''.//a[contains(text(), "FULL TEXT")]'', art, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; + var item = new Zotero.Item("journalArticle"); + item.publicationTitle = "European Educational Research Journal"; + item.ISSN = "1474-9041"; + item.url = url; + item.title = title; + var voliss = doc.title.match(/\-\s+(.*)$/)[1]; + voliss = voliss.match(/Volume\s+(\d+)\s+Issue\s+(\d+)\s+\((\d+)\)/); + item.volume = voliss[1]; + item.issue = voliss[2]; + item.date = voliss[3]; + + var authors = doc.evaluate(''.//tr[2]/td'', art, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + var ibits = doc.evaluate(''.//tr[2]/td//i'', art, nsResolver, XPathResult.ANY_TYPE, null); + var ibit = ""; + var bit; + while (bit = ibits.iterateNext()) { + authors = authors.replace(bit.textContent, ","); + } + authors = authors.split(/\s*(,|&)\s*/); + for each (var aut in authors) { + if (aut.match(/\w/)) { + aut = titleCase(Zotero.Utilities.trimInternal(aut)); + item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author")); } } + item.attachments = [{url:pdfurl, title:"EERJ Full Text PDF", mimeType:"application/pdf"}]; + item.complete(); } - - var items = Zotero.selectItems(availableItems); - if(!items) { - return true; + } +}'); + +REPLACE INTO translators VALUES ('bdaac15c-b0ee-453f-9f1d-f35d00c7a994', '1.0.0b4.r5', '', '2008-05-01 16:30:00', '0', '100', '4', 'AMS Journals', 'Michael Berkowitz', 'http://www.ams.org/', +'function detectWeb(doc, url) { + if (url.match(/jour(nals|search)/)) { + return "multiple"; + } else if (url.match(/\d{4}\-\d{2}\-\d{2}/)) { + return "journalArticle"; + } +}', +'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(); + if (url.match(/joursearch/)) { + var titlex = ''//table/tbody/tr/td/span[@class="searchResultsArticleTitle"]''; + var linkx = ''//table/tbody/tr[td/span[@class="searchResultsArticleTitle"]]//a[contains(text(), "Abstract")]''; + } else { + var titlex = ''//div[@class="contentList"]/dl/dt[@class="articleTitleInAbstract"]''; + var linkx = ''//div[@class="contentList"]/dl/dd/a[contains(text(), "Abstract")]'' } - - for(var i in items) { - viewPages.push(tableView[i]); - saveCitations.push(tableSave[i].replace(''citationAction=remove'', ''citationAction=save'')); + var titles = doc.evaluate(titlex, doc, nsResolver, XPathResult.ANY_TYPE, null); + var links = doc.evaluate(linkx, doc, nsResolver, XPathResult.ANY_TYPE, null); + var title, link; + while ((title = titles.iterateNext()) && (link = links.iterateNext())) { + items[link.href] = Zotero.Utilities.trimInternal(title.textContent); } - } else if(url.indexOf("/browse/") != -1) { - var tableView = new Object(); - var items = new Object(); - - var articleTitle, viewPage; - var links = doc.evaluate("//a", doc, nsResolver, XPathResult.ANY_TYPE, null); - var link; - // get article and save citation links - while(link = links.iterateNext()) { - if(link.href.indexOf("/view/") != -1) { - articleTitle = link.textContent; - viewPage = link.href; - } else if(link.href.indexOf("citationAction=save&") != -1) { - items[link.href] = articleTitle; - tableView[link.href] = viewPage; - } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(decodeURIComponent(i)); } - - var items = Zotero.selectItems(items); - if(!items) return true; - - for(var i in items) { - viewPages.push(tableView[i]); - saveCitations.push(i.replace(''citationAction=remove'', ''citationAction=save'')); + } else { + articles = [url]; + } + Zotero.debug(articles); + Zotero.Utilities.processDocuments(articles, function(doc) { + var item = new Zotero.Item("journalArticle"); + item.publicationTitle = doc.title; + item.ISSN = doc.evaluate(''//span[@class="journalISSN"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.match(/\(e\)\s+ISSN:?\s+(.*)\(p\)/)[1]; + item.title = Zotero.Utilities.trimInternal(doc.evaluate(''//p[@class="articleTitle"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); + var data = Zotero.Utilities.trimInternal(doc.evaluate(''//p[span[@class="bibDataTag"]][1]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); + data = data.replace(/(Journal|MSC|Posted|Retrieve)/g, "\n$1"); + Zotero.debug(data); + var authors = data.match(/Author\(s\):\s+(.*)\n/)[1].split(/;\s+/); + for each (var aut in authors) { + item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author")); + } + var journalinfo = data.match(/Journal:\s+(.*)\n/)[1].match(/^([^\d]+)(\d+)\s+\((\d+)\),\s+(.*)$/); + item.journalAbbreviation = journalinfo[1]; + item.volume = journalinfo[2]; + item.pages = journalinfo[4]; + item.date = Zotero.Utilities.trimInternal(data.match(/Posted:\s+(.*)\n/)[1]); + item.url = doc.location.href; + item.issue = item.url.match(/(\d+)\/S/)[1]; + var pdfurl = item.url.replace(/([^/]+)\/home.html$/, "$1/$1.pdf"); + item.attachments = [ + {url:item.url, title:item.journalAbbreviation + " Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:item.journalAbbreviation + " PDF", mimeType:"application/pdf"} + ]; + item.abstract = Zotero.Utilities.trimInternal(doc.evaluate(''//td[@class="bottomCell"]/p[4]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.substr(10)); + item.complete(); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('5278b20c-7c2c-4599-a785-12198ea648bf', '1.0.0b4.r5', '', '2008-04-30 21:00:00', '0', '100', '4', 'ARTstor', 'Ameer Ahmed and Michael Berkowitz', 'http://web2.artstor.org', +'function detectWeb(doc, url) { + if (url.match(''Search'')) return "multiple" +}', +'function doWeb(doc, url) { + if (url.indexOf("|")!=-1){ + scrape(doc, url); + } +} + +function scrape(doc, url){ + var savedItems = new Array(); + var saved = 0; + var urlstub = url.substring(url.indexOf(''.org/'')+5,url.length); + urlstub = url.substring(0,url.indexOf(''.org/'')+5) + urlstub.substring(0, urlstub.indexOf(''/'')+1) + var suburl = url.substring(url.indexOf(''|'')+1, url.length); + var groupname = suburl.substring(0, suburl.indexOf("|")); + var searchterm = ''//*[@id="thumbSubTitle"]''; + var stt = doc.evaluate(searchterm, doc, null, XPathResult.ANY_TYPE, null).iterateNext(); + var st = stt.firstChild.nodeValue; + var pageNn = ''//*[@id="pageNo"]''; + var stt = doc.evaluate(pageNn, doc, null, XPathResult.ANY_TYPE, null).iterateNext(); + var pg; + if (stt.value==1){ + pg = 1; + } else if (stt.value==2){ + pg = 25; + } else { + pg = ((stt.value-1) * 24) + 1; + } + var groupid; + //check if user is on search page if not construct the query using the 2nd pattern + if (groupname.indexOf("search")!=-1){ + groupid = "1/" + pg + "/24/0?tn=1&name=&id=all&kw=" +st + "&type=1"; + }else { + groupid = suburl.substring(suburl.indexOf(''|'')+1, suburl.indexOf(''||'')) + "//thumbnails/" + pg + "/24/0"; + } + // Initial query to get results from the service - primary purpose is to get objectids. which in turn are required for the 2nd service call, which exposes the actual metadata + Zotero.Utilities.HTTP.doGet(urlstub + "secure/" + groupname + "//" + groupid, function(text) { + json = eval("(" + text + ")"); + items = new Object(); + for(var i=0; i<json.thumbnails.length; i++) { + child = json.thumbnails[i]; + var tmpUrl = urlstub + "secure/metadata/" + child.objectId + "?_method=Infolder"; + //here we are saving the url service call to get each objects metadata + savedItems[saved] = tmpUrl; + items[tmpUrl]=child.objectId; + saved++; + } + // GET VALUES FROM THE WEB + var xpath = ''//div[@id="thumbContentWrap"]''; + var elmts = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null).iterateNext(); + var webitems = new Object(); + var selectedNums = new Array(); + var si=0; + var c = elmts.getElementsByTagName(''*''); + var title = ""; + for(var i=0; i<c.length; i++) { + var child = c[i]; + if (child.id.indexOf("_imageHolder")!=-1){ + var csss = child.style; + var glow = csss.getPropertyValue(''border''); + } + if (child.id.indexOf("_thumb1")!=-1){ + title = child.title; + } + if (child.id.indexOf("_thumb2")!=-1){ + title+= " :: " + child.title; + } + if (child.id.indexOf("_thumb3")!=-1){ + var childtitle = child.title; + var dialogTitle = title; + if (childtitle.length>1) { + dialogTitle+=" " + childtitle; + } + var sitem = child.id.substring(6,child.id.indexOf("_")); + webitems[sitem-1] = dialogTitle; + if (glow.indexOf(75)!=-1){ + selectedNums[si]=sitem-1; + si++; + } + title = null; + } + } + // GET VALUES FROM THE WEB + var tcount=0; + var newitems = null; + if (selectedNums.length>0){ + newitems = new Object(); + for (j=0; j<selectedNums.length;j++){ + var numnum = selectedNums[j]; + for (var x in items){ + if (numnum==tcount){ + newitems[x] = webitems[tcount]; + tcount=0; + break; + } else { + tcount++; + } + } } } else { - // If this is a view page, find the link to the citation - var xpath = ''/html/body/div[@class="indent"]//a[@class="nav"]''; - var elmts = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - var saveCitation = elmts.iterateNext(); - var viewSavedCitations = elmts.iterateNext(); - - if(saveCitation && viewSavedCitations) { - viewPages.push(url); - saveCitations.push(saveCitation.href.replace(''citationAction=remove'', ''citationAction=save'')); - } else { - throw("Could not find citation save links"); + tcount = 0; + for (var x in items){ + items[x] = webitems[tcount]; + tcount++; } } - - Zotero.Utilities.HTTP.doGet(host+''/browse?citationAction=removeAll&confirmRemAll=on&viewCitations=1'', function() { // clear marked - // Mark all our citations - Zotero.Utilities.HTTP.doGet(saveCitations, null, function() { // mark this - Zotero.Utilities.HTTP.doGet(host+''/browse/citations.txt?exportAction=Save+as+Text+File&exportFormat=cm&viewCitations=1'', function(text) { - // get marked - var k = 0; - var lines = text.split("\n"); - var haveStarted = false; - var newItemRe = /^<[0-9]+>/; - - var newItem = new Zotero.Item("journalArticle"); - newItem.attachments.push(getJSTORAttachment(viewPages[k])); - - for(var i in lines) { - if(lines[i].substring(0,3) == "<1>") { - haveStarted = true; - } else if(newItemRe.test(lines[i])) { - itemComplete(newItem, url); - k++; - - newItem = new Zotero.Item("journalArticle"); - newItem.attachments.push(getJSTORAttachment(viewPages[k])); - } else if(lines[i].substring(2, 5) == " : " && haveStarted) { - var fieldCode = lines[i].substring(0, 2); - var fieldContent = Zotero.Utilities.cleanString(lines[i].substring(5)) - - if(fieldCode == "TI") { - if(fieldContent) { - newItem.title = fieldContent; - } else { - newItem.title = "[untitled]"; - } - } else if(fieldCode == "AU") { - var authors = fieldContent.split(";"); - for(j in authors) { - if(authors[j]) { - newItem.creators.push(Zotero.Utilities.cleanAuthor(authors[j], "author", true)); - } - } - } else if(fieldCode == "SO") { - newItem.publicationTitle = fieldContent; - } else if(fieldCode == "VO") { - newItem.volume = fieldContent; - } else if(fieldCode == "NO") { - newItem.issue = fieldContent; - } else if(fieldCode == "SE") { - newItem.series = fieldContent; - } else if(fieldCode == "DA") { - newItem.date = fieldContent; - } else if(fieldCode == "PP") { - newItem.pages = fieldContent; - } else if(fieldCode == "EI") { - newItem.url = fieldContent; - } else if(fieldCode == "IN") { - newItem.ISSN = fieldContent; - } else if(fieldCode == "PB") { - newItem.publisher = fieldContent; - } else if(fieldCode == "AB") { - newItem.abstractNote = fieldContent; - } - } + if (newitems!=null){ + items = newitems; + } + //show dialogbox + var items = Zotero.selectItems(items); + if(!items) { + return true; + } + var urls = new Array(); + for(var i in items) { + urls.push(i); + } + //this gets called when an object is selected in the dialog box, fires off a get on the service url + Zotero.Utilities.HTTP.doGet(urls, function(text) { + json = eval("(" + text + ")"); + var newArticle = new Zotero.Item(''artwork''); + for (var i=0; i<json.metaData.length; i++) { + child = json.metaData[i]; + // MISSING CULTURE!!! + if (child.fieldName.indexOf("Title")!=-1){ + if (newArticle.title!=null){ + newArticle.title+= ";" + child.fieldValue; + } else { + newArticle.title = child.fieldValue; } - - // last item is complete - if(haveStarted) { - itemComplete(newItem, url); + } + if (child.fieldName.indexOf("Creator")!=-1){ + var aut = child.fieldValue.match(/^([^,]+),\s+(.*)$/); + newArticle.notes.push({note:"Artist information: " + aut[2]}); + newArticle.creators.push(Zotero.Utilities.cleanAuthor(aut[1], "artist")); + } + if (child.fieldName.indexOf("Culture")!=-1){ + newArticle.creators.push(Zotero.Utilities.cleanAuthor(child.fieldValue, "producer", true)); + } + if (child.fieldName.indexOf("Rights")!=-1){ + if (newArticle.rights!=null){ + newArticle.rights+= ";" + child.fieldValue.replace(/<wbr\/>/g, ""); + } else { + newArticle.rights = child.fieldValue.replace(/<wbr\/>/g, ""); } - - Zotero.Utilities.HTTP.doGet(host+''/browse?citationAction=removeAll&confirmRemAll=on&viewCitations=1'', function() { // clear marked - Zotero.done(); - }); - }); - }); + } + if (child.fieldName.indexOf("Subject")!=-1){ + newArticle.tags.push(Zotero.Utilities.trimInternal(child.fieldValue)); + } + if (child.fieldName.indexOf("Location")!=-1){ + newArticle.tags.push(Zotero.Utilities.trimInternal(child.fieldValue)); + } + if (child.fieldName.indexOf("Style Period")!=-1){ + newArticle.tags.push(Zotero.Utilities.trimInternal(child.fieldValue)); + } + if (child.fieldName.indexOf("Work Type")!=-1){ + newArticle.tags.push(Zotero.Utilities.trimInternal(child.fieldValue)); + } + if (child.fieldName.indexOf("Material")!=-1 || child.fieldName.indexOf("Technique")!=-1 ){ + if (newArticle.artworkMedium!=null){ + newArticle.artworkMedium+= ";" + Zotero.Utilities.trimInternal(child.fieldValue); + } else { + newArticle.artworkMedium = Zotero.Utilities.trimInternal(child.fieldValue); + } + } + if (child.fieldName.indexOf("Measurements")!=-1){ + if (newArticle.artworkSize!=null){ + newArticle.artworkSize+= ";" + Zotero.Utilities.trimInternal(child.fieldValue); + } else { + newArticle.artworkSize = Zotero.Utilities.trimInternal(child.fieldValue); + } + } + if (child.fieldName.indexOf("Date")!=-1){ + if (newArticle.date!=null){ + newArticle.date+= ";" + Zotero.Utilities.trimInternal(child.fieldValue); + } else { + //bug here!! when date parser fails, entire object is not saved in Zotero - works in Scaffold, fails in Zotero! to patch remove all occurrences of B.C + newArticle.date = Zotero.Utilities.trimInternal(child.fieldValue.replace(/B.C./i, "")); + } + } + if (child.fieldName.indexOf("Repository")!=-1){ + if (newArticle.repository!=null){ + newArticle.repository+= ";" + Zotero.Utilities.trimInternal(child.fieldValue); + } else { + newArticle.repository = Zotero.Utilities.trimInternal(child.fieldValue); + } + } + if (child.fieldName.indexOf("Source")!=-1){ + if (newArticle.archiveLocation!=null){ + newArticle.archiveLocation+= ";" + Zotero.Utilities.trimInternal(child.fieldValue); + } else { + newArticle.archiveLocation = Zotero.Utilities.trimInternal(child.fieldValue); + } + } + if (child.fieldName.indexOf("Description")!=-1){ + if (newArticle.abstractNote!=null){ + newArticle.abstractNote+= ";" + Zotero.Utilities.trimInternal(child.fieldValue); + } else { + newArticle.abstractNote = Zotero.Utilities.trimInternal(child.fieldValue); + } + } + if (child.fieldName.indexOf("Collection")!=-1){ + if (newArticle.extra!=null){ + newArticle.extra+= ";" + Zotero.Utilities.trimInternal(child.fieldValue); + } else { + newArticle.extra = Zotero.Utilities.trimInternal(child.fieldValue); + } + } + } + var objectId = json.objectId; + //this is called to get the url stub for the ARTstor viewer + Zotero.Utilities.HTTP.doGet(urlstub + "secure/metadata/" + objectId + "?_method=FpHtml", function(dom) { + var testurl = dom.substring(dom.lastIndexOf(''<td class="data">'')+21,dom.lastIndexOf(''</td>'')); + var t2 = "http://www.artstor.org"; + var tmp2 = testurl.replace(/<wbr\/>/g, ""); + tmp2 = tmp2.substring(0, tmp2.indexOf("&userId")); + //build ARTstorImageURL + artstorimgurl = t2+tmp2; + newArticle.url = artstorimgurl; + newArticle.callNumber = objectId; + newArticle.complete(); + Zotero.done(); + }); + Zotero.wait(); }); - Zotero.wait(); +}); +Zotero.wait(); }'); -REPLACE INTO translators VALUES ('e85a3134-8c1a-8644-6926-584c8565f23e', '1.0.0b4.r1', '', '2008-01-13 19:30:00', '1', '100', '4', 'History Cooperative', 'Simon Kornblith', 'https?://[^/]*historycooperative\.org[^/]*/(?:journals/.+/.+/.+\.s?html$|cgi-bin/search.cgi|journals/.+/.+/)', +REPLACE INTO translators VALUES ('79f6f9ed-537a-4d4f-8270-c4fbaafdf327', '1.0.0b4.r5', '', '2008-04-30 19:30:00', '0', '100', '4', 'Emerald Publishing', 'Michael Berkowitz', 'www.emeraldinsight.com/', 'function detectWeb(doc, url) { - var contents = doc.title.replace("Contents", ""); - if(doc.title != contents || doc.title == "History Cooperative: Search Results") { - return "multiple"; - } else { + if (url.match(''searchQuickOptions.do'')) { + return "multiple" + } else if (url.match(''viewContentItem'')) { return "journalArticle"; } }', -'function associateMeta(newItem, metaTags, field, zoteroField) { - var field = metaTags.namedItem(field); - if(field) { - newItem[zoteroField] = field.getAttribute("content"); - } +'var tags = { + journal:"publicationTitle", + year:"date", + volume:"volume", + issue:"issue", + page:"pages", + doi:"DOI", +// publisher:"repository", + ''article url'':"url", + abstract:"abstractNote" } -function scrape(doc) { - var newItem = new Zotero.Item("journalArticle"); - newItem.url = doc.location.href; - - var month, year; - var metaTags = doc.getElementsByTagName("meta"); +function doWeb(doc, url) { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; - // grab title without using meta tag, since when titles have quotes History - // Cooperative can''t create a proper meta tag - var titleRe = /<!--_title_-->(.*)<!--_\/title_-->/; - var m = titleRe.exec(doc.getElementsByTagName("body")[0].innerHTML); - if(m) { - newItem.title = m[1]; + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var links = doc.evaluate(''//td[3][@class="resultTd"]/a[1]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var link; + while (link = links.iterateNext()) { + items[link.href] = link.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } } else { - var namespace = doc.documentElement.namespaceURI; - var nsResolver = namespace ? function(prefix) { - if (prefix == ''x'') return namespace; else return null; - } : null; - - var bookTitle = doc.evaluate(''/html/body/form/table/tbody/tr/td[3]/table/tbody/tr/td/i'', - doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - bookTitle = bookTitle.textContent; - newItem.title = "Review of "+bookTitle; + arts = [url]; } - - associateMeta(newItem, metaTags, "Journal", "publicationTitle"); - associateMeta(newItem, metaTags, "Volume", "volume"); - associateMeta(newItem, metaTags, "Issue", "issue"); - - var author = metaTags.namedItem("Author"); - if(author) { - var authors = author.getAttribute("content").split(" and "); - for(j in authors) { - authors[j] = authors[j].replace("Reviewed by ", ""); - newItem.creators.push(Zotero.Utilities.cleanAuthor(authors[j], "author")); + Zotero.Utilities.processDocuments(arts, function(doc) { + var item = new Zotero.Item("journalArticle"); + item.title = Zotero.Utilities.trimInternal(doc.title.split(''-'')[1]); + + var data = new Object(); + var values = doc.evaluate(''//div[@class="browseBoxGreen"]/div[@class="toc"]/p[@class="inline"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var fields = doc.evaluate(''//div[@class="browseBoxGreen"]/div[@class="toc"]/h3'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var value; + var field; + while ((field = fields.iterateNext()) && (value = values.iterateNext())) { + data[Zotero.Utilities.trimInternal(field.textContent.toLowerCase()).replace('':'', '''')] = value.textContent; + } + var values = doc.evaluate(''//div[@id="centerLeft"]/p[@class="inline"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var fields = doc.evaluate(''//div[@id="centerLeft"]/h3[@class="inline"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + while ((field = fields.iterateNext()) && (value = values.iterateNext())) { + data[Zotero.Utilities.trimInternal(field.textContent.toLowerCase()).replace('':'', '''')] = value.textContent; + } + for (var tag in data) { + if (tags[tag]) item[tags[tag]] = Zotero.Utilities.trimInternal(data[tag]); + } + item.attachments = [{url:item.url, title:"Emerald Insight Snapshot", mimeType:"text/html"}]; + item.tags = Zotero.Utilities.trimInternal(data[''keywords'']).split(/,\s+/); + var authors = data[''author(s)''].split(/,\s+/); + for each (var aut in authors) { + item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author")); } + item.complete(); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('bc39e05b-141a-4322-85f0-a5b86edf896b', '1.0.0b4.r5', '', '2008-04-30 17:15:00', '0', '100', '4', 'Hindawi Publishing Corporation', 'Michael Berkowitz', 'http://www.hindawi.com/', +'function detectWeb(doc, url) { + if (url.match(''GetArticle.aspx'')) { + return "journalArticle"; + } else if (Zotero.Utilities.getItemArray(doc, doc, ''GetArticle.aspx'').length != 0) { + return "multiple"; } +}', +'function doWeb(doc, url) { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; - var month = metaTags.namedItem("PublicationMonth"); - var year = metaTags.namedItem("PublicationYear"); - if(month && year) { - newItem.date = month.getAttribute("content")+" "+year.getAttribute("content"); - } + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = Zotero.Utilities.getItemArray(doc, doc, ''GetArticle.aspx''); + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + arts = [url]; + } + Zotero.Utilities.processDocuments(arts, function(doc) { + var item = new Zotero.Item("journalArticle"); + item.title = doc.title; + item.url = doc.location.href; + + var authorsx = doc.evaluate(''//span/h1/a'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var aut; + var authors = new Array(); + while (aut = authorsx.iterateNext()) { + var author = aut.textContent; + item.creators.push(Zotero.Utilities.cleanAuthor(author, "author")); + } + item.doi = item.url.match(/doi=(.*)/)[1]; + + var voliss = doc.evaluate(''//span/pre'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.toLowerCase(); + if (voliss.match(/volume/)) item.volume = voliss.match(/volume\s+(\d+)/)[1]; + if (voliss.match(/\(\d+\)/)) item.date = voliss.match(/\((\d+)\)/)[1]; + if (voliss.match(/issue/)) item.issue = voliss.match(/issue\s+(\d+)/)[1]; + if (voliss.match(/pages\s+\d+/)) item.pages = voliss.match(/pages\s+([\d\-]+)/)[1]; + if (voliss.match(/article id/)) item.extra = ''Article ID '' + voliss.match(/article id\s+(\d+)/)[1]; + + var abss = doc.evaluate(''//span/p'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var absbit; + var abs = ""; + while (absbit = abss.iterateNext()) { + abs += absbit.textContent; + } + abs = Zotero.Utilities.trimInternal(abs); + item.abstractNote = abs; + item.publicationTitle = doc.evaluate(''//img[@id="ctl00_ImgTitle"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().alt; + item.attachments = [ + {url:item.url, title:item.publicationTitle + " Snapshot", mimeType:"text/html"}, + {url:item.url.replace(''GetArticle'', ''Getpdf''), title:item.publicationTitle + " PDF", mimeType:"application/pdf"} + ]; + item.complete(); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('252c6a50-0900-41c5-a66b-ec456137c43c', '1.0.0b4.r5', '', '2008-04-29 21:30:00', '0', '100', '4', 'AcademicJournals.net', 'Michael Berkowitz', 'http://www.academicjournals.net/', +'function detectWeb(doc, url) { + if (url.match(''articleno='')) { + return "journalArticle"; + } else if (url.match(''issueno='') || url.match(''current.php'')) { + return "multiple"; + } +}', +'function doWeb(doc, url) { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return prefix; else return null; + } : namespace; - newItem.attachments.push({document:doc, title:"History Cooperative Snapshot"}); + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var titles = doc.evaluate(''//tr[2]/td//table/tbody/tr[1]/td[2]/font'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var title; + var links = doc.evaluate(''//tr[4]/td[2]/div/a[@class="links"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var link; + while ((title = titles.iterateNext()) && (link = links.iterateNext())) { + items[link.href] = Zotero.Utilities.trimInternal(title.textContent); + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + arts = [url]; + } + Zotero.Utilities.processDocuments(arts, function(doc) { + var item = new Zotero.Item("journalArticle"); + item.url = doc.location.href; + //title + item.title = Zotero.Utilities.trimInternal(doc.evaluate(''//td[2]/table/tbody/tr/td/div/font'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); + + //voliss, etc. + var voliss = doc.evaluate(''//table/tbody/tr/td[2]/font/font'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + voliss = voliss.match(/^([^\d]+)(\d+)\s+\((\d+)\):\s+([\d\-]+),\s+(\d+)/); + Zotero.debug(voliss); + item.publicationTitle = voliss[1]; + item.volume = voliss[2]; + item.issue = voliss[3]; + item.pages = voliss[4]; + item.date = voliss[5]; + + //authors + var authorsx = doc.evaluate(''//td[2]/font/a[@class="links"]/font'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var author; + var authors = new Array(); + while (author = authorsx.iterateNext()) { + authors.push(author.textContent); + } + for each (var aut in authors) { + item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author")); + } + + item.abstractNote = Zotero.Utilities.trimInternal(doc.evaluate(''//table/tbody/tr/td/div/table/tbody/tr/td[2]/div/font'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); + + //attachments + var pdfurl = doc.evaluate(''//a[contains(@href, ".pdf")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; + item.attachments = [ + {url:item.url, title:"AcademicJournals.net Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:"AcademicJournals.net PDF", mimeType:"application/pdf"} + ]; + + //tags + var tagspath = doc.evaluate(''//tbody/tr/td/table/tbody/tr[2]/td/font/a[@class="links"]/font'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var tag; + var tags = new Array(); + while (tag = tagspath.iterateNext()) { + tags.push(tag.textContent); + } + item.tags = tags; + item.complete(); + }, function() {Zotero.done;}); +}'); + +REPLACE INTO translators VALUES ('1e1e35be-6264-45a0-ad2e-7212040eb984', '1.0.0b4.r5', '', '2008-04-29 19:00:00', '0', '100', '4', 'APA PsycNET', 'Michael Berkowitz', 'http://psycnet\.apa\.org/', +'function detectWeb(doc, url) { + if (url.match(/search\.searchResults/)) { + return "multiple"; + } else if (url.match(/search\.displayRecord/)) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; - newItem.complete(); + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var titles = doc.evaluate(''//div[@class="srhcTitle"]/a'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var title; + while (title = titles.iterateNext()) { + items[title.href] = title.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + arts = [url]; + } + Zotero.Utilities.processDocuments(arts, function(doc) { + var newurl = doc.location.href; + var id = doc.evaluate(''//input[@name="id"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; + var lstSelectedUIDs = doc.evaluate(''//input[@name="lstUIDs"][@id="srhLstUIDs"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; + var get = ''http://psycnet.apa.org/index.cfm?fa=search.export&id='' + id + ''&lstSelectedUIDs='' + lstSelectedUIDs + ''&lstUIDs=&records=selected&displayFormat=&exportFormat=referenceSoftware&printDoc=0''; + Zotero.Utilities.HTTP.doGet(get, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + item.url = newurl; + item.attachments = [{url:newurl, title:"APA PsycNET Snapshot", mimeType:"text/html"}]; + item.complete(); + }); + translator.translate(); + }); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('8082115d-5bc6-4517-a4e8-abed1b2a784a', '1.0.0b4.r5', '', '2008-04-24 14:30:00', '0', '100', '4', 'Copernicus2', 'Michael Berkowitz', 'http://www.(adv-sci-res|astrophys-space-sci-trans|atmos-chem-phys|biogeosciences|clim-past|electronic-earth|hydrol-earth-syst-sci|nat-hazards-earth-syst-sci|nonlin-processes-geophys|ocean-sci|soc-geogr|surv-perspect-integr-environ-soc|the-cryosphere).net/', +'function detectWeb(doc, url) { + if (doc.evaluate(''//div[@id="publisher"]/iframe'', doc, null, XPathResult.ANY_TYPE, null).iterateNext() || doc.evaluate(''//td[*[a[contains(text(), "Abstract")]]]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (doc.title.match(/Abstract/)) { + return "journalArticle"; + } +}', +'function getRIS(link) { + Zotero.Utilities.HTTP.doGet(link, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + item.repository = "Copernicus Online Journals"; + item.attachments[0].title = item.publicationTitle + " Snapshot"; + item.attachments[0].mimeType = "text/html"; + item.attachments[1].title = item.publicationTitle + " PDF"; + item.complete(); + }); + translator.translate(); + }); +} + +function doWeb(doc, url) { + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + if (doc.evaluate(''//div[@id="publisher"]/iframe'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var link = doc.evaluate(''//div[@id="publisher"]/iframe'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src; + Zotero.Utilities.HTTP.doGet(link, function(text) { + var links = text.match(/<a\s+target=\"_top\"\s+href=\"[^"]+\">[^<]+/g); + for each (var link in links) { + link = link.match(/href=\"([^"]+)\">(.*)/); + items[link[1].replace(/\.[^\.]+$/, ".ris")] = Zotero.Utilities.trimInternal(link[2]) + "..."; + } + items = Zotero.selectItems(items); + for (var i in items) { + getRIS(i); + } + }); + } else { + var titles = doc.evaluate(''//td[*[a[contains(text(), "Abstract")]]]/span[@class="pb_toc_article_title"]'', doc, null, XPathResult.ANY_TYPE, null); + var links = doc.evaluate(''//td[*[a[contains(text(), "Abstract")]]]//a[1]'', doc, null, XPathResult.ANY_TYPE, null); + var title; + var link; + while ((title = titles.iterateNext()) && (link = links.iterateNext())) { + items[link.href] = title.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + getRIS(i.replace(".html", ".ris")); + } + } + } else { + getRIS(url.replace(''.html'', ''.ris'')); + } + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('a8df3cb0-f76c-4e2c-a11e-5fa283f8010c', '1.0.0b4.r5', '', '2008-04-24 14:30:00', '0', '100', '4', 'Copernicus', 'Michael Berkowitz', 'http://www.(adv-geosci|adv-radio-sci|ann-geophys).net/', +'function detectWeb(doc, url) { + if (doc.evaluate(''//iframe'', doc, null, XPathResult.ANY_TYPE, null).iterateNext() || doc.evaluate(''//li[a[contains(text(), "Abstract")]]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (doc.title.match(/Abstract/)) { + return "journalArticle"; + } +}', +'function scrape(doc) { + var item = new Zotero.Item("journalArticle"); + item.url = doc.location.href; + item.title = doc.evaluate(''//span[@class="inhaltueber_16f"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + item.publicationTitle = doc.evaluate(''//span[@class="ueberschrift"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent.split(/\n/)[0]; + item.repository = item.publicationTitle; + var authors = doc.evaluate(''//td/span[3]/b'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + authors = authors.replace(/\d/g, "").replace(/,,/, ",").split(/(,|and)/); + for each (var aut in authors) { + if (!(aut == "and") && (aut.match(/\w/))) { + aut = Zotero.Utilities.trimInternal(aut); + names = aut.match(/(.*)\s([^\s]+)/); + item.creators.push({firstName:names[1], lastName:names[2], creatorType:"author"}); + } + } + var voliss = doc.evaluate(''//tr[3]/td/span[@class="lib_small"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + voliss = voliss.match(/^([^,]+),([^,]+),([^,]+),([^w]+)/); + item.journalAbbreviation = voliss[1]; + item.volume = Zotero.Utilities.trimInternal(voliss[2]); + item.pages = Zotero.Utilities.trimInternal(voliss[3]); + item.year = Zotero.Utilities.trimInternal(voliss[4]); + item.abstractNote = Zotero.Utilities.trimInternal(doc.evaluate(''//tr[3]/td/span[4]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent.substr(10)); + item.attachments = [ + {url:item.url, title:item.publicationTitle + " Snapshot", mimeType:"text/html"}, + {url:item.url.replace(".html", ".pdf"), title:item.publicationTitle + " PDF", mimeType:"application/pdf"} + ]; + item.complete(); +} + +function doWeb(doc, url) { + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + if (doc.evaluate(''//iframe'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var link = doc.evaluate(''//iframe'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().src; + Zotero.Utilities.HTTP.doGet(link, function(text) { + var links = text.match(/<a\s+target=\"_top\"\s+href=\"[^"]+\">[^<]+/g); + for each (var link in links) { + link = link.match(/href=\"([^"]+)\">(.*)/); + items[link[1].replace(/\.[^\.]+$/, ".html")] = Zotero.Utilities.trimInternal(link[2]) + "..."; + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + + Zotero.Utilities.processDocuments(arts, function(doc) { + scrape(doc); + }, function() {Zotero.done;}); + }); + } else { + var titles = doc.evaluate(''//li[a[contains(text(), "Abstract")]]/span[@class="articletitle"]'', doc, null, XPathResult.ANY_TYPE, null); + var links = doc.evaluate(''//li[a[contains(text(), "Abstract")]]/a[1]'', doc, null, XPathResult.ANY_TYPE, null); + var title; + var link; + while ((title = titles.iterateNext()) && (link = links.iterateNext())) { + items[link.href] = title.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + Zotero.Utilities.processDocuments(arts, function(doc) { scrape(doc);}, function() {Zotero.done;}); + } + } else { + Zotero.Utilities.processDocuments([url], function(doc) { + scrape(doc); + }, function() {Zotero.done;}); + } + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('f203db7f-7b7b-4dc4-b018-115b7885fe3b', '1.0.0b4.r5', '', '2008-04-24 14:30:00', '0', '100', '4', 'Oxford Music Online', 'Michael Berkowitz', 'http://[^/]*www.oxfordmusiconline.com[^/]*/', +'function detectWeb(doc, url) { + if (url.match(/search_results/)) { + return "multiple"; + } else if (url.match(/\/article\//)) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var ids = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var links = doc.evaluate(''//ul[@class="search_result_list"]/li/p/a'', doc, null, XPathResult.ANY_TYPE, null); + var link; + while (link = links.iterateNext()) { + items[link.href] = link.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + ids.push(i.match(/music\/(\d+)/)[1]); + } + } else { + ids = [url.match(/music\/(\d+)/)[1]]; + } + Zotero.debug(ids); + for each (var id in ids) { + var get = ''http://www.oxfordmusiconline.com/subscriber/article_export_citation/grove/music/'' + id; + Zotero.Utilities.HTTP.doGet(get, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + var authors = new Array(); + for (var i in item.creators) { + names = item.creators[i].lastName.match(/(.*)\s([^\s]+)$/); + authors.push({firstName:names[1], lastName:names[2], creatorType:"author"}); + } + item.creators = authors; + item.complete(); + }); + translator.translate(); + }); + } +}'); + +REPLACE INTO translators VALUES ('56ea09bc-57ee-4f50-976e-cf7cb1f6c6d8', '1.0.0b4.r5', '', '2008-04-23 09:45:00', '0', '100', '4', 'Royal Society Publishing', 'Michael Berkowitz', 'http://journals.royalsociety.org/', +'function detectWeb(doc, url) { + if (doc.evaluate(''//div[@class="listItemName"]/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (doc.evaluate(''//div[contains(@id, "ExportDiv")]/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "journalArticle"; + } +}', +'function makeURL(str, type) { + var m = str.match(/content\/([^/]+)/)[1]; + if (type == "ris") { + return "http://journals.royalsociety.org/export.mpx?code=" + m + "&mode=ris"; + } else if (type == "pdf") { + return "http://journals.royalsociety.org/content/" + m + "/fulltext.pdf"; + } +} + +function doWeb(doc, url) { + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var links = doc.evaluate(''//div[@class="listItemName"]/a'', doc, null, XPathResult.ANY_TYPE, null); + var link; + while (link = links.iterateNext()) { + items[link.href] = link.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + arts = [url]; + } + for each (var link in arts) { + var newurl = makeURL(link, "ris"); + var pdfurl = makeURL(link, "pdf"); + Zotero.Utilities.HTTP.doGet(newurl, 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.attachments = [ + {url:link, title:"Royal Society Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:"Royal Society PDF", mimeType:"application/pdf"} + ]; + item.complete(); + }); + translator.translate(); + }); + } +}'); + +REPLACE INTO translators VALUES ('0eeb2ac0-fbaf-4994-b98f-203d273eb9fa', '1.0.0b4.r5', '', '2008-04-30 21:30:00', '1', '100', '4', 'Inter-Research Science Center', 'Michael Berkowitz', 'http://www.int-res.com/', +'function detectWeb(doc, url) { + if (doc.evaluate(''//div[@class="journal-index"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext() || + doc.evaluate(''//div[@class="tx-indexedsearch-res"]//tr[1]/td[2]//a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (doc.evaluate(''//a[@class="citeexport"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "journalArticle"; + } +}', +'var journals = { + meps:["Marine Ecology Progress Series", "Mar Ecol Prog Ser"], + ab:["Aquatic Biology", "Aquat Biol"], + ame:["Aquatic Microbial Ecology", "Aquat Microb Ecol"], + dao:["Diseases of Aquatic Organisms", "Dis Aquat Org"], + cr:["Climate Research", "Clim Res"], + esr:["Endangered Species Research", "Endang Species Res"] +}; + +function doWeb(doc, url) { + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + if (doc.evaluate(''//div[@class="tx-indexedsearch-res"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var titlesx = doc.evaluate(''//div[@class="tx-indexedsearch-res"]//tr[2]/td[2]'', doc, null, XPathResult.ANY_TYPE, null); + var linksx = doc.evaluate(''//div[@class="tx-indexedsearch-res"]//tr[1]/td[2]//a'', doc, null, XPathResult.ANY_TYPE, null); + var title; + var link; + while ((title = titlesx.iterateNext()) && (link = linksx.iterateNext())) { + items[link.href] = Zotero.Utilities.trimInternal(title.textContent).match(/doi:\s+[^\s]+\s+(.*)$/)[1]; + } + } else { + var stuff = doc.evaluate(''//div[@class="journal-index"]/*[a[contains(text(), "pdf format")]]'', doc, null, XPathResult.ANY_TYPE, null); + var thing; + var titles = ""; + while (thing = stuff.iterateNext()) { + titles += thing.textContent; + } + titles = titles.split(/\n/); + Zotero.debug(titles); + var names = new Array(); + for (var i = 0; i < titles.length; i++) { + if (((i-1)%2 == 0) && (titles[i].match(/\w+/))) { + names.push(titles[i]); + } + } + Zotero.debug(names); + var links = doc.evaluate(''//div[@class="journal-index"]/*[a[contains(text(), "pdf format")]]/a[1]'', doc, null, XPathResult.ANY_TYPE, null); + var link; + while (link = links.iterateNext()) { + items[link.href] = names.shift(); + } + } + + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + arts = [url]; + } + Zotero.Utilities.processDocuments(arts, function(doc) { + var item = new Zotero.Item("journalArticle"); + item.title = Zotero.Utilities.trimInternal(doc.evaluate(''//div[@class="bb"]/h2'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + item.url = doc.location.href; + var voliss = item.url.match(/v(\d+)\/(n(\d+)\/)?p([^/]+)\//); + item.volume = voliss[1]; + item.pages = voliss[4]; + if (voliss[2]) item.issue = voliss[3]; + var jour = item.url.match(/abstracts\/([^/]+)\//)[1]; + item.publicationTitle = journals[jour][0]; + item.journalAbbreviation = journals[jour][1]; + item.abstractNote = Zotero.Utilities.trimInternal(doc.evaluate(''//p[@class="abstract_block"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + var authors = Zotero.Utilities.trimInternal(doc.evaluate(''//div[@class="bb"]/h3'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent).split(/,\s+/); + for each (var aut in authors) { + aut = aut.replace(/[^\w^\s^\.]/g, "").replace(/\d/g, ""); + item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author")); + } + item.date = doc.evaluate(''//div[@class="abs-footer"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent.match(/date:\s+(.*)P/)[1]; + item.DOI = Zotero.Utilities.trimInternal(doc.evaluate(''//h1[@class="csc-firstHeader"]/span'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent).match(/doi:\s+(.*)/)[1]; + var tags = doc.evaluate(''//div[@class="box"]/p/a'', doc, null, XPathResult.ANY_TYPE, null); + var tag; + while (tag = tags.iterateNext()) { + item.tags.push(tag.textContent); + } + var pdfurl = doc.evaluate(''//a[contains(@href, ".pdf")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().href; + item.attachments = [ + {url:item.url, title:item.publicationTitle + " Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:item.publicationTitle + " Full Text PDF", mimeType:"application/pdf"} + ]; + item.complete(); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('70295509-4c29-460f-81a3-16d4ddbb93f6', '1.0.0b4.r5', '', '2008-04-23 09:45:00', '0', '100', '4', 'GSA Journals Online', 'Michael Berkowitz', 'http://www.gsajournals.org/', +'function detectWeb(doc, url) { + if (url.indexOf("request=search") != -1 || url.indexOf("request=get-toc") != -1) { + return "multiple"; + } else if (url.indexOf("request=get-abstract") != -1 || url.indexOf("request=get-document") != -1) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var results = doc.evaluate(''//*[@class="group"]'', doc, null, XPathResult.ANY_TYPE, null); + var next; + while (next = results.iterateNext()) { + var title = Zotero.Utilities.trimInternal(doc.evaluate(''.//*[@class="title"]'', next, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + var link = doc.evaluate(''.//a[1]'', next, null, XPathResult.ANY_TYPE, null).iterateNext().href; + items[link] = title; + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i.replace(/get\-(abstract|document)/, "cite-builder")); + } + } else { + arts = [url.replace(/get\-(abstract|document)/, "cite-builder")]; + } + Zotero.Utilities.processDocuments(arts, function(doc) { + var newurl = doc.evaluate(''//a[contains(@href, "refman")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().href; + var oldurl = doc.location.href; + Zotero.Utilities.HTTP.doGet(newurl, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + item.url = oldurl; + item.DOI = decodeURIComponent(item.url.match(/doi=([^&]+)/)[1]); + var pdfurl = ''http://www.gsajournals.org/perlserv/?request=res-loc&uri=urn:ap:pdf:doi:'' + item.DOI; + item.attachments = [ + {url:item.url, title:"GSA Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:"GSA Full Text PDF", mimeType:"application/pdf"} + ]; + item.complete(); + }); + translator.translate(); + }); + }, function() {Zotero.done;}); +}'); + +REPLACE INTO translators VALUES ('9d822257-2eec-4674-b6d0-2504f54c8890', '1.0.0b4.r5', '', '2008-04-18 08:55:00', '0', '100', '4', 'African Journals Online', 'Michael Berkowitz', 'http://www.ajol.info', +'function detectWeb(doc, url) { + if (url.match(/viewarticle.php/)) { + return "journalArticle"; + } else if (url.match(/search.php/) || url.match(/viewissue.php/)) { + return "multiple"; + } +}', +'function getID(str) { + return str.match(/(&|\?)id=(\d+)&?/)[2]; +} + +function doWeb(doc, url) { + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + if (url.match(/search.php/)) { + var items = Zotero.Utilities.getItemArray(doc, doc, "viewarticle.php?"); + } else if (url.match("viewissue.php")) { + var items = new Object(); + var titles = doc.evaluate(''//span[@class="toctitle"]'', doc, null, XPathResult.ANY_TYPE, null); + var links = doc.evaluate(''//a[text() = "Abstract"]'', doc, null, XPathResult.ANY_TYPE, null); + var title; + var link; + while ((title = titles.iterateNext()) && (link = links.iterateNext())) { + items[link.href] = Zotero.Utilities.trimInternal(title.textContent); + } + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(getID(i)); + } + } else { + articles = [getID(url)]; + } + Zotero.debug(articles); + for each (var id in articles) { + var getstr = ''http://www.ajol.info/rst/rst.php?op=capture_cite&id='' + id + ''&cite=refman''; + Zotero.Utilities.HTTP.doGet(getstr, function(text) { + // load translator for RIS + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + var pubinfo = item.publicationTitle.match(/(.*);([^;]+)$/); + item.publicationTitle = pubinfo[1]; + var voliss = pubinfo[2].toLowerCase(); + if (voliss.match(/v/)) item.volume = voliss.match(/v(ol\.)?\s+(\d+)/)[2]; + if (voliss.match(/n/)) item.issue = voliss.match(/n(o\.)?\s+(\d+)/)[2]; + if (voliss.match(/p(age)?/)) item.pages = voliss.match(/\d+\-\d+/)[0]; + item.date = voliss.match(/\(([^)]+)\)/)[1]; + item.attachments[0].title = "African Journals Online Snapshot"; + item.attachments[0].mimeType = "text/html"; + item.complete(); + }); + translator.translate(); + }); + } +}'); + +REPLACE INTO translators VALUES ('dedcae51-073c-48fb-85ce-2425e97f128d', '1.0.0b4.r5', '', '2008-04-18 08:55:00', '0', '100', '4', 'Archive Ouverte en Sciences de l''Information et de la Communication (AOSIC)', 'Michael Berkowitz', 'http://archivesic.ccsd.cnrs.fr/', +'function detectWeb(doc, url) { + if (doc.title.toLowerCase().match("fulltext search")) { + return "multiple"; + } else if (url.match(/sic_\d+/)) { + return "journalArticle"; + } +}', +'var metaTags = { + "DC.relation":"url", + "DC.date":"date", + "DC.description":"abstractNote", + "DC.creator":"creators", + "DC.title":"title" +} + +function doWeb(doc, url) { + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = Zotero.Utilities.getItemArray(doc, doc, /sic_\d+\/fr\//); + items = Zotero.selectItems(items) + for (var i in items) { + articles.push(i); + } + } else { + articles = [url]; + } + Zotero.Utilities.processDocuments(articles, function(doc) { + var xpath = ''//meta[@name]''; + var data = new Object(); + var metas = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var meta; + while (meta = metas.iterateNext()) { + if (data[meta.name]) { + data[meta.name] = data[meta.name] + ";" + meta.content; + } else { + data[meta.name] = meta.content; + } + } + Zotero.debug(data); + var item = new Zotero.Item("journalArticle"); + for (var tag in metaTags) { + if (tag == "DC.creator") { + var authors = data[''DC.creator''].split(";"); + for each (var aut in authors) { + aut = aut.replace(/^([^,]+),\s+(.*)$/, "$2 $1"); + item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author")); + } + } else { + item[metaTags[tag]] = data[tag]; + } + } + var pdfurl = doc.evaluate(''//a[contains(@href, ".pdf")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().href.match(/url=([^&]+)&/)[1]; + Zotero.debug(pdfurl); + item.attachments = [ + {url:item.url, title:"AOSIC Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:"AOSIC Full Text PDF", mimeType:"application/pdf"} + ]; + item.complete(); + }, function() {Zotero.done;}); + 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/', +'function detectWeb(doc, url) { + if (doc.title.indexOf("OAIster") != -1) { + return "multiple"; + } +}', +'function doWeb(doc, url) { + var items = new Array(); + var titlex = ''/html/body/table/tbody/tr/td[2]/table/tbody/tr/td/table/tbody/tr[1]/td[4]/font''; + var titles = doc.evaluate(titlex, doc, null, XPathResult.ANY_TYPE, null); + var title; + while (title = titles.iterateNext()) { + items.push(Zotero.Utilities.trimInternal(title.textContent)); + } + items = Zotero.selectItems(items); + titles = new Array(); + for each (var title in items) { + titles.push(title); + } + Zotero.debug(titles); + var xpath = ''//table/tbody/tr/td/table/tbody//table/tbody[tr/td[4]]''; + var arts = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var art; + while (art = arts.iterateNext()) { + var data = new Object(); + var rows = doc.evaluate(''./tr[td[4]]'', art, null, XPathResult.ANY_TYPE, null); + var row; + while (row = rows.iterateNext()) { + var tag = Zotero.Utilities.trimInternal(doc.evaluate(''./td[2]'', row, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + var value = Zotero.Utilities.trimInternal(doc.evaluate(''./td[4]'', row, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + if (tag == "Note") { + if (!data[''Note'']) { + data[tag] = Zotero.Utilities.unescapeHTML(value); + } + } else { + data[tag] = Zotero.Utilities.unescapeHTML(value); + } + + } + var item = new Zotero.Item(); + if (data[''Resource Type'']) { + var itemType = data[''Resource Type'']; + } else { + var itemType = "journalArticle"; + } + if (itemType == "journalArticle" || itemType.match(/(A|a)rticle/) || itemType.match(/text/)) { + item.itemType = "journalArticle"; + } else if (itemType.match(/(T|t)hesis/)) { + item.itemType = "thesis"; + } + 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]; + } + item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author")); + } + 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'']) { + var keys = data[''Subject''].split(/;/); + for each (var kw in keys) { + if (kw.match(/\w+/)) item.tags.push(kw); + } + } + for (var i in titles) { + if (item.title == titles[i]) item.complete(); + } + } +}'); + +REPLACE INTO translators VALUES ('675306d2-fca9-466f-b33d-1e3cc1bfd091', '1.0.0b4.r5', '', '2008-04-18 08:55:00', '0', '100', '4', 'Universiteit van Amsterdam', 'Michael Berkowitz', 'http://opc.uva.nl:8080/', +'function detectWeb(doc, url) { + if (doc.evaluate(''//td[3][@class="hit"]/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (doc.title.match("results/titledata")) { + return "book"; + } +}', +'function scrape(item, langTags, data) { + for (var tag in data) { + tag = tag.toLowerCase(); + if (langTags[tag] == "creators") { + var authors = data[tag].split(","); + for each (var aut in authors) { + item.creators.push(Zotero.Utilities.cleanAuthor(Zotero.Utilities.trimInternal(aut), "author")); + } + } else if (langTags[tag] == "tags") { + var kws = data[tag].split(/(,|;)/); + for each (var key in kws) { + if (key.match(/\w+/)) item.tags.push(Zotero.Utilities.trimInternal(key)); + } + } else if (langTags[tag] == "publisher") { + var pub = data[tag].split(/\s*:\s*/); + item.place = pub[0]; + item.publisher = pub[1]; + } else { + item[langTags[tag]] = data[tag]; + } + } +} + +var tagsEN = { + "title":"title", + "author(s)":"creators", + "publisher":"publisher", + "year":"date", + "isbn":"ISBN", + "subject headings":"tags", + "subject heading person":"tags", + "call number":"callNumber" +} + +var tagsNE = { + "titel":"title", + "auteur(s)":"creators", + "uitgever":"publisher", + "jaar":"date", + "isbn":"ISBN", + "trefwoorden":"tags", + "trefwoord persoon":"tags", + "plaatsnummer":"callNumber" +} + +function doWeb(doc, url) { + var books = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var links = doc.evaluate(''//td[3][@class="hit"]/a'', doc, null, XPathResult.ANY_TYPE, null); + var link; + while (link = links.iterateNext()) { + items[link.href] = Zotero.Utilities.trimInternal(link.textContent); + } + items = Zotero.selectItems(items); + for (var i in items) { + books.push(i); + } + } else { + books = [url]; + } + Zotero.Utilities.processDocuments(books, function(newDoc) { + var data = new Object(); + var box = newDoc.evaluate(''//table/tbody/tr[1]/td[2]/table/tbody/tr'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext(); + var tags = newDoc.evaluate(''//table/tbody/tr[1]/td[2]/table/tbody/tr/td[1]'', newDoc, null, XPathResult.ANY_TYPE, null); + var values = newDoc.evaluate(''//table/tbody/tr[1]/td[2]/table/tbody/tr/td[2]'', newDoc, null, XPathResult.ANY_TYPE, null); + var tag; + var value; + while ((tag = tags.iterateNext()) && (value = values.iterateNext())) { + tag = Zotero.Utilities.trimInternal(tag.textContent).replace(/:/, "").toLowerCase(); + if (tagsEN[tag] || tagsNE[tag]) { + data[tag] = Zotero.Utilities.trimInternal(value.textContent); + } + } + item = new Zotero.Item("book"); + var lingTags = new Array(); + if (data[''titel'']) { + lingTags = tagsNE; + } if (data[''title'']) { + lingTags = tagsEN; + } + scrape(item, lingTags, data); + item.complete(); + }, function() {Zotero.done;}); +}'); + +REPLACE INTO translators VALUES ('bbad0221-134b-495a-aa56-d77cfaa67ab5', '1.0.0b4.r5', '', '2008-04-16 04:45:00', '0', '100', '4', 'Digital Humanities Quarterly', 'Michael Berkowitz', 'http://www.digitalhumanities.org/(dhq)?', +'function detectWeb(doc, url) { + if (doc.evaluate(''//div[@class="DHQarticle"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "journalArticle"; + } else if (doc.evaluate(''//div[@id="mainContent"]/div/p'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } +}', +'function scrape(doc, xpath, xdoc) { + return Zotero.Utilities.trimInternal(doc.evaluate(xpath, xdoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); +} + +function doWeb(doc, url) { + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object; + var arts = doc.evaluate(''//div[@id="mainContent"]/div/p/a'', doc, null, XPathResult.ANY_TYPE, null); + var art; + while (art = arts.iterateNext()) { + items[art.href] = art.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(i) + } + } else { + articles = [url]; + } + Zotero.debug(articles); + + Zotero.Utilities.processDocuments(articles, function(newDoc) { + var item = new Zotero.Item("journalArticle"); + item.url = newDoc.location.href; + item.title = scrape(newDoc, ''//h1[@class="articleTitle"]'', newDoc); + var voliss = scrape(newDoc, ''//div[@id="pubInfo"]'', newDoc); + voliss = voliss.match(/(.*)Volume\s+(\d+)\s+Number\s+(\d+)/); + item.date = voliss[1]; + item.volume = voliss[2]; + item.issue = voliss[3]; + var authors = newDoc.evaluate(''//div[@class="author"]'', newDoc, null, XPathResult.ANY_TYPE, null); + var aut; + while (aut = authors.iterateNext()) { + item.creators.push(Zotero.Utilities.cleanAuthor(scrape(newDoc, ''./a[1]'', aut), "author")); + } + item.attachments = [{url:item.url, title:"DHQ Snapshot", mimeType:"text/html"}]; + item.complete(); + }, function() {Zotero.done;}); +}'); + +REPLACE INTO translators VALUES ('fb342bae-7727-483b-a871-c64c663c2fae', '1.0.0b4.r5', '', '2008-04-11 08:30:00', '0', '100', '4', 'BusinessWeek', 'Michael Berkowitz', 'http://(www\.)?businessweek.com', +'function detectWeb(doc, url) { + if (doc.title == "BusinessWeek Search Results") { + return "multiple"; + } else if (doc.evaluate(''//meta[@name="headline"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "magazineArticle"; + } +}', +'function doWeb(doc, url) { + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var results = doc.evaluate(''//div[@class="result"]/h3[@class="story"]/a'', doc, null, XPathResult.ANY_TYPE, null); + var result; + var items = new Object(); + while (result = results.iterateNext()) { + items[result.href] = Zotero.Utilities.trimInternal(result.textContent); + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(i); + } + } else { + articles = [url]; + } + Zotero.debug(articles); + Zotero.Utilities.processDocuments(articles, function(newDoc) { + var metaTags = new Object(); + var metas = newDoc.evaluate(''//meta'', newDoc, null, XPathResult.ANY_TYPE, null); + var meta; + while (meta = metas.iterateNext()) { + metaTags[meta.name] = meta.content; + } + Zotero.debug(metaTags); + var item = new Zotero.Item("magazineArticle"); + item.title = metaTags[''headline'']; + item.abstractNote = metaTags[''abstract'']; + item.tags = metaTags[''keywords''].split(/\s*,\s*/); + item.creators.push(Zotero.Utilities.cleanAuthor(metaTags[''author''], "author")); + item.publicationTitle = "BusinessWeek: " + metaTags[''channel'']; + item.url = newDoc.location.href; + item.date = metaTags[''pub_date''].replace(/(\d{4})(\d{2})(\d{2})/, "$2/$3/$1"); + item.complete(); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('409c520b-0720-4011-8fce-70fcd9806493', '1.0.0b4.r5', '', '2008-04-09 00:45:00', '0', '100', '4', 'InderScience', 'Michael Berkowitz', 'http://www.inderscience.com/', +'function detectWeb(doc, url) { + if (doc.evaluate(''/html/body/table/tbody/tr/td[2]/table[tbody/tr/td[3]][2]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext() + || doc.evaluate(''//td[1][@class="textcontent"]/table/tbody/tr/td[2]/b/u/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (url.indexOf("rec_id") != -1) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + if (detectWeb(doc, url) == "journalArticle") { + scrape(url); + } else if ((detectWeb(doc, url) == "multiple")) { + if (doc.evaluate(''/html/body/table/tbody/tr/td[2]/table[tbody/tr/td[3]]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var items = new Object(); + var results = doc.evaluate(''/html/body/table/tbody/tr/td[2]/table[tbody/tr/td[3]]'', doc, null, XPathResult.ANY_TYPE, null); + var result; + while (result = results.iterateNext()) { + var title = Zotero.Utilities.trimInternal(doc.evaluate(''.//tr[1]/td[3]'', result, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + var id = doc.evaluate(''.//tr[8]/td[2]/a[2]'', result, null, XPathResult.ANY_TYPE, null).iterateNext().href.match(/rec_id=([^&]+)/)[1]; + items[id] = title; + } + items = Zotero.selectItems(items); + for (var i in items) { + scrape(''http://www.inderscience.com/search/index.php?action=record&rec_id='' + i); + } + } else { + var arts = new Array(); + var items = Zotero.Utilities.getItemArray(doc, doc, "&rec_id"); + items = Zotero.selectItems(items); + for (var i in items) { + scrape(i); + } + } + } + Zotero.wait(); +} + +function scrape(link) { + Zotero.Utilities.loadDocument(link, function(newDoc) { + var data = new Object(); + var rows = newDoc.evaluate(''/html/body/table/tbody/tr/td[2]/table[tbody/tr/td[3]]//tr[td[3]]'', newDoc, null, XPathResult.ANY_TYPE, null); + var row; + while (row = rows.iterateNext()) { + var tag = Zotero.Utilities.trimInternal(newDoc.evaluate(''./td[2]'', row, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + var value = Zotero.Utilities.trimInternal(newDoc.evaluate(''./td[3]'', row, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + data[tag] = value; + } + Zotero.debug(data); + var item = new Zotero.Item("journalArticle"); + item.title = data[''Title:'']; + item.abstractNote = data[''Abstract:'']; + item.url = newDoc.location.href; + item.tags = data[''Keywords:''].substr(0, data[''Keywords:''].length - 1).split(/\s*;\s*/); + item.DOI = data[''DOI:'']; + item.attachments.push({url:item.url, title:item.title + ": InderScience Snapshot", mimeType:"text/html"}); + var authors = data[''Author:''].split(/\s*,\s*/); + for each (var author in authors) { + item.creators.push(Zotero.Utilities.cleanAuthor(author, "author")); + } + var voliss = data[''Journal:''].match(/^([^\d]+)(\d+)\s*\-\s*Vol\.\s*(\d+)\s*,\s*No\.(.+)pp\.\s*(.*)$/); + Zotero.debug(voliss); + item.publicationTitle = voliss[1]; + item.date = voliss[2]; + item.volume = voliss[3]; + item.issue = voliss[4]; + item.pages = voliss[5]; + item.complete(); + }, function() {Zotero.done;}); +}'); + +REPLACE INTO translators VALUES ('8381bf68-11fa-418c-8530-2e00284d3efd', '1.0.0b4.r5', '', '2008-04-09 00:45:00', '0', '100', '4', 'IRIS translator', 'Chad Mills and Michael Berkowitz', 'http://[^/]*www.iris.rutgers.edu[^/]*/', +'function detectWeb(doc, url) { + if (doc.evaluate(''//tr/td[1][@class="searchsum"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (doc.evaluate(''//th[@class="viewmarctags"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "book"; + } +}', +'function scrape(doc) { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; + + var xpath = ''//div[@id="panel1"]//tr[th[@class="viewmarctags"]][td[@class="viewmarctags"]]''; + var elmts = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + var elmt = elmts.iterateNext(); + + if(!elmt) { + return false; + } + + var newItem = new Zotero.Item("book"); + newItem.extra = ""; + + newItem.series = ""; + var seriesItemCount = 0; + + while(elmt) { + try { + var node = doc.evaluate(''./TD[1]/A[1]/strong[1]/text()[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + if(!node) { + var node = doc.evaluate(''./TD[1]/text()[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + } + if(node) { + var casedField = Zotero.Utilities.superCleanString(doc.evaluate(''./TH[1]/text()[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().nodeValue); + field = casedField.toLowerCase(); + var value = Zotero.Utilities.superCleanString(node.nodeValue); + if(field == "publisher") { + newItem.publisher = value; + } else if(field == "pub date") { + var re = /[0-9]+/; + var m = re.exec(value); + newItem.date = m[0]; + } else if(field == "isbn") { + var re = /^[0-9](?:[0-9X]+)/; + var m = re.exec(value); + newItem.ISBN = m[0]; + } else if(field == "title") { + var titleParts = value.split(" / "); + re = /\[(.+)\]/i; + if (re.test(titleParts[0])) { + var ar = re.exec(titleParts[0]); + var itype = ar[1].toLowerCase(); + if(itype== "phonodisc" || itype == "sound recording"){ + newItem.itemType = "audioRecording"; + }else if(itype=="videorecording"){ + newItem.itemType = "videoRecording"; + }else if(itype=="electronic resource"){ + newItem.itemType = "webPage"; + } + } + newItem.title = Zotero.Utilities.capitalizeTitle(titleParts[0]); + }else if(field == "series") {//push onto item, delimit with semicolon when needed + if (seriesItemCount != 0){ + newItem.series += "; " + value; + } + else if(seriesItemCount == 0) { + newItem.series = value; + } + seriesItemCount++;//bump counter + }else if(field == "dissertation note") { + newItem.itemType = "thesis"; + var thesisParts = value.split("--"); + var uniDate = thesisParts[1].split(", "); + newItem.university = uniDate[0]; + newItem.date = uniDate[1]; + }else if(field == "edition") { + newItem.edition = value; + }else if(field == "physical descrip") { + //support + var physParts = value.split(" : "); + var physParts = physParts[0].split(" ; "); + newItem.pages = physParts[0]; + } else if(field == "publication info") { + var pubParts = value.split(" : "); + newItem.place = pubParts[0]; + newItem.publisher = pubParts[1]; + } else if(field == "personal author") { + newItem.creators.push(Zotero.Utilities.cleanAuthor(value, "author", true)); + } else if(field == "performer") { + newItem.creators.push(Zotero.Utilities.cleanAuthor(value, "performer", true)); + } else if(field == "author"){ + newItem.creators.push(Zotero.Utilities.cleanAuthor(value, "author", true)); + } else if(field == "added author") { + newItem.creators.push(Zotero.Utilities.cleanAuthor(value, "contributor", true)); + } else if(field == "conference author" || field == "corporate author") { + newItem.creators.push(value); + } else if(field == "subject" || field == "corporate subject" || field == "geographic term") { + var subjects = value.split("--"); + newItem.tags = newItem.tags.concat(subjects); + } else if(field == "personal subject") { + var subjects = value.split(", "); + newItem.tags = newItem.tags.push(value[0]+", "+value[1]); + } else if(value && field != "http") { + newItem.extra += casedField+": "+value+"\n"; + } + } + } catch (e) {} + elmt = elmts.iterateNext(); + } + + if(newItem.extra) { + newItem.extra = newItem.extra.substr(0, newItem.extra.length-1); + } + + var callNumber = doc.evaluate(''//tr/td[1][@class="holdingslist"]/strong/text()'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + if(callNumber && callNumber.nodeValue) { + newItem.callNumber = callNumber.nodeValue; + } + + var domain = doc.location.href.match(/https?:\/\/([^/]+)/); + newItem.repository = domain[1]+" Library Catalog"; + newItem.accessed = Date(); + newItem.complete(); + return true; +} + +function doWeb(doc, url){ + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; + + var sirsiNew = true; //toggle between SIRSI -2003 and SIRSI 2003+ + var xpath = ''//td[@class="searchsum"]/table''; + + if(doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + Zotero.debug("SIRSI doWeb: searchsum"); + sirsiNew = true; + } else if (doc.evaluate(''//form[@name="hitlist"]/table/tbody/tr'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + Zotero.debug("SIRSI doWeb: hitlist"); + sirsiNew = false; + } else if (doc.evaluate(''//tr[th[@class="viewmarctags"]][td[@class="viewmarctags"]]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + Zotero.debug("SIRSI doWeb: viewmarctags"); + sirsiNew = true; + } else if (doc.evaluate(''//input[@name="VOPTIONS"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + Zotero.debug("SIRSI doWeb: VOPTIONS"); + sirsiNew = false; + } else { + var elmts = doc.evaluate(''/html/body/form//text()'', doc, nsResolver, XPathResult.ANY_TYPE, null); + while(elmt = elmts.iterateNext()) { + if(Zotero.Utilities.superCleanString(elmt.nodeValue) == "Viewing record") { + Zotero.debug("SIRSI doWeb: Viewing record"); + sirsiNew = false; + } + } + } + + if (sirsiNew) { //executes Simon''s SIRSI 2003+ scraper code + Zotero.debug("Running SIRSI 2003+ code"); + if(!scrape(doc)) { + var checkboxes = new Array(); + var urls = new Array(); + var availableItems = new Array(); + //begin IUCAT fixes by Andrew Smith + var iuRe = /^https?:\/\/www\.iucat\.iu\.edu/; + var iu = iuRe.exec(url); + //IUCAT fix 1 of 2 + if (iu){ + var tableRows = doc.evaluate(''//td[@class="searchsum"]/table[//input[@class="submitLink"]]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + } else{ + var tableRows = doc.evaluate(''//td[@class="searchsum"]/table[//input[@value="Details"]]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + } + var tableRow = tableRows.iterateNext(); // skip first row + // Go through table rows + while(tableRow = tableRows.iterateNext()) { + //IUCAT fix 2 of 2 + if (iu){ + var input = doc.evaluate(''.//input[@class="submitLink"]'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + var text = doc.evaluate(''.//label/span'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + } else { + var input = doc.evaluate(''.//input[@value="Details"]'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + var text = doc.evaluate(''.//label/strong'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + } + //end IUCAT fixes by Andrew Smith + if(text) { + availableItems[input.name] = text; + } + } + var items = Zotero.selectItems(availableItems); + if(!items) { + return true; + } + var hostRe = new RegExp("^http(?:s)?://[^/]+"); + var m = hostRe.exec(doc.location.href); + Zotero.debug("href: " + doc.location.href); + var hitlist = doc.forms.namedItem("hitlist"); + var baseUrl = m[0]+hitlist.getAttribute("action")+"?first_hit="+hitlist.elements.namedItem("first_hit").value+"&last_hit="+hitlist.elements.namedItem("last_hit").value; + var uris = new Array(); + for(var i in items) { + uris.push(baseUrl+"&"+i+"=Details"); + } + Zotero.Utilities.processDocuments(uris, function(doc) { scrape(doc) }, + function() { Zotero.done() }, null); + Zotero.wait(); + } + } else{ //executes Simon''s SIRSI -2003 translator code + Zotero.debug("Running SIRSI -2003 code"); + var uri = doc.location.href; + var recNumbers = new Array(); + var xpath = ''//form[@name="hitlist"]/table/tbody/tr''; + var elmts = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + var elmt = elmts.iterateNext(); + if(elmt) { // Search results page + var uriRegexp = /^http:\/\/[^\/]+/; + var m = uriRegexp.exec(uri); + var postAction = doc.forms.namedItem("hitlist").getAttribute("action"); + var newUri = m[0]+postAction.substr(0, postAction.length-1)+"40"; + var titleRe = /<br>\s*(.*[^\s])\s*<br>/i; + var items = new Array(); + do { + var checkbox = doc.evaluate(''.//input[@type="checkbox"]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + // Collect title + var title = doc.evaluate("./td[2]", elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + if(checkbox && title) { + items[checkbox.name] = Zotero.Utilities.cleanString(title); + } + } while(elmt = elmts.iterateNext()); + items = Zotero.selectItems(items); + + if(!items) { + return true; + } + + for(var i in items) { + recNumbers.push(i); + } + } else {// Normal page + // this regex will fail about 1/100,000,000 tries + var uriRegexp = /^((.*?)\/([0-9]+?))\//; + var m = uriRegexp.exec(uri); + var newUri = m[1]+"/40" + var elmts = doc.evaluate(''/html/body/form'', doc, nsResolver, XPathResult.ANY_TYPE, null); + while(elmt = elmts.iterateNext()) { + var initialText = doc.evaluate(''.//text()[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + if(initialText && initialText.nodeValue && Zotero.Utilities.superCleanString(initialText.nodeValue) == "Viewing record") { + recNumbers.push(doc.evaluate(''./b[1]/text()[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().nodeValue); + break; + } + } + } + + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("a6ee60df-1ddc-4aae-bb25-45e0537be973"); + var marc = translator.getTranslatorObject(); + Zotero.Utilities.loadDocument(newUri+''?marks=''+recNumbers.join(",")+''&shadow=NO&format=FLAT+ASCII&sort=TITLE&vopt_elst=ALL&library=ALL&display_rule=ASCENDING&duedate_code=l&holdcount_code=t&DOWNLOAD_x=22&DOWNLOAD_y=12&address=&form_type='', function(doc) { + var pre = doc.getElementsByTagName("pre"); + var text = pre[0].textContent; + var documents = text.split("*** DOCUMENT BOUNDARY ***"); + for(var j=1; j<documents.length; j++) { + var uri = newUri+"?marks="+recNumbers[j]+"&shadow=NO&format=FLAT+ASCII&sort=TITLE&vopt_elst=ALL&library=ALL&display_rule=ASCENDING&duedate_code=l&holdcount_code=t&DOWNLOAD_x=22&DOWNLOAD_y=12&address=&form_type="; + var lines = documents[j].split("\n"); + var record = new marc.record(); + var tag, content; + var ind = ""; + for(var i=0; i<lines.length; i++) { + var line = lines[i]; + if(line[0] == "." && line.substr(4,2) == ". ") { + if(tag) { + content = content.replace(/\|([a-z])/g, marc.subfieldDelimiter+"$1"); + record.addField(tag, ind, content); + } + } else { + content += " "+line.substr(6); + continue; + } + tag = line.substr(1, 3); + if(tag[0] != "0" || tag[1] != "0") { + ind = line.substr(6, 2); + content = line.substr(8); + } else { + content = line.substr(7); + if(tag == "000") { + tag = undefined; + record.leader = "00000"+content; + Zotero.debug("the leader is: "+record.leader); + } + } + } + + var newItem = new Zotero.Item(); + record.translate(newItem); + var domain = url.match(/https?:\/\/([^/]+)/); + newItem.repository = domain[1]+" Library Catalog"; + newItem.complete(); + } + Zotero.done(); + }); + Zotero.wait(); + } +}'); + +REPLACE INTO translators VALUES ('a69deb08-47d9-46ad-afca-bc3a2499ad34', '1.0.0b4.r5', '', '2008-04-08 03:00:00', '0', '100', '4', 'Royal Historical Society', 'Michael Berkowitz', 'http://www.rhs.ac.uk/bibl/', +'function detectWeb(doc, url) { + if (doc.evaluate(''//tr/td[3][@class="bib_data"]/a[@class="bibref"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (doc.evaluate(''//a[text() = "View records in XML"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "book"; + } +}', +'function doWeb(doc, url) { + var books = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var xpath = ''//a[@class="bibref"]''; + var results = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var result; + while (result = results.iterateNext()) { + items[result.href] = Zotero.Utilities.trimInternal(result.textContent); + } + items = Zotero.selectItems(items); + for (var i in items) { + books.push(i.replace(/DATABASE=[^&]+/, "DATABASE=xmlcatalo")); + } + } else { + books = [url.replace(/DATABASE=[^&]+/, "DATABASE=xmlcatalo")]; + } + for each (var link in books) { + Zotero.Utilities.HTTP.doGet(link, function(text) { + text = text.replace(/<\?[^?]+\?>/, ""); + var xml = new XML(text); + xml = xml..recordList; + + var itemtype = "book"; + if (xml..journal_title.length() != 0) itemtype = "journalArticle"; + + var item = new Zotero.Item(itemtype); + item.title = xml..title; + for (var i = 0; i < xml..author.length(); i++) { + var name = xml..author[i].toString().match(/^[^,]+,[^,]+/)[0].split(/,\s+/); + item.creators.push({lastName:name[0], firstName:name[1], creatorType:"author"}); + } + if (item.itemType == "book") { + item.place = xml..place_of_publication.toString(); + item.publisher = xml..publisher.toString(); + item.date = xml..publication_year.toString(); + } else if (item.itemType == "journalArticle") { + item.publicationTitle = xml..journal_title.toString(); + var voliss = xml..journal_number.split(":"); + Zotero.debug(voliss); + item.volume = voliss[0]; + item.issue = voliss[1]; + item.date = xml..journal_issue_year; + item.pages = xml..journal_pages; + } + + item.complete(); + }); + Zotero.done; + } + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('d921155f-0186-1684-615c-ca57682ced9b', '1.0.0b4.r1', '', '2008-04-04 20:00:00', '1', '100', '4', 'JSTOR', 'Simon Kornblith, Sean Takats and Michael Berkowitz', 'https?://[^/]*jstor\.org[^/]*/(action/(showArticle|doBasicSearch|doAdvancedSearch)|stable/)', +'function detectWeb(doc, url) { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; + + // See if this is a seach results page + if(doc.title == "JSTOR: Search Results" || url.indexOf("/stable/i") != -1) { + return "multiple"; + } else if(url.indexOf("/search/") != -1) { + return false; + } + + // If this is a view page, find the link to the citation + var xpath = ''//a[@id="favorites"]''; + var elmts = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + if(elmts.iterateNext()) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; + + var hostRegexp = new RegExp("^(https?://[^/]+)/"); + var hMatch = hostRegexp.exec(url); + var host = hMatch[1]; + + // If this is a view page, find the link to the citation + var xpath = ''//a[@id="favorites"]''; + var elmts = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + if(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]+)"); + var jidmatch1 = jidRe1.exec(url); + var jidmatch2 = jidRe2.exec(url); + var jidmatch3 = jidRe3.exec(url); + if (jidmatch1) { + jid = jidmatch1[1]; + } else if (jidmatch2) { + jid = jidmatch2[1]; + } else if (jidmatch3) { + jid = jidmatch3[1]; + } else { + return false; + } + var downloadString = "&noDoi=yesDoi&downloadFileName=deadbeef&suffix="+jid; + } + else{ + var availableItems = new Object(); + var tableRows = doc.evaluate(''//li[ul/li/a[@class="title"]]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var tableRow; + var jid; + var title; + var jidRe = new RegExp("[0-9\.]+/([0-9]+)"); + while(tableRow = tableRows.iterateNext()) { + title = doc.evaluate(''./ul/li/a[@class="title"]'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + jid = doc.evaluate(''.//input[@name="doi"]'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; + var m = jidRe.exec(jid); + if (m) { + jid = m[1]; + } + availableItems[jid] = title; + } + + var items = Zotero.selectItems(availableItems); + if(!items) { + return true; + } + var downloadString="&noDoi=yesDoi&downloadFileName=deadbeef"; + for(var i in items) { + downloadString+="&suffix="+i; + } + } + + Zotero.Utilities.HTTP.doPost(host+"/action/downloadCitation?format=refman&direct=true", + downloadString, function(text) { + // load translator for RIS + Zotero.debug(text); + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + if(item.notes && item.notes[0]) { + item.extra = item.notes[0].note; + + delete item.notes; + item.notes = undefined; + } + item.attachments[0].title = item.title; + item.attachments[0].mimeType = "text/html"; + Zotero.debug(host); + var pdfurl = item.url.replace(/([^\d]+)(\d+)$/, host + "/stable/pdfplus/$2") + ".pdf"; + item.attachments.push({url:pdfurl, title:"JSTOR Full Text PDF", mimeType:"application/pdf"}); + item.complete(); + }); + + translator.translate(); + + Zotero.done(); + }); + +}'); + +REPLACE INTO translators VALUES ('e8fc7ebc-b63d-4eb3-a16c-91da232f7220', '1.0.0b4.r5', '', '2008-02-12 10:00:00', '0', '100', '4', 'Aluka', 'Sean Takats', 'https?://(?:www\.)aluka.org/action/(?:showMetadata\?doi=[^&]+|doSearch\?|doBrowseResults\?)', +'function detectWeb(doc, url){ + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; + + var xpath = ''//a[@class="title"]''; + + if (url.match(/showMetadata\?doi=[^&]+/)){ + return "document"; + } else if(doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } +}', +'// Aluka types we can import +// TODO: Improve support for other Aluka item types? +// Correspondence, Circulars, Newsletters, Interviews, Pamphlets, Policy Documents, Posters, Press Releases, Reports, Testimonies, Transcripts +var typeMap = { + "Books":"book", + "Aluka Essays":"report", + "photograph":"artwork", + "Photographs":"artwork", + "Panoramas":"artwork", + "Journals (Periodicals)":"journalArticle", + "Articles":"journalArticle", + "Correspondence":"letter", + "Interviews":"interview", + "Reports":"report" +} + +function doWeb(doc, url){ + var urlString = "http://www.aluka.org/action/showPrimeXML?doi=" ; + var uris = new Array(); + var m = url.match(/showMetadata\?doi=([^&]+)/); + if (m) { //single page + uris.push(urlString+ m[1]); + } else { //search results page + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; + + var xpath = ''//a[@class="title"]''; + var items = new Object(); + var elmts = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + var elmt; + while (elmt = elmts.iterateNext()) { + var title = elmt.textContent; + var link = elmt.href; + var m = link.match(/showMetadata\?doi=([^&]+)/); + if (title && m){ + items[m[1]] = title; + } + } + + var items = Zotero.selectItems(items); + if(!items) { + return true; + } + + for(var i in items) { + uris.push(urlString + i); + } + } + // http://www.aluka.org/action/showPrimeXML?doi=10.5555/AL.SFF.DOCUMENT.cbp1008 + + Zotero.Utilities.HTTP.doGet(uris, function(text) { + text = text.replace(/<\?xml[^>]*\?>/, ""); // strip xml header + text = text.replace(/(<[^>\.]*)\.([^>]*>)/g, "$1_$2"); // replace dots in tags with underscores + var xml = new XML(text); + var metadata = xml..MetadataDC; + var itemType = "Unknown"; + if (metadata.length()){ + itemType = "document"; + if (metadata[0].Type.length()){ + var value = metadata[0].Type[0].text().toString(); + if(typeMap[value]) { + itemType = typeMap[value]; + } else { + Zotero.debug("Unmapped Aluka Type: " + value); + } + } + var newItem = new Zotero.Item(itemType); + var title = ""; + if (metadata[0].Title.length()){ + var title = Zotero.Utilities.trimInternal(metadata[0].Title[0].text().toString()); + if (title == ""){ + title = " "; + } + newItem.title = title; + } + if (metadata[0].Title_Alternative.length()){ + newItem.extra = Zotero.Utilities.trimInternal(metadata[0].Title_Alternative[0].text().toString()); + } + for(var i=0; i<metadata[0].Subject_Enriched.length(); i++) { + newItem.tags.push(Zotero.Utilities.trimInternal(metadata[0].Subject_Enriched[i].text().toString())); + } + for(var i=0; i<metadata[0].Coverage_Spatial.length(); i++) { + newItem.tags.push(Zotero.Utilities.trimInternal(metadata[0].Coverage_Spatial[i].text().toString())); + } + for(var i=0; i<metadata[0].Coverage_Temporal.length(); i++) { + newItem.tags.push(Zotero.Utilities.trimInternal(metadata[0].Coverage_Temporal[i].text().toString())); + } +// TODO: decide whether to uncomment below code to import species data as tags +// for(var i=0; i<xml..TopicName.length(); i++) { +// newItem.tags.push(Zotero.Utilities.trimInternal(xml..TopicName[i].text().toString())); +// } + + if (metadata[0].Date.length()){ + var date = metadata[0].Date[0].text().toString(); + if (date.match(/^\d{8}$/)){ + date = date.substr(0, 4) + "-" + date.substr(4, 2) + "-" + date.substr(6, 2); + } + newItem.date = date; + } + if (metadata[0].Creator.length()){ + var authors = metadata[0].Creator; + var type = "author"; + for(var j=0; j<authors.length(); j++) { + Zotero.debug("author: " + authors[j]); + newItem.creators.push(Zotero.Utilities.cleanAuthor(authors[j].text().toString(),type,true)); + } + } + if (metadata[0].Contributor.length()){ + var authors = metadata[0].Contributor; + var type = "contributor"; + for(var j=0; j<authors.length(); j++) { + Zotero.debug("author: " + authors[j]); + newItem.creators.push(Zotero.Utilities.cleanAuthor(authors[j].text().toString(),type,true)); + } + } + if (metadata[0].Publisher.length()){ + newItem.publisher = Zotero.Utilities.trimInternal(metadata[0].Publisher[0].text().toString()); + } + if (metadata[0].Format_Medium.length()){ + newItem.medium = Zotero.Utilities.trimInternal(metadata[0].Format_Medium[0].text().toString()); + } + if (metadata[0].Language.length()){ + newItem.language = Zotero.Utilities.trimInternal(metadata[0].Language[0].text().toString()); + } + if (metadata[0].Description.length()){ + newItem.abstractNote = metadata[0].Description[0].text().toString(); + } + if (metadata[0].Format_Extent.length()){ + newItem.pages = Zotero.Utilities.trimInternal(metadata[0].Format_Extent[0].text().toString()); + } + var doi = xml..DOI; + if (doi.length()){ + newItem.DOI = doi[0]; + var newUrl = "http://www.aluka.org/action/showMetadata?doi=" + doi[0]; + newItem.attachments.push({title:"Aluka Link", snapshot:false, mimeType:"text/html", url:newUrl}); + var pdfUrl = "http://ts-den.aluka.org/delivery/aluka-contentdelivery/pdf/" + doi[0] + "?type=img&q=high"; + newItem.attachments.push({url:pdfUrl}); + newItem.url = newUrl; + } + var rights = xml..Rights.Attribution; + if (rights.length()){ + newItem.rights = rights[0]; + } + if (metadata[0].Rights.length()){ + newItem.rights = Zotero.Utilities.trimInternal(metadata[0].Rights[0].text().toString()); + } + if (metadata[0].Source.length()){ + newItem.repository = "Aluka: " + Zotero.Utilities.trimInternal(metadata[0].Source[0].text().toString()); + } + if (metadata[0].Relation.length()){ + newItem.callNumber = Zotero.Utilities.trimInternal(metadata[0].Relation[0].text().toString()); + } + newItem.complete(); + } else { + Zotero.debug("No Dublin Core XML data"); + return false; + } + Zotero.done(); + }); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('e85a3134-8c1a-8644-6926-584c8565f23e', '1.0.0b4.r1', '', '2008-04-18 08:55:00', '1', '100', '4', 'History Cooperative', 'Simon Kornblith', 'https?://[^/]*historycooperative\.org[^/]*/(?:journals/.+/.+/.+\.s?html$|cgi-bin/search.cgi|journals/.+/.+/)', +'function detectWeb(doc, url) { + var contents = doc.title.replace("Contents", ""); + if(doc.title != contents || doc.title == "History Cooperative: Search Results") { + return "multiple"; + } else { + return "journalArticle"; + } +}', +'function associateMeta(newItem, metaTags, field, zoteroField) { + var field = metaTags.namedItem(field); + if(field) { + newItem[zoteroField] = field.getAttribute("content"); + } +} + +function scrape(doc) { + var newItem = new Zotero.Item("journalArticle"); + newItem.url = doc.location.href; + + var month, year; + var metaTags = doc.getElementsByTagName("meta"); + + associateMeta(newItem, metaTags, "Journal", "publicationTitle"); + associateMeta(newItem, metaTags, "Volume", "volume"); + associateMeta(newItem, metaTags, "Issue", "issue"); + + // grab title without using meta tag, since when titles have quotes History + // Cooperative can''t create a proper meta tag + + // 16apr08 - fwg + // as of now, title meta tags are properly escaped, but + // in the case of book reviews, the title field is set to one of many (~10) variations + // of "Book Review", so it''s easiest to get the book title from the proprietary tags (below) as originally coded. + + var titleRe = /<!--_title_-->(.*)<!--_\/title_-->/; + + // 16apr08 - fwg + // added trimInteral, since some pages have extraneous line breaks in source code + // added unescapeHTML to make quotes nice + var m = titleRe.exec(Zotero.Utilities.trimInternal(doc.getElementsByTagName("body")[0].innerHTML)); + if(m) { + newItem.title = Zotero.Utilities.trimInternal(Zotero.Utilities.unescapeHTML(m[1])); + } else { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; + + var bookTitle; + + //different journals want their reviewed book titles formatted in different ways (or have bizarre markup) + jNames = new Array ("The Western Historical Quarterly", "Journal of American Ethnic History", "Labour History","Environmental History", + "New York History","Indiana Magazine of History"); + + jXpaths = new Array("//tr[4]/td[3]/table/tbody/tr[1]/td/b/i", + "//[4]/td[3]/table/tbody/tr[1]/td/b/i", + "//tr[4]/td[3]/table/tbody/tr[1]/td/b/b/i", + "//tr[4]/td[3]/table/tbody/tr[1]/td/b[1]", + "//tr[4]/td[3]/p[1]/font/b/i", + "//tr[4]/td[3]/table[1]/tbody/tr[1]/td/h4/font/i" + ); + + // 16apr08 - fwg + // figure out which Xpath to use + // the below Xpath seems to work much of the time, so we default to it + var jXpath =''//tr[4]/td[3]/table/tbody/tr[1]/td/i''; + + for (var i=0; i < jNames.length; i++) { + if (newItem.publicationTitle == jNames[i]) { + //Zotero.debug("using Xpath for: " + jNames[i]); + //Zotero.debug("Xpath is: " + jXpaths[i]); + jXpath = jXpaths[i]; + } + } + + bookTitle = doc.evaluate(jXpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + //Zotero.debug("bookTitle: " + bookTitle); + + // 16apr08 - fwg + //instead of general failure, let''s admit we can''t get the title and save everything else + // this is useful when a book review page has a one-off introduction or strange formatting that we can''t anticipate. + if (bookTitle) { + newItem.title = "Review of " + bookTitle.textContent; + } else { + newItem.title = "Review of <unable to get title from page>"; + } + } + + var author = metaTags.namedItem("Author"); + if(author) { + var authors = author.getAttribute("content").split(" and "); + for(j in authors) { + authors[j] = authors[j].replace("Reviewed by ", ""); + newItem.creators.push(Zotero.Utilities.cleanAuthor(authors[j], "author")); + } + } + + var month = metaTags.namedItem("PublicationMonth"); + var year = metaTags.namedItem("PublicationYear"); + if(month && year) { + newItem.date = month.getAttribute("content")+" "+year.getAttribute("content"); + } + + newItem.attachments.push({document:doc, title:"History Cooperative Snapshot"}); + + newItem.complete(); +} + +function doWeb(doc, url) { + var contents = doc.title.replace(" Contents | ", ""); + if(doc.title != contents || doc.title == "History Cooperative: Search Results") { + var items = Zotero.Utilities.getItemArray(doc, doc, ''^https?://[^/]+/journals/.+/.+/.+\.html$''); + items = Zotero.selectItems(items); + + if(!items) { + return true; + } + + var uris = new Array(); + for(var i in items) { + uris.push(i); + } + + Zotero.Utilities.processDocuments(uris, function(doc) { scrape(doc) }, + function() { Zotero.done(); }, null); + + Zotero.wait(); + } else { + scrape(doc); + } +}'); + +REPLACE INTO translators VALUES ('4c9dbe33-e64f-4536-a02f-f347fa1f187d', '1.0.0b4.r5', '', '2008-04-03 19:45:00', '0', '100', '4', 'BioInfoBank', 'Michael Berkowitz', 'http://lib.bioinfo.pl/', +'function detectWeb(doc, url) { + return "multiple"; +}', +'function doWeb(doc, url) { + var pmids = new Array(); + var items = new Object(); + var titles = doc.evaluate(''//div[@class="css_pmid"]/div[@class="css_pmid_title"]/a'', doc, null, XPathResult.ANY_TYPE, null); + var title; + while (title = titles.iterateNext()) { + items[title.href] = Zotero.Utilities.trimInternal(title.textContent); + } + items = Zotero.selectItems(items); + for (var i in items) { + pmids.push(i.match(/pmid:(\d+)/)[1]); + } + var newUri = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=PubMed&retmode=xml&rettype=citation&id="+pmids.join(","); + Zotero.Utilities.HTTP.doGet(newUri, function(text) { + // Remove xml parse instruction and doctype + text = text.replace(/<!DOCTYPE[^>]*>/, "").replace(/<\?xml[^>]*\?>/, ""); + + var xml = new XML(text); + for(var i=0; i<xml.PubmedArticle.length(); i++) { + var newItem = new Zotero.Item("journalArticle"); + + var citation = xml.PubmedArticle[i].MedlineCitation; + + var PMID = citation.PMID.text().toString(); + newItem.extra = "PMID: "+PMID; + // add attachments + if(doc) { + newItem.attachments.push({document:doc, title:"PubMed Snapshot"}); + } else { + var url = "http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=pubmed&cmd=Retrieve&dopt=AbstractPlus&list_uids="+PMID; + newItem.attachments.push({url:url, title:"PubMed Snapshot", + mimeType:"text/html"}); + } + + var article = citation.Article; + if(article.ArticleTitle.length()) { + var title = article.ArticleTitle.text().toString(); + if(title.substr(-1) == ".") { + title = title.substring(0, title.length-1); + } + newItem.title = title; + } + + if (article.Pagination.MedlinePgn.length()){ + newItem.pages = article.Pagination.MedlinePgn.text().toString(); + } + + if(article.Journal.length()) { + var issn = article.Journal.ISSN.text().toString(); + if(issn) { + newItem.ISSN = issn.replace(/[^0-9]/g, ""); + } + + newItem.journalAbbreviation = Zotero.Utilities.superCleanString(citation.MedlineJournalInfo.MedlineTA.text().toString()); + if(article.Journal.Title.length()) { + newItem.publicationTitle = Zotero.Utilities.superCleanString(article.Journal.Title.text().toString()); + } else if(citation.MedlineJournalInfo.MedlineTA.length()) { + newItem.publicationTitle = newItem.journalAbbreviation; + } + + if(article.Journal.JournalIssue.length()) { + newItem.volume = article.Journal.JournalIssue.Volume.text().toString(); + newItem.issue = article.Journal.JournalIssue.Issue.text().toString(); + if(article.Journal.JournalIssue.PubDate.length()) { // try to get the date + if(article.Journal.JournalIssue.PubDate.Day.text().toString() != "") { + newItem.date = article.Journal.JournalIssue.PubDate.Month.text().toString()+" "+article.Journal.JournalIssue.PubDate.Day.text().toString()+", "+article.Journal.JournalIssue.PubDate.Year.text().toString(); + } else if(article.Journal.JournalIssue.PubDate.Month.text().toString() != "") { + newItem.date = article.Journal.JournalIssue.PubDate.Month.text().toString()+" "+article.Journal.JournalIssue.PubDate.Year.text().toString(); + } else if(article.Journal.JournalIssue.PubDate.Year.text().toString() != "") { + newItem.date = article.Journal.JournalIssue.PubDate.Year.text().toString(); + } + } + } + } + + if(article.AuthorList.length() && article.AuthorList.Author.length()) { + var authors = article.AuthorList.Author; + for(var j=0; j<authors.length(); j++) { + var lastName = authors[j].LastName.text().toString(); + var firstName = authors[j].FirstName.text().toString(); + if(firstName == "") { + var firstName = authors[j].ForeName.text().toString(); + } + if(firstName || lastName) { + newItem.creators.push({lastName:lastName, firstName:firstName}); + } + } + } + + + if (citation.MeshHeadingList && citation.MeshHeadingList.MeshHeading) { + var keywords = citation.MeshHeadingList.MeshHeading; + for (var k = 0 ; k < keywords.length() ; k++) { + newItem.tags.push(keywords[k].DescriptorName.text().toString()); + } + } + newItem.abstractNote = article.Abstract.AbstractText.toString() + + newItem.complete(); + } + + Zotero.done(); + }); +}'); + +REPLACE INTO translators VALUES ('2e43f4a9-d2e2-4112-a6ef-b3528b39b4d2', '1.0.0b4.r5', '', '2008-04-28 17:50:00', '1', '100', '4', 'MIT Press Journals', 'Michael Berkowitz', 'http://www.mitpressjournals.org/', +'function detectWeb(doc, url) { + if (url.match(/action\/doSearch/) || url.match(/toc\//)) { + return "multiple"; + } else if (url.match(/doi\/abs\//)) { + return "journalArticle"; + } +}', +'function getDOI(str) { + return str.match(/doi\/abs\/([^?]+)/)[1]; +} + +function doWeb(doc, url) { + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var links = doc.evaluate(''//table[@class="articleEntry"]/tbody/tr//a[text() = "First Page" or text() = "Citation" or text() = "Abstract"]'', doc, null, XPathResult.ANY_TYPE, null); + var titles = doc.evaluate(''//table[@class="articleEntry"]/tbody/tr//div[@class="arttitle"]'', doc, null, XPathResult.ANY_TYPE, null); + var link, title; + while ((link = links.iterateNext()) && (title = titles.iterateNext())) { + items[link.href] = Zotero.Utilities.trimInternal(title.textContent); + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(''http://www.mitpressjournals.org/doi/abs/'' + getDOI(i)); + } + } else { + articles = [''http://www.mitpressjournals.org/doi/abs/'' + getDOI(url)]; + } + Zotero.Utilities.processDocuments(articles, function(newDoc) { + if (newDoc.evaluate(''//div[@class="abstractSection"]/p[contains(@class, "last") or contains(@class, "first")]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var abs = Zotero.Utilities.trimInternal(newDoc.evaluate(''//div[@class="abstractSection"]/p[contains(@class, "last") or contains(@class, "first")]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + } + var doi = getDOI(newDoc.location.href); + var risurl = ''http://www.mitpressjournals.org/action/downloadCitation?doi='' + doi + ''&include=cit&format=refman&direct=on&submit=Download+article+metadata''; + var pdfurl = newDoc.location.href.replace("/doi/abs/", "/doi/pdf/"); + Zotero.Utilities.HTTP.doGet(risurl, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + if (item.notes[0][''note''].match(/doi:/)) { + item.DOI = item.notes[0][''note''].substr(5); + item.notes = new Array(); + } + item.attachments[0].title= item.publicationTitle + " Snapshot"; + item.attachments[0].mimeType = "text/html"; + item.attachments.push({url:pdfurl, title:item.publicationTitle + " Full Text PDF", mimeType:"application/pdf"}); + if (abs) item.abstractNote = abs; + item.complete(); + }); + translator.translate(); + }); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('b0abb562-218c-4bf6-af66-c320fdb8ddd3', '1.0.0b4.r5', '', '2008-04-01 04:50:00', '0', '100', '4', 'Philosopher''s Imprint', 'Michael Berkowitz', 'http://quod.lib.umich.edu/cgi/t/', +'function detectWeb(doc, url) { + if (doc.evaluate(''//div/span[text() = "Search Results"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (url.match(/\d+\.\d+\.\d+/)) { + return "journalArticle"; + } +}', +'function getID(str) { + return str.match(/\d+\.\d+\.\d+/)[0]; +} +function doWeb(doc, url) { + var ids = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var titles = doc.evaluate(''//div[@class="itemcitation"]//a'', doc, null, XPathResult.ANY_TYPE, null); + var title; + while (title = titles.iterateNext()) { + items[title.href] = title.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + ids.push(''http://quod.lib.umich.edu/cgi/t/text/text-idx?c=phimp;view=text;rgn=main;idno='' + getID(i)); + } + } else { + ids = [''http://quod.lib.umich.edu/cgi/t/text/text-idx?c=phimp;view=text;rgn=main;idno='' + getID(url)]; + } + Zotero.Utilities.processDocuments(ids, function(newDoc) { + var rows = newDoc.evaluate(''//tr[td[@id="labelcell"]]'', newDoc, null, XPathResult.ANY_TYPE, null); + var row; + var data = new Object(); + while (row = rows.iterateNext()) { + var heading = newDoc.evaluate(''./td[1]'', row, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + var value = newDoc.evaluate(''./td[2]'', row, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + data[heading.replace(/[\s:]/g, "")] = value; + } + var item = new Zotero.Item("journalArticle"); + item.title = Zotero.Utilities.trimInternal(data[''Title'']); + if (data[''Author'']) { + item.creators.push(Zotero.Utilities.cleanAuthor(data[''Author''], "author")); + } else if (data[''Authors'']) { + var authors = data[''Authors''].split(","); + for each (var a in authors) { + item.creators.push(Zotero.Utilities.cleanAuthor(a, "author")); + } + } + if (data[''Keywords'']) { + var kws = data[''Keywords''].split(/\n/); + for each (var kw in kws) { + if (kw != "") item.tags.push(kw); + } + } + var voliss = data[''Source''].replace(item.title, ""); + if (item.creators.length > 1) { + voliss = voliss.replace(data[''Authors''], ""); + } else if (item.creators.length == 1) { + voliss = voliss.replace(data[''Author''], ""); + } + Zotero.debug(voliss); + item.volume = voliss.match(/vol\.\s+(\d+)/)[1]; + item.issue = voliss.match(/no\.\s+(\d+)/)[1]; + item.pages = voliss.match(/pp\.\s+([\d\-]+)/)[1]; + item.date = Zotero.Utilities.trimInternal(voliss.match(/[^,]+$/)[0]); + item.place = "Ann Arbor, MI"; + item.publisher = "University of Michigan"; + item.abstractNote = data[''Abstract'']; + item.url = data[''URL'']; + item.attachments = [ + {url:item.url, title:item.title + " Snapshot", mimeType:"text/html"}, + {url:''http://quod.lib.umich.edu/p/phimp/images/'' + getID(item.url) + ''.pdf'', title:"Philosopher''s Imprint Full Text PDF", mimeType:"application/pdf"} + ]; + item.complete(); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('2a5dc3ed-ee5e-4bfb-baad-36ae007e40ce', '1.0.0b4.r5', '', '2008-04-01 04:50:00', '0', '100', '4', 'Berkeley Electronic Press', 'Michael Berkowitz', 'http://www.bepress.com/', +'function detectWeb(doc, url) { + if (url.match("cgi/query.cgi")) { + return "multiple"; + } else if (url.match(/vol[\d+]\/iss[\d]+/)) { + return "journalArticle"; + } +}', +'var tagMap = { + journal_title:"publicationTitle", + title:"title", + date:"date", + volume:"volume", + issue:"issue", + abstract_html_url:"url", + doi:"DOI" +} + +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(''//table[@id="query"]/tbody/tr/td[4]/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.debug(articles); + Zotero.Utilities.processDocuments(articles, function(newDoc) { + var metatags = new Object(); + var metas = newDoc.evaluate(''//meta[contains(@name, "bepress_citation")]'', newDoc, null, XPathResult.ANY_TYPE, null); + var next_meta; + while (next_meta = metas.iterateNext()) { + metatags[next_meta.name.replace("bepress_citation_", "")] = next_meta.content; + } + var item = new Zotero.Item("journalArticle"); + + //regularly mapped tags + for (var tag in tagMap) { + if (metatags[tag]) { + item[tagMap[tag]] = metatags[tag]; + } + } + + //authors + var authors = metatags[''authors''].split(";"); + for each (var author in authors) { + item.creators.push(Zotero.Utilities.cleanAuthor(author, "author")); + } + + //attachments + item.attachments = [ + {url:item.url, title:item.title, mimeType:"text/html"}, + {url:metatags[''pdf_url''], title:"Berkeley Electronic Press Full Text PDF", mimeType:"application/pdf"} + ]; + item.complete(); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('7cb0089b-9551-44b2-abca-eb03cbf586d9', '1.0.0b4.r5', '', '2008-03-30 08:00:00', '0', '100', '4', 'BioOne', 'Michael Berkowitz', 'http://[^/]*www.bioone.org[^/]*/', +'function detectWeb(doc, url) { + if (url.indexOf("searchtype") != -1) { + return "multiple"; + } else if (url.indexOf("get-document") != -1 || url.indexOf("get-abstract") != -1) { + return "journalArticle"; + } +}', +'function createCitationURL(str) { + str = str.match(/doi=([^&]+)/)[1]; + return "http://www.bioone.org/perlserv/?request=cite-builder&doi=" + str; +} + +function getPDFurl(item) { + var bits = new Array( + item.DOI.match(/\/([^(]+)\(/)[1], + item.volume, + item.issue, + item.pages.match(/^([^-]+)\-/)[1] + ); + return "http://www.bioone.org/archive/" + bits.slice(0,3).join("/") + "/pdf/i" + bits.join("-") + ".pdf"; +} + +function doWeb(doc, url) { + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var results = doc.evaluate(''//div[@class="content"]/table/tbody/tr/td[3][@class="group"]'', doc, null, XPathResult.ANY_TYPE, null); + var next_result; + while (next_result = results.iterateNext()) { + var title = doc.evaluate(''.//span[@class="title"]'', next_result, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + var link = doc.evaluate(''.//tr[4]/td/a[1]'', next_result, null, XPathResult.ANY_TYPE, null).iterateNext().href; + items[link] = title; + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(createCitationURL(i)); + } + } else { + articles = [createCitationURL(url)]; + } + Zotero.debug(articles); + Zotero.Utilities.processDocuments(articles, function(newDoc) { + var newlink = newDoc.evaluate(''//a[contains(@href, "refman")]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().href; + Zotero.Utilities.HTTP.doGet(newlink, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + item.url = decodeURIComponent(item.url); + item.DOI = item.url.match(/http:\/\/dx\.doi\.org\/(.*)$/)[1]; + var pdfurl = getPDFurl(item); + item.attachments = [ + {url:item.url, title:item.title, mimeType:"text/html"}, + {url:pdfurl, title:"BioOne Full Text PDF", mimeType:"application/pdf"} + ]; + item.complete(); + }); + translator.translate(); + }); + }, function() {Zotero.done;}); + 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', +'function detectWeb(doc, url) { + if (doc.evaluate(''//div[@id="formularios"]/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()) { + return "book"; + } +}', +'function doWeb(doc, url) { + 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 box; + while (box = boxes.iterateNext()) { + var book = doc.evaluate(''./p/span/strong/a'', box, null, XPathResult.ANY_TYPE, null).iterateNext(); + items[book.href] = book.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + books.push(i); + } + } else { + books = [url]; + } + 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 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); + } + 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:'']; + 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")); + } + } + 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]; + } + item.complete(); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('a14ac3eb-64a0-4179-970c-92ecc2fec992', '1.0.0b4.r5', '', '2008-04-01 04:50:00', '1', '100', '4', 'Scopus', 'Michael Berkowitz', 'http://[^/]*www.scopus.com[^/]*', +'function detectWeb(doc, url) { + if (url.indexOf("/results/") != -1) { + return "multiple"; + } else if (url.indexOf("/record/") != -1) { + return "journalArticle"; + } +}', +'function getEID(url) { + return url.match(/eid=([^&]+)/)[1]; +} + +function returnURL(eid) { + return ''http://www.scopus.com/scopus/citation/output.url?origin=recordpage&eid='' + eid + ''&src=s&view=CiteAbsKeywsRefs''; +} + + +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") { + items = new Object(); + var boxes = doc.evaluate(''//table/tbody/tr[@class]/td[@class="fldtextPad"][1]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var box; + while (box = boxes.iterateNext()) { + var title = Zotero.Utilities.trimInternal(doc.evaluate(''.//span[@class="txtBoldOnly"]'', box, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); + var link = doc.evaluate(''.//a[@class="outwardLink"]'', box, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; + items[link] = title; + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(returnURL(getEID(i))); + } + } else { + articles = [returnURL(getEID(url))]; + } + Zotero.Utilities.processDocuments(articles, function(newDoc) { + var eid = getEID(newDoc.location.href); + var stateKey = newDoc.evaluate(''//input[@name="stateKey"]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; + var get = ''http://www.scopus.com/scopus/citation/export.url''; + var post = ''origin=recordpage&sid=&src=s&stateKey='' + stateKey + ''&eid='' + eid + ''&sort=&exportFormat=RIS&view=CiteAbsKeyws&selectedCitationInformationItemsAll=on''; + Zotero.Utilities.HTTP.doPost(get, post, function(text) { + // load translator for RIS + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + if (item.notes[0][''note'']) { + item.abstractNote = item.notes[0][''note'']; + item.notes = new Array(); + item.complete(); + } + }); + translator.translate(); + }); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('e1140aa1-3bcf-4226-9099-78ef0b63bb3e', '1.0.0b4.r5', '', '2008-03-19 16:00:00', '0', '100', '4', 'Osterreichischer Bibliothekenverbund', 'Michael Berkowitz', 'http://meteor.bibvb.ac.at/F', +'function detectWeb(doc, url) { + if (doc.evaluate(''//td[@class="bar"]/a[@class="blue"]/img'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "book"; + } else if (doc.title.indexOf("Ergebnisliste") != -1) { + return "multiple"; + } +}', +'function doWeb(doc, url) { + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var itemRegexp = ''^https?://[^/]+/F/[A-Z0-9\-]+\?.*(?:func=full-set-set.*\&format=999|func=direct)'' + var items = Zotero.Utilities.getItemArray(doc, doc, itemRegexp, ''^[0-9]+$''); + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + arts = [url]; + } + Zotero.Utilities.processDocuments(arts, function(newDoc) { + var link = newDoc.evaluate(''//td[@class="bar"]/a[@class="blue"][2]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().href; + link = link.replace(/full\-mail[^&]+&/, "full-mail&") + "&option_type=&format=777&encoding=UTF_TO_WEB_MAIL+++++&SUBJECT=&NAME=&EMAIL=&x=17&y=7"; + Zotero.Utilities.loadDocument([link], function(newDoc2) { + var newest = newDoc2.evaluate(''/html/body/p[@class="text3"]/a'', newDoc2, null, XPathResult.ANY_TYPE, null).iterateNext().href; + Zotero.Utilities.HTTP.doGet(newest, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + item.itemType = "book"; + item.complete(); + }); + translator.translate(); + }); + }); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('4654c76f-451c-4ae6-9a36-575e982b3cdb', '1.0.0b4.r5', '', '2008-03-14 19:10:00', '0', '100', '4', 'Investigative Ophthalmology and Visual Science', 'Michael Berkowitz', 'http://www.iovs.org/', +'function detectWeb(doc, url) { + if (doc.title.indexOf("Table of Contents") != -1 || doc.title.indexOf("Search Result") != -1) { + return "multiple" + } else if (url.indexOf("abstract") != -1 || url.indexOf("full") != -1) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var host = doc.location.host; + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + if (doc.title.indexOf("Search Result") != -1) { + var boxes = doc.evaluate(''//table/tbody/tr/td/font/table/tbody/tr[1]'', doc, null, XPathResult.ANY_TYPE, null); + var box; + while (box = boxes.iterateNext()) { + var id = doc.evaluate(''.//input'', box, null, XPathResult.ANY_TYPE, null).iterateNext().value; + var titles = doc.evaluate(''./td/font/strong'', box, null, XPathResult.ANY_TYPE, null); + var titletext = ''''; + var title; + while (title = titles.iterateNext()) { + titletext += title.textContent; + } + items[id] = titletext; + } + } else if (doc.title.indexOf("Table of Content") != -1) { + var ids = doc.evaluate(''/html/body/form/dl/dt/input'', doc, null, XPathResult.ANY_TYPE, null); + var titles = doc.evaluate(''/html/body/form/dl/dd/strong'', doc, null, XPathResult.ANY_TYPE, null); + var id; + var title; + while ((title = titles.iterateNext()) && (id = ids.iterateNext())) { + items[''iovs;'' + id.value] = title.textContent; + } + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + arts = [doc.evaluate(''//a[contains(@href, "citmgr")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().href.match(/=(.*)$/)[1]] + } + Zotero.debug(arts); + for each (var id in arts) { + var post = ''type=refman&gca='' + id; + Zotero.debug(post); + post = ''http://www.iovs.org/cgi/citmgr?'' + post; + Zotero.debug(post); + Zotero.Utilities.HTTP.doGet(post, 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) { + var pdfurl = item.url.replace(/content\/[^/]+/, "reprint") + ".pdf"; + item.attachments = [ + {url:item.url, title:"IOVS Snapshot", mimeType:"text/html"}, + {url:pdfurl, tite:"IOVS Full Text PDF", mimeType:"application/pdf"} + ]; + if (item.notes[0][''note''].match(/\d/)) { + item.DOI = item.notes[0][''note'']; + item.notes = new Array(); + } + item.complete(); + }); + translator.translate(); + + Zotero.done(); + }); + } +}'); + +REPLACE INTO translators VALUES ('62c0e36a-ee2f-4aa0-b111-5e2cbd7bb5ba', '1.0.0b4.r5', '', '2008-03-13 22:30:00', '0', '100', '4', 'MetaPress', 'Michael Berkowitz', 'https?://(.*).metapress.com/', +'function detectWeb(doc, url) { + if (doc.title.indexOf("Search Results") != -1) { + return "multiple"; + } else if (url.match(/content\/[^?/]/)) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var host = doc.location.host; + var artids = new Array(); + if (detectWeb(doc, url) == "multiple") { + + } else { + artids.push(url.match(/content\/([^/]+)/)[1]); + } + for (var i in artids) { + var newurl = ''http://'' + host + ''/content/'' + artids[i]; + Zotero.Utilities.processDocuments([newurl], function(newDoc) { + var tagsx = ''//td[@class="mainPageContent"]/div[3]''; + if (doc.evaluate(tagsx, doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var tags = Zotero.Utilities.trimInternal(doc.evaluate(tagsx, doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent).split(","); + } + Zotero.Utilities.HTTP.doPost(''http://'' + host + ''/export.mpx'', ''code='' + artids[i] + ''&mode=ris'', function(text) { + // load translator for RIS + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + var pdfurl = ''http://'' + host + ''/content/'' + artids[i] + ''/fulltext.pdf''; + item.attachments = [ + {url:item.url, title:"MetaPress Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:"MetaPress Full Text PDF", mimeType:"application/pdf"} + ]; + if (tags) item.tags = tags; + if (item.abstractNote.substr(0, 8) == "Abstract") item.abstractNote = Zotero.Utilities.trimInternal(item.abstractNote.substr(8)); + item.complete(); + }); + translator.translate(); + Zotero.done(); + }); + }, function() {}); + } +}'); + +REPLACE INTO translators VALUES ('0b356cb6-7fa1-4662-b6e8-7ffc9ca2cd4a', '1.0.0b4.r5', '', '2008-04-23 09:45:00', '0', '100', '4', 'Progress of Theoretical Physics', 'Michael Berkowitz', 'http://ptp.ipap.jp/', +'function detectWeb(doc, url) { + if (doc.title.match(/search result/) || doc.title.match(/Table of Contents/)) { + return "multiple"; + } else if (url.match(/getarticle\?/)) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + if (doc.title.toLowerCase().match(/search result/)) { + var titles = doc.evaluate(''/html/body//li//b'', doc, null, XPathResult.ANY_TYPE, null); + var links = doc.evaluate(''/html/body//li/a'', doc, null, XPathResult.ANY_TYPE, null); + var title; + var link; + while ((title = titles.iterateNext()) && (link = links.iterateNext())) { + items[link.href] = Zotero.Utilities.trimInternal(title.textContent); + } + } else if (doc.title.toLowerCase().match(/table of contents/)) { + var xpath = doc.evaluate(''/html/body/ul/li/a'', doc, null, XPathResult.ANY_TYPE, null); + var text; + while (text = xpath.iterateNext()) { + items[text.href] = Zotero.Utilities.trimInternal(text.textContent); + } + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + arts = [url]; + } + Zotero.Utilities.processDocuments(arts, function(doc) { + var item = new Zotero.Item("journalArticle"); + item.ISSN = ''0033-068X''; + item.title = Zotero.Utilities.trimInternal(doc.evaluate(''//h2[@class="title"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + if (doc.evaluate(''//h2[@class="subtitle"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + item.title = item.title + ": " + Zotero.Utilities.trimInternal(doc.evaluate(''//h2[@class="subtitle"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + } + item.abstractNote = Zotero.Utilities.trimInternal(doc.evaluate(''//p[@class="abstract"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + var authors = Zotero.Utilities.unescapeHTML(Zotero.Utilities.trimInternal(doc.evaluate(''/html/body/p[@class="author"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent)); + authors = authors.replace(/[*()]+/g, "").split(/(,\s+|\band\b)/); + for each (var aut in authors) { + if (!aut.match(/(,|and)/)) { + item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author")); + } + } + var info = Zotero.Utilities.trimInternal(doc.evaluate(''//h4[@class="info"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + info = info.match(/Vol\.\s+(\d+)\s+No\.\s+(\d+)\s+\((\d+)\)\s+pp\.\s+([\d-]+)\s+URL\s+:\s+(.*)\s+DOI\s+:\s+(.*)$/); + item.volume = info[1]; + item.issue = info[2]; + item.date = info[3]; + item.pages = info[4]; + item.url = info[5]; + item.DOI = info[6]; + var pdfurl = doc.evaluate(''//a[contains(text(), "PDF")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().href; + item.attachments = [ + {url:item.url, title:"PTP Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:"PTP Full Text PDF", mimeType:"application/pdf"} + ]; + item.complete(); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('0863b8ec-e717-4b6d-9e35-0b2db2ac6b0f', '1.0.0b4.r5', '', '2008-04-23 09:45:00', '0', '100', '4', 'Institute of Pure and Applied Physics', 'Michael Berkowitz', 'http://(jjap|apex|jpsj)\.ipap\.jp/', +'function detectWeb(doc, url) { + if (doc.title.indexOf("Table of Contents") != -1 || doc.title.indexOf("search result") != -1) { + return "multiple"; + } else if (url.indexOf("link?") != -1) { + return "journalArticle"; + } +}', +'var journalNames = { + jpsj:["Journal of the Physical Society of Japan", "0031-9015"], + jjap:["Japanese Journal of Applied Physics", "0021-4922"], + apex:["Applied Physics Express", "1882-0778"] } function doWeb(doc, url) { - var contents = doc.title.replace(" Contents | ", ""); - if(doc.title != contents || doc.title == "History Cooperative: Search Results") { - var items = Zotero.Utilities.getItemArray(doc, doc, ''^https?://[^/]+/journals/.+/.+/.+\.html$''); + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + if (doc.title.toLowerCase().indexOf("table of contents") != -1) { + if (url.match(/apex/)) { + var titlesx = ''//div[@id="contents"]/dl/dt''; + var linksx = ''//div[@id="contents"]/dl/dd/a[1]''; + } else if (url.match(/jjap/)) { + var xpath = ''/html/body/dt/a''; + } else if (url.match(/jpsj/)) { + var xpath = ''/html/body/dl/dt/a[contains(@href, "link")]''; + } + } else if (doc.title.toLowerCase().indexOf("search result") != -1) { + var linksx = ''/html/body//li/a''; + var titlesx = ''/html/body//li//b''; + } + if (xpath) { + var titles = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var title; + while (title = titles.iterateNext()) { + items[title.href] = Zotero.Utilities.trimInternal(title.textContent); + } + } else { + var titles = doc.evaluate(titlesx, doc, null, XPathResult.ANY_TYPE, null); + var links = doc.evaluate(linksx, doc, null, XPathResult.ANY_TYPE, null); + var title; + var link; + while ((title = titles.iterateNext()) && (link = links.iterateNext())) { + items[link.href] = Zotero.Utilities.trimInternal(title.textContent); + } + } items = Zotero.selectItems(items); - - if(!items) { - return true; + for (var i in items) { + arts.push(i); } - - var uris = new Array(); - for(var i in items) { - uris.push(i); + } else { + arts = [url]; + } + Zotero.Utilities.processDocuments(arts, function(doc) { + var item = new Zotero.Item("journalArticle"); + item.url = doc.location.href; + var jour = item.url.match(/http:\/\/([^.]+)\./)[1]; + item.publicationTitle = journalNames[jour][0]; + item.ISSN = journalNames[jour][1]; + item.title = Zotero.Utilities.trimInternal(doc.evaluate(''//h2[@class="title"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + var authors = Zotero.Utilities.trimInternal(doc.evaluate(''//p[@class="author"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + authors = authors.replace(/\d+/g, ""); + authors = authors.split(/,\s+(and)?\s*/); + for each (var aut in authors) { + if ((aut != "") && (aut != "and")) { + item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author")); + } + } + + //get info + var infos = doc.evaluate(''//p[@class="info"]'', doc, null, XPathResult.ANY_TYPE, null); + var voliss = infos.iterateNext().textContent; + var keys = infos.iterateNext().textContent; + if (voliss.match(/([^\d]+)(\d+)\s+\((\d+)\)\s+([\d\-]+)/)) { + voliss = voliss.match(/([^\d]+)(\d+)\s+\((\d+)\)\s+([\d\-]+)/); + var x = 4 + } else { + voliss = voliss.match(/([^\d]+)(\d+)\s+\((\d+)\)\s+(pp\.)?\s+([\d\-]+)/); + var x = 5 } + item.journalAbbreviation = Zotero.Utilities.trimInternal(voliss[1]); + item.volume = voliss[2]; + item.date = voliss[3]; + item.pages = voliss[x]; - Zotero.Utilities.processDocuments(uris, function(doc) { scrape(doc) }, - function() { Zotero.done(); }, null); + keys = Zotero.Utilities.trimInternal(keys); + + if (keys.match(/KEYWORDS/)) { + keys = keys.match(/KEYWORDS:\s+(.*)URL:\s+(.*)DOI:\s+(.*)$/); + var a = 1; + var c = 3; + } else { + keys = keys.match(/URL:\s+(.*)DOI:\s+(.*)$/); + var c = 2; + } + if (a) { + item.tags = keys[a].split(/,\s+/); + } + item.DOI = keys[c]; + item.abstractNote = Zotero.Utilities.trimInternal(doc.evaluate(''//p[@class="abstract"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + item.complete(); + var pdfurl = doc.evaluate(''//a[contains(text(), "PDF")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().href; + item.attachments = [ + {url:item.url, title:"IPAP Snapshot", mimeType:"text/html"} + ]; + }, function() {Zotero.done;}); + 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', +'function detectWeb(doc, url) { + if (url.indexOf("article?") != -1 || url.indexOf("article;") != -1) { + return "journalArticle"; + } else if (url.indexOf("search?") !=-1 || url.indexOf("search;") != -1) { + return "multiple"; + } +}', +'function doWeb(doc, url) { + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var artlink = ''//div//p/strong/a''; + var links = doc.evaluate(artlink, doc, null, XPathResult.ANY_TYPE, null); + var next_link; + while (next_link = links.iterateNext()) { + items[next_link.href] = next_link.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(i); + } + } else { + articles = [url]; + } + Zotero.Utilities.processDocuments(articles, function(newDoc) { + var risurl = newDoc.evaluate(''//div[@id="export-formats"]/ul/li/a[@title="EndNote Export"]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().href; + var abs = Zotero.Utilities.trimInternal(newDoc.evaluate(''//div[@id="abstract"]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent).substr(10); + var keywords = newDoc.evaluate(''//div[@id="info"]/p[1]/a'', newDoc, null, XPathResult.ANY_TYPE, null); + var key; + var keys = new Array(); + while (key = keywords.iterateNext()) { + keys.push(key.textContent); + } + Zotero.Utilities.HTTP.doGet(risurl, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + item.abstractNote = abs; + item.attachments = [{url:item.url, title:"IngentaConnect Snapshot", mimeType:"text/html"}]; + item.tags = keys; + if (item.DOI) { + if (item.DOI.match(/doi/)) { + item.DOI = item.DOI.substr(4); + } + } + item.complete(); + }); + translator.translate(); + }); + }, function() {Zotero.done;}); +}'); + +REPLACE INTO translators VALUES ('636c8ea6-2af7-4488-8ccd-ea280e4a7a98', '1.0.0b4.r5', '', '2008-04-04 20:00:00', '1', '100', '4', 'Sage Journals Online', 'Michael Berkowitz', 'http://[^/]*\.sagepub\.com[^/]*/', +'function detectWeb(doc, url) { + if (url.indexOf("searchresults") != -1 || (doc.title.indexOf("Table of Contents") != -1)) { + return "multiple"; + } else if (url.indexOf("cgi/content") != -1) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + if (doc.title.indexOf("Table of Contents") != -1) { + var searchx = ''//div[@id="maincontent"]/div[@class="contentarea"]/table[@class="toc"]/tbody/tr/td[2][@class="rightcol"]/form/dl/dd''; + var titlex = ''.//strong''; + } else { + var searchx = ''//form[@id="search_results"]/div[@class="resultsitem"]/div[2]''; + var titlex = ''.//label''; + } + var linkx = ''.//a[1]''; + var searchres = doc.evaluate(searchx, doc, null, XPathResult.ANY_TYPE, null); + var next_res; + while (next_res = searchres.iterateNext()) { + var title = doc.evaluate(titlex, next_res, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + var link = doc.evaluate(linkx, next_res, null, XPathResult.ANY_TYPE, null).iterateNext().href; + items[link] = title; + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + arts = [url]; + } + var newurls = new Array(); + for each (var i in arts) { + newurls.push(i); + } + Zotero.Utilities.HTTP.doGet(arts, function(text) { + var id = text.match(/=([^=]+)\">\s*Add to Saved Citations/)[1]; + var newurl = newurls.shift(); + var pdfurl = newurl.replace(/content\/[^/]+/, "reprint") + ".pdf"; + var get = ''http://online.sagepub.com/cgi/citmgr?type=refman&gca='' + id; + Zotero.Utilities.HTTP.doGet(get, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + if (text.match(/N1(.*)\n/)) { + var doi = text.match(/N1\s+\-\s+(.*)\n/)[1]; + } + translator.setHandler("itemDone", function(obj, item) { + item.attachments = [ + {url:newurl, title:"Sage Journals Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:"Sage Journals Full Text PDF", mimeType:"application/pdf"} + ]; + if (doi) item.DOI = doi; + if (item.notes) item.notes = []; + item.complete(); + }); + translator.translate(); + }); + }); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('3eabecf9-663a-4774-a3e6-0790d2732eed', '1.0.0b4.r5', '', '2008-04-28 17:50:00', '0', '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()) { + return "multiple"; + } + } else if (url.indexOf("&pid=") != -1) { + return "journalArticle"; + } else { + Zotero.debug("ok"); + } +}', +'function doWeb(doc, url) { + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var titlepath = ''//font[@class="isoref"]/font[@class="negrito"]''; + var linkpath = ''//font[@class="isoref"]/a[@class="isoref"]''; + var titles = doc.evaluate(titlepath, doc, null, XPathResult.ANY_TYPE, null); + var links = doc.evaluate(linkpath, doc, null, XPathResult.ANY_TYPE, null); + var next_title; + var next_link; + while ((next_title = titles.iterateNext()) && (next_link = links.iterateNext())) { + items[next_link.href] = next_title.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + arts = [url]; + } + for each (var url in arts) { + Zotero.debug(url); + Zotero.Utilities.HTTP.doGet(url, function(text) { + var link = text.match(/\"([^"]+articleXML[^"]+)\"/)[1]; + Zotero.debug(link); + + Zotero.Utilities.HTTP.doGet(link, function(text) { + var item = new Zotero.Item("journalArticle"); + + text = text.replace(/<!DOCTYPE[^>]*>/, "").replace(/<\?xml[^>]*\?>/, "").replace(/<self-uri.*\/self\-uri>/g, ""); + var journal = text.split("<journal-meta>")[1].split("</journal-meta>")[0]; + journal = "<journal>" + journal + "</journal>"; + journal = journal.replace(/\-([a-z])/g, "$1"); + var xml2 = new XML(journal); + var art = text.split("<article-meta>")[1].split("</article-meta>")[0]; + art = "<article>" + art + "</article>"; + art = art.replace(/\-([a-z])/g, "$1"); + var xml3 = new XML(art); + + item.publicationTitle = xml2..journaltitle.text().toString(); + item.journalAbbreviation = xml2..abbrevjournaltitle.text().toString(); + item.ISSN = xml2..issn.text().toString(); + item.publisher = xml2..publisher..publishername.text().toString(); + + item.title = xml3..titlegroup..articletitle.text().toString(); + for (var i = 0 ; i < xml3..contribgroup..contrib.length() ; i++) { + var name = xml3..contribgroup..contrib[i]..name; + item.creators.push({firstName:name..givennames.text().toString(), lastName:name..surname.text().toString(), creatorType:"author"}); + } + + var date = xml3..pubdate[0]; + var day = date..day.text().toString(); + var month = date..month.text().toString(); + var year = date..year.text().toString(); + + date = year; + if (month != "00") { + date = month + "/" + date; + } + if (day != "00") { + date = day + "/" + date; + } + item.date = date; + item.volume = xml3..volume.text().toString(); + item.pages = xml3..fpage.text().toString() + "-" + xml3..lpage.text().toString(); + + for (var i = 0 ; i < xml3..kwdgroup..kwd.length() ; i++) { + item.tags.push(xml3..kwdgroup..kwd[i].text().toString()); + } + + item.attachments = [ + {url:url, title:"SciELO Snapshot", mimeType:"text/html"} + ]; - Zotero.wait(); + item.complete(); + }); + }); + } +}'); + +REPLACE INTO translators VALUES ('0a84a653-79ea-4c6a-8a68-da933e3b504a', '1.0.0b4.r5', '', '2008-03-28 16:30:00', '0', '100', '4', 'Alexander Street Press', 'John West and Michael Berkowitz', 'http://(?:www\.)alexanderstreet', +'function detectWeb(doc, url) { + if( url.indexOf("object.details.aspx") != -1 ) { + var zitemtype = doc.getElementById("ctl00_ctl00_MasterContentBody_ContentPlaceHolder1_txtZType").value; + switch (zitemtype.toLowerCase()) { + case "book": + return "book"; + break; + case "chapter": + return "bookSection"; + break; + case "journal": + return "journalArticle"; + break; + case "manuscript": + return "manuscript"; + break; + case "audio": + return "audioRecording"; + break; + case "video": + return "videoRecording"; + break; + case "issue": + return "journalArticle"; + break; + case "article": + return "journalArticle"; + break; + case "series": + return "interview"; + break; + case "session": + return "interview"; + break; + default: + return "document"; + } + } else if (url.indexOf("results.aspx") != -1) { + return "multiple"; + } +}', +'function scrape(doc, url) { + // set prefix for serverside control + var p = "ctl00_ctl00_MasterContentBody_ContentPlaceHolder1_txtZ"; + + // get values from hidden inputs + var ztype = GetItemType(doc.getElementById(p+"Type").value); + var ztitle = doc.getElementById(p+"Title").value; + var zbooktitle = doc.getElementById(p+"BookTitle").value; + var znotes = doc.getElementById(p+"Notes").value; + var zurl = doc.getElementById(p+"URL").value; + var zrights = doc.getElementById(p+"Rights").value; + var zseries = doc.getElementById(p+"Series").value; + var zvolume = doc.getElementById(p+"Volume").value; + var zissue = doc.getElementById(p+"Issue").value; + var zedition = doc.getElementById(p+"Edition").value; + var zplace = doc.getElementById(p+"Place").value; + var zpublisher = doc.getElementById(p+"Publisher").value; + var zpages = doc.getElementById(p+"Pages").value; + var zrepository = doc.getElementById(p+"Repository").value; + var zlabel = doc.getElementById(p+"Label").value; + var zrunningTime = doc.getElementById(p+"RunningTime").value; + var zlanguage = doc.getElementById(p+"Language").value; + var zauthor = doc.getElementById(p+"Author").value; + var zeditor = doc.getElementById(p+"Editor").value; + var ztranslator = doc.getElementById(p+"Translator").value; + var zinterviewee = doc.getElementById(p+"Interviewee").value; + var zinterviewer = doc.getElementById(p+"Interviewer").value; + var zrecipient = doc.getElementById(p+"Recipient").value; + var zdirector = doc.getElementById(p+"Director").value; + var zscriptwriter = doc.getElementById(p+"ScriptWriter").value; + var zproducer = doc.getElementById(p+"Producer").value; + var zcastMember = doc.getElementById(p+"CastMember").value; + var zperformer = doc.getElementById(p+"Performer").value; + var zcomposer = doc.getElementById(p+"Composer").value; + + // create Zotero item + var newArticle = new Zotero.Item(ztype); + + // populate Zotero item + newArticle.title = ztitle; + newArticle.bookTitle = zbooktitle; + newArticle.notes = znotes; + newArticle.url = zurl; + newArticle.place = zplace; + newArticle.publisher = zpublisher; + newArticle.pages = zpages; + newArticle.rights = zrights; + newArticle.series = zseries; + newArticle.volume = zvolume; + newArticle.issue = zissue; + newArticle.edition = zedition; + newArticle.repository = zrepository; + newArticle.label = zlabel; + newArticle.runningTime = zrunningTime; + newArticle.language = zlanguage; + newArticle.editor = zeditor; + newArticle.translator = ztranslator; + newArticle.interviewee = zinterviewee; + newArticle.interviewer = zinterviewer; + newArticle.recipient = zrecipient; + newArticle.director = zdirector; + newArticle.scriptwriter = zscriptwriter; + newArticle.producer = zproducer; + newArticle.castMember = zcastMember; + newArticle.performer = zperformer; + newArticle.composer = zcomposer; + var aus = zauthor.split(";"); + for (var i=0; i< aus.length ; i++) { + newArticle.creators.push(Zotero.Utilities.cleanAuthor(aus[i], "author", true)); + } + + newArticle.attachments = [{url:doc.location.href, title:"Alexander Street Press Snapshot", mimeType:"text/html"}]; + if (doc.evaluate(''//a[contains(@href, "get.pdf")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var pdfurl = doc.evaluate(''//a[contains(@href, "get.pdf")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().href; + newArticle.attachments.push({url:pdfurl, title:"Alexander Street Press PDF", mimeType:"application/pdf"}); + } else if (doc.evaluate(''//a[contains(@href, "get.jpg")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var imgurl = doc.evaluate(''//a[contains(@href, "get.jpg")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().href.replace(/.{2}$/, "01"); + newArticle.attachments.push({url:imgurl, title:"Alexander Street Press Pg 1", mimeType:"image/jpg"}); + newArticle.notes = [{note:"Further page images can be found by following the URL of the ''Alexander Street Press Pg 1'' attachment and iterating the final digits of the URL"}]; + } + // save Zotero item + newArticle.complete(); + +} + +function GetItemType(zitemtype) { + switch (zitemtype.toLowerCase()) { + case "book": + return "book"; + break; + case "chapter": + return "bookSection"; + break; + case "journal": + return "journalArticle"; + break; + case "manuscript": + return "manuscript"; + break; + case "audio": + return "audioRecording"; + break; + case "video": + return "videoRecording"; + break; + case "issue": + return "journalArticle"; + break; + case "article": + return "journalArticle"; + break; + case "series": + return "interview"; + break; + case "session": + return "interview"; + break; + default: + return "document"; + } +} + +function doWeb(doc, url) { + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var xpath = ''//tbody/tr/td[2][@class="data"]/a[1]''; + var titles = doc.evaluate(xpath, doc, null, 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 { - scrape(doc); + articles = [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', +'function detectWeb(doc, url) { + if (doc.evaluate(''//center/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()) { + return "multiple"; } +}', +'var itemTypes = { + "Article":"journalArticle", + "Book":"book", + "Thesis":"thesis", + "Working Paper":"report", + "Technical Report":"report" +} + +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''; + var rows = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var row; + while (row = rows.iterateNext()) { + items[row.href] = row.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + records.push(i + ''?mode=full''); + } + } 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); + var field2; + var datum2; + var newItem = new Zotero.Item(); + while ((field2 = fields.iterateNext()) && (datum2 = data.iterateNext())) { + var field = field2.textContent.replace(/^dc\./, ""); + var datum = datum2.textContent; + if (field == "contributor.author") { + var name = datum.split(","); + newItem.creators.push({firstName:name[1], lastName:name[0], creatorType:"author"}); + } else if (field == "dentifier.uri") { + newItem.url = datum; + } else if (field == "title") { + newItem.title = datum; + } else if (field == "type") { + if (itemTypes[datum]) { + newItem.itemType = itemTypes[datum]; + } else { + newItem.itemType = "document"; + } + } else if (field == "description.abstract") { + newItem.abstractNote = datum; + } else if (field == "date.available") { + newItem.date = datum.replace(/T.*$/, ""); + } else if (field == "subject") { + newItem.tags.push(datum); + } else if (field == "publisher") { + newItem.publisher = datum; + } else if (field == "identifier.issn") { + newItem.ISSN = datum; + } else if (field == "relation.ispartofseries") { + if (datum.match(/Vol/)) { + newItem.volume = datum.match(/\d+/)[0]; + } else if (datum.match(/No/)) { + newItem.issue = datum.match(/\d+/)[0]; + } + } else if (field == "rights") { + 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); + newItem.complete(); + }, function() {Zotero.done;}); }'); -REPLACE INTO translators VALUES ('7987b420-e8cb-4bea-8ef7-61c2377cd686', '1.0.0b4.r1', '', '2007-06-27 02:00:00', '0', '100', '4', 'NASA ADS', 'Asa Kusuma and Ramesh Srigiriraju', '^http://adsabs\.harvard\.edu/(?:cgi-bin|abs)/', +REPLACE INTO translators VALUES ('7987b420-e8cb-4bea-8ef7-61c2377cd686', '1.0.0b4.r1', '', '2008-02-06 20:00:00', '0', '100', '4', 'NASA ADS', 'Asa Kusuma and Ramesh Srigiriraju', 'http://(ukads|cdsads|ads|adsabs|esoads|adswww|www.ads)\.(inasan|iucaa.ernet|nottingham.ac|harvard|eso|u-strasbg|nao.ac|astro.puc|bao.ac|on|kasi.re|grangenet|lipi.go|mao.kiev)\.(edu|org|net|fr|jp|cl|id|uk|cn|ua|in|ru|br|kr)/(?:cgi-bin|abs)/', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -1416,8 +4684,8 @@ REPLACE INTO translators VALUES ('7987b420-e8cb-4bea-8ef7-61c2377cd686', '1.0.0b return "journalArticle"; } }', -'function parseRIS(bibcodes){ - var getURL = "http://adsabs.harvard.edu/cgi-bin/nph-bib_query?" +'function parseRIS(bibcodes, hostname){ + var getURL = "http://" + hostname + "/cgi-bin/nph-bib_query?" + bibcodes + "data_type=REFMAN&nocookieset=1"; Zotero.Utilities.HTTP.doGet(getURL, function(text){ // load translator for RIS @@ -1439,7 +4707,7 @@ function doWeb(doc, url) { var singXpath = ''//input[@name="bibcode"][@type="hidden"]''; var multXpath = ''//input[@name="bibcode"][@type="checkbox"]''; var titleXpath = ''//table/tbody/tr/td[4]''; //will find scores and titles - + var hostname = doc.location.host var bibElmts = doc.evaluate(multXpath, doc, nsResolver, XPathResult.ANY_TYPE, null); var titleElmts = doc.evaluate(titleXpath, doc, nsResolver, XPathResult.ANY_TYPE, null); var titleElmt; @@ -1453,7 +4721,6 @@ function doWeb(doc, url) { titleElmt = titleElmts.iterateNext(); //iterate a second time to avoid score items[bibElmt.value] = Zotero.Utilities.cleanString(titleElmt.textContent); } while((bibElmt = bibElmts.iterateNext()) && (titleElmt = titleElmts.iterateNext())); - items = Zotero.selectItems(items); if(!items) return true; @@ -1461,35 +4728,26 @@ function doWeb(doc, url) { for(var bibcode in items) { bibcodes = bibcodes + "bibcode="+encodeURIComponent(bibcode) + "&"; } - parseRIS(bibcodes); + parseRIS(bibcodes, hostname); } else if (bibElmt = doc.evaluate(singXpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ var bibcode = bibElmt.value; var bibcodes = "bibcode="+encodeURIComponent(bibcode) + "&"; - parseRIS(bibcodes); + parseRIS(bibcodes, hostname); } }'); -REPLACE INTO translators VALUES ('99f958ab-0732-483d-833f-6bd8e42f6277', '1.0.0b4.r1', '', '2007-06-27 02:00:00', '0', '100', '4', 'National Bureau of Economic Research', 'Asa Kusuma', '^https?://(?:papers\.|www\.)?nber\.org/papers', +REPLACE INTO translators VALUES ('99f958ab-0732-483d-833f-6bd8e42f6277', '1.0.0b4.r1', '', '2008-04-28 19:30:00', '0', '100', '4', 'National Bureau of Economic Research', 'Michael Berkowitz', '^https?://(?:papers\.|www\.)?nber\.org/(papers|s|new)', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { if (prefix == ''x'') return namespace; else return null; } : null; - - var singXpath = ''//h1[@class="title"]''; - var multXpath = ''//input[@name="module"][@type="hidden"]''; - var singleXpath = ''//input[@name="domains"][@type="hidden"]''; - - var str=doc.evaluate(singXpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; - if (doc.evaluate(multXpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + if (doc.evaluate(''//a[contains(text(), "RIS")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + return "journalArticle"; + } else if (doc.evaluate(''//div[@class="maintd"][@id="maine"]/table/tbody/tr/td[1]//a[contains(@href, "papers/w")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { return "multiple"; - } else if (url.indexOf("byprog")==-1 && doc.evaluate(singXpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.indexOf("Working Paper Search Results")==-1){ - - if(doc.evaluate(singleXpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() && doc.evaluate(singXpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.indexOf("NBER Working Papers")==-1) { - return "journalArticle"; - } } }', 'function parseRIS(uris){ @@ -1511,50 +4769,33 @@ function doWeb(doc, url) { if (prefix == ''x'') return namespace; else return null; } : null; - var singXpath = ''//h1[@class="title"]''; - var multXpath = ''//input[@name="module"]''; - var str=doc.evaluate(singXpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; - - if (doc.evaluate(multXpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { - - var bibXpath=''//table/tbody/tr/td/nobr/b''; - var titleXpath=''//table/tbody/tr/td/a''; - - var bibElmts = doc.evaluate(bibXpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - var titleElmts = doc.evaluate(titleXpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - var titleElmt; - var bibElmt; - bibElmt = bibElmts.iterateNext(); - titleElmt = titleElmts.iterateNext(); - - var items = new Array(); - - do { - items[bibElmt.textContent] = Zotero.Utilities.cleanString(titleElmt.textContent); - } while((bibElmt = bibElmts.iterateNext()) && (titleElmt = titleElmts.iterateNext())); - - items = Zotero.selectItems(items); - if(!items) return true; - - var bibcodes=""; - var uris = new Array(); - for(var bibcode in items) { - var getURL = "http://www.nber.org/papers/" - + bibcode + ".ris"; - uris.push(getURL); - } - - parseRIS(uris); - - - } else if (doc.evaluate(singXpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.indexOf("Working Paper Search Results")==-1){ - bibcode=url.substr(url.indexOf("/papers/")+8,url.length); - var uris = new Array(); - var getURL = "http://www.nber.org/papers/" - + bibcode + ".ris"; - uris.push(getURL); - parseRIS(uris); + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var links = doc.evaluate(''//div[@class="maintd"][@id="maine"]/table/tbody/tr/td[1]//a[contains(@href, "papers/w")]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var link; + while (link = links.iterateNext()) { + if (!link.href.match(/\.pdf$/)) items[link.href] = link.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i + ''.ris''); + } + } else { + arts = [url + ''.ris'']; } + 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) { + if (text.match(/AB\s+\-\s+/)) item.abstractNote = text.match(/AB\s+\-\s+((.|\s)+)\n([A-Z]{2})/)[1]; + item.notes = new Array(); + item.complete(); + }); + translator.translate(); + }); + Zotero.wait(); }'); REPLACE INTO translators VALUES ('411f9a8b-64f3-4465-b7df-a3c988b602f3', '1.0.0b4.r1', '', '2007-06-26 15:17:22', '0', '100', '4', 'RePEc', 'Asa Kusuma', '^https?://ideas\.repec\.org/', @@ -1965,7 +5206,7 @@ REPLACE INTO translators VALUES ('5dd22e9a-5124-4942-9b9e-6ee779f1023e', '1.0.0b Zotero.wait(); }'); -REPLACE INTO translators VALUES ('d3b1d34c-f8a1-43bb-9dd6-27aa6403b217', '1.0.0b4.r5', '', '2008-01-09 20:00:00', '0', '100', '4', 'YouTube', 'Sean Takats', 'https?://[^/]*youtube\.com\/', +REPLACE INTO translators VALUES ('d3b1d34c-f8a1-43bb-9dd6-27aa6403b217', '1.0.0rc4', '', '2008-03-30 08:30:00', '1', '100', '4', 'YouTube', 'Sean Takats and Michael Berkowitz', 'https?://[^/]*youtube\.com\/', 'function detectWeb(doc, url){ var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -1976,10 +5217,13 @@ REPLACE INTO translators VALUES ('d3b1d34c-f8a1-43bb-9dd6-27aa6403b217', '1.0.0b if(doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { return "videoRecording"; } - if (doc.evaluate(''//a[@class="newvtitlelink"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ + if (doc.evaluate(''//div[@class="vtitle"]/a[@class="vtitlelink" and contains(@href, "/watch?v=")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ + return "multiple"; + } + if (doc.evaluate(''//div[starts-with(@class, "vtitle")]/a[contains(@href, "/watch?v=")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ return "multiple"; } - if (doc.evaluate(''//div[starts-with(@class, "vtitle")]/a'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ + if (doc.evaluate(''//div[@class="vltitle"]/div[@class="vlshortTitle"]/a[contains(@href, "/watch?v=")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ return "multiple"; } } @@ -1990,6 +5234,7 @@ REPLACE INTO translators VALUES ('d3b1d34c-f8a1-43bb-9dd6-27aa6403b217', '1.0.0b var nsResolver = namespace ? function(prefix) { if (prefix == ''x'') return namespace; else return null; } : null; + var host = doc.location.host; var video_ids = new Array(); var xpath = ''//input[@type="hidden" and @name="video_id"]''; var elmts; @@ -2003,13 +5248,15 @@ REPLACE INTO translators VALUES ('d3b1d34c-f8a1-43bb-9dd6-27aa6403b217', '1.0.0b } else { // multiple videos var items = new Object(); - var videoRe = /\/watch\?v=([a-zA-Z0-9-]+)/; + var videoRe = /\/watch\?v=([a-zA-Z0-9-_]+)/; // search results - if (elmt = doc.evaluate(''//a[@class="newvtitlelink"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ - elmts = doc.evaluate(''//a[@class="newvtitlelink"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + if (elmt = doc.evaluate(''//div[@class="vtitle"]/a[@class="vtitlelink" and contains(@href, "/watch?v=")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ + elmts = doc.evaluate(''//div[@class="vtitle"]/a[@class="vtitlelink" and contains(@href, "/watch?v=")]'', doc, nsResolver, XPathResult.ANY_TYPE, null); // categories and community pages and user pages and browse pages - } else if (doc.evaluate(''//div[starts-with(@class, "vtitle")]/a'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ - elmts = doc.evaluate(''//div[starts-with(@class, "vtitle")]/a'', doc, nsResolver, XPathResult.ANY_TYPE, null); + } else if (doc.evaluate(''//div[starts-with(@class, "vtitle")]/a[contains(@href, "/watch?v=")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ + elmts = doc.evaluate(''//div[starts-with(@class, "vtitle")]/a[contains(@href, "/watch?v=")]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + } else if (doc.evaluate(''//div[@class="vltitle"]/div[@class="vlshortTitle"]/a[contains(@href, "/watch?v=")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ + elmts = doc.evaluate(''//div[@class="vltitle"]/div[@class="vlshortTitle"]/a[contains(@href, "/watch?v=")]'', doc, nsResolver, XPathResult.ANY_TYPE, null); } while (elmt = elmts.iterateNext()){ var title = elmt.textContent; @@ -2025,10 +5272,10 @@ REPLACE INTO translators VALUES ('d3b1d34c-f8a1-43bb-9dd6-27aa6403b217', '1.0.0b video_ids.push(i); } } - getData(video_ids); + getData(video_ids, host); } -function getData(ids){ +function getData(ids, host){ var uris = new Array(); var url = "http://gdata.youtube.com/feeds/videos/"; for each(var id in ids){ @@ -2043,6 +5290,7 @@ function getData(ids){ // text = text.replace(/<yt:/g, "<yt_").replace(/<\/yt:/g, "</yt_"); text = text.replace(/yt:/g, "yt_"); text = text.replace(/<gd:/g, "<gd_").replace(/<\/gd:/g, "</gd_"); + text = text.replace(/<\/?(georss|gml)[^>]+>/g, ""); // pad xml text = "<zotero>"+text+"</zotero>"; var xml = new XML(text); @@ -2076,16 +5324,536 @@ function getData(ids){ newItem.url = url; newItem.attachments.push({title:"YouTube Link", snapshot:false, mimeType:"text/html", url:url}); } - if (xml..yt_duration.length()){ - var runningTime = xml..yt_duration[0].@seconds.toString(); - newItem.runningTime = runningTime + " seconds"; + if (xml..yt_duration.length()){ + var runningTime = xml..yt_duration[0].@seconds.toString(); + newItem.runningTime = runningTime + " seconds"; + } + if (xml..media_description.length()){ + newItem.abstractNote = xml..media_description[0].text().toString(); + } + + var next_url = newItem.url.replace(/\/\/([^/]+)/, "//" + host).replace("watch?v=", "v/") + ''&rel=1''; + Zotero.Utilities.loadDocument(next_url, function(newDoc) { + var new_url = newDoc.location.href.replace("swf/l.swf", "get_video"); + newItem.attachments.push({url:new_url, title:"YouTube Video Recording", mimeType:"video/x-flv"}); + newItem.complete(); + }, function() {Zotero.done;}); + }); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('e16095ae-986c-4117-9cb6-20f3b7a52f64', '1.0.0b4.r5', '', '2008-02-19 17:00:00', '0', '100', '4', 'Protein Data Bank', 'Michael Berkowitz', 'http://www.pdb.org/', +'function detectWeb(doc, url) { + if (doc.title.indexOf("Query Results") != -1) { + return "multiple"; + } else if (url.indexOf("structureId") != -1) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var proteins = new Array(); + if (detectWeb(doc, url) == "multiple") { + //search results + var items = new Object(); + var xpath = ''//a[@class="qrb_title"]''; + var titles = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var next_title; + while (next_title = titles.iterateNext()) { + items[next_title.href.match(/structureId=(.*)/)[1]] = next_title.textContent; + } + items = Zotero.selectItems(items); + for (var i in items) { + proteins.push(i); + } + } else { + proteins = [url.match(/structureId=(.*)/)[1]]; + } + + Zotero.debug(proteins); + for (var p in proteins) { + var xmlstr = ''http://www.pdb.org/pdb/download/downloadFile.do?fileFormat=xml&headerOnly=YES&structureId='' + proteins[p]; + Zotero.debug(xmlstr); + + Zotero.Utilities.HTTP.doGet(xmlstr, function(text) { + var item = new Zotero.Item("journalArticle"); + text = text.replace(/<!DOCTYPE[^>]*>/, "").replace(/<\?xml[^>]*\?>/, "").replace(/PDBx\:/g, ""); + var article = text.split(''<citation id="primary">''); + var art = article[1].split(/<\/citation>\n/); + art = "<citation>" + art[0] + "</citation>"; + var xml = new XML(art); + var info = text.split(''<database_PDB_revCategory>'')[1].split(''</database_PDB_revCategory>'')[0]; + var xml2 = new XML("<PDB_revCategory>" + info + "</PDB_revCategory>"); + var aus = text.split(''<citation_authorCategory>'')[1].split(''</citation_authorCategory>'')[0]; + aus = "<authors>" + aus + "</authors>"; + var xml3 = new XML(aus); + + item.title = xml..title.text().toString(); + item.publicationTitle = xml..journal_abbrev.text().toString(); + item.volume = xml..journal_volume.text().toString(); + item.pages = xml..page_first.text().toString() + "-" + xml..page_last.text().toString(); + item.ISSN = xml..journal_id_ISSN.text().toString(); + item.extra = "PubMed ID: " + xml..pdbx_database_id_PubMed.text().toString(); + if (xml..pdbx_database_id_DOI.length()) { + item.DOI = xml..pdbx_database_id_DOI.text().toString(); + } + item.date = xml2..date_original.text().toString(); + item.url = ''http://www.pdb.org/pdb/explore/explore.do?structureId='' + xml2..replaces.text().toString(); + + var authors = xml3..citation_author.toString().split(/\n/); + for (var i in authors) { + var name = authors[i].match(/name=\"([^"]+)\"/)[1].split(", ");; + Zotero.debug(name); + item.creators.push({firstName:name[1], lastName:name[0], creatorType:"author"}); + } + item.attachments = [ + {url:item.url, title:"PDB Snapshot", mimeType:"text/html"}, + {url:''http://www.pdb.org/pdb/download/downloadFile.do?fileFormat=pdb&compression=NO&structureId='' + proteins[p], title:"Protein Data Bank .pdb File", mimeType:"chemical/x-pdb"} + ] + item.complete(); + }); + Zotero.done; + } + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('0a01d85e-483c-4998-891b-24707728d83e', '1.0.0b4.r5', '', '2008-02-14 23:15:00', '0', '100', '4', 'AJHG', 'Michael Berkowitz', 'http://(www.)?ajhg.org/', +'function detectWeb(doc, url) { + if (doc.evaluate(''//div[@class="article_links"]/a[1]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (url.indexOf("abstract") != -1 || url.indexOf("fulltext") != -1) { + return "journalArticle"; + } +}', +'function getID(str) { + str = str.match(/\/([^/]+)$/)[1]; + if (str.indexOf("#") != -1) { + str = str.substr(0, str.length - 1); + } + return str; +} + +function doWeb(doc, url) { + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + if (doc.title.indexOf("Search Results") != -1) { + var xpath = ''//table[@id="search_results"]/tbody/tr/td[1]''; + var titlex = ''./strong''; + var linkx = ''./div/a[1]''; + } else { + var xpath = ''//div[@id="main_toc"]/dl''; + var titlex = ''./dt''; + var linkx = ''./dd/div/a[1]''; + } + var blocks = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var next_block; + while (next_block = blocks.iterateNext()) { + var title = doc.evaluate(titlex, next_block, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + var link = doc.evaluate(linkx, next_block, null, XPathResult.ANY_TYPE, null).iterateNext().href; + items[link] = title; + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(getID(i)); + } + } else { + articles = [getID(url)]; + } + Zotero.debug(articles); + for (var i in articles) { + var poststr = ''format=cite-abs&citation-type=RIS&pii='' + articles[i] + ''&action=download&Submit=Export''; + var pdfurl = ''http://download.ajhg.org/AJHG/pdf/PII'' + articles[i].replace(/(\(|\)|\-)/g, "") + ''.pdf''; + var newurl = ''http://www.ajhg.org/AJHG/fulltext/'' + articles[i]; + Zotero.Utilities.HTTP.doPost(''http://ajhg.org/AJHG/citationexport'', poststr, function(text) { + var trans = Zotero.loadTranslator("import"); + trans.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + trans.setString(text); + trans.setHandler("itemDone", function(obj, item) { + item.attachments = [ + {url:newurl, title:"AJHG Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:"AJHG Full Text PDF", mimeType:"application/pdf"} + ]; + + if (item.notes[0]["note"]) { + item.abstractNote = item.notes[0]["note"]; + } + item.notes = []; + item.complete(); + }); + trans.translate(); + Zotero.done(); + }); + } + Zotero.wait(); + +}'); + +REPLACE INTO translators VALUES ('f26cfb71-efd7-47ae-a28c-d4d8852096bd', '1.0.0b4.r5', '', '2008-04-28 17:50:00', '0', '99', '4', 'Cell Press', 'Michael Berkowitz', 'http://www.(cancercell|cell|cellhostandmicrobe|cellmetabolism|cellstemcell|chembiol|current-biology|developmentalcell|immunity|molecule|neuron|structure).(org|com)', +'function detectWeb(doc, url) { + if (url.indexOf("search/results?") != -1) { + return "multiple"; + } else if (url.indexOf("content/article") != -1) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var xpath = ''//form[@id="search_results_form"]/dl/dd''; + var arts = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var next_art; + while (next_art = arts.iterateNext()) { + var title = doc.evaluate(''./strong'', next_art, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + var link = doc.evaluate(''./nobr[1]/a'', next_art, null, XPathResult.ANY_TYPE, null).iterateNext().href; + items[link] = title; + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(i); + } + } else { + articles = [url]; + } + Zotero.Utilities.processDocuments(articles, function(newDoc) { + var newItem = new Zotero.Item("journalArticle"); + newItem.title = newDoc.evaluate(''//h1[@class="article_title"]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + var voliss = newDoc.evaluate(''//div[contains(@class, "article_citation")]/p[1]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent.split(".")[2].split(","); + newItem.publicationTitle = voliss[0]; + newItem.volume = voliss[1].match(/\d+/)[0]; + newItem.pages = Zotero.Utilities.trimInternal(voliss[2]); + newItem.date = Zotero.Utilities.trimInternal(voliss[3]); + newItem.abstractNote = newDoc.evaluate(''//div[@class="panelcontent article_summary"]/p[contains(text(), " ")]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + var authors = newDoc.evaluate(''//p[@class="authors"]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent.split(","); + for (var i in authors) { + var next_author = authors[i]; + if (next_author.match(/[a-z]/)) { + next_author = Zotero.Utilities.trimInternal(next_author.replace(/\d/g, "")); + if (next_author.substr(0, 3) == "and") { + next_author = next_author.substr(4); + } + newItem.creators.push(Zotero.Utilities.cleanAuthor(next_author, "author")); + } + } + var newurl = newDoc.location.href; + if (newurl.indexOf("abstract") != -1) { + newurl = newurl.replace("abstract", "fulltext"); + } + var uid = newurl.match(/uid=([^&]+)/)[1]; + var pdfx = ''//a[contains(text(), "PDF")][contains(@href, "'' + uid + ''")]''; + var pdfurl = newDoc.evaluate(pdfx, newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().href; + newItem.attachments = [ + {url:newurl, title:"Cell Press Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:"Cell Press Full Text PDF", mimeType:"application/pdf"} + ]; + newItem.complete(); + }, function() {Zotero.done;}); + +}'); + +REPLACE INTO translators VALUES ('0cc8e259-106e-4793-8c26-6ec8114a9160', '1.0.0b4.r5', '', '2008-02-13 11:30:00', '1', '99', '4', 'SlideShare', 'Michael Berkowitz', 'http://www.slideshare.net/', +'function detectWeb(doc, url) { + if (url.indexOf("search") != -1) { + return "multiple"; + } else if (doc.evaluate(''//div[@class="slideProfile"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "presentation"; + } +}', +'function doWeb(doc, url) { + var loggedin = false; + if (doc.evaluate(''//a[@class="green_link"][text() = "logout"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + loggedin = true; + } + var shows = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var links = doc.evaluate(''//div[@class="search_list_box"]/div[@class="text_12"]/a'', doc, null, XPathResult.ANY_TYPE, null); + var next_link; + while (next_link = links.iterateNext()) { + items[next_link.href] = Zotero.Utilities.trimInternal(next_link.textContent); + } + items = Zotero.selectItems(items); + if (!items) { + return true; + } + for (var i in items) { + shows.push(i); + } + } else { + shows = [url]; + } + Zotero.Utilities.processDocuments(shows, function(newDoc) { + var downloadable = true; + if (newDoc.evaluate(''//p[@class="upload_p_left"][contains(text(), "Download not available")]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + downloadable = false; + } + var item = new Zotero.Item("presentation"); + item.title = newDoc.evaluate(''//div[@class="slideProfile"]//h3'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + var creator = newDoc.evaluate(''//div[@class="slideProfile"]//p/a[@class="blue_link_normal"]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; + item.creators.push(Zotero.Utilities.cleanAuthor(creator, "author")); + var tags = newDoc.evaluate(''//a[@class="grey_tags"]'', newDoc, null, XPathResult.ANY_TYPE, null); + var next_tag; + while (next_tag = tags.iterateNext()) { + item.tags.push(Zotero.Utilities.trimInternal(next_tag.textContent)); + } + var newurl = newDoc.location.href; + item.url = newurl; + item.repository = "SlideShare"; + var pdfurl; + if (newurl.substr(-1) == "/") { + pdfurl = newurl + "download"; + } else { + pdfurl = newurl + "/download"; + } + if (loggedin) { + if (downloadable) { + item.attachments.push({url:pdfurl, title:"SlideShare Slide Show", mimeType:"application/pdf"}); + } + } + item.complete(); + }, function() {Zotero.done;}); +}'); + +REPLACE INTO translators VALUES ('8b35ab14-f18a-4f69-8472-b2df18c984da', '1.0.0b4.r5', '', '2008-04-01 04:50:00', '1', '100', '4', 'Davidson College Library', 'Michael Berkowitz', 'http://www.lib.davidson.edu/', +'function detectWeb(doc, url) { + if (url.indexOf("log_in") == -1) { + if (url.indexOf("screen=Record") != -1) { + return "book"; + } else { + return "multiple"; + } + } +}', +'function doWeb(doc, url) { + var books = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = Zotero.Utilities.getItemArray(doc, doc, ''screen=Record.html''); + items = Zotero.selectItems(items); + for (var i in items) { + books.push(i.replace("Record.html", "MARCRecord.html")); + } + } else { + books = [url.replace("Record.html", "MARCRecord.html")]; + } + + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("a6ee60df-1ddc-4aae-bb25-45e0537be973"); + var marc = translator.getTranslatorObject(); + Zotero.Utilities.processDocuments(books, 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; + } : null; + var nonstandard = false; + var xpath; + var xpath = ''//td[@class="body"]/p/table/tbody/tr[td[3]]''; + var elmts = newDoc.evaluate(xpath, newDoc, nsResolver, XPathResult.ANY_TYPE, null); + var elmt; + var record = new marc.record(); + while(elmt = elmts.iterateNext()) { + var field = Zotero.Utilities.trimInternal(newDoc.evaluate(''./td[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); + if(field) { + var value = newDoc.evaluate(''./td[3]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + 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 newItem = new Zotero.Item(); + record.translate(newItem); + + var domain = url.match(/https?:\/\/([^/]+)/); + newItem.repository = "Davidson College Library Catalog"; + newItem.complete(); + }, function() {Zotero.done;}); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('1885b93c-cf37-4b25-aef5-283f42eada9d', '1.0.0b4.r5', '', '2008-02-01 19:30:00', '0', '100', '4', 'Informaworld', 'Michael Berkowitz', 'http://www.informaworld.com', +'function detectWeb(doc, url) { + if (url.indexOf("quicksearch") != -1) { + return "multiple"; + } else if (doc.evaluate(''//a[substring(text(), 2, 8) = "Download"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + if (doc.evaluate(''//div[@id="metahead"]/div/strong[text() = "Published in:"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var pubtype = doc.evaluate(''//img[substring(@title, 1, 17) = "Publication type:"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().title; + if (pubtype.match("journal")) { + return "journalArticle"; + } else if (pubtype.match("book")) { + return "bookSection"; + } + } else { + return "book"; + } + } else if (url.indexOf("content=g") != -1 || + doc.evaluate(''//div[@id="browse"]//tbody/tr/td[2]/a[2]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext() || + doc.evaluate(''//div[@id="title"]//td[2]/div/strong/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else { + return true; + } +} +', +'function doWeb(doc, url) { + var links = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + if (doc.evaluate(''//div[@id="quicksearch"]//tr/td/b/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var xpath = ''//div[@id="quicksearch"]//tr/td/b/a''; + } else if (doc.evaluate(''//div[@id="title"]/table/tbody/tr[2]//strong/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var xpath = ''//div[@id="title"]/table/tbody/tr[2]//strong/a''; + } else if (doc.evaluate(''//div[@id="browse"]//tbody/tr/td[2]/a[2]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var xpath = ''//div[@id="browse"]//tbody/tr/td[2]/a[2]''; + } else if (doc.evaluate(''//div[@id="title"]//td[2]/div/strong/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var xpath = ''//div[@id="title"]//td[2]/div/strong/a''; + } + var titles = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var title = titles.iterateNext(); + while (title) { + items[title.href] = title.textContent; + title = titles.iterateNext(); + } + items = Zotero.selectItems(items); + for (var i in items) { + links.push(i); + } + } else { + links = [url]; + } + Zotero.debug(links); + + Zotero.Utilities.processDocuments(links, function(newDoc) { + var xpath = ''//div[@id="metahead"]/div''; + var stuff = newDoc.evaluate(xpath, newDoc, null, XPathResult.ANY_TYPE, null); + var thing = stuff.iterateNext() ; + while (thing) { + if (thing.textContent.match(/DOI/)) { + var doi = Zotero.Utilities.trimInternal(thing.textContent).match(/:\s+(.*)/)[1]; + } + thing = stuff.iterateNext(); + } + + var id = newDoc.location.href.match(/content=([\w\d]+)/); + var post = ''tab=citation&selecteditems='' + id[1].substr(1) + ''&content='' + id[1] + ''&citstyle=refworks&showabs=false&format=file''; + Zotero.Utilities.HTTP.doPost(''http://www.informaworld.com/smpp/content'', post, function(text) { + text = text.replace(/RT/, "TY"); + text = text.replace(/VO/, "VL"); + text = text.replace(/LK/, "UR"); + text = text.replace(/YR/, "PY"); + text = text.replace(/([A-Z][A-Z\d]\s)/g, "$1 - ") + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + var type = text.match(/TY\s+\-\s+([^\n]*)/)[1]; + Zotero.debug(type); + if (type == "Journal") { + item.itemType = "journalArticle"; + } else if (type == "Book, Whole") { + item.itemType = "book"; + } else if (type == "Book, Section") { + item.itemType = "bookSection"; + } + if (doi) { + item.DOI = doi; + } + item.complete(); + }); + translator.translate(); + + }); + }, function() {Zotero.done;}); +}'); + +REPLACE INTO translators VALUES ('f880bf79-d42f-4337-b0d2-7a7de4a48b7d', '1.0.0b4.r5', '', '2008-02-06 21:00:00', '0', '100', '4', 'Library Catalog (X-OPAC)', 'Michael Berkowitz', '(xopac|hylib)', +'function detectWeb(doc, url) { + if (url.indexOf("&nd=") != -1) { + return "book"; + } else if (url.indexOf("Aktion") != -1) { + return "multiple"; + } +}', +'function doWeb(doc, url) { + var ids = new Array(); + if (detectWeb(doc, url) == "multiple") { + var xpath = ''//table/tbody/tr/td//a''; + var links = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var link = links.iterateNext(); + var items = new Object(); + while (link) { + if (link.href.match(/&nd=\d+/)) { + items[link.href.match(/&nd=(\d+)/)[1]] = Zotero.Utilities.trimInternal(link.textContent); + } + link = links.iterateNext(); + } + items = Zotero.selectItems(items); + for (var i in items) { + ids.push(i); + } + } else { + ids = [url.match(/&nd=(\d+)/)[1]]; + } + Zotero.debug(ids); + for (var i = 0 ; i < ids.length ; i++) { + var post = ''db=ubfr&nd='' + ids[i] + ''&counter=0&Aktion=S&VomOLAF=0&links=1&gk=&format=ris''; + Zotero.Utilities.HTTP.doPost(''http://www.ub.uni-freiburg.de/cgi-bin/refman'', post, function(text) { + //Zotero.debug(text); + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.translate(); + }); + } +}'); + +REPLACE INTO translators VALUES ('0cdc6a07-38cf-4ec1-b9d5-7a3c0cc89b15', '1.0.0b4.r5', '', '2008-01-30 21:00:00', '0', '100', '4', 'OSTI Energy Citations', 'Michael Berkowitz', 'http://www.osti.gov/energycitations', +'function detectWeb(doc, url) { + if (doc.evaluate(''//table[@class="searchresults"]//a[@class="citation"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (url.indexOf("product.biblio.jsp") != -1) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var urls = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var xpath = ''//table[@class="searchresults"]//a[@class="citation"]''; + var links = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var next_link; + while (next_link = links.iterateNext()) { + items[next_link.href] = next_link.textContent; } - if (xml..media_description.length()){ - newItem.abstractNote = xml..media_description[0].text().toString(); + items = Zotero.selectItems(items); + for (var i in items) { + urls.push(i.match(/osti_id=\d+/)[0]); } - newItem.complete(); - }, function(){Zotero.done();}); - Zotero.wait(); + } else { + urls = [url.match(/osti_id=\d+/)[0]]; + } + for (var i = 0 ; i < urls.length ; i++) { + var getstr = ''http://www.osti.gov/energycitations/endnote?osti_id=140097''; + Zotero.Utilities.HTTP.doGet(getstr, function(text) { + text = text.replace(/(%.)/g, "$1 "); + var trans = Zotero.loadTranslator("import"); + trans.setTranslator("881f60f2-0802-411a-9228-ce5f47b64c7d"); + trans.setString(text); + trans.translate(); + }); + } }'); REPLACE INTO translators VALUES ('4345839f-b4fd-4e3f-a73d-268b6f280f6e', '1.0.0b4.r5', '', '2008-01-29 20:00:00', '0', '100', '4', 'Journal of Vision', 'Michael Berkowitz', 'http://(www.)?journalofvision.org/', @@ -2252,9 +6020,9 @@ function doWeb(doc, url) { }, function() {Zotero.done;}); }'); -REPLACE INTO translators VALUES ('303c2744-ea37-4806-853d-e1ca67be6818', '1.0.0b4.r5', '', '2008-01-16 21:00:00', '0', '100', '4', 'CSIRO Publishing', 'Michael Berkowitz', 'http://www.publish.csiro.au/', +REPLACE INTO translators VALUES ('303c2744-ea37-4806-853d-e1ca67be6818', '1.0.0b4.r5', '', '2008-04-23 09:45:00', '1', '100', '4', 'CSIRO Publishing', 'Michael Berkowitz', 'http://(www.)?publish.csiro.au/', 'function detectWeb(doc, url) { - if (doc.evaluate(''//a[@class="searchBoldBlue"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext() || doc.evaluate(''//td[2]/a[@class="linkJournal"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + if (doc.evaluate(''//a[@class="searchBoldBlue"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext() || doc.evaluate(''//a[@class="linkjournal"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { return "multiple"; } else if (url.indexOf("/view/journals/") != -1 || url.indexOf("paper") != -1) { return "journalArticle"; @@ -2271,15 +6039,13 @@ REPLACE INTO translators VALUES ('303c2744-ea37-4806-853d-e1ca67be6818', '1.0.0b items[art.href] = art.textContent; art = arts.iterateNext(); } - } else if (doc.evaluate(''//td[2]/a[@class="linkJournal"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { - var arts = doc.evaluate(''//td[2]/a[@class="linkJournal"]'', doc, null, XPathResult.ANY_TYPE, null); + } else if (doc.evaluate(''//a[@class="linkjournal"]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + var arts = doc.evaluate(''//a[@class="linkjournal"]'', doc, null, XPathResult.ANY_TYPE, null); var titles = doc.evaluate(''//td[3]//td[1]/table/tbody/tr/td/b'', doc, null, XPathResult.ANY_TYPE, null); - var art = arts.iterateNext(); - var title = titles.iterateNext(); - while (art) { + var art; + var title; + while ((art = arts.iterateNext()) && (title = titles.iterateNext())) { items[art.href] = title.textContent; - art = arts.iterateNext(); - title = titles.iterateNext(); } } items = Zotero.selectItems(items); @@ -2313,7 +6079,7 @@ REPLACE INTO translators VALUES ('303c2744-ea37-4806-853d-e1ca67be6818', '1.0.0b Zotero.wait(); }'); -REPLACE INTO translators VALUES ('27ee5b2c-2a5a-4afc-a0aa-d386642d4eed', '1.0.0b4.r5', '', '2008-01-14 20:00:00', '0', '100', '4', 'PubMed Central', 'Michael Berkowitz', 'http://[^/]*.nih.gov/', +REPLACE INTO translators VALUES ('27ee5b2c-2a5a-4afc-a0aa-d386642d4eed', '1.0.0b4.r5', '', '2008-04-10 03:00:00', '1', '100', '4', 'PubMed Central', 'Michael Berkowitz', 'http://[^/]*.nih.gov/', 'function detectWeb(doc, url) { if (doc.evaluate(''//table[@id="ResultPanel"]//td[2]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { return "multiple"; @@ -2333,8 +6099,8 @@ REPLACE INTO translators VALUES ('27ee5b2c-2a5a-4afc-a0aa-d386642d4eed', '1.0.0b var URIs = new Array(); var items = new Object(); if (doc.title.indexOf("PMC Results") != -1) { - var titlex = ''//table[@id="ResultPanel"]/tbody/tr[3]/td/div/table/tbody/tr/td[2]/div[@class="portal-tocentry"]/div[@class="toc-entry"]/div/div[@class="toc-title"]''; - var linkx = ''//table[@id="ResultPanel"]/tbody/tr[3]/td/div/table/tbody/tr/td[2]/div[@class="portal-tocentry"]/div[@class="toc-entry"]/div/a[@class="toc-link"][2]''; + var titlex = ''//div[@class="toc-entry"]/div/div[@class="toc-title"]''; + var linkx = ''//div[@class="toc-entry"]/div/a[@class="toc-link"][1]''; var titles = doc.evaluate(titlex, doc, null, XPathResult.ANY_TYPE, null); var next_title = titles.iterateNext(); @@ -2347,14 +6113,14 @@ REPLACE INTO translators VALUES ('27ee5b2c-2a5a-4afc-a0aa-d386642d4eed', '1.0.0b } items = Zotero.selectItems(items); for (var i in items) { - var artid= i.match(/\d+/)[0]; - URIs.push(artid); + URIs.push(i); } } else { - URIs.push(url.match(/\d+/)[0]); + URIs.push(url); } - for (var id in URIs) { - Zotero.Utilities.HTTP.doGet(''http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pmcentrez&artid='' + URIs[id], function(text) { + + for each (var link in URIs) { + Zotero.Utilities.HTTP.doGet(link, function(text) { var tags = new Object(); var meta = text.match(/<meta[^>]*>/gi); for (var i in meta) { @@ -2364,22 +6130,20 @@ REPLACE INTO translators VALUES ('27ee5b2c-2a5a-4afc-a0aa-d386642d4eed', '1.0.0b } } var newItem = new Zotero.Item("journalArticle"); - for (var tag in tagMap) { - newItem[tagMap[tag]] = tags[tag]; + newItem[tagMap[tag]] = Zotero.Utilities.unescapeHTML(tags[tag]); } - for (var i in meta) { if (meta[i].match(/DC.Contributor/)) { - newItem.creators.push(Zotero.Utilities.cleanAuthor(meta[i].match(/content=\"([^"]*)\">/)[1], "author")); + newItem.creators.push(Zotero.Utilities.cleanAuthor(Zotero.Utilities.unescapeHTML(meta[i].match(/content=\"([^"]*)\">/)[1]), "author")); } } - - newItem.attachments = [ - {url:tags["fulltext_html_url"], title:"PubMed Central Snapshot", mimeType:"text/html"}, - {url:tags["pdf_url"], title:"PubMed Central Full Text PDF", mimeType:"application/pdf"} - ]; - + newItem.attachments.push({url:tags["fulltext_html_url"], title:"PubMed Central Snapshot", mimeType:"text/html"}); + if (tags["pdf_url"]) { + newItem.attachments.push({url:tags["pdf_url"], title:"PubMed Central Full Text PDF", mimeType:"application/pdf"}); + } + newItem.url = tags["fulltext_html_url"]; + newItem.extra = text.match(/PMC\d+/)[0]; newItem.complete(); }); } @@ -2532,7 +6296,7 @@ REPLACE INTO translators VALUES ('ca6e95d1-46b9-4535-885c-df0c2d4b7f7a', '1.0.0b Zotero.wait(); }'); -REPLACE INTO translators VALUES ('bdae838b-3a58-461f-9e8a-142ed9de61dc', '1.0.0b4.r5', '', '2008-01-10 21:00:00', '1', '100', '4', 'PLoS Journals', 'Michael Berkowitz', 'http://[^.]+\.plosjournals\.org/', +REPLACE INTO translators VALUES ('bdae838b-3a58-461f-9e8a-142ed9de61dc', '1.0.0b4.r5', '', '2008-04-02 08:10:00', '1', '100', '4', 'PLoS Biology and Medicine', 'Michael Berkowitz', 'http://[^.]+\.plosjournals\.org/', 'function detectWeb(doc, url) { if (doc.evaluate(''//div[@class="search"][@id="browseResults"]/ul/li/span/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext() || doc.evaluate(''//div[@id="toclist"]/dl/dt/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { @@ -2607,7 +6371,7 @@ function doWeb(doc, url) { Zotero.wait(); }'); -REPLACE INTO translators VALUES ('9575e804-219e-4cd6-813d-9b690cbfc0fc', '1.0.0b4.r5', '', '2007-11-14 20:45:00', '0', '100', '4', 'PLoS One and PLoS Neglected Tropical Diseases', 'Michael Berkowitz', '^http://www\.(plosone|plosntds)\.org/(search|article)/', +REPLACE INTO translators VALUES ('9575e804-219e-4cd6-813d-9b690cbfc0fc', '1.0.0b4.r5', '', '2008-04-02 08:30:00', '1', '100', '4', 'PLoS Journals', 'Michael Berkowitz', 'http://www\.plos(one|ntds|compbiol|pathogens|genetics)\.org/(search|article)/', 'function detectWeb(doc, url) { if (url.indexOf("Search.action") != -1 || url.indexOf("browse.action") != -1) { return "multiple"; @@ -2626,7 +6390,6 @@ REPLACE INTO translators VALUES ('9575e804-219e-4cd6-813d-9b690cbfc0fc', '1.0.0b items[next_art.href] = next_art.textContent; next_art = articles.iterateNext(); } - items = Zotero.selectItems(items); for (var i in items) { texts.push(i); @@ -2634,29 +6397,27 @@ REPLACE INTO translators VALUES ('9575e804-219e-4cd6-813d-9b690cbfc0fc', '1.0.0b } else { texts.push(url); } - - Zotero.debug(texts); - - Zotero.Utilities.processDocuments(texts, function(doc, url) { - var newURL = doc.location.href.replace("info", "getRisCitation.action?articleURI=info"); - var pdfURL = doc.location.href.replace("info", "fetchObjectAttachment.action?uri=info") + ''&representation=PDF''; - Zotero.debug(newURL); + Zotero.Utilities.processDocuments(texts, function(newDoc, url) { + var doi = newDoc.location.href.match(/doi(\/|%2F)(.*)$/)[2]; + var newURL = newDoc.location.href.replace("info", "getRisCitation.action?articleURI=info"); + var pdfURL = newDoc.location.href.replace("info", "fetchObjectAttachment.action?uri=info") + ''&representation=PDF''; Zotero.Utilities.HTTP.doGet(newURL, function(text) { var translator = Zotero.loadTranslator("import"); translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); translator.setString(text); translator.setHandler("itemDone", function(obj, item) { item.attachments.push({url:pdfURL, title:"PLoS One Full Text PDF", mimeType:"application/pdf"}); + item.DOI = doi; + item.repository = item.publicationTitle; item.complete(); }); translator.translate(); - Zotero.done(); - }); - - }, function() {Zotero.done()}); + }); + }, function() {Zotero.done;}); + Zotero.wait(); }'); -REPLACE INTO translators VALUES ('b86bb082-6310-4772-a93c-913eaa3dfa1b', '1.0.0b4.r5', '', '2007-09-24 17:35:00', '0', '100', '4', 'Early English Books Online', 'Michael Berkowitz', '^http://eebo.chadwyck.com/search', +REPLACE INTO translators VALUES ('b86bb082-6310-4772-a93c-913eaa3dfa1b', '1.0.0b4.r5', '', '2008-02-11 19:30:00', '0', '100', '4', 'Early English Books Online', 'Michael Berkowitz', 'http://[^/]*eebo.chadwyck.com[^/]*/search', 'function detectWeb(doc, url) { if (doc.title == "Search Results - EEBO") { return "multiple"; @@ -2666,10 +6427,15 @@ REPLACE INTO translators VALUES ('b86bb082-6310-4772-a93c-913eaa3dfa1b', '1.0.0b }', 'function doWeb(doc, url) { var eeboIDs = new Array(); + + var hostRegexp = new RegExp("^(https?://[^/]+)/"); + var hMatch = hostRegexp.exec(url); + var host = hMatch[1]; + if (doc.title == "Search Results - EEBO") { var items = new Object(); Zotero.debug("search page"); - var IDxpath = ''//td[4]/script''; + var IDxpath = ''//td[3]/script''; var Titlexpath = ''//td[3]/i''; var new_ids = doc.evaluate(IDxpath, doc, null, XPathResult.ANY_TYPE, null); var new_titles = doc.evaluate(Titlexpath, doc, null, XPathResult.ANY_TYPE, null); @@ -2697,13 +6463,13 @@ REPLACE INTO translators VALUES ('b86bb082-6310-4772-a93c-913eaa3dfa1b', '1.0.0b for (var i = 0 ; i < eeboIDs.length ; i++) { var postString = ''cit_format=RIS&Print=Print&cit_eeboid='' + eeboIDs[i] + ''&EeboId='' + eeboIDs[i]; var new_eeboid = eeboIDs[i] - Zotero.Utilities.HTTP.doPost(''http://eebo.chadwyck.com/search/print'', postString, function(text) { + Zotero.Utilities.HTTP.doPost(host+''/search/print'', postString, function(text) { // load translator for RIS var translator = Zotero.loadTranslator("import"); translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); translator.setString(text.substring(17)); translator.setHandler("itemDone", function(obj, item) { - item.url = ''http://eebo.chadwyck.com/search/full_rec?SOURCE=pgimages.cfg&ACTION=ByID&ID='' + new_eeboid + ''&FILE=../session/1190302085_15129&SEARCHSCREEN=CITATIONS&SEARCHCONFIG=config.cfg&DISPLAY=ALPHA''; + item.url = host+''/search/full_rec?SOURCE=pgimages.cfg&ACTION=ByID&ID='' + new_eeboid + ''&FILE=../session/1190302085_15129&SEARCHSCREEN=CITATIONS&SEARCHCONFIG=config.cfg&DISPLAY=ALPHA''; item.complete(); }); translator.translate(); @@ -2712,7 +6478,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', '', '2007-07-31 16:45:00', '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-03-25 18:20:36', '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"; @@ -2850,10 +6616,10 @@ 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() ) { - urls.push(doc.location.href); + scrape(doc, doc.location.href); } - Zotero.Utilities.processDocuments(urls, scrape, function() { Zotero.done(); } ); Zotero.wait(); }'); @@ -2985,120 +6751,69 @@ function doWeb(doc, url) { Zotero.wait(); }'); -REPLACE INTO translators VALUES ('9346ddef-126b-47ec-afef-8809ed1972ab', '1.0.0b4.r5', '', '2007-07-31 16:45:00', '1', '99', '4', 'Institute of Physics', 'Michael Berkowitz', '^http://www.iop.org/EJ/(toc|abstract|search)', +REPLACE INTO translators VALUES ('9346ddef-126b-47ec-afef-8809ed1972ab', '1.0.0b4.r5', '', '2008-04-28 17:50:00', '1', '99', '4', 'Institute of Physics', 'Michael Berkowitz', '^http://www.iop.org/EJ/(toc|abstract|search|article)', 'function detectWeb(doc, url) { if ((doc.location.href.indexOf("toc") == -1) && (doc.location.href.indexOf("search") == -1)) { - Zotero.debug("journalArticle"); return "journalArticle"; } else { - Zotero.debug("multiple"); return "multiple"; } }', 'function parseRIS(getURL, pdfURL) { - Zotero.Utilities.HTTP.doGet(getURL, function(text){ + var newGet = getURL.replace(/EJ\/[^/]+/, "EJ/sview") + "?format=refmgr&submit=1"; + Zotero.Utilities.HTTP.doGet(newGet, function(text){ // load translator for RIS var translator = Zotero.loadTranslator ("import"); translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); translator.setString(text); translator.setHandler("itemDone", function(obj, item) { + item.url = getURL; item.attachments = [ - {url:pdfURL, title:"IOP Full Text PDF", mimeType:"application/pdf"} + {url:item.url, title:"IOP Snapshot", mimeType:"text/html"} ]; + if (pdfURL != null) { + item.attachments.push({url:pdfURL, title:"IOP Full Text PDF", mimeType:"application/pdf"}); + } item.complete(); }); translator.translate(); Zotero.done(); }, function() {}); - Zotero.wait(); } - function doWeb(doc, url) { - var namespace = doc.documentElement.namespaceURI; - var nsResolver = namespace ? function(prefix) { - if (prefix == "x" ) return namespace; else return null; - } : null; - - var xpath = ''//td[1][@id="toc-opts-left"]/span[@class="toclink"]/a[contains(text(), "Abstract")]''; - var PDFs = new Array(); - var urls = new Array(); - var pdfurls = new Array(); - var items = new Array(); - - if (doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { - var links = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - var url = links.iterateNext(); - while (url) { - items.push(url.href); - url = links.iterateNext (); - } - - var titles = new Array(); - var xpath2 = ''//strong[@class="tocTitle"]''; - var stuff = doc.evaluate(xpath2, doc, nsResolver, XPathResult.ANY_TYPE, null); - var title = stuff.iterateNext(); - while (title) { - titles.push(title.textContent); - title = stuff.iterateNext(); - } - - var xpath3 = ''//table/tbody/tr/td[2]/span[@class="toclink"]/a''; - var PDFlinks = doc.evaluate(xpath3, doc, nsResolver, XPathResult.ANY_TYPE, null); - var newPDF = PDFlinks.iterateNext(); - while (newPDF) { - PDFs.push(newPDF.href); - newPDF = PDFlinks.iterateNext(); - } - - var newItems = new Object(); - - Zotero.debug(items.length); - Zotero.debug(titles.length); - for (var x = 0 ; x < items.length ; x++) { - newItems[items[x]] = [titles[x], PDFs[x]]; - } - - - Zotero.debug(newItems); - - - newItems = Zotero.selectItems(newItems); - - if (!newItems) { - return true; - } - - for (var i in newItems) { - Zotero.debug(i); - urls.push (i); - var newStuff = newItems[i].split('',''); - pdfurls.push(Zotero.Utilities.cleanString(newStuff[newStuff.length - 1])); - } - - } else { - urls.push(doc.location.href); - var xpath4 = ''//div[@id="abstract"]//td[2]/a''; - pdfurls.push(doc.evaluate(xpath4, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href); - } - - for (var i = 0 ; i < urls.length ; i++) { - urls[i] = urls[i].replace("abstract", "sview"); - } - - Zotero.debug(urls); - Zotero.debug(pdfurls); - Zotero.Utilities.HTTP.doPost(urls, "format=refmgr&submit=1", function(text) { - for (var j = 0 ; j < urls.length ; j++) { - parseRIS(urls[j] + "?format=refmgr&submit=1", pdfurls[j]); - } - }); - - Zotero.wait(); -} - -'); + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == "x") return namespace; else return null; + } : null; + + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var results = doc.evaluate(''//td[*//td[*//a[contains(text(), "Abstract")]]]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var result; + while (result = results.iterateNext()) { + var title = doc.evaluate(''.//strong'', result, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + var link = doc.evaluate(''.//a[contains(text(), "Abstract")]'', result, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; + var pdflink = doc.evaluate(''.//a[contains(text(), "PDF")]'', result, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() ? doc.evaluate(''.//a[contains(text(), "PDF")]'', result, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href : null; + var links = new Array(link, pdflink); + items[links] = title; + } + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + var pdfurl = doc.evaluate(''//a[contains(text(), "PDF")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; + var links = url + '','' + pdfurl; + arts = [links]; + } + for each (var linkset in arts) { + var urls = linkset.split('',''); + parseRIS(urls[0], urls[1]); + } +}'); 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/', 'function detectWeb(doc, url) { @@ -3845,7 +7560,7 @@ function doWeb(doc, url) { } '); -REPLACE INTO translators VALUES ('5af42734-7cd5-4c69-97fc-bc406999bdba', '1.0.0b4.r5', '', '2008-01-06 23:55:00', '0', '100', '4', 'ESA Journals', 'Michael Berkowitz', '^http://www.esajournals.org/*', +REPLACE INTO translators VALUES ('5af42734-7cd5-4c69-97fc-bc406999bdba', '1.0.0b4.r5', '', '2008-04-08 03:00:00', '1', '100', '4', 'ESA Journals', 'Michael Berkowitz', 'http://www.esajournals.org/', 'function detectWeb(doc, url) { if (url.indexOf("get-toc") != -1 || url.indexOf("searchtype") != -1) { return "multiple"; @@ -3874,77 +7589,54 @@ function doWeb(doc, url) { if (prefix == ''x'') return namespace; else return null; } : null; - var items = new Array(); - if (url.indexOf("get-toc") != -1) { - var titlesAr = new Array(); - var linksAr = new Array(); - - var group_xpath = ''//div[@class="group"]''; - var articles = doc.evaluate(group_xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - while (group = articles.iterateNext()) { - //gets article titles - titlesAr.push(doc.evaluate(''.//p[@class="title"]'', group, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); - - //gets full text links, or abstracts if that''s all that''s available - var link_xpath = ''.//p[@class="link"]''; - if (group.textContent.indexOf("Full Text") != -1) { - link_xpath += ''/a[substring(text(), 1, 4) = "Full"]''; - } else if (group.textContent.indexOf("Abstract") != -1) { - link_xpath += ''/a[substring(text(), 1, 8) = "Abstract"]''; - } - linksAr.push(doc.evaluate(link_xpath, group, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href); - } - - var articles = new Object(); - for (var i = 0 ; i < linksAr.length ; i++) { - articles[linksAr[i]] = senCase(titlesAr[i]); + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var resultItems = doc.evaluate(''//div[@class="nocolumn"][@id="content"]/div//*[@class="group"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var next_item; + while (next_item = resultItems.iterateNext()) { + var link = doc.evaluate(''.//a[1]'', next_item, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; + var title = senCase(doc.evaluate(''.//*[@class="title"]'', next_item, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); + items[link] = title; } - - articles = Zotero.selectItems(articles); - - - - for (var i in articles) { - items.push(i); + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(i); } } else { - items.push(url); + articles.push(url); } - - for (var i = 0 ; i < items.length ; i++) { - var re= /<a href=\"([^"]*)\"?>RefWorks Format/; - var doi = items[i].split("doi=")[1]; - var URI = "http://www.esajournals.org/perlserv/?request=cite-builder&doi=" + doi; - Zotero.Utilities.HTTP.doGet(URI, function(text) { - var newURI = Zotero.Utilities.unescapeHTML(text.match(re)[1]); - Zotero.Utilities.HTTP.doGet("http://" + doc.location.host + "/perlserv/" + newURI, function(text) { - var translator = Zotero.loadTranslator("import"); - text = text.replace(/RT/, "TY"); - text = text.replace(/VO/, "VL"); - text = text.replace(/LK/, "UR"); - text = text.replace(/YR/, "PY"); - translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); - translator.setString(text.replace(/([A-Z][A-Z\d]\s)/g, "$1 - ")); - translator.setHandler("itemDone", function(obj, item) { - item.attachments = [ - {url:item.url, title:"EAS Snapshot", mimeType:"text/html"}, - {url:"http://www.esajournals.org/perlserv/?request=res-loc&uri=urn%3Aap%3Apdf%3Adoi%3A" + doi, title:"EAS Full Text PDF", mimeType:"application/pdf"} - ]; - item.itemType = "journalArticle"; - item.title = item.title.replace(/\s+\-\s+/g, " "); - if (item.title.indexOf("JF") != -1) { - item.title = item.title.substring(0, item.title.indexOf("JF") - 1); - } - item.title = senCase(item.title); - item.abstractNote = item.notes[0][''note'']; - item.complete(); - }); - translator.translate(); - Zotero.wait(); - Zotero.done(); + Zotero.Utilities.processDocuments(articles, function(newDoc) { + var newlink = newDoc.evaluate(''//a[text() = "Create Reference"]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; + var itemurl = newDoc.location.href; + if (newDoc.evaluate(''//a[text() = "Full Text"]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + itemurl = newDoc.evaluate(''//a[text() = "Full Text"]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; + } + var doi = newDoc.evaluate(''//div[@class="doc-head"]/p[contains(text(), "DOI")][@class="info"]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + doi = Zotero.Utilities.trimInternal(doi.substr(4)); + var issn = newDoc.evaluate(''//div[@id="pageTitle"]/p/a'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href.match(/issn=([^&]+)/)[1]; + newlink = newlink.replace(''cite-builder'', ''download-citation&t=refman&site=esaonline''); + Zotero.Utilities.HTTP.doGet(newlink, function(text) { + // load translator for RIS + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + item.url = decodeURIComponent(itemurl); + item.DOI = decodeURIComponent(doi); + var bits = new Array(issn, item.volume, item.issue); + var pdfurl = ''http://www.esajournals.org/archive/'' + bits.join("/") + "/pdf/i" + bits.join("-") + "-" + item.pages.match(/\d+/)[0] + ".pdf"; + item.attachments = [ + {url:item.url, title:"ESA Journals Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:"ESA Full Text PDF", mimeType:"application/pdf"} + ]; + item.complete(); }); + translator.translate(); + + Zotero.done(); }); - } + }, function() {Zotero.done;}); Zotero.wait(); }'); @@ -5234,262 +8926,189 @@ function doWeb(doc,url) //Multiple - xpath=''//a[@class="hiddenlink"][span[@class="xcitationtitle"][b]]''; - xpath+='' | //span[@class="xcitationtitle2"]/a[@class="hiddenlink"]''; - xpath+='' | //div[@class="bodytext"]/a[@class="hiddenlink"][font/b]''; - xpath+='' | //p[@class="bodytext"]/a[@class="hiddenblack"][b]''; - xpath+='' | //div[@class="bodytext"]/a[@class="hiddenblack"][b]''; - xpath+='' | //div[@class="bodytext"]/a[@class="hiddenlink"][font/b]''; - - rows=doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - var items=new Array(); - var link; - var t; - while(row=rows.iterateNext()) - { - link=row.href; - if(link.indexOf("pubmed")<0 && link.substr(link.length-4)!=".pdf" && link.indexOf("blogs.")<0) - { - t=link.split(''/''); - if(t[t.length-1].indexOf("comments#")>-1) - {link=t.slice(0,t.length-1).join(''/'');} - items[link.replace("/abstract","")+"/citation"]=row.textContent; - } - } - - items = Zotero.selectItems(items); - var uris=new Array(); - if (!items) - {return true;} - - for (var i in items) - {uris.push(i);} - - Zotero.Utilities.HTTP.doPost(uris, "include=cit&format=refman&direct=on&submit=Download+references&action=submit", function(text) - { - for (var j = 0 ; j < uris.length ; j++) - {parseRIS(uris[j] + "?include=cit&format=refman&direct=on&submit=Download+references&action=submit");} - }); - - Zotero.wait(); -} -'); - -REPLACE INTO translators VALUES ('a1a97ad4-493a-45f2-bd46-016069de4162', '1.0.0b4.r1', '', '2007-07-03 18:05:11', '0', '100', '4', 'OpticsInfoBase', 'Ben Parr','^https?://(?:www\.)?opticsinfobase.org', -'function detectWeb(doc,url) -{ - var namespace = doc.documentElement.namespaceURI; - var nsResolver = namespace ? function(prefix) { - if (prefix == ''x'') return namespace; else return null; - } : null; - - - var xpath=''//div[@id="abstract"]/p/strong'' - var rows= doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - var row; - while(row=rows.iterateNext()) - { - if(row.textContent=="Citation") - {return "journalArticle";} - } - - xpath=''//form[@id="searchform"]/table/tbody/tr/td[1]/h1''; - var temp=doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE,null).iterateNext(); - if(temp&&temp.textContent=="Search Results") - {return "multiple";} -}', -'function processList(items) -{ - items = Zotero.selectItems(items); - var uris=new Array(); - if (!items) - {return true;} - - for (var i in items) - {uris.push(i);} - - Zotero.Utilities.processDocuments(uris, scrape,function() {Zotero.done(); }); - Zotero.wait(); - - return true; -} - - -function scrape(doc,url) -{ - var namespace = doc.documentElement.namespaceURI; - var nsResolver = namespace ? function(prefix) { - if (prefix == ''x'') return namespace; else return null; - } : null; - - var newItem=new Zotero.Item("journalArticle"); - - var xpath=''//div[@id="abstract"]/h1''; - var temp=doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE,null).iterateNext(); - if(temp) - { - temp=temp.textContent; - if(temp[temp.length-1]==".") - {temp=temp.substr(0,temp.length-1);} - newItem.title=Zotero.Utilities.cleanString(temp); - } - - xpath=''//div[@id="abstract"]/p''; - var rows= doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - var row; - while(row=rows.iterateNext()) - { - temp=row.textContent; - if(temp.substr(0,8)=="Abstract") - { - temp=temp.replace("Abstract",""); - temp=Zotero.Utilities.cleanString(temp); - temp=Zotero.Utilities.cleanTags(temp); - newItem.abstractNote=temp; - } - } - - xpath=''//div[@id="abstract"]/p''; - rows= doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - while(row=rows.iterateNext()) - { - temp=Zotero.Utilities.cleanString(row.textContent); - if(temp.substr(0,8)=="Citation") - {temp=temp.split(" "); - newItem.url=temp[temp.length-1];} - } - - xpath=''//div[@id="abstract"]/h3'' - temp=doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE,null).iterateNext(); - if(temp) - { - temp=temp.textContent; - temp=temp.replace(" and ",","); - temp=temp.replace(" and,",","); - var authors=temp.split("\n")[0].split(","); - for(var a in authors) - { - if(Zotero.Utilities.cleanString(authors[a])) - {newItem.creators.push(Zotero.Utilities.cleanAuthor(authors[a], "author"));} - } - - temp=temp.replace(temp.split("\n")[0],''''); - temp=Zotero.Utilities.cleanString(temp); - var i=temp.split(","); - for(var b in i) - { - if(i[b].indexOf("Vol. ")>-1) - {newItem.volume=i[b].replace("Vol. ","");} - else if(i[b].indexOf("Issue ")>-1) - {newItem.issue=i[b].replace("Issue ","");} - else if(i[b].indexOf("pp. ")>-1) - { - var pages=i[b]; - if(pages[pages.length-1]=="-") - {pages=pages.substr(0,pages.length-1);} - newItem.pages=pages.replace("pp. ",""); - } - } - } - xpath=''//div[@id="abstract"]''; - temp=doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE,null).iterateNext(); - if(temp) - { - temp=Zotero.Utilities.cleanString(temp.textContent); - if(temp.substr(0,16)=="Conference Paper") - { - newItem.itemType="conferencePaper"; - xpath=''//div[@id="abstract"]''; - temp=doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE,null).iterateNext().textContent; - var journalsub=false; - var next=true; - temp=temp.replace("Conference Paper",""); - temp=temp.split("\n"); - for(var x in temp) - { - temp[x]=Zotero.Utilities.cleanString(temp[x]); - if(temp[x]&&!journalsub) - {newItem.publisher=temp[x]; journalsub=true;} - else if(temp[x]&&next) - {next=false;} - else if(temp[x]&&!next) - {newItem.date=temp[x]; break;} - } - } - else - { - xpath=''//div[@id="abstract"]/p''; - rows= doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - while(row=rows.iterateNext()) - { - temp=Zotero.Utilities.cleanString(row.textContent); - if(temp.substr(0,8)=="Citation") - { - temp=temp.replace("Citation",""); - temp=Zotero.Utilities.cleanString(temp); - temp=temp.replace(newItem.title,''''); - var journal=temp.split('',"''); - if(journal[1]) - { - journal=journal[1]; - var c=journal.split(","); - journal=c[0]; - if(c[1]) - { - var year=c[1].split("("); - if(year[1]) - {newItem.date=Zotero.Utilities.cleanString(year[1].split(")")[0]);} - } - - journal=journal.replace(newItem.volume,''''); - newItem.publicationTitle=Zotero.Utilities.cleanString(journal); - } - break; - } - } - } - } - newItem.complete(); + xpath=''//a[@class="hiddenlink"][span[@class="xcitationtitle"][b]]''; + xpath+='' | //span[@class="xcitationtitle2"]/a[@class="hiddenlink"]''; + xpath+='' | //div[@class="bodytext"]/a[@class="hiddenlink"][font/b]''; + xpath+='' | //p[@class="bodytext"]/a[@class="hiddenblack"][b]''; + xpath+='' | //div[@class="bodytext"]/a[@class="hiddenblack"][b]''; + xpath+='' | //div[@class="bodytext"]/a[@class="hiddenlink"][font/b]''; -} + rows=doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + var items=new Array(); + var link; + var t; + while(row=rows.iterateNext()) + { + link=row.href; + if(link.indexOf("pubmed")<0 && link.substr(link.length-4)!=".pdf" && link.indexOf("blogs.")<0) + { + t=link.split(''/''); + if(t[t.length-1].indexOf("comments#")>-1) + {link=t.slice(0,t.length-1).join(''/'');} + items[link.replace("/abstract","")+"/citation"]=row.textContent; + } + } + + items = Zotero.selectItems(items); + var uris=new Array(); + if (!items) + {return true;} -function doWeb(doc,url) -{ - var namespace = doc.documentElement.namespaceURI; - var nsResolver = namespace ? function(prefix) { - if (prefix == ''x'') return namespace; else return null; - } : null; + for (var i in items) + {uris.push(i);} - var xpath=''//div[@id="abstract"]/p/strong'' - var rows= doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - var row; - while(row=rows.iterateNext()) - { - if(row.textContent=="Citation") - {scrape(doc,url);return true;} - } + Zotero.Utilities.HTTP.doPost(uris, "include=cit&format=refman&direct=on&submit=Download+references&action=submit", function(text) + { + for (var j = 0 ; j < uris.length ; j++) + {parseRIS(uris[j] + "?include=cit&format=refman&direct=on&submit=Download+references&action=submit");} + }); + + Zotero.wait(); +} +'); - xpath=''//form[@id="searchform"]/table/tbody/tr/td[1]/h1''; - var temp=doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE,null).iterateNext(); - if(temp&&temp.textContent=="Search Results") - { - var items=new Array(); - xpath=''//div[@id="col2"]/p/strong/a''; - rows=doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - while(row=rows.iterateNext()) - {items[row.href]=Zotero.Utilities.cleanString(row.textContent);} +REPLACE INTO translators VALUES ('8a07dd43-2bce-47bf-b4bf-c0fc441b79a9', '1.0.0b4.r5', '', '2008-02-27 23:00:00', '0', '100', '4', 'Optics Express', 'Michael Berkowitz', 'http://(www.)?opticsexpress\.org', +'function detectWeb(doc, url) { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; + + var searchpath = ''//div[@id="col2"]/p/strong/a''; + if (doc.evaluate(searchpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (url.indexOf("abstract.cfm") != -1) { + return "journalArticle"; + } +}', +'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 xpath = ''//div[@id="col2"]/p/strong/a''; + var art = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + var next_art; + while (next_art = art.iterateNext()) { + items[next_art.href] = Zotero.Utilities.trimInternal(next_art.textContent); + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(i); + } + } else { + articles = [url]; + } + for (var a in articles) { + var link = articles[a]; + Zotero.Utilities.HTTP.doGet(link, function(text) { + var id = text.match(/name=\"articles\"\s+value=\"([^"]+)\"/)[1]; + var action = text.match(/select\s+name=\"([^"]+)\"/)[1]; + Zotero.debug(id); + Zotero.debug(action); + var get = ''http://www.opticsinfobase.org/custom_tags/IB_Download_Citations.cfm''; + var post = ''articles='' + id + ''&ArticleAction=save_endnote2&'' + action + ''=save_endnote2''; + Zotero.debug(get + "?" + post); + Zotero.Utilities.HTTP.doPost(get, post, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + var pubName; + if (item.journalAbbreviation) { + pubName = item.journalAbbreviation; + } else { + pubName = item.publicationTitle; + } + Zotero.debug(pubName); + item.attachments = [{url:articles[a], title:pubName + " Snapshot", mimeType:"text/html"}]; + item.complete(); + }); + translator.translate(); + }); + }); + } +}'); - processList(items); - } +REPLACE INTO translators VALUES ('a1a97ad4-493a-45f2-bd46-016069de4162', '1.0.0b4.r1', '', '2008-02-27 23:00:00', '0', '100', '4', 'Optical Society of America', 'Michael Berkowitz', 'https?://[^.]+\.(opticsinfobase|osa)\.org', +'function detectWeb(doc, url) { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; + + var searchpath = ''//div[@id="col2"]/p/strong/a''; + if (doc.evaluate(searchpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + return "multiple"; + } else if (url.indexOf("abstract.cfm") != -1) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; + var host = doc.location.host; + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var xpath = ''//div[@id="col2"]/p/strong/a''; + var arts = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + var next_art; + while (next_art = arts.iterateNext()) { + items[next_art.href] = Zotero.Utilities.trimInternal(next_art.textContent); + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(i); + } + } else { + articles = [url]; + } + Zotero.debug(articles); + Zotero.Utilities.processDocuments(articles, function(newDoc) { + Zotero.debug(newDoc.location.href); + var osalink = newDoc.evaluate(''//div[@id="abstract"]/p/a[contains(text(), "opticsinfobase")]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; + Zotero.debug(osalink); + Zotero.Utilities.HTTP.doGet(osalink, function(text) { + var action = text.match(/select\s+name=\"([^"]+)\"/)[1]; + var id = text.match(/input\s+type=\"hidden\"\s+name=\"articles\"\s+value=\"([^"]+)\"/)[1]; + var get = ''http://'' + host + ''/custom_tags/IB_Download_Citations.cfm''; + var post = ''articles='' + id + ''&ArticleAction=save_endnote2&'' + action + ''=save_endnote2''; + Zotero.Utilities.HTTP.doPost(get, post, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + var pubName; + if (item.journalAbbreviation) { + pubName = item.journalAbbreviation; + } else { + pubName = item.publicationTitle; + } + Zotero.debug(pubName); + item.attachments = [{url:osalink, title:pubName + " Snapshot", mimeType:"text/html"}]; + item.complete(); + }); + translator.translate(); + }); + }); + }, function() {Zotero.done;}); + }'); -REPLACE INTO translators VALUES ('b61c224b-34b6-4bfd-8a76-a476e7092d43', '1.0.0b4.r5', '', '2008-01-10 21:00:00', '0', '100', '4', 'SSRN', 'Michael Berkowitz', '^http://papers\.ssrn\.com/', +REPLACE INTO translators VALUES ('b61c224b-34b6-4bfd-8a76-a476e7092d43', '1.0.0b4.r5', '', '2008-05-01 15: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) { return (prefix=="x")?namespace:null; }:null; - if (doc.evaluate(''//font/strong/a[substring(@class, 1, 4) = "text"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { return "multiple"; } else if (url.indexOf("abstract_id") != -1) { @@ -5523,6 +9142,9 @@ REPLACE INTO translators VALUES ('b61c224b-34b6-4bfd-8a76-a476e7092d43', '1.0.0b 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]; @@ -5531,6 +9153,14 @@ REPLACE INTO translators VALUES ('b61c224b-34b6-4bfd-8a76-a476e7092d43', '1.0.0b 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(); @@ -5965,12 +9595,14 @@ function doWeb(doc, url) { Zotero.wait(); }'); -REPLACE INTO translators VALUES ('4fd6b89b-2316-2dc4-fd87-61a97dd941e8', '1.0.0b3.r1', '', '2007-11-14 17:20:00', '1', '100', '4', 'Library Catalog (InnoPAC)', 'Simon Kornblith', '^https?://[^/]+/(?:search\??/|record=|search%7e/)', +REPLACE INTO translators VALUES ('4fd6b89b-2316-2dc4-fd87-61a97dd941e8', '1.0.0b3.r1', '', '2008-04-28 17:50:00', '1', '100', '4', 'Library Catalog (InnoPAC)', 'Simon Kornblith and Michael Berkowitz', 'https?://[^/]+/(search(\*spi)?(\?|~(S[\d]+)?)?)\??/(a|X|t)?\??', 'function detectWeb(doc, url) { // 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)) { - return "book"; + if (!url.match("SEARCH") && !url.match("searchtype")) { + return "book"; + } } // Next, look for the MARC button var namespace = doc.documentElement.namespaceURI; @@ -5986,7 +9618,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)) { + if(matchRegexp.test(tags[i].href) || tags[i].href.match(/^https?:\/\/[^/]+\/(?:search\??\/|record=?|search%7e\/)/)) { return "multiple"; } } @@ -6000,13 +9632,20 @@ REPLACE INTO translators VALUES ('4fd6b89b-2316-2dc4-fd87-61a97dd941e8', '1.0.0b } : null; var xpath = ''//pre/text()''; - var elmts = newDoc.evaluate(xpath, newDoc, nsResolver, - XPathResult.ANY_TYPE, null); + if (newDoc.evaluate(xpath, newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + var elmts = newDoc.evaluate(xpath, newDoc, null, XPathResult.ANY_TYPE, null); + var useNodeValue = true; + } else { + var elmts = newDoc.evaluate(''//pre'', newDoc, nsResolver, XPathResult.ANY_TYPE, null); + var useNodeValue = false; + } var elmt; - while(elmt = elmts.iterateNext()) { - var text = elmt.nodeValue; - + if (useNodeValue) { + var text = elmt.nodeValue; + } else { + var text = elmt.textContent; + } var newItem = new Zotero.Item(); var record = new marc.record(); @@ -6042,7 +9681,7 @@ REPLACE INTO translators VALUES ('4fd6b89b-2316-2dc4-fd87-61a97dd941e8', '1.0.0b var tagValue = value; } } - } + } if(tagValue) { tagValue = tagValue.replace(/\|(.)/g, marc.subfieldDelimiter+"$1"); if(tagValue[0] != marc.subfieldDelimiter) { @@ -6075,32 +9714,19 @@ function doWeb(doc, url) { var translator = Zotero.loadTranslator("import"); translator.setTranslator("a6ee60df-1ddc-4aae-bb25-45e0537be973"); var marc = translator.getTranslatorObject(); + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; - var matchRegexp = new RegExp(''^(https?://[^/]+/search\\??/[^/]+/[^/]+/[0-9]+\%2C[^/]+/)frameset(.+)$''); - var m = matchRegexp.exec(uri); - if(m) { - newUri = m[1]+''marc''+m[2]; - } else { - var namespace = doc.documentElement.namespaceURI; - var nsResolver = namespace ? function(prefix) { - if (prefix == ''x'') return namespace; else return null; - } : null; - - var xpath = ''//a[img[@src="/screens/marcdisp.gif" or starts-with(@alt, "MARC ")]]''; - var aTag = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - if(aTag) { - newUri = aTag.href; + if (!url.match("SEARCH") && !url.match("searchtype")) { + var matchRegexp = new RegExp(''^(.*)frameset(.+)$''); + var m = matchRegexp.exec(uri); + if (m) { + newUri = uri.replace(/frameset/, "marc"); } else { - var xpath = ''//a[img[@src="/screens/regdisp.gif" or @alt="REGULAR RECORD DISPLAY"]]''; - var aTag = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - if(aTag) { - scrape(marc.getTranslatorObject(), doc); - return; - } + newUri = doc.evaluate(''//a[contains(@href, "frameset")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext().href.replace(/frameset/, ''marc''); } - } - - if(newUri) { // single page pageByPage(marc, [newUri]); } else { // Search results page // Require link to match this @@ -6134,19 +9760,7 @@ function doWeb(doc, url) { // Go through links while(link) { - if(tagRegexp.test(link.href)) { - if(!firstURL) firstURL = link.href; - - var text = link.textContent; - if(text) { - text = Zotero.Utilities.cleanString(text); - if(availableItems[link.href]) { - availableItems[link.href] += " "+text; - } else { - availableItems[link.href] = text; - } - } - } + availableItems[link.href] = link.textContent; link = links.iterateNext(); } i++; @@ -6161,20 +9775,15 @@ function doWeb(doc, url) { var newUrls = new Array(); for(var url in items) { - var m = matchRegexp.exec(url); - if(!m) { - throw("matchRegexp choked on "+url); - } - newUrls.push(m[1]+"marc"+m[2]); + newUrls.push(url.replace("frameset", "marc")); } - pageByPage(marc, newUrls); } Zotero.wait(); }'); -REPLACE INTO translators VALUES ('add7c71c-21f3-ee14-d188-caf9da12728b', '1.0.0b3.r1', '', '2007-06-12 23:00:00', '1', '100', '4', 'Library Catalog (SIRSI)', 'Sean Takats', '/uhtbin/cgisirsi', +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', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -6264,7 +9873,9 @@ REPLACE INTO translators VALUES ('add7c71c-21f3-ee14-d188-caf9da12728b', '1.0.0b newItem.creators.push(Zotero.Utilities.cleanAuthor(value, "contributor", true)); } else if(field == "corporate author") { newItem.creators.push({lastName:author, fieldMode:true}); - } else if(field == "subject term" || field == "corporate subject" || field == "geographic term") { + } else if(field == "edition") { + newItem.tags = 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); } else if(field == "personal subject") { @@ -7007,13 +10618,13 @@ function doWeb(doc, url) { Zotero.wait(); }'); -REPLACE INTO translators VALUES ('b047a13c-fe5c-6604-c997-bef15e502b09', '1.0.0b3.r1', '', '2008-01-29 23:00:00', '1', '100', '4', 'LexisNexis', 'Sean Takats', 'https?://[^/]*lexis-?nexis\.com[^/]*/us/lnacademic', +REPLACE INTO translators VALUES ('b047a13c-fe5c-6604-c997-bef15e502b09', '1.0.0b3.r1', '', '2008-03-18 02:30:00', '1', '100', '4', 'LexisNexis', 'Sean Takats', 'https?://[^/]*lexis-?nexis\.com[^/]*/us/lnacademic', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { if (prefix == ''x'') return namespace; else return null; } : null; - Zotero.debug(doc.title); + if (doc.title.substr(doc.title.length-8, 8)=="Document"){ var xpath = ''//input[@name="cisb"]''; var elmt = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); @@ -7021,31 +10632,73 @@ REPLACE INTO translators VALUES ('b047a13c-fe5c-6604-c997-bef15e502b09', '1.0.0b return "newspaperArticle"; } } + var xpath = ''//input[@name="frm_tagged_documents" and @type="checkbox"]''; + var elmt = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + if (elmt.iterateNext()){ + return "multiple"; + } }', -'function doWeb(doc, url) { - var hostRe = new RegExp("^http(?:s)?://[^/]+"); - var m = hostRe.exec(doc.location.href); - var host = m[0]; - +'function doWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { if (prefix == ''x'') return namespace; else return null; } : null; - var risb = doc.evaluate(''//input[@name="risb"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; - var cisb = doc.evaluate(''//input[@name="cisb"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; - var uri = host+"/us/lnacademic/results/listview/delPrep.do?cisb="+cisb+"&risb="+risb+"&mode=delivery_refworks"; - var hiddenInputs = doc.evaluate(''//form[@name="results_docview_DocumentForm"]//input[@type="hidden"]'', doc, nsResolver, + + // define results navigation frame doc for export buttons and hidden fields + var rfDoc = doc.defaultView.window.top.frames[1].document; + var xpath = ''//img[@title="Export Bibliographic References"]''; + + var elmt = doc.evaluate(xpath, rfDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + + var hostRe = new RegExp("^http(?:s)?://[^/]+"); + var m = hostRe.exec(doc.location.href); + var host = m[0]; + + var risb = doc.evaluate(''//input[@name="risb"]'', rfDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; + var cisb = doc.evaluate(''//input[@name="cisb"]'', rfDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; + var uri = host+"/us/lnacademic/results/listview/delPrep.do?cisb="+cisb+"&risb="+risb+"&mode=delivery_refworks"; + var hiddenInputs = doc.evaluate(''//form[@name="results_docview_DocumentForm"]//input[@type="hidden" and not(@name="tagData")]'', rfDoc, nsResolver, XPathResult.ANY_TYPE, null); var hiddenInput; var poststring=""; while(hiddenInput = hiddenInputs.iterateNext()) { poststring = poststring+"&"+hiddenInput.name+"="+encodeURIComponent(hiddenInput.value); } - poststring = poststring + "&hiddensearchfield=Narrow+Search&reloadClassif=&format=GNBFI&focusTerms=&nextSteps=0"; + + var xpath = ''//input[@name="frm_tagged_documents" and @type="checkbox"]''; + var elmt = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + if (doc.title.substr(doc.title.length-8, 8)=="Document"){ + // single page + var delRange = "cur"; + poststring = poststring + "&hiddensearchfield=Narrow+Search&reloadClassif=&format=GNBFI&focusTerms=&nextSteps=0"; + } else { + // get multiple item titles and tags + var xpath = ''//tr[td/input[@name="frm_tagged_documents"]]''; + var rows = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + var title; + var tagNumber; + var items = new Object(); + while (row = rows.iterateNext()){ + title = doc.evaluate(''.//a'', row, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + tagNumber = doc.evaluate(''./td/input[@name="frm_tagged_documents"]'', row, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; + items[tagNumber] = title; + } + var tagData = ""; + items = Zotero.selectItems(items); + if (!items) { + return true; + } + for (var i in items) { + tagData += "-"+i; + } + tagData = tagData.substr(1); + var delRange = "tag"; + poststring = poststring + "&tagData=" + tagData + "&hiddensearchfield=Narrow+Search&reloadClassif=&selDomainID=4&format=GNBLIST&focusTerms=&sort=RELEVANCE&nextSteps=0"; + } Zotero.Utilities.HTTP.doPost(uri, poststring, function(text) { uri = host+"/us/lnacademic/delivery/refExport.do"; var disb = text.match(/<input type="hidden" name="disb" value="([^"]+)">/); - var poststring = "delRange=cur&selDocs=&disb="+disb[1]+"&initializationPage=0"; + poststring = "delRange="+delRange+"&selDocs=&disb="+disb[1]+"&initializationPage=0"; Zotero.Utilities.HTTP.doPost(uri, poststring, function(text) { uri = text.match(/&url=([^'']+)''/) uri = decodeURIComponent(uri[1]); @@ -7053,41 +10706,44 @@ REPLACE INTO translators VALUES ('b047a13c-fe5c-6604-c997-bef15e502b09', '1.0.0b var uris = new Array(); uris.push(uri); Zotero.Utilities.processDocuments(uris, function(newDoc){ - var newItem = new Zotero.Item("newspaperArticle"); - var title = newDoc.evaluate(''//div[@class="HEADLINE"]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - if (title){ - newItem.title = title.textContent; - }else{ - newItem.title = " "; - } - var date = newDoc.evaluate(''//meta[@name="_lndateissue"]/@content'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - if (date){ - date = date.nodeValue; - var m = date.match(/([^T]+)T/); - date = m[1]; - Zotero.debug(date); - if (date.length == 8){ - date = date.substr(0,4) + "-" + date.substr(4,2) + "-" + date.substr(6,2); - } else if (date.length == 6){ - date = date.substr(0,4) + "-" + date.substr(4,2); + var elmts =newDoc.evaluate(''//html'', newDoc, nsResolver, XPathResult.ANY_TYPE, null); + var elmt; + while (elmt = elmts.iterateNext()){ + var newItem = new Zotero.Item("newspaperArticle"); + var title = newDoc.evaluate(''.//div[@class="HEADLINE"]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + if (title.textContent){ + newItem.title = title.textContent; + }else{ + newItem.title = " "; } - newItem.date = date; - } - var publicationTitle = newDoc.evaluate(''//div[@class="PUB"]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - if (publicationTitle){ - newItem.publicationTitle = publicationTitle.textContent; - } - var section = newDoc.evaluate(''//div[@class="SECTION-INFO"]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - if (section){ - newItem.section = section.textContent; - } - var author = newDoc.evaluate(''//div[@class="BYLINE"]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - if (author){ - newItem.creators.push(Zotero.Utilities.cleanAuthor(author.textContent, "author")); + var date = newDoc.evaluate(''.//meta[@name="_lndateissue"]/@content'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + if (date){ + date = date.nodeValue; + var m = date.match(/([^T]+)T/); + date = m[1]; + if (date.length == 8){ + date = date.substr(0,4) + "-" + date.substr(4,2) + "-" + date.substr(6,2); + } else if (date.length == 6){ + date = date.substr(0,4) + "-" + date.substr(4,2); + } + newItem.date = date; + } + var publicationTitle = newDoc.evaluate(''.//div[@class="PUB"]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + if (publicationTitle){ + newItem.publicationTitle = publicationTitle.textContent; + } + var section = newDoc.evaluate(''.//div[@class="SECTION-INFO"]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + if (section){ + newItem.section = section.textContent; + } + var author = newDoc.evaluate(''.//div[@class="BYLINE"]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + if (author){ + newItem.creators.push(Zotero.Utilities.cleanAuthor(author.textContent, "author")); + } + newItem.repository = "lexisnexis.com"; + newItem.url = url; + newItem.complete() } - newItem.respository = "lexisnexis.com"; - newItem.url = url; - newItem.complete(); Zotero.done(); }); }); @@ -7222,7 +10878,7 @@ 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', '', '2006-12-15 15:11:00', 1, 100, 4, 'Library Catalog (Aleph)', 'Simon Kornblith', '^https?://[^/]+/F(?:/[A-Z0-9\-]+(?:\?.*)?$|\?func=find|\?func=scan)', +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)', 'function detectWeb(doc, url) { var singleRe = new RegExp("^https?://[^/]+/F/[A-Z0-9\-]+\?.*(?:func=full-set-set.*\&format=[0-9]{3}|func=direct)"); @@ -7236,14 +10892,16 @@ 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 uri = doc.location.href; var newUris = new Array(); if(detailRe.test(uri)) { - newUris.push(uri.replace(/\&format=[0-9]{3}/, "&format=001")) + var newuri = uri.replace(/\&format=[0-9]{3}/, "&format=001"); + 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 items = Zotero.Utilities.getItemArray(doc, doc, itemRegexp, ''^[0-9]+$''); @@ -7274,54 +10932,91 @@ REPLACE INTO translators VALUES ('cf87eca8-041d-b954-795a-2d86348999d5', '1.0.0b newUris.push(newUri); } } - var translator = Zotero.loadTranslator("import"); translator.setTranslator("a6ee60df-1ddc-4aae-bb25-45e0537be973"); 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; } : null; - - var xpath = ''//*[tr[td/text()="LDR"]]/tr''; + var nonstandard = false; + var xpath; + if (newDoc.evaluate(''//*[tr[td/text()="LDR"]]/tr[td[2]]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + xpath = ''//*[tr[td/text()="LDR"]]/tr[td[2]]''; + } else if (newDoc.evaluate(''//tr[2]//table[2]//tr'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + xpath = ''//tr[2]//table[2]//tr[td[2]]''; + nonstandard = true; + } else if (newDoc.evaluate(''//table//tr[td[2][@class="td1"]]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + xpath = ''//table//tr[td[2][@class="td1"]]''; + nonstandard = true; + } else if (newDoc.evaluate(''//tr/td[2]/table/tbody[tr/td[contains(text(), "LDR")]]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + xpath = ''//tr/td[2]/table/tbody[tr/td[contains(text(), "LDR")]]/tr''; + nonstandard = true; + } var elmts = newDoc.evaluate(xpath, newDoc, nsResolver, XPathResult.ANY_TYPE, null); var elmt; - var record = new marc.record(); while(elmt = elmts.iterateNext()) { - var field = Zotero.Utilities.superCleanString(doc.evaluate(''./TD[1]/text()[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().nodeValue); - var value = doc.evaluate(''./TD[2]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; - - if(field == "LDR") { - record.leader = value; - } else if(field != "FMT") { - value = value.replace(/\|([a-z]) /g, marc.subfieldDelimiter+"$1"); + if (nonstandard) { + var field = Zotero.Utilities.superCleanString(newDoc.evaluate(''./td[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); + } else { + var field = Zotero.Utilities.superCleanString(newDoc.evaluate(''./TD[1]/text()[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().nodeValue); + } + var field = Zotero.Utilities.superCleanString(newDoc.evaluate(''./td[1]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); + if(field) { + var value = newDoc.evaluate(''./TD[2]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; //.split(/\n/)[1]; + if (value.split(/\n/)[1]) value = Zotero.Utilities.trimInternal(value.split(/\n/)[1]); + Zotero.debug(field + " : " + value); + 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]; + 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); + record.addField(code, ind, value); + } } } - var newItem = new Zotero.Item(); record.translate(newItem); var domain = url.match(/https?:\/\/([^/]+)/); newItem.repository = domain[1]+" Library Catalog"; + + for (var i in newItem.creators) { + if (!newItem.creators[i][''firstName'']) { + var name = newItem.creators[i][''lastName''].split(/([^\s]+)\s+(.*)$/); + newItem.creators[i] = {lastName:name[1], firstName:name[2], creatorType:''author''}; + } + } + var oldCreators = newItem.creators; + newItem.creators = new Array(); + var transient = new Array(); + for each (var a in oldCreators) { + if (a.lastName) { + if (!a.lastName.match(/\d+/)) transient.push(a); + } + } + for each (var a in transient) { + if (a.firstName) { + if (a.firstName.match(/\|/)) a.firstName = a.firstName.match(/([^|]+)\s+|/)[1]; + } + } + newItem.creators = transient; + newItem.title = newItem.title.replace(/(<<|>>)/g, ''''); newItem.complete(); - }, function() { Zotero.done(); }, null); - + }, function() {Zotero.done;}); Zotero.wait(); }'); @@ -7798,7 +11493,7 @@ REPLACE INTO translators VALUES ('0f9fc2fc-306e-5204-1117-25bca009dffc', '1.0.0b Zotero.wait(); }'); -REPLACE INTO translators VALUES ('c54d1932-73ce-dfd4-a943-109380e06574', '1.0.0b4.r1', '', '2008-01-13 19:30:00', '1', '100', '4', 'Project MUSE', 'Simon Kornblith', 'https?://[^/]*muse\.jhu\.edu[^/]*/(?:journals/[^/]+/[^/]+/[^/]+\.html|search/results)', +REPLACE INTO translators VALUES ('c54d1932-73ce-dfd4-a943-109380e06574', '1.0.0b4.r1', '', '2008-03-25 00:50:00', '1', '100', '4', 'Project MUSE', 'Simon Kornblith', 'https?://[^/]*muse\.jhu\.edu[^/]*/(?:journals/[^/]+/[^/]+/[^/]+\.html|search/results)', 'function detectWeb(doc, url) { var searchRe = new RegExp("^https?://[^/]+/search/results"); if(searchRe.test(url)) { @@ -7820,7 +11515,7 @@ REPLACE INTO translators VALUES ('c54d1932-73ce-dfd4-a943-109380e06574', '1.0.0b var pdfRe = /\.pdf$/i; var htmlRe = /\.html$/i; - var tableRows = doc.evaluate(''/html/body/table[@class="navbar"]/tbody/tr/td/form/table'', + var tableRows = doc.evaluate(''/html/body/table[@class="navbar"]/tbody/tr/td//form/table'', doc, nsResolver, XPathResult.ANY_TYPE, null); var tableRow; // Go through table rows @@ -7914,7 +11609,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-01-23 18:30: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-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)', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -8061,14 +11756,21 @@ function doWeb(doc, url) { if(uid) { if (uids.iterateNext()){ var items = new Array(); - var tableRows = doc.evaluate(''//div[@class="rprt"]'', doc, // edited for new PubMed - nsResolver, XPathResult.ANY_TYPE, null); - + var tablex = ''//div[@class="rprt"]''; + if (!doc.evaluate(tablex, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + var tablex = ''//div[@class="ResultSet"]/dl''; + var other = true; + } + var tableRows = doc.evaluate(tablex, doc, nsResolver, XPathResult.ANY_TYPE, null); var tableRow; // Go through table rows while(tableRow = tableRows.iterateNext()) { uid = doc.evaluate(''.//input[@id="UidCheckBox"]'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - var article = doc.evaluate(''.//div[@class="title"]'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + if (other) { + var article = doc.evaluate(''.//h2'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + } else { + var article = doc.evaluate(''.//div[@class="title"]'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + } items[uid.value] = article.textContent; } @@ -8095,10 +11797,10 @@ function doSearch(item) { lookupPMIDs([getPMID(item.contextObject)]); }'); -REPLACE INTO translators VALUES ('951c027d-74ac-47d4-a107-9c3069ab7b48', '1.0.0b3.r1', '', '2007-08-04 23:15:00', 1, 400, 4, 'Embedded RDF', 'Simon Kornblith', NULL, +REPLACE INTO translators VALUES ('951c027d-74ac-47d4-a107-9c3069ab7b48', '1.0.0b3.r1', '', '2008-03-14 18:00:00', '1', '400', '4', 'Embedded RDF', 'Simon Kornblith', '', 'function detectWeb(doc, url) { + if (url.indexOf("reprint") != -1) return false; var metaTags = doc.getElementsByTagName("meta"); - for(var i=0; i<metaTags.length; i++) { var tag = metaTags[i].getAttribute("name"); if(tag && tag.substr(0, 3).toLowerCase() == "dc.") { @@ -8107,7 +11809,7 @@ REPLACE INTO translators VALUES ('951c027d-74ac-47d4-a107-9c3069ab7b48', '1.0.0b } return false; -}', +}', 'function doWeb(doc, url) { var dc = "http://purl.org/dc/elements/1.1/"; @@ -9468,7 +13170,7 @@ REPLACE INTO translators VALUES ('3e684d82-73a3-9a34-095f-19b112d88bbf', '1.0.0b Zotero.wait(); }'); -REPLACE INTO translators VALUES ('57a00950-f0d1-4b41-b6ba-44ff0fc30289', '1.0.0b3.r1', '', '2007-10-16 22:10:00', '1', '100', '4', 'Google Scholar', 'Simon Kornblith', '^http://scholar\.google\.(?:com|com?\.[a-z]{2}|[a-z]{2})/scholar', +REPLACE INTO translators VALUES ('57a00950-f0d1-4b41-b6ba-44ff0fc30289', '1.0.0b3.r1', '', '2008-03-28 16:30:00', '1', '100', '4', 'Google Scholar', 'Simon Kornblith', 'http://scholar\.google\.(?:com|com?\.[a-z]{2}|[a-z]{2})/scholar', 'function detectWeb(doc, url) { return "multiple"; }', @@ -9491,13 +13193,14 @@ function scrape(doc) { var elmt; var i=0; Zotero.debug("get elmts"); + Zotero.debug(haveEndNoteLinks); while(elmt = elmts.iterateNext()) { var isCitation = doc.evaluate("./font[1]/b[1]/text()[1]", elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); // use EndNote links if available if(haveEndNoteLinks) { - itemGrabLink = doc.evaluate(''.//a[text() = "Import into EndNote"]'', + itemGrabLink = doc.evaluate(''.//a[contains(@href, ".enw")]'', elmt, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); } else { itemGrabLink = doc.evaluate(''.//a[text() = "Related Articles"]'', @@ -9560,7 +13263,6 @@ function scrape(doc) { item.attachments = attachments.shift(); item.complete(); }); - Zotero.Utilities.HTTP.doGet(urls, function(text) { translator.setString(text); translator.translate(); @@ -9577,7 +13279,7 @@ function doWeb(doc, url) { // first check for EndNote links Zotero.debug("get links"); - haveEndNoteLinks = doc.evaluate(''//a[text() = "Import into EndNote"]'', + haveEndNoteLinks = doc.evaluate(''//a[contains(@href, ".enw")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); if(!haveEndNoteLinks) { // SR:Commenting out this bit as code for retrieving citations from "Related" links is unreliable and unnecessary @@ -9680,7 +13382,7 @@ function doWeb(doc, url) { Zotero.wait(); }'); -REPLACE INTO translators VALUES ('d0b1914a-11f1-4dd7-8557-b32fe8a3dd47', '1.0.0b3.r1', '', '2008-01-09 20:00: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-03 06:00: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) { @@ -9733,15 +13435,19 @@ function downloadFunction(text) { Zotero.Utilities.HTTP.doPost(host+"/ehost/"+deliveryURL, downloadString, function(text) { // get marked records as RIS // load translator for RIS + var test = text.match(/UR\s+\-(.*)/g); + if (test[0].match("@")) text = text.replace(/UR\s+\-(.*)/, ""); var translator = Zotero.loadTranslator("import"); translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); translator.setString(text); translator.setHandler("itemDone", function(obj, item) { - if(item.notes && item.notes[0]) { - item.extra = item.notes[0].note; - - delete item.notes; - item.notes = undefined; + 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(); }); @@ -9765,19 +13471,17 @@ function doWeb(doc, url) { XPathResult.ANY_TYPE, null).iterateNext(); if(searchResult) { - var titles = doc.evaluate(''//div[@class="result-list-record" or @class="folder-item-detail"]/span[@class="medium-font"]/a'', - doc, nsResolver, XPathResult.ANY_TYPE, null); - var title = titles.iterateNext(); - if (!title){ - titles = doc.evaluate(''//div[@class="result-list-record" or @class="folder-item-detail"]/a'', - doc, nsResolver, XPathResult.ANY_TYPE, null); + var titlex = ''//div[@class="result-list-record" or @class="folder-item-detail"]/a''; + if (doc.evaluate(titlex, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + var titles = doc.evaluate(titlex, doc, nsResolver, XPathResult.ANY_TYPE, null); + } else { + var titles = doc.evaluate(''//div[@class="result-list-record" or @class="folder-item-detail"]/span[@class="medium-font"]/a'', doc, nsResolver, XPathResult.ANY_TYPE, null); } - title = titles.iterateNext(); - // Go through titles var items = new Object(); - do { + var title; + while (title = titles.iterateNext()) { items[title.href] = title.textContent; - } while(title = titles.iterateNext()); + } var items = Zotero.selectItems(items); if(!items) { @@ -9807,7 +13511,7 @@ function doWeb(doc, url) { Zotero.wait(); }'); -REPLACE INTO translators VALUES ('ce7a3727-d184-407f-ac12-52837f3361ff', '1.0.0b3.r1', '', '2006-12-12 23:41:00', 1, 100, 4, 'NYTimes.com', 'Simon Kornblith', '^http://(?:query\.nytimes\.com/search/query|(?:select\.|www\.)?nytimes\.com/.)', +REPLACE INTO translators VALUES ('ce7a3727-d184-407f-ac12-52837f3361ff', '1.0.0b3.r1', '', '2008-04-18 08:55:00', '1', '100', '4', 'NYTimes.com', 'Simon Kornblith', '^http://(?:query\.nytimes\.com/search/query|(?:select\.|www\.)?nytimes\.com/.)', 'function detectWeb(doc, url) { if(doc.title.substr(0, 30) == "The New York Times: Search for") { var namespace = doc.documentElement.namespaceURI; @@ -9826,7 +13530,7 @@ REPLACE INTO translators VALUES ('ce7a3727-d184-407f-ac12-52837f3361ff', '1.0.0b return "newspaperArticle"; } } -}', +}', 'function associateMeta(newItem, metaTags, field, zoteroField) { if(metaTags[field]) { newItem[zoteroField] = metaTags[field]; @@ -9926,7 +13630,7 @@ function doWeb(doc, url) { var result = doc.evaluate(''//div[@id="srchContent"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - var items = Zotero.Utilities.getItemArray(doc, result, ''^http://(?:select\.|www\.)nytimes.com/.*\.html$''); + var items = Zotero.Utilities.getItemArray(doc, result, ''^http://(?:select\.|www\.)nytimes.com/.*\.html(\\?|$)''); items = Zotero.selectItems(items); if(!items) { @@ -10385,7 +14089,7 @@ REPLACE INTO translators VALUES ('a07bb62a-4d2d-4d43-ba08-d9679a0122f8', '1.0.0b Zotero.wait(); }'); -REPLACE INTO translators VALUES ('fa396dd4-7d04-4f99-95e1-93d6f355441d', '1.0.0b3.r1', '', '2006-12-11 18:37:00', 1, 100, 4, 'CiteSeer', 'Simon Kornblith', '^http://(?:citeseer\.ist\.psu\.edu/|citeseer\.csail\.mit\.edu/|citeseer\.ifi\.unizh\.ch/|citeseer\.comp\.nus\.edu\.sg/)', +REPLACE INTO translators VALUES ('fa396dd4-7d04-4f99-95e1-93d6f355441d', '1.0.0b3.r1', '', '2008-02-06 21:00:00', 1, 100, 4, 'CiteSeer', 'Simon Kornblith', '^http://(?:citeseer\.ist\.psu\.edu/|citeseer\.csail\.mit\.edu/|citeseer\.ifi\.unizh\.ch/|citeseer\.comp\.nus\.edu\.sg/)', 'function detectWeb(doc, url) { var searchRe = /http:\/\/[^\/]+\/ci?s/; if(searchRe.test(url)) { @@ -10401,7 +14105,7 @@ REPLACE INTO translators VALUES ('fa396dd4-7d04-4f99-95e1-93d6f355441d', '1.0.0b return "journalArticle"; } } -}', +}', 'function scrape(doc) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -10416,17 +14120,24 @@ REPLACE INTO translators VALUES ('fa396dd4-7d04-4f99-95e1-93d6f355441d', '1.0.0b var acceptableTypes = ["PDF", "PS", "PS.gz"]; var mimeTypes = ["application/pdf", "application/postscript", "application/gzip"]; - while(elmt = results.iterateNext()) { + var resultsArray = []; + while (elmt = results.iterateNext()) { + resultsArray.push(elmt); + } + resultsArray = resultsArray.filter(function (element, index, array) { + return (acceptableTypes.indexOf(element.textContent.toString()) != -1); + }); + resultsArray = resultsArray.sort(function (a,b) { + return (acceptableTypes.indexOf(a.textContent.toString()) - + acceptableTypes.indexOf(b.textContent.toString())); + }); + if (resultsArray.length > 0) { + var elmt = resultsArray[0]; var kind = elmt.textContent.toString(); var index = acceptableTypes.indexOf(kind); - if(index != -1) { - var attachment = {url:elmt.href, mimeType:mimeTypes[index], - title:"CiteSeer Full Text "+kind}; - attachments.push(attachment); - - // only get one of thse files - break; - } + var attachment = {url:elmt.href, mimeType:mimeTypes[index], + title:"CiteSeer Full Text "+kind}; + attachments.push(attachment); } var bibtex = doc.evaluate(''/html/body/span[@class="m"]/pre/text()'', doc, nsResolver, @@ -10477,9 +14188,55 @@ function doWeb(doc, url) { } }'); -REPLACE INTO translators VALUES ('ecddda2e-4fc6-4aea-9f17-ef3b56d7377a', '1.0.0b3.r1', '', '2007-12-22 06:00:00', '1', '100', '4', 'arXiv.org', 'Sean Takats', '^http://(?:www\.)?(?:(arxiv\.org|xxx.lanl.gov)/(?:find/\w|list/\w|abs/)|eprintweb.org/S/(?:search|archive|article)(?!.*refs$)(?!.*cited$))', +REPLACE INTO translators VALUES ('8917b41c-8527-4ee7-b2dd-bcbc3fa5eabd', '1.0.0b4.r5', '', '2008-02-01 19:30:00', '1', '100', '4', 'CiteULike', 'Sean Takats', 'https?://(?:www\.)?citeulike.org(?:.*/tag/[^/]*$|/search/|/journal/|/group/[0-9]+/library$|/\?page=[0-9]+$|/.*article/[0-9]+$|/$)', +'function detectWeb(doc, url){ + var articleRe = /\/article\/[0-9]+$/; + var m = url.match(articleRe); + var newUris = new Array(); + + if (m){ + return "journalArticle"; + } else { + return "multiple"; + } +}', +'function doWeb(doc, url){ + var articleRe = /\/article\/[0-9]+$/; + var m = url.match(articleRe); + var newUris = new Array(); + + if (m){ + newUris.push(url.replace(/citeulike\.org\//, "citeulike.org/endnote/")); + } else { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == ''x'') return namespace; else return null; + } : null; + var elmt; + var elmts = doc.evaluate(''//a[@class="title"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var items = new Object(); + while(elmt = elmts.iterateNext()) { + items[elmt.href] = Zotero.Utilities.trimInternal(elmt.textContent); + } + items = Zotero.selectItems(items); + if(!items) return true; + for(var uri in items) { + newUris.push(uri.replace(/citeulike\.org\//, "citeulike.org/endnote/")); + } + } + Zotero.Utilities.HTTP.doGet(newUris, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.translate(); + Zotero.done(); + }); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('ecddda2e-4fc6-4aea-9f17-ef3b56d7377a', '1.0.0b3.r1', '', '2008-04-02 08:10:00', '1', '100', '4', 'arXiv.org', 'Sean Takats and Michael Berkowitz', 'http://(?:(www|uk)\.)?(?:(arxiv\.org|xxx.lanl.gov)/(?:find/\w|list/\w|abs/)|eprintweb.org/S/(?:search|archive|article)(?!.*refs$)(?!.*cited$))', 'function detectWeb(doc, url) { - var searchRe = /^http:\/\/(?:www\.)?(?:(arxiv\.org|xxx\.lanl\.gov)\/(?:find|list)|eprintweb.org\/S\/(?:archive|search$))/; + var searchRe = /^http:\/\/(?:(www|uk)\.)?(?:(arxiv\.org|xxx\.lanl\.gov)\/(?:find|list)|eprintweb.org\/S\/(?:archive|search$))/; if(searchRe.test(url)) { return "multiple"; } else { @@ -10487,7 +14244,7 @@ REPLACE INTO translators VALUES ('ecddda2e-4fc6-4aea-9f17-ef3b56d7377a', '1.0.0b } }', 'function getPDF(articleID) { - return {url:"http://www.arxiv.org/pdf/" + articleID, + return {url:"http://www.arxiv.org/pdf/" + articleID + "v1.pdf", mimeType:"application/pdf", title:articleID + " PDF"}; } @@ -10538,7 +14295,7 @@ function doWeb(doc, url) { var newID= elmt.textContent; newID = newID.replace(/arXiv:/, ""); newID = newID.replace(/\//g, "%2F"); - availableItems[i] = Zotero.Utilities.cleanString(title.textContent); + availableItems[i] = Zotero.Utilities.cleanString(title.textContent.replace(/^\s*Title:\s+/, "")); arXivIDs[i] = newID; i++; } while ((elmt = elmts.iterateNext()) && (title = titles.iterateNext())); @@ -10637,7 +14394,12 @@ function doWeb(doc, url) { newItem.publicationTitle = articleID; } // TODO add "arXiv.org" to bib data? + newItem.attachments.push({url:newItem.url, title:"arXiv.org Snapshot", mimeType:"text/html"}); newItem.attachments.push(getPDF(articleID)); + if (newItem.notes[0][''note'']) { + newItem.abstractNote = newItem.notes[0][''note'']; + newItem.notes = new Array(); + } newItem.complete(); }, function() {Zotero.done();}, null); Zotero.wait(); @@ -10800,14 +14562,9 @@ 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', '', '2007-04-16 17:00:00', '1', '100', '4', 'ScienceDirect', 'Simon Kornblith', '^https?://www\.sciencedirect\.com[^/]*/science\?(?:.+\&|)_ob=(?:ArticleURL|ArticleListURL|PublicationURL)', +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)', 'function detectWeb(doc, url) { - var namespace = doc.documentElement.namespaceURI; - var nsResolver = namespace ? function(prefix) { - if (prefix == ''x'') return namespace; else return null; - } : null; - - if (doc.evaluate(''//img[contains(@src, "guest_user.gif")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ + if ((url.indexOf("_ob=DownloadURL") != -1) || doc.title == "ScienceDirect Login") { return false; } if(url.indexOf("_ob=ArticleURL") == -1) { @@ -10816,149 +14573,163 @@ REPLACE INTO translators VALUES ('b6d0a7a-d076-48ae-b2f0-b6de28b194e', '1.0.0b3. return "journalArticle"; } }', -'function handleRIS(text, PDFs) { - // load translator for RIS - var translator = Zotero.loadTranslator("import"); - translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); - translator.setString(text); - translator.setHandler("itemDone", function(obj, item) { - if(item.attachments[0]) { - item.attachments[0].title = "ScienceDirect Snapshot"; - item.attachments[0].mimeType = "text/html"; - } - - var pdf = PDFs.shift(); - if(pdf) { - item.attachments.push({ - title:"ScienceDirect Full Text PDF", - url:pdf, mimeType:"application/pdf" - }); - } - - if(item.notes[0]) { - item.abstractNote = item.notes[0].note; - item.notes = new Array(); - } - item.complete(); - }); - translator.translate(); - Zotero.done(); -} - -function doWeb(doc, url) { +'function doWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { if (prefix == ''x'') return namespace; else return null; } : null; - if(url.indexOf("_ob=ArticleURL") == -1) { - // search page - var items = new Array(); - var links = new Array(); - - var isPublication = url.indexOf("_ob=PublicationURL") != -1; - if(isPublication) { - var xpath = ''//table[@class="txt"][@id="pubBody"]//tr''; - } else { - var xpath = ''//table[@class="tableResults-T"]//tr''; - } - - var arts = new Object(); - - var tableRows = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); - // Go through table rows - var tableRow; - var i = 0; - while(tableRow = tableRows.iterateNext()) { - i++; - - var checkboxes = tableRow.getElementsByTagName("input"); - var title = doc.evaluate(''.//span[@class="bf"]'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - - if(checkboxes[0] && title) { - var index = checkboxes[0].value; - items[index] = Zotero.Utilities.cleanString(title.textContent); - - var link = doc.evaluate(''.//a[substring(text(), 1, 3) = "PDF"]'', - tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - if(link) { - links[index] = link.href; - } - } - } - - items = Zotero.selectItems(items); - if(!items) return true; - - var PDFs = new Array(); - - var itemCount = 0; - var itemList = ""; - for(var i in items) { - itemList += "&art="+i; - PDFs.push(links[i]); - itemCount++; - } - - var count = doc.evaluate(''//input[@name="count"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; - - var md5 = doc.getElementsByName("md5")[1].value; - if(isPublication) { - var tockey = escape(doc.evaluate(''//input[@name="_tockey"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value); - var chunk = doc.evaluate(''//input[@name="chunk"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; - var pubType = doc.evaluate(''//input[@name="_pubType"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; - var cdi = url.match(/_cdi=([^&]+)/); - var getURL = "http://www.sciencedirect.com/science?_ob=PublicationURL&_method=list&_tockey="+tockey+"&_auth=y&_version=1&refSource=toc&_pubType="+pubType+"&_cdi="+cdi[1]+"&md5="+md5+"&chunk="+chunk+"&view=c&export.x=21&export.y=14&count="+count+itemList; - } else { - var st = doc.evaluate(''//input[@name="_st"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; - var chunk = doc.evaluate(''//input[@name="_chunk"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; - var count = doc.evaluate(''//input[@name="count"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; - var alid = doc.evaluate(''//input[@name="_ArticleListID"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; - var getURL = "http://www.sciencedirect.com/science?_ob=ArticleListURL&_method=tag&refSource=search&_st="+st+"&count="+count+"&_chunk="+chunk+"&NEXT_LIST=1&view=c&md5="+md5+"&_ArticleListID="+alid+"&export.x=21&export.y=6&sort=d"+itemList; - } - - Zotero.Utilities.HTTP.doGet(getURL, function(text) { - var md5 = text.match(/<input type=hidden name=md5 value=([^>]+)>/); - var acct = url.match(/_acct=([^&]+)/); - var userid = url.match(/_userid=([^&]+)/); - var subid = text.match(/<input type=hidden name=_subId value=([^>]+)>/); - if(isPublication) { - var post = "_ob=DownloadURL&_method=finish&_acct="+acct[1]+"&_userid="+userid[1]+"&_subId="+subid[1]+"&_tockey="+tockey+"&count="+itemCount+"&md5="+md5[1]+"&JAVASCRIPT_ON=Y&format=cite-abs&citation-type=RIS&x=12&y=15"; + if (!doc.evaluate(''//img[contains(@src, "guest_user.gif")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + var articles = new Array(); + if(detectWeb(doc, url) == "multiple") { + //search page + var items = new Object(); + var xpath; + if (url.indexOf("_ob=PublicationURL") != -1) { + // not sure if this case still arises. may need to be fixed at some point + xpath = ''//table[@class="txt"]/tbody/tr/td[2]''; } else { - var post = "_ob=DownloadURL&_method=finish&_acct="+acct[1]+"&_userid="+userid[1]+"&_ArticleListID="+alid+"&_subId="+subid[1]+"&count="+itemCount+"&md5="+md5[1]+"&JAVASCRIPT_ON=Y&limiter=selected&format=cite-abs&citation-type=RIS"; + xpath = ''//div[@class="font3"][@id="bodyMainResults"]/table/tbody/tr/td[2]/a''; } - Zotero.Utilities.HTTP.doPost("http://www.sciencedirect.com/science", post, function(text) { handleRIS(text, PDFs) }); - }); + var rows = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + var next_row; + while (next_row = rows.iterateNext()) { + var title = next_row.textContent; + var link = next_row.href; + items[link] = title; + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(i); + } + } else { + articles = [url]; + } + Zotero.Utilities.processDocuments(articles, function(newDoc) { + var doi = newDoc.evaluate(''//div[@class="articleHeaderInner"][@id="articleHeader"]/a[contains(text(), "doi")]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.substr(4); + var PDF = newDoc.evaluate(''//a[@class="noul" and div/div[contains(text(), "PDF")]]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; + var url = newDoc.location.href; + var get = newDoc.evaluate(''//a[img[contains(@src, "exportarticle_a.gif")]]'', newDoc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; + Zotero.Utilities.HTTP.doGet(get, function(text) { + var md5 = text.match(/<input type=hidden name=md5 value=([^>]+)>/)[1]; + var acct = text.match(/<input type=hidden name=_acct value=([^>]+)>/)[1]; + var userid = text.match(/<input type=hidden name=_userid value=([^>]+)>/)[1]; + var uoikey = text.match(/<input type=hidden name=_uoikey value=([^>]+)>/)[1]; + if (text.match(/<input type=hidden name=_ArticleListID value=([^>]+)>/)) { + var alid = text.match(/<input type=hidden name=_ArticleListID value=([^>]+)>/)[1]; + } + if (alid) { + var docID = "_ArticleListID=" + alid + "&_uoikey=" + uoikey; + } else { + var docID = "_uoikey=" + uoikey; + } + var post = "_ob=DownloadURL&_method=finish&_acct=" + acct + "&_userid=" + userid + "&_docType=FLA&" + docID + "&md5=" + md5 + "&count=1&JAVASCRIPT_ON=Y&format=cite-abs&citation-type=RIS&Export=Export&x=26&y=17"; + var baseurl = url.match(/https?:\/\/[^/]+\//)[0]; + Zotero.Utilities.HTTP.doPost(baseurl + ''science'', post, function(text) { + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + item.attachments = [ + {url:url, title:"ScienceDirect Snapshot", mimeType:"text/html"}, + {url:PDF, title:"ScienceDirect Full Text PDF", mimeType:"application/pdf"} + ]; + + + if(item.notes[0]) { + item.abstractNote = item.notes[0].note; + item.notes = new Array(); + } + if (doi) { + item.DOI = doi; + } + item.complete(); + }); + translator.translate(); + }); + Zotero.wait(); + }); + }, function() {Zotero.done;}); } else { - var get = doc.evaluate(''//a[img[contains(@alt, "Export citation")]]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; - - var PDFs = []; - - var link = doc.evaluate(''//a[substring(text(), 1, 3) = "PDF"]'', - doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - if(link) { - var PDFs = [link.href]; - } - - Zotero.Utilities.HTTP.doGet(get, function(text) { - var md5 = text.match(/<input type=hidden name=md5 value=([^>]+)>/); - var acct = url.match(/_acct=([^&]+)/); - var userid = url.match(/_userid=([^&]+)/); - var alid = url.match(/_alid=([0-9]+)/); - var udi = url.match(/_udi=([^&]+)/); - var uoikey = text.match(/<input type=hidden name=_uoikey value=([^>]+)>/); - if(alid) { - var docIdentifier = "_ArticleListID="+alid[1]+"&_uoikey="+uoikey[1]; + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + if (url.indexOf("_ob=PublicationURL") != -1) { + xpath = ''//table[@class="txt"]/tbody/tr[1]/td[2]''; + // not sure whether this case still exists } else { - var docIdentifier = "_uoikey="+uoikey[1]; + xpath = ''//div[@class="font3"][@id="bodyMainResults"]/table/tbody/tr/td[2]/a''; } - - var post = "_ob=DownloadURL&_method=finish&_acct="+acct[1]+"&_userid="+userid[1]+"&_docType=FLA&"+docIdentifier+"&md5="+md5[1]+"&JAVASCRIPT_ON=Y&format=cite-abs&citation-type=RIS&x=26&y=17"; - Zotero.Utilities.HTTP.doPost("http://www.sciencedirect.com/science", post, function(text) { handleRIS(text, PDFs) }); - }); + var rows = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); + var next_row; + while (next_row = rows.iterateNext()) { + var title = next_row.textContent; + var link = next_row.href; + items[link] = title; + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(i); + } + } else { + articles = [url]; + } + Zotero.Utilities.processDocuments(articles, function(doc2) { + var item = new Zotero.Item("journalArticle"); + item.repository = "ScienceDirect"; + item.url = doc2.location.href; + 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]; + } + 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); + var ab; + item.abstractNote = "" + while (ab = absx.iterateNext()) { + item.abstractNote += Zotero.Utilities.trimInternal(ab.textContent) + " "; + } + if (item.abstractNote.substr(0, 7) == "Summary") { + item.abstractNote = item.abstractNote.substr(9); + } + var tagpath = ''//div[@class="articleText"]/p[strong[starts-with(text(), "Keywords:")]]''; + if (doc2.evaluate(tagpath, doc2, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + if (doc2.evaluate(tagpath, doc2, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.split(":")[1]) { + var tags = doc2.evaluate(tagpath, doc2, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.split(":")[1].split(";"); + for (var i in tags) { + item.tags.push(Zotero.Utilities.trimInternal(tags[i])); + } + } + } + item.attachments.push({url:doc2.location.href, title:"ScienceDirect Snapshot", mimeType:"text/html"}); + Zotero.Utilities.HTTP.doGet(item.url, function(text) { + var aus = text.match(/<strong>\s+<p>.*<\/strong>/)[0].replace(/<sup>/g, "$").replace(/<\/sup>/g, "$"); + aus = aus.replace(/\$[^$]*\$/g, ""); + aus = aus.replace(/<a[^>]*>/g, "$").replace(/<\/a[^>]*>/g, "$"); + aus = aus.replace(/\$[^$]*\$/g, ""); + aus = Zotero.Utilities.cleanTags(aus); + aus = aus.split(/(,|and)/); + for (var a in aus) { + if (aus[a] != "," && aus[a] != "and" && aus[a].match(/\w+/)) { + item.creators.push(Zotero.Utilities.cleanAuthor(Zotero.Utilities.trimInternal(aus[a]), "author")); + } + } + item.complete(); + }); + }, function() {Zotero.done;}); + Zotero.wait(); } - - Zotero.wait(); }'); REPLACE INTO translators VALUES ('19643c25-a4b2-480d-91b7-4e0b761fb6ad', '1.0.0b3.r1', '', '2007-03-16 03:00:00', '1', '100', '4', 'ScientificCommons', 'Sean Takats', '^http://(?:en|de|www)\.scientificcommons\.org', @@ -11102,32 +14873,59 @@ REPLACE INTO translators VALUES ('d75381ee-7d8d-4a3b-a595-b9190a06f43f', '1.0.0b Zotero.wait(); }'); -REPLACE INTO translators VALUES ('2c310a37-a4dd-48d2-82c9-bd29c53c1c76', '1.0.0b3.r1', '', '2007-04-05 19:45:00', '0', '100', '4', 'PROLA', 'Eugeniy Mikhailov', '^https?://(?:www\.)?prola.aps.org/(searchabstract|abstract)/', +REPLACE INTO translators VALUES ('2c310a37-a4dd-48d2-82c9-bd29c53c1c76', '1.0.0b3.r1', '', '2008-04-12 18:40:00', '1', '100', '4', 'PROLA', 'Eugeniy Mikhailov and Michael Berkowitz', 'https?://(?:www\.)?prola.aps.org/(toc|searchabstract|abstract)/', 'function detectWeb(doc, url) { - return "journalArticle"; + if (url.indexOf("toc") != -1) { + return "multiple"; + } else { + return "journalArticle"; + } } ', 'function doWeb(doc, url) { - var urlRIS = url; - // so far several more or less identical url possible - // one is with "abstract" other with "searchabstract" - urlRIS = urlRIS.replace("searchabstract","export"); - urlRIS = urlRIS.replace("abstract","export"); - var post = "type=ris"; - - Zotero.Utilities.HTTP.doPost(urlRIS, post, function(text) { - // load translator for RIS - var translator = Zotero.loadTranslator("import"); - translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); - Zotero.debug(text); - translator.setString(text); - translator.translate(); - - Zotero.done(); - }); + var arts = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = Zotero.Utilities.getItemArray(doc, doc, "(abstract|abstractsearch)"); + items = Zotero.selectItems(items); + for (var i in items) { + arts.push(i); + } + } else { + arts = [url]; + } + + Zotero.Utilities.processDocuments(arts, function(newDoc) { + Zotero.debug(newDoc.title); + var abs = Zotero.Utilities.trimInternal(newDoc.evaluate(''//div[contains(@class, "aps-abstractbox")]/p'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + var urlRIS = newDoc.location.href; + // so far several more or less identical url possible + // one is with "abstract" other with "searchabstract" + urlRIS = urlRIS.replace(/(searchabstract|abstract)/,"export"); + var post = "type=ris"; + var snapurl = newDoc.location.href; + var pdfurl = snapurl.replace(/(searchabstract|abstract)/, "pdf"); + Zotero.Utilities.HTTP.doPost(urlRIS, post, function(text) { + // load translator for RIS + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + if (item.itemID) { + item.DOI = item.itemID; + } + item.attachments = [ + {url:snapurl, title:"PROLA Snapshot", mimeType:"text/html"}, + {url:pdfurl, title:"PROLA Full Text PDF", mimeType:"application/pdf"} + ]; + item.abstractNote = abs; + item.complete(); + }); + translator.translate(); + }); + }, function() {Zotero.done;}); Zotero.wait(); }'); -REPLACE INTO translators VALUES ('cde4428-5434-437f-9cd9-2281d14dbf9', '1.0.0b3.r1', '', '2008-01-29 19:00:00', '1', '100', '4', 'Ovid', 'Simon Kornblith and Michael Berkowitz', '/(gw2|spa)/ovidweb\.cgi', +REPLACE INTO translators VALUES ('cde4428-5434-437f-9cd9-2281d14dbf9', '1.0.0b3.r1', '', '2008-04-23 09:45:00', '1', '100', '4', 'Ovid', 'Simon Kornblith and Michael Berkowitz', '/(gw2|spa|spb)/ovidweb\.cgi', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -11197,8 +14995,13 @@ function doWeb(doc, url) { post += "&R="+id; } - post += "&SELECT="+doc.evaluate(''.//input[@name="SELECT"]'', doc, nsResolver, XPathResult.ANY_TYPE, - null).iterateNext().value; + if (detectWeb(doc, url) == "multiple") { + var selectvar = doc.evaluate(''.//input[@name="SELECT"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var nextselect = selectvar.iterateNext(); + post += "&SELECT="+ selectvar.iterateNext().value; + } else { + post += "&SELECT=" + doc.evaluate(''.//input[@name="SELECT"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; + } post += "&CitMan="+doc.evaluate(''.//input[@name="CitMan"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().value; post += "&CitManPrev="+doc.evaluate(''.//input[@name="CitManPrev"]'', doc, nsResolver, XPathResult.ANY_TYPE, @@ -11222,7 +15025,6 @@ function doWeb(doc, url) { } else if(lines[i].substr(2, 4) == " - " && haveStarted) { var fieldCode = lines[i].substr(0, 2); var fieldContent = Zotero.Utilities.cleanString(lines[i].substr(6)); - if(fieldCode == "TI") { newItem.title = fieldContent.replace(/\. \[\w+\]$/, ""); } else if(fieldCode == "AU") { @@ -11240,18 +15042,21 @@ function doWeb(doc, url) { newItem.creators.push({lastName:names[0], isInstitution:true, creatorType:"author"}); } } else if(fieldCode == "SO") { - var m = fieldContent.split("."); - newItem.publicationTitle = Zotero.Utilities.cleanString(m[0]); - if (m[1].match(/\d+\(\d+\)/)) { - var n = m[1].match(/(\d+)\((\d+)\)/); - Zotero.debug(n); - newItem.volume = n[1]; - newItem.issue = n[2]; + if (fieldContent.match(/\d{4}/)) { + newItem.date = fieldContent.match(/\d{4}/)[0]; + } + if (fieldContent.match(/(\d+)\((\d+)\)/)) { + var voliss = fieldContent.match(/(\d+)\((\d+)\)/); + newItem.volume = voliss[1]; + newItem.issue = voliss[2]; + } + if (fieldContent.match(/\d+\-\d+/)) + newItem.pages = fieldContent.match(/\d+\-\d+/)[0]; + if (fieldContent.match(/[J|j]ournal/)) { + newItem.publicationTitle = fieldContent.match(/[J|j]ournal[-\s\w]+/)[0]; } else { - newItem.volume = m[1].match(/\d+/)[0]; + newItem.publicationTitle = Zotero.Utilities.trimInternal(fieldContent.split(/(\.|;)/)[0]); } - newItem.date = senCase(Zotero.Utilities.cleanString(m[2])); - newItem.pages = Zotero.Utilities.cleanString(m[3]); } else if(fieldCode == "SB") { newItem.tags.push(Zotero.Utilities.superCleanString(fieldContent)); } else if(fieldCode == "KW") { @@ -11265,115 +15070,95 @@ function doWeb(doc, url) { } } } - - // last item is complete - if(haveStarted) { - newItem.complete(); - } - }); - Zotero.wait(); -}'); - -REPLACE INTO translators VALUES ('cb48083-4d9-4ed-ac95-2e93dceea0ec', '1.0.0b3.r1', '', '2007-11-27 03:00:00', '1', '100', '4', 'Blackwell Synergy', 'Simon Kornblith', '^https?://www\.blackwell-synergy\.com[^/]*/(?:action/doSearch|doi/|links/doi/)', -'function detectWeb(doc, url) { - if(url.indexOf("doSearch") != -1) { - return "multiple"; - } else { - return "journalArticle"; - } -}', -'function doWeb(doc, url) { - var namespace = doc.documentElement.namespaceURI; - var nsResolver = namespace ? function(prefix) { - if (prefix == ''x'') return namespace; else return null; - } : null; - - var post = ""; - - var fulltext = new Object(); - - if(url.indexOf("doSearch") != -1) { - var items = new Array(); - var links = new Array(); - - var tableRows = doc.evaluate(''//div[@class="toc_item"]'', doc, - nsResolver, XPathResult.ANY_TYPE, null); - var tableRow; - // Go through table rows - while(tableRow = tableRows.iterateNext()) { - var id = doc.evaluate(''.//input[@name="doi"]'', tableRow, nsResolver, XPathResult.ANY_TYPE, - null).iterateNext().value; - items[id] = Zotero.Utilities.cleanString(doc.evaluate(''.//label'', tableRow, - nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); - } - - var items = Zotero.selectItems(items); - if(!items) return true; - - // find all fulltext links so we can determine where we can scrape the fulltext article - var fulltextLinks = doc.evaluate(''//a[img[@alt="Full Text Article"]]'', doc, - nsResolver, XPathResult.ANY_TYPE, null); - var fulltextLink; - while(fulltextLink = fulltextLinks.iterateNext()) { - links.push(fulltextLink.href.toString()); - } - - for(var i in items) { - post += "doi="+encodeURIComponent(i)+"&"; - - // check for fulltext links - for each(var link in links) { - if(link.indexOf(i) != -1) { - fulltext[i] = true; - break; - } - } - } + + // last item is complete + if(haveStarted) { + newItem.complete(); + } + }); + Zotero.wait(); +}'); + +REPLACE INTO translators VALUES ('cb48083-4d9-4ed-ac95-2e93dceea0ec', '1.0.0b3.r1', '', '2008-04-28 17:50:00', '1', '100', '4', 'Blackwell Synergy', 'Michael Berkowitz', 'https?://www\.blackwell-synergy\.com[^/]*/(?:action/doSearch|doi/|links/doi/)', +'function detectWeb(doc, url) { + if(url.indexOf("doSearch") != -1) { + return "multiple"; } else { - var m = url.match(/https?:\/\/[^\/]+\/doi\/[^\/]+\/([^\?]+)(\?|$)/); - if (m) { - var doi = m[1]; + return "journalArticle"; + } +}', +'function titleCase(str) { + var skipWords = ["but", "or", "yet", "so", "for", "and", "nor", "a", "an", "the", "at", "by", "from", "in", "into", "of", "on", "to", "with", "up", "down", "as"]; + var words = str.toLowerCase().split(/\s+/); + var newstr = ""; + for each (var word in words) { + if (skipWords.indexOf(word.replace(/[^a-zA-Z]+/, "")) != -1) { + newstr += " " + word; + } else if (word.indexOf("-") != -1) { + newword = word.split("-"); + newstr += " " + newword[0][0].toUpperCase() + newword[0].substr(1) + "-" + newword[1][0].toUpperCase() + newword[1].substr(1); } else { - m = url.match(/https?:\/\/[^\/]+\/links\/doi\/([^\?]+)(\?|$)/); - var doi = m[1]; + newstr += " " + word[0].toUpperCase() + word.substr(1); } - post += "doi="+encodeURIComponent(doi)+"&"; - - if(url.indexOf("doi/full") != -1 || - doc.evaluate(''//img[@alt="Full Text Article"]'', doc, nsResolver, XPathResult.ANY_TYPE, - null).iterateNext()) { - fulltext[doi] = true; + } + return Zotero.Utilities.trimInternal(newstr); +} + +function doWeb(doc, url) { + var host = doc.location.host; + var articles = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object(); + var rows = doc.evaluate(''//div[@class="toc_item"]'', doc, null, XPathResult.ANY_TYPE, null); + var row; + while (row = rows.iterateNext()) { + var title = Zotero.Utilities.trimInternal(doc.evaluate(''.//label'', row, null, XPathResult.ANY_TYPE, null).iterateNext().textContent); + var id = doc.evaluate(''.//input[@name="doi"]'', row, null, XPathResult.ANY_TYPE, null).iterateNext().value; + items[id] = title; + } + items = Zotero.selectItems(items); + for (var i in items) { + articles.push(i); } + } else { + articles = [decodeURIComponent(url).match(/doi\/(abs\/)?([^\?]+)(\?|$)/)[2]]; } - post += "include=abs&format=refman&direct=on&submit=Download+references"; - - Zotero.Utilities.HTTP.doPost("http://www.blackwell-synergy.com/action/downloadCitation", post, function(text) { - // load translator for RIS + var post = ""; + for each (var doi in articles) { + post += "doi=" + encodeURIComponent(doi) + "&" + } + post += "include=abs&format=refman&submit=Download+references"; + Zotero.Utilities.HTTP.doPost(''http://www.blackwell-synergy.com/action/downloadCitation'', post, function(text) { + text = text.replace(/(Y1\s+\-\s+)(\d{4}\/\d{2}).*\n/, "$1$2\n"); var translator = Zotero.loadTranslator("import"); translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); translator.setString(text); - translator.setHandler("itemDone", function(obj, item) { + translator.setHandler("itemDone", function(obj, item) { + item.DOI = Zotero.Utilities.trimInternal(item.notes[0][''note''].substr(4)); + item.notes = new Array(); item.attachments = [ {url:item.url, title:"Blackwell Synergy Snapshot", mimeType:"text/html"}, - {url:item.url.replace("/doi/abs", "/doi/pdf"), title:"Blackwell Synergy Full Text PDF", mimeType:"application/pdf"} + {url:item.url.replace(/\/\/[^/]*/, "//" + host).replace("/doi/abs", "/doi/pdf"), title:"Blackwell Synergy Full Text PDF", mimeType:"application/pdf"} ]; // use fulltext if possible - if(fulltext[item.DOI.substr(4)]) { - item.attachments[0].url = item.attachments[0].url.replace("/doi/abs", "/doi/full"); + var oldCreators = item.creators; + item.creators = [] + for each (var author in oldCreators) { + if (author["lastName"] != "") { + item.creators.push({firstName:titleCase(author.firstName), lastName:titleCase(author.lastName), creatorType:"author"}); + } } - + item.title = titleCase(item.title); item.complete(); }); translator.translate(); Zotero.done(); }); - - Zotero.wait(); }'); -REPLACE INTO translators VALUES ('df966c80-c199-4329-ab02-fa410c8eb6dc', '1.0.0b3.r1', '', '2008-01-23 20:00:00', '1', '100', '4', 'University of Chicago', 'Sean Takats', 'https?://[^/]*journals\.uchicago\.edu[^/]*/(?:doi/abs|doi/full|toc)', +REPLACE INTO translators VALUES ('df966c80-c199-4329-ab02-fa410c8eb6dc', '1.0.0b3.r1', '', '2008-04-28 17:50:00', '1', '100', '4', 'University of Chicago', 'Sean Takats', 'https?://[^/]*journals\.uchicago\.edu[^/]*/(?:doi/abs|doi/full|toc)', 'function detectWeb(doc, url) { if(url.indexOf("toc") != -1) { return "multiple"; @@ -11437,7 +15222,7 @@ REPLACE INTO translators VALUES ('df966c80-c199-4329-ab02-fa410c8eb6dc', '1.0.0b var doi = m[1]; } post += "doi="+encodeURIComponent(doi)+"&"; - + if(url.indexOf("doi/full") != -1 || doc.evaluate(''//img[@alt="Full Text Article"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { @@ -11446,7 +15231,6 @@ REPLACE INTO translators VALUES ('df966c80-c199-4329-ab02-fa410c8eb6dc', '1.0.0b } post += "include=cit&downloadFileName=deadbeef&format=refman&direct=on&submit=Download+article+citation+data"; - Zotero.Utilities.HTTP.doPost("http://www.journals.uchicago.edu/action/downloadCitation", post, function(text) { // load translator for RIS var translator = Zotero.loadTranslator("import"); @@ -11457,8 +15241,10 @@ REPLACE INTO translators VALUES ('df966c80-c199-4329-ab02-fa410c8eb6dc', '1.0.0b {url:item.url, title:"University of Chicago Journals Snapshot", mimeType:"text/html"}, {url:item.url.replace("/doi/abs", "/doi/pdf"), title:"University of Chicago Full Text PDF", mimeType:"application/pdf"} ]; + if (item.notes[0][''note'']) item.DOI = Zotero.Utilities.trimInternal(item.notes[0][''note''].substr(4)); + item.notes = new Array(); // use fulltext if possible - if(fulltext[item.DOI.substr(4)]) { + if(fulltext[item.DOI]) { item.attachments[0].url = item.attachments[0].url.replace("/doi/abs", "/doi/full"); } @@ -11472,22 +15258,25 @@ REPLACE INTO translators VALUES ('df966c80-c199-4329-ab02-fa410c8eb6dc', '1.0.0b Zotero.wait(); }'); -REPLACE INTO translators VALUES ('f8765470-5ace-4a31-b4bd-4327b960ccd', '1.0.0b3.r1', '', '2007-03-24 22:20:00', 1, 100, 4, 'SpringerLink', 'Simon Kornblith', '^https?://(?:www\.springerlink\.com|springerlink.metapress.com)[^/]*/content/', +REPLACE INTO translators VALUES ('f8765470-5ace-4a31-b4bd-4327b960ccd', '1.0.0b3.r1', '', '2008-04-12 18:40:00', '1', '100', '4', 'SpringerLink', 'Simon Kornblith and Michael Berkowitz', 'https?://(www\.)*springerlink\.com|springerlink.metapress.com[^/]*/content/', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { if (prefix == ''x'') return namespace; else return null; } : null; - if(doc.title == "SpringerLink - All Search Results" || doc.title == "SpringerLink - Journal Issue") { + if((doc.title == "SpringerLink - All Search Results") || (doc.title == "SpringerLink - Journal Issue")) { return "multiple"; } else if(doc.title == "SpringerLink - Book Chapter") { return "bookSection"; - } else if(doc.evaluate(''//a[text() = "RIS"]'', - doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + } else if (doc.title == "SpringerLink - Book") { + return "book"; + } else if (doc.title == "SpringerLink - Journal Article") { + return "journalArticle"; + } else if(doc.evaluate(''//a[text() = "RIS"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { return "journalArticle"; } -}', +}', 'function doWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -11497,9 +15286,17 @@ REPLACE INTO translators VALUES ('f8765470-5ace-4a31-b4bd-4327b960ccd', '1.0.0b3 var m = url.match(/https?:\/\/[^\/]+/); var host = m[0]; - if(doc.title == "SpringerLink - All Search Results" || doc.title == "SpringerLink - Journal Issue") { - var items = Zotero.Utilities.getItemArray(doc, doc, ''/content/[^/]+/\\?p=[^&]+&pi=''); - + if(detectWeb(doc, url) == "multiple") { + var items = new Object(); + if (doc.title == "SpringerLink - Journal Issue") { + var items = Zotero.Utilities.getItemArray(doc, doc.getElementsByTagName("table")[8], ''/content/[^/]+/\\?p=[^&]+&pi=''); + } else { + var results = doc.evaluate(''//div[@class="listItemName"]/a'', doc, nsResolver, XPathResult.ANY_TYPE, null); + var result; + while (result = results.iterateNext()) { + items[result.href] = Zotero.Utilities.trimInternal(result.textContent); + } + } items = Zotero.selectItems(items); if(!items) return true; @@ -11517,50 +15314,51 @@ REPLACE INTO translators VALUES ('f8765470-5ace-4a31-b4bd-4327b960ccd', '1.0.0b3 var m = item.match(/\/content\/([^/]+)/); RIS.push(host+"/export.mpx?code="+m[1]+"&mode=ris"); } - Zotero.Utilities.HTTP.doGet(RIS, function(text) { // load translator for RIS + text = text.replace("CHAPTER", "CHAP"); var translator = Zotero.loadTranslator("import"); translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); translator.setString(text); translator.setHandler("itemDone", function(obj, item) { var url = urls.shift(); - var m = url.match(/https?:\/\/[^\/]+\/content\/[^\/]+\//); + var m = url.match(/https?:\/\/[^\/]+\/content\/[^\/]+\/?/); item.attachments = [ {url:url, title:"SpringerLink Snapshot", mimeType:"text/html"}, {url:m[0]+"fulltext.pdf", title:"SpringerLink Full Text PDF", mimeType:"application/pdf"} ]; - // fix incorrect authors var oldCreators = item.creators; item.creators = new Array(); - for each(var creator in oldCreators) { - item.creators.push(Zotero.Utilities.cleanAuthor(creator.lastName, "author")); + for each (var creator in oldCreators) { + if (creator[''lastName''] + creator[''firstName''] != "") { + var fName = creator[''firstName''] ? creator[''firstName''] : ""; + item.creators.push({firstName:Zotero.Utilities.trimInternal(fName), lastName:creator[''lastName''], creatorType:"author"}); + } } // fix incorrect chapters - Zotero.debug(item); - if(item.publicationTitle && item.itemType == "book") item.itemType = "bookSection"; + if(item.publicationTitle && item.itemType == "book") item.title = item.publicationTitle; // fix "V" in volume if(item.volume) { item.volume = item.volume.replace("V", ""); } - item.complete(); }); translator.translate(); }, function() { Zotero.done() }); - Zotero.wait(); }'); -REPLACE INTO translators VALUES ('6614a99-479a-4524-8e30-686e4d66663e', '1.0.0b3.r1', '', '2007-03-24 22:20:00', 1, 100, 4, 'Nature', 'Simon Kornblith', '^https?://www\.nature\.com[^/]*/(?:[^/]+/journal/v[^/]+/n[^/]+/(?:(?:full|abs)/.+\.html|index.html)|search/executeSearch)', +REPLACE INTO translators VALUES ('6614a99-479a-4524-8e30-686e4d66663e', '1.0.0b3.r1', '', '2008-03-26 03:00:00', '1', '100', '4', 'Nature', 'Simon Kornblith', 'https?://www\.nature\.com[^/]*/(?:[^/]+/journal/v[^/]+/n[^/]+/(?:(?:full|abs)/.+\.html|index.html)|search/executeSearch)', 'function detectWeb(doc, url) { var articleRe = /(https?:\/\/[^\/]+\/[^\/]+\/journal\/v[^\/]+\/n[^\/]+\/)(full|abs)(\/.+\.)html/; - if(articleRe.test(url)) { - return "journalArticle"; + if (articleRe.test(url)) { + if (doc.evaluate(''//a[contains(@href, ".ris")]'', doc, null, XPathResult.ANY_TYPE, null).iterateNext()) { + return "journalArticle"; + } else { return false; } } else { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -11578,7 +15376,7 @@ REPLACE INTO translators VALUES ('6614a99-479a-4524-8e30-686e4d66663e', '1.0.0b3 } return false; -}', +}', 'function doWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -11626,7 +15424,6 @@ REPLACE INTO translators VALUES ('6614a99-479a-4524-8e30-686e4d66663e', '1.0.0b3 Zotero.Utilities.HTTP.doGet(RIS, function(text) { var url = urls.shift(); - // load translator for RIS var translator = Zotero.loadTranslator("import"); translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); @@ -11639,7 +15436,7 @@ REPLACE INTO translators VALUES ('6614a99-479a-4524-8e30-686e4d66663e', '1.0.0b3 ] item.notes = new Array(); - item.date = item.date.replace("print ", ""); + if (item.date) item.date = item.date.replace("print ", ""); item.complete(); }); @@ -11649,7 +15446,7 @@ REPLACE INTO translators VALUES ('6614a99-479a-4524-8e30-686e4d66663e', '1.0.0b3 Zotero.wait(); }'); -REPLACE INTO translators VALUES ('92d4ed84-8d0-4d3c-941f-d4b9124cfbb', '1.0.0b3.r1', '', '2008-01-29 19:00:00', '1', '100', '4', 'IEEE Xplore', 'Simon Kornblith and Michael Berkowitz', 'https?://ieeexplore.ieee.org[^/]*/(?:[^\?]+\?(?:|.*&)arnumber=[0-9]+|search/(?:searchresult.jsp|selected.jsp))', +REPLACE INTO translators VALUES ('92d4ed84-8d0-4d3c-941f-d4b9124cfbb', '1.0.0b3.r1', '', '2008-02-27 15:00:00', '1', '100', '4', 'IEEE Xplore', 'Simon Kornblith and Michael Berkowitz', 'https?://[^/]*ieeexplore.ieee.org[^/]*/(?:[^\?]+\?(?:|.*&)arnumber=[0-9]+|search/(?:searchresult.jsp|selected.jsp))', 'function detectWeb(doc, url) { var articleRe = /[?&]arnumber=([0-9]+)/; var m = articleRe.exec(url); @@ -11705,8 +15502,7 @@ REPLACE INTO translators VALUES ('92d4ed84-8d0-4d3c-941f-d4b9124cfbb', '1.0.0b3. var arnumber = ""; for each(var url in urls) { var m = articleRe.exec(url); - arnumber += "%3Carnumber%3E"+m[1]+"%3C%2Farnumber%3E"; - var newurls = [url]; + arnumber = "%3Carnumber%3E"+m[1]+"%3C%2Farnumber%3E"; var post = "dlSelect=cite_abs&fileFormate=ris&arnumber="+arnumber+"&x=5&y=10"; var isRe = /[?&]isnumber=([0-9]+)/; var puRe = /[?&]punumber=([0-9]+)/; @@ -11717,11 +15513,9 @@ REPLACE INTO translators VALUES ('92d4ed84-8d0-4d3c-941f-d4b9124cfbb', '1.0.0b3. translator.setString(text); translator.setHandler("itemDone", function(obj, item) { var url = urls.shift(); - Zotero.debug(url); var is = isRe.exec(url); var pu = puRe.exec(url); var arnumber = articleRe.exec(url); - if(item.notes[0] && item.notes[0].note) { item.abstractNote = item.notes[0].note; item.notes = new Array(); @@ -11743,13 +15537,21 @@ REPLACE INTO translators VALUES ('92d4ed84-8d0-4d3c-941f-d4b9124cfbb', '1.0.0b3. } } item.creators = dupes; - + var newurls = [url]; Zotero.Utilities.processDocuments(newurls, function(newDoc) { var xpath = ''//p[@class="bodyCopyBlackLargeSpaced"]''; - item.DOI = newDoc.evaluate(xpath, newDoc, namespace, XPathResult.ANY_TYPE, null).iterateNext().textContent.match(/Identifier:\s+([^\n]*)\n/)[1]; + var textElmt = newDoc.evaluate(xpath, newDoc, namespace, XPathResult.ANY_TYPE, null).iterateNext(); + if (textElmt) { + var m = textElmt.textContent.match(/Identifier:\s+([^\n]*)\n/); + if (m){ + item.DOI = m[1]; + } + } var pdfpath = ''//td[2][@class="bodyCopyBlackLarge"]/a[@class="bodyCopy"][substring(text(), 1, 3) = "PDF"]''; - var pdfurl = newDoc.evaluate(pdfpath, newDoc, namespace, XPathResult.ANY_TYPE, null).iterateNext().href; - item.attachments = [{url:pdfurl, title:"IEEE Xplore Full Text PDF", mimeType:"application/pdf"}]; + var pdfurlElmt = newDoc.evaluate(pdfpath, newDoc, namespace, XPathResult.ANY_TYPE, null).iterateNext(); + if (pdfurlElmt) { + item.attachments = [{url:pdfurlElmt.href, title:"IEEE Xplore Full Text PDF", mimeType:"application/pdf"}]; + } item.complete(); }, function() {Zotero.done;}); }); @@ -11883,7 +15685,7 @@ REPLACE INTO translators VALUES ('7bdb79e-a47f-4e3d-b317-ccd5a0a74456', '1.0.0b3 Zotero.wait(); }'); -REPLACE INTO translators VALUES ('850f4c5f-71fb-4669-b7da-7fb7a95500ef', '1.0.0b3r1', '', '2008-01-10 19:00:00', '0', '100', '4', 'Cambridge Journals Online', 'Sean Takats', 'https?://[^/]*journals\.cambridge\.org[^/]*/action/(quickSearch|search|displayAbstract|displayFulltext|displayIssue)', +REPLACE INTO translators VALUES ('850f4c5f-71fb-4669-b7da-7fb7a95500ef', '1.0.0b3r1', '', '2008-04-29 16:00:00', '1', '100', '4', 'Cambridge Journals Online', 'Sean Takats and Michael Berkowitz', 'https?://[^/]*journals.cambridge.org[^/]*//?action/(quickSearch|search|displayAbstract|displayFulltext|displayIssue)', 'function detectWeb(doc, url) { var namespace=doc.documentElement.namespaceURI; var nsResolver=namespace?function(prefix) { @@ -11896,67 +15698,91 @@ REPLACE INTO translators VALUES ('850f4c5f-71fb-4669-b7da-7fb7a95500ef', '1.0.0b return "multiple"; } }', -'function doWeb(doc, url){ +'function titleCase(str) { + var skipWords = ["but", "or", "yet", "so", "for", "and", "nor", "a", "an", "the", "at", "by", "from", "in", "into", "of", "on", "to", "with", "up", "down", "as"]; + var words = str.toLowerCase().split(/\s+/); + var newstr = ""; + for (var i in words) { + if (i == 0) { + newstr += words[i][0].toUpperCase() + words[i].substr(1); + } else if (skipWords.indexOf(words[i].replace(/[^a-zA-Z]+/, "")) != -1) { + newstr += " " + words[i]; + } else if (words[i].indexOf("-") != -1) { + newword = words[i].split("-"); + newstr += " " + newword[0][0].toUpperCase() + newword[0].substr(1) + "-" + newword[1][0].toUpperCase() + newword[1].substr(1); + } else { + newstr += " " + words[i][0].toUpperCase() + words[i].substr(1); + } + } + return Zotero.Utilities.trimInternal(newstr); +} + +function doWeb(doc, url){ var namespace=doc.documentElement.namespaceURI; var nsResolver=namespace?function(prefix) { return (prefix=="x")?namespace:null; }:null; - var urlstring="http://journals.cambridge.org/action/exportCitation"; + var host = doc.location.host; + var urlstring="http://" + host + "/action/exportCitation"; var datastring="format=RIS&emailId=&Download=Download&componentIds="; - var xpath = ''//tr[td/input[@type="checkbox"][@name="toView"]]''; - if(doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()){ + var links = new Array(); + if(detectWeb(doc, url) == "multiple"){ + var xpath = ''//tr[td/input[@type="checkbox"][@name="toView"]]''; var tableRows = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null); var tableRow; var items=new Array(); while (tableRow = tableRows.iterateNext()){ var id = doc.evaluate(''./td/input[@type="checkbox"][@name="toView"]/@value'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); var title = doc.evaluate(''./td/h3'', tableRow, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - items[id.nodeValue]=Zotero.Utilities.trimInternal(title.textContent); + items[''http://'' + host + ''/action/displayAbstract?aid='' + id.nodeValue]=titleCase(title.textContent); } items=Zotero.selectItems(items); - for(var id in items) - Zotero.Utilities.HTTP.doPost(urlstring, datastring+id, function(text) { - var trans=Zotero.loadTranslator("import"); - trans.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); - trans.setString(text); - trans.setHandler("itemDone", function(obj, newItem){ - var pdfpath=''//tr[td/input/@value="''+id+''"]/td/ul/li/a[contains(text(), "PDF")]''; - var pdflink=doc.evaluate(pdfpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); - if (pdflink){ - newItem.attachments.push({url:pdflink.href, title:newItem.title, mimeType:"application/pdf"}); - } - newItem.complete(); - }); - trans.translate(); - Zotero.done(); - }); + for (var i in items) { + links.push(i); + } + } else { + links = [url]; } - xpath = ''//div[@id="close"]/a[text()="close"]''; - if(doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + Zotero.Utilities.processDocuments(links, function(doc) { + if (doc.evaluate(''//p[@class="AbsType"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + var abs = doc.evaluate(''//p[@class="AbsType"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; + } + if (doc.evaluate(''//p[@class="KeyWords"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + var kws = doc.evaluate(''//p[@class="KeyWords"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent.substr(11).split(''; ''); + } var pdfpath=''//div/ul/li/a[contains(text(), "PDF")]''; - var pdflink =doc.evaluate(pdfpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext() - Zotero.debug(url); + var pdflink =doc.evaluate(pdfpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href; idRe = /aid=([0-9]+)/ - var m = idRe.exec(url); + var m = idRe.exec(doc.location.href); var id = m[1]; - Zotero.Utilities.HTTP.doPost(urlstring, datastring+id, function(text) { - var trans=Zotero.loadTranslator("import"); - trans.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); - trans.setString(text); - trans.setHandler("itemDone", function(obj, newItem){ - if (pdflink){ - newItem.attachments.push({url:pdflink.href, title:newItem.title, mimeType:"application/pdf"}); + Zotero.Utilities.HTTP.doGet(urlstring + "?" + datastring+id, function(text) { + text = text.replace(/(^|\n)?([A-Z\d]{2})\s+\-\s+(\n)?/g, "\n$2 - $3"); + var translator = Zotero.loadTranslator("import"); + translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); + translator.setString(text); + translator.setHandler("itemDone", function(obj, item) { + item.attachments = [ + {url:url, title:"Cambridge Journals Snapshot", mimeType:"text/html"}, + {url:pdflink, title:"Cambridge Journals PDF", mimeType:"application/pdf"} + ]; + item.url = url; + item.title = titleCase(item.title); + var authors = item.creators; + item.creators = new Array(); + for each (var aut in authors) { + item.creators.push({firstName:titleCase(aut.firstName), lastName:titleCase(aut.lastName), creatorType:"author"}); } - newItem.complete(); + if (kws) item.tags = kws; + if (abs) item.abstractNote = Zotero.Utilities.trimInternal(abs); + item.complete(); }); - trans.translate(); - Zotero.done(); + translator.translate(); }); - } + }, function() {Zotero.done;}); Zotero.wait(); }'); -REPLACE INTO translators VALUES ('82174f4f-8c13-403b-99b2-affc7bc7769b', '1.0.0b3.r1', '', '2007-03-28 00:45:00', '1', '100', '4', 'Cambridge Scientific Abstracts', 'Simon Kornblith', 'https?://[^/]+/ids70/(?:results.php|view_record.php)', +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)', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -12004,7 +15830,7 @@ REPLACE INTO translators VALUES ('82174f4f-8c13-403b-99b2-affc7bc7769b', '1.0.0b var type = doc.evaluate(''//tr[td[1][@class="data_heading"]/text() = "Publication Type"]/td[3]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); if(type) { - type = Zotero.Utilities.cleanString(type.textContent); + type = Zotero.Utilities.trimInternal(type.textContent); if(type == "Book Chapter") { itemType = "bookSection"; } else if(type.substr(0, 4) == "Book") { @@ -12019,7 +15845,7 @@ REPLACE INTO translators VALUES ('82174f4f-8c13-403b-99b2-affc7bc7769b', '1.0.0b var newItem = new Zotero.Item(itemType); newItem.attachments = [{document:doc, title:"Cambridge Scientific Abstracts Snapshot"}]; - newItem.title = Zotero.Utilities.cleanString(doc.evaluate(''//tr/td[3][@class="data_emphasis"]'', doc, nsResolver, + newItem.title = Zotero.Utilities.trimInternal(doc.evaluate(''//tr/td[3][@class="data_emphasis"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent); var dataRows = doc.evaluate(''//tr[td[3][@class="data_content"]]'', doc, nsResolver, @@ -12027,9 +15853,8 @@ REPLACE INTO translators VALUES ('82174f4f-8c13-403b-99b2-affc7bc7769b', '1.0.0b var dataRow; while(dataRow = dataRows.iterateNext()) { var tds = dataRow.getElementsByTagName("td"); - var heading = Zotero.Utilities.cleanString(tds[0].textContent).toLowerCase(); - var content = Zotero.Utilities.cleanString(tds[2].textContent); - + var heading = Zotero.Utilities.trimInternal(tds[0].textContent).toLowerCase(); + var content = Zotero.Utilities.trimInternal(tds[2].textContent); if(heading == "database") { newItem.repository = "Cambridge Scientific Abstracts ("+content+")"; } else if(heading == "author") { @@ -12039,34 +15864,20 @@ REPLACE INTO translators VALUES ('82174f4f-8c13-403b-99b2-affc7bc7769b', '1.0.0b } } else if(heading == "source") { if(itemType == "journalArticle") { - var parts = content.split(","); + var parts = content.split(/(,|;)/); newItem.publicationTitle = parts.shift(); - - var last = parts.pop(); - var m = last.match(/([0-9]+)\(([0-9]+)\):([0-9]+)$/); - if(m) { - newItem.volume = m[1]; - newItem.issue = m[2]; - newItem.pages = m[3]; - } - - var volMatch = /vol\.? ([0-9]+)/i; - var noMatch = /no\.? ([0-9]+)/i; - var ppMatch = /pp\.? ([\-0-9]+)/i; - - for each(var part in parts) { - var m = volMatch.exec(part); - if(m) { - newItem.volume = m[1]; - } else { - var m = noMatch.exec(part); - if(m) { - newItem.issue = m[1]; - } else { - var m = ppMatch.exec(part); - if(m) { - newItem.pages = m[1]; - } + 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/)) { + newItem.pages = i.match(/[\d\-]+/)[0]; + } else if (i.match(/no?/)) { + newItem.issue = i.match(/\d+/)[0]; + } else if (i.match(/\d{4}/)) { + newItem.date = Zotero.Utilities.trimInternal(i); } } } @@ -12148,7 +15959,7 @@ function doWeb(doc, url) { } }'); -REPLACE INTO translators VALUES ('e78d20f7-488-4023-831-dfe39679f3f', '1.0.0b3.r1', '', '2008-01-10 09:45: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-03-04 20:00:00', '1', '100', '4', 'ACM', 'Simon Kornblith', '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\\?[^#]+$''); @@ -12212,7 +16023,15 @@ function scrape(doc) { XPathResult.ANY_TYPE, null); var keywordLink; while(keywordLink = keywordLinks.iterateNext()) { - keywords.push(keywordLink.textContent.toLowerCase()); + keywords.push(Zotero.Utilities.trimInternal(keywordLink.textContent.toLowerCase())); + } + var doi = ""; + var doiElmt = doc.evaluate(''/html/body/div/table/tbody/tr[4]/td/table/tbody/tr/td/table/tbody/tr[3]/td[2][@class="small-text"]/a'', doc, null, XPathResult.ANY_TYPE, null).iterateNext() + if (doiElmt){ + var match = doiElmt.textContent.match(/org\/(.*)/); + if (match){ + doi = match[1]; + } } Zotero.Utilities.HTTP.doGet("http://portal.acm.org/"+m[1], function(text) { @@ -12221,7 +16040,11 @@ function scrape(doc) { if (m[1]) { var text = m[1]; } - + // unescape HTML for extended characters + function unescapeHTML(str, p1){ + return Zotero.Utilities.unescapeHTML("&#"+p1); + } + text = text.replace(/\\&\\#([^;]+;)/g, unescapeHTML); // load Refer translator var translator = Zotero.loadTranslator("import"); translator.setTranslator("881f60f2-0802-411a-9228-ce5f47b64c7d"); @@ -12230,292 +16053,137 @@ function scrape(doc) { if(abstract) item.abstractNote = abstract; item.attachments = attachments; item.tags = keywords; - item.type = undefined; + item.DOI = doi; + item.url = doc.location.href; item.complete(); }); translator.translate(); getNext(); }); -} - -function doWeb(doc, url) { - if(url.indexOf("/results.cfm") != -1) { - var items = Zotero.Utilities.getItemArray(doc, doc, ''^https?://[^/]+/citation.cfm\\?[^#]+$''); - - items = Zotero.selectItems(items); - if(!items) return true; - - for(var url in items) { - urls.push(url); - } - - getNext(); - } else { - scrape(doc); - } - - Zotero.wait(); -}'); - -REPLACE INTO translators VALUES ('21ad38-3830-4836-aed7-7b5c2dbfa740', '1.0.0b3.r1', '', '2007-01-10 05:00:00', '1', '100', '4', 'ISI Web of Knowledge', 'Simon Kornblith', '^https?://[^/]+/(?:[^/]+/CIW\.cgi|portal\.cgi)', -'function detectWeb(doc, url) { - var namespace = doc.documentElement.namespaceURI; - var nsResolver = namespace ? function(prefix) { - if (prefix == ''x'') return namespace; else return null; - } : null; - - // require a link to Thomson at the bottom, to weed out other CGIs that - // happen to be called CIW.cgi - if(!doc.evaluate(''//p[@class="copyright"]/a[@href="http://www.thomson.com/scientific/scientific.jsp"]'', - doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { - return false; - } - - if(doc.title.substr(0, 11) == "Full Record") { - return "journalArticle"; - } else if(doc.title.substr(0, 14) == "Search Results") { - return "multiple"; - } - - return false; -}', -'function query(formAction, post, docOrUrls, done) { - post = post.substr(1)+"&fields=FullNoCitRef"; - - Zotero.Utilities.HTTP.doPost(formAction, post, function(text) { - var m = text.match(/<a href="(uml_view.cgi[^"]+)">/); - var newURL = "http://portal.isiknowledge.com/uml/"+m[1]; - Zotero.Utilities.HTTP.doGet(newURL, function(text) { - var lines = text.split("\n"); - - var fieldRe = /^[A-Z0-9]{2}(?: |$)/; - var field, content, item, authors; - - for each(var line in lines) { - if(fieldRe.test(line)) { - if(item && field && content) { - if(field == "AF") { - // returns need to be processed separately when dealing with authors - authors = content; - } else if(field == "AU" && !authors) { - authors = content; - } else { - content = content.replace(/\n/g, " "); - if(field == "TI") { - item.title = content; - } else if(field == "SO") { - item.publicationTitle = content; - } else if(field == "DE" || field == "ID" || field == "SC") { - item.tags = item.tags.concat(content.split("; ")); - } else if(field == "AB") { - item.abstractNote = content; - } else if(field == "PB") { - item.publisher = content; - } else if(field == "PI") { - item.place = content; - } else if(field == "SN") { - item.ISSN = content; - } else if(field == "JI") { - item.journalAbbreviation = content; - } else if(field == "PD") { - if(item.date) { - item.date = content+" "+item.date; - } else { - item.date = content; - } - } else if(field == "PY") { - if(item.date) { - item.date += " "+content; - } else { - item.date = content; - } - } else if(field == "VL") { - item.volume = content; - } else if(field == "IS") { - item.issue = content; - } else if(field == "BP") { - item.pages = content; - } else if(field == "EP") { - if(!item.pages) { - item.pages = content; - } else if(item.pages != content) { - item.pages += "-"+content; - } - } - } - } - - var field = line.substr(0, 2); - var content = Zotero.Utilities.cleanString(line.substr(3)); - if(field == "PT") { - // theoretically, there could be book types, but I don''t know what the codes - // are and Thomson is unlikely to help me figure that out - item = new Zotero.Item("journalArticle"); - if(docOrUrls.location) { - item.attachments = [{title:"ISI Web of Science Snapshot", document:docOrUrls}]; - } else { - item.attachments = [{title:"ISI Web of Science Snapshot", url:docOrUrls.shift(), mimeType:"text/html"}]; - } - field = content = undefined; - } else if(field == "ER") { - if(authors) { - authors = authors.split("\n"); - for each(var author in authors) { - item.creators.push(Zotero.Utilities.cleanAuthor(author, "author", true)); - } - } - - item.complete(); - item = field = content = authors = undefined; - } - } else { - content += "\n"+Zotero.Utilities.cleanString(line); - } - } - - if(done) { - done(); - } else { - Zotero.done(); - } - }); - }); -} - -function crossSearchFetch(services, SID) { - // if we''ve fetched everything, we''re done - if(!services.length) { - Zotero.done(); - return; - } - var service = services.shift(); - Zotero.debug(service); - - // execute requests - var post = "&SID="+SID+"&all_summary_UTs="+service.items.join("%3B"); - - // add marked_list_candidates - var i = 1; - for each(var marked_list_candidate in service.items) { - post += "&marked_list_candidates="+marked_list_candidate+"%2F"+i; - } - post += "&mark_selection=selected_records&Export.x=10&Export.y=10"; - - // do query - query(service.URL, post, service.itemURLs, function() { crossSearchFetch(services, SID) }); -} - -function doWeb(doc, url) { - var namespace = doc.documentElement.namespaceURI; - var nsResolver = namespace ? function(prefix) { - if (prefix == ''x'') return namespace; else return null; - } : null; - - var post = ""; - - // get hidden fields to add to post string - var hiddenFields = doc.evaluate(''//input[@type="hidden"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); - var hiddenField; - while(hiddenField = hiddenFields.iterateNext()) { - post += "&"+hiddenField.name+"="+encodeURIComponent(hiddenField.value); - } - - if(doc.title.substr(0, 14) == "Search Results") { - var items = new Array(); - var links = new Array(); - var tableRow; - - if(url.indexOf("/portal.cgi") != -1 || url.indexOf("/XS/CIW.cgi") != -1) { - // CrossSearch - var tableRows = doc.evaluate(''//tr[td/span/input[@name="marked_list_candidates"]]'', doc, nsResolver, XPathResult.ANY_TYPE, null); - while(tableRow = tableRows.iterateNext()) { - var id = tableRow.getElementsByTagName("input")[0].value; - - items[id] = tableRow.getElementsByTagName("b")[0].textContent; - - var linkList = tableRow.getElementsByTagName("a"); - for each(var link in linkList) { - if(link.href && link.href.indexOf("&Func=TransferToPublisher&") != -1) { - links[id] = link.href; - break; - } - } - } - - items = Zotero.selectItems(items); - if(!items) return true; - - var serviceRe = /^(https?:\/\/[^\/]+\/).*%26SrcAuth%3D([^%]+)%26/; - var queries = new Object(); - var urls = new Object(); - - // contains an array of service objects with service, URL, itemURLs, and items properties - var services = new Array(); - - // build up object of request URL => [marked_list_candidates] - for(var id in items) { - var foundService = null; - - var m = serviceRe.exec(links[id]); - for each(var service in services) { - if(service.service == m[2]) { - foundService = service; - break; - } - } - - if(!foundService) { - foundService = new Object(); - foundService.service = m[2]; - foundService.URL = m[1]+m[2]+"/CIW.cgi"; - foundService.itemURLs = new Array(); - foundService.items = new Array(); - services.push(foundService); - } - - foundService.items.push(id.substr(id.indexOf(":")+1)); - foundService.itemURLs.push(links[id]); - } - - var SID = doc.getElementsByName("SID")[0].value; - crossSearchFetch(services, SID); - } else { - var tableRows = doc.evaluate(''//tr[td/input[@name="marked_list_candidates"]]'', doc, nsResolver, XPathResult.ANY_TYPE, null); - while(tableRow = tableRows.iterateNext()) { - var id = tableRow.getElementsByTagName("input")[0].value; - var link = tableRow.getElementsByTagName("a")[0]; - items[id] = link.textContent; - links[id] = link.href; - } - - items = Zotero.selectItems(items); - if(!items) return true; - - var urls = new Array(); - for(var code in items) { - post += "&marked_list_candidates="+encodeURIComponent(code); - urls.push(links[id]); - } - post += "&mark_selection=selected_records&Export.x=10&Export.y=10"; - - // get form action - var formAction = doc.getElementsByTagName("form")[0].action; - // run query - query(formAction, post, urls); +} + +function doWeb(doc, url) { + if(url.indexOf("/results.cfm") != -1) { + var items = Zotero.Utilities.getItemArray(doc, doc, ''^https?://[^/]+/citation.cfm\\?[^#]+$''); + + items = Zotero.selectItems(items); + if(!items) return true; + + for(var url in items) { + urls.push(url); } - } else { - post += "&ExportOne.x=10&ExportOne.y=10" - // get form action - var formAction = doc.getElementsByTagName("form")[0].action; - // run query - query(formAction, post, doc); + getNext(); + } else { + scrape(doc); } Zotero.wait(); }'); +REPLACE INTO translators VALUES ('594ebe3c-90a0-4830-83bc-9502825a6810', '1.0.0b4.r5', '', '2008-03-21 15:30:00', '1', '100', '4', 'ISI Web of Knowledge', 'Michael Berkowitz', '(WOS_GeneralSearch|product=WOS)', +'function detectWeb(doc, url) { + if (doc.title.indexOf("Web of Science Results") != -1) { + return "multiple"; + } else if (url.indexOf("full_record.do") != -1) { + return "journalArticle"; + } +}', +'function doWeb(doc, url) { + var ids = new Array(); + if (detectWeb(doc, url) == "multiple") { + var items = new Object; + var xpath = ''//a[@class="smallV110"]''; + var titles = doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); + var next_title = titles.iterateNext(); + while (next_title) { + var id = doc.evaluate(''.//@onclick'', next_title, null, XPathResult.ANY_TYPE, null).iterateNext().value.match(/\?([^'']+)''/)[1]; + items[id] = next_title.textContent; + next_title = titles.iterateNext(); + } + items = Zotero.selectItems(items); + for (var i in items) { + ids.push(i); + } + } else { + ids.push(url.match(/\?(.*)/)[1]); + } + var hostRegexp = new RegExp("^(https?://[^/]+)/"); + var m = hostRegexp.exec(url); + var host = m[1]; + for (var i in ids) { + ids[i] = host+"/full_record.do?" + ids[i]; + } + Zotero.Utilities.processDocuments(ids, function(newDoc) { + var url = newDoc.location.href; + var sid = newDoc.evaluate(''//input[@name="selectedIds"]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().value; + var nid = newDoc.evaluate(''//input[@name="SID"]'', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().value; + var post2 = ''product=WOS&product_sid='' + nid + ''&plugin=&product_st_thomas=http://esti.isiknowledge.com:8360/esti/xrpc&export_ref.x=0&export_ref.y=0''; + var post = ''action=go&mode=quickOutput&product=WOS&SID='' + nid + ''&format=ref&fields=BibAbs&mark_id=WOS&count_new_items_marked=0&selectedIds='' + sid + ''&qo_fields=bib&endnote.x=95&endnote.y=12&save_options=default''; + Zotero.Utilities.HTTP.doPost(''http://apps.isiknowledge.com/OutboundService.do'', post, function() { + Zotero.Utilities.HTTP.doPost(''http://pcs.isiknowledge.com/uml/uml_view.cgi'', post2, function(text) { + var lines = text.split("\n"); + var field = " "; + var content = " "; + var item = new Zotero.Item("journalArticle"); + item.url = url; + var authors; + var fieldRe = /^[A-Z0-9]{2}(?: |$)/; + + for each(var line in lines) { + if(line.match(fieldRe)) { + field = line.match(fieldRe)[0].substr(0,2); + content = line.substr(3); + if ((field == "AF" || field == "AU")) { + if (!item.creators[0]) { + var author = content.split(","); + item.creators.push({firstName:author[1], lastName:author[0], creatorType:"author"}); + } else { + field = ""; + } + } else if (field == "TI") { + item.title = content; + } else if (field == "SO") { + item.publicationTitle = content; + } else if (field == "SN") { + item.ISSN = content; + } else if (field == "PD" || field == "PY") { + if (item.date) { + item.date += " " + content; + } else { + item.date = content; + } + } else if (field == "VL") { + item.volume = content; + } else if (field == "IS") { + item.issue = content; + } else if (field == "BP") { + item.pages = content; + } else if (field == "EP") { + item.pages += "-" + content; + } else if (field == "AB") { + item.abstractNote = content; + } + } else { + content = Zotero.Utilities.trimInternal(line); + if (field == "AF" || field == "AU") { + var author = content.split(","); + item.creators.push({firstName:author[1], lastName:author[0], creatorType:"author"}); + } else if (field == "TI") { + item.title += " " + content; + } else if (field == "AB") { + item.abstractNote += " " + content; + } + } + } + item.attachments = [{url:item.url, title:"ISI Web of Knowledge Snapshot", mimeType:"text/html"}]; + item.complete(); + }); + }); + }, function() {Zotero.done;}); +}'); + REPLACE INTO translators VALUES ('84564450-d633-4de2-bbcc-451ea580f0d6', '1.0.0b3.r1', '', '2007-03-28 20:00:00', '1', '100', '4', 'Gale Literature Resource Center', 'Simon Kornblith', '^https?://[^/]+/servlet/LitRC?(?:|.*&)srchtp=(?:adv)?mla(?:&|$)', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; @@ -12677,7 +16345,7 @@ function doWeb(doc, url) { } }'); -REPLACE INTO translators VALUES ('5eacdb93-20b9-4c46-a89b-523f62935ae4', '1.0.0b3.r1', '', '2007-06-13 01:00:00', '1', '100', '4', 'HighWire', 'Simon Kornblith', '^http://[^/]+/(?:cgi/searchresults|cgi/search|cgi/content/(?:abstract|full|short|summary)|current.dtl$|content/vol[0-9]+/issue[0-9]+/(?:index.dtl)?$)', +REPLACE INTO translators VALUES ('5eacdb93-20b9-4c46-a89b-523f62935ae4', '1.0.0b3.r1', '', '2008-04-04 20:00:00', '1', '100', '4', 'HighWire', 'Simon Kornblith', '^http://[^/]+/(?:cgi/searchresults|cgi/search|cgi/content/(?:abstract|full|short|summary)|current.dtl$|content/vol[0-9]+/issue[0-9]+/(?:index.dtl)?$)', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -12832,7 +16500,7 @@ function doWeb(doc, url) { var requests = new Array(); for(var gca in items) { var m = hostRe.exec(pdfs[gca]); - var baseURL = m[0]+"/cgi/citmgr?type=refman"; + var baseURL = ''http://'' + doc.location.host + ''/cgi/citmgr?type=refman''; var thisRequest = null; for each(var request in requests) { @@ -12954,7 +16622,7 @@ REPLACE INTO translators VALUES ('a354331-981b-43de-a61-bc26dd1be3a9', '1.0.0b3. }); }'); -REPLACE INTO translators VALUES ('938ebe32-2b2e-4349-a5b3-b3a05d3de627', '1.0.0b3.r1', '', '2007-12-21 22:00:00', '1', '100', '4', 'ACS Publications', 'Sean Takats', '[^/]*/(?:wls/journals/query/(?:subscriberResults|query)\.html|acs/journals/toc.page|cgi-bin/(?:article|abstract|sample).cgi/[^/]+/[0-9]+/[0-9]+/i[0-9]+/(?:html|abs)/[^\.]+.html)', +REPLACE INTO translators VALUES ('938ebe32-2b2e-4349-a5b3-b3a05d3de627', '1.0.0b3.r1', '', '2008-03-18 02:30:00', '1', '100', '4', 'ACS Publications', 'Sean Takats and Michael Berkowitz', 'http://[^/]*pubs.acs.org[^/]*/(?:wls/journals/query/(?:subscriberResults|query)\.html|acs/journals/toc.page|cgi-bin/(?:article|abstract|sample|asap).cgi)?', 'function detectWeb(doc, url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { @@ -12991,6 +16659,8 @@ REPLACE INTO translators VALUES ('938ebe32-2b2e-4349-a5b3-b3a05d3de627', '1.0.0b url:pdf, mimeType:"application/pdf" }); } + if (!item.attachments[0].title) + item.attachments[0].title = "ACS Snapshot"; item.complete(); }); translator.translate(); @@ -13008,14 +16678,20 @@ function doWeb(doc, url) { var pdfs = new Array(); var requests = new Array(); - - var jids = doc.evaluate(''//tr[td//input[@name="jid"]]'',doc, nsResolver, XPathResult.ANY_TYPE, null); - var jid = jids.iterateNext(); - if(jid) { + + if (detectWeb(doc, url) == "multiple") { // search page var items = new Array(); - var titles = doc.evaluate(''//form[@name="citationSelect"]//tbody/tr[1]//span[@class="textbold"][1]'', doc, nsResolver, XPathResult.ANY_TYPE, null); - var jids = doc.evaluate(''//form[@name="citationSelect"]//input[@name="jid"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + if (doc.evaluate(''//form[@name="citationSelect"]//tbody/tr[1]//span[@class="textbold"][1]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + var titles = doc.evaluate(''//form[@name="citationSelect"]//tbody/tr[1]//span[@class="textbold"][1]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + } else if (doc.evaluate(''//form/div[@class="artBox"]/div[@class="artBody"]/div[@class="artTitle"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + var titles = doc.evaluate(''//form/div[@class="artBox"]/div[@class="artBody"]/div[@class="artTitle"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + } + if (doc.evaluate(''//form[@name="citationSelect"]//input[@name="jid"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + var jids = doc.evaluate(''//form[@name="citationSelect"]//input[@name="jid"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); + } else if (doc.evaluate(''//div[@id="content"]/form/div[@class="artBox"]/div[@class="artHeadBox"]/div[@class="artHeader"]/input'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext()) { + var jids = doc.evaluate(''//div[@id="content"]/form/div[@class="artBox"]/div[@class="artHeadBox"]/div[@class="artHeader"]/input'', doc, nsResolver, XPathResult.ANY_TYPE, null); + } var links = doc.evaluate(''//form[@name="citationSelect"]//tbody/tr[2]//a[@class="link"]'', doc, nsResolver, XPathResult.ANY_TYPE, null); var title; var jid; @@ -13023,9 +16699,9 @@ function doWeb(doc, url) { var link; while ((title = titles.iterateNext()) && (jid = jids.iterateNext())){ id = jid.value - items[id] = Zotero.Utilities.cleanString(title.textContent); + items[id] = Zotero.Utilities.trimInternal(title.textContent); - var link = doc.evaluate(''../../..//a[substring(text(), 1, 3) = "PDF"]'', title, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + var link = doc.evaluate(''../../..//a[contains(text(), "PDF")]'', title, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); if(link) { links[id] = link.href.replace("searchRedirect.cgi", "article.cgi"); } @@ -13039,21 +16715,22 @@ function doWeb(doc, url) { getstring = getstring + "jid=" + encodeURIComponent(i) + "&"; pdfs.push(links[i]+"?sessid="); } - Zotero.debug(getstring); requests.push({jid:getstring}); } else { // single page var jid = doc.evaluate(''//jid'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent; jid = jid.substr(jid.indexOf("/")+1); - var pdf = doc.evaluate(''/html/body/a[text()="[PDF version of this article]"]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + var pdf = doc.evaluate(''/html/body//a[contains(text(), "PDF")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + if (!pdf) { + var pdf = doc.evaluate(''/html/body//a[contains(@href, "/pdf/")]'', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + } if (pdf) { - pdf = pdf.href; - pdf = pdf.replace("searchRedirect.cgi", "article.cgi"); - pdfs.push(pdf+"?sessid="); - } + pdf = pdf.href; + pdf = pdf.replace("searchRedirect.cgi", "article.cgi"); + pdfs.push(pdf+"?sessid="); + } var requests = [{jid:"jid=" + encodeURIComponent(jid)}]; } - handleRequests(requests, pdfs); Zotero.wait(); @@ -14329,7 +18006,7 @@ function doImport() { } }'); -REPLACE INTO translators VALUES ('14763d24-8ba0-45df-8f52-b8d1108e7ac9', '1.0.0b4.r1', '', '2008-01-10 22:00:00', 1, 25, 2, 'Zotero RDF', 'Simon Kornblith', 'rdf', +REPLACE INTO translators VALUES ('14763d24-8ba0-45df-8f52-b8d1108e7ac9', '1.0.0b4.r1', '', '2008-02-08 07:30:00', 1, 25, 2, 'Zotero RDF', 'Simon Kornblith', 'rdf', 'Zotero.configure("getCollections", true); Zotero.configure("dataMode", "rdf"); Zotero.addOption("exportNotes", true); @@ -14347,8 +18024,6 @@ var n = { z:"http://www.zotero.org/namespaces/export#" }; -var container, containerElement; - function generateSeeAlso(resource, seeAlso) { for(var i in seeAlso) { if(itemResources[seeAlso[i]]) { @@ -14391,8 +18066,8 @@ function generateCollection(collection) { } function generateItem(item, zoteroType, resource) { - container = null; - containerElement = null; + var container = null; + var containerElement = null; /** CORE FIELDS **/ @@ -14495,7 +18170,7 @@ function generateItem(item, zoteroType, resource) { if(container) { if(item.ISSN && !Zotero.RDF.getArcsIn("urn:issn:"+item.ISSN)) { // use ISSN as container URI if no other item is - containerElement = "urn:issn:"+item.ISSN + containerElement = "urn:issn:"+item.ISSN; } else { containerElement = Zotero.RDF.newResource(); } @@ -15465,7 +19140,7 @@ function doImport() { } }'); -REPLACE INTO translators VALUES ('32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7', '1.0.2', '', '2008-01-04 02:47:18', '1', '100', '3', 'RIS', 'Simon Kornblith', 'ris', +REPLACE INTO translators VALUES ('32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7', '1.0.2', '', '2008-03-10 19:45:00', '1', '100', '3', 'RIS', 'Simon Kornblith', 'ris', 'Zotero.configure("dataMode", "line"); Zotero.addOption("exportNotes", true); @@ -15475,7 +19150,7 @@ function detectImport() { while((line = Zotero.read()) !== "false") { line = line.replace(/^\s+/, ""); if(line != "") { - if(line.substr(0, 6) == "TY - ") { + if(line.substr(0, 6).match(/^TY {1,2}- /)) { return true; } else { if(i++ > 3) { @@ -15771,7 +19446,7 @@ function doImport(attachments) { Zotero.debug("ignoring "+line); line = Zotero.read(); line = line.replace(/^\s+/, ""); - } while(line !== false && line.substr(0, 6) != "TY - "); + } while(line !== false && !line.substr(0, 6).match(/^TY {1,2}- /)); var item = new Zotero.Item(); var i = 0; @@ -15780,13 +19455,21 @@ function doImport(attachments) { } var tag = "TY"; - var data = line.substr(6); + + // Handle out-of-spec old EndNote exports + if (line.substr(0, 5) == "TY - ") { + var data = line.substr(5); + } + else { + var data = line.substr(6); + } + var rawLine; while((rawLine = Zotero.read()) !== false) { // until EOF // trim leading space if this line is not part of a note line = rawLine.replace(/^\s+/, ""); Zotero.debug("line is "+rawLine); - if(line.substr(2, 4) == " - " || line == "ER -") { + if(line.substr(2, 4) == " - " || line == "ER -" || line.substr(0, 5) == "TY - ") { // if this line is a tag, take a look at the previous line to map // its tag if(tag) { @@ -15795,7 +19478,14 @@ function doImport(attachments) { // then fetch the tag and data from this line tag = line.substr(0,2); - data = line.substr(6); + + // Handle out-of-spec old EndNote exports + if (line.substr(0, 5) == "TY - ") { + data = line.substr(5); + } + else { + data = line.substr(6); + } Zotero.debug("tag: ''"+tag+"''; data: ''"+data+"''"); @@ -15967,7 +19657,7 @@ function doExport() { } }'); -REPLACE INTO translators VALUES ('881f60f2-0802-411a-9228-ce5f47b64c7d', '1.0.0b4.r5', '', '2008-01-22 19:00:00', '1', '100', '3', 'Refer/BibIX', 'Simon Kornblith', 'txt', +REPLACE INTO translators VALUES ('881f60f2-0802-411a-9228-ce5f47b64c7d', '1.0.0b4.r5', '', '2008-02-03 21:00:00', '1', '100', '3', 'Refer/BibIX', 'Simon Kornblith', 'txt', 'Zotero.configure("dataMode", "line"); function detectImport() { @@ -16078,7 +19768,7 @@ var inputTypeMap = { var isEndNote = false; function processTag(item, tag, value) { - value = Zotero.Utilities.superCleanString(value); + value = Zotero.Utilities.trim(value); if(fieldMap[tag]) { item[fieldMap[tag]] = value; } else if(inputFieldMap[tag]) { @@ -16245,32 +19935,39 @@ function doExport() { } }'); -REPLACE INTO translators VALUES ('9cb70025-a888-4a29-a210-93ec52da40d4', '1.0.0b4.r1', '', '2008-01-24 18:00:00', '1', '100', '3', 'BibTeX', 'Simon Kornblith', 'bib', +REPLACE INTO translators VALUES ('9cb70025-a888-4a29-a210-93ec52da40d4', '1.0.0b4.r1', '', '2008-03-26 16:04:37', '1', '200', '3', 'BibTeX', 'Simon Kornblith', 'bib', 'Zotero.configure("dataMode", "block"); Zotero.addOption("UTF8", true); function detectImport() { var block = ""; var read; - // read 20 chars out of the file + + var re = /^\s*@[a-zA-Z]+[\(\{]/; + var lines_read = 0; while(read = Zotero.read(1)) { if(read == "%") { // read until next newline block = ""; - while(Zotero.read(1) != "\n") {} - } else if(read == "\n" && block) { - break; + while((read = Zotero.read(1)) && read != "\r" && read != "\n") {} + } else if((read == "\n" || read == "\r") && block) { + // check if this is a BibTeX entry + if(re.test(block)) { + return true; + } + + block = ""; } else if(" \n\r\t".indexOf(read) == -1) { block += read; } } - - var re = /^@[a-zA-Z]+[\(\{]/; - if(re.test(block)) { - return true; - } }', -'var fieldMap = { +'//%a = first author surname +//%y = year +//%t = first word of title +var citeKeyFormat = "%a_%t_%y"; + +var fieldMap = { address:"place", chapter:"section", edition:"edition", @@ -16294,32 +19991,46 @@ var inputFieldMap = { publisher:"publisher" }; -var typeMap = { - book:"book", - bookSection:"inbook", - journalArticle:"article", - magazineArticle:"article", - newspaperArticle:"article", - thesis:"phdthesis", - letter:"misc", - manuscript:"unpublished", - interview:"misc", - film:"misc", - artwork:"misc", - webpage:"misc", - conferencePaper:"inproceedings" +var zotero2bibtexTypeMap = { + "book":"book", + "bookSection": function (item) { + var hasAuthor = false; + var hasEditor = false; + for each(var creator in item.creators) { + if (creator.creatorType == "editor") { hasEditor = true; } + if (creator.creatorType == "author") { hasAuthor = true; } + } + if (hasAuthor && hasEditor) { return "incollection"; } + return "inbook"; + }, + "journalArticle":"article", + "magazineArticle":"article", + "newspaperArticle":"article", + "thesis":"phdthesis", + "letter":"misc", + "manuscript":"unpublished", + "interview":"misc", + "film":"misc", + "artwork":"misc", + "webpage":"misc", + "conferencePaper":"inproceedings" }; -// supplements outputTypeMap for importing -var inputTypeMap = { - conference:"inproceedings", - techreport:"report", - booklet:"book", - incollection:"bookSection", - manual:"book", - mastersthesis:"thesis", - misc:"book", - proceedings:"book" +var bibtex2zoteroTypeMap = { + "book":"book", // or booklet, proceedings + "inbook":"bookSection", + "incollection":"bookSection", + "article":"journalArticle", // or magazineArticle or newspaperArticle + "phdthesis":"thesis", + "unpublished":"manuscript", + "inproceedings":"conferencePaper", // check for conference also + "techreport":"report", + "booklet":"book", + "incollection":"bookSection", + "manual":"book", + "mastersthesis":"thesis", + "misc":"book", + "proceedings":"conference" }; /* @@ -16966,53 +20677,53 @@ var mappingTable = { "\u00C1":"\\''{A}", // LATIN CAPITAL LETTER A WITH ACUTE "\u00C2":"\\^{A}", // LATIN CAPITAL LETTER A WITH CIRCUMFLEX "\u00C3":"\\~{A}", // LATIN CAPITAL LETTER A WITH TILDE - "\u00C4":"\\~{A}", // LATIN CAPITAL LETTER A WITH DIAERESIS + "\u00C4":"\\\"{A}", // LATIN CAPITAL LETTER A WITH DIAERESIS "\u00C7":"\\c{C}", // LATIN CAPITAL LETTER C WITH CEDILLA "\u00C8":"\\`{E}", // LATIN CAPITAL LETTER E WITH GRAVE "\u00C9":"\\''{E}", // LATIN CAPITAL LETTER E WITH ACUTE "\u00CA":"\\^{E}", // LATIN CAPITAL LETTER E WITH CIRCUMFLEX - "\u00CB":"\\~{E}", // LATIN CAPITAL LETTER E WITH DIAERESIS + "\u00CB":"\\\"{E}", // LATIN CAPITAL LETTER E WITH DIAERESIS "\u00CC":"\\`{I}", // LATIN CAPITAL LETTER I WITH GRAVE "\u00CD":"\\''{I}", // LATIN CAPITAL LETTER I WITH ACUTE "\u00CE":"\\^{I}", // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - "\u00CF":"\\~{I}", // LATIN CAPITAL LETTER I WITH DIAERESIS + "\u00CF":"\\\"{I}", // LATIN CAPITAL LETTER I WITH DIAERESIS "\u00D1":"\\~{N}", // LATIN CAPITAL LETTER N WITH TILDE "\u00D2":"\\`{O}", // LATIN CAPITAL LETTER O WITH GRAVE "\u00D3":"\\''{O}", // LATIN CAPITAL LETTER O WITH ACUTE "\u00D4":"\\^{O}", // LATIN CAPITAL LETTER O WITH CIRCUMFLEX "\u00D5":"\\~{O}", // LATIN CAPITAL LETTER O WITH TILDE - "\u00D6":"\\~{O}", // LATIN CAPITAL LETTER O WITH DIAERESIS + "\u00D6":"\\\"{O}", // LATIN CAPITAL LETTER O WITH DIAERESIS "\u00D9":"\\`{U}", // LATIN CAPITAL LETTER U WITH GRAVE "\u00DA":"\\''{U}", // LATIN CAPITAL LETTER U WITH ACUTE "\u00DB":"\\^{U}", // LATIN CAPITAL LETTER U WITH CIRCUMFLEX - "\u00DC":"\\~{U}", // LATIN CAPITAL LETTER U WITH DIAERESIS + "\u00DC":"\\\"{U}", // LATIN CAPITAL LETTER U WITH DIAERESIS "\u00DD":"\\''{Y}", // LATIN CAPITAL LETTER Y WITH ACUTE "\u00E0":"\\`{a}", // LATIN SMALL LETTER A WITH GRAVE "\u00E1":"\\''{a}", // LATIN SMALL LETTER A WITH ACUTE "\u00E2":"\\^{a}", // LATIN SMALL LETTER A WITH CIRCUMFLEX "\u00E3":"\\~{a}", // LATIN SMALL LETTER A WITH TILDE - "\u00E4":"\\~{a}", // LATIN SMALL LETTER A WITH DIAERESIS + "\u00E4":"\\\"{a}", // LATIN SMALL LETTER A WITH DIAERESIS "\u00E7":"\\c{c}", // LATIN SMALL LETTER C WITH CEDILLA "\u00E8":"\\`{e}", // LATIN SMALL LETTER E WITH GRAVE "\u00E9":"\\''{e}", // LATIN SMALL LETTER E WITH ACUTE "\u00EA":"\\^{e}", // LATIN SMALL LETTER E WITH CIRCUMFLEX - "\u00EB":"\\~{e}", // LATIN SMALL LETTER E WITH DIAERESIS + "\u00EB":"\\\"{e}", // LATIN SMALL LETTER E WITH DIAERESIS "\u00EC":"\\`{i}", // LATIN SMALL LETTER I WITH GRAVE "\u00ED":"\\''{i}", // LATIN SMALL LETTER I WITH ACUTE "\u00EE":"\\^{i}", // LATIN SMALL LETTER I WITH CIRCUMFLEX - "\u00EF":"\\~{i}", // LATIN SMALL LETTER I WITH DIAERESIS + "\u00EF":"\\\"{i}", // LATIN SMALL LETTER I WITH DIAERESIS "\u00F1":"\\~{n}", // LATIN SMALL LETTER N WITH TILDE "\u00F2":"\\`{o}", // LATIN SMALL LETTER O WITH GRAVE "\u00F3":"\\''{o}", // LATIN SMALL LETTER O WITH ACUTE "\u00F4":"\\^{o}", // LATIN SMALL LETTER O WITH CIRCUMFLEX "\u00F5":"\\~{o}", // LATIN SMALL LETTER O WITH TILDE - "\u00F6":"\\~{o}", // LATIN SMALL LETTER O WITH DIAERESIS + "\u00F6":"\\\"{o}", // LATIN SMALL LETTER O WITH DIAERESIS "\u00F9":"\\`{u}", // LATIN SMALL LETTER U WITH GRAVE "\u00FA":"\\''{u}", // LATIN SMALL LETTER U WITH ACUTE "\u00FB":"\\^{u}", // LATIN SMALL LETTER U WITH CIRCUMFLEX - "\u00FC":"\\~{u}", // LATIN SMALL LETTER U WITH DIAERESIS + "\u00FC":"\\\"{u}", // LATIN SMALL LETTER U WITH DIAERESIS "\u00FD":"\\''{y}", // LATIN SMALL LETTER Y WITH ACUTE - "\u00FF":"\\~{y}", // LATIN SMALL LETTER Y WITH DIAERESIS + "\u00FF":"\\\"{y}", // LATIN SMALL LETTER Y WITH DIAERESIS "\u0100":"\\={A}", // LATIN CAPITAL LETTER A WITH MACRON "\u0101":"\\={a}", // LATIN SMALL LETTER A WITH MACRON "\u0102":"\\u{A}", // LATIN CAPITAL LETTER A WITH BREVE @@ -17112,7 +20823,7 @@ var mappingTable = { "\u0175":"\\^{w}", // LATIN SMALL LETTER W WITH CIRCUMFLEX "\u0176":"\\^{Y}", // LATIN CAPITAL LETTER Y WITH CIRCUMFLEX "\u0177":"\\^{y}", // LATIN SMALL LETTER Y WITH CIRCUMFLEX - "\u0178":"\\~{Y}", // LATIN CAPITAL LETTER Y WITH DIAERESIS + "\u0178":"\\\"{Y}", // LATIN CAPITAL LETTER Y WITH DIAERESIS "\u0179":"\\''{Z}", // LATIN CAPITAL LETTER Z WITH ACUTE "\u017A":"\\''{z}", // LATIN SMALL LETTER Z WITH ACUTE "\u017B":"\\.{Z}", // LATIN CAPITAL LETTER Z WITH DOT ABOVE @@ -17158,8 +20869,8 @@ var mappingTable = { "\u1E23":"\\.{h}", // LATIN SMALL LETTER H WITH DOT ABOVE "\u1E24":"\\d{H}", // LATIN CAPITAL LETTER H WITH DOT BELOW "\u1E25":"\\d{h}", // LATIN SMALL LETTER H WITH DOT BELOW - "\u1E26":"\\~{H}", // LATIN CAPITAL LETTER H WITH DIAERESIS - "\u1E27":"\\~{h}", // LATIN SMALL LETTER H WITH DIAERESIS + "\u1E26":"\\\"{H}", // LATIN CAPITAL LETTER H WITH DIAERESIS + "\u1E27":"\\\"{h}", // LATIN SMALL LETTER H WITH DIAERESIS "\u1E28":"\\c{H}", // LATIN CAPITAL LETTER H WITH CEDILLA "\u1E29":"\\c{h}", // LATIN SMALL LETTER H WITH CEDILLA "\u1E30":"\\''{K}", // LATIN CAPITAL LETTER K WITH ACUTE @@ -17212,16 +20923,16 @@ var mappingTable = { "\u1E81":"\\`{w}", // LATIN SMALL LETTER W WITH GRAVE "\u1E82":"\\''{W}", // LATIN CAPITAL LETTER W WITH ACUTE "\u1E83":"\\''{w}", // LATIN SMALL LETTER W WITH ACUTE - "\u1E84":"\\~{W}", // LATIN CAPITAL LETTER W WITH DIAERESIS - "\u1E85":"\\~{w}", // LATIN SMALL LETTER W WITH DIAERESIS + "\u1E84":"\\\"{W}", // LATIN CAPITAL LETTER W WITH DIAERESIS + "\u1E85":"\\\"{w}", // LATIN SMALL LETTER W WITH DIAERESIS "\u1E86":"\\.{W}", // LATIN CAPITAL LETTER W WITH DOT ABOVE "\u1E87":"\\.{w}", // LATIN SMALL LETTER W WITH DOT ABOVE "\u1E88":"\\d{W}", // LATIN CAPITAL LETTER W WITH DOT BELOW "\u1E89":"\\d{w}", // LATIN SMALL LETTER W WITH DOT BELOW "\u1E8A":"\\.{X}", // LATIN CAPITAL LETTER X WITH DOT ABOVE "\u1E8B":"\\.{x}", // LATIN SMALL LETTER X WITH DOT ABOVE - "\u1E8C":"\\~{X}", // LATIN CAPITAL LETTER X WITH DIAERESIS - "\u1E8D":"\\~{x}", // LATIN SMALL LETTER X WITH DIAERESIS + "\u1E8C":"\\\"{X}", // LATIN CAPITAL LETTER X WITH DIAERESIS + "\u1E8D":"\\\"{x}", // LATIN SMALL LETTER X WITH DIAERESIS "\u1E8E":"\\.{Y}", // LATIN CAPITAL LETTER Y WITH DOT ABOVE "\u1E8F":"\\.{y}", // LATIN SMALL LETTER Y WITH DOT ABOVE "\u1E90":"\\^{Z}", // LATIN CAPITAL LETTER Z WITH CIRCUMFLEX @@ -17231,7 +20942,7 @@ var mappingTable = { "\u1E94":"\\b{Z}", // LATIN CAPITAL LETTER Z WITH LINE BELOW "\u1E95":"\\b{z}", // LATIN SMALL LETTER Z WITH LINE BELOW "\u1E96":"\\b{h}", // LATIN SMALL LETTER H WITH LINE BELOW - "\u1E97":"\\~{t}", // LATIN SMALL LETTER T WITH DIAERESIS + "\u1E97":"\\\"{t}", // LATIN SMALL LETTER T WITH DIAERESIS "\u1EA0":"\\d{A}", // LATIN CAPITAL LETTER A WITH DOT BELOW "\u1EA1":"\\d{a}", // LATIN SMALL LETTER A WITH DOT BELOW "\u1EB8":"\\d{E}", // LATIN CAPITAL LETTER E WITH DOT BELOW @@ -17295,8 +21006,6 @@ var reversemappingTable = { "\u00F7":"{\\textdiv}", // DIVISION SIGN "\u00FE":"{\\th}", // LATIN SMALL LETTER THORN "\u0131":"{\\i}", // LATIN SMALL LETTER DOTLESS I - "\u0132":"IJ", // LATIN CAPITAL LIGATURE IJ - "\u0133":"ij", // LATIN SMALL LIGATURE IJ "\u0149":"''n", // LATIN SMALL LETTER N PRECEDED BY APOSTROPHE "\u014A":"{\\NG}", // LATIN CAPITAL LETTER ENG "\u014B":"{\\ng}", // LATIN SMALL LETTER ENG @@ -17305,7 +21014,6 @@ var reversemappingTable = { "\u02C6":"{\\textasciicircum}", // MODIFIER LETTER CIRCUMFLEX ACCENT "\u02DC":"\\~{}", // SMALL TILDE "\u02DD":"{\\textacutedbl}", // DOUBLE ACUTE ACCENT - "\u2001":" ", // EM QUAD "\u2013":"{\\textendash}", // EN DASH "\u2014":"{\\textemdash}", // EM DASH "\u2015":"--", // HORIZONTAL BAR @@ -17429,63 +21137,58 @@ var reversemappingTable = { "\u2702":"$\\%<$", // BLACK SCISSORS "\u2703":"$\\%<$", // LOWER BLADE SCISSORS "\u2704":"$\\%<$", // WHITE SCISSORS - "\uFB00":"ff", // LATIN SMALL LIGATURE FF - "\uFB01":"fi", // LATIN SMALL LIGATURE FI - "\uFB02":"fl", // LATIN SMALL LIGATURE FL - "\uFB03":"ffi", // LATIN SMALL LIGATURE FFI - "\uFB04":"ffl", // LATIN SMALL LIGATURE FFL /* Derived accented characters */ "\u00C0":"\\`{A}", // LATIN CAPITAL LETTER A WITH GRAVE "\u00C1":"\\''{A}", // LATIN CAPITAL LETTER A WITH ACUTE "\u00C2":"\\^{A}", // LATIN CAPITAL LETTER A WITH CIRCUMFLEX "\u00C3":"\\~{A}", // LATIN CAPITAL LETTER A WITH TILDE - "\u00C4":"\\~{A}", // LATIN CAPITAL LETTER A WITH DIAERESIS + "\u00C4":"\\\"{A}", // LATIN CAPITAL LETTER A WITH DIAERESIS "\u00C7":"\\c{C}", // LATIN CAPITAL LETTER C WITH CEDILLA "\u00C8":"\\`{E}", // LATIN CAPITAL LETTER E WITH GRAVE "\u00C9":"\\''{E}", // LATIN CAPITAL LETTER E WITH ACUTE "\u00CA":"\\^{E}", // LATIN CAPITAL LETTER E WITH CIRCUMFLEX - "\u00CB":"\\~{E}", // LATIN CAPITAL LETTER E WITH DIAERESIS + "\u00CB":"\\\"{E}", // LATIN CAPITAL LETTER E WITH DIAERESIS "\u00CC":"\\`{I}", // LATIN CAPITAL LETTER I WITH GRAVE "\u00CD":"\\''{I}", // LATIN CAPITAL LETTER I WITH ACUTE "\u00CE":"\\^{I}", // LATIN CAPITAL LETTER I WITH CIRCUMFLEX - "\u00CF":"\\~{I}", // LATIN CAPITAL LETTER I WITH DIAERESIS + "\u00CF":"\\\"{I}", // LATIN CAPITAL LETTER I WITH DIAERESIS "\u00D1":"\\~{N}", // LATIN CAPITAL LETTER N WITH TILDE "\u00D2":"\\`{O}", // LATIN CAPITAL LETTER O WITH GRAVE "\u00D3":"\\''{O}", // LATIN CAPITAL LETTER O WITH ACUTE "\u00D4":"\\^{O}", // LATIN CAPITAL LETTER O WITH CIRCUMFLEX "\u00D5":"\\~{O}", // LATIN CAPITAL LETTER O WITH TILDE - "\u00D6":"\\~{O}", // LATIN CAPITAL LETTER O WITH DIAERESIS + "\u00D6":"\\\"{O}", // LATIN CAPITAL LETTER O WITH DIAERESIS "\u00D9":"\\`{U}", // LATIN CAPITAL LETTER U WITH GRAVE "\u00DA":"\\''{U}", // LATIN CAPITAL LETTER U WITH ACUTE "\u00DB":"\\^{U}", // LATIN CAPITAL LETTER U WITH CIRCUMFLEX - "\u00DC":"\\~{U}", // LATIN CAPITAL LETTER U WITH DIAERESIS + "\u00DC":"\\\"{U}", // LATIN CAPITAL LETTER U WITH DIAERESIS "\u00DD":"\\''{Y}", // LATIN CAPITAL LETTER Y WITH ACUTE "\u00E0":"\\`{a}", // LATIN SMALL LETTER A WITH GRAVE "\u00E1":"\\''{a}", // LATIN SMALL LETTER A WITH ACUTE "\u00E2":"\\^{a}", // LATIN SMALL LETTER A WITH CIRCUMFLEX "\u00E3":"\\~{a}", // LATIN SMALL LETTER A WITH TILDE - "\u00E4":"\\~{a}", // LATIN SMALL LETTER A WITH DIAERESIS + "\u00E4":"\\\"{a}", // LATIN SMALL LETTER A WITH DIAERESIS "\u00E7":"\\c{c}", // LATIN SMALL LETTER C WITH CEDILLA "\u00E8":"\\`{e}", // LATIN SMALL LETTER E WITH GRAVE "\u00E9":"\\''{e}", // LATIN SMALL LETTER E WITH ACUTE "\u00EA":"\\^{e}", // LATIN SMALL LETTER E WITH CIRCUMFLEX - "\u00EB":"\\~{e}", // LATIN SMALL LETTER E WITH DIAERESIS + "\u00EB":"\\\"{e}", // LATIN SMALL LETTER E WITH DIAERESIS "\u00EC":"\\`{i}", // LATIN SMALL LETTER I WITH GRAVE "\u00ED":"\\''{i}", // LATIN SMALL LETTER I WITH ACUTE "\u00EE":"\\^{i}", // LATIN SMALL LETTER I WITH CIRCUMFLEX - "\u00EF":"\\~{i}", // LATIN SMALL LETTER I WITH DIAERESIS + "\u00EF":"\\\"{i}", // LATIN SMALL LETTER I WITH DIAERESIS "\u00F1":"\\~{n}", // LATIN SMALL LETTER N WITH TILDE "\u00F2":"\\`{o}", // LATIN SMALL LETTER O WITH GRAVE "\u00F3":"\\''{o}", // LATIN SMALL LETTER O WITH ACUTE "\u00F4":"\\^{o}", // LATIN SMALL LETTER O WITH CIRCUMFLEX "\u00F5":"\\~{o}", // LATIN SMALL LETTER O WITH TILDE - "\u00F6":"\\~{o}", // LATIN SMALL LETTER O WITH DIAERESIS + "\u00F6":"\\\"{o}", // LATIN SMALL LETTER O WITH DIAERESIS "\u00F9":"\\`{u}", // LATIN SMALL LETTER U WITH GRAVE "\u00FA":"\\''{u}", // LATIN SMALL LETTER U WITH ACUTE "\u00FB":"\\^{u}", // LATIN SMALL LETTER U WITH CIRCUMFLEX - "\u00FC":"\\~{u}", // LATIN SMALL LETTER U WITH DIAERESIS + "\u00FC":"\\\"{u}", // LATIN SMALL LETTER U WITH DIAERESIS "\u00FD":"\\''{y}", // LATIN SMALL LETTER Y WITH ACUTE - "\u00FF":"\\~{y}", // LATIN SMALL LETTER Y WITH DIAERESIS + "\u00FF":"\\\"{y}", // LATIN SMALL LETTER Y WITH DIAERESIS "\u0100":"\\={A}", // LATIN CAPITAL LETTER A WITH MACRON "\u0101":"\\={a}", // LATIN SMALL LETTER A WITH MACRON "\u0102":"\\u{A}", // LATIN CAPITAL LETTER A WITH BREVE @@ -17585,7 +21288,7 @@ var reversemappingTable = { "\u0175":"\\^{w}", // LATIN SMALL LETTER W WITH CIRCUMFLEX "\u0176":"\\^{Y}", // LATIN CAPITAL LETTER Y WITH CIRCUMFLEX "\u0177":"\\^{y}", // LATIN SMALL LETTER Y WITH CIRCUMFLEX - "\u0178":"\\~{Y}", // LATIN CAPITAL LETTER Y WITH DIAERESIS + "\u0178":"\\\"{Y}", // LATIN CAPITAL LETTER Y WITH DIAERESIS "\u0179":"\\''{Z}", // LATIN CAPITAL LETTER Z WITH ACUTE "\u017A":"\\''{z}", // LATIN SMALL LETTER Z WITH ACUTE "\u017B":"\\.{Z}", // LATIN CAPITAL LETTER Z WITH DOT ABOVE @@ -17631,8 +21334,8 @@ var reversemappingTable = { "\u1E23":"\\.{h}", // LATIN SMALL LETTER H WITH DOT ABOVE "\u1E24":"\\d{H}", // LATIN CAPITAL LETTER H WITH DOT BELOW "\u1E25":"\\d{h}", // LATIN SMALL LETTER H WITH DOT BELOW - "\u1E26":"\\~{H}", // LATIN CAPITAL LETTER H WITH DIAERESIS - "\u1E27":"\\~{h}", // LATIN SMALL LETTER H WITH DIAERESIS + "\u1E26":"\\\"{H}", // LATIN CAPITAL LETTER H WITH DIAERESIS + "\u1E27":"\\\"{h}", // LATIN SMALL LETTER H WITH DIAERESIS "\u1E28":"\\c{H}", // LATIN CAPITAL LETTER H WITH CEDILLA "\u1E29":"\\c{h}", // LATIN SMALL LETTER H WITH CEDILLA "\u1E30":"\\''{K}", // LATIN CAPITAL LETTER K WITH ACUTE @@ -17685,16 +21388,16 @@ var reversemappingTable = { "\u1E81":"\\`{w}", // LATIN SMALL LETTER W WITH GRAVE "\u1E82":"\\''{W}", // LATIN CAPITAL LETTER W WITH ACUTE "\u1E83":"\\''{w}", // LATIN SMALL LETTER W WITH ACUTE - "\u1E84":"\\~{W}", // LATIN CAPITAL LETTER W WITH DIAERESIS - "\u1E85":"\\~{w}", // LATIN SMALL LETTER W WITH DIAERESIS + "\u1E84":"\\\"{W}", // LATIN CAPITAL LETTER W WITH DIAERESIS + "\u1E85":"\\\"{w}", // LATIN SMALL LETTER W WITH DIAERESIS "\u1E86":"\\.{W}", // LATIN CAPITAL LETTER W WITH DOT ABOVE "\u1E87":"\\.{w}", // LATIN SMALL LETTER W WITH DOT ABOVE "\u1E88":"\\d{W}", // LATIN CAPITAL LETTER W WITH DOT BELOW "\u1E89":"\\d{w}", // LATIN SMALL LETTER W WITH DOT BELOW "\u1E8A":"\\.{X}", // LATIN CAPITAL LETTER X WITH DOT ABOVE "\u1E8B":"\\.{x}", // LATIN SMALL LETTER X WITH DOT ABOVE - "\u1E8C":"\\~{X}", // LATIN CAPITAL LETTER X WITH DIAERESIS - "\u1E8D":"\\~{x}", // LATIN SMALL LETTER X WITH DIAERESIS + "\u1E8C":"\\\"{X}", // LATIN CAPITAL LETTER X WITH DIAERESIS + "\u1E8D":"\\\"{x}", // LATIN SMALL LETTER X WITH DIAERESIS "\u1E8E":"\\.{Y}", // LATIN CAPITAL LETTER Y WITH DOT ABOVE "\u1E8F":"\\.{y}", // LATIN SMALL LETTER Y WITH DOT ABOVE "\u1E90":"\\^{Z}", // LATIN CAPITAL LETTER Z WITH CIRCUMFLEX @@ -17704,7 +21407,7 @@ var reversemappingTable = { "\u1E94":"\\b{Z}", // LATIN CAPITAL LETTER Z WITH LINE BELOW "\u1E95":"\\b{z}", // LATIN SMALL LETTER Z WITH LINE BELOW "\u1E96":"\\b{h}", // LATIN SMALL LETTER H WITH LINE BELOW - "\u1E97":"\\~{t}", // LATIN SMALL LETTER T WITH DIAERESIS + "\u1E97":"\\\"{t}", // LATIN SMALL LETTER T WITH DIAERESIS "\u1EA0":"\\d{A}", // LATIN CAPITAL LETTER A WITH DOT BELOW "\u1EA1":"\\d{a}", // LATIN SMALL LETTER A WITH DOT BELOW "\u1EB8":"\\d{E}", // LATIN CAPITAL LETTER E WITH DOT BELOW @@ -17735,6 +21438,9 @@ var alwaysMap = { "\\":"{\\textbackslash}" }; +var strings = new Object(); +var keyRe = /[a-zA-Z0-9\-]/; + function processField(item, field, value) { if(fieldMap[field]) { item[fieldMap[field]] = value; @@ -17800,7 +21506,14 @@ function processField(item, field, value) { } else if(field == "note" || field == "annote") { item.extra += "\n"+value; } else if(field == "howpublished") { - item.extra += "\nPublished: "+value; + if(value.length >= 7) { + var str = value.substr(0, 7); + if(str == "http://" || str == "https:/" || str == "mailto:") { + item.url = value; + } else { + item.extra += "\nPublished: "+value; + } + } } else if(field == "keywords") { if(value.indexOf(",") == -1) { // keywords/tags @@ -17811,22 +21524,10 @@ function processField(item, field, value) { } } -function getFieldValue() { - // read whitespace - var read = Zotero.read(1); - while(" \n\r\t".indexOf(read) != -1) { - read = Zotero.read(1); - } - +function getFieldValue(read) { var value = ""; // now, we have the first character of the field - if("0123456789".indexOf(read) != -1) { - value += read; - // character is a number - while((read = Zotero.read(1)) && ("0123456789".indexOf(read) != -1)) { - value += read; - } - } else if(read == "{") { + if(read == "{") { // character is a brace var openBraces = 1; while(read = Zotero.read(1)) { @@ -17863,6 +21564,7 @@ function getFieldValue() { if(value.length > 1) { // replace accented characters (yucky slow) + value = value.replace(/{(\\[`"''^~=a-z])([A-Za-z])}/g, "$1{$2}"); for (var i in reversemappingTable) { // really really slow! var mapped = reversemappingTable[i]; if (value.indexOf(mapped) != -1) { @@ -17900,28 +21602,57 @@ function getFieldValue() { function beginRecord(type, closeChar) { type = Zotero.Utilities.cleanString(type.toLowerCase()); - if(inputTypeMap[type]) { - var item = new Zotero.Item(inputTypeMap[type]); - } else { - for(var i in typeMap) { - if(typeMap[i] == type) { - var item = new Zotero.Item(i); - break; - } - } - if(!item) { + if(type != "string") { + zoteroType = bibtex2zoteroTypeMap[type]; + if (!zoteroType) { Zotero.debug("discarded item from BibTeX; type was "+type); } + var item = new Zotero.Item(zoteroType); + + item.extra = ""; } - item.extra = ""; - var field = ""; - while(read = Zotero.read(1)) { + + // by setting dontRead to true, we can skip a read on the next iteration + // of this loop. this is useful after we read past the end of a string. + var dontRead = false; + + while(dontRead || (read = Zotero.read(1))) { + dontRead = false; + if(read == "=") { // equals begin a field - var value = getFieldValue(); + // read whitespace + var read = Zotero.read(1); + while(" \n\r\t".indexOf(read) != -1) { + read = Zotero.read(1); + } + + if(keyRe.test(read)) { + // read numeric data here, since we might get an end bracket + // that we should care about + value = ""; + value += read; + + // character is a number + while((read = Zotero.read(1)) && keyRe.test(read)) { + value += read; + } + + // don''t read the next char; instead, process the character + // we already read past the end of the string + dontRead = true; + + // see if there''s a defined string + if(strings[value]) value = strings[value]; + } else { + var value = getFieldValue(read); + } + if(item) { processField(item, field.toLowerCase(), value); + } else if(type == "string") { + strings[field] = value; } field = ""; } else if(read == ",") { // commas reset @@ -17948,7 +21679,9 @@ function doImport() { if(read == "@") { type = ""; } else if(type !== false) { - if(read == "{") { // possible open character + if(type == "comment") { + type = false; + } else if(read == "{") { // possible open character beginRecord(type, "}"); type = false; } else if(read == "(") { // possible open character @@ -17986,6 +21719,83 @@ function mapAccent(character) { } var numberRe = /^[0-9]+/; +// this is a list of words that should not appear as part of the citation key +var citeKeyTitleBannedRe = /(\s+|\b)(a|an|from|does|how|it\''s|its|on|some|the|this|why)(\s+|\b)/g; +var citeKeyConversionsRe = /%([a-zA-Z])/; +var citeKeyCleanRe = /[^a-z0-9\!\$\&\*\+\-\.\/\:\;\<\>\?\[\]\^\_\`\|]+/g; + +var citeKeyConversions = { + "a":function (flags, item) { + if(item.creators && item.creators[0] && item.creators[0].lastName) { + return item.creators[0].lastName.toLowerCase().replace(/ /g,"_").replace(/,/g,""); + } + return ""; + }, + "t":function (flags, item) { + if (item["title"]) { + return item["title"].toLowerCase().replace(citeKeyTitleBannedRe, "").split(" ")[0]; + } + return ""; + }, + "y":function (flags, item) { + if(item.date) { + var date = Zotero.Utilities.strToDate(item.date); + if(date.year && numberRe.test(date.year)) { + return date.year; + } + } + return "????"; + } +} + + +function buildCiteKey (item,citekeys) { + var basekey = ""; + var counter = 0; + citeKeyFormatRemaining = citeKeyFormat; + while (citeKeyConversionsRe.test(citeKeyFormatRemaining)) { + if (counter > 100) { + Zotero.debug("Pathological BibTeX format: " + citeKeyFormat); + break; + } + var m = citeKeyFormatRemaining.match(citeKeyConversionsRe); + if (m.index > 0) { + //add data before the conversion match to basekey + basekey = basekey + citeKeyFormatRemaining.substr(0, m.index); + } + var flags = ""; // for now + var f = citeKeyConversions[m[1]]; + if (typeof(f) == "function") { + var value = f(flags, item); + Zotero.debug("Got value " + value + " for %" + m[1]); + //add conversion to basekey + basekey = basekey + value; + } + citeKeyFormatRemaining = citeKeyFormatRemaining.substr(m.index + m.length); + counter++; + } + if (citeKeyFormatRemaining.length > 0) { + basekey = basekey + citeKeyFormatRemaining; + } + + // for now, remove any characters not explicitly known to be allowed; + // we might want to allow UTF-8 citation keys in the future, depending + // on implementation support. + // + // no matter what, we want to make sure we exclude + // " # % '' ( ) , = { } ~ and backslash + + basekey = basekey.replace(citeKeyCleanRe, ""); + var citekey = basekey; + var i = 0; + while(citekeys[citekey]) { + i++; + citekey = basekey + "-" + i; + } + citekeys[citekey] = true; + return citekey; +} + function doExport() { if(Zotero.getOption("UTF8")) { Zotero.setCharacterSet("UTF-8"); @@ -18001,50 +21811,12 @@ function doExport() { var item; while(item = Zotero.nextItem()) { // determine type - var type = typeMap[item.itemType]; + var type = zotero2bibtexTypeMap[item.itemType]; + if (typeof(type) == "function") { type = type(item); } if(!type) type = "misc"; // create a unique citation key - var basekey = ""; - if(item.creators && item.creators[0] && item.creators[0].lastName) { - basekey += "_" + item.creators[0].lastName.toLowerCase().replace(/ /g,"_").replace(/,/g,""); - } - - // include the item title as part of the citation key - if (item["title"]) { - // this is a list of words that should not appear as part of the citation key - var bannedTitleKeys = ["a", "an", "from", "does", "how", "it''s", "its", "on", "some", "the", "this", "why"]; - var titleElements = item["title"].toLowerCase().split(" "); - for(var te in titleElements) { - if (bannedTitleKeys.indexOf(titleElements[te]) == -1) { - basekey += "_" + titleElements[te]; - break; - } - } - } - - if(item.date) { - var date = Zotero.Utilities.strToDate(item.date); - if(date.year && numberRe.test(date.year)) { - basekey += "_" + date.year; - } - } - - // for now, remove any characters not explicitly known to be allowed; - // we might want to allow UTF-8 citation keys in the future, depending - // on implementation support. - // - // no matter what, we want to make sure we exclude - // " # % '' ( ) , = { } ~ and backslash - - basekey = basekey.substr(1).replace(/[^a-z0-9\!\$\&\*\+\-\.\/\:\;\<\>\?\[\]\^\_\`\|]+/g,""); - var citekey = basekey; - var i = 0; - while(citekeys[citekey]) { - i++; - citekey = basekey+"-"+i; - } - citekeys[citekey] = true; + var citekey = buildCiteKey(item, citekeys); // write citation key Zotero.write((first ? "" : ",\n\n") + "@"+type+"{"+citekey); @@ -18056,8 +21828,8 @@ function doExport() { } } - if(item.conferenceName) { - writeField("booktitle", item.conferenceName); + if(item.proceedingsTitle || item.conferenceName) { + writeField("booktitle", item.proceedingsTitle || item.conferenceName); } if(item.publicationTitle) { @@ -18103,6 +21875,7 @@ function doExport() { } if(item.date) { + var date = Zotero.Utilities.strToDate(item.date); // need to use non-localized abbreviation if(date.month) { writeField("month", months[date.month], true); @@ -18123,23 +21896,28 @@ function doExport() { } writeField("keywords", tagString.substr(1)); } + if(item.pages) { writeField("pages", item.pages); } + if(item.itemType == "webpage") { + writeField("howpublished", item.url); + } + Zotero.write("\n}"); } }'); -REPLACE INTO translators VALUES ('a6ee60df-1ddc-4aae-bb25-45e0537be973', '1.0.0b3.r1', '', '2007-03-28 19:15:00', 1, 100, 1, 'MARC', 'Simon Kornblith', 'marc', +REPLACE INTO translators VALUES ('a6ee60df-1ddc-4aae-bb25-45e0537be973', '1.0.0b3.r1', '', '2008-04-30 18:15:00', '1', '100', '1', 'MARC', 'Simon Kornblith', 'marc', 'function detectImport() { var marcRecordRegexp = /^[0-9]{5}[a-z ]{3}$/ var read = Zotero.read(8); if(marcRecordRegexp.test(read)) { return true; } -}', +}', 'var fieldTerminator = "\x1E"; var recordTerminator = "\x1D"; var subfieldDelimiter = "\x1F"; @@ -18464,10 +22242,46 @@ record.prototype.translate = function(item) { this._associateDBField(item, "070", "ab", "callNumber"); this._associateDBField(item, "060", "ab", "callNumber"); this._associateDBField(item, "050", "ab", "callNumber"); - + this._associateDBField(item, "090", "a", "callNumber"); + this._associateDBField(item, "099", "a", "callNumber"); + this._associateDBField(item, "955", "a", "callNumber"); + + //German + if (!item.place) this._associateDBField(item, "410", "a", "place"); + if (!item.publisher) this._associateDBField(item, "412", "a", "publisher"); + if (!item.title) this._associateDBField(item, "331", "a", "title"); + if (!item.title) this._associateDBField(item, "1300", "a", "title"); + if (!item.date) this._associateDBField(item, "425", "a", "date", pullNumber); + if (!item.date) this._associateDBField(item, "595", "a", "date", pullNumber); + if (this.getFieldSubfields("104")[0]) this._associateDBField(item, "104", "a", "creator", author, "author", true); + if (this.getFieldSubfields("800")[0]) this._associateDBField(item, "800", "a", "creator", author, "author", true); + + //Spanish + if (!item.title) this._associateDBField(item, "200", "a", "title"); + if (!item.place) this._associateDBField(item, "210", "a", "place"); + if (!item.publisher) this._associateDBField(item, "210", "c", "publisher"); + if (!item.date) this._associateDBField(item, "210", "d", "date"); + if (!item.creators) { + for (var i = 700; i < 703; i++) { + if (this.getFieldSubfields(i)[0]) { + Zotero.debug(i + " is AOK"); + Zotero.debug(this.getFieldSubfields(i.toString())); + var aut = this.getFieldSubfields(i)[0]; + if (aut.b) { + aut = aut[''b''].replace(/,\W+/g, "") + " " + aut[''a''].replace(/,\s/g, ""); + } else { + aut = aut[''a''].split(", ").join(" "); + } + item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author")); + } + } + } if(item.title) { item.title = Zotero.Utilities.capitalizeTitle(item.title); } + if (this.getFieldSubfields("335")[0]) { + item.title = item.title + ": " + this.getFieldSubfields("335")[0][''a'']; + } } function doImport() { @@ -18831,7 +22645,7 @@ function doExport() { -- CSL styles -- -- ---------------------------------------------------------------- -REPLACE INTO csl VALUES ('http://www.zotero.org/syles/ama', '2008-01-03 23:00:00', 'American Medical Association', +REPLACE INTO csl VALUES ('http://www.zotero.org/syles/ama', '2008-02-02 00:00:00', 'American Medical Association', '<?xml version="1.0" encoding="UTF-8"?> <style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" xml:lang="en"> <info> @@ -18844,7 +22658,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/syles/ama', '2008-01-03 23:00:00 </author> <category term="numeric"/> <category term="medicine"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> <summary>The American Medical Association style as used in JAMA.</summary> <link href="http://www.samford.edu/schools/pharmacy/dic/amaquickref07.pdf" rel="documentation"/> </info> @@ -19018,7 +22832,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/syles/ama', '2008-01-03 23:00:00 </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/apa', '2008-01-03 23:00:00', 'American Psychological Association', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/apa', '2008-02-02 00:00:00', 'American Psychological Association', '<?xml version="1.0" encoding="UTF-8"?> <?oxygen RNGSchema="http://xbiblio.svn.sourceforge.net/viewvc/*checkout*/xbiblio/csl/schema/trunk/csl.rnc" type="compact"?> <style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" xml:lang="en"> @@ -19033,18 +22847,18 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/apa', '2008-01-03 23:00:0 <category term="psychology"/> <category term="generic-base"/> <category term="author-date"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> </info> <macro name="editor-translator"> - <names variable="editor translator" prefix="(" suffix=")" delimiter=", "> + <names variable="editor translator" delimiter=", "> <name and="symbol" initialize-with=". " delimiter=", "/> - <label form="short" prefix=", " text-case="capitalize-first" suffix="."/> + <label form="short" prefix=" (" text-case="capitalize-first" suffix=".)"/> </names> </macro> <macro name="author"> <names variable="author"> - <name name-as-sort-order="all" and="symbol" sort-separator=", " initialize-with=". " - delimiter=", " delimiter-precedes-last="always"/> + <name name-as-sort-order="all" and="symbol" sort-separator=", " + initialize-with=". " delimiter=", " delimiter-precedes-last="always"/> <label form="short" prefix=" (" suffix=".)" text-case="capitalize-first"/> <substitute> <names variable="editor"/> @@ -19073,21 +22887,21 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/apa', '2008-01-03 23:00:0 <macro name="access"> <choose> <if variable="DOI"> - <text variable="DOI" prefix="doi: "/> + <text variable="DOI" prefix="doi: "/> </if> <else> - <group> - <text term="retrieved" text-case="capitalize-first" suffix=" "/> - <date variable="accessed" suffix=", "> - <date-part name="month" suffix=" "/> - <date-part name="day" suffix=", "/> - <date-part name="year"/> - </date> - <group> - <text term="from" suffix=" "/> - <text variable="URL"/> - </group> - </group> + <group> + <text term="retrieved" text-case="capitalize-first" suffix=" "/> + <date variable="accessed" suffix=", "> + <date-part name="month" suffix=" "/> + <date-part name="day" suffix=", "/> + <date-part name="year"/> + </date> + <group> + <text term="from" suffix=" "/> + <text variable="URL"/> + </group> + </group> </else> </choose> </macro> @@ -19111,6 +22925,55 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/apa', '2008-01-03 23:00:0 <text variable="event"/> <text variable="event-place" prefix=", "/> </macro> + <macro name="issued"> + <group prefix=" (" suffix=")."> + <date variable="issued"> + <date-part name="year"/> + </date> + <choose> + <if type="book chapter article-journal" match="none"> + <date variable="issued"> + <date-part prefix=", " name="month"/> + <date-part prefix=" " name="day"/> + </date> + </if> + </choose> + </group> + </macro> + <macro name="issued-year"> + <date variable="issued"> + <date-part name="year"/> + </date> + </macro> + <macro name="citation-locator"> + <group> + <label variable="locator" include-period="true" form="short"/> + <text variable="locator" prefix=" "/> + </group> + </macro> + <macro name="container-prefix"> + <choose> + <if type="chapter"> + <text term="in" text-case="capitalize-first" suffix=" "/> + </if> + </choose> + </macro> + <macro name="pages"> + <choose> + <if type="chapter"> + <group prefix=" (" suffix=")"> + <label variable="page" form="short" include-period="true" suffix=" "/> + <text variable="page"/> + </group> + </if> + <else> + <text variable="page" prefix=", "/> + </else> + </choose> + </macro> + <macro name="edition"> + <text variable="edition"/> + </macro> <citation> <option name="et-al-min" value="6"/> <option name="et-al-use-first" value="1"/> @@ -19127,13 +22990,8 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/apa', '2008-01-03 23:00:0 <layout prefix="(" suffix=")" delimiter="; "> <group delimiter=", "> <text macro="author-short"/> - <date variable="issued"> - <date-part name="year"/> - </date> - <group> - <label variable="locator" include-period="true" form="short"/> - <text variable="locator" prefix=" "/> - </group> + <text macro="issued-year"/> + <text macro="citation-locator"/> </group> </layout> </citation> @@ -19145,72 +23003,26 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/apa', '2008-01-03 23:00:0 <key macro="author"/> <key variable="issued"/> </sort> - <layout> + <layout suffix="."> <text macro="author" suffix="."/> - <group prefix=" (" suffix=")."> - <date variable="issued"> - <date-part name="year"/> - </date> - <choose> - <if type="book chapter article-journal" match="none"> - <date variable="issued"> - <date-part prefix=", " name="month"/> - <date-part prefix=" " name="day"/> - </date> - </if> - </choose> - </group> - <choose> - <if type="book"> - <group suffix="."> - <text macro="title" prefix=" "/> - <text macro="editor-translator" prefix=" "/> - <text variable="edition" prefix=" (" suffix=")"/> - </group> - <text prefix=" " suffix="." macro="publisher"/> - </if> - <else-if type="chapter"> - <text macro="title" prefix=" "/> - <group class="container" prefix=". "> - <text term="in" text-case="capitalize-first" suffix=" "/> - <group delimiter=", " suffix="."> - <names variable="editor translator" delimiter=", "> - <name and="symbol" sort-separator=", " initialize-with=". "/> - <label form="short" prefix=" (" suffix=".)" text-case="capitalize-first"/> - </names> - <group delimiter=" "> - <text variable="container-title" font-style="italic"/> - <group prefix="(" suffix=")"> - <label variable="page" form="short" include-period="true" suffix=" "/> - <text variable="page"/> - </group> - </group> - </group> - <text variable="collection-title" prefix=" " suffix="."/> - <text macro="publisher" prefix=" " suffix="."/> - </group> - </else-if> - <else> - <group suffix="."> - <text macro="title" prefix=" "/> - <text macro="editor-translator" prefix=" "/> - </group> - <group class="container" prefix=" " suffix="."> - <text variable="container-title" font-style="italic"/> - <group prefix=", "> - <text variable="volume" font-style="italic"/> - </group> - <text variable="page" prefix=", "/> - </group> - </else> - </choose> - <text prefix=" " macro="access"/> + <text macro="issued"/> + <text macro="title" prefix=" "/> + <text macro="container-prefix" prefix=" "/> + <text macro="editor-translator" prefix=" "/> + <text variable="container-title" prefix=", " font-style="italic"/> + <text variable="collection-title" prefix=", " suffix="."/> + <text macro="edition" prefix=" (" suffix=")"/> + <text variable="volume" prefix=", "/> + <text variable="issue" prefix="(" suffix=")"/> + <text macro="pages"/> + <text macro="publisher" prefix=". "/> + <text macro="access" prefix=". " /> </layout> </bibliography> </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/apsa', '2008-01-03 23:00:00', 'American Political Science Association', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/apsa', '2008-02-02 00:00:00', 'American Political Science Association', '<?xml version="1.0" encoding="UTF-8"?> <style xmlns="http://purl.org/net/xbiblio/csl" xml:lang="en" class="in-text" > <info> @@ -19223,7 +23035,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/apsa', '2008-01-03 23:00: </author> <category term="author-date"/> <category term="political_science"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> <summary>The American Political Science Association style.</summary> <link href="http://www.wisc.edu/writing/Handbook/DocAPSA.html" rel="documentation"/> </info> @@ -19388,7 +23200,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/apsa', '2008-01-03 23:00: </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/asa', '2008-01-03 23:00:00', 'American Sociological Association (Author-Date)', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/asa', '2008-02-02 00:00:00', 'American Sociological Association (Author-Date)', '<?xml version="1.0" encoding="UTF-8"?> <style xmlns="http://purl.org/net/xbiblio/csl" xml:lang="en" class="in-text" > <info> @@ -19401,7 +23213,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/asa', '2008-01-03 23:00:0 </author> <category term="author-date"/> <category term="sociology"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> <summary>The ASA style.</summary> <link href="http://www.asanet.org/page.ww?name=Quick+Style+Guide%38section=Sociology+Depts" rel="documentation"/> </info> @@ -19607,7 +23419,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/asa', '2008-01-03 23:00:0 </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-author-date', '2008-01-03 23:00:00', 'Chicago Manual of Style (Author-Date format)', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-author-date', '2008-02-02 00:00:00', 'Chicago Manual of Style (Author-Date format)', '<?xml version="1.0" encoding="UTF-8"?> <style xmlns="http://purl.org/net/xbiblio/csl" xml:lang="en" class="in-text" > <info> @@ -19620,15 +23432,25 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-author-date', '20 </author> <category term="author-date"/> <category term="generic-base"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> <summary>The author-date variant of the Chicago style</summary> <link href="http://www.chicagomanualofstyle.org/tools_citationguide.html" rel="documentation"/> </info> - <macro name="editor"> - <names variable="editor"> - <label form="short" text-case="capitalize-first" suffix=". "/> - <name and="text" delimiter=", "/> - </names> + <macro name="secondary-contributor"> + <group delimiter=". "> + <names variable="editor"> + <label form="verb-short" prefix=" " text-case="capitalize-first" suffix=". "/> + <name and="text" delimiter=", "/> + </names> + <choose> + <if variable="author editor" match="any"> + <names variable="translator"> + <label form="verb-short" prefix=" " text-case="capitalize-first" suffix=". "/> + <name and="text" delimiter=", "/> + </names> + </if> + </choose> + </group> </macro> <macro name="series-editor"> <names variable="original-author"> @@ -19643,7 +23465,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-author-date', '20 <names variable="author"> <name and="text" name-as-sort-order="first" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/> - <label form="short" prefix=", " suffix="." text-case="lowercase"/> + <label form="verb-short" prefix=", " suffix="." text-case="lowercase"/> <substitute> <names variable="editor"/> <names variable="translator"/> @@ -19770,7 +23592,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-author-date', '20 <text macro="title" prefix=" " suffix="."/> <group prefix=" " delimiter=", "> <text variable="edition" suffix=" ed."/> - <text macro="editor" suffix="."/> + <text macro="secondary-contributor" suffix="."/> <text variable="genre"/> <text macro="publisher"/> </group> @@ -19780,7 +23602,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-author-date', '20 <text macro="title" prefix=" " suffix="."/> <text macro="edition"/> <text macro="volumes"/> - <text macro="editor" suffix="."/> + <text macro="secondary-contributor" suffix="."/> <text macro="publisher"/> </group> </else-if> @@ -19792,7 +23614,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-author-date', '20 <text term="in" text-case="capitalize-first"/> <text variable="container-title" font-style="italic"/> </group> - <text macro="editor" prefix=" "/> + <text macro="secondary-contributor" prefix=" "/> <group delimiter=" "> <text variable="volume" prefix="Vol. " suffix=" of"/> <text variable="collection-title" font-style="italic"/> @@ -19806,7 +23628,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-author-date', '20 <else> <group suffix="." > <text macro="title" prefix=" " /> - <text macro="editor" prefix=" "/> + <text macro="secondary-contributor" prefix=" "/> </group> <group class="container" prefix=" " suffix="." delimiter=" "> <text variable="container-title" font-style="italic"/> @@ -19826,7 +23648,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-author-date', '20 </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-fullnote-bibliography', '2008-01-03 23:00:00', 'Chicago Manual of Style (Full Note with Bibliography)', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-fullnote-bibliography', '2008-02-02 00:00:00', 'Chicago Manual of Style (Full Note with Bibliography)', '<style xmlns="http://purl.org/net/xbiblio/csl" class="note" xml:lang="en"> <info> <title>Chicago Manual of Style (Full Note with Bibliography)</title> @@ -19848,27 +23670,65 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-fullnote-bibliogr <summary>Chicago format with full notes and bibliography</summary> <category term="generic-base"/> <category term="numeric"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> </info> - <macro name="editor-translator"> - <names variable="editor translator" delimiter=", "> - <label form="verb" prefix=" " text-case="lowercase" suffix=" "/> + <macro name="translator"> + <choose> + <if variable="author editor" match="any"> + <names variable="translator" delimiter=", "> + <label form="verb-short" prefix=" " text-case="lowercase" suffix=". "/> <name and="text" delimiter=", "/> </names> + </if> + </choose> </macro> - <macro name="editor-translator-bib"> - <names variable="editor translator" delimiter=". "> + <macro name="translator-bib"> + <choose> + <if variable="author editor" match="any"> + <names variable="translator" delimiter=". "> <label form="verb" prefix=" " text-case="capitalize-first" suffix=" "/> <name and="text" delimiter=", "/> </names> + </if> + </choose> </macro> - <macro name="editor-translator-short"> + <macro name="secondary-contributor"> + <group delimiter=", "> + <names variable="editor" delimiter=", "> + <label form="verb-short" prefix=" " text-case="lowercase" suffix=". "/> + <name and="text" delimiter=", "/> + </names> + <choose> + <if type="article-journal article-magazine article-newspaper" match="none"> + <text macro="translator"/> + </if> + </choose> + </group> + </macro> + <macro name="secondary-contributor-bib"> + <group delimiter=". "> + <names variable="editor" delimiter=". "> + <label form="verb" prefix=" " text-case="capitalize-first" suffix=" "/> + <name and="text" delimiter=", "/> + </names> + <choose> + <if type="article-journal article-magazine article-newspaper" match="none"> + <text macro="translator-bib"/> + </if> + </choose> + </group> + </macro> + <macro name="translator-article"> + <choose> + <if type="article-journal article-magazine article-newspaper" match="any"> + <text macro="translator"/> + </if> + </choose> + </macro> + <macro name="translator-article-bib"> <choose> - <if variable="author"> - <names variable="editor translator" delimiter=", "> - <label form="short" prefix=" " text-case="lowercase" suffix=". "/> - <name and="text" delimiter=", "/> - </names> + <if type="article-journal article-magazine article-newspaper" match="any"> + <text macro="translator-bib"/> </if> </choose> </macro> @@ -19876,7 +23736,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-fullnote-bibliogr <names variable="author"> <name and="text" sort-separator=", " delimiter=", "/> - <label form="short" prefix=", " suffix="."/> + <label form="verb-short" prefix=", " suffix="."/> <substitute> <names variable="editor"/> <names variable="translator"/> @@ -19887,28 +23747,28 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-fullnote-bibliogr <names variable="author"> <name name-as-sort-order="first" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/> - <label form="short" prefix=", " suffix="."/> + <label form="verb-short" prefix=", " suffix="."/> <substitute> <names variable="editor"/> <names variable="translator"/> </substitute> </names> </macro> - <macro name="author-full"> + <macro name="author-short"> <names variable="author"> - <name name-as-sort-order="all" and="text" sort-separator=", " - delimiter=", " delimiter-precedes-last="always"/> - <label form="short" prefix=", " suffix="."/> + <name form="short" and="text" delimiter=", " /> + <label form="verb-short" prefix=", " suffix="."/> <substitute> <names variable="editor"/> <names variable="translator"/> </substitute> </names> </macro> - <macro name="author-short"> + <macro name="author-sort"> <names variable="author"> - <name form="short" and="text" delimiter=", " /> - <label form="short" prefix=", " suffix="."/> + <name name-as-sort-order="all" and="text" sort-separator=", " + delimiter=", " delimiter-precedes-last="always"/> + <label form="verb-short" prefix=", " suffix="."/> <substitute> <names variable="editor"/> <names variable="translator"/> @@ -19921,6 +23781,21 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-fullnote-bibliogr <name and="text" delimiter=", "/> </names> </macro> + <macro name="recipient-bib"> + <choose> + <if type="personal_communication"> + <choose> + <if variable="genre"> + <text variable="genre" text-case="capitalize-first"/> + </if> + <else> + <text term="letter" text-case="capitalize-first"/> + </else> + </choose> + </if> + </choose> + <text macro="recipient" prefix=" "/> + </macro> <macro name="recipient-short"> <names variable="recipient"> <label form="verb" prefix=" " text-case="lowercase" suffix=" "/> @@ -19939,55 +23814,175 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-fullnote-bibliogr <name and="text" delimiter=", "/> </names> </macro> - <macro name="access"> - <group> - <text variable="URL"/> - <group prefix=" (" suffix=")" delimiter=" "> - <text term="accessed" text-case="lowercase" suffix=" "/> - <date variable="accessed" suffix=", "> - <date-part name="month" suffix=" "/> - <date-part name="day" suffix=", "/> - <date-part name="year"/> - </date> - </group> - </group> - </macro> <macro name="title"> <choose> - <if type="book"> - <text variable="title" font-style="italic" text-case="title"/> + <if variable="title" match="none"> + <text variable="genre"/> + </if> + <else-if type="book"> + <text variable="title" font-style="italic"/> + </else-if> + <else> + <text variable="title" quotes="true"/> + </else> + </choose> + </macro> + <macro name="title-bib"> + <choose> + <if variable="title" match="none"> + <text variable="genre" text-case="capitalize-first"/> </if> + <else-if type="book"> + <text variable="title" font-style="italic"/> + </else-if> <else> - <text variable="title" quotes="true" text-case="title"/> + <text variable="title" quotes="true"/> </else> </choose> </macro> <macro name="title-short"> <choose> - <if type="book"> - <text variable="title" form="short" font-style="italic" text-case="title"/> + <if variable="title" match="none"> + <choose> + <if type="interview"> + <text term="interview" text-case="lowercase"/> + </if> + <else-if type="manuscript paper-conference" match="any"> + <text variable="genre" form="short"/> + </else-if> + <else-if type="personal_communication"> + <text macro="issued"/> + </else-if> + </choose> </if> + <else-if type="book"> + <text variable="title" form="short" font-style="italic"/> + </else-if> <else> - <text variable="title" form="short" quotes="true" text-case="title"/> + <text variable="title" form="short" quotes="true"/> </else> </choose> </macro> - <macro name="event"> - <text variable="event"/> - <text variable="event-place" prefix=", "/> - </macro> + <macro name="description"> + <group delimiter=", "> + <text macro="interviewer"/> + <text variable="medium"/> + <choose> + <if variable="title" match="none"> </if> + <else-if type="thesis paper-conference" match="any"> </else-if> + <else> + <text variable="genre"/> + </else> + </choose> + </group> + </macro> + <macro name="description-bib"> + <group delimiter=", "> + <group delimiter=". "> + <text macro="interviewer-bib"/> + <text variable="medium" text-case="capitalize-first"/> + </group> + <choose> + <if variable="title" match="none"> </if> + <else-if type="thesis paper-conference" match="any"> </else-if> + <else> + <text variable="genre" text-case="capitalize-first"/> + </else> + </choose> + </group> + </macro> + <macro name="container-prefix"> + <choose> + <if type="chapter"> + <text term="in" text-case="lowercase" suffix=" "/> + </if> + </choose> + </macro> + <macro name="container-prefix-bib"> + <choose> + <if type="chapter"> + <text term="in" text-case="capitalize-first" suffix=" "/> + </if> + </choose> + </macro> + <macro name="locators"> + <choose> + <if type="article-journal"> + <text variable="volume" prefix=" "/> + <text variable="issue" prefix=", no. "/> + </if> + <else-if type="book"> + <group prefix=", " delimiter=", "> + <group> + <text term="volume" form="short" suffix=". "/> + <number variable="volume" form="numeric"/> + </group> + <choose> + <if variable="locator" match="none"> + <group> + <number variable="number-of-volumes" form="numeric"/> + <text term="volume" form="short" prefix=" " suffix="." plural="true"/> + </group> + </if> + </choose> + <text variable="edition"/> + </group> + </else-if> + </choose> + </macro> + <macro name="locators-bib"> + <choose> + <if type="article-journal"> + <text variable="volume" prefix=" "/> + <text variable="issue" prefix=", no. "/> + </if> + <else-if type="book"> + <group prefix=". " delimiter=". "> + <group> + <text term="volume" form="short" text-case="capitalize-first" suffix=". "/> + <number variable="volume" form="numeric"/> + </group> + <choose> + <if variable="locator" match="none"> + <group> + <number variable="number-of-volumes" form="numeric"/> + <text term="volume" form="short" prefix=" " suffix="." plural="true"/> + </group> + </if> + </choose> + <text variable="edition"/> + </group> + </else-if> + </choose> + </macro> + <macro name="locators-newspaper"> + <choose> + <if type="article-newspaper"> + <group delimiter=", "> + <group> + <text variable="edition" suffix=" "/> + <text term="edition" prefix=" "/> + </group> + <group> + <text term="section" form="short" suffix=". "/> + <text variable="section"/> + </group> + </group> + </if> + </choose> + </macro> + <macro name="event"> + <group> + <text term="presented at" suffix=" "/> + <text variable="event"/> + </group> + </macro> <macro name="publisher"> <group delimiter=": "> <text variable="publisher-place"/> <text variable="publisher"/> </group> </macro> - <macro name="archive"> - <group delimiter=", "> - <text variable="archive"/> - <text variable="archive-place"/> - </group> - </macro> <macro name="issued"> <choose> <if type="graphic report" match="any"> @@ -20011,8 +24006,138 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-fullnote-bibliogr </else> </choose> </macro> + <macro name="locator"> + <choose> + <if variable="locator" match="none"> + <text macro="pages"/> + </if> + <else-if type="article-journal"> + <text variable="locator" prefix=": "/> + </else-if> + <else> + <text variable="locator" prefix=", "/> + </else> + </choose> + </macro> + <macro name="pages"> + <choose> + <if type="article-journal"> + <text variable="page" prefix=": "/> + </if> + <else-if type="chapter"> + <text variable="page" prefix=", "/> + </else-if> + </choose> + </macro> + <macro name="pages-chapter"> + <choose> + <if type="chapter"> + <text variable="page" prefix=", "/> + </if> + </choose> + </macro> + <macro name="pages-article"> + <choose> + <if type="article-journal"> + <text variable="page" prefix=": "/> + </if> + </choose> + </macro> + <macro name="archive"> + <group delimiter=", "> + <text variable="archive_location"/> + <text variable="archive"/> + <text variable="archive-place"/> + </group> + </macro> + <macro name="archive-bib"> + <group delimiter=". "> + <text variable="archive_location" text-case="capitalize-first"/> + <text variable="archive"/> + <text variable="archive-place"/> + </group> + </macro> + <macro name="issue"> + <choose> + <if type="article-journal"> + <text macro="issued" prefix=" (" suffix=")"/> + </if> + <else-if variable="publisher-place publisher" match="any"> + <group prefix=" (" suffix=")" delimiter=", "> + <group delimiter=" "> + <choose> + <if variable="title" match="none"> </if> + <else-if type="thesis paper-conference" match="any"> + <text variable="genre"/> + </else-if> + </choose> + <text macro="event"/> + </group> + <text macro="publisher"/> + <text macro="issued"/> + </group> + </else-if> + <else> + <text macro="issued" prefix=", "/> + </else> + </choose> + </macro> + <macro name="issue-bib"> + <choose> + <if type="article-journal"> + <text macro="issued" prefix=" (" suffix=")"/> + </if> + <else-if variable="publisher-place publisher" match="any"> + <choose> + <if variable="title" match="none"> </if> + <else-if type="paper-conference"> + <text variable="genre" text-case="capitalize-first" prefix=". "/> + </else-if> + </choose> + <text macro="event" prefix=" "/> + <group prefix=". " delimiter=", "> + <choose> + <if type="thesis"> + <text variable="genre" text-case="capitalize-first"/> + </if> + </choose> + <text macro="publisher"/> + <text macro="issued"/> + </group> + </else-if> + <else> + <text macro="issued" prefix=", "/> + </else> + </choose> + </macro> + <macro name="access"> + <group delimiter=", "> + <choose> + <if type="graphic report" match="any"> + <text macro="archive"/> + </if> + <else-if type="book thesis chapter article-journal article-newspaper article-magazine" match="none"> + <text macro="archive"/> + </else-if> + </choose> + <text variable="URL"/> + </group> + </macro> + <macro name="access-bib"> + <group delimiter=". "> + <choose> + <if type="graphic report" match="any"> + <text macro="archive-bib"/> + </if> + <else-if type="book thesis chapter article-journal article-newspaper article-magazine" match="none"> + <text macro="archive-bib"/> + </else-if> + </choose> + <text variable="URL"/> + </group> + </macro> <macro name="sort-key"> - <text macro="author-full" suffix=" "/> + <text macro="author-sort" suffix=" "/> <text variable="title" suffix=" "/> <text variable="genre"/> </macro> @@ -20026,160 +24151,47 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-fullnote-bibliogr <option name="disambiguate-add-givenname" value="true"/> <layout prefix="" suffix="." delimiter="; "> <choose> - <if position="ibid-with-locator"> - <group delimiter=", "> - <text term="ibid" text-case="capitalize-first" suffix="."/> - <text variable="locator"/> - </group> - </if> - <else-if position="ibid"> - <text term="ibid" text-case="capitalize-first" suffix="."/> - </else-if> - <else-if position="subsequent"> - <group delimiter=", "> - <group> - <text macro="author-short"/> - <text macro="recipient-short"/> - </group> - <text macro="title-short"/> - <choose> - <if type="interview"> - <text term="interview" text-case="lowercase"/> - </if> - <else-if variable="recipient"> - <text macro="issued"/> - </else-if> - </choose> - <text variable="locator"/> - </group> - </else-if> - <else> - <group delimiter=", "> - <group> - <text macro="author"/> - <text macro="recipient"/> - </group> - <text macro="title"/> - </group> - <choose> - <if type="thesis"> - <group prefix=" (" delimiter=", " suffix=")"> - <text variable="genre"/> - <text variable="publisher"/> - <text macro="issued"/> - </group> - </if> - <else-if type="chapter"> - <group delimiter=", "> - <group class="container" prefix=", " delimiter=" "> - <text term="in" text-case="lowercase"/> - <text variable="container-title" font-style="italic"/> - </group> - <text macro="editor-translator"/> - </group> - <group prefix=" (" suffix=")" delimiter=", "> - <text macro="publisher"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="article-journal"> - <group class="container" prefix=", "> - <text variable="container-title" font-style="italic" prefix=" "/> - <text macro="publisher"/> - <text variable="volume" prefix=" "/> - <text variable="issue" prefix=", no. "/> - <text macro="issued" prefix=" (" suffix=")"/> - </group> - </else-if> - <else-if type="article-newspaper article-magazine" match="any"> - <group prefix=", " delimiter=", "> - <text macro="editor-translator"/> - <text variable="container-title" font-style="italic"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="paper-conference"> - <text macro="editor-translator" prefix=", "/> - <text variable="genre" prefix=", " suffix=" presented at the "/> - <text macro="event" suffix=", "/> - <text macro="issued"/> - </else-if> - <else-if type="interview"> - <group prefix=", " delimiter=", "> - <text macro="interviewer"/> - <text variable="medium"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="personal_communication"> - <group prefix=", " delimiter=", "> - <text variable="genre"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="graphic"> - <group prefix=", " delimiter=", "> - <text variable="medium"/> - <text macro="publisher"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="report"> - <text macro="editor-translator" prefix=", "/> - <text variable="genre" prefix=", "/> - <choose> - <if variable="publisher-place publisher" match="any"> - <group prefix=" (" suffix=")" delimiter=", "> - <text macro="publisher"/> - <text macro="issued"/> - </group> - </if> - <else> - <text macro="issued" prefix=", "/> - </else> - </choose> - </else-if> - <else-if type="book"> - <text macro="editor-translator" prefix=", "/> - <text variable="collection-title" prefix=", "/> - <group prefix=" (" suffix=")" delimiter=", "> - <text macro="publisher"/> - <text macro="issued"/> - </group> - </else-if> - <else> - <group class="container" prefix=", " delimiter=", "> - <text macro="editor-translator"/> - <text variable="container-title" font-style="italic"/> - <text variable="collection-title" font-style="italic"/> - <text variable="genre"/> - <text variable="medium"/> - <text macro="issued"/> - </group> - </else> - </choose> - <choose> - <if type="article-journal"> - <text variable="locator" prefix=": "/> - </if> - <else> - <text variable="locator" prefix=", "/> - </else> - </choose> - <choose> - <if type="book thesis chapter article-journal article-newspaper article-magazine" match="none"> - <group prefix=", " delimiter=", "> - <text variable="archive_location"/> - <text macro="archive"/> - </group> - </if> - </choose> - <choose> - <if variable="page" match="none"> - <text variable="URL" prefix=", "/> - </if> - </choose> - </else> + <if position="ibid-with-locator"> + <group delimiter=", "> + <text term="ibid" text-case="capitalize-first" suffix="."/> + <text variable="locator"/> + </group> + </if> + <else-if position="ibid"> + <text term="ibid" text-case="capitalize-first" suffix="."/> + </else-if> + <else-if position="subsequent"> + <group delimiter=", "> + <group> + <text macro="author-short"/> + <text macro="recipient-short"/> + </group> + <text macro="title-short"/> + <text variable="locator"/> + </group> + </else-if> + <else> + <group delimiter=", "> + <group> + <text macro="author"/> + <text macro="recipient"/> + </group> + <text macro="title"/> + <text macro="description"/> + <text macro="translator-article"/> + <group> + <text macro="container-prefix"/> + <text variable="container-title" font-style="italic"/> + </group> + <text macro="secondary-contributor"/> + </group> + <text macro="locators"/> + <text variable="collection-title" prefix=", "/> + <text macro="issue"/> + <text macro="locators-newspaper" prefix=", "/> + <text macro="locator"/> + <text macro="access" prefix=", "/> + </else> </choose> </layout> </citation> @@ -20193,122 +24205,30 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-fullnote-bibliogr </sort> <layout suffix="."> <group delimiter=". "> - <text macro="author-bib"/> - <text macro="title"/> - <choose> - <if type="thesis"> - <group delimiter=", "> - <text variable="genre"/> - <text variable="publisher"/> - <text macro="issued"/> - </group> - </if> - <else-if type="chapter"> - <group class="container"> - <group delimiter=". "> - <group delimiter=" "> - <text term="in" text-case="capitalize-first"/> - <text variable="container-title" font-style="italic" /> - </group> - <text variable="collection-title"/> - <text macro="editor-translator-bib" /> - </group> - <text variable="page" prefix=", "/> - <text macro="publisher" prefix=". "/> - <text macro="issued" prefix=", "/> - </group> - </else-if> - <else-if type="article-journal"> - <text macro="editor-translator-bib" suffix=". "/> - <group class="container"> - <text variable="container-title" font-style="italic"/> - <text variable="volume" prefix=" "/> - <text variable="issue" prefix=", no. "/> - <text macro="issued" prefix=" (" suffix=")"/> - <text variable="page" prefix=": "/> - </group> - </else-if> - <else-if type="article-newspaper article-magazine" match="any"> - <text macro="editor-translator-bib" suffix=". "/> - <group delimiter=", "> - <text variable="container-title" font-style="italic"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="paper-conference"> - <text macro="editor-translator-bib" suffix=". "/> - <text variable="genre" text-case="capitalize-first" suffix=" presented at the "/> - <text variable="event" suffix=", "/> - <text variable="event-place" suffix=", "/> - <text macro="issued"/> - </else-if> - <else-if type="interview"> - <group delimiter=". " suffix="."> - <text macro="interviewer-bib"/> - <text variable="medium" text-case="capitalize-first"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="personal_communication"> - <choose> - <if variable="genre"> - <text variable="genre" text-case="capitalize-first"/> - </if> - <else> - <text term="letter" text-case="capitalize-first"/> - </else> - </choose> - <text macro="recipient" prefix=" "/> - <text macro="issued" prefix=". "/> - </else-if> - <else-if type="graphic"> - <text variable="medium" text-case="capitalize-first" suffix=". "/> - <text macro="publisher" suffix=", "/> - <text macro="issued"/> - </else-if> - <else-if type="report"> - <text macro="editor-translator-bib" suffix=". "/> - <text variable="genre" suffix=". "/> - <text macro="publisher" suffix=", "/> - <text macro="issued"/> - </else-if> - <else-if type="book"> - <text macro="editor-translator-bib" suffix=". "/> - <text variable="collection-title" suffix=". "/> - <text macro="publisher" suffix=", "/> - <text macro="issued"/> - </else-if> - <else> - <group class="container" delimiter=". "> - <text macro="editor-translator-bib"/> - <text variable="container-title" font-style="italic"/> - <text variable="collection-title" font-style="italic"/> - <text variable="genre" text-case="capitalize-first"/> - <text variable="medium" text-case="capitalize-first"/> - <text macro="issued"/> - </group> - </else> - </choose> - <choose> - <if type="book thesis chapter article-journal article-newspaper article-magazine" match="none"> - <group delimiter=". "> - <text variable="archive_location" text-case="title"/> - <text macro="archive"/> - </group> - </if> - </choose> - <choose> - <if variable="page" match="none"> - <text variable="URL"/> - </if> - </choose> + <text macro="author-bib"/> + <text macro="recipient-bib"/> + <text macro="title-bib"/> + <text macro="description-bib"/> + <text macro="translator-article-bib"/> + <group> + <text macro="container-prefix-bib"/> + <text variable="container-title" font-style="italic"/> + <text macro="pages-chapter"/> + </group> + <text macro="secondary-contributor-bib"/> </group> + <text macro="locators-bib"/> + <text variable="collection-title" text-case="capitalize-first" prefix=". "/> + <text macro="issue-bib"/> + <text macro="locators-newspaper" prefix=", "/> + <text macro="pages-article"/> + <text macro="access-bib" prefix=". "/> </layout> </bibliography> </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note-bibliography', '2008-01-03 23:00:00', 'Chicago Manual of Style (Note with Bibliography)', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note-bibliography', '2008-02-02 00:00:00', 'Chicago Manual of Style (Note with Bibliography)', '<?xml version="1.0" encoding="UTF-8"?> <?oxygen RNGSchema="http://xbiblio.svn.sourceforge.net/viewvc/*checkout*/xbiblio/csl/schema/trunk/csl.rnc" type="compact"?> <style xmlns="http://purl.org/net/xbiblio/csl" class="note" xml:lang="en"> @@ -20332,50 +24252,64 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note-bibliography <summary>Chicago format with short notes and full bibliography</summary> <category term="generic-base"/> <category term="numeric"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> </info> - <macro name="editor-translator"> - <names variable="editor translator" delimiter=". "> + <macro name="translator-bib"> + <choose> + <if variable="author editor" match="any"> + <names variable="translator" delimiter=". "> <label form="verb" prefix=" " text-case="capitalize-first" suffix=" "/> <name and="text" delimiter=", "/> </names> + </if> + </choose> </macro> - <macro name="editor-translator-short"> + <macro name="secondary-contributor-bib"> + <group delimiter=". "> + <names variable="editor" delimiter=". "> + <label form="verb" prefix=" " text-case="capitalize-first" suffix=" "/> + <name and="text" delimiter=", "/> + </names> + <choose> + <if type="article-journal article-magazine article-newspaper" match="none"> + <text macro="translator-bib"/> + </if> + </choose> + </group> + </macro> + <macro name="translator-article-bib"> <choose> - <if variable="author"> - <names variable="editor translator" delimiter=", "> - <label form="short" prefix=" " text-case="lowercase" suffix=". "/> - <name and="text" delimiter=", "/> - </names> + <if type="article-journal article-magazine article-newspaper" match="any"> + <text macro="translator-bib"/> </if> </choose> </macro> - <macro name="author"> + <macro name="author-bib"> <names variable="author"> <name name-as-sort-order="first" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/> - <label form="short" prefix=", " suffix="."/> + <label form="verb-short" prefix=", " suffix="."/> <substitute> <names variable="editor"/> <names variable="translator"/> </substitute> </names> - </macro> - <macro name="author-full"> + </macro> + <macro name="author-short"> <names variable="author"> - <name name-as-sort-order="all" and="text" sort-separator=", " - delimiter=", " delimiter-precedes-last="always"/> - <label form="short" prefix=", " suffix="."/> + <name form="short" and="text" delimiter=", " /> + <label form="verb-short" prefix=", " suffix="."/> <substitute> <names variable="editor"/> <names variable="translator"/> </substitute> </names> </macro> - <macro name="author-short"> + <macro name="author-sort"> <names variable="author"> - <name form="short" and="text" delimiter=", " /> - <label form="short" prefix=", " suffix="."/> + <name name-as-sort-order="all" and="text" sort-separator=", " + delimiter=", " delimiter-precedes-last="always"/> + <label form="verb-short" prefix=", " suffix="."/> <substitute> <names variable="editor"/> <names variable="translator"/> @@ -20388,63 +24322,144 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note-bibliography <name and="text" delimiter=", "/> </names> </macro> + <macro name="recipient-bib"> + <choose> + <if type="personal_communication"> + <choose> + <if variable="genre"> + <text variable="genre" text-case="capitalize-first"/> + </if> + <else> + <text term="letter" text-case="capitalize-first"/> + </else> + </choose> + </if> + </choose> + <text macro="recipient" prefix=" "/> + </macro> <macro name="recipient-short"> <names variable="recipient"> <label form="verb" prefix=" " text-case="lowercase" suffix=" "/> <name form="short" and="text" delimiter=", " /> </names> </macro> - <macro name="interviewer"> + <macro name="interviewer-bib"> <names variable="interviewer" delimiter=", "> <label form="verb" prefix=" " text-case="capitalize-first" suffix=" "/> <name and="text" delimiter=", "/> </names> </macro> - <macro name="access"> - <group> - <text variable="URL"/> - <group prefix=" (" suffix=")" delimiter=" "> - <text term="accessed" text-case="lowercase" suffix=" "/> - <date variable="accessed" suffix=", "> - <date-part name="month" suffix=" "/> - <date-part name="day" suffix=", "/> - <date-part name="year"/> - </date> - </group> - </group> - </macro> - <macro name="title"> + <macro name="title-bib"> <choose> - <if type="book"> - <text variable="title" font-style="italic" text-case="title"/> + <if variable="title" match="none"> + <text variable="genre" text-case="capitalize-first"/> </if> + <else-if type="book"> + <text variable="title" font-style="italic"/> + </else-if> <else> - <text variable="title" quotes="true" text-case="title"/> + <text variable="title" quotes="true"/> </else> </choose> </macro> <macro name="title-short"> <choose> - <if type="book"> - <text variable="title" form="short" font-style="italic" text-case="title"/> + <if variable="title" match="none"> + <choose> + <if type="interview"> + <text term="interview" text-case="lowercase"/> + </if> + <else-if type="manuscript paper-conference" match="any"> + <text variable="genre" form="short"/> + </else-if> + <else-if type="personal_communication"> + <text macro="issued"/> + </else-if> + </choose> </if> + <else-if type="book"> + <text variable="title" form="short" font-style="italic"/> + </else-if> <else> - <text variable="title" form="short" quotes="true" text-case="title"/> + <text variable="title" form="short" quotes="true"/> </else> </choose> </macro> + <macro name="description-bib"> + <group delimiter=", "> + <group delimiter=". "> + <text macro="interviewer-bib"/> + <text variable="medium" text-case="capitalize-first"/> + </group> + <choose> + <if variable="title" match="none"> </if> + <else-if type="thesis paper-conference" match="any"> </else-if> + <else> + <text variable="genre" text-case="capitalize-first"/> + </else> + </choose> + </group> + </macro> + <macro name="container-prefix-bib"> + <choose> + <if type="chapter"> + <text term="in" text-case="capitalize-first" suffix=" "/> + </if> + </choose> + </macro> + <macro name="locators-bib"> + <choose> + <if type="article-journal"> + <text variable="volume" prefix=" "/> + <text variable="issue" prefix=", no. "/> + </if> + <else-if type="book"> + <group prefix=". " delimiter=". "> + <group> + <text term="volume" form="short" text-case="capitalize-first" suffix=". "/> + <number variable="volume" form="numeric"/> + </group> + <choose> + <if variable="locator" match="none"> + <group> + <number variable="number-of-volumes" form="numeric"/> + <text term="volume" form="short" prefix=" " suffix="." plural="true"/> + </group> + </if> + </choose> + <text variable="edition"/> + </group> + </else-if> + </choose> + </macro> + <macro name="locators-newspaper"> + <choose> + <if type="article-newspaper"> + <group delimiter=", "> + <group> + <text variable="edition" suffix=" "/> + <text term="edition" prefix=" "/> + </group> + <group> + <text term="section" form="short" suffix=". "/> + <text variable="section"/> + </group> + </group> + </if> + </choose> + </macro> + <macro name="event"> + <group> + <text term="presented at" suffix=" "/> + <text variable="event"/> + </group> + </macro> <macro name="publisher"> <group delimiter=": "> <text variable="publisher-place"/> <text variable="publisher"/> </group> </macro> - <macro name="archive"> - <group delimiter=", "> - <text variable="archive"/> - <text variable="archive-place"/> - </group> - </macro> <macro name="issued"> <choose> <if type="graphic report" match="any"> @@ -20468,8 +24483,70 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note-bibliography </else> </choose> </macro> + <macro name="pages-chapter"> + <choose> + <if type="chapter"> + <text variable="page" prefix=", "/> + </if> + </choose> + </macro> + <macro name="pages-article"> + <choose> + <if type="article-journal"> + <text variable="page" prefix=": "/> + </if> + </choose> + </macro> + <macro name="archive-bib"> + <group delimiter=". "> + <text variable="archive_location" text-case="capitalize-first"/> + <text variable="archive"/> + <text variable="archive-place"/> + </group> + </macro> + <macro name="issue-bib"> + <choose> + <if type="article-journal"> + <text macro="issued" prefix=" (" suffix=")"/> + </if> + <else-if variable="publisher-place publisher" match="any"> + <choose> + <if variable="title" match="none"> </if> + <else-if type="paper-conference"> + <text variable="genre" text-case="capitalize-first" prefix=". "/> + </else-if> + </choose> + <text macro="event" prefix=" "/> + <group prefix=". " delimiter=", "> + <choose> + <if type="thesis"> + <text variable="genre" text-case="capitalize-first"/> + </if> + </choose> + <text macro="publisher"/> + <text macro="issued"/> + </group> + </else-if> + <else> + <text macro="issued" prefix=", "/> + </else> + </choose> + </macro> + <macro name="access-bib"> + <group delimiter=". "> + <choose> + <if type="graphic report" match="any"> + <text macro="archive-bib"/> + </if> + <else-if type="book thesis chapter article-journal article-newspaper article-magazine" match="none"> + <text macro="archive-bib"/> + </else-if> + </choose> + <text variable="URL"/> + </group> + </macro> <macro name="sort-key"> - <text macro="author-full" suffix=" "/> + <text macro="author-sort" suffix=" "/> <text variable="title" suffix=" "/> <text variable="genre"/> </macro> @@ -20482,147 +24559,66 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note-bibliography <option name="disambiguate-add-names" value="true"/> <option name="disambiguate-add-givenname" value="true"/> <layout prefix="" suffix="." delimiter="; "> - <group delimiter=", "> - <group> - <text macro="author-short"/> - <text macro="recipient-short"/> - </group> - <text macro="title-short"/> - <choose> - <if type="interview"> - <text term="interview" text-case="lowercase"/> - </if> - <else-if variable="recipient"> - <text macro="issued"/> - </else-if> - </choose> - <text variable="locator"/> - </group> - </layout> - </citation> - <bibliography> - <option name="hanging-indent" value="true"/> - <option name="et-al-min" value="6"/> - <option name="et-al-use-first" value="6"/> - <option name="subsequent-author-substitute" value="---"/> - <sort> - <key macro="sort-key"/> - </sort> - <layout suffix="."> - <group delimiter=". "> - <text macro="author"/> - <text macro="title"/> - <choose> - <if type="thesis"> - <group delimiter=", "> - <text variable="genre"/> - <text variable="publisher"/> - <text macro="issued"/> - </group> - </if> - <else-if type="chapter"> - <group class="container"> - <text term="in" text-case="capitalize-first"/> - <text variable="container-title" font-style="italic" prefix=" "/> - <text variable="collection-title" prefix=". "/> - <text macro="editor-translator" prefix=". "/> - <text variable="page" prefix=", "/> - <text macro="publisher" prefix=". "/> - <text macro="issued" prefix=", "/> - </group> - </else-if> - <else-if type="article-journal"> - <text macro="editor-translator" suffix=". "/> - <group class="container"> - <text variable="container-title" font-style="italic"/> - <text variable="volume" prefix=" "/> - <text variable="issue" prefix=", no. "/> - <text macro="issued" prefix=" (" suffix=")"/> - <text variable="page" prefix=": "/> - </group> - </else-if> - <else-if type="article-newspaper article-magazine" match="any"> - <text macro="editor-translator" suffix=". "/> - <group delimiter=", "> - <text variable="container-title" font-style="italic"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="paper-conference"> - <text macro="editor-translator" suffix=". "/> - <text variable="genre" text-case="capitalize-first" suffix=" presented at the "/> - <text variable="event" suffix=", "/> - <text variable="event-place" suffix=", "/> - <text macro="issued"/> - </else-if> - <else-if type="interview"> - <group delimiter=". " suffix="."> - <text macro="interviewer"/> - <text variable="medium" text-case="capitalize-first"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="personal_communication"> - <choose> - <if variable="genre"> - <text variable="genre" text-case="capitalize-first"/> - </if> - <else> - <text term="letter" text-case="capitalize-first"/> - </else> - </choose> - <text macro="recipient" prefix=" "/> - <text macro="issued" prefix=". "/> - </else-if> - <else-if type="graphic"> - <text variable="medium" text-case="capitalize-first" suffix=". "/> - <text macro="publisher" suffix=", "/> - <text macro="issued"/> - </else-if> - <else-if type="report"> - <text macro="editor-translator" suffix=". "/> - <text variable="genre" suffix=". "/> - <text macro="publisher" suffix=", "/> - <text macro="issued"/> - </else-if> - <else-if type="book"> - <text macro="editor-translator" suffix=". "/> - <text variable="collection-title" suffix=". "/> - <text macro="publisher" suffix=", "/> - <text macro="issued"/> - </else-if> - <else> - <group class="container" delimiter=". "> - <text macro="editor-translator"/> - <text variable="container-title" font-style="italic"/> - <text variable="collection-title" font-style="italic"/> - <text variable="genre" text-case="capitalize-first"/> - <text variable="medium" text-case="capitalize-first"/> - <text macro="issued"/> - </group> - </else> - </choose> - <choose> - <if type="book thesis chapter article-journal article-newspaper article-magazine" match="none"> - <group delimiter=". "> - <text variable="archive_location" text-case="title"/> - <text macro="archive"/> - </group> - </if> - </choose> - <choose> - <if variable="page" match="none"> - <text variable="URL"/> - </if> - </choose> + <choose> + <if position="ibid-with-locator"> + <group delimiter=", "> + <text term="ibid" text-case="capitalize-first" suffix="."/> + <text variable="locator"/> + </group> + </if> + <else-if position="ibid"> + <text term="ibid" text-case="capitalize-first" suffix="."/> + </else-if> + <else> + <group delimiter=", "> + <group> + <text macro="author-short"/> + <text macro="recipient-short"/> + </group> + <text macro="title-short"/> + <text variable="locator"/> + </group> + </else> + </choose> + </layout> + </citation> + <bibliography> + <option name="hanging-indent" value="true"/> + <option name="et-al-min" value="6"/> + <option name="et-al-use-first" value="6"/> + <option name="subsequent-author-substitute" value="---"/> + <sort> + <key macro="sort-key"/> + </sort> + <layout suffix="."> + <group delimiter=". "> + <text macro="author-bib"/> + <text macro="recipient-bib"/> + <text macro="title-bib"/> + <text macro="description-bib"/> + <text macro="translator-article-bib"/> + <group> + <text macro="container-prefix-bib"/> + <text variable="container-title" font-style="italic"/> + <text macro="pages-chapter"/> + </group> + <text macro="secondary-contributor-bib"/> </group> + <text macro="locators-bib"/> + <text variable="collection-title" text-case="capitalize-first" prefix=". "/> + <text macro="issue-bib"/> + <text macro="locators-newspaper" prefix=", "/> + <text macro="pages-article"/> + <text macro="access-bib" prefix=". "/> </layout> </bibliography> </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note', '2008-01-03 23:00:00', 'Chicago Manual of Style (Note without Bibliography)', -'<style xmlns="http://purl.org/net/xbiblio/csl" class="note" xml:lang="en"> +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note', '2008-02-02 00:00:00', 'Chicago Manual of Style (Note without Bibliography)', +'<?xml version="1.0" encoding="UTF-8"?> +<?oxygen RNGSchema="http://xbiblio.svn.sourceforge.net/viewvc/*checkout*/xbiblio/csl/schema/trunk/csl.rnc" type="compact"?> +<style xmlns="http://purl.org/net/xbiblio/csl" class="note" xml:lang="en"> <info> <title>Chicago Manual of Style (Note without Bibliography)</title> <id>http://www.zotero.org/styles/chicago-note</id> @@ -20634,62 +24630,64 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note', '2008-01-0 </author> <contributor> <name>Simon Kornblith</name> - <email>simon@simonster.com</email> + <email>simon@simonster.com</email> </contributor> <contributor> <name>Elena Razlogova</name> - <email>elena.razlogova@gmail.com</email> + <email>elena.razlogova@gmail.com</email> </contributor> <summary>Chicago format with full notes and no bibliography</summary> <category term="generic-base"/> - <category term="numeric"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <category term="note"/> + <updated>2008-02-02T00:00:00+00:00</updated> </info> - <macro name="editor-translator"> - <names variable="editor translator" delimiter=", "> - <label form="verb" prefix=" " text-case="lowercase" suffix=" "/> + <macro name="translator"> + <choose> + <if variable="author editor" match="any"> + <names variable="translator" delimiter=", "> + <label form="verb-short" prefix=" " text-case="lowercase" suffix=". "/> <name and="text" delimiter=", "/> </names> + </if> + </choose> </macro> - <macro name="editor-translator-short"> + <macro name="secondary-contributor"> + <group delimiter=", "> + <names variable="editor" delimiter=", "> + <label form="verb-short" prefix=" " text-case="lowercase" suffix=". "/> + <name and="text" delimiter=", "/> + </names> + <choose> + <if type="article-journal article-magazine article-newspaper" match="none"> + <text macro="translator"/> + </if> + </choose> + </group> + </macro> + <macro name="translator-article"> <choose> - <if variable="author"> - <names variable="editor translator" delimiter=", "> - <label form="short" prefix=" " text-case="lowercase" suffix=". "/> - <name and="text" delimiter=", "/> - </names> + <if type="article-journal article-magazine article-newspaper" match="any"> + <text macro="translator"/> </if> </choose> </macro> <macro name="author"> <names variable="author"> - <name and="text" sort-separator=", " - delimiter=", "/> - <label form="short" prefix=", " suffix="."/> - <substitute> - <names variable="editor"/> - <names variable="translator"/> - </substitute> - </names> - </macro> - <macro name="author-full"> - <names variable="author"> - <name and="text" sort-separator=", " - delimiter=", "/> - <label form="short" prefix=", " suffix="."/> + <name and="text" sort-separator=", " delimiter=", "/> + <label form="verb-short" prefix=", " suffix="."/> <substitute> - <names variable="editor"/> - <names variable="translator"/> + <names variable="editor"/> + <names variable="translator"/> </substitute> </names> </macro> <macro name="author-short"> <names variable="author"> - <name form="short" and="text" delimiter=", " /> - <label form="short" prefix=", " suffix="."/> + <name form="short" and="text" delimiter=", "/> + <label form="verb-short" prefix=", " suffix="."/> <substitute> - <names variable="editor"/> - <names variable="translator"/> + <names variable="editor"/> + <names variable="translator"/> </substitute> </names> </macro> @@ -20700,9 +24698,9 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note', '2008-01-0 </names> </macro> <macro name="recipient-short"> - <names variable="recipient"> + <names variable="recipient"> <label form="verb" prefix=" " text-case="lowercase" suffix=" "/> - <name form="short" and="text" delimiter=", " /> + <name form="short" and="text" delimiter=", "/> </names> </macro> <macro name="interviewer"> @@ -20711,78 +24709,206 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note', '2008-01-0 <name and="text" delimiter=", "/> </names> </macro> - <macro name="access"> - <group> - <text variable="URL"/> - <group prefix=" (" suffix=")" delimiter=" "> - <text term="accessed" text-case="lowercase" suffix=" "/> - <date variable="accessed" suffix=", "> - <date-part name="month" suffix=" "/> - <date-part name="day" suffix=", "/> - <date-part name="year"/> - </date> - </group> - </group> - </macro> <macro name="title"> <choose> - <if type="book"> - <text variable="title" font-style="italic" text-case="title"/> + <if variable="title" match="none"> + <text variable="genre"/> </if> + <else-if type="book"> + <text variable="title" font-style="italic"/> + </else-if> <else> - <text variable="title" quotes="true" text-case="title"/> + <text variable="title" quotes="true"/> </else> </choose> </macro> <macro name="title-short"> <choose> - <if type="book"> - <text variable="title" form="short" font-style="italic" text-case="title"/> + <if variable="title" match="none"> + <choose> + <if type="interview"> + <text term="interview" text-case="lowercase"/> + </if> + <else-if type="manuscript paper-conference" match="any"> + <text variable="genre" form="short"/> + </else-if> + <else-if type="personal_communication"> + <text macro="issued"/> + </else-if> + </choose> </if> + <else-if type="book"> + <text variable="title" form="short" font-style="italic"/> + </else-if> <else> - <text variable="title" form="short" quotes="true" text-case="title"/> + <text variable="title" form="short" quotes="true"/> </else> </choose> </macro> - <macro name="event"> - <text variable="event"/> - <text variable="event-place" prefix=", "/> - </macro> + <macro name="description"> + <group delimiter=", "> + <text macro="interviewer"/> + <text variable="medium"/> + <choose> + <if variable="title" match="none"> </if> + <else-if type="thesis paper-conference" match="any"> </else-if> + <else> + <text variable="genre"/> + </else> + </choose> + </group> + </macro> + <macro name="container-prefix"> + <choose> + <if type="chapter"> + <text term="in" text-case="lowercase" suffix=" "/> + </if> + </choose> + </macro> + <macro name="locators"> + <choose> + <if type="article-journal"> + <text variable="volume" prefix=" "/> + <text variable="issue" prefix=", no. "/> + </if> + <else-if type="book"> + <group prefix=", " delimiter=", "> + <group> + <text term="volume" form="short" suffix=". "/> + <number variable="volume" form="numeric"/> + </group> + <choose> + <if variable="locator" match="none"> + <group> + <number variable="number-of-volumes" form="numeric"/> + <text term="volume" form="short" prefix=" " suffix="." plural="true"/> + </group> + </if> + </choose> + <text variable="edition"/> + </group> + </else-if> + </choose> + </macro> + <macro name="locators-newspaper"> + <choose> + <if type="article-newspaper"> + <group delimiter=", "> + <group> + <text variable="edition" suffix=" "/> + <text term="edition" prefix=" "/> + </group> + <group> + <text term="section" form="short" suffix=". "/> + <text variable="section"/> + </group> + </group> + </if> + </choose> + </macro> + <macro name="event"> + <group> + <text term="presented at" suffix=" "/> + <text variable="event"/> + </group> + </macro> <macro name="publisher"> <group delimiter=": "> <text variable="publisher-place"/> <text variable="publisher"/> </group> </macro> + <macro name="issued"> + <choose> + <if type="graphic report" match="any"> + <date variable="issued"> + <date-part name="month" suffix=" "/> + <date-part name="day" suffix=", "/> + <date-part name="year"/> + </date> + </if> + <else-if type="book chapter thesis" match="any"> + <date variable="issued"> + <date-part name="year"/> + </date> + </else-if> + <else> + <date variable="issued"> + <date-part name="month" suffix=" "/> + <date-part name="day" suffix=", "/> + <date-part name="year"/> + </date> + </else> + </choose> + </macro> + <macro name="pages"> + <choose> + <if type="article-journal"> + <text variable="page" prefix=": "/> + </if> + <else-if type="chapter"> + <text variable="page" prefix=", "/> + </else-if> + </choose> + </macro> + <macro name="locator"> + <choose> + <if variable="locator" match="none"> + <text macro="pages"/> + </if> + <else-if type="article-journal"> + <text variable="locator" prefix=": "/> + </else-if> + <else> + <text variable="locator" prefix=", "/> + </else> + </choose> + </macro> <macro name="archive"> <group delimiter=", "> + <text variable="archive_location"/> <text variable="archive"/> <text variable="archive-place"/> </group> </macro> - <macro name="issued"> + <macro name="issue"> <choose> - <if type="graphic report" match="any"> - <date variable="issued"> - <date-part name="month" suffix=" "/> - <date-part name="day" suffix=", "/> - <date-part name="year"/> - </date> + <if type="article-journal"> + <text macro="issued" prefix=" (" suffix=")"/> </if> - <else-if type="book chapter thesis" match="any"> - <date variable="issued"> - <date-part name="year"/> - </date> + <else-if variable="publisher-place publisher" match="any"> + <group prefix=" (" suffix=")" delimiter=", "> + <group delimiter=" "> + <choose> + <if variable="title" match="none"> </if> + <else-if type="thesis paper-conference" match="any"> + <text variable="genre"/> + </else-if> + </choose> + <text macro="event"/> + </group> + <text macro="publisher"/> + <text macro="issued"/> + </group> </else-if> <else> - <date variable="issued"> - <date-part name="month" suffix=" "/> - <date-part name="day" suffix=", "/> - <date-part name="year"/> - </date> + <text macro="issued" prefix=", "/> </else> </choose> </macro> + <macro name="access"> + <group delimiter=", "> + <choose> + <if type="graphic report" match="any"> + <text macro="archive"/> + </if> + <else-if type="book thesis chapter article-journal article-newspaper article-magazine" match="none"> + <text macro="archive"/> + </else-if> + </choose> + <text variable="URL"/> + </group> + </macro> <citation> <option name="et-al-min" value="4"/> <option name="et-al-use-first" value="1"/> @@ -20793,167 +24919,54 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/chicago-note', '2008-01-0 <option name="disambiguate-add-givenname" value="true"/> <layout prefix="" suffix="." delimiter="; "> <choose> - <if position="ibid-with-locator"> - <group delimiter=", "> - <text term="ibid" text-case="capitalize-first" suffix="."/> - <text variable="locator"/> - </group> - </if> - <else-if position="ibid"> - <text term="ibid" text-case="capitalize-first" suffix="."/> - </else-if> - <else-if position="subsequent"> - <group delimiter=", "> - <group> - <text macro="author-short"/> - <text macro="recipient-short"/> - </group> - <text macro="title-short"/> - <choose> - <if type="interview"> - <text term="interview" text-case="lowercase"/> - </if> - <else-if variable="recipient"> - <text macro="issued"/> - </else-if> - </choose> - <text variable="locator"/> - </group> - </else-if> - <else> - <group delimiter=", "> - <group> - <text macro="author"/> - <text macro="recipient"/> - </group> - <text macro="title"/> - </group> - <choose> - <if type="thesis"> - <group prefix=" (" delimiter=", " suffix=")"> - <text variable="genre"/> - <text variable="publisher"/> - <text macro="issued"/> - </group> - </if> - <else-if type="chapter"> - <group delimiter=", "> - <group class="container" prefix=", " delimiter=" "> - <text term="in" text-case="lowercase"/> - <text variable="container-title" font-style="italic"/> - </group> - <text macro="editor-translator"/> - </group> - <group prefix=" (" suffix=")" delimiter=", "> - <text macro="publisher"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="article-journal"> - <group class="container" prefix=", "> - <text variable="container-title" font-style="italic" prefix=" "/> - <text macro="publisher"/> - <text variable="volume" prefix=" "/> - <text variable="issue" prefix=", no. "/> - <text macro="issued" prefix=" (" suffix=")"/> - </group> - </else-if> - <else-if type="article-newspaper article-magazine" match="any"> - <group prefix=", " delimiter=", "> - <text macro="editor-translator"/> - <text variable="container-title" font-style="italic"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="paper-conference"> - <text macro="editor-translator" prefix=", "/> - <text variable="genre" prefix=", " suffix=" presented at the "/> - <text macro="event" suffix=", "/> - <text macro="issued"/> - </else-if> - <else-if type="interview"> - <group prefix=", " delimiter=", "> - <text macro="interviewer"/> - <text variable="medium"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="personal_communication"> - <group prefix=", " delimiter=", "> - <text variable="genre"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="graphic"> - <group prefix=", " delimiter=", "> - <text variable="medium"/> - <text macro="publisher"/> - <text macro="issued"/> - </group> - </else-if> - <else-if type="report"> - <text macro="editor-translator" prefix=", "/> - <text variable="genre" prefix=", "/> - <choose> - <if variable="publisher publisher-place" match="all"> - <group prefix=" (" suffix=")" delimiter=", "> - <text macro="publisher"/> - <text macro="issued"/> - </group> - </if> - <else> - <text macro="issued" prefix=", "/> - </else> - </choose> - </else-if> - <else-if type="book"> - <text macro="editor-translator" prefix=", "/> - <text variable="collection-title" prefix=", "/> - <group prefix=" (" suffix=")" delimiter=", "> - <text macro="publisher"/> - <text macro="issued"/> - </group> - </else-if> - <else> - <group class="container" prefix=", " delimiter=", "> - <text macro="editor-translator"/> - <text variable="container-title" font-style="italic"/> - <text variable="collection-title" font-style="italic"/> - <text variable="genre"/> - <text variable="medium"/> - <text macro="issued"/> - </group> - </else> - </choose> - <choose> - <if type="article-journal"> - <text variable="locator" prefix=": "/> - </if> - <else> - <text variable="locator" prefix=", "/> - </else> - </choose> - <choose> - <if type="book thesis chapter article-journal article-newspaper article-magazine" match="none"> - <group prefix=", " delimiter=", "> - <text variable="archive_location"/> - <text macro="archive"/> - </group> - </if> - </choose> - <choose> - <if variable="page" match="none"> - <text variable="URL" prefix=", "/> - </if> - </choose> - </else> + <if position="ibid-with-locator"> + <group delimiter=", "> + <text term="ibid" text-case="capitalize-first" suffix="."/> + <text variable="locator"/> + </group> + </if> + <else-if position="ibid"> + <text term="ibid" text-case="capitalize-first" suffix="."/> + </else-if> + <else-if position="subsequent"> + <group delimiter=", "> + <group> + <text macro="author-short"/> + <text macro="recipient-short"/> + </group> + <text macro="title-short"/> + <text variable="locator"/> + </group> + </else-if> + <else> + <group delimiter=", "> + <group> + <text macro="author"/> + <text macro="recipient"/> + </group> + <text macro="title"/> + <text macro="description"/> + <text macro="translator-article"/> + <group> + <text macro="container-prefix"/> + <text variable="container-title" font-style="italic"/> + </group> + <text macro="secondary-contributor"/> + </group> + <text macro="locators"/> + <text variable="collection-title" prefix=", "/> + <text macro="issue"/> + <text macro="locators-newspaper" prefix=", "/> + <text macro="locator"/> + <text macro="access" prefix=", "/> + </else> </choose> </layout> - </citation> + </citation> </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/ieee', '2008-01-03 23:00:00', 'IEEE', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/ieee', '2008-02-02 00:00:00', 'IEEE', '<?xml version="1.0" encoding="UTF-8"?> <?oxygen RNGSchema="http://xbiblio.svn.sourceforge.net/viewvc/*checkout*/xbiblio/csl/schema/trunk/csl.rnc" type="compact"?> <style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" xml:lang="en"> @@ -20972,7 +24985,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/ieee', '2008-01-03 23:00: <category term="engineering"/> <category term="generic-base"/> <category term="numeric"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> </info> <macro name="author"> <names variable="author"> @@ -21067,7 +25080,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/ieee', '2008-01-03 23:00: </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/harvard1', '2008-01-03 23:00:00', 'Harvard Reference format 1 (Author-Date)', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/harvard1', '2008-02-02 00:00:00', 'Harvard Reference format 1 (Author-Date)', '<?xml version="1.0" encoding="UTF-8"?> <style xmlns="http://purl.org/net/xbiblio/csl" xml:lang="en" class="in-text" > <info> @@ -21080,7 +25093,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/harvard1', '2008-01-03 23 </author> <category term="author-date"/> <category term="generic-base"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> <summary>The Harvard author-date style</summary> <link href="http://libweb.anglia.ac.uk/referencing/harvard.htm" rel="documentation"/> </info> @@ -21096,7 +25109,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/harvard1', '2008-01-03 23 <macro name="author"> <names variable="author"> <name name-as-sort-order="all" and="symbol" sort-separator=", " initialize-with="." - delimiter=", "/> + delimiter-precedes-last="never" delimiter=", "/> <label form="short" prefix=" " suffix="." text-case="lowercase"/> <substitute> <names variable="editor"/> @@ -21106,7 +25119,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/harvard1', '2008-01-03 23 </macro> <macro name="author-short"> <names variable="author"> - <name form="short" and="symbol" delimiter=", " initialize-with=". "/> + <name form="short" and="symbol" delimiter=", " delimiter-precedes-last="never" initialize-with=". "/> <substitute> <names variable="editor"/> <names variable="translator"/> @@ -21248,7 +25261,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/harvard1', '2008-01-03 23 </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mhra', '2008-01-03 23:00:00', 'Modern Humanities Research Association (Note with Bibliography)', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mhra', '2008-02-02 00:00:00', 'Modern Humanities Research Association (Note with Bibliography)', '<style xmlns="http://purl.org/net/xbiblio/csl" class="note" xml:lang="en"> <info> <title>Modern Humanities Research Association (Note with Bibliography)</title> @@ -21262,7 +25275,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mhra', '2008-01-03 23:00: <category term="history"/> <category term="numeric"/> <category term="generic-base"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> </info> <macro name="editor-translator"> <names variable="editor translator" prefix="" suffix="" delimiter=", "> @@ -21568,7 +25581,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mhra', '2008-01-03 23:00: </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mhra_note_without_bibliography', '2008-01-03 23:00:00', 'Modern Humanities Research Association (Note without Bibliography)', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mhra_note_without_bibliography', '2008-02-02 00:00:00', 'Modern Humanities Research Association (Note without Bibliography)', '<?xml version="1.0" encoding="UTF-8"?> <?oxygen RNGSchema="csl.rnc" type="compact"?> <style xmlns="http://purl.org/net/xbiblio/csl" class="note"> @@ -21581,7 +25594,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mhra_note_without_bibliog <name>Jim Safley</name> <email>jsafley@gmu.edu</email> </author> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> </info> <defaults> <et-al min-authors="4" use-first="1" term-name="and-others"></et-al> @@ -21705,7 +25718,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mhra_note_without_bibliog </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mla', '2008-01-03 23:00:00', 'Modern Language Association', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mla', '2008-02-02 00:00:00', 'Modern Language Association', '<?xml version="1.0" encoding="UTF-8"?> <?oxygen RNGSchema="http://xbiblio.svn.sourceforge.net/viewvc/*checkout*/xbiblio/csl/schema/trunk/csl.rnc" type="compact"?> <style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" xml:lang="en"> @@ -21719,7 +25732,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mla', '2008-01-03 23:00:0 </author> <category term="generic-base"/> <category term="author-date"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> </info> <macro name="editor-translator"> <names variable="editor translator" delimiter=". "> @@ -21799,12 +25812,14 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mla', '2008-01-03 23:00:0 <group delimiter=" "> <choose> <if variable="author editor translator" match="any"> - <text macro="author-short"/> - <choose> - <if disambiguate="true"> - <text macro="title-short" prefix=", "/> - </if> - </choose> + <group delimiter=", "> + <text macro="author-short"/> + <choose> + <if disambiguate="true"> + <text macro="title-short"/> + </if> + </choose> + </group> </if> <else> <text macro="title-short"/> @@ -21842,6 +25857,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mla', '2008-01-03 23:00:0 <else> <group class="container" prefix=" " suffix="." delimiter=": "> <group delimiter=" "> + <text macro="editor-translator" suffix="."/> <text variable="container-title" text-decoration="underline"/> <choose> <if type="article-journal"> @@ -21874,7 +25890,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/mla', '2008-01-03 23:00:0 </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/nature', '2008-01-03 23:00:00', 'Nature Journal', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/nature', '2008-02-02 00:00:00', 'Nature Journal', '<?xml version="1.0" encoding="UTF-8"?> <?oxygen RNGSchema="http://xbiblio.svn.sourceforge.net/viewvc/*checkout*/xbiblio/csl/schema/trunk/csl.rnc" type="compact"?> <style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" xml:lang="en"> @@ -21889,7 +25905,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/nature', '2008-01-03 23:0 <category term="biology"/> <category term="generic-base"/> <category term="numeric"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> </info> <macro name="author"> <names variable="author"> @@ -21938,7 +25954,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/nature', '2008-01-03 23:0 </style> '); -REPLACE INTO csl VALUES ('http://www.zotero.org/styles/nlm', '2008-01-03 23:00:00', 'National Library of Medicine', +REPLACE INTO csl VALUES ('http://www.zotero.org/styles/nlm', '2008-02-02 00:00:00', 'National Library of Medicine', '<?xml version="1.0" encoding="UTF-8"?> <?oxygen RNGSchema="http://xbiblio.svn.sourceforge.net/viewvc/*checkout*/xbiblio/csl/schema/trunk/csl.rnc" type="compact"?> <style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" xml:lang="en"> @@ -21952,7 +25968,7 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/nlm', '2008-01-03 23:00:0 </author> <category term="generic-base"/> <category term="numeric"/> - <updated>2008-01-03T23:00:00+00:00</updated> + <updated>2008-02-02T00:00:00+00:00</updated> </info> <macro name="author"> <names variable="author" suffix=". "> @@ -22057,4 +26073,4 @@ REPLACE INTO csl VALUES ('http://www.zotero.org/styles/nlm', '2008-01-03 23:00:0 </layout> </bibliography> </style> -'); -\ No newline at end of file +');