Merge branch '4.0'
Conflicts: chrome/content/zotero/xpcom/schema.js chrome/content/zotero/xpcom/translation/translate.js chrome/content/zotero/xpcom/zotero.js install.rdf update.rdf
This commit is contained in:
commit
b0e37a38a2
|
@ -47,6 +47,54 @@
|
||||||
padding: 5px 1px 5px 11px;
|
padding: 5px 1px 5px 11px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The searchbox focus ring is incorrect in Yosemite pre-Fx34, so use the old searchbox shape
|
||||||
|
* (with code borrowed from the Fx Add-ons window and icons borrowed from the Fx searchbar).
|
||||||
|
* These styles, the 'oldsearchfield' assignment in zoteroPane.js, and the Search.png icons
|
||||||
|
* can be removed after Fx31 ESR.
|
||||||
|
*
|
||||||
|
* Note: This uses navigator.oscpu in zoteroPane.js to test for Yosemite instead of
|
||||||
|
* -moz-mac-yosemite-theme here because the latter isn't defined in Fx31.
|
||||||
|
*/
|
||||||
|
#zotero-pane-stack[oldsearchfield] textbox[type=search] {
|
||||||
|
margin: 0;
|
||||||
|
-moz-appearance: none;
|
||||||
|
padding: 3px 5px 2px;
|
||||||
|
border: 1px solid rgba(60,73,97,0.5);
|
||||||
|
border-radius: 10000px;
|
||||||
|
box-shadow: inset 0 1px 1px rgba(0,0,0,0.15), 0 1px rgba(255,255,255,0.25);
|
||||||
|
background-clip: padding-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zotero-pane-stack[oldsearchfield] textbox[type=search][focused] {
|
||||||
|
box-shadow: 0 0 1px -moz-mac-focusring inset, 0 0 4px 1px -moz-mac-focusring, 0 0 1.5px 1px -moz-mac-focusring, inset 0 1px 1px rgba(0,0,0,0.15);
|
||||||
|
border-color: -moz-mac-focusring;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zotero-pane-stack[oldsearchfield] textbox[type=search] > .textbox-input-box {
|
||||||
|
-moz-padding-start: 15px;
|
||||||
|
background: url("chrome://zotero/skin/mac/moz/Search.png") left no-repeat;
|
||||||
|
background-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-resolution: 2dppx) {
|
||||||
|
#zotero-pane-stack[oldsearchfield] textbox[type=search] > .textbox-input-box {
|
||||||
|
background: url("chrome://zotero/skin/mac/moz/Search@2x.png") left no-repeat;
|
||||||
|
background-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#zotero-pane-stack[oldsearchfield] textbox[type=search] > .textbox-input-box:-moz-locale-dir(rtl) {
|
||||||
|
background-position: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zotero-pane-stack[oldsearchfield] textbox[type=search] > .textbox-input-box > html|*.textbox-input::-moz-placeholder {
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
/* End searchbox focus fix */
|
||||||
|
|
||||||
|
|
||||||
#zotero-tb-search-menu-button
|
#zotero-tb-search-menu-button
|
||||||
{
|
{
|
||||||
margin: -6px -2px -6px -16px;
|
margin: -6px -2px -6px -16px;
|
||||||
|
@ -207,7 +255,7 @@
|
||||||
background-color: #8b8b8b !important;
|
background-color: #8b8b8b !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#zotero-collections-splitter[state=collapsed]
|
#zotero-collections-splitter[state=collapsed], #zotero-items-splitter[state=collapsed]
|
||||||
{
|
{
|
||||||
border-right: 1px;
|
border-right: 1px;
|
||||||
border-color: #A5A5A5;
|
border-color: #A5A5A5;
|
||||||
|
@ -219,7 +267,7 @@
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#zotero-collections-splitter[state=collapsed] > grippy
|
#zotero-collections-splitter[state=collapsed] > grippy, #zotero-items-splitter[state=collapsed] > grippy
|
||||||
{
|
{
|
||||||
-moz-appearance: none;
|
-moz-appearance: none;
|
||||||
background-image: url("chrome://zotero/skin/mac/vgrippy.png");
|
background-image: url("chrome://zotero/skin/mac/vgrippy.png");
|
||||||
|
@ -249,7 +297,7 @@
|
||||||
height: 8px;
|
height: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#zotero-tags-splitter > grippy:hover, #zotero-collections-splitter > grippy:hover
|
#zotero-tags-splitter > grippy:hover, #zotero-collections-splitter > grippy:hover, #zotero-items-splitter > grippy:hover
|
||||||
{
|
{
|
||||||
background-color:transparent;
|
background-color:transparent;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@ var ZoteroAdvancedSearch = new function() {
|
||||||
this.itemsView = false;
|
this.itemsView = false;
|
||||||
|
|
||||||
var _searchBox;
|
var _searchBox;
|
||||||
|
var _libraryID;
|
||||||
|
|
||||||
function onLoad() {
|
function onLoad() {
|
||||||
_searchBox = document.getElementById('zotero-search-box');
|
_searchBox = document.getElementById('zotero-search-box');
|
||||||
|
@ -53,8 +54,11 @@ var ZoteroAdvancedSearch = new function() {
|
||||||
_searchBox.updateSearch();
|
_searchBox.updateSearch();
|
||||||
_searchBox.active = true;
|
_searchBox.active = true;
|
||||||
|
|
||||||
// A minimal implementation of Zotero.CollectionTreeView
|
// A minimal implementation of Zotero.ItemGroup
|
||||||
var itemGroup = {
|
var itemGroup = {
|
||||||
|
ref: {
|
||||||
|
libraryID: _libraryID
|
||||||
|
},
|
||||||
isSearchMode: function() { return true; },
|
isSearchMode: function() { return true; },
|
||||||
getItems: function () {
|
getItems: function () {
|
||||||
var search = _searchBox.search.clone();
|
var search = _searchBox.search.clone();
|
||||||
|
@ -147,6 +151,7 @@ var ZoteroAdvancedSearch = new function() {
|
||||||
|
|
||||||
|
|
||||||
this.onLibraryChange = function (libraryID) {
|
this.onLibraryChange = function (libraryID) {
|
||||||
|
_libraryID = libraryID;
|
||||||
document.getElementById('zotero-search-save').disabled = !Zotero.Libraries.isEditable(libraryID);
|
document.getElementById('zotero-search-save').disabled = !Zotero.Libraries.isEditable(libraryID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
60
chrome/content/zotero/attachLink.js
Normal file
60
chrome/content/zotero/attachLink.js
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
***** BEGIN LICENSE BLOCK *****
|
||||||
|
|
||||||
|
Copyright © 2014 Center for History and New Media
|
||||||
|
George Mason University, Fairfax, Virginia, USA
|
||||||
|
http://zotero.org
|
||||||
|
|
||||||
|
This file is part of Zotero.
|
||||||
|
|
||||||
|
Zotero is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Zotero is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with Zotero. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
***** END LICENSE BLOCK *****
|
||||||
|
*/
|
||||||
|
|
||||||
|
var Zotero_AttachLink = new function() {
|
||||||
|
function getAttachFileLabel() {
|
||||||
|
return window.opener.document
|
||||||
|
.getElementById('zotero-tb-attachment-add-file-link')
|
||||||
|
.label;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.submit = function() {
|
||||||
|
var link = document.getElementById('zotero-attach-uri-input').value;
|
||||||
|
var message = document.getElementById('zotero-attach-uri-message');
|
||||||
|
var cleanURI = Zotero.Attachments.cleanAttachmentURI(link, true);
|
||||||
|
|
||||||
|
if (!cleanURI) {
|
||||||
|
message.textContent = Zotero.getString('pane.items.attach.link.uri.unrecognized');
|
||||||
|
window.sizeToContent();
|
||||||
|
document.getElementById('zotero-attach-uri-input').select();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Don't allow "file:" links, because using "Attach link to file" is the right way
|
||||||
|
else if (cleanURI.toLowerCase().indexOf('file:') == 0) {
|
||||||
|
message.textContent = Zotero.getString('pane.items.attach.link.uri.file',
|
||||||
|
[getAttachFileLabel()]);
|
||||||
|
window.sizeToContent();
|
||||||
|
document.getElementById('zotero-attach-uri-input').select();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
window.arguments[0].out = {
|
||||||
|
link: cleanURI,
|
||||||
|
title: document.getElementById('zotero-attach-uri-title').value
|
||||||
|
};
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
32
chrome/content/zotero/attachLink.xul
Normal file
32
chrome/content/zotero/attachLink.xul
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
||||||
|
<?xml-stylesheet href="chrome://zotero/skin/zotero.css" type="text/css"?>
|
||||||
|
|
||||||
|
<!DOCTYPE window SYSTEM "chrome://zotero/locale/zotero.dtd">
|
||||||
|
|
||||||
|
<dialog
|
||||||
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||||
|
buttons="accept,cancel"
|
||||||
|
ondialogaccept="return Zotero_AttachLink.submit();"
|
||||||
|
|
||||||
|
id="zotero-attach-uri-dialog"
|
||||||
|
title="&zotero.attachLink.title;"
|
||||||
|
>
|
||||||
|
|
||||||
|
<script src="include.js"/>
|
||||||
|
<script src="AttachLink.js"/>
|
||||||
|
|
||||||
|
<vbox id="zotero-attach-uri-container">
|
||||||
|
<hbox>
|
||||||
|
<description id="zotero-attach-uri-message" class="zotero-message-error"></description>
|
||||||
|
</hbox>
|
||||||
|
<hbox align="center">
|
||||||
|
<label id="zotero-attach-uri-label-input" value="&zotero.attachLink.label.link;" control="zotero-attach-uri-input"></label>
|
||||||
|
<textbox id="zotero-attach-uri-input" flex="1"/>
|
||||||
|
</hbox>
|
||||||
|
<hbox align="center">
|
||||||
|
<label id="zotero-attach-uri-label-title" value="&zotero.attachLink.label.title;" control="zotero-attach-uri-title"></label>
|
||||||
|
<textbox id="zotero-attach-uri-title" flex="1" placeholder="&zotero.general.optional;"/>
|
||||||
|
</hbox>
|
||||||
|
</vbox>
|
||||||
|
</dialog>
|
|
@ -1467,9 +1467,24 @@
|
||||||
|
|
||||||
t.select();
|
t.select();
|
||||||
|
|
||||||
|
// Leave text field open when window loses focus
|
||||||
|
var ignoreBlur = function () {
|
||||||
|
this.ignoreBlur = true;
|
||||||
|
}.bind(this);
|
||||||
|
var unignoreBlur = function () {
|
||||||
|
this.ignoreBlur = false;
|
||||||
|
}.bind(this);
|
||||||
|
addEventListener("deactivate", ignoreBlur);
|
||||||
|
addEventListener("activate", unignoreBlur);
|
||||||
|
|
||||||
t.addEventListener('blur', function () {
|
t.addEventListener('blur', function () {
|
||||||
document.getBindingParent(this).blurHandler(this);
|
var self = document.getBindingParent(this);
|
||||||
}, false);
|
if (self.ignoreBlur) return;
|
||||||
|
|
||||||
|
removeEventListener("deactivate", ignoreBlur);
|
||||||
|
removeEventListener("activate", unignoreBlur);
|
||||||
|
self.blurHandler(this);
|
||||||
|
});
|
||||||
t.setAttribute('onkeypress', "return document.getBindingParent(this).handleKeyPress(event)");
|
t.setAttribute('onkeypress', "return document.getBindingParent(this).handleKeyPress(event)");
|
||||||
|
|
||||||
this._tabDirection = false;
|
this._tabDirection = false;
|
||||||
|
|
|
@ -107,7 +107,9 @@
|
||||||
<parameter name="skipRefresh"/>
|
<parameter name="skipRefresh"/>
|
||||||
<body>
|
<body>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
this._search = val ? val.toLowerCase() : false;
|
this._search = val
|
||||||
|
? val.toLowerCase().normalize()
|
||||||
|
: false;
|
||||||
|
|
||||||
if (!skipRefresh) {
|
if (!skipRefresh) {
|
||||||
this.refresh();
|
this.refresh();
|
||||||
|
|
|
@ -63,11 +63,19 @@ var Zotero_DownloadOverlay = new function() {
|
||||||
.getMostRecentWindow("navigator:browser");
|
.getMostRecentWindow("navigator:browser");
|
||||||
var libraryID, collection;
|
var libraryID, collection;
|
||||||
try {
|
try {
|
||||||
if(win.ZoteroPane.getItemGroup().filesEditable) {
|
let itemGroup = win.ZoteroPane.getItemGroup();
|
||||||
|
if (itemGroup.filesEditable) {
|
||||||
libraryID = win.ZoteroPane.getSelectedLibraryID();
|
libraryID = win.ZoteroPane.getSelectedLibraryID();
|
||||||
collection = win.ZoteroPane.getSelectedCollection();
|
collection = win.ZoteroPane.getSelectedCollection();
|
||||||
}
|
}
|
||||||
} catch(e) {};
|
// TODO: Just show an error instead?
|
||||||
|
else {
|
||||||
|
Zotero.debug("Cannot save files to library " + itemGroup.ref.libraryID
|
||||||
|
+ " -- saving to personal library instead", 2);
|
||||||
|
}
|
||||||
|
} catch(e) {
|
||||||
|
Zotero.debug(e, 1);
|
||||||
|
};
|
||||||
|
|
||||||
var recognizePDF = document.getElementById('zotero-recognizePDF').checked
|
var recognizePDF = document.getElementById('zotero-recognizePDF').checked
|
||||||
&& !document.getElementById('zotero-recognizePDF').hidden
|
&& !document.getElementById('zotero-recognizePDF').hidden
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
|
Components.utils.import("resource://zotero/config.js");
|
||||||
|
|
||||||
var Zotero_Error_Report = new function() {
|
var Zotero_Error_Report = new function() {
|
||||||
this.init = init;
|
this.init = init;
|
||||||
this.sendErrorReport = sendErrorReport;
|
this.sendErrorReport = sendErrorReport;
|
||||||
|
@ -74,7 +76,7 @@
|
||||||
body += key + '=' + encodeURIComponent(parts[key]) + '&';
|
body += key + '=' + encodeURIComponent(parts[key]) + '&';
|
||||||
}
|
}
|
||||||
body = body.substr(0, body.length - 1);
|
body = body.substr(0, body.length - 1);
|
||||||
var url = 'https://repo.zotero.org/repo/report';
|
var url = ZOTERO_CONFIG.REPOSITORY_URL + "report";
|
||||||
Zotero.HTTP.promise('POST', url,
|
Zotero.HTTP.promise('POST', url,
|
||||||
{ body: body, successCodes: false, foreground: true })
|
{ body: body, successCodes: false, foreground: true })
|
||||||
.then(_sendErrorReportCallback)
|
.then(_sendErrorReportCallback)
|
||||||
|
|
|
@ -420,9 +420,10 @@ var Zotero_File_Interface = new function() {
|
||||||
var clipboardService = Components.classes["@mozilla.org/widget/clipboard;1"].
|
var clipboardService = Components.classes["@mozilla.org/widget/clipboard;1"].
|
||||||
getService(Components.interfaces.nsIClipboard);
|
getService(Components.interfaces.nsIClipboard);
|
||||||
var style = Zotero.Styles.get(style);
|
var style = Zotero.Styles.get(style);
|
||||||
|
var cslEngine = style.getCiteProc();
|
||||||
|
|
||||||
// add HTML
|
// add HTML
|
||||||
var bibliography = Zotero.Cite.makeFormattedBibliographyOrCitationList(style, items, "html", asCitations);
|
var bibliography = Zotero.Cite.makeFormattedBibliographyOrCitationList(cslEngine, items, "html", asCitations);
|
||||||
var str = Components.classes["@mozilla.org/supports-string;1"].
|
var str = Components.classes["@mozilla.org/supports-string;1"].
|
||||||
createInstance(Components.interfaces.nsISupportsString);
|
createInstance(Components.interfaces.nsISupportsString);
|
||||||
str.data = bibliography;
|
str.data = bibliography;
|
||||||
|
@ -431,7 +432,7 @@ var Zotero_File_Interface = new function() {
|
||||||
|
|
||||||
// add text (or HTML source)
|
// add text (or HTML source)
|
||||||
if(!asHTML) {
|
if(!asHTML) {
|
||||||
var bibliography = Zotero.Cite.makeFormattedBibliographyOrCitationList(style, items, "text", asCitations);
|
var bibliography = Zotero.Cite.makeFormattedBibliographyOrCitationList(cslEngine, items, "text", asCitations);
|
||||||
}
|
}
|
||||||
var str = Components.classes["@mozilla.org/supports-string;1"].
|
var str = Components.classes["@mozilla.org/supports-string;1"].
|
||||||
createInstance(Components.interfaces.nsISupportsString);
|
createInstance(Components.interfaces.nsISupportsString);
|
||||||
|
@ -517,7 +518,8 @@ var Zotero_File_Interface = new function() {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var style = Zotero.Styles.get(io.style);
|
var style = Zotero.Styles.get(io.style);
|
||||||
var bibliography = Zotero.Cite.makeFormattedBibliographyOrCitationList(style,
|
var cslEngine = style.getCiteProc();
|
||||||
|
var bibliography = Zotero.Cite.makeFormattedBibliographyOrCitationList(cslEngine,
|
||||||
items, format, io.mode === "citations");
|
items, format, io.mode === "citations");
|
||||||
}
|
}
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 76af9741424cc1432ffa0165d7b7bd5bbebe0d26
|
Subproject commit 23920d2cea52e12f2c3caac097266c13757e5acf
|
|
@ -107,6 +107,17 @@ var ZoteroOverlay = new function()
|
||||||
|
|
||||||
document.getElementById('appcontent').addEventListener('mousemove', Zotero.ProgressWindowSet.updateTimers, false);
|
document.getElementById('appcontent').addEventListener('mousemove', Zotero.ProgressWindowSet.updateTimers, false);
|
||||||
if (icon) {
|
if (icon) {
|
||||||
|
// TODO: move to strings
|
||||||
|
let str = 'Zotero';
|
||||||
|
let key = Zotero.Keys.getKeyForCommand('openZotero');
|
||||||
|
if (key) {
|
||||||
|
str += ' ('
|
||||||
|
+ (Zotero.isMac ? '⇧⌘' : Zotero.getString('general.keys.ctrlShift'))
|
||||||
|
+ key
|
||||||
|
+ ')';
|
||||||
|
}
|
||||||
|
icon.setAttribute('tooltiptext', str);
|
||||||
|
|
||||||
if (iconPref == 1) {
|
if (iconPref == 1) {
|
||||||
icon.setAttribute('compact', true);
|
icon.setAttribute('compact', true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -630,7 +630,9 @@ Zotero_Preferences.Debug_Output = {
|
||||||
document.getElementById('debug-output-submit').disabled = true;
|
document.getElementById('debug-output-submit').disabled = true;
|
||||||
document.getElementById('debug-output-submit-progress').hidden = false;
|
document.getElementById('debug-output-submit-progress').hidden = false;
|
||||||
|
|
||||||
var url = "https://repo.zotero.org/repo/report?debug=1";
|
Components.utils.import("resource://zotero/config.js");
|
||||||
|
|
||||||
|
var url = ZOTERO_CONFIG.REPOSITORY_URL + "report?debug=1";
|
||||||
var output = Zotero.Debug.get(
|
var output = Zotero.Debug.get(
|
||||||
Zotero.Prefs.get('debug.store.submitSize'),
|
Zotero.Prefs.get('debug.store.submitSize'),
|
||||||
Zotero.Prefs.get('debug.store.submitLineLength')
|
Zotero.Prefs.get('debug.store.submitLineLength')
|
||||||
|
|
|
@ -66,7 +66,6 @@ Zotero_Preferences.Cite = {
|
||||||
var treerow = document.createElement('treerow');
|
var treerow = document.createElement('treerow');
|
||||||
var titleCell = document.createElement('treecell');
|
var titleCell = document.createElement('treecell');
|
||||||
var updatedCell = document.createElement('treecell');
|
var updatedCell = document.createElement('treecell');
|
||||||
var cslCell = document.createElement('treecell');
|
|
||||||
|
|
||||||
if (style.updated) {
|
if (style.updated) {
|
||||||
var updatedDate = Zotero.Date.formatDate(Zotero.Date.strToDate(style.updated), true);
|
var updatedDate = Zotero.Date.formatDate(Zotero.Date.strToDate(style.updated), true);
|
||||||
|
@ -78,14 +77,9 @@ Zotero_Preferences.Cite = {
|
||||||
treeitem.setAttribute('id', 'zotero-csl-' + style.styleID);
|
treeitem.setAttribute('id', 'zotero-csl-' + style.styleID);
|
||||||
titleCell.setAttribute('label', style.title);
|
titleCell.setAttribute('label', style.title);
|
||||||
updatedCell.setAttribute('label', updatedDate);
|
updatedCell.setAttribute('label', updatedDate);
|
||||||
// if not EN
|
|
||||||
if(style.type == "csl") {
|
|
||||||
cslCell.setAttribute('src', 'chrome://zotero/skin/tick.png');
|
|
||||||
}
|
|
||||||
|
|
||||||
treerow.appendChild(titleCell);
|
treerow.appendChild(titleCell);
|
||||||
treerow.appendChild(updatedCell);
|
treerow.appendChild(updatedCell);
|
||||||
treerow.appendChild(cslCell);
|
|
||||||
treeitem.appendChild(treerow);
|
treeitem.appendChild(treerow);
|
||||||
treechildren.appendChild(treeitem);
|
treechildren.appendChild(treeitem);
|
||||||
|
|
||||||
|
|
|
@ -58,9 +58,8 @@
|
||||||
onselect="document.getElementById('styleManager-delete').disabled = undefined"
|
onselect="document.getElementById('styleManager-delete').disabled = undefined"
|
||||||
onkeypress="if (event.keyCode == event.DOM_VK_DELETE) { Zotero_Preferences.Cite.deleteSelectedStyle(); }">
|
onkeypress="if (event.keyCode == event.DOM_VK_DELETE) { Zotero_Preferences.Cite.deleteSelectedStyle(); }">
|
||||||
<treecols>
|
<treecols>
|
||||||
<treecol id="styleManager-title" label="&zotero.preferences.cite.styles.styleManager.title;" flex="3"/>
|
<treecol id="styleManager-title" label="&zotero.preferences.cite.styles.styleManager.title;" flex="1"/>
|
||||||
<treecol id="styleManager-updated" label="&zotero.preferences.cite.styles.styleManager.updated;" flex="1"/>
|
<treecol id="styleManager-updated" label="&zotero.preferences.cite.styles.styleManager.updated;"/>
|
||||||
<treecol id="styleManager-csl" label="&zotero.preferences.cite.styles.styleManager.csl;"/>
|
|
||||||
</treecols>
|
</treecols>
|
||||||
<treechildren id="styleManager-rows"/>
|
<treechildren id="styleManager-rows"/>
|
||||||
</tree>
|
</tree>
|
||||||
|
|
|
@ -148,8 +148,8 @@
|
||||||
onsynctopreference="Zotero_Preferences.Sync.unverifyStorageServer()"
|
onsynctopreference="Zotero_Preferences.Sync.unverifyStorageServer()"
|
||||||
style="padding: 0; width: 7em">
|
style="padding: 0; width: 7em">
|
||||||
<menupopup>
|
<menupopup>
|
||||||
<menuitem label="http" value="http" style="padding: 0"/>
|
|
||||||
<menuitem label="https" value="https" style="padding: 0"/>
|
<menuitem label="https" value="https" style="padding: 0"/>
|
||||||
|
<menuitem label="http" value="http" style="padding: 0"/>
|
||||||
</menupopup>
|
</menupopup>
|
||||||
</menulist>
|
</menulist>
|
||||||
<label value="://"/>
|
<label value="://"/>
|
||||||
|
@ -240,7 +240,7 @@
|
||||||
<vbox>
|
<vbox>
|
||||||
<hbox id="storage-terms" style="margin-top: .4em; display: block" align="center">
|
<hbox id="storage-terms" style="margin-top: .4em; display: block" align="center">
|
||||||
<label>&zotero.preferences.sync.fileSyncing.tos1;</label>
|
<label>&zotero.preferences.sync.fileSyncing.tos1;</label>
|
||||||
<label class="zotero-text-link" href="http://www.digitalscholar.org/z_terms" value="&zotero.preferences.sync.fileSyncing.tos2;"/>
|
<label class="zotero-text-link" href="https://www.zotero.org/support/terms/terms_of_service" value="&zotero.preferences.sync.fileSyncing.tos2;"/>
|
||||||
<label>&zotero.preferences.period;</label>
|
<label>&zotero.preferences.period;</label>
|
||||||
</hbox>
|
</hbox>
|
||||||
</vbox>
|
</vbox>
|
||||||
|
|
|
@ -95,27 +95,31 @@ var Zotero_RecognizePDF = new function() {
|
||||||
// Look up DOI
|
// Look up DOI
|
||||||
Zotero.debug("RecognizePDF: Found DOI: "+doi);
|
Zotero.debug("RecognizePDF: Found DOI: "+doi);
|
||||||
|
|
||||||
var translate = new Zotero.Translate.Search();
|
var translateDOI = new Zotero.Translate.Search();
|
||||||
translate.setTranslator("11645bd1-0420-45c1-badb-53fb41eeb753");
|
translateDOI.setTranslator("11645bd1-0420-45c1-badb-53fb41eeb753");
|
||||||
translate.setSearch({"itemType":"journalArticle", "DOI":doi});
|
translateDOI.setSearch({"itemType":"journalArticle", "DOI":doi});
|
||||||
promise = _promiseTranslate(translate, libraryID);
|
promise = _promiseTranslate(translateDOI, libraryID);
|
||||||
} else {
|
} else {
|
||||||
|
promise = Q.reject("No DOI found in text");
|
||||||
|
}
|
||||||
|
|
||||||
|
return promise
|
||||||
// Look for ISBNs if no DOI
|
// Look for ISBNs if no DOI
|
||||||
|
.fail(function(error) {
|
||||||
|
Zotero.debug("RecognizePDF: " + error);
|
||||||
var isbns = _findISBNs(allText);
|
var isbns = _findISBNs(allText);
|
||||||
if (isbns.length) {
|
if (isbns.length) {
|
||||||
Zotero.debug("RecognizePDF: Found ISBNs: " + isbns);
|
Zotero.debug("RecognizePDF: Found ISBNs: " + isbns);
|
||||||
|
|
||||||
var translate = new Zotero.Translate.Search();
|
var translate = new Zotero.Translate.Search();
|
||||||
translate.setTranslator("c73a4a8c-3ef1-4ec8-8229-7531ee384cc4");
|
|
||||||
translate.setSearch({"itemType":"book", "ISBN":isbns[0]});
|
translate.setSearch({"itemType":"book", "ISBN":isbns[0]});
|
||||||
promise = _promiseTranslate(translate, libraryID);
|
return _promiseTranslate(translate, libraryID);
|
||||||
} else {
|
} else {
|
||||||
promise = Q.reject("No ISBN or DOI found");
|
return Q.reject("No ISBN found in text.");
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
|
|
||||||
// If no DOI or ISBN, query Google Scholar
|
// If no DOI or ISBN, query Google Scholar
|
||||||
return promise.fail(function(error) {
|
.fail(function(error) {
|
||||||
Zotero.debug("RecognizePDF: " + error);
|
Zotero.debug("RecognizePDF: " + error);
|
||||||
return me.GSFullTextSearch.findItem(lines, libraryID, stopCheckCallback);
|
return me.GSFullTextSearch.findItem(lines, libraryID, stopCheckCallback);
|
||||||
});
|
});
|
||||||
|
@ -196,7 +200,10 @@ var Zotero_RecognizePDF = new function() {
|
||||||
if(success && translate.newItems.length) {
|
if(success && translate.newItems.length) {
|
||||||
deferred.resolve(translate.newItems[0]);
|
deferred.resolve(translate.newItems[0]);
|
||||||
} else {
|
} else {
|
||||||
deferred.reject("Translation with Google Scholar failed");
|
deferred.reject(translate.translator && translate.translator.length
|
||||||
|
? "Translation with " + translate.translator.map(t => t.label) + " failed"
|
||||||
|
: "Could not find a translator for given search item"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
translate.translate(libraryID, false);
|
translate.translate(libraryID, false);
|
||||||
|
|
|
@ -44,25 +44,28 @@
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
//refresh();
|
//refresh();
|
||||||
|
|
||||||
|
var iframe = document.getElementById('zotero-csl-preview-box');
|
||||||
|
iframe.contentDocument.documentElement.innerHTML = '<html><head><title></title></head><body><p>Select one or more items in Zotero and click the "Refresh" button to see how these items are rendered by the installed CSL citation styles.</p></body></html>';
|
||||||
}
|
}
|
||||||
function refresh() {
|
function refresh() {
|
||||||
var iframe = document.getElementById('zotero-csl-preview-box');
|
var iframe = document.getElementById('zotero-csl-preview-box');
|
||||||
var items = Zotero.getActiveZoteroPane().getSelectedItems();
|
var items = Zotero.getActiveZoteroPane().getSelectedItems();
|
||||||
if (items.length == 0) {
|
if (items.length === 0) {
|
||||||
iframe.contentDocument.documentElement.innerHTML = '<html><head><title></title></head><body><p style="color: red">No references selected in Zotero.</p></body></html>';
|
iframe.contentDocument.documentElement.innerHTML = '<html><head><title></title></head><body><p style="color: red">No items selected in Zotero.</p></body></html>';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var progressWin = new Zotero.ProgressWindow();
|
var progressWin = new Zotero.ProgressWindow();
|
||||||
// XXX needs its own string really!
|
// XXX needs its own string really!
|
||||||
progressWin.changeHeadline(Zotero.getString("pane.items.menu.createBib.multiple"));
|
progressWin.changeHeadline(Zotero.getString("pane.items.menu.createBib.multiple"));
|
||||||
var icon = 'chrome://zotero/skin/treeitem-attachment-file.png';
|
var icon = 'chrome://zotero/skin/treeitem-attachment-file.png';
|
||||||
progressWin.addLines(document.title, icon)
|
progressWin.addLines(document.title, icon);
|
||||||
progressWin.show();
|
progressWin.show();
|
||||||
progressWin.startCloseTimer();
|
progressWin.startCloseTimer();
|
||||||
var f = function() {
|
var f = function() {
|
||||||
var styles = Zotero.Styles.getAll();
|
var styles = Zotero.Styles.getAll();
|
||||||
// XXX needs its own string really for the title!
|
// XXX needs its own string really for the title!
|
||||||
var str = '<html><head><title></title></head><body><h1>Citation/Bibliography list<h1>';
|
var str = '<html><head><title></title></head><body>';
|
||||||
for each(var style in styles) {
|
for each(var style in styles) {
|
||||||
if (style.source) {
|
if (style.source) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -70,14 +73,15 @@
|
||||||
Zotero.debug("Generate Bib for " + style.title);
|
Zotero.debug("Generate Bib for " + style.title);
|
||||||
var cite = generateBibliography(style);
|
var cite = generateBibliography(style);
|
||||||
if (cite) {
|
if (cite) {
|
||||||
str += '<hr><h2>' + style.title + '</h2>';
|
str += '<h3>' + style.title + '</h3>';
|
||||||
str += cite;
|
str += cite;
|
||||||
|
str += '<hr>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
str += '</body></html>';
|
str += '</body></html>';
|
||||||
iframe.contentDocument.documentElement.innerHTML = str;
|
iframe.contentDocument.documentElement.innerHTML = str;
|
||||||
}
|
};
|
||||||
// Give progress window time to appear
|
// Give progress window time to appear
|
||||||
setTimeout(f, 100);
|
setTimeout(f, 100);
|
||||||
}
|
}
|
||||||
|
@ -86,33 +90,13 @@
|
||||||
var iframe = document.getElementById('zotero-csl-preview-box');
|
var iframe = document.getElementById('zotero-csl-preview-box');
|
||||||
|
|
||||||
var items = Zotero.getActiveZoteroPane().getSelectedItems();
|
var items = Zotero.getActiveZoteroPane().getSelectedItems();
|
||||||
if (items.length == 0) {
|
if (items.length === 0) {
|
||||||
iframe.contentDocument.documentElement.innerHTML = '<html><head><title></title></head><body><p style="color: red">No references selected in Zotero.</p></body></html>';
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
var authordate = document.getElementById("format-author-date");
|
var citationFormat = document.getElementById("citation-format").selectedItem.value;
|
||||||
var numeric = document.getElementById("format-numeric");
|
if (citationFormat != "all" && citationFormat != style.categories) {
|
||||||
Zotero.debug("style class is " + style.class);
|
Zotero.debug("CSL IGNORE: citation format is " + style.categories);
|
||||||
if (document.getElementById("format-note").checked == false && style.class == "note") {
|
|
||||||
Zotero.debug("CSL IGNORE NOTE one");
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
if (document.getElementById("format-in-text").checked == false && style.class == "in-text") {
|
|
||||||
Zotero.debug("CSL IGNORE IN-TEXT one");
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
var terms = new Object();
|
|
||||||
for each(var cat in style.categories) {
|
|
||||||
Zotero.debug("TERM is " + cat.toString());
|
|
||||||
terms[cat.toString()] = true;
|
|
||||||
}
|
|
||||||
if (!numeric.checked && terms["numeric"]) {
|
|
||||||
Zotero.debug("CSL IGNORE this numeric");
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
if (!authordate.checked && terms["author-date"]) {
|
|
||||||
Zotero.debug("CSL IGNORE this AD");
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
var styleEngine = style.getCiteProc();
|
var styleEngine = style.getCiteProc();
|
||||||
|
@ -123,19 +107,17 @@
|
||||||
[], [], "html");
|
[], [], "html");
|
||||||
|
|
||||||
// Generate bibliography
|
// Generate bibliography
|
||||||
if(!style.hasBibliography) {
|
|
||||||
var bibliography = '';
|
var bibliography = '';
|
||||||
} else {
|
if(style.hasBibliography) {
|
||||||
styleEngine.updateItems([item.id for each(item in items)]);
|
styleEngine.updateItems([item.id for each(item in items)]);
|
||||||
var bibliography = '<p>' + Zotero.Cite.makeFormattedBibliography(styleEngine, "html");
|
bibliography = Zotero.Cite.makeFormattedBibliography(styleEngine, "html");
|
||||||
}
|
}
|
||||||
|
|
||||||
return '<div>' +
|
return '<p>' + citations + '</p>' + bibliography;
|
||||||
citations + bibliography + '</div>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}();
|
||||||
]]>
|
]]>
|
||||||
</script>
|
</script>
|
||||||
<!-- NEEDS LOCALISING -->
|
<!-- NEEDS LOCALISING -->
|
||||||
|
@ -144,18 +126,20 @@
|
||||||
<hbox align="center">
|
<hbox align="center">
|
||||||
<button id="preview-refresh-button" label="Refresh" oncommand="Zotero_CSL_Preview.refresh()"/>
|
<button id="preview-refresh-button" label="Refresh" oncommand="Zotero_CSL_Preview.refresh()"/>
|
||||||
<groupbox orient="horizontal" align="center">
|
<groupbox orient="horizontal" align="center">
|
||||||
<label value="Class:"/>
|
<label value="Citation format:" />
|
||||||
<checkbox id="format-in-text" label="In-Text" checked="true"/>
|
<menulist id="citation-format" oncommand="Zotero_CSL_Preview.refresh()">
|
||||||
<checkbox id="format-note" label="Notes" checked="true"/>
|
<menupopup>
|
||||||
</groupbox>
|
<menuitem label="all" value="all"/>
|
||||||
<groupbox orient="horizontal" align="center">
|
<menuitem label="author" value="author"/>
|
||||||
<label value="Citation form:"/>
|
<menuitem label="author-date" value="author-date"/>
|
||||||
<checkbox id="format-author-date" label="Author Date" checked="true"/>
|
<menuitem label="label" value="label"/>
|
||||||
<checkbox id="format-numeric" label="Numeric" checked="true"/>
|
<menuitem label="note" value="note"/>
|
||||||
|
<menuitem label="numeric" value="numeric"/>
|
||||||
|
</menupopup>
|
||||||
|
</menulist>
|
||||||
</groupbox>
|
</groupbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
<splitter/>
|
|
||||||
<iframe id="zotero-csl-preview-box" flex="1" style="padding: 0 1em; background:white;" overflow="auto" type="content"/>
|
<iframe id="zotero-csl-preview-box" flex="1" style="padding: 0 1em; background:white;" overflow="auto" type="content"/>
|
||||||
</vbox>
|
</vbox>
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,6 @@ Zotero.Attachments = new function(){
|
||||||
this.linkFromFile = linkFromFile;
|
this.linkFromFile = linkFromFile;
|
||||||
this.importSnapshotFromFile = importSnapshotFromFile;
|
this.importSnapshotFromFile = importSnapshotFromFile;
|
||||||
this.importFromURL = importFromURL;
|
this.importFromURL = importFromURL;
|
||||||
this.linkFromURL = linkFromURL;
|
|
||||||
this.linkFromDocument = linkFromDocument;
|
this.linkFromDocument = linkFromDocument;
|
||||||
this.importFromDocument = importFromDocument;
|
this.importFromDocument = importFromDocument;
|
||||||
this.createMissingAttachment = createMissingAttachment;
|
this.createMissingAttachment = createMissingAttachment;
|
||||||
|
@ -399,38 +398,68 @@ Zotero.Attachments = new function(){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
this.cleanAttachmentURI = function (uri, tryHttp) {
|
||||||
|
uri = uri.trim();
|
||||||
|
if (!uri) return false;
|
||||||
|
|
||||||
|
var ios = Components.classes["@mozilla.org/network/io-service;1"]
|
||||||
|
.getService(Components.interfaces.nsIIOService);
|
||||||
|
try {
|
||||||
|
return ios.newURI(uri, null, null).spec // Valid URI if succeeds
|
||||||
|
} catch (e) {
|
||||||
|
if (e instanceof Components.Exception
|
||||||
|
&& e.result == Components.results.NS_ERROR_MALFORMED_URI
|
||||||
|
) {
|
||||||
|
if (tryHttp && /\w\.\w/.test(uri)) {
|
||||||
|
// Assume it's a URL missing "http://" part
|
||||||
|
try {
|
||||||
|
return ios.newURI('http://' + uri, null, null).spec;
|
||||||
|
} catch (e) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
Zotero.debug('cleanAttachmentURI: Invalid URI: ' + uri, 2);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a link attachment from a URL
|
* Create a link attachment from a URL
|
||||||
*
|
*
|
||||||
* @param {String} url
|
* @param {String} url Validated URI
|
||||||
* @param {Integer} sourceItemID Parent item
|
* @param {Integer} sourceItemID Parent item
|
||||||
* @param {String} [mimeType] MIME type of page
|
* @param {String} [mimeType] MIME type of page
|
||||||
* @param {String} [title] Title to use for attachment
|
* @param {String} [title] Title to use for attachment
|
||||||
*/
|
*/
|
||||||
function linkFromURL(url, sourceItemID, mimeType, title){
|
this.linkFromURL = function (url, sourceItemID, mimeType, title) {
|
||||||
Zotero.debug('Linking attachment from URL');
|
Zotero.debug('Linking attachment from ' + url);
|
||||||
|
|
||||||
/* Throw error on invalid URLs
|
|
||||||
We currently accept the following protocols:
|
|
||||||
PersonalBrain (brain://)
|
|
||||||
DevonThink (x-devonthink-item://)
|
|
||||||
Notational Velocity (nv://)
|
|
||||||
MyLife Organized (mlo://)
|
|
||||||
Evernote (evernote://)
|
|
||||||
OneNote (onenote://)
|
|
||||||
Kindle (kindle://)
|
|
||||||
Logos (logosres:)
|
|
||||||
Zotero (zotero://) */
|
|
||||||
|
|
||||||
var urlRe = /^((https?|zotero|evernote|onenote|brain|nv|mlo|kindle|x-devonthink-item|ftp):\/\/|logosres:)[^\s]*$/;
|
|
||||||
var matches = urlRe.exec(url);
|
|
||||||
if (!matches) {
|
|
||||||
throw ("Invalid URL '" + url + "' in Zotero.Attachments.linkFromURL()");
|
|
||||||
}
|
|
||||||
|
|
||||||
// If no title provided, figure it out from the URL
|
// If no title provided, figure it out from the URL
|
||||||
|
// Web addresses with paths will be whittled to the last element
|
||||||
|
// excluding references and queries. All others are the full string
|
||||||
if (!title) {
|
if (!title) {
|
||||||
title = url.substring(url.lastIndexOf('/')+1);
|
var ioService = Components.classes["@mozilla.org/network/io-service;1"]
|
||||||
|
.getService(Components.interfaces.nsIIOService);
|
||||||
|
var titleURL = ioService.newURI(url, null, null);
|
||||||
|
|
||||||
|
if (titleURL.scheme == 'http' || titleURL.scheme == 'https') {
|
||||||
|
titleURL = titleURL.QueryInterface(Components.interfaces.nsIURL);
|
||||||
|
if (titleURL.path == '/') {
|
||||||
|
title = titleURL.host;
|
||||||
|
}
|
||||||
|
else if (titleURL.fileName) {
|
||||||
|
title = titleURL.fileName;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var dir = titleURL.directory.split('/');
|
||||||
|
title = dir[dir.length - 2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
title = url;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Override MIME type to application/pdf if extension is .pdf --
|
// Override MIME type to application/pdf if extension is .pdf --
|
||||||
|
@ -446,7 +475,6 @@ Zotero.Attachments = new function(){
|
||||||
return itemID;
|
return itemID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TODO: what if called on file:// document?
|
// TODO: what if called on file:// document?
|
||||||
function linkFromDocument(document, sourceItemID, parentCollectionIDs){
|
function linkFromDocument(document, sourceItemID, parentCollectionIDs){
|
||||||
Zotero.debug('Linking attachment from document');
|
Zotero.debug('Linking attachment from document');
|
||||||
|
@ -1046,6 +1074,11 @@ Zotero.Attachments = new function(){
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!baseDir.exists()) {
|
||||||
|
Zotero.debug("Base directory '" + baseDir.path + "' doesn't exist", 2);
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
// Get nsIFile for file
|
// Get nsIFile for file
|
||||||
var attachmentFile = Components.classes["@mozilla.org/file/local;1"]
|
var attachmentFile = Components.classes["@mozilla.org/file/local;1"]
|
||||||
.createInstance(Components.interfaces.nsILocalFile);
|
.createInstance(Components.interfaces.nsILocalFile);
|
||||||
|
|
|
@ -71,8 +71,7 @@ Zotero.Cite = {
|
||||||
* @param {String} format The format of the output (html, text, or rtf)
|
* @param {String} format The format of the output (html, text, or rtf)
|
||||||
* @return {String} Bibliography or item list in specified format
|
* @return {String} Bibliography or item list in specified format
|
||||||
*/
|
*/
|
||||||
"makeFormattedBibliographyOrCitationList":function(style, items, format, asCitationList) {
|
"makeFormattedBibliographyOrCitationList":function(cslEngine, items, format, asCitationList) {
|
||||||
var cslEngine = style.getCiteProc();
|
|
||||||
cslEngine.setOutputFormat(format);
|
cslEngine.setOutputFormat(format);
|
||||||
cslEngine.updateItems([item.id for each(item in items)]);
|
cslEngine.updateItems([item.id for each(item in items)]);
|
||||||
|
|
||||||
|
@ -81,7 +80,7 @@ Zotero.Cite = {
|
||||||
if(bibliography) return bibliography;
|
if(bibliography) return bibliography;
|
||||||
}
|
}
|
||||||
|
|
||||||
var styleClass = style.class;
|
var styleClass = cslEngine.opt.class;
|
||||||
var citations = [cslEngine.appendCitationCluster({"citationItems":[{"id":item.id}], "properties":{}}, true)[0][1]
|
var citations = [cslEngine.appendCitationCluster({"citationItems":[{"id":item.id}], "properties":{}}, true)[0][1]
|
||||||
for each(item in items)];
|
for each(item in items)];
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ if (!Array.indexOf) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
var CSL = {
|
var CSL = {
|
||||||
PROCESSOR_VERSION: "1.0.539",
|
PROCESSOR_VERSION: "1.0.543",
|
||||||
CONDITION_LEVEL_TOP: 1,
|
CONDITION_LEVEL_TOP: 1,
|
||||||
CONDITION_LEVEL_BOTTOM: 2,
|
CONDITION_LEVEL_BOTTOM: 2,
|
||||||
PLAIN_HYPHEN_REGEX: /(?:[^\\]-|\u2013)/,
|
PLAIN_HYPHEN_REGEX: /(?:[^\\]-|\u2013)/,
|
||||||
|
@ -2595,6 +2595,9 @@ CSL.Engine.prototype.setAbbreviations = function (arg) {
|
||||||
this.sys.setAbbreviations(arg);
|
this.sys.setAbbreviations(arg);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
CSL.Engine.prototype.setSuppressTrailingPunctuation = function (arg) {
|
||||||
|
this.citation.opt.suppressTrailingPunctuation = !!arg;
|
||||||
|
};
|
||||||
CSL.Output = {};
|
CSL.Output = {};
|
||||||
CSL.Output.Queue = function (state) {
|
CSL.Output.Queue = function (state) {
|
||||||
this.levelname = ["top"];
|
this.levelname = ["top"];
|
||||||
|
@ -3209,19 +3212,30 @@ CSL.Output.Queue.adjust = function (punctInQuote) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
function matchLastChar(blob, chr) {
|
function matchLastChar(blob, chr) {
|
||||||
if (blob.strings.suffix.slice(0, 1) === chr) {
|
if (!PUNCT[chr]) {
|
||||||
return true;
|
return false;
|
||||||
} else if ("string" === typeof blob.blobs) {
|
}
|
||||||
|
if ("string" === typeof blob.blobs) {
|
||||||
if (blob.blobs.slice(-1) === chr) {
|
if (blob.blobs.slice(-1) === chr) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
for (var i=0,ilen=blob.blobs.length;i<ilen;i++) {
|
var child = blob.blobs[blob.blobs.length-1];
|
||||||
if (matchLastChar(blob.blobs[i])) return true;
|
if (child) {
|
||||||
}
|
var childChar = child.strings.suffix.slice(-1);
|
||||||
|
if (!childChar) {
|
||||||
|
return matchLastChar(child,chr);
|
||||||
|
} else if (child.strings.suffix.slice(-1) == chr) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
function mergeChars (First, first, Second, second, merge_right) {
|
function mergeChars (First, first, Second, second, merge_right) {
|
||||||
FirstStrings = "blobs" === first ? First : First.strings;
|
FirstStrings = "blobs" === first ? First : First.strings;
|
||||||
|
@ -3282,7 +3296,13 @@ CSL.Output.Queue.adjust = function (punctInQuote) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
function upward (parent) {
|
function upward (parent) {
|
||||||
if ("object" !== typeof parent || "object" !== typeof parent.blobs || !parent.blobs.length) {
|
if (parent.blobs && "string" == typeof parent.blobs) {
|
||||||
|
if (PUNCT[parent.strings.suffix.slice(0,1)]
|
||||||
|
&& parent.strings.suffix.slice(0,1) === parent.blobs.slice(-1)) {
|
||||||
|
parent.strings.suffix = parent.strings.suffix.slice(1);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
} else if ("object" !== typeof parent || "object" !== typeof parent.blobs || !parent.blobs.length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var parentDecorations = blobHasDecorations(parent,true);
|
var parentDecorations = blobHasDecorations(parent,true);
|
||||||
|
@ -3343,8 +3363,14 @@ CSL.Output.Queue.adjust = function (punctInQuote) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
function downward (parent) {
|
function downward (parent, top) {
|
||||||
if ("object" !== typeof parent || "object" !== typeof parent.blobs || !parent.blobs.length) {
|
if (parent.blobs && "string" == typeof parent.blobs) {
|
||||||
|
if (PUNCT[parent.strings.suffix.slice(0,1)]
|
||||||
|
&& parent.strings.suffix.slice(0,1) === parent.blobs.slice(-1)) {
|
||||||
|
parent.strings.suffix = parent.strings.suffix.slice(1);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
} else if ("object" !== typeof parent || "object" !== typeof parent.blobs || !parent.blobs.length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var parentStrings = parent.strings;
|
var parentStrings = parent.strings;
|
||||||
|
@ -3379,25 +3405,28 @@ CSL.Output.Queue.adjust = function (punctInQuote) {
|
||||||
if (PUNCT[parentChar]) {
|
if (PUNCT[parentChar]) {
|
||||||
if (!blobEndsInNumber(child)) {
|
if (!blobEndsInNumber(child)) {
|
||||||
mergeChars(child, 'suffix', parent, 'suffix');
|
mergeChars(child, 'suffix', parent, 'suffix');
|
||||||
|
if (parentStrings.suffix.slice(0,1) === ".") {
|
||||||
|
childStrings.suffix += parentStrings.suffix.slice(0,1);
|
||||||
|
parentStrings.suffix = parentStrings.suffix.slice(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (childStrings.suffix.slice(-1) === " " && parentStrings.suffix.slice(0,1)) {
|
if (childStrings.suffix.slice(-1) === " " && parentStrings.suffix.slice(0,1)) {
|
||||||
parentStrings.suffix = parentStrings.suffix.slice(1);
|
parentStrings.suffix = parentStrings.suffix.slice(1);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if (matchLastChar(child,parent.strings.suffix.slice(0,1))) {
|
|
||||||
parent.strings.suffix = parent.strings.suffix.slice(1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (PUNCT_OR_SPACE[childStrings.suffix.slice(0,1)]) {
|
if (PUNCT_OR_SPACE[childStrings.suffix.slice(0,1)]) {
|
||||||
if ("string" === typeof child.blobs && child.blobs.slice(-1) === childStrings.suffix.slice(0,1)) {
|
if ("string" === typeof child.blobs && child.blobs.slice(-1) === childStrings.suffix.slice(0,1)) {
|
||||||
childStrings.suffix = childStrings.suffix.slice(1);
|
childStrings.suffix = childStrings.suffix.slice(1);
|
||||||
}
|
}
|
||||||
if (childStrings.suffix.slice(-1) === parentStrings.suffix.slice(0, 1)) {
|
if (childStrings.suffix.slice(-1) === parentStrings.suffix.slice(0, 1)) {
|
||||||
childStrings.suffix = childStrings.suffix.slice(0, -1);
|
parentStrings.suffix = parentStrings.suffix.slice(0, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (matchLastChar(parent,parent.strings.suffix.slice(0,1))) {
|
||||||
|
parent.strings.suffix = parent.strings.suffix.slice(1);
|
||||||
|
}
|
||||||
} else if (parentStrings.delimiter) {
|
} else if (parentStrings.delimiter) {
|
||||||
if (PUNCT_OR_SPACE[parentStrings.delimiter.slice(0,1)]
|
if (PUNCT_OR_SPACE[parentStrings.delimiter.slice(0,1)]
|
||||||
&& parentStrings.delimiter.slice(0, 1) === childStrings.suffix.slice(-1)) {
|
&& parentStrings.delimiter.slice(0, 1) === childStrings.suffix.slice(-1)) {
|
||||||
|
@ -4198,7 +4227,7 @@ CSL.Engine.prototype.processCitationCluster = function (citation, citationsPre,
|
||||||
this.tmp.citation_id = "" + citation.citationID;
|
this.tmp.citation_id = "" + citation.citationID;
|
||||||
obj = [];
|
obj = [];
|
||||||
obj.push(citationsPre.length);
|
obj.push(citationsPre.length);
|
||||||
obj.push(this.process_CitationCluster.call(this, sortedItems));
|
obj.push(this.process_CitationCluster.call(this, sortedItems, citation.citationID));
|
||||||
ret.push(obj);
|
ret.push(obj);
|
||||||
ret.sort(function (a, b) {
|
ret.sort(function (a, b) {
|
||||||
if (a[0] > b[0]) {
|
if (a[0] > b[0]) {
|
||||||
|
@ -4329,9 +4358,14 @@ CSL.getCitationCluster = function (inputList, citationID) {
|
||||||
this.tmp.last_years_used = [];
|
this.tmp.last_years_used = [];
|
||||||
this.tmp.backref_index = [];
|
this.tmp.backref_index = [];
|
||||||
this.tmp.cite_locales = [];
|
this.tmp.cite_locales = [];
|
||||||
|
var suppressTrailingPunctuation = false;
|
||||||
|
if (this.opt.xclass === "note" && this.citation.opt.suppressTrailingPunctuation) {
|
||||||
|
suppressTrailingPunctuation = true;
|
||||||
|
}
|
||||||
if (citationID) {
|
if (citationID) {
|
||||||
this.registry.citationreg.citationById[citationID].properties.backref_index = false;
|
if (this.registry.citationreg.citationById[citationID].properties["suppress-trailing-punctuation"]) {
|
||||||
this.registry.citationreg.citationById[citationID].properties.backref_citation = false;
|
suppressTrailingPunctuation = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (this.opt.xclass === "note") {
|
if (this.opt.xclass === "note") {
|
||||||
var parasets = [];
|
var parasets = [];
|
||||||
|
@ -4460,7 +4494,9 @@ CSL.getCitationCluster = function (inputList, citationID) {
|
||||||
&& this.sys.wrapCitationEntry
|
&& this.sys.wrapCitationEntry
|
||||||
&& !this.tmp.just_looking
|
&& !this.tmp.just_looking
|
||||||
&& this.tmp.area === "citation")) {
|
&& this.tmp.area === "citation")) {
|
||||||
|
if (!suppressTrailingPunctuation) {
|
||||||
this.output.queue[this.output.queue.length - 1].strings.suffix = use_layout_suffix;
|
this.output.queue[this.output.queue.length - 1].strings.suffix = use_layout_suffix;
|
||||||
|
}
|
||||||
this.output.queue[0].strings.prefix = this.citation.opt.layout_prefix;
|
this.output.queue[0].strings.prefix = this.citation.opt.layout_prefix;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4933,7 +4969,7 @@ CSL.getBibliographyEntries = function (bibsection) {
|
||||||
for (var j=0,jlen=this.output.queue.length;j<jlen;j+=1) {
|
for (var j=0,jlen=this.output.queue.length;j<jlen;j+=1) {
|
||||||
this.output.adjust.upward(this.output.queue[j]);
|
this.output.adjust.upward(this.output.queue[j]);
|
||||||
this.output.adjust.leftward(this.output.queue[j]);
|
this.output.adjust.leftward(this.output.queue[j]);
|
||||||
this.output.adjust.downward(this.output.queue[j]);
|
this.output.adjust.downward(this.output.queue[j],true);
|
||||||
this.output.adjust.fix(this.output.queue[j]);
|
this.output.adjust.fix(this.output.queue[j]);
|
||||||
}
|
}
|
||||||
res = this.output.string(this, this.output.queue)[0];
|
res = this.output.string(this, this.output.queue)[0];
|
||||||
|
@ -6408,15 +6444,17 @@ CSL.Node.layout = {
|
||||||
var sp;
|
var sp;
|
||||||
if (item && item.prefix) {
|
if (item && item.prefix) {
|
||||||
sp = "";
|
sp = "";
|
||||||
var test_prefix = item.prefix.replace(/<[^>]+>/g, "").replace(/["'\u201d\u2019]/g,"").replace(/\s+$/, "").replace(/^[.\s]+/, "");
|
var test_prefix = item.prefix.replace(/<[^>]+>/g, "").replace(/["'\u201d\u2019\u00bb\u202f\u00a0 ]+$/g,"");
|
||||||
|
var test_char = test_prefix.slice(-1);
|
||||||
if (test_prefix.match(CSL.ENDSWITH_ROMANESQUE_REGEXP)) {
|
if (test_prefix.match(CSL.ENDSWITH_ROMANESQUE_REGEXP)) {
|
||||||
sp = " ";
|
sp = " ";
|
||||||
} else if (CSL.TERMINAL_PUNCTUATION.slice(0,-1).indexOf(test_prefix.slice(-1))) {
|
} else if (CSL.TERMINAL_PUNCTUATION.slice(0,-1).indexOf(test_char) > -1) {
|
||||||
|
sp = " ";
|
||||||
|
} else if (test_char.match(/[\)\],0-9]/)) {
|
||||||
sp = " ";
|
sp = " ";
|
||||||
}
|
}
|
||||||
var ignorePredecessor = false;
|
var ignorePredecessor = false;
|
||||||
if (CSL.TERMINAL_PUNCTUATION.slice(0,-1).indexOf(test_prefix.slice(-1)) > -1
|
if (CSL.TERMINAL_PUNCTUATION.slice(0,-1).indexOf(test_char) > -1) {
|
||||||
&& test_prefix.slice(0, 1) != test_prefix.slice(0, 1).toLowerCase()) {
|
|
||||||
state.tmp.term_predecessor = false;
|
state.tmp.term_predecessor = false;
|
||||||
ignorePredecessor = true;
|
ignorePredecessor = true;
|
||||||
}
|
}
|
||||||
|
@ -7214,6 +7252,10 @@ CSL.NameOutput.prototype.setCommonTerm = function () {
|
||||||
}
|
}
|
||||||
freeters_offset += 1;
|
freeters_offset += 1;
|
||||||
}
|
}
|
||||||
|
if (this.persons[v].length !== this.persons[vv].length) {
|
||||||
|
this.common_term = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (var j = 0, jlen = this.persons[v].length; j < jlen; j += 1) {
|
for (var j = 0, jlen = this.persons[v].length; j < jlen; j += 1) {
|
||||||
if (this.etal_spec[v].persons[j] !== this.etal_spec[vv].persons[j]
|
if (this.etal_spec[v].persons[j] !== this.etal_spec[vv].persons[j]
|
||||||
|| !this._compareNamesets(this.persons[v][j], this.persons[vv][j])) {
|
|| !this._compareNamesets(this.persons[v][j], this.persons[vv][j])) {
|
||||||
|
@ -12654,7 +12696,7 @@ CSL.Util.FlipFlopper.prototype.init = function (str, blob) {
|
||||||
};
|
};
|
||||||
CSL.Util.FlipFlopper.prototype._normalizeString = function (str) {
|
CSL.Util.FlipFlopper.prototype._normalizeString = function (str) {
|
||||||
var i, ilen;
|
var i, ilen;
|
||||||
str = str.replace(/\s+'\s+/," ’ ","g");
|
str = str.replace(/\s+'\s+/g," ’ ");
|
||||||
if (str.indexOf(this.quotechars[0]) > -1) {
|
if (str.indexOf(this.quotechars[0]) > -1) {
|
||||||
for (i = 0, ilen = 2; i < ilen; i += 1) {
|
for (i = 0, ilen = 2; i < ilen; i += 1) {
|
||||||
if (this.quotechars[i + 2]) {
|
if (this.quotechars[i + 2]) {
|
||||||
|
|
|
@ -28,7 +28,11 @@ Zotero.Connector = new function() {
|
||||||
const CONNECTOR_API_VERSION = 2;
|
const CONNECTOR_API_VERSION = 2;
|
||||||
|
|
||||||
var _ieStandaloneIframeTarget, _ieConnectorCallbacks;
|
var _ieStandaloneIframeTarget, _ieConnectorCallbacks;
|
||||||
this.isOnline = null;
|
// As of Chrome 38 (and corresponding Opera version 24?) pages loaded over
|
||||||
|
// https (i.e. the zotero bookmarklet iframe) can not send requests over
|
||||||
|
// http, so pinging Standalone at http://127.0.0.1 fails.
|
||||||
|
// Disable for all browsers, except IE, which may be used frequently with ZSA
|
||||||
|
this.isOnline = Zotero.isBookmarklet && !Zotero.isIE ? false : null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if Zotero is online and passes current status to callback
|
* Checks if Zotero is online and passes current status to callback
|
||||||
|
@ -36,7 +40,10 @@ Zotero.Connector = new function() {
|
||||||
*/
|
*/
|
||||||
this.checkIsOnline = function(callback) {
|
this.checkIsOnline = function(callback) {
|
||||||
// Only check once in bookmarklet
|
// Only check once in bookmarklet
|
||||||
if(Zotero.isBookmarklet && this.isOnline !== null) callback(this.isOnline);
|
if(Zotero.isBookmarklet && this.isOnline !== null) {
|
||||||
|
callback(this.isOnline);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(Zotero.isIE) {
|
if(Zotero.isIE) {
|
||||||
if(window.location.protocol !== "http:") {
|
if(window.location.protocol !== "http:") {
|
||||||
|
@ -233,25 +240,7 @@ Zotero.Connector_Debug = new function() {
|
||||||
* Submit data to the sserver
|
* Submit data to the sserver
|
||||||
*/
|
*/
|
||||||
this.submitReport = function(callback) {
|
this.submitReport = function(callback) {
|
||||||
var uploadCallback = function (xmlhttp) {
|
Zotero.HTTP.doPost(ZOTERO_CONFIG.REPOSITORY_URL + "report?debug=1", Zotero.Debug.get(),
|
||||||
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
|
|
||||||
.getService(Components.interfaces.nsIPromptService);
|
|
||||||
|
|
||||||
if (!xmlhttp.responseXML) {
|
|
||||||
callback(false, 'Invalid response from server');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var reported = xmlhttp.responseXML.getElementsByTagName('reported');
|
|
||||||
if (reported.length != 1) {
|
|
||||||
callback(false, 'The server returned an error. Please try again.');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var reportID = reported[0].getAttribute('reportID');
|
|
||||||
callback(true, reportID);
|
|
||||||
}
|
|
||||||
|
|
||||||
Zotero.HTTP.doPost("http://www.zotero.org/repo/report?debug=1", Zotero.Debug.get(),
|
|
||||||
function(xmlhttp) {
|
function(xmlhttp) {
|
||||||
if (!xmlhttp.responseXML) {
|
if (!xmlhttp.responseXML) {
|
||||||
callback(false, 'Invalid response from server');
|
callback(false, 'Invalid response from server');
|
||||||
|
|
|
@ -66,7 +66,7 @@ Zotero.Repo = new function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// then try repo
|
// then try repo
|
||||||
Zotero.HTTP.doGet(ZOTERO_CONFIG.REPOSITORY_URL+"/code/"+translatorID+"?version="+Zotero.version,
|
Zotero.HTTP.doGet(ZOTERO_CONFIG.REPOSITORY_URL + "code/" + translatorID + "?version=" + Zotero.version,
|
||||||
function(xmlhttp) {
|
function(xmlhttp) {
|
||||||
_haveCode(xmlhttp.status === 200 ? xmlhttp.responseText : false, translatorID,
|
_haveCode(xmlhttp.status === 200 ? xmlhttp.responseText : false, translatorID,
|
||||||
Zotero.Repo.SOURCE_REPO, callback);
|
Zotero.Repo.SOURCE_REPO, callback);
|
||||||
|
@ -137,7 +137,7 @@ Zotero.Repo = new function() {
|
||||||
* Retrieve metadata from repository
|
* Retrieve metadata from repository
|
||||||
*/
|
*/
|
||||||
function _updateFromRepo(reset, callback) {
|
function _updateFromRepo(reset, callback) {
|
||||||
var url = ZOTERO_CONFIG.REPOSITORY_URL+"/metadata?version="+Zotero.version+"&last="+
|
var url = ZOTERO_CONFIG.REPOSITORY_URL + "metadata?version=" + Zotero.version + "&last="+
|
||||||
(reset ? "0" : Zotero.Prefs.get("connector.repo.lastCheck.repoTime"));
|
(reset ? "0" : Zotero.Prefs.get("connector.repo.lastCheck.repoTime"));
|
||||||
|
|
||||||
Zotero.HTTP.doGet(url, function(xmlhttp) {
|
Zotero.HTTP.doGet(url, function(xmlhttp) {
|
||||||
|
|
|
@ -196,7 +196,7 @@ Zotero.Translate.ItemSaver.prototype = {
|
||||||
Zotero.API.createItem({"items":newItems}, function(statusCode, response) {
|
Zotero.API.createItem({"items":newItems}, function(statusCode, response) {
|
||||||
if(statusCode !== 200) {
|
if(statusCode !== 200) {
|
||||||
callback(false, new Error("Save to server failed with "+statusCode+" "+response));
|
callback(false, new Error("Save to server failed with "+statusCode+" "+response));
|
||||||
retrun;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -113,7 +113,7 @@ Zotero.Collection.prototype._set = function (field, val) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'name':
|
case 'name':
|
||||||
val = Zotero.Utilities.trim(val);
|
val = Zotero.Utilities.trim(val).normalize();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,7 @@ Zotero.Creator.prototype._set = function (field, val) {
|
||||||
case 'lastName':
|
case 'lastName':
|
||||||
case 'shortName':
|
case 'shortName':
|
||||||
if (val) {
|
if (val) {
|
||||||
val = Zotero.Utilities.trim(val);
|
val = Zotero.Utilities.trim(val).normalize();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val = '';
|
val = '';
|
||||||
|
|
|
@ -691,7 +691,7 @@ Zotero.Item.prototype.inCollection = function(collectionID) {
|
||||||
*/
|
*/
|
||||||
Zotero.Item.prototype.setField = function(field, value, loadIn) {
|
Zotero.Item.prototype.setField = function(field, value, loadIn) {
|
||||||
if (typeof value == 'string') {
|
if (typeof value == 'string') {
|
||||||
value = value.trim();
|
value = value.trim().normalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
this._disabledCheck();
|
this._disabledCheck();
|
||||||
|
@ -877,11 +877,12 @@ Zotero.Item.prototype.getDisplayTitle = function (includeAuthorAndDate) {
|
||||||
var itemTypeName = Zotero.ItemTypes.getName(itemTypeID);
|
var itemTypeName = Zotero.ItemTypes.getName(itemTypeID);
|
||||||
|
|
||||||
if (!title && (itemTypeID == 8 || itemTypeID == 10)) { // 'letter' and 'interview' itemTypeIDs
|
if (!title && (itemTypeID == 8 || itemTypeID == 10)) { // 'letter' and 'interview' itemTypeIDs
|
||||||
var creators = this.getCreators();
|
let creators = this.getCreators();
|
||||||
var authors = [];
|
let authors = [];
|
||||||
var participants = [];
|
let participants = [];
|
||||||
if (creators) {
|
if (creators) {
|
||||||
for each(var creator in creators) {
|
for (let i=0; i<creators.length; i++) {
|
||||||
|
let creator = creators[i];
|
||||||
if ((itemTypeID == 8 && creator.creatorTypeID == 16) || // 'letter'/'recipient'
|
if ((itemTypeID == 8 && creator.creatorTypeID == 16) || // 'letter'/'recipient'
|
||||||
(itemTypeID == 10 && creator.creatorTypeID == 7)) { // 'interview'/'interviewer'
|
(itemTypeID == 10 && creator.creatorTypeID == 7)) { // 'interview'/'interviewer'
|
||||||
participants.push(creator);
|
participants.push(creator);
|
||||||
|
@ -896,9 +897,9 @@ Zotero.Item.prototype.getDisplayTitle = function (includeAuthorAndDate) {
|
||||||
var strParts = [];
|
var strParts = [];
|
||||||
|
|
||||||
if (includeAuthorAndDate) {
|
if (includeAuthorAndDate) {
|
||||||
var names = [];
|
let names = [];
|
||||||
for each(author in authors) {
|
for (let i=0; i<authors.length; i++) {
|
||||||
names.push(author.ref.lastName);
|
names.push(authors[i].ref.lastName);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Use same logic as getFirstCreatorSQL() (including "et al.")
|
// TODO: Use same logic as getFirstCreatorSQL() (including "et al.")
|
||||||
|
@ -908,9 +909,10 @@ Zotero.Item.prototype.getDisplayTitle = function (includeAuthorAndDate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (participants.length > 0) {
|
if (participants.length > 0) {
|
||||||
var names = [];
|
let names = [];
|
||||||
for each(participant in participants) {
|
let max = Math.min(4, participants.length);
|
||||||
names.push(participant.ref.lastName);
|
for (let i=0; i<max; i++) {
|
||||||
|
names.push(participants[i].ref.lastName);
|
||||||
}
|
}
|
||||||
switch (names.length) {
|
switch (names.length) {
|
||||||
case 1:
|
case 1:
|
||||||
|
|
|
@ -98,7 +98,7 @@ Zotero.Tag.prototype._set = function (field, val) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'name':
|
case 'name':
|
||||||
val = Zotero.Utilities.trim(val);
|
val = Zotero.Utilities.trim(val).normalize();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,23 +46,6 @@ Zotero.Debug = new function () {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Properly display thrown Error objects
|
|
||||||
if (message && message.constructor) {
|
|
||||||
switch (message.constructor.name) {
|
|
||||||
case 'Error':
|
|
||||||
case 'EvalError':
|
|
||||||
case 'RangeError':
|
|
||||||
case 'ReferenceError':
|
|
||||||
case 'SyntaxError':
|
|
||||||
case 'TypeError':
|
|
||||||
case 'URIError':
|
|
||||||
message = "'message' => \"" + message.message + "\"\n"
|
|
||||||
+ Zotero.Utilities.varDump(message) + "\n"
|
|
||||||
+ message.stack;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof message != 'string') {
|
if (typeof message != 'string') {
|
||||||
message = Zotero.Utilities.varDump(message);
|
message = Zotero.Utilities.varDump(message);
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,7 +170,9 @@ Zotero.Duplicates.prototype._findDuplicates = function () {
|
||||||
}
|
}
|
||||||
// If no comparison function, check for exact match
|
// If no comparison function, check for exact match
|
||||||
else {
|
else {
|
||||||
if (rows[i].value !== rows[j].value) {
|
if (!rows[i].value || !rows[j].value
|
||||||
|
|| (rows[i].value !== rows[j].value)
|
||||||
|
) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -205,8 +207,8 @@ Zotero.Duplicates.prototype._findDuplicates = function () {
|
||||||
var isbnCache = {};
|
var isbnCache = {};
|
||||||
if (rows) {
|
if (rows) {
|
||||||
for each(var row in rows) {
|
for each(var row in rows) {
|
||||||
row.value = (row.value+'').replace(/[^\dX]+/ig, '').toUpperCase(); //ignore formatting
|
row.value = Zotero.Utilities.cleanISBN('' + row.value);
|
||||||
isbnCache[row.itemID] = row.value;
|
if (row.value) isbnCache[row.itemID] = row.value;
|
||||||
}
|
}
|
||||||
rows.sort(sortByValue);
|
rows.sort(sortByValue);
|
||||||
processRows();
|
processRows();
|
||||||
|
|
|
@ -372,6 +372,115 @@ Zotero.File = new function(){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
this.createShortened = function (file, type, mode, maxBytes) {
|
||||||
|
if (!maxBytes) {
|
||||||
|
maxBytes = 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Limit should be 255, but leave room for unique numbering if necessary
|
||||||
|
var padding = 3;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
var newLength = maxBytes - padding;
|
||||||
|
|
||||||
|
try {
|
||||||
|
file.create(type, mode);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
let pathError = false;
|
||||||
|
|
||||||
|
let pathByteLength = Zotero.Utilities.Internal.byteLength(file.path);
|
||||||
|
let fileNameByteLength = Zotero.Utilities.Internal.byteLength(file.leafName);
|
||||||
|
|
||||||
|
// Windows API only allows paths of 260 characters
|
||||||
|
//
|
||||||
|
// I think this should be >260 but we had a report of an error with exactly
|
||||||
|
// 260 chars: https://forums.zotero.org/discussion/41410
|
||||||
|
if (e.name == "NS_ERROR_FILE_NOT_FOUND" && pathByteLength >= 260) {
|
||||||
|
Zotero.debug("Path is " + file.path);
|
||||||
|
pathError = true;
|
||||||
|
}
|
||||||
|
// ext3/ext4/HFS+ have a filename length limit of ~254 bytes
|
||||||
|
else if ((e.name == "NS_ERROR_FAILURE" || e.name == "NS_ERROR_FILE_NAME_TOO_LONG")
|
||||||
|
&& (fileNameByteLength >= 254 || (Zotero.isLinux && fileNameByteLength > 143))) {
|
||||||
|
Zotero.debug("Filename is '" + file.leafName + "'");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Zotero.debug("Path is " + file.path);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Preserve extension
|
||||||
|
var matches = file.leafName.match(/.+(\.[a-z0-9]{0,20})$/i);
|
||||||
|
var ext = matches ? matches[1] : "";
|
||||||
|
|
||||||
|
if (pathError) {
|
||||||
|
let pathLength = pathByteLength - fileNameByteLength;
|
||||||
|
newLength -= pathLength;
|
||||||
|
|
||||||
|
// Make sure there's a least 1 character of the basename left over
|
||||||
|
if (newLength - ext.length < 1) {
|
||||||
|
throw new Error("Path is too long");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Shorten the filename
|
||||||
|
//
|
||||||
|
// Shortened file could already exist if there was another file with a
|
||||||
|
// similar name that was also longer than the limit, so we do this in a
|
||||||
|
// loop, adding numbers if necessary
|
||||||
|
var uniqueFile = file.clone();
|
||||||
|
var step = 0;
|
||||||
|
while (step < 100) {
|
||||||
|
let newBaseName = uniqueFile.leafName.substr(0, newLength - ext.length);
|
||||||
|
if (step == 0) {
|
||||||
|
var newName = newBaseName + ext;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var newName = newBaseName + "-" + step + ext;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check actual byte length, and shorten more if necessary
|
||||||
|
if (Zotero.Utilities.Internal.byteLength(newName) > maxBytes) {
|
||||||
|
step = 0;
|
||||||
|
newLength--;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
uniqueFile.leafName = newName;
|
||||||
|
if (!uniqueFile.exists()) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
step++;
|
||||||
|
}
|
||||||
|
|
||||||
|
var msg = "Shortening filename to '" + newName + "'";
|
||||||
|
Zotero.debug(msg, 2);
|
||||||
|
Zotero.log(msg, 'warning');
|
||||||
|
|
||||||
|
try {
|
||||||
|
uniqueFile.create(Components.interfaces.nsIFile.type, mode);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
// On Linux, try 143, which is the max filename length with eCryptfs
|
||||||
|
if (e.name == "NS_ERROR_FILE_NAME_TOO_LONG" && Zotero.isLinux && uniqueFile.leafName.length > 143) {
|
||||||
|
Zotero.debug("Trying shorter filename in case of filesystem encryption", 2);
|
||||||
|
maxBytes = 143;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
file.leafName = uniqueFile.leafName;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
this.copyToUnique = function (file, newFile) {
|
this.copyToUnique = function (file, newFile) {
|
||||||
newFile.createUnique(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0644);
|
newFile.createUnique(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0644);
|
||||||
var newName = newFile.leafName;
|
var newName = newFile.leafName;
|
||||||
|
@ -607,10 +716,13 @@ Zotero.File = new function(){
|
||||||
var opWord = Zotero.getString('file.accessError.updated');
|
var opWord = Zotero.getString('file.accessError.updated');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Zotero.debug(file.path);
|
||||||
|
Zotero.debug(e, 1);
|
||||||
|
Components.utils.reportError(e);
|
||||||
|
|
||||||
if (e.name == 'NS_ERROR_FILE_ACCESS_DENIED' || e.name == 'NS_ERROR_FILE_IS_LOCKED'
|
if (e.name == 'NS_ERROR_FILE_ACCESS_DENIED' || e.name == 'NS_ERROR_FILE_IS_LOCKED'
|
||||||
// These show up on some Windows systems
|
// These show up on some Windows systems
|
||||||
|| e.name == 'NS_ERROR_FAILURE' || e.name == 'NS_ERROR_FILE_NOT_FOUND') {
|
|| e.name == 'NS_ERROR_FAILURE' || e.name == 'NS_ERROR_FILE_NOT_FOUND') {
|
||||||
Zotero.debug(e);
|
|
||||||
str = str + " " + Zotero.getString('file.accessError.cannotBe') + " " + opWord + ".";
|
str = str + " " + Zotero.getString('file.accessError.cannotBe') + " " + opWord + ".";
|
||||||
var checkFileWindows = Zotero.getString('file.accessError.message.windows');
|
var checkFileWindows = Zotero.getString('file.accessError.message.windows');
|
||||||
var checkFileOther = Zotero.getString('file.accessError.message.other');
|
var checkFileOther = Zotero.getString('file.accessError.message.other');
|
||||||
|
|
|
@ -990,17 +990,11 @@ Zotero.HTTP = new function() {
|
||||||
if(typeof url !== "object") {
|
if(typeof url !== "object") {
|
||||||
url = Services.io.newURI(url, null, null).QueryInterface(Components.interfaces.nsIURL);
|
url = Services.io.newURI(url, null, null).QueryInterface(Components.interfaces.nsIURL);
|
||||||
}
|
}
|
||||||
|
|
||||||
var parser = Components.classes["@mozilla.org/xmlextras/domparser;1"]
|
|
||||||
.createInstance(Components.interfaces.nsIDOMParser);
|
|
||||||
var secMan = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
|
|
||||||
.getService(Components.interfaces.nsIScriptSecurityManager);
|
|
||||||
parser.init(secMan.getCodebasePrincipal(url), url, url);
|
|
||||||
return Zotero.Translate.DOMWrapper.wrap(doc, {
|
return Zotero.Translate.DOMWrapper.wrap(doc, {
|
||||||
"documentURI":{ "enumerable":true, "value":url.spec },
|
"documentURI":url.spec,
|
||||||
"URL":{ "enumerable":true, "value":url.spec },
|
"URL":url.spec,
|
||||||
"location":{ "enumerable":true, "value":(new Zotero.HTTP.Location(url)) },
|
"location":new Zotero.HTTP.Location(url),
|
||||||
"defaultView":{ "enumerable":true, "value":(new Zotero.HTTP.Window(url)) }
|
"defaultView":new Zotero.HTTP.Window(url)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -568,10 +568,21 @@ Zotero.ItemTreeView.prototype.notify = function(action, type, ids, extraData)
|
||||||
for (var i=0, len=ids.length; i<len; i++) {
|
for (var i=0, len=ids.length; i<len; i++) {
|
||||||
if (action == 'delete' || action == 'trash' ||
|
if (action == 'delete' || action == 'trash' ||
|
||||||
!itemGroup.ref.hasItem(ids[i])) {
|
!itemGroup.ref.hasItem(ids[i])) {
|
||||||
|
let row = this._itemRowMap[ids[i]];
|
||||||
|
|
||||||
// Row might already be gone (e.g. if this is a child and
|
// Row might already be gone (e.g. if this is a child and
|
||||||
// 'modify' was sent to parent)
|
// 'modify' was sent to parent)
|
||||||
if (this._itemRowMap[ids[i]] != undefined) {
|
if (row == undefined) {
|
||||||
rows.push(this._itemRowMap[ids[i]]);
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
rows.push(row);
|
||||||
|
|
||||||
|
// Remove child items of removed parents
|
||||||
|
if (this.isContainer(row) && this.isContainerOpen(row)) {
|
||||||
|
while (++row < this.rowCount && this.getLevel(row) > 0) {
|
||||||
|
rows.push(row);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1444,22 +1455,47 @@ Zotero.ItemTreeView.prototype.sort = function(itemID)
|
||||||
|
|
||||||
var firstCreatorSortCache = {};
|
var firstCreatorSortCache = {};
|
||||||
|
|
||||||
|
// Regexp to extract the whole string up to an optional "and" or "et al."
|
||||||
|
var andEtAlRegExp = new RegExp(
|
||||||
|
// Extract the beginning of the string in non-greedy mode
|
||||||
|
"^.+?"
|
||||||
|
// up to either the end of the string, "et al." at the end of string
|
||||||
|
+ "(?=(?: " + Zotero.getString('general.etAl').replace('.', '\.') + ")?$"
|
||||||
|
// or ' and '
|
||||||
|
+ "| " + Zotero.getString('general.and') + " "
|
||||||
|
+ ")"
|
||||||
|
);
|
||||||
|
|
||||||
function creatorSort(a, b) {
|
function creatorSort(a, b) {
|
||||||
//
|
//
|
||||||
// Try sorting by first word in firstCreator field, since we already have it
|
// Try sorting by the first name in the firstCreator field, since we already have it
|
||||||
|
//
|
||||||
|
// For sortCreatorAsString mode, just use the whole string
|
||||||
//
|
//
|
||||||
var aItemID = a.id,
|
var aItemID = a.id,
|
||||||
bItemID = b.id,
|
bItemID = b.id,
|
||||||
fieldA = firstCreatorSortCache[aItemID],
|
fieldA = firstCreatorSortCache[aItemID],
|
||||||
fieldB = firstCreatorSortCache[bItemID];
|
fieldB = firstCreatorSortCache[bItemID];
|
||||||
if (fieldA === undefined) {
|
if (fieldA === undefined) {
|
||||||
var matches = Zotero.Items.getSortTitle(a.getField('firstCreator')).match(/^[^\s]+/);
|
let firstCreator = Zotero.Items.getSortTitle(a.getField('firstCreator'));
|
||||||
|
if (sortCreatorAsString) {
|
||||||
|
var fieldA = firstCreator;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var matches = andEtAlRegExp.exec(firstCreator);
|
||||||
var fieldA = matches ? matches[0] : '';
|
var fieldA = matches ? matches[0] : '';
|
||||||
|
}
|
||||||
firstCreatorSortCache[aItemID] = fieldA;
|
firstCreatorSortCache[aItemID] = fieldA;
|
||||||
}
|
}
|
||||||
if (fieldB === undefined) {
|
if (fieldB === undefined) {
|
||||||
var matches = Zotero.Items.getSortTitle(b.getField('firstCreator')).match(/^[^\s]+/);
|
let firstCreator = Zotero.Items.getSortTitle(b.getField('firstCreator'));
|
||||||
|
if (sortCreatorAsString) {
|
||||||
|
var fieldB = firstCreator;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var matches = andEtAlRegExp.exec(firstCreator);
|
||||||
var fieldB = matches ? matches[0] : '';
|
var fieldB = matches ? matches[0] : '';
|
||||||
|
}
|
||||||
firstCreatorSortCache[bItemID] = fieldB;
|
firstCreatorSortCache[bItemID] = fieldB;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1473,7 +1509,7 @@ Zotero.ItemTreeView.prototype.sort = function(itemID)
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// If first word is the same, compare actual creators
|
// If first name is the same, compare actual creators
|
||||||
//
|
//
|
||||||
var aRef = a.ref,
|
var aRef = a.ref,
|
||||||
bRef = b.ref,
|
bRef = b.ref,
|
||||||
|
|
|
@ -395,8 +395,8 @@ Zotero.MIME = new function(){
|
||||||
.getService(Components.interfaces.nsIAppShellService)
|
.getService(Components.interfaces.nsIAppShellService)
|
||||||
.hiddenDOMWindow.navigator.mimeTypes;
|
.hiddenDOMWindow.navigator.mimeTypes;
|
||||||
|
|
||||||
for (var i in types){
|
for (let type of types) {
|
||||||
if (types[i].type && types[i].type == mimeType){
|
if (type.type && type.type == mimeType) {
|
||||||
Zotero.debug('MIME type ' + mimeType + ' can be handled by plugins');
|
Zotero.debug('MIME type ' + mimeType + ' can be handled by plugins');
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -356,8 +356,9 @@ Zotero.QuickCopy = new function() {
|
||||||
var text = csl.previewCitationCluster(citation, [], [], "text");
|
var text = csl.previewCitationCluster(citation, [], [], "text");
|
||||||
} else {
|
} else {
|
||||||
var style = Zotero.Styles.get(format);
|
var style = Zotero.Styles.get(format);
|
||||||
var html = Zotero.Cite.makeFormattedBibliographyOrCitationList(style, items, "html");
|
var cslEngine = style.getCiteProc();
|
||||||
var text = Zotero.Cite.makeFormattedBibliographyOrCitationList(style, items, "text");
|
var html = Zotero.Cite.makeFormattedBibliographyOrCitationList(cslEngine, items, "html");
|
||||||
|
var text = Zotero.Cite.makeFormattedBibliographyOrCitationList(cslEngine, items, "text");
|
||||||
}
|
}
|
||||||
|
|
||||||
return {text:(contentType == "html" ? html : text), html:html};
|
return {text:(contentType == "html" ? html : text), html:html};
|
||||||
|
|
|
@ -964,7 +964,7 @@ Zotero.Schema = new function(){
|
||||||
// Get the last timestamp we got from the server
|
// Get the last timestamp we got from the server
|
||||||
return self.getDBVersion('repository')
|
return self.getDBVersion('repository')
|
||||||
.then(function (lastUpdated) {
|
.then(function (lastUpdated) {
|
||||||
var url = ZOTERO_CONFIG['REPOSITORY_URL'] + '/updated?'
|
var url = ZOTERO_CONFIG.REPOSITORY_URL + '/updated?'
|
||||||
+ (lastUpdated ? 'last=' + lastUpdated + '&' : '')
|
+ (lastUpdated ? 'last=' + lastUpdated + '&' : '')
|
||||||
+ 'version=' + Zotero.version;
|
+ 'version=' + Zotero.version;
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,7 @@ Zotero.Search.prototype._set = function (field, val) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'name':
|
case 'name':
|
||||||
val = Zotero.Utilities.trim(val);
|
val = Zotero.Utilities.trim(val).normalize();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -420,6 +420,8 @@ Zotero.Search.prototype.addCondition = function(condition, operator, value, requ
|
||||||
if (condition == 'quicksearch-titleCreatorYear') {
|
if (condition == 'quicksearch-titleCreatorYear') {
|
||||||
this.addCondition('title', operator, part.text, false);
|
this.addCondition('title', operator, part.text, false);
|
||||||
this.addCondition('publicationTitle', operator, part.text, false);
|
this.addCondition('publicationTitle', operator, part.text, false);
|
||||||
|
this.addCondition('shortTitle', operator, part.text, false);
|
||||||
|
this.addCondition('court', operator, part.text, false);
|
||||||
this.addCondition('year', operator, part.text, false);
|
this.addCondition('year', operator, part.text, false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -481,6 +483,8 @@ Zotero.Search.prototype.addCondition = function(condition, operator, value, requ
|
||||||
|
|
||||||
var [condition, mode] = Zotero.SearchConditions.parseCondition(condition);
|
var [condition, mode] = Zotero.SearchConditions.parseCondition(condition);
|
||||||
|
|
||||||
|
if (typeof value == 'string') value = value.normalize();
|
||||||
|
|
||||||
this._conditions[searchConditionID] = {
|
this._conditions[searchConditionID] = {
|
||||||
id: searchConditionID,
|
id: searchConditionID,
|
||||||
condition: condition,
|
condition: condition,
|
||||||
|
@ -520,6 +524,8 @@ Zotero.Search.prototype.updateCondition = function(searchConditionID, condition,
|
||||||
|
|
||||||
var [condition, mode] = Zotero.SearchConditions.parseCondition(condition);
|
var [condition, mode] = Zotero.SearchConditions.parseCondition(condition);
|
||||||
|
|
||||||
|
if (typeof value == 'string') value = value.normalize();
|
||||||
|
|
||||||
this._conditions[searchConditionID] = {
|
this._conditions[searchConditionID] = {
|
||||||
id: parseInt(searchConditionID),
|
id: parseInt(searchConditionID),
|
||||||
condition: condition,
|
condition: condition,
|
||||||
|
@ -2383,6 +2389,7 @@ Zotero.SearchConditions = new function(){
|
||||||
return Zotero.getString('searchConditions.' + str)
|
return Zotero.getString('searchConditions.' + str)
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
|
Zotero.debug("String not found for searchConditions." + str, 2);
|
||||||
return Zotero.ItemFields.getLocalizedString(null, str);
|
return Zotero.ItemFields.getLocalizedString(null, str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -375,8 +375,8 @@ Zotero.Server.Connector.SaveItem.prototype = {
|
||||||
sendResponseCallback(500);
|
sendResponseCallback(500);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Zotero.logError(items);
|
||||||
sendResponseCallback(500);
|
sendResponseCallback(500);
|
||||||
throw newItems;
|
|
||||||
}
|
}
|
||||||
}, Zotero.Server.Connector.AttachmentProgressManager.onProgress);
|
}, Zotero.Server.Connector.AttachmentProgressManager.onProgress);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1097,7 +1097,7 @@ Zotero.Sync.Storage = new function () {
|
||||||
// If library isn't editable but filename was changed, update
|
// If library isn't editable but filename was changed, update
|
||||||
// database without updating the item's mod time, which would result
|
// database without updating the item's mod time, which would result
|
||||||
// in a library access error
|
// in a library access error
|
||||||
if (!Zotero.Items.editCheck(item)) {
|
if (!Zotero.Items.isEditable(item)) {
|
||||||
Zotero.debug("File renamed without library access -- "
|
Zotero.debug("File renamed without library access -- "
|
||||||
+ "updating itemAttachments path", 3);
|
+ "updating itemAttachments path", 3);
|
||||||
item.relinkAttachmentFile(newFile, true);
|
item.relinkAttachmentFile(newFile, true);
|
||||||
|
@ -1366,80 +1366,51 @@ Zotero.Sync.Storage = new function () {
|
||||||
|
|
||||||
Zotero.debug("Moving download file " + tempFile.leafName + " into attachment directory as '" + fileName + "'");
|
Zotero.debug("Moving download file " + tempFile.leafName + " into attachment directory as '" + fileName + "'");
|
||||||
try {
|
try {
|
||||||
tempFile.moveTo(parentDir, fileName);
|
var destFile = parentDir.clone();
|
||||||
|
destFile.append(fileName);
|
||||||
|
Zotero.File.createShortened(destFile, Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0644);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
var destFile = file.clone();
|
Zotero.File.checkFileAccessError(e, destFile, 'create');
|
||||||
|
|
||||||
var windowsLength = false;
|
|
||||||
var nameLength = false;
|
|
||||||
|
|
||||||
// Windows API only allows paths of 260 characters
|
|
||||||
if (e.name == "NS_ERROR_FILE_NOT_FOUND" && destFile.path.length > 255) {
|
|
||||||
windowsLength = true;
|
|
||||||
}
|
|
||||||
// ext3/ext4/HFS+ have a filename length limit of ~254 bytes
|
|
||||||
//
|
|
||||||
// These filenames will almost always be ASCII ad files,
|
|
||||||
// but allow an extra 10 bytes anyway
|
|
||||||
else if (e.name == "NS_ERROR_FAILURE" && destFile.leafName.length >= 244) {
|
|
||||||
nameLength = true;
|
|
||||||
}
|
|
||||||
// Filesystem encryption (or, more specifically, filename encryption)
|
|
||||||
// can result in a lower limit -- not much we can do about this,
|
|
||||||
// but log a warning and skip the file
|
|
||||||
else if (e.name == "NS_ERROR_FAILURE" && Zotero.isLinux && destFile.leafName.length > 130) {
|
|
||||||
Zotero.debug(e);
|
|
||||||
var msg = Zotero.getString('sync.storage.error.encryptedFilenames', destFile.leafName);
|
|
||||||
Components.utils.reportError(msg);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (windowsLength || nameLength) {
|
if (destFile.leafName != fileName) {
|
||||||
// Preserve extension
|
Zotero.debug("Changed filename '" + fileName + "' to '" + destFile.leafName + "'");
|
||||||
var matches = destFile.leafName.match(/\.[a-z0-9]{0,8}$/);
|
|
||||||
var ext = matches ? matches[0] : "";
|
|
||||||
|
|
||||||
if (windowsLength) {
|
// Abort if Windows path limitation would cause filenames to be overly truncated
|
||||||
var pathLength = destFile.path.length - destFile.leafName.length;
|
if (Zotero.isWin && destFile.leafName.length < 40) {
|
||||||
var newLength = 255 - pathLength;
|
try {
|
||||||
// Require 40 available characters in path -- this is arbitrary,
|
destFile.remove(false);
|
||||||
// but otherwise filenames are going to end up being cut off
|
}
|
||||||
if (newLength < 40) {
|
catch (e) {}
|
||||||
|
// TODO: localize
|
||||||
var msg = "Due to a Windows path length limitation, your Zotero data directory "
|
var msg = "Due to a Windows path length limitation, your Zotero data directory "
|
||||||
+ "is too deep in the filesystem for syncing to work reliably. "
|
+ "is too deep in the filesystem for syncing to work reliably. "
|
||||||
+ "Please relocate your Zotero data to a higher directory.";
|
+ "Please relocate your Zotero data to a higher directory.";
|
||||||
throw (msg);
|
Zotero.debug(msg, 1);
|
||||||
}
|
throw new Error(msg);
|
||||||
}
|
|
||||||
else {
|
|
||||||
var newLength = 254;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shorten file if it's too long -- we don't relink it, but this should
|
|
||||||
// be pretty rare and probably only occurs on extraneous files with
|
|
||||||
// gibberish for filenames
|
|
||||||
var fileName = destFile.leafName.substr(0, newLength - (ext.length + 1)) + ext;
|
|
||||||
var msg = "Shortening filename to '" + fileName + "'";
|
|
||||||
Zotero.debug(msg, 2);
|
|
||||||
Components.utils.reportError(msg);
|
|
||||||
|
|
||||||
tempFile.moveTo(parentDir, fileName);
|
|
||||||
renamed = true;
|
renamed = true;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
Components.utils.reportError(e);
|
try {
|
||||||
var msg = Zotero.getString('sync.storage.error.fileNotCreated', parentDir.leafName + '/' + fileName);
|
tempFile.moveTo(parentDir, destFile.leafName);
|
||||||
throw(msg);
|
|
||||||
}
|
}
|
||||||
|
catch (e) {
|
||||||
|
try {
|
||||||
|
destFile.remove(false);
|
||||||
|
}
|
||||||
|
catch (e) {}
|
||||||
|
|
||||||
|
Zotero.File.checkFileAccessError(e, destFile, 'create');
|
||||||
}
|
}
|
||||||
|
|
||||||
var returnFile = null;
|
var returnFile = null;
|
||||||
// processDownload() needs to know that we're renaming the file
|
// processDownload() needs to know that we're renaming the file
|
||||||
if (renamed) {
|
if (renamed) {
|
||||||
var returnFile = file.clone();
|
returnFile = destFile.clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
return returnFile;
|
return returnFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1569,124 +1540,48 @@ Zotero.Sync.Storage = new function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
destFile.create(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0644);
|
Zotero.File.createShortened(destFile, Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0644);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
Zotero.debug(e, 1);
|
Zotero.debug(e, 1);
|
||||||
|
Components.utils.reportError(e);
|
||||||
|
|
||||||
var windowsLength = false;
|
|
||||||
var nameLength = false;
|
|
||||||
|
|
||||||
// Windows API only allows paths of 260 characters
|
|
||||||
if (e.name == "NS_ERROR_FILE_NOT_FOUND" && destFile.path.length > 255) {
|
|
||||||
Zotero.debug("Path is " + destFile.path);
|
|
||||||
windowsLength = true;
|
|
||||||
}
|
|
||||||
// ext3/ext4/HFS+ have a filename length limit of ~254 bytes
|
|
||||||
//
|
|
||||||
// These filenames will almost always be ASCII ad files,
|
|
||||||
// but allow an extra 10 bytes anyway
|
|
||||||
else if (e.name == "NS_ERROR_FAILURE" && destFile.leafName.length >= 244) {
|
|
||||||
Zotero.debug("Filename is " + destFile.leafName);
|
|
||||||
nameLength = true;
|
|
||||||
}
|
|
||||||
// Filesystem encryption (or, more specifically, filename encryption)
|
|
||||||
// can result in a lower limit -- not much we can do about this,
|
|
||||||
// but log a warning and skip the file
|
|
||||||
else if (e.name == "NS_ERROR_FAILURE" && Zotero.isLinux && destFile.leafName.length > 130) {
|
|
||||||
var msg = Zotero.getString('sync.storage.error.encryptedFilenames', destFile.leafName);
|
|
||||||
Components.utils.reportError(msg);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Zotero.debug("Path is " + destFile.path);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (windowsLength || nameLength) {
|
|
||||||
// Preserve extension
|
|
||||||
var matches = destFile.leafName.match(/\.[a-z0-9]{0,8}$/);
|
|
||||||
var ext = matches ? matches[0] : "";
|
|
||||||
|
|
||||||
if (windowsLength) {
|
|
||||||
var pathLength = destFile.path.length - destFile.leafName.length;
|
|
||||||
// Limit should be 255, but a shorter limit seems to be
|
|
||||||
// enforced for nsIZipReader.extract() below on
|
|
||||||
// non-English systems
|
|
||||||
var newLength = 240 - pathLength;
|
|
||||||
// Require 40 available characters in path -- this is arbitrary,
|
|
||||||
// but otherwise filenames are going to end up being cut off
|
|
||||||
if (newLength < 40) {
|
|
||||||
zipReader.close();
|
zipReader.close();
|
||||||
|
|
||||||
|
Zotero.File.checkFileAccessError(e, destFile, 'create');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (destFile.leafName != fileName) {
|
||||||
|
Zotero.debug("Changed filename '" + fileName + "' to '" + destFile.leafName + "'");
|
||||||
|
|
||||||
|
// Abort if Windows path limitation would cause filenames to be overly truncated
|
||||||
|
if (Zotero.isWin && destFile.leafName.length < 40) {
|
||||||
|
try {
|
||||||
|
destFile.remove(false);
|
||||||
|
}
|
||||||
|
catch (e) {}
|
||||||
|
zipReader.close();
|
||||||
|
// TODO: localize
|
||||||
var msg = "Due to a Windows path length limitation, your Zotero data directory "
|
var msg = "Due to a Windows path length limitation, your Zotero data directory "
|
||||||
+ "is too deep in the filesystem for syncing to work reliably. "
|
+ "is too deep in the filesystem for syncing to work reliably. "
|
||||||
+ "Please relocate your Zotero data to a higher directory.";
|
+ "Please relocate your Zotero data to a higher directory.";
|
||||||
throw (msg);
|
Zotero.debug(msg, 1);
|
||||||
}
|
throw new Error(msg);
|
||||||
}
|
|
||||||
else {
|
|
||||||
var newLength = 240;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Shorten file if it's too long -- we don't relink it, but this should
|
|
||||||
// be pretty rare and probably only occurs on extraneous files with
|
|
||||||
// gibberish for filenames
|
|
||||||
//
|
|
||||||
// Shortened file could already exist if there was another file with a
|
|
||||||
// similar name that was also longer than the limit, so we do this in a
|
|
||||||
// loop, adding numbers if necessary
|
|
||||||
var step = 0;
|
|
||||||
do {
|
|
||||||
if (step == 0) {
|
|
||||||
var newName = destFile.leafName.substr(0, newLength - ext.length) + ext;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
var newName = destFile.leafName.substr(0, newLength - ext.length) + "-" + step + ext;
|
|
||||||
}
|
|
||||||
destFile.leafName = newName;
|
|
||||||
step++;
|
|
||||||
}
|
|
||||||
while (destFile.exists());
|
|
||||||
|
|
||||||
var msg = "Shortening filename to '" + newName + "'";
|
|
||||||
Zotero.debug(msg, 2);
|
|
||||||
Components.utils.reportError(msg);
|
|
||||||
|
|
||||||
try {
|
|
||||||
destFile.create(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0644);
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
// See above
|
|
||||||
if (e.name == "NS_ERROR_FAILURE" && Zotero.isLinux && destFile.leafName.length > 130) {
|
|
||||||
Zotero.debug(e);
|
|
||||||
var msg = Zotero.getString('sync.storage.error.encryptedFilenames', destFile.leafName);
|
|
||||||
Components.utils.reportError(msg);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
zipReader.close();
|
|
||||||
|
|
||||||
Components.utils.reportError(e);
|
|
||||||
var msg = Zotero.getString('sync.storage.error.fileNotCreated', parentDir.leafName + '/' + fileName);
|
|
||||||
throw(msg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (primaryFile) {
|
if (primaryFile) {
|
||||||
renamed = true;
|
renamed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
zipReader.close();
|
|
||||||
|
|
||||||
Components.utils.reportError(e);
|
|
||||||
var msg = Zotero.getString('sync.storage.error.fileNotCreated', parentDir.leafName + '/' + fileName);
|
|
||||||
throw(msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
zipReader.extract(entryName, destFile);
|
zipReader.extract(entryName, destFile);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
Zotero.debug(destFile.path);
|
try {
|
||||||
|
destFile.remove(false);
|
||||||
|
}
|
||||||
|
catch (e) {}
|
||||||
|
|
||||||
// For advertising junk files, ignore a bug on Windows where
|
// For advertising junk files, ignore a bug on Windows where
|
||||||
// destFile.create() works but zipReader.extract() doesn't
|
// destFile.create() works but zipReader.extract() doesn't
|
||||||
|
|
|
@ -310,8 +310,7 @@ Zotero.Sync.Storage.ZFS = (function () {
|
||||||
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
|
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
|
||||||
.getService(Components.interfaces.nsIWindowMediator);
|
.getService(Components.interfaces.nsIWindowMediator);
|
||||||
var win = wm.getMostRecentWindow("navigator:browser");
|
var win = wm.getMostRecentWindow("navigator:browser");
|
||||||
var browser = win.getBrowser();
|
win.ZoteroPane.loadURI(url);
|
||||||
browser.selectedTab = browser.addTab(url);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,7 +413,8 @@ Zotero.Sync.Storage.ZFS = (function () {
|
||||||
|
|
||||||
var fis = Components.classes["@mozilla.org/network/file-input-stream;1"]
|
var fis = Components.classes["@mozilla.org/network/file-input-stream;1"]
|
||||||
.createInstance(Components.interfaces.nsIFileInputStream);
|
.createInstance(Components.interfaces.nsIFileInputStream);
|
||||||
fis.init(file, 0x01, 0, Components.interfaces.nsIFileInputStream.CLOSE_ON_EOF);
|
fis.init(file, 0x01, 0, Components.interfaces.nsIFileInputStream.CLOSE_ON_EOF
|
||||||
|
| Components.interfaces.nsIFileInputStream.REOPEN_ON_REWIND);
|
||||||
|
|
||||||
var bis = Components.classes["@mozilla.org/network/buffered-input-stream;1"]
|
var bis = Components.classes["@mozilla.org/network/buffered-input-stream;1"]
|
||||||
.createInstance(Components.interfaces.nsIBufferedInputStream)
|
.createInstance(Components.interfaces.nsIBufferedInputStream)
|
||||||
|
|
|
@ -444,17 +444,29 @@ Zotero.Style = function(arg) {
|
||||||
Zotero.Styles.ns);
|
Zotero.Styles.ns);
|
||||||
this.updated = Zotero.Utilities.xpathText(doc, '/csl:style/csl:info[1]/csl:updated[1]',
|
this.updated = Zotero.Utilities.xpathText(doc, '/csl:style/csl:info[1]/csl:updated[1]',
|
||||||
Zotero.Styles.ns).replace(/(.+)T([^\+]+)\+?.*/, "$1 $2");
|
Zotero.Styles.ns).replace(/(.+)T([^\+]+)\+?.*/, "$1 $2");
|
||||||
this.categories = [category.getAttribute("term")
|
this.locale = Zotero.Utilities.xpathText(doc, '/csl:style/@default-locale',
|
||||||
for each(category in Zotero.Utilities.xpath(doc,
|
Zotero.Styles.ns) || null;
|
||||||
'/csl:style/csl:info[1]/csl:category', Zotero.Styles.ns))
|
|
||||||
if(category.hasAttribute("term"))];
|
|
||||||
this._class = doc.documentElement.getAttribute("class");
|
this._class = doc.documentElement.getAttribute("class");
|
||||||
this._usesAbbreviation = !!Zotero.Utilities.xpath(doc,
|
this._usesAbbreviation = !!Zotero.Utilities.xpath(doc,
|
||||||
'//csl:text[(@variable="container-title" and @form="short") or (@variable="container-title-short")][1]',
|
'//csl:text[(@variable="container-title" and @form="short") or (@variable="container-title-short")][1]',
|
||||||
Zotero.Styles.ns).length;
|
Zotero.Styles.ns).length;
|
||||||
this._hasBibliography = !!doc.getElementsByTagName("bibliography").length;
|
this._hasBibliography = !!doc.getElementsByTagName("bibliography").length;
|
||||||
this._version = doc.documentElement.getAttribute("version");
|
this._version = doc.documentElement.getAttribute("version");
|
||||||
if(!this._version) this._version = "0.8";
|
if(!this._version) {
|
||||||
|
this._version = "0.8";
|
||||||
|
|
||||||
|
//In CSL 0.8.1, the "term" attribute on cs:category stored both
|
||||||
|
//citation formats and fields.
|
||||||
|
this.categories = [category.getAttribute("term")
|
||||||
|
for each(category in Zotero.Utilities.xpath(doc,
|
||||||
|
'/csl:style/csl:info[1]/csl:category', Zotero.Styles.ns))
|
||||||
|
if(category.hasAttribute("term"))];
|
||||||
|
} else {
|
||||||
|
//CSL 1.0 introduced a dedicated "citation-format" attribute on cs:category
|
||||||
|
this.categories = Zotero.Utilities.xpathText(doc,
|
||||||
|
'/csl:style/csl:info[1]/csl:category[@citation-format][1]/@citation-format',
|
||||||
|
Zotero.Styles.ns);
|
||||||
|
}
|
||||||
|
|
||||||
this.source = Zotero.Utilities.xpathText(doc,
|
this.source = Zotero.Utilities.xpathText(doc,
|
||||||
'/csl:style/csl:info[1]/csl:link[@rel="source" or @rel="independent-parent"][1]/@href',
|
'/csl:style/csl:info[1]/csl:link[@rel="source" or @rel="independent-parent"][1]/@href',
|
||||||
|
@ -478,6 +490,7 @@ Zotero.Style.prototype.getCiteProc = function(automaticJournalAbbreviations) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// determine version of parent style
|
// determine version of parent style
|
||||||
|
var overrideLocale = false; // to force dependent style locale
|
||||||
if(this.source) {
|
if(this.source) {
|
||||||
var parentStyle = Zotero.Styles.get(this.source);
|
var parentStyle = Zotero.Styles.get(this.source);
|
||||||
if(!parentStyle) {
|
if(!parentStyle) {
|
||||||
|
@ -485,6 +498,14 @@ Zotero.Style.prototype.getCiteProc = function(automaticJournalAbbreviations) {
|
||||||
Zotero.Styles.ios.newFileURI(this.file).spec, null));
|
Zotero.Styles.ios.newFileURI(this.file).spec, null));
|
||||||
}
|
}
|
||||||
var version = parentStyle._version;
|
var version = parentStyle._version;
|
||||||
|
|
||||||
|
// citeproc-js will not know anything about the dependent style, including
|
||||||
|
// the default-locale, so we need to force locale if a dependent style
|
||||||
|
// contains one
|
||||||
|
if(this.locale) {
|
||||||
|
overrideLocale = true;
|
||||||
|
locale = this.locale;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
var version = this._version;
|
var version = this._version;
|
||||||
}
|
}
|
||||||
|
@ -519,7 +540,12 @@ Zotero.Style.prototype.getCiteProc = function(automaticJournalAbbreviations) {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return new Zotero.CiteProc.CSL.Engine(new Zotero.Cite.System(automaticJournalAbbreviations), xml, locale);
|
return new Zotero.CiteProc.CSL.Engine(
|
||||||
|
new Zotero.Cite.System(automaticJournalAbbreviations),
|
||||||
|
xml,
|
||||||
|
locale,
|
||||||
|
overrideLocale
|
||||||
|
);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
Zotero.logError(e);
|
Zotero.logError(e);
|
||||||
throw e;
|
throw e;
|
||||||
|
|
|
@ -1627,7 +1627,7 @@ Zotero.Sync.Server = new function () {
|
||||||
_error(e);
|
_error(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
Q.async(Zotero.Sync.Server.Data.processUpdatedXML(
|
var result = Q.async(Zotero.Sync.Server.Data.processUpdatedXML(
|
||||||
responseNode.getElementsByTagName('updated')[0],
|
responseNode.getElementsByTagName('updated')[0],
|
||||||
lastLocalSyncDate,
|
lastLocalSyncDate,
|
||||||
syncSession,
|
syncSession,
|
||||||
|
@ -1836,13 +1836,11 @@ Zotero.Sync.Server = new function () {
|
||||||
Zotero.HTTP.doPost(url, body, uploadCallback);
|
Zotero.HTTP.doPost(url, body, uploadCallback);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
))()
|
))();
|
||||||
.then(
|
|
||||||
null,
|
if (Q.isPromise(result)) {
|
||||||
function (e) {
|
result.catch(errorHandler);
|
||||||
errorHandler(e);
|
|
||||||
}
|
}
|
||||||
);
|
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
_error(e);
|
_error(e);
|
||||||
|
@ -1974,7 +1972,7 @@ Zotero.Sync.Server = new function () {
|
||||||
catch (e) {
|
catch (e) {
|
||||||
Zotero.debug(e);
|
Zotero.debug(e);
|
||||||
}
|
}
|
||||||
var kbURL = 'http://zotero.org/support/kb/ssl_certificate_error';
|
var kbURL = 'https://zotero.org/support/kb/ssl_certificate_error';
|
||||||
_error(Zotero.getString('sync.storage.error.webdav.sslCertificateError', host) + "\n\n"
|
_error(Zotero.getString('sync.storage.error.webdav.sslCertificateError', host) + "\n\n"
|
||||||
+ Zotero.getString('general.seeForMoreInformation', kbURL),
|
+ Zotero.getString('general.seeForMoreInformation', kbURL),
|
||||||
false, noReloadOnFailure);
|
false, noReloadOnFailure);
|
||||||
|
@ -2676,8 +2674,6 @@ Zotero.Sync.Server.Data = new function() {
|
||||||
|
|
||||||
|
|
||||||
this.processUpdatedXML = function (updatedNode, lastLocalSyncDate, syncSession, defaultLibraryID, callback) {
|
this.processUpdatedXML = function (updatedNode, lastLocalSyncDate, syncSession, defaultLibraryID, callback) {
|
||||||
yield true;
|
|
||||||
|
|
||||||
updatedNode.xpath = function (path) {
|
updatedNode.xpath = function (path) {
|
||||||
return Zotero.Utilities.xpath(this, path);
|
return Zotero.Utilities.xpath(this, path);
|
||||||
};
|
};
|
||||||
|
|
|
@ -240,7 +240,16 @@ Zotero.Translate.Sandbox = {
|
||||||
if(!Zotero.isBookmarklet) arg = JSON.parse(JSON.stringify(arg));
|
if(!Zotero.isBookmarklet) arg = JSON.parse(JSON.stringify(arg));
|
||||||
return translation.setSearch(arg);
|
return translation.setSearch(arg);
|
||||||
};
|
};
|
||||||
safeTranslator.setDocument = function(arg) { return translation.setDocument(arg) };
|
safeTranslator.setDocument = function(arg) {
|
||||||
|
if (Zotero.isFx && !Zotero.isBookmarklet) {
|
||||||
|
if (arg.wrappedJSObject && arg.wrappedJSObject.__wrappedObject) {
|
||||||
|
arg = arg.wrappedJSObject.__wrappedObject;
|
||||||
|
}
|
||||||
|
return translation.setDocument(new XPCNativeWrapper(arg));
|
||||||
|
} else {
|
||||||
|
return translation.setDocument(arg);
|
||||||
|
}
|
||||||
|
};
|
||||||
var errorHandlerSet = false;
|
var errorHandlerSet = false;
|
||||||
safeTranslator.setHandler = function(arg1, arg2) {
|
safeTranslator.setHandler = function(arg1, arg2) {
|
||||||
if(arg1 === "error") errorHandlerSet = true;
|
if(arg1 === "error") errorHandlerSet = true;
|
||||||
|
@ -249,15 +258,14 @@ Zotero.Translate.Sandbox = {
|
||||||
try {
|
try {
|
||||||
item = item.wrappedJSObject ? item.wrappedJSObject : item;
|
item = item.wrappedJSObject ? item.wrappedJSObject : item;
|
||||||
if(arg1 == "itemDone") {
|
if(arg1 == "itemDone") {
|
||||||
var sbZotero = translate._sandboxManager.sandbox.Zotero;
|
|
||||||
if(sbZotero.wrappedJSObject) sbZotero = sbZotero.wrappedJSObject;
|
|
||||||
if(Zotero.isFx && !Zotero.isBookmarklet
|
|
||||||
&& (translate instanceof Zotero.Translate.Web
|
|
||||||
|| translate instanceof Zotero.Translate.Search)) {
|
|
||||||
// Necessary to get around object wrappers in Firefox
|
|
||||||
item = translate._sandboxManager._copyObject(item);
|
|
||||||
}
|
|
||||||
item.complete = translate._sandboxZotero.Item.prototype.complete;
|
item.complete = translate._sandboxZotero.Item.prototype.complete;
|
||||||
|
} else if(arg1 == "translators" && Zotero.isFx && !Zotero.isBookmarklet) {
|
||||||
|
var translators = new translate._sandboxManager.sandbox.Array();
|
||||||
|
translators = translators.wrappedJSObject || translators;
|
||||||
|
for (var i=0; i<item.length; i++) {
|
||||||
|
translators.push(item[i]);
|
||||||
|
}
|
||||||
|
item = translators;
|
||||||
}
|
}
|
||||||
arg2(obj, item);
|
arg2(obj, item);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
|
@ -344,7 +352,6 @@ Zotero.Translate.Sandbox = {
|
||||||
if(!Zotero.Utilities.isEmpty(sandbox.exports)) {
|
if(!Zotero.Utilities.isEmpty(sandbox.exports)) {
|
||||||
sandbox.exports.Zotero = sandbox.Zotero;
|
sandbox.exports.Zotero = sandbox.Zotero;
|
||||||
sandbox = sandbox.exports;
|
sandbox = sandbox.exports;
|
||||||
if(Zotero.isFx && sandbox.wrappedJSObject) sandbox = sandbox.wrappedJSObject;
|
|
||||||
} else {
|
} else {
|
||||||
translate._debug("COMPAT WARNING: "+translation.translator[0].label+" does "+
|
translate._debug("COMPAT WARNING: "+translation.translator[0].label+" does "+
|
||||||
"not export any properties. Only detect"+translation._entryFunctionSuffix+
|
"not export any properties. Only detect"+translation._entryFunctionSuffix+
|
||||||
|
@ -360,6 +367,18 @@ Zotero.Translate.Sandbox = {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if(Zotero.isFx && Zotero.platformMajorVersion >= 33) {
|
||||||
|
for(var i in safeTranslator) {
|
||||||
|
if (typeof(safeTranslator[i]) === "function") {
|
||||||
|
safeTranslator[i] = translate._sandboxManager._makeContentForwarder(function(func) {
|
||||||
|
return function() {
|
||||||
|
func.apply(safeTranslator, this.args.wrappedJSObject || this.args);
|
||||||
|
}
|
||||||
|
}(safeTranslator[i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return safeTranslator;
|
return safeTranslator;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -405,7 +424,7 @@ Zotero.Translate.Sandbox = {
|
||||||
*/
|
*/
|
||||||
"selectItems":function(translate, items, callback) {
|
"selectItems":function(translate, items, callback) {
|
||||||
function transferObject(obj) {
|
function transferObject(obj) {
|
||||||
return Zotero.isFx ? translate._sandboxManager.sandbox.JSON.parse(JSON.stringify(obj)) : obj;
|
return Zotero.isFx ? translate._sandboxManager.copyObject(obj) : obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Zotero.Utilities.isEmpty(items)) {
|
if(Zotero.Utilities.isEmpty(items)) {
|
||||||
|
@ -1080,13 +1099,23 @@ Zotero.Translate.Base.prototype = {
|
||||||
* @param {Boolean} [saveAttachments=true] Exclude attachments (e.g., snapshots) on import
|
* @param {Boolean} [saveAttachments=true] Exclude attachments (e.g., snapshots) on import
|
||||||
*/
|
*/
|
||||||
"translate":function(libraryID, saveAttachments) { // initialize properties specific to each translation
|
"translate":function(libraryID, saveAttachments) { // initialize properties specific to each translation
|
||||||
this._currentState = "translate";
|
|
||||||
|
|
||||||
if(!this.translator || !this.translator.length) {
|
if(!this.translator || !this.translator.length) {
|
||||||
this.complete(false, new Error("No translator specified"));
|
var args = arguments;
|
||||||
|
Zotero.debug("Translate: translate called without specifying a translator. Running detection first.");
|
||||||
|
this.setHandler('translators', function(me, translators) {
|
||||||
|
if(!translators.length) {
|
||||||
|
me.complete(false, "Could not find an appropriate translator");
|
||||||
|
} else {
|
||||||
|
me.setTranslator(translators);
|
||||||
|
Zotero.Translate.Base.prototype.translate.apply(me, args);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.getTranslators();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this._currentState = "translate";
|
||||||
|
|
||||||
this._libraryID = libraryID;
|
this._libraryID = libraryID;
|
||||||
this._saveAttachments = saveAttachments === undefined || saveAttachments;
|
this._saveAttachments = saveAttachments === undefined || saveAttachments;
|
||||||
this._savingAttachments = [];
|
this._savingAttachments = [];
|
||||||
|
@ -1123,7 +1152,7 @@ Zotero.Translate.Base.prototype = {
|
||||||
|
|
||||||
// translate
|
// translate
|
||||||
try {
|
try {
|
||||||
this._sandboxManager.sandbox["do"+this._entryFunctionSuffix].apply(null, this._getParameters());
|
Function.prototype.apply.call(this._sandboxManager.sandbox["do"+this._entryFunctionSuffix], null, this._getParameters());
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
this.complete(false, e);
|
this.complete(false, e);
|
||||||
return false;
|
return false;
|
||||||
|
@ -1396,7 +1425,7 @@ Zotero.Translate.Base.prototype = {
|
||||||
this.incrementAsyncProcesses("Zotero.Translate#getTranslators");
|
this.incrementAsyncProcesses("Zotero.Translate#getTranslators");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var returnValue = this._sandboxManager.sandbox["detect"+this._entryFunctionSuffix].apply(null, this._getParameters());
|
var returnValue = Function.prototype.apply.call(this._sandboxManager.sandbox["detect"+this._entryFunctionSuffix], null, this._getParameters());
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
this.complete(false, e);
|
this.complete(false, e);
|
||||||
return;
|
return;
|
||||||
|
@ -1451,7 +1480,11 @@ Zotero.Translate.Base.prototype = {
|
||||||
*/
|
*/
|
||||||
"_generateSandbox":function() {
|
"_generateSandbox":function() {
|
||||||
Zotero.debug("Translate: Binding sandbox to "+(typeof this._sandboxLocation == "object" ? this._sandboxLocation.document.location : this._sandboxLocation), 4);
|
Zotero.debug("Translate: Binding sandbox to "+(typeof this._sandboxLocation == "object" ? this._sandboxLocation.document.location : this._sandboxLocation), 4);
|
||||||
|
if (this._parentTranslator && this._parentTranslator._sandboxManager.newChild) {
|
||||||
|
this._sandboxManager = this._parentTranslator._sandboxManager.newChild();
|
||||||
|
} else {
|
||||||
this._sandboxManager = new Zotero.Translate.SandboxManager(this._sandboxLocation);
|
this._sandboxManager = new Zotero.Translate.SandboxManager(this._sandboxLocation);
|
||||||
|
}
|
||||||
const createArrays = "['creators', 'notes', 'tags', 'seeAlso', 'attachments']";
|
const createArrays = "['creators', 'notes', 'tags', 'seeAlso', 'attachments']";
|
||||||
var src = "var Zotero = {};"+
|
var src = "var Zotero = {};"+
|
||||||
"Zotero.Item = function (itemType) {"+
|
"Zotero.Item = function (itemType) {"+
|
||||||
|
@ -1656,7 +1689,14 @@ Zotero.Translate.Web.prototype._getSandboxLocation = function() {
|
||||||
/**
|
/**
|
||||||
* Pass document and location to detect* and do* functions
|
* Pass document and location to detect* and do* functions
|
||||||
*/
|
*/
|
||||||
Zotero.Translate.Web.prototype._getParameters = function() { return [this.document, this.location]; }
|
Zotero.Translate.Web.prototype._getParameters = function() {
|
||||||
|
if (Zotero.Translate.DOMWrapper && Zotero.Translate.DOMWrapper.isWrapped(this.document)) {
|
||||||
|
return [this._sandboxManager.wrap(Zotero.Translate.DOMWrapper.unwrap(this.document), null,
|
||||||
|
this.document.__wrapperOverrides), this.location];
|
||||||
|
} else {
|
||||||
|
return [this.document, this.location];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare translation
|
* Prepare translation
|
||||||
|
@ -1824,7 +1864,7 @@ Zotero.Translate.Web.prototype.complete = function(returnValue, error) {
|
||||||
"&lastUpdated=" + encodeURIComponent(translator.lastUpdated) +
|
"&lastUpdated=" + encodeURIComponent(translator.lastUpdated) +
|
||||||
"&diagnostic=" + encodeURIComponent(info) +
|
"&diagnostic=" + encodeURIComponent(info) +
|
||||||
"&errorData=" + encodeURIComponent(errorString);
|
"&errorData=" + encodeURIComponent(errorString);
|
||||||
Zotero.HTTP.doPost("http://www.zotero.org/repo/report", postBody);
|
Zotero.HTTP.doPost(ZOTERO_CONFIG.REPOSITORY_URL + "report", postBody);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1927,13 +1967,13 @@ Zotero.Translate.Import.prototype._loadTranslatorPrepareIO = function(translator
|
||||||
if(!this._io) {
|
if(!this._io) {
|
||||||
if(Zotero.Translate.IO.Read && this.location && this.location instanceof Components.interfaces.nsIFile) {
|
if(Zotero.Translate.IO.Read && this.location && this.location instanceof Components.interfaces.nsIFile) {
|
||||||
try {
|
try {
|
||||||
this._io = new Zotero.Translate.IO.Read(this.location);
|
this._io = new Zotero.Translate.IO.Read(this.location, this._sandboxManager);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
err = e;
|
err = e;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
this._io = new Zotero.Translate.IO.String(this._string, this.path ? this.path : "");
|
this._io = new Zotero.Translate.IO.String(this._string, this.path ? this.path : "", this._sandboxManager);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
err = e;
|
err = e;
|
||||||
}
|
}
|
||||||
|
@ -2101,7 +2141,7 @@ Zotero.Translate.Export.prototype._prepareTranslation = function() {
|
||||||
// this is currently hackish since we pass null callbacks to the init function (they have
|
// this is currently hackish since we pass null callbacks to the init function (they have
|
||||||
// callbacks to be consistent with import, but they are synchronous, so we ignore them)
|
// callbacks to be consistent with import, but they are synchronous, so we ignore them)
|
||||||
if(!this.location) {
|
if(!this.location) {
|
||||||
this._io = new Zotero.Translate.IO.String(null, this.path ? this.path : "");
|
this._io = new Zotero.Translate.IO.String(null, this.path ? this.path : "", this._sandboxManager);
|
||||||
this._io.init(configOptions["dataMode"], function() {});
|
this._io.init(configOptions["dataMode"], function() {});
|
||||||
} else if(!Zotero.Translate.IO.Write) {
|
} else if(!Zotero.Translate.IO.Write) {
|
||||||
throw new Error("Writing to files is not supported in this build of Zotero.");
|
throw new Error("Writing to files is not supported in this build of Zotero.");
|
||||||
|
@ -2115,6 +2155,19 @@ Zotero.Translate.Export.prototype._prepareTranslation = function() {
|
||||||
this._sandboxManager.importObject(this._io);
|
this._sandboxManager.importObject(this._io);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overload Zotero.Translate.Base#translate to make sure that
|
||||||
|
* Zotero.Translate.Export#translate is not called without setting a
|
||||||
|
* translator first. Doesn't make sense to run detection for export.
|
||||||
|
*/
|
||||||
|
Zotero.Translate.Export.prototype.translate = function() {
|
||||||
|
if(!this.translator || !this.translator.length) {
|
||||||
|
this.complete(false, new Error("Export translation initiated without setting a translator"));
|
||||||
|
} else {
|
||||||
|
Zotero.Translate.Base.prototype.translate.apply(this, arguments);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the progress of the import operation, or null if progress cannot be determined
|
* Return the progress of the import operation, or null if progress cannot be determined
|
||||||
*/
|
*/
|
||||||
|
@ -2208,7 +2261,7 @@ Zotero.Translate.Search.prototype.complete = function(returnValue, error) {
|
||||||
*/
|
*/
|
||||||
Zotero.Translate.Search.prototype._getParameters = function() {
|
Zotero.Translate.Search.prototype._getParameters = function() {
|
||||||
if(Zotero.isFx) {
|
if(Zotero.isFx) {
|
||||||
return [this._sandboxManager._copyObject(this.search)];
|
return [this._sandboxManager.copyObject(this.search)];
|
||||||
}
|
}
|
||||||
return [this.search];
|
return [this.search];
|
||||||
};
|
};
|
||||||
|
@ -2276,7 +2329,7 @@ Zotero.Translate.IO = {
|
||||||
/**
|
/**
|
||||||
* @class Translate backend for translating from a string
|
* @class Translate backend for translating from a string
|
||||||
*/
|
*/
|
||||||
Zotero.Translate.IO.String = function(string, uri) {
|
Zotero.Translate.IO.String = function(string, uri, sandboxManager) {
|
||||||
if(string && typeof string === "string") {
|
if(string && typeof string === "string") {
|
||||||
this.string = string;
|
this.string = string;
|
||||||
} else {
|
} else {
|
||||||
|
@ -2285,6 +2338,7 @@ Zotero.Translate.IO.String = function(string, uri) {
|
||||||
this.contentLength = this.string.length;
|
this.contentLength = this.string.length;
|
||||||
this.bytesRead = 0;
|
this.bytesRead = 0;
|
||||||
this._uri = uri;
|
this._uri = uri;
|
||||||
|
this._sandboxManager = sandboxManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
Zotero.Translate.IO.String.prototype = {
|
Zotero.Translate.IO.String.prototype = {
|
||||||
|
@ -2374,7 +2428,7 @@ Zotero.Translate.IO.String.prototype = {
|
||||||
this._xmlInvalid = true;
|
this._xmlInvalid = true;
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
return (Zotero.isFx ? Zotero.Translate.DOMWrapper.wrap(xml) : xml);
|
return (Zotero.isFx && !Zotero.isBookmarklet ? this._sandboxManager.wrap(xml) : xml);
|
||||||
},
|
},
|
||||||
|
|
||||||
"init":function(newMode, callback) {
|
"init":function(newMode, callback) {
|
||||||
|
|
|
@ -49,7 +49,7 @@ Zotero.Translate.DOMWrapper = new function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
function isWrapper(x) {
|
function isWrapper(x) {
|
||||||
return isWrappable(x) && (typeof x.SpecialPowers_wrappedObject !== "undefined");
|
return isWrappable(x) && (typeof x.__wrappedObject !== "undefined");
|
||||||
};
|
};
|
||||||
|
|
||||||
function unwrapIfWrapped(x) {
|
function unwrapIfWrapped(x) {
|
||||||
|
@ -130,7 +130,7 @@ Zotero.Translate.DOMWrapper = new function() {
|
||||||
throw "Trying to unwrap a non-wrapped object!";
|
throw "Trying to unwrap a non-wrapped object!";
|
||||||
|
|
||||||
// Unwrap.
|
// Unwrap.
|
||||||
return x.SpecialPowers_wrappedObject;
|
return x.__wrappedObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
function crawlProtoChain(obj, fn) {
|
function crawlProtoChain(obj, fn) {
|
||||||
|
@ -172,8 +172,10 @@ Zotero.Translate.DOMWrapper = new function() {
|
||||||
SpecialPowersHandler.prototype.doGetPropertyDescriptor = function(name, own) {
|
SpecialPowersHandler.prototype.doGetPropertyDescriptor = function(name, own) {
|
||||||
|
|
||||||
// Handle our special API.
|
// Handle our special API.
|
||||||
if (name == "SpecialPowers_wrappedObject")
|
if (name == "__wrappedObject")
|
||||||
return { value: this.wrappedObject, writeable: false, configurable: false, enumerable: false };
|
return { value: this.wrappedObject, writeable: false, configurable: false, enumerable: false };
|
||||||
|
if (name == "__wrapperOverrides")
|
||||||
|
return { value: this.overrides, writeable: false, configurable: false, enumerable: false };
|
||||||
// Handle __exposedProps__.
|
// Handle __exposedProps__.
|
||||||
if (name == "__exposedProps__")
|
if (name == "__exposedProps__")
|
||||||
return { value: ExposedPropsWaiver, writable: false, configurable: false, enumerable: false };
|
return { value: ExposedPropsWaiver, writable: false, configurable: false, enumerable: false };
|
||||||
|
@ -196,7 +198,7 @@ Zotero.Translate.DOMWrapper = new function() {
|
||||||
|
|
||||||
// Hack for overriding some properties
|
// Hack for overriding some properties
|
||||||
if (this.overrides.hasOwnProperty(name))
|
if (this.overrides.hasOwnProperty(name))
|
||||||
return this.overrides[name];
|
return { "enumerable": true, "value": this.overrides[name] };
|
||||||
// Case 1: Own Properties.
|
// Case 1: Own Properties.
|
||||||
//
|
//
|
||||||
// This one is easy, thanks to Object.getOwnPropertyDescriptor().
|
// This one is easy, thanks to Object.getOwnPropertyDescriptor().
|
||||||
|
@ -281,7 +283,7 @@ Zotero.Translate.DOMWrapper = new function() {
|
||||||
|
|
||||||
// Insert our special API. It's not enumerable, but getPropertyNames()
|
// Insert our special API. It's not enumerable, but getPropertyNames()
|
||||||
// includes non-enumerable properties.
|
// includes non-enumerable properties.
|
||||||
var specialAPI = 'SpecialPowers_wrappedObject';
|
var specialAPI = '__wrappedObject';
|
||||||
if (props.indexOf(specialAPI) == -1)
|
if (props.indexOf(specialAPI) == -1)
|
||||||
props.push(specialAPI);
|
props.push(specialAPI);
|
||||||
|
|
||||||
|
@ -367,6 +369,14 @@ Zotero.Translate.DOMWrapper = new function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wraps an object in the same sandbox as another object
|
||||||
|
*/
|
||||||
|
this.wrapIn = function(obj, insamebox) {
|
||||||
|
if(insamebox.__wrappingManager) return insamebox.__wrappingManager.wrap(obj);
|
||||||
|
return this.wrap(obj);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks whether an object is wrapped by a DOM wrapper
|
* Checks whether an object is wrapped by a DOM wrapper
|
||||||
* @param {XPCCrossOriginWrapper} obj
|
* @param {XPCCrossOriginWrapper} obj
|
||||||
|
@ -381,7 +391,8 @@ Zotero.Translate.DOMWrapper = new function() {
|
||||||
* @param {String|window} sandboxLocation
|
* @param {String|window} sandboxLocation
|
||||||
*/
|
*/
|
||||||
Zotero.Translate.SandboxManager = function(sandboxLocation) {
|
Zotero.Translate.SandboxManager = function(sandboxLocation) {
|
||||||
this.sandbox = new Components.utils.Sandbox(sandboxLocation);
|
// sandboxLocation = Components.classes["@mozilla.org/systemprincipal;1"].createInstance(Components.interfaces.nsIPrincipal);
|
||||||
|
var sandbox = this.sandbox = new Components.utils.Sandbox(sandboxLocation, {wantComponents:false, wantGlobalProperties:["XMLHttpRequest"]});
|
||||||
this.sandbox.Zotero = {};
|
this.sandbox.Zotero = {};
|
||||||
|
|
||||||
// import functions missing from global scope into Fx sandbox
|
// import functions missing from global scope into Fx sandbox
|
||||||
|
@ -389,28 +400,14 @@ Zotero.Translate.SandboxManager = function(sandboxLocation) {
|
||||||
if(typeof sandboxLocation === "object" && "DOMParser" in sandboxLocation) {
|
if(typeof sandboxLocation === "object" && "DOMParser" in sandboxLocation) {
|
||||||
this.sandbox.DOMParser = sandboxLocation.DOMParser;
|
this.sandbox.DOMParser = sandboxLocation.DOMParser;
|
||||||
} else {
|
} else {
|
||||||
var sandbox = this.sandbox;
|
|
||||||
this.sandbox.DOMParser = function() {
|
this.sandbox.DOMParser = function() {
|
||||||
var uri, principal;
|
|
||||||
// get URI
|
|
||||||
if(typeof sandboxLocation === "string") { // if sandbox specified by URI
|
|
||||||
var secMan = Services.scriptSecurityManager;
|
|
||||||
uri = Services.io.newURI(sandboxLocation, "UTF-8", null);
|
|
||||||
principal = (secMan.getCodebasePrincipal || secMan.getSimpleCodebasePrincipal)(uri);
|
|
||||||
} else { // if sandbox specified by DOM document
|
|
||||||
principal = sandboxLocation.document.nodePrincipal;
|
|
||||||
uri = sandboxLocation.document.documentURIObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
// initialize DOM parser
|
|
||||||
var _DOMParser = Components.classes["@mozilla.org/xmlextras/domparser;1"]
|
|
||||||
.createInstance(Components.interfaces.nsIDOMParser);
|
|
||||||
_DOMParser.init(principal, uri, uri);
|
|
||||||
|
|
||||||
// expose parseFromString
|
|
||||||
this.__exposedProps__ = {"parseFromString":"r"};
|
this.__exposedProps__ = {"parseFromString":"r"};
|
||||||
this.parseFromString = function(str, contentType) {
|
this.parseFromString = function(str, contentType) {
|
||||||
return Zotero.Translate.DOMWrapper.wrap(_DOMParser.parseFromString(str, contentType));
|
var xhr = sandbox.XMLHttpRequest();
|
||||||
|
xhr.open("GET", "data:"+contentType+";charset=utf-8,"+encodeURIComponent(str), false);
|
||||||
|
xhr.send();
|
||||||
|
if (!xhr.responseXML) throw new Error("error parsing XML");
|
||||||
|
return xhr.responseXML;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -425,6 +422,58 @@ Zotero.Translate.SandboxManager = function(sandboxLocation) {
|
||||||
};
|
};
|
||||||
this.sandbox.XMLSerializer.__exposedProps__ = {"prototype":"r"};
|
this.sandbox.XMLSerializer.__exposedProps__ = {"prototype":"r"};
|
||||||
this.sandbox.XMLSerializer.prototype = {"__exposedProps__":{"serializeToString":"r"}};
|
this.sandbox.XMLSerializer.prototype = {"__exposedProps__":{"serializeToString":"r"}};
|
||||||
|
|
||||||
|
var expr = "(function(x) { return function() { this.args = arguments; return Function.prototype.apply.call(x, this); }.bind({}); })";
|
||||||
|
this._makeContentForwarder = Components.utils.evalInSandbox(expr, sandbox);
|
||||||
|
|
||||||
|
if (Zotero.platformMajorVersion >= 35) {
|
||||||
|
var _proxy = Components.utils.evalInSandbox('(function (target, x, overrides) {'+
|
||||||
|
' return new Proxy(x, ProxyHandler(target, overrides));'+
|
||||||
|
'})', sandbox);
|
||||||
|
var wrap = this.wrap = function(target, x, overrides) {
|
||||||
|
if (target === null || (typeof target !== "object" && typeof target !== "function")) return target;
|
||||||
|
if (!x) x = new sandbox.Object();
|
||||||
|
return _proxy(target, x, overrides);
|
||||||
|
};
|
||||||
|
var me = this;
|
||||||
|
sandbox.ProxyHandler = this._makeContentForwarder(function() {
|
||||||
|
var target = (this.args.wrappedJSObject || this.args)[0];
|
||||||
|
var overrides = (this.args.wrappedJSObject || this.args)[1] || {};
|
||||||
|
if(target instanceof Components.interfaces.nsISupports) {
|
||||||
|
target = new XPCNativeWrapper(target);
|
||||||
|
}
|
||||||
|
var ret = new sandbox.Object();
|
||||||
|
ret.wrappedJSObject.has = function(x, prop) {
|
||||||
|
return overrides.hasOwnProperty(prop) || prop in target;
|
||||||
|
};
|
||||||
|
ret.wrappedJSObject.get = function(x, prop, receiver) {
|
||||||
|
if (prop === "__wrappedObject") return target;
|
||||||
|
if (prop === "__wrappingManager") return me;
|
||||||
|
var y = overrides.hasOwnProperty(prop) ? overrides[prop] : target[prop];
|
||||||
|
if (y === null || (typeof y !== "object" && typeof y !== "function")) return y;
|
||||||
|
return wrap(y, typeof y === "function" ? function() {
|
||||||
|
var args = Array.prototype.slice.apply(arguments);
|
||||||
|
for (var i = 0; i < args.length; i++) {
|
||||||
|
if (typeof args[i] === "object" && args[i] !== null &&
|
||||||
|
args[i].wrappedJSObject && args[i].wrappedJSObject.__wrappedObject)
|
||||||
|
args[i] = new XPCNativeWrapper(args[i].wrappedJSObject.__wrappedObject);
|
||||||
|
}
|
||||||
|
return wrap(y.apply(target, args));
|
||||||
|
} : new sandbox.Object());
|
||||||
|
};
|
||||||
|
ret.wrappedJSObject.ownKeys = function(x) {
|
||||||
|
return Components.utils.cloneInto(target.getOwnPropertyNames(), sandbox);
|
||||||
|
};
|
||||||
|
ret.wrappedJSObject.enumerate = function(x) {
|
||||||
|
var y = new sandbox.Array();
|
||||||
|
for (var i in target) y.wrappedJSObject.push(i);
|
||||||
|
return y;
|
||||||
|
};
|
||||||
|
return ret;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.wrap = Zotero.Translate.DOMWrapper.wrap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Zotero.Translate.SandboxManager.prototype = {
|
Zotero.Translate.SandboxManager.prototype = {
|
||||||
|
@ -447,9 +496,7 @@ Zotero.Translate.SandboxManager.prototype = {
|
||||||
"importObject":function(object, passAsFirstArgument, attachTo) {
|
"importObject":function(object, passAsFirstArgument, attachTo) {
|
||||||
if(!attachTo) attachTo = this.sandbox.Zotero;
|
if(!attachTo) attachTo = this.sandbox.Zotero;
|
||||||
if(attachTo.wrappedJSObject) attachTo = attachTo.wrappedJSObject;
|
if(attachTo.wrappedJSObject) attachTo = attachTo.wrappedJSObject;
|
||||||
var newExposedProps = false,
|
var newExposedProps = false, sandbox = this.sandbox, me = this;
|
||||||
sandbox = this.sandbox,
|
|
||||||
me = this;
|
|
||||||
if(!object.__exposedProps__) newExposedProps = {};
|
if(!object.__exposedProps__) newExposedProps = {};
|
||||||
for(var key in (newExposedProps ? object : object.__exposedProps__)) {
|
for(var key in (newExposedProps ? object : object.__exposedProps__)) {
|
||||||
let localKey = key;
|
let localKey = key;
|
||||||
|
@ -460,13 +507,27 @@ Zotero.Translate.SandboxManager.prototype = {
|
||||||
var isObject = typeof object[localKey] === "object";
|
var isObject = typeof object[localKey] === "object";
|
||||||
if(isFunction || isObject) {
|
if(isFunction || isObject) {
|
||||||
if(isFunction) {
|
if(isFunction) {
|
||||||
|
if (Zotero.platformMajorVersion >= 33) {
|
||||||
|
attachTo[localKey] = this._makeContentForwarder(function() {
|
||||||
|
var args = Array.prototype.slice.apply(this.args.wrappedJSObject || this.args);
|
||||||
|
for(var i = 0; i<args.length; i++) {
|
||||||
|
// Make sure we keep XPCNativeWrappers
|
||||||
|
if(args[i] instanceof Components.interfaces.nsISupports) {
|
||||||
|
args[i] = new XPCNativeWrapper(args[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(passAsFirstArgument) args.unshift(passAsFirstArgument);
|
||||||
|
return me.copyObject(object[localKey].apply(object, args));
|
||||||
|
});
|
||||||
|
} else {
|
||||||
attachTo[localKey] = function() {
|
attachTo[localKey] = function() {
|
||||||
var args = Array.prototype.slice.apply(arguments);
|
var args = Array.prototype.slice.apply(arguments);
|
||||||
if(passAsFirstArgument) args.unshift(passAsFirstArgument);
|
if(passAsFirstArgument) args.unshift(passAsFirstArgument);
|
||||||
return me._copyObject(object[localKey].apply(object, args));
|
return me.copyObject(object[localKey].apply(object, args));
|
||||||
};
|
};
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
attachTo[localKey] = {};
|
attachTo[localKey] = new sandbox.Object();
|
||||||
}
|
}
|
||||||
|
|
||||||
// attach members
|
// attach members
|
||||||
|
@ -488,7 +549,7 @@ Zotero.Translate.SandboxManager.prototype = {
|
||||||
"_canCopy":function(obj) {
|
"_canCopy":function(obj) {
|
||||||
if(typeof obj !== "object" || obj === null) return false;
|
if(typeof obj !== "object" || obj === null) return false;
|
||||||
if((obj.constructor.name !== "Object" && obj.constructor.name !== "Array") ||
|
if((obj.constructor.name !== "Object" && obj.constructor.name !== "Array") ||
|
||||||
"__exposedProps__" in obj) {
|
"__exposedProps__" in obj || (obj.wrappedJSObject && obj.wrappedJSObject.__wrappingManager)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -499,8 +560,8 @@ Zotero.Translate.SandboxManager.prototype = {
|
||||||
* @param {Object} obj
|
* @param {Object} obj
|
||||||
* @return {Object}
|
* @return {Object}
|
||||||
*/
|
*/
|
||||||
"_copyObject":function(obj, wm) {
|
"copyObject":function(obj, wm) {
|
||||||
if(!this._canCopy(obj)) return obj
|
if(!this._canCopy(obj)) return obj;
|
||||||
if(!wm) wm = new WeakMap();
|
if(!wm) wm = new WeakMap();
|
||||||
var obj2 = (obj.constructor.name === "Array" ? this.sandbox.Array() : this.sandbox.Object());
|
var obj2 = (obj.constructor.name === "Array" ? this.sandbox.Array() : this.sandbox.Object());
|
||||||
var wobj2 = obj2.wrappedJSObject ? obj2.wrappedJSObject : obj2;
|
var wobj2 = obj2.wrappedJSObject ? obj2.wrappedJSObject : obj2;
|
||||||
|
@ -511,7 +572,7 @@ Zotero.Translate.SandboxManager.prototype = {
|
||||||
if(this._canCopy(prop1)) {
|
if(this._canCopy(prop1)) {
|
||||||
var prop2 = wm.get(prop1);
|
var prop2 = wm.get(prop1);
|
||||||
if(prop2 === undefined) {
|
if(prop2 === undefined) {
|
||||||
prop2 = this._copyObject(prop1, wm);
|
prop2 = this.copyObject(prop1, wm);
|
||||||
wm.set(prop1, prop2);
|
wm.set(prop1, prop2);
|
||||||
}
|
}
|
||||||
wobj2[i] = prop2;
|
wobj2[i] = prop2;
|
||||||
|
@ -520,6 +581,56 @@ Zotero.Translate.SandboxManager.prototype = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return obj2;
|
return obj2;
|
||||||
|
},
|
||||||
|
|
||||||
|
"newChild":function() {
|
||||||
|
return new Zotero.Translate.ChildSandboxManager(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Zotero.Translate.ChildSandboxManager = function(parent) {
|
||||||
|
this._wrappedSandbox = new parent.sandbox.Object();
|
||||||
|
this._wrappedSandbox.Zotero = new parent.sandbox.Object();
|
||||||
|
this.sandbox = this._wrappedSandbox.wrappedJSObject || this._wrappedSandbox;
|
||||||
|
this._parent = parent;
|
||||||
|
}
|
||||||
|
Zotero.Translate.ChildSandboxManager.prototype = {
|
||||||
|
"eval":function(code, functions, path) {
|
||||||
|
// eval in sandbox scope
|
||||||
|
if(functions) {
|
||||||
|
for(var i = 0; i < functions.length; i++) {
|
||||||
|
delete this.sandbox[functions[i]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this._parent.sandbox._withSandbox = this._wrappedSandbox;
|
||||||
|
Components.utils.evalInSandbox("with(_withSandbox){"+code+"};", this._parent.sandbox, "1.8", path, 1);
|
||||||
|
if(functions) {
|
||||||
|
for(var i = 0; i < functions.length; i++) {
|
||||||
|
try {
|
||||||
|
this._wrappedSandbox[functions[i]] = Components.utils.evalInSandbox(functions[i], this._parent.sandbox);
|
||||||
|
} catch(e) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this._parent.sandbox._withSandbox = undefined;
|
||||||
|
},
|
||||||
|
"importObject":function(object, passAsFirstArgument, attachTo) {
|
||||||
|
if(!attachTo) attachTo = this.sandbox.Zotero;
|
||||||
|
// Zotero.debug(object);
|
||||||
|
// Zotero.debug(attachTo);
|
||||||
|
this._parent.importObject(object, passAsFirstArgument, attachTo);
|
||||||
|
// Zotero.debug(attachTo);
|
||||||
|
},
|
||||||
|
"copyObject":function(obj) {
|
||||||
|
return this._parent.copyObject(obj);
|
||||||
|
},
|
||||||
|
"newChild":function() {
|
||||||
|
return this._parent.newChild();
|
||||||
|
},
|
||||||
|
"_makeContentForwarder":function(f) {
|
||||||
|
return this._parent._makeContentForwarder(f);
|
||||||
|
},
|
||||||
|
"wrap":function(x) {
|
||||||
|
return this._parent.wrap(x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -532,10 +643,11 @@ Zotero.Translate.IO.maintainedInstances = [];
|
||||||
|
|
||||||
/******* (Native) Read support *******/
|
/******* (Native) Read support *******/
|
||||||
|
|
||||||
Zotero.Translate.IO.Read = function(file, mode) {
|
Zotero.Translate.IO.Read = function(file, sandboxManager) {
|
||||||
Zotero.Translate.IO.maintainedInstances.push(this);
|
Zotero.Translate.IO.maintainedInstances.push(this);
|
||||||
|
|
||||||
this.file = file;
|
this.file = file;
|
||||||
|
this._sandboxManager = sandboxManager;
|
||||||
|
|
||||||
// open file
|
// open file
|
||||||
this._openRawStream();
|
this._openRawStream();
|
||||||
|
@ -800,7 +912,7 @@ Zotero.Translate.IO.Read.prototype = {
|
||||||
this._xmlInvalid = true;
|
this._xmlInvalid = true;
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
return (Zotero.isFx ? Zotero.Translate.DOMWrapper.wrap(xml) : xml);
|
return (Zotero.isFx ? this._sandboxManager.wrap(xml) : xml);
|
||||||
},
|
},
|
||||||
|
|
||||||
"init":function(newMode, callback) {
|
"init":function(newMode, callback) {
|
||||||
|
|
|
@ -217,29 +217,42 @@ Zotero.Translate.ItemSaver.prototype = {
|
||||||
},
|
},
|
||||||
|
|
||||||
"_saveAttachmentFile":function(attachment, parentID, attachmentCallback) {
|
"_saveAttachmentFile":function(attachment, parentID, attachmentCallback) {
|
||||||
const urlRe = /(([a-z][-+\.a-z0-9]*):\/\/[^\s]*)/i; //according to RFC3986
|
|
||||||
Zotero.debug("Translate: Adding attachment", 4);
|
Zotero.debug("Translate: Adding attachment", 4);
|
||||||
|
|
||||||
if(!attachment.url && !attachment.path) {
|
if(!attachment.url && !attachment.path) {
|
||||||
Zotero.debug("Translate: Ignoring attachment: no path or URL specified", 2);
|
let e = "Translate: Ignoring attachment: no path or URL specified";
|
||||||
|
Zotero.debug(e, 2);
|
||||||
|
attachmentCallback(attachment, false, e);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!attachment.path) {
|
if(!attachment.path) {
|
||||||
|
let url = Zotero.Attachments.cleanAttachmentURI(attachment.url);
|
||||||
|
if (!url) {
|
||||||
|
let e = "Translate: Invalid attachment URL specified <" + attachment.url + ">";
|
||||||
|
Zotero.debug(e, 2);
|
||||||
|
attachmentCallback(attachment, false, e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
attachment.url = url;
|
||||||
|
url = Components.classes["@mozilla.org/network/io-service;1"]
|
||||||
|
.getService(Components.interfaces.nsIIOService)
|
||||||
|
.newURI(url, null, null); // This cannot fail, since we check above
|
||||||
|
|
||||||
// see if this is actually a file URL
|
// see if this is actually a file URL
|
||||||
var m = urlRe.exec(attachment.url);
|
if(url.scheme == "file") {
|
||||||
var protocol = m ? m[2].toLowerCase() : "file";
|
|
||||||
if(protocol == "file") {
|
|
||||||
attachment.path = attachment.url;
|
attachment.path = attachment.url;
|
||||||
attachment.url = false;
|
attachment.url = false;
|
||||||
} else if(protocol != "http" && protocol != "https") {
|
} else if(url.scheme != "http" && url.scheme != "https") {
|
||||||
Zotero.debug("Translate: Unrecognized protocol "+protocol, 2);
|
let e = "Translate: " + url.scheme + " protocol is not allowed for attachments from translators.";
|
||||||
|
Zotero.debug(e, 2);
|
||||||
|
attachmentCallback(attachment, false, e);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!attachment.path) {
|
if(!attachment.path) {
|
||||||
// create from URL
|
// At this point, must be a valid HTTP/HTTPS url
|
||||||
attachment.linkMode = "linked_file";
|
attachment.linkMode = "linked_file";
|
||||||
try {
|
try {
|
||||||
var myID = Zotero.Attachments.linkFromURL(attachment.url, parentID,
|
var myID = Zotero.Attachments.linkFromURL(attachment.url, parentID,
|
||||||
|
@ -399,9 +412,10 @@ Zotero.Translate.ItemSaver.prototype = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var doc = undefined;
|
||||||
if(attachment.document) {
|
if(attachment.document) {
|
||||||
attachment.document = Zotero.Translate.DOMWrapper.unwrap(attachment.document);
|
doc = new XPCNativeWrapper(Zotero.Translate.DOMWrapper.unwrap(attachment.document));
|
||||||
if(!attachment.title) attachment.title = attachment.document.title;
|
if(!attachment.title) attachment.title = doc.title;
|
||||||
}
|
}
|
||||||
var title = attachment.title || null;
|
var title = attachment.title || null;
|
||||||
if(!title) {
|
if(!title) {
|
||||||
|
@ -412,39 +426,49 @@ Zotero.Translate.ItemSaver.prototype = {
|
||||||
if(attachment.snapshot === false || !this._saveFiles) {
|
if(attachment.snapshot === false || !this._saveFiles) {
|
||||||
// if snapshot is explicitly set to false, attach as link
|
// if snapshot is explicitly set to false, attach as link
|
||||||
attachment.linkMode = "linked_url";
|
attachment.linkMode = "linked_url";
|
||||||
if(attachment.document) {
|
let url, mimeType;
|
||||||
try {
|
if(doc) {
|
||||||
Zotero.Attachments.linkFromURL(attachment.document.location.href, parentID,
|
url = doc.location.href;
|
||||||
(attachment.mimeType ? attachment.mimeType : attachment.document.contentType),
|
mimeType = attachment.mimeType ? attachment.mimeType : doc.contentType;
|
||||||
title);
|
|
||||||
attachmentCallback(attachment, 100);
|
|
||||||
} catch(e) {
|
|
||||||
Zotero.debug("Translate: Error adding attachment "+attachment.url, 2);
|
|
||||||
attachmentCallback(attachment, false, e);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
} else {
|
} else {
|
||||||
if(!attachment.mimeType || !title) {
|
url = attachment.url
|
||||||
Zotero.debug("Translate: Either mimeType or title is missing; attaching file will be slower", 3);
|
mimeType = attachment.mimeType ? attachment.mimeType : undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
let cleanURI = Zotero.Attachments.cleanAttachmentURI(url);
|
||||||
|
if (!cleanURI) {
|
||||||
|
let e = "Translate: Invalid attachment URL specified <" + url + ">";
|
||||||
|
Zotero.debug(e, 2);
|
||||||
|
attachmentCallback(attachment, false, e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
url = Components.classes["@mozilla.org/network/io-service;1"]
|
||||||
|
.getService(Components.interfaces.nsIIOService)
|
||||||
|
.newURI(cleanURI, null, null); // This cannot fail, since we check above
|
||||||
|
|
||||||
|
// Only HTTP/HTTPS links are allowed
|
||||||
|
if(url.scheme != "http" && url.scheme != "https") {
|
||||||
|
let e = "Translate: " + url.scheme + " protocol is not allowed for attachments from translators.";
|
||||||
|
Zotero.debug(e, 2);
|
||||||
|
attachmentCallback(attachment, false, e);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Zotero.Attachments.linkFromURL(attachment.url, parentID,
|
Zotero.Attachments.linkFromURL(cleanURI, parentID, mimeType, title);
|
||||||
(attachment.mimeType ? attachment.mimeType : undefined),
|
|
||||||
title);
|
|
||||||
attachmentCallback(attachment, 100);
|
attachmentCallback(attachment, 100);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
Zotero.debug("Translate: Error adding attachment "+attachment.url, 2);
|
Zotero.debug("Translate: Error adding attachment "+attachment.url, 2);
|
||||||
attachmentCallback(attachment, false, e);
|
attachmentCallback(attachment, false, e);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// if snapshot is not explicitly set to false, retrieve snapshot
|
// if snapshot is not explicitly set to false, retrieve snapshot
|
||||||
if(attachment.document) {
|
if(doc) {
|
||||||
try {
|
try {
|
||||||
attachment.linkMode = "imported_url";
|
attachment.linkMode = "imported_url";
|
||||||
Zotero.Attachments.importFromDocument(attachment.document,
|
Zotero.Attachments.importFromDocument(doc,
|
||||||
parentID, title, null, function(status, err) {
|
parentID, title, null, function(status, err) {
|
||||||
if(status) {
|
if(status) {
|
||||||
attachmentCallback(attachment, 100);
|
attachmentCallback(attachment, 100);
|
||||||
|
|
|
@ -229,7 +229,7 @@ Zotero.Utilities = {
|
||||||
*/
|
*/
|
||||||
"trimInternal":function(/**String*/ s) {
|
"trimInternal":function(/**String*/ s) {
|
||||||
if (typeof(s) != "string") {
|
if (typeof(s) != "string") {
|
||||||
throw "trimInternal: argument must be a string";
|
throw new Error("trimInternal: argument must be a string");
|
||||||
}
|
}
|
||||||
|
|
||||||
s = s.replace(/[\xA0\r\n\s]+/g, " ");
|
s = s.replace(/[\xA0\r\n\s]+/g, " ");
|
||||||
|
@ -1046,11 +1046,11 @@ Zotero.Utilities = {
|
||||||
// For some reason, if elements is wrapped by an object
|
// For some reason, if elements is wrapped by an object
|
||||||
// Xray, we won't be able to unwrap the DOMWrapper around
|
// Xray, we won't be able to unwrap the DOMWrapper around
|
||||||
// the element. So waive the object Xray.
|
// the element. So waive the object Xray.
|
||||||
var element = elements.wrappedJSObject ? elements.wrappedJSObject[i] : elements[i];
|
var maybeWrappedEl = elements.wrappedJSObject ? elements.wrappedJSObject[i] : elements[i];
|
||||||
|
|
||||||
// Firefox 5 hack, so we will preserve Fx5DOMWrappers
|
// Firefox 5 hack, so we will preserve Fx5DOMWrappers
|
||||||
var isWrapped = Zotero.Translate.DOMWrapper && Zotero.Translate.DOMWrapper.isWrapped(element);
|
var isWrapped = Zotero.Translate.DOMWrapper && Zotero.Translate.DOMWrapper.isWrapped(maybeWrappedEl);
|
||||||
if(isWrapped) element = Zotero.Translate.DOMWrapper.unwrap(element);
|
var element = isWrapped ? Zotero.Translate.DOMWrapper.unwrap(maybeWrappedEl) : maybeWrappedEl;
|
||||||
|
|
||||||
// We waived the object Xray above, which will waive the
|
// We waived the object Xray above, which will waive the
|
||||||
// DOM Xray, so make sure we have a DOM Xray wrapper.
|
// DOM Xray, so make sure we have a DOM Xray wrapper.
|
||||||
|
@ -1083,7 +1083,7 @@ Zotero.Utilities = {
|
||||||
var newEl;
|
var newEl;
|
||||||
while(newEl = xpathObject.iterateNext()) {
|
while(newEl = xpathObject.iterateNext()) {
|
||||||
// Firefox 5 hack
|
// Firefox 5 hack
|
||||||
results.push(isWrapped ? Zotero.Translate.DOMWrapper.wrap(newEl) : newEl);
|
results.push(isWrapped ? Zotero.Translate.DOMWrapper.wrapIn(newEl, maybeWrappedEl) : newEl);
|
||||||
}
|
}
|
||||||
} else if("selectNodes" in element) {
|
} else if("selectNodes" in element) {
|
||||||
// We use JavaScript-XPath in IE for HTML documents, but with an XML
|
// We use JavaScript-XPath in IE for HTML documents, but with an XML
|
||||||
|
@ -1125,6 +1125,8 @@ Zotero.Utilities = {
|
||||||
var strings = new Array(elements.length);
|
var strings = new Array(elements.length);
|
||||||
for(var i=0, n=elements.length; i<n; i++) {
|
for(var i=0, n=elements.length; i<n; i++) {
|
||||||
var el = elements[i];
|
var el = elements[i];
|
||||||
|
if(el.wrappedJSObject) el = el.wrappedJSObject;
|
||||||
|
if(Zotero.Translate.DOMWrapper) el = Zotero.Translate.DOMWrapper.unwrap(el);
|
||||||
strings[i] =
|
strings[i] =
|
||||||
(el.nodeType === 2 /*ATTRIBUTE_NODE*/ && "value" in el) ? el.value
|
(el.nodeType === 2 /*ATTRIBUTE_NODE*/ && "value" in el) ? el.value
|
||||||
: "textContent" in el ? el.textContent
|
: "textContent" in el ? el.textContent
|
||||||
|
@ -1159,8 +1161,42 @@ Zotero.Utilities = {
|
||||||
*
|
*
|
||||||
* Adapted from http://binnyva.blogspot.com/2005/10/dump-function-javascript-equivalent-of.html
|
* Adapted from http://binnyva.blogspot.com/2005/10/dump-function-javascript-equivalent-of.html
|
||||||
*/
|
*/
|
||||||
"varDump":function(arr,level,maxLevel,parentObjects,path) {
|
"varDump": function(obj,level,maxLevel,parentObjects,path) {
|
||||||
var dumped_text = "";
|
// Simple dump
|
||||||
|
var type = typeof obj;
|
||||||
|
if (type == 'number' || type == 'undefined' || type == 'boolean' || obj === null) {
|
||||||
|
if (!level) {
|
||||||
|
// When dumping these directly, make sure to distinguish them from regular
|
||||||
|
// strings as output by Zotero.debug (i.e. no quotes)
|
||||||
|
return '===>' + obj + '<=== (' + type + ')';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return '' + obj;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (type == 'string') {
|
||||||
|
return JSON.stringify(obj);
|
||||||
|
}
|
||||||
|
else if (type == 'function') {
|
||||||
|
var funcStr = ('' + obj).trim();
|
||||||
|
if (!level) {
|
||||||
|
// Dump function contents as well if only dumping function
|
||||||
|
return funcStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display [native code] label for native functions, but make it one line
|
||||||
|
if (/^[^{]+{\s*\[native code\]\s*}$/i.test(funcStr)) {
|
||||||
|
return funcStr.replace(/\s*(\[native code\])\s*/i, ' $1 ');
|
||||||
|
}
|
||||||
|
|
||||||
|
// For non-native functions, display an elipsis
|
||||||
|
return ('' + obj).replace(/{[\s\S]*}/, '{...}');
|
||||||
|
}
|
||||||
|
else if (type != 'object') {
|
||||||
|
return '<<Unknown type: ' + type + '>> ' + obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
// More complex dump with indentation for objects
|
||||||
if (level === undefined) {
|
if (level === undefined) {
|
||||||
level = 0;
|
level = 0;
|
||||||
}
|
}
|
||||||
|
@ -1169,86 +1205,89 @@ Zotero.Utilities = {
|
||||||
maxLevel = 4;
|
maxLevel = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var objType = Object.prototype.toString.call(obj);
|
||||||
|
|
||||||
|
if (level > maxLevel) {
|
||||||
|
return objType + " <<Maximum depth reached>>";
|
||||||
|
}
|
||||||
|
|
||||||
// The padding given at the beginning of the line.
|
// The padding given at the beginning of the line.
|
||||||
var level_padding = "";
|
var level_padding = "";
|
||||||
for (var j=0; j<level+1; j++) {
|
for (var j=0; j<level+1; j++) {
|
||||||
level_padding += " ";
|
level_padding += " ";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (level > maxLevel){
|
//Special handling for Error
|
||||||
return dumped_text + level_padding + "<<Maximum depth reached>>...\n";
|
var isError = obj instanceof Error;
|
||||||
|
if (!isError && obj.constructor) {
|
||||||
|
switch (obj.constructor.name) {
|
||||||
|
case 'Error':
|
||||||
|
case 'EvalError':
|
||||||
|
case 'RangeError':
|
||||||
|
case 'ReferenceError':
|
||||||
|
case 'SyntaxError':
|
||||||
|
case 'TypeError':
|
||||||
|
case 'URIError':
|
||||||
|
isError = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isError) {
|
||||||
|
return (obj.constructor.name ? obj.constructor.name : 'Error') + ': '
|
||||||
|
+ (obj.message ? ('' + obj.message).replace(/^/gm, level_padding).trim() : '')
|
||||||
|
+ '\n' + level_padding + "===== Stack Trace =====\n"
|
||||||
|
+ (obj.stack ? obj.stack.trim().replace(/^(?=.)/gm, level_padding) : '')
|
||||||
|
+ '\n' + level_padding + "=======================";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof(arr) == 'object') { // Array/Hashes/Objects
|
// Only dump single level for nsIDOMNode objects (including document)
|
||||||
var isRequest = Zotero.isFx && !Zotero.isBookmarklet
|
if (Zotero.isFx && !Zotero.isBookmarklet
|
||||||
&& arr instanceof Components.interfaces.nsIRequest;
|
&& obj instanceof Components.interfaces.nsIDOMNode
|
||||||
|
) {
|
||||||
|
level = maxLevel;
|
||||||
|
}
|
||||||
|
|
||||||
//array for checking recursion
|
// Recursion checking
|
||||||
//initialise at first itteration
|
|
||||||
if(!parentObjects) {
|
if(!parentObjects) {
|
||||||
parentObjects = [arr];
|
parentObjects = [obj];
|
||||||
path = ['ROOT'];
|
path = ['ROOT'];
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var item in arr) {
|
var isArray = objType == '[object Array]'
|
||||||
|
var dumpedText = isArray ? '[' : objType + ' {';
|
||||||
|
for (var prop in obj) {
|
||||||
|
dumpedText += '\n' + level_padding + JSON.stringify(prop) + ": ";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Don't display nsIRequest.name, which can contain password
|
var value = obj[prop];
|
||||||
if (isRequest && item == 'name') {
|
|
||||||
dumped_text += level_padding + "'" + item + "' => <<Skipped>>\n";
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
var value = arr[item];
|
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
dumped_text += level_padding + "'" + item + "' => <<Access Denied>>\n";
|
dumpedText += "<<Access Denied>>";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof(value) == 'object') { // If it is an array
|
// Check for recursion
|
||||||
//check for recursion
|
if (typeof(value) == 'object') {
|
||||||
var i = parentObjects.indexOf(value);
|
var i = parentObjects.indexOf(value);
|
||||||
if(i != -1) {
|
if(i != -1) {
|
||||||
var parentName = path.slice(0,i+1).join('->');
|
var parentName = path.slice(0,i+1).join('->');
|
||||||
dumped_text += level_padding + "'" + item + "' => <<Reference to parent object " + parentName + " >>\n";
|
dumpedText += "<<Reference to parent object " + parentName + " >>";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var openBrace = '{', closeBrace = '}';
|
|
||||||
var type = Object.prototype.toString.call(value);
|
|
||||||
if(type == '[object Array]') {
|
|
||||||
openBrace = '[';
|
|
||||||
closeBrace = ']';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dumped_text += level_padding + "'" + item + "' => " + type + ' ' + openBrace;
|
|
||||||
//only recurse if there's anything in the object, purely cosmetical
|
|
||||||
try {
|
try {
|
||||||
for(var i in value) {
|
dumpedText += Zotero.Utilities.varDump(value,level+1,maxLevel,parentObjects.concat([value]),path.concat([prop]));
|
||||||
dumped_text += "\n" + Zotero.Utilities.varDump(value,level+1,maxLevel,parentObjects.concat([value]),path.concat([item])) + level_padding;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
dumped_text += "<<Error processing object:\n" + e + ">>\n";
|
dumpedText += "<<Error processing property: " + e.message + " (" + value + ")>>";
|
||||||
}
|
|
||||||
dumped_text += closeBrace + "\n";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (typeof value == 'function'){
|
|
||||||
dumped_text += level_padding + "'" + item + "' => function(...){...} \n";
|
|
||||||
}
|
|
||||||
else if (typeof value == 'number') {
|
|
||||||
dumped_text += level_padding + "'" + item + "' => " + value + "\n";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var lastChar = dumpedText.charAt(dumpedText.length - 1);
|
||||||
|
if (lastChar != '[' && lastChar != '{') {
|
||||||
|
dumpedText += '\n' + level_padding.substr(4);
|
||||||
}
|
}
|
||||||
}
|
dumpedText += isArray ? ']' : '}';
|
||||||
else { // Stings/Chars/Numbers etc.
|
|
||||||
dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
|
return dumpedText;
|
||||||
}
|
|
||||||
return dumped_text;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -193,6 +193,23 @@ Zotero.Utilities.Internal = {
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the byte length of a UTF-8 string
|
||||||
|
*
|
||||||
|
* http://stackoverflow.com/a/23329386
|
||||||
|
*/
|
||||||
|
byteLength: function (str) {
|
||||||
|
var s = str.length;
|
||||||
|
for (var i=str.length-1; i>=0; i--) {
|
||||||
|
var code = str.charCodeAt(i);
|
||||||
|
if (code > 0x7f && code <= 0x7ff) s++;
|
||||||
|
else if (code > 0x7ff && code <= 0xffff) s+=2;
|
||||||
|
if (code >= 0xDC00 && code <= 0xDFFF) i--; //trail surrogate
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display a prompt from an error with custom buttons and a callback
|
* Display a prompt from an error with custom buttons and a callback
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -268,9 +268,9 @@ Zotero.Utilities.Translate.prototype.processDocuments = function(urls, processor
|
||||||
if(!processor) return;
|
if(!processor) return;
|
||||||
|
|
||||||
var newLoc = doc.location;
|
var newLoc = doc.location;
|
||||||
if(Zotero.isFx && (protocol != newLoc.protocol || host != newLoc.host)) {
|
if(Zotero.isFx && !Zotero.isBookmarklet && (protocol != newLoc.protocol || host != newLoc.host)) {
|
||||||
// Cross-site; need to wrap
|
// Cross-site; need to wrap
|
||||||
processor(Zotero.Translate.DOMWrapper.wrap(doc), newLoc.toString());
|
processor(translate._sandboxManager.wrap(doc), newLoc.toString());
|
||||||
} else {
|
} else {
|
||||||
// Not cross-site; no need to wrap
|
// Not cross-site; no need to wrap
|
||||||
processor(doc, newLoc.toString());
|
processor(doc, newLoc.toString());
|
||||||
|
|
|
@ -23,24 +23,8 @@
|
||||||
***** END LICENSE BLOCK *****
|
***** END LICENSE BLOCK *****
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const ZOTERO_CONFIG = {
|
|
||||||
GUID: 'zotero@chnm.gmu.edu',
|
|
||||||
REPOSITORY_URL: 'https://repo.zotero.org/repo',
|
|
||||||
REPOSITORY_CHECK_INTERVAL: 86400, // 24 hours
|
|
||||||
REPOSITORY_RETRY_INTERVAL: 3600, // 1 hour
|
|
||||||
BASE_URI: 'http://zotero.org/',
|
|
||||||
WWW_BASE_URL: 'http://www.zotero.org/',
|
|
||||||
PROXY_AUTH_URL: 'http://zotero.org.s3.amazonaws.com/proxy-auth',
|
|
||||||
SYNC_URL: 'https://sync.zotero.org/',
|
|
||||||
API_URL: 'https://api.zotero.org/',
|
|
||||||
API_VERSION: 2,
|
|
||||||
PREF_BRANCH: 'extensions.zotero.',
|
|
||||||
BOOKMARKLET_ORIGIN : 'https://www.zotero.org',
|
|
||||||
HTTP_BOOKMARKLET_ORIGIN : 'http://www.zotero.org',
|
|
||||||
BOOKMARKLET_URL: 'https://www.zotero.org/bookmarklet/'
|
|
||||||
};
|
|
||||||
|
|
||||||
// Commonly used imports accessible anywhere
|
// Commonly used imports accessible anywhere
|
||||||
|
Components.utils.import("resource://zotero/config.js");
|
||||||
Components.utils.import("resource://zotero/q.js");
|
Components.utils.import("resource://zotero/q.js");
|
||||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||||
|
@ -63,7 +47,6 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
|
||||||
this.logError = logError;
|
this.logError = logError;
|
||||||
this.getErrors = getErrors;
|
this.getErrors = getErrors;
|
||||||
this.getSystemInfo = getSystemInfo;
|
this.getSystemInfo = getSystemInfo;
|
||||||
this.safeDebug = safeDebug;
|
|
||||||
this.getString = getString;
|
this.getString = getString;
|
||||||
this.localeJoin = localeJoin;
|
this.localeJoin = localeJoin;
|
||||||
this.setFontSize = setFontSize;
|
this.setFontSize = setFontSize;
|
||||||
|
@ -1319,10 +1302,11 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Log a JS error to the Mozilla JS error console.
|
* Log a JS error to Mozilla JS error console and debug output
|
||||||
* @param {Exception} err
|
* @param {Exception} err
|
||||||
*/
|
*/
|
||||||
function logError(err) {
|
function logError(err) {
|
||||||
|
Zotero.debug(err, 1);
|
||||||
log(err.message ? err.message : err.toString(), "error",
|
log(err.message ? err.message : err.toString(), "error",
|
||||||
err.fileName ? err.fileName : (err.filename ? err.filename : null), null,
|
err.fileName ? err.fileName : (err.filename ? err.filename : null), null,
|
||||||
err.lineNumber ? err.lineNumber : null, null);
|
err.lineNumber ? err.lineNumber : null, null);
|
||||||
|
@ -1419,22 +1403,6 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
|
||||||
AddonManager.getAllAddons(onHaveInstalledAddons);
|
AddonManager.getAllAddons(onHaveInstalledAddons);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function safeDebug(obj){
|
|
||||||
for (var i in obj){
|
|
||||||
try {
|
|
||||||
Zotero.debug(i + ': ' + obj[i]);
|
|
||||||
}
|
|
||||||
catch (e){
|
|
||||||
try {
|
|
||||||
Zotero.debug(i + ': ERROR');
|
|
||||||
}
|
|
||||||
catch (e){}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function getString(name, params){
|
function getString(name, params){
|
||||||
try {
|
try {
|
||||||
if (params != undefined){
|
if (params != undefined){
|
||||||
|
@ -1448,6 +1416,13 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e){
|
catch (e){
|
||||||
|
if (e.name == 'NS_ERROR_ILLEGAL_VALUE') {
|
||||||
|
Zotero.debug(params, 1);
|
||||||
|
}
|
||||||
|
else if (e.name != 'NS_ERROR_FAILURE') {
|
||||||
|
Components.utils.reportError(e);
|
||||||
|
Zotero.debug(e, 1);
|
||||||
|
}
|
||||||
throw ('Localized string not available for ' + name);
|
throw ('Localized string not available for ' + name);
|
||||||
}
|
}
|
||||||
return l10n;
|
return l10n;
|
||||||
|
@ -2660,6 +2635,9 @@ Zotero.DragDrop = {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var win = sourceNode.ownerDocument.defaultView;
|
var win = sourceNode.ownerDocument.defaultView;
|
||||||
|
if (win.document.documentElement.getAttribute('windowtype') == 'zotero:search') {
|
||||||
|
return win.ZoteroAdvancedSearch.itemsView.itemGroup;
|
||||||
|
}
|
||||||
return win.ZoteroPane.collectionsView.itemGroup;
|
return win.ZoteroPane.collectionsView.itemGroup;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -123,6 +123,12 @@ var ZoteroPane = new function()
|
||||||
document.getElementById('zotero-pane-stack').setAttribute('platform', 'win');
|
document.getElementById('zotero-pane-stack').setAttribute('platform', 'win');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Use pre-Yosemite search fields before Fx34
|
||||||
|
// See note in chrome/content/zotero-platform/mac/overlay.css
|
||||||
|
if (Zotero.isMac && Zotero.platformMajorVersion < 34 && Zotero.oscpu.contains(' 10.10')) {
|
||||||
|
document.getElementById('zotero-pane-stack').setAttribute('oldsearchfield', 'true')
|
||||||
|
}
|
||||||
|
|
||||||
// register an observer for Zotero reload
|
// register an observer for Zotero reload
|
||||||
observerService = Components.classes["@mozilla.org/observer-service;1"]
|
observerService = Components.classes["@mozilla.org/observer-service;1"]
|
||||||
.getService(Components.interfaces.nsIObserverService);
|
.getService(Components.interfaces.nsIObserverService);
|
||||||
|
@ -588,7 +594,7 @@ var ZoteroPane = new function()
|
||||||
}
|
}
|
||||||
else if ((event.keyCode == event.DOM_VK_BACK_SPACE && Zotero.isMac) ||
|
else if ((event.keyCode == event.DOM_VK_BACK_SPACE && Zotero.isMac) ||
|
||||||
event.keyCode == event.DOM_VK_DELETE) {
|
event.keyCode == event.DOM_VK_DELETE) {
|
||||||
// If Cmd/Ctrl delete, use forced mode, which does different
|
// If Cmd/Shift delete, use forced mode, which does different
|
||||||
// things depending on the context
|
// things depending on the context
|
||||||
var force = event.metaKey || (!Zotero.isMac && event.shiftKey);
|
var force = event.metaKey || (!Zotero.isMac && event.shiftKey);
|
||||||
ZoteroPane_Local.deleteSelectedItems(force);
|
ZoteroPane_Local.deleteSelectedItems(force);
|
||||||
|
@ -3036,19 +3042,13 @@ var ZoteroPane = new function()
|
||||||
this.displayCannotEditLibraryMessage();
|
this.displayCannotEditLibraryMessage();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
|
|
||||||
.getService(Components.interfaces.nsIPromptService);
|
|
||||||
|
|
||||||
var input = {};
|
var io = {};
|
||||||
var check = {value : false};
|
window.openDialog('chrome://zotero/content/attachLink.xul',
|
||||||
|
'zotero-attach-uri-dialog', 'centerscreen, modal', io);
|
||||||
// TODO: Allow title to be specified?
|
if (io.out) {
|
||||||
var result = ps.prompt(null, Zotero.getString('pane.items.attach.link.uri.title'),
|
Zotero.Attachments.linkFromURL(io.out.link, itemID, null, io.out.title);
|
||||||
Zotero.getString('pane.items.attach.link.uri'), input, "", {});
|
}
|
||||||
if (!result || !input.value) return false;
|
|
||||||
|
|
||||||
// Create a new attachment
|
|
||||||
Zotero.Attachments.linkFromURL(input.value, itemID);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4102,18 +4102,51 @@ var ZoteroPane = new function()
|
||||||
*/
|
*/
|
||||||
this.updateToolbarPosition = function() {
|
this.updateToolbarPosition = function() {
|
||||||
if(document.getElementById("zotero-pane-stack").hidden) return;
|
if(document.getElementById("zotero-pane-stack").hidden) return;
|
||||||
const PANES = ["collections", "items"];
|
|
||||||
for each(var paneName in PANES) {
|
|
||||||
var pane = document.getElementById("zotero-"+paneName+"-pane");
|
|
||||||
var splitter = document.getElementById("zotero-"+paneName+"-splitter");
|
|
||||||
var toolbar = document.getElementById("zotero-"+paneName+"-toolbar");
|
|
||||||
|
|
||||||
var paneComputedStyle = window.getComputedStyle(pane, null);
|
var collectionsPane = document.getElementById("zotero-collections-pane");
|
||||||
var splitterComputedStyle = window.getComputedStyle(splitter, null);
|
var collectionsToolbar = document.getElementById("zotero-collections-toolbar");
|
||||||
|
var collectionsSplitter = document.getElementById("zotero-collections-splitter");
|
||||||
|
var itemsPane = document.getElementById("zotero-items-pane");
|
||||||
|
var itemsToolbar = document.getElementById("zotero-items-toolbar");
|
||||||
|
var itemsSplitter = document.getElementById("zotero-items-splitter");
|
||||||
|
var itemPane = document.getElementById("zotero-item-pane");
|
||||||
|
var itemToolbar = document.getElementById("zotero-item-toolbar");
|
||||||
|
|
||||||
toolbar.style.width = paneComputedStyle.getPropertyValue("width");
|
var collectionsPaneComputedStyle = window.getComputedStyle(collectionsPane, null);
|
||||||
toolbar.style.marginRight = splitterComputedStyle.getPropertyValue("width");
|
var collectionsSplitterComputedStyle = window.getComputedStyle(collectionsSplitter, null);
|
||||||
|
var itemsPaneComputedStyle = window.getComputedStyle(itemsPane, null);
|
||||||
|
var itemsSplitterComputedStyle = window.getComputedStyle(itemsSplitter, null);
|
||||||
|
var itemPaneComputedStyle = window.getComputedStyle(itemPane, null);
|
||||||
|
|
||||||
|
var collectionsPaneWidth = collectionsPaneComputedStyle.getPropertyValue("width");
|
||||||
|
var collectionsSplitterWidth = collectionsSplitterComputedStyle.getPropertyValue("width");
|
||||||
|
var itemsPaneWidth = itemsPaneComputedStyle.getPropertyValue("width");
|
||||||
|
var itemsSplitterWidth = itemsSplitterComputedStyle.getPropertyValue("width");
|
||||||
|
var itemPaneWidth = itemPaneComputedStyle.getPropertyValue("width");
|
||||||
|
|
||||||
|
collectionsToolbar.style.width = collectionsPaneWidth;
|
||||||
|
collectionsToolbar.style.marginRight = collectionsSplitterWidth;
|
||||||
|
itemsToolbar.style.marginRight = itemsSplitterWidth;
|
||||||
|
|
||||||
|
var itemsToolbarWidthNumber = parseInt(itemsPaneWidth, 10);
|
||||||
|
|
||||||
|
if (collectionsPane.collapsed) {
|
||||||
|
var collectionsToolbarComputedStyle = window.getComputedStyle(collectionsToolbar, null);
|
||||||
|
var collectionsToolbarWidth = collectionsToolbarComputedStyle.getPropertyValue("width");// real width (nonzero) after the new definition
|
||||||
|
itemsToolbarWidthNumber = itemsToolbarWidthNumber-parseInt(collectionsToolbarWidth, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (itemPane.collapsed) {
|
||||||
|
// Then the itemsToolbar and itemToolbar share the same space, and it seems best to use some flex attribute from right (because there might be other icons appearing or vanishing).
|
||||||
|
itemsToolbar.style.removeProperty('width');
|
||||||
|
itemsToolbar.setAttribute("flex", "1");
|
||||||
|
itemToolbar.setAttribute("flex", "0");
|
||||||
|
} else {
|
||||||
|
itemsToolbar.style.width = itemsToolbarWidthNumber + "px";
|
||||||
|
itemsToolbar.setAttribute("flex", "0");
|
||||||
|
itemToolbar.setAttribute("flex", "1");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -174,7 +174,7 @@
|
||||||
<menuitem class="menuitem-iconic zotero-menuitem-attachments-web-link standalone-no-display" 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 standalone-no-display" 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);"/>
|
||||||
<menuitem class="menuitem-iconic zotero-menuitem-attachments-file" label="&zotero.items.menu.attach.file;" oncommand="var itemID = ZoteroPane_Local.getSelectedItems()[0].id; ZoteroPane_Local.addAttachmentFromDialog(false, itemID);"/>
|
<menuitem class="menuitem-iconic zotero-menuitem-attachments-file" label="&zotero.items.menu.attach.file;" oncommand="var itemID = ZoteroPane_Local.getSelectedItems()[0].id; ZoteroPane_Local.addAttachmentFromDialog(false, itemID);"/>
|
||||||
<menuitem class="menuitem-iconic zotero-menuitem-attachments-link" label="&zotero.items.menu.attach.fileLink;" oncommand="var itemID = ZoteroPane_Local.getSelectedItems()[0].id; ZoteroPane_Local.addAttachmentFromDialog(true, itemID);"/>
|
<menuitem class="menuitem-iconic zotero-menuitem-attachments-link" label="&zotero.items.menu.attach.fileLink;" oncommand="var itemID = ZoteroPane_Local.getSelectedItems()[0].id; ZoteroPane_Local.addAttachmentFromDialog(true, itemID);" id="zotero-tb-attachment-add-file-link"/>
|
||||||
</menupopup>
|
</menupopup>
|
||||||
</toolbarbutton>
|
</toolbarbutton>
|
||||||
<toolbarseparator/>
|
<toolbarseparator/>
|
||||||
|
@ -538,9 +538,11 @@
|
||||||
</deck>
|
</deck>
|
||||||
</vbox>
|
</vbox>
|
||||||
|
|
||||||
<splitter id="zotero-items-splitter" resizebefore="closest" resizeafter="closest"
|
<splitter id="zotero-items-splitter" resizebefore="closest" resizeafter="closest" collapse="after" zotero-persist="state"
|
||||||
onmousemove="ZoteroPane_Local.updateToolbarPosition()"
|
onmousemove="ZoteroPane_Local.updateToolbarPosition()"
|
||||||
oncommand="ZoteroPane_Local.updateToolbarPosition()"/>
|
oncommand="ZoteroPane_Local.updateToolbarPosition()">
|
||||||
|
<grippy id="zotero-items-grippy"/>
|
||||||
|
</splitter>
|
||||||
|
|
||||||
<!-- itemPane.xul -->
|
<!-- itemPane.xul -->
|
||||||
<vbox id="zotero-item-pane"/>
|
<vbox id="zotero-item-pane"/>
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
||||||
pane.items.loading=Loading items list...
|
pane.items.loading=Loading items list...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=More Columns
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Move to Trash
|
pane.items.trash.title=Move to Trash
|
||||||
pane.items.trash=Are you sure you want to move the selected item to the Trash?
|
pane.items.trash=Are you sure you want to move the selected item to the Trash?
|
||||||
pane.items.trash.multiple=Are you sure you want to move the selected items to the Trash?
|
pane.items.trash.multiple=Are you sure you want to move the selected items to the Trash?
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "احفظ في زوتيرو">
|
<!ENTITY zotero.downloadManager.label "احفظ في زوتيرو">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
||||||
pane.items.loading=تحميل قائمة العناصر...
|
pane.items.loading=تحميل قائمة العناصر...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=More Columns
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=نقل لسلة المحذوفات
|
pane.items.trash.title=نقل لسلة المحذوفات
|
||||||
pane.items.trash=هل ترغب في نقل العنصر المحدد إلى سلة المحذوفات؟
|
pane.items.trash=هل ترغب في نقل العنصر المحدد إلى سلة المحذوفات؟
|
||||||
pane.items.trash.multiple=هل ترغب في نقل العناصر المحددة إلى سلة المحذوفات؟
|
pane.items.trash.multiple=هل ترغب في نقل العناصر المحددة إلى سلة المحذوفات؟
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
||||||
pane.items.loading=Зарежда списъка на записите...
|
pane.items.loading=Зарежда списъка на записите...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=More Columns
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Премества в кошчето за боклук
|
pane.items.trash.title=Премества в кошчето за боклук
|
||||||
pane.items.trash=Сигурни ли сте, че искате да преместите избраният запис в кошчето за боклук?
|
pane.items.trash=Сигурни ли сте, че искате да преместите избраният запис в кошчето за боклук?
|
||||||
pane.items.trash.multiple=Сигурни ли сте, че искате да преместите избраните записи в кошчето за боклук?
|
pane.items.trash.multiple=Сигурни ли сте, че искате да преместите избраните записи в кошчето за боклук?
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Desa al Zotero">
|
<!ENTITY zotero.downloadManager.label "Desa al Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Els adjunts no es poden desar a la biblioteca seleccionada. Aquest element es desarà a la biblioteca.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Els adjunts no es poden desar a la biblioteca seleccionada. Aquest element es desarà a la biblioteca.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "Per utilitzar aquesta funció, primer cal instal·lar les eines de PDF en les preferències del Zotero.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "Per utilitzar aquesta funció, primer cal instal·lar les eines de PDF en les preferències del Zotero.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,7 @@ errorReport.reportErrors=Notifica errors...
|
||||||
errorReport.reportInstructions=Podeu notificar aquest error seleccionat "%S" des del menú Accions (engranatge)
|
errorReport.reportInstructions=Podeu notificar aquest error seleccionat "%S" des del menú Accions (engranatge)
|
||||||
errorReport.followingReportWillBeSubmitted=The following report will be submitted:
|
errorReport.followingReportWillBeSubmitted=The following report will be submitted:
|
||||||
errorReport.noErrorsLogged=No errors have been logged since %S started.
|
errorReport.noErrorsLogged=No errors have been logged since %S started.
|
||||||
errorReport.advanceMessage=Press %S to send the report to the Zotero developers.
|
errorReport.advanceMessage=Premeu %S per enviar un informe als desenvolupadors de Zotero.
|
||||||
errorReport.stepsToReproduce=Passos per a reproduir-lo:
|
errorReport.stepsToReproduce=Passos per a reproduir-lo:
|
||||||
errorReport.expectedResult=Resultat esperat:
|
errorReport.expectedResult=Resultat esperat:
|
||||||
errorReport.actualResult=Resultat real:
|
errorReport.actualResult=Resultat real:
|
||||||
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Fins a %S etiquetes de cada biblioteca poden tenir color
|
||||||
pane.items.loading=Carregant la llista d'elements...
|
pane.items.loading=Carregant la llista d'elements...
|
||||||
pane.items.columnChooser.moreColumns=Més columnes
|
pane.items.columnChooser.moreColumns=Més columnes
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Mou a la paperera
|
pane.items.trash.title=Mou a la paperera
|
||||||
pane.items.trash=Segur que voleu moure l'element seleccionat a la paperera?
|
pane.items.trash=Segur que voleu moure l'element seleccionat a la paperera?
|
||||||
pane.items.trash.multiple=Segur que voleu moure els elements seleccionats a la paperera?
|
pane.items.trash.multiple=Segur que voleu moure els elements seleccionats a la paperera?
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!ENTITY zotero.search.name "Jméno:">
|
<!ENTITY zotero.search.name "Jméno:">
|
||||||
|
|
||||||
<!ENTITY zotero.search.searchInLibrary "Search in library:">
|
<!ENTITY zotero.search.searchInLibrary "Hledat v knihovně:">
|
||||||
|
|
||||||
<!ENTITY zotero.search.joinMode.prefix "Odpovídá">
|
<!ENTITY zotero.search.joinMode.prefix "Odpovídá">
|
||||||
<!ENTITY zotero.search.joinMode.any "některému">
|
<!ENTITY zotero.search.joinMode.any "některému">
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<!ENTITY zotero.general.cancel "Zrušit">
|
<!ENTITY zotero.general.cancel "Zrušit">
|
||||||
|
|
||||||
<!ENTITY zotero.errorReport.title "Chybová zpráva Zotera">
|
<!ENTITY zotero.errorReport.title "Chybová zpráva Zotera">
|
||||||
<!ENTITY zotero.errorReport.unrelatedMessages "This may include messages unrelated to Zotero.">
|
<!ENTITY zotero.errorReport.unrelatedMessages "Může obsahovat zprávy nesouvisející se Zoterem.">
|
||||||
<!ENTITY zotero.errorReport.submissionInProgress "Čekejte, prosím, dokud nebude zpráva o chybách odeslána.">
|
<!ENTITY zotero.errorReport.submissionInProgress "Čekejte, prosím, dokud nebude zpráva o chybách odeslána.">
|
||||||
<!ENTITY zotero.errorReport.submitted "Zpráva o chybách byla odeslána.">
|
<!ENTITY zotero.errorReport.submitted "Zpráva o chybách byla odeslána.">
|
||||||
<!ENTITY zotero.errorReport.reportID "ID hlášení:">
|
<!ENTITY zotero.errorReport.reportID "ID hlášení:">
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
<!ENTITY zotero.collections.showUnfiledItems "Zobrazit sjednocené položky">
|
<!ENTITY zotero.collections.showUnfiledItems "Zobrazit sjednocené položky">
|
||||||
|
|
||||||
<!ENTITY zotero.items.itemType "Typ položky">
|
<!ENTITY zotero.items.itemType "Typ položky">
|
||||||
<!ENTITY zotero.items.type_column "Item Type">
|
<!ENTITY zotero.items.type_column "Typ položky">
|
||||||
<!ENTITY zotero.items.title_column "Název">
|
<!ENTITY zotero.items.title_column "Název">
|
||||||
<!ENTITY zotero.items.creator_column "Tvůrce">
|
<!ENTITY zotero.items.creator_column "Tvůrce">
|
||||||
<!ENTITY zotero.items.date_column "Datum">
|
<!ENTITY zotero.items.date_column "Datum">
|
||||||
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Uložit do Zotera">
|
<!ENTITY zotero.downloadManager.label "Uložit do Zotera">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Do zvolené knihovny nemohou být uloženy přílohy. Tato položka bude místo toho uložena do vaší knihovny.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Do zvolené knihovny nemohou být uloženy přílohy. Tato položka bude místo toho uložena do vaší knihovny.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "Pokud chcete využít této funkce, musíte nejdříve v nastavení Zotera nainstalovat nástroje pro práci s PDF.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "Pokud chcete využít této funkce, musíte nejdříve v nastavení Zotera nainstalovat nástroje pro práci s PDF.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Připojit odkaz na URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Odkaz:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Název:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -81,9 +81,9 @@ upgrade.couldNotMigrate.restart=Pokud se tato zpráva objevuje opakovaně, resta
|
||||||
errorReport.reportError=Zpráva o chybě...
|
errorReport.reportError=Zpráva o chybě...
|
||||||
errorReport.reportErrors=Nahlásit chyby...
|
errorReport.reportErrors=Nahlásit chyby...
|
||||||
errorReport.reportInstructions=Můžete nahlásit tuto chybu volbou "%S" z menu Akce (ozubené kolečko).
|
errorReport.reportInstructions=Můžete nahlásit tuto chybu volbou "%S" z menu Akce (ozubené kolečko).
|
||||||
errorReport.followingReportWillBeSubmitted=The following report will be submitted:
|
errorReport.followingReportWillBeSubmitted=Bude odeslána následující zpráva:
|
||||||
errorReport.noErrorsLogged=No errors have been logged since %S started.
|
errorReport.noErrorsLogged=Od spuštění %S nebyly zalogovány žádné chyby.
|
||||||
errorReport.advanceMessage=Press %S to send the report to the Zotero developers.
|
errorReport.advanceMessage=Stisknutím %S odešlete zprávu vývojářům Zotera.
|
||||||
errorReport.stepsToReproduce=Kroky k zopakování:
|
errorReport.stepsToReproduce=Kroky k zopakování:
|
||||||
errorReport.expectedResult=Očekávaný výsledek:
|
errorReport.expectedResult=Očekávaný výsledek:
|
||||||
errorReport.actualResult=Dosažený výsledek:
|
errorReport.actualResult=Dosažený výsledek:
|
||||||
|
@ -193,10 +193,10 @@ tagColorChooser.numberKeyInstructions=Stisknutím klávesy $NUMBER můžete při
|
||||||
tagColorChooser.maxTags=Barvy může mít přiřazeno až %S štítků v každé knihovně.
|
tagColorChooser.maxTags=Barvy může mít přiřazeno až %S štítků v každé knihovně.
|
||||||
|
|
||||||
pane.items.loading=Nahrávám seznam položek...
|
pane.items.loading=Nahrávám seznam položek...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=Více sloupců
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Sekundární řazení (%S)
|
||||||
pane.items.attach.link.uri.title=Připojit odkaz k URI
|
pane.items.attach.link.uri.unrecognized=Zotero nerozeznalo URI, kterou jste zadali. Prosím zkontrolujte adresu a zkuste to znovu.
|
||||||
pane.items.attach.link.uri=Vložte URI:
|
pane.items.attach.link.uri.file=Odkaz můžete připojit k souboru pomocí "%S".
|
||||||
pane.items.trash.title=Přesunout do Koše
|
pane.items.trash.title=Přesunout do Koše
|
||||||
pane.items.trash=Jste si jisti, že chcete přesunout vybranou položku do Koše?
|
pane.items.trash=Jste si jisti, že chcete přesunout vybranou položku do Koše?
|
||||||
pane.items.trash.multiple=Jste si jisti, že chcete přesunout vybranou položku do Koše?
|
pane.items.trash.multiple=Jste si jisti, že chcete přesunout vybranou položku do Koše?
|
||||||
|
@ -483,7 +483,7 @@ ingester.scrapingTo=Ukládám do
|
||||||
ingester.scrapeComplete=Položka uložena
|
ingester.scrapeComplete=Položka uložena
|
||||||
ingester.scrapeError=Nebylo možné uložit položku
|
ingester.scrapeError=Nebylo možné uložit položku
|
||||||
ingester.scrapeErrorDescription=Při ukládání této položky nastala chyba. Zkontrolujte %S pro více informací.
|
ingester.scrapeErrorDescription=Při ukládání této položky nastala chyba. Zkontrolujte %S pro více informací.
|
||||||
ingester.scrapeErrorDescription.linkText=Troubleshooting Translator Issues
|
ingester.scrapeErrorDescription.linkText=Řešení problémů s překladači
|
||||||
ingester.scrapeErrorDescription.previousError=Ukládání selhalo z důvodu předchozí chyby v Zoteru.
|
ingester.scrapeErrorDescription.previousError=Ukládání selhalo z důvodu předchozí chyby v Zoteru.
|
||||||
|
|
||||||
ingester.importReferRISDialog.title=Import RIS/Refer do Zotera
|
ingester.importReferRISDialog.title=Import RIS/Refer do Zotera
|
||||||
|
@ -966,5 +966,5 @@ firstRunGuidance.saveIcon=Zotero rozpoznalo na této stránce citaci. Pro její
|
||||||
firstRunGuidance.authorMenu=Zotero umožňuje zvolit i editory a překladatele. Volbou v tomto menu můžete změnit autora na editora či překladatele.
|
firstRunGuidance.authorMenu=Zotero umožňuje zvolit i editory a překladatele. Volbou v tomto menu můžete změnit autora na editora či překladatele.
|
||||||
firstRunGuidance.quickFormat=Napište název, nebo autora k nimž hledáte citaci.\n\n Když si vyberete, kliknutím na bublinu, nebo stiskem Ctrl-\u2193 můžete přidat čísla stran, prefixy, či sufixy. Číslo stránky můžete vložit přímo k vašim vyhledávaným výrazům.\n\nCitace můžete editovat přímo ve vašem textovém procesoru.
|
firstRunGuidance.quickFormat=Napište název, nebo autora k nimž hledáte citaci.\n\n Když si vyberete, kliknutím na bublinu, nebo stiskem Ctrl-\u2193 můžete přidat čísla stran, prefixy, či sufixy. Číslo stránky můžete vložit přímo k vašim vyhledávaným výrazům.\n\nCitace můžete editovat přímo ve vašem textovém procesoru.
|
||||||
firstRunGuidance.quickFormatMac=Napište název, nebo autora k nimž hledáte citaci.\n\n Když si vyberete, kliknutím na bublinu, nebo stiskem Ctrl-\u2193 můžete přidat čísla stran, prefixy, či sufixy. Číslo stránky můžete vložit přímo k vašim vyhledávaným výrazům.\n\nCitace můžete editovat přímo ve vašem textovém procesoru.
|
firstRunGuidance.quickFormatMac=Napište název, nebo autora k nimž hledáte citaci.\n\n Když si vyberete, kliknutím na bublinu, nebo stiskem Ctrl-\u2193 můžete přidat čísla stran, prefixy, či sufixy. Číslo stránky můžete vložit přímo k vašim vyhledávaným výrazům.\n\nCitace můžete editovat přímo ve vašem textovém procesoru.
|
||||||
firstRunGuidance.toolbarButton.new=Click here to open Zotero, or use the %S keyboard shortcut.
|
firstRunGuidance.toolbarButton.new=Zotero otevřete kliknutím sem, nebo použitím klávesové zkratky %S
|
||||||
firstRunGuidance.toolbarButton.upgrade=The Zotero icon can now be found in the Firefox toolbar. Click the icon to open Zotero, or use the %S keyboard shortcut.
|
firstRunGuidance.toolbarButton.upgrade=Ikona Zotero se nyní nachází v Panelu nástrojů Firefoxu. Zotero otevřete kliknutím na ikonu, nebo stisknutím %S.
|
||||||
|
|
|
@ -169,7 +169,7 @@
|
||||||
<!ENTITY zotero.preferences.locate.locateEngineManager "Håndtering af søgemaskiner for artikler">
|
<!ENTITY zotero.preferences.locate.locateEngineManager "Håndtering af søgemaskiner for artikler">
|
||||||
<!ENTITY zotero.preferences.locate.description "Beskrivelse">
|
<!ENTITY zotero.preferences.locate.description "Beskrivelse">
|
||||||
<!ENTITY zotero.preferences.locate.name "Navn">
|
<!ENTITY zotero.preferences.locate.name "Navn">
|
||||||
<!ENTITY zotero.preferences.locate.locateEnginedescription "En søgemaskine udvider mulighederne drop-down-menuen for Lokalisering i Info-vinduet. Hvis man aktiverer søgemaskinerne i nedenstående liste, bliver de føjet til drop-down-menuen og kan anvendes til at lokalisere Elementer fra dit Bibliotek på WWW.">
|
<!ENTITY zotero.preferences.locate.locateEnginedescription "En søgemaskine udvider mulighederne i drop-down-menuen for Find i Info-fanebladet. Hvis man aktiverer søgemaskinerne i nedenstående liste, bliver de føjet til drop-down-menuen og kan anvendes til at lokalisere elementer fra dit bibliotek på WWW.">
|
||||||
<!ENTITY zotero.preferences.locate.addDescription "To add a Lookup Engine that is not on the list, visit the desired search engine in your browser and select 'Add' from the Firefox Search Bar. When you reopen this preference pane you will have the option to enable the new Lookup Engine.">
|
<!ENTITY zotero.preferences.locate.addDescription "To add a Lookup Engine that is not on the list, visit the desired search engine in your browser and select 'Add' from the Firefox Search Bar. When you reopen this preference pane you will have the option to enable the new Lookup Engine.">
|
||||||
<!ENTITY zotero.preferences.locate.restoreDefaults "Gendan Defaults">
|
<!ENTITY zotero.preferences.locate.restoreDefaults "Gendan Defaults">
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!ENTITY zotero.search.name "Navn:">
|
<!ENTITY zotero.search.name "Navn:">
|
||||||
|
|
||||||
<!ENTITY zotero.search.searchInLibrary "Search in library:">
|
<!ENTITY zotero.search.searchInLibrary "Søg i bibliotek:">
|
||||||
|
|
||||||
<!ENTITY zotero.search.joinMode.prefix "Match">
|
<!ENTITY zotero.search.joinMode.prefix "Match">
|
||||||
<!ENTITY zotero.search.joinMode.any "enhver">
|
<!ENTITY zotero.search.joinMode.any "enhver">
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<!ENTITY zotero.general.cancel "Annullér">
|
<!ENTITY zotero.general.cancel "Annullér">
|
||||||
|
|
||||||
<!ENTITY zotero.errorReport.title "Zotero fejlrapport">
|
<!ENTITY zotero.errorReport.title "Zotero fejlrapport">
|
||||||
<!ENTITY zotero.errorReport.unrelatedMessages "This may include messages unrelated to Zotero.">
|
<!ENTITY zotero.errorReport.unrelatedMessages "Dette kan inkludere beskeder, som ikke har noget med Zotero at gøre.">
|
||||||
<!ENTITY zotero.errorReport.submissionInProgress "Vent venligst mens fejlrapporten registreres.">
|
<!ENTITY zotero.errorReport.submissionInProgress "Vent venligst mens fejlrapporten registreres.">
|
||||||
<!ENTITY zotero.errorReport.submitted "Din fejlrapport er registreret.">
|
<!ENTITY zotero.errorReport.submitted "Din fejlrapport er registreret.">
|
||||||
<!ENTITY zotero.errorReport.reportID "Rapport-ID:">
|
<!ENTITY zotero.errorReport.reportID "Rapport-ID:">
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
<!ENTITY zotero.collections.showUnfiledItems "Vis ukategoriserede elementer">
|
<!ENTITY zotero.collections.showUnfiledItems "Vis ukategoriserede elementer">
|
||||||
|
|
||||||
<!ENTITY zotero.items.itemType "Type">
|
<!ENTITY zotero.items.itemType "Type">
|
||||||
<!ENTITY zotero.items.type_column "Item Type">
|
<!ENTITY zotero.items.type_column "Elementtype">
|
||||||
<!ENTITY zotero.items.title_column "Titel">
|
<!ENTITY zotero.items.title_column "Titel">
|
||||||
<!ENTITY zotero.items.creator_column "Ophav">
|
<!ENTITY zotero.items.creator_column "Ophav">
|
||||||
<!ENTITY zotero.items.date_column "Dato">
|
<!ENTITY zotero.items.date_column "Dato">
|
||||||
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Gem til Zotero">
|
<!ENTITY zotero.downloadManager.label "Gem til Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Vedhæftede filer kan ikke gemmes til det valgte bibliotek. Dette element vil blive gemt i dit bibliotek i stedet.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Vedhæftede filer kan ikke gemmes til det valgte bibliotek. Dette element vil blive gemt i dit bibliotek i stedet.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "For at bruge denne funktion skal du først installere PDF-værktøjerne i Zoteros indstillinger.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "For at bruge denne funktion skal du først installere PDF-værktøjerne i Zoteros indstillinger.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -81,9 +81,9 @@ upgrade.couldNotMigrate.restart=Hvis du fortsat får denne meddelelse, så genst
|
||||||
errorReport.reportError=Send rapport om fejl...
|
errorReport.reportError=Send rapport om fejl...
|
||||||
errorReport.reportErrors=Send rapport om fejl....
|
errorReport.reportErrors=Send rapport om fejl....
|
||||||
errorReport.reportInstructions=Du kan sende denne fejlmelding ved at vælge "%S" fra Handlinger-menuen (tandhjulikonet).
|
errorReport.reportInstructions=Du kan sende denne fejlmelding ved at vælge "%S" fra Handlinger-menuen (tandhjulikonet).
|
||||||
errorReport.followingReportWillBeSubmitted=The following report will be submitted:
|
errorReport.followingReportWillBeSubmitted=Følgende rapport vil blive sendt:
|
||||||
errorReport.noErrorsLogged=No errors have been logged since %S started.
|
errorReport.noErrorsLogged=Der er ikke registreret nogen fejl, siden %S startede.
|
||||||
errorReport.advanceMessage=Press %S to send the report to the Zotero developers.
|
errorReport.advanceMessage=Tryk %S for at sende rapporten til Zotero-udviklerne.
|
||||||
errorReport.stepsToReproduce=Følgende skridt kan genskabe situationen:
|
errorReport.stepsToReproduce=Følgende skridt kan genskabe situationen:
|
||||||
errorReport.expectedResult=Forventet resultat:
|
errorReport.expectedResult=Forventet resultat:
|
||||||
errorReport.actualResult=Faktisk resultat:
|
errorReport.actualResult=Faktisk resultat:
|
||||||
|
@ -193,10 +193,10 @@ tagColorChooser.numberKeyInstructions=Du kan tilføje dette mærke til valgte el
|
||||||
tagColorChooser.maxTags=Op til %S mærker i hvert bibliotek kan have farver tilknyttet.
|
tagColorChooser.maxTags=Op til %S mærker i hvert bibliotek kan have farver tilknyttet.
|
||||||
|
|
||||||
pane.items.loading=Henter listen med elementer...
|
pane.items.loading=Henter listen med elementer...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=Flere kolonner
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Sekundær sortering (%S)
|
||||||
pane.items.attach.link.uri.title=Vedhæft henvisning til URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Indtast en URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Flyt til papirkurv
|
pane.items.trash.title=Flyt til papirkurv
|
||||||
pane.items.trash=Er du sikker på, du vil lægge dette element i papirkurven?
|
pane.items.trash=Er du sikker på, du vil lægge dette element i papirkurven?
|
||||||
pane.items.trash.multiple=Er du sikker på, du vil lægge disse elementer i papirkurven?
|
pane.items.trash.multiple=Er du sikker på, du vil lægge disse elementer i papirkurven?
|
||||||
|
@ -483,7 +483,7 @@ ingester.scrapingTo=Gemmer i
|
||||||
ingester.scrapeComplete=Elementet er gemt
|
ingester.scrapeComplete=Elementet er gemt
|
||||||
ingester.scrapeError=Elementet kunne ikke gemmes
|
ingester.scrapeError=Elementet kunne ikke gemmes
|
||||||
ingester.scrapeErrorDescription=En fejl opstod under forsøget på at gemme elementet. Tjek %S for mere information.
|
ingester.scrapeErrorDescription=En fejl opstod under forsøget på at gemme elementet. Tjek %S for mere information.
|
||||||
ingester.scrapeErrorDescription.linkText=Troubleshooting Translator Issues
|
ingester.scrapeErrorDescription.linkText=Fejlsøg oversætterproblemer
|
||||||
ingester.scrapeErrorDescription.previousError=Processen kunne ikke udføres pga. en tidligere Zotero-fejl.
|
ingester.scrapeErrorDescription.previousError=Processen kunne ikke udføres pga. en tidligere Zotero-fejl.
|
||||||
|
|
||||||
ingester.importReferRISDialog.title=Import til Zotero med RIS/Refer
|
ingester.importReferRISDialog.title=Import til Zotero med RIS/Refer
|
||||||
|
@ -948,7 +948,7 @@ locate.showFile.label=Vis fil
|
||||||
locate.showFile.tooltip=Åbn mappen, som filen findes i
|
locate.showFile.tooltip=Åbn mappen, som filen findes i
|
||||||
locate.libraryLookup.label=Opslag i bibliotekskatalogen
|
locate.libraryLookup.label=Opslag i bibliotekskatalogen
|
||||||
locate.libraryLookup.tooltip=Slå dette element op med den valgte OpenURL fortolker
|
locate.libraryLookup.tooltip=Slå dette element op med den valgte OpenURL fortolker
|
||||||
locate.manageLocateEngines=Håndtér opslagsmaskiner...
|
locate.manageLocateEngines=Håndtér søgemaskiner...
|
||||||
|
|
||||||
standalone.corruptInstallation=Din Zotero Standalone installation lader til at være ødelagt pga. en fejlslagen automatisk opdatering. Selvom Zotero måske fortsat vil du, tilrådes det at hente den seneste version på http://zotero.org/support/standalone for at undgå mulige fejl.
|
standalone.corruptInstallation=Din Zotero Standalone installation lader til at være ødelagt pga. en fejlslagen automatisk opdatering. Selvom Zotero måske fortsat vil du, tilrådes det at hente den seneste version på http://zotero.org/support/standalone for at undgå mulige fejl.
|
||||||
standalone.addonInstallationFailed.title=Installation af udvidelsesmodul slog fejl
|
standalone.addonInstallationFailed.title=Installation af udvidelsesmodul slog fejl
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "In Zotero speichern">
|
<!ENTITY zotero.downloadManager.label "In Zotero speichern">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Anhänge können in der aktuell gewählten Bibliothek nicht gespeichert werden. Der Eintrag wird stattdessen in Ihrer Bibliothek gespeichert.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Anhänge können in der aktuell gewählten Bibliothek nicht gespeichert werden. Der Eintrag wird stattdessen in Ihrer Bibliothek gespeichert.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "Um diese Funktion zu nutzen, müssen Sie zuerst die PDF-Werkzeuge in den Zotero-Einstellungen installieren.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "Um diese Funktion zu nutzen, müssen Sie zuerst die PDF-Werkzeuge in den Zotero-Einstellungen installieren.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Link zu einer URI anhängen">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Titel:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Sie können bis zu %S Tags in jeder Bibliothek Farben zu
|
||||||
pane.items.loading=Lade die Liste der Einträge...
|
pane.items.loading=Lade die Liste der Einträge...
|
||||||
pane.items.columnChooser.moreColumns=Weitere Spalten
|
pane.items.columnChooser.moreColumns=Weitere Spalten
|
||||||
pane.items.columnChooser.secondarySort=Sekundäre Sortierung (%S)
|
pane.items.columnChooser.secondarySort=Sekundäre Sortierung (%S)
|
||||||
pane.items.attach.link.uri.title=Link zu einer URI anhängen
|
pane.items.attach.link.uri.unrecognized=Zotero hat die eingegeben URI nicht erkannt. Bitte überprüfen Sie die Adresse und versuchen Sie es erneut.
|
||||||
pane.items.attach.link.uri=URI eingeben:
|
pane.items.attach.link.uri.file=Um einen Link zu einer Datei hinzuzufügen, verwenden Sie bitte "%S".
|
||||||
pane.items.trash.title=In den Papierkorb verschieben
|
pane.items.trash.title=In den Papierkorb verschieben
|
||||||
pane.items.trash=Sind Sie sicher, dass Sie den ausgewählten Eintrag in den Papierkorb verschieben wollen?
|
pane.items.trash=Sind Sie sicher, dass Sie den ausgewählten Eintrag in den Papierkorb verschieben wollen?
|
||||||
pane.items.trash.multiple=Sind Sie sicher, dass Sie die ausgewählten Einträge in den Papierkorb verschieben wollen?
|
pane.items.trash.multiple=Sind Sie sicher, dass Sie die ausgewählten Einträge in den Papierkorb verschieben wollen?
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
||||||
pane.items.loading=Loading items list...
|
pane.items.loading=Loading items list...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=More Columns
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Move to Trash
|
pane.items.trash.title=Move to Trash
|
||||||
pane.items.trash=Are you sure you want to move the selected item to the Trash?
|
pane.items.trash=Are you sure you want to move the selected item to the Trash?
|
||||||
pane.items.trash.multiple=Are you sure you want to move the selected items to the Trash?
|
pane.items.trash.multiple=Are you sure you want to move the selected items to the Trash?
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags = Up to %S tags in each library c
|
||||||
pane.items.loading = Loading items list…
|
pane.items.loading = Loading items list…
|
||||||
pane.items.columnChooser.moreColumns = More Columns
|
pane.items.columnChooser.moreColumns = More Columns
|
||||||
pane.items.columnChooser.secondarySort = Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort = Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title = Attach Link to URI
|
pane.items.attach.link.uri.unrecognized = Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri = Enter a URI:
|
pane.items.attach.link.uri.file = To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title = Move to Trash
|
pane.items.trash.title = Move to Trash
|
||||||
pane.items.trash = Are you sure you want to move the selected item to the Trash?
|
pane.items.trash = Are you sure you want to move the selected item to the Trash?
|
||||||
pane.items.trash.multiple = Are you sure you want to move the selected items to the Trash?
|
pane.items.trash.multiple = Are you sure you want to move the selected items to the Trash?
|
||||||
|
|
|
@ -18,12 +18,12 @@
|
||||||
<!ENTITY zotero.preferences.fontSize.small "Pequeña">
|
<!ENTITY zotero.preferences.fontSize.small "Pequeña">
|
||||||
<!ENTITY zotero.preferences.fontSize.medium "Mediana">
|
<!ENTITY zotero.preferences.fontSize.medium "Mediana">
|
||||||
<!ENTITY zotero.preferences.fontSize.large "Grande">
|
<!ENTITY zotero.preferences.fontSize.large "Grande">
|
||||||
<!ENTITY zotero.preferences.fontSize.xlarge "Súper grande">
|
<!ENTITY zotero.preferences.fontSize.xlarge "Super grande">
|
||||||
<!ENTITY zotero.preferences.fontSize.notes "Tamaño de letra en las notas:">
|
<!ENTITY zotero.preferences.fontSize.notes "Tamaño de letra en las notas:">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.miscellaneous "Miscelánea">
|
<!ENTITY zotero.preferences.miscellaneous "Miscelánea">
|
||||||
<!ENTITY zotero.preferences.autoUpdate "Automáticamente comprobar si hay traductores y estilos actualizados ">
|
<!ENTITY zotero.preferences.autoUpdate "Automáticamente comprobar si hay traductores y estilos actualizados ">
|
||||||
<!ENTITY zotero.preferences.updateNow "Hacerlo ahora">
|
<!ENTITY zotero.preferences.updateNow "Actualizarlo">
|
||||||
<!ENTITY zotero.preferences.reportTranslationFailure "Informar de fallos en los traductores de página">
|
<!ENTITY zotero.preferences.reportTranslationFailure "Informar de fallos en los traductores de página">
|
||||||
<!ENTITY zotero.preferences.zoteroDotOrgVersionHeader "Permitir que zotero.org personalice contenido basándose en la versión actual de Zotero">
|
<!ENTITY zotero.preferences.zoteroDotOrgVersionHeader "Permitir que zotero.org personalice contenido basándose en la versión actual de Zotero">
|
||||||
<!ENTITY zotero.preferences.zoteroDotOrgVersionHeader.tooltip "Si se activa, la versión actual de Zotero se añadirá a las peticiones HTTP a zotero.org">
|
<!ENTITY zotero.preferences.zoteroDotOrgVersionHeader.tooltip "Si se activa, la versión actual de Zotero se añadirá a las peticiones HTTP a zotero.org">
|
||||||
|
@ -61,11 +61,11 @@
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing "Sincronización de archivos">
|
<!ENTITY zotero.preferences.sync.fileSyncing "Sincronización de archivos">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.url "URL:">
|
<!ENTITY zotero.preferences.sync.fileSyncing.url "URL:">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.myLibrary "Sincronizar los archivos adjuntos en Mi biblioteca usando">
|
<!ENTITY zotero.preferences.sync.fileSyncing.myLibrary "Sincronizar los archivos adjuntos en Mi biblioteca usando">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.groups "Sincronizar los archivos en bibliotecas de grupo usando el almacén Zotero">
|
<!ENTITY zotero.preferences.sync.fileSyncing.groups "Sincronizar los archivos en bibliotecas de grupo usando el almacenaje de Zotero">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.download "Descargar archivos">
|
<!ENTITY zotero.preferences.sync.fileSyncing.download "Descargar archivos">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.download.atSyncTime "en el momento de sincronizar">
|
<!ENTITY zotero.preferences.sync.fileSyncing.download.atSyncTime "en el momento de sincronizar">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.download.onDemand "según se necesite">
|
<!ENTITY zotero.preferences.sync.fileSyncing.download.onDemand "según se necesite">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.tos1 "Al usar el almacén de Zotero, acepta sus">
|
<!ENTITY zotero.preferences.sync.fileSyncing.tos1 "Mediante el uso de almacenamiento provisto por Zotero, acepta quedar obligado por su">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.tos2 "términos y condiciones">
|
<!ENTITY zotero.preferences.sync.fileSyncing.tos2 "términos y condiciones">
|
||||||
<!ENTITY zotero.preferences.sync.reset.warning1 "Las siguientes operaciones son para utilizar sólo en situaciones raras, específicas, y no deberían usarse para una gestión de problemas generales. En muchos casos, reestablecer causará problemas adicionales. Vea">
|
<!ENTITY zotero.preferences.sync.reset.warning1 "Las siguientes operaciones son para utilizar sólo en situaciones raras, específicas, y no deberían usarse para una gestión de problemas generales. En muchos casos, reestablecer causará problemas adicionales. Vea">
|
||||||
<!ENTITY zotero.preferences.sync.reset.warning2 "Opciones para reestablecer la sincronización">
|
<!ENTITY zotero.preferences.sync.reset.warning2 "Opciones para reestablecer la sincronización">
|
||||||
|
@ -82,22 +82,22 @@
|
||||||
<!ENTITY zotero.preferences.sync.reset.button "Restablecer…">
|
<!ENTITY zotero.preferences.sync.reset.button "Restablecer…">
|
||||||
|
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.prefpane.search "Búsqueda">
|
<!ENTITY zotero.preferences.prefpane.search "Buscar">
|
||||||
<!ENTITY zotero.preferences.search.fulltextCache "Copia local para búsquedas a texto completo">
|
<!ENTITY zotero.preferences.search.fulltextCache "Copia local para búsquedas a texto completo">
|
||||||
<!ENTITY zotero.preferences.search.pdfIndexing "Indización de PDF">
|
<!ENTITY zotero.preferences.search.pdfIndexing "Indexación de PDF">
|
||||||
<!ENTITY zotero.preferences.search.indexStats "Estadísticas de indización">
|
<!ENTITY zotero.preferences.search.indexStats "Estadísticas de indexación">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.search.indexStats.indexed "Indizados:">
|
<!ENTITY zotero.preferences.search.indexStats.indexed "Indexado:">
|
||||||
<!ENTITY zotero.preferences.search.indexStats.partial "Parciales:">
|
<!ENTITY zotero.preferences.search.indexStats.partial "Parciales:">
|
||||||
<!ENTITY zotero.preferences.search.indexStats.unindexed "No indizados:">
|
<!ENTITY zotero.preferences.search.indexStats.unindexed "No indexados:">
|
||||||
<!ENTITY zotero.preferences.search.indexStats.words "Palabras:">
|
<!ENTITY zotero.preferences.search.indexStats.words "Palabras:">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.fulltext.textMaxLength "Máximo de caracteres indizados por archivo:">
|
<!ENTITY zotero.preferences.fulltext.textMaxLength "Máximo de caracteres indexados por archivo:">
|
||||||
<!ENTITY zotero.preferences.fulltext.pdfMaxPages "Máximo de páginas indizadas por archivo:">
|
<!ENTITY zotero.preferences.fulltext.pdfMaxPages "Máximo de páginas indexadas por archivo:">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.prefpane.export "Exportar">
|
<!ENTITY zotero.preferences.prefpane.export "Exportar">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.citationOptions.caption "Opciones de cita">
|
<!ENTITY zotero.preferences.citationOptions.caption "Opciones de citas">
|
||||||
<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Incluir los URL de los artículos en las referencias">
|
<!ENTITY zotero.preferences.export.citePaperJournalArticleURL "Incluir los URL de los artículos en las referencias">
|
||||||
<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Sin esta opción, Zotero solo incluye los URL al citar artículos de revistas y periódicos si el artículo no tiene un intervalo de páginas especificado.">
|
<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Sin esta opción, Zotero solo incluye los URL al citar artículos de revistas y periódicos si el artículo no tiene un intervalo de páginas especificado.">
|
||||||
|
|
||||||
|
@ -132,18 +132,18 @@
|
||||||
<!ENTITY zotero.preferences.keys.toggleFullscreen "Conmutar el modo de pantalla completa">
|
<!ENTITY zotero.preferences.keys.toggleFullscreen "Conmutar el modo de pantalla completa">
|
||||||
<!ENTITY zotero.preferences.keys.focusLibrariesPane "Enfocar el panel de bibliotecas">
|
<!ENTITY zotero.preferences.keys.focusLibrariesPane "Enfocar el panel de bibliotecas">
|
||||||
<!ENTITY zotero.preferences.keys.quicksearch "Búsqueda rápida">
|
<!ENTITY zotero.preferences.keys.quicksearch "Búsqueda rápida">
|
||||||
<!ENTITY zotero.preferences.keys.newItem "Crear un New Item">
|
<!ENTITY zotero.preferences.keys.newItem "Crear un nuevo elemento">
|
||||||
<!ENTITY zotero.preferences.keys.newNote "Crear una Nueva nota">
|
<!ENTITY zotero.preferences.keys.newNote "Crear una Nueva nota">
|
||||||
<!ENTITY zotero.preferences.keys.toggleTagSelector "Conmutar el selector de marcas">
|
<!ENTITY zotero.preferences.keys.toggleTagSelector "Conmutar el selector de marcas">
|
||||||
<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Copiar las citas para los ítems seleccionados al portapapeles">
|
<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Copiar las citas para los elementos seleccionados al portapapeles">
|
||||||
<!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Copiar los ítems seleccionados al portapapeles">
|
<!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Copiar los elementos seleccionados al portapapeles">
|
||||||
<!ENTITY zotero.preferences.keys.importFromClipboard "Importar desde el portapapeles">
|
<!ENTITY zotero.preferences.keys.importFromClipboard "Importar desde el portapapeles">
|
||||||
<!ENTITY zotero.preferences.keys.changesTakeEffect "Los cambios tendrán efecto sólo en las ventanas nuevas">
|
<!ENTITY zotero.preferences.keys.changesTakeEffect "Los cambios tendrán efecto sólo en las ventanas nuevas">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.prefpane.proxies "Servidores Proxies">
|
<!ENTITY zotero.preferences.prefpane.proxies "Servidores proxies">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.proxies.proxyOptions "Opciones de servidor proxy">
|
<!ENTITY zotero.preferences.proxies.proxyOptions "Opciones de servidor proxy">
|
||||||
<!ENTITY zotero.preferences.proxies.desc_before_link "Zotero transparentemente redirigirá las peticiones a través de los servidores proxies guardados. Consulte la">
|
<!ENTITY zotero.preferences.proxies.desc_before_link "Zotero redirigirá transparentemente las peticiones a través de los servidores proxies guardados. Consulte la">
|
||||||
<!ENTITY zotero.preferences.proxies.desc_link "Documentación del servidor proxy">
|
<!ENTITY zotero.preferences.proxies.desc_link "Documentación del servidor proxy">
|
||||||
<!ENTITY zotero.preferences.proxies.desc_after_link "para mayor información.">
|
<!ENTITY zotero.preferences.proxies.desc_after_link "para mayor información.">
|
||||||
<!ENTITY zotero.preferences.proxies.transparent "Habilitar el redireccionamiento del servidor proxy">
|
<!ENTITY zotero.preferences.proxies.transparent "Habilitar el redireccionamiento del servidor proxy">
|
||||||
|
@ -155,7 +155,7 @@
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.proxies.multiSite "Multi-sitio">
|
<!ENTITY zotero.preferences.proxies.multiSite "Multi-sitio">
|
||||||
<!ENTITY zotero.preferences.proxies.autoAssociate "Automáticamente asociar nuevos hosts">
|
<!ENTITY zotero.preferences.proxies.autoAssociate "Automáticamente asociar nuevos hosts">
|
||||||
<!ENTITY zotero.preferences.proxies.variables "Puede usar las siguientes variables en su esquema del servidor proxy:">
|
<!ENTITY zotero.preferences.proxies.variables "Puede usar las siguientes variables en su esquema de servidor proxy:">
|
||||||
<!ENTITY zotero.preferences.proxies.h_variable "%h - El nombre del sistema del sitio proxificado (ejemplo: www.zotero.org)">
|
<!ENTITY zotero.preferences.proxies.h_variable "%h - El nombre del sistema del sitio proxificado (ejemplo: www.zotero.org)">
|
||||||
<!ENTITY zotero.preferences.proxies.p_variable "%p - La ruta de la página proxificado excluyendo la barra invertida (ejemplo: acerca/index.html)">
|
<!ENTITY zotero.preferences.proxies.p_variable "%p - La ruta de la página proxificado excluyendo la barra invertida (ejemplo: acerca/index.html)">
|
||||||
<!ENTITY zotero.preferences.proxies.d_variable "%d - La ruta del directorio (ejemplo: acerca/)">
|
<!ENTITY zotero.preferences.proxies.d_variable "%d - La ruta del directorio (ejemplo: acerca/)">
|
||||||
|
@ -170,20 +170,20 @@
|
||||||
<!ENTITY zotero.preferences.locate.description "Descripción">
|
<!ENTITY zotero.preferences.locate.description "Descripción">
|
||||||
<!ENTITY zotero.preferences.locate.name "Nombre">
|
<!ENTITY zotero.preferences.locate.name "Nombre">
|
||||||
<!ENTITY zotero.preferences.locate.locateEnginedescription "Un motor de búsqueda amplía la capacidad de la lista desplegable Localizar en el panel de información. Habilitando dichos motores de búsqueda a la lista de abajo, éstas se agregarán a la lista desplegable y se pueden utilizar para localizar los recursos de su biblioteca en la red.">
|
<!ENTITY zotero.preferences.locate.locateEnginedescription "Un motor de búsqueda amplía la capacidad de la lista desplegable Localizar en el panel de información. Habilitando dichos motores de búsqueda a la lista de abajo, éstas se agregarán a la lista desplegable y se pueden utilizar para localizar los recursos de su biblioteca en la red.">
|
||||||
<!ENTITY zotero.preferences.locate.addDescription "Para añadir un motor de búsqueda que no está en la lista, visita en tu navegador el motor de búsqueda y selecciona "Añadir" desde el menú Localizar de Zotero.">
|
<!ENTITY zotero.preferences.locate.addDescription "Para añadir un motor de búsqueda que no está en la lista, visite en su navegador el motor de búsqueda y selecciona "Añadir" desde el menú Localizar de Zotero.">
|
||||||
<!ENTITY zotero.preferences.locate.restoreDefaults "Restaurar configuración por omisión">
|
<!ENTITY zotero.preferences.locate.restoreDefaults "Restaurar configuración por omisión">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.charset "Codificación de caracteres">
|
<!ENTITY zotero.preferences.charset "Codificación de caracteres">
|
||||||
<!ENTITY zotero.preferences.charset.importCharset "Importar codificación de caracteres">
|
<!ENTITY zotero.preferences.charset.importCharset "Importar codificación de caracteres">
|
||||||
<!ENTITY zotero.preferences.charset.displayExportOption "Mostrar opción de codificación de caracteres en la exportación">
|
<!ENTITY zotero.preferences.charset.displayExportOption "Mostrar opción de codificación de caracteres en la exportación">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.dataDir "Lugar de almacenamiento">
|
<!ENTITY zotero.preferences.dataDir "Lugar del directorio de almacenamiento">
|
||||||
<!ENTITY zotero.preferences.dataDir.useProfile "Usar el directorio del perfil de usuario">
|
<!ENTITY zotero.preferences.dataDir.useProfile "Usar el directorio del perfil de usuario">
|
||||||
<!ENTITY zotero.preferences.dataDir.custom "Especial:">
|
<!ENTITY zotero.preferences.dataDir.custom "Personalizar:">
|
||||||
<!ENTITY zotero.preferences.dataDir.choose "Elegir...">
|
<!ENTITY zotero.preferences.dataDir.choose "Elegir...">
|
||||||
<!ENTITY zotero.preferences.dataDir.reveal "Mostrar el directorio de datos">
|
<!ENTITY zotero.preferences.dataDir.reveal "Mostrar el directorio de datos">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.attachmentBaseDir.caption "Directorio base de adjunto enlazado">
|
<!ENTITY zotero.preferences.attachmentBaseDir.caption "Directorio base de adjuntos enlazados">
|
||||||
<!ENTITY zotero.preferences.attachmentBaseDir.message "Zotero usará caminos relativos para los archivos adjuntos enlazados dentro del directorio base, permitiéndole acceder a los archivos desde diferentes ordenadores, siempre que la estructura de archivos dentro del directorio base se mantenga igual.">
|
<!ENTITY zotero.preferences.attachmentBaseDir.message "Zotero usará caminos relativos para los archivos adjuntos enlazados dentro del directorio base, permitiéndole acceder a los archivos desde diferentes ordenadores, siempre que la estructura de archivos dentro del directorio base se mantenga igual.">
|
||||||
<!ENTITY zotero.preferences.attachmentBaseDir.basePath "Directorio base:">
|
<!ENTITY zotero.preferences.attachmentBaseDir.basePath "Directorio base:">
|
||||||
<!ENTITY zotero.preferences.attachmentBaseDir.selectBasePath "Elegir...">
|
<!ENTITY zotero.preferences.attachmentBaseDir.selectBasePath "Elegir...">
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Guardar en Zotero">
|
<!ENTITY zotero.downloadManager.label "Guardar en Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Los archivos adjuntos no se pueden guardar en la biblioteca seleccionada. Así, este ítem será guardado en su biblioteca.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Los archivos adjuntos no se pueden guardar en la biblioteca seleccionada. Así, este ítem será guardado en su biblioteca.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "Para utilizar esta función, debe primeramente instalar las herramientas PDF en las preferencias de Zotero.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "Para utilizar esta función, debe primeramente instalar las herramientas PDF en las preferencias de Zotero.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Adjuntar enlace a URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Enlace:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Título:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ general.updateAvailable=Actualización disponible
|
||||||
general.noUpdatesFound=No hay actualizaciones.
|
general.noUpdatesFound=No hay actualizaciones.
|
||||||
general.isUpToDate=%S está actualizado.
|
general.isUpToDate=%S está actualizado.
|
||||||
general.upgrade=Actualizar
|
general.upgrade=Actualizar
|
||||||
general.yes=Sí
|
general.yes=Si
|
||||||
general.no=No
|
general.no=No
|
||||||
general.notNow=no ahora
|
general.notNow=no ahora
|
||||||
general.passed=Superado
|
general.passed=Superado
|
||||||
|
@ -135,7 +135,7 @@ startupError.zoteroVersionIsOlder.upgrade=Actualízalo a la última versión en
|
||||||
startupError.zoteroVersionIsOlder.current=Versión actual: %S
|
startupError.zoteroVersionIsOlder.current=Versión actual: %S
|
||||||
startupError.databaseUpgradeError=Error de actualización de la base de datos
|
startupError.databaseUpgradeError=Error de actualización de la base de datos
|
||||||
|
|
||||||
date.relative.secondsAgo.one=Hace un segundo
|
date.relative.secondsAgo.one=Hace 1 segundo
|
||||||
date.relative.secondsAgo.multiple=Hace %S segundos
|
date.relative.secondsAgo.multiple=Hace %S segundos
|
||||||
date.relative.minutesAgo.one=Hace un minuto
|
date.relative.minutesAgo.one=Hace un minuto
|
||||||
date.relative.minutesAgo.multiple=Hace %S minutos
|
date.relative.minutesAgo.multiple=Hace %S minutos
|
||||||
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Se puede asignar colores a hasta %S etiquetas de cada bi
|
||||||
pane.items.loading=Cargando la lista de ítems...
|
pane.items.loading=Cargando la lista de ítems...
|
||||||
pane.items.columnChooser.moreColumns=Más columnas
|
pane.items.columnChooser.moreColumns=Más columnas
|
||||||
pane.items.columnChooser.secondarySort=Orden secundario (%S)
|
pane.items.columnChooser.secondarySort=Orden secundario (%S)
|
||||||
pane.items.attach.link.uri.title=Adjuntar enlace a URI
|
pane.items.attach.link.uri.unrecognized=Zotero no reconoce la dirección URL que ingresó. Por favor verifiquela e intente nuevamente.
|
||||||
pane.items.attach.link.uri=Introducir una URI:
|
pane.items.attach.link.uri.file=Para adjuntar un enlace a un archivo, por favor utilice “%S”.
|
||||||
pane.items.trash.title=Enviar a la papelera
|
pane.items.trash.title=Enviar a la papelera
|
||||||
pane.items.trash=¿Seguro que quieres enviar el ítem a la papelera?
|
pane.items.trash=¿Seguro que quieres enviar el ítem a la papelera?
|
||||||
pane.items.trash.multiple=¿Seguro que quieres enviar los ítems a la papelera?
|
pane.items.trash.multiple=¿Seguro que quieres enviar los ítems a la papelera?
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Zoterosse salvestamine">
|
<!ENTITY zotero.downloadManager.label "Zoterosse salvestamine">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Valitud raamatukokku ei ole võimalik manuseid salvestada. See kirje salvestatakse teie isiklikku raamatukokku.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Valitud raamatukokku ei ole võimalik manuseid salvestada. See kirje salvestatakse teie isiklikku raamatukokku.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "Selle funktsiooni kasutamiseks on kõigepealt tarvis paigaldada PDF tööriistad Zotero seadetes.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "Selle funktsiooni kasutamiseks on kõigepealt tarvis paigaldada PDF tööriistad Zotero seadetes.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
||||||
pane.items.loading=Kirjete nimekirja laadimine...
|
pane.items.loading=Kirjete nimekirja laadimine...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=More Columns
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Liiguta Prahi hulka
|
pane.items.trash.title=Liiguta Prahi hulka
|
||||||
pane.items.trash=Olete kindel, et soovite valitud kirje Prahi hulka liigutada?
|
pane.items.trash=Olete kindel, et soovite valitud kirje Prahi hulka liigutada?
|
||||||
pane.items.trash.multiple=Olete kindel, et soovite valitud kirjed Prahi hulka liigutada?
|
pane.items.trash.multiple=Olete kindel, et soovite valitud kirjed Prahi hulka liigutada?
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
||||||
pane.items.loading=datuak kargatzen ari...
|
pane.items.loading=datuak kargatzen ari...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=More Columns
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Zaborrara bota
|
pane.items.trash.title=Zaborrara bota
|
||||||
pane.items.trash=Hautatutako itema zaborrera bota?
|
pane.items.trash=Hautatutako itema zaborrera bota?
|
||||||
pane.items.trash.multiple=Hautatutako itemak zaborrera bota?
|
pane.items.trash.multiple=Hautatutako itemak zaborrera bota?
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "ذخیره در زوترو">
|
<!ENTITY zotero.downloadManager.label "ذخیره در زوترو">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
||||||
pane.items.loading=بار کردن لیست آیتمها...
|
pane.items.loading=بار کردن لیست آیتمها...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=More Columns
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=انتقال به سطل بازیافت
|
pane.items.trash.title=انتقال به سطل بازیافت
|
||||||
pane.items.trash=آیتم انتخاب شده به سطل بازیافت برود؟
|
pane.items.trash=آیتم انتخاب شده به سطل بازیافت برود؟
|
||||||
pane.items.trash.multiple=آیتمهای انتخاب شده به سطل بازیافت بروند؟
|
pane.items.trash.multiple=آیتمهای انتخاب شده به سطل بازیافت بروند؟
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<!ENTITY zotero.preferences.default "Oletus:">
|
<!ENTITY zotero.preferences.default "Oletus:">
|
||||||
<!ENTITY zotero.preferences.items "nimikkeet">
|
<!ENTITY zotero.preferences.items "nimikkeet">
|
||||||
<!ENTITY zotero.preferences.period ".">
|
<!ENTITY zotero.preferences.period ".">
|
||||||
<!ENTITY zotero.preferences.settings "Settings">
|
<!ENTITY zotero.preferences.settings "Asetukset">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.prefpane.general "Yleistä">
|
<!ENTITY zotero.preferences.prefpane.general "Yleistä">
|
||||||
|
|
||||||
|
@ -22,12 +22,12 @@
|
||||||
<!ENTITY zotero.preferences.fontSize.notes "Muistiinpanojen kirjasinkoko:">
|
<!ENTITY zotero.preferences.fontSize.notes "Muistiinpanojen kirjasinkoko:">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.miscellaneous "Sekalaista">
|
<!ENTITY zotero.preferences.miscellaneous "Sekalaista">
|
||||||
<!ENTITY zotero.preferences.autoUpdate "Automatically check for updated translators and styles">
|
<!ENTITY zotero.preferences.autoUpdate "Tarkista sivutulkkien ja tyylien päivitykset automaattisesti">
|
||||||
<!ENTITY zotero.preferences.updateNow "Päivitä nyt">
|
<!ENTITY zotero.preferences.updateNow "Päivitä nyt">
|
||||||
<!ENTITY zotero.preferences.reportTranslationFailure "Ilmoita toimimattomista sivutulkeista">
|
<!ENTITY zotero.preferences.reportTranslationFailure "Ilmoita toimimattomista sivutulkeista">
|
||||||
<!ENTITY zotero.preferences.zoteroDotOrgVersionHeader "Anna zotero.orgin muunnella sisältöään nykyisen Zotero-version perusteella">
|
<!ENTITY zotero.preferences.zoteroDotOrgVersionHeader "Anna zotero.orgin muunnella sisältöään nykyisen Zotero-version perusteella">
|
||||||
<!ENTITY zotero.preferences.zoteroDotOrgVersionHeader.tooltip "If enabled, the current Zotero version will be added to HTTP requests to zotero.org.">
|
<!ENTITY zotero.preferences.zoteroDotOrgVersionHeader.tooltip "If enabled, the current Zotero version will be added to HTTP requests to zotero.org.">
|
||||||
<!ENTITY zotero.preferences.parseRISRefer "Use Zotero for downloaded BibTeX/RIS/Refer files">
|
<!ENTITY zotero.preferences.parseRISRefer "Käytä Zoteroa ladattujen BibTeX/Refer-tiedostojen avaamiseen">
|
||||||
<!ENTITY zotero.preferences.automaticSnapshots "Ota tilannekuvat automaattisesti luotaessa nimikettä web-sivusta">
|
<!ENTITY zotero.preferences.automaticSnapshots "Ota tilannekuvat automaattisesti luotaessa nimikettä web-sivusta">
|
||||||
<!ENTITY zotero.preferences.downloadAssociatedFiles "Liitä automaattisesti asiaankuuluvat PDF:t ja muut tiedostot">
|
<!ENTITY zotero.preferences.downloadAssociatedFiles "Liitä automaattisesti asiaankuuluvat PDF:t ja muut tiedostot">
|
||||||
<!ENTITY zotero.preferences.automaticTags "Merkitse automaattisesti nimikkeisiin avainsanat ja otsikot">
|
<!ENTITY zotero.preferences.automaticTags "Merkitse automaattisesti nimikkeisiin avainsanat ja otsikot">
|
||||||
|
@ -55,8 +55,8 @@
|
||||||
<!ENTITY zotero.preferences.sync.createAccount "Luo käyttäjätili">
|
<!ENTITY zotero.preferences.sync.createAccount "Luo käyttäjätili">
|
||||||
<!ENTITY zotero.preferences.sync.lostPassword "Unohditko salasanan?">
|
<!ENTITY zotero.preferences.sync.lostPassword "Unohditko salasanan?">
|
||||||
<!ENTITY zotero.preferences.sync.syncAutomatically "Synkronoi automaattisesti">
|
<!ENTITY zotero.preferences.sync.syncAutomatically "Synkronoi automaattisesti">
|
||||||
<!ENTITY zotero.preferences.sync.syncFullTextContent "Sync full-text content">
|
<!ENTITY zotero.preferences.sync.syncFullTextContent "Synkronisoi kokotekstit">
|
||||||
<!ENTITY zotero.preferences.sync.syncFullTextContent.desc "Zotero can sync the full-text content of files in your Zotero libraries with zotero.org and other linked devices, allowing you to easily search for your files wherever you are. The full-text content of your files will not be shared publicly.">
|
<!ENTITY zotero.preferences.sync.syncFullTextContent.desc "Zotero voi synkronisoida kirjastossasi olevien tiedostojen kokotekstisisällön zotero.orgiin ja linkattuihin laitteisiin, joten voi helposti hakea tietoja missä vain. Tiedostojen kokotekstisisältöä ei jaeta julkisesti.">
|
||||||
<!ENTITY zotero.preferences.sync.about "Tietoa synkronoinnista">
|
<!ENTITY zotero.preferences.sync.about "Tietoa synkronoinnista">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing "Tiedostojen synkronointi">
|
<!ENTITY zotero.preferences.sync.fileSyncing "Tiedostojen synkronointi">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.url "Osoite:">
|
<!ENTITY zotero.preferences.sync.fileSyncing.url "Osoite:">
|
||||||
|
@ -64,12 +64,12 @@
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.groups "Synkronoi ryhmäkirjastojen liitetiedostot käyttäen Zoteron tallennustilaa">
|
<!ENTITY zotero.preferences.sync.fileSyncing.groups "Synkronoi ryhmäkirjastojen liitetiedostot käyttäen Zoteron tallennustilaa">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.download "Lataa tiedostot">
|
<!ENTITY zotero.preferences.sync.fileSyncing.download "Lataa tiedostot">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.download.atSyncTime "synkronoinnin yhteydessä">
|
<!ENTITY zotero.preferences.sync.fileSyncing.download.atSyncTime "synkronoinnin yhteydessä">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.download.onDemand "as needed">
|
<!ENTITY zotero.preferences.sync.fileSyncing.download.onDemand "tarvittaessa">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.tos1 "Käyttämällä Zoteron tallennustilaa sitoudut samalla siihen liittyviin">
|
<!ENTITY zotero.preferences.sync.fileSyncing.tos1 "Käyttämällä Zoteron tallennustilaa sitoudut samalla siihen liittyviin">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.tos2 "käyttöehtoihin">
|
<!ENTITY zotero.preferences.sync.fileSyncing.tos2 "käyttöehtoihin">
|
||||||
<!ENTITY zotero.preferences.sync.reset.warning1 "Seuraavat toiminnot ovat tarpeen vain äärimmäisen harvinaisissa tilanteissa, eikä niitä tulisi käyttää tavalliseen virheenetsintään. Monissa tapauksissa asetusten nollaus voi aiheuttaa lisää ongelmia. Katso ">
|
<!ENTITY zotero.preferences.sync.reset.warning1 "Seuraavat toiminnot ovat tarpeen vain äärimmäisen harvinaisissa tilanteissa, eikä niitä tulisi käyttää tavalliseen virheenetsintään. Monissa tapauksissa asetusten nollaus voi aiheuttaa lisää ongelmia. Katso ">
|
||||||
<!ENTITY zotero.preferences.sync.reset.warning2 "Synkroinnin nollauksen asetukset">
|
<!ENTITY zotero.preferences.sync.reset.warning2 "Synkroinnin nollauksen asetukset">
|
||||||
<!ENTITY zotero.preferences.sync.reset.warning3 " for more information.">
|
<!ENTITY zotero.preferences.sync.reset.warning3 "saadaksesi lisätietoja.">
|
||||||
<!ENTITY zotero.preferences.sync.reset.fullSync "Täydellinen synkronointi Zotero-palvelimen kanssa">
|
<!ENTITY zotero.preferences.sync.reset.fullSync "Täydellinen synkronointi Zotero-palvelimen kanssa">
|
||||||
<!ENTITY zotero.preferences.sync.reset.fullSync.desc "Yhdistä paikallinen Zotero-aineisto synkronointipalvelimen aineiston kanssa jättäen synkronointihistoria huomioimatta">
|
<!ENTITY zotero.preferences.sync.reset.fullSync.desc "Yhdistä paikallinen Zotero-aineisto synkronointipalvelimen aineiston kanssa jättäen synkronointihistoria huomioimatta">
|
||||||
<!ENTITY zotero.preferences.sync.reset.restoreFromServer "Palauta aineisto Zotero-palvelimelta">
|
<!ENTITY zotero.preferences.sync.reset.restoreFromServer "Palauta aineisto Zotero-palvelimelta">
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
<!ENTITY zotero.preferences.sync.reset.restoreToServer.desc "Poista kaikki palvelimella oleva aineisto ja korvaa se paikallisella Zotero-aineistolla">
|
<!ENTITY zotero.preferences.sync.reset.restoreToServer.desc "Poista kaikki palvelimella oleva aineisto ja korvaa se paikallisella Zotero-aineistolla">
|
||||||
<!ENTITY zotero.preferences.sync.reset.resetFileSyncHistory "Poista tiedostojen synkronointihistoria">
|
<!ENTITY zotero.preferences.sync.reset.resetFileSyncHistory "Poista tiedostojen synkronointihistoria">
|
||||||
<!ENTITY zotero.preferences.sync.reset.resetFileSyncHistory.desc "Tarkistaa jokaisen paikallisen liitetiedoston löytymisen tallennuspalvelimelta">
|
<!ENTITY zotero.preferences.sync.reset.resetFileSyncHistory.desc "Tarkistaa jokaisen paikallisen liitetiedoston löytymisen tallennuspalvelimelta">
|
||||||
<!ENTITY zotero.preferences.sync.reset "Reset">
|
<!ENTITY zotero.preferences.sync.reset "Nollaa">
|
||||||
<!ENTITY zotero.preferences.sync.reset.button "Palauta">
|
<!ENTITY zotero.preferences.sync.reset.button "Palauta">
|
||||||
|
|
||||||
|
|
||||||
|
@ -128,12 +128,12 @@
|
||||||
<!ENTITY zotero.preferences.prefpane.keys "Shortcut Keys">
|
<!ENTITY zotero.preferences.prefpane.keys "Shortcut Keys">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.keys.openZotero "Avaa/sulje Zotero-ikkuna">
|
<!ENTITY zotero.preferences.keys.openZotero "Avaa/sulje Zotero-ikkuna">
|
||||||
<!ENTITY zotero.preferences.keys.saveToZotero "Save to Zotero (address bar icon)">
|
<!ENTITY zotero.preferences.keys.saveToZotero "Tallenna Zoteroon (osoitepalkin kuvake)">
|
||||||
<!ENTITY zotero.preferences.keys.toggleFullscreen "Koko ruudun tila">
|
<!ENTITY zotero.preferences.keys.toggleFullscreen "Koko ruudun tila">
|
||||||
<!ENTITY zotero.preferences.keys.focusLibrariesPane "Focus Libraries Pane">
|
<!ENTITY zotero.preferences.keys.focusLibrariesPane "Kohdista kirjastonäkymään">
|
||||||
<!ENTITY zotero.preferences.keys.quicksearch "Pikahaku">
|
<!ENTITY zotero.preferences.keys.quicksearch "Pikahaku">
|
||||||
<!ENTITY zotero.preferences.keys.newItem "Create a New Item">
|
<!ENTITY zotero.preferences.keys.newItem "Luo uusi nimike">
|
||||||
<!ENTITY zotero.preferences.keys.newNote "Create a New Note">
|
<!ENTITY zotero.preferences.keys.newNote "Luo uusi muistiinpanot">
|
||||||
<!ENTITY zotero.preferences.keys.toggleTagSelector "Aiheenvalitsin päälle/pois">
|
<!ENTITY zotero.preferences.keys.toggleTagSelector "Aiheenvalitsin päälle/pois">
|
||||||
<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Kopioi valittujen nimikkeiden sitaatit leikepöydälle">
|
<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Kopioi valittujen nimikkeiden sitaatit leikepöydälle">
|
||||||
<!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Kopioi valitut nimikkeet leikepöydälle">
|
<!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Kopioi valitut nimikkeet leikepöydälle">
|
||||||
|
@ -146,7 +146,7 @@
|
||||||
<!ENTITY zotero.preferences.proxies.desc_before_link "Zotero välittää huomaamattomasti pyyntöjä tallennettujen välityspalvelinten kautta. Katso">
|
<!ENTITY zotero.preferences.proxies.desc_before_link "Zotero välittää huomaamattomasti pyyntöjä tallennettujen välityspalvelinten kautta. Katso">
|
||||||
<!ENTITY zotero.preferences.proxies.desc_link "välityspalvelinten ohjeesta">
|
<!ENTITY zotero.preferences.proxies.desc_link "välityspalvelinten ohjeesta">
|
||||||
<!ENTITY zotero.preferences.proxies.desc_after_link "lisätietoja.">
|
<!ENTITY zotero.preferences.proxies.desc_after_link "lisätietoja.">
|
||||||
<!ENTITY zotero.preferences.proxies.transparent "Transparently redirect requests through previously used proxies">
|
<!ENTITY zotero.preferences.proxies.transparent "Käytä välityspalvelinta uudelleenohjaukseen">
|
||||||
<!ENTITY zotero.preferences.proxies.autoRecognize "Tunnista välitetyt resurssit automaattisesti">
|
<!ENTITY zotero.preferences.proxies.autoRecognize "Tunnista välitetyt resurssit automaattisesti">
|
||||||
<!ENTITY zotero.preferences.proxies.disableByDomain "Poista käytöstä välitetty uudelleenohjaus, kun palvelinnimessä on">
|
<!ENTITY zotero.preferences.proxies.disableByDomain "Poista käytöstä välitetty uudelleenohjaus, kun palvelinnimessä on">
|
||||||
<!ENTITY zotero.preferences.proxies.configured "Konfiguroidut välityspalvelimet">
|
<!ENTITY zotero.preferences.proxies.configured "Konfiguroidut välityspalvelimet">
|
||||||
|
@ -163,14 +163,14 @@
|
||||||
<!ENTITY zotero.preferences.proxies.a_variable "%a - Mikä tahansa merkkijono">
|
<!ENTITY zotero.preferences.proxies.a_variable "%a - Mikä tahansa merkkijono">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.prefpane.advanced "Lisäasetukset">
|
<!ENTITY zotero.preferences.prefpane.advanced "Lisäasetukset">
|
||||||
<!ENTITY zotero.preferences.advanced.filesAndFolders "Files and Folders">
|
<!ENTITY zotero.preferences.advanced.filesAndFolders "Tiedostot ja kansiot">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.prefpane.locate "Paikanna">
|
<!ENTITY zotero.preferences.prefpane.locate "Paikanna">
|
||||||
<!ENTITY zotero.preferences.locate.locateEngineManager "Artikkelihakumoottorin hallinta">
|
<!ENTITY zotero.preferences.locate.locateEngineManager "Artikkelihakumoottorin hallinta">
|
||||||
<!ENTITY zotero.preferences.locate.description "Kuvaus">
|
<!ENTITY zotero.preferences.locate.description "Kuvaus">
|
||||||
<!ENTITY zotero.preferences.locate.name "Nimi">
|
<!ENTITY zotero.preferences.locate.name "Nimi">
|
||||||
<!ENTITY zotero.preferences.locate.locateEnginedescription "Artikkelihakumoottori laajentaa Info-sivulla olevan Paikanna-valikon toimintaa. Laittamalla päälle alla luetellut artikkelihakumoottori ne lisätään pudotusvalikkoon ja niitä voi käyttää kirjastossasi olevien resurssien etsimiseen webistä.">
|
<!ENTITY zotero.preferences.locate.locateEnginedescription "Artikkelihakumoottori laajentaa Info-sivulla olevan Paikanna-valikon toimintaa. Laittamalla päälle alla luetellut artikkelihakumoottorit ne lisätään pudotusvalikkoon ja niitä voi käyttää kirjastossasi olevien resurssien etsimiseen webistä.">
|
||||||
<!ENTITY zotero.preferences.locate.addDescription "To add a Lookup Engine that is not on the list, visit the desired search engine in your browser and select 'Add' from the Firefox Search Bar. When you reopen this preference pane you will have the option to enable the new Lookup Engine.">
|
<!ENTITY zotero.preferences.locate.addDescription "Lisätäksesi artikkelihakumoottorin, jota ei ole luettelossa, vieraile kyseisellä nettisivulla ja valitse 'Add' (Lisää) Firefoxin hakupalkista. Kun avaat uudelleen asetukset, voit aktivoida uuden artikkelihakumoottorin.">
|
||||||
<!ENTITY zotero.preferences.locate.restoreDefaults "Palauta oletusarvot">
|
<!ENTITY zotero.preferences.locate.restoreDefaults "Palauta oletusarvot">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.charset "Merkistökoodaus">
|
<!ENTITY zotero.preferences.charset "Merkistökoodaus">
|
||||||
|
@ -183,11 +183,11 @@
|
||||||
<!ENTITY zotero.preferences.dataDir.choose "Valitse...">
|
<!ENTITY zotero.preferences.dataDir.choose "Valitse...">
|
||||||
<!ENTITY zotero.preferences.dataDir.reveal "Näytä datahakemisto">
|
<!ENTITY zotero.preferences.dataDir.reveal "Näytä datahakemisto">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.attachmentBaseDir.caption "Linked Attachment Base Directory">
|
<!ENTITY zotero.preferences.attachmentBaseDir.caption "Linkattujen liitteiden juurikansio">
|
||||||
<!ENTITY zotero.preferences.attachmentBaseDir.message "Zotero will use relative paths for linked file attachments within the base directory, allowing you to access files on different computers as long as the file structure within the base directory remains the same.">
|
<!ENTITY zotero.preferences.attachmentBaseDir.message "Zotero käyttää suhteellisia polkuja viitatakseen tiedostoliitteisiin juurikansiossa, joten voit käyttää tiedostoja eri tietokoneilla, kunhan tiedostorakenne juurikansion sisällä pysyy samana.">
|
||||||
<!ENTITY zotero.preferences.attachmentBaseDir.basePath "Base directory:">
|
<!ENTITY zotero.preferences.attachmentBaseDir.basePath "Juurikansio:">
|
||||||
<!ENTITY zotero.preferences.attachmentBaseDir.selectBasePath "Choose…">
|
<!ENTITY zotero.preferences.attachmentBaseDir.selectBasePath "Valitse...">
|
||||||
<!ENTITY zotero.preferences.attachmentBaseDir.resetBasePath "Revert to Absolute Paths…">
|
<!ENTITY zotero.preferences.attachmentBaseDir.resetBasePath "Palauta absoluuttiset polut...">
|
||||||
|
|
||||||
<!ENTITY zotero.preferences.dbMaintenance "Tietokannan huolto">
|
<!ENTITY zotero.preferences.dbMaintenance "Tietokannan huolto">
|
||||||
<!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Tarkista tietokannan eheys">
|
<!ENTITY zotero.preferences.dbMaintenance.integrityCheck "Tarkista tietokannan eheys">
|
||||||
|
@ -206,4 +206,4 @@
|
||||||
<!ENTITY zotero.preferences.openAboutConfig "Avaa about:config">
|
<!ENTITY zotero.preferences.openAboutConfig "Avaa about:config">
|
||||||
<!ENTITY zotero.preferences.openCSLEdit "Avaa CSL-muokkain">
|
<!ENTITY zotero.preferences.openCSLEdit "Avaa CSL-muokkain">
|
||||||
<!ENTITY zotero.preferences.openCSLPreview "Avaa CSL-esikatselu">
|
<!ENTITY zotero.preferences.openCSLPreview "Avaa CSL-esikatselu">
|
||||||
<!ENTITY zotero.preferences.openAboutMemory "Open about:memory">
|
<!ENTITY zotero.preferences.openAboutMemory "Avaa about:memory">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!ENTITY zotero.search.name "Nimi:">
|
<!ENTITY zotero.search.name "Nimi:">
|
||||||
|
|
||||||
<!ENTITY zotero.search.searchInLibrary "Search in library:">
|
<!ENTITY zotero.search.searchInLibrary "Etsi kirjastosta:">
|
||||||
|
|
||||||
<!ENTITY zotero.search.joinMode.prefix "Vertaa">
|
<!ENTITY zotero.search.joinMode.prefix "Vertaa">
|
||||||
<!ENTITY zotero.search.joinMode.any "joku">
|
<!ENTITY zotero.search.joinMode.any "joku">
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
<!ENTITY zotero.search.textModes.phrase "Lause">
|
<!ENTITY zotero.search.textModes.phrase "Lause">
|
||||||
<!ENTITY zotero.search.textModes.phraseBinary "Lause (sis. binääritiedostot)">
|
<!ENTITY zotero.search.textModes.phraseBinary "Lause (sis. binääritiedostot)">
|
||||||
<!ENTITY zotero.search.textModes.regexp "Säännöllinen lauseke">
|
<!ENTITY zotero.search.textModes.regexp "Säännöllinen lauseke">
|
||||||
<!ENTITY zotero.search.textModes.regexpCS "Säännöllinen lauseke (kirjaintaso)">
|
<!ENTITY zotero.search.textModes.regexpCS "Säännöllinen lauseke (merkkikokoriippuvainen)">
|
||||||
|
|
||||||
<!ENTITY zotero.search.date.units.days "päivää">
|
<!ENTITY zotero.search.date.units.days "päivää">
|
||||||
<!ENTITY zotero.search.date.units.months "kuukautta">
|
<!ENTITY zotero.search.date.units.months "kuukautta">
|
||||||
|
|
|
@ -3,9 +3,9 @@ general.filter=Suodata:
|
||||||
general.highlight=Korosta:
|
general.highlight=Korosta:
|
||||||
general.clearAll=Tyhjennä kaikki
|
general.clearAll=Tyhjennä kaikki
|
||||||
general.jumpToYear=Hyppää vuoteen:
|
general.jumpToYear=Hyppää vuoteen:
|
||||||
general.firstBand=Nauha yksi:
|
general.firstBand=Ensimmäinen kaista:
|
||||||
general.secondBand=Nauha kaksi:
|
general.secondBand=Toinen kaista:
|
||||||
general.thirdBand=Nauha kolme:
|
general.thirdBand=Kolmas kaista:
|
||||||
general.dateType=Päiväysmuoto:
|
general.dateType=Päiväysmuoto:
|
||||||
general.timelineHeight=Aikajanan korkeus
|
general.timelineHeight=Aikajanan korkeus
|
||||||
general.fitToScreen=Sovita näytölle
|
general.fitToScreen=Sovita näytölle
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
<!ENTITY zotero.general.cancel "Peruuta">
|
<!ENTITY zotero.general.cancel "Peruuta">
|
||||||
|
|
||||||
<!ENTITY zotero.errorReport.title "Zoteron virheraportti">
|
<!ENTITY zotero.errorReport.title "Zoteron virheraportti">
|
||||||
<!ENTITY zotero.errorReport.unrelatedMessages "This may include messages unrelated to Zotero.">
|
<!ENTITY zotero.errorReport.unrelatedMessages "Mukana saattaa olla Zoteroon liittymättömiä viestejä.">
|
||||||
<!ENTITY zotero.errorReport.submissionInProgress "Odota">
|
<!ENTITY zotero.errorReport.submissionInProgress "Odota, kunnes virheraportti on toimitettu.">
|
||||||
<!ENTITY zotero.errorReport.submitted "Virheraporttisi on toimitettu.">
|
<!ENTITY zotero.errorReport.submitted "Virheraporttisi on toimitettu.">
|
||||||
<!ENTITY zotero.errorReport.reportID "Raportin tunnus:">
|
<!ENTITY zotero.errorReport.reportID "Raportin tunnus:">
|
||||||
<!ENTITY zotero.errorReport.postToForums "Lähetä Zoteron keskustelualueelle (forums.zotero.org) viesti, joka sisältää raportin tunnuksen, ongelman kuvauksen sekä toimenpiteet, joilla virhe saadaan toistettua.">
|
<!ENTITY zotero.errorReport.postToForums "Lähetä Zoteron keskustelualueelle (forums.zotero.org) viesti, joka sisältää raportin tunnuksen, ongelman kuvauksen sekä toimenpiteet, joilla virhe saadaan toistettua.">
|
||||||
<!ENTITY zotero.errorReport.notReviewed "Error reports are generally not reviewed unless referred to in the forums.">
|
<!ENTITY zotero.errorReport.notReviewed "Virheraportteja ei yleensä käsitellä, jos niihin ei ole viitattu keskustelualueella.">
|
||||||
|
|
||||||
<!ENTITY zotero.upgrade.title "Zoteron päivitysvelho">
|
<!ENTITY zotero.upgrade.title "Zoteron päivitysvelho">
|
||||||
<!ENTITY zotero.upgrade.newVersionInstalled "Olet asentanut Zoteron uuden version.">
|
<!ENTITY zotero.upgrade.newVersionInstalled "Olet asentanut Zoteron uuden version.">
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
<!ENTITY zotero.upgrade.upgradeInProgress "Odota päivitysprosessin päättymistä. Tämä saattaa kestää muutamia minuutteja.">
|
<!ENTITY zotero.upgrade.upgradeInProgress "Odota päivitysprosessin päättymistä. Tämä saattaa kestää muutamia minuutteja.">
|
||||||
<!ENTITY zotero.upgrade.upgradeSucceeded "Zotero-tietokantasi on onnistuneesti päivitetty.">
|
<!ENTITY zotero.upgrade.upgradeSucceeded "Zotero-tietokantasi on onnistuneesti päivitetty.">
|
||||||
<!ENTITY zotero.upgrade.changeLogBeforeLink "Katso">
|
<!ENTITY zotero.upgrade.changeLogBeforeLink "Katso">
|
||||||
<!ENTITY zotero.upgrade.changeLogLink "muutoslogi">
|
<!ENTITY zotero.upgrade.changeLogLink "muutosloki">
|
||||||
<!ENTITY zotero.upgrade.changeLogAfterLink "tutustuaksesi uusiin ominaisuuksiin ja päivityksiin.">
|
<!ENTITY zotero.upgrade.changeLogAfterLink "tutustuaksesi uusiin ominaisuuksiin ja päivityksiin.">
|
||||||
|
|
||||||
<!ENTITY zotero.contextMenu.addTextToCurrentNote "Lisää valinta Zotero-muistiinpanoon">
|
<!ENTITY zotero.contextMenu.addTextToCurrentNote "Lisää valinta Zotero-muistiinpanoon">
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
<!ENTITY zotero.tabs.info.label "Tiedot">
|
<!ENTITY zotero.tabs.info.label "Tiedot">
|
||||||
<!ENTITY zotero.tabs.notes.label "Muistiinpanot">
|
<!ENTITY zotero.tabs.notes.label "Muistiinpanot">
|
||||||
<!ENTITY zotero.tabs.attachments.label "Liitteet">
|
<!ENTITY zotero.tabs.attachments.label "Liitteet">
|
||||||
<!ENTITY zotero.tabs.tags.label "Merkit">
|
<!ENTITY zotero.tabs.tags.label "Avainsanat">
|
||||||
<!ENTITY zotero.tabs.related.label "Liittyvät">
|
<!ENTITY zotero.tabs.related.label "Liittyvät">
|
||||||
<!ENTITY zotero.notes.separate "Muokkaa erillisessä ikkunassa">
|
<!ENTITY zotero.notes.separate "Muokkaa erillisessä ikkunassa">
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
<!ENTITY zotero.collections.showUnfiledItems "Näytä arkistoimattomat nimikkeet">
|
<!ENTITY zotero.collections.showUnfiledItems "Näytä arkistoimattomat nimikkeet">
|
||||||
|
|
||||||
<!ENTITY zotero.items.itemType "Nimikkeen tyyppi">
|
<!ENTITY zotero.items.itemType "Nimikkeen tyyppi">
|
||||||
<!ENTITY zotero.items.type_column "Item Type">
|
<!ENTITY zotero.items.type_column "Nimikkeen tyyppi">
|
||||||
<!ENTITY zotero.items.title_column "Otsikko">
|
<!ENTITY zotero.items.title_column "Otsikko">
|
||||||
<!ENTITY zotero.items.creator_column "Luoja">
|
<!ENTITY zotero.items.creator_column "Luoja">
|
||||||
<!ENTITY zotero.items.date_column "Päiväys">
|
<!ENTITY zotero.items.date_column "Päiväys">
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
<!ENTITY zotero.items.place_column "Paikka">
|
<!ENTITY zotero.items.place_column "Paikka">
|
||||||
<!ENTITY zotero.items.volume_column "Vuosikerta">
|
<!ENTITY zotero.items.volume_column "Vuosikerta">
|
||||||
<!ENTITY zotero.items.edition_column "Painos">
|
<!ENTITY zotero.items.edition_column "Painos">
|
||||||
<!ENTITY zotero.items.pages_column "Sivuja">
|
<!ENTITY zotero.items.pages_column "Sivut">
|
||||||
<!ENTITY zotero.items.issue_column "Numero">
|
<!ENTITY zotero.items.issue_column "Numero">
|
||||||
<!ENTITY zotero.items.series_column "Sarja">
|
<!ENTITY zotero.items.series_column "Sarja">
|
||||||
<!ENTITY zotero.items.seriesTitle_column "Sarjan nimi">
|
<!ENTITY zotero.items.seriesTitle_column "Sarjan nimi">
|
||||||
|
@ -97,20 +97,20 @@
|
||||||
<!ENTITY zotero.toolbar.moreItemTypes.label "Lisää">
|
<!ENTITY zotero.toolbar.moreItemTypes.label "Lisää">
|
||||||
<!ENTITY zotero.toolbar.newItemFromPage.label "Uusi nimike nykyisestä sivusta">
|
<!ENTITY zotero.toolbar.newItemFromPage.label "Uusi nimike nykyisestä sivusta">
|
||||||
<!ENTITY zotero.toolbar.lookup.label "Uusi nimike tunnisteen perusteella">
|
<!ENTITY zotero.toolbar.lookup.label "Uusi nimike tunnisteen perusteella">
|
||||||
<!ENTITY zotero.toolbar.removeItem.label "Remove Item...">
|
<!ENTITY zotero.toolbar.removeItem.label "Poista nimike...">
|
||||||
<!ENTITY zotero.toolbar.newCollection.label "New Collection...">
|
<!ENTITY zotero.toolbar.newCollection.label "Uusi kokoelma...">
|
||||||
<!ENTITY zotero.toolbar.newGroup "New Group...">
|
<!ENTITY zotero.toolbar.newGroup "Uusi ryhmä...">
|
||||||
<!ENTITY zotero.toolbar.newSubcollection.label "New Subcollection...">
|
<!ENTITY zotero.toolbar.newSubcollection.label "Uusi alakokoelma...">
|
||||||
<!ENTITY zotero.toolbar.newSavedSearch.label "New Saved Search...">
|
<!ENTITY zotero.toolbar.newSavedSearch.label "Uusi tallennettu haku...">
|
||||||
<!ENTITY zotero.toolbar.emptyTrash.label "Tyhjennä roskakori">
|
<!ENTITY zotero.toolbar.emptyTrash.label "Tyhjennä roskakori">
|
||||||
<!ENTITY zotero.toolbar.tagSelector.label "Näytä/piilota merkkivalitsin">
|
<!ENTITY zotero.toolbar.tagSelector.label "Näytä/piilota merkkivalitsin">
|
||||||
<!ENTITY zotero.toolbar.actions.label "Toiminnot">
|
<!ENTITY zotero.toolbar.actions.label "Toiminnot">
|
||||||
<!ENTITY zotero.toolbar.import.label "Import...">
|
<!ENTITY zotero.toolbar.import.label "Tuo...">
|
||||||
<!ENTITY zotero.toolbar.importFromClipboard "Tuo leikepöydältä">
|
<!ENTITY zotero.toolbar.importFromClipboard "Tuo leikepöydältä">
|
||||||
<!ENTITY zotero.toolbar.export.label "Export Library...">
|
<!ENTITY zotero.toolbar.export.label "Vie kirjasto...">
|
||||||
<!ENTITY zotero.toolbar.rtfScan.label "RTF Scan...">
|
<!ENTITY zotero.toolbar.rtfScan.label "RTF-skannaus...">
|
||||||
<!ENTITY zotero.toolbar.timeline.label "Luo aikajana">
|
<!ENTITY zotero.toolbar.timeline.label "Luo aikajana">
|
||||||
<!ENTITY zotero.toolbar.preferences.label "Preferences...">
|
<!ENTITY zotero.toolbar.preferences.label "Asetukset...">
|
||||||
<!ENTITY zotero.toolbar.supportAndDocumentation "Ohjeet ja tuki">
|
<!ENTITY zotero.toolbar.supportAndDocumentation "Ohjeet ja tuki">
|
||||||
<!ENTITY zotero.toolbar.about.label "Tietoja Zoterosta">
|
<!ENTITY zotero.toolbar.about.label "Tietoja Zoterosta">
|
||||||
<!ENTITY zotero.toolbar.advancedSearch "Tarkennettu haku">
|
<!ENTITY zotero.toolbar.advancedSearch "Tarkennettu haku">
|
||||||
|
@ -128,22 +128,22 @@
|
||||||
<!ENTITY zotero.toolbar.newNote "Uusi muistiinpano">
|
<!ENTITY zotero.toolbar.newNote "Uusi muistiinpano">
|
||||||
<!ENTITY zotero.toolbar.note.standalone "Uusi itsenäinen muistiinpano">
|
<!ENTITY zotero.toolbar.note.standalone "Uusi itsenäinen muistiinpano">
|
||||||
<!ENTITY zotero.toolbar.note.child "Uusi alamuistiinpano">
|
<!ENTITY zotero.toolbar.note.child "Uusi alamuistiinpano">
|
||||||
<!ENTITY zotero.toolbar.lookup "Lookup by Identifier...">
|
<!ENTITY zotero.toolbar.lookup "Etsi tunnisteen perusteella...">
|
||||||
<!ENTITY zotero.toolbar.attachment.linked "Link to File...">
|
<!ENTITY zotero.toolbar.attachment.linked "Linkitä tiedostoon...">
|
||||||
<!ENTITY zotero.toolbar.attachment.add "Store Copy of File...">
|
<!ENTITY zotero.toolbar.attachment.add "Tallenna tiedoston kopio...">
|
||||||
<!ENTITY zotero.toolbar.attachment.weblink "Tallenna linkki nykyiselle sivulle">
|
<!ENTITY zotero.toolbar.attachment.weblink "Tallenna linkki nykyiselle sivulle">
|
||||||
<!ENTITY zotero.toolbar.attachment.snapshot "Ota tilannekuva nykyisestä sivusta">
|
<!ENTITY zotero.toolbar.attachment.snapshot "Ota tilannekuva nykyisestä sivusta">
|
||||||
|
|
||||||
<!ENTITY zotero.tagSelector.noTagsToDisplay "Ei merkkejä">
|
<!ENTITY zotero.tagSelector.noTagsToDisplay "Ei näytettäviä avainsanoja">
|
||||||
<!ENTITY zotero.tagSelector.filter "Suodatin:">
|
<!ENTITY zotero.tagSelector.filter "Suodatin:">
|
||||||
<!ENTITY zotero.tagSelector.showAutomatic "Show automatic">
|
<!ENTITY zotero.tagSelector.showAutomatic "Show automatic">
|
||||||
<!ENTITY zotero.tagSelector.displayAllInLibrary "Display all tags in this library">
|
<!ENTITY zotero.tagSelector.displayAllInLibrary "Näytä tämän kirjaston kaikki avainsanat">
|
||||||
<!ENTITY zotero.tagSelector.selectVisible "Select visible">
|
<!ENTITY zotero.tagSelector.selectVisible "Valitse näkyvät">
|
||||||
<!ENTITY zotero.tagSelector.clearVisible "Deselect visible">
|
<!ENTITY zotero.tagSelector.clearVisible "Poista näkyvät valinnat">
|
||||||
<!ENTITY zotero.tagSelector.clearAll "Deselect all">
|
<!ENTITY zotero.tagSelector.clearAll "Poista kaikki valinnat">
|
||||||
<!ENTITY zotero.tagSelector.assignColor "Aseta väri">
|
<!ENTITY zotero.tagSelector.assignColor "Aseta väri">
|
||||||
<!ENTITY zotero.tagSelector.renameTag "Rename Tag...">
|
<!ENTITY zotero.tagSelector.renameTag "Nimeä avainsana uudelleen...">
|
||||||
<!ENTITY zotero.tagSelector.deleteTag "Delete Tag...">
|
<!ENTITY zotero.tagSelector.deleteTag "Poista avainsana...">
|
||||||
|
|
||||||
<!ENTITY zotero.tagColorChooser.title "Valitse avainsanan väri ja sijainti">
|
<!ENTITY zotero.tagColorChooser.title "Valitse avainsanan väri ja sijainti">
|
||||||
<!ENTITY zotero.tagColorChooser.color "Väri:">
|
<!ENTITY zotero.tagColorChooser.color "Väri:">
|
||||||
|
@ -176,7 +176,7 @@
|
||||||
|
|
||||||
<!ENTITY zotero.progress.title "Eteneminen">
|
<!ENTITY zotero.progress.title "Eteneminen">
|
||||||
|
|
||||||
<!ENTITY zotero.exportOptions.title "Export...">
|
<!ENTITY zotero.exportOptions.title "Vie...">
|
||||||
<!ENTITY zotero.exportOptions.format.label "Muoto:">
|
<!ENTITY zotero.exportOptions.format.label "Muoto:">
|
||||||
<!ENTITY zotero.exportOptions.translatorOptions.label "Kääntäjän asetukset">
|
<!ENTITY zotero.exportOptions.translatorOptions.label "Kääntäjän asetukset">
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@
|
||||||
|
|
||||||
<!ENTITY zotero.integration.prefs.formatUsing.label "Muotoile käyttäen:">
|
<!ENTITY zotero.integration.prefs.formatUsing.label "Muotoile käyttäen:">
|
||||||
<!ENTITY zotero.integration.prefs.bookmarks.label "Kirjanmerkit">
|
<!ENTITY zotero.integration.prefs.bookmarks.label "Kirjanmerkit">
|
||||||
<!ENTITY zotero.integration.prefs.bookmarks.caption "Bookmarks are preserved across Microsoft Word and OpenOffice, but may be accidentally modified.">
|
<!ENTITY zotero.integration.prefs.bookmarks.caption "Kirjanmerkit säilytetään Microsoft Wordin ja OpenOfficen välillä, mutta ne voivat tahattomasti muuttua.">
|
||||||
|
|
||||||
|
|
||||||
<!ENTITY zotero.integration.prefs.automaticJournalAbbeviations.label "Lyhennä lehtien nimet automaattisesti">
|
<!ENTITY zotero.integration.prefs.automaticJournalAbbeviations.label "Lyhennä lehtien nimet automaattisesti">
|
||||||
|
@ -251,7 +251,7 @@
|
||||||
<!ENTITY zotero.proxy.recognized.disable.label "Älä automaattisesti uudelleenohjaa pyyntöjä aiemmin tunnistettujen välitystyspalvelinten kautta">
|
<!ENTITY zotero.proxy.recognized.disable.label "Älä automaattisesti uudelleenohjaa pyyntöjä aiemmin tunnistettujen välitystyspalvelinten kautta">
|
||||||
<!ENTITY zotero.proxy.recognized.ignore.label "Ohita">
|
<!ENTITY zotero.proxy.recognized.ignore.label "Ohita">
|
||||||
|
|
||||||
<!ENTITY zotero.recognizePDF.recognizing.label "Retrieving Metadata...">
|
<!ENTITY zotero.recognizePDF.recognizing.label "Haetaan metatietoja...">
|
||||||
<!ENTITY zotero.recognizePDF.cancel.label "Peruuta">
|
<!ENTITY zotero.recognizePDF.cancel.label "Peruuta">
|
||||||
<!ENTITY zotero.recognizePDF.pdfName.label "PDF:n nimi">
|
<!ENTITY zotero.recognizePDF.pdfName.label "PDF:n nimi">
|
||||||
<!ENTITY zotero.recognizePDF.itemName.label "Nimikkeen nimi">
|
<!ENTITY zotero.recognizePDF.itemName.label "Nimikkeen nimi">
|
||||||
|
@ -264,7 +264,7 @@
|
||||||
<!ENTITY zotero.rtfScan.ambiguousCitations.label "Monimerkityksiset sitaatit">
|
<!ENTITY zotero.rtfScan.ambiguousCitations.label "Monimerkityksiset sitaatit">
|
||||||
<!ENTITY zotero.rtfScan.mappedCitations.label "Paikannetut sitaatit">
|
<!ENTITY zotero.rtfScan.mappedCitations.label "Paikannetut sitaatit">
|
||||||
<!ENTITY zotero.rtfScan.introPage.label "Johdanto">
|
<!ENTITY zotero.rtfScan.introPage.label "Johdanto">
|
||||||
<!ENTITY zotero.rtfScan.introPage.description "Zotero can automatically extract and reformat citations and insert a bibliography into RTF files. To get started, choose an RTF file below.">
|
<!ENTITY zotero.rtfScan.introPage.description "Zotero voi automaattisesti seuloa ja uudelleenmuotoilla viittaukset ja lisätä kirjallisuusluettelon RTF-tiedostoon. Valitse aluksi RTF-tiedosto.">
|
||||||
<!ENTITY zotero.rtfScan.introPage.description2 "Valitse aluksi luettava RTF-tiedosto sekä kirjoitettava tiedosto:">
|
<!ENTITY zotero.rtfScan.introPage.description2 "Valitse aluksi luettava RTF-tiedosto sekä kirjoitettava tiedosto:">
|
||||||
<!ENTITY zotero.rtfScan.scanPage.label "Etsitään sitaatteja">
|
<!ENTITY zotero.rtfScan.scanPage.label "Etsitään sitaatteja">
|
||||||
<!ENTITY zotero.rtfScan.scanPage.description "Zotero etsii asiakirjasta sitaatteja. Malta vielä hetki.">
|
<!ENTITY zotero.rtfScan.scanPage.description "Zotero etsii asiakirjasta sitaatteja. Malta vielä hetki.">
|
||||||
|
@ -278,9 +278,15 @@
|
||||||
<!ENTITY zotero.rtfScan.inputFile.label "Luettava tiedosto">
|
<!ENTITY zotero.rtfScan.inputFile.label "Luettava tiedosto">
|
||||||
<!ENTITY zotero.rtfScan.outputFile.label "Kirjoitettava tiedosto">
|
<!ENTITY zotero.rtfScan.outputFile.label "Kirjoitettava tiedosto">
|
||||||
|
|
||||||
<!ENTITY zotero.file.choose.label "Choose File...">
|
<!ENTITY zotero.file.choose.label "Valitse tiedosto...">
|
||||||
<!ENTITY zotero.file.noneSelected.label "Tiedostoa ei ole valittu">
|
<!ENTITY zotero.file.noneSelected.label "Tiedostoa ei ole valittu">
|
||||||
|
|
||||||
<!ENTITY zotero.downloadManager.label "Tallenna Zoteroon">
|
<!ENTITY zotero.downloadManager.label "Tallenna Zoteroon">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Liitteitä ei voi tallentaa valittuun kirjastoon. Nimike sen sijaan tallennetaan kirjastoon.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Liitteitä ei voi tallentaa valittuun kirjastoon. Nimike sen sijaan tallennetaan kirjastoon.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "Käyttääksesi tätä ominaisuutta tulee sinun ensin asentaa PDF-työkalut Zoteron asetuksista.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "Käyttääksesi tätä ominaisuutta tulee sinun ensin asentaa PDF-työkalut Zoteron asetuksista.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ general.notNow=Ei nyt
|
||||||
general.passed=Onnistui
|
general.passed=Onnistui
|
||||||
general.failed=Epäonnistui
|
general.failed=Epäonnistui
|
||||||
general.and=ja
|
general.and=ja
|
||||||
general.etAl=et al.
|
general.etAl=ym.
|
||||||
general.accessDenied=Pääsy evätty
|
general.accessDenied=Pääsy evätty
|
||||||
general.permissionDenied=Ei riittäviä oikeuksia
|
general.permissionDenied=Ei riittäviä oikeuksia
|
||||||
general.character.singular=kirjain
|
general.character.singular=kirjain
|
||||||
|
@ -45,15 +45,15 @@ general.seeForMoreInformation=Katso %S, jos haluat tietää lisää.
|
||||||
general.enable=Laita päälle
|
general.enable=Laita päälle
|
||||||
general.disable=Ota pois päältä
|
general.disable=Ota pois päältä
|
||||||
general.remove=Poista
|
general.remove=Poista
|
||||||
general.reset=Reset
|
general.reset=Nollaa
|
||||||
general.hide=Kätke
|
general.hide=Kätke
|
||||||
general.quit=Lopeta
|
general.quit=Lopeta
|
||||||
general.useDefault=Käytä oletusarvoa
|
general.useDefault=Käytä oletusarvoa
|
||||||
general.openDocumentation=Avaa käyttöohje
|
general.openDocumentation=Avaa käyttöohje
|
||||||
general.numMore=%S more…
|
general.numMore=%S lisää...
|
||||||
general.openPreferences=Avaa asetukset
|
general.openPreferences=Avaa asetukset
|
||||||
general.keys.ctrlShift=Ctrl+Shift+
|
general.keys.ctrlShift=Ctrl+Shift+
|
||||||
general.keys.cmdShift=Cmd+Shift+
|
general.keys.cmdShift=Cmd+Shift
|
||||||
|
|
||||||
general.operationInProgress=Zoteron toimenpide on käynnissä.
|
general.operationInProgress=Zoteron toimenpide on käynnissä.
|
||||||
general.operationInProgress.waitUntilFinished=Odota, kunnes se valmis.
|
general.operationInProgress.waitUntilFinished=Odota, kunnes se valmis.
|
||||||
|
@ -62,7 +62,7 @@ general.operationInProgress.waitUntilFinishedAndTryAgain=Odota, kunnes se on val
|
||||||
punctuation.openingQMark="
|
punctuation.openingQMark="
|
||||||
punctuation.closingQMark="
|
punctuation.closingQMark="
|
||||||
punctuation.colon=:
|
punctuation.colon=:
|
||||||
punctuation.ellipsis=…
|
punctuation.ellipsis=...
|
||||||
|
|
||||||
install.quickStartGuide=Quick Start Guide
|
install.quickStartGuide=Quick Start Guide
|
||||||
install.quickStartGuide.message.welcome=Tervetuloa Zoteroon!
|
install.quickStartGuide.message.welcome=Tervetuloa Zoteroon!
|
||||||
|
@ -81,28 +81,28 @@ upgrade.couldNotMigrate.restart=Jos saat toistuvasti tämän viestin, käynnist
|
||||||
errorReport.reportError=Report Error...
|
errorReport.reportError=Report Error...
|
||||||
errorReport.reportErrors=Kerro virheestä...
|
errorReport.reportErrors=Kerro virheestä...
|
||||||
errorReport.reportInstructions=Voit raportoida tämän virheen valitsemalla "%S" Toimintovalikosta (hammasratas).
|
errorReport.reportInstructions=Voit raportoida tämän virheen valitsemalla "%S" Toimintovalikosta (hammasratas).
|
||||||
errorReport.followingReportWillBeSubmitted=The following report will be submitted:
|
errorReport.followingReportWillBeSubmitted=Seuraavanlainen raportti toimitetaan eteenpäin:
|
||||||
errorReport.noErrorsLogged=No errors have been logged since %S started.
|
errorReport.noErrorsLogged=Virheitä ei ole kirjattu lokiin %S:n käynnistämisen jälkeen.
|
||||||
errorReport.advanceMessage=Paina %S lähettääksesi raportin Zoteron kehittäjille.
|
errorReport.advanceMessage=Paina %S lähettääksesi raportin Zoteron kehittäjille.
|
||||||
errorReport.stepsToReproduce=Virheen saa aikaan tekemällä näin:
|
errorReport.stepsToReproduce=Virheen saa aikaan tekemällä näin:
|
||||||
errorReport.expectedResult=Odottamani lopputulos:
|
errorReport.expectedResult=Odottamani lopputulos:
|
||||||
errorReport.actualResult=Todellinen lopputulos:
|
errorReport.actualResult=Todellinen lopputulos:
|
||||||
errorReport.noNetworkConnection=Ei verkkoyhteyttä
|
errorReport.noNetworkConnection=Ei verkkoyhteyttä
|
||||||
errorReport.invalidResponseRepository=Invalid response from repository
|
errorReport.invalidResponseRepository=Virheellinen vastaus tyylivalikoimasta
|
||||||
errorReport.repoCannotBeContacted=Repository cannot be contacted
|
errorReport.repoCannotBeContacted=Tyylivalikoimaan ei saada yhteyttä
|
||||||
|
|
||||||
|
|
||||||
attachmentBasePath.selectDir=Choose Base Directory
|
attachmentBasePath.selectDir=Valitse juurihakemisto
|
||||||
attachmentBasePath.chooseNewPath.title=Confirm New Base Directory
|
attachmentBasePath.chooseNewPath.title=Vahvista uusi juurihakemisto
|
||||||
attachmentBasePath.chooseNewPath.message=Linked file attachments below this directory will be saved using relative paths.
|
attachmentBasePath.chooseNewPath.message=Linkatut tiedostoliitteet tämän hakemiston sisällä tallennetaan käyttäen suhteellisia polkuja.
|
||||||
attachmentBasePath.chooseNewPath.existingAttachments.singular=One existing attachment was found within the new base directory.
|
attachmentBasePath.chooseNewPath.existingAttachments.singular=Yksi olemassaoleva liite löytyi juurikansion alta.
|
||||||
attachmentBasePath.chooseNewPath.existingAttachments.plural=%S existing attachments were found within the new base directory.
|
attachmentBasePath.chooseNewPath.existingAttachments.plural=%S olemassaolevaa liitettä löytyi juurikansion alta.
|
||||||
attachmentBasePath.chooseNewPath.button=Change Base Directory Setting
|
attachmentBasePath.chooseNewPath.button=Muuta juurihakemiston asetuksia
|
||||||
attachmentBasePath.clearBasePath.title=Revert to Absolute Paths
|
attachmentBasePath.clearBasePath.title=Palauta absoluuttiset polut
|
||||||
attachmentBasePath.clearBasePath.message=New linked file attachments will be saved using absolute paths.
|
attachmentBasePath.clearBasePath.message=Uudet tiedostoliitteet tallennetaan absoluuttisia polkuja käyttäen.
|
||||||
attachmentBasePath.clearBasePath.existingAttachments.singular=One existing attachment within the old base directory will be converted to use an absolute path.
|
attachmentBasePath.clearBasePath.existingAttachments.singular=Yksi olemassaoleva liite vanhassa juurikansiossa muunnetaan käyttämään absoluuttista polkua.
|
||||||
attachmentBasePath.clearBasePath.existingAttachments.plural=%S existing attachments within the old base directory will be converted to use absolute paths.
|
attachmentBasePath.clearBasePath.existingAttachments.plural=%S olemassaolevaa liitettä vanhassa juurikansiossa muutetaan käyttämään absoluuttisia polkuja.
|
||||||
attachmentBasePath.clearBasePath.button=Clear Base Directory Setting
|
attachmentBasePath.clearBasePath.button=Nollaa juurikansioasetus
|
||||||
|
|
||||||
dataDir.notFound=Zoteron datakansiota ei löytynyt.
|
dataDir.notFound=Zoteron datakansiota ei löytynyt.
|
||||||
dataDir.previousDir=Edellinen kansio:
|
dataDir.previousDir=Edellinen kansio:
|
||||||
|
@ -110,12 +110,12 @@ 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.selectedDirEmpty.title=Directory Empty
|
dataDir.selectedDirEmpty.title=Hakemisto on tyhjä
|
||||||
dataDir.selectedDirEmpty.text=The directory you selected is empty. To move an existing Zotero data directory, you will need to manually move files from the existing data directory to the new location after %1$S has closed.
|
dataDir.selectedDirEmpty.text=Valitsemasi hakemisto on tyhjä. Siirtääksesi olemassaoleva Zoteron datahakemiston sinun pitää käsin siirtää tiedostot olemassaolevasta datahakemistosta uuteen sijaintiin, kunhan %1$S on sulkeutunut.
|
||||||
dataDir.selectedDirEmpty.useNewDir=Käytetäänkö uutta hakemistoa?
|
dataDir.selectedDirEmpty.useNewDir=Käytetäänkö uutta hakemistoa?
|
||||||
dataDir.moveFilesToNewLocation=Be sure to move files from your existing Zotero data directory to the new location before reopening %1$S.
|
dataDir.moveFilesToNewLocation=Siirräthän tiedostot nykyisestä Zoteron datakansiosta uuteen sijaintiin ennen kuin avaat %1$S:n uudelleen.
|
||||||
dataDir.incompatibleDbVersion.title=Incompatible Database Version
|
dataDir.incompatibleDbVersion.title=Yhteensopimaton tietokantaversio
|
||||||
dataDir.incompatibleDbVersion.text=The currently selected data directory is not compatible with Zotero Standalone, which can share a database only with Zotero for Firefox 2.1b3 or later.\n\nUpgrade to the latest version of Zotero for Firefox first or select a different data directory for use with Zotero Standalone.
|
dataDir.incompatibleDbVersion.text=Valittu datahakemisto ei ole yhteensopiva Zotero Standalonen kanssa. Zotero Standalone voi jakaa tieokannan Zotero for Firefoxin version 2.1b3 tai uudemman kanssa.\n\nPäivitä Zotero for Firefox ensin uusimpaan versioon tai valitse toinen datakansio Zoteron Standalonen kanssa käytettäväksi.
|
||||||
dataDir.standaloneMigration.title=Aiempi Zotero-kirjasto löytyi
|
dataDir.standaloneMigration.title=Aiempi Zotero-kirjasto löytyi
|
||||||
dataDir.standaloneMigration.description=Tämä vaikuttaa olevan ensimmäinen %1$S-kertasi. Haluatko, että %1$S tuo asetukset %2$S:sta ja käyttää aiempaa datahakemistoa?
|
dataDir.standaloneMigration.description=Tämä vaikuttaa olevan ensimmäinen %1$S-kertasi. Haluatko, että %1$S tuo asetukset %2$S:sta ja käyttää aiempaa datahakemistoa?
|
||||||
dataDir.standaloneMigration.multipleProfiles=%1$S jakaa datahakemiston viimeisimmän käytetyn profiilin kanssa.
|
dataDir.standaloneMigration.multipleProfiles=%1$S jakaa datahakemiston viimeisimmän käytetyn profiilin kanssa.
|
||||||
|
@ -148,7 +148,7 @@ date.relative.yearsAgo.multiple=%S vuotta sitten
|
||||||
|
|
||||||
pane.collections.delete.title=Poista kokoelma
|
pane.collections.delete.title=Poista kokoelma
|
||||||
pane.collections.delete=Haluatko varmasti poistaa valitun kokoelman?
|
pane.collections.delete=Haluatko varmasti poistaa valitun kokoelman?
|
||||||
pane.collections.delete.keepItems=Items within this collection will not be deleted.
|
pane.collections.delete.keepItems=Tässä kokoelmassa olevia nimikkeitä ei poisteta.
|
||||||
pane.collections.deleteWithItems.title=Poista kokoelma ja nimikkeet
|
pane.collections.deleteWithItems.title=Poista kokoelma ja nimikkeet
|
||||||
pane.collections.deleteWithItems=Haluatko varmasti poistaa valitun kokoelman ja siirtää kaikki siihen kuuluvat nimikkeet roskakoriin?
|
pane.collections.deleteWithItems=Haluatko varmasti poistaa valitun kokoelman ja siirtää kaikki siihen kuuluvat nimikkeet roskakoriin?
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ pane.collections.newSavedSeach=Uusi tallennettu haku
|
||||||
pane.collections.savedSearchName=Anna tälle tallennetulle haulle nimi:
|
pane.collections.savedSearchName=Anna tälle tallennetulle haulle nimi:
|
||||||
pane.collections.rename=Anna kokoelmalle uusi nimi:
|
pane.collections.rename=Anna kokoelmalle uusi nimi:
|
||||||
pane.collections.library=Oma Kirjasto
|
pane.collections.library=Oma Kirjasto
|
||||||
pane.collections.groupLibraries=Group Libraries
|
pane.collections.groupLibraries=Ryhmäkirjastot
|
||||||
pane.collections.trash=Roskakori
|
pane.collections.trash=Roskakori
|
||||||
pane.collections.untitled=Nimetön
|
pane.collections.untitled=Nimetön
|
||||||
pane.collections.unfiled=Lajittelemattomat nimikkeet
|
pane.collections.unfiled=Lajittelemattomat nimikkeet
|
||||||
|
@ -187,16 +187,16 @@ pane.tagSelector.delete.message=Haluatko varmasti poistaa tämän merkin?\n\nMer
|
||||||
pane.tagSelector.numSelected.none=0 merkkiä valittuna
|
pane.tagSelector.numSelected.none=0 merkkiä valittuna
|
||||||
pane.tagSelector.numSelected.singular=%S merkki valittuna
|
pane.tagSelector.numSelected.singular=%S merkki valittuna
|
||||||
pane.tagSelector.numSelected.plural=%S merkkiä valittuna
|
pane.tagSelector.numSelected.plural=%S merkkiä valittuna
|
||||||
pane.tagSelector.maxColoredTags=Only %S tags in each library can have colors assigned.
|
pane.tagSelector.maxColoredTags=Vain %S avainsanalla kussakin kirjastossa voi olla oma värinsä.
|
||||||
|
|
||||||
tagColorChooser.numberKeyInstructions=You can add this tag to selected items by pressing the $NUMBER key on the keyboard.
|
tagColorChooser.numberKeyInstructions=Voit lisätä tämän avainsanan valittuihin nimikkeisiin painamalla $NUMBER-näppäintä.
|
||||||
tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
tagColorChooser.maxTags=Enintään %S avainsanalla kussakin kirjastossa voi olla oma värinsä.
|
||||||
|
|
||||||
pane.items.loading=Ladataan kohdeluettelo...
|
pane.items.loading=Ladataan kohdeluettelo...
|
||||||
pane.items.columnChooser.moreColumns=Lisää sarakkeita
|
pane.items.columnChooser.moreColumns=Lisää sarakkeita
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Toissijainen lajittelu (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Siirrä roskakoriin
|
pane.items.trash.title=Siirrä roskakoriin
|
||||||
pane.items.trash=Haluatko varmasti siirtää valitun nimikkeen roskakoriin?
|
pane.items.trash=Haluatko varmasti siirtää valitun nimikkeen roskakoriin?
|
||||||
pane.items.trash.multiple=Haluatko varmasti siirtää valitut nimikkeet roskakoriin?
|
pane.items.trash.multiple=Haluatko varmasti siirtää valitut nimikkeet roskakoriin?
|
||||||
|
@ -233,15 +233,15 @@ pane.items.interview.manyParticipants=Haastattelu, tehneet %S ym.
|
||||||
|
|
||||||
pane.item.selected.zero=Ei valittuja kohteita
|
pane.item.selected.zero=Ei valittuja kohteita
|
||||||
pane.item.selected.multiple=%S kohdetta valittuna
|
pane.item.selected.multiple=%S kohdetta valittuna
|
||||||
pane.item.unselected.zero=No items in this view
|
pane.item.unselected.zero=Tässä näkymässä ei ole yhtään nimikettä
|
||||||
pane.item.unselected.singular=%S item in this view
|
pane.item.unselected.singular=%S nimike tässä näkymässä
|
||||||
pane.item.unselected.plural=%S items in this view
|
pane.item.unselected.plural=%S nimikettä tässä näkymässä
|
||||||
|
|
||||||
pane.item.duplicates.selectToMerge=Select items to merge
|
pane.item.duplicates.selectToMerge=Valitse yhteenliitettävät nimikkeet
|
||||||
pane.item.duplicates.mergeItems=Merge %S items
|
pane.item.duplicates.mergeItems=Liitä yhteen %S nimikettä
|
||||||
pane.item.duplicates.writeAccessRequired=Library write access is required to merge items.
|
pane.item.duplicates.writeAccessRequired=Nimikkeiden yhteenliittämiseen tarvitaan kirjoitusoikeus kirjastoon.
|
||||||
pane.item.duplicates.onlyTopLevel=Only top-level full items can be merged.
|
pane.item.duplicates.onlyTopLevel=Vain ylätason nimikkeitä voi liittää yhteen.
|
||||||
pane.item.duplicates.onlySameItemType=Merged items must all be of the same item type.
|
pane.item.duplicates.onlySameItemType=Yhteenliitettävien nimikkeiden tulee olla samaa tyyppiä.
|
||||||
|
|
||||||
pane.item.changeType.title=Vaihda kohteen tyyppi
|
pane.item.changeType.title=Vaihda kohteen tyyppi
|
||||||
pane.item.changeType.text=Haluatko varmasti vaihtaa kohteen tyypin?\n\nSeuraavat kentät menetetään:
|
pane.item.changeType.text=Haluatko varmasti vaihtaa kohteen tyypin?\n\nSeuraavat kentät menetetään:
|
||||||
|
@ -252,11 +252,11 @@ pane.item.switchFieldMode.one=Käytä vain yhtä kenttää
|
||||||
pane.item.switchFieldMode.two=Käytä kahta kenttää
|
pane.item.switchFieldMode.two=Käytä kahta kenttää
|
||||||
pane.item.creator.moveUp=Siirrä ylös
|
pane.item.creator.moveUp=Siirrä ylös
|
||||||
pane.item.creator.moveDown=Siirrä alas
|
pane.item.creator.moveDown=Siirrä alas
|
||||||
pane.item.notes.untitled=Otsikoimaton muistio
|
pane.item.notes.untitled=Otsikoimaton muistiinpano
|
||||||
pane.item.notes.delete.confirm=Haluatko varmasti poistaa tämän muistion?
|
pane.item.notes.delete.confirm=Haluatko varmasti poistaa tämän muistiinpanon?
|
||||||
pane.item.notes.count.zero=%S muistiota:
|
pane.item.notes.count.zero=%S muistiinpanoa:
|
||||||
pane.item.notes.count.singular=%S muistio:
|
pane.item.notes.count.singular=%S muistiinpano:
|
||||||
pane.item.notes.count.plural=%S muistiota:
|
pane.item.notes.count.plural=%S muistiinpanoa:
|
||||||
pane.item.attachments.rename.title=Uusi otsikko:
|
pane.item.attachments.rename.title=Uusi otsikko:
|
||||||
pane.item.attachments.rename.renameAssociatedFile=Nimeä liitetty tiedosto uudelleen
|
pane.item.attachments.rename.renameAssociatedFile=Nimeä liitetty tiedosto uudelleen
|
||||||
pane.item.attachments.rename.error=Virhe nimettäessä tiedostoa uudelleen.
|
pane.item.attachments.rename.error=Virhe nimettäessä tiedostoa uudelleen.
|
||||||
|
@ -268,7 +268,7 @@ pane.item.attachments.count.singular=%S liite:
|
||||||
pane.item.attachments.count.plural=%S liitettä:
|
pane.item.attachments.count.plural=%S liitettä:
|
||||||
pane.item.attachments.select=Valitse tiedosto
|
pane.item.attachments.select=Valitse tiedosto
|
||||||
pane.item.attachments.PDF.installTools.title=PDF-työkaluja ei ole asennettu
|
pane.item.attachments.PDF.installTools.title=PDF-työkaluja ei ole asennettu
|
||||||
pane.item.attachments.PDF.installTools.text=To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.
|
pane.item.attachments.PDF.installTools.text=Jos haluat käyttää tätä ominaisuutta, asenna ensin PDF-työkalut Zoteron asetusten Haku-välilehdellä.
|
||||||
pane.item.attachments.filename=Tiedostonimi
|
pane.item.attachments.filename=Tiedostonimi
|
||||||
pane.item.noteEditor.clickHere=napsauta tästä
|
pane.item.noteEditor.clickHere=napsauta tästä
|
||||||
pane.item.tags.count.zero=%S merkkiä:
|
pane.item.tags.count.zero=%S merkkiä:
|
||||||
|
@ -281,9 +281,9 @@ pane.item.related.count.singular=%S liittyvä:
|
||||||
pane.item.related.count.plural=%S liittyvää:
|
pane.item.related.count.plural=%S liittyvää:
|
||||||
pane.item.parentItem=Ylänimike:
|
pane.item.parentItem=Ylänimike:
|
||||||
|
|
||||||
noteEditor.editNote=Muokkaa muistiota
|
noteEditor.editNote=Muokkaa muistiinpanoa
|
||||||
|
|
||||||
itemTypes.note=Muistio
|
itemTypes.note=Muistiinpano
|
||||||
itemTypes.attachment=Liite
|
itemTypes.attachment=Liite
|
||||||
itemTypes.book=Kirja
|
itemTypes.book=Kirja
|
||||||
itemTypes.bookSection=Kirjan osa
|
itemTypes.bookSection=Kirjan osa
|
||||||
|
@ -325,7 +325,7 @@ itemFields.title=Otsake
|
||||||
itemFields.dateAdded=Lisäyspäivä
|
itemFields.dateAdded=Lisäyspäivä
|
||||||
itemFields.dateModified=Muokattu
|
itemFields.dateModified=Muokattu
|
||||||
itemFields.source=Lähde
|
itemFields.source=Lähde
|
||||||
itemFields.notes=Muistio
|
itemFields.notes=Muistiinpanot
|
||||||
itemFields.tags=Merkit
|
itemFields.tags=Merkit
|
||||||
itemFields.attachments=Liitteet
|
itemFields.attachments=Liitteet
|
||||||
itemFields.related=Liittyvät
|
itemFields.related=Liittyvät
|
||||||
|
@ -339,7 +339,7 @@ itemFields.place=Paikka
|
||||||
itemFields.publisher=Julkaisija
|
itemFields.publisher=Julkaisija
|
||||||
itemFields.pages=Sivuja
|
itemFields.pages=Sivuja
|
||||||
itemFields.ISBN=ISBN
|
itemFields.ISBN=ISBN
|
||||||
itemFields.publicationTitle=Julkaisutiedot
|
itemFields.publicationTitle=Julkaisu
|
||||||
itemFields.ISSN=ISSN
|
itemFields.ISSN=ISSN
|
||||||
itemFields.date=Päiväys
|
itemFields.date=Päiväys
|
||||||
itemFields.section=Osio
|
itemFields.section=Osio
|
||||||
|
@ -479,11 +479,11 @@ save.error.cannotAddFilesToCollection=Et voi lisätä tiedostoja valittuun kokoe
|
||||||
ingester.saveToZotero=Tallenna Zoteroon
|
ingester.saveToZotero=Tallenna Zoteroon
|
||||||
ingester.saveToZoteroUsing=Tallentaan Zoteroon käyttäen "%S"
|
ingester.saveToZoteroUsing=Tallentaan Zoteroon käyttäen "%S"
|
||||||
ingester.scraping=Saving Item...
|
ingester.scraping=Saving Item...
|
||||||
ingester.scrapingTo=Saving to
|
ingester.scrapingTo=Tallennuskohde:
|
||||||
ingester.scrapeComplete=Nimike tallennettu
|
ingester.scrapeComplete=Nimike tallennettu
|
||||||
ingester.scrapeError=Nimikettä ei voitu tallentaa
|
ingester.scrapeError=Nimikettä ei voitu tallentaa
|
||||||
ingester.scrapeErrorDescription=Nimikkeen tallentamisessa tapahtui virhe. Katso %S, jos haluat tietää lisää.
|
ingester.scrapeErrorDescription=Nimikkeen tallentamisessa tapahtui virhe. Katso %S, jos haluat tietää lisää.
|
||||||
ingester.scrapeErrorDescription.linkText=Troubleshooting Translator Issues
|
ingester.scrapeErrorDescription.linkText=Sivutulkkeihin liittyvien ongelmien selvittäminen
|
||||||
ingester.scrapeErrorDescription.previousError=Tallennusprosessi epäonnistui aiemman Zoteron virheen vuoksi.
|
ingester.scrapeErrorDescription.previousError=Tallennusprosessi epäonnistui aiemman Zoteron virheen vuoksi.
|
||||||
|
|
||||||
ingester.importReferRISDialog.title=Zotero RIS/Refer-tuonti
|
ingester.importReferRISDialog.title=Zotero RIS/Refer-tuonti
|
||||||
|
@ -492,7 +492,7 @@ ingester.importReferRISDialog.checkMsg=Salli aina tälle sivustolle
|
||||||
|
|
||||||
ingester.importFile.title=Tuo tiedosto
|
ingester.importFile.title=Tuo tiedosto
|
||||||
ingester.importFile.text=Haluatko tuoda tiedoston "%S"?\n\nNimikkeet lisätään uuteen kokoelmaan.
|
ingester.importFile.text=Haluatko tuoda tiedoston "%S"?\n\nNimikkeet lisätään uuteen kokoelmaan.
|
||||||
ingester.importFile.intoNewCollection=Import into new collection
|
ingester.importFile.intoNewCollection=Tuo uuteen kokoelmaan
|
||||||
|
|
||||||
ingester.lookup.performing=Haku suoritetaan...
|
ingester.lookup.performing=Haku suoritetaan...
|
||||||
ingester.lookup.error=Hakua suoritettaessa tapahtui virhe.
|
ingester.lookup.error=Hakua suoritettaessa tapahtui virhe.
|
||||||
|
@ -521,17 +521,17 @@ zotero.preferences.openurl.resolversFound.zero=%S linkkipalvelinta löytyi
|
||||||
zotero.preferences.openurl.resolversFound.singular=%S linkkipalvelin löytyi
|
zotero.preferences.openurl.resolversFound.singular=%S linkkipalvelin löytyi
|
||||||
zotero.preferences.openurl.resolversFound.plural=%S linkkipalvelinta löytyi
|
zotero.preferences.openurl.resolversFound.plural=%S linkkipalvelinta löytyi
|
||||||
|
|
||||||
zotero.preferences.sync.purgeStorage.title=Purge Attachment Files on Zotero Servers?
|
zotero.preferences.sync.purgeStorage.title=Siivotaanko liitetiedostot Zoteron palvelimilta?
|
||||||
zotero.preferences.sync.purgeStorage.desc=If you plan to use WebDAV for file syncing and you previously synced attachment files in My Library to the Zotero servers, you can purge those files from the Zotero servers to give you more storage space for groups.\n\nYou can purge files at any time from your account settings on zotero.org.
|
zotero.preferences.sync.purgeStorage.desc=Jos aiot käyttää WebDAV-palvelinta tieodostojen synkronointiin ja olet aiemmin synkronoinut Oman kirjaston liitetiedostot Zoteron palvelimelle, voit siivota ne tiedostot Zoteron palvelimelta, jotta saat enemmän tallennustilaa ryhmille.\n\nVoit siivota tiedostot milloin tahansa tiliin asetuksista zotero.orgissa.
|
||||||
zotero.preferences.sync.purgeStorage.confirmButton=Purge Files Now
|
zotero.preferences.sync.purgeStorage.confirmButton=Siivoa tiedostot nyt
|
||||||
zotero.preferences.sync.purgeStorage.cancelButton=Do Not Purge
|
zotero.preferences.sync.purgeStorage.cancelButton=Älä siivoa tiedostoja
|
||||||
zotero.preferences.sync.reset.userInfoMissing=You must enter a username and password in the %S tab before using the reset options.
|
zotero.preferences.sync.reset.userInfoMissing=Sinun täytyy syöttää käyttäjätunnus ja salasana %S-välilehdellä ennen kuin voit käyttää nollauksen asetuksia.
|
||||||
zotero.preferences.sync.reset.restoreFromServer=All data in this copy of Zotero will be erased and replaced with data belonging to user '%S' on the Zotero server.
|
zotero.preferences.sync.reset.restoreFromServer=Kaikki tiedot tästä Zotero-kopiosta poistetaan ja korvataan käyttäjälle '%S' kuuluvilla tiedoilla Zotero-palvelimella.
|
||||||
zotero.preferences.sync.reset.replaceLocalData=Replace Local Data
|
zotero.preferences.sync.reset.replaceLocalData=Korvaa paikalliset tiedot
|
||||||
zotero.preferences.sync.reset.restartToComplete=Firefox must be restarted to complete the restore process.
|
zotero.preferences.sync.reset.restartToComplete=Firefox pitää käynnistää uudelleen palautusprosessin päättämiseksi.
|
||||||
zotero.preferences.sync.reset.restoreToServer=All data belonging to user '%S' on the Zotero server will be erased and replaced with data from this copy of Zotero.\n\nDepending on the size of your library, there may be a delay before your data is available on the server.
|
zotero.preferences.sync.reset.restoreToServer=Kaikki käyttäjälle '%S' kuuluvat tiedot Zoteron palvelimella poistetaan ja korvataan tämän Zotero-kopion tiedoilla.\n\nKirjaston koosta riippuen saattaa kestää hetki, ennen kuin tiedot ovat käytettävissä palvelimella.
|
||||||
zotero.preferences.sync.reset.replaceServerData=Replace Server Data
|
zotero.preferences.sync.reset.replaceServerData=Korvaa palvelimella olevat tiedot
|
||||||
zotero.preferences.sync.reset.fileSyncHistory=All file sync history will be cleared.\n\nAny local attachment files that do not exist on the storage server will be uploaded on the next sync.
|
zotero.preferences.sync.reset.fileSyncHistory=Koko synkronointihistoria poistetaan.\n\nKaikki paikalliset liitetiedostot, joita ei ole synkronointipalvelimella, lähetetään palvelimelle seuraavan synkronoinnin yhteydessä.
|
||||||
|
|
||||||
zotero.preferences.search.rebuildIndex=Luo indeksi uudelleen
|
zotero.preferences.search.rebuildIndex=Luo indeksi uudelleen
|
||||||
zotero.preferences.search.rebuildWarning=Haluatko luoda koko indeksin uudelleen? Tämä saattaa kestää hetken.\n\nIndeksoidaksesi vain aiemmin indeksoimattomat nimikkeet käytä toimintoa %S.
|
zotero.preferences.search.rebuildWarning=Haluatko luoda koko indeksin uudelleen? Tämä saattaa kestää hetken.\n\nIndeksoidaksesi vain aiemmin indeksoimattomat nimikkeet käytä toimintoa %S.
|
||||||
|
@ -559,7 +559,7 @@ zotero.preferences.search.pdf.tryAgainOrViewManualInstructions=Yritä myöhemmin
|
||||||
zotero.preferences.export.quickCopy.bibStyles=Lähdeluettelotyylit
|
zotero.preferences.export.quickCopy.bibStyles=Lähdeluettelotyylit
|
||||||
zotero.preferences.export.quickCopy.exportFormats=Vientimuodot
|
zotero.preferences.export.quickCopy.exportFormats=Vientimuodot
|
||||||
zotero.preferences.export.quickCopy.instructions=Pikakopioinnilla voit kopioida valitut viitteet leikepöydälle painamalla pikanäppäinyhdistelmää (%S) tai raahaamalla nimikkeet web-sivulla olevaan tekstilaatikkoon.
|
zotero.preferences.export.quickCopy.instructions=Pikakopioinnilla voit kopioida valitut viitteet leikepöydälle painamalla pikanäppäinyhdistelmää (%S) tai raahaamalla nimikkeet web-sivulla olevaan tekstilaatikkoon.
|
||||||
zotero.preferences.export.quickCopy.citationInstructions=For bibliography styles, you can copy citations or footnotes by pressing %S or holding down Shift before dragging items.
|
zotero.preferences.export.quickCopy.citationInstructions=Voit kopioda kirjallisuusviitetyylien mukaisia sitaatteja tai alaviitteitä painamalla %S tai pitämällä Shift-näppäintä pohjassa nimikkeitä raahatessa.
|
||||||
zotero.preferences.styles.addStyle=Lisää tyyli
|
zotero.preferences.styles.addStyle=Lisää tyyli
|
||||||
|
|
||||||
zotero.preferences.advanced.resetTranslatorsAndStyles=Resetoi sivustotulkit ja tyylit
|
zotero.preferences.advanced.resetTranslatorsAndStyles=Resetoi sivustotulkit ja tyylit
|
||||||
|
@ -569,9 +569,9 @@ zotero.preferences.advanced.resetTranslators.changesLost=Kaikki uudet tai muokat
|
||||||
zotero.preferences.advanced.resetStyles=Resetoi tyylit
|
zotero.preferences.advanced.resetStyles=Resetoi tyylit
|
||||||
zotero.preferences.advanced.resetStyles.changesLost=Kaikki uudet tai muokatut tyylit menetetään
|
zotero.preferences.advanced.resetStyles.changesLost=Kaikki uudet tai muokatut tyylit menetetään
|
||||||
|
|
||||||
zotero.preferences.advanced.debug.title=Debug Output Submitted
|
zotero.preferences.advanced.debug.title=Virheenkorjauksen tiedot toimitettu
|
||||||
zotero.preferences.advanced.debug.sent=Debug output has been sent to the Zotero server.\n\nThe Debug ID is D%S.
|
zotero.preferences.advanced.debug.sent=Virheenkorjauksen tiedot on toimitettu Zotero-palvelimelle.\n\nVirheenkorjajuksen tunniste on D%S.
|
||||||
zotero.preferences.advanced.debug.error=An error occurred sending debug output.
|
zotero.preferences.advanced.debug.error=Virhe lähetettäessä virheenkorjauksen tietoja.
|
||||||
|
|
||||||
dragAndDrop.existingFiles=Seuraavat tiedostot olivat jo valmiiksi kohdehakemistossa, ja niitä ei kopioitu:
|
dragAndDrop.existingFiles=Seuraavat tiedostot olivat jo valmiiksi kohdehakemistossa, ja niitä ei kopioitu:
|
||||||
dragAndDrop.filesNotFound=Seuraavia tiedostoja ei löytynyt eikä niitä voinut kopioida:
|
dragAndDrop.filesNotFound=Seuraavia tiedostoja ei löytynyt eikä niitä voinut kopioida:
|
||||||
|
@ -582,8 +582,8 @@ fileInterface.import=Tuonti
|
||||||
fileInterface.export=Vienti
|
fileInterface.export=Vienti
|
||||||
fileInterface.exportedItems=Viedyt nimikkeet
|
fileInterface.exportedItems=Viedyt nimikkeet
|
||||||
fileInterface.imported=Tuodut
|
fileInterface.imported=Tuodut
|
||||||
fileInterface.unsupportedFormat=The selected file is not in a supported format.
|
fileInterface.unsupportedFormat=Valitun tiedoston tiedostomuotoa ei tueta
|
||||||
fileInterface.viewSupportedFormats=View Supported Formats…
|
fileInterface.viewSupportedFormats=Näytä tuetut tiedostomuodot...
|
||||||
fileInterface.untitledBibliography=Nimetön lähdeluettelo
|
fileInterface.untitledBibliography=Nimetön lähdeluettelo
|
||||||
fileInterface.bibliographyHTMLTitle=Lähdeluettelo
|
fileInterface.bibliographyHTMLTitle=Lähdeluettelo
|
||||||
fileInterface.importError=Tapahtui virhe yrittäessä tuoda valittua tiedostoa. Varmista, että tiedosto on kunnossa, ja yritä uudelleen.
|
fileInterface.importError=Tapahtui virhe yrittäessä tuoda valittua tiedostoa. Varmista, että tiedosto on kunnossa, ja yritä uudelleen.
|
||||||
|
@ -592,7 +592,7 @@ fileInterface.noReferencesError=Valitsemissasi nimikkeissä ei ole viitteitä. V
|
||||||
fileInterface.bibliographyGenerationError=Lähdeluetteloa luotaessa tapahtui virhe. Yritä uudelleen.
|
fileInterface.bibliographyGenerationError=Lähdeluetteloa luotaessa tapahtui virhe. Yritä uudelleen.
|
||||||
fileInterface.exportError=Valittua tiedostoa vietäessä tapahtui virhe.
|
fileInterface.exportError=Valittua tiedostoa vietäessä tapahtui virhe.
|
||||||
|
|
||||||
quickSearch.mode.titleCreatorYear=Title, Creator, Year
|
quickSearch.mode.titleCreatorYear=Otsikko, kirjoittaja, vuosi
|
||||||
quickSearch.mode.fieldsAndTags=Kaikki kentät ja avainsanat
|
quickSearch.mode.fieldsAndTags=Kaikki kentät ja avainsanat
|
||||||
quickSearch.mode.everything=Kaikki
|
quickSearch.mode.everything=Kaikki
|
||||||
|
|
||||||
|
@ -643,7 +643,7 @@ fulltext.indexState.partial=Osittain
|
||||||
|
|
||||||
exportOptions.exportNotes=Vientihuomiot
|
exportOptions.exportNotes=Vientihuomiot
|
||||||
exportOptions.exportFileData=Vientitiedostot
|
exportOptions.exportFileData=Vientitiedostot
|
||||||
exportOptions.useJournalAbbreviation=Use Journal Abbreviation
|
exportOptions.useJournalAbbreviation=Käytä aikakausjulkaisun lyhennettä
|
||||||
charset.UTF8withoutBOM=Unicode (UTF-8 ilman BOM)
|
charset.UTF8withoutBOM=Unicode (UTF-8 ilman BOM)
|
||||||
charset.autoDetect=(automaattitunnistus)
|
charset.autoDetect=(automaattitunnistus)
|
||||||
|
|
||||||
|
@ -659,8 +659,8 @@ citation.multipleSources=Multiple Sources...
|
||||||
citation.singleSource=Single Source...
|
citation.singleSource=Single Source...
|
||||||
citation.showEditor=Show Editor...
|
citation.showEditor=Show Editor...
|
||||||
citation.hideEditor=Hide Editor...
|
citation.hideEditor=Hide Editor...
|
||||||
citation.citations=Citations
|
citation.citations=Sitaati
|
||||||
citation.notes=Notes
|
citation.notes=Muistiinpanot
|
||||||
|
|
||||||
report.title.default=Zotero-raportti
|
report.title.default=Zotero-raportti
|
||||||
report.parentItem=Ylänimike:
|
report.parentItem=Ylänimike:
|
||||||
|
@ -737,14 +737,14 @@ styles.installStyle=Asennetaanko tyyli "%1$S" lähteestä %2$S?
|
||||||
styles.updateStyle=Päivitetäänkö aiempi tyyli "%1$S" tyylillä "%2$S" lähteestä %3$S?
|
styles.updateStyle=Päivitetäänkö aiempi tyyli "%1$S" tyylillä "%2$S" lähteestä %3$S?
|
||||||
styles.installed=Tyyli "%S" asennettiin onnistuneesti.
|
styles.installed=Tyyli "%S" asennettiin onnistuneesti.
|
||||||
styles.installError=%S ei vaikuta olevan kelvollinen tyylitiedosto.
|
styles.installError=%S ei vaikuta olevan kelvollinen tyylitiedosto.
|
||||||
styles.validationWarning="%S" is not a valid CSL 1.0.1 style file, and may not work properly with Zotero.\n\nAre you sure you want to continue?
|
styles.validationWarning="%S" ei ole kunnollinen CSL 1.0.1-tyylitiedosto, eikä se välttämättä toimi oikein Zoterossa.\n\nHaluatko varmasti jatkaa?
|
||||||
styles.installSourceError=%1$S viittaa epäkelpoon tai olemattoon CSL-tiedostoon %2$S.
|
styles.installSourceError=%1$S viittaa epäkelpoon tai olemattoon CSL-tiedostoon %2$S.
|
||||||
styles.deleteStyle=Haluatko varmasti poistaa tyylin "%1$S"?
|
styles.deleteStyle=Haluatko varmasti poistaa tyylin "%1$S"?
|
||||||
styles.deleteStyles=Haluatko varmasti poistaa valitut tyylit?
|
styles.deleteStyles=Haluatko varmasti poistaa valitut tyylit?
|
||||||
|
|
||||||
styles.abbreviations.title=Lataa lyhenteet
|
styles.abbreviations.title=Lataa lyhenteet
|
||||||
styles.abbreviations.parseError=The abbreviations file "%1$S" is not valid JSON.
|
styles.abbreviations.parseError=Lyhennetiedosto "%1$S" ei ole toimivassa JSON-muodossa.
|
||||||
styles.abbreviations.missingInfo=The abbreviations file "%1$S" does not specify a complete info block.
|
styles.abbreviations.missingInfo=Lyhennetiedosto "%1$S" ei määrittele täydellistä informaatio-osiota.
|
||||||
|
|
||||||
sync.sync=Synkronoi
|
sync.sync=Synkronoi
|
||||||
sync.cancel=Peruuta synkronointi
|
sync.cancel=Peruuta synkronointi
|
||||||
|
@ -756,58 +756,58 @@ sync.remoteObject=Etäobjekti
|
||||||
sync.mergedObject=Yhdistetty objekti
|
sync.mergedObject=Yhdistetty objekti
|
||||||
|
|
||||||
sync.error.usernameNotSet=Käyttäjänimeä ei määritetty
|
sync.error.usernameNotSet=Käyttäjänimeä ei määritetty
|
||||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
sync.error.usernameNotSet.text=Syötä zotero.orgin käyttäjätunnus ja salasana Zoteron asetuksissa, jotta voit synkronoida tiedot Zotero-palvelimen kanssa.
|
||||||
sync.error.passwordNotSet=Salasanaa ei määritetty
|
sync.error.passwordNotSet=Salasanaa ei määritetty
|
||||||
sync.error.invalidLogin=Virheellinen käyttäjänimi tai salasana
|
sync.error.invalidLogin=Virheellinen käyttäjänimi tai salasana
|
||||||
sync.error.invalidLogin.text=The Zotero sync server did not accept your username and password.\n\nPlease check that you have entered your zotero.org login information correctly in the Zotero sync preferences.
|
sync.error.invalidLogin.text=Zoteron synkronointipalvelin ei hyväksynyt käyttäjätunnustasi ja/tai salasanaasi.\n\nTarkista, että olet antanut käyttäjätiedot oikein Zoteron synkronointiasetuksissa.
|
||||||
sync.error.enterPassword=Anna salasana.
|
sync.error.enterPassword=Anna salasana.
|
||||||
sync.error.loginManagerInaccessible=Zotero ei saanut oikeuksia kirjautumistietoihisi.
|
sync.error.loginManagerInaccessible=Zotero ei saanut oikeuksia kirjautumistietoihisi.
|
||||||
sync.error.checkMasterPassword=If you are using a master password in %S, make sure you have entered it successfully.
|
sync.error.checkMasterPassword=Jos käytät pääsalasanaa $S:ssa, varmista, että se on oikein.
|
||||||
sync.error.corruptedLoginManager=This could also be due to a corrupted %1$S login manager database. To check, close %1$S, remove signons.sqlite from your %1$S profile directory, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
|
sync.error.corruptedLoginManager=Kyse voi olla myös virheestä %1$S:n kirjautumistietojen tietokannassa. Voit tarkistaa tämän sulkemalla ensin %1$S:n, poistamalla tiedoston signons.sqlite %1$S:n profiilikansiosta ja syöttämällä tämän jälkeen Zoteron kirjautumistiedot uudelleen Zoteron asetusten synkronointivälilehdellä.
|
||||||
sync.error.loginManagerCorrupted1=Zotero cannot access your login information, possibly due to a corrupted %S login manager database.
|
sync.error.loginManagerCorrupted1=Zotero ei voi käyttää kirjautumistietojasi. %S:n kirjautumistietojen tietokanta on mahdollisesti vioittunut.
|
||||||
sync.error.loginManagerCorrupted2=Close %1$S, remove signons.sqlite from your %2$S profile directory, and re-enter your Zotero login information in the Sync pane of the Zotero preferences.
|
sync.error.loginManagerCorrupted2=Sulje %1$S, poista signons.sqlite %2$S:n profiilikansiosta, ja syötä sen jälkeen Zoteron kirjautumistiedot uudelleen Zoteron asetusten Synkronointi-välilehdelä.
|
||||||
sync.error.syncInProgress=Synkronointi on jo käynnissä.
|
sync.error.syncInProgress=Synkronointi on jo käynnissä.
|
||||||
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 Firefox.
|
||||||
sync.error.writeAccessLost=You no longer have write access to the Zotero group '%S', and items you've added or edited cannot be synced to the server.
|
sync.error.writeAccessLost=Sinulla ei enää ole kirjoitusoikeutta Zotero-ryhmään '%S'. Lisäämiäsi tai muokkaamiasi nimikkeitä ei voida synkronoida palvelimelle.
|
||||||
sync.error.groupWillBeReset=Jos jatkat, kopiosi ryhmästä resetoituu siihen tilaan, missä se palvelimella on. Paikalliset muokkaukset nimikkeisiin ja tiedostoihin menetetään.
|
sync.error.groupWillBeReset=Jos jatkat, kopiosi ryhmästä resetoituu siihen tilaan, missä se palvelimella on. Paikalliset muokkaukset nimikkeisiin ja tiedostoihin menetetään.
|
||||||
sync.error.copyChangedItems=Jos haluat mahdollisuuden kopioida tekemäsi muutokset muualle tai pyytää kirjoitusoikeutta ryhmän ylläpitäjältä, peruuta synkronointi nyt.
|
sync.error.copyChangedItems=Jos haluat mahdollisuuden kopioida tekemäsi muutokset muualle tai pyytää kirjoitusoikeutta ryhmän ylläpitäjältä, peruuta synkronointi nyt.
|
||||||
sync.error.manualInterventionRequired=Automaattinen synkronointi johti konfliktiin, joka vaatii manuaalista väliintuloa.
|
sync.error.manualInterventionRequired=Automaattinen synkronointi johti konfliktiin, joka vaatii manuaalista väliintuloa.
|
||||||
sync.error.clickSyncIcon=Paina synkronointikuvaketta aloittaaksesi synkronoinnin manuaalisesti.
|
sync.error.clickSyncIcon=Paina synkronointikuvaketta aloittaaksesi synkronoinnin manuaalisesti.
|
||||||
sync.error.invalidClock=The system clock is set to an invalid time. You will need to correct this to sync with the Zotero server.
|
sync.error.invalidClock=Järjestelmän kellonaika on virheellinen. Sinun täytyy korjata se, että synkronointi toimisi.
|
||||||
sync.error.sslConnectionError=SSL connection error
|
sync.error.sslConnectionError=SSL-yhteyden virhe
|
||||||
sync.error.checkConnection=Error connecting to server. Check your Internet connection.
|
sync.error.checkConnection=Virhe yhdistettäessä palvelimeen. Tarkista Internet-yhteytesi.
|
||||||
sync.error.emptyResponseServer=Empty response from server.
|
sync.error.emptyResponseServer=Palvelin antoi tyhjän vastauksen.
|
||||||
sync.error.invalidCharsFilename=The filename '%S' contains invalid characters.\n\nRename the file and try again. If you rename the file via the OS, you will need to relink it in Zotero.
|
sync.error.invalidCharsFilename=Tiedostonimessä '%S' on virheellisiä kirjaimia.\n\nVaihda tiedostonimi ja yritä uudelleen. Jos vaihdat tiedostonimeä käyttöjärjestelmän kautta, sinun täytyy linkata tiedosto uudelleen Zoteroon.
|
||||||
|
|
||||||
sync.lastSyncWithDifferentAccount=This Zotero database was last synced with a different zotero.org account ('%1$S') from the current one ('%2$S').
|
sync.lastSyncWithDifferentAccount=Tämä Zotero-tietokanta synkronoitiin edellisen kerran zotero.org-tilin ('%1$S') kanssa kuin nykyinen ('%2$S').
|
||||||
sync.localDataWillBeCombined=If you continue, local Zotero data will be combined with data from the '%S' account stored on the server.
|
sync.localDataWillBeCombined=Jos jatkat, paikalliset Zotero-tiedot yhdistetään palvelimella olevien tilin '%S' tietojen kanssa.
|
||||||
sync.localGroupsWillBeRemoved1=Local groups, including any with changed items, will also be removed.
|
sync.localGroupsWillBeRemoved1=Paikalliset ryhmät – myös ne, joissa on muuttuneita nimikkeitä – poistetaan myös.
|
||||||
sync.avoidCombiningData=To avoid combining or losing data, revert to the '%S' account or use the Reset options in the Sync pane of the Zotero preferences.
|
sync.avoidCombiningData=Jos haluat välttää tietojen yhdistämisen ja/tai menettämisen, palaa tiliin '%S' tai käytä Nollaa asetukset -toimintoa Zoteron synkronointiasetuksissa.
|
||||||
sync.localGroupsWillBeRemoved2=If you continue, local groups, including any with changed items, will be removed and replaced with groups linked to the '%1$S' account.\n\nTo avoid losing local changes to groups, be sure you have synced with the '%2$S' account before syncing with the '%1$S' account.
|
sync.localGroupsWillBeRemoved2=Jos jatkat, paikalliset ryhmät – myös ne, joissa on muuttuneita nimikkeitä – poistetaan ja korvataan tiliin '%1$S' liitetyillä ryhmillä.\n\nVälttääksesi paikalliset muutokset ryhmiin, varmista, että olet synkronoinut tilin '€2$S' ennen tiliä '%1$S'.
|
||||||
|
|
||||||
sync.conflict.autoChange.alert=One or more locally deleted Zotero %S have been modified remotely since the last sync.
|
sync.conflict.autoChange.alert=Yhtä tai useampaa paikallisesti poistettua Zotero-%S on muokattu toisaalla edellisen synkronoinnin jälkeen.
|
||||||
sync.conflict.autoChange.log=A Zotero %S has changed both locally and remotely since the last sync:
|
sync.conflict.autoChange.log=Zotero-%S:n paikallinen sekä palvelimella oleva versio on muuttunut edellisen synkronoinnin jälkeen.
|
||||||
sync.conflict.remoteVersionsKept=The remote versions have been kept.
|
sync.conflict.remoteVersionsKept=Palvelimella olevat versiot säilytettiin.
|
||||||
sync.conflict.remoteVersionKept=The remote version has been kept.
|
sync.conflict.remoteVersionKept=Palvelimella oleva versio säilytettiin.
|
||||||
sync.conflict.localVersionsKept=The local versions have been kept.
|
sync.conflict.localVersionsKept=Paikalliset versiot säilytettiin.
|
||||||
sync.conflict.localVersionKept=The local version has been kept.
|
sync.conflict.localVersionKept=Paikallinen versio säilytettiin.
|
||||||
sync.conflict.recentVersionsKept=The most recent versions have been kept.
|
sync.conflict.recentVersionsKept=Uusimmat versiot säilytettiin.
|
||||||
sync.conflict.recentVersionKept=The most recent version, '%S', has been kept.
|
sync.conflict.recentVersionKept=Uusin versio, '%S', säilytettiin.
|
||||||
sync.conflict.viewErrorConsole=View the %S Error Console for the full list of such changes.
|
sync.conflict.viewErrorConsole=Voit katsoa täydellisen luettelon muutoksista %S:n virhekonsolissa.
|
||||||
sync.conflict.localVersion=Local version: %S
|
sync.conflict.localVersion=Paikallinen versio: %S
|
||||||
sync.conflict.remoteVersion=Remote version: %S
|
sync.conflict.remoteVersion=Etäversio: %S
|
||||||
sync.conflict.deleted=[deleted]
|
sync.conflict.deleted=[poistettu]
|
||||||
sync.conflict.collectionItemMerge.alert=One or more Zotero items have been added to and/or removed from the same collection on multiple computers since the last sync.
|
sync.conflict.collectionItemMerge.alert=Yksi tai useampi Zotero-nimike on lisätty samaan kokoelmaan tai poistettu samasta kokoelmasta useilla eri tietokoneilla edellisen synkronoinnin jälkeen.
|
||||||
sync.conflict.collectionItemMerge.log=Zotero items in the collection '%S' have been added and/or removed on multiple computers since the last sync. The following items have been added to the collection:
|
sync.conflict.collectionItemMerge.log=Zotero-nimikkeitä kokoelmassa '%S' on lisätty tai poistettu useilla eri tietokoneilla edellisen synkronoinnin jälkeen. Seuraavat nimikkeet lisättiin kokoelmaan:
|
||||||
sync.conflict.tagItemMerge.alert=One or more Zotero tags have been added to and/or removed from items on multiple computers since the last sync. The different sets of tags have been combined.
|
sync.conflict.tagItemMerge.alert=Yksi tai useampi Zotero-avainsana on poistettu nimikkeistä tai lisätty nimikkeisiin useilla eri tietokoneilla edellisen synkronoinnin jälkeen. Avainsananiput on nyt yhdistetty toisiinsa.
|
||||||
sync.conflict.tagItemMerge.log=The Zotero tag '%S' has been added to and/or removed from items on multiple computers since the last sync.
|
sync.conflict.tagItemMerge.log=Zotero-avainsana '%S' on lisätty nimikkeisiin tai poistettu nimikkeistä useilla eri tietokoneilla edelisen synkronoinnin jälkeen.
|
||||||
sync.conflict.tag.addedToRemote=It has been added to the following remote items:
|
sync.conflict.tag.addedToRemote=Se on nyt lisätty seuraaviin palvelimella oleviin nimikkeisiin:
|
||||||
sync.conflict.tag.addedToLocal=It has been added to the following local items:
|
sync.conflict.tag.addedToLocal=Se on nyt lisätty seuraaviin paikallisiin nimikkeisiin:
|
||||||
|
|
||||||
sync.conflict.fileChanged=The following file has been changed in multiple locations.
|
sync.conflict.fileChanged=Seuraavaa tiedostoa on muokattu useassa eri paikassa.
|
||||||
sync.conflict.itemChanged=The following item has been changed in multiple locations.
|
sync.conflict.itemChanged=Seuraavaa nimikettä on muokattu. useassa eri paikassa.
|
||||||
sync.conflict.chooseVersionToKeep=Choose the version you would like to keep, and then click %S.
|
sync.conflict.chooseVersionToKeep=Valitse versio, jonka haluat säilyttää, ja paina &S
|
||||||
sync.conflict.chooseThisVersion=Choose this version
|
sync.conflict.chooseThisVersion=Valitse tämä versio
|
||||||
|
|
||||||
sync.status.notYetSynced=Ei vielä synkronoitu
|
sync.status.notYetSynced=Ei vielä synkronoitu
|
||||||
sync.status.lastSync=Viimeisin synkronointi:
|
sync.status.lastSync=Viimeisin synkronointi:
|
||||||
|
@ -818,12 +818,12 @@ sync.status.uploadingData=Siirretään tietoja synkronointipalvelimelle
|
||||||
sync.status.uploadAccepted=Tiedonsiirto hyväksytty \u2014 odotetaan synkronointipalvelinta
|
sync.status.uploadAccepted=Tiedonsiirto hyväksytty \u2014 odotetaan synkronointipalvelinta
|
||||||
sync.status.syncingFiles=Synkronoidaan tiedostoja
|
sync.status.syncingFiles=Synkronoidaan tiedostoja
|
||||||
|
|
||||||
sync.fulltext.upgradePrompt.title=New: Full-Text Content Syncing
|
sync.fulltext.upgradePrompt.title=Uutta: Kokotekstisisällön synkronisointi
|
||||||
sync.fulltext.upgradePrompt.text=Zotero can now sync the full-text content of files in your Zotero libraries with zotero.org and other linked devices, allowing you to easily search for your files wherever you are. The full-text content of your files will not be shared publicly.
|
sync.fulltext.upgradePrompt.text=Zotero voi nyt synkronoida Zotero-kirjastossa olevien tiedostojen kokotekstisisällön zotero.orgin ja tiliin kytkettyjen laitteiden kanssa, joten voit helposti suorittaa hakuja tiedostoista missä ikinä oletkin. Tiedostojen kokotekstisisältöä ei jaeta julkisesti.
|
||||||
sync.fulltext.upgradePrompt.changeLater=You can change this setting later from the Sync pane of the Zotero preferences.
|
sync.fulltext.upgradePrompt.changeLater=Voit myöhemmin muuttaa tätä asetusta Zoteron asetusten Synkronointi-välilehdellä.
|
||||||
sync.fulltext.upgradePrompt.enable=Use Full-Text Syncing
|
sync.fulltext.upgradePrompt.enable=Käytä kokotekstien synkronisointia
|
||||||
|
|
||||||
sync.storage.mbRemaining=%SMB remaining
|
sync.storage.mbRemaining=%S Mt jäljellä
|
||||||
sync.storage.kbRemaining=%S kt jäljellä
|
sync.storage.kbRemaining=%S kt jäljellä
|
||||||
sync.storage.filesRemaining=%1$S/%2$S tiedostoa
|
sync.storage.filesRemaining=%1$S/%2$S tiedostoa
|
||||||
sync.storage.none=Ei mitään
|
sync.storage.none=Ei mitään
|
||||||
|
@ -836,14 +836,14 @@ sync.storage.serverConfigurationVerified=Palvelinasetukset varmistettu
|
||||||
sync.storage.fileSyncSetUp=Tiedostosynkronisaatio on nyt määritetty.
|
sync.storage.fileSyncSetUp=Tiedostosynkronisaatio on nyt määritetty.
|
||||||
sync.storage.openAccountSettings=Avaa tilin asetukset
|
sync.storage.openAccountSettings=Avaa tilin asetukset
|
||||||
|
|
||||||
sync.storage.error.default=A file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, restart %S 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.
|
sync.storage.error.default=Tiedostojen synkronointivirhe. Yritä synkronointia uudelleen.\n\nJos saat tämän virheilmoituksen toistuvasti, käynnistä %S ja/tai tietokone uudelleen, ja yritä sitten uudestaan. Jos ilmoitus toistuu senkin jälkeen, lähetä virheraportti ja kirjoita Zoteron keskustelualueelle viesti, jossa mainitset virheraportin tunnuksen.
|
||||||
sync.storage.error.defaultRestart=A file sync error occurred. Please restart %S 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.
|
sync.storage.error.defaultRestart=Tiedostojen synkronointivirhe. Käynnistä %S ja/tai tietokone uudelleen, ja yritä sitten synkronointia uudestaan.\n\nJos ilmoitus toistuu, lähetä virheraportti ja kirjoita Zoteron keskustelualueelle viesti, jossa mainitset virheraportin tunnuksen.
|
||||||
sync.storage.error.serverCouldNotBeReached=Palvelinta %S ei voitu tavoittaa.
|
sync.storage.error.serverCouldNotBeReached=Palvelinta %S ei voitu tavoittaa.
|
||||||
sync.storage.error.permissionDeniedAtAddress=Sinulle ei ole oikeutta luoda Zotero-kansiota osoitteeseen:
|
sync.storage.error.permissionDeniedAtAddress=Sinulle ei ole oikeutta luoda Zotero-kansiota osoitteeseen:
|
||||||
sync.storage.error.checkFileSyncSettings=Tarkista tiedostojen synkronoinnin asetukset tai ota yhteyttä palvelimesi ylläpitäjään.
|
sync.storage.error.checkFileSyncSettings=Tarkista tiedostojen synkronoinnin asetukset tai ota yhteyttä palvelimesi ylläpitäjään.
|
||||||
sync.storage.error.verificationFailed=%S tarkistus epäonnistui. Tarkista tiedostojen synkronointiasetukset Zoteron asetusten Synkronisaatio-välilehdeltä.
|
sync.storage.error.verificationFailed=%S tarkistus epäonnistui. Tarkista tiedostojen synkronointiasetukset Zoteron asetusten Synkronisaatio-välilehdeltä.
|
||||||
sync.storage.error.fileNotCreated=Tiedostoa '%S' ei voitu luoda Zoteron 'storage'-kansioon.
|
sync.storage.error.fileNotCreated=Tiedostoa '%S' ei voitu luoda Zoteron 'storage'-kansioon.
|
||||||
sync.storage.error.encryptedFilenames=Error creating file '%S'.\n\nSee http://www.zotero.org/support/kb/encrypted_filenames for more information.
|
sync.storage.error.encryptedFilenames=Virhe luodessa tiedostoa '%S'.\n\nKatso lisätietoja osoitteesta http://www.zotero.org/support/kb/encrypted_filenames.
|
||||||
sync.storage.error.fileEditingAccessLost=Sinulle ei enää ole muokkausoikeutta Zoteron ryhmään '%S', joten lisäämiäsi tai muokkaamiasi tiedostoja ei voida synkronoida palvelimelle.
|
sync.storage.error.fileEditingAccessLost=Sinulle ei enää ole muokkausoikeutta Zoteron ryhmään '%S', joten lisäämiäsi tai muokkaamiasi tiedostoja ei voida synkronoida palvelimelle.
|
||||||
sync.storage.error.copyChangedItems=Jos haluat säilyttää mahdollisuuden kopioida muutetut nimikkeet ja tiedostot muualle, peruuta synkronointi nyt.
|
sync.storage.error.copyChangedItems=Jos haluat säilyttää mahdollisuuden kopioida muutetut nimikkeet ja tiedostot muualle, peruuta synkronointi nyt.
|
||||||
sync.storage.error.fileUploadFailed=Tiedostojen siirto palvelimelle epäonnistui.
|
sync.storage.error.fileUploadFailed=Tiedostojen siirto palvelimelle epäonnistui.
|
||||||
|
@ -851,9 +851,9 @@ sync.storage.error.directoryNotFound=Kansiota ei löytynyt
|
||||||
sync.storage.error.doesNotExist=Sijaintia %S ei ole olemassa.
|
sync.storage.error.doesNotExist=Sijaintia %S ei ole olemassa.
|
||||||
sync.storage.error.createNow=Haluatko luoda sen nyt?
|
sync.storage.error.createNow=Haluatko luoda sen nyt?
|
||||||
|
|
||||||
sync.storage.error.webdav.default=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.
|
sync.storage.error.webdav.default=Virhe WebDAV-tiedostosynkronoinnissa. Yritä synkronointia uudelleen.\n\nJos saat tämän viestin toistuvasti, tarkista WebDAV-palvelimen asetukset Zoteron asetusten Synkronointi-välilehdellä.
|
||||||
sync.storage.error.webdav.defaultRestart=A WebDAV file sync error occurred. Please restart %S and try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.
|
sync.storage.error.webdav.defaultRestart=Virhe WebDAV-tiedostosynkronoinnissa. Käynnistä %S uudelleen ja yritä synkronointia uudestaan.\n\nJos saat tämän viestin toistuvasti, tarkista WebDAV-palvelimen asetukset Zoteron asetusten Synkronointi-välilehdellä.
|
||||||
sync.storage.error.webdav.enterURL=Please enter a WebDAV URL.
|
sync.storage.error.webdav.enterURL=Anna WebDAV-palvelimen URL
|
||||||
sync.storage.error.webdav.invalidURL=%S ei ole kelvollinen WebDAV-osoite.
|
sync.storage.error.webdav.invalidURL=%S ei ole kelvollinen WebDAV-osoite.
|
||||||
sync.storage.error.webdav.invalidLogin=WebDAV-palvelin ei hyväksynyt antamaasi käyttäjätunnusta ja salasanaa.
|
sync.storage.error.webdav.invalidLogin=WebDAV-palvelin ei hyväksynyt antamaasi käyttäjätunnusta ja salasanaa.
|
||||||
sync.storage.error.webdav.permissionDenied=Sinulla ei ole käyttöoikeutta WebDAV-palvelimen sijaintiin %S.
|
sync.storage.error.webdav.permissionDenied=Sinulla ei ole käyttöoikeutta WebDAV-palvelimen sijaintiin %S.
|
||||||
|
@ -863,18 +863,18 @@ sync.storage.error.webdav.sslConnectionError=SSL-yhteysvirhe yhdistettäessä ko
|
||||||
sync.storage.error.webdav.loadURLForMoreInfo=Lataa WebDAV-osoite nettiselaimessa saadaksesi lisätietoja
|
sync.storage.error.webdav.loadURLForMoreInfo=Lataa WebDAV-osoite nettiselaimessa saadaksesi lisätietoja
|
||||||
sync.storage.error.webdav.seeCertOverrideDocumentation=Katso lisätietoja sertifikaatin ohittamisen ohjeista.
|
sync.storage.error.webdav.seeCertOverrideDocumentation=Katso lisätietoja sertifikaatin ohittamisen ohjeista.
|
||||||
sync.storage.error.webdav.loadURL=Lataa WebDAV-osoite
|
sync.storage.error.webdav.loadURL=Lataa WebDAV-osoite
|
||||||
sync.storage.error.webdav.fileMissingAfterUpload=A potential problem was found with your WebDAV server.\n\nAn uploaded file was not immediately available for download. There may be a short delay between when you upload files and when they become available, particularly if you are using a cloud storage service.\n\nIf Zotero file syncing appears to work normally, you can ignore this message. If you have trouble, please post to the Zotero Forums.
|
sync.storage.error.webdav.fileMissingAfterUpload=Synkronoinnissa WebDAV-palvelimen kanssa saattaa olla ongelma.\n\nLähetetty tiedosto ei ollut välittömästi valminaa ladattavaksi. Tiedostojen lähettämisen ja niiden saataville tulemisen välillä saattaa olla pieni viive, etenkin jos käytät tallennukseen pilvipalveluita.\n\nJos Zoteron tiedostosynkronointi vaikuttaa toimivan normaalista, voit ohittaa tämän virheilmoituksen. Jos ongelmia ilmenee, lähetä viesti Zoteron keskustelualueelle.
|
||||||
sync.storage.error.webdav.nonexistentFileNotMissing=Your WebDAV server is claiming that a nonexistent file exists. Contact your WebDAV server administrator for assistance.
|
sync.storage.error.webdav.nonexistentFileNotMissing=WebDAV-palvelin ilmoittaa olemassaolevan tiedoston olemassaolevaksi. Ota yhteyttä palvelimen ylläpitäjään.
|
||||||
sync.storage.error.webdav.serverConfig.title=WebDAV Server Configuration Error
|
sync.storage.error.webdav.serverConfig.title=WebDAV-palvelimen konfigurointivirhe
|
||||||
sync.storage.error.webdav.serverConfig=Your WebDAV server returned an internal error.
|
sync.storage.error.webdav.serverConfig=WebDAV-palvelin ilmoitti sisäisestä virhetilasta.
|
||||||
|
|
||||||
sync.storage.error.zfs.restart=A file sync error occurred. Please restart %S and/or your computer and try syncing again.\n\nIf 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.
|
sync.storage.error.zfs.restart=Tiedostojen synkronointivirhe. Käynnistä %S ja/tai tietokone uudelleen ja yritä synkronointia uudestaan.\n\nJos ongelma toistuu, tietokoneessa tai verkkoyhteydessä saattaa olla vikaa, jonka saattaa aiheuttaa esimerkiksi tietoturvaohjelma, välityspalvelin, VPN tms. Kokeile poistaa tietoturva-/palomuuriohjelma käytöstä, tai jos kyseessä on kannettava tietokone, kokeile eri verkkoa.
|
||||||
sync.storage.error.zfs.tooManyQueuedUploads=You have too many queued uploads. Please try again in %S minutes.
|
sync.storage.error.zfs.tooManyQueuedUploads=Sinulla on liian monta tiedostojen lähetystä jonossa. Yritä uudelleen %S minuutin kuluttua.
|
||||||
sync.storage.error.zfs.personalQuotaReached1=Kiintiö palvelimelle tallennettaville tiedostoille on tullut täyteen. Osa tiedoista jäi siirtämättä. Muu Zotero-aineisto synkronoituu edelleen palvelimelle.
|
sync.storage.error.zfs.personalQuotaReached1=Kiintiö palvelimelle tallennettaville tiedostoille on tullut täyteen. Osa tiedoista jäi siirtämättä. Muu Zotero-aineisto synkronoituu edelleen palvelimelle.
|
||||||
sync.storage.error.zfs.personalQuotaReached2=Tutustu tallennustilan lisäpalveluihin osoitteessa zotero.org.
|
sync.storage.error.zfs.personalQuotaReached2=Tutustu tallennustilan lisäpalveluihin osoitteessa zotero.org.
|
||||||
sync.storage.error.zfs.groupQuotaReached1=Ryhmän '%S' kiintiö palvelimelle tallennettaville tiedostoille on tullut täyteen. Osa tiedoista jäi siirtämättä. Muu Zotero-aineisto synkronoituu edelleen palvelimelle.
|
sync.storage.error.zfs.groupQuotaReached1=Ryhmän '%S' kiintiö palvelimelle tallennettaville tiedostoille on tullut täyteen. Osa tiedoista jäi siirtämättä. Muu Zotero-aineisto synkronoituu edelleen palvelimelle.
|
||||||
sync.storage.error.zfs.groupQuotaReached2=Ryhmän omistaja voi lisätä ryhmän tallennustilaa osoitteessa zotero.org.
|
sync.storage.error.zfs.groupQuotaReached2=Ryhmän omistaja voi lisätä ryhmän tallennustilaa osoitteessa zotero.org.
|
||||||
sync.storage.error.zfs.fileWouldExceedQuota=The file '%S' would exceed your Zotero File Storage quota
|
sync.storage.error.zfs.fileWouldExceedQuota=Tiedosto '%S' ylittäisi Zoteron tiedostontallennuskiintiösi.
|
||||||
|
|
||||||
sync.longTagFixer.saveTag=Tallenna merkki
|
sync.longTagFixer.saveTag=Tallenna merkki
|
||||||
sync.longTagFixer.saveTags=Tallenna merkit
|
sync.longTagFixer.saveTags=Tallenna merkit
|
||||||
|
@ -898,16 +898,16 @@ proxies.recognized.add=Lisää välityspalvelin
|
||||||
|
|
||||||
recognizePDF.noOCR=PDF-tiedosto ei sisällä OCRed-tekstiä.
|
recognizePDF.noOCR=PDF-tiedosto ei sisällä OCRed-tekstiä.
|
||||||
recognizePDF.couldNotRead=PDF-tiedoston tekstiä ei voi lukea.
|
recognizePDF.couldNotRead=PDF-tiedoston tekstiä ei voi lukea.
|
||||||
recognizePDF.noMatches=No matching references found
|
recognizePDF.noMatches=Vastaavia nimikkeitä ei löytynyt
|
||||||
recognizePDF.fileNotFound=Tiedostoa ei löytynyt
|
recognizePDF.fileNotFound=Tiedostoa ei löytynyt
|
||||||
recognizePDF.limit=Google Scholar query limit reached. Try again later.
|
recognizePDF.limit=Google Scholarin asettama raja hakumäärille ylitetty. Yritä myöhemmin uudestaan.
|
||||||
recognizePDF.error=Tapahtui odottamaton virhe.
|
recognizePDF.error=Tapahtui odottamaton virhe.
|
||||||
recognizePDF.stopped=Peruttu
|
recognizePDF.stopped=Peruttu
|
||||||
recognizePDF.complete.label=Metadata on haettu
|
recognizePDF.complete.label=Metadata on haettu
|
||||||
recognizePDF.cancelled.label=Metadata Retrieval Cancelled
|
recognizePDF.cancelled.label=Metadatan hakeminen peruttu
|
||||||
recognizePDF.close.label=Sulje
|
recognizePDF.close.label=Sulje
|
||||||
recognizePDF.captcha.title=Please enter CAPTCHA
|
recognizePDF.captcha.title=Syötä kuvavarmennus
|
||||||
recognizePDF.captcha.description=Zotero uses Google Scholar to help identify PDFs. To continue using Google Scholar, please enter the text from the image below.
|
recognizePDF.captcha.description=Zotero käyttää Google Scholaria PDF-tiedostojen tunnistamiseen. Jatkaaksesi Google Scholarin käyttöä, kirjoita laatikkoon kuvassa näkyvä teksti.
|
||||||
|
|
||||||
rtfScan.openTitle=Valitse käsiteltävä tiedosto
|
rtfScan.openTitle=Valitse käsiteltävä tiedosto
|
||||||
rtfScan.scanning.label=Scanning RTF Document...
|
rtfScan.scanning.label=Scanning RTF Document...
|
||||||
|
@ -917,20 +917,20 @@ rtfScan.saveTitle=Valitse muotoillun tiedoston tallennuksen kohde
|
||||||
rtfScan.scannedFileSuffix=(Skannattu)
|
rtfScan.scannedFileSuffix=(Skannattu)
|
||||||
|
|
||||||
|
|
||||||
file.accessError.theFile=The file '%S'
|
file.accessError.theFile=Tiedosto '%S'
|
||||||
file.accessError.aFile=Tiedosto
|
file.accessError.aFile=Tiedosto
|
||||||
file.accessError.cannotBe=ei voi olla
|
file.accessError.cannotBe=ei voi olla
|
||||||
file.accessError.created=luotu
|
file.accessError.created=luotu
|
||||||
file.accessError.updated=päivitetty
|
file.accessError.updated=päivitetty
|
||||||
file.accessError.deleted=poistettu
|
file.accessError.deleted=poistettu
|
||||||
file.accessError.message.windows=Check that the file is not currently in use, that its permissions allow write access, and that it has a valid filename.
|
file.accessError.message.windows=Tarkista, että tiedosto ei ole tällä hetkellä käytössä, että siihen on kirjoitusoikeudet, ja että sillä on sallittu tiedostonimi.
|
||||||
file.accessError.message.other=Check that the file is not currently in use and that its permissions allow write access.
|
file.accessError.message.other=Tarkista, että tiedosto ei ole käytössä ja että siihen on kirjoitusoikeudet.
|
||||||
file.accessError.restart=Restarting your computer or disabling security software may also help.
|
file.accessError.restart=Voit yrittää myös käynnistää tietokoneen uudelleen tai poistaa suojausohjelman käytöstä.
|
||||||
file.accessError.showParentDir=Show Parent Directory
|
file.accessError.showParentDir=Näytä sisältävä hakemisto
|
||||||
|
|
||||||
lookup.failure.title=Haku epäonnistui
|
lookup.failure.title=Haku epäonnistui
|
||||||
lookup.failure.description=Zotero ei löytänyt annettua tunnistetta rekistereistä. Tarkista tunniste ja yritä uudelleen.
|
lookup.failure.description=Zotero ei löytänyt annettua tunnistetta rekistereistä. Tarkista tunniste ja yritä uudelleen.
|
||||||
lookup.failureToID.description=Zotero could not find any identifiers in your input. Please verify your input and try again.
|
lookup.failureToID.description=Zotero ei löytänyt mitään tunnisteita syötteestäsi. Tarkista syöte ja yritä uudelleen.
|
||||||
|
|
||||||
locate.online.label=Katso verkossa
|
locate.online.label=Katso verkossa
|
||||||
locate.online.tooltip=Hae tämä nimike verkosta
|
locate.online.tooltip=Hae tämä nimike verkosta
|
||||||
|
@ -953,18 +953,18 @@ locate.manageLocateEngines=Manage Lookup Engines...
|
||||||
standalone.corruptInstallation=Zotero Standalone -asennuksesi vaikuttaa olevan vioittunut epäonnistuneessa automaattipäivityksessä. Zotero saattaa jatkaa toimintaansa, mutta mahdollisten virheiden välttämiseksi suosittelemme lataamaan Zotero Standalonen uusimman version osoitteesta http://zotero.org/support/standalone mahdollisimman pian.
|
standalone.corruptInstallation=Zotero Standalone -asennuksesi vaikuttaa olevan vioittunut epäonnistuneessa automaattipäivityksessä. Zotero saattaa jatkaa toimintaansa, mutta mahdollisten virheiden välttämiseksi suosittelemme lataamaan Zotero Standalonen uusimman version osoitteesta http://zotero.org/support/standalone mahdollisimman pian.
|
||||||
standalone.addonInstallationFailed.title=Lisäosan asennus epäonnistui
|
standalone.addonInstallationFailed.title=Lisäosan asennus epäonnistui
|
||||||
standalone.addonInstallationFailed.body=Lisäosaa "%S" ei voitu asentaa. Se saattaa olla yhteensopimaton tämän Zotero Standalone -version kanssa.
|
standalone.addonInstallationFailed.body=Lisäosaa "%S" ei voitu asentaa. Se saattaa olla yhteensopimaton tämän Zotero Standalone -version kanssa.
|
||||||
standalone.rootWarning=You appear to be running Zotero Standalone as root. This is insecure and may prevent Zotero from functioning when launched from your user account.\n\nIf you wish to install an automatic update, modify the Zotero program directory to be writeable by your user account.
|
standalone.rootWarning=Käytät ilmeisesti Zotero Standalonea järjestelmänvalvojan oikeuksilla. Tämä ei ole turvallista, ja se voi estää Zoteroa toimimasta oikein, kun se käynnistetään tavallisen käyttäjän oikeuksilla.\n\nJos haluat asentaa automaattisen päivityksen, lisää tavalliselle käyttäjälle kirjoitusoikeudet Zoteron ohjelmakansioon.
|
||||||
standalone.rootWarning.exit=Exit
|
standalone.rootWarning.exit=Poistu
|
||||||
standalone.rootWarning.continue=Continue
|
standalone.rootWarning.continue=atka
|
||||||
standalone.updateMessage=A recommended update is available, but you do not have permission to install it. To update automatically, modify the Zotero program directory to be writeable by your user account.
|
standalone.updateMessage=Suositeltu päivitys on saatavilla, mutta sinulla ei ole oikeuksia sen asentamiseen. Asentaaksesi päivitykset automaattiset, lisää käyttäjätilillesi kirjoitusoikeus Zoteron ohjelmakansioon.
|
||||||
|
|
||||||
connector.error.title=Zotero Connector -ongelma.
|
connector.error.title=Zotero Connector -ongelma.
|
||||||
connector.standaloneOpen=Tietokantaasi ei saada yhteyttä, koska Zotero Standalone on tällä hetkellä auki. Käytä Zotero Standalonea nimikkeidesi tarkasteluun.
|
connector.standaloneOpen=Tietokantaasi ei saada yhteyttä, koska Zotero Standalone on tällä hetkellä auki. Käytä Zotero Standalonea nimikkeidesi tarkasteluun.
|
||||||
connector.loadInProgress=Zotero Standalone was launched but is not accessible. If you experienced an error opening Zotero Standalone, restart Firefox.
|
connector.loadInProgress=Zotero Standalone on käynnistettiin, mutta se ei ole käytettävissä. Jos Zotero Standalonen käynnistämiseen liittyi virhe, käynnistä Firefox uudestaan.
|
||||||
|
|
||||||
firstRunGuidance.saveIcon=Zotero tunnistaa viitteen tällä sivulla. Paina osoitepalkin kuvaketta tallentaaksesi viitteen Zotero-kirjastoon.
|
firstRunGuidance.saveIcon=Zotero tunnistaa viitteen tällä sivulla. Paina osoitepalkin kuvaketta tallentaaksesi viitteen Zotero-kirjastoon.
|
||||||
firstRunGuidance.authorMenu=Zoterossa voit myös määritellä teoksen toimittajat ja kääntäjät. Voit muuttaa kirjoittajan toimittajaksi tai kääntäjäksi tästä valikosta.
|
firstRunGuidance.authorMenu=Zoterossa voit myös määritellä teoksen toimittajat ja kääntäjät. Voit muuttaa kirjoittajan toimittajaksi tai kääntäjäksi tästä valikosta.
|
||||||
firstRunGuidance.quickFormat=Kirjoita otsikko tai tekijä etsiäksesi viitettä.\n\nKun olet tehnyt valinnan, klikkaa kuplaa tai paina Ctrl-\u2193 lisätäksesi sivunumerot sekä etu- ja jälkiliitteet. Voit myös sisällyttää sivunumeron hakutermien mukana lisätäksesi sen suoraan.\n\nVoit muokata sitaatteja suoraan tekstinkäsittelyohjelman asiakirjassa.
|
firstRunGuidance.quickFormat=Kirjoita otsikko tai tekijä etsiäksesi viitettä.\n\nKun olet tehnyt valinnan, klikkaa kuplaa tai paina Ctrl-\u2193 lisätäksesi sivunumerot sekä etu- ja jälkiliitteet. Voit myös sisällyttää sivunumeron hakutermien mukana lisätäksesi sen suoraan.\n\nVoit muokata sitaatteja suoraan tekstinkäsittelyohjelman asiakirjassa.
|
||||||
firstRunGuidance.quickFormatMac=Kirjoita otsikko tai tekijä etsiäksesi viitettä.\n\nKun olet tehnyt valinnan, klikkaa kuplaa tai paina Ctrl-\u2193 lisätäksesi sivunumerot sekä etu- ja jälkiliitteet. Voit myös sisällyttää sivunumeron hakutermien mukana lisätäksesi sen suoraan.\n\nVoit muokata sitaatteja suoraan tekstinkäsittelyohjelman asiakirjassa.
|
firstRunGuidance.quickFormatMac=Kirjoita otsikko tai tekijä etsiäksesi viitettä.\n\nKun olet tehnyt valinnan, klikkaa kuplaa tai paina Ctrl-\u2193 lisätäksesi sivunumerot sekä etu- ja jälkiliitteet. Voit myös sisällyttää sivunumeron hakutermien mukana lisätäksesi sen suoraan.\n\nVoit muokata sitaatteja suoraan tekstinkäsittelyohjelman asiakirjassa.
|
||||||
firstRunGuidance.toolbarButton.new=Click here to open Zotero, or use the %S keyboard shortcut.
|
firstRunGuidance.toolbarButton.new=Paina tästä avataksesi Zoteron, tai käyttää %S-näppäinoikotietä.
|
||||||
firstRunGuidance.toolbarButton.upgrade=The Zotero icon can now be found in the Firefox toolbar. Click the icon to open Zotero, or use the %S keyboard shortcut.
|
firstRunGuidance.toolbarButton.upgrade=Zoteron kuvake on nyt Firefoxin työkalurivillä. Paina kuvaketta avataksesi Zoteron, tai käytä %S-näppäinoikotietä.
|
||||||
|
|
|
@ -81,10 +81,10 @@
|
||||||
<!ENTITY zotero.items.menu.attach.note "Ajouter une note">
|
<!ENTITY zotero.items.menu.attach.note "Ajouter une note">
|
||||||
<!ENTITY zotero.items.menu.attach "Ajouter une pièce jointe">
|
<!ENTITY zotero.items.menu.attach "Ajouter une pièce jointe">
|
||||||
<!ENTITY zotero.items.menu.attach.snapshot "Joindre une capture de la page courante">
|
<!ENTITY zotero.items.menu.attach.snapshot "Joindre une capture de la page courante">
|
||||||
<!ENTITY zotero.items.menu.attach.link "Joindre le lien vers la page courante">
|
<!ENTITY zotero.items.menu.attach.link "Joindre un lien vers la page courante">
|
||||||
<!ENTITY zotero.items.menu.attach.link.uri "Joindre le lien vers l'URI…">
|
<!ENTITY zotero.items.menu.attach.link.uri "Joindre un lien vers un URI…">
|
||||||
<!ENTITY zotero.items.menu.attach.file "Joindre une copie enregistrée du fichier…">
|
<!ENTITY zotero.items.menu.attach.file "Joindre une copie enregistrée d'un fichier…">
|
||||||
<!ENTITY zotero.items.menu.attach.fileLink "Joindre un lien vers le fichier…">
|
<!ENTITY zotero.items.menu.attach.fileLink "Joindre un lien vers un fichier…">
|
||||||
|
|
||||||
<!ENTITY zotero.items.menu.restoreToLibrary "Restaurer vers la bibliothèque">
|
<!ENTITY zotero.items.menu.restoreToLibrary "Restaurer vers la bibliothèque">
|
||||||
<!ENTITY zotero.items.menu.duplicateItem "Dupliquer le document">
|
<!ENTITY zotero.items.menu.duplicateItem "Dupliquer le document">
|
||||||
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Enregistrer dans Zotero">
|
<!ENTITY zotero.downloadManager.label "Enregistrer dans Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Les pièces jointes ne peuvent pas être enregistrées dans la bibliothèque sélectionnée. Ce document sera enregistré dans votre bibliothèque à la place.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Les pièces jointes ne peuvent pas être enregistrées dans la bibliothèque sélectionnée. Ce document sera enregistré dans votre bibliothèque à la place.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "Pour utiliser cette fonctionnalité, vous devez d'abord installer les outils PDF depuis le panneau Recherche des préférences de Zotero.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "Pour utiliser cette fonctionnalité, vous devez d'abord installer les outils PDF depuis le panneau Recherche des préférences de Zotero.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Joindre un lien vers un URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Lien :">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Titre :">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Jusqu'à %S marqueurs dans chaque bibliothèque peuvent
|
||||||
pane.items.loading=Chargement de la liste des objets…
|
pane.items.loading=Chargement de la liste des objets…
|
||||||
pane.items.columnChooser.moreColumns=Plus de colonnes
|
pane.items.columnChooser.moreColumns=Plus de colonnes
|
||||||
pane.items.columnChooser.secondarySort=Critère de tri secondaire (%S)
|
pane.items.columnChooser.secondarySort=Critère de tri secondaire (%S)
|
||||||
pane.items.attach.link.uri.title=Joindre un lien vers l'URI
|
pane.items.attach.link.uri.unrecognized=Zotero n'a pas reconnu l'URI que vous avez saisi. Vérifiez l'adresse et ré-essayez.
|
||||||
pane.items.attach.link.uri=Saisissez une URI :
|
pane.items.attach.link.uri.file=Pour joindre un lien vers un fichier, utilisez plutôt “%S”.
|
||||||
pane.items.trash.title=Mettre à la corbeille
|
pane.items.trash.title=Mettre à la corbeille
|
||||||
pane.items.trash=Voulez-vous vraiment mettre le document sélectionné à la corbeille ?
|
pane.items.trash=Voulez-vous vraiment mettre le document sélectionné à la corbeille ?
|
||||||
pane.items.trash.multiple=Voulez-vous vraiment mettre les documents sélectionnés à la corbeille ?
|
pane.items.trash.multiple=Voulez-vous vraiment mettre les documents sélectionnés à la corbeille ?
|
||||||
|
@ -365,7 +365,7 @@ itemFields.numberOfVolumes=Nb de volumes
|
||||||
itemFields.committee=Commission
|
itemFields.committee=Commission
|
||||||
itemFields.assignee=Cessionnaire
|
itemFields.assignee=Cessionnaire
|
||||||
itemFields.patentNumber=N° de brevet
|
itemFields.patentNumber=N° de brevet
|
||||||
itemFields.priorityNumbers=Ordre de priorité
|
itemFields.priorityNumbers=Numéros de priorité
|
||||||
itemFields.issueDate=Date de parution
|
itemFields.issueDate=Date de parution
|
||||||
itemFields.references=Références
|
itemFields.references=Références
|
||||||
itemFields.legalStatus=Statut légal
|
itemFields.legalStatus=Statut légal
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!ENTITY zotero.search.name "Nome:">
|
<!ENTITY zotero.search.name "Nome:">
|
||||||
|
|
||||||
<!ENTITY zotero.search.searchInLibrary "Search in library:">
|
<!ENTITY zotero.search.searchInLibrary "Buscar na librería:">
|
||||||
|
|
||||||
<!ENTITY zotero.search.joinMode.prefix "Comparar con">
|
<!ENTITY zotero.search.joinMode.prefix "Comparar con">
|
||||||
<!ENTITY zotero.search.joinMode.any "calquera">
|
<!ENTITY zotero.search.joinMode.any "calquera">
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<!ENTITY zotero.general.cancel "Cancelar">
|
<!ENTITY zotero.general.cancel "Cancelar">
|
||||||
|
|
||||||
<!ENTITY zotero.errorReport.title "Informe de erros de Zotero">
|
<!ENTITY zotero.errorReport.title "Informe de erros de Zotero">
|
||||||
<!ENTITY zotero.errorReport.unrelatedMessages "This may include messages unrelated to Zotero.">
|
<!ENTITY zotero.errorReport.unrelatedMessages "Isto pode conter mensaxes que non estean relacionadas con Zotero.">
|
||||||
<!ENTITY zotero.errorReport.submissionInProgress "Espere mentres que se presenta o informe de erro.">
|
<!ENTITY zotero.errorReport.submissionInProgress "Espere mentres que se presenta o informe de erro.">
|
||||||
<!ENTITY zotero.errorReport.submitted "Presentouse o informe de erro .">
|
<!ENTITY zotero.errorReport.submitted "Presentouse o informe de erro .">
|
||||||
<!ENTITY zotero.errorReport.reportID "ID do informe:">
|
<!ENTITY zotero.errorReport.reportID "ID do informe:">
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
<!ENTITY zotero.collections.showUnfiledItems "Mostrar os elementos sen cubrir">
|
<!ENTITY zotero.collections.showUnfiledItems "Mostrar os elementos sen cubrir">
|
||||||
|
|
||||||
<!ENTITY zotero.items.itemType "Tipo de elemento">
|
<!ENTITY zotero.items.itemType "Tipo de elemento">
|
||||||
<!ENTITY zotero.items.type_column "Item Type">
|
<!ENTITY zotero.items.type_column "Tipo de elemento">
|
||||||
<!ENTITY zotero.items.title_column "Título">
|
<!ENTITY zotero.items.title_column "Título">
|
||||||
<!ENTITY zotero.items.creator_column "Creador">
|
<!ENTITY zotero.items.creator_column "Creador">
|
||||||
<!ENTITY zotero.items.date_column "Data">
|
<!ENTITY zotero.items.date_column "Data">
|
||||||
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Gardar en Zotero">
|
<!ENTITY zotero.downloadManager.label "Gardar en Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Os anexos non se poden gardar na librería que se escolleu. En vez de alí, ese documento gardarase na súa biblioteca.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Os anexos non se poden gardar na librería que se escolleu. En vez de alí, ese documento gardarase na súa biblioteca.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "Para empregar esta característica ten que instalar primeiro as ferramentas de PDF dende as preferencias de Zotero.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "Para empregar esta característica ten que instalar primeiro as ferramentas de PDF dende as preferencias de Zotero.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -81,9 +81,9 @@ upgrade.couldNotMigrate.restart=Reinicie o ordenador se continúa a recibir esta
|
||||||
errorReport.reportError=Informar dun erro ...
|
errorReport.reportError=Informar dun erro ...
|
||||||
errorReport.reportErrors=Informar de erros ...
|
errorReport.reportErrors=Informar de erros ...
|
||||||
errorReport.reportInstructions=Pode informar deste erro seleccionando «%S» no menú de accións.
|
errorReport.reportInstructions=Pode informar deste erro seleccionando «%S» no menú de accións.
|
||||||
errorReport.followingReportWillBeSubmitted=The following report will be submitted:
|
errorReport.followingReportWillBeSubmitted=O informe que se vai a enviar é este:
|
||||||
errorReport.noErrorsLogged=No errors have been logged since %S started.
|
errorReport.noErrorsLogged=Non se rexistraron erros dende que %S se iniciou.
|
||||||
errorReport.advanceMessage=Press %S to send the report to the Zotero developers.
|
errorReport.advanceMessage=Preme %S para enviarlle o informe aos desenvolvedores de Zotero.
|
||||||
errorReport.stepsToReproduce=Pasos a reproducir:
|
errorReport.stepsToReproduce=Pasos a reproducir:
|
||||||
errorReport.expectedResult=Resultado esperado:
|
errorReport.expectedResult=Resultado esperado:
|
||||||
errorReport.actualResult=Resultado real:
|
errorReport.actualResult=Resultado real:
|
||||||
|
@ -193,10 +193,10 @@ tagColorChooser.numberKeyInstructions=Podes engadir esta etiqueta para seleccion
|
||||||
tagColorChooser.maxTags=Só ata %S etiquetas de cada biblioteca poden ter cores asignadas.
|
tagColorChooser.maxTags=Só ata %S etiquetas de cada biblioteca poden ter cores asignadas.
|
||||||
|
|
||||||
pane.items.loading=Cargando a lista de elementos ...
|
pane.items.loading=Cargando a lista de elementos ...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=Máis columnas
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Modo de aliñamento (%S)
|
||||||
pane.items.attach.link.uri.title=Anexar a ligazón á URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Introducir unha URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Mover ao lixo
|
pane.items.trash.title=Mover ao lixo
|
||||||
pane.items.trash=Seguro que quere mover o elemento seleccionado ao lixo?
|
pane.items.trash=Seguro que quere mover o elemento seleccionado ao lixo?
|
||||||
pane.items.trash.multiple=Seguro que quere mover os elementos seleccionados ao lixo?
|
pane.items.trash.multiple=Seguro que quere mover os elementos seleccionados ao lixo?
|
||||||
|
@ -483,7 +483,7 @@ ingester.scrapingTo=Gardando en
|
||||||
ingester.scrapeComplete=Gardouse o elemento
|
ingester.scrapeComplete=Gardouse o elemento
|
||||||
ingester.scrapeError=Non se puido gardar o elemento
|
ingester.scrapeError=Non se puido gardar o elemento
|
||||||
ingester.scrapeErrorDescription=Produciuse un erro ao gardalo. Comprobe %S para obter máis información.
|
ingester.scrapeErrorDescription=Produciuse un erro ao gardalo. Comprobe %S para obter máis información.
|
||||||
ingester.scrapeErrorDescription.linkText=Troubleshooting Translator Issues
|
ingester.scrapeErrorDescription.linkText=Informe de erros sobre das traducións
|
||||||
ingester.scrapeErrorDescription.previousError=O proceso de gardado fallou debido a un erro previo de Zotero.
|
ingester.scrapeErrorDescription.previousError=O proceso de gardado fallou debido a un erro previo de Zotero.
|
||||||
|
|
||||||
ingester.importReferRISDialog.title=Importar RIS/Refer para Zotero
|
ingester.importReferRISDialog.title=Importar RIS/Refer para Zotero
|
||||||
|
@ -966,5 +966,5 @@ firstRunGuidance.saveIcon=Zotero recoñece unha referencia nesta páxina. Faga c
|
||||||
firstRunGuidance.authorMenu=Zotero permítelle ademais especificar os editores e tradutores. Escolléndoo neste menú pode asignar a un autor como editor ou tradutor.
|
firstRunGuidance.authorMenu=Zotero permítelle ademais especificar os editores e tradutores. Escolléndoo neste menú pode asignar a un autor como editor ou tradutor.
|
||||||
firstRunGuidance.quickFormat=Teclee un título ou autor para buscar unha referencia.\n\nDespois de facer a selección faga clic na burbulla ou prema Ctrl-\↓ para engadir números de páxina, prefixos ou sufixos. Así mesmo, pode incluír un número de páxina cos datos de busca e engadilo directamente.\n\Ademais, pode editar citas directamente dende o procesador de documentos de texto.
|
firstRunGuidance.quickFormat=Teclee un título ou autor para buscar unha referencia.\n\nDespois de facer a selección faga clic na burbulla ou prema Ctrl-\↓ para engadir números de páxina, prefixos ou sufixos. Así mesmo, pode incluír un número de páxina cos datos de busca e engadilo directamente.\n\Ademais, pode editar citas directamente dende o procesador de documentos de texto.
|
||||||
firstRunGuidance.quickFormatMac=Teclee un título de autor para facer unha busca dunha referencia.\n\nDespois de ter feito a selección prema na burbulla ou prema Cmd-\↓ para engadir os números de páxina, prefixos ou sufixos. Igualmente, pode incluír un número de páxina co seus termos de busca empregados e engadilo directamente.\n\nPode ademais editar citas directamente desde o procesador de documentos de textos.
|
firstRunGuidance.quickFormatMac=Teclee un título de autor para facer unha busca dunha referencia.\n\nDespois de ter feito a selección prema na burbulla ou prema Cmd-\↓ para engadir os números de páxina, prefixos ou sufixos. Igualmente, pode incluír un número de páxina co seus termos de busca empregados e engadilo directamente.\n\nPode ademais editar citas directamente desde o procesador de documentos de textos.
|
||||||
firstRunGuidance.toolbarButton.new=Click here to open Zotero, or use the %S keyboard shortcut.
|
firstRunGuidance.toolbarButton.new=Para abrir Zotero preme aquí ou usa o atallo de teclado %S
|
||||||
firstRunGuidance.toolbarButton.upgrade=The Zotero icon can now be found in the Firefox toolbar. Click the icon to open Zotero, or use the %S keyboard shortcut.
|
firstRunGuidance.toolbarButton.upgrade=A icona de Zotero pódese atopar na barra de ferramentas do Firefox. Preme na icona de Zotero para abrilo ou usa o atallo de teclado %S.
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
||||||
pane.items.loading=טוען רשימת פריטים...
|
pane.items.loading=טוען רשימת פריטים...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=More Columns
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Move to Trash
|
pane.items.trash.title=Move to Trash
|
||||||
pane.items.trash=Are you sure you want to move the selected item to the Trash?
|
pane.items.trash=Are you sure you want to move the selected item to the Trash?
|
||||||
pane.items.trash.multiple=Are you sure you want to move the selected items to the Trash?
|
pane.items.trash.multiple=Are you sure you want to move the selected items to the Trash?
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
<!ENTITY zotero.downloadManager.label "Save to Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
||||||
pane.items.loading=Loading items list...
|
pane.items.loading=Loading items list...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=More Columns
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Move to Trash
|
pane.items.trash.title=Move to Trash
|
||||||
pane.items.trash=Are you sure you want to move the selected item to the Trash?
|
pane.items.trash=Are you sure you want to move the selected item to the Trash?
|
||||||
pane.items.trash.multiple=Are you sure you want to move the selected items to the Trash?
|
pane.items.trash.multiple=Are you sure you want to move the selected items to the Trash?
|
||||||
|
|
|
@ -90,7 +90,7 @@
|
||||||
<!ENTITY zotero.items.menu.duplicateItem "Kiválasztott elem duplikálása">
|
<!ENTITY zotero.items.menu.duplicateItem "Kiválasztott elem duplikálása">
|
||||||
<!ENTITY zotero.items.menu.mergeItems "Elemek összefésülése…">
|
<!ENTITY zotero.items.menu.mergeItems "Elemek összefésülése…">
|
||||||
|
|
||||||
<!ENTITY zotero.duplicatesMerge.versionSelect "Choose the version of the item to use as the master item:">
|
<!ENTITY zotero.duplicatesMerge.versionSelect "Válassza ki azt az elemverziót, amit mester elemnek kíván használni: ">
|
||||||
<!ENTITY zotero.duplicatesMerge.fieldSelect "Select fields to keep from other versions of the item:">
|
<!ENTITY zotero.duplicatesMerge.fieldSelect "Select fields to keep from other versions of the item:">
|
||||||
|
|
||||||
<!ENTITY zotero.toolbar.newItem.label "Új elem">
|
<!ENTITY zotero.toolbar.newItem.label "Új elem">
|
||||||
|
@ -141,11 +141,11 @@
|
||||||
<!ENTITY zotero.tagSelector.selectVisible "Látható címkék kiválasztása">
|
<!ENTITY zotero.tagSelector.selectVisible "Látható címkék kiválasztása">
|
||||||
<!ENTITY zotero.tagSelector.clearVisible "Látható címkék kiválasztásának megszüntetése">
|
<!ENTITY zotero.tagSelector.clearVisible "Látható címkék kiválasztásának megszüntetése">
|
||||||
<!ENTITY zotero.tagSelector.clearAll "Összes címke kiválasztásának megszüntetése">
|
<!ENTITY zotero.tagSelector.clearAll "Összes címke kiválasztásának megszüntetése">
|
||||||
<!ENTITY zotero.tagSelector.assignColor "Assign Color…">
|
<!ENTITY zotero.tagSelector.assignColor "Szín kiválasztása…">
|
||||||
<!ENTITY zotero.tagSelector.renameTag "Címke átnevezése...">
|
<!ENTITY zotero.tagSelector.renameTag "Címke átnevezése...">
|
||||||
<!ENTITY zotero.tagSelector.deleteTag "Címke törlése...">
|
<!ENTITY zotero.tagSelector.deleteTag "Címke törlése...">
|
||||||
|
|
||||||
<!ENTITY zotero.tagColorChooser.title "Choose a Tag Color and Position">
|
<!ENTITY zotero.tagColorChooser.title "Válassza ki a címke színét és a pozíciót.">
|
||||||
<!ENTITY zotero.tagColorChooser.color "Szín:">
|
<!ENTITY zotero.tagColorChooser.color "Szín:">
|
||||||
<!ENTITY zotero.tagColorChooser.position "Helyzet:">
|
<!ENTITY zotero.tagColorChooser.position "Helyzet:">
|
||||||
<!ENTITY zotero.tagColorChooser.setColor "Szín beállítása">
|
<!ENTITY zotero.tagColorChooser.setColor "Szín beállítása">
|
||||||
|
@ -161,9 +161,9 @@
|
||||||
|
|
||||||
<!ENTITY zotero.bibliography.title "Bibliográfia létrehozása">
|
<!ENTITY zotero.bibliography.title "Bibliográfia létrehozása">
|
||||||
<!ENTITY zotero.bibliography.style.label "Hivatkozási stílus:">
|
<!ENTITY zotero.bibliography.style.label "Hivatkozási stílus:">
|
||||||
<!ENTITY zotero.bibliography.outputMode "Output Mode:">
|
<!ENTITY zotero.bibliography.outputMode "Kimeneti mód:">
|
||||||
<!ENTITY zotero.bibliography.bibliography "Bibliography">
|
<!ENTITY zotero.bibliography.bibliography "Bibliográfia">
|
||||||
<!ENTITY zotero.bibliography.outputMethod "Output Method:">
|
<!ENTITY zotero.bibliography.outputMethod "Kimeneti metódus:">
|
||||||
<!ENTITY zotero.bibliography.saveAsRTF.label "Mentés RTF-ként">
|
<!ENTITY zotero.bibliography.saveAsRTF.label "Mentés RTF-ként">
|
||||||
<!ENTITY zotero.bibliography.saveAsHTML.label "Mentés HTML-ként">
|
<!ENTITY zotero.bibliography.saveAsHTML.label "Mentés HTML-ként">
|
||||||
<!ENTITY zotero.bibliography.copyToClipboard.label "Másolás a vágólapra">
|
<!ENTITY zotero.bibliography.copyToClipboard.label "Másolás a vágólapra">
|
||||||
|
@ -217,7 +217,7 @@
|
||||||
<!ENTITY zotero.integration.prefs.automaticJournalAbbeviations.label "Automatically abbreviate journal titles">
|
<!ENTITY zotero.integration.prefs.automaticJournalAbbeviations.label "Automatically abbreviate journal titles">
|
||||||
<!ENTITY zotero.integration.prefs.automaticJournalAbbeviations.caption "MEDLINE journal abbreviations will be automatically generated using journal titles. The “Journal Abbr” field will be ignored.">
|
<!ENTITY zotero.integration.prefs.automaticJournalAbbeviations.caption "MEDLINE journal abbreviations will be automatically generated using journal titles. The “Journal Abbr” field will be ignored.">
|
||||||
|
|
||||||
<!ENTITY zotero.integration.prefs.storeReferences.label "Store references in document">
|
<!ENTITY zotero.integration.prefs.storeReferences.label "A dokumentum tárolt hivatkozásai">
|
||||||
<!ENTITY zotero.integration.prefs.storeReferences.caption "Storing references in your document slightly increases file size, but will allow you to share your document with others without using a Zotero group. Zotero 3.0 or later is required to update documents created with this option.">
|
<!ENTITY zotero.integration.prefs.storeReferences.caption "Storing references in your document slightly increases file size, but will allow you to share your document with others without using a Zotero group. Zotero 3.0 or later is required to update documents created with this option.">
|
||||||
|
|
||||||
<!ENTITY zotero.integration.showEditor.label "Editor megjelenítése">
|
<!ENTITY zotero.integration.showEditor.label "Editor megjelenítése">
|
||||||
|
@ -246,7 +246,7 @@
|
||||||
<!ENTITY zotero.merge.deleted "Deleted">
|
<!ENTITY zotero.merge.deleted "Deleted">
|
||||||
|
|
||||||
<!ENTITY zotero.proxy.recognized.title "Proxy felismerve">
|
<!ENTITY zotero.proxy.recognized.title "Proxy felismerve">
|
||||||
<!ENTITY zotero.proxy.recognized.warning "Only add proxies linked from your library, school, or corporate website">
|
<!ENTITY zotero.proxy.recognized.warning "Csak a könyvtárból, iskolából vagy vállalati weboldalról linkelt proxy-t adható hozzá">
|
||||||
<!ENTITY zotero.proxy.recognized.warning.secondary "Adding other proxies allows malicious sites to masquerade as sites you trust.">
|
<!ENTITY zotero.proxy.recognized.warning.secondary "Adding other proxies allows malicious sites to masquerade as sites you trust.">
|
||||||
<!ENTITY zotero.proxy.recognized.disable.label "Ne irányítsa át automatikusan a kéréseket az előzőleg felismert proxyikra.">
|
<!ENTITY zotero.proxy.recognized.disable.label "Ne irányítsa át automatikusan a kéréseket az előzőleg felismert proxyikra.">
|
||||||
<!ENTITY zotero.proxy.recognized.ignore.label "Elutasít">
|
<!ENTITY zotero.proxy.recognized.ignore.label "Elutasít">
|
||||||
|
@ -274,7 +274,7 @@
|
||||||
<!ENTITY zotero.rtfScan.formatPage.label "Hivatkozás formázása">
|
<!ENTITY zotero.rtfScan.formatPage.label "Hivatkozás formázása">
|
||||||
<!ENTITY zotero.rtfScan.formatPage.description "A Zotero feldolgozza és formázza az RTF fájlt. Kérem várjon.">
|
<!ENTITY zotero.rtfScan.formatPage.description "A Zotero feldolgozza és formázza az RTF fájlt. Kérem várjon.">
|
||||||
<!ENTITY zotero.rtfScan.completePage.label "Az RTF átvizsgálása befejeződött">
|
<!ENTITY zotero.rtfScan.completePage.label "Az RTF átvizsgálása befejeződött">
|
||||||
<!ENTITY zotero.rtfScan.completePage.description "Your document has now been scanned and processed. Please ensure that it is formatted correctly.">
|
<!ENTITY zotero.rtfScan.completePage.description "A dokumentum átvizsgálása és feldolgozása megtörtént. Győződjön meg róla, hogy megfelelően van formázva.">
|
||||||
<!ENTITY zotero.rtfScan.inputFile.label "Bemeneti fájl">
|
<!ENTITY zotero.rtfScan.inputFile.label "Bemeneti fájl">
|
||||||
<!ENTITY zotero.rtfScan.outputFile.label "Kimeneti fájl">
|
<!ENTITY zotero.rtfScan.outputFile.label "Kimeneti fájl">
|
||||||
|
|
||||||
|
@ -282,5 +282,11 @@
|
||||||
<!ENTITY zotero.file.noneSelected.label "Nincs fájl kiválasztva">
|
<!ENTITY zotero.file.noneSelected.label "Nincs fájl kiválasztva">
|
||||||
|
|
||||||
<!ENTITY zotero.downloadManager.label "Mentés Zotero-ba">
|
<!ENTITY zotero.downloadManager.label "Mentés Zotero-ba">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Attachments cannot be saved to the currently selected library. This item will be saved to your library instead.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "A csatolmányok nem menthetőek a jelenleg kiválasztott könyvtárba. Ez az elem a saját könyvtárába lesz mentve.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "Ahhoz, hogy ezt a tulajdonságot használja, először telepítenie kell a PDF tools-t a Zotero beállítások keresőpaneljén.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Cím:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ general.errorHasOccurred=Hiba lépett fel.
|
||||||
general.unknownErrorOccurred=Ismeretlen hiba.
|
general.unknownErrorOccurred=Ismeretlen hiba.
|
||||||
general.invalidResponseServer=Érvénytelen válasz a szervertől.
|
general.invalidResponseServer=Érvénytelen válasz a szervertől.
|
||||||
general.tryAgainLater=Kérem, próbálkozzon újra néhány perc múlva.
|
general.tryAgainLater=Kérem, próbálkozzon újra néhány perc múlva.
|
||||||
general.serverError=The server returned an error. Please try again.
|
general.serverError=A szerver hibába fordult. Kérem próbálja újra.
|
||||||
general.restartFirefox=Indítsa újra a Firefoxot.
|
general.restartFirefox=Indítsa újra a Firefoxot.
|
||||||
general.restartFirefoxAndTryAgain=Indítsa újra a Firefoxot és próbálja meg újra.
|
general.restartFirefoxAndTryAgain=Indítsa újra a Firefoxot és próbálja meg újra.
|
||||||
general.checkForUpdate=Frissítések keresése
|
general.checkForUpdate=Frissítések keresése
|
||||||
|
@ -40,7 +40,7 @@ general.character.singular=karakter
|
||||||
general.character.plural=karakter
|
general.character.plural=karakter
|
||||||
general.create=Új
|
general.create=Új
|
||||||
general.delete=Törlés
|
general.delete=Törlés
|
||||||
general.moreInformation=More Information
|
general.moreInformation=További információ
|
||||||
general.seeForMoreInformation=A %S bővebb információkat tartalmaz.
|
general.seeForMoreInformation=A %S bővebb információkat tartalmaz.
|
||||||
general.enable=Bekapcsolás
|
general.enable=Bekapcsolás
|
||||||
general.disable=Kikapcsolás
|
general.disable=Kikapcsolás
|
||||||
|
@ -83,13 +83,13 @@ errorReport.reportErrors=Hibák jelentése...
|
||||||
errorReport.reportInstructions=A hiba jelentéséhez válassza a Műveletek menü "%S" menüpontját.
|
errorReport.reportInstructions=A hiba jelentéséhez válassza a Műveletek menü "%S" menüpontját.
|
||||||
errorReport.followingReportWillBeSubmitted=A következő jelentés kerül elküldésre:
|
errorReport.followingReportWillBeSubmitted=A következő jelentés kerül elküldésre:
|
||||||
errorReport.noErrorsLogged=A %S indítása óta nem jelentkeztek hibák.
|
errorReport.noErrorsLogged=A %S indítása óta nem jelentkeztek hibák.
|
||||||
errorReport.advanceMessage=Press %S to send the report to the Zotero developers.
|
errorReport.advanceMessage=Nyomja meg a %S gombot, hogy elküldje a jelentést a Zotero fejlesztőinek.
|
||||||
errorReport.stepsToReproduce=Hiba reprodukálásához szükséges lépések:
|
errorReport.stepsToReproduce=Hiba reprodukálásához szükséges lépések:
|
||||||
errorReport.expectedResult=Elvárt működés:
|
errorReport.expectedResult=Elvárt működés:
|
||||||
errorReport.actualResult=Tényleges működés:
|
errorReport.actualResult=Tényleges működés:
|
||||||
errorReport.noNetworkConnection=Nincs hálózati kapcsolat
|
errorReport.noNetworkConnection=Nincs hálózati kapcsolat
|
||||||
errorReport.invalidResponseRepository=Invalid response from repository
|
errorReport.invalidResponseRepository=Érvénytelen válasz a tárolótól
|
||||||
errorReport.repoCannotBeContacted=Repository cannot be contacted
|
errorReport.repoCannotBeContacted=Nem lehet kapcsolatba lépni a tárolóval
|
||||||
|
|
||||||
|
|
||||||
attachmentBasePath.selectDir=Choose Base Directory
|
attachmentBasePath.selectDir=Choose Base Directory
|
||||||
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
||||||
pane.items.loading=Elemek listájának betöltése...
|
pane.items.loading=Elemek listájának betöltése...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=More Columns
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Link csatolása az URI-hez
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Adja meg az URI-t:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Áthelyezés a Kukába
|
pane.items.trash.title=Áthelyezés a Kukába
|
||||||
pane.items.trash=A Kukába helyezés megerősítése?
|
pane.items.trash=A Kukába helyezés megerősítése?
|
||||||
pane.items.trash.multiple=A Kukába helyezés megerősítése?
|
pane.items.trash.multiple=A Kukába helyezés megerősítése?
|
||||||
|
@ -473,8 +473,8 @@ fileTypes.document=Dokumentum
|
||||||
save.attachment=Pillanatfelvétel mentése...
|
save.attachment=Pillanatfelvétel mentése...
|
||||||
save.link=Hivatkozás mentése...
|
save.link=Hivatkozás mentése...
|
||||||
save.link.error=Hiba történt a link mentésekor.
|
save.link.error=Hiba történt a link mentésekor.
|
||||||
save.error.cannotMakeChangesToCollection=You cannot make changes to the currently selected collection.
|
save.error.cannotMakeChangesToCollection=Nem módosíthatja a jelenleg kiválasztott gyűjteményt.
|
||||||
save.error.cannotAddFilesToCollection=You cannot add files to the currently selected collection.
|
save.error.cannotAddFilesToCollection=Nem adhat hozzá fájlokat a jelenleg kiválasztott gyűjteményhez.
|
||||||
|
|
||||||
ingester.saveToZotero=Mentés a Zoteroba
|
ingester.saveToZotero=Mentés a Zoteroba
|
||||||
ingester.saveToZoteroUsing=Mentés Zotero-ba "%S" használatával
|
ingester.saveToZoteroUsing=Mentés Zotero-ba "%S" használatával
|
||||||
|
@ -506,12 +506,12 @@ db.dbRestoreFailed=A Zotero adatbázis hibás, és az adatok automatikus vissza
|
||||||
db.integrityCheck.passed=Nincsenek hibák az adatbázisban.
|
db.integrityCheck.passed=Nincsenek hibák az adatbázisban.
|
||||||
db.integrityCheck.failed=Hibák a Zotero adatbázisban!
|
db.integrityCheck.failed=Hibák a Zotero adatbázisban!
|
||||||
db.integrityCheck.dbRepairTool=Használhatja az adatbázsi-helyerállító eszközt a következő oldalon https://www.zotero.org/utils/dbfix/ hogy megkísérelje kijavítani a hibákat.
|
db.integrityCheck.dbRepairTool=Használhatja az adatbázsi-helyerállító eszközt a következő oldalon https://www.zotero.org/utils/dbfix/ hogy megkísérelje kijavítani a hibákat.
|
||||||
db.integrityCheck.repairAttempt=Zotero can attempt to correct these errors.
|
db.integrityCheck.repairAttempt=A Zotero megpróbálhatja kijavítani ezeket a hibákat
|
||||||
db.integrityCheck.appRestartNeeded=%S will need to be restarted.
|
db.integrityCheck.appRestartNeeded=%S-t újra kell indítani.
|
||||||
db.integrityCheck.fixAndRestart=Hibák javítása és újraindítás %S
|
db.integrityCheck.fixAndRestart=Hibák javítása és újraindítás %S
|
||||||
db.integrityCheck.errorsFixed=The errors in your Zotero database have been corrected.
|
db.integrityCheck.errorsFixed=Az ön Zotero adatbázisának hibái javításra kerültek
|
||||||
db.integrityCheck.errorsNotFixed=Zotero was unable to correct all the errors in your database.
|
db.integrityCheck.errorsNotFixed=A Zotero nem tudta kijavítani az összes hibát az ön adatbázisában.
|
||||||
db.integrityCheck.reportInForums=You can report this problem in the Zotero Forums.
|
db.integrityCheck.reportInForums=Bejelentheti a problémát a Zotero Fórumain.
|
||||||
|
|
||||||
zotero.preferences.update.updated=Frissítve
|
zotero.preferences.update.updated=Frissítve
|
||||||
zotero.preferences.update.upToDate=Nincs frissítés
|
zotero.preferences.update.upToDate=Nincs frissítés
|
||||||
|
@ -569,8 +569,8 @@ zotero.preferences.advanced.resetTranslators.changesLost=Az új vagy módosítot
|
||||||
zotero.preferences.advanced.resetStyles=Stílusok visszaállítása
|
zotero.preferences.advanced.resetStyles=Stílusok visszaállítása
|
||||||
zotero.preferences.advanced.resetStyles.changesLost=Az új vagy módosított stílusok elvesznek.
|
zotero.preferences.advanced.resetStyles.changesLost=Az új vagy módosított stílusok elvesznek.
|
||||||
|
|
||||||
zotero.preferences.advanced.debug.title=Debug Output Submitted
|
zotero.preferences.advanced.debug.title=A hibakeresés eredménye elküldve
|
||||||
zotero.preferences.advanced.debug.sent=Debug output has been sent to the Zotero server.\n\nThe Debug ID is D%S.
|
zotero.preferences.advanced.debug.sent=A hibakeresés eredménye elküldve a Zotero szervernek\n\nA hibaazonosító D%S.
|
||||||
zotero.preferences.advanced.debug.error=An error occurred sending debug output.
|
zotero.preferences.advanced.debug.error=An error occurred sending debug output.
|
||||||
|
|
||||||
dragAndDrop.existingFiles=Az alábbi fájlok már léteznek a célmappában, ezért nem kerültek bemásolásra.
|
dragAndDrop.existingFiles=Az alábbi fájlok már léteznek a célmappában, ezért nem kerültek bemásolásra.
|
||||||
|
@ -582,7 +582,7 @@ fileInterface.import=Importálás
|
||||||
fileInterface.export=Exportálás
|
fileInterface.export=Exportálás
|
||||||
fileInterface.exportedItems=Exportált elemek
|
fileInterface.exportedItems=Exportált elemek
|
||||||
fileInterface.imported=Importálva
|
fileInterface.imported=Importálva
|
||||||
fileInterface.unsupportedFormat=The selected file is not in a supported format.
|
fileInterface.unsupportedFormat=A kiválasztott fájl formátuma nem támogatott.
|
||||||
fileInterface.viewSupportedFormats=Támogatott formátumok megtekintése…
|
fileInterface.viewSupportedFormats=Támogatott formátumok megtekintése…
|
||||||
fileInterface.untitledBibliography=Cím nélküli bibliográfia
|
fileInterface.untitledBibliography=Cím nélküli bibliográfia
|
||||||
fileInterface.bibliographyHTMLTitle=Bibliográfia
|
fileInterface.bibliographyHTMLTitle=Bibliográfia
|
||||||
|
@ -725,7 +725,7 @@ integration.upgradeWarning=Your document must be permanently upgraded in order t
|
||||||
integration.error.newerDocumentVersion=Your document was created with a newer version of Zotero (%1$S) than the currently installed version (%1$S). Please upgrade Zotero before editing this document.
|
integration.error.newerDocumentVersion=Your document was created with a newer version of Zotero (%1$S) than the currently installed version (%1$S). Please upgrade Zotero before editing this document.
|
||||||
integration.corruptField=The Zotero field code corresponding to this citation, which tells Zotero which item in your library this citation represents, has been corrupted. Would you like to reselect the item?
|
integration.corruptField=The Zotero field code corresponding to this citation, which tells Zotero which item in your library this citation represents, has been corrupted. Would you like to reselect the item?
|
||||||
integration.corruptField.description=Clicking "No" will delete the field codes for citations containing this item, preserving the citation text but potentially deleting it from your bibliography.
|
integration.corruptField.description=Clicking "No" will delete the field codes for citations containing this item, preserving the citation text but potentially deleting it from your bibliography.
|
||||||
integration.corruptBibliography=The Zotero field code for your bibliography is corrupted. Should Zotero clear this field code and generate a new bibliography?
|
integration.corruptBibliography=A bibliográfiájának Zotero mezőkódja hibás. Szeretné ha a Zotero javítaná a mezőkódot és generálna egy új bibliográfiát?
|
||||||
integration.corruptBibliography.description=All items cited in the text will appear in the new bibliography, but modifications you made in the "Edit Bibliography" dialog will be lost.
|
integration.corruptBibliography.description=All items cited in the text will appear in the new bibliography, but modifications you made in the "Edit Bibliography" dialog will be lost.
|
||||||
integration.citationChanged=Módosította ezt a hivatkozást, amióta a Zotero generálta. Megtartja a módosításokat és megakadályozza a jövőbeli frissítésüket?
|
integration.citationChanged=Módosította ezt a hivatkozást, amióta a Zotero generálta. Megtartja a módosításokat és megakadályozza a jövőbeli frissítésüket?
|
||||||
integration.citationChanged.description=Kattintson az „Igen” gombra, ha nem akarja, hogy a Zotero frissítse ezt a hivatkozást további hivatkozások hozzáadásakor, stílusváltáskor, vagy az elem módosításakor. Ha a „Nem”-re kattint elvesznek a módosításai.
|
integration.citationChanged.description=Kattintson az „Igen” gombra, ha nem akarja, hogy a Zotero frissítse ezt a hivatkozást további hivatkozások hozzáadásakor, stílusváltáskor, vagy az elem módosításakor. Ha a „Nem”-re kattint elvesznek a módosításai.
|
||||||
|
|
|
@ -284,3 +284,9 @@
|
||||||
<!ENTITY zotero.downloadManager.label "Simpan ke Zotero">
|
<!ENTITY zotero.downloadManager.label "Simpan ke Zotero">
|
||||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Lampiran tidak dapat disimpan ke dalam perpustakaan yang saat ini terpilih. Sebaliknya, item ini akan disimpan ke dalam perpustakaan Anda.">
|
<!ENTITY zotero.downloadManager.saveToLibrary.description "Lampiran tidak dapat disimpan ke dalam perpustakaan yang saat ini terpilih. Sebaliknya, item ini akan disimpan ke dalam perpustakaan Anda.">
|
||||||
<!ENTITY zotero.downloadManager.noPDFTools.description "Untuk menggunakan fitur ini, Anda harus menginstal aplikasi PDF dalam preferensi Zotero terlebih dahulu.">
|
<!ENTITY zotero.downloadManager.noPDFTools.description "Untuk menggunakan fitur ini, Anda harus menginstal aplikasi PDF dalam preferensi Zotero terlebih dahulu.">
|
||||||
|
|
||||||
|
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||||
|
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||||
|
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -195,8 +195,8 @@ tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
|
||||||
pane.items.loading=Memuat daftar item...
|
pane.items.loading=Memuat daftar item...
|
||||||
pane.items.columnChooser.moreColumns=More Columns
|
pane.items.columnChooser.moreColumns=More Columns
|
||||||
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
pane.items.columnChooser.secondarySort=Secondary Sort (%S)
|
||||||
pane.items.attach.link.uri.title=Attach Link to URI
|
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
|
||||||
pane.items.attach.link.uri=Enter a URI:
|
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
|
||||||
pane.items.trash.title=Pindahkan ke Keranjang Sampah
|
pane.items.trash.title=Pindahkan ke Keranjang Sampah
|
||||||
pane.items.trash=Apakah Anda yakin ingin memindahkan item terpilih ke Keranjang Sampah?
|
pane.items.trash=Apakah Anda yakin ingin memindahkan item terpilih ke Keranjang Sampah?
|
||||||
pane.items.trash.multiple=Apakah Anda yakin ingin memindahkan item-item terpilih ke Keranjang Sampah?
|
pane.items.trash.multiple=Apakah Anda yakin ingin memindahkan item-item terpilih ke Keranjang Sampah?
|
||||||
|
|
|
@ -54,9 +54,9 @@
|
||||||
<!ENTITY zotero.preferences.sync.syncServer "Zotero samhæfingarþjónn">
|
<!ENTITY zotero.preferences.sync.syncServer "Zotero samhæfingarþjónn">
|
||||||
<!ENTITY zotero.preferences.sync.createAccount "Nýr notandi">
|
<!ENTITY zotero.preferences.sync.createAccount "Nýr notandi">
|
||||||
<!ENTITY zotero.preferences.sync.lostPassword "Týnt lykilorð?">
|
<!ENTITY zotero.preferences.sync.lostPassword "Týnt lykilorð?">
|
||||||
<!ENTITY zotero.preferences.sync.syncAutomatically "Sjamhæfa sjálfkrafa">
|
<!ENTITY zotero.preferences.sync.syncAutomatically "Samhæfa sjálfkrafa">
|
||||||
<!ENTITY zotero.preferences.sync.syncFullTextContent "Sync full-text content">
|
<!ENTITY zotero.preferences.sync.syncFullTextContent "Samhæfa innihald skjala">
|
||||||
<!ENTITY zotero.preferences.sync.syncFullTextContent.desc "Zotero can sync the full-text content of files in your Zotero libraries with zotero.org and other linked devices, allowing you to easily search for your files wherever you are. The full-text content of your files will not be shared publicly.">
|
<!ENTITY zotero.preferences.sync.syncFullTextContent.desc "Zotero getur samhæft innihald skjala í Zotero safninu þínu við zotero.org og önnur nettengd tæki sem gerir þér kleift að leita að þínum skjölum hvar sem þú ert. Innihaldi skjalanna er ekki deilt með öðrum.">
|
||||||
<!ENTITY zotero.preferences.sync.about "Um samhæfingu">
|
<!ENTITY zotero.preferences.sync.about "Um samhæfingu">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing "Samhæfing skráa">
|
<!ENTITY zotero.preferences.sync.fileSyncing "Samhæfing skráa">
|
||||||
<!ENTITY zotero.preferences.sync.fileSyncing.url "slóð:">
|
<!ENTITY zotero.preferences.sync.fileSyncing.url "slóð:">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!ENTITY zotero.search.name "Nafn:">
|
<!ENTITY zotero.search.name "Nafn:">
|
||||||
|
|
||||||
<!ENTITY zotero.search.searchInLibrary "Search in library:">
|
<!ENTITY zotero.search.searchInLibrary "Leita í safni:">
|
||||||
|
|
||||||
<!ENTITY zotero.search.joinMode.prefix "Leita að">
|
<!ENTITY zotero.search.joinMode.prefix "Leita að">
|
||||||
<!ENTITY zotero.search.joinMode.any "einhverju">
|
<!ENTITY zotero.search.joinMode.any "einhverju">
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
<!ENTITY zotero.search.textModes.phrase "Setningaliður">
|
<!ENTITY zotero.search.textModes.phrase "Setningaliður">
|
||||||
<!ENTITY zotero.search.textModes.phraseBinary "Setningaliður (með stafrænum skrám)">
|
<!ENTITY zotero.search.textModes.phraseBinary "Setningaliður (með stafrænum skrám)">
|
||||||
<!ENTITY zotero.search.textModes.regexp "Regexp">
|
<!ENTITY zotero.search.textModes.regexp "Regexp">
|
||||||
<!ENTITY zotero.search.textModes.regexpCS "Regexp (case-sensitive)">
|
<!ENTITY zotero.search.textModes.regexpCS "Leitartexti (næmur fyrir há- og lágstöfum)">
|
||||||
|
|
||||||
<!ENTITY zotero.search.date.units.days "dagar">
|
<!ENTITY zotero.search.date.units.days "dagar">
|
||||||
<!ENTITY zotero.search.date.units.months "mánuðir">
|
<!ENTITY zotero.search.date.units.months "mánuðir">
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user