Merge branch '3.0'

Conflicts:
	chrome/content/zotero/xpcom/integration.js
	chrome/content/zotero/xpcom/storage/webdav.js
	chrome/content/zotero/xpcom/storage/zfs.js
	install.rdf
	update.rdf
This commit is contained in:
Dan Stillman 2012-02-09 02:13:02 -05:00
commit 3a4401a995
78 changed files with 1033 additions and 633 deletions

View file

@ -16,12 +16,17 @@
margin-left: 7px;
}
.zotero-tb-button {
-moz-margin-start: 5px;
-moz-padding-end: 10px;
.zotero-tb-button, .zotero-tb-button:first-child, .zotero-tb-button:last-child {
-moz-margin-start: 0 !important;
-moz-margin-end: 3px !important;
-moz-padding-end: 10px !important;
background: url("chrome://zotero/skin/mac/menubutton-end.png") right center no-repeat;
}
#zotero-collections-toolbar {
padding-left: 0;
}
:root:not([active]) #zotero-pane:not([ignoreActiveAttribute]) .zotero-tb-button, .zotero-tb-button[disabled="true"]{
opacity: 0.7;
}

View file

@ -3,12 +3,12 @@ body {
}
#quick-format-search:not([multiline="true"]) {
height: 27px !important;
height: 29px !important;
}
#quick-format-search {
background: white;
padding: 1px 2px 1px 0;
padding: 0 2px 0 0;
border: 1px solid rgba(0, 0, 0, 0.5);
-moz-appearance: textfield;
}

View file

@ -1,11 +1,3 @@
.zotero-tb-button:not(:first-child) {
margin-left: 5px;
}
.zotero-tb-button:not([type=menu]) {
margin-right: 4px;
}
#zotero-tb-search-menu-button {
margin: 0 -1px 0 -4px;
border: 0;
@ -49,13 +41,17 @@
}
#zotero-toolbar {
-moz-appearance: toolbox !important;
padding-left: 2px;
}
#zotero-toolbar:-moz-system-metric(windows-compositor) {
-moz-appearance: none !important;
background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0));
background-color: rgb(207, 219, 236) !important;
border-width: 0 0 1px 0;
border-style: solid;
border-color: #818790;
padding-left: 2px;
}
#zotero-collections-tree, #zotero-items-tree, #zotero-view-item {
@ -89,6 +85,14 @@
margin-top: 2px;
}
#zotero-item-pane-groupbox {
-moz-appearance: none !important;
border-radius: 0;
border-width: 0 0 0 1px;
border-color: #818790;
border-style: solid;
}
#zotero-editpane-item-box > scrollbox, #zotero-view-item > tabpanel > vbox,
#zotero-editpane-tags > scrollbox, #zotero-editpane-related {
padding-top: 5px;

View file

@ -48,7 +48,14 @@
panel = document.getAnonymousNodes(this)[0];
if(!forEl) forEl = document.getElementById(this.getAttribute("for"));
panel.lastChild.textContent = Zotero.getString("firstRunGuidance."+about);
var text = Zotero.getString("firstRunGuidance."+about).split("\n");
var descriptionNode = panel.lastChild;
while(text.length) {
var textLine = text.shift();
descriptionNode.appendChild(document.createTextNode(textLine));
if(text.length) descriptionNode.appendChild(document.createElementNS(
"http://www.w3.org/1999/xhtml", "br"));
}
panel.openPopup(forEl, position ? position : "after_start",
x ? parseInt(x, 10) : 0, y ? parseInt(y, 10) : 0, false, false, null);
@ -56,6 +63,13 @@
]]>
</body>
</method>
<method name="hide">
<body>
<![CDATA[
document.getAnonymousNodes(this)[0].hidePopup();
]]>
</body>
</method>
</implementation>
<content>

View file

@ -369,7 +369,7 @@
var str = "The NoScript extension is preventing Zotero "
+ "from displaying notes. To use NoScript and Zotero together, "
+ "whitelist the 'file:' scheme in the NoScript preferences "
+ "and restart Firefox.";
+ "and restart " + Zotero.appName + ".";
warning.appendChild(document.createTextNode(str));
break;
}

View file

