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

View file

@ -3,12 +3,12 @@ body {
} }
#quick-format-search:not([multiline="true"]) { #quick-format-search:not([multiline="true"]) {
height: 27px !important; height: 29px !important;
} }
#quick-format-search { #quick-format-search {
background: white; background: white;
padding: 1px 2px 1px 0; padding: 0 2px 0 0;
border: 1px solid rgba(0, 0, 0, 0.5); border: 1px solid rgba(0, 0, 0, 0.5);
-moz-appearance: textfield; -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 { #zotero-tb-search-menu-button {
margin: 0 -1px 0 -4px; margin: 0 -1px 0 -4px;
border: 0; border: 0;
@ -49,13 +41,17 @@
} }
#zotero-toolbar { #zotero-toolbar {
-moz-appearance: toolbox !important;
padding-left: 2px;
}
#zotero-toolbar:-moz-system-metric(windows-compositor) {
-moz-appearance: none !important; -moz-appearance: none !important;
background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0)); background-image: -moz-linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0));
background-color: rgb(207, 219, 236) !important; background-color: rgb(207, 219, 236) !important;
border-width: 0 0 1px 0; border-width: 0 0 1px 0;
border-style: solid; border-style: solid;
border-color: #818790; border-color: #818790;
padding-left: 2px;
} }
#zotero-collections-tree, #zotero-items-tree, #zotero-view-item { #zotero-collections-tree, #zotero-items-tree, #zotero-view-item {
@ -89,6 +85,14 @@
margin-top: 2px; 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-item-box > scrollbox, #zotero-view-item > tabpanel > vbox,
#zotero-editpane-tags > scrollbox, #zotero-editpane-related { #zotero-editpane-tags > scrollbox, #zotero-editpane-related {
padding-top: 5px; padding-top: 5px;

View file

@ -48,7 +48,14 @@
panel = document.getAnonymousNodes(this)[0]; panel = document.getAnonymousNodes(this)[0];
if(!forEl) forEl = document.getElementById(this.getAttribute("for")); 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", panel.openPopup(forEl, position ? position : "after_start",
x ? parseInt(x, 10) : 0, y ? parseInt(y, 10) : 0, false, false, null); x ? parseInt(x, 10) : 0, y ? parseInt(y, 10) : 0, false, false, null);
@ -56,6 +63,13 @@
]]> ]]>
</body> </body>
</method> </method>
<method name="hide">
<body>
<![CDATA[
document.getAnonymousNodes(this)[0].hidePopup();
]]>
</body>
</method>
</implementation> </implementation>
<content> <content>

View file

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

View file

