Merge branch '4.0' into api_syncing
|
@ -107,6 +107,16 @@
|
|||
margin-left: 7px;
|
||||
}
|
||||
|
||||
@media (min-resolution: 1.5dppx) {
|
||||
#zotero-pane .toolbarbutton-icon {
|
||||
max-width: 28px;
|
||||
}
|
||||
|
||||
#zotero-tb-sync-error .toolbarbutton-icon {
|
||||
width: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.zotero-tb-button, .zotero-tb-button:first-child, .zotero-tb-button:last-child {
|
||||
-moz-margin-start: 0 !important;
|
||||
-moz-margin-end: 3px !important;
|
||||
|
@ -169,7 +179,7 @@
|
|||
background-size: 14px;
|
||||
}
|
||||
|
||||
@media (min-resolution: 2dppx) {
|
||||
@media (min-resolution: 1.5dppx) {
|
||||
#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;
|
||||
|
@ -467,6 +477,16 @@ treechildren::-moz-tree-image {
|
|||
list-style-image: url('chrome://zotero/skin/mac/toolbar-note-add.png');
|
||||
}
|
||||
|
||||
@media (min-resolution: 1.5dppx) {
|
||||
#zotero-tb-advanced-search {
|
||||
list-style-image: url('chrome://zotero/skin/mac/toolbar-advanced-search@2x.png');
|
||||
}
|
||||
|
||||
#zotero-tb-note-add {
|
||||
list-style-image: url('chrome://zotero/skin/mac/toolbar-note-add@2x.png');
|
||||
}
|
||||
}
|
||||
|
||||
#zotero-tb-actions-menu
|
||||
{
|
||||
list-style-image: url('chrome://zotero/skin/mac/cog.png');
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
/*
|
||||
/*
|
||||
As of Fx36, the built-in styles don't properly handle a menu-button within combined buttons.
|
||||
*/
|
||||
#zotero-toolbar-main-button-single[cui-areatype="toolbar"] .toolbarbutton-icon,
|
||||
#zotero-toolbar-save-button-single[cui-areatype="toolbar"] .toolbarbutton-icon {
|
||||
width: 32px;
|
||||
}
|
||||
|
||||
#zotero-toolbar-main-button[cui-areatype="toolbar"] .toolbarbutton-icon,
|
||||
#zotero-toolbar-save-button[cui-areatype="toolbar"] .toolbarbutton-icon {
|
||||
width: 28px;
|
||||
}
|
||||
|
||||
#zotero-toolbar-main-button[cui-areatype="toolbar"] {
|
||||
margin-right: -1px;
|
||||
}
|
||||
|
||||
#zotero-toolbar-main-button[cui-areatype="toolbar"] .toolbarbutton-icon {
|
||||
width: 28px !important;
|
||||
margin-left: 2px;
|
||||
margin-right: -3px;
|
||||
padding-left: 5px !important;
|
||||
|
@ -26,16 +35,6 @@
|
|||
padding-right: 6px !important;
|
||||
}
|
||||
|
||||
#zotero-toolbar-save-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker {
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
#zotero-toolbar-save-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker .dropmarker-icon {
|
||||
padding-left: 14px !important;
|
||||
padding-right: 3px !important;
|
||||
}
|
||||
|
||||
#zotero-toolbar-save-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker {
|
||||
margin-top: 6px;
|
||||
margin-bottom: 6px;
|
||||
|
@ -47,6 +46,16 @@
|
|||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#zotero-toolbar-save-button[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker .dropmarker-icon {
|
||||
padding-left: 14px !important;
|
||||
padding-right: 3px !important;
|
||||
}
|
||||
|
||||
#zotero-toolbar-save-button-single[cui-areatype="toolbar"] > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
#zotero-toolbar-buttons[cui-areatype="toolbar"] > separator {
|
||||
/* Copied from .toolbarbutton-menubutton-dropmarker::before */
|
||||
display: -moz-box;
|
||||
|
@ -86,13 +95,19 @@
|
|||
box-shadow: var(--toolbarbutton-active-boxshadow);
|
||||
transition-duration: 10ms;
|
||||
}
|
||||
|
||||
#zotero-toolbar-main-button-single[cui-areatype="toolbar"] .toolbarbutton-icon {
|
||||
width: 32px;
|
||||
}
|
||||
/* End toolbar buttons */
|
||||
|
||||
|
||||
@media (min-resolution: 1.5dppx) {
|
||||
#zotero-toolbar .toolbarbutton-icon {
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
#zotero-tb-sync > .toolbarbutton-icon {
|
||||
width: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.zotero-tb-button:not([type=menu]) {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
|
Before Width: | Height: | Size: 537 B |
Before Width: | Height: | Size: 679 B |
|
@ -1,12 +1,24 @@
|
|||
/*
|
||||
/*
|
||||
As of Fx36, the built-in styles don't properly handle a menu-button within combined buttons.
|
||||
*/
|
||||
#zotero-toolbar-main-button-single[cui-areatype="toolbar"] .toolbarbutton-icon {
|
||||
width: 32px;
|
||||
}
|
||||
|
||||
#zotero-toolbar-save-button-single[cui-areatype="toolbar"] .toolbarbutton-icon {
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
#zotero-toolbar-main-button[cui-areatype="toolbar"] .toolbarbutton-icon,
|
||||
#zotero-toolbar-save-button[cui-areatype="toolbar"] .toolbarbutton-icon {
|
||||
width: 28px;
|
||||
}
|
||||
|
||||
#zotero-toolbar-main-button[cui-areatype="toolbar"] {
|
||||
margin-right: -1px !important;
|
||||
}
|
||||
|
||||
#zotero-toolbar-main-button[cui-areatype="toolbar"] .toolbarbutton-icon {
|
||||
width: 28px;
|
||||
margin-left: 2px;
|
||||
margin-right: -1px;
|
||||
padding-left: 5px !important;
|
||||
|
@ -94,12 +106,18 @@
|
|||
#zotero-toolbar-save-button[cui-areatype="toolbar"] > menupopup {
|
||||
margin-top: -5px;
|
||||
}
|
||||
|
||||
#zotero-toolbar-main-button-single[cui-areatype="toolbar"] .toolbarbutton-icon {
|
||||
width: 32px;
|
||||
}
|
||||
/* End toolbar buttons */
|
||||
|
||||
@media (min-resolution: 1.5dppx) {
|
||||
#zotero-toolbar .toolbarbutton-icon {
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
#zotero-tb-sync > .toolbarbutton-icon {
|
||||
width: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
#zotero-tb-search-menu-button {
|
||||
margin: 0 -1px 0 -4px;
|
||||
border: 0;
|
||||
|
|
Before Width: | Height: | Size: 537 B |
Before Width: | Height: | Size: 679 B |
|
@ -61,6 +61,7 @@
|
|||
<label class="zotero-text-link" href="http://p.yusukekamiyamane.com/" value="Fugue icons (by Yusuke Kamiyamane)"/>
|
||||
<label class="zotero-text-link" href="http://www.davidashen.net/rnv.html" value="RNV (CSL validation)"/>
|
||||
<label class="zotero-text-link" href="http://documentup.com/kriskowal/q/" value="Q (by Kristopher Michael Kowal)"/>
|
||||
<label class="zotero-text-link" href="https://codefisher.org/pastel-svg/" value="Pastel SVG icons (by Michael Buckley)"/>
|
||||
<label class="zotero-text-link" href="http://www.famfamfam.com/lab/icons/silk/" value="Silk icons (by Mark James)"/>
|
||||
<label class="zotero-text-link" href="http://simile.mit.edu/timeline/" value="SIMILE Project (Timeline)"/>
|
||||
<label class="zotero-text-link" href="http://www.w3.org/2005/ajar/tab" value="Tabulator (RDF parser)"/>
|
||||
|
|
|
@ -63,16 +63,7 @@ var ZoteroAdvancedSearch = new function() {
|
|||
isSearchMode: function() { return true; },
|
||||
getItems: Zotero.Promise.coroutine(function* () {
|
||||
var search = yield _searchBox.search.clone();
|
||||
|
||||
// Hack to create a condition for the search's library --
|
||||
// this logic should really go in the search itself instead of here
|
||||
// and in collectionTreeView.js
|
||||
yield search.loadPrimaryData();
|
||||
var conditions = search.getSearchConditions();
|
||||
if (!conditions.some(function (condition) condition.condition == 'libraryID')) {
|
||||
yield search.addCondition('libraryID', 'is', _searchBox.search.libraryID);
|
||||
}
|
||||
|
||||
search.libraryID = _libraryID;
|
||||
var ids = yield search.search();
|
||||
return Zotero.Items.get(ids);
|
||||
}),
|
||||
|
|
|
@ -124,6 +124,8 @@
|
|||
<property name="rightpane" onget="return this._rightpane"/>
|
||||
<property name="mergepane" onget="return this._mergepane"/>
|
||||
|
||||
<property name="onSelectionChange"/>
|
||||
|
||||
<field name="_leftpane"/>
|
||||
<field name="_rightpane"/>
|
||||
<field name="_mergepane"/>
|
||||
|
@ -397,6 +399,10 @@
|
|||
else {
|
||||
mergepane.ref = pane.original;
|
||||
}
|
||||
|
||||
if (mergegroup.onSelectionChange) {
|
||||
mergegroup.onSelectionChange();
|
||||
}
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
|
|
|
@ -898,7 +898,7 @@ Zotero_Browser.Tab.prototype.getCaptureIcon = function (hiDPI) {
|
|||
case this.CAPTURE_STATE_TRANSLATABLE:
|
||||
var itemType = this.page.translators[0].itemType;
|
||||
return (itemType === "multiple"
|
||||
? "chrome://zotero/skin/treesource-collection.png"
|
||||
? "chrome://zotero/skin/treesource-collection" + suffix + ".png"
|
||||
: Zotero.ItemTypes.getImageSrc(itemType));
|
||||
|
||||
// TODO: Show icons for images, PDFs, etc.?
|
||||
|
|
|
@ -318,21 +318,21 @@ var Zotero_QuickFormat = new function () {
|
|||
Zotero.debug("Searched cited items");
|
||||
}
|
||||
|
||||
_updateItemList(citedItems, citedItemsMatchingSearch, searchResultIDs, isAsync);
|
||||
_updateItemList(citedItems, citedItemsMatchingSearch, str, searchResultIDs, isAsync);
|
||||
}).done();
|
||||
|
||||
if(!completed) {
|
||||
// We are going to have to wait until items have been retrieved from the document.
|
||||
// Until then, show item list without cited items.
|
||||
Zotero.debug("Getting cited items asynchronously");
|
||||
_updateItemList(false, false, searchResultIDs);
|
||||
_updateItemList(false, false, str, searchResultIDs);
|
||||
isAsync = true;
|
||||
} else {
|
||||
Zotero.debug("Got cited items synchronously");
|
||||
}
|
||||
} else {
|
||||
// No search conditions, so just clear the box
|
||||
_updateItemList([], [], []);
|
||||
_updateItemList([], [], "", []);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -353,7 +353,7 @@ var Zotero_QuickFormat = new function () {
|
|||
/**
|
||||
* Updates the item list
|
||||
*/
|
||||
function _updateItemList(citedItems, citedItemsMatchingSearch, searchResultIDs, preserveSelection) {
|
||||
function _updateItemList(citedItems, citedItemsMatchingSearch, searchString, searchResultIDs, preserveSelection) {
|
||||
var selectedIndex = 1, previousItemID;
|
||||
|
||||
// Do this so we can preserve the selected item after cited items have been loaded
|
||||
|
@ -411,7 +411,25 @@ var Zotero_QuickFormat = new function () {
|
|||
if(searchResultIDs.length && (!citedItemsMatchingSearch || citedItemsMatchingSearch.length < 50)) {
|
||||
var items = Zotero.Items.get(searchResultIDs);
|
||||
|
||||
searchString = searchString.toLowerCase();
|
||||
var collation = Zotero.getLocaleCollation();
|
||||
|
||||
items.sort(function _itemSort(a, b) {
|
||||
var firstCreatorA = a.firstCreator, firstCreatorB = b.firstCreator;
|
||||
|
||||
// Favor left-bound name matches (e.g., "Baum" < "Appelbaum"),
|
||||
// using last name of first author
|
||||
if (firstCreatorA && firstCreatorB) {
|
||||
let caStartsWith = firstCreatorA.toLowerCase().indexOf(searchString) == 0;
|
||||
let cbStartsWith = firstCreatorB.toLowerCase().indexOf(searchString) == 0;
|
||||
if (caStartsWith && !cbStartsWith) {
|
||||
return -1;
|
||||
}
|
||||
else if (!caStartsWith && cbStartsWith) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
var libA = a.libraryID, libB = b.libraryID;
|
||||
if(libA !== libB) {
|
||||
// Sort by number of cites for library
|
||||
|
@ -430,12 +448,12 @@ var Zotero_QuickFormat = new function () {
|
|||
}
|
||||
|
||||
// Sort by last name of first author
|
||||
var creatorsA = a.getCreators(), creatorsB = b.getCreators(),
|
||||
caExists = creatorsA.length ? 1 : 0, cbExists = creatorsB.length ? 1 : 0;
|
||||
if(caExists !== cbExists) {
|
||||
return cbExists-caExists;
|
||||
} else if(caExists) {
|
||||
return creatorsA[0].ref.lastName.localeCompare(creatorsB[0].ref.lastName);
|
||||
if (firstCreatorA !== "" && firstCreatorB === "") {
|
||||
return -1;
|
||||
} else if (firstCreatorA === "" && firstCreatorB !== "") {
|
||||
return 1
|
||||
} else if (firstCreatorA) {
|
||||
return collation.compareString(1, firstCreatorA, firstCreatorB);
|
||||
}
|
||||
|
||||
// Sort by date
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
***** END LICENSE BLOCK *****
|
||||
-->
|
||||
<?xml-stylesheet href="chrome://zotero/skin/itemPane.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://zotero-platform/content/itemPane.css" type="text/css"?>
|
||||
|
||||
<!DOCTYPE window SYSTEM "chrome://zotero/locale/zotero.dtd">
|
||||
|
||||
|
|
|
@ -62,6 +62,7 @@ var Zotero_Merge_Window = new function () {
|
|||
}
|
||||
|
||||
_mergeGroup.type = _io.dataIn.type;
|
||||
_mergeGroup.onSelectionChange = _updateResolveAllCheckbox;
|
||||
|
||||
switch (_mergeGroup.type) {
|
||||
case 'item':
|
||||
|
@ -78,6 +79,8 @@ var Zotero_Merge_Window = new function () {
|
|||
_mergeGroup.rightCaption = _io.dataIn.captions[1];
|
||||
_mergeGroup.mergeCaption = _io.dataIn.captions[2];
|
||||
|
||||
_resolveAllCheckbox = document.getElementById('resolve-all');
|
||||
|
||||
_numObjects = document.getElementById('zotero-merge-num-objects');
|
||||
document.getElementById('zotero-merge-total-objects').value = _objects.length;
|
||||
|
||||
|
@ -101,8 +104,15 @@ var Zotero_Merge_Window = new function () {
|
|||
|
||||
// Restore previously merged object into merge pane
|
||||
_mergeGroup.merge = _merged[_pos].ref;
|
||||
_mergeGroup.leftpane.removeAttribute("selected");
|
||||
_mergeGroup.rightpane.removeAttribute("selected");
|
||||
if (_merged[_pos].id == _mergeGroup.left.id) {
|
||||
_mergeGroup.leftpane.setAttribute("selected", "true");
|
||||
_mergeGroup.rightpane.removeAttribute("selected");
|
||||
}
|
||||
else {
|
||||
_mergeGroup.leftpane.removeAttribute("selected");
|
||||
_mergeGroup.rightpane.setAttribute("selected", "true");
|
||||
}
|
||||
_updateResolveAllCheckbox();
|
||||
|
||||
if (_mergeGroup.type == 'item') {
|
||||
_updateChangedCreators();
|
||||
|
@ -125,7 +135,7 @@ var Zotero_Merge_Window = new function () {
|
|||
|
||||
|
||||
function onNext() {
|
||||
if (_pos + 1 == _objects.length) {
|
||||
if (_pos + 1 == _objects.length || _resolveAllCheckbox.checked) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -160,43 +170,17 @@ var Zotero_Merge_Window = new function () {
|
|||
return;
|
||||
}
|
||||
|
||||
_updateResolveAllCheckbox();
|
||||
|
||||
if (_mergeGroup.type == 'item') {
|
||||
_updateChangedCreators();
|
||||
}
|
||||
|
||||
// On Windows the buttons don't move when one is hidden
|
||||
if ((_pos + 1) != _objects.length) {
|
||||
var nextButton = _wizard.getButton("next");
|
||||
|
||||
if (Zotero.isMac) {
|
||||
nextButton.setAttribute("hidden", "false");
|
||||
_wizard.getButton("finish").setAttribute("hidden", "true");
|
||||
}
|
||||
else {
|
||||
var buttons = document.getAnonymousElementByAttribute(_wizard, "anonid", "Buttons");
|
||||
var deck = document.getAnonymousElementByAttribute(buttons, "anonid", "WizardButtonDeck");
|
||||
deck.selectedIndex = 1;
|
||||
}
|
||||
|
||||
_setInstructionsString(nextButton.label);
|
||||
if (_isLastConflict()) {
|
||||
_showFinishButton();
|
||||
}
|
||||
// Last object
|
||||
else {
|
||||
var finishButton = _wizard.getButton("finish");
|
||||
|
||||
if (Zotero.isMac) {
|
||||
_wizard.getButton("next").setAttribute("hidden", "true");
|
||||
finishButton.setAttribute("hidden", "false");
|
||||
}
|
||||
// Windows uses a deck to switch between the Next and Finish buttons
|
||||
// TODO: check Linux
|
||||
else {
|
||||
var buttons = document.getAnonymousElementByAttribute(_wizard, "anonid", "Buttons");
|
||||
var deck = document.getAnonymousElementByAttribute(buttons, "anonid", "WizardButtonDeck");
|
||||
deck.selectedIndex = 0;
|
||||
}
|
||||
|
||||
_setInstructionsString(finishButton.label);
|
||||
_showNextButton();
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -204,7 +188,20 @@ var Zotero_Merge_Window = new function () {
|
|||
|
||||
|
||||
function onFinish() {
|
||||
_merged[_pos] = _getCurrentMergeObject();
|
||||
// If using one side for all remaining, update merge object
|
||||
if (!_isLastConflict() && _resolveAllCheckbox.checked) {
|
||||
let useRemote = _mergeGroup.rightpane.getAttribute("selected") == "true";
|
||||
for (let i = _pos; i < _objects.length; i++) {
|
||||
_merged[i] = _getMergeObject(
|
||||
_objects[i][useRemote ? 1 : 0],
|
||||
_objects[i][0],
|
||||
_objects[i][1]
|
||||
);
|
||||
}
|
||||
}
|
||||
else {
|
||||
_merged[_pos] = _getCurrentMergeObject();
|
||||
}
|
||||
|
||||
_io.dataOut = _merged;
|
||||
return true;
|
||||
|
@ -216,21 +213,86 @@ var Zotero_Merge_Window = new function () {
|
|||
}
|
||||
|
||||
|
||||
function _getCurrentMergeObject() {
|
||||
var id = _mergeGroup.merge == 'deleted' ?
|
||||
(_mergeGroup.left == 'deleted'
|
||||
? _mergeGroup.right.id : _mergeGroup.left.id)
|
||||
: _mergeGroup.merge.id;
|
||||
this.onResolveAllChange = function (resolveAll) {
|
||||
if (resolveAll || _isLastConflict()) {
|
||||
_showFinishButton();
|
||||
}
|
||||
else {
|
||||
_showNextButton();
|
||||
}
|
||||
}
|
||||
|
||||
function _updateResolveAllCheckbox() {
|
||||
if (_mergeGroup.rightpane.getAttribute("selected") == 'true') {
|
||||
var label = 'sync.merge.resolveAllRemote';
|
||||
}
|
||||
else {
|
||||
var label = 'sync.merge.resolveAllLocal';
|
||||
}
|
||||
_resolveAllCheckbox.label = Zotero.getString(label);
|
||||
}
|
||||
|
||||
|
||||
function _isLastConflict() {
|
||||
return (_pos + 1) == _objects.length;
|
||||
}
|
||||
|
||||
|
||||
function _showNextButton() {
|
||||
var nextButton = _wizard.getButton("next");
|
||||
|
||||
if (Zotero.isMac) {
|
||||
nextButton.setAttribute("hidden", "false");
|
||||
_wizard.getButton("finish").setAttribute("hidden", "true");
|
||||
}
|
||||
else {
|
||||
var buttons = document.getAnonymousElementByAttribute(_wizard, "anonid", "Buttons");
|
||||
var deck = document.getAnonymousElementByAttribute(buttons, "anonid", "WizardButtonDeck");
|
||||
deck.selectedIndex = 1;
|
||||
}
|
||||
|
||||
_setInstructionsString(nextButton.label);
|
||||
}
|
||||
|
||||
|
||||
function _showFinishButton() {
|
||||
var finishButton = _wizard.getButton("finish");
|
||||
|
||||
if (Zotero.isMac) {
|
||||
_wizard.getButton("next").setAttribute("hidden", "true");
|
||||
finishButton.setAttribute("hidden", "false");
|
||||
}
|
||||
// Windows uses a deck to switch between the Next and Finish buttons
|
||||
// TODO: check Linux
|
||||
else {
|
||||
var buttons = document.getAnonymousElementByAttribute(_wizard, "anonid", "Buttons");
|
||||
var deck = document.getAnonymousElementByAttribute(buttons, "anonid", "WizardButtonDeck");
|
||||
deck.selectedIndex = 0;
|
||||
}
|
||||
|
||||
_setInstructionsString(finishButton.label);
|
||||
}
|
||||
|
||||
|
||||
function _getMergeObject(ref, left, right) {
|
||||
var id = ref == 'deleted'
|
||||
? (left == 'deleted' ? right.id : left.id)
|
||||
: ref.id;
|
||||
|
||||
return {
|
||||
id: id,
|
||||
ref: _mergeGroup.merge,
|
||||
left: _mergeGroup.left,
|
||||
right: _mergeGroup.right
|
||||
ref: ref,
|
||||
left: left,
|
||||
right: right
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
function _getCurrentMergeObject() {
|
||||
return _getMergeObject(_mergeGroup.merge, _mergeGroup.left, _mergeGroup.right);
|
||||
}
|
||||
|
||||
|
||||
// Hack to support creator reconciliation via item view
|
||||
function _updateChangedCreators() {
|
||||
if (_mergeGroup.type != 'item') {
|
||||
|
|
|
@ -48,10 +48,18 @@
|
|||
<description id="zotero-merge-instructions"/>
|
||||
<zoteromergegroup flex="1"/>
|
||||
<separator class="thin"/>
|
||||
<hbox id="zotero-step-count">
|
||||
<label id="zotero-merge-num-objects"/>
|
||||
<label value="&zotero.merge.of;"/>
|
||||
<label id="zotero-merge-total-objects"/>
|
||||
<hbox align="center">
|
||||
<separator orient="vertical" flex="1"/>
|
||||
<hbox>
|
||||
<checkbox id="resolve-all"
|
||||
oncommand="Zotero_Merge_Window.onResolveAllChange(this.checked)"/>
|
||||
</hbox>
|
||||
<separator orient="vertical"/>
|
||||
<hbox id="zotero-step-count">
|
||||
<label id="zotero-merge-num-objects"/>
|
||||
<label value="&zotero.merge.of;"/>
|
||||
<label id="zotero-merge-total-objects"/>
|
||||
</hbox>
|
||||
</hbox>
|
||||
</wizardpage>
|
||||
</wizard>
|
||||
|
|
|
@ -733,9 +733,16 @@ Zotero_Preferences.Debug_Output = {
|
|||
}
|
||||
};
|
||||
try {
|
||||
req.sendAsBinary(data);
|
||||
// Send binary data
|
||||
let numBytes = data.length, ui8Data = new Uint8Array(numBytes);
|
||||
for (let i = 0; i < numBytes; i++) {
|
||||
ui8Data[i] = data.charCodeAt(i) & 0xff;
|
||||
}
|
||||
req.send(ui8Data);
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.debug(e, 1);
|
||||
Components.utils.reportError(e);
|
||||
ps.alert(
|
||||
null,
|
||||
Zotero.getString('general.error'),
|
||||
|
|
|
@ -162,97 +162,135 @@ Zotero_Preferences.Search = {
|
|||
* if a newer version is available
|
||||
*/
|
||||
checkPDFToolsDownloadVersion: function () {
|
||||
var url = Zotero.Fulltext.pdfToolsDownloadBaseURL
|
||||
+ Zotero.platform.replace(' ', '-') + '.latest';
|
||||
var url = Zotero.Fulltext.pdfToolsDownloadBaseURL + 'latest.json';
|
||||
|
||||
// Find latest version for this platform
|
||||
var self = this;
|
||||
var sent = Zotero.HTTP.doGet(url, function (xmlhttp) {
|
||||
try {
|
||||
if (xmlhttp.status == 200) {
|
||||
var converterIsRegistered = Zotero.Fulltext.pdfConverterIsRegistered();
|
||||
var infoIsRegistered = Zotero.Fulltext.pdfInfoIsRegistered();
|
||||
var bothRegistered = converterIsRegistered && infoIsRegistered;
|
||||
|
||||
var converterVersion = xmlhttp.responseText.split(/\s/)[0];
|
||||
var infoVersion = xmlhttp.responseText.split(/\s/)[1];
|
||||
|
||||
var converterVersionAvailable = converterVersion &&
|
||||
(!converterIsRegistered ||
|
||||
Zotero.Fulltext.pdfConverterVersion == 'UNKNOWN' ||
|
||||
converterVersion > Zotero.Fulltext.pdfConverterVersion);
|
||||
var infoVersionAvailable = infoVersion &&
|
||||
(!infoIsRegistered ||
|
||||
Zotero.Fulltext.pdfInfoVersion == 'UNKNOWN' ||
|
||||
infoVersion > Zotero.Fulltext.pdfInfoVersion);
|
||||
var bothAvailable = converterVersionAvailable && infoVersionAvailable;
|
||||
|
||||
/*
|
||||
Zotero.debug(converterIsRegistered);
|
||||
Zotero.debug(infoIsRegistered);
|
||||
Zotero.debug(converterVersion);
|
||||
Zotero.debug(infoVersion);
|
||||
Zotero.debug(Zotero.Fulltext.pdfConverterVersion);
|
||||
Zotero.debug(Zotero.Fulltext.pdfInfoVersion);
|
||||
Zotero.debug(converterVersionAvailable);
|
||||
Zotero.debug(infoVersionAvailable);
|
||||
*/
|
||||
|
||||
// Up to date -- disable update button
|
||||
if (!converterVersionAvailable && !infoVersionAvailable) {
|
||||
var button = document.getElementById('pdftools-update-button');
|
||||
button.setAttribute('label', Zotero.getString('zotero.preferences.update.upToDate'));
|
||||
button.setAttribute('disabled', true);
|
||||
}
|
||||
// New version available -- display update prompt
|
||||
else {
|
||||
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].
|
||||
createInstance(Components.interfaces.nsIPromptService);
|
||||
var buttonFlags = (ps.BUTTON_POS_0) * (ps.BUTTON_TITLE_IS_STRING)
|
||||
+ (ps.BUTTON_POS_1) * (ps.BUTTON_TITLE_CANCEL);
|
||||
|
||||
var msg = Zotero.getString('zotero.preferences.search.pdf.available'
|
||||
+ ((converterIsRegistered || infoIsRegistered) ? 'Updates' : 'Downloads'),
|
||||
[Zotero.platform, 'zotero.org']) + '\n\n';
|
||||
|
||||
if (converterVersionAvailable) {
|
||||
let tvp = Zotero.getString('zotero.preferences.search.pdf.toolVersionPlatform',
|
||||
[Zotero.Fulltext.pdfConverterName, converterVersion]);
|
||||
msg += '- ' + tvp + '\n';
|
||||
}
|
||||
if (infoVersionAvailable) {
|
||||
let tvp = Zotero.getString('zotero.preferences.search.pdf.toolVersionPlatform',
|
||||
[Zotero.Fulltext.pdfInfoName, infoVersion]);
|
||||
msg += '- ' + tvp + '\n';
|
||||
}
|
||||
msg += '\n';
|
||||
msg += Zotero.getString('zotero.preferences.search.pdf.zoteroCanInstallVersion'
|
||||
+ (bothAvailable ? 's' : ''));
|
||||
|
||||
var index = ps.confirmEx(null,
|
||||
converterIsRegistered ?
|
||||
Zotero.getString('general.updateAvailable') : '',
|
||||
msg,
|
||||
buttonFlags,
|
||||
converterIsRegistered ?
|
||||
Zotero.getString('general.upgrade') :
|
||||
Zotero.getString('general.install'),
|
||||
null, null, null, {});
|
||||
|
||||
if (index == 0) {
|
||||
var installVersions = {
|
||||
converter: converterVersionAvailable ?
|
||||
converterVersion : null,
|
||||
info: infoVersionAvailable ?
|
||||
infoVersion : null
|
||||
};
|
||||
self.installPDFTools(installVersions);
|
||||
}
|
||||
}
|
||||
if (xmlhttp.status != 200) {
|
||||
throw new Error("Unexpected response code " + xmlhttp.status);
|
||||
}
|
||||
// Version not found for platform
|
||||
else if (xmlhttp.status == 404) {
|
||||
self.onPDFToolsDownloadError(404);
|
||||
|
||||
var platform = Zotero.platform.replace(/\s/g, '-');
|
||||
var json = JSON.parse(xmlhttp.responseText);
|
||||
var latestVersion = json[platform] || json['default'];
|
||||
|
||||
Zotero.debug("Latest PDF tools version for " + platform + " is " + latestVersion);
|
||||
|
||||
var converterIsRegistered = Zotero.Fulltext.pdfConverterIsRegistered();
|
||||
var infoIsRegistered = Zotero.Fulltext.pdfInfoIsRegistered();
|
||||
var bothRegistered = converterIsRegistered && infoIsRegistered;
|
||||
|
||||
// On Windows, install if not installed or anything other than 3.02a
|
||||
if (Zotero.isWin) {
|
||||
var converterVersionAvailable = !converterIsRegistered
|
||||
|| Zotero.Fulltext.pdfConverterVersion != '3.02a';
|
||||
var infoVersionAvailable = !infoIsRegistered
|
||||
|| Zotero.Fulltext.pdfInfoVersion != '3.02a';
|
||||
var bothAvailable = converterVersionAvailable && infoVersionAvailable;
|
||||
latestVersion = "3.02a";
|
||||
}
|
||||
// Install if not installed, version unknown, outdated, or
|
||||
// Xpdf 3.02/3.04 (to upgrade to Poppler),
|
||||
else {
|
||||
var converterVersionAvailable = (!converterIsRegistered ||
|
||||
Zotero.Fulltext.pdfConverterVersion == 'UNKNOWN'
|
||||
|| latestVersion > Zotero.Fulltext.pdfConverterVersion
|
||||
|| (!latestVersion.startsWith('3.02')
|
||||
&& Zotero.Fulltext.pdfConverterVersion.startsWith('3.02'))
|
||||
|| (!latestVersion.startsWith('3.02') && latestVersion != '3.04'
|
||||
&& Zotero.Fulltext.pdfConverterVersion == '3.04'));
|
||||
var infoVersionAvailable = (!infoIsRegistered ||
|
||||
Zotero.Fulltext.pdfInfoVersion == 'UNKNOWN'
|
||||
|| latestVersion > Zotero.Fulltext.pdfInfoVersion
|
||||
|| (!latestVersion.startsWith('3.02')
|
||||
&& Zotero.Fulltext.pdfInfoVersion.startsWith('3.02'))
|
||||
|| (!latestVersion.startsWith('3.02') && latestVersion != '3.04'
|
||||
&& Zotero.Fulltext.pdfInfoVersion == '3.04'));
|
||||
var bothAvailable = converterVersionAvailable && infoVersionAvailable;
|
||||
}
|
||||
|
||||
// Up to date -- disable update button
|
||||
if (!converterVersionAvailable && !infoVersionAvailable) {
|
||||
var button = document.getElementById('pdftools-update-button');
|
||||
button.setAttribute('label', Zotero.getString('zotero.preferences.update.upToDate'));
|
||||
button.setAttribute('disabled', true);
|
||||
}
|
||||
// New version available -- display update prompt
|
||||
else {
|
||||
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].
|
||||
createInstance(Components.interfaces.nsIPromptService);
|
||||
var buttonFlags = (ps.BUTTON_POS_0) * (ps.BUTTON_TITLE_IS_STRING)
|
||||
+ (ps.BUTTON_POS_1) * (ps.BUTTON_TITLE_CANCEL);
|
||||
|
||||
var msg = Zotero.getString('zotero.preferences.search.pdf.available'
|
||||
+ ((converterIsRegistered || infoIsRegistered) ? 'Updates' : 'Downloads'),
|
||||
[Zotero.platform, 'zotero.org']) + '\n\n';
|
||||
|
||||
if (converterVersionAvailable) {
|
||||
let tvp = Zotero.getString('zotero.preferences.search.pdf.toolVersionPlatform',
|
||||
[Zotero.Fulltext.pdfConverterName, latestVersion]);
|
||||
msg += '- ' + tvp + '\n';
|
||||
}
|
||||
if (infoVersionAvailable) {
|
||||
let tvp = Zotero.getString('zotero.preferences.search.pdf.toolVersionPlatform',
|
||||
[Zotero.Fulltext.pdfInfoName, latestVersion]);
|
||||
msg += '- ' + tvp + '\n';
|
||||
}
|
||||
msg += '\n';
|
||||
msg += Zotero.getString('zotero.preferences.search.pdf.zoteroCanInstallVersion'
|
||||
+ (bothAvailable ? 's' : ''));
|
||||
|
||||
var index = ps.confirmEx(null,
|
||||
converterIsRegistered ?
|
||||
Zotero.getString('general.updateAvailable') : '',
|
||||
msg,
|
||||
buttonFlags,
|
||||
converterIsRegistered ?
|
||||
Zotero.getString('general.upgrade') :
|
||||
Zotero.getString('general.install'),
|
||||
null, null, null, {});
|
||||
|
||||
if (index == 0) {
|
||||
document.getElementById('pdftools-update-button').disabled = true;
|
||||
var str = Zotero.getString('zotero.preferences.search.pdf.downloading');
|
||||
document.getElementById('pdftools-update-button').setAttribute('label', str);
|
||||
|
||||
if (converterVersionAvailable && infoVersionAvailable) {
|
||||
Zotero.Fulltext.downloadPDFTool('converter', latestVersion, function (success) {
|
||||
if (!success) {
|
||||
self.onPDFToolsDownloadError("Error downloading pdftotext");
|
||||
return;
|
||||
}
|
||||
Zotero.Fulltext.downloadPDFTool('info', latestVersion, function (success) {
|
||||
if (!success) {
|
||||
self.onPDFToolsDownloadError("Error downloading pdfinfo");
|
||||
return;
|
||||
}
|
||||
self.updatePDFToolsStatus();
|
||||
});
|
||||
});
|
||||
}
|
||||
else if (converterVersionAvailable) {
|
||||
Zotero.Fulltext.downloadPDFTool('converter', latestVersion, function (success) {
|
||||
if (!success) {
|
||||
self.onPDFToolsDownloadError("Error downloading pdftotext");
|
||||
return;
|
||||
}
|
||||
self.updatePDFToolsStatus();
|
||||
});
|
||||
}
|
||||
else {
|
||||
Zotero.Fulltext.downloadPDFTool('info', latestVersion, function (success) {
|
||||
if (!success) {
|
||||
self.onPDFToolsDownloadError("Error downloading pdfinfo");
|
||||
return;
|
||||
}
|
||||
self.updatePDFToolsStatus();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
|
@ -267,135 +305,6 @@ Zotero_Preferences.Search = {
|
|||
},
|
||||
|
||||
|
||||
/*
|
||||
* Begin installation of specified PDF tools from server -- does a HEAD call to
|
||||
* make sure file exists and then calls downloadPDFTool() if so
|
||||
*/
|
||||
installPDFTools: function (installVersions) {
|
||||
if (!installVersions) {
|
||||
installVersions = {
|
||||
converter: true,
|
||||
info: true
|
||||
};
|
||||
}
|
||||
|
||||
// We install the converter first if it's available
|
||||
var url = Zotero.Fulltext.pdfToolsDownloadBaseURL;
|
||||
if (installVersions.converter) {
|
||||
var tool = 'converter';
|
||||
var version = installVersions.converter;
|
||||
url += Zotero.Fulltext.pdfConverterFileName + '-' + installVersions.converter;
|
||||
}
|
||||
else if (installVersions.info) {
|
||||
var tool = 'info';
|
||||
var version = installVersions.info;
|
||||
url += Zotero.Fulltext.pdfInfoFileName + '-' + installVersions.info;
|
||||
}
|
||||
else {
|
||||
return;
|
||||
}
|
||||
|
||||
// Find latest version for this platform
|
||||
var self = this;
|
||||
var sent = Zotero.HTTP.doHead(url, function (xmlhttp) {
|
||||
try {
|
||||
if (xmlhttp.status == 200) {
|
||||
// If doing both and on converter, chain pdfinfo
|
||||
if (installVersions.converter && installVersions.info) {
|
||||
self.downloadPDFTool(tool, version, function () {
|
||||
return self.installPDFTools({ info: installVersions.info });
|
||||
});
|
||||
}
|
||||
else {
|
||||
self.downloadPDFTool(tool, version);
|
||||
}
|
||||
}
|
||||
// Version not found for platform
|
||||
else if (xmlhttp.status == 404) {
|
||||
self.onPDFToolsDownloadError(404);
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
self.onPDFToolsDownloadError(e);
|
||||
}
|
||||
});
|
||||
|
||||
// Browser is offline
|
||||
if (!sent) {
|
||||
self.onPDFToolsDownloadError();
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
* Download and install specified PDF tool
|
||||
*/
|
||||
downloadPDFTool: function (tool, version, callback) {
|
||||
var ioService = Components.classes["@mozilla.org/network/io-service;1"]
|
||||
.getService(Components.interfaces.nsIIOService);
|
||||
|
||||
if (tool == 'converter') {
|
||||
var fileName = Zotero.Fulltext.pdfConverterFileName;
|
||||
}
|
||||
else {
|
||||
var fileName = Zotero.Fulltext.pdfInfoFileName;
|
||||
}
|
||||
|
||||
|
||||
var url = Zotero.Fulltext.pdfToolsDownloadBaseURL + fileName + '-' + version;
|
||||
var uri = ioService.newURI(url, null, null);
|
||||
|
||||
var file = Zotero.getZoteroDirectory();
|
||||
file.append(fileName);
|
||||
var fileURL = ioService.newFileURI(file);
|
||||
|
||||
const nsIWBP = Components.interfaces.nsIWebBrowserPersist;
|
||||
var wbp = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"]
|
||||
.createInstance(nsIWBP);
|
||||
|
||||
var self = this;
|
||||
var progressListener = new Zotero.WebProgressFinishListener(function () {
|
||||
// Set permissions to 755
|
||||
if (Zotero.isMac) {
|
||||
file.permissions = 33261;
|
||||
}
|
||||
else if (Zotero.isLinux) {
|
||||
file.permissions = 493;
|
||||
}
|
||||
|
||||
// Write the version number to a file
|
||||
var versionFile = Zotero.getZoteroDirectory();
|
||||
versionFile.append(fileName + '.version');
|
||||
Zotero.File.putContents(versionFile, version + '');
|
||||
|
||||
Zotero.Fulltext.registerPDFTool(tool);
|
||||
|
||||
// Used to install info tool after converter
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
// If done
|
||||
else {
|
||||
self.updatePDFToolsStatus();
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
var tr = Components.classes["@mozilla.org/transfer;1"].
|
||||
createInstance(Components.interfaces.nsITransfer);
|
||||
tr.init(uri, fileURL, "", null, null, null, wbp);
|
||||
*/
|
||||
|
||||
document.getElementById('pdftools-update-button').disabled = true;
|
||||
var str = Zotero.getString('zotero.preferences.search.pdf.downloading');
|
||||
document.getElementById('pdftools-update-button').setAttribute('label', str);
|
||||
|
||||
wbp.progressListener = progressListener;
|
||||
Zotero.debug("Saving " + uri.spec + " to " + fileURL.spec);
|
||||
Zotero.Utilities.Internal.saveURI(wbp, uri, fileURL);
|
||||
},
|
||||
|
||||
|
||||
onPDFToolsDownloadError: function (e) {
|
||||
if (e == 404) {
|
||||
var str = Zotero.getString('zotero.preferences.search.pdf.toolDownloadsNotAvailable',
|
||||
|
|
|
@ -139,13 +139,10 @@ var Zotero_RecognizePDF = new function() {
|
|||
cacheFile.remove(false);
|
||||
}
|
||||
|
||||
var exec = Zotero.getZoteroDirectory();
|
||||
exec.append(Zotero.Fulltext.pdfConverterFileName);
|
||||
var {exec, args} = Zotero.Fulltext.getPDFConverterExecAndArgs();
|
||||
args.push('-enc', 'UTF-8', '-nopgbrk', '-layout', '-l', pages, file.path, cacheFile.path);
|
||||
|
||||
var args = ['-enc', 'UTF-8', '-nopgbrk', '-layout', '-l', pages];
|
||||
args.push(file.path, cacheFile.path);
|
||||
|
||||
Zotero.debug('RecognizePDF: Running pdftotext '+args.join(" "));
|
||||
Zotero.debug("RecognizePDF: Running " + exec.path + " " + args.map(arg => "'" + arg + "'").join(" "));
|
||||
|
||||
return Zotero.Utilities.Internal.exec(exec, args).then(function() {
|
||||
if(!cacheFile.exists()) {
|
||||
|
|
|
@ -492,13 +492,16 @@ Zotero.CollectionTreeView.prototype.getImageSrc = function(row, col)
|
|||
|
||||
case 'collection':
|
||||
case 'search':
|
||||
return "chrome://zotero-platform/content/treesource-" + collectionType + ".png";
|
||||
if (Zotero.isMac) {
|
||||
return "chrome://zotero-platform/content/treesource-" + collectionType + ".png";
|
||||
}
|
||||
break;
|
||||
|
||||
case 'publications':
|
||||
return "chrome://zotero/skin/treeitem-journalArticle" + suffix + ".png";
|
||||
}
|
||||
|
||||
return "chrome://zotero/skin/treesource-" + collectionType + ".png";
|
||||
return "chrome://zotero/skin/treesource-" + collectionType + suffix + ".png";
|
||||
}
|
||||
|
||||
Zotero.CollectionTreeView.prototype.isContainer = function(row)
|
||||
|
@ -2254,21 +2257,6 @@ Zotero.CollectionTreeRow.prototype.getSearchResults = Zotero.Promise.coroutine(f
|
|||
|
||||
if(!Zotero.CollectionTreeCache.lastResults) {
|
||||
var s = yield this.getSearchObject();
|
||||
|
||||
// FIXME: Hack to exclude group libraries for now
|
||||
if (this.isSearch()) {
|
||||
var currentLibraryID = this.ref.libraryID;
|
||||
if (currentLibraryID) {
|
||||
yield s.addCondition('libraryID', 'is', currentLibraryID);
|
||||
}
|
||||
else {
|
||||
var groups = yield Zotero.Groups.getAll();
|
||||
for each(var group in groups) {
|
||||
yield s.addCondition('libraryID', 'isNot', group.libraryID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Zotero.CollectionTreeCache.lastResults = yield s.search();
|
||||
Zotero.CollectionTreeCache.lastTreeRow = this;
|
||||
}
|
||||
|
|
|
@ -390,6 +390,8 @@ Zotero.ItemTypes = new function() {
|
|||
}
|
||||
|
||||
function getImageSrc(itemType) {
|
||||
var suffix = Zotero.hiDPI ? "@2x" : "";
|
||||
|
||||
if (this.isCustom(itemType)) {
|
||||
var id = this.getID(itemType) - this.customIDOffset;
|
||||
if (!_customImages[id]) {
|
||||
|
@ -399,50 +401,57 @@ Zotero.ItemTypes = new function() {
|
|||
}
|
||||
|
||||
switch (itemType) {
|
||||
// Use treeitem.png
|
||||
case 'attachment-file':
|
||||
case 'document':
|
||||
break;
|
||||
|
||||
// HiDPI images available
|
||||
case 'attachment-link':
|
||||
case 'attachment-snapshot':
|
||||
case 'attachment-web-link':
|
||||
case 'attachment-pdf':
|
||||
case 'artwork':
|
||||
case 'audioRecording':
|
||||
case 'bill':
|
||||
case 'blogPost':
|
||||
case 'book':
|
||||
case 'bookSection':
|
||||
case 'case':
|
||||
case 'computerProgram':
|
||||
case 'conferencePaper':
|
||||
case 'dictionaryEntry':
|
||||
case 'document':
|
||||
case 'email':
|
||||
case 'encyclopediaArticle':
|
||||
case 'film':
|
||||
case 'forumPost':
|
||||
case 'hearing':
|
||||
case 'instantMessage':
|
||||
case 'interview':
|
||||
case 'journalArticle':
|
||||
case 'letter':
|
||||
case 'magazineArticle':
|
||||
case 'manuscript':
|
||||
case 'map':
|
||||
case 'newspaperArticle':
|
||||
case 'note':
|
||||
case 'report':
|
||||
case 'webpage':
|
||||
return "chrome://zotero/skin/treeitem-" + itemType + suffix + ".png";
|
||||
|
||||
// No HiDPI images available
|
||||
case 'attachment-snapshot':
|
||||
case 'attachment-pdf':
|
||||
case 'blogPost':
|
||||
case 'case':
|
||||
case 'conferencePaper':
|
||||
case 'dictionaryEntry':
|
||||
case 'email':
|
||||
case 'encyclopediaArticle':
|
||||
case 'forumPost':
|
||||
case 'hearing':
|
||||
case 'manuscript':
|
||||
case 'map':
|
||||
case 'patent':
|
||||
case 'podcast':
|
||||
case 'presentation':
|
||||
case 'radioBroadcast':
|
||||
case 'report':
|
||||
case 'statute':
|
||||
case 'thesis':
|
||||
case 'tvBroadcast':
|
||||
case 'videoRecording':
|
||||
case 'webpage':
|
||||
return "chrome://zotero/skin/treeitem-" + itemType + ".png";
|
||||
}
|
||||
|
||||
return "chrome://zotero/skin/treeitem.png";
|
||||
return "chrome://zotero/skin/treeitem" + suffix + ".png";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -797,6 +797,9 @@ Zotero.Item.prototype.setField = function(field, value, loadIn) {
|
|||
value = false;
|
||||
}
|
||||
|
||||
// Make sure to use type-specific field ID if available
|
||||
fieldID = Zotero.ItemFields.getFieldIDFromTypeAndBase(itemTypeID, fieldID) || fieldID;
|
||||
|
||||
if (value !== false && !Zotero.ItemFields.isValidForType(fieldID, itemTypeID)) {
|
||||
var msg = "'" + field + "' is not a valid field for type " + itemTypeID;
|
||||
|
||||
|
|
|
@ -670,12 +670,14 @@ Zotero.Tags = new function() {
|
|||
* @return {Q Promise} A Q promise for a data: URL for a PNG
|
||||
*/
|
||||
this.generateItemsListImage = function (colors, extraImage) {
|
||||
var swatchWidth = 8;
|
||||
var separator = 3;
|
||||
var extraImageSeparator = 1;
|
||||
var extraImageWidth = 16;
|
||||
var canvasHeight = 16;
|
||||
var swatchHeight = 8;
|
||||
var multiplier = (extraImage && extraImage.indexOf('2x') != -1) ? 2 : 1;
|
||||
|
||||
var swatchWidth = 8 * multiplier;
|
||||
var separator = 3 * multiplier;
|
||||
var extraImageSeparator = 1 * multiplier;
|
||||
var extraImageWidth = 16 * multiplier;
|
||||
var canvasHeight = 16 * multiplier;
|
||||
var swatchHeight = 8 * multiplier;
|
||||
var prependExtraImage = true;
|
||||
|
||||
var hash = colors.join("") + (extraImage ? extraImage : "");
|
||||
|
|
|
@ -25,10 +25,11 @@
|
|||
|
||||
|
||||
Zotero.Debug = new function () {
|
||||
var _console, _stackTrace, _store, _level, _time, _lastTime, _output = [];
|
||||
var _console, _consolePref, _stackTrace, _store, _level, _time, _lastTime, _output = [];
|
||||
|
||||
this.init = function (forceDebugLog) {
|
||||
_console = forceDebugLog || Zotero.Prefs.get('debug.log');
|
||||
_consolePref = Zotero.Prefs.get('debug.log');
|
||||
_console = _consolePref || forceDebugLog;
|
||||
_store = Zotero.Prefs.get('debug.store');
|
||||
if (_store) {
|
||||
Zotero.Prefs.set('debug.store', false);
|
||||
|
@ -98,11 +99,12 @@ Zotero.Debug = new function () {
|
|||
if (_console) {
|
||||
var output = 'zotero(' + level + ')' + (_time ? deltaStr : '') + ': ' + message;
|
||||
if(Zotero.isFx && !Zotero.isBookmarklet) {
|
||||
// On Windows, where the text console is inexplicably glacial,
|
||||
// log to the Browser Console instead
|
||||
// On Windows, where the text console (-console) is inexplicably glacial,
|
||||
// log to the Browser Console instead if only the -ZoteroDebug flag is used.
|
||||
// Developers can use the debug.log/debug.time prefs and the Cygwin text console.
|
||||
//
|
||||
// TODO: Get rid of the filename and line number
|
||||
if (Zotero.isWin && !Zotero.isStandalone) {
|
||||
if (!_consolePref && Zotero.isWin && !Zotero.isStandalone) {
|
||||
var console = Components.utils.import("resource://gre/modules/devtools/Console.jsm", {}).console;
|
||||
console.log(output);
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ Zotero.Fulltext = new function(){
|
|||
this.pdfInfoIsRegistered = pdfInfoIsRegistered;
|
||||
this.isCachedMIMEType = isCachedMIMEType;
|
||||
|
||||
this.__defineGetter__("pdfToolsDownloadBaseURL", function() { return 'http://www.zotero.org/download/xpdf/'; });
|
||||
this.__defineGetter__("pdfToolsDownloadBaseURL", function() { return 'https://www.zotero.org/download/xpdf/'; });
|
||||
this.__defineGetter__("pdfToolsName", function() { return 'Xpdf'; });
|
||||
this.__defineGetter__("pdfToolsURL", function() { return 'http://www.foolabs.com/xpdf/'; });
|
||||
this.__defineGetter__("pdfConverterName", function() { return 'pdftotext'; });
|
||||
|
@ -56,9 +56,11 @@ Zotero.Fulltext = new function(){
|
|||
|
||||
var _pdfConverterVersion = null;
|
||||
var _pdfConverterFileName = null;
|
||||
var _pdfConverterScript = null; // nsIFile of hidden window script on Windows
|
||||
var _pdfConverter = null; // nsIFile to executable
|
||||
var _pdfInfoVersion = null;
|
||||
var _pdfInfoFileName = null;
|
||||
var _pdfInfoScript = null; // nsIFile of redirection script
|
||||
var _pdfInfo = null; // nsIFile to executable
|
||||
|
||||
var _idleObserverIsRegistered = false;
|
||||
|
@ -127,6 +129,134 @@ Zotero.Fulltext = new function(){
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* Download and install latest PDF tool
|
||||
*/
|
||||
this.downloadPDFTool = function (tool, version, callback) {
|
||||
try {
|
||||
var ioService = Components.classes["@mozilla.org/network/io-service;1"]
|
||||
.getService(Components.interfaces.nsIIOService);
|
||||
|
||||
if (tool == 'converter') {
|
||||
var fileName = this.pdfConverterFileName;
|
||||
}
|
||||
else {
|
||||
var fileName = this.pdfInfoFileName;
|
||||
}
|
||||
|
||||
var spec = this.pdfToolsDownloadBaseURL + version + "/" + fileName;
|
||||
var uri = ioService.newURI(spec, null, null);
|
||||
|
||||
var file = Zotero.getTempDirectory();
|
||||
file.append(fileName);
|
||||
|
||||
Components.utils.import("resource://gre/modules/NetUtil.jsm");
|
||||
Components.utils.import("resource://gre/modules/FileUtils.jsm");
|
||||
|
||||
Zotero.debug("Saving " + uri.spec + " to " + file.path);
|
||||
NetUtil.asyncFetch(uri, function (is, status) {
|
||||
if (!Components.isSuccessCode(status)) {
|
||||
Zotero.debug(status, 1);
|
||||
Components.utils.reportError(status);
|
||||
if (callback) {
|
||||
callback(false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Zotero.File.putContentsAsync(file, is)
|
||||
.then(function () {
|
||||
// Delete if too small, since a 404 might not be detected above
|
||||
if (file.fileSize < 50000) {
|
||||
var msg = file.path + " is too small -- deleting";
|
||||
Zotero.debug(msg, 1);
|
||||
Components.utils.reportError(msg);
|
||||
try {
|
||||
file.remove(false);
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.debug(e, 1);
|
||||
Components.utils.reportError(e);
|
||||
}
|
||||
if (callback) {
|
||||
callback(false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
var scriptExt = _getScriptExtension();
|
||||
// On Windows, write out script to hide pdftotext console window
|
||||
// TEMP: disabled
|
||||
if (false && tool == 'converter') {
|
||||
if (Zotero.isWin) {
|
||||
var content = Zotero.File.getContentsFromURL('resource://zotero/hide.' + scriptExt);
|
||||
var scriptFile = Zotero.getTempDirectory();
|
||||
scriptFile.append('pdftotext.' + scriptExt);
|
||||
Zotero.File.putContents(scriptFile, content);
|
||||
}
|
||||
}
|
||||
// Write out output redirection script for pdfinfo
|
||||
// TEMP: disabled on Windows
|
||||
else if (!Zotero.isWin && tool == 'info') {
|
||||
var content = Zotero.File.getContentsFromURL('resource://zotero/redirect.' + scriptExt);
|
||||
var scriptFile = Zotero.getTempDirectory();
|
||||
scriptFile.append('pdfinfo.' + scriptExt);
|
||||
Zotero.File.putContents(scriptFile, content);
|
||||
}
|
||||
|
||||
// Set permissions to 755
|
||||
if (Zotero.isMac) {
|
||||
file.permissions = 33261;
|
||||
if (scriptFile) {
|
||||
scriptFile.permissions = 33261;
|
||||
}
|
||||
}
|
||||
else if (Zotero.isLinux) {
|
||||
file.permissions = 493;
|
||||
if (scriptFile) {
|
||||
scriptFile.permissions = 493;
|
||||
}
|
||||
}
|
||||
|
||||
var destDir = Zotero.getZoteroDirectory()
|
||||
// Move redirect script and executable into data dir
|
||||
if (scriptFile) {
|
||||
scriptFile.moveTo(destDir, null);
|
||||
}
|
||||
file.moveTo(destDir, null);
|
||||
|
||||
// Write the version number to a file
|
||||
var versionFile = destDir.clone();
|
||||
versionFile.append(fileName + '.version');
|
||||
// TEMP
|
||||
if (Zotero.isWin) {
|
||||
version = '3.02a';
|
||||
}
|
||||
Zotero.File.putContents(versionFile, version + '');
|
||||
|
||||
Zotero.Fulltext.registerPDFTool(tool);
|
||||
|
||||
if (callback) {
|
||||
callback(true);
|
||||
}
|
||||
})
|
||||
.catch(function (e) {
|
||||
Zotero.debug(e, 1);
|
||||
Components.utils.reportError(e);
|
||||
callback(false);
|
||||
});
|
||||
});
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.debug(e, 1);
|
||||
Components.utils.reportError(e);
|
||||
if (callback) {
|
||||
callback(false);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Looks for pdftotext-{platform}[.exe] in the Zotero data directory
|
||||
*
|
||||
|
@ -168,12 +298,48 @@ Zotero.Fulltext = new function(){
|
|||
var versionFile = exec.parent;
|
||||
versionFile.append(fileName + '.version');
|
||||
if (versionFile.exists()) {
|
||||
var version = (yield Zotero.File.getSample(versionFile)).split(/[\r\n\s]/)[0];
|
||||
try {
|
||||
var version = (yield Zotero.File.getSample(versionFile)).split(/[\r\n\s]/)[0];
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.debug(e, 1);
|
||||
Components.utils.reportError(e);
|
||||
}
|
||||
}
|
||||
if (!version) {
|
||||
var version = 'UNKNOWN';
|
||||
}
|
||||
|
||||
// If scripts exist, use those instead
|
||||
switch (tool) {
|
||||
case 'converter':
|
||||
// TEMP: disabled
|
||||
if (false && Zotero.isWin) {
|
||||
var script = Zotero.getZoteroDirectory();
|
||||
script.append('pdftotext.' + _getScriptExtension())
|
||||
if (script.exists()) {
|
||||
Zotero.debug(script.leafName + " registered");
|
||||
_pdfConverterScript = script;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'info':
|
||||
// Modified 3.02 version doesn't use redirection script
|
||||
if (version.startsWith('3.02')) break;
|
||||
|
||||
var script = Zotero.getZoteroDirectory();
|
||||
script.append('pdfinfo.' + _getScriptExtension())
|
||||
// The redirection script is necessary to run pdfinfo
|
||||
if (!script.exists()) {
|
||||
Zotero.debug(script.leafName + " not found -- PDF statistics disabled");
|
||||
return false;
|
||||
}
|
||||
Zotero.debug(toolName + " redirection script registered");
|
||||
_pdfInfoScript = script;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (tool) {
|
||||
case 'converter':
|
||||
_pdfConverter = exec;
|
||||
|
@ -186,7 +352,7 @@ Zotero.Fulltext = new function(){
|
|||
break;
|
||||
}
|
||||
|
||||
Zotero.debug(toolName + ' version ' + version + ' registered at ' + exec.path);
|
||||
Zotero.debug(toolName + ' version ' + version + ' registered');
|
||||
|
||||
return true;
|
||||
});
|
||||
|
@ -202,6 +368,25 @@ Zotero.Fulltext = new function(){
|
|||
}
|
||||
|
||||
|
||||
this.getPDFConverterExecAndArgs = function () {
|
||||
if (!this.pdfConverterIsRegistered()) {
|
||||
throw new Error("PDF converter is not registered");
|
||||
}
|
||||
|
||||
if (_pdfConverterScript) {
|
||||
return {
|
||||
exec: _pdfConverterScript,
|
||||
args: [_pdfConverter.path]
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
exec: _pdfConverter,
|
||||
args: []
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Returns true if MIME type is converted to text and cached before indexing
|
||||
* (e.g. application/pdf is run through pdftotext)
|
||||
|
@ -418,17 +603,20 @@ Zotero.Fulltext = new function(){
|
|||
else {
|
||||
var parentDirPath = OS.Path.dirname(filePath);
|
||||
}
|
||||
var infoFilePath = OS.Path.join(parentDirPath, this.pdfInfoCacheFile);
|
||||
var cacheFilePath = OS.Path.join(parentDirPath, this.pdfConverterCacheFile);
|
||||
|
||||
if (_pdfInfo) {
|
||||
var infoFilePath = OS.Path.join(parentDirPath, this.pdfInfoCacheFile);
|
||||
Zotero.debug('Running pdfinfo "' + filePath + '" "' + infoFilePath + '"');
|
||||
// Modified 3.02 version that can output a text file directly
|
||||
if (_pdfInfo && _pdfInfoVersion.startsWith('3.02')) {
|
||||
var args = [filePath, infoFilePath];
|
||||
|
||||
var proc = Components.classes["@mozilla.org/process/util;1"].
|
||||
createInstance(Components.interfaces.nsIProcess);
|
||||
Zotero.debug("Running " + _pdfInfo.path + ' '
|
||||
+ args.map(arg => "'" + arg + "'").join(' '));
|
||||
|
||||
var proc = Components.classes["@mozilla.org/process/util;1"]
|
||||
.createInstance(Components.interfaces.nsIProcess);
|
||||
proc.init(_pdfInfo);
|
||||
|
||||
var args = [filePath, infoFilePath];
|
||||
try {
|
||||
proc.runw(true, args, args.length);
|
||||
var totalPages = yield getTotalPagesFromFile(itemID);
|
||||
|
@ -437,19 +625,36 @@ Zotero.Fulltext = new function(){
|
|||
Zotero.debug("Error running pdfinfo");
|
||||
}
|
||||
}
|
||||
// Use redirection script
|
||||
else if (_pdfInfoScript) {
|
||||
var args = [_pdfInfo.path, filePath, infoFilePath];
|
||||
|
||||
Zotero.debug("Running " + _pdfInfoScript.path + ' '
|
||||
+ args.map(arg => "'" + arg + "'").join(' '));
|
||||
|
||||
var proc = Components.classes["@mozilla.org/process/util;1"]
|
||||
.createInstance(Components.interfaces.nsIProcess);
|
||||
proc.init(_pdfInfoScript);
|
||||
|
||||
try {
|
||||
proc.runw(true, args, args.length);
|
||||
var totalPages = this.getTotalPagesFromFile(itemID);
|
||||
}
|
||||
catch (e) {
|
||||
Components.utils.reportError(e);
|
||||
Zotero.debug("Error running pdfinfo", 1);
|
||||
Zotero.debug(e, 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
Zotero.debug(this.pdfInfoName + " is not available");
|
||||
}
|
||||
|
||||
Zotero.debug('Running pdftotext -enc UTF-8 -nopgbrk '
|
||||
+ (allPages ? '' : '-l ' + maxPages) + ' "' + filePath + '" "'
|
||||
+ cacheFilePath + '"');
|
||||
var proc = Components.classes["@mozilla.org/process/util;1"]
|
||||
.createInstance(Components.interfaces.nsIProcess);
|
||||
var {exec, args} = this.getPDFConverterExecAndArgs();
|
||||
args.push('-enc', 'UTF-8', '-nopgbrk');
|
||||
|
||||
var proc = Components.classes["@mozilla.org/process/util;1"].
|
||||
createInstance(Components.interfaces.nsIProcess);
|
||||
proc.init(_pdfConverter);
|
||||
|
||||
var args = ['-enc', 'UTF-8', '-nopgbrk'];
|
||||
if (allPages) {
|
||||
if (totalPages) {
|
||||
var pagesIndexed = totalPages;
|
||||
|
@ -460,11 +665,17 @@ Zotero.Fulltext = new function(){
|
|||
var pagesIndexed = Math.min(maxPages, totalPages);
|
||||
}
|
||||
args.push(filePath, cacheFilePath);
|
||||
|
||||
Zotero.debug("Running " + exec.path + " " + args.map(arg => "'" + arg + "'").join(" "));
|
||||
|
||||
try {
|
||||
proc.init(exec);
|
||||
proc.runw(true, args, args.length);
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.debug("Error running pdftotext");
|
||||
Components.utils.reportError(e);
|
||||
Zotero.debug("Error running pdftotext", 1);
|
||||
Zotero.debug(e, 1);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -1601,4 +1812,9 @@ Zotero.Fulltext = new function(){
|
|||
return w;
|
||||
});
|
||||
}
|
||||
|
||||
function _getScriptExtension() {
|
||||
return Zotero.isWin ? 'vbs' : 'sh';
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1573,6 +1573,116 @@ Zotero.Schema = new function(){
|
|||
var translatorUpdates = xmlhttp.responseXML.getElementsByTagName('translator');
|
||||
var styleUpdates = xmlhttp.responseXML.getElementsByTagName('style');
|
||||
|
||||
var updatePDFTools = function () {
|
||||
// No updates for PPC
|
||||
if (Zotero.platform == 'MacPPC') return;
|
||||
|
||||
let pdfToolsUpdates = xmlhttp.responseXML.getElementsByTagName('pdftools');
|
||||
if (pdfToolsUpdates.length) {
|
||||
let availableVersion = pdfToolsUpdates[0].getAttribute('version');
|
||||
let installInfo = false;
|
||||
let installConverter = false;
|
||||
|
||||
// Don't auto-install if not installed
|
||||
if (!Zotero.Fulltext.pdfInfoIsRegistered() && !Zotero.Fulltext.pdfConverterIsRegistered()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// TEMP
|
||||
if (Zotero.isWin) {
|
||||
if (Zotero.Fulltext.pdfInfoIsRegistered()) {
|
||||
if (Zotero.Fulltext.pdfInfoVersion != '3.02a') {
|
||||
installInfo = true;
|
||||
}
|
||||
}
|
||||
// Install missing component if one is installed
|
||||
else if (Zotero.Fulltext.pdfConverterIsRegistered()) {
|
||||
installInfo = true;
|
||||
}
|
||||
if (Zotero.Fulltext.pdfConverterIsRegistered()) {
|
||||
if (Zotero.Fulltext.pdfConverterVersion != '3.02a') {
|
||||
installConverter = true;
|
||||
}
|
||||
}
|
||||
// Install missing component if one is installed
|
||||
else if (Zotero.Fulltext.pdfInfoIsRegistered()) {
|
||||
installConverter = true;
|
||||
}
|
||||
availableVersion = '3.02';
|
||||
}
|
||||
else {
|
||||
if (Zotero.Fulltext.pdfInfoIsRegistered()) {
|
||||
let currentVersion = Zotero.Fulltext.pdfInfoVersion;
|
||||
if (currentVersion < availableVersion || currentVersion.startsWith('3.02')
|
||||
|| currentVersion == 'UNKNOWN') {
|
||||
installInfo = true;
|
||||
}
|
||||
}
|
||||
// Install missing component if one is installed
|
||||
else if (Zotero.Fulltext.pdfConverterIsRegistered()) {
|
||||
installInfo = true;
|
||||
}
|
||||
if (Zotero.Fulltext.pdfConverterIsRegistered()) {
|
||||
let currentVersion = Zotero.Fulltext.pdfConverterVersion;
|
||||
if (currentVersion < availableVersion || currentVersion.startsWith('3.02')
|
||||
|| currentVersion == 'UNKNOWN') {
|
||||
installConverter = true;
|
||||
}
|
||||
}
|
||||
// Install missing component if one is installed
|
||||
else if (Zotero.Fulltext.pdfInfoIsRegistered()) {
|
||||
installConverter = true;
|
||||
}
|
||||
}
|
||||
|
||||
let prefKey = 'pdfToolsInstallError';
|
||||
let lastTry = 0, delay = 43200000; // half a day, so doubles to a day initially
|
||||
try {
|
||||
[lastTry, delay] = Zotero.Prefs.get(prefKey).split(';');
|
||||
}
|
||||
catch (e) {}
|
||||
|
||||
// Allow an additional minute, since repo updates might not be exact
|
||||
if (Date.now() < (parseInt(lastTry) + parseInt(delay) - 60000)) {
|
||||
Zotero.debug("Now enough time since last PDF tools installation failure -- skipping", 2);
|
||||
return;
|
||||
}
|
||||
|
||||
var checkResult = function (success) {
|
||||
if (success) {
|
||||
try {
|
||||
Zotero.Prefs.clear(prefKey);
|
||||
}
|
||||
catch (e) {}
|
||||
}
|
||||
else {
|
||||
// Keep doubling delay, to a max of 1 week
|
||||
Zotero.Prefs.set(prefKey, Date.now() + ";" + Math.min(delay * 2, 7*24*60*60*1000));
|
||||
|
||||
let msg = "Error downloading PDF tool";
|
||||
Zotero.debug(msg, 1);
|
||||
throw new Error(msg);
|
||||
}
|
||||
};
|
||||
|
||||
if (installConverter && installInfo) {
|
||||
Zotero.Fulltext.downloadPDFTool('converter', availableVersion, function (success) {
|
||||
checkResult(success);
|
||||
Zotero.Fulltext.downloadPDFTool('info', availableVersion, checkResult);
|
||||
});
|
||||
}
|
||||
else if (installConverter) {
|
||||
Zotero.Fulltext.downloadPDFTool('converter', availableVersion, checkResult);
|
||||
}
|
||||
else if (installInfo) {
|
||||
Zotero.Fulltext.downloadPDFTool('info', availableVersion, checkResult);
|
||||
}
|
||||
else {
|
||||
Zotero.debug("PDF tools are up to date");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (!translatorUpdates.length && !styleUpdates.length){
|
||||
return Zotero.DB.executeTransaction(function* (conn) {
|
||||
// Store the timestamp provided by the server
|
||||
|
@ -1586,7 +1696,11 @@ Zotero.Schema = new function(){
|
|||
if (!manual) {
|
||||
_setRepositoryTimer(ZOTERO_CONFIG['REPOSITORY_CHECK_INTERVAL']);
|
||||
}
|
||||
|
||||
return Zotero.Promise.resolve(true);
|
||||
})
|
||||
.tap(function () {
|
||||
updatePDFTools();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -1631,6 +1745,9 @@ Zotero.Schema = new function(){
|
|||
|
||||
return true;
|
||||
});
|
||||
})
|
||||
.tap(function () {
|
||||
updatePDFTools();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1073,6 +1073,15 @@ Zotero.Search.prototype._buildQuery = Zotero.Promise.coroutine(function* () {
|
|||
+ ")";
|
||||
}
|
||||
|
||||
// Limit to library search belongs to
|
||||
//
|
||||
// This is equivalent to adding libraryID as a search condition,
|
||||
// but it works with ANY
|
||||
if (this.libraryID !== null) {
|
||||
sql += " AND (itemID IN (SELECT itemID FROM items WHERE libraryID=?))";
|
||||
sqlParams.push(this.libraryID);
|
||||
}
|
||||
|
||||
if (this._hasPrimaryConditions) {
|
||||
sql += " AND ";
|
||||
|
||||
|
@ -1687,6 +1696,7 @@ Zotero.Searches = function() {
|
|||
var searches = [];
|
||||
for (var i=0; i<rows.length; i++) {
|
||||
let search = new Zotero.Search;
|
||||
search.libraryID = libraryID;
|
||||
search.id = rows[i].id;
|
||||
yield search.loadPrimaryData();
|
||||
searches.push(search);
|
||||
|
|
|
@ -861,7 +861,7 @@ Zotero.Sync.Storage = new function () {
|
|||
Zotero.debug("Remote mod time for item " + lk + " is " + itemModTimes[item.id]);
|
||||
|
||||
// Ignore attachments whose stored mod times haven't changed
|
||||
if (row.storageModTime == itemModTimes[id]) {
|
||||
if (row.storageModTime == itemModTimes[item.id]) {
|
||||
Zotero.debug("Storage mod time (" + row.storageModTime + ") "
|
||||
+ "hasn't changed for item " + lk);
|
||||
return;
|
||||
|
@ -1596,16 +1596,6 @@ Zotero.Sync.Storage = new function () {
|
|||
Zotero.File.checkFileAccessError(e, destFile, 'create');
|
||||
}
|
||||
|
||||
var origPath = destFile.path;
|
||||
var origFileName = destFile.leafName;
|
||||
destFile.normalize();
|
||||
if (origPath != destFile.path) {
|
||||
var msg = "ZIP file " + zipFile.leafName + " contained symlink '"
|
||||
+ origFileName + "'";
|
||||
Zotero.debug(msg, 1);
|
||||
Components.utils.reportError(msg + " in " + funcName);
|
||||
continue;
|
||||
}
|
||||
destFile.permissions = 0644;
|
||||
|
||||
// If we're renaming the main file, processDownload() needs to know
|
||||
|
@ -1635,18 +1625,7 @@ Zotero.Sync.Storage = new function () {
|
|||
continue;
|
||||
}
|
||||
|
||||
// Firefox (as of 3.0.1) can't detect symlinks (at least on OS X),
|
||||
// so use pre/post-normalized path to check
|
||||
var origPath = file.path;
|
||||
var origFileName = file.leafName;
|
||||
file.normalize();
|
||||
if (origPath != file.path) {
|
||||
var msg = "Not deleting symlink '" + origFileName + "'";
|
||||
Zotero.debug(msg, 2);
|
||||
Components.utils.reportError(msg + " in " + funcName);
|
||||
continue;
|
||||
}
|
||||
// This should be redundant with above check, but let's do it anyway
|
||||
// Check symlink awareness, just to be safe
|
||||
if (!parentDir.contains(file, false)) {
|
||||
var msg = "Storage directory doesn't contain '" + file.leafName + "'";
|
||||
Zotero.debug(msg, 2);
|
||||
|
|
|
@ -959,7 +959,7 @@ Zotero.Sync.Runner = new function () {
|
|||
|
||||
var panel = Zotero.Sync.Runner.updateErrorPanel(doc, errors);
|
||||
|
||||
panel.openPopup(this, "after_end", 4, 0, false, false);
|
||||
panel.openPopup(this, "after_end", 15, 0, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1807,7 +1807,12 @@ Zotero.Sync.Server = new function () {
|
|||
}
|
||||
};
|
||||
try {
|
||||
req.sendAsBinary(data);
|
||||
// Send binary data
|
||||
let numBytes = data.length, ui8Data = new Uint8Array(numBytes);
|
||||
for (let i = 0; i < numBytes; i++) {
|
||||
ui8Data[i] = data.charCodeAt(i) & 0xff;
|
||||
}
|
||||
req.send(ui8Data);
|
||||
}
|
||||
catch (e) {
|
||||
_error(e);
|
||||
|
@ -2561,6 +2566,7 @@ Zotero.Sync.Server = new function () {
|
|||
}
|
||||
|
||||
Zotero.debug(e, 1);
|
||||
Components.utils.reportError(e);
|
||||
|
||||
_syncInProgress = false;
|
||||
Zotero.DB.rollbackAllTransactions();
|
||||
|
|
|
@ -1478,8 +1478,15 @@ Zotero.Translate.Base.prototype = {
|
|||
* Called when all translators have been collected for detection
|
||||
*/
|
||||
"_detectTranslatorsCollected":function() {
|
||||
Zotero.debug("Translate: All translator detect calls and RPC calls complete");
|
||||
Zotero.debug("Translate: All translator detect calls and RPC calls complete:");
|
||||
this._foundTranslators.sort(function(a, b) { return a.priority-b.priority });
|
||||
if (this._foundTranslators.length) {
|
||||
this._foundTranslators.forEach(function(t) {
|
||||
Zotero.debug("\t" + t.label + ": " + t.priority);
|
||||
});
|
||||
} else {
|
||||
Zotero.debug("\tNo suitable translators found");
|
||||
}
|
||||
this._runHandler("translators", this._foundTranslators);
|
||||
},
|
||||
|
||||
|
@ -1503,7 +1510,8 @@ Zotero.Translate.Base.prototype = {
|
|||
|
||||
var me = this;
|
||||
return translator.getCode().then(function(code) {
|
||||
Zotero.debug("Translate: Parsing code for "+translator.label, 4);
|
||||
Zotero.debug("Translate: Parsing code for " + translator.label + " "
|
||||
+ "(" + translator.translatorID + ", " + translator.lastUpdated + ")", 4);
|
||||
me._sandboxManager.eval("var exports = {}, ZOTERO_TRANSLATOR_INFO = "+code,
|
||||
["detect"+me._entryFunctionSuffix, "do"+me._entryFunctionSuffix, "exports",
|
||||
"ZOTERO_TRANSLATOR_INFO"],
|
||||
|
|
|
@ -282,39 +282,41 @@ Zotero.Utilities = {
|
|||
* @param {Boolean} [dontValidate=false] Do not validate check digit
|
||||
* @return {String|Boolean} Valid ISBN or false
|
||||
*/
|
||||
"cleanISBN":function(isbn, dontValidate) {
|
||||
isbn = isbn.replace(/[^0-9a-z]+/ig, '').toUpperCase() //we only want to ignore punctuation, spaces
|
||||
.match(/\b(?:97[89][0-9]{10}|[0-9]{9}[0-9X])\b/); //13 digit or 10 digit
|
||||
if(!isbn) return false;
|
||||
isbn = isbn[0];
|
||||
|
||||
if (dontValidate && (isbn.length == 10 || isbn.length == 13)) {
|
||||
return isbn;
|
||||
}
|
||||
|
||||
if(isbn.length == 10) {
|
||||
// Verify ISBN-10 checksum
|
||||
var sum = 0;
|
||||
for (var i = 0; i < 9; i++) {
|
||||
if(isbn[i] == 'X') return false; //X can only be a check digit
|
||||
sum += isbn[i] * (10-i);
|
||||
"cleanISBN":function(isbnStr, dontValidate) {
|
||||
isbnStr = isbnStr.toUpperCase()
|
||||
.replace(/[\x2D\xAD\u2010-\u2015\u2043\u2212]+/g, ''); // Ignore dashes
|
||||
var isbnRE = /\b(?:97[89]\s*(?:\d\s*){9}\d|(?:\d\s*){9}[\dX])\b/g,
|
||||
isbnMatch;
|
||||
while(isbnMatch = isbnRE.exec(isbnStr)) {
|
||||
var isbn = isbnMatch[0].replace(/\s+/g, '');
|
||||
|
||||
if (dontValidate) {
|
||||
return isbn;
|
||||
}
|
||||
//check digit might be 'X'
|
||||
sum += (isbn[9] == 'X')? 10 : isbn[9]*1;
|
||||
|
||||
return (sum % 11 == 0) ? isbn : false;
|
||||
|
||||
if(isbn.length == 10) {
|
||||
// Verify ISBN-10 checksum
|
||||
var sum = 0;
|
||||
for (var i = 0; i < 9; i++) {
|
||||
sum += isbn[i] * (10-i);
|
||||
}
|
||||
//check digit might be 'X'
|
||||
sum += (isbn[9] == 'X')? 10 : isbn[9]*1;
|
||||
|
||||
if (sum % 11 == 0) return isbn;
|
||||
} else {
|
||||
// Verify ISBN 13 checksum
|
||||
var sum = 0;
|
||||
for (var i = 0; i < 12; i+=2) sum += isbn[i]*1; //to make sure it's int
|
||||
for (var i = 1; i < 12; i+=2) sum += isbn[i]*3;
|
||||
sum += isbn[12]*1; //add the check digit
|
||||
|
||||
if (sum % 10 == 0 ) return isbn;
|
||||
}
|
||||
|
||||
isbnRE.lastIndex = isbnMatch.index + 1; // Retry the same spot + 1
|
||||
}
|
||||
|
||||
if(isbn.length == 13) {
|
||||
// Verify checksum
|
||||
var sum = 0;
|
||||
for (var i = 0; i < 12; i+=2) sum += isbn[i]*1; //to make sure it's int
|
||||
for (var i = 1; i < 12; i+=2) sum += isbn[i]*3;
|
||||
sum += isbn[12]*1; //add the check digit
|
||||
|
||||
return (sum % 10 == 0 )? isbn : false;
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
|
@ -324,16 +326,17 @@ Zotero.Utilities = {
|
|||
* cleanISBN
|
||||
* @return {String} ISBN-13
|
||||
*/
|
||||
"toISBN13": function(isbn) {
|
||||
if (!/^(?:97[89])?\d{9}[\dxX]$/.test(isbn)
|
||||
&& !(isbn = Zotero.Utilities.cleanISBN(isbn))
|
||||
) {
|
||||
throw new Error('Invalid ISBN: ' + isbn);
|
||||
"toISBN13": function(isbnStr) {
|
||||
var isbn;
|
||||
if (!(isbn = Zotero.Utilities.cleanISBN(isbnStr, true))) {
|
||||
throw new Error('ISBN not found in "' + isbnStr + '"');
|
||||
}
|
||||
|
||||
if (isbn.length == 13) return isbn; // Recalculate check digit?
|
||||
|
||||
isbn = '978' + isbn.substr(0,9);
|
||||
if (isbn.length == 13) {
|
||||
isbn = isbn.substr(0,12); // Strip off check digit and re-calculate it
|
||||
} else {
|
||||
isbn = '978' + isbn.substr(0,9);
|
||||
}
|
||||
|
||||
var sum = 0;
|
||||
for (var i = 0; i < 12; i++) {
|
||||
|
@ -350,22 +353,30 @@ Zotero.Utilities = {
|
|||
* Clean and validate ISSN.
|
||||
* Return issn if valid, otherwise return false
|
||||
*/
|
||||
"cleanISSN":function(/**String*/ issn) {
|
||||
issn = issn.replace(/[^0-9a-z]+/ig, '').toUpperCase() //we only want to ignore punctuation, spaces
|
||||
.match(/[0-9]{7}[0-9X]/);
|
||||
if(!issn) return false;
|
||||
issn = issn[0];
|
||||
|
||||
// Verify ISSN checksum
|
||||
var sum = 0;
|
||||
for (var i = 0; i < 7; i++) {
|
||||
if(issn[i] == 'X') return false; //X can only be a check digit
|
||||
sum += issn[i] * (8-i);
|
||||
"cleanISSN":function(/**String*/ issnStr) {
|
||||
issnStr = issnStr.toUpperCase()
|
||||
.replace(/[\x2D\xAD\u2010-\u2015\u2043\u2212]+/g, ''); // Ignore dashes
|
||||
var issnRE = /\b(?:\d\s*){7}[\dX]\b/g,
|
||||
issnMatch;
|
||||
while (issnMatch = issnRE.exec(issnStr)) {
|
||||
var issn = issnMatch[0].replace(/\s+/g, '');
|
||||
|
||||
// Verify ISSN checksum
|
||||
var sum = 0;
|
||||
for (var i = 0; i < 7; i++) {
|
||||
sum += issn[i] * (8-i);
|
||||
}
|
||||
//check digit might be 'X'
|
||||
sum += (issn[7] == 'X')? 10 : issn[7]*1;
|
||||
|
||||
if (sum % 11 == 0) {
|
||||
return issn.substring(0,4) + '-' + issn.substring(4);
|
||||
}
|
||||
|
||||
issnRE.lastIndex = issnMatch.index + 1; // Retry same spot + 1
|
||||
}
|
||||
//check digit might be 'X'
|
||||
sum += (issn[7] == 'X')? 10 : issn[7]*1;
|
||||
|
||||
return (sum % 11 == 0) ? issn.substring(0,4) + '-' + issn.substring(4) : false;
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
|
@ -302,6 +302,9 @@ Zotero.Utilities.Internal = {
|
|||
* @param {nsISupports} target file
|
||||
*/
|
||||
saveURI: function (wbp, source, target) {
|
||||
// Handle gzip encoding
|
||||
wbp.persistFlags |= Ci.nsIWebBrowserPersist.PERSIST_FLAGS_AUTODETECT_APPLY_CONVERSION;
|
||||
|
||||
// Firefox 35 and below
|
||||
try {
|
||||
wbp.saveURI(source, null, null, null, null, target, null);
|
||||
|
@ -315,11 +318,16 @@ Zotero.Utilities.Internal = {
|
|||
|
||||
/**
|
||||
* Launch a process
|
||||
* @param {nsIFile} cmd Path to command to launch
|
||||
* @param {nsIFile|String} cmd Path to command to launch
|
||||
* @param {String[]} args Arguments given
|
||||
* @return {Promise} Promise resolved to true if command succeeds, or an error otherwise
|
||||
*/
|
||||
"exec":function(cmd, args) {
|
||||
if (typeof cmd == 'string') {
|
||||
Components.utils.import("resource://gre/modules/FileUtils.jsm");
|
||||
cmd = new FileUtils.File(cmd);
|
||||
}
|
||||
|
||||
if(!cmd.isExecutable()) {
|
||||
return Zotero.Promise.reject(cmd.path+" is not an executable");
|
||||
}
|
||||
|
|
|
@ -171,6 +171,7 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
|
|||
|
||||
if (options) {
|
||||
if (options.openPane) this.openPane = true;
|
||||
if (options.noUserInput) this.noUserInput = true;
|
||||
}
|
||||
|
||||
this.mainThread = Services.tm.mainThread;
|
||||
|
@ -612,12 +613,13 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
|
|||
Zotero.debug(e, 1);
|
||||
Components.utils.reportError(e); // DEBUG: doesn't always work
|
||||
|
||||
if (typeof e == 'string' && (e.indexOf('newer than SQL file') != -1
|
||||
|| e.indexOf('Database is incompatible') != -1)) {
|
||||
var kbURL = "https://www.zotero.org/support/kb/newer_db_version";
|
||||
var msg = Zotero.getString('startupError.zoteroVersionIsOlder')
|
||||
+ " " + Zotero.getString('startupError.zoteroVersionIsOlder.upgrade') + "\n\n"
|
||||
+ Zotero.getString('startupError.zoteroVersionIsOlder.current', Zotero.version) + "\n\n"
|
||||
if (e.toString().match('newer than SQL file')) {
|
||||
let versions = e.toString().match(/\((\d+) < \d+\)/);
|
||||
let kbURL = "https://www.zotero.org/support/kb/newer_db_version";
|
||||
let msg = Zotero.getString('startupError.zoteroVersionIsOlder') + " "
|
||||
+ Zotero.getString('startupError.zoteroVersionIsOlder.upgrade') + "\n\n"
|
||||
+ Zotero.getString('startupError.zoteroVersionIsOlder.current', Zotero.version) + "\n"
|
||||
+ (versions ? "DB: " + versions[1] + "\n\n" : "\n")
|
||||
+ Zotero.getString('general.seeForMoreInformation', kbURL);
|
||||
Zotero.startupError = msg;
|
||||
_startupErrorHandler = function() {
|
||||
|
@ -2123,7 +2125,8 @@ Components.utils.import("resource://gre/modules/osfile.jsm");
|
|||
'nsLivemarkService.js',
|
||||
'Sync.Engine.Tabs',
|
||||
'content-sessionStore.js',
|
||||
'org.mozilla.appSessions'
|
||||
'org.mozilla.appSessions',
|
||||
'bad script XDR magic number'
|
||||
];
|
||||
|
||||
for (var i=0; i<blacklist.length; i++) {
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Remove Groups and Sync
|
|||
sync.localObject=Local Object
|
||||
sync.remoteObject=Remote Object
|
||||
sync.mergedObject=Merged Object
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Username not set
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=حذف مجموعات المشاركة و المزام
|
|||
sync.localObject=كائن محلي
|
||||
sync.remoteObject=كائن عن بعد
|
||||
sync.mergedObject=كائن مدمج
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=لم يتم تعيين اسم المستخدم
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Отстранява групите и синхрони
|
|||
sync.localObject=Локален запис
|
||||
sync.remoteObject=Делечен запис
|
||||
sync.mergedObject=Слят запис
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Потребителското име не е въведено
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Elimina el grup i sincronitza
|
|||
sync.localObject=Objecte local
|
||||
sync.remoteObject=Objecte remot
|
||||
sync.mergedObject=Objecte fusionat
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=No s'ha establit un nom d'usuari
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -160,7 +160,7 @@
|
|||
|
||||
<!ENTITY zotero.preferences.prefpane.advanced "Pokročilé">
|
||||
<!ENTITY zotero.preferences.advanced.filesAndFolders "Soubory a Složky">
|
||||
<!ENTITY zotero.preferences.advanced.keys "Shortcuts">
|
||||
<!ENTITY zotero.preferences.advanced.keys "Klávesové zkratky">
|
||||
|
||||
<!ENTITY zotero.preferences.prefpane.locate "Najít">
|
||||
<!ENTITY zotero.preferences.locate.locateEngineManager "Správce mechanismu pro vyhledávání článků">
|
||||
|
@ -201,6 +201,6 @@
|
|||
<!ENTITY zotero.preferences.debugOutputLogging.submitToServer "Odeslat na Zotero Server">
|
||||
|
||||
<!ENTITY zotero.preferences.openAboutConfig "Otevřít about:config">
|
||||
<!ENTITY zotero.preferences.openCSLEdit "Open Style Editor">
|
||||
<!ENTITY zotero.preferences.openCSLPreview "Open Style Preview">
|
||||
<!ENTITY zotero.preferences.openCSLEdit "Otevřít Editor stylů">
|
||||
<!ENTITY zotero.preferences.openCSLPreview "Otevřít Náhled stylů">
|
||||
<!ENTITY zotero.preferences.openAboutMemory "Otevřít about:memory">
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<!ENTITY zotero.general.delete "Smazat">
|
||||
<!ENTITY zotero.general.ok "OK">
|
||||
<!ENTITY zotero.general.cancel "Zrušit">
|
||||
<!ENTITY zotero.general.refresh "Refresh">
|
||||
<!ENTITY zotero.general.saveAs "Save As…">
|
||||
<!ENTITY zotero.general.refresh "Obnovit">
|
||||
<!ENTITY zotero.general.saveAs "Uložit jako...">
|
||||
|
||||
<!ENTITY zotero.errorReport.title "Chybová zpráva Zotera">
|
||||
<!ENTITY zotero.errorReport.unrelatedMessages "Může obsahovat zprávy nesouvisející se Zoterem.">
|
||||
|
@ -125,7 +125,7 @@
|
|||
<!ENTITY zotero.item.textTransform "Převést text">
|
||||
<!ENTITY zotero.item.textTransform.titlecase "Velká Písmena">
|
||||
<!ENTITY zotero.item.textTransform.sentencecase "Velké první písmeno">
|
||||
<!ENTITY zotero.item.creatorTransform.nameSwap "Swap First/Last Names">
|
||||
<!ENTITY zotero.item.creatorTransform.nameSwap "Zaměnit křestní jména / přijmení">
|
||||
|
||||
<!ENTITY zotero.toolbar.newNote "Nová poznámka">
|
||||
<!ENTITY zotero.toolbar.note.standalone "Nová samostatná poznámka">
|
||||
|
|
|
@ -42,7 +42,7 @@ general.create=Vytvořit
|
|||
general.delete=Smazat
|
||||
general.moreInformation=Více informací
|
||||
general.seeForMoreInformation=Pro více informací se podívejte na %S
|
||||
general.open=Open %S
|
||||
general.open=Otevřít %S
|
||||
general.enable=Povolit
|
||||
general.disable=Zakázat
|
||||
general.remove=Odstranit
|
||||
|
@ -204,11 +204,11 @@ pane.items.trash.multiple=Jste si jisti, že chcete přesunout vybranou položku
|
|||
pane.items.delete.title=Smazat
|
||||
pane.items.delete=Jste si jisti, že chcete smazat zvolenou položku?
|
||||
pane.items.delete.multiple=Jste si jisti, že chcete smazat zvolené položky?
|
||||
pane.items.remove.title=Remove from Collection
|
||||
pane.items.remove=Are you sure you want to remove the selected item from this collection?
|
||||
pane.items.remove.multiple=Are you sure you want to remove the selected items from this collection?
|
||||
pane.items.menu.remove=Remove Item from Collection…
|
||||
pane.items.menu.remove.multiple=Remove Items from Collection…
|
||||
pane.items.remove.title=Odstranit z kolekce
|
||||
pane.items.remove=Opravdu chcete odstranit zvolenou položku z kolekce?
|
||||
pane.items.remove.multiple=Opravdu chcete odstranit vybrané položky z této kolekce?
|
||||
pane.items.menu.remove=Odebrat položku z kolekce...
|
||||
pane.items.menu.remove.multiple=Odebrat položky z kolekce...
|
||||
pane.items.menu.moveToTrash=Přesunout položku do Koše...
|
||||
pane.items.menu.moveToTrash.multiple=Přesunout položky do Koše...
|
||||
pane.items.menu.export=Exportovat vybranou položku...
|
||||
|
@ -225,7 +225,7 @@ pane.items.menu.createParent=Vytvořit rodičovskou položku z vybrané položky
|
|||
pane.items.menu.createParent.multiple=Vytvořit rodičovské položky z vybraných položek
|
||||
pane.items.menu.renameAttachments=Přejmenovat soubor z rodičovských metadat
|
||||
pane.items.menu.renameAttachments.multiple=Přejmenovat soubory z rodičovských metadat
|
||||
pane.items.showItemInLibrary=Show Item in Library
|
||||
pane.items.showItemInLibrary=Zobrazit položku v Knihovně.
|
||||
|
||||
pane.items.letter.oneParticipant=Dopis pro %S
|
||||
pane.items.letter.twoParticipants=Dopis pro %S a %S
|
||||
|
@ -566,15 +566,15 @@ zotero.preferences.export.quickCopy.exportFormats=Formáty exportu
|
|||
zotero.preferences.export.quickCopy.instructions=Rychlé kopírování Vám umožňuje kopírovat vybrané reference do schránky zmáčknutím klávesové zkratky (%S) nebo přetažením položek do textového pole na webové stránce.
|
||||
zotero.preferences.export.quickCopy.citationInstructions=Pro citování můžete citace či poznámky pod čarou kopírovat při stisknutí %S nebo stisknutím a držením klávesy Shift při přetahování položky.
|
||||
|
||||
zotero.preferences.wordProcessors.installationSuccess=Installation was successful.
|
||||
zotero.preferences.wordProcessors.installationError=Installation could not be completed because an error occurred. Please ensure that %1$S is closed, and then restart %2$S.
|
||||
zotero.preferences.wordProcessors.installed=The %S add-in is currently installed.
|
||||
zotero.preferences.wordProcessors.notInstalled=The %S add-in is not currently installed.
|
||||
zotero.preferences.wordProcessors.install=Install %S Add-in
|
||||
zotero.preferences.wordProcessors.reinstall=Reinstall %S Add-in
|
||||
zotero.preferences.wordProcessors.installing=Installing %S…
|
||||
zotero.preferences.wordProcessors.incompatibleVersions1=%1$S %2$S is incompatible with versions of %3$S before %4$S. Please remove %3$S, or download the latest version from %5$S.
|
||||
zotero.preferences.wordProcessors.incompatibleVersions2=%1$S %2$S requires %3$S %4$S or later to run. Please download the latest version of %3$S from %5$S.
|
||||
zotero.preferences.wordProcessors.installationSuccess=Instalace proběhla úspěšně.
|
||||
zotero.preferences.wordProcessors.installationError=Instalace nemohla být dokončena, protože došlo k chybě. Prosím ujistěte se, že je %1$S zavřený a poté restartujte %2$S.
|
||||
zotero.preferences.wordProcessors.installed=Add-in %S je v současnosti nainstalován.
|
||||
zotero.preferences.wordProcessors.notInstalled=Add-in %S není v současnosti nainstalován.
|
||||
zotero.preferences.wordProcessors.install=Nainstalovat add-in %S
|
||||
zotero.preferences.wordProcessors.reinstall=Přeinstalovat add-in %S
|
||||
zotero.preferences.wordProcessors.installing=Instaluje se %S...
|
||||
zotero.preferences.wordProcessors.incompatibleVersions1=%1$S %2$S je nekompatibilní s verzemi %3$S před %4$S. Odstraňte prosím %3$S, nebo stáhněte nejnovější verzi z %5$S.
|
||||
zotero.preferences.wordProcessors.incompatibleVersions2=%1$S %2$S vyžaduje ke svému běhu %3$S %4$S. Stáhněte prosím nejnovější verzi %3$S z %5$S.
|
||||
|
||||
zotero.preferences.styles.addStyle=Přidat styl
|
||||
|
||||
|
@ -738,7 +738,7 @@ integration.missingItem.multiple=Položka %1$S v této citaci už dále neexistu
|
|||
integration.missingItem.description=Kliknutím na "Ne" smažete kódy pole pro citace obsahujících tuto položku, text citace bude zachován, ale bude smazána z vaší bibliografie.
|
||||
integration.removeCodesWarning=Odstranění kódů polí neumožní Zoteru aktualizaci citací a bibliografií v tomto dokumentu. Jste si jistí, že chcete pokračovat?
|
||||
integration.upgradeWarning=Váš dokument musí být permanentně aktualizován, abyste mohli pracovat se Zoterem 2.0b7 a vyšším. Před pokračováním je doporučeno vytvoření záložní kopie dokumentu. Jste si jisti, že chcete pokračovat?
|
||||
integration.error.newerDocumentVersion=Your document was created with a newer version of Zotero (%1$S) than the currently installed version (%2$S). Please upgrade Zotero before editing this document.
|
||||
integration.error.newerDocumentVersion=Váš dokument byl vytvořen v novější verzi Zotera (%1$S), než je ta současně nainstalovaná (%2$S). Před úpravami tohoto dokumentu prosím aktualizujte Zotero.
|
||||
integration.corruptField=Kód pole Zotera odpovídající této citaci, který označuje, které položky ve vaší knihovně tato citace reprezentuje, byl poškozen. Přejete si znovu vybrat položku?
|
||||
integration.corruptField.description=Kliknutím na "Ne" smažete kódy pole pro citace obsahující tuto položku, text citace bude zachován, ale citace může být smazána z vaší bibliografie.
|
||||
integration.corruptBibliography=Kód pole Zotera pro vaší bibliografii byl poškozen. Má Zotero vymazat tento kód pole a vygenerovat novou bibliografii?
|
||||
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Odstranit skupinu a synchronizovat
|
|||
sync.localObject=Lokální objekt
|
||||
sync.remoteObject=Vzdálený objekt
|
||||
sync.mergedObject=Sloučený objekt
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Uživatelské jméno není nastaveno
|
||||
sync.error.usernameNotSet.text=Musíte zadat své uživatelské jméno a heslo ze zotero.org v Nastavení Zotera, pokud chcete provést synchronizaci s Zotero serverem.
|
||||
|
@ -985,11 +988,11 @@ firstRunGuidance.quickFormatMac=Napište název, nebo autora k nimž hledáte ci
|
|||
firstRunGuidance.toolbarButton.new=Zotero otevřete kliknutím sem, nebo použitím klávesové zkratky %S
|
||||
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.
|
||||
|
||||
styles.bibliography=Bibliography
|
||||
styles.editor.save=Save Citation Style
|
||||
styles.editor.warning.noItems=No items selected in Zotero.
|
||||
styles.editor.warning.parseError=Error parsing style:
|
||||
styles.editor.warning.renderError=Error generating citations and bibliography:
|
||||
styles.editor.output.individualCitations=Individual Citations
|
||||
styles.editor.output.singleCitation=Single Citation (with position "first")
|
||||
styles.preview.instructions=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.
|
||||
styles.bibliography=Bibliografie
|
||||
styles.editor.save=Uložit citační styl.
|
||||
styles.editor.warning.noItems=V Zoteru nejsou vybrány žádné položky.
|
||||
styles.editor.warning.parseError=Chyba při parsovaní stylu:
|
||||
styles.editor.warning.renderError=Chyba při generování citací a bibliografie:
|
||||
styles.editor.output.individualCitations=Jednotlivé citace
|
||||
styles.editor.output.singleCitation=Jednotlivá citace (s pozicí "první")
|
||||
styles.preview.instructions=Pro náhled těchto položek pomocí nainstalovaných citačních stylů CSL vyberte v Zoteru jednu nebo více položek a klikněte tlačítko "Obnovit".
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Fjern grupper og synkronisering
|
|||
sync.localObject=Lokalt objekt
|
||||
sync.remoteObject=Eksternt objekt
|
||||
sync.mergedObject=Sammenflettet objekt
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Brugernavn ikke angivet
|
||||
sync.error.usernameNotSet.text=Du skal indtaste dit zotero.org brugernavn og adgangskode i Zotero-indstillingerne for at synkronisere med Zotero-serveren.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Gruppen entfernen und synchronisieren
|
|||
sync.localObject=Lokales Objekt
|
||||
sync.remoteObject=Remote-Objekt
|
||||
sync.mergedObject=Zusammengeführtes Objekt
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Benutzername nicht definiert
|
||||
sync.error.usernameNotSet.text=Sie müssen Ihren zotero.org Benutzernamen und Passwort in den Zotero Einstellungen eingeben, um mit dem Zotero Server zu synchronisieren.
|
||||
|
|
|
@ -9,5 +9,5 @@
|
|||
<!ENTITY zotero.executiveProducer "Εκτελεστικός Παραγωγός:">
|
||||
<!ENTITY zotero.thanks "Ειδικές Ευχαριστίες:">
|
||||
<!ENTITY zotero.about.close "Κλείσιμο">
|
||||
<!ENTITY zotero.moreCreditsAndAcknowledgements "More Credits & Acknowledgements">
|
||||
<!ENTITY zotero.citationProcessing "Citation & Bibliography Processing">
|
||||
<!ENTITY zotero.moreCreditsAndAcknowledgements "Συντελεστές και ευχαριστίες">
|
||||
<!ENTITY zotero.citationProcessing "Παραμπομπές & Βιβλιογραφική επεξεργασία">
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<!ENTITY zotero.general.delete "Διαγραφή">
|
||||
<!ENTITY zotero.general.ok "ΟΚ">
|
||||
<!ENTITY zotero.general.cancel "Ακύρωση">
|
||||
<!ENTITY zotero.general.refresh "Refresh">
|
||||
<!ENTITY zotero.general.saveAs "Save As…">
|
||||
<!ENTITY zotero.general.refresh "Ανανέωση">
|
||||
<!ENTITY zotero.general.saveAs "Αποθήκευση ως...">
|
||||
|
||||
<!ENTITY zotero.errorReport.title "Αναφορά σφάλματος Zotero">
|
||||
<!ENTITY zotero.errorReport.unrelatedMessages "Πιθανόν να συμπεριληφθούν μηνύματα άσχετα με το Zotero.">
|
||||
|
@ -15,7 +15,7 @@
|
|||
<!ENTITY zotero.errorReport.submitted "Η αναφορά σας σφάλματος υποβλήθηκε.">
|
||||
<!ENTITY zotero.errorReport.reportID "Ταυτότητα αναφοράς:">
|
||||
<!ENTITY zotero.errorReport.postToForums "Παρακαλώ, στείλτε ένα μήνυμα στο φόρουμ του Zotero (forums.zotero.org) με αυτή την Ταυτότητα Σφάλματος, μια περιγραφή του προβλήματος και τα απαραίτητα βήματα για την αναπαραγωγή του.">
|
||||
<!ENTITY zotero.errorReport.notReviewed "Error reports are generally not reviewed unless referred to in the forums.">
|
||||
<!ENTITY zotero.errorReport.notReviewed "Οι αναφορές σφαλμάτων δεν εξετάζονται αν πρώτα δεν αναφερθούν στα φόρα.">
|
||||
|
||||
<!ENTITY zotero.upgrade.title "Μάγος Αναβάθμισης Zotero">
|
||||
<!ENTITY zotero.upgrade.newVersionInstalled "Εγκαταστήσατε μια νέα έκδοση του Zotero.">
|
||||
|
@ -99,20 +99,20 @@
|
|||
<!ENTITY zotero.toolbar.moreItemTypes.label "Περισσότερα">
|
||||
<!ENTITY zotero.toolbar.newItemFromPage.label "Δημιουργία Στοιχείου Ιστοσελίδας από την Τρέχουσα Σελίδα">
|
||||
<!ENTITY zotero.toolbar.lookup.label "Προσθήκη στοιχείου/ων μέσω Ταυτότητας">
|
||||
<!ENTITY zotero.toolbar.removeItem.label "Remove Item...">
|
||||
<!ENTITY zotero.toolbar.newCollection.label "New Collection...">
|
||||
<!ENTITY zotero.toolbar.newGroup "New Group...">
|
||||
<!ENTITY zotero.toolbar.newSubcollection.label "New Subcollection...">
|
||||
<!ENTITY zotero.toolbar.newSavedSearch.label "New Saved Search...">
|
||||
<!ENTITY zotero.toolbar.emptyTrash.label "Εκκένωση κάδου απορριμάτων">
|
||||
<!ENTITY zotero.toolbar.tagSelector.label "Εμφάνιση/Απόκρυψη Επιλογέα ετικετών">
|
||||
<!ENTITY zotero.toolbar.removeItem.label "Απομάκρυνση στοιχείου...">
|
||||
<!ENTITY zotero.toolbar.newCollection.label "Νέα συλλογή...">
|
||||
<!ENTITY zotero.toolbar.newGroup "Νέα ομάδα...">
|
||||
<!ENTITY zotero.toolbar.newSubcollection.label "Νέα δευτερεύουσα συλλογή...">
|
||||
<!ENTITY zotero.toolbar.newSavedSearch.label "Νέα αποθηκευμένη αναζήτηση...">
|
||||
<!ENTITY zotero.toolbar.emptyTrash.label "Άδειασμα κάδου ανακύκλωσης...">
|
||||
<!ENTITY zotero.toolbar.tagSelector.label "Εμφάνιση/Απόκρυψη επιλογέα ετικετών">
|
||||
<!ENTITY zotero.toolbar.actions.label "Ενέργειες">
|
||||
<!ENTITY zotero.toolbar.import.label "Import...">
|
||||
<!ENTITY zotero.toolbar.import.label "Εισαγωγή">
|
||||
<!ENTITY zotero.toolbar.importFromClipboard "Εισαγωγή από την προσωρινή μνήμη">
|
||||
<!ENTITY zotero.toolbar.export.label "Export Library...">
|
||||
<!ENTITY zotero.toolbar.rtfScan.label "RTF Scan...">
|
||||
<!ENTITY zotero.toolbar.timeline.label "Δημιουργία χρονοδιαγράμματος">
|
||||
<!ENTITY zotero.toolbar.preferences.label "Preferences...">
|
||||
<!ENTITY zotero.toolbar.preferences.label "Προτιμήσεις...">
|
||||
<!ENTITY zotero.toolbar.supportAndDocumentation "Υποστήριξη και Τεκμηρίωση">
|
||||
<!ENTITY zotero.toolbar.about.label "Σχετικά με το Zotero">
|
||||
<!ENTITY zotero.toolbar.advancedSearch "Προχωρημένη αναζήτηση">
|
||||
|
@ -125,24 +125,24 @@
|
|||
<!ENTITY zotero.item.textTransform "Μετασχηματισμός κειμένου">
|
||||
<!ENTITY zotero.item.textTransform.titlecase "Μορφή γραμμάτων τίτλου">
|
||||
<!ENTITY zotero.item.textTransform.sentencecase "Μορφή γραμμάτων πρότασης">
|
||||
<!ENTITY zotero.item.creatorTransform.nameSwap "Swap First/Last Names">
|
||||
<!ENTITY zotero.item.creatorTransform.nameSwap "Εναλλαγή πρώτου ονόματος/επιθέτου">
|
||||
|
||||
<!ENTITY zotero.toolbar.newNote "Νέα σημείωση">
|
||||
<!ENTITY zotero.toolbar.note.standalone "Νέα αυτόνομη σημείωση">
|
||||
<!ENTITY zotero.toolbar.note.child "Προσθήκη θυγατρικής σημείωσης">
|
||||
<!ENTITY zotero.toolbar.lookup "Lookup by Identifier...">
|
||||
<!ENTITY zotero.toolbar.lookup "Εντοπισμός μέσω ταυτοποιητή...">
|
||||
<!ENTITY zotero.toolbar.attachment.linked "Link to File...">
|
||||
<!ENTITY zotero.toolbar.attachment.add "Store Copy of File...">
|
||||
<!ENTITY zotero.toolbar.attachment.add "Αποθήκευση αντιγράφου του αρχείου...">
|
||||
<!ENTITY zotero.toolbar.attachment.weblink "Αποθήκευση Συνδέσμου στην Τρέχουσα Σελίδα">
|
||||
<!ENTITY zotero.toolbar.attachment.snapshot "Λήψη Στιγμιότυπου της Τρέχουσας Σελίδας">
|
||||
|
||||
<!ENTITY zotero.tagSelector.noTagsToDisplay "Δεν υπάρχουν ετικέτες προς εμφάνιση">
|
||||
<!ENTITY zotero.tagSelector.filter "Φίλτρο">
|
||||
<!ENTITY zotero.tagSelector.showAutomatic "Show automatic">
|
||||
<!ENTITY zotero.tagSelector.displayAllInLibrary "Display all tags in this library">
|
||||
<!ENTITY zotero.tagSelector.selectVisible "Select visible">
|
||||
<!ENTITY zotero.tagSelector.clearVisible "Deselect visible">
|
||||
<!ENTITY zotero.tagSelector.clearAll "Deselect all">
|
||||
<!ENTITY zotero.tagSelector.showAutomatic "Αυτόματη προβολή">
|
||||
<!ENTITY zotero.tagSelector.displayAllInLibrary "Εμφάνιση όλων των ετικετών αυτής της βιβλιοθήκης">
|
||||
<!ENTITY zotero.tagSelector.selectVisible "Επιλογή ορατών">
|
||||
<!ENTITY zotero.tagSelector.clearVisible "Αποεπιλογή ορατών">
|
||||
<!ENTITY zotero.tagSelector.clearAll "Αποεπιλογή όλων">
|
||||
<!ENTITY zotero.tagSelector.assignColor "Απόδοση χρώματος...">
|
||||
<!ENTITY zotero.tagSelector.renameTag "Rename Tag...">
|
||||
<!ENTITY zotero.tagSelector.deleteTag "Delete Tag...">
|
||||
|
@ -205,7 +205,7 @@
|
|||
<!ENTITY zotero.annotate.toolbar.collapse.label "Σύμπτυξη όλων των σχολιασμών">
|
||||
<!ENTITY zotero.annotate.toolbar.expand.label "Ανάπτυξη όλων των σχολιασμών">
|
||||
<!ENTITY zotero.annotate.toolbar.highlight.label "Υπογράμμιση κειμένου">
|
||||
<!ENTITY zotero.annotate.toolbar.unhighlight.label "Unhighlight Text">
|
||||
<!ENTITY zotero.annotate.toolbar.unhighlight.label "Αναίρεση υπογράμμισης κειμένου">
|
||||
|
||||
<!ENTITY zotero.integration.prefs.displayAs.label "Προβολή παραπομπών ως:">
|
||||
<!ENTITY zotero.integration.prefs.footnotes.label "Σημειώσεις υποσέλιδου">
|
||||
|
@ -213,7 +213,7 @@
|
|||
|
||||
<!ENTITY zotero.integration.prefs.formatUsing.label "Χρήση μορφής:">
|
||||
<!ENTITY zotero.integration.prefs.bookmarks.label "Σελιδοδείκτες">
|
||||
<!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 "Στα Microsoft Word και LibreOffice οι σελιδοδείκτες διατηρούνται αλλά ίσως τροποποιηθούν κατά λάθος. Για 
λόγους συμβατότητας, όταν η λειτουργία αυτή είναι επιλεγμένη οι παραθέσεις/παραπομπές δεν μπορούν να εισαχθούν σε υποσέλιδες σημειώσεις ή σε σημειώσεις τέλους.">
|
||||
|
||||
|
||||
<!ENTITY zotero.integration.prefs.automaticJournalAbbeviations.label "Αυτόματη συντομογράφηση τίτλων περιοδικών">
|
||||
|
@ -253,7 +253,7 @@
|
|||
<!ENTITY zotero.proxy.recognized.disable.label "Να μην γίνεται αυτόματη ανακατεύθυνση των αιτήσεων μέσω προηγουμένως αναγνωρισμένων διαμεσολαβητών.">
|
||||
<!ENTITY zotero.proxy.recognized.ignore.label "Αγνόηση">
|
||||
|
||||
<!ENTITY zotero.recognizePDF.recognizing.label "Retrieving Metadata...">
|
||||
<!ENTITY zotero.recognizePDF.recognizing.label "Ανάκτηση μεταδεδομένων...">
|
||||
<!ENTITY zotero.recognizePDF.cancel.label "Ακύρωση">
|
||||
<!ENTITY zotero.recognizePDF.pdfName.label "Όνομα PDF">
|
||||
<!ENTITY zotero.recognizePDF.itemName.label "Όνομα στοιχείου">
|
||||
|
@ -266,27 +266,27 @@
|
|||
<!ENTITY zotero.rtfScan.ambiguousCitations.label "Ασαφής παραπομπή">
|
||||
<!ENTITY zotero.rtfScan.mappedCitations.label "Χαρτογραφημένες παραπομπές">
|
||||
<!ENTITY zotero.rtfScan.introPage.label "Εισαγωγή">
|
||||
<!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 μπορεί αυτόματα να εξάγει και να αναδιαμορφώσει τις παραπομπές/παραθέσεις και να εισάγει βιβλιογραφία μέσα σε αρχεία τύπου RTF. Η λειτουργία Σάρωσης RTF υποστηρίζει τις παρακάτω μορφές παραπομπών/παραθέσεων: ">
|
||||
<!ENTITY zotero.rtfScan.introPage.description2 "Για να ξεκινήσετε, πιο κάτω επιλέξτε ένα αρχείο εισόδου RTF και ένα αρχείο εξόδου:">
|
||||
<!ENTITY zotero.rtfScan.scanPage.label "Σάρωση για παραπομπές">
|
||||
<!ENTITY zotero.rtfScan.scanPage.description "Το Zotero σαρώνει τα έγγραφά σας για παραπομπές. Παρακαλώ περιμένετε.">
|
||||
<!ENTITY zotero.rtfScan.citationsPage.label "Εξακρίβωση παρατιθέμενων στοιχείων">
|
||||
<!ENTITY zotero.rtfScan.citationsPage.description "Παρακαλώ, εξετάστε τον κατάλογο των αναγνωρισμένων παραπομπών που ακολουθεί για να βεβαιωθείτε ότι το Zotero έχει επιλέξει τα αντίστοιχα στοιχεία σωστά. Κάθε αχαρτογράφητη ή ασαφής παραπομπή πρέπει να αντιμετωπιστεί πριν προχωρήσετε στο επόμενο βήμα.">
|
||||
<!ENTITY zotero.rtfScan.stylePage.label "Document Formatting">
|
||||
<!ENTITY zotero.rtfScan.formatPage.label "Formatting Citations">
|
||||
<!ENTITY zotero.rtfScan.formatPage.description "Zotero is processing and formatting your RTF file. Please be patient.">
|
||||
<!ENTITY zotero.rtfScan.completePage.label "RTF Scan Complete">
|
||||
<!ENTITY zotero.rtfScan.completePage.description "Your document has now been scanned and processed. Please ensure that it is formatted correctly.">
|
||||
<!ENTITY zotero.rtfScan.inputFile.label "Input File">
|
||||
<!ENTITY zotero.rtfScan.outputFile.label "Output File">
|
||||
<!ENTITY zotero.rtfScan.stylePage.label "Μορφοποίηση εγγράφου">
|
||||
<!ENTITY zotero.rtfScan.formatPage.label "Μορφοποίηση παπομπών/παραθέσεων">
|
||||
<!ENTITY zotero.rtfScan.formatPage.description "Το Zotero επεξεργάζεται και μορφοποιεί τα αρχεία σας RTF. Παρακαλώ δείξτε υπομονή.">
|
||||
<!ENTITY zotero.rtfScan.completePage.label "Η Σάρωση RTF ολοκληρώθηκε">
|
||||
<!ENTITY zotero.rtfScan.completePage.description "Το έγγραφό σας σαρώθηκε και επεξεργάστηκε. Παρααλώ βεβαιωθείτε ότι μοφροποιήθηκε σωστά.">
|
||||
<!ENTITY zotero.rtfScan.inputFile.label "Αρχείο εισαγωγής">
|
||||
<!ENTITY zotero.rtfScan.outputFile.label "Αρχείο εξαγωγής">
|
||||
|
||||
<!ENTITY zotero.file.choose.label "Choose File...">
|
||||
<!ENTITY zotero.file.noneSelected.label "No file selected">
|
||||
<!ENTITY zotero.file.choose.label "Επιλέξτε αρχείο...">
|
||||
<!ENTITY zotero.file.noneSelected.label "Δεν επιλέχθηκε αρχείο">
|
||||
|
||||
<!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.noPDFTools.description "To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.">
|
||||
<!ENTITY zotero.downloadManager.label "Αποθήκευση στο Zotero">
|
||||
<!ENTITY zotero.downloadManager.saveToLibrary.description "Στην επιλεγμένη βιβλιοθήκη δεν μπορούν να αποθηκευτούν προσαρτήματα. Αντ' αυτής, το στοιχείο θα αποθηκευτεί στην βιβλιοθήκη σας.">
|
||||
<!ENTITY zotero.downloadManager.noPDFTools.description "Για να χρησιμοποιήσετε τη λειτουργία αυτή πρώτα πρέπει να εγκαταστήσετε τα εργαλεία PDF στο πλαίσιο Αναζήτησης των Προτιμήσεων του Zotero.">
|
||||
|
||||
<!ENTITY zotero.attachLink.title "Attach Link to URI">
|
||||
<!ENTITY zotero.attachLink.label.link "Link:">
|
||||
<!ENTITY zotero.attachLink.label.title "Title:">
|
||||
<!ENTITY zotero.attachLink.title "Προσάρτηση συνδέσμου στο URI">
|
||||
<!ENTITY zotero.attachLink.label.link "Σύνδεσμος:">
|
||||
<!ENTITY zotero.attachLink.label.title "Τίτλος:">
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Remove Groups and Sync
|
|||
sync.localObject=Local Object
|
||||
sync.remoteObject=Remote Object
|
||||
sync.mergedObject=Merged Object
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Username not set
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -773,6 +773,9 @@ sync.removeGroupsAndSync = Remove Groups and Sync
|
|||
sync.localObject = Local Object
|
||||
sync.remoteObject = Remote Object
|
||||
sync.mergedObject = Merged Object
|
||||
sync.merge.resolveAllLocal = Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote = Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet = Username not set
|
||||
sync.error.usernameNotSet.text = You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!ENTITY zotero.preferences.title "Preferencias de Zotero">
|
||||
|
||||
<!ENTITY zotero.preferences.default "Inicial:">
|
||||
<!ENTITY zotero.preferences.default "Predeterminado:">
|
||||
<!ENTITY zotero.preferences.items "elementos">
|
||||
<!ENTITY zotero.preferences.period ",">
|
||||
<!ENTITY zotero.preferences.settings "Preferencias">
|
||||
|
@ -48,7 +48,7 @@
|
|||
|
||||
<!ENTITY zotero.preferences.prefpane.sync "Sincronizar">
|
||||
<!ENTITY zotero.preferences.sync.username "Usuario:">
|
||||
<!ENTITY zotero.preferences.sync.password "Clave:">
|
||||
<!ENTITY zotero.preferences.sync.password "Contraseña:">
|
||||
<!ENTITY zotero.preferences.sync.syncServer "Servidor de sincronización Zotero">
|
||||
<!ENTITY zotero.preferences.sync.createAccount "Crear cuenta">
|
||||
<!ENTITY zotero.preferences.sync.lostPassword "¿Olvidó su contraseña?">
|
||||
|
@ -130,7 +130,7 @@
|
|||
<!ENTITY zotero.preferences.keys.quicksearch "Búsqueda rápida">
|
||||
<!ENTITY zotero.preferences.keys.newItem "Crear un nuevo elemento">
|
||||
<!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 etiquetas">
|
||||
<!ENTITY zotero.preferences.keys.copySelectedItemCitationsToClipboard "Copiar las citas para los elementos seleccionados al portapapeles">
|
||||
<!ENTITY zotero.preferences.keys.copySelectedItemsToClipboard "Copiar los elementos seleccionados al portapapeles">
|
||||
<!ENTITY zotero.preferences.keys.importFromClipboard "Importar desde el portapapeles">
|
||||
|
@ -160,7 +160,7 @@
|
|||
|
||||
<!ENTITY zotero.preferences.prefpane.advanced "Avanzadas">
|
||||
<!ENTITY zotero.preferences.advanced.filesAndFolders "Archivos y carpetas">
|
||||
<!ENTITY zotero.preferences.advanced.keys "Shortcuts">
|
||||
<!ENTITY zotero.preferences.advanced.keys "Atajos">
|
||||
|
||||
<!ENTITY zotero.preferences.prefpane.locate "Localizar">
|
||||
<!ENTITY zotero.preferences.locate.locateEngineManager "Administrador de motor de búsqueda de artículo">
|
||||
|
@ -194,7 +194,7 @@
|
|||
|
||||
<!ENTITY zotero.preferences.debugOutputLogging "Registro de emisión de depuración">
|
||||
<!ENTITY zotero.preferences.debugOutputLogging.message "La emisión de depuración puede ayudar a los desarrolladores de Zotero a diagnosticar problemas. Como el registro de depuración enlentece a Zotero, deberías dejarlo desactivado normalmente a menos que algún desarrollador de Zotero te pida la salida de depuración.">
|
||||
<!ENTITY zotero.preferences.debugOutputLogging.linesLogged "líneas en el registro">
|
||||
<!ENTITY zotero.preferences.debugOutputLogging.linesLogged "líneas registradas">
|
||||
<!ENTITY zotero.preferences.debugOutputLogging.enableAfterRestart "Activar tras el reinicio">
|
||||
<!ENTITY zotero.preferences.debugOutputLogging.viewOutput "Ver salida">
|
||||
<!ENTITY zotero.preferences.debugOutputLogging.clearOutput "Limpiar salida">
|
||||
|
|
|
@ -42,7 +42,7 @@ general.create=Crear
|
|||
general.delete=Borrar
|
||||
general.moreInformation=Más información
|
||||
general.seeForMoreInformation=Mira en %S para más información
|
||||
general.open=Open %S
|
||||
general.open=Abrir %S
|
||||
general.enable=Activar
|
||||
general.disable=Desactivar
|
||||
general.remove=Eliminar
|
||||
|
@ -204,11 +204,11 @@ pane.items.trash.multiple=¿Seguro que quieres enviar los ítems a la papelera?
|
|||
pane.items.delete.title=Borrar
|
||||
pane.items.delete=¿Seguro que quieres borrar el ítem asociado?
|
||||
pane.items.delete.multiple=¿Seguro que quieres borrar los ítems seleccionados?
|
||||
pane.items.remove.title=Remove from Collection
|
||||
pane.items.remove=Are you sure you want to remove the selected item from this collection?
|
||||
pane.items.remove.multiple=Are you sure you want to remove the selected items from this collection?
|
||||
pane.items.menu.remove=Remove Item from Collection…
|
||||
pane.items.menu.remove.multiple=Remove Items from Collection…
|
||||
pane.items.remove.title=Quitar de la colección
|
||||
pane.items.remove=¿Seguro que quiere eliminar el elemento seleccionado de esta colección?
|
||||
pane.items.remove.multiple=¿Está seguro que quiere eliminar estos elementos seleccionados de esta colección?
|
||||
pane.items.menu.remove=Quitar ítem de la colección...
|
||||
pane.items.menu.remove.multiple=Quitar ítems de la colección...
|
||||
pane.items.menu.moveToTrash=Mover ítem a la papelera...
|
||||
pane.items.menu.moveToTrash.multiple=Mover ítems a la papelera...
|
||||
pane.items.menu.export=Exportar el ítem seleccionado...
|
||||
|
@ -566,15 +566,15 @@ zotero.preferences.export.quickCopy.exportFormats=Formatos de exportación
|
|||
zotero.preferences.export.quickCopy.instructions=La copia rápida te permite copiar referencias seleccionadas al portapapeles pulsando un atajo (%S) o arrastrando ítems a una casilla de texto en una página web.
|
||||
zotero.preferences.export.quickCopy.citationInstructions=Para estilos bibliográficos, puedes copiar las citas o pies de página presionando %S o manteniendo pulsada la tecla Mayúsculas antes de arrastrar los ítems.
|
||||
|
||||
zotero.preferences.wordProcessors.installationSuccess=Installation was successful.
|
||||
zotero.preferences.wordProcessors.installationError=Installation could not be completed because an error occurred. Please ensure that %1$S is closed, and then restart %2$S.
|
||||
zotero.preferences.wordProcessors.installed=The %S add-in is currently installed.
|
||||
zotero.preferences.wordProcessors.notInstalled=The %S add-in is not currently installed.
|
||||
zotero.preferences.wordProcessors.install=Install %S Add-in
|
||||
zotero.preferences.wordProcessors.reinstall=Reinstall %S Add-in
|
||||
zotero.preferences.wordProcessors.installing=Installing %S…
|
||||
zotero.preferences.wordProcessors.incompatibleVersions1=%1$S %2$S is incompatible with versions of %3$S before %4$S. Please remove %3$S, or download the latest version from %5$S.
|
||||
zotero.preferences.wordProcessors.incompatibleVersions2=%1$S %2$S requires %3$S %4$S or later to run. Please download the latest version of %3$S from %5$S.
|
||||
zotero.preferences.wordProcessors.installationSuccess=Instalación fue exitosa.
|
||||
zotero.preferences.wordProcessors.installationError=Instalación no pudo ser completada debido a que un error ocurrió. Por favor asegúrese que %1$S está cerrado, posteriormente reinicie %2$S.
|
||||
zotero.preferences.wordProcessors.installed=El complemento %S está actualmente instalado.
|
||||
zotero.preferences.wordProcessors.notInstalled=El complemento %S no está actualmente instalado.
|
||||
zotero.preferences.wordProcessors.install=Instalar complemento %S
|
||||
zotero.preferences.wordProcessors.reinstall=Reinstalar complemento %S
|
||||
zotero.preferences.wordProcessors.installing=Instalado %S...
|
||||
zotero.preferences.wordProcessors.incompatibleVersions1=%1$S %2$S es incompatible con las versiones de %3$S anteriores %4$S. Por favor quite %3$S, o descargue la última versión desde %5$S.
|
||||
zotero.preferences.wordProcessors.incompatibleVersions2=%1$S %2$S requiere %3$S %4$S o posteriores para funcionar. Por favor descargue la última versión de %3$S desde %5$S.
|
||||
|
||||
zotero.preferences.styles.addStyle=Agregar estilo
|
||||
|
||||
|
@ -738,7 +738,7 @@ integration.missingItem.multiple=El ítem %1$S en esta cita ya no existe en tu b
|
|||
integration.missingItem.description=Al pulsar "No" borrarás los códigos de campo para citas conteniendo este ítem, manteniendo el texto de la cita pero borrándolo de tu bibliografía.
|
||||
integration.removeCodesWarning=Quitando los códigos de campo impedirás que Zotero de actualice citas y bibliografías en este documento. ¿Estás seguro de que deseas continuar?
|
||||
integration.upgradeWarning=Tu documento debe ser actualizado de versión de manera permanente para poder funcionar con Zotero 2.1 o posterior. Se recomienda hacer una copia de seguridad antes de proceder. ¿Seguro que quieres continuar?
|
||||
integration.error.newerDocumentVersion=Your document was created with a newer version of Zotero (%1$S) than the currently installed version (%2$S). Please upgrade Zotero before editing this document.
|
||||
integration.error.newerDocumentVersion=Su documento fue creado con una versión más reciente de Zotero (%1$S) que la actual versión instalada (%2$S). Por favor actualice Zotero antes de editar este documento.
|
||||
integration.corruptField=El código de campo Zotero correspondiente a esta cita, el cual señala a Zotero qué ítem en su biblioteca esta cita representa, se ha dañado. ¿Te gustaría volver a seleccionar este ítem?
|
||||
integration.corruptField.description=Al pulsar "No" borrarás los códigos de campo para las citas conteniendo este ítem, preservando este texto de cita pero potencialmente borrándolo de tu bibliografía.
|
||||
integration.corruptBibliography=El código de campo Zotero en tu bibliografía está corrupto. ¿Debería Zotero borrar este código de campo y generar una nueva bibliografía?
|
||||
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Quitar grupos y sincronizar
|
|||
sync.localObject=Objeto local
|
||||
sync.remoteObject=Objeto remoto
|
||||
sync.mergedObject=Unir objeto
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Nombre de usuario no provisto
|
||||
sync.error.usernameNotSet.text=Debes introducir tu usuario y contraseña de zotero.org en las preferencias de Zotero para sincronizar con el servidor de Zotero.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Eemalda Grupid ja Sync
|
|||
sync.localObject=Kohalik objekt
|
||||
sync.remoteObject=Serveri objekt
|
||||
sync.mergedObject=Liidetud objekt
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Kasutajanimi ei ole määratud
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Ezabatu Groups eta Sync
|
|||
sync.localObject=item lokala
|
||||
sync.remoteObject=serbidoreko itema
|
||||
sync.mergedObject=proposamen automatikoa
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Erabiltzaile izena ezarri gabe
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -48,8 +48,8 @@ general.disable=غیرفعال
|
|||
general.remove=حذف
|
||||
general.reset=تنظیم مجدد
|
||||
general.hide=پنهانکردن
|
||||
general.quit=Quit
|
||||
general.useDefault=Use Default
|
||||
general.quit=خروج
|
||||
general.useDefault=استفاده از پیشفرض
|
||||
general.openDocumentation=Open Documentation
|
||||
general.numMore=%S more…
|
||||
general.openPreferences=بازکردن تنظیمات
|
||||
|
@ -166,7 +166,7 @@ pane.collections.groupLibraries=Group Libraries
|
|||
pane.collections.trash=سطل بازیافت
|
||||
pane.collections.untitled=بدون عنوان
|
||||
pane.collections.unfiled=آیتمهای دستهبندی نشده
|
||||
pane.collections.duplicate=Duplicate Items
|
||||
pane.collections.duplicate=موارد تکراری
|
||||
|
||||
pane.collections.menu.rename.collection=تغییر نام مجموعه...
|
||||
pane.collections.menu.edit.savedSearch=ویرایش جستجوی ذخیره شده
|
||||
|
@ -204,11 +204,11 @@ pane.items.trash.multiple=آیتمهای انتخاب شده به سطل
|
|||
pane.items.delete.title=حذف
|
||||
pane.items.delete=آیتم انتخاب شده حذف شود؟
|
||||
pane.items.delete.multiple=آیتمهای انتخاب شده حذف شوند؟
|
||||
pane.items.remove.title=Remove from Collection
|
||||
pane.items.remove=Are you sure you want to remove the selected item from this collection?
|
||||
pane.items.remove.multiple=Are you sure you want to remove the selected items from this collection?
|
||||
pane.items.menu.remove=Remove Item from Collection…
|
||||
pane.items.menu.remove.multiple=Remove Items from Collection…
|
||||
pane.items.remove.title=حذف از مجموعه
|
||||
pane.items.remove=آیا اطمینان دارید که میخواهید مورد انتخاب شده از این مجموعه را حذف کنید؟
|
||||
pane.items.remove.multiple=آیا اطمینان دارید که می خواهید موارد انتخاب شده از این مجموعه را میخواهید حذف کنید؟
|
||||
pane.items.menu.remove=حذف ایتم از مجموعه
|
||||
pane.items.menu.remove.multiple=حذف آیتمها از مجموعه
|
||||
pane.items.menu.moveToTrash=انتقال به سطل بازیافت...
|
||||
pane.items.menu.moveToTrash.multiple=انتقال به سطل بازیافت...
|
||||
pane.items.menu.export=صدور این آیتم...
|
||||
|
@ -225,7 +225,7 @@ pane.items.menu.createParent=ساخت آیتم مادر از این آیتم
|
|||
pane.items.menu.createParent.multiple=ساخت آیتمهای مادر از آیتمهای انتخاب شده
|
||||
pane.items.menu.renameAttachments=تغییر نام پرونده با توجه به فرادادههای مادر
|
||||
pane.items.menu.renameAttachments.multiple=تغییر نام پروندهها با توجه به فرادادههای مادر
|
||||
pane.items.showItemInLibrary=Show Item in Library
|
||||
pane.items.showItemInLibrary=نمایش آیتم در کتابخانه
|
||||
|
||||
pane.items.letter.oneParticipant=نامه به %S
|
||||
pane.items.letter.twoParticipants=نامه به %S و %S
|
||||
|
@ -255,8 +255,8 @@ pane.item.defaultLastName=نام خانوادگی
|
|||
pane.item.defaultFullName=نام کامل
|
||||
pane.item.switchFieldMode.one=تعویض به تک فیلدی
|
||||
pane.item.switchFieldMode.two=تعویض به دو فیلدی
|
||||
pane.item.creator.moveUp=Move Up
|
||||
pane.item.creator.moveDown=Move Down
|
||||
pane.item.creator.moveUp=حرکت به بالا
|
||||
pane.item.creator.moveDown=حرکت به پایین
|
||||
pane.item.notes.untitled=یادداشت بیعنوان
|
||||
pane.item.notes.delete.confirm=آیا واقعا میخواهید این یادداشت را حذف کنید؟
|
||||
pane.item.notes.count.zero=بدون یادداشت:
|
||||
|
@ -477,12 +477,12 @@ fileTypes.document=سند
|
|||
|
||||
save.attachment=در حال ذخیره تصویر لحظهای...
|
||||
save.link=در حال ذخیره پیوند...
|
||||
save.link.error=An error occurred while saving this link.
|
||||
save.error.cannotMakeChangesToCollection=You cannot make changes to the currently selected collection.
|
||||
save.error.cannotAddFilesToCollection=You cannot add files to the currently selected collection.
|
||||
save.link.error=هنگام ذخیره لینک خطایی رخ داد.
|
||||
save.error.cannotMakeChangesToCollection=شما نمیتوانید تغییراتی در مجموعه انتخابشده بدهید.
|
||||
save.error.cannotAddFilesToCollection=شما نمیتوانید به مجموعه انتخابشده، فایلها را اضافه کنید.
|
||||
|
||||
ingester.saveToZotero=ذخیره در زوترو
|
||||
ingester.saveToZoteroUsing=Save to Zotero using "%S"
|
||||
ingester.saveToZoteroUsing=ذخیره در زوترور از طریق "%S"
|
||||
ingester.scraping=در حال ذخیره...
|
||||
ingester.scrapingTo=Saving to
|
||||
ingester.scrapeComplete=ذخیره شد
|
||||
|
@ -495,7 +495,7 @@ ingester.importReferRISDialog.title=درونبرد RIS/Refer زوترو
|
|||
ingester.importReferRISDialog.text=آیا میخواهید آیتمها از "%1$S" به زوترو، درونبرد شوند؟\n\nشما میتوانید درونبرد خودکار RIS/Refer را در تنظیمات زوترو، غیرفعال کنید.
|
||||
ingester.importReferRISDialog.checkMsg=همیشه برای این وبگاه، اجازه داده شود
|
||||
|
||||
ingester.importFile.title=Import File
|
||||
ingester.importFile.title=واردکردن فایل
|
||||
ingester.importFile.text=Do you want to import the file "%S"?
|
||||
ingester.importFile.intoNewCollection=Import into new collection
|
||||
|
||||
|
@ -566,7 +566,7 @@ zotero.preferences.export.quickCopy.exportFormats=قالبهای صدور
|
|||
zotero.preferences.export.quickCopy.instructions=با استفاده از "رونوشت سریع" میتوان مرجعهای انتخاب شده را با فشردن کلید میانبر (%S) یا کشیدن آیتمها به درون جعبه متن روی صفحه وب، رونوشتبرداری کرد.
|
||||
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.wordProcessors.installationSuccess=Installation was successful.
|
||||
zotero.preferences.wordProcessors.installationSuccess=با موفقیت نصب شد.
|
||||
zotero.preferences.wordProcessors.installationError=Installation could not be completed because an error occurred. Please ensure that %1$S is closed, and then restart %2$S.
|
||||
zotero.preferences.wordProcessors.installed=The %S add-in is currently installed.
|
||||
zotero.preferences.wordProcessors.notInstalled=The %S add-in is not currently installed.
|
||||
|
@ -713,7 +713,7 @@ integration.removeBibEntry.body=آیا واقعا میخواهید آن را
|
|||
|
||||
integration.cited=Cited
|
||||
integration.cited.loading=Loading Cited Items…
|
||||
integration.ibid=ibid
|
||||
integration.ibid=همان
|
||||
integration.emptyCitationWarning.title=یادکرد خالی
|
||||
integration.emptyCitationWarning.body=یادکرد تعیین شده در شیوه فعلی خالی خواهد بود. آیا واقعا میخواهید آن را بیفزایید؟
|
||||
integration.openInLibrary=Open in %S
|
||||
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=حذف گروهها و همزمانسازی
|
|||
sync.localObject=شیء محلی
|
||||
sync.remoteObject=شیء دور
|
||||
sync.mergedObject=شیء تلفیقی
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=نام کاربری وارد نشده است
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
@ -915,7 +918,7 @@ proxies.recognized.add=افزودن پیشکار
|
|||
recognizePDF.noOCR=PDF دارای متن OCR نیست.
|
||||
recognizePDF.couldNotRead=خواندن متن از PDF امکانپذیر نبود.
|
||||
recognizePDF.noMatches=No matching references found
|
||||
recognizePDF.fileNotFound=File not found
|
||||
recognizePDF.fileNotFound=فایل پیدا نشد
|
||||
recognizePDF.limit=Google Scholar query limit reached. Try again later.
|
||||
recognizePDF.error=An unexpected error occurred.
|
||||
recognizePDF.stopped=لغو شده
|
||||
|
@ -985,7 +988,7 @@ firstRunGuidance.quickFormatMac=Type a title or author to search for a reference
|
|||
firstRunGuidance.toolbarButton.new=Click here to open Zotero, or use the %S keyboard shortcut.
|
||||
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.
|
||||
|
||||
styles.bibliography=Bibliography
|
||||
styles.bibliography=کتابنامه
|
||||
styles.editor.save=Save Citation Style
|
||||
styles.editor.warning.noItems=No items selected in Zotero.
|
||||
styles.editor.warning.parseError=Error parsing style:
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Poista ryhmät ja synkronointi
|
|||
sync.localObject=Paikallinen objekti
|
||||
sync.remoteObject=Etäobjekti
|
||||
sync.mergedObject=Yhdistetty objekti
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Käyttäjänimeä ei määritetty
|
||||
sync.error.usernameNotSet.text=Syötä zotero.orgin käyttäjätunnus ja salasana Zoteron asetuksissa, jotta voit synkronoida tiedot Zotero-palvelimen kanssa.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Retirer les groupes et synchroniser
|
|||
sync.localObject=Objet local
|
||||
sync.remoteObject=Objet distant
|
||||
sync.mergedObject=Objet fusionné
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Identifiant non défini
|
||||
sync.error.usernameNotSet.text=Vous devez saisir vos nom d'utilisateur et mot de passe, propres à zotero.org, dans les Préférences de Zotero pour synchroniser avec le serveur Zotero.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Borrar o grupo e a sincronización
|
|||
sync.localObject=Obxecto local
|
||||
sync.remoteObject=Obxecto remoto
|
||||
sync.mergedObject=Obxecto unido
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Nome de usuario sen definir
|
||||
sync.error.usernameNotSet.text=Tes que introducir o teu nome de usuario de zotero.org e o contrasinal nas preferencias de Zotero e con iso poder sincronizar co servidor de Zotero.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Remove Groups and Sync
|
|||
sync.localObject=Local Object
|
||||
sync.remoteObject=Remote Object
|
||||
sync.mergedObject=Merged Object
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Username not set
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Remove Groups and Sync
|
|||
sync.localObject=Local Object
|
||||
sync.remoteObject=Remote Object
|
||||
sync.mergedObject=Merged Object
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Username not set
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -42,7 +42,7 @@ general.create=Új
|
|||
general.delete=Törlés
|
||||
general.moreInformation=További információ
|
||||
general.seeForMoreInformation=A %S bővebb információkat tartalmaz.
|
||||
general.open=Open %S
|
||||
general.open=Megnyitás %S
|
||||
general.enable=Bekapcsolás
|
||||
general.disable=Kikapcsolás
|
||||
general.remove=Eltávolítás
|
||||
|
@ -194,7 +194,7 @@ tagColorChooser.numberKeyInstructions=You can add this tag to selected items by
|
|||
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.columnChooser.moreColumns=More Columns
|
||||
pane.items.columnChooser.moreColumns=Több oszlop
|
||||
pane.items.columnChooser.secondarySort=Másodlagos adatrendezés (%S)
|
||||
pane.items.attach.link.uri.unrecognized=A Zotero nem ismerte fel a beírt URI-t. Kérem ellenőrizze a címet és próbálja újra.
|
||||
pane.items.attach.link.uri.file=Ha linket szeretne csatolni egy fájlhoz, kérem használja a “%S”-t.
|
||||
|
@ -204,11 +204,11 @@ pane.items.trash.multiple=A Kukába helyezés megerősítése?
|
|||
pane.items.delete.title=Törlés
|
||||
pane.items.delete=A kijelölt elem törlésének megerősítése?
|
||||
pane.items.delete.multiple=A kijelölt elemek törlésének megerősítése?
|
||||
pane.items.remove.title=Remove from Collection
|
||||
pane.items.remove=Are you sure you want to remove the selected item from this collection?
|
||||
pane.items.remove.multiple=Are you sure you want to remove the selected items from this collection?
|
||||
pane.items.menu.remove=Remove Item from Collection…
|
||||
pane.items.menu.remove.multiple=Remove Items from Collection…
|
||||
pane.items.remove.title=Gyűjtemény törlése...
|
||||
pane.items.remove=Biztos, hogy el akarja távolítani a kijelölt elemet a gyűjteményből?
|
||||
pane.items.remove.multiple=Biztos, hogy el akarja távolítani a kijelölt elemeket a gyűjteményből?
|
||||
pane.items.menu.remove=Kijelölt elem törlése
|
||||
pane.items.menu.remove.multiple=Kijelölt elemek törlése
|
||||
pane.items.menu.moveToTrash=Elem mozgatása a Kukába…
|
||||
pane.items.menu.moveToTrash.multiple=Elem mozgatása a Kukába…
|
||||
pane.items.menu.export=Kiválasztott elem exportálása...
|
||||
|
@ -225,7 +225,7 @@ pane.items.menu.createParent=Szülőelem létrehozása a kijelölt elem alapján
|
|||
pane.items.menu.createParent.multiple=Szülőelemek létrehozása a kijelölt elemek alapján
|
||||
pane.items.menu.renameAttachments=A fájl átnevezése a szülő metaadata alapján
|
||||
pane.items.menu.renameAttachments.multiple=A fájlok átnevezése a szülők metaadata alapján
|
||||
pane.items.showItemInLibrary=Show Item in Library
|
||||
pane.items.showItemInLibrary=Az elem megjelenítése könyvtárban
|
||||
|
||||
pane.items.letter.oneParticipant=Levél (címzett: %S)
|
||||
pane.items.letter.twoParticipants=Levél (címzett: %S és %S)
|
||||
|
@ -566,13 +566,13 @@ zotero.preferences.export.quickCopy.exportFormats=Exportálási formátumok
|
|||
zotero.preferences.export.quickCopy.instructions=A Gyorsmásolás segítségével a kiválasztott hivatkozásokat a vágólapra lehet másolni a %S gyorsbillentyű lenyomásával. A hivatkozást egy tetszőleges weboldal szövegmezőjébe is be lehet másolni, ha a kijelölt hivatkozást a szövegmezőbe húzzuk.
|
||||
zotero.preferences.export.quickCopy.citationInstructions=Bibliográfia-stílusokhoz, %S megnyomásával másolhat hivatkozásokat vagy lábjegyzeteket, vagy tartsa lenyomva a Shift-et az elemek áthúzáshoz.
|
||||
|
||||
zotero.preferences.wordProcessors.installationSuccess=Installation was successful.
|
||||
zotero.preferences.wordProcessors.installationSuccess=A telepítés sikeresen befejeződött.
|
||||
zotero.preferences.wordProcessors.installationError=Installation could not be completed because an error occurred. Please ensure that %1$S is closed, and then restart %2$S.
|
||||
zotero.preferences.wordProcessors.installed=The %S add-in is currently installed.
|
||||
zotero.preferences.wordProcessors.notInstalled=The %S add-in is not currently installed.
|
||||
zotero.preferences.wordProcessors.install=Install %S Add-in
|
||||
zotero.preferences.wordProcessors.reinstall=Reinstall %S Add-in
|
||||
zotero.preferences.wordProcessors.installing=Installing %S…
|
||||
zotero.preferences.wordProcessors.installing=Telepítés %S…
|
||||
zotero.preferences.wordProcessors.incompatibleVersions1=%1$S %2$S is incompatible with versions of %3$S before %4$S. Please remove %3$S, or download the latest version from %5$S.
|
||||
zotero.preferences.wordProcessors.incompatibleVersions2=%1$S %2$S requires %3$S %4$S or later to run. Please download the latest version of %3$S from %5$S.
|
||||
|
||||
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Csoport és szinkronizáció eltávolítása
|
|||
sync.localObject=Helyi objektum
|
||||
sync.remoteObject=Távoli objektum
|
||||
sync.mergedObject=Összefésült objektum
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Felhasználónév nincs megadva
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
@ -985,11 +988,11 @@ firstRunGuidance.quickFormatMac=Type a title or author to search for a reference
|
|||
firstRunGuidance.toolbarButton.new=A Zotero megnyitásához kattintásához kattintson ide, vagy használja a %S billentyűparancsot.
|
||||
firstRunGuidance.toolbarButton.upgrade=A Zotero ikon mostantól a Firefox eszköztárán található. A Zotero megnyitásához kattintson az ikonra, vagy használja a %S gyorsbillentyűt.
|
||||
|
||||
styles.bibliography=Bibliography
|
||||
styles.editor.save=Save Citation Style
|
||||
styles.editor.warning.noItems=No items selected in Zotero.
|
||||
styles.bibliography=Bibliográfia
|
||||
styles.editor.save=Hivatkozási stílus mentése
|
||||
styles.editor.warning.noItems=Nincs kiválasztott elem a Zoteroban.
|
||||
styles.editor.warning.parseError=Error parsing style:
|
||||
styles.editor.warning.renderError=Error generating citations and bibliography:
|
||||
styles.editor.warning.renderError=Hiba a hivatkozások és a bibliográfia generálása közben:
|
||||
styles.editor.output.individualCitations=Individual Citations
|
||||
styles.editor.output.singleCitation=Single Citation (with position "first")
|
||||
styles.preview.instructions=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.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Hapus Grup dan Sinkronisasi
|
|||
sync.localObject=Objek Lokal
|
||||
sync.remoteObject=Objek Jauh
|
||||
sync.mergedObject=Objek Gabungan
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Nama pengguna belum diset
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Fjarlægja hópa og samhæfa
|
|||
sync.localObject=Staðbundinn hlutur
|
||||
sync.remoteObject=Fjartengdur hlutur
|
||||
sync.mergedObject=Sameinaður hlutur
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Notandanafn ekki tilgreint
|
||||
sync.error.usernameNotSet.text=Þú verður að færa inn zotero.org notandanafn og lykilorð í Zotero kjörstillingum til að samhæfa Zotero þjóni.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Rimuovere i Gruppi e la Sincronizzazione
|
|||
sync.localObject=Oggetto locale
|
||||
sync.remoteObject=Oggetto remoto
|
||||
sync.mergedObject=Oggetto unificato
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Nome utente non impostato
|
||||
sync.error.usernameNotSet.text=È necessario inserire le proprie credenziali di zotero.org nelle impostazioni di Zotero per attivare la sincronizzazione con il server Zotero.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=グループと同期を取り除く
|
|||
sync.localObject=ローカル(手元)のオブジェクト
|
||||
sync.remoteObject=リモート(サーバ側)のオブジェクト
|
||||
sync.mergedObject=統合されたオブジェクト
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=ユーザーネームが指定されていません
|
||||
sync.error.usernameNotSet.text=Zotero サーバーと同期するためには、Zotero 環境設定において、zotero.org のユーザー名とパスワードを入力する必要があります。
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=លុបក្រុម និង សមកាលក
|
|||
sync.localObject=វត្ថុមូលដ្ឋាន
|
||||
sync.remoteObject=វត្ថុឆ្ងាយ
|
||||
sync.mergedObject=វត្ថុរួម
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=មិនបានដាក់ឈ្មោះអ្នកប្រើ
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=그룹 및 동기화 제거
|
|||
sync.localObject=지역 개체
|
||||
sync.remoteObject=원격 개체
|
||||
sync.mergedObject=병합된 개체
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=사용자명 설정되지 않음
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Pašalinti grupes ir sinchronizuoti
|
|||
sync.localObject=Vietinis objektas
|
||||
sync.remoteObject=Nutolęs objektas
|
||||
sync.mergedObject=Apjungtas objektas
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Nenurodytas naudotojo vardas
|
||||
sync.error.usernameNotSet.text=Norėdami duomenis sinchronizuoti su Zotero serveriu, įveskite savo zotero.org naudotojo vardą ir slaptažodį.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Remove Groups and Sync
|
|||
sync.localObject=Local Object
|
||||
sync.remoteObject=Remote Object
|
||||
sync.mergedObject=Merged Object
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Username not set
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Remove Groups and Sync
|
|||
sync.localObject=Local Object
|
||||
sync.remoteObject=Remote Object
|
||||
sync.mergedObject=Merged Object
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Username not set
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Groepen en synchronisatie verwijderen
|
|||
sync.localObject=Lokaal item
|
||||
sync.remoteObject=Item van server
|
||||
sync.mergedObject=Samengevoegd item
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Gebruikersnaam niet ingesteld
|
||||
sync.error.usernameNotSet.text=U moet uw zotero.org gebruikersnaam en wachtwoord in de Zotero-voorkeuren invoeren om te kunnen synchroniseren met de Zotero-server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Remove Groups and Sync
|
|||
sync.localObject=Local Object
|
||||
sync.remoteObject=Remote Object
|
||||
sync.mergedObject=Merged Object
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Username not set
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Usuń grupy i synchronizuj
|
|||
sync.localObject=Obiekt lokalny
|
||||
sync.remoteObject=Obiekt zdalny
|
||||
sync.mergedObject=Złączony obiekt
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Nie podano nazwy użytkownika
|
||||
sync.error.usernameNotSet.text=W celu synchronizacji z serwerem Zotero musisz podać w ustawieniach Zotero swoją nazwę użytkownika i hasło używane w serwisie zotero.org.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Remover grupos e sincronização
|
|||
sync.localObject=Objeto local
|
||||
sync.remoteObject=Objeto remoto
|
||||
sync.mergedObject=Objeto mesclado
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Nome de usuário não configurado
|
||||
sync.error.usernameNotSet.text=Você deve inserir seu nome de usuário e senha do zotero.org nas preferências do Zotero para sincronizar os dados com o servidor Zotero.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Remover Grupos e Sincronização
|
|||
sync.localObject=Objecto Local
|
||||
sync.remoteObject=Objecto Remoto
|
||||
sync.mergedObject=Objecto Integrado
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Nome de utilizador por indicar
|
||||
sync.error.usernameNotSet.text=Tem de introduzir o seu nome de utilizador e a sua palavra-passe do zotero.org nas preferências Zotero para sincronizar com o servidor Zotero.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Șterge Grupuri și Sincronizare
|
|||
sync.localObject=Obiect local
|
||||
sync.remoteObject=Obiect la distanță
|
||||
sync.mergedObject=Obiect unificat
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Nume de utilizator neconfigurat
|
||||
sync.error.usernameNotSet.text=Trebuie să introduci numele de utilizator zotero.org și parola în preferințele Zotero pentru a sincroniza cu serverul Zotero.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Обнулить группы и синхронизир
|
|||
sync.localObject=Локальный объект
|
||||
sync.remoteObject=Удаленный объект
|
||||
sync.mergedObject=Объединенный объект
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Имя пользователя не установлено
|
||||
sync.error.usernameNotSet.text=Для выполнения синхронизации с сервером Zotero необходимо указать имя и пароль пользователя для zotero.org в настройках Zotero.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Odstrániť skupiny a synchronizovať
|
|||
sync.localObject=Miestny objekt
|
||||
sync.remoteObject=Vzdialený objekt
|
||||
sync.mergedObject=Zlúčený objekt
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Nie je nastavené meno používateľa
|
||||
sync.error.usernameNotSet.text=Pre synchronizáciu so serverom Zotero musíte zadať vaše užívateľské meno a heslo pre zotero.org v predvoľbách Zotera.
|
||||
|
|
|
@ -160,7 +160,7 @@
|
|||
|
||||
<!ENTITY zotero.preferences.prefpane.advanced "Napredno">
|
||||
<!ENTITY zotero.preferences.advanced.filesAndFolders "Datoteke in mape">
|
||||
<!ENTITY zotero.preferences.advanced.keys "Shortcuts">
|
||||
<!ENTITY zotero.preferences.advanced.keys "Tipke za bližnjice">
|
||||
|
||||
<!ENTITY zotero.preferences.prefpane.locate "Lociraj">
|
||||
<!ENTITY zotero.preferences.locate.locateEngineManager "Upravitelj pogona iskanja člankov">
|
||||
|
|
|
@ -42,7 +42,7 @@ general.create=Ustvari
|
|||
general.delete=Izbriši
|
||||
general.moreInformation=Podrobnosti
|
||||
general.seeForMoreInformation=Oglejte si %S za več informacij.
|
||||
general.open=Open %S
|
||||
general.open=Odpri %S
|
||||
general.enable=Omogoči
|
||||
general.disable=Onemogoči
|
||||
general.remove=Odstrani
|
||||
|
@ -204,11 +204,11 @@ pane.items.trash.multiple=Ste prepričani, da želite izbrane vnose vreči v ko
|
|||
pane.items.delete.title=Izbriši
|
||||
pane.items.delete=Ste prepričani, da želite izbrisati izbrani vnos?
|
||||
pane.items.delete.multiple=Ste prepričani, da želite izbrisati izbrane vnose?
|
||||
pane.items.remove.title=Remove from Collection
|
||||
pane.items.remove=Are you sure you want to remove the selected item from this collection?
|
||||
pane.items.remove.multiple=Are you sure you want to remove the selected items from this collection?
|
||||
pane.items.menu.remove=Remove Item from Collection…
|
||||
pane.items.menu.remove.multiple=Remove Items from Collection…
|
||||
pane.items.remove.title=Odstrani iz zbirke
|
||||
pane.items.remove=Ste prepričani, da želite izbrani vnos izbrisati iz te zbirke?
|
||||
pane.items.remove.multiple=Ste prepričani, da želite izbrane vnose izbrisati iz te zbirke?
|
||||
pane.items.menu.remove=Odstrani vnos iz zbirke ...
|
||||
pane.items.menu.remove.multiple=Odstrani vnose iz zbirke ...
|
||||
pane.items.menu.moveToTrash=Premakni vnos v koš ...
|
||||
pane.items.menu.moveToTrash.multiple=Premakni vnose v koš ...
|
||||
pane.items.menu.export=Izvozi vnos ...
|
||||
|
@ -566,15 +566,15 @@ zotero.preferences.export.quickCopy.exportFormats=Vrste izvoza
|
|||
zotero.preferences.export.quickCopy.instructions=Hitro kopiranje omogoča kopiranje izbranih sklicev na odložišče s pritiskom na tipko za bližnjico (%S) ali vleko vnosov v besedilno polje na spletni strani.
|
||||
zotero.preferences.export.quickCopy.citationInstructions=Za sloge bibliografije lahko kopirate citate ali sprotne opombe s pritiskom %S ali s pritisnjeno dvigalko pred vleko vnosov.
|
||||
|
||||
zotero.preferences.wordProcessors.installationSuccess=Installation was successful.
|
||||
zotero.preferences.wordProcessors.installationError=Installation could not be completed because an error occurred. Please ensure that %1$S is closed, and then restart %2$S.
|
||||
zotero.preferences.wordProcessors.installed=The %S add-in is currently installed.
|
||||
zotero.preferences.wordProcessors.notInstalled=The %S add-in is not currently installed.
|
||||
zotero.preferences.wordProcessors.install=Install %S Add-in
|
||||
zotero.preferences.wordProcessors.reinstall=Reinstall %S Add-in
|
||||
zotero.preferences.wordProcessors.installing=Installing %S…
|
||||
zotero.preferences.wordProcessors.incompatibleVersions1=%1$S %2$S is incompatible with versions of %3$S before %4$S. Please remove %3$S, or download the latest version from %5$S.
|
||||
zotero.preferences.wordProcessors.incompatibleVersions2=%1$S %2$S requires %3$S %4$S or later to run. Please download the latest version of %3$S from %5$S.
|
||||
zotero.preferences.wordProcessors.installationSuccess=Namestitev je uspela.
|
||||
zotero.preferences.wordProcessors.installationError=Nameščanja ni mogoče zaključiti, ker je prišlo do napake. Zagotovite, da je %1$S zaprt, nato ponovno zaženite %2$S.
|
||||
zotero.preferences.wordProcessors.installed=Dodatek %S je trenutno nameščen.
|
||||
zotero.preferences.wordProcessors.notInstalled=Dodatek %S trenutno ni nameščen.
|
||||
zotero.preferences.wordProcessors.install=Namesti dodatek %S
|
||||
zotero.preferences.wordProcessors.reinstall=Ponovno namesti dodatek %S
|
||||
zotero.preferences.wordProcessors.installing=Nameščanje %S ...
|
||||
zotero.preferences.wordProcessors.incompatibleVersions1=%1$S %2$S ni združljiv z različicami %3$S pred %4$S. Odstranite %3$S ali prenesite najnovejšo različico z %5$S.
|
||||
zotero.preferences.wordProcessors.incompatibleVersions2=%1$S %2$S zahteva %3$S %4$S ali novejšega. Prenesite najnovejšo različico %3$S z %5$S.
|
||||
|
||||
zotero.preferences.styles.addStyle=Dodaj slog
|
||||
|
||||
|
@ -738,7 +738,7 @@ integration.missingItem.multiple=Vnos %1$S iz tega citata ne obstaja več v vaš
|
|||
integration.missingItem.description=Z »Ne« boste izbrisali kode polj za citate, ki vsebujejo ta vnos, s čimer boste obdržali besedilo citata, vendar ga boste izbrisali iz bibliografije.
|
||||
integration.removeCodesWarning=Odstranitev kod polj bo preprečila Zoteru posodabljanje citatov in bibliografij v tem dokumentu. Ste prepričani, da želite nadaljevati?
|
||||
integration.upgradeWarning=Vaš dokument mora biti trajno posodobljen, da bi deloval z Zoterom 2.1 ali novejšim. Priporočamo, da pred nadaljevanjem naredite varnostno kopijo. Ste prepričani, da želite nadaljevati?
|
||||
integration.error.newerDocumentVersion=Your document was created with a newer version of Zotero (%1$S) than the currently installed version (%2$S). Please upgrade Zotero before editing this document.
|
||||
integration.error.newerDocumentVersion=Vaš dokument je nastal z novejšo različico Zotera (%1$S) od trenutno nameščene (%2$S). Pred urejanjem tega dokumenta raje nadgradite Zotero.
|
||||
integration.corruptField=Koda polja Zotero, ki ustreza temu citatu, ki pove Zoteru, kateri vnos iz vaše knjižnice citat predstavlja, je bila okvarjena. Želite ponovno izbrati vnos?
|
||||
integration.corruptField.description=Z »Ne« boste izbrisali kode polj za citate, ki vsebujejo ta vnos, s čimer boste ohranili besedilo citata in ga morebiti izbrisali iz bibliografije.
|
||||
integration.corruptBibliography=Koda polja Zotero za bibliografijo je okvarjena. Naj Zotero pobriše to kodo polja in ustvari novo bibliografijo?
|
||||
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Odstrani skupine in usklajevanje
|
|||
sync.localObject=Krajevni predmet
|
||||
sync.remoteObject=Oddaljeni predmet
|
||||
sync.mergedObject=Spojeni predmet
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Uporabniško ime ni določeno
|
||||
sync.error.usernameNotSet.text=Za usklajevanje s strežnikom Zotero morate v nastavitvah Zotero vnesti svoje uporabniško ime in geslo za zotero.org.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Remove Groups and Sync
|
|||
sync.localObject=Local Object
|
||||
sync.remoteObject=Remote Object
|
||||
sync.mergedObject=Merged Object
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Username not set
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Ta bort grupp och synkronisering
|
|||
sync.localObject=Lokalt objekt
|
||||
sync.remoteObject=Fjärrobjekt
|
||||
sync.mergedObject=Ihopsatt objekt
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Användarnamn är inte valt
|
||||
sync.error.usernameNotSet.text=Du måste ange ditt zotero.org-användarnamn och lösenord i Zoteros egenskaper för att synkronisera med Zotero-servern.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=ลบกลุ่มและการเชื่อ
|
|||
sync.localObject=อ็อบเจกต์ในเครื่อง
|
||||
sync.remoteObject=อ็อบเจกต์ทางไกล
|
||||
sync.mergedObject=รวมอ็อบเจกต์
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=ไม่ได้ตั้งชื่อผู้ใช้ั
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<!ENTITY zotero.preferences.automaticSnapshots "Web sayfalarından eserler yaratılırken sayfa görünümü otomatik olarak kaydet">
|
||||
<!ENTITY zotero.preferences.downloadAssociatedFiles "Eserleri kaydederken ilişkilendirilen PDF ve diğer dosyaları da otomatik olarak ekle">
|
||||
<!ENTITY zotero.preferences.automaticTags "Anahtar kelimeler ve konu başlıkları ile eserleri otomatik olarak etiketle">
|
||||
<!ENTITY zotero.preferences.trashAutoEmptyDaysPre "Bu kadar zaman önce çöpe gönderilmiş eserleri otomatik olarak sil:">
|
||||
<!ENTITY zotero.preferences.trashAutoEmptyDaysPre "Bu kadar zaman önce Çöp Sepetine gönderilmiş eserleri otomatik olarak sil:">
|
||||
<!ENTITY zotero.preferences.trashAutoEmptyDaysPost "gün">
|
||||
|
||||
<!ENTITY zotero.preferences.groups "Gruplar">
|
||||
|
@ -160,7 +160,7 @@
|
|||
|
||||
<!ENTITY zotero.preferences.prefpane.advanced "Gelişmiş">
|
||||
<!ENTITY zotero.preferences.advanced.filesAndFolders "Dosyalar ve Klasörler">
|
||||
<!ENTITY zotero.preferences.advanced.keys "Shortcuts">
|
||||
<!ENTITY zotero.preferences.advanced.keys "Kısayollar">
|
||||
|
||||
<!ENTITY zotero.preferences.prefpane.locate "Yerini Belirle">
|
||||
<!ENTITY zotero.preferences.locate.locateEngineManager "Makale Bakma Motoru Yöneticisi">
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
<!ENTITY zotero.toolbar.newGroup "Yeni Grup...">
|
||||
<!ENTITY zotero.toolbar.newSubcollection.label "Yeni Alt Derme...">
|
||||
<!ENTITY zotero.toolbar.newSavedSearch.label "Yeni Kaydedilen Arama...">
|
||||
<!ENTITY zotero.toolbar.emptyTrash.label "Çöpü Boşalt">
|
||||
<!ENTITY zotero.toolbar.emptyTrash.label "Çöp Sepetini Boşalt">
|
||||
<!ENTITY zotero.toolbar.tagSelector.label "Etiket Seçiciyi Göster/Gizle">
|
||||
<!ENTITY zotero.toolbar.actions.label "Eylemler">
|
||||
<!ENTITY zotero.toolbar.import.label "İçeri Aktar...">
|
||||
|
|
|
@ -42,7 +42,7 @@ general.create=Oluştur
|
|||
general.delete=Sil
|
||||
general.moreInformation=Daha Bilgi
|
||||
general.seeForMoreInformation=Daha fazla bilgi için bakınız: %S
|
||||
general.open=Open %S
|
||||
general.open=%S'u aç
|
||||
general.enable=Etkinleştir:
|
||||
general.disable=Seçilemez Kıl
|
||||
general.remove=Kaldır
|
||||
|
@ -151,11 +151,11 @@ pane.collections.delete.title=Dermeyi Sil
|
|||
pane.collections.delete=Seçili dermeyi silmek istediğinize emin misiniz?
|
||||
pane.collections.delete.keepItems=Derme içerisindeki eserler silinmeyecektir.
|
||||
pane.collections.deleteWithItems.title=Dermeyi ve Eserleri Sil
|
||||
pane.collections.deleteWithItems=Seçili derme ile birlikte tüm eserleri silmek istediğinizden emin misiniz?
|
||||
pane.collections.deleteWithItems=Seçili dermeyi silip, içindeki tüm eserleri Çöp Sepetine taşımak istediğinize emin misiniz?
|
||||
|
||||
pane.collections.deleteSearch.title=Aramayı Sil
|
||||
pane.collections.deleteSearch=Seçili aramayı silmek istediğinize emin misiniz?
|
||||
pane.collections.emptyTrash=Çöp kutusundaki tüm eserleri kalıcı olarak silmek istediğinize emin misiniz?
|
||||
pane.collections.emptyTrash=Çöp Sepetindeki tüm eserleri kalıcı olarak silmek istediğinize emin misiniz?
|
||||
pane.collections.newCollection=Yeni Derme
|
||||
pane.collections.name=Bu derme için bir isim girin:
|
||||
pane.collections.newSavedSeach=Yeni Kaydedilen Arama
|
||||
|
@ -163,7 +163,7 @@ pane.collections.savedSearchName=Bu kayıtlı arama için bir isim giriniz:
|
|||
pane.collections.rename=Dermeyi yeniden adlandır:
|
||||
pane.collections.library=Kitaplığım
|
||||
pane.collections.groupLibraries=Grup Kitaplıkları
|
||||
pane.collections.trash=Çöp
|
||||
pane.collections.trash=Çöp Sepeti
|
||||
pane.collections.untitled=İsimsiz
|
||||
pane.collections.unfiled=Dosyalanmamış Eserler
|
||||
pane.collections.duplicate=Yinelenen Öğeler
|
||||
|
@ -198,19 +198,19 @@ pane.items.columnChooser.moreColumns=Başka Sütun
|
|||
pane.items.columnChooser.secondarySort=İkincil Sıralama (%S)
|
||||
pane.items.attach.link.uri.unrecognized=Zotero girdiğiniz URI'yi tanımadı. Adresi kontrol edip tekrar deneyiniz.
|
||||
pane.items.attach.link.uri.file=Bir dosyaya bağlantı iliştirmek için lütfen “%S”'u kullanınız.
|
||||
pane.items.trash.title=Çöpe Gönder
|
||||
pane.items.trash=Seçili eseri çöpe göndermeyi istediğinize emin misiniz?
|
||||
pane.items.trash.multiple=Seçili eserleri çöpe göndermeyi istediğinize emin misiniz?
|
||||
pane.items.trash.title=Çöp Sepetine Gönder
|
||||
pane.items.trash=Seçili eseri Çöp Sepetine göndermeyi istediğinize emin misiniz?
|
||||
pane.items.trash.multiple=Seçili eserleri Çöp Sepetine göndermeyi istediğinize emin misiniz?
|
||||
pane.items.delete.title=Sil
|
||||
pane.items.delete=Seçili olan bu eseri silmek istediğinize emin misiniz?
|
||||
pane.items.delete.multiple=Seçili olan bu eserleri silmek istediğinize emin misiniz?
|
||||
pane.items.remove.title=Remove from Collection
|
||||
pane.items.remove=Are you sure you want to remove the selected item from this collection?
|
||||
pane.items.remove.multiple=Are you sure you want to remove the selected items from this collection?
|
||||
pane.items.menu.remove=Remove Item from Collection…
|
||||
pane.items.menu.remove.multiple=Remove Items from Collection…
|
||||
pane.items.menu.moveToTrash=Eseri sil...
|
||||
pane.items.menu.moveToTrash.multiple=Eserleri sil
|
||||
pane.items.remove.title=Dermeden Sil
|
||||
pane.items.remove=Seçili eseri, bu dermeden kaldırmak istediğinize emin misiniz?
|
||||
pane.items.remove.multiple=Seçili eserleri bu dermeden kaldırmak istediğinize emin misiniz?
|
||||
pane.items.menu.remove=Eseri Dermeden Sil...
|
||||
pane.items.menu.remove.multiple=Eserleri Dermeden Sil...
|
||||
pane.items.menu.moveToTrash=Eseri Çöp Sepetine Gönder...
|
||||
pane.items.menu.moveToTrash.multiple=Eserleri Çöp Sepetine Gönder...
|
||||
pane.items.menu.export=Seçili Eseri Dışarı Aktar...
|
||||
pane.items.menu.export.multiple=Seçili Eserleri Dışarı Aktar...
|
||||
pane.items.menu.createBib=Seçili Eserden Bibliyografya Yarat...
|
||||
|
@ -566,15 +566,15 @@ zotero.preferences.export.quickCopy.exportFormats=Dışarı Aktarım Biçimleri
|
|||
zotero.preferences.export.quickCopy.instructions=Çabuk Kopyala, bir kısayol tuşuna (%S) basarak seçilen kaynakların panoya kopyalanmasını ya da eserlerin bir web sayfasındaki bir metin kutusuna sürüklenebilmesini sağlar.
|
||||
zotero.preferences.export.quickCopy.citationInstructions=Bibliyografik stiller için, gönderme ve dipnotları, %S tuşuna basarak veya Shift/ÜstKarakter tuşuna basarken eserleri sürükleyerek kopyalayabilirsiniz.
|
||||
|
||||
zotero.preferences.wordProcessors.installationSuccess=Installation was successful.
|
||||
zotero.preferences.wordProcessors.installationError=Installation could not be completed because an error occurred. Please ensure that %1$S is closed, and then restart %2$S.
|
||||
zotero.preferences.wordProcessors.installed=The %S add-in is currently installed.
|
||||
zotero.preferences.wordProcessors.notInstalled=The %S add-in is not currently installed.
|
||||
zotero.preferences.wordProcessors.install=Install %S Add-in
|
||||
zotero.preferences.wordProcessors.reinstall=Reinstall %S Add-in
|
||||
zotero.preferences.wordProcessors.installing=Installing %S…
|
||||
zotero.preferences.wordProcessors.incompatibleVersions1=%1$S %2$S is incompatible with versions of %3$S before %4$S. Please remove %3$S, or download the latest version from %5$S.
|
||||
zotero.preferences.wordProcessors.incompatibleVersions2=%1$S %2$S requires %3$S %4$S or later to run. Please download the latest version of %3$S from %5$S.
|
||||
zotero.preferences.wordProcessors.installationSuccess=Kurulum başarıyla sonuçlandı.
|
||||
zotero.preferences.wordProcessors.installationError=Bir hata oluştuğu için kurulum tamamlanamadı. %1$S'ün kapalı olduğuna emin olduktan sonra %2$S'u yeniden başlatın.
|
||||
zotero.preferences.wordProcessors.installed=%S eklentisi kurulu.
|
||||
zotero.preferences.wordProcessors.notInstalled=%S eklentisi kurulu değil.
|
||||
zotero.preferences.wordProcessors.install=%S Eklentisini Kur
|
||||
zotero.preferences.wordProcessors.reinstall=%S Eklentisini Tekrar Kur
|
||||
zotero.preferences.wordProcessors.installing=%S Kuruluyor...
|
||||
zotero.preferences.wordProcessors.incompatibleVersions1=%1$S %2$S, %3$S uygulamasının %4$S sürümünden önceki sürümleri ile uyumsuz. Lütfen %3$S uygulamasını kaldırınız, ya da en yeni sürümü %5$S adresinden indiriniz.
|
||||
zotero.preferences.wordProcessors.incompatibleVersions2=%1$S %2$S doğru çalışabilmek için, %3$S uygulamasının %4$S sürümünü ya da sonraki sürümlerini gerektirmektedir. Lütfen %3$S uygulamasının en yeni sürümünü %5$S adresinden indiriniz.
|
||||
|
||||
zotero.preferences.styles.addStyle=Stil Ekle
|
||||
|
||||
|
@ -738,7 +738,7 @@ integration.missingItem.multiple=Zotero veritabanınızda, bu göndermedeki %1$S
|
|||
integration.missingItem.description="Hayır"ı tıklamak bu eseri içeren göndermelerin alan kodlarını silecek, gönderme metnini koruyacak, ama kaynakçanızdan silecektir.
|
||||
integration.removeCodesWarning=Alan kodlarının silinmesi Zotero'nun bu belgedeki göndermeleri ve kaynakçaları güncellemesini engelleyecektir. Devam etmek istediğinize emin misiniz?
|
||||
integration.upgradeWarning=Belgeniz Zotero 2.0b7 ve sonrası ile birlikte çalışabilmesi için kalıcı olarak yükseltilmelidir. İşlemi gerçekleştirmeden önce yedek almanız önerilir. Devam etmek istediğinize emin misiniz?
|
||||
integration.error.newerDocumentVersion=Your document was created with a newer version of Zotero (%1$S) than the currently installed version (%2$S). Please upgrade Zotero before editing this document.
|
||||
integration.error.newerDocumentVersion=Belgeniz şu an kurulu olan Zotero sürümünden (%2$S) daha yeni bir sürümle (%1$S) yaratılmış. Lütfen bu belgeyi değiştirmeden önce Zotero'yu yükseltiniz.
|
||||
integration.corruptField=Kitaplığınızdaki hangi eserde bu göndermenin temsil edildiğini Zotero'ya söyleyen bu göndermeye ilişkin Zotero alan kodu bozulmuştur. Eseri tekrar seçmek ister misiniz?
|
||||
integration.corruptField.description="Hayır"ı tıklamak bu eseri içeren göndermelerin alan kodlarını silecek, gönderme metnini koruyacak, ama bir olasılıkla kaynakçanızdan silecektir.
|
||||
integration.corruptBibliography=Kaynakçanızın Zotero alan kodu bozulmuştur. Zotero bu alan kodunu silerek yeni bir kaynakça oluştursun mu?
|
||||
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Grubu Kaldır ve Eşitle
|
|||
sync.localObject=Yerel Nesne
|
||||
sync.remoteObject=Uzak Nesne
|
||||
sync.mergedObject=Nesneyi Birleştir
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Kullanıcı adı yok
|
||||
sync.error.usernameNotSet.text=Zotero sunucusu ile eşitlenebilmek için Zotero tercihleri altında zotero.org kullanıcı adı ve parolanızı girmelisiniz.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Обнулити групи і синхронізува
|
|||
sync.localObject=Локальний об'єкт
|
||||
sync.remoteObject=Видалений об'єкт
|
||||
sync.mergedObject=Об'єднаний об'єкт
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Ім'я користувача не встановлено
|
||||
sync.error.usernameNotSet.text=Для синхронізації з сервером Zotero ви повинні ввести ім'я користувача та пароль для zotero.org в налаштуваннях Zotero.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=Remove Groups and Sync
|
|||
sync.localObject=Local Object
|
||||
sync.remoteObject=Remote Object
|
||||
sync.mergedObject=Merged Object
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=Username not set
|
||||
sync.error.usernameNotSet.text=You must enter your zotero.org username and password in the Zotero preferences to sync with the Zotero server.
|
||||
|
|
|
@ -160,7 +160,7 @@
|
|||
|
||||
<!ENTITY zotero.preferences.prefpane.advanced "高级">
|
||||
<!ENTITY zotero.preferences.advanced.filesAndFolders "文件和文件夹">
|
||||
<!ENTITY zotero.preferences.advanced.keys "Shortcuts">
|
||||
<!ENTITY zotero.preferences.advanced.keys "快捷键">
|
||||
|
||||
<!ENTITY zotero.preferences.prefpane.locate "定位">
|
||||
<!ENTITY zotero.preferences.locate.locateEngineManager "文章检索引擎管理器">
|
||||
|
|
|
@ -42,7 +42,7 @@ general.create=创建
|
|||
general.delete=删除
|
||||
general.moreInformation=更多信息
|
||||
general.seeForMoreInformation=查阅 %S 获取更多信息.
|
||||
general.open=Open %S
|
||||
general.open=打开 %S
|
||||
general.enable=启用
|
||||
general.disable=禁用
|
||||
general.remove=移除
|
||||
|
@ -204,11 +204,11 @@ pane.items.trash.multiple=您确定要将选中的条目移动到回收站吗?
|
|||
pane.items.delete.title=删除
|
||||
pane.items.delete=您确定要删除所选的条目吗?
|
||||
pane.items.delete.multiple=您确定要删除所选的条目吗?
|
||||
pane.items.remove.title=Remove from Collection
|
||||
pane.items.remove=Are you sure you want to remove the selected item from this collection?
|
||||
pane.items.remove.multiple=Are you sure you want to remove the selected items from this collection?
|
||||
pane.items.menu.remove=Remove Item from Collection…
|
||||
pane.items.menu.remove.multiple=Remove Items from Collection…
|
||||
pane.items.remove.title=从分类中移除
|
||||
pane.items.remove=您确定要从分类中移除所选的条目吗?
|
||||
pane.items.remove.multiple=您确定要从分类中移除所选的多个条目吗?
|
||||
pane.items.menu.remove=从分类中移除条目…
|
||||
pane.items.menu.remove.multiple=从分类中移除多个条目…
|
||||
pane.items.menu.moveToTrash=删除条目…
|
||||
pane.items.menu.moveToTrash.multiple=删除条目…
|
||||
pane.items.menu.export=导出条目...
|
||||
|
@ -566,13 +566,13 @@ zotero.preferences.export.quickCopy.exportFormats=导出格式
|
|||
zotero.preferences.export.quickCopy.instructions=便捷复制是通过快捷键 %S 将所选的条目复制到剪贴板上或通过鼠标拖放将条目粘贴到网页上的文本框中.
|
||||
zotero.preferences.export.quickCopy.citationInstructions=要复制文献的引用样式, 在复制引文或脚注前按快捷键%S或按住Shift键然后拖放条目.
|
||||
|
||||
zotero.preferences.wordProcessors.installationSuccess=Installation was successful.
|
||||
zotero.preferences.wordProcessors.installationError=Installation could not be completed because an error occurred. Please ensure that %1$S is closed, and then restart %2$S.
|
||||
zotero.preferences.wordProcessors.installed=The %S add-in is currently installed.
|
||||
zotero.preferences.wordProcessors.notInstalled=The %S add-in is not currently installed.
|
||||
zotero.preferences.wordProcessors.install=Install %S Add-in
|
||||
zotero.preferences.wordProcessors.reinstall=Reinstall %S Add-in
|
||||
zotero.preferences.wordProcessors.installing=Installing %S…
|
||||
zotero.preferences.wordProcessors.installationSuccess=安装成功。
|
||||
zotero.preferences.wordProcessors.installationError=由于发生错误,无法完成安装。请确保 %1$S 关闭,然后重新启动t %2$S。
|
||||
zotero.preferences.wordProcessors.installed=加载项 %S 现在已安装。
|
||||
zotero.preferences.wordProcessors.notInstalled=加载项 %S 现在未安装。
|
||||
zotero.preferences.wordProcessors.install=安装加载项 %S
|
||||
zotero.preferences.wordProcessors.reinstall=重新安装加载项 %S
|
||||
zotero.preferences.wordProcessors.installing=安装 %S…
|
||||
zotero.preferences.wordProcessors.incompatibleVersions1=%1$S %2$S is incompatible with versions of %3$S before %4$S. Please remove %3$S, or download the latest version from %5$S.
|
||||
zotero.preferences.wordProcessors.incompatibleVersions2=%1$S %2$S requires %3$S %4$S or later to run. Please download the latest version of %3$S from %5$S.
|
||||
|
||||
|
@ -738,7 +738,7 @@ integration.missingItem.multiple=高亮的引文中的条目 %1$S 已经不在
|
|||
integration.missingItem.description=点击“取消”将删除包含此条目的引文的域代码, 保留引用文本并从引文目录中删除.
|
||||
integration.removeCodesWarning=移除域代码将使 Zotero 无法更新本文档的引文及引文目录, 您确定要继续吗?
|
||||
integration.upgradeWarning=为使您的文档可以在 Zotero 2.1 或更新的版本中工作, 我们需要您永久升级您的文档. 在继续进行前, 我们建议您做一个备份. 您确定要继续吗?
|
||||
integration.error.newerDocumentVersion=Your document was created with a newer version of Zotero (%1$S) than the currently installed version (%2$S). Please upgrade Zotero before editing this document.
|
||||
integration.error.newerDocumentVersion=创建本文档的 Zotero 版本 (%1$S) 比当前安装的 Zotero 版本 (%2$S)新。编辑本文档前,请先升级 Zotero。
|
||||
integration.corruptField=本引文的域代码--负责通知 Zotero 本引文在文献库里所指向的条目--已经损坏. 您要重新选择该条目吗?
|
||||
integration.corruptField.description=点击“取消”将删除包含此条目的引文的域代码, 保留引用文本, 但可能将它从您的引文目录中删除.
|
||||
integration.corruptBibliography=引文目录的 Zotero 域代码已经损坏, 要 Zotero 清理域代码并重新生成引文目录吗?
|
||||
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=移除群组和同步
|
|||
sync.localObject=本地对象
|
||||
sync.remoteObject=远程对象
|
||||
sync.mergedObject=合并的对象
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=未设置用户名
|
||||
sync.error.usernameNotSet.text=要与Zotero服务器同步, 您需要在Zotero首选项面板中输入zotero.org的用户名及密码.
|
||||
|
|
|
@ -770,6 +770,9 @@ sync.removeGroupsAndSync=移除群組與同步
|
|||
sync.localObject=本機的物件
|
||||
sync.remoteObject=遠端的物件
|
||||
sync.mergedObject=合併的物件
|
||||
sync.merge.resolveAllLocal=Use the local version for all remaining conflicts
|
||||
sync.merge.resolveAllRemote=Use the remote version for all remaining conflicts
|
||||
|
||||
|
||||
sync.error.usernameNotSet=沒有設定使用者名稱
|
||||
sync.error.usernameNotSet.text=於 Zotero 偏好設定中一定得輸入 zotero.org 使用者名稱與密碼才能與 Zotero 伺服器同步。
|
||||
|
|
BIN
chrome/skin/default/zotero/arrow_refresh@2x.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 843 B |
BIN
chrome/skin/default/zotero/attach@2x.png
Normal file
After Width: | Height: | Size: 884 B |
|
@ -24,6 +24,13 @@
|
|||
list-style-image: url(chrome://zotero/skin/arrow_refresh.png);
|
||||
}
|
||||
|
||||
@media (min-resolution: 1.5dppx) {
|
||||
#reindex {
|
||||
list-style-image: url(chrome://zotero/skin/arrow_refresh@2x.png);
|
||||
width: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
#index-box > button
|
||||
{
|
||||
font-size: .95em;
|
||||
|
|
BIN
chrome/skin/default/zotero/cog@2x.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
chrome/skin/default/zotero/control_stop_blue@2x.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
chrome/skin/default/zotero/error@2x.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
chrome/skin/default/zotero/exclamation@2x.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
chrome/skin/default/zotero/locate-external-viewer@2x.png
Normal file
After Width: | Height: | Size: 901 B |
BIN
chrome/skin/default/zotero/locate-view-online@2x.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
chrome/skin/default/zotero/mac/toolbar-advanced-search@2x.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
chrome/skin/default/zotero/mac/toolbar-note-add@2x.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
|
@ -40,8 +40,9 @@ wizard > deck {
|
|||
padding: 0;
|
||||
}
|
||||
|
||||
#zotero-step-count {
|
||||
-moz-box-pack: end;
|
||||
|
||||
#resolve-all {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
#zotero-step-count label:first-child {
|
||||
|
|
|
@ -34,6 +34,17 @@
|
|||
height: 1.7em;
|
||||
}
|
||||
|
||||
/* As of Fx37, the tree doesn't scale HiDPI images properly on Windows and Linux */
|
||||
#zotero-collections-tree treechildren::-moz-tree-image,
|
||||
#zotero-items-tree treechildren::-moz-tree-image {
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
#zotero-collections-tree treechildren::-moz-tree-image(primary)
|
||||
{
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/*#zotero-collections-tree treechildren::-moz-tree-separator {
|
||||
border: none;
|
||||
}*/
|
||||
|
@ -283,11 +294,6 @@
|
|||
}
|
||||
|
||||
|
||||
#zotero-tb-tag-selector
|
||||
{
|
||||
list-style-image: url(chrome://zotero/skin/tag-selector.png);
|
||||
}
|
||||
|
||||
#zotero-collections-tree, #zotero-items-tree, #zotero-item-pane > groupbox
|
||||
{
|
||||
margin: 0;
|
||||
|
@ -404,7 +410,7 @@
|
|||
|
||||
.zotero-menuitem-attachments-file
|
||||
{
|
||||
list-style-image: url('chrome://zotero/skin/treeitem-attachment-file.png');
|
||||
list-style-image: url('chrome://zotero/skin/treeitem.png');
|
||||
}
|
||||
|
||||
.zotero-menuitem-attachments-link
|
||||
|
@ -666,4 +672,35 @@
|
|||
|
||||
.zotero-box-label {
|
||||
margin-left: 3px !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* BEGIN 2X BLOCK -- DO NOT EDIT MANUALLY -- USE 2XIZE */
|
||||
@media (min-resolution: 1.5dppx) {
|
||||
#zotero-tb-collection-add { list-style-image: url('chrome://zotero/skin/toolbar-collection-add@2x.png'); }
|
||||
#zotero-tb-actions-menu { list-style-image: url('chrome://zotero/skin/cog@2x.png'); }
|
||||
#zotero-tb-add { list-style-image: url('chrome://zotero/skin/toolbar-item-add@2x.png'); }
|
||||
#zotero-tb-attachment-add { list-style-image: url('chrome://zotero/skin/attach@2x.png'); }
|
||||
#zotero-tb-note-add { list-style-image: url('chrome://zotero/skin/toolbar-note-add@2x.png'); }
|
||||
#zotero-menuitem-note { list-style-image: url('chrome://zotero/skin/treeitem-note@2x.png'); }
|
||||
.zotero-menuitem-new-saved-search { list-style-image: url('chrome://zotero/skin/treesource-search@2x.png'); }
|
||||
.zotero-menuitem-show-duplicates { list-style-image: url('chrome://zotero/skin/treesource-duplicates@2x.png'); }
|
||||
.zotero-menuitem-show-unfiled { list-style-image: url('chrome://zotero/skin/treesource-unfiled@2x.png'); }
|
||||
.zotero-menuitem-new-collection { list-style-image: url('chrome://zotero/skin/toolbar-collection-add@2x.png'); }
|
||||
.zotero-menuitem-edit-collection { list-style-image: url('chrome://zotero/skin/toolbar-collection-edit@2x.png'); }
|
||||
.zotero-menuitem-delete-collection { list-style-image: url('chrome://zotero/skin/toolbar-collection-delete@2x.png'); }
|
||||
.zotero-menuitem-show-in-library { list-style-image: url('chrome://zotero/skin/treesource-library@2x.png'); }
|
||||
.zotero-menuitem-move-to-trash { list-style-image: url('chrome://zotero/skin/treesource-trash-full@2x.png'); }
|
||||
.zotero-menuitem-attach-note { list-style-image: url('chrome://zotero/skin/toolbar-note-add@2x.png'); }
|
||||
.zotero-menuitem-attach { list-style-image: url('chrome://zotero/skin/attach@2x.png'); }
|
||||
.zotero-menuitem-attachments-file { list-style-image: url('chrome://zotero/skin/treeitem@2x.png'); }
|
||||
.zotero-menuitem-attachments-link { list-style-image: url('chrome://zotero/skin/treeitem-attachment-link@2x.png'); }
|
||||
.zotero-menuitem-attachments-web-link { list-style-image: url('chrome://zotero/skin/treeitem-attachment-web-link@2x.png'); }
|
||||
.zotero-menuitem-create-report { list-style-image: url('chrome://zotero/skin/treeitem-report@2x.png'); }
|
||||
#zotero-tb-advanced-search { list-style-image: url('chrome://zotero/skin/toolbar-advanced-search@2x.png'); }
|
||||
#zotero-tb-locate { list-style-image: url('chrome://zotero/skin/toolbar-go-arrow@2x.png'); }
|
||||
#zotero-tb-sync-storage-cancel { list-style-image: url(chrome://zotero/skin/control_stop_blue@2x.png); margin-right: 0; }
|
||||
#zotero-tb-sync-error, #zotero-tb-sync-error[mode=warning] { list-style-image: url(chrome://zotero/skin/error@2x.png); }
|
||||
#zotero-tb-sync-error[mode=error] { list-style-image: url(chrome://zotero/skin/exclamation@2x.png); }
|
||||
#zotero-pane-stack[fullscreenmode="true"] #zotero-tb-fullscreen { list-style-image: url('chrome://zotero/skin/toolbar-fullscreen-top@2x.png'); }
|
||||
}
|
||||
|
|