@ -482,8 +482,6 @@ var Zotero_Browser = new function() {
collection.addItem(dbItem.id);
}
Zotero.repaint(window);
if(Zotero_Browser.isScraping) {
// initialize close timer between item saves in case translator doesn't call done
Zotero_Browser.progress.startCloseTimer(10000); // is this long enough?

View file

@ -295,9 +295,11 @@ var Zotero_File_Interface = new function() {
Zotero_File_Interface.Progress.show(
Zotero.getString("fileInterface.itemsImported")
);
Zotero.repaint(window);
Zotero.DB.beginTransaction();
translation.translate();
window.setTimeout(function() {
Zotero.DB.beginTransaction();
translation.translate();
}, 0);
} else {
// TODO: localize and remove fileInterface.fileFormatUnsupported string
var unsupportedFormat = "The selected file is not in a supported format.";
@ -617,7 +619,28 @@ var Zotero_File_Interface = new function() {
*/
this.updateProgress = function(translate) {
Zotero.updateZoteroPaneProgressMeter(translate.getProgress());
Zotero.repaint(window);
var now = Date.now();
// Don't repaint more than 10 times per second unless forced.
if(window.zoteroLastRepaint && (now - window.zoteroLastRepaint) < 100) return
// Start a nested event queue
Zotero.mainThread.pushEventQueue(null);
try {
// Add the redraw event onto event queue
window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindowUtils)
.redraw();
// Process redraw event
Zotero.mainThread.processNextEvent(false);
} finally {
// Close nested event queue
Zotero.mainThread.popEventQueue();
}
window.zoteroLastRepaint = now;
}
}

View file

@ -25,11 +25,18 @@
var Zotero_QuickFormat = new function () {
const pixelRe = /^([0-9]+)px$/
var initialized, io, qfs, qfi, qfiWindow, qfiDocument, qfe, qfb, qfbHeight, keepSorted,
showEditor, referencePanel, referenceBox, referenceHeight = 0, separatorHeight = 0,
currentLocator, currentLocatorLabel, currentSearchTime, dragging, panel,
panelPrefix, panelSuffix, panelSuppressAuthor, panelLocatorLabel, panelLocator, panelInfo,
panelRefersToBubble, panelFrameHeight = 0, accepted = false;
const specifiedLocatorRe = /^(?:,? *(p{0,2})(?:\. *| +)|:)([0-9\-]+) *$/;
const yearRe = /,? *([0-9]+) *(B[. ]*C[. ]*(?:E[. ]*)?|A[. ]*D[. ]*|C[. ]*E[. ]*)?$/i;
const locatorRe = /(?:,? *(p{0,2})\.?|(\:)) *([0-9]+)$/i;
const creatorSplitRe = /(?:,| *(?:and|\&)) +/;
const charRe = /[\w\u007F-\uFFFF]/;
const numRe = /^[0-9\-]+$/;
var initialized, io, qfs, qfi, qfiWindow, qfiDocument, qfe, qfb, qfbHeight, qfGuidance,
keepSorted, showEditor, referencePanel, referenceBox, referenceHeight = 0,
separatorHeight = 0, currentLocator, currentLocatorLabel, currentSearchTime, dragging,
panel, panelPrefix, panelSuffix, panelSuppressAuthor, panelLocatorLabel, panelLocator,
panelInfo, panelRefersToBubble, panelFrameHeight = 0, accepted = false;
// A variable that contains the timeout object for the latest onKeyPress event
var eventTimeout = null;
@ -49,6 +56,12 @@ var Zotero_QuickFormat = new function () {
document.documentElement.setAttribute("hidechrome", true);
}
// Include a different key combo in message on Mac
if(Zotero.isMac) {
var qf = document.getElementById('quick-format-guidance');
qf.setAttribute('about', qf.getAttribute('about') + "Mac");
}
new WindowDraggingElement(document.getElementById("quick-format-dialog"), window);
qfs = document.getElementById("quick-format-search");
@ -97,6 +110,11 @@ var Zotero_QuickFormat = new function () {
panelLocatorLabel = document.getElementById("locator-label");
panelLocator = document.getElementById("locator");
panelInfo = document.getElementById("citation-properties-info");
// Don't need to set noautohide dynamically on these platforms, so do it now
if(Zotero.isMac || Zotero.isWin) {
referencePanel.setAttribute("noautohide", true);
}
} else if(event.target === qfi.contentDocument) {
qfiWindow = qfi.contentWindow;
qfiDocument = qfi.contentDocument;
@ -123,6 +141,9 @@ var Zotero_QuickFormat = new function () {
Zotero.debug("Moving window to "+targetX+", "+targetY);
window.moveTo(targetX, targetY);
}
qfGuidance = document.getElementById('quick-format-guidance');
qfGuidance.show();
_refocusQfe();
}, 0);
window.focus();
@ -182,11 +203,6 @@ var Zotero_QuickFormat = new function () {
var str = _getEditorContent();
var haveConditions = false;
const specifiedLocatorRe = /^(?:,? *(pp|p)(?:\. *| +)|:)([0-9\-]+) *$/;
const yearPageLocatorRe = /,? *([0-9]+) *((B[. ]*C[. ]*|B[. ]*)|[AC][. ]*|A[. ]*D[. ]*|C[. ]*E[. ]*)?,? *(?:([0-9\-]+))?$/i;
const creatorSplitRe = /(?:,| *(?:and|\&)) +/;
const charRe = /[\w\u007F-\uFFFF]/;
const numRe = /^[0-9\-]+$/;
const etAl = " et al.";
var m,
@ -234,20 +250,11 @@ var Zotero_QuickFormat = new function () {
}
// check for year and pages
m = yearPageLocatorRe.exec(str);
str = _updateLocator(str);
m = yearRe.exec(str);
if(m) {
if(m[1].length === 4 || m[2] || m[4]) {
year = parseInt(m[1]);
if(m[3]) {
isBC = true;
}
if(!currentLocator && m[4]) {
currentLocator = m[4];
}
} else {
currentLocator = m[1];
}
year = parseInt(m[1]);
isBC = m[2] && m[2][0] === "B";
str = str.substr(0, m.index)+str.substring(m.index+m[0].length);
}
if(year) str += " "+year;
@ -323,6 +330,20 @@ var Zotero_QuickFormat = new function () {
}
}
/**
* Updates currentLocator based on a string
* @param {String} str String to search for locator
* @return {String} str without locator
*/
function _updateLocator(str) {
m = locatorRe.exec(str);
if(m && (m[1] || m[2] || m[3].length !== 4)) {
currentLocator = m[3];
str = str.substr(0, m.index)+str.substring(m.index+m[0].length);
}
return str;
}
/**
* Updates the item list
*/
@ -656,6 +677,8 @@ var Zotero_QuickFormat = new function () {
citationItem.uris = item.cslURIs;
citationItem.itemData = item.cslItemData;
}
_updateLocator(_getEditorContent());
if(currentLocator) {
citationItem["locator"] = currentLocator;
if(currentLocatorLabel) {
@ -769,20 +792,20 @@ var Zotero_QuickFormat = new function () {
* Opens the reference panel and potentially refocuses the main text box
*/
function _openReferencePanel() {
if(!Zotero.isMac && !Zotero.isWin) {
// noautohide and noautofocus are incompatible on Linux
// https://bugzilla.mozilla.org/show_bug.cgi?id=545265
referencePanel.setAttribute("noautohide", "false");
}
referencePanel.openPopup(document.documentElement, "after_start", 15,
null, false, false, null);
if(!Zotero.isMac && !Zotero.isWin) {
// When it opens, we will lose focus
referencePanel.addEventListener("popupshown", function() {
referencePanel.removeEventListener("popupshown", arguments.callee, false);
_refocusQfe();
// This is a nasty hack, but seems to be necessary to fix loss of focus on Linux
window.setTimeout(function() { _refocusQfe(); }, 25);
window.setTimeout(function() { _refocusQfe(); }, 50);
window.setTimeout(function() { _refocusQfe(); }, 100);
window.setTimeout(function() { _refocusQfe(); }, 175);
window.setTimeout(function() { _refocusQfe(); }, 250);
// reinstate noautohide after the window is shown
referencePanel.addEventListener("popupshowing", function() {
referencePanel.removeEventListener("popupshowing", arguments.callee, false);
referencePanel.setAttribute("noautohide", "true");
}, false);
}
}
@ -955,6 +978,8 @@ var Zotero_QuickFormat = new function () {
* Handle return or escape
*/
function _onQuickSearchKeyPress(event) {
qfGuidance.hide();
var keyCode = event.keyCode;
if(keyCode === event.DOM_VK_RETURN || keyCode === event.DOM_VK_ENTER) {
event.preventDefault();
@ -1157,7 +1182,11 @@ var Zotero_QuickFormat = new function () {
.getService(Components.interfaces.nsIWindowWatcher)
.openWindow(null, 'chrome://zotero/content/integration/addCitationDialog.xul',
'', 'chrome,centerscreen,resizable', io);
newWindow.addEventListener("load", function() { window.close(); }, false);
newWindow.addEventListener("focus", function() {
newWindow.removeEventListener("focus", arguments.callee, true);
window.close();
}, true);
accepted = true;
}
/**

View file

@ -25,6 +25,7 @@
-->
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://global/skin/browser.css" type="text/css"?>
<?xml-stylesheet href="chrome://zotero/skin/zotero.css" type="text/css"?>
<?xml-stylesheet href="chrome://zotero/skin/integration.css" type="text/css"?>
<?xml-stylesheet href="chrome://zotero-platform/content/integration.css" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://zotero/locale/zotero.dtd">
@ -67,7 +68,8 @@
<progressmeter id="quick-format-progress-meter" mode="undetermined" value="0" flex="1"/>
</deck>
</box>
<panel id="quick-format-reference-panel" noautofocus="true" norestorefocus="true" noautohide="true" height="0">
<panel id="quick-format-reference-panel" noautofocus="true" norestorefocus="true"
height="0" width="0">
<richlistbox id="quick-format-reference-list" flex="1"/>
</panel>
<panel id="citation-properties" type="arrow" orient="vertical"
@ -89,17 +91,17 @@
<menupopup id="locator-label-popup"/>
</menulist>
<textbox id="locator" flex="1"
oninput="window.setTimeout(Zotero_QuickFormat.onCitationPropertiesChanged, 0)"/>
oninput="window.setTimeout(function(event) { Zotero_QuickFormat.onCitationPropertiesChanged(event) }, 0)"/>
</row>
<row align="center">
<label value="&zotero.citation.prefix.label;"/>
<textbox class="citation-textbox" id="prefix" flex="1"
oninput="window.setTimeout(Zotero_QuickFormat.onCitationPropertiesChanged, 0)"/>
oninput="window.setTimeout(function(event) { Zotero_QuickFormat.onCitationPropertiesChanged(event) }, 0)"/>
</row>
<row align="center">
<label value="&zotero.citation.suffix.label;"/>
<textbox class="citation-textbox" id="suffix" flex="1"
oninput="window.setTimeout(Zotero_QuickFormat.onCitationPropertiesChanged, 0)"/>
oninput="window.setTimeout(function(event) { Zotero_QuickFormat.onCitationPropertiesChanged(event) }, 0)"/>
</row>
<html:div>
<html:input type="checkbox" id="suppress-author"
@ -111,4 +113,6 @@
</rows>
</grid>
</panel>
<zoteroguidancepanel id="quick-format-guidance" about="quickFormat"
for="zotero-icon" x="26"/>
</window>

View file

@ -45,7 +45,7 @@
<deck id="zotero-item-pane-content" selectedIndex="0" flex="1">
<!-- Center label (for zero or multiple item selection) -->
<groupbox pack="center" align="center">
<groupbox id="zotero-item-pane-groupbox" pack="center" align="center">
<label id="zotero-item-pane-message"/>
</groupbox>

View file

@ -77,7 +77,7 @@
<image src="chrome://zotero/skin/treeitem-book.png" id="zotero-status-image"
onclick="if(event.button === 0) Zotero_Browser.scrapeThisPage()" context="zotero-status-image-context"
position="1" hidden="true"/>
<zoteroguidancepanel id="zotero-status-image-guidance" about="saveIcon" for="zotero-status-image"/>
<zoteroguidancepanel id="zotero-status-image-guidance" about="saveIcon" for="zotero-status-image" x="8"/>
</hbox>
<menupopup id="menu_ToolsPopup">

View file

@ -103,8 +103,9 @@ const ZoteroStandalone = new function() {
for (var i = 0; i<itemTypes.length; i++) {
var menuitem = document.createElement("menuitem");
menuitem.setAttribute("label", itemTypes[i].localized);
menuitem.setAttribute("oncommand","ZoteroPane_Local.newItem("+itemTypes[i]['id']+")");
menuitem.setAttribute("tooltiptext", "");
let type = itemTypes[i].id;
menuitem.addEventListener("command", function() { ZoteroPane_Local.newItem(type); }, false);
menuitem.className = "zotero-tb-add";
addMenu.appendChild(menuitem);
}

View file

@ -95,11 +95,11 @@ function wpdWindowLoaded()
try {
// this will be called multiple times if the page contains more than one document (frames, flash,...)
//var browser=this.document.getElementById("content");
dump("[wpdWindowLoaded] ... \n");
Zotero.debug("[wpdWindowLoaded] ... ");
var browser = this.top.getBrowser();
// each time we have to check if the page is fully loaded...
if (!(browser.webProgress.isLoadingDocument || browser.contentDocument.location == gExceptLocation)) {
dump("[wpdWindowLoaded] window finally loaded\n");
Zotero.debug("[wpdWindowLoaded] window finally loaded");
gBrowserWindow.clearTimeout(gTimeOutID);
gBrowserWindow.removeEventListener("load",wpdWindowLoaded,true);
//dump("[wpdWindowLoaded] calling "+gCallback+"\n");
@ -112,13 +112,13 @@ function wpdWindowLoaded()
gBrowserWindow.setTimeout(gCallback, w);
}
} catch (ex) {
dump("[wpdWindowLoaded] EXCEPTION: "+ex+"\n");
Zotero.debug("[wpdWindowLoaded] EXCEPTION: "+ex);
}
}
function wpdTimeOut()
{
dump("[wpdTimeOut] timeout triggered!\n");
Zotero.debug("[wpdTimeOut] timeout triggered!");
gTimedOut=true;
gBrowserWindow.clearTimeout(gTimeOutID);
gBrowserWindow.removeEventListener("load",wpdWindowLoaded,true);
@ -134,7 +134,7 @@ function wpdLoadURL(aURI,aCallback)
{
try {
gTimedOut=false;
dump("\n[wpdLoadURL] aURI: "+aURI+"\n");
Zotero.debug("[wpdLoadURL] aURI: "+aURI);
if (aURI=="") return;
gBrowserWindow = wpdGetTopBrowserWindow();
gBrowserWindow.loadURI(aURI);
@ -143,7 +143,7 @@ function wpdLoadURL(aURI,aCallback)
gTimeOutID=gBrowserWindow.setTimeout(wpdTimeOut, 60000);
gBrowserWindow.addEventListener("load",wpdWindowLoaded, true);
} catch (ex) {
dump("[wpdLoadURL] EXCEPTION: "+ex+"\n");
Zotero.debug("[wpdLoadURL] EXCEPTION: "+ex);
}
}
@ -262,7 +262,7 @@ var wpdCommon = {
var gUnicodeConverter = Components.classes['@mozilla.org/intl/scriptableunicodeconverter'].getService(Components.interfaces.nsIScriptableUnicodeConverter);
gUnicodeConverter.charset = charset;
} catch(ex) {
dump ("gUnicodeConverter EXCEPTION:"+ex+"\n");
Zotero.debug ("gUnicodeConverter EXCEPTION:"+ex);
}
}
@ -270,7 +270,7 @@ var wpdCommon = {
try {
var gEntityConverter = Components.classes["@mozilla.org/intl/entityconverter;1"].createInstance(Components.interfaces.nsIEntityConverter);
} catch(e) {
dump ("gEntityConverter EXCEPTION:"+ex+"\n");
Zotero.debug ("gEntityConverter EXCEPTION:"+ex);
}
}
@ -326,7 +326,7 @@ var wpdCommon = {
// add a line to the error list (displays a maximum of 15 errors)
addError : function(aError)
{
dump('ERROR: '+aError+"\n");
Zotero.debug('ERROR: '+aError);
if (this.errCount<WPD_MAXUIERRORCOUNT) {
if (this.errList.indexOf(aError)>-1) return; // is the same
this.errList = this.errList+aError+"\n";
@ -337,7 +337,7 @@ var wpdCommon = {
},
saveWebPage : function(aDestFile) {
dump("[saveWebPage] "+aDestFile+"\n");
Zotero.debug("[saveWebPage] "+aDestFile);
var nsIWBP = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Components.interfaces.nsIWebBrowserPersist);
var doc = window.content.document;
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);

View file

@ -147,7 +147,7 @@ var wpdDOMSaver = {
// initialize the properties (set document, URL, Directory, ...)
init : function(fileName, document)
{
dump("[wpdDOMSaver.init] ...\n");
Zotero.debug("[wpdDOMSaver.init] ...");
this.name = "";
this.document = null;
@ -653,7 +653,7 @@ var wpdDOMSaver = {
catch (e) {
var msg = "Unable to access cssRules property of " + aCSS.href
+ " in wpdDOMSaver.processCSSRecursively()";
dump("WebPageDump: "+msg+"\n\n", 2);
Zotero.debug("WebPageDump: "+msg, 2);
Components.utils.reportError(msg);
return "";
}
@ -928,7 +928,7 @@ var wpdDOMSaver = {
// ("aFileName" is the filename without(!) extension)
saveDocumentFile : function(aDocument,aFileName)
{
dump("[wpdDOMSaver.saveDocumentFile]: "+aFileName+"\n");
Zotero.debug("[wpdDOMSaver.saveDocumentFile]: "+aFileName);
return this.download(this.currentURL,true)
/* Wrapper file disabled by Dan S. for Zotero
@ -973,7 +973,7 @@ var wpdDOMSaver = {
} else {
CSSText = wpdCommon.ConvertFromUnicode16(CSSText,this.curCharacterSet);
}
dump("[wpdDOMSaver.saveDocumentCSS]: "+this.currentDir+aFileName+".css\n");
Zotero.debug("[wpdDOMSaver.saveDocumentCSS]: "+this.currentDir+aFileName+".css");
// write css file
var CSSFile = this.currentDir + aFileName + ".css";
if (!wpdCommon.writeFile(CSSText, CSSFile))
@ -990,7 +990,7 @@ var wpdDOMSaver = {
// (".html" will be added)
saveDocumentHTML: function(aDocument,aFileName)
{
dump("[wpdDOMSaver.saveDocumentHTML]: "+this.currentDir+aFileName+".html\n");
Zotero.debug("[wpdDOMSaver.saveDocumentHTML]: "+this.currentDir+aFileName+".html");
this.curDocument = aDocument;
this.curCharacterSet = aDocument.characterSet;
var charset=this.curCharacterSet;

View file

@ -389,7 +389,7 @@ Zotero.Annotate.Path.prototype.fromNode = function(node, offset) {
}
if(!node) throw "Annotate: Path() resolved text offset inappropriately";
while(node && !node === this._document) {
while(node && node !== this._document) {
var number = 1;
var sibling = node.previousSibling;
while(sibling) {
@ -731,10 +731,18 @@ Zotero.Annotations.prototype.save = function() {
// save annotations
for each(var annotation in this.annotations) {
annotation.save();
// Don't drop all annotations if one is broken (due to ~3.0 glitch)
try {
annotation.save();
}
catch(e) {
Zotero.debug(e);
continue;
}
}
Zotero.DB.commitTransaction();
} catch(e) {
Zotero.debug(e);
Zotero.DB.rollbackTransaction();
throw(e);
}
@ -1387,7 +1395,7 @@ Zotero.Highlight.prototype.unhighlight = function(container, offset, path, mode)
// loop through, removing nodes
var node = span.firstChild;
while(span.firstChild && !span.firstChild === textNode) {
while(span.firstChild && span.firstChild !== textNode) {
parentNode.insertBefore(span.removeChild(span.firstChild), span);
}
} else if(mode == 2) {
@ -1437,23 +1445,23 @@ Zotero.Highlight.prototype._highlight = function() {
var onlyOneNode = startNode === endNode;
if(!onlyOneNode && !startNode === ancestor && !endNode === ancestor) {
if(!onlyOneNode && startNode !== ancestor && endNode !== ancestor) {
// highlight nodes after start node in the DOM hierarchy not at ancestor level
while(startNode.parentNode && !startNode.parentNode === ancestor) {
while(startNode.parentNode && startNode.parentNode !== ancestor) {
if(startNode.nextSibling) {
this._highlightSpaceBetween(startNode.nextSibling, startNode.parentNode.lastChild);
}
startNode = startNode.parentNode
}
// highlight nodes after end node in the DOM hierarchy not at ancestor level
while(endNode.parentNode && !endNode.parentNode === ancestor) {
while(endNode.parentNode && endNode.parentNode !== ancestor) {
if(endNode.previousSibling) {
this._highlightSpaceBetween(endNode.parentNode.firstChild, endNode.previousSibling);
}
endNode = endNode.parentNode
}
// highlight nodes between start node and end node at ancestor level
if(!startNode === endNode.previousSibling) {
if(startNode !== endNode.previousSibling) {
this._highlightSpaceBetween(startNode.nextSibling, endNode.previousSibling);
}
}

View file

@ -568,16 +568,16 @@ Zotero.Attachments = new function(){
var sync = true;
// Load WebPageDump code
var wpd = {"Zotero":Zotero};
Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
.getService(Components.interfaces.mozIJSSubScriptLoader)
.loadSubScript("chrome://zotero/content/webpagedump/common.js");
.loadSubScript("chrome://zotero/content/webpagedump/common.js", wpd);
Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
.getService(Components.interfaces.mozIJSSubScriptLoader)
.loadSubScript("chrome://zotero/content/webpagedump/domsaver.js");
.loadSubScript("chrome://zotero/content/webpagedump/domsaver.js", wpd);
wpdDOMSaver.init(file.path, document);
wpdDOMSaver.saveHTMLDocument();
wpd.wpdDOMSaver.init(file.path, document);
wpd.wpdDOMSaver.saveHTMLDocument();
attachmentItem.attachmentPath = this.getPath(
file, Zotero.Attachments.LINK_MODE_IMPORTED_URL

View file

@ -126,7 +126,7 @@ var CSL = {
MARK_TRAILING_NAMES: true,
POSITION_TEST_VARS: ["position", "first-reference-note-number", "near-note"],
AREAS: ["citation", "citation_sort", "bibliography", "bibliography_sort"],
MULTI_FIELDS: ["event", "publisher", "publisher-place", "event-place", "title", "container-title", "collection-title", "authority","edition","genre","title-short"],
MULTI_FIELDS: ["event", "publisher", "publisher-place", "event-place", "title", "container-title", "collection-title", "authority","edition","genre","title-short","subjurisdiction","medium"],
CITE_FIELDS: ["first-reference-note-number", "locator", "locator-revision"],
MINIMAL_NAME_FIELDS: ["literal", "family"],
SWAPPING_PUNCTUATION: [".", "!", "?", ":",","],
@ -463,217 +463,361 @@ CSL.debug = function (str) {
CSL.error = function (str) {
Zotero.debug("CSL error: " + str);
};
var CSL_E4X = function () {};
CSL_E4X.prototype.clean = function (xml) {
function DOMParser() {
return Components.classes["@mozilla.org/xmlextras/domparser;1"]
.createInstance(Components.interfaces.nsIDOMParser);
};
var CSL_IS_IE;
var CSL_CHROME = function () {
if ("undefined" == typeof DOMParser || CSL_IS_IE) {
CSL_IS_IE = true;
DOMParser = function() {};
DOMParser.prototype.parseFromString = function(str, contentType) {
if ("undefined" != typeof ActiveXObject) {
var xmldata = new ActiveXObject('MSXML.DomDocument');
xmldata.async = false;
xmldata.loadXML(str);
return xmldata;
} else if ("undefined" != typeof XMLHttpRequest) {
var xmldata = new XMLHttpRequest;
if (!contentType) {
contentType = 'text/xml';
}
xmldata.open('GET', 'data:' + contentType + ';charset=utf-8,' + encodeURIComponent(str), false);
if(xmldata.overrideMimeType) {
xmldata.overrideMimeType(contentType);
}
xmldata.send(null);
return xmldata.responseXML;
}
};
this.hasAttributes = function (node) {
var ret;
if (node.attributes && node.attributes.length) {
ret = true;
} else {
ret = false;
}
return ret;
};
} else {
this.hasAttributes = function (node) {
var ret;
if (node.attributes && node.attributes.length) {
ret = true;
} else {
ret = false;
}
return ret;
};
}
this.importNode = function (doc, srcElement) {
if ("undefined" == typeof doc.importNode) {
var ret = this._importNode(doc, srcElement, true);
} else {
var ret = doc.importNode(srcElement, true);
}
return ret;
};
this._importNode = function(doc, node, allChildren) {
switch (node.nodeType) {
case 1:
var newNode = doc.createElement(node.nodeName);
if (node.attributes && node.attributes.length > 0)
for (var i = 0, il = node.attributes.length; i < il;)
newNode.setAttribute(node.attributes[i].nodeName, node.getAttribute(node.attributes[i++].nodeName));
if (allChildren && node.childNodes && node.childNodes.length > 0)
for (var i = 0, il = node.childNodes.length; i < il;)
newNode.appendChild(this._importNode(doc, node.childNodes[i++], allChildren));
return newNode;
break;
case 3:
case 4:
case 8:
}
};
this.parser = new DOMParser();
var str = "<docco><institution institution-parts=\"long\" delimiter=\", \" substitute-use-first=\"1\" use-last=\"1\"><institution-part name=\"long\"/></institution></docco>";
var inst_doc = this.parser.parseFromString(str, "text/xml");
var inst_node = inst_doc.getElementsByTagName("institution");
this.institution = inst_node.item(0);
var inst_part_node = inst_doc.getElementsByTagName("institution-part");
this.institutionpart = inst_part_node.item(0);
this.ns = "http://purl.org/net/xbiblio/csl";
};
CSL_CHROME.prototype.clean = function (xml) {
xml = xml.replace(/<\?[^?]+\?>/g, "");
xml = xml.replace(/<![^>]+>/g, "");
xml = xml.replace(/^\s+/g, "");
xml = xml.replace(/\s+$/g, "");
xml = xml.replace(/^\s+/, "");
xml = xml.replace(/\s+$/, "");
xml = xml.replace(/^\n*/, "");
return xml;
};
CSL_E4X.prototype.getStyleId = function (myxml) {
CSL_CHROME.prototype.getStyleId = function (myxml) {
var text = "";
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
var node = myxml..id;
if (node && node.length()) {
text = node[0].toString();
var node = myxml.getElementsByTagName("id");
if (node && node.length) {
node = node.item(0);
}
if (node) {
text = node.textContent;
}
if (!text) {
text = node.innerText;
}
if (!text) {
text = node.innerHTML;
}
return text;
};
CSL_E4X.prototype.children = function (myxml) {
return myxml.children();
CSL_CHROME.prototype.children = function (myxml) {
var children, pos, len, ret;
if (myxml) {
ret = [];
children = myxml.childNodes;
for (pos = 0, len = children.length; pos < len; pos += 1) {
if (children[pos].nodeName != "#text") {
ret.push(children[pos]);
}
}
return ret;
} else {
return [];
}
};
CSL_E4X.prototype.nodename = function (myxml) {
var ret = myxml.localName();
CSL_CHROME.prototype.nodename = function (myxml) {
var ret = myxml.nodeName;
return ret;
};
CSL_E4X.prototype.attributes = function (myxml) {
var ret, attrs, attr, key, xml;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
CSL_CHROME.prototype.attributes = function (myxml) {
var ret, attrs, attr, key, xml, pos, len;
ret = new Object();
attrs = myxml.attributes();
for each (attr in attrs) {
key = "@" + attr.localName();
if (key.slice(0,5) == "@e4x_") {
continue;
if (myxml && this.hasAttributes(myxml)) {
attrs = myxml.attributes;
for (pos = 0, len=attrs.length; pos < len; pos += 1) {
attr = attrs[pos];
ret["@" + attr.name] = attr.value;
}
ret[key] = attr.toString();
}
return ret;
};
CSL_E4X.prototype.content = function (myxml) {
return myxml.toString();
CSL_CHROME.prototype.content = function (myxml) {
var ret;
if ("undefined" != typeof myxml.textContent) {
ret = myxml.textContent;
} else if ("undefined" != typeof myxml.innerText) {
ret = myxml.innerText;
} else {
ret = myxml.txt;
}
return ret;
};
CSL_E4X.prototype.namespace = {
CSL_CHROME.prototype.namespace = {
"xml":"http://www.w3.org/XML/1998/namespace"
}
CSL_E4X.prototype.numberofnodes = function (myxml) {
return myxml.length();
CSL_CHROME.prototype.numberofnodes = function (myxml) {
if (myxml) {
return myxml.length;
} else {
return 0;
}
};
CSL_E4X.prototype.getAttributeName = function (attr) {
var ret = attr.localName();
CSL_CHROME.prototype.getAttributeName = function (attr) {
var ret = attr.name;
return ret;
}
CSL_E4X.prototype.getAttributeValue = function (myxml,name,namespace) {
var xml;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
if (namespace) {
var ns = new Namespace(this.namespace[namespace]);
var ret = myxml.@ns::[name].toString();
CSL_CHROME.prototype.getAttributeValue = function (myxml,name,namespace) {
var ret = "";
if (myxml && this.hasAttributes(myxml) && myxml.getAttribute(name)) {
ret = myxml.getAttribute(name);
}
return ret;
}
CSL_CHROME.prototype.getNodeValue = function (myxml,name) {
var ret = "";
if (name){
var vals = myxml.getElementsByTagName(name);
if (vals.length > 0) {
if ("undefined" != typeof vals[0].textContent) {
ret = vals[0].textContent;
} else if ("undefined" != typeof vals[0].innerText) {
ret = vals[0].innerText;
} else {
ret = vals[0].text;
}
}
} else {
if (name) {
var ret = myxml.attribute(name).toString();
ret = myxml;
}
if (ret && ret.childNodes && (ret.childNodes.length == 0 || (ret.childNodes.length == 1 && ret.firstChild.nodeName == "#text"))) {
if ("undefined" != typeof ret.textContent) {
ret = ret.textContent;
} else if ("undefined" != typeof ret.innerText) {
ret = ret.innerText;
} else {
var ret = myxml.toString();
ret = ret.text;
}
}
return ret;
}
CSL_E4X.prototype.getNodeValue = function (myxml,name) {
var xml;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
if (name){
return myxml[name].toString();
} else {
return myxml.toString();
CSL_CHROME.prototype.setAttributeOnNodeIdentifiedByNameAttribute = function (myxml,nodename,partname,attrname,val) {
var pos, len, xml, nodes, node;
if (attrname.slice(0,1) === '@'){
attrname = attrname.slice(1);
}
nodes = myxml.getElementsByTagName(nodename);
for (pos = 0, len = nodes.length; pos < len; pos += 1) {
node = nodes[pos];
if (node.getAttribute("name") != partname) {
continue;
}
node.setAttribute(attrname, val);
}
}
CSL_E4X.prototype.setAttributeOnNodeIdentifiedByNameAttribute = function (myxml,nodename,attrname,attr,val) {
var xml;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
if (attr[0] != '@'){
attr = '@'+attr;
CSL_CHROME.prototype.deleteNodeByNameAttribute = function (myxml,val) {
var pos, len, node, nodes;
nodes = myxml.childNodes;
for (pos = 0, len = nodes.length; pos < len; pos += 1) {
node = nodes[pos];
if (!node || node.nodeType == node.TEXT_NODE) {
continue;
}
if (this.hasAttributes(node) && node.getAttribute("name") == val) {
myxml.removeChild(nodes[pos]);
}
}
myxml[nodename].(@name == attrname)[0][attr] = val;
}
CSL_E4X.prototype.deleteNodeByNameAttribute = function (myxml,val) {
delete myxml.*.(@name==val)[0];
CSL_CHROME.prototype.deleteAttribute = function (myxml,attr) {
myxml.removeAttribute(attr);
}
CSL_E4X.prototype.deleteAttribute = function (myxml,attr) {
delete myxml["@"+attr];
CSL_CHROME.prototype.setAttribute = function (myxml,attr,val) {
var attribute;
if (!myxml.ownerDocument) {
myxml = myxml.firstChild;
}
attribute = myxml.ownerDocument.createAttribute(attr);
myxml.setAttribute(attr, val);
return false;
}
CSL_E4X.prototype.setAttribute = function (myxml,attr,val) {
myxml['@'+attr] = val;
CSL_CHROME.prototype.nodeCopy = function (myxml) {
var cloned_node = myxml.cloneNode(true);
return cloned_node;
}
CSL_E4X.prototype.nodeCopy = function (myxml) {
return myxml.copy();
}
CSL_E4X.prototype.getNodesByName = function (myxml,name,nameattrval) {
var xml, ret;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
ret = myxml.descendants(name);
if (nameattrval){
ret = ret.(@name == nameattrval);
CSL_CHROME.prototype.getNodesByName = function (myxml,name,nameattrval) {
var ret, nodes, node, pos, len;
ret = [];
nodes = myxml.getElementsByTagName(name);
for (pos = 0, len = nodes.length; pos < len; pos += 1) {
node = nodes.item(pos);
if (nameattrval && !(this.hasAttributes(node) && node.getAttribute("name") == nameattrval)) {
continue;
}
ret.push(node);
}
return ret;
}
CSL_E4X.prototype.nodeNameIs = function (myxml,name) {
var xml;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
if (myxml.localName() && myxml.localName().toString() == name){
CSL_CHROME.prototype.nodeNameIs = function (myxml,name) {
if (name == myxml.nodeName) {
return true;
}
return false;
}
CSL_E4X.prototype.makeXml = function (myxml) {
var xml;
XML.ignoreComments = true;
XML.ignoreProcessingInstructions = true;
XML.ignoreWhitespace = true;
XML.prettyPrinting = true;
XML.prettyIndent = 2;
if ("xml" == typeof myxml){
myxml = myxml.toXMLString();
};
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
xml = new Namespace("http://www.w3.org/XML/1998/namespace");
if (myxml){
myxml = myxml.replace(/\s*<\?[^>]*\?>\s*\n*/g, "");
myxml = new XML(myxml);
} else {
myxml = new XML();
CSL_CHROME.prototype.makeXml = function (myxml) {
var ret, topnode;
if (!myxml) {
myxml = "<docco><bogus/></docco>";
}
return myxml;
myxml = myxml.replace(/\s*<\?[^>]*\?>\s*\n*/g, "");
var nodetree = this.parser.parseFromString(myxml, "application/xml");
return nodetree.firstChild;
};
CSL_E4X.prototype.insertChildNodeAfter = function (parent,node,pos,datexml) {
CSL_CHROME.prototype.insertChildNodeAfter = function (parent,node,pos,datexml) {
var myxml, xml;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
myxml = XML(datexml.toXMLString());
parent.insertChildAfter(node,myxml);
delete parent.*[pos];
return parent;
};
CSL_E4X.prototype.insertPublisherAndPlace = function(myxml) {
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
for each (var node in myxml..group) {
if (node.children().length() === 2) {
var twovars = [];
for each (var child in node.children()) {
if (child.children().length() === 0
) {
twovars.push(child.@variable.toString());
if (child.@suffix.toString()
|| child.@prefix.toString()) {
twovars = [];
break;
}
}
myxml = this.importNode(node.ownerDocument, datexml);
parent.replaceChild(myxml, node);
return parent;
};
CSL_CHROME.prototype.insertPublisherAndPlace = function(myxml) {
var group = myxml.getElementsByTagName("group");
for (var i = 0, ilen = group.length; i < ilen; i += 1) {
var node = group.item(i);
if (node.childNodes.length === 2) {
var twovars = [];
for (var j = 0, jlen = 2; j < jlen; j += 1) {
var child = node.childNodes.item(j);
if (child.childNodes.length === 0) {
twovars.push(child.getAttribute('variable'));
if (child.getAttribute('suffix')
|| child.getAttribute('prefix')) {
twovars = [];
break;
}
if (twovars.indexOf("publisher") > -1 && twovars.indexOf("publisher-place") > -1) {
node["@has-publisher-and-publisher-place"] = "true";
}
}
}
};
CSL_E4X.prototype.addMissingNameNodes = function(myxml) {
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
for each (node in myxml..names) {
if ("xml" == typeof node && node.parent().localName() !== "substitute" && node.elements("name").length() === 0) {
var name = <name/>;
node.appendChild(name);
if (twovars.indexOf("publisher") > -1 && twovars.indexOf("publisher-place") > -1) {
node.setAttribute('has-publisher-and-publisher-place', true);
}
}
}
};
CSL_E4X.prototype.addInstitutionNodes = function(myxml) {
var institution_long, institution_short, name_part, children, node, xml;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
for each (node in myxml..names) {
if ("xml" == typeof node && node.elements("name").length() > 0) {
if (node.institution.length() === 0) {
institution_long = <institution
institution-parts="long"
substitute-use-first="1"
use-last="1"/>
institution_part = <institution-part name="long"/>;
node.name += institution_long;
node.institution.@delimiter = node.name.@delimiter.toString();
if (node.name.@and.toString()) {
node.institution.@and = "text";
CSL_CHROME.prototype.addMissingNameNodes = function(myxml) {
var nameslist = myxml.getElementsByTagName("names");
for (var i = 0, ilen = nameslist.length; i < ilen; i += 1) {
var names = nameslist.item(i);
var namelist = names.getElementsByTagName("name");
if ((!namelist || namelist.length === 0)
&& names.parentNode.tagName.toLowerCase() !== "substitute") {
var doc = names.ownerDocument;
var name = doc.createElement("name");
names.appendChild(name);
}
}
};
CSL_CHROME.prototype.addInstitutionNodes = function(myxml) {
var names, thenames, institution, theinstitution, name, thename, xml, pos, len;
names = myxml.getElementsByTagName("names");
for (pos = 0, len = names.length; pos < len; pos += 1) {
thenames = names.item(pos);
name = thenames.getElementsByTagName("name");
if (name.length == 0) {
continue;
}
institution = thenames.getElementsByTagName("institution");
if (institution.length == 0) {
theinstitution = this.importNode(myxml.ownerDocument, this.institution);
theinstitutionpart = theinstitution.getElementsByTagName("institution-part").item(0);
thename = name.item(0);
thenames.insertBefore(theinstitution, thename.nextSibling);
for (var j = 0, jlen = CSL.INSTITUTION_KEYS.length; j < jlen; j += 1) {
var attrname = CSL.INSTITUTION_KEYS[j];
var attrval = thename.getAttribute(attrname);
if (attrval) {
theinstitutionpart.setAttribute(attrname, attrval);
}
node.institution[0].appendChild(institution_part);
for each (var attr in CSL.INSTITUTION_KEYS) {
if (node.name.@[attr].toString()) {
node.institution['institution-part'][0].@[attr] = node.name.@[attr].toString();
}
}
for each (var namepartnode in node.name['name-part']) {
if (namepartnode.@name.toString() === 'family') {
for each (var attr in CSL.INSTITUTION_KEYS) {
if (namepartnode.@[attr].toString()) {
node.institution['institution-part'][0].@[attr] = namepartnode.@[attr].toString();
}
}
var nameparts = thename.getElementsByTagName("name-part");
for (var j = 0, jlen = nameparts.length; j < jlen; j += 1) {
if ('family' === nameparts[j].getAttribute('name')) {
for (var k = 0, klen = CSL.INSTITUTION_KEYS.length; k < klen; k += 1) {
var attrname = CSL.INSTITUTION_KEYS[k];
var attrval = nameparts[j].getAttribute(attrname);
if (attrval) {
theinstitutionpart.setAttribute(attrname, attrval);
}
}
}
}
}
}
}
};
CSL_E4X.prototype.flagDateMacros = function(myxml) {
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
for each (node in myxml..macro) {
if (node..date.length()) {
node.@['macro-has-date'] = 'true';
CSL_CHROME.prototype.flagDateMacros = function(myxml) {
var pos, len, thenode, thedate;
nodes = myxml.getElementsByTagName("macro");
for (pos = 0, len = nodes.length; pos < len; pos += 1) {
thenode = nodes.item(pos);
thedate = thenode.getElementsByTagName("date");
if (thedate.length) {
thenode.setAttribute('macro-has-date', 'true');
}
}
};
@ -837,7 +981,7 @@ CSL.Output.Queue.prototype.closeLevel = function (name) {
}
this.current.pop();
};
CSL.Output.Queue.prototype.append = function (str, tokname, notSerious, ignorePredecessor) {
CSL.Output.Queue.prototype.append = function (str, tokname, notSerious, ignorePredecessor, noStripPeriods) {
var token, blob, curr;
var useblob = true;
if (this.state.tmp["doing-macro-with-date"]) {
@ -897,7 +1041,7 @@ CSL.Output.Queue.prototype.append = function (str, tokname, notSerious, ignorePr
curr = this.current.value();
}
if ("string" === typeof blob.blobs) {
if (this.state.tmp.strip_periods) {
if (this.state.tmp.strip_periods && !noStripPeriods) {
blob.blobs = blob.blobs.replace(/\./g, "");
}
if (!ignorePredecessor) {
@ -1989,7 +2133,7 @@ CSL.DateParser = function () {
};
CSL.Engine = function (sys, style, lang, forceLang) {
var attrs, langspec, localexml, locale;
this.processor_version = "1.0.269";
this.processor_version = "1.0.277";
this.csl_version = "1.0";
this.sys = sys;
this.sys.xml = new CSL.System.Xml.Parsing();
@ -2309,18 +2453,34 @@ CSL.Engine.prototype.retrieveItem = function (id) {
if (this.opt.development_extensions.field_hack && Item.note) {
m = Item.note.match(CSL.NOTE_FIELDS_REGEXP);
if (m) {
var names = {};
for (pos = 0, len = m.length; pos < len; pos += 1) {
mm = m[pos].match(CSL.NOTE_FIELD_REGEXP);
if (!Item[mm[1]] || true) {
if (CSL.DATE_VARIABLES.indexOf(mm[1]) > -1) {
Item[mm[1]] = {raw:mm[2]};
} else {
Item[mm[1]] = mm[2].replace(/^\s+/, "").replace(/\s+$/, "");
if (!Item[mm[1]] && CSL.DATE_VARIABLES.indexOf(mm[1]) > -1) {
Item[mm[1]] = {raw:mm[2]};
} else if (!Item[mm[1]] && CSL.NAME_VARIABLES.indexOf(mm[1]) > -1) {
if (!Item[mm[1]]) {
Item[mm[1]] = []
}
var lst = mm[2].split(/\s*\|\|\s*/)
if (lst.length === 1) {
Item[mm[1]].push({family:lst[0],isInstitution:true});
} else if (lst.length === 2) {
Item[mm[1]].push({family:lst[0],given:lst[1]});
}
} else if (!Item[mm[1]] || mm[1] === "type") {
Item[mm[1]] = mm[2].replace(/^\s+/, "").replace(/\s+$/, "");
}
Item.note.replace(CSL.NOTE_FIELD_REGEXP, "")
}
}
}
if (this.opt.development_extensions.jurisdiction_subfield && Item.jurisdiction) {
var subjurisdictions = Item.jurisdiction.split(";");
if (subjurisdictions.length > 1) {
Item.subjurisdiction = subjurisdictions.slice(0,2).join(";");
}
}
for (var i = 1, ilen = CSL.DATE_VARIABLES.length; i < ilen; i += 1) {
var dateobj = Item[CSL.DATE_VARIABLES[i]];
if (dateobj) {
@ -2547,6 +2707,7 @@ CSL.Engine.Opt = function () {
this.development_extensions.clean_up_csl_flaws = true;
this.development_extensions.flip_parentheses_to_braces = true;
this.development_extensions.parse_section_variable = true;
this.development_extensions.jurisdiction_subfield = true;
this.gender = {};
this['cite-lang-prefs'] = {
persons:['orig'],
@ -3315,7 +3476,7 @@ CSL.Engine.prototype.processCitationCluster = function (citation, citationsPre,
var items = citations[(j - 1)].sortedItems;
var useme = false;
if ((citations[(j - 1)].sortedItems[0][1].id == item[1].id && citations[j - 1].properties.noteIndex >= (citations[j].properties.noteIndex - 1)) || citations[(j - 1)].sortedItems[0][1].id == this.registry.registry[item[1].id].parallel) {
if (citationsInNote[citations[j - 1].properties.noteIndex] === 1) {
if (citationsInNote[citations[j - 1].properties.noteIndex] === 1 || citations[j - 1].properties.noteIndex === 0) {
useme = true;
}
}
@ -6630,11 +6791,13 @@ CSL.evaluateLabel = function (node, state, Item, item) {
return CSL.castLabel(state, node, myterm, plural);
};
CSL.evaluateStringPluralism = function (str) {
if (str && str.match(/(?:[0-9],\s*[0-9]|\s+and\s+|&|[0-9]\s*[\-\u2013]\s*[0-9])/)) {
return 1;
} else {
return 0;
if (str) {
var m = str.match(/(?:[0-9],\s*[0-9]|\s+and\s+|&|([0-9]+)\s*[\-\u2013]\s*([0-9]+))/)
if (m && (!m[1] || parseInt(m[1]) < parseInt(m[2]))) {
return 1
}
}
return 0;
};
CSL.castLabel = function (state, node, term, plural, mode) {
var ret = state.getTerm(term, node.strings.form, plural, false, mode);
@ -7091,9 +7254,8 @@ CSL.Node.number = {
for (var i = 0, ilen = values.length; i < ilen; i += 1) {
newstr += values[i][1];
}
newstr = state.fun.page_mangler(newstr);
}
if (newstr && !newstr.match(/^[0-9]+$/)) {
if (newstr && !newstr.match(/^[-.\u20130-9]+$/)) {
state.output.append(newstr, this);
} else {
state.output.openLevel("empty");
@ -7105,7 +7267,7 @@ CSL.Node.number = {
if (i < values.length - 1) {
blob.strings.suffix = blob.strings.suffix.replace(/\s*$/, "");
}
state.output.append(blob, "literal");
state.output.append(blob, "literal", false, false, true);
}
state.output.closeLevel("empty");
}
@ -7339,7 +7501,13 @@ CSL.Node.text = {
if (item && item[this.variables[0]]) {
var locator = "" + item[this.variables[0]];
locator = locator.replace(/--*/g,"\u2013");
state.output.append(locator, this);
var m = locator.match(/^([0-9]+)\s*\u2013\s*([0-9]+)$/)
if (m) {
if (parseInt(m[1]) >= parseInt(m[2])) {
locator = m[1] + "-" + m[2];
}
}
state.output.append(locator, this, false, false, true);
}
};
} else if (this.variables_real[0] === "page-first") {
@ -7352,7 +7520,7 @@ CSL.Node.text = {
if (idx > -1) {
value = value.slice(0, idx);
}
state.output.append(value, this);
state.output.append(value, this, false, false, true);
}
};
} else if (this.variables_real[0] === "page") {
@ -7360,7 +7528,7 @@ CSL.Node.text = {
var value = state.getVariable(Item, "page", form);
if (value) {
value = state.fun.page_mangler(value);
state.output.append(value, this);
state.output.append(value, this, false, false, true);
}
};
} else if (this.variables_real[0] === "volume") {
@ -7375,13 +7543,23 @@ CSL.Node.text = {
};
} else if (this.variables_real[0] === "hereinafter") {
func = function (state, Item) {
var hereinafter_key = state.transform.getHereinafter(Item);
var value = state.transform.abbrevs["default"].hereinafter[hereinafter_key];
var hereinafter_info = state.transform.getHereinafter(Item);
var value = state.transform.abbrevs[hereinafter_info[0]].hereinafter[hereinafter_info[1]];
if (value) {
state.tmp.group_context.value()[2] = true;
state.output.append(value, this);
}
};
} else if (this.variables_real[0] === "URL") {
func = function (state, Item) {
var value;
if (this.variables[0]) {
value = state.getVariable(Item, this.variables[0], form);
if (value) {
state.output.append(value, this, false, false, true);
}
}
};
} else if (this.variables_real[0] === "section") {
func = function (state, Item) {
var value;
@ -7389,6 +7567,7 @@ CSL.Node.text = {
if (value) {
if ((Item.type === "bill" || Item.type === "legislation")
&& state.opt.development_extensions.parse_section_variable) {
value = "" + value;
var m = value.match(CSL.STATUTE_SUBDIV_GROUPED_REGEX);
if (m) {
var splt = value.split(CSL.STATUTE_SUBDIV_PLAIN_REGEX);
@ -7595,8 +7774,8 @@ CSL.Attributes["@variable"] = function (state, arg) {
this.variables.push(variables[pos]);
}
if ("hereinafter" === variables[pos] && state.sys.getAbbreviation) {
var hereinafter_key = state.transform.getHereinafter(Item);
state.transform.loadAbbreviation("default", "hereinafter", hereinafter_key);
var hereinafter_info = state.transform.getHereinafter(Item);
state.transform.loadAbbreviation(hereinafter_info[0], "hereinafter", hereinafter_info[1]);
}
if (state.tmp.can_block_substitute) {
state.tmp.done_vars.push(variables[pos]);
@ -7702,9 +7881,9 @@ CSL.Attributes["@variable"] = function (state, arg) {
myitem = item;
}
if (variable === "hereinafter" && state.sys.getAbbreviation) {
var hereinafter_key = state.transform.getHereinafter(myitem);
state.transform.loadAbbreviation("default", "hereinafter", hereinafter_key);
if (state.transform.abbrevs["default"].hereinafter[hereinafter_key]) {
var hereinafter_info = state.transform.getHereinafter(myitem);
state.transform.loadAbbreviation(hereinafter_info[0], "hereinafter", hereinafter_info[1]);
if (state.transform.abbrevs[hereinafter_info[0]].hereinafter[hereinafter_info[1]]) {
x = true
}
} else if (myitem[variable]) {
@ -7877,7 +8056,10 @@ CSL.Attributes["@is-numeric"] = function (state, arg) {
state.processNumber(false, Item, variables[pos]);
}
}
if (!state.tmp.shadow_numbers[variables[pos]].numeric) {
if (!state.tmp.shadow_numbers[variables[pos]].numeric
&& !(variables[pos] === 'title'
&& Item[variables[pos]]
&& Item[variables[pos]].slice(-1) === "" + parseInt(Item[variables[pos]].slice(-1)))) {
numeric = false;
break;
}
@ -8395,13 +8577,13 @@ CSL.Transform = function (state) {
if (!myabbrev_family) {
return basevalue;
}
if (["publisher-place", "event-place"].indexOf(myabbrev_family) > -1) {
if (["publisher-place", "event-place", "subjurisdiction"].indexOf(myabbrev_family) > -1) {
myabbrev_family = "place";
}
if (["publisher", "authority"].indexOf(myabbrev_family) > -1) {
myabbrev_family = "institution-part";
}
if (["genre", "event"].indexOf(myabbrev_family) > -1) {
if (["genre", "event", "medium"].indexOf(myabbrev_family) > -1) {
myabbrev_family = "title";
}
if (["title-short"].indexOf(myabbrev_family) > -1) {
@ -8657,15 +8839,16 @@ CSL.Transform = function (state) {
hereinafter_metadata.push("date:" + date);
}
}
var jurisdiction = "default";
if (Item.jurisdiction) {
hereinafter_metadata.push("jurisdiction:" + Item.jurisdiction);
jurisdiction = Item.jurisdiction;
}
hereinafter_metadata = hereinafter_metadata.join(", ");
if (hereinafter_metadata) {
hereinafter_metadata = " [" + hereinafter_metadata + "]";
}
var hereinafter_key = hereinafter_author_title.join(", ") + hereinafter_metadata;
return hereinafter_key;
return [jurisdiction, hereinafter_key];
}
this.getHereinafter = getHereinafter;
};
@ -8674,7 +8857,7 @@ CSL.Parallel = function (state) {
this.sets = new CSL.Stack([]);
this.try_cite = true;
this.use_parallels = true;
this.midVars = ["section", "volume", "container-title", "collection-number", "issue", "page", "page-first", "locator"];
this.midVars = ["hereinafter", "section", "volume", "container-title", "collection-number", "issue", "page", "page-first", "locator"];
};
CSL.Parallel.prototype.isMid = function (variable) {
return (this.midVars.indexOf(variable) > -1);
@ -9280,6 +9463,7 @@ CSL.Util.Names.initializeWith = function (state, name, terminator, normalizeOnly
namelist = namelist.replace(/\-/g, " ");
}
namelist = namelist.replace(/\s*\-\s*/g, "-").replace(/\s+/g, " ");
namelist = namelist.replace(/-([a-z])/g, "\u2013$1")
mm = namelist.match(/[\-\s]+/g);
lst = namelist.split(/[\-\s]+/);
if (lst.length === 0) {
@ -9311,6 +9495,7 @@ CSL.Util.Names.initializeWith = function (state, name, terminator, normalizeOnly
} else {
ret = CSL.Util.Names.doInitialize(state, lst, terminator);
}
ret = ret.replace(/\u2013([a-z])/g, "-$1")
return ret;
};
CSL.Util.Names.doNormalize = function (state, namelist, terminator, mode) {
@ -9775,11 +9960,11 @@ CSL.Util.Ordinalizer.prototype.format = function (num, gender) {
str = num.toString();
if ((num / 10) % 10 === 1 || (num > 10 && num < 20)) {
str += this.suffixes[gender][3];
} else if (num % 10 === 1) {
} else if (num % 10 === 1 && num % 100 !== 11) {
str += this.suffixes[gender][0];
} else if (num % 10 === 2) {
} else if (num % 10 === 2 && num % 100 !== 12) {
str += this.suffixes[gender][1];
} else if (num % 10 === 3) {
} else if (num % 10 === 3 && num % 100 !== 13) {
str += this.suffixes[gender][2];
} else {
str += this.suffixes[gender][3];
@ -9835,7 +10020,9 @@ CSL.Engine.prototype.processNumber = function (node, ItemObject, variable) {
if (num.slice(0, 1) === '"' && num.slice(-1) === '"') {
num = num.slice(1, -1);
}
num = num.replace(/\s*\-\s*/, "\u2013", "g");
if (num.indexOf("&") > -1 || num.indexOf("--") > -1) {
this.tmp.shadow_numbers[variable].plural = 1;
}
if (this.variable === "page-first") {
m = num.split(/\s*(?:&|,|-)\s*/);
if (m) {
@ -9845,8 +10032,8 @@ CSL.Engine.prototype.processNumber = function (node, ItemObject, variable) {
}
}
}
var lst = num.split(/(?:,\s+|\s*[\-\u2013]\s*|\s*&\s*)/);
var m = num.match(/(,\s+|\s*[\-\u2013]\s*|\s*&\s*)/g);
var lst = num.split(/(?:,\s+|\s*\\*[\-\u2013]+\s*|\s*&\s*)/);
var m = num.match(/(,\s+|\s*\\*[\-\u2013]+\s*|\s*&\s*)/g);
var elements = [];
for (var i = 0, ilen = lst.length - 1; i < ilen; i += 1) {
elements.push(lst[i]);
@ -9860,7 +10047,30 @@ CSL.Engine.prototype.processNumber = function (node, ItemObject, variable) {
if (odd) {
if (elements[i]) {
if (elements[i].match(/[0-9]/)) {
count = count + 1;
if (elements[i - 1] && elements[i - 1].match(/^\s*\\*[\-\u2013]+\s*$/)) {
var middle = this.tmp.shadow_numbers[variable].values.slice(-1);
if (middle[0][1].indexOf("\\") == -1) {
if (elements[i - 2] && ("" + elements[i - 2]).match(/[0-9]+$/)
&& elements[i].match(/^[0-9]+/)
&& parseInt(elements[i - 2]) < parseInt(elements[i].replace(/[^0-9].*/,""))) {
var start = this.tmp.shadow_numbers[variable].values.slice(-2);
middle[0][1] = "\u2013";
if (this.opt["page-range-format"] ) {
var newstr = this.fun.page_mangler(start[0][1] +"-"+elements[i]);
newstr = newstr.split(/\u2013/);
elements[i] = newstr[1];
}
count = count + 1;
}
if (middle[0][1].indexOf("--") > -1) {
middle[0][1] = middle[0][1].replace(/--*/, "\u2013");
}
} else {
middle[0][1] = middle[0][1].replace(/\\/, "", "g");
}
} else {
count = count + 1;
}
}
var subelements = elements[i].split(/\s+/);
for (var j = 0, jlen = subelements.length; j < jlen; j += 1) {
@ -9905,7 +10115,7 @@ CSL.Engine.prototype.processNumber = function (node, ItemObject, variable) {
this.tmp.shadow_numbers[variable].numeric = true;
} else {
this.tmp.shadow_numbers[variable].numeric = numeric;
}
}
if (count > 1) {
this.tmp.shadow_numbers[variable].plural = 1;
}

View file

@ -337,23 +337,73 @@ Zotero.Tag.prototype.save = function (full) {
key
];
if (isNew) {
var sql = "INSERT INTO tags (" + columns.join(', ') + ") VALUES ("
+ placeholders.join(', ') + ")";
var insertID = Zotero.DB.query(sql, sqlValues);
if (!tagID) {
tagID = insertID;
try {
if (isNew) {
var sql = "INSERT INTO tags (" + columns.join(', ') + ") VALUES ("
+ placeholders.join(', ') + ")";
var insertID = Zotero.DB.query(sql, sqlValues);
if (!tagID) {
tagID = insertID;
}
}
else {
// Remove tagID from beginning
columns.shift();
sqlValues.shift();
sqlValues.push(tagID);
var sql = "UPDATE tags SET " + columns.join("=?, ") + "=?"
+ " WHERE tagID=?";
Zotero.DB.query(sql, sqlValues);
}
}
else {
// Remove tagID from beginning
columns.shift();
sqlValues.shift();
sqlValues.push(tagID);
var sql = "UPDATE tags SET " + columns.join("=?, ") + "=?"
+ " WHERE tagID=?";
Zotero.DB.query(sql, sqlValues);
catch (e) {
// If an incoming tag is the same as an existing tag, but with a different key,
// then delete the old tag and add its linked items to the new tag
if (typeof e == 'string' && e.indexOf('columns libraryID, name, type are not unique') != -1) {
Zotero.debug("Tag matches existing tag with different key -- delete old tag and merging items");
// GET existing tag
var existing = Zotero.Tags.getIDs(this.name, this.libraryID);
if (!existing) {
throw new Error("Existing tag not found");
}
for each(var id in existing) {
var tag = Zotero.Tags.get(id, true);
if (tag.type == this.type) {
var linked = tag.getLinkedItems(true);
Zotero.Tags.erase(id);
Zotero.Tags.purge(id);
break;
}
}
// Save again
if (isNew) {
var sql = "INSERT INTO tags (" + columns.join(', ') + ") VALUES ("
+ placeholders.join(', ') + ")";
var insertID = Zotero.DB.query(sql, sqlValues);
if (!tagID) {
tagID = insertID;
}
}
else {
var sql = "UPDATE tags SET " + columns.join("=?, ") + "=?"
+ " WHERE tagID=?";
Zotero.DB.query(sql, sqlValues);
}
// TEMP: until getLinkedItems() returns only arrays
linked = linked ? linked : [];
var linked2 = this.getLinkedItems(true);
linked2 = linked2 ? linked2 : [];
linked = linked.concat(linked2);
this.linkedItems = Zotero.Utilities.arrayUnique(linked);
}
else {
throw (e);
}
}

View file

@ -339,21 +339,25 @@ Zotero.Integration = new function() {
if(_x11 === false) return;
if(!_x11) {
try {
var libName = ctypes.libraryName("X11");
_x11 = ctypes.open("libX11.so.6");
} catch(e) {
_x11 = false;
Zotero.debug("Integration: Could not get libX11 name; not activating");
Zotero.logError(e);
return;
}
try {
_x11 = ctypes.open(libName);
} catch(e) {
_x11 = false;
Zotero.debug("Integration: Could not open "+libName+"; not activating");
Zotero.logError(e);
return;
try {
var libName = ctypes.libraryName("X11");
} catch(e) {
_x11 = false;
Zotero.debug("Integration: Could not get libX11 name; not activating");
Zotero.logError(e);
return;
}
try {
_x11 = ctypes.open(libName);
} catch(e) {
_x11 = false;
Zotero.debug("Integration: Could not open "+libName+"; not activating");
Zotero.logError(e);
return;
}
}
const Status = ctypes.int,
@ -520,8 +524,6 @@ Zotero.Integration = new function() {
event.format = 32;
event.l0 = 2;
var mask = 1<<20 /* SubstructureRedirectMask */ | 1<<19 /* SubstructureNotifyMask */;
Zotero.debug(event.toSource());
Zotero.debug([_x11Display, rootWindow, 0, mask, event.address()]);
if(XSendEvent(_x11Display, rootWindow, 0, mask, event.address())) {
XMapRaised(_x11Display, x11Window);
@ -536,6 +538,24 @@ Zotero.Integration = new function() {
intervalID = win.setInterval(_X11BringToForeground, 50);
}, false);
}
var dummyPtr = dummy.address();
if(!XQueryTree(display, w, dummyPtr, dummyPtr, childrenPtr.address(),
nChildren.address()) || childrenPtr.isNull()) {
return false;
}
var nChildrenJS = nChildren.value;
var children = ctypes.cast(childrenPtr, ctypes.uint32_t.array(nChildrenJS).ptr).contents;
var foundWindow = false;
for(var i=0; i<nChildrenJS; i++) {
foundWindow = _X11FindWindow(display, children.addressOfElement(i).contents,
searchName);
if(foundWindow) break;
}
XFree(children);
return foundWindow;
}
function _X11FindWindow(display, w, searchName) {
@ -562,8 +582,9 @@ Zotero.Integration = new function() {
var children = ctypes.cast(childrenPtr, ctypes.uint32_t.array(nChildrenJS).ptr).contents;
var foundWindow = false;
for(var i=0; i<nChildrenJS; i++) {
foundWindow = _X11FindWindow(display, children.addressOfElement(i).contents,
searchName);
var testWin = children.addressOfElement(i).contents;
if(testWin == 0) continue;
foundWindow = _X11FindWindow(display, testWin, searchName);
if(foundWindow) break;
}
@ -1064,9 +1085,6 @@ Zotero.Integration.Document.prototype.setDocPrefs = function() {
// pass to conversion function
me._doc.convert(new Zotero.Integration.Document.JSEnumerator(fieldsToConvert),
me._session.data.prefs.fieldType, fieldNoteTypes, fieldNoteTypes.length);
// clear fields so that they will get collected again before refresh
me._fields = undefined;
}
// refresh contents
@ -1246,33 +1264,39 @@ Zotero.Integration.Fields.prototype._retrieveFields = function() {
* @param {Field} field The Zotero field object
* @param {Integer} i The field index
*/
Zotero.Integration.Fields.prototype._showCorruptFieldError = function(e, field, i) {
Zotero.Integration.Fields.prototype._showCorruptFieldError = function(e, field, callback, errorCallback, i) {
Zotero.logError(e);
var msg = Zotero.getString("integration.corruptField")+'\n\n'+
Zotero.getString('integration.corruptField.description');
field.select();
this._doc.activate();
var result = this._doc.displayAlert(msg,
Components.interfaces.zoteroIntegrationDocument.DIALOG_ICON_CAUTION,
Components.interfaces.zoteroIntegrationDocument.DIALOG_BUTTONS_YES_NO_CANCEL);
if(result == 0) {
throw e;
throw new Zotero.Integration.UserCancelledException;
} else if(result == 1) { // No
this._removeCodeFields.push(i);
return true;
} else {
// Display reselect edit citation dialog
var added = this.addEditCitation(field);
if(added) {
this._doc.activate();
} else {
throw new Zotero.Integration.UserCancelledException();
}
var me = this;
var oldWindow = Zotero.Integration.currentWindow;
this.addEditCitation(field, function() {
Zotero.Integration.currentWindow.close();
Zotero.Integration.currentWindow = oldWindow;
me.updateSession(callback, errorCallback);
});
return false;
}
}
/**
* Updates Zotero.Integration.Session attached to Zotero.Integration.Fields in line with document
*/
Zotero.Integration.Fields.prototype.updateSession = function(callback) {
Zotero.Integration.Fields.prototype.updateSession = function(callback, errorCallback) {
var me = this;
this.get(function(fields) {
me._session.resetRequest(me._doc);
@ -1297,7 +1321,9 @@ Zotero.Integration.Fields.prototype.updateSession = function(callback) {
try {
me._session.loadBibliographyData(me._bibliographyData);
} catch(e) {
if(e instanceof Zotero.Integration.CorruptFieldException) {
if(errorCallback) {
errorCallback(e);
} else if(e instanceof Zotero.Integration.CorruptFieldException) {
var msg = Zotero.getString("integration.corruptBibliography")+'\n\n'+
Zotero.getString('integration.corruptBibliography.description');
var result = me._doc.displayAlert(msg,
@ -1330,16 +1356,16 @@ Zotero.Integration.Fields.prototype.updateSession = function(callback) {
if(callback) callback(me._session);
}));
} else {
if(callback) callback(this._session);
if(callback) callback(me._session);
}
});
}, errorCallback);
});
}
/**
* Keep processing fields until all have been processed
*/
Zotero.Integration.Fields.prototype._processFields = function(fields, callback, i) {
Zotero.Integration.Fields.prototype._processFields = function(fields, callback, errorCallback, i) {
if(!i) i = 0;
for(var n = fields.length; i<n; i++) {
@ -1348,7 +1374,7 @@ Zotero.Integration.Fields.prototype._processFields = function(fields, callback,
try {
var fieldCode = field.getCode();
} catch(e) {
this._showCorruptFieldError(e, field, i);
if(!this._showCorruptFieldError(e, field, callback, errorCallback, i)) return;
}
var [type, content] = this.getCodeTypeAndContent(fieldCode);
@ -1357,7 +1383,9 @@ Zotero.Integration.Fields.prototype._processFields = function(fields, callback,
try {
this._session.addCitation(i, noteIndex, content);
} catch(e) {
if(e instanceof Zotero.Integration.MissingItemException) {
if(errorCallback) {
errorCallback(e);
} else if(e instanceof Zotero.Integration.MissingItemException) {
// First, check if we've already decided to remove field codes from these
var reselect = true;
for each(var reselectKey in e.reselectKeys) {
@ -1377,6 +1405,7 @@ Zotero.Integration.Fields.prototype._processFields = function(fields, callback,
}
msg += '\n\n'+Zotero.getString('integration.missingItem.description');
field.select();
this._doc.activate();
var result = this._doc.displayAlert(msg, 1, 3);
if(result == 0) { // Cancel
throw new Zotero.Integration.UserCancelledException();
@ -1388,16 +1417,18 @@ Zotero.Integration.Fields.prototype._processFields = function(fields, callback,
} else { // Yes
// Display reselect item dialog
var me = this;
var oldCurrentWindow = Zotero.Integration.currentWindow;
this._session.reselectItem(this._doc, e, function() {
// Now try again
Zotero.Integration.currentWindow = oldCurrentWindow;
me._doc.activate();
me._processFields(fields, callback, i);
me._processFields(fields, callback, errorCallback, i);
});
return;
}
}
} else if(e instanceof Zotero.Integration.CorruptFieldException) {
this._showCorruptFieldError(e, field, i);
if(!this._showCorruptFieldError(e, field, callback, errorCallback, i)) return;
} else {
throw e;
}
@ -1595,40 +1626,56 @@ Zotero.Integration.Fields.prototype.addEditCitation = function(field, callback)
// if there's already a citation, make sure we have item IDs in addition to keys
if(field) {
var code = field.getCode();
[type, content] = this.getCodeTypeAndContent(code);
if(type != INTEGRATION_TYPE_ITEM) {
throw new Zotero.Integration.DisplayException("notInCitation");
}
citation = session.unserializeCitation(content);
try {
session.lookupItems(citation);
} catch(e) {
if(e instanceof MissingItemException) {
citation.citationItems = [];
} else {
throw e;
var code = field.getCode();
} catch(e) {}
if(code) {
[type, content] = this.getCodeTypeAndContent(code);
if(type != INTEGRATION_TYPE_ITEM) {
throw new Zotero.Integration.DisplayException("notInCitation");
}
try {
citation = session.unserializeCitation(content);
} catch(e) {}
if(citation) {
try {
session.lookupItems(citation);
} catch(e) {
if(e instanceof MissingItemException) {
citation.citationItems = [];
} else {
throw e;
}
}
if(citation.properties.dontUpdate
|| (citation.properties.plainCitation
&& field.getText() !== citation.properties.plainCitation)) {
this._doc.activate();
if(!this._doc.displayAlert(Zotero.getString("integration.citationChanged.edit"),
Components.interfaces.zoteroIntegrationDocument.DIALOG_ICON_WARNING,
Components.interfaces.zoteroIntegrationDocument.DIALOG_BUTTONS_OK_CANCEL)) {
throw new Zotero.Integration.UserCancelledException;
}
}
// make sure it's going to get updated
delete citation.properties["formattedCitation"];
delete citation.properties["plainCitation"];
delete citation.properties["dontUpdate"];
}
}
if(citation.properties.dontUpdate) {
if(!this._doc.displayAlert(Zotero.getString("integration.citationChanged.edit"),
Components.interfaces.zoteroIntegrationDocument.DIALOG_ICON_WARNING,
Components.interfaces.zoteroIntegrationDocument.DIALOG_BUTTONS_OK_CANCEL)) {
throw new Zotero.Integration.UserCancelledException;
}
}
// make sure it's going to get updated
delete citation.properties["formattedCitation"];
delete citation.properties["plainCitation"];
delete citation.properties["dontUpdate"];
} else {
newField = true;
var field = this.addField(true);
if(!field) return;
}
if(!citation) {
field.setCode("TEMP");
citation = {"citationItems":[], "properties":{}};
}
@ -1703,6 +1750,11 @@ Zotero.Integration.CitationEditInterface.prototype = {
}
me._sessionUpdated = true;
delete me._sessionCallbackQueue;
}, function(e) {
if(e instanceof Zotero.Integration.MissingItemException
|| e instanceof Zotero.Integration.CorruptFieldException) {
me._errorOccurred = true;
}
});
}
},
@ -1735,11 +1787,23 @@ Zotero.Integration.CitationEditInterface.prototype = {
* Receives a number from 0 to 100 indicating current status.
*/
"accept":function(progressCallback) {
var me = this;
this._fields.progressCallback = progressCallback;
if(this._errorOccurred) {
// If an error occurred updating the session, update it again, this time letting the
// error get displayed
Zotero.setTimeout(function() {
me._fields.updateSession(function() {
me._errorOccurred = false;
me.accept(progressCallback);
})
}, 0);
return;
}
if(this.citation.citationItems.length) {
// Citation added
var me = this;
// Citation
this._runWhenSessionUpdated(function() {
me._session.addCitation(me._fieldIndex, me._field.getNoteIndex(), me.citation);
me._session.updateIndices[me._fieldIndex] = true;
@ -1840,11 +1904,12 @@ Zotero.Integration.Session.prototype.resetRequest = function(doc) {
this.updateIndices = {};
this.newIndices = {};
this.oldCitationIDs = this.citationIDs;
this.oldCitationIDs = this.citeprocCitationIDs;
this.citationsByItemID = {};
this.citationsByIndex = [];
this.citationIDs = {};
this.documentCitationIDs = {};
this.citeprocCitationIDs = {};
this.citationText = {};
this.doc = doc;
@ -1920,6 +1985,7 @@ Zotero.Integration.Session.prototype.setDocPrefs = function(doc, primaryFieldTyp
if(!oldData || oldData.style.styleID != data.style.styleID
|| oldData.prefs.noteType != data.prefs.noteType
|| oldData.prefs.fieldType != data.prefs.fieldType) {
// This will cause us to regenerate all citations
me.oldCitationIDs = {};
}
@ -2078,7 +2144,8 @@ Zotero.Integration.Session.prototype.addCitation = function(index, noteIndex, ar
}
}
var needNewID = !citation.citationID || this.citationIDs[citation.citationID];
// We need a new ID if there's another citation with the same citation ID in this document
var needNewID = !citation.citationID || this.documentCitationIDs[citation.citationID];
if(needNewID || !this.oldCitationIDs[citation.citationID]) {
if(needNewID) {
Zotero.debug("Integration: "+citation.citationID+" ("+index+") needs new citationID");
@ -2088,7 +2155,7 @@ Zotero.Integration.Session.prototype.addCitation = function(index, noteIndex, ar
this.updateIndices[index] = true;
}
Zotero.debug("Integration: Adding citationID "+citation.citationID);
this.citationIDs[citation.citationID] = true;
this.documentCitationIDs[citation.citationID] = citation.citationID;
}
/**
@ -2320,7 +2387,7 @@ Zotero.Integration.Session.prototype.deleteCitation = function(index) {
}
}
Zotero.debug("Integration: Deleting old citationID "+oldCitation.citationID);
if(oldCitation.citationID) delete this.citationIDs[oldCitation.citationID];
if(oldCitation.citationID) delete this.citeprocCitationIDs[oldCitation.citationID];
this.updateIndices[index] = true;
}
@ -2471,9 +2538,7 @@ Zotero.Integration.Session.prototype.updateCitations = function(callback) {
if(this.formatCitation(index, citation)) {
this.bibliographyHasChanged = true;
}
if(!this.citationIDs[citation.citationID]) {
this.citationIDs[citation.citationID] = citation;
}
this.citeprocCitationIDs[citation.citationID] = true;
delete this.newIndices[index];
yield true;
}
@ -2995,4 +3060,4 @@ Zotero.Integration.URIMap.prototype.getZoteroItemForURIs = function(uris) {
}
return [zoteroItem, needUpdate];
}
}

View file

@ -201,7 +201,8 @@ Zotero.LocateManager = new function() {
"image/png":"png",
"image/jpeg":"jpg",
"image/gif":"gif",
"image/x-icon":"ico"
"image/x-icon":"ico",
"image/vnd.microsoft.icon":"ico"
};
// ensure there is an icon

View file

@ -50,7 +50,6 @@ Zotero.MIME = new function(){
["\uFFFD\uFFFD\uFFFD\uFFFD", 'image/jpeg', 0],
["GIF8", 'image/gif', 0],
["\uFFFDPNG", 'image/png', 0],
["PK\x03\x04", "application/vnd.oasis.opendocument.text", 0],
["JFIF", 'image/jpeg'],
["FLV", "video/x-flv", 0]

View file

@ -1,67 +1,4 @@
/**
*
* UTF-8 data encode / decode
* http://www.webtoolkit.info/
*
**/
var Utf8 = {
// public method for url encoding
encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
},
// public method for url decoding
decode : function (utftext) {
var string = "";
var i = 0;
while ( i < utftext.length ) {
var c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if((c > 191) && (c < 224)) {
string += String.fromCharCode(((c & 31) << 6)
| (utftext.charCodeAt(i+1) & 63));
i += 2;
}
else {
string += String.fromCharCode(((c & 15) << 12)
| ((utftext.charCodeAt(i+1) & 63) << 6)
| (utftext.charCodeAt(i+2) & 63));
i += 3;
}
}
return string;
}
}// Things we need to define to make converted pythn code work in js
// Things we need to define to make converted pythn code work in js
// environment of tabulator
var RDFSink_forSomeSym = "http://www.w3.org/2000/10/swap/log#forSome";
@ -120,17 +57,6 @@ stringFromCharCode = function(uesc) {
}
String.prototype.encode = function(encoding) {
if (encoding != 'utf-8') throw "UTF8_converter: can only do utf-8"
return Utf8.encode(this);
}
String.prototype.decode = function(encoding) {
if (encoding != 'utf-8') throw "UTF8_converter: can only do utf-8"
//return Utf8.decode(this);
return this;
}
uripath_join = function(base, given) {
return Util.uri.join(given, base) // sad but true
@ -309,7 +235,7 @@ __SinkParser.prototype.feed = function(octets) {
So if there is more data to feed to the
parser, it should be straightforward to recover.*/
var str = octets.decode("utf-8");
var str = octets;
var i = 0;
while ((i >= 0)) {
var j = this.skipSpace(str, i);
@ -1461,36 +1387,7 @@ __SinkParser.prototype.UEscape = function(str, i, startline) {
var uch = stringFromCharCode( ( ( "0x" + pyjslib_slice(value, 2, 10) ) - 0 ) );
return new pyjslib_Tuple([j, uch]);
};
function OLD_BadSyntax(uri, lines, str, i, why) {
return new __OLD_BadSyntax(uri, lines, str, i, why);
}
function __OLD_BadSyntax(uri, lines, str, i, why) {
this._str = str.encode("utf-8");
this._str = str;
this._i = i;
this._why = why;
this.lines = lines;
this._uri = uri;
}
__OLD_BadSyntax.prototype.toString = function() {
var str = this._str;
var i = this._i;
var st = 0;
if ((i > 60)) {
var pre = "...";
var st = ( i - 60 ) ;
}
else {
var pre = "";
}
if (( ( pyjslib_len(str) - i ) > 60)) {
var post = "...";
}
else {
var post = "";
}
return "Line %i of <%s>: Bad syntax (%s) at ^ in:\n\"%s%s^%s%s\"" % new pyjslib_Tuple([ ( this.lines + 1 ) , this._uri, this._why, pre, pyjslib_slice(str, st, i), pyjslib_slice(str, i, ( i + 60 ) ), post]);
};
function BadSyntax(uri, lines, str, i, why) {
return ( ( ( ( ( ( ( ( "Line " + ( lines + 1 ) ) + " of <" ) + uri ) + ">: Bad syntax: " ) + why ) + "\nat: \"" ) + pyjslib_slice(str, i, ( i + 30 ) ) ) + "\"" ) ;
}

View file

@ -586,6 +586,9 @@ Zotero.Schema = new function(){
case 'nlm':
case 'vancouver':
// Remove update script (included with 3.0 accidentally)
case 'update':
// Delete renamed/obsolete files
case 'chicago-note.csl':
case 'mhra_note_without_bibliography.csl':

View file

@ -53,8 +53,8 @@ Zotero.Sync.Storage = new function () {
// TEMP
// TODO: localize
this.defaultError = "A file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, restart Firefox and/or your computer and try again. If you continue to receive the message, submit an error report and post the Report ID to a new thread in the Zotero Forums.";
this.defaultErrorRestart = "A file sync error occurred. Please restart Firefox and/or your computer and try syncing again.\n\nIf you receive this message repeatedly, submit an error report and post the Report ID to a new thread in the Zotero Forums.";
this.defaultError = "A file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, restart " + Zotero.appName + " and/or your computer and try again. If you continue to receive the message, submit an error report and post the Report ID to a new thread in the Zotero Forums.";
this.defaultErrorRestart = "A file sync error occurred. Please restart " + Zotero.appName + " and/or your computer and try syncing again.\n\nIf you receive this message repeatedly, submit an error report and post the Report ID to a new thread in the Zotero Forums.";
//
// Public properties

View file

@ -28,7 +28,7 @@ Zotero.Sync.Storage.Module.WebDAV = (function () {
// TEMP
// TODO: localize
var _defaultError = "A WebDAV file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.";
var _defaultErrorRestart = "A WebDAV file sync error occurred. Please restart Firefox and try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.";
var _defaultErrorRestart = "A WebDAV file sync error occurred. Please restart " + Zotero.appName + " and try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.";
var _parentURI;
var _rootURI;

View file

@ -70,7 +70,7 @@ Zotero.Sync.Storage.Module.ZFS = (function () {
Zotero.debug("Response headers unavailable");
}
// TODO: localize?
var msg = "A file sync error occurred. Please restart Firefox and/or your computer and try syncing again.\n\n"
var msg = "A file sync error occurred. Please restart " + Zotero.appName + " and/or your computer and try syncing again.\n\n"
+ "If the error persists, there may be a problem with either your computer or your network: security software, proxy server, VPN, etc. "
+ "Try disabling any security/firewall software you're using or, if this is a laptop, try from a different network.";
Zotero.Sync.Storage.EventManager.error(msg);
@ -508,6 +508,8 @@ Zotero.Sync.Storage.Module.ZFS = (function () {
+ " (" + Zotero.Items.getLibraryKeyHash(item) + ")";
Zotero.debug(msg, 1);
Components.utils.reportError(msg);
Components.utils.reportError(response);
Components.utils.reportError(msg);
Zotero.Sync.Storage.EventManager.error(Zotero.Sync.Storage.defaultError);
}
@ -524,6 +526,7 @@ Zotero.Sync.Storage.Module.ZFS = (function () {
Zotero.debug(req.responseText);
Zotero.debug(req.getAllResponseHeaders());
Components.utils.reportError(msg);
Components.utils.reportError(req.responseText);
Zotero.Sync.Storage.EventManager.error(Zotero.Sync.Storage.defaultError);
}

View file

@ -524,7 +524,7 @@ Zotero.Sync.Runner = new function () {
if (Zotero.HTTP.browserIsOffline()){
this.clearSyncTimeout(); // DEBUG: necessary?
var msg = "Zotero cannot sync while Firefox is in offline mode.";
var msg = "Zotero cannot sync while " + Zotero.appName + " is in offline mode.";
var e = new Zotero.Error(msg, 0, { dialogButtonText: null })
this.setSyncIcon('error', e);
return false;
@ -533,7 +533,7 @@ Zotero.Sync.Runner = new function () {
if (_running) {
// TODO: show status in all windows
var msg = "A sync process is already running. To view progress, check "
+ "the window in which the sync began or restart Firefox.";
+ "the window in which the sync began or restart " + Zotero.appName + ".";
var e = new Zotero.Error(msg, 0, { dialogButtonText: null, frontWindowOnly: true })
this.setSyncIcon('error', e);
return false;

View file

@ -371,6 +371,7 @@ Zotero.Translate.Sandbox = {
Zotero.Translators.get(translation.translator[0], haveTranslatorFunction);
if(Zotero.isConnector && Zotero.isFx && !callback) {
while(!sandbox && translate._currentState) {
// This processNextEvent call is used to handle a deprecated case
Zotero.mainThread.processNextEvent(true);
}
}

View file

@ -271,6 +271,7 @@ Zotero.Utilities.Translate.prototype.processDocuments = function(urls, processor
* Gets the DOM document object corresponding to the page located at URL, but avoids locking the
* UI while the request is in process.
*
* @deprecated
* @param {String} url URL to load
* @return {Document} DOM document object
*/
@ -297,6 +298,7 @@ Zotero.Utilities.Translate.prototype.retrieveDocument = function(url) {
// should ever take longer than 2 minutes.
var endTime = Date.now() + 120000;
while(!loaded && Date.now() < endTime) {
// This processNextEvent call is used to handle a deprecated case
mainThread.processNextEvent(true);
}
@ -313,6 +315,7 @@ Zotero.Utilities.Translate.prototype.retrieveDocument = function(url) {
* Gets the source of the page located at URL, but avoids locking the UI while the request is in
* process.
*
* @deprecated
* @param {String} url URL to load
* @param {String} [body=null] Request body to POST to the URL; a GET request is
* executed if no body is present
@ -345,6 +348,7 @@ Zotero.Utilities.Translate.prototype.retrieveSource = function(url, body, header
var xmlhttp = Zotero.HTTP.doGet(url, listener, responseCharset, this._translate.cookieSandbox);
}
// This processNextEvent call is used to handle a deprecated case
while(!finished) mainThread.processNextEvent(true);
} else {
// Use a synchronous XMLHttpRequest, even though this is inadvisable

View file

@ -35,7 +35,7 @@ const ZOTERO_CONFIG = {
API_URL: 'https://api.zotero.org/',
PREF_BRANCH: 'extensions.zotero.',
BOOKMARKLET_URL: 'https://www.zotero.org/bookmarklet/',
VERSION: "3.0rc1.SOURCE"
VERSION: "3.0.2.SOURCE"
};
/*
@ -1483,44 +1483,6 @@ const ZOTERO_CONFIG = {
return;
};
/**
* Repaint UI on given window, without executing any events.
*
* @param {window} window Window to repaint
* @param {Boolean} [force=false] Whether to force a repaint. If false, a repaint only takes
* place if the last repaint was more than 100 ms ago.
*/
this.repaint = function(window, force) {
var now = Date.now();
if (!window) {
window = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow("navigator:browser");
}
// Don't repaint more than 10 times per second unless forced.
if(!force && window.zoteroLastRepaint && (now - window.zoteroLastRepaint) < 100) return
// Start a nested event queue
Zotero.mainThread.pushEventQueue(null);
try {
// Add the redraw event onto event queue
window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindowUtils)
.redraw();
// Process redraw event
Zotero.mainThread.processNextEvent(false);
} finally {
// Close nested event queue
Zotero.mainThread.popEventQueue();
}
window.zoteroLastRepaint = now;
};
/**
* Pumps a generator until it yields false. See itemTreeView.js for an example.
*

View file

@ -274,8 +274,9 @@ var ZoteroPane = new function()
for (var i = 0; i<itemTypes.length; i++) {
var menuitem = document.createElement("menuitem");
menuitem.setAttribute("label", itemTypes[i].localized);
menuitem.setAttribute("oncommand","ZoteroPane_Local.newItem("+itemTypes[i]['id']+")");
menuitem.setAttribute("tooltiptext", "");
let type = itemTypes[i].id;
menuitem.addEventListener("command", function() { ZoteroPane_Local.newItem(type); }, false);
moreMenu.appendChild(menuitem);
}
}
@ -311,8 +312,9 @@ var ZoteroPane = new function()
for (var i = 0; i<itemTypes.length; i++) {
var menuitem = document.createElement("menuitem");
menuitem.setAttribute("label", itemTypes[i].localized);
menuitem.setAttribute("oncommand","ZoteroPane_Local.newItem("+itemTypes[i]['id']+")");
menuitem.setAttribute("tooltiptext", "");
let type = itemTypes[i].id;
menuitem.addEventListener("command", function() { ZoteroPane_Local.newItem(type); }, false);
menuitem.className = "zotero-tb-add";
addMenu.insertBefore(menuitem, separator);
}
@ -3163,10 +3165,10 @@ var ZoteroPane = new function()
if (item.libraryID) {
var group = Zotero.Groups.getByLibraryID(item.libraryID);
filesEditable = group.filesEditable;
var filesEditable = group.filesEditable;
}
else {
filesEditable = true;
var filesEditable = true;
}
if (saveSnapshot) {

View file

@ -98,7 +98,7 @@
chromedir="&locale.dir;">
<toolbar id="zotero-toolbar" class="toolbar">
<hbox id="zotero-collections-toolbar">
<hbox id="zotero-collections-toolbar" align="center">
<toolbarbutton id="zotero-tb-collection-add" class="zotero-tb-button" tooltiptext="&zotero.toolbar.newCollection.label;" command="cmd_zotero_newCollection"/>
<toolbarbutton id="zotero-tb-group-add" class="zotero-tb-button" tooltiptext="&zotero.toolbar.newGroup;" oncommand="ZoteroPane_Local.newGroup()"/>
<spacer flex="1"/>
@ -126,7 +126,7 @@
</toolbarbutton>
</hbox>
<hbox id="zotero-items-toolbar">
<hbox id="zotero-items-toolbar" align="center">
<toolbarbutton id="zotero-tb-add" class="zotero-tb-button" tooltiptext="&zotero.toolbar.newItem.label;" type="menu">
<!-- New Item drop-down built in overlay.js::onLoad() -->
<menupopup onpopupshowing="ZoteroPane_Local.updateNewItemTypes()">
@ -161,8 +161,8 @@
</toolbarbutton>
<toolbarbutton id="zotero-tb-attachment-add" class="zotero-tb-button" tooltiptext="New Child Attachment" type="menu">
<menupopup onpopupshowing="ZoteroPane_Local.updateAttachmentButtonMenu(this)">
<menuitem class="menuitem-iconic zotero-menuitem-attachments-snapshot" label="&zotero.items.menu.attach.snapshot;" oncommand="var itemID = ZoteroPane_Local.getSelectedItems()[0].id; ZoteroPane_Local.addAttachmentFromPage(false, itemID)"/>
<menuitem class="menuitem-iconic zotero-menuitem-attachments-web-link" label="&zotero.items.menu.attach.link;" oncommand="var itemID = ZoteroPane_Local.getSelectedItems()[0].id; ZoteroPane_Local.addAttachmentFromPage(true, itemID)"/>
<menuitem id="zotero-tb-snapshot-from-page" class="menuitem-iconic zotero-menuitem-attachments-snapshot" label="&zotero.items.menu.attach.snapshot;" oncommand="var itemID = ZoteroPane_Local.getSelectedItems()[0].id; ZoteroPane_Local.addAttachmentFromPage(false, itemID)"/>
<menuitem id="zotero-tb-link-from-page" class="menuitem-iconic zotero-menuitem-attachments-web-link" label="&zotero.items.menu.attach.link;" oncommand="var itemID = ZoteroPane_Local.getSelectedItems()[0].id; ZoteroPane_Local.addAttachmentFromPage(true, itemID)"/>
<menuitem class="menuitem-iconic zotero-menuitem-attachments-web-link" label="&zotero.items.menu.attach.link.uri;" oncommand="var itemID = ZoteroPane_Local.getSelectedItems()[0].id; ZoteroPane_Local.addAttachmentFromURI(true, itemID);"/>
<!-- TODO: localize -->
<menuitem class="menuitem-iconic zotero-menuitem-attachments-file" label="Attach Stored Copy of File…" oncommand="var itemID = ZoteroPane_Local.getSelectedItems()[0].id; ZoteroPane_Local.addAttachmentFromDialog(false, itemID);"/>
@ -178,7 +178,7 @@
oncommand="ZoteroPane_Local.search()"/>
</hbox>
<hbox id="zotero-item-toolbar" flex="1">
<hbox id="zotero-item-toolbar" flex="1" align="center">
<hbox align="center" pack="start" flex="1">
<toolbarbutton id="zotero-tb-locate" class="zotero-tb-button" tooltiptext="&zotero.toolbar.openURL.label;" type="menu">
<menupopup id="zotero-tb-locate-menu" onpopupshowing="Zotero_LocateMenu.buildLocateMenu()"/>

View file

@ -13,8 +13,8 @@ general.restartNow=Restart now
general.restartLater=Restart later
general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Please restart Firefox.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again.
general.restartFirefox=Please restart %S.
general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone.
general.install=Install
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ 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?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -420,7 +420,7 @@ ingester.lookup.performing=Performing Lookup…
ingester.lookup.error=An error occurred while performing lookup for this item.
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.dbCorrupted.restart=Please restart %S 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.
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Използва на папката на Firefox проф
dataDir.selectDir=Изберете папка за даните на Зотеро
dataDir.selectedDirNonEmpty.title=Папката не е празна
dataDir.selectedDirNonEmpty.text=Папката която избрахте не е празна и не изглежда като папка за дани на Зотеро.\n\nДа бъдат ли създадени файловете на Зотеро независимо от това?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -51,7 +51,7 @@ upgrade.advanceMessage=Prem %S per a actualitzar ara.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Utilitza el directori del perfil del Firefox
dataDir.selectDir=Selecciona directori de dates per a Zotero
dataDir.selectedDirNonEmpty.title=El directori no està buit
dataDir.selectedDirNonEmpty.text=El directori que has seleccionat no està buit i no sembla que sigui un directori de dades de Zotero.\n\n Vols crear arxius de Zotero en aquest directori de totes maneres?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Použít adresář profilu aplikace Firefox
dataDir.selectDir=Vybrat Datový adresář aplikace Zotero
dataDir.selectedDirNonEmpty.title=Adresář není prázdný
dataDir.selectedDirNonEmpty.text=Adresář, který jste vybrali, není prázdný a zřejmě není Datovým adresářem aplikace Zotero.\n\nChcete přesto vytvořit soubory aplikace Zotero v tomto adresáři?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -13,8 +13,8 @@ general.restartNow=Restart now
general.restartLater=Restart later
general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Please restart Firefox.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again.
general.restartFirefox=Please restart %S.
general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone.
general.install=Install
@ -51,7 +51,7 @@ upgrade.advanceMessage=Tryk %S for at opgradere nu
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ 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?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -420,7 +420,7 @@ ingester.lookup.performing=Performing Lookup…
ingester.lookup.error=An error occurred while performing lookup for this item.
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.dbCorrupted.restart=Please restart %S to attempt an automatic restore from the last backup.
db.dbCorruptedNoBackup=tilgængelig.\n\nEn ny Database er blevet oprettet. Den ødelagte Database er blevet gemt i Zotero Folderen. Den ødelagte Database er blevet gemt i Zotero Folderen.
db.dbRestored=Zotero databasen er blevet ødelagt, og ingen backup var tilgængelig.\n\nDine data er blevet genoprettet ud fra automatisk backup fortaget %1$S kl. %2$S. Den ødelagte Database er blevet gemt i Zotero Folderen.
db.dbRestoreFailed=Zotero databasen er blevet ødelagt, og et forsøg på at genoprette dine data ud fra backup er fejlet.\n\nEn ny Database er blevet oprettet. Den ødelagte Database er blevet gemt i Zotero Folderen. Den ødelagte Database er blevet gemt i Zotero Folderen.
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ 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?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -13,8 +13,8 @@ general.restartNow=Restart now
general.restartLater=Restart later
general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Please restart Firefox.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again.
general.restartFirefox=Please restart %S.
general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone.
general.install=Install
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ 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?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -420,7 +420,7 @@ ingester.lookup.performing=Performing Lookup…
ingester.lookup.error=An error occurred while performing lookup for this item.
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.dbCorrupted.restart=Please restart %S 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.
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ 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?
dataDir.standaloneMigration.title = Zotero Migration Notification
dataDir.standaloneMigration.title = Existing Zotero Library Found
dataDir.standaloneMigration.description = This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles = %1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom = Custom Data Directory…
@ -758,4 +758,6 @@ connector.error.title = Zotero Connector Error
connector.standaloneOpen = Your database cannot be accessed because Zotero Standalone is currently open. Please view your items in Zotero Standalone.
firstRunGuidance.saveIcon = Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu = Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.authorMenu = Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat = Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac = Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Usar el directorio de perfil de Firefox
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?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Zure "Firefox profile" karpeta erabili
dataDir.selectDir=Datu-baseari kokalekua ezarri
dataDir.selectedDirNonEmpty.title=Kokalekua ez dago hutsik
dataDir.selectedDirNonEmpty.text=Hautatu duzun kokalekua ez dago hutsik eta ez dirudi Zotero datu-base batena denik.\n\nSortu Zotero fitxategiak hemen hala ere?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -51,7 +51,7 @@ upgrade.advanceMessage=Paina %S päivittääksesi nyt.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Käytä Firefoxin profiilikansiota
dataDir.selectDir=Valitse kansio Zoteron datalle
dataDir.selectedDirNonEmpty.title=Kansio ei ole tyhjä
dataDir.selectedDirNonEmpty.text=Valitsemasi kansio ei ole tyhjä eikä ilmeisesti Zoteron datakansio.\n\nLuodaanko Zoteron tiedot tähän kansioon siitä huolimatta?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -420,7 +420,7 @@ ingester.lookup.performing=Performing Lookup…
ingester.lookup.error=An error occurred while performing lookup for this item.
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.dbCorrupted.restart=Please restart %S 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.
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Usar directorio de perfís de Firefox
dataDir.selectDir=Seleccione un directorio de datos de Zotero
dataDir.selectedDirNonEmpty.title=Directorio non baleiro
dataDir.selectedDirNonEmpty.text=O directorio que seleccionou non está baleiro e non parece ser un directorio de datos de Zotero.\n\nCrear arquivos de Zotero neste directorio de todos os xeitos?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -14,7 +14,7 @@ general.restartLater=Restart later
general.errorHasOccurred=ארעה שגיאה
general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=.הפעילו מחדש את פיירפוקס בבקשה
general.restartFirefoxAndTryAgain=Please restart Firefox and try again.
general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone.
general.install=התקנה
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Use Firefox profile directory
dataDir.selectDir=Select a Zotero data directory
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?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -420,7 +420,7 @@ ingester.lookup.performing=Performing Lookup…
ingester.lookup.error=An error occurred while performing lookup for this item.
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.dbCorrupted.restart=Please restart %S 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.
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -13,8 +13,8 @@ general.restartNow=Restart now
general.restartLater=Restart later
general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Please restart Firefox.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again.
general.restartFirefox=Please restart %S.
general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone.
general.install=Install
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ 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?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -420,7 +420,7 @@ ingester.lookup.performing=Performing Lookup…
ingester.lookup.error=An error occurred while performing lookup for this item.
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.dbCorrupted.restart=Please restart %S 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.
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=A Firefox profilkönyvtár használata
dataDir.selectDir=Válassza ki a Zotero adatokat tartalmazó mappát
dataDir.selectedDirNonEmpty.title=A mappa nem üres
dataDir.selectedDirNonEmpty.text=A kiválasztott mappa nem üres és nem tartalmaz Zotero adatokat.\n\nEnnek ellenére hozza létre a Zotero fájlokat?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -13,8 +13,8 @@ general.restartNow=Restart now
general.restartLater=Restart later
general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Please restart Firefox.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again.
general.restartFirefox=Please restart %S.
general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone.
general.install=Install
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ 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?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -420,7 +420,7 @@ ingester.lookup.performing=Performing Lookup…
ingester.lookup.error=An error occurred while performing lookup for this item.
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.dbCorrupted.restart=Please restart %S 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.
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -51,7 +51,7 @@ upgrade.advanceMessage=Premere '%S' per aggiornare ora
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Utilizza cartella del profilo di Firefox
dataDir.selectDir=Selezionare una cartella dati di Zotero
dataDir.selectedDirNonEmpty.title=Cartella non vuota
dataDir.selectedDirNonEmpty.text=La cartella selezionata non risulta vuota e non sembra essere una cartella dati di Zotero.\n\nCreare i file di Zotero comunque?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -51,7 +51,7 @@ upgrade.advanceMessage=今すぐアップグレードするため、%Sを押し
upgrade.dbUpdateRequired=データベースアップデートする必要があリます。
upgrade.integrityCheckFailed=アップグレードを続行するためにZoteroデータベースを修復する必要があります。
upgrade.loadDBRepairTool=データベース修復ツールをロードする。
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=もし、このエラーが解決されない場合はパソコンを再起動してください。
errorReport.reportError=エラーを報告する
@ -69,7 +69,7 @@ dataDir.useProfileDir=Firefoxプロファイルフォルダを使用する
dataDir.selectDir=Zoteroのデータフォルダを選択してください
dataDir.selectedDirNonEmpty.title=選択されたフォルダが空ではない
dataDir.selectedDirNonEmpty.text=選択されたフォルダが空ではなく、Zoteroのフォルダではないようです。\n\nこのフォルダにZoteroのファイルを作成してよろしいですか
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Firefox 프로필 디렉토리 사용
dataDir.selectDir=Zotero 데이터 디렉토리 선택
dataDir.selectedDirNonEmpty.title=디렉토리 비어있지 않음
dataDir.selectedDirNonEmpty.text=선택한 디렉토리는 비어 있지 않고 Zotero 데이터 디렉토리인 것처럼 보이지 않습니다.\n\n이 디렉토리 안에 Zotero 파일을 어떻게든 생성하겠습니까?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -14,7 +14,7 @@ general.restartLater=Дараа ачаалах
general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Галт үнэг ахин ачаална уу.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again.
general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone.
general.install=Суулга
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ 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?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -420,7 +420,7 @@ ingester.lookup.performing=Performing Lookup…
ingester.lookup.error=An error occurred while performing lookup for this item.
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.dbCorrupted.restart=Please restart %S 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.
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -51,7 +51,7 @@ upgrade.advanceMessage=Velg %S for å oppgradere nå.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ 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?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ 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?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -51,7 +51,7 @@ upgrade.advanceMessage=Vel %S for å oppgradera no.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Bruk profilmappa til Firefox
dataDir.selectDir=Vel ei datamappe
dataDir.selectedDirNonEmpty.title=Mappa er ikkje tom
dataDir.selectedDirNonEmpty.text=Mappa du valde er ikkje tom og ser ikkje ut til å vera ei Zotero-datamappe.\n\nSkal Zotero likevel oppretta datafiler i denne mappa?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and vert filte you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to it sine state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -51,7 +51,7 @@ upgrade.advanceMessage=Naciśnij %S, aby zaktualizować teraz.
upgrade.dbUpdateRequired=Baza danych Zotero musi zostać zaktualizowana.
upgrade.integrityCheckFailed=Twoja baza danych Zotero musi zostać naprawiona zanim aktualizacja będzie mogła być dokończona.
upgrade.loadDBRepairTool=Wczytaj narzędzie naprawy bazy danych
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=Jeśli ponownie zobaczysz ten komunikat, uruchom ponownie swój komputer.
errorReport.reportError=Zgłoś błąd...
@ -642,7 +642,7 @@ sync.error.enterPassword=Proszę podać hasło.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=Synchronizacja jest aktualnie w trakcie.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Usar diretório do perfil do usuário Firefox
dataDir.selectDir=Selecionar um diretório de dados Zotero
dataDir.selectedDirNonEmpty.title=Este diretório não está vazio
dataDir.selectedDirNonEmpty.text=O diretório que você selecionou não está vazio e não parece ser um diretório de dados Zotero.\n\nCriar arquivos Zotero neste diretório mesmo assim?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Usar a pasta de perfis do Firefox
dataDir.selectDir=Escolha uma pasta de dados para o Zotero
dataDir.selectedDirNonEmpty.title=Pasta Não Vazia
dataDir.selectedDirNonEmpty.text=A pasta que escolheu não está vazia e não parece ser uma pasta de dados do Zotero.\n\nCriar arquivos do Zotero nesta pasta de qualquer forma?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -759,3 +759,5 @@ connector.standaloneOpen=Ваша база данных недоступна, п
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Použi priečinok s profilom Firefoxu
dataDir.selectDir=Vyberte si priečinok, do ktorého má Zotero ukladať dáta
dataDir.selectedDirNonEmpty.title=Priečinok nie je prázdny
dataDir.selectedDirNonEmpty.text=Zvolený priečinok nie je prázdny a nevyzerá, že by obsahoval dáta zo Zotera.\n\nChcete napriek tomu, aby sa súbory vytvorili v tomto priečinku?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Uporabi mapo profila Firefox
dataDir.selectDir=Izberite podatkovno mapo Zotero
dataDir.selectedDirNonEmpty.title=Mapa ni prazna
dataDir.selectedDirNonEmpty.text=Mapa, ki ste jo izbrali, ni prazna in ni podatkovna mapa Zotero.\n\nŽelite kljub temu v tej mapi ustvariti datoteke Zotero?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Користи директоријум за Firefox пр
dataDir.selectDir=Изабери директоријум за Зотеро податке
dataDir.selectedDirNonEmpty.title=Директоријум није празан
dataDir.selectedDirNonEmpty.text=Директоријум који сте изабрали није празан и не изгледа као Зотеро директоријум за податке.\n\n Да се направе Зотеро датотеке у овом директоријуму свакако?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -51,7 +51,7 @@ upgrade.advanceMessage=กด %S เพื่ออัพเกรดทัน
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=ใช้ไดเรคทอรีเดียวกั
dataDir.selectDir=เลือกไดเรคทอรีเก็บข้อมูลโซแทโร
dataDir.selectedDirNonEmpty.title=ไดเรคทอรีมีข้อมูลอยู่
dataDir.selectedDirNonEmpty.text=ไดเรคทอรีที่ท่านเลือกมีข้อมูลอยู่ และไม่ใช่ข้อมูลของโซแทโร\n\nท่านต้องการสร้างข้อมูลของโซแทโรในไดเรคทอรีนี้แน่หรือ?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -420,7 +420,7 @@ ingester.lookup.performing=Performing Lookup…
ingester.lookup.error=An error occurred while performing lookup for this item.
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.dbCorrupted.restart=Please restart %S 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.
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=Firefox profil dizinini kullan
dataDir.selectDir=Zotero veri dizini seç
dataDir.selectedDirNonEmpty.title=Dizin Boş Değil
dataDir.selectedDirNonEmpty.text=Seçtiğiniz dizin boş değil ve Zotero veri dizini olarak görülmüyor.\n\nHerşeye rağmen bu dizinde Zotero dosyalarını oluşturmak istermisiniz?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -51,7 +51,7 @@ upgrade.advanceMessage=Ấn %S để nâng cấp ngay bây giờ.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Dùng thư mục profile của Firefox
dataDir.selectDir=Chọn một thư mục dữ liệu cho Zotero
dataDir.selectedDirNonEmpty.title=Thư mục đã có dữ liệu
dataDir.selectedDirNonEmpty.text=Thư mục bạn chọn đã có dữ liệu, và nó có vẻ không phải là một thư mục dữ liệu của Zotero.\n\nBạn vẫn muốn tạo các tập tin của Zotero trong thư mục này phải không?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -51,7 +51,7 @@ upgrade.advanceMessage=按 %S 开始升级.
upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart Firefox to try the upgrade again.
upgrade.couldNotMigrate=Zotero could not migrate all necessary files.\nPlease close any open attachment files and restart %S to try the upgrade again.
upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=使用Firefox配置目录
dataDir.selectDir=选择Zotero数据目录
dataDir.selectedDirNonEmpty.title=目录非空
dataDir.selectedDirNonEmpty.text=您所选的目录里非空, 但不是一个Zotero数据目录.\n\n一定要在此目录里创建Zotero文件吗?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -642,7 +642,7 @@ sync.error.enterPassword=Please enter a password.
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, likely due to a corrupted Firefox login manager database.
sync.error.loginManagerCorrupted2=Close Firefox, back up and delete signons.* from your Firefox profile, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
sync.error.syncInProgress=A sync operation is already in progress.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart Firefox.
sync.error.syncInProgress.wait=Wait for the previous sync to complete or restart %S.
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.error.groupWillBeReset=If you continue, your copy of the group will be reset to its state on the server, and local modifications to items and files will be lost.
sync.error.copyChangedItems=If you would like a chance to copy your changes elsewhere or to request write access from a group administrator, cancel the sync now.
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -69,7 +69,7 @@ dataDir.useProfileDir=使用 Firefox 個人設定檔目錄
dataDir.selectDir=選擇 Zotero 的資料儲存目錄
dataDir.selectedDirNonEmpty.title=目錄不是空的
dataDir.selectedDirNonEmpty.text=你選擇的目錄不是空的而且它不像是 Zotero 的資料儲存目錄。\n\n仍然要在這個目錄中建立 Zotero 的檔案嗎?
dataDir.standaloneMigration.title=Zotero Migration Notification
dataDir.standaloneMigration.title=Existing Zotero Library Found
dataDir.standaloneMigration.description=This appears to be your first time using %1$S. Would you like %1$S to import settings from %2$S and use your existing data directory?
dataDir.standaloneMigration.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory…
@ -759,3 +759,5 @@ connector.standaloneOpen=Your database cannot be accessed because Zotero Standal
firstRunGuidance.saveIcon=Zotero can recognize a reference on this page. Click this icon in the address bar to save the reference to your Zotero library.
firstRunGuidance.authorMenu=Zotero lets you specify editors and translators, too. You can turn an author into an editor or translator by selecting from this menu.
firstRunGuidance.quickFormat=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Ctrl-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.
firstRunGuidance.quickFormatMac=Type a title or author to search for a reference.\n\nAfter you've made your selection, click the bubble or press Cmd-\u2193 to add page numbers, prefixes, or suffixes. You can also include a page number along with your search terms to add it directly.

View file

@ -11,6 +11,7 @@ groupbox
overflow-x: hidden;
overflow-y: auto;
display: block; /* allow labels to wrap instead of all being in one line */
background-color: white;
}
checkbox

View file

@ -1,3 +1,8 @@
#zotero-status-image
{
width: 16px;
height: 16px;
}
#zotero-status-bar-icon, #zotero-addon-bar-icon
{
width: 55px;
@ -257,6 +262,32 @@
height:24px;
}
#zotero-collections-toolbar {
padding-left: 2px;
}
.zotero-tb-button {
padding-left: 5px;
padding-right: 5px;
margin-right: 2px;
margin-left: 2px;
}
.zotero-tb-button:first-child {
margin-left: 0 !important;
}
.zotero-tb-button:last-child {
margin-right: 0 !important;
}
.zotero-tb-button[type="menu"] {
padding-left: 3px;
padding-right: 3px;
margin-left: 4px;
margin-right: 2px;
}
.zotero-tb-button[type="panel"] > dropmarker {
display: none;
}
@ -399,8 +430,9 @@
#zotero-tb-sync {
list-style-image: url(chrome://zotero/skin/arrow_rotate_static.png);
margin-left: -2px;
margin-left: -6px;
margin-right: -2px;
padding-right: 6px;
}
#zotero-tb-sync[status=animate] {
@ -425,6 +457,7 @@
#zotero-tb-search
{
font-size: 11px !important;
margin-right: 0;
width: 160px;
}

View file

@ -1,3 +1,4 @@
#zotero-tb-item-from-page, #zotero-tb-fullscreen, #zotero-fullscreen-close-separator {
#zotero-tb-item-from-page, #zotero-tb-snapshot-from-page, #zotero-tb-link-from-page,
#zotero-tb-fullscreen, #zotero-fullscreen-close-separator {
display: none;
}

View file

@ -1 +1 @@
2011-08-29 18:20:00
2012-01-31 04:00:00

View file

@ -13,7 +13,7 @@
<id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</id>
<minVersion>3.6</minVersion>
<maxVersion>10.*</maxVersion>
<updateLink>http://www.zotero.org/download/zotero.xpi</updateLink>
<updateLink>http://download.zotero.org/extension/zotero.xpi</updateLink>
<updateHash>sha1:</updateHash>
</RDF:Description>
</targetApplication>