@ -482,8 +482,6 @@ var Zotero_Browser = new function() {
collection.addItem(dbItem.id); collection.addItem(dbItem.id);
} }
Zotero.repaint(window);
if(Zotero_Browser.isScraping) { if(Zotero_Browser.isScraping) {
// initialize close timer between item saves in case translator doesn't call done // initialize close timer between item saves in case translator doesn't call done
Zotero_Browser.progress.startCloseTimer(10000); // is this long enough? 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_File_Interface.Progress.show(
Zotero.getString("fileInterface.itemsImported") Zotero.getString("fileInterface.itemsImported")
); );
Zotero.repaint(window);
Zotero.DB.beginTransaction(); window.setTimeout(function() {
translation.translate(); Zotero.DB.beginTransaction();
translation.translate();
}, 0);
} else { } else {
// TODO: localize and remove fileInterface.fileFormatUnsupported string // TODO: localize and remove fileInterface.fileFormatUnsupported string
var unsupportedFormat = "The selected file is not in a supported format."; 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) { this.updateProgress = function(translate) {
Zotero.updateZoteroPaneProgressMeter(translate.getProgress()); 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 () { var Zotero_QuickFormat = new function () {
const pixelRe = /^([0-9]+)px$/ const pixelRe = /^([0-9]+)px$/
var initialized, io, qfs, qfi, qfiWindow, qfiDocument, qfe, qfb, qfbHeight, keepSorted, const specifiedLocatorRe = /^(?:,? *(p{0,2})(?:\. *| +)|:)([0-9\-]+) *$/;
showEditor, referencePanel, referenceBox, referenceHeight = 0, separatorHeight = 0, const yearRe = /,? *([0-9]+) *(B[. ]*C[. ]*(?:E[. ]*)?|A[. ]*D[. ]*|C[. ]*E[. ]*)?$/i;
currentLocator, currentLocatorLabel, currentSearchTime, dragging, panel, const locatorRe = /(?:,? *(p{0,2})\.?|(\:)) *([0-9]+)$/i;
panelPrefix, panelSuffix, panelSuppressAuthor, panelLocatorLabel, panelLocator, panelInfo, const creatorSplitRe = /(?:,| *(?:and|\&)) +/;
panelRefersToBubble, panelFrameHeight = 0, accepted = false; 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 // A variable that contains the timeout object for the latest onKeyPress event
var eventTimeout = null; var eventTimeout = null;
@ -49,6 +56,12 @@ var Zotero_QuickFormat = new function () {
document.documentElement.setAttribute("hidechrome", true); 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); new WindowDraggingElement(document.getElementById("quick-format-dialog"), window);
qfs = document.getElementById("quick-format-search"); qfs = document.getElementById("quick-format-search");
@ -97,6 +110,11 @@ var Zotero_QuickFormat = new function () {
panelLocatorLabel = document.getElementById("locator-label"); panelLocatorLabel = document.getElementById("locator-label");
panelLocator = document.getElementById("locator"); panelLocator = document.getElementById("locator");
panelInfo = document.getElementById("citation-properties-info"); 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) { } else if(event.target === qfi.contentDocument) {
qfiWindow = qfi.contentWindow; qfiWindow = qfi.contentWindow;
qfiDocument = qfi.contentDocument; qfiDocument = qfi.contentDocument;
@ -123,6 +141,9 @@ var Zotero_QuickFormat = new function () {
Zotero.debug("Moving window to "+targetX+", "+targetY); Zotero.debug("Moving window to "+targetX+", "+targetY);
window.moveTo(targetX, targetY); window.moveTo(targetX, targetY);
} }
qfGuidance = document.getElementById('quick-format-guidance');
qfGuidance.show();
_refocusQfe();
}, 0); }, 0);
window.focus(); window.focus();
@ -182,11 +203,6 @@ var Zotero_QuickFormat = new function () {
var str = _getEditorContent(); var str = _getEditorContent();
var haveConditions = false; 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."; const etAl = " et al.";
var m, var m,
@ -234,20 +250,11 @@ var Zotero_QuickFormat = new function () {
} }
// check for year and pages // check for year and pages
m = yearPageLocatorRe.exec(str); str = _updateLocator(str);
m = yearRe.exec(str);
if(m) { if(m) {
if(m[1].length === 4 || m[2] || m[4]) { year = parseInt(m[1]);
year = parseInt(m[1]); isBC = m[2] && m[2][0] === "B";
if(m[3]) {
isBC = true;
}
if(!currentLocator && m[4]) {
currentLocator = m[4];
}
} else {
currentLocator = m[1];
}
str = str.substr(0, m.index)+str.substring(m.index+m[0].length); str = str.substr(0, m.index)+str.substring(m.index+m[0].length);
} }
if(year) str += " "+year; 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 * Updates the item list
*/ */
@ -656,6 +677,8 @@ var Zotero_QuickFormat = new function () {
citationItem.uris = item.cslURIs; citationItem.uris = item.cslURIs;
citationItem.itemData = item.cslItemData; citationItem.itemData = item.cslItemData;
} }
_updateLocator(_getEditorContent());
if(currentLocator) { if(currentLocator) {
citationItem["locator"] = currentLocator; citationItem["locator"] = currentLocator;
if(currentLocatorLabel) { if(currentLocatorLabel) {
@ -769,20 +792,20 @@ var Zotero_QuickFormat = new function () {
* Opens the reference panel and potentially refocuses the main text box * Opens the reference panel and potentially refocuses the main text box
*/ */
function _openReferencePanel() { 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, referencePanel.openPopup(document.documentElement, "after_start", 15,
null, false, false, null); null, false, false, null);
if(!Zotero.isMac && !Zotero.isWin) { if(!Zotero.isMac && !Zotero.isWin) {
// When it opens, we will lose focus // reinstate noautohide after the window is shown
referencePanel.addEventListener("popupshown", function() { referencePanel.addEventListener("popupshowing", function() {
referencePanel.removeEventListener("popupshown", arguments.callee, false); referencePanel.removeEventListener("popupshowing", arguments.callee, false);
_refocusQfe(); referencePanel.setAttribute("noautohide", "true");
// 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);
}, false); }, false);
} }
} }
@ -955,6 +978,8 @@ var Zotero_QuickFormat = new function () {
* Handle return or escape * Handle return or escape
*/ */
function _onQuickSearchKeyPress(event) { function _onQuickSearchKeyPress(event) {
qfGuidance.hide();
var keyCode = event.keyCode; var keyCode = event.keyCode;
if(keyCode === event.DOM_VK_RETURN || keyCode === event.DOM_VK_ENTER) { if(keyCode === event.DOM_VK_RETURN || keyCode === event.DOM_VK_ENTER) {
event.preventDefault(); event.preventDefault();
@ -1157,7 +1182,11 @@ var Zotero_QuickFormat = new function () {
.getService(Components.interfaces.nsIWindowWatcher) .getService(Components.interfaces.nsIWindowWatcher)
.openWindow(null, 'chrome://zotero/content/integration/addCitationDialog.xul', .openWindow(null, 'chrome://zotero/content/integration/addCitationDialog.xul',
'', 'chrome,centerscreen,resizable', io); '', '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/" type="text/css"?>
<?xml-stylesheet href="chrome://global/skin/browser.css" 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/skin/integration.css" type="text/css"?>
<?xml-stylesheet href="chrome://zotero-platform/content/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"> <!DOCTYPE window SYSTEM "chrome://zotero/locale/zotero.dtd">
@ -67,7 +68,8 @@
<progressmeter id="quick-format-progress-meter" mode="undetermined" value="0" flex="1"/> <progressmeter id="quick-format-progress-meter" mode="undetermined" value="0" flex="1"/>
</deck> </deck>
</box> </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"/> <richlistbox id="quick-format-reference-list" flex="1"/>
</panel> </panel>
<panel id="citation-properties" type="arrow" orient="vertical" <panel id="citation-properties" type="arrow" orient="vertical"
@ -89,17 +91,17 @@
<menupopup id="locator-label-popup"/> <menupopup id="locator-label-popup"/>
</menulist> </menulist>
<textbox id="locator" flex="1" <textbox id="locator" flex="1"
oninput="window.setTimeout(Zotero_QuickFormat.onCitationPropertiesChanged, 0)"/> oninput="window.setTimeout(function(event) { Zotero_QuickFormat.onCitationPropertiesChanged(event) }, 0)"/>
</row> </row>
<row align="center"> <row align="center">
<label value="&zotero.citation.prefix.label;"/> <label value="&zotero.citation.prefix.label;"/>
<textbox class="citation-textbox" id="prefix" flex="1" <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>
<row align="center"> <row align="center">
<label value="&zotero.citation.suffix.label;"/> <label value="&zotero.citation.suffix.label;"/>
<textbox class="citation-textbox" id="suffix" flex="1" <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> </row>
<html:div> <html:div>
<html:input type="checkbox" id="suppress-author" <html:input type="checkbox" id="suppress-author"
@ -111,4 +113,6 @@
</rows> </rows>
</grid> </grid>
</panel> </panel>
<zoteroguidancepanel id="quick-format-guidance" about="quickFormat"
for="zotero-icon" x="26"/>
</window> </window>

View file

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

View file

@ -77,7 +77,7 @@
<image src="chrome://zotero/skin/treeitem-book.png" id="zotero-status-image" <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" onclick="if(event.button === 0) Zotero_Browser.scrapeThisPage()" context="zotero-status-image-context"
position="1" hidden="true"/> 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> </hbox>
<menupopup id="menu_ToolsPopup"> <menupopup id="menu_ToolsPopup">

View file

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

View file

@ -95,11 +95,11 @@ function wpdWindowLoaded()
try { try {
// this will be called multiple times if the page contains more than one document (frames, flash,...) // this will be called multiple times if the page contains more than one document (frames, flash,...)
//var browser=this.document.getElementById("content"); //var browser=this.document.getElementById("content");
dump("[wpdWindowLoaded] ... \n"); Zotero.debug("[wpdWindowLoaded] ... ");
var browser = this.top.getBrowser(); var browser = this.top.getBrowser();
// each time we have to check if the page is fully loaded... // each time we have to check if the page is fully loaded...
if (!(browser.webProgress.isLoadingDocument || browser.contentDocument.location == gExceptLocation)) { if (!(browser.webProgress.isLoadingDocument || browser.contentDocument.location == gExceptLocation)) {
dump("[wpdWindowLoaded] window finally loaded\n"); Zotero.debug("[wpdWindowLoaded] window finally loaded");
gBrowserWindow.clearTimeout(gTimeOutID); gBrowserWindow.clearTimeout(gTimeOutID);
gBrowserWindow.removeEventListener("load",wpdWindowLoaded,true); gBrowserWindow.removeEventListener("load",wpdWindowLoaded,true);
//dump("[wpdWindowLoaded] calling "+gCallback+"\n"); //dump("[wpdWindowLoaded] calling "+gCallback+"\n");
@ -112,13 +112,13 @@ function wpdWindowLoaded()
gBrowserWindow.setTimeout(gCallback, w); gBrowserWindow.setTimeout(gCallback, w);
} }
} catch (ex) { } catch (ex) {
dump("[wpdWindowLoaded] EXCEPTION: "+ex+"\n"); Zotero.debug("[wpdWindowLoaded] EXCEPTION: "+ex);
} }
} }
function wpdTimeOut() function wpdTimeOut()
{ {
dump("[wpdTimeOut] timeout triggered!\n"); Zotero.debug("[wpdTimeOut] timeout triggered!");
gTimedOut=true; gTimedOut=true;
gBrowserWindow.clearTimeout(gTimeOutID); gBrowserWindow.clearTimeout(gTimeOutID);
gBrowserWindow.removeEventListener("load",wpdWindowLoaded,true); gBrowserWindow.removeEventListener("load",wpdWindowLoaded,true);
@ -134,7 +134,7 @@ function wpdLoadURL(aURI,aCallback)
{ {
try { try {
gTimedOut=false; gTimedOut=false;
dump("\n[wpdLoadURL] aURI: "+aURI+"\n"); Zotero.debug("[wpdLoadURL] aURI: "+aURI);
if (aURI=="") return; if (aURI=="") return;
gBrowserWindow = wpdGetTopBrowserWindow(); gBrowserWindow = wpdGetTopBrowserWindow();
gBrowserWindow.loadURI(aURI); gBrowserWindow.loadURI(aURI);
@ -143,7 +143,7 @@ function wpdLoadURL(aURI,aCallback)
gTimeOutID=gBrowserWindow.setTimeout(wpdTimeOut, 60000); gTimeOutID=gBrowserWindow.setTimeout(wpdTimeOut, 60000);
gBrowserWindow.addEventListener("load",wpdWindowLoaded, true); gBrowserWindow.addEventListener("load",wpdWindowLoaded, true);
} catch (ex) { } 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); var gUnicodeConverter = Components.classes['@mozilla.org/intl/scriptableunicodeconverter'].getService(Components.interfaces.nsIScriptableUnicodeConverter);
gUnicodeConverter.charset = charset; gUnicodeConverter.charset = charset;
} catch(ex) { } catch(ex) {
dump ("gUnicodeConverter EXCEPTION:"+ex+"\n"); Zotero.debug ("gUnicodeConverter EXCEPTION:"+ex);
} }
} }
@ -270,7 +270,7 @@ var wpdCommon = {
try { try {
var gEntityConverter = Components.classes["@mozilla.org/intl/entityconverter;1"].createInstance(Components.interfaces.nsIEntityConverter); var gEntityConverter = Components.classes["@mozilla.org/intl/entityconverter;1"].createInstance(Components.interfaces.nsIEntityConverter);
} catch(e) { } 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) // add a line to the error list (displays a maximum of 15 errors)
addError : function(aError) addError : function(aError)
{ {
dump('ERROR: '+aError+"\n"); Zotero.debug('ERROR: '+aError);
if (this.errCount<WPD_MAXUIERRORCOUNT) { if (this.errCount<WPD_MAXUIERRORCOUNT) {
if (this.errList.indexOf(aError)>-1) return; // is the same if (this.errList.indexOf(aError)>-1) return; // is the same
this.errList = this.errList+aError+"\n"; this.errList = this.errList+aError+"\n";
@ -337,7 +337,7 @@ var wpdCommon = {
}, },
saveWebPage : function(aDestFile) { 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 nsIWBP = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Components.interfaces.nsIWebBrowserPersist);
var doc = window.content.document; var doc = window.content.document;
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); 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, ...) // initialize the properties (set document, URL, Directory, ...)
init : function(fileName, document) init : function(fileName, document)
{ {
dump("[wpdDOMSaver.init] ...\n"); Zotero.debug("[wpdDOMSaver.init] ...");
this.name = ""; this.name = "";
this.document = null; this.document = null;
@ -653,7 +653,7 @@ var wpdDOMSaver = {
catch (e) { catch (e) {
var msg = "Unable to access cssRules property of " + aCSS.href var msg = "Unable to access cssRules property of " + aCSS.href
+ " in wpdDOMSaver.processCSSRecursively()"; + " in wpdDOMSaver.processCSSRecursively()";
dump("WebPageDump: "+msg+"\n\n", 2); Zotero.debug("WebPageDump: "+msg, 2);
Components.utils.reportError(msg); Components.utils.reportError(msg);
return ""; return "";
} }
@ -928,7 +928,7 @@ var wpdDOMSaver = {
// ("aFileName" is the filename without(!) extension) // ("aFileName" is the filename without(!) extension)
saveDocumentFile : function(aDocument,aFileName) saveDocumentFile : function(aDocument,aFileName)
{ {
dump("[wpdDOMSaver.saveDocumentFile]: "+aFileName+"\n"); Zotero.debug("[wpdDOMSaver.saveDocumentFile]: "+aFileName);
return this.download(this.currentURL,true) return this.download(this.currentURL,true)
/* Wrapper file disabled by Dan S. for Zotero /* Wrapper file disabled by Dan S. for Zotero
@ -973,7 +973,7 @@ var wpdDOMSaver = {
} else { } else {
CSSText = wpdCommon.ConvertFromUnicode16(CSSText,this.curCharacterSet); 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 // write css file
var CSSFile = this.currentDir + aFileName + ".css"; var CSSFile = this.currentDir + aFileName + ".css";
if (!wpdCommon.writeFile(CSSText, CSSFile)) if (!wpdCommon.writeFile(CSSText, CSSFile))
@ -990,7 +990,7 @@ var wpdDOMSaver = {
// (".html" will be added) // (".html" will be added)
saveDocumentHTML: function(aDocument,aFileName) saveDocumentHTML: function(aDocument,aFileName)
{ {
dump("[wpdDOMSaver.saveDocumentHTML]: "+this.currentDir+aFileName+".html\n"); Zotero.debug("[wpdDOMSaver.saveDocumentHTML]: "+this.currentDir+aFileName+".html");
this.curDocument = aDocument; this.curDocument = aDocument;
this.curCharacterSet = aDocument.characterSet; this.curCharacterSet = aDocument.characterSet;
var charset=this.curCharacterSet; 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"; if(!node) throw "Annotate: Path() resolved text offset inappropriately";
while(node && !node === this._document) { while(node && node !== this._document) {
var number = 1; var number = 1;
var sibling = node.previousSibling; var sibling = node.previousSibling;
while(sibling) { while(sibling) {
@ -731,10 +731,18 @@ Zotero.Annotations.prototype.save = function() {
// save annotations // save annotations
for each(var annotation in this.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(); Zotero.DB.commitTransaction();
} catch(e) { } catch(e) {
Zotero.debug(e);
Zotero.DB.rollbackTransaction(); Zotero.DB.rollbackTransaction();
throw(e); throw(e);
} }
@ -1387,7 +1395,7 @@ Zotero.Highlight.prototype.unhighlight = function(container, offset, path, mode)
// loop through, removing nodes // loop through, removing nodes
var node = span.firstChild; var node = span.firstChild;
while(span.firstChild && !span.firstChild === textNode) { while(span.firstChild && span.firstChild !== textNode) {
parentNode.insertBefore(span.removeChild(span.firstChild), span); parentNode.insertBefore(span.removeChild(span.firstChild), span);
} }
} else if(mode == 2) { } else if(mode == 2) {
@ -1437,23 +1445,23 @@ Zotero.Highlight.prototype._highlight = function() {
var onlyOneNode = startNode === endNode; 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 // 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) { if(startNode.nextSibling) {
this._highlightSpaceBetween(startNode.nextSibling, startNode.parentNode.lastChild); this._highlightSpaceBetween(startNode.nextSibling, startNode.parentNode.lastChild);
} }
startNode = startNode.parentNode startNode = startNode.parentNode
} }
// highlight nodes after end node in the DOM hierarchy not at ancestor level // 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) { if(endNode.previousSibling) {
this._highlightSpaceBetween(endNode.parentNode.firstChild, endNode.previousSibling); this._highlightSpaceBetween(endNode.parentNode.firstChild, endNode.previousSibling);
} }
endNode = endNode.parentNode endNode = endNode.parentNode
} }
// highlight nodes between start node and end node at ancestor level // 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); this._highlightSpaceBetween(startNode.nextSibling, endNode.previousSibling);
} }
} }

View file

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

View file

@ -126,7 +126,7 @@ var CSL = {
MARK_TRAILING_NAMES: true, MARK_TRAILING_NAMES: true,
POSITION_TEST_VARS: ["position", "first-reference-note-number", "near-note"], POSITION_TEST_VARS: ["position", "first-reference-note-number", "near-note"],
AREAS: ["citation", "citation_sort", "bibliography", "bibliography_sort"], 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"], CITE_FIELDS: ["first-reference-note-number", "locator", "locator-revision"],
MINIMAL_NAME_FIELDS: ["literal", "family"], MINIMAL_NAME_FIELDS: ["literal", "family"],
SWAPPING_PUNCTUATION: [".", "!", "?", ":",","], SWAPPING_PUNCTUATION: [".", "!", "?", ":",","],
@ -463,217 +463,361 @@ CSL.debug = function (str) {
CSL.error = function (str) { CSL.error = function (str) {
Zotero.debug("CSL error: " + str); Zotero.debug("CSL error: " + str);
}; };
var CSL_E4X = function () {}; function DOMParser() {
CSL_E4X.prototype.clean = function (xml) { 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(/<![^>]+>/g, ""); xml = xml.replace(/<![^>]+>/g, "");
xml = xml.replace(/^\s+/g, ""); xml = xml.replace(/^\s+/, "");
xml = xml.replace(/\s+$/g, ""); xml = xml.replace(/\s+$/, "");
xml = xml.replace(/^\n*/, "");
return xml; return xml;
}; };
CSL_E4X.prototype.getStyleId = function (myxml) { CSL_CHROME.prototype.getStyleId = function (myxml) {
var text = ""; var text = "";
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({}); var node = myxml.getElementsByTagName("id");
var node = myxml..id; if (node && node.length) {
if (node && node.length()) { node = node.item(0);
text = node[0].toString(); }
if (node) {
text = node.textContent;
}
if (!text) {
text = node.innerText;
}
if (!text) {
text = node.innerHTML;
} }
return text; return text;
}; };
CSL_E4X.prototype.children = function (myxml) { CSL_CHROME.prototype.children = function (myxml) {
return myxml.children(); 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) { CSL_CHROME.prototype.nodename = function (myxml) {
var ret = myxml.localName(); var ret = myxml.nodeName;
return ret; return ret;
}; };
CSL_E4X.prototype.attributes = function (myxml) { CSL_CHROME.prototype.attributes = function (myxml) {
var ret, attrs, attr, key, xml; var ret, attrs, attr, key, xml, pos, len;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
ret = new Object(); ret = new Object();
attrs = myxml.attributes(); if (myxml && this.hasAttributes(myxml)) {
for each (attr in attrs) { attrs = myxml.attributes;
key = "@" + attr.localName(); for (pos = 0, len=attrs.length; pos < len; pos += 1) {
if (key.slice(0,5) == "@e4x_") { attr = attrs[pos];
continue; ret["@" + attr.name] = attr.value;
} }
ret[key] = attr.toString();
} }
return ret; return ret;
}; };
CSL_E4X.prototype.content = function (myxml) { CSL_CHROME.prototype.content = function (myxml) {
return myxml.toString(); 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" "xml":"http://www.w3.org/XML/1998/namespace"
} }
CSL_E4X.prototype.numberofnodes = function (myxml) { CSL_CHROME.prototype.numberofnodes = function (myxml) {
return myxml.length(); if (myxml) {
return myxml.length;
} else {
return 0;
}
}; };
CSL_E4X.prototype.getAttributeName = function (attr) { CSL_CHROME.prototype.getAttributeName = function (attr) {
var ret = attr.localName(); var ret = attr.name;
return ret; return ret;
} }
CSL_E4X.prototype.getAttributeValue = function (myxml,name,namespace) { CSL_CHROME.prototype.getAttributeValue = function (myxml,name,namespace) {
var xml; var ret = "";
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({}); if (myxml && this.hasAttributes(myxml) && myxml.getAttribute(name)) {
if (namespace) { ret = myxml.getAttribute(name);
var ns = new Namespace(this.namespace[namespace]); }
var ret = myxml.@ns::[name].toString(); 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 { } else {
if (name) { ret = myxml;
var ret = myxml.attribute(name).toString(); }
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 { } else {
var ret = myxml.toString(); ret = ret.text;
} }
} }
return ret; return ret;
} }
CSL_E4X.prototype.getNodeValue = function (myxml,name) { CSL_CHROME.prototype.setAttributeOnNodeIdentifiedByNameAttribute = function (myxml,nodename,partname,attrname,val) {
var xml; var pos, len, xml, nodes, node;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({}); if (attrname.slice(0,1) === '@'){
if (name){ attrname = attrname.slice(1);
return myxml[name].toString(); }
} else { nodes = myxml.getElementsByTagName(nodename);
return myxml.toString(); 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) { CSL_CHROME.prototype.deleteNodeByNameAttribute = function (myxml,val) {
var xml; var pos, len, node, nodes;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({}); nodes = myxml.childNodes;
if (attr[0] != '@'){ for (pos = 0, len = nodes.length; pos < len; pos += 1) {
attr = '@'+attr; 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) { CSL_CHROME.prototype.deleteAttribute = function (myxml,attr) {
delete myxml.*.(@name==val)[0]; myxml.removeAttribute(attr);
} }
CSL_E4X.prototype.deleteAttribute = function (myxml,attr) { CSL_CHROME.prototype.setAttribute = function (myxml,attr,val) {
delete myxml["@"+attr]; 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) { CSL_CHROME.prototype.nodeCopy = function (myxml) {
myxml['@'+attr] = val; var cloned_node = myxml.cloneNode(true);
return cloned_node;
} }
CSL_E4X.prototype.nodeCopy = function (myxml) { CSL_CHROME.prototype.getNodesByName = function (myxml,name,nameattrval) {
return myxml.copy(); var ret, nodes, node, pos, len;
} ret = [];
CSL_E4X.prototype.getNodesByName = function (myxml,name,nameattrval) { nodes = myxml.getElementsByTagName(name);
var xml, ret; for (pos = 0, len = nodes.length; pos < len; pos += 1) {
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({}); node = nodes.item(pos);
ret = myxml.descendants(name); if (nameattrval && !(this.hasAttributes(node) && node.getAttribute("name") == nameattrval)) {
if (nameattrval){ continue;
ret = ret.(@name == nameattrval); }
ret.push(node);
} }
return ret; return ret;
} }
CSL_E4X.prototype.nodeNameIs = function (myxml,name) { CSL_CHROME.prototype.nodeNameIs = function (myxml,name) {
var xml; if (name == myxml.nodeName) {
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({});
if (myxml.localName() && myxml.localName().toString() == name){
return true; return true;
} }
return false; return false;
} }
CSL_E4X.prototype.makeXml = function (myxml) { CSL_CHROME.prototype.makeXml = function (myxml) {
var xml; var ret, topnode;
XML.ignoreComments = true; if (!myxml) {
XML.ignoreProcessingInstructions = true; myxml = "<docco><bogus/></docco>";
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();
} }
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; var myxml, xml;
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({}); myxml = this.importNode(node.ownerDocument, datexml);
myxml = XML(datexml.toXMLString()); parent.replaceChild(myxml, node);
parent.insertChildAfter(node,myxml); return parent;
delete parent.*[pos]; };
return parent; CSL_CHROME.prototype.insertPublisherAndPlace = function(myxml) {
}; var group = myxml.getElementsByTagName("group");
CSL_E4X.prototype.insertPublisherAndPlace = function(myxml) { for (var i = 0, ilen = group.length; i < ilen; i += 1) {
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({}); var node = group.item(i);
for each (var node in myxml..group) { if (node.childNodes.length === 2) {
if (node.children().length() === 2) { var twovars = [];
var twovars = []; for (var j = 0, jlen = 2; j < jlen; j += 1) {
for each (var child in node.children()) { var child = node.childNodes.item(j);
if (child.children().length() === 0 if (child.childNodes.length === 0) {
) { twovars.push(child.getAttribute('variable'));
twovars.push(child.@variable.toString()); if (child.getAttribute('suffix')
if (child.@suffix.toString() || child.getAttribute('prefix')) {
|| child.@prefix.toString()) { twovars = [];
twovars = []; break;
break;
}
}
} }
if (twovars.indexOf("publisher") > -1 && twovars.indexOf("publisher-place") > -1) {
node["@has-publisher-and-publisher-place"] = "true";
} }
} }
} if (twovars.indexOf("publisher") > -1 && twovars.indexOf("publisher-place") > -1) {
}; node.setAttribute('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);
} }
} }
}; };
CSL_E4X.prototype.addInstitutionNodes = function(myxml) { CSL_CHROME.prototype.addMissingNameNodes = function(myxml) {
var institution_long, institution_short, name_part, children, node, xml; var nameslist = myxml.getElementsByTagName("names");
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({}); for (var i = 0, ilen = nameslist.length; i < ilen; i += 1) {
for each (node in myxml..names) { var names = nameslist.item(i);
if ("xml" == typeof node && node.elements("name").length() > 0) { var namelist = names.getElementsByTagName("name");
if (node.institution.length() === 0) { if ((!namelist || namelist.length === 0)
institution_long = <institution && names.parentNode.tagName.toLowerCase() !== "substitute") {
institution-parts="long" var doc = names.ownerDocument;
substitute-use-first="1" var name = doc.createElement("name");
use-last="1"/> names.appendChild(name);
institution_part = <institution-part name="long"/>; }
node.name += institution_long; }
node.institution.@delimiter = node.name.@delimiter.toString(); };
if (node.name.@and.toString()) { CSL_CHROME.prototype.addInstitutionNodes = function(myxml) {
node.institution.@and = "text"; 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) { var nameparts = thename.getElementsByTagName("name-part");
if (node.name.@[attr].toString()) { for (var j = 0, jlen = nameparts.length; j < jlen; j += 1) {
node.institution['institution-part'][0].@[attr] = node.name.@[attr].toString(); 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];
for each (var namepartnode in node.name['name-part']) { var attrval = nameparts[j].getAttribute(attrname);
if (namepartnode.@name.toString() === 'family') { if (attrval) {
for each (var attr in CSL.INSTITUTION_KEYS) { theinstitutionpart.setAttribute(attrname, attrval);
if (namepartnode.@[attr].toString()) {
node.institution['institution-part'][0].@[attr] = namepartnode.@[attr].toString();
}
} }
} }
} }
} }
} }
} }
}; };
CSL_E4X.prototype.flagDateMacros = function(myxml) { CSL_CHROME.prototype.flagDateMacros = function(myxml) {
default xml namespace = "http://purl.org/net/xbiblio/csl"; with({}); var pos, len, thenode, thedate;
for each (node in myxml..macro) { nodes = myxml.getElementsByTagName("macro");
if (node..date.length()) { for (pos = 0, len = nodes.length; pos < len; pos += 1) {
node.@['macro-has-date'] = 'true'; 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(); 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 token, blob, curr;
var useblob = true; var useblob = true;
if (this.state.tmp["doing-macro-with-date"]) { 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(); curr = this.current.value();
} }
if ("string" === typeof blob.blobs) { if ("string" === typeof blob.blobs) {
if (this.state.tmp.strip_periods) { if (this.state.tmp.strip_periods && !noStripPeriods) {
blob.blobs = blob.blobs.replace(/\./g, ""); blob.blobs = blob.blobs.replace(/\./g, "");
} }
if (!ignorePredecessor) { if (!ignorePredecessor) {
@ -1989,7 +2133,7 @@ CSL.DateParser = function () {
}; };
CSL.Engine = function (sys, style, lang, forceLang) { CSL.Engine = function (sys, style, lang, forceLang) {
var attrs, langspec, localexml, locale; var attrs, langspec, localexml, locale;
this.processor_version = "1.0.269"; this.processor_version = "1.0.277";
this.csl_version = "1.0"; this.csl_version = "1.0";
this.sys = sys; this.sys = sys;
this.sys.xml = new CSL.System.Xml.Parsing(); 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) { if (this.opt.development_extensions.field_hack && Item.note) {
m = Item.note.match(CSL.NOTE_FIELDS_REGEXP); m = Item.note.match(CSL.NOTE_FIELDS_REGEXP);
if (m) { if (m) {
var names = {};
for (pos = 0, len = m.length; pos < len; pos += 1) { for (pos = 0, len = m.length; pos < len; pos += 1) {
mm = m[pos].match(CSL.NOTE_FIELD_REGEXP); mm = m[pos].match(CSL.NOTE_FIELD_REGEXP);
if (!Item[mm[1]] || true) { if (!Item[mm[1]] && CSL.DATE_VARIABLES.indexOf(mm[1]) > -1) {
if (CSL.DATE_VARIABLES.indexOf(mm[1]) > -1) { Item[mm[1]] = {raw:mm[2]};
Item[mm[1]] = {raw:mm[2]}; } else if (!Item[mm[1]] && CSL.NAME_VARIABLES.indexOf(mm[1]) > -1) {
} else { if (!Item[mm[1]]) {
Item[mm[1]] = mm[2].replace(/^\s+/, "").replace(/\s+$/, ""); 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) { for (var i = 1, ilen = CSL.DATE_VARIABLES.length; i < ilen; i += 1) {
var dateobj = Item[CSL.DATE_VARIABLES[i]]; var dateobj = Item[CSL.DATE_VARIABLES[i]];
if (dateobj) { if (dateobj) {
@ -2547,6 +2707,7 @@ CSL.Engine.Opt = function () {
this.development_extensions.clean_up_csl_flaws = true; this.development_extensions.clean_up_csl_flaws = true;
this.development_extensions.flip_parentheses_to_braces = true; this.development_extensions.flip_parentheses_to_braces = true;
this.development_extensions.parse_section_variable = true; this.development_extensions.parse_section_variable = true;
this.development_extensions.jurisdiction_subfield = true;
this.gender = {}; this.gender = {};
this['cite-lang-prefs'] = { this['cite-lang-prefs'] = {
persons:['orig'], persons:['orig'],
@ -3315,7 +3476,7 @@ CSL.Engine.prototype.processCitationCluster = function (citation, citationsPre,
var items = citations[(j - 1)].sortedItems; var items = citations[(j - 1)].sortedItems;
var useme = false; 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 ((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; useme = true;
} }
} }
@ -6630,11 +6791,13 @@ CSL.evaluateLabel = function (node, state, Item, item) {
return CSL.castLabel(state, node, myterm, plural); return CSL.castLabel(state, node, myterm, plural);
}; };
CSL.evaluateStringPluralism = function (str) { CSL.evaluateStringPluralism = function (str) {
if (str && str.match(/(?:[0-9],\s*[0-9]|\s+and\s+|&|[0-9]\s*[\-\u2013]\s*[0-9])/)) { if (str) {
return 1; var m = str.match(/(?:[0-9],\s*[0-9]|\s+and\s+|&|([0-9]+)\s*[\-\u2013]\s*([0-9]+))/)
} else { if (m && (!m[1] || parseInt(m[1]) < parseInt(m[2]))) {
return 0; return 1
}
} }
return 0;
}; };
CSL.castLabel = function (state, node, term, plural, mode) { CSL.castLabel = function (state, node, term, plural, mode) {
var ret = state.getTerm(term, node.strings.form, plural, false, 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) { for (var i = 0, ilen = values.length; i < ilen; i += 1) {
newstr += values[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); state.output.append(newstr, this);
} else { } else {
state.output.openLevel("empty"); state.output.openLevel("empty");
@ -7105,7 +7267,7 @@ CSL.Node.number = {
if (i < values.length - 1) { if (i < values.length - 1) {
blob.strings.suffix = blob.strings.suffix.replace(/\s*$/, ""); 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"); state.output.closeLevel("empty");
} }
@ -7339,7 +7501,13 @@ CSL.Node.text = {
if (item && item[this.variables[0]]) { if (item && item[this.variables[0]]) {
var locator = "" + item[this.variables[0]]; var locator = "" + item[this.variables[0]];
locator = locator.replace(/--*/g,"\u2013"); 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") { } else if (this.variables_real[0] === "page-first") {
@ -7352,7 +7520,7 @@ CSL.Node.text = {
if (idx > -1) { if (idx > -1) {
value = value.slice(0, idx); 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") { } else if (this.variables_real[0] === "page") {
@ -7360,7 +7528,7 @@ CSL.Node.text = {
var value = state.getVariable(Item, "page", form); var value = state.getVariable(Item, "page", form);
if (value) { if (value) {
value = state.fun.page_mangler(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") { } else if (this.variables_real[0] === "volume") {
@ -7375,13 +7543,23 @@ CSL.Node.text = {
}; };
} else if (this.variables_real[0] === "hereinafter") { } else if (this.variables_real[0] === "hereinafter") {
func = function (state, Item) { func = function (state, Item) {
var hereinafter_key = state.transform.getHereinafter(Item); var hereinafter_info = state.transform.getHereinafter(Item);
var value = state.transform.abbrevs["default"].hereinafter[hereinafter_key]; var value = state.transform.abbrevs[hereinafter_info[0]].hereinafter[hereinafter_info[1]];
if (value) { if (value) {
state.tmp.group_context.value()[2] = true; state.tmp.group_context.value()[2] = true;
state.output.append(value, this); 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") { } else if (this.variables_real[0] === "section") {
func = function (state, Item) { func = function (state, Item) {
var value; var value;
@ -7389,6 +7567,7 @@ CSL.Node.text = {
if (value) { if (value) {
if ((Item.type === "bill" || Item.type === "legislation") if ((Item.type === "bill" || Item.type === "legislation")
&& state.opt.development_extensions.parse_section_variable) { && state.opt.development_extensions.parse_section_variable) {
value = "" + value;
var m = value.match(CSL.STATUTE_SUBDIV_GROUPED_REGEX); var m = value.match(CSL.STATUTE_SUBDIV_GROUPED_REGEX);
if (m) { if (m) {
var splt = value.split(CSL.STATUTE_SUBDIV_PLAIN_REGEX); var splt = value.split(CSL.STATUTE_SUBDIV_PLAIN_REGEX);
@ -7595,8 +7774,8 @@ CSL.Attributes["@variable"] = function (state, arg) {
this.variables.push(variables[pos]); this.variables.push(variables[pos]);
} }
if ("hereinafter" === variables[pos] && state.sys.getAbbreviation) { if ("hereinafter" === variables[pos] && state.sys.getAbbreviation) {
var hereinafter_key = state.transform.getHereinafter(Item); var hereinafter_info = state.transform.getHereinafter(Item);
state.transform.loadAbbreviation("default", "hereinafter", hereinafter_key); state.transform.loadAbbreviation(hereinafter_info[0], "hereinafter", hereinafter_info[1]);
} }
if (state.tmp.can_block_substitute) { if (state.tmp.can_block_substitute) {
state.tmp.done_vars.push(variables[pos]); state.tmp.done_vars.push(variables[pos]);
@ -7702,9 +7881,9 @@ CSL.Attributes["@variable"] = function (state, arg) {
myitem = item; myitem = item;
} }
if (variable === "hereinafter" && state.sys.getAbbreviation) { if (variable === "hereinafter" && state.sys.getAbbreviation) {
var hereinafter_key = state.transform.getHereinafter(myitem); var hereinafter_info = state.transform.getHereinafter(myitem);
state.transform.loadAbbreviation("default", "hereinafter", hereinafter_key); state.transform.loadAbbreviation(hereinafter_info[0], "hereinafter", hereinafter_info[1]);
if (state.transform.abbrevs["default"].hereinafter[hereinafter_key]) { if (state.transform.abbrevs[hereinafter_info[0]].hereinafter[hereinafter_info[1]]) {
x = true x = true
} }
} else if (myitem[variable]) { } else if (myitem[variable]) {
@ -7877,7 +8056,10 @@ CSL.Attributes["@is-numeric"] = function (state, arg) {
state.processNumber(false, Item, variables[pos]); 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; numeric = false;
break; break;
} }
@ -8395,13 +8577,13 @@ CSL.Transform = function (state) {
if (!myabbrev_family) { if (!myabbrev_family) {
return basevalue; return basevalue;
} }
if (["publisher-place", "event-place"].indexOf(myabbrev_family) > -1) { if (["publisher-place", "event-place", "subjurisdiction"].indexOf(myabbrev_family) > -1) {
myabbrev_family = "place"; myabbrev_family = "place";
} }
if (["publisher", "authority"].indexOf(myabbrev_family) > -1) { if (["publisher", "authority"].indexOf(myabbrev_family) > -1) {
myabbrev_family = "institution-part"; myabbrev_family = "institution-part";
} }
if (["genre", "event"].indexOf(myabbrev_family) > -1) { if (["genre", "event", "medium"].indexOf(myabbrev_family) > -1) {
myabbrev_family = "title"; myabbrev_family = "title";
} }
if (["title-short"].indexOf(myabbrev_family) > -1) { if (["title-short"].indexOf(myabbrev_family) > -1) {
@ -8657,15 +8839,16 @@ CSL.Transform = function (state) {
hereinafter_metadata.push("date:" + date); hereinafter_metadata.push("date:" + date);
} }
} }
var jurisdiction = "default";
if (Item.jurisdiction) { if (Item.jurisdiction) {
hereinafter_metadata.push("jurisdiction:" + Item.jurisdiction); jurisdiction = Item.jurisdiction;
} }
hereinafter_metadata = hereinafter_metadata.join(", "); hereinafter_metadata = hereinafter_metadata.join(", ");
if (hereinafter_metadata) { if (hereinafter_metadata) {
hereinafter_metadata = " [" + hereinafter_metadata + "]"; hereinafter_metadata = " [" + hereinafter_metadata + "]";
} }
var hereinafter_key = hereinafter_author_title.join(", ") + hereinafter_metadata; var hereinafter_key = hereinafter_author_title.join(", ") + hereinafter_metadata;
return hereinafter_key; return [jurisdiction, hereinafter_key];
} }
this.getHereinafter = getHereinafter; this.getHereinafter = getHereinafter;
}; };
@ -8674,7 +8857,7 @@ CSL.Parallel = function (state) {
this.sets = new CSL.Stack([]); this.sets = new CSL.Stack([]);
this.try_cite = true; this.try_cite = true;
this.use_parallels = 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) { CSL.Parallel.prototype.isMid = function (variable) {
return (this.midVars.indexOf(variable) > -1); 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(/\-/g, " ");
} }
namelist = namelist.replace(/\s*\-\s*/g, "-").replace(/\s+/g, " "); namelist = namelist.replace(/\s*\-\s*/g, "-").replace(/\s+/g, " ");
namelist = namelist.replace(/-([a-z])/g, "\u2013$1")
mm = namelist.match(/[\-\s]+/g); mm = namelist.match(/[\-\s]+/g);
lst = namelist.split(/[\-\s]+/); lst = namelist.split(/[\-\s]+/);
if (lst.length === 0) { if (lst.length === 0) {
@ -9311,6 +9495,7 @@ CSL.Util.Names.initializeWith = function (state, name, terminator, normalizeOnly
} else { } else {
ret = CSL.Util.Names.doInitialize(state, lst, terminator); ret = CSL.Util.Names.doInitialize(state, lst, terminator);
} }
ret = ret.replace(/\u2013([a-z])/g, "-$1")
return ret; return ret;
}; };
CSL.Util.Names.doNormalize = function (state, namelist, terminator, mode) { CSL.Util.Names.doNormalize = function (state, namelist, terminator, mode) {
@ -9775,11 +9960,11 @@ CSL.Util.Ordinalizer.prototype.format = function (num, gender) {
str = num.toString(); str = num.toString();
if ((num / 10) % 10 === 1 || (num > 10 && num < 20)) { if ((num / 10) % 10 === 1 || (num > 10 && num < 20)) {
str += this.suffixes[gender][3]; str += this.suffixes[gender][3];
} else if (num % 10 === 1) { } else if (num % 10 === 1 && num % 100 !== 11) {
str += this.suffixes[gender][0]; str += this.suffixes[gender][0];
} else if (num % 10 === 2) { } else if (num % 10 === 2 && num % 100 !== 12) {
str += this.suffixes[gender][1]; str += this.suffixes[gender][1];
} else if (num % 10 === 3) { } else if (num % 10 === 3 && num % 100 !== 13) {
str += this.suffixes[gender][2]; str += this.suffixes[gender][2];
} else { } else {
str += this.suffixes[gender][3]; 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) === '"') { if (num.slice(0, 1) === '"' && num.slice(-1) === '"') {
num = num.slice(1, -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") { if (this.variable === "page-first") {
m = num.split(/\s*(?:&|,|-)\s*/); m = num.split(/\s*(?:&|,|-)\s*/);
if (m) { 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 lst = num.split(/(?:,\s+|\s*\\*[\-\u2013]+\s*|\s*&\s*)/);
var m = num.match(/(,\s+|\s*[\-\u2013]\s*|\s*&\s*)/g); var m = num.match(/(,\s+|\s*\\*[\-\u2013]+\s*|\s*&\s*)/g);
var elements = []; var elements = [];
for (var i = 0, ilen = lst.length - 1; i < ilen; i += 1) { for (var i = 0, ilen = lst.length - 1; i < ilen; i += 1) {
elements.push(lst[i]); elements.push(lst[i]);
@ -9860,7 +10047,30 @@ CSL.Engine.prototype.processNumber = function (node, ItemObject, variable) {
if (odd) { if (odd) {
if (elements[i]) { if (elements[i]) {
if (elements[i].match(/[0-9]/)) { 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+/); var subelements = elements[i].split(/\s+/);
for (var j = 0, jlen = subelements.length; j < jlen; j += 1) { 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; this.tmp.shadow_numbers[variable].numeric = true;
} else { } else {
this.tmp.shadow_numbers[variable].numeric = numeric; this.tmp.shadow_numbers[variable].numeric = numeric;
} }
if (count > 1) { if (count > 1) {
this.tmp.shadow_numbers[variable].plural = 1; this.tmp.shadow_numbers[variable].plural = 1;
} }

View file

@ -337,23 +337,73 @@ Zotero.Tag.prototype.save = function (full) {
key key
]; ];
if (isNew) { try {
var sql = "INSERT INTO tags (" + columns.join(', ') + ") VALUES (" if (isNew) {
+ placeholders.join(', ') + ")"; var sql = "INSERT INTO tags (" + columns.join(', ') + ") VALUES ("
var insertID = Zotero.DB.query(sql, sqlValues); + placeholders.join(', ') + ")";
if (!tagID) { var insertID = Zotero.DB.query(sql, sqlValues);
tagID = insertID; 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 { catch (e) {
// Remove tagID from beginning // If an incoming tag is the same as an existing tag, but with a different key,
columns.shift(); // then delete the old tag and add its linked items to the new tag
sqlValues.shift(); if (typeof e == 'string' && e.indexOf('columns libraryID, name, type are not unique') != -1) {
sqlValues.push(tagID); Zotero.debug("Tag matches existing tag with different key -- delete old tag and merging items");
var sql = "UPDATE tags SET " + columns.join("=?, ") + "=?" // GET existing tag
+ " WHERE tagID=?"; var existing = Zotero.Tags.getIDs(this.name, this.libraryID);
Zotero.DB.query(sql, sqlValues); 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 === false) return;
if(!_x11) { if(!_x11) {
try { try {
var libName = ctypes.libraryName("X11"); _x11 = ctypes.open("libX11.so.6");
} catch(e) { } catch(e) {
_x11 = false; try {
Zotero.debug("Integration: Could not get libX11 name; not activating"); var libName = ctypes.libraryName("X11");
Zotero.logError(e); } catch(e) {
return; _x11 = false;
} Zotero.debug("Integration: Could not get libX11 name; not activating");
Zotero.logError(e);
try { return;
_x11 = ctypes.open(libName); }
} catch(e) {
_x11 = false; try {
Zotero.debug("Integration: Could not open "+libName+"; not activating"); _x11 = ctypes.open(libName);
Zotero.logError(e); } catch(e) {
return; _x11 = false;
Zotero.debug("Integration: Could not open "+libName+"; not activating");
Zotero.logError(e);
return;
}
} }
const Status = ctypes.int, const Status = ctypes.int,
@ -520,8 +524,6 @@ Zotero.Integration = new function() {
event.format = 32; event.format = 32;
event.l0 = 2; event.l0 = 2;
var mask = 1<<20 /* SubstructureRedirectMask */ | 1<<19 /* SubstructureNotifyMask */; 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())) { if(XSendEvent(_x11Display, rootWindow, 0, mask, event.address())) {
XMapRaised(_x11Display, x11Window); XMapRaised(_x11Display, x11Window);
@ -536,6 +538,24 @@ Zotero.Integration = new function() {
intervalID = win.setInterval(_X11BringToForeground, 50); intervalID = win.setInterval(_X11BringToForeground, 50);
}, false); }, 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) { 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 children = ctypes.cast(childrenPtr, ctypes.uint32_t.array(nChildrenJS).ptr).contents;
var foundWindow = false; var foundWindow = false;
for(var i=0; i<nChildrenJS; i++) { for(var i=0; i<nChildrenJS; i++) {
foundWindow = _X11FindWindow(display, children.addressOfElement(i).contents, var testWin = children.addressOfElement(i).contents;
searchName); if(testWin == 0) continue;
foundWindow = _X11FindWindow(display, testWin, searchName);
if(foundWindow) break; if(foundWindow) break;
} }
@ -1064,9 +1085,6 @@ Zotero.Integration.Document.prototype.setDocPrefs = function() {
// pass to conversion function // pass to conversion function
me._doc.convert(new Zotero.Integration.Document.JSEnumerator(fieldsToConvert), me._doc.convert(new Zotero.Integration.Document.JSEnumerator(fieldsToConvert),
me._session.data.prefs.fieldType, fieldNoteTypes, fieldNoteTypes.length); me._session.data.prefs.fieldType, fieldNoteTypes, fieldNoteTypes.length);
// clear fields so that they will get collected again before refresh
me._fields = undefined;
} }
// refresh contents // refresh contents
@ -1246,33 +1264,39 @@ Zotero.Integration.Fields.prototype._retrieveFields = function() {
* @param {Field} field The Zotero field object * @param {Field} field The Zotero field object
* @param {Integer} i The field index * @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'+ var msg = Zotero.getString("integration.corruptField")+'\n\n'+
Zotero.getString('integration.corruptField.description'); Zotero.getString('integration.corruptField.description');
field.select(); field.select();
this._doc.activate();
var result = this._doc.displayAlert(msg, var result = this._doc.displayAlert(msg,
Components.interfaces.zoteroIntegrationDocument.DIALOG_ICON_CAUTION, Components.interfaces.zoteroIntegrationDocument.DIALOG_ICON_CAUTION,
Components.interfaces.zoteroIntegrationDocument.DIALOG_BUTTONS_YES_NO_CANCEL); Components.interfaces.zoteroIntegrationDocument.DIALOG_BUTTONS_YES_NO_CANCEL);
if(result == 0) { if(result == 0) {
throw e; throw new Zotero.Integration.UserCancelledException;
} else if(result == 1) { // No } else if(result == 1) { // No
this._removeCodeFields.push(i); this._removeCodeFields.push(i);
return true;
} else { } else {
// Display reselect edit citation dialog // Display reselect edit citation dialog
var added = this.addEditCitation(field); var me = this;
if(added) { var oldWindow = Zotero.Integration.currentWindow;
this._doc.activate(); this.addEditCitation(field, function() {
} else { Zotero.Integration.currentWindow.close();
throw new Zotero.Integration.UserCancelledException(); Zotero.Integration.currentWindow = oldWindow;
} me.updateSession(callback, errorCallback);
});
return false;
} }
} }
/** /**
* Updates Zotero.Integration.Session attached to Zotero.Integration.Fields in line with document * 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; var me = this;
this.get(function(fields) { this.get(function(fields) {
me._session.resetRequest(me._doc); me._session.resetRequest(me._doc);
@ -1297,7 +1321,9 @@ Zotero.Integration.Fields.prototype.updateSession = function(callback) {
try { try {
me._session.loadBibliographyData(me._bibliographyData); me._session.loadBibliographyData(me._bibliographyData);
} catch(e) { } 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'+ var msg = Zotero.getString("integration.corruptBibliography")+'\n\n'+
Zotero.getString('integration.corruptBibliography.description'); Zotero.getString('integration.corruptBibliography.description');
var result = me._doc.displayAlert(msg, var result = me._doc.displayAlert(msg,
@ -1330,16 +1356,16 @@ Zotero.Integration.Fields.prototype.updateSession = function(callback) {
if(callback) callback(me._session); if(callback) callback(me._session);
})); }));
} else { } else {
if(callback) callback(this._session); if(callback) callback(me._session);
} }
}); }, errorCallback);
}); });
} }
/** /**
* Keep processing fields until all have been processed * 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; if(!i) i = 0;
for(var n = fields.length; i<n; i++) { for(var n = fields.length; i<n; i++) {
@ -1348,7 +1374,7 @@ Zotero.Integration.Fields.prototype._processFields = function(fields, callback,
try { try {
var fieldCode = field.getCode(); var fieldCode = field.getCode();
} catch(e) { } catch(e) {
this._showCorruptFieldError(e, field, i); if(!this._showCorruptFieldError(e, field, callback, errorCallback, i)) return;
} }
var [type, content] = this.getCodeTypeAndContent(fieldCode); var [type, content] = this.getCodeTypeAndContent(fieldCode);
@ -1357,7 +1383,9 @@ Zotero.Integration.Fields.prototype._processFields = function(fields, callback,
try { try {
this._session.addCitation(i, noteIndex, content); this._session.addCitation(i, noteIndex, content);
} catch(e) { } 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 // First, check if we've already decided to remove field codes from these
var reselect = true; var reselect = true;
for each(var reselectKey in e.reselectKeys) { 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'); msg += '\n\n'+Zotero.getString('integration.missingItem.description');
field.select(); field.select();
this._doc.activate();
var result = this._doc.displayAlert(msg, 1, 3); var result = this._doc.displayAlert(msg, 1, 3);
if(result == 0) { // Cancel if(result == 0) { // Cancel
throw new Zotero.Integration.UserCancelledException(); throw new Zotero.Integration.UserCancelledException();
@ -1388,16 +1417,18 @@ Zotero.Integration.Fields.prototype._processFields = function(fields, callback,
} else { // Yes } else { // Yes
// Display reselect item dialog // Display reselect item dialog
var me = this; var me = this;
var oldCurrentWindow = Zotero.Integration.currentWindow;
this._session.reselectItem(this._doc, e, function() { this._session.reselectItem(this._doc, e, function() {
// Now try again // Now try again
Zotero.Integration.currentWindow = oldCurrentWindow;
me._doc.activate(); me._doc.activate();
me._processFields(fields, callback, i); me._processFields(fields, callback, errorCallback, i);
}); });
return; return;
} }
} }
} else if(e instanceof Zotero.Integration.CorruptFieldException) { } else if(e instanceof Zotero.Integration.CorruptFieldException) {
this._showCorruptFieldError(e, field, i); if(!this._showCorruptFieldError(e, field, callback, errorCallback, i)) return;
} else { } else {
throw e; 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 there's already a citation, make sure we have item IDs in addition to keys
if(field) { 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 { try {
session.lookupItems(citation); var code = field.getCode();
} catch(e) { } catch(e) {}
if(e instanceof MissingItemException) {
citation.citationItems = []; if(code) {
} else { [type, content] = this.getCodeTypeAndContent(code);
throw e; 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 { } else {
newField = true; newField = true;
var field = this.addField(true); var field = this.addField(true);
if(!field) return;
}
if(!citation) {
field.setCode("TEMP"); field.setCode("TEMP");
citation = {"citationItems":[], "properties":{}}; citation = {"citationItems":[], "properties":{}};
} }
@ -1703,6 +1750,11 @@ Zotero.Integration.CitationEditInterface.prototype = {
} }
me._sessionUpdated = true; me._sessionUpdated = true;
delete me._sessionCallbackQueue; 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. * Receives a number from 0 to 100 indicating current status.
*/ */
"accept":function(progressCallback) { "accept":function(progressCallback) {
var me = this;
this._fields.progressCallback = progressCallback; 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) { if(this.citation.citationItems.length) {
// Citation added // Citation
var me = this;
this._runWhenSessionUpdated(function() { this._runWhenSessionUpdated(function() {
me._session.addCitation(me._fieldIndex, me._field.getNoteIndex(), me.citation); me._session.addCitation(me._fieldIndex, me._field.getNoteIndex(), me.citation);
me._session.updateIndices[me._fieldIndex] = true; me._session.updateIndices[me._fieldIndex] = true;
@ -1840,11 +1904,12 @@ Zotero.Integration.Session.prototype.resetRequest = function(doc) {
this.updateIndices = {}; this.updateIndices = {};
this.newIndices = {}; this.newIndices = {};
this.oldCitationIDs = this.citationIDs; this.oldCitationIDs = this.citeprocCitationIDs;
this.citationsByItemID = {}; this.citationsByItemID = {};
this.citationsByIndex = []; this.citationsByIndex = [];
this.citationIDs = {}; this.documentCitationIDs = {};
this.citeprocCitationIDs = {};
this.citationText = {}; this.citationText = {};
this.doc = doc; this.doc = doc;
@ -1920,6 +1985,7 @@ Zotero.Integration.Session.prototype.setDocPrefs = function(doc, primaryFieldTyp
if(!oldData || oldData.style.styleID != data.style.styleID if(!oldData || oldData.style.styleID != data.style.styleID
|| oldData.prefs.noteType != data.prefs.noteType || oldData.prefs.noteType != data.prefs.noteType
|| oldData.prefs.fieldType != data.prefs.fieldType) { || oldData.prefs.fieldType != data.prefs.fieldType) {
// This will cause us to regenerate all citations
me.oldCitationIDs = {}; 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 || !this.oldCitationIDs[citation.citationID]) {
if(needNewID) { if(needNewID) {
Zotero.debug("Integration: "+citation.citationID+" ("+index+") needs new citationID"); 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; this.updateIndices[index] = true;
} }
Zotero.debug("Integration: Adding citationID "+citation.citationID); 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); 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; this.updateIndices[index] = true;
} }
@ -2471,9 +2538,7 @@ Zotero.Integration.Session.prototype.updateCitations = function(callback) {
if(this.formatCitation(index, citation)) { if(this.formatCitation(index, citation)) {
this.bibliographyHasChanged = true; this.bibliographyHasChanged = true;
} }
if(!this.citationIDs[citation.citationID]) { this.citeprocCitationIDs[citation.citationID] = true;
this.citationIDs[citation.citationID] = citation;
}
delete this.newIndices[index]; delete this.newIndices[index];
yield true; yield true;
} }
@ -2995,4 +3060,4 @@ Zotero.Integration.URIMap.prototype.getZoteroItemForURIs = function(uris) {
} }
return [zoteroItem, needUpdate]; return [zoteroItem, needUpdate];
} }

View file

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

View file

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

View file

@ -1,67 +1,4 @@
/** // Things we need to define to make converted pythn code work in js
*
* 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
// environment of tabulator // environment of tabulator
var RDFSink_forSomeSym = "http://www.w3.org/2000/10/swap/log#forSome"; 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) { uripath_join = function(base, given) {
return Util.uri.join(given, base) // sad but true 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 So if there is more data to feed to the
parser, it should be straightforward to recover.*/ parser, it should be straightforward to recover.*/
var str = octets.decode("utf-8"); var str = octets;
var i = 0; var i = 0;
while ((i >= 0)) { while ((i >= 0)) {
var j = this.skipSpace(str, i); 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 ) ); var uch = stringFromCharCode( ( ( "0x" + pyjslib_slice(value, 2, 10) ) - 0 ) );
return new pyjslib_Tuple([j, uch]); 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) { function BadSyntax(uri, lines, str, i, why) {
return ( ( ( ( ( ( ( ( "Line " + ( lines + 1 ) ) + " of <" ) + uri ) + ">: Bad syntax: " ) + why ) + "\nat: \"" ) + pyjslib_slice(str, i, ( i + 30 ) ) ) + "\"" ) ; 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 'nlm':
case 'vancouver': case 'vancouver':
// Remove update script (included with 3.0 accidentally)
case 'update':
// Delete renamed/obsolete files // Delete renamed/obsolete files
case 'chicago-note.csl': case 'chicago-note.csl':
case 'mhra_note_without_bibliography.csl': case 'mhra_note_without_bibliography.csl':

View file

@ -53,8 +53,8 @@ Zotero.Sync.Storage = new function () {
// TEMP // TEMP
// TODO: localize // 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.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 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.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 // Public properties

View file

@ -28,7 +28,7 @@ Zotero.Sync.Storage.Module.WebDAV = (function () {
// TEMP // TEMP
// TODO: localize // 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 _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 _parentURI;
var _rootURI; var _rootURI;

View file

@ -70,7 +70,7 @@ Zotero.Sync.Storage.Module.ZFS = (function () {
Zotero.debug("Response headers unavailable"); Zotero.debug("Response headers unavailable");
} }
// TODO: localize? // 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. " + "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."; + "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); Zotero.Sync.Storage.EventManager.error(msg);
@ -508,6 +508,8 @@ Zotero.Sync.Storage.Module.ZFS = (function () {
+ " (" + Zotero.Items.getLibraryKeyHash(item) + ")"; + " (" + Zotero.Items.getLibraryKeyHash(item) + ")";
Zotero.debug(msg, 1); Zotero.debug(msg, 1);
Components.utils.reportError(msg); Components.utils.reportError(msg);
Components.utils.reportError(response);
Components.utils.reportError(msg);
Zotero.Sync.Storage.EventManager.error(Zotero.Sync.Storage.defaultError); 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.responseText);
Zotero.debug(req.getAllResponseHeaders()); Zotero.debug(req.getAllResponseHeaders());
Components.utils.reportError(msg); Components.utils.reportError(msg);
Components.utils.reportError(req.responseText);
Zotero.Sync.Storage.EventManager.error(Zotero.Sync.Storage.defaultError); Zotero.Sync.Storage.EventManager.error(Zotero.Sync.Storage.defaultError);
} }

View file

@ -524,7 +524,7 @@ Zotero.Sync.Runner = new function () {
if (Zotero.HTTP.browserIsOffline()){ if (Zotero.HTTP.browserIsOffline()){
this.clearSyncTimeout(); // DEBUG: necessary? 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 }) var e = new Zotero.Error(msg, 0, { dialogButtonText: null })
this.setSyncIcon('error', e); this.setSyncIcon('error', e);
return false; return false;
@ -533,7 +533,7 @@ Zotero.Sync.Runner = new function () {
if (_running) { if (_running) {
// TODO: show status in all windows // TODO: show status in all windows
var msg = "A sync process is already running. To view progress, check " 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 }) var e = new Zotero.Error(msg, 0, { dialogButtonText: null, frontWindowOnly: true })
this.setSyncIcon('error', e); this.setSyncIcon('error', e);
return false; return false;

View file

@ -371,6 +371,7 @@ Zotero.Translate.Sandbox = {
Zotero.Translators.get(translation.translator[0], haveTranslatorFunction); Zotero.Translators.get(translation.translator[0], haveTranslatorFunction);
if(Zotero.isConnector && Zotero.isFx && !callback) { if(Zotero.isConnector && Zotero.isFx && !callback) {
while(!sandbox && translate._currentState) { while(!sandbox && translate._currentState) {
// This processNextEvent call is used to handle a deprecated case
Zotero.mainThread.processNextEvent(true); 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 * Gets the DOM document object corresponding to the page located at URL, but avoids locking the
* UI while the request is in process. * UI while the request is in process.
* *
* @deprecated
* @param {String} url URL to load * @param {String} url URL to load
* @return {Document} DOM document object * @return {Document} DOM document object
*/ */
@ -297,6 +298,7 @@ Zotero.Utilities.Translate.prototype.retrieveDocument = function(url) {
// should ever take longer than 2 minutes. // should ever take longer than 2 minutes.
var endTime = Date.now() + 120000; var endTime = Date.now() + 120000;
while(!loaded && Date.now() < endTime) { while(!loaded && Date.now() < endTime) {
// This processNextEvent call is used to handle a deprecated case
mainThread.processNextEvent(true); 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 * Gets the source of the page located at URL, but avoids locking the UI while the request is in
* process. * process.
* *
* @deprecated
* @param {String} url URL to load * @param {String} url URL to load
* @param {String} [body=null] Request body to POST to the URL; a GET request is * @param {String} [body=null] Request body to POST to the URL; a GET request is
* executed if no body is present * 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); 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); while(!finished) mainThread.processNextEvent(true);
} else { } else {
// Use a synchronous XMLHttpRequest, even though this is inadvisable // Use a synchronous XMLHttpRequest, even though this is inadvisable

View file

@ -35,7 +35,7 @@ const ZOTERO_CONFIG = {
API_URL: 'https://api.zotero.org/', API_URL: 'https://api.zotero.org/',
PREF_BRANCH: 'extensions.zotero.', PREF_BRANCH: 'extensions.zotero.',
BOOKMARKLET_URL: 'https://www.zotero.org/bookmarklet/', BOOKMARKLET_URL: 'https://www.zotero.org/bookmarklet/',
VERSION: "3.0rc1.SOURCE" VERSION: "3.0.2.SOURCE"
}; };
/* /*
@ -1483,44 +1483,6 @@ const ZOTERO_CONFIG = {
return; 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. * 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++) { for (var i = 0; i<itemTypes.length; i++) {
var menuitem = document.createElement("menuitem"); var menuitem = document.createElement("menuitem");
menuitem.setAttribute("label", itemTypes[i].localized); menuitem.setAttribute("label", itemTypes[i].localized);
menuitem.setAttribute("oncommand","ZoteroPane_Local.newItem("+itemTypes[i]['id']+")");
menuitem.setAttribute("tooltiptext", ""); menuitem.setAttribute("tooltiptext", "");
let type = itemTypes[i].id;
menuitem.addEventListener("command", function() { ZoteroPane_Local.newItem(type); }, false);
moreMenu.appendChild(menuitem); moreMenu.appendChild(menuitem);
} }
} }
@ -311,8 +312,9 @@ var ZoteroPane = new function()
for (var i = 0; i<itemTypes.length; i++) { for (var i = 0; i<itemTypes.length; i++) {
var menuitem = document.createElement("menuitem"); var menuitem = document.createElement("menuitem");
menuitem.setAttribute("label", itemTypes[i].localized); menuitem.setAttribute("label", itemTypes[i].localized);
menuitem.setAttribute("oncommand","ZoteroPane_Local.newItem("+itemTypes[i]['id']+")");
menuitem.setAttribute("tooltiptext", ""); menuitem.setAttribute("tooltiptext", "");
let type = itemTypes[i].id;
menuitem.addEventListener("command", function() { ZoteroPane_Local.newItem(type); }, false);
menuitem.className = "zotero-tb-add"; menuitem.className = "zotero-tb-add";
addMenu.insertBefore(menuitem, separator); addMenu.insertBefore(menuitem, separator);
} }
@ -3163,10 +3165,10 @@ var ZoteroPane = new function()
if (item.libraryID) { if (item.libraryID) {
var group = Zotero.Groups.getByLibraryID(item.libraryID); var group = Zotero.Groups.getByLibraryID(item.libraryID);
filesEditable = group.filesEditable; var filesEditable = group.filesEditable;
} }
else { else {
filesEditable = true; var filesEditable = true;
} }
if (saveSnapshot) { if (saveSnapshot) {

View file

@ -98,7 +98,7 @@
chromedir="&locale.dir;"> chromedir="&locale.dir;">
<toolbar id="zotero-toolbar" class="toolbar"> <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-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()"/> <toolbarbutton id="zotero-tb-group-add" class="zotero-tb-button" tooltiptext="&zotero.toolbar.newGroup;" oncommand="ZoteroPane_Local.newGroup()"/>
<spacer flex="1"/> <spacer flex="1"/>
@ -126,7 +126,7 @@
</toolbarbutton> </toolbarbutton>
</hbox> </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"> <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() --> <!-- New Item drop-down built in overlay.js::onLoad() -->
<menupopup onpopupshowing="ZoteroPane_Local.updateNewItemTypes()"> <menupopup onpopupshowing="ZoteroPane_Local.updateNewItemTypes()">
@ -161,8 +161,8 @@
</toolbarbutton> </toolbarbutton>
<toolbarbutton id="zotero-tb-attachment-add" class="zotero-tb-button" tooltiptext="New Child Attachment" type="menu"> <toolbarbutton id="zotero-tb-attachment-add" class="zotero-tb-button" tooltiptext="New Child Attachment" type="menu">
<menupopup onpopupshowing="ZoteroPane_Local.updateAttachmentButtonMenu(this)"> <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 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 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-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);"/> <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 --> <!-- 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);"/> <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()"/> oncommand="ZoteroPane_Local.search()"/>
</hbox> </hbox>
<hbox id="zotero-item-toolbar" flex="1"> <hbox id="zotero-item-toolbar" flex="1" align="center">
<hbox align="center" pack="start" flex="1"> <hbox align="center" pack="start" flex="1">
<toolbarbutton id="zotero-tb-locate" class="zotero-tb-button" tooltiptext="&zotero.toolbar.openURL.label;" type="menu"> <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()"/> <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.restartLater=Restart later
general.errorHasOccurred=An error has occurred. general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred. general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Please restart Firefox. general.restartFirefox=Please restart %S.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again. general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone. general.actionCannotBeUndone=This action cannot be undone.
general.install=Install general.install=Install
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Use Firefox profile directory
dataDir.selectDir=Select a Zotero data directory dataDir.selectDir=Select a Zotero data directory
dataDir.selectedDirNonEmpty.title=Directory Not Empty 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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. 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=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.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.dbRestored=The Zotero database '%1$S' appears to have become corrupted.\n\nYour data was restored from the last automatic backup made on %2$S at %3$S. The damaged file was saved in your Zotero directory.
db.dbRestoreFailed=The Zotero database '%S' appears to have become corrupted, and an attempt to restore from the last automatic backup failed.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. db.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.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.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=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.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.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. 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.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

@ -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.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=Използва на папката на Firefox проф
dataDir.selectDir=Изберете папка за даните на Зотеро dataDir.selectDir=Изберете папка за даните на Зотеро
dataDir.selectedDirNonEmpty.title=Папката не е празна dataDir.selectedDirNonEmpty.title=Папката не е празна
dataDir.selectedDirNonEmpty.text=Папката която избрахте не е празна и не изглежда като папка за дани на Зотеро.\n\nДа бъдат ли създадени файловете на Зотеро независимо от това? 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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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

@ -51,7 +51,7 @@ upgrade.advanceMessage=Prem %S per a actualitzar ara.
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... 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.selectDir=Selecciona directori de dates per a Zotero
dataDir.selectedDirNonEmpty.title=El directori no està buit 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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.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=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.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.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. 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.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=Použít adresář profilu aplikace Firefox
dataDir.selectDir=Vybrat Datový adresář aplikace Zotero dataDir.selectDir=Vybrat Datový adresář aplikace Zotero
dataDir.selectedDirNonEmpty.title=Adresář není prázdný 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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

@ -13,8 +13,8 @@ general.restartNow=Restart now
general.restartLater=Restart later general.restartLater=Restart later
general.errorHasOccurred=An error has occurred. general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred. general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Please restart Firefox. general.restartFirefox=Please restart %S.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again. general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone. general.actionCannotBeUndone=This action cannot be undone.
general.install=Install general.install=Install
@ -51,7 +51,7 @@ upgrade.advanceMessage=Tryk %S for at opgradere nu
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Use Firefox profile directory
dataDir.selectDir=Select a Zotero data directory dataDir.selectDir=Select a Zotero data directory
dataDir.selectedDirNonEmpty.title=Directory Not Empty 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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. 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=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.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.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. 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.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.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=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.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.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. 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.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=Den Firefox-Profil-Ordner verwenden
dataDir.selectDir=Zotero-Daten-Ordner auswählen dataDir.selectDir=Zotero-Daten-Ordner auswählen
dataDir.selectedDirNonEmpty.title=Verzeichnis nicht leer 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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

@ -13,8 +13,8 @@ general.restartNow=Restart now
general.restartLater=Restart later general.restartLater=Restart later
general.errorHasOccurred=An error has occurred. general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred. general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Please restart Firefox. general.restartFirefox=Please restart %S.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again. general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone. general.actionCannotBeUndone=This action cannot be undone.
general.install=Install general.install=Install
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Use Firefox profile directory
dataDir.selectDir=Select a Zotero data directory dataDir.selectDir=Select a Zotero data directory
dataDir.selectedDirNonEmpty.title=Directory Not Empty 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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. 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=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.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.dbRestored=The Zotero database '%1$S' appears to have become corrupted.\n\nYour data was restored from the last automatic backup made on %2$S at %3$S. The damaged file was saved in your Zotero directory.
db.dbRestoreFailed=The Zotero database '%S' appears to have become corrupted, and an attempt to restore from the last automatic backup failed.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. db.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.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.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=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.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.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. 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.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 = Use Firefox profile directory
dataDir.selectDir = Select a Zotero data directory dataDir.selectDir = Select a Zotero data directory
dataDir.selectedDirNonEmpty.title = Directory Not Empty 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.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.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.multipleProfiles = %1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom = Custom Data Directory… 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. 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.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.selectDir=Elige un directorio de datos para Zotero
dataDir.selectedDirNonEmpty.title=El directorio no está vacío 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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.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=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.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.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. 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.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

@ -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.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=Zure "Firefox profile" karpeta erabili
dataDir.selectDir=Datu-baseari kokalekua ezarri dataDir.selectDir=Datu-baseari kokalekua ezarri
dataDir.selectedDirNonEmpty.title=Kokalekua ez dago hutsik 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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

@ -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.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

@ -51,7 +51,7 @@ upgrade.advanceMessage=Paina %S päivittääksesi nyt.
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Käytä Firefoxin profiilikansiota
dataDir.selectDir=Valitse kansio Zoteron datalle dataDir.selectDir=Valitse kansio Zoteron datalle
dataDir.selectedDirNonEmpty.title=Kansio ei ole tyhjä 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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. 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=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.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.dbRestored=The Zotero database '%1$S' appears to have become corrupted.\n\nYour data was restored from the last automatic backup made on %2$S at %3$S. The damaged file was saved in your Zotero directory.
db.dbRestoreFailed=The Zotero database '%S' appears to have become corrupted, and an attempt to restore from the last automatic backup failed.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. db.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.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.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=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.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.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. 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.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

@ -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.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 directorio de perfís de Firefox
dataDir.selectDir=Seleccione un directorio de datos de Zotero dataDir.selectDir=Seleccione un directorio de datos de Zotero
dataDir.selectedDirNonEmpty.title=Directorio non baleiro 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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

@ -14,7 +14,7 @@ general.restartLater=Restart later
general.errorHasOccurred=ארעה שגיאה general.errorHasOccurred=ארעה שגיאה
general.unknownErrorOccurred=An unknown error occurred. general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=.הפעילו מחדש את פיירפוקס בבקשה general.restartFirefox=.הפעילו מחדש את פיירפוקס בבקשה
general.restartFirefoxAndTryAgain=Please restart Firefox and try again. general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone. general.actionCannotBeUndone=This action cannot be undone.
general.install=התקנה general.install=התקנה
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Use Firefox profile directory
dataDir.selectDir=Select a Zotero data directory dataDir.selectDir=Select a Zotero data directory
dataDir.selectedDirNonEmpty.title=ספרייה אינה ריקה 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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. 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=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.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.dbRestored=The Zotero database '%1$S' appears to have become corrupted.\n\nYour data was restored from the last automatic backup made on %2$S at %3$S. The damaged file was saved in your Zotero directory.
db.dbRestoreFailed=The Zotero database '%S' appears to have become corrupted, and an attempt to restore from the last automatic backup failed.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. db.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.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.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=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.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.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. 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.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

@ -13,8 +13,8 @@ general.restartNow=Restart now
general.restartLater=Restart later general.restartLater=Restart later
general.errorHasOccurred=An error has occurred. general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred. general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Please restart Firefox. general.restartFirefox=Please restart %S.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again. general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone. general.actionCannotBeUndone=This action cannot be undone.
general.install=Install general.install=Install
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Use Firefox profile directory
dataDir.selectDir=Select a Zotero data directory dataDir.selectDir=Select a Zotero data directory
dataDir.selectedDirNonEmpty.title=Directory Not Empty 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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. 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=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.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.dbRestored=The Zotero database '%1$S' appears to have become corrupted.\n\nYour data was restored from the last automatic backup made on %2$S at %3$S. The damaged file was saved in your Zotero directory.
db.dbRestoreFailed=The Zotero database '%S' appears to have become corrupted, and an attempt to restore from the last automatic backup failed.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. db.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.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.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=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.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.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. 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.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=A Firefox profilkönyvtár használata
dataDir.selectDir=Válassza ki a Zotero adatokat tartalmazó mappát dataDir.selectDir=Válassza ki a Zotero adatokat tartalmazó mappát
dataDir.selectedDirNonEmpty.title=A mappa nem üres 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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

@ -13,8 +13,8 @@ general.restartNow=Restart now
general.restartLater=Restart later general.restartLater=Restart later
general.errorHasOccurred=An error has occurred. general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred. general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Please restart Firefox. general.restartFirefox=Please restart %S.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again. general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone. general.actionCannotBeUndone=This action cannot be undone.
general.install=Install general.install=Install
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Use Firefox profile directory
dataDir.selectDir=Select a Zotero data directory dataDir.selectDir=Select a Zotero data directory
dataDir.selectedDirNonEmpty.title=Directory Not Empty 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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. 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=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.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.dbRestored=The Zotero database '%1$S' appears to have become corrupted.\n\nYour data was restored from the last automatic backup made on %2$S at %3$S. The damaged file was saved in your Zotero directory.
db.dbRestoreFailed=The Zotero database '%S' appears to have become corrupted, and an attempt to restore from the last automatic backup failed.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. db.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.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.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=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.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.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. 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.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

@ -51,7 +51,7 @@ upgrade.advanceMessage=Premere '%S' per aggiornare ora
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... 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.selectDir=Selezionare una cartella dati di Zotero
dataDir.selectedDirNonEmpty.title=Cartella non vuota 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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.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=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.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.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. 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.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

@ -51,7 +51,7 @@ upgrade.advanceMessage=今すぐアップグレードするため、%Sを押し
upgrade.dbUpdateRequired=データベースアップデートする必要があリます。 upgrade.dbUpdateRequired=データベースアップデートする必要があリます。
upgrade.integrityCheckFailed=アップグレードを続行するためにZoteroデータベースを修復する必要があります。 upgrade.integrityCheckFailed=アップグレードを続行するためにZoteroデータベースを修復する必要があります。
upgrade.loadDBRepairTool=データベース修復ツールをロードする。 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=もし、このエラーが解決されない場合はパソコンを再起動してください。 upgrade.couldNotMigrate.restart=もし、このエラーが解決されない場合はパソコンを再起動してください。
errorReport.reportError=エラーを報告する errorReport.reportError=エラーを報告する
@ -69,7 +69,7 @@ dataDir.useProfileDir=Firefoxプロファイルフォルダを使用する
dataDir.selectDir=Zoteroのデータフォルダを選択してください dataDir.selectDir=Zoteroのデータフォルダを選択してください
dataDir.selectedDirNonEmpty.title=選択されたフォルダが空ではない dataDir.selectedDirNonEmpty.title=選択されたフォルダが空ではない
dataDir.selectedDirNonEmpty.text=選択されたフォルダが空ではなく、Zoteroのフォルダではないようです。\n\nこのフォルダにZoteroのファイルを作成してよろしいですか 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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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.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=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.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.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. 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.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=Firefox 프로필 디렉토리 사용
dataDir.selectDir=Zotero 데이터 디렉토리 선택 dataDir.selectDir=Zotero 데이터 디렉토리 선택
dataDir.selectedDirNonEmpty.title=디렉토리 비어있지 않음 dataDir.selectedDirNonEmpty.title=디렉토리 비어있지 않음
dataDir.selectedDirNonEmpty.text=선택한 디렉토리는 비어 있지 않고 Zotero 데이터 디렉토리인 것처럼 보이지 않습니다.\n\n이 디렉토리 안에 Zotero 파일을 어떻게든 생성하겠습니까? 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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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

@ -14,7 +14,7 @@ general.restartLater=Дараа ачаалах
general.errorHasOccurred=An error has occurred. general.errorHasOccurred=An error has occurred.
general.unknownErrorOccurred=An unknown error occurred. general.unknownErrorOccurred=An unknown error occurred.
general.restartFirefox=Галт үнэг ахин ачаална уу. general.restartFirefox=Галт үнэг ахин ачаална уу.
general.restartFirefoxAndTryAgain=Please restart Firefox and try again. general.restartFirefoxAndTryAgain=Please restart %S and try again.
general.checkForUpdate=Check for update general.checkForUpdate=Check for update
general.actionCannotBeUndone=This action cannot be undone. general.actionCannotBeUndone=This action cannot be undone.
general.install=Суулга general.install=Суулга
@ -51,7 +51,7 @@ upgrade.advanceMessage=Press %S to upgrade now.
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Use Firefox profile directory
dataDir.selectDir=Select a Zotero data directory dataDir.selectDir=Select a Zotero data directory
dataDir.selectedDirNonEmpty.title=Directory Not Empty 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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. 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=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.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.dbRestored=The Zotero database '%1$S' appears to have become corrupted.\n\nYour data was restored from the last automatic backup made on %2$S at %3$S. The damaged file was saved in your Zotero directory.
db.dbRestoreFailed=The Zotero database '%S' appears to have become corrupted, and an attempt to restore from the last automatic backup failed.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. db.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.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.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=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.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.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. 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.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

@ -51,7 +51,7 @@ upgrade.advanceMessage=Velg %S for å oppgradere nå.
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Bruk profilmappen til Firefox
dataDir.selectDir=Velg en datamappe dataDir.selectDir=Velg en datamappe
dataDir.selectedDirNonEmpty.title=Mappen er ikke tom 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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.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=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.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.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. 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.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=Firefox profiel-map gebruiken
dataDir.selectDir=Selecteer opslagmap voor Zotero dataDir.selectDir=Selecteer opslagmap voor Zotero
dataDir.selectedDirNonEmpty.title=Map niet leeg 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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

@ -51,7 +51,7 @@ upgrade.advanceMessage=Vel %S for å oppgradera no.
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=Bruk profilmappa til Firefox
dataDir.selectDir=Vel ei datamappe dataDir.selectDir=Vel ei datamappe
dataDir.selectedDirNonEmpty.title=Mappa er ikkje tom 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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.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=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.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.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. 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.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

@ -51,7 +51,7 @@ upgrade.advanceMessage=Naciśnij %S, aby zaktualizować teraz.
upgrade.dbUpdateRequired=Baza danych Zotero musi zostać zaktualizowana. 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.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.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. upgrade.couldNotMigrate.restart=Jeśli ponownie zobaczysz ten komunikat, uruchom ponownie swój komputer.
errorReport.reportError=Zgłoś błąd... 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.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.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=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.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.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. 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.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 diretório do perfil do usuário Firefox
dataDir.selectDir=Selecionar um diretório de dados Zotero dataDir.selectDir=Selecionar um diretório de dados Zotero
dataDir.selectedDirNonEmpty.title=Este diretório não está vazio 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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 a pasta de perfis do Firefox
dataDir.selectDir=Escolha uma pasta de dados para o Zotero dataDir.selectDir=Escolha uma pasta de dados para o Zotero
dataDir.selectedDirNonEmpty.title=Pasta Não Vazia 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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

@ -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.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

@ -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.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=Použi priečinok s profilom Firefoxu
dataDir.selectDir=Vyberte si priečinok, do ktorého má Zotero ukladať dáta 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.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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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=Uporabi mapo profila Firefox
dataDir.selectDir=Izberite podatkovno mapo Zotero dataDir.selectDir=Izberite podatkovno mapo Zotero
dataDir.selectedDirNonEmpty.title=Mapa ni prazna 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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=Користи директоријум за Firefox пр
dataDir.selectDir=Изабери директоријум за Зотеро податке dataDir.selectDir=Изабери директоријум за Зотеро податке
dataDir.selectedDirNonEmpty.title=Директоријум није празан dataDir.selectedDirNonEmpty.title=Директоријум није празан
dataDir.selectedDirNonEmpty.text=Директоријум који сте изабрали није празан и не изгледа као Зотеро директоријум за податке.\n\n Да се направе Зотеро датотеке у овом директоријуму свакако? 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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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.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=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.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.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. 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.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

@ -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.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

@ -51,7 +51,7 @@ upgrade.advanceMessage=กด %S เพื่ออัพเกรดทัน
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=ใช้ไดเรคทอรีเดียวกั
dataDir.selectDir=เลือกไดเรคทอรีเก็บข้อมูลโซแทโร dataDir.selectDir=เลือกไดเรคทอรีเก็บข้อมูลโซแทโร
dataDir.selectedDirNonEmpty.title=ไดเรคทอรีมีข้อมูลอยู่ dataDir.selectedDirNonEmpty.title=ไดเรคทอรีมีข้อมูลอยู่
dataDir.selectedDirNonEmpty.text=ไดเรคทอรีที่ท่านเลือกมีข้อมูลอยู่ และไม่ใช่ข้อมูลของโซแทโร\n\nท่านต้องการสร้างข้อมูลของโซแทโรในไดเรคทอรีนี้แน่หรือ? 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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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. 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=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.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.dbRestored=The Zotero database '%1$S' appears to have become corrupted.\n\nYour data was restored from the last automatic backup made on %2$S at %3$S. The damaged file was saved in your Zotero directory.
db.dbRestoreFailed=The Zotero database '%S' appears to have become corrupted, and an attempt to restore from the last automatic backup failed.\n\nA new database file has been created. The damaged file was saved in your Zotero directory. db.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.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.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=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.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.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. 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.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=Firefox profil dizinini kullan
dataDir.selectDir=Zotero veri dizini seç dataDir.selectDir=Zotero veri dizini seç
dataDir.selectedDirNonEmpty.title=Dizin Boş Değil 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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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

@ -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.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... 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.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.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.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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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.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=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.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.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. 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.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

@ -51,7 +51,7 @@ upgrade.advanceMessage=按 %S 开始升级.
upgrade.dbUpdateRequired=The Zotero database must be updated. upgrade.dbUpdateRequired=The Zotero database must be updated.
upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue. upgrade.integrityCheckFailed=Your Zotero database must be repaired before the upgrade can continue.
upgrade.loadDBRepairTool=Load Database Repair Tool 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. upgrade.couldNotMigrate.restart=If you continue to receive this message, restart your computer.
errorReport.reportError=Report Error... errorReport.reportError=Report Error...
@ -69,7 +69,7 @@ dataDir.useProfileDir=使用Firefox配置目录
dataDir.selectDir=选择Zotero数据目录 dataDir.selectDir=选择Zotero数据目录
dataDir.selectedDirNonEmpty.title=目录非空 dataDir.selectedDirNonEmpty.title=目录非空
dataDir.selectedDirNonEmpty.text=您所选的目录里非空, 但不是一个Zotero数据目录.\n\n一定要在此目录里创建Zotero文件吗? 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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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.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=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.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.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. 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.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=使用 Firefox 個人設定檔目錄
dataDir.selectDir=選擇 Zotero 的資料儲存目錄 dataDir.selectDir=選擇 Zotero 的資料儲存目錄
dataDir.selectedDirNonEmpty.title=目錄不是空的 dataDir.selectedDirNonEmpty.title=目錄不是空的
dataDir.selectedDirNonEmpty.text=你選擇的目錄不是空的而且它不像是 Zotero 的資料儲存目錄。\n\n仍然要在這個目錄中建立 Zotero 的檔案嗎? 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.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.multipleProfiles=%1$S will share its data directory with the most recently used profile.
dataDir.standaloneMigration.selectCustom=Custom Data Directory… 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.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

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

View file

@ -1,3 +1,8 @@
#zotero-status-image
{
width: 16px;
height: 16px;
}
#zotero-status-bar-icon, #zotero-addon-bar-icon #zotero-status-bar-icon, #zotero-addon-bar-icon
{ {
width: 55px; width: 55px;
@ -257,6 +262,32 @@
height:24px; 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 { .zotero-tb-button[type="panel"] > dropmarker {
display: none; display: none;
} }
@ -399,8 +430,9 @@
#zotero-tb-sync { #zotero-tb-sync {
list-style-image: url(chrome://zotero/skin/arrow_rotate_static.png); list-style-image: url(chrome://zotero/skin/arrow_rotate_static.png);
margin-left: -2px; margin-left: -6px;
margin-right: -2px; margin-right: -2px;
padding-right: 6px;
} }
#zotero-tb-sync[status=animate] { #zotero-tb-sync[status=animate] {
@ -425,6 +457,7 @@
#zotero-tb-search #zotero-tb-search
{ {
font-size: 11px !important; font-size: 11px !important;
margin-right: 0;
width: 160px; 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; 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> <id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</id>
<minVersion>3.6</minVersion> <minVersion>3.6</minVersion>
<maxVersion>10.*</maxVersion> <maxVersion>10.*</maxVersion>
<updateLink>http://www.zotero.org/download/zotero.xpi</updateLink> <updateLink>http://download.zotero.org/extension/zotero.xpi</updateLink>
<updateHash>sha1:</updateHash> <updateHash>sha1:</updateHash>
</RDF:Description> </RDF:Description>
</targetApplication> </targetApplication>