Compare commits

...

119 commits
main ... 6.0.12

Author SHA1 Message Date
Dan Stillman
2d2e787111 Update translators 2022-08-15 08:32:57 -04:00
Dan Stillman
eaba3ae099 Update locales from Transifex 2022-08-15 08:32:17 -04:00
Dan Stillman
4746300d33 Update pdf-reader submodule 2022-08-15 08:24:17 -04:00
Dan Stillman
85b0c9dbad Fix importing of standalone attachments without URLs
And allow `importSnapshotFromFile()` without `parentItemID` or
`libraryID`, which is more consistent with other attachment functions

Follow-up to 318e4852e9

https://forums.zotero.org/discussion/comment/414802/#Comment_414802
2022-08-14 05:06:27 -04:00
Dan Stillman
318e4852e9 Fix importing of standalone attachments
Maybe has been broken for years?

https://forums.zotero.org/discussion/99020/warning-data-loss-when-exporting-collections
2022-08-13 16:23:00 -04:00
Dan Stillman
3dc3359cff Don't relate book sections to each other when creating from book
Fixes #2757
2022-08-13 05:45:23 -04:00
Dan Stillman
b505c630d3 Fix copying of standalone attachments between libraries
Regression in f684984b07 (maybe a race condition)
2022-08-13 02:00:41 -04:00
Dan Stillman
21b7baee35 Update translators 2022-08-12 00:38:19 -04:00
Dan Stillman
df59cee94a Update global schema for locales 2022-08-12 00:34:21 -04:00
Dan Stillman
d1275f9964 Update locales from Transifex and merge new English strings 2022-08-12 00:33:08 -04:00
Abe Jellinek
d4a7de2e8d
Add Book -> Book Section and Book Section -> Book to context menu (#2755) 2022-08-11 16:40:27 -04:00
Adomas Venčkauskas
864fd03c87 Prevent singlefile config from overwriting the Zotero.SingleFile namespace 2022-08-11 13:44:48 +03:00
Adomas Venčkauskas
d3cb7c86d9 Update SingleFile config for current version
They got updated upstream and the backwards-compat code
does not run for the way we execute singlefile

See https://github.com/gildas-lormeau/SingleFile/issues/1021
Addresses https://github.com/zotero/zotero-connectors/issues/398
2022-08-11 13:43:39 +03:00
Martynas Bagdonas
e4e3c72036 Fix PDF reader selector popup that was never opening 2022-08-11 12:18:32 +03:00
Martynas Bagdonas
0857cefb0c Fix regression preventing opening PDF reader window when the tab is open 2022-08-11 12:18:32 +03:00
Dan Stillman
9b7b4fe134 Improve test for event-title substitution
And add comments

Follow-up to 20d0f103f
2022-08-10 01:34:57 -04:00
Dan Stillman
a9c3fc7790 Reset Zotero.locale to 'en-US' after cite test 2022-08-10 01:01:48 -04:00
Dan Stillman
20d0f103fd Automatically substitute event-title for event in styles
Stopgap until styles are updated in citation-style-language/styles#6151
2022-08-10 01:01:48 -04:00
Abe Jellinek
20eca3781d Add test for 87455d 2022-08-08 11:48:33 -04:00
Abe Jellinek
87455d28c3 Item box: Fix fieldMode resetting after editor hidden twice
hideEditor() called switchCreatorMode() too early, setting the fieldMode
attribute on the soon-to-be-discarded textbox instead of the label
replacing it. Then, showing the editor a second time would carry over an
empty fieldMode attribute from the label to the new textbox. Hiding that
editor would update the creator in the item to fieldMode = 0 and trigger
a save.

Moving the switchCreatorMode() call does the trick, and the flex
settings changes still work fine when made there.
2022-08-08 10:56:56 -04:00
Abe Jellinek
2048319541
Advanced Search: Make sure items are loaded (#2743) 2022-08-06 15:00:33 -04:00
Dan Stillman
d03b0a716d Don't preselect Act for multiple sources in classic citation dialog
"Multiple Sources…" wasn't properly handled by 629892b0b8

https://forums.zotero.org/discussion/98877/act-instead-of-page
https://twitter.com/drezvera99/status/1554521940684984320
2022-08-06 02:29:26 -04:00
Abe Jellinek
bb2b37a73a Item box: Prevent tabbing to hidden fields
This one's probably been around for a while! Reproduce by creating an
item with a fieldMode = 1 creator, tabbing past the creator, and then
shift-tabbing back to it. Your cursor will end up in the invisible first
name field and further shift-tabs can't move it past.

Cherry-picked from fx102: 080ada78ee
2022-08-05 16:31:09 -04:00
Martynas Bagdonas
7ec54fdaa9 Select existing unloaded tab instead of opening a new one
Fixes #2740
2022-08-05 18:22:30 +03:00
Martynas Bagdonas
5a659b070d Allow to scroll tabs with mouse wheel
Fixes #2724
2022-07-29 13:06:33 +03:00
Abe Jellinek
ad96323881
Duplicates Merge: Preserve embedded annotations (#2728) 2022-07-29 05:06:44 -04:00
Adomas Venčkauskas
fc0f6157d0 Do not load-timeout on browser PDF download during content load
Closes #2726
2022-07-26 13:49:23 +03:00
Martynas Bagdonas
6733f2edca Freeze note schema version to 8
We can do it because it was only used to create a note from annotations.

No need to update schema version in Zotero client, unless using new
features when creating a note from annotations.
2022-07-25 18:04:00 +03:00
Martynas Bagdonas
e1997620a4 Fix regression that prevents showing the last selected tab on startup
Fixes #2723
2022-07-25 11:51:05 +03:00
Dan Stillman
a396771cbc Update version 2022-07-23 03:56:26 -04:00
Dan Stillman
0e0997078b Update global schema 2022-07-23 03:26:40 -04:00
Martynas Bagdonas
0785b3a086 Fix regression that prevents showing new notes in contextPane notes list 2022-07-21 13:27:32 +03:00
Adomas Venčkauskas
ba5cb7d5c6 Fixes some assets not being saved with SingleFile snapshots
Part of zotero/zotero-connectors#394

When saving an item (e.g. on arxiv) with a site translator, the
translator may add a custom snapshot attachment URL which does not match
the translation URL (the URL in the browser where translation was
initiated) in which case Zotero handles snapshot saving. Zotero loads
the page in a background browser. By default images are not loaded in
this browser. SingleFile due to CORS restrictions has to refetch all
resources that are not from the same domain or subdomain, but uses
pre-loaded resources (images) from the same domain. Before this change
any images that were from the same domain as the saved website were not
saved in the snapshot. This commit fixes that.
2022-07-20 14:28:56 +03:00
Adomas Venčkauskas
d822da4c06 Changes for updated SingleFile submodule 2022-07-20 14:28:56 +03:00
Adomas Venčkauskas
a297692487 Update SingleFile submodule 2022-07-20 14:28:56 +03:00
Dan Stillman
6921268dc0 Localize "Export PDF…" menu option
Fixes #2710
2022-07-20 01:04:00 -04:00
Dan Stillman
ba1906c054 Update version 2022-07-18 23:10:31 -04:00
Dan Stillman
b5be7cbd57 Update note-editor submodule 2022-07-18 19:47:23 -04:00
Dan Stillman
5c61815f36 Update translate submodule 2022-07-18 19:43:18 -04:00
Dan Stillman
b5ca5aed3a Update submodules 2022-07-18 19:14:24 -04:00
Dan Stillman
4b6598acc4 Update locales from Transifex 2022-07-18 08:57:41 -04:00
Dan Stillman
14a6ce000e Disable sort tests from 26a5e2900a for now
Until I can figure out the race-condition breakage they trigger later in
the file
2022-07-18 08:56:57 -04:00
Dan Stillman
9d0cd005f8 Increase Mendeley API timeout to 60 seconds
To see if we can fix the 30-second timeout here:

https://forums.zotero.org/discussion/comment/412750/#Comment_412750
2022-07-18 08:29:45 -04:00
Dan Stillman
26db75971e Update pdf-reader submodule 2022-07-18 03:51:09 -04:00
Dan Stillman
cc45e9019b Apply Big Sur styling when macOS version comes through correctly
Follow-up to zotero/zotero-standalone-build@f7a506a32 -- now that some
people are somehow getting an accurate macOS version number, we need to
apply the Big Sur CSS to all higher versions.

https://forums.zotero.org/discussion/98406/zotero-will-not-open-mac-os-monterey
2022-07-17 05:09:05 -04:00
Dan Stillman
98d6f40e4a Add warning in toolbar for 'dev' channel builds 2022-07-16 04:19:42 -04:00
Martynas Bagdonas
2cad5b00d1 Use Quick Copy (Markdown) for direct plain-text copying from note-editor
Fixes #2505
2022-07-15 15:06:19 +03:00
Abe Jellinek
95239db0fd Prevent deleting My Publications
Previously showed a blank confirmation dialog and logged an error.
2022-07-13 16:23:50 -04:00
Martynas Bagdonas
4c063e7b6e Prevent delayed context pane expansion and pdf-reader rerender/resize when switching from library tab 2022-07-12 18:00:21 +03:00
Martynas Bagdonas
07f1517712 Don't include quotes when {{highlight}} is placed in a blockquote
Fixes #2697
2022-07-12 12:12:21 +03:00
Martynas Bagdonas
f0e0971c69 Include quotation marks for highlights by default, but allow to disable
Fixes #2697
2022-07-11 15:32:02 +03:00
Dan Stillman
acba90f272 Fix test failure after 26a5e2900a 2022-07-11 05:19:18 -04:00
Dan Stillman
26a5e2900a Better fix for errors from invalid sort fields
Just catch the error from `ItemTree::sort()` and clear the
secondary-sort and fallback-sort prefs so that sorting works on the next
attempt.

Replacement for a8ed30ce80

https://groups.google.com/g/zotero-dev/c/kc0-C6-SA74/m/bhHniGceAQAJ
2022-07-11 01:30:38 -04:00
Dan Stillman
34d66381d1 Revert "Validate fields in ItemTree::getSortFields()"
This reverts commit a8ed30ce80 and related
commits.

We'll address breakage from invalid sort fields another way, without
inconveniencing plugin authors.

https://groups.google.com/g/zotero-dev/c/kc0-C6-SA74/m/bhHniGceAQAJ
2022-07-11 00:43:15 -04:00
Dan Stillman
f7dbcdde4b Sort empty rows last for Date/Year columns when descending
Date columns start in descending order, so put empty rows at end

Also remove a seemingly unnecessary exception for Title when not the
primary sort and just always sort it with empty rows first
2022-07-10 23:47:02 -04:00
Dan Stillman
c4563af381 Fix sorting of attachments and notes columns
Regression from a8ed30ce80
2022-07-10 23:26:36 -04:00
Dan Stillman
56e7f0a10f Fix sorting by Item Type and feed item itemID
Regression from a8ed30ce80
2022-07-10 17:31:01 -04:00
Dan Stillman
3a160b2630 Increase downloadPDFViaBrowser.onLoadTimeout to 3000
Apparently necessary for some people to get PDFs on ScienceDirect. We
should come up with a better way of detecting the page load if we can,
so that we can avoid this long of a timeout for people who just will
never have access to ScienceDirect PDFs.

https://forums.zotero.org/discussion/comment/411056/#Comment_411056

Addresses #2698
2022-07-10 06:40:32 -04:00
Dan Stillman
124c18d54d CookieSandbox: Fix error setting request cookies
Regression from 6af3b0276a, showing up as "trackedBy is undefined" error

https://forums.zotero.org/discussion/98322/no-snapshot-or-pdf-autosaved-using-zotero-connector-on-safari
2022-07-10 06:28:56 -04:00
Dan Stillman
57c582e171 Merge new English strings 2022-07-09 18:08:38 -04:00
Dan Stillman
cf8819cc06 Add localized string for timestamp CSL locator
Not included in the CSL locales:

https://forums.zotero.org/discussion/comment/412060/#Comment_412060
2022-07-09 18:07:07 -04:00
Dan Stillman
fe74b02d28 Merge new English strings 2022-07-09 01:56:56 -04:00
Dan Stillman
1dcc2728dd Tweak confirmation message for recursive collection-item removal
I guess the "its" is technically a little clearer, but it's a bit
awkward, and I think it's reasonably implied.
2022-07-09 01:54:07 -04:00
Dan Stillman
c5dbf0169f
Merge pull request #2693 from tnajdek/mendeley-import-improve-feedback
Multiple improvements to Mendeley importer
2022-07-09 01:43:50 -04:00
Abe Jellinek
3f282fc25f
recursiveCollections: Remove from all subcollections on delete (#2689) 2022-07-09 01:37:14 -04:00
Dan Stillman
7163a196f8 Update pdf-reader and pdf-worker submodules 2022-07-09 01:32:45 -04:00
Dan Stillman
8c0499468e Update locales from Transifex 2022-07-09 01:28:18 -04:00
Dan Stillman
629892b0b8 Add CSL 1.0.2 locators and switch to CSL locales for localization
And move Page to middle of list, while still selecting by default

https://forums.zotero.org/discussion/comment/396602/#Comment_396602
2022-07-09 01:00:07 -04:00
Dan Stillman
2ff67c987e Fix test failure after a8ed30ce8
We added a `toggleSort()` call on the title, so then when called again
it reverses the direction. To avoid, sort by creator and then title in
the second test.
2022-07-08 06:44:10 -04:00
Dan Stillman
a8ed30ce80 Validate fields in ItemTree::getSortFields()
To avoid startup hang if a plugin does something bad:

https://forums.zotero.org/discussion/comment/411843/#Comment_411843

Fixes #2692
2022-07-08 06:01:23 -04:00
Tom Najdek
43f15e7517
Improve log output for multiple Mendeley imports
Helps with debugging cases where new import is started while previous
one is still being cancelled
2022-07-07 13:40:40 +02:00
Tom Najdek
df11227e0a
Lint code related to Mendeley importer 2022-07-07 13:40:40 +02:00
Tom Najdek
d418d79e70
Fix a bug in regex extracting fields to "extra"
Because regex is built using a template string, \s* is actually escaped
into s*, i.e. literal "s" appearing 0 or more times. In most cases this
would mean that output can have spacing slightly off. In extreme case,
when identifier starts with letter "s", this could this could lead to
identifier being stored incorrectly.

Also adjusted tests to be more strict and mock data to cover this case.
2022-07-07 13:40:40 +02:00
Tom Najdek
42aebccbf4
Mendeley import: detect win close, better feedback
* Detect wizard cancel/close and interrupt import. This will still
  have to wait for current fetch (file or metadata) to complete but will
  then advance to the cleanup stage
* Advance progress bar during metadata fetch
* Add some extra logging
2022-07-07 13:40:33 +02:00
Tom Najdek
7b6e19435b
Don't try to remove temporary dir after import
Previously we had a structure that also created folders in temp dir,
that has since changed but code in cleanup phase to remove containing
dir has been accidentally left unremoved.
2022-07-07 10:09:53 +02:00
Martynas Bagdonas
f650f95081 Fix disabled "Add to Note" when a child note is open
Fixes #2687
2022-07-06 11:33:22 +03:00
Dan Stillman
0357026865 Update global schema and utilities for CSL 1.0.2 2022-07-05 01:34:10 -04:00
Martynas Bagdonas
92d89becc7 Adjust page rotation labels in PDF reader
Fixes #2669
2022-07-01 16:33:08 +03:00
Martynas Bagdonas
49f9642c0d Show parent item title for child notes in context pane
Fixes #2681
2022-07-01 15:32:14 +03:00
Dan Stillman
94372111f5 Update pdf-reader submodule 2022-07-01 04:32:42 -04:00
Martynas Bagdonas
f0b896d282
Implement smart notes switching in contextPane (#2671)
Fixes #2650
2022-07-01 03:28:20 -04:00
Dan Stillman
ec68216310 Update version 2022-06-24 01:05:08 -04:00
Dan Stillman
b215d93ac9 Update utilities submodule and date-parsing tests
Includes strToDate() fixes
2022-06-22 04:41:33 -04:00
Dan Stillman
bf1480f8f0 Update locales from Transifex 2022-06-21 23:05:20 -04:00
Dan Stillman
6f089445a5 Update translators 2022-06-21 22:17:44 -04:00
Martynas Bagdonas
14e62ee34f Update pdf-reader and note-editor, use specific prebuilds, tweak code 2022-06-17 16:47:53 +03:00
Adomas Venčkauskas
43c86c0e58 Limit the force-click during drag fix to macOS (4fb0661b) 2022-06-15 09:08:30 +03:00
Adomas Venčkauskas
6f3f5d2ea8 Fix alt-arrow not working on macOS when editing collection names.
Fixes #2651
2022-06-14 14:27:34 +03:00
Adomas Venčkauskas
4fb0661b50 Fix force-click during drag sometimes causing collections to switch
Closes #2652
2022-06-14 14:18:36 +03:00
Abe Jellinek
57ab92b5b9 Fix error if New Collection prompt is canceled 2022-06-09 18:32:14 -05:00
Dan Stillman
7b20972c27 Use String.fromCharCode() to load Chinese characters in strToDate() test
Follow-up to dc045250a6
2022-06-09 00:03:34 -04:00
Dan Stillman
dc045250a6 Fix parsing of Chinese and other non-ASCII month names
https://forums.zotero.org/discussion/97683/bug-locale-issues-concerning-zotero-and-zotero-connector
2022-06-08 23:45:18 -04:00
Dan Stillman
256bd157ed Properly strip ZWJ in isOnlyEmoji() 2022-06-07 20:36:48 -04:00
Dan Stillman
2b45b7fea3 Fix Emoji detection
And move to Zotero.Utilities.Internal.isOnlyEmoji()

Fixes #2643
2022-06-07 20:12:29 -04:00
Dan Stillman
1d5fd1308a Update styles submodule 2022-06-07 03:36:10 -04:00
Abe Jellinek
d8069fac50
Fix sorting by attachment (#2586) 2022-06-07 01:32:27 -04:00
Dan Stillman
18516a33d9 Update locales from Transifex and merge new English strings 2022-06-07 01:25:57 -04:00
Dan Stillman
b658f09dd8 citeproc-js: Add space after left margin in plain-text mode
This adds a space after the the number in some numeric styles ("[1]" in
IEEE style, "1." in Nature) when pasting bibliography entries into a
plain-text editor.

Some styles (ACS, AMA, Vancouver) will need to be updated to remove
their hard-coded spaces to avoid double spaces after this change.

Patch from @zepinglee

Fixes #2633
2022-06-07 00:57:01 -04:00
Martynas Bagdonas
5799bdd554
Add support for PDF page deletion and rotation (#2595)
* Add support for PDF page deletion and rotation
Fixes #2561
2022-06-07 00:53:37 -04:00
Adomas Venčkauskas
62c7b4db2b Log full hidden browser count after its creation 2022-06-06 12:50:21 +03:00
Adomas Venčkauskas
caa0b05e5f Fix a MIMETypeHandler.removeHandler() bug 2022-06-06 12:49:58 +03:00
Adomas Venčkauskas
5095543bef Improve downloadPDFViaBrowser handlers and logging 2022-06-06 12:49:28 +03:00
Adomas Venčkauskas
6af3b0276a Fix cookieSandbox not overriding user agent if no cookies for domain.
Potential fix for #2635
2022-06-06 12:48:29 +03:00
Martynas Bagdonas
67700f8a2c Fix library tab tooltip always staying on top 2022-05-31 15:37:30 +03:00
Dan Stillman
d12f3eda61 Fix detection of some emoji set as colored tags
Emoji such as ⭐️ that began as text-based Unicode characters and depend
on Variation Selector-16 to display the emoji presentation weren't being
properly detected.
2022-05-26 06:53:36 -04:00
Dan Stillman
deabf3f042 Fix support tests after 28ed3e34b 2022-05-24 04:32:05 -04:00
Dan Stillman
28ed3e34b5 Update global schema
Includes the Preprint archiveID/number mapping for #2481
2022-05-24 03:43:36 -04:00
Dan Stillman
354183c25d Update locales from Transifex 2022-05-24 03:43:36 -04:00
Dan Stillman
b0f69ef7e3 Update note-editor submodule 2022-05-23 16:19:20 -04:00
Dan Stillman
ebc23d73b0 Add prefs for timeouts for downloading PDF via browser
1 second isn't enough for some users, so try 1.5, and allow for easier
debugging via a pref.

https://forums.zotero.org/discussion/96431/i-have-access-to-pdf-but-zotero-cannot-automatically-add-it
https://forums.zotero.org/discussion/97277/unable-to-download-papers-using-zotero-chrome-extension
2022-05-20 05:01:57 -04:00
Dan Stillman
419f74379b Feed import: Don't fail on OPML entry with no title or text
https://forums.zotero.org/discussion/96841/impossible-dimporter-ompl-rss
2022-05-20 00:33:25 -04:00
Dan Stillman
603b843f71 Update version 2022-05-17 23:54:20 -04:00
Dan Stillman
1e3959020d Update note-editor submodule 2022-05-17 04:57:06 -04:00
Martynas Bagdonas
3fd0abf6b0 Avoid error interrupting annotation extraction from multiple items 2022-05-16 13:42:44 +03:00
Dan Stillman
111a254696 Update locales from Transifex 2022-05-16 00:56:22 -04:00
Dan Stillman
69616500d8 Update translators, styles, and CSL locales 2022-05-16 00:56:13 -04:00
Dan Stillman
693f9a7e1b Try to open external PDF reader to page number for "Show on Page"
PDF-handling code from `ZoteroPane.viewAttachment()` predates
`Zotero.OpenPDF` and didn't handle page numbers for external PDF
readers, so when called from "Show on Page" in a note (via
`ZoteroPane.viewPDF()`) it just launched the file itself in the
specified handler or via the OS.

For now, change to use `Zotero.OpenPDF.openToPage()` when there's a page
number. Later we should use `Zotero.OpenPDF` for everything, but that
code is more complicated than just using `launchFile()`, so we'll need
to do some testing (particularly on Linux) to see what's best.

(Note that "Show on Page" with an external reader doesn't make a ton of
sense, since you can't actually see the annotation, but opening the
right page is better than nothing.)

Fixes #2612
2022-05-15 04:28:30 -04:00
Abe Jellinek
0c0afb129b Scaffold templates: Pull URL from doc
Link URLs could lead to redirects.
2022-05-12 14:49:30 -07:00
Abe Jellinek
a11c5987ad Fix Scaffold load error when fontSize pref is set 2022-05-10 09:10:13 -07:00
232 changed files with 5354 additions and 3658 deletions

View file

@ -7,8 +7,9 @@ content zotero-platform chrome/content/zotero-platform/unix/ os=FreeBSD
content zotero-platform chrome/content/zotero-platform/unix/ os=OpenBSD content zotero-platform chrome/content/zotero-platform/unix/ os=OpenBSD
content zotero-platform-version chrome/content/zotero-platform/default-version/ content zotero-platform-version chrome/content/zotero-platform/default-version/
# Big Sur shows up as 10.16 when linked against 10.11 # Big Sur and later show up as 10.16 when linked against 10.11
content zotero-platform-version chrome/content/zotero-platform/mac-big-sur/ os=Darwin osversion=10.16 # (Usually: https://forums.zotero.org/discussion/98406/zotero-will-not-open-mac-os-monterey)
content zotero-platform-version chrome/content/zotero-platform/mac-big-sur/ os=Darwin osversion>=10.16
#content zotero-platform-version chrome/content/zotero-platform/mac-big-sur/ os=Darwin #content zotero-platform-version chrome/content/zotero-platform/mac-big-sur/ os=Darwin
resource zotero resource/ resource zotero resource/

View file

@ -98,16 +98,7 @@ var Scaffold = new function () {
); );
} }
}); });
// Set font size from general pref
Zotero.setFontSize(document.getElementById('scaffold-pane'));
// Set font size of code editor
var size = Zotero.Prefs.get("scaffold.fontSize");
if (size) {
this.setFontSize(size);
}
this.generateTranslatorID(); this.generateTranslatorID();
// Add List fields help menu entries for all other item types // Add List fields help menu entries for all other item types
@ -146,6 +137,15 @@ var Scaffold = new function () {
this.initCodeEditor(); this.initCodeEditor();
this.initTestsEditor(); this.initTestsEditor();
// Set font size from general pref
Zotero.setFontSize(document.getElementById('scaffold-pane'));
// Set font size of code editor
var size = Zotero.Prefs.get("scaffold.fontSize");
if (size) {
this.setFontSize(size);
}
// Listen for Scaffold coming to the foreground and reload translators // Listen for Scaffold coming to the foreground and reload translators
window.addEventListener('activate', () => this.reloadTranslators()); window.addEventListener('activate', () => this.reloadTranslators());

View file

@ -57,7 +57,7 @@ async function doWeb(doc, url) {
if (items) { if (items) {
await Promise.all( await Promise.all(
Object.keys(items) Object.keys(items)
.map(url => requestDocument(url).then(doc => scrape(doc, url))) .map(url => requestDocument(url).then(scrape))
); );
} }
} }
@ -65,3 +65,8 @@ async function doWeb(doc, url) {
await scrape(doc, url); await scrape(doc, url);
} }
} }
function scrape(doc, url = doc.location.href) {
// TODO: implement or add a scrape function template
}

View file

@ -1,4 +1,4 @@
async function scrape(doc, url) { async function scrape(doc, url = doc.location.href) {
// TODO adjust the url building // TODO adjust the url building
let m = url.match(/FId=([\w\d]+)&/); let m = url.match(/FId=([\w\d]+)&/);
if (m) { if (m) {

View file

@ -1,4 +1,4 @@
async function scrape(doc, url) { async function scrape(doc, url = doc.location.href) {
let translator = Zotero.loadTranslator('web'); let translator = Zotero.loadTranslator('web');
// Embedded Metadata // Embedded Metadata
translator.setTranslator('951c027d-74ac-47d4-a107-9c3069ab7b48'); translator.setTranslator('951c027d-74ac-47d4-a107-9c3069ab7b48');

View file

@ -1,4 +1,4 @@
async function scrape(doc, url) { async function scrape(doc, url = doc.location.href) {
// TODO adjust the selector for the lines here // TODO adjust the selector for the lines here
let lines = doc.querySelectorAll('table#marcData tr'); let lines = doc.querySelectorAll('table#marcData tr');

View file

@ -1,4 +1,4 @@
async function scrape(doc, url) { async function scrape(doc, url = doc.location.href) {
let DOI = url.match(/\/(10\.[^#?]+)/)[1]; let DOI = url.match(/\/(10\.[^#?]+)/)[1];
// TODO adjust the URL here // TODO adjust the URL here
let risURL = `http://citation-needed.services.springer.com/v2/references/${DOI}?format=refman&flavour=citation`; let risURL = `http://citation-needed.services.springer.com/v2/references/${DOI}?format=refman&flavour=citation`;

View file

@ -96,6 +96,8 @@ var ZoteroAdvancedSearch = new function() {
ref: _searchBox.search, ref: _searchBox.search,
isSearchMode: () => true, isSearchMode: () => true,
getItems: async function () { getItems: async function () {
await Zotero.Libraries.get(_libraryID).waitForDataLoad('item');
var search = _searchBox.search.clone(); var search = _searchBox.search.clone();
search.libraryID = _libraryID; search.libraryID = _libraryID;
var ids = await search.search(); var ids = await search.search();

View file

@ -1932,8 +1932,6 @@
newVal = val; newVal = val;
// Reset creator mode settings here so that flex attribute gets reset
this.switchCreatorMode(row, (otherFields.fieldMode ? 1 : 0), true);
if (Zotero.ItemTypes.getName(this.item.itemTypeID) === "bookSection") { if (Zotero.ItemTypes.getName(this.item.itemTypeID) === "bookSection") {
var creatorTypeLabels = document.getAnonymousNodes(this)[0].getElementsByClassName("creator-type-label"); var creatorTypeLabels = document.getAnonymousNodes(this)[0].getElementsByClassName("creator-type-label");
Zotero.debug(creatorTypeLabels[creatorTypeLabels.length-1] + ""); Zotero.debug(creatorTypeLabels[creatorTypeLabels.length-1] + "");
@ -2018,6 +2016,11 @@
// Disassociate textbox from label // Disassociate textbox from label
label.setAttribute('control', elem.getAttribute('id')); label.setAttribute('control', elem.getAttribute('id'));
if (field == 'creator') {
// Set correct flex settings and fieldMode attribute
this.switchCreatorMode(row, (otherFields.fieldMode ? 1 : 0), true);
}
if (this.saveOnEdit) { if (this.saveOnEdit) {
await this.item.saveTx(); await this.item.saveTx();
} }
@ -2295,6 +2298,18 @@
</method> </method>
<method name="focusField">
<parameter name="fieldName"/>
<body>
<![CDATA[
let field = document.getAnonymousNodes(this)[0].querySelector(`[fieldname="${fieldName}"][ztabindex]`);
if (!field) return false;
return this._focusNextField(field.getAttribute('ztabindex'));
]]>
</body>
</method>
<!-- <!--
Advance the field focus forward or backward Advance the field focus forward or backward
@ -2323,7 +2338,9 @@
if (back) { if (back) {
Zotero.debug('Looking for previous tabindex before ' + tabindex, 4); Zotero.debug('Looking for previous tabindex before ' + tabindex, 4);
for (let i = tabbableFields.length - 1; i >= 0; i--) { for (let i = tabbableFields.length - 1; i >= 0; i--) {
if (parseInt(tabbableFields[i].getAttribute('ztabindex')) < tabindex) { let field = tabbableFields[i];
let tabIndexHere = parseInt(field.getAttribute('ztabindex'));
if (tabIndexHere !== -1 && tabIndexHere < tabindex) {
next = tabbableFields[i]; next = tabbableFields[i];
break; break;
} }
@ -2332,7 +2349,9 @@
else { else {
Zotero.debug('Looking for tabindex ' + tabindex, 4); Zotero.debug('Looking for tabindex ' + tabindex, 4);
for (var pos = 0; pos < tabbableFields.length; pos++) { for (var pos = 0; pos < tabbableFields.length; pos++) {
if (parseInt(tabbableFields[pos].getAttribute('ztabindex')) >= tabindex) { let field = tabbableFields[pos];
let tabIndexHere = parseInt(field.getAttribute('ztabindex'));
if (tabIndexHere !== -1 && tabIndexHere >= tabindex) {
next = tabbableFields[pos]; next = tabbableFields[pos];
break; break;
} }

View file

@ -353,15 +353,16 @@
<body> <body>
<![CDATA[ <![CDATA[
(async () => { (async () => {
let n = 0;
while (!this._editorInstance && n++ < 100) {
await Zotero.Promise.delay(10);
}
await this._editorInstance._initPromise;
this._iframe.focus();
try { try {
let n = 0;
while (!this._editorInstance && n++ < 100) {
await Zotero.Promise.delay(10);
}
await this._editorInstance._initPromise;
this._iframe.focus();
this._editorInstance._iframeWindow.document.querySelector('.toolbar-button-return').focus(); this._editorInstance._iframeWindow.document.querySelector('.toolbar-button-return').focus();
} catch(e) { }
catch (e) {
} }
})(); })();
]]> ]]>

View file

@ -839,6 +839,7 @@ var CollectionTree = class CollectionTree extends LibraryTree {
* @param ids {String[]} list of row ids to be highlighted * @param ids {String[]} list of row ids to be highlighted
*/ */
async setHighlightedRows(ids) { async setHighlightedRows(ids) {
if (this._editing) return;
try { try {
this._highlightedRows = new Set(); this._highlightedRows = new Set();
@ -1614,7 +1615,7 @@ var CollectionTree = class CollectionTree extends LibraryTree {
return false; return false;
} }
let newAttachment = Zotero.Attachments.copyAttachmentToLibrary(item, targetLibraryID); let newAttachment = await Zotero.Attachments.copyAttachmentToLibrary(item, targetLibraryID);
if (options.annotations) { if (options.annotations) {
await Zotero.Items.copyChildItems(item, newAttachment); await Zotero.Items.copyChildItems(item, newAttachment);
} }

View file

@ -48,7 +48,7 @@ function AnnotationBox({ data }) {
<div className="title">{Zotero.getString('itemTypes.annotation')}</div> <div className="title">{Zotero.getString('itemTypes.annotation')}</div>
<div className="container"> <div className="container">
<div className="header"> <div className="header">
<div>{Zotero.getString('citation.locator.page')} {data.pageLabel}</div> <div>{Zotero.Cite.getLocatorString('page')} {data.pageLabel}</div>
</div> </div>
{data.text !== undefined {data.text !== undefined
? <div className="text" style={textStyle}>{data.text}</div> ? <div className="text" style={textStyle}>{data.text}</div>

View file

@ -235,7 +235,7 @@ const TabBar = forwardRef(function (props, ref) {
function handleWheel(event) { function handleWheel(event) {
// Normalize wheel speed // Normalize wheel speed
let x = event.deltaX; let x = event.deltaX || event.deltaY;
if (x && event.deltaMode) { if (x && event.deltaMode) {
if (event.deltaMode === 1) { if (event.deltaMode === 1) {
x *= 20; x *= 20;
@ -302,7 +302,10 @@ const TabBar = forwardRef(function (props, ref) {
onWheel={handleWheel} onWheel={handleWheel}
> >
<div className="pinned-tabs"> <div className="pinned-tabs">
<div className="tabs"> <div
className="tabs"
onMouseOut={handleTabBarMouseOut}
>
{tabs.length ? renderTab(tabs[0], 0) : null} {tabs.length ? renderTab(tabs[0], 0) : null}
</div> </div>
</div> </div>

View file

@ -660,7 +660,14 @@ class VirtualizedTable extends React.Component {
this._isMouseDrag = true; this._isMouseDrag = true;
} }
_onDragEnd = () => { _onDragEnd = async () => {
// macOS force-click sometimes causes a second mouseup event to be fired some time later
// causing a collection change on dragend, so we add a delay here. It shouldn't cause any issues
// because isMouseDrag is only used in mouseup handler to exactly prevent from accidentally switching
// selection after dragend.
if (Zotero.isMac) {
await Zotero.Promise.delay(500);
}
this._isMouseDrag = false; this._isMouseDrag = false;
} }

View file

@ -51,7 +51,10 @@ var ZoteroContextPane = new function () {
var _itemContexts = []; var _itemContexts = [];
var _notesContexts = []; var _notesContexts = [];
var _globalDeckIndex = [];
var _preventGlobalDeckChange = false;
// Using attribute instead of property to set 'selectedIndex' // Using attribute instead of property to set 'selectedIndex'
// is more reliable // is more reliable
@ -176,6 +179,20 @@ var ZoteroContextPane = new function () {
if (Zotero_Tabs.deck.children.length == 1) { if (Zotero_Tabs.deck.children.length == 1) {
_notesContexts.forEach(x => x.notesListRef.current.setExpanded(false)); _notesContexts.forEach(x => x.notesListRef.current.setExpanded(false));
} }
// Close tab specific notes if tab id no longer exists, but
// do that only when unloaded tab is reloaded
setTimeout(() => {
var contextNodes = Array.from(_notesPaneDeck.children);
for (let contextNode of contextNodes) {
var nodes = Array.from(contextNode.querySelector('.zotero-context-pane-tab-notes-deck').children);
for (let node of nodes) {
var tabID = node.getAttribute('data-tab-id');
if (!document.getElementById(tabID)) {
node.remove();
}
}
}
});
} }
else if (action == 'select') { else if (action == 'select') {
// It seems that changing `hidden` or `collapsed` values might // It seems that changing `hidden` or `collapsed` values might
@ -188,6 +205,14 @@ var ZoteroContextPane = new function () {
_tabCover.hidden = true; _tabCover.hidden = true;
} }
else if (Zotero_Tabs.selectedType == 'reader') { else if (Zotero_Tabs.selectedType == 'reader') {
if (_panesDeck.selectedIndex == 1
&& _notesPaneDeck.selectedPanel.selectedIndex != 2
&& !_preventGlobalDeckChange) {
let libraryID = _notesPaneDeck.selectedPanel.getAttribute('data-library-id');
_globalDeckIndex[libraryID] = _notesPaneDeck.selectedPanel.selectedIndex;
}
_preventGlobalDeckChange = false;
var reader = Zotero.Reader.getByTabID(Zotero_Tabs.selectedID); var reader = Zotero.Reader.getByTabID(Zotero_Tabs.selectedID);
if (reader) { if (reader) {
_tabCover.hidden = false; _tabCover.hidden = false;
@ -207,11 +232,25 @@ var ZoteroContextPane = new function () {
var notesContext = _getNotesContext(attachment.libraryID); var notesContext = _getNotesContext(attachment.libraryID);
notesContext.updateFromCache(); notesContext.updateFromCache();
} }
let tabNotesDeck = _notesPaneDeck.selectedPanel.querySelector('.zotero-context-pane-tab-notes-deck');
let selectedIndex = Array.from(tabNotesDeck.children).findIndex(x => x.getAttribute('data-tab-id') == ids[0]);
if (selectedIndex != -1) {
tabNotesDeck.setAttribute('selectedIndex', selectedIndex);
_notesPaneDeck.selectedPanel.setAttribute('selectedIndex', 2);
}
else {
let libraryID = _notesPaneDeck.selectedPanel.getAttribute('data-library-id');
_notesPaneDeck.selectedPanel.setAttribute('selectedIndex', _globalDeckIndex[libraryID] || 0);
}
})(); })();
} }
_contextPaneSplitter.setAttribute('hidden', false); _contextPaneSplitter.setAttribute('hidden', false);
// It seems that on heavy load (i.e. syncing) the line below doesn't set the correct value
_contextPane.setAttribute('collapsed', !(_contextPaneSplitter.getAttribute('state') != 'collapsed'));
// It seems that on heavy load (i.e. syncing) the line below doesn't set the correct value,
// therefore we repeat the same operation at the end of JS message queue
setTimeout(() => { setTimeout(() => {
_contextPane.setAttribute('collapsed', !(_contextPaneSplitter.getAttribute('state') != 'collapsed')); _contextPane.setAttribute('collapsed', !(_contextPaneSplitter.getAttribute('state') != 'collapsed'));
}); });
@ -243,9 +282,14 @@ var ZoteroContextPane = new function () {
if (splitter.getAttribute('state') != 'collapsed') { if (splitter.getAttribute('state') != 'collapsed') {
if (_panesDeck.selectedIndex == 1) { if (_panesDeck.selectedIndex == 1) {
var node = _notesPaneDeck.selectedPanel; var libraryContext = _notesPaneDeck.selectedPanel;
if (node.selectedIndex == 1) { // Global note
return node.querySelector('zoteronoteeditor'); if (libraryContext.selectedIndex == 1) {
return libraryContext.querySelector('zoteronoteeditor');
}
// Tab specific child note
else if (libraryContext.selectedIndex == 2) {
return libraryContext.querySelector('.zotero-context-pane-tab-notes-deck').selectedPanel.querySelector('zoteronoteeditor');
} }
} }
} }
@ -419,12 +463,21 @@ var ZoteroContextPane = new function () {
editor.className = 'zotero-context-pane-pinned-note'; editor.className = 'zotero-context-pane-pinned-note';
editor.setAttribute('flex', 1); editor.setAttribute('flex', 1);
noteContainer.append(title, editor); noteContainer.append(title, editor);
var tabNotesContainer = document.createElement('vbox');
var title = document.createElement('vbox');
title.className = 'zotero-context-pane-editor-parent-line';
let tabNotesDeck = document.createElement('deck');
tabNotesDeck.className = 'zotero-context-pane-tab-notes-deck';
tabNotesDeck.setAttribute('flex', 1);
tabNotesContainer.append(title, tabNotesDeck);
let contextNode = document.createElement('deck'); let contextNode = document.createElement('deck');
contextNode.append(list, noteContainer); contextNode.append(list, noteContainer, tabNotesContainer);
_notesPaneDeck.append(contextNode); _notesPaneDeck.append(contextNode);
contextNode.className = 'context-node'; contextNode.className = 'context-node';
contextNode.setAttribute('data-library-id', libraryID);
contextNode.setAttribute('selectedIndex', 0); contextNode.setAttribute('selectedIndex', 0);
editor.returnHandler = () => { editor.returnHandler = () => {
@ -440,16 +493,18 @@ var ZoteroContextPane = new function () {
if (!attachment) { if (!attachment) {
return; return;
} }
var note = await Zotero.EditorInstance.createNoteFromAnnotations( var annotations = attachment.getAnnotations().filter(x => x.annotationType != 'ink');
attachment.getAnnotations().filter(x => x.annotationType != 'ink'), child && attachment.parentID if (!annotations.length) {
); return;
}
var note = await Zotero.EditorInstance.createNoteFromAnnotations(annotations, child && attachment.parentID);
_updateAddToNote(); _updateAddToNote();
input.value = ''; input.value = '';
_updateNotesList(); _updateNotesList();
_setPinnedNote(note.id); _setPinnedNote(note);
} }
function _createNote(child) { function _createNote(child) {
@ -463,10 +518,7 @@ var ZoteroContextPane = new function () {
} }
item.parentID = attachment.parentID; item.parentID = attachment.parentID;
} }
editor.mode = 'edit'; _setPinnedNote(item);
editor.item = item;
editor.parentItem = null;
editor.focus();
_updateAddToNote(); _updateAddToNote();
input.value = ''; input.value = '';
@ -672,7 +724,10 @@ var ZoteroContextPane = new function () {
<NotesList <NotesList
ref={notesListRef} ref={notesListRef}
onClick={(id) => { onClick={(id) => {
_setPinnedNote(id); let item = Zotero.Items.get(id);
if (item) {
_setPinnedNote(item);
}
}} }}
onContextMenu={(id, event) => { onContextMenu={(id, event) => {
document.getElementById('context-pane-list-move-to-trash').setAttribute('disabled', readOnly); document.getElementById('context-pane-list-move-to-trash').setAttribute('disabled', readOnly);
@ -727,21 +782,63 @@ var ZoteroContextPane = new function () {
return !Zotero.Libraries.get(libraryID).editable; return !Zotero.Libraries.get(libraryID).editable;
} }
function _setPinnedNote(itemID) { function _setPinnedNote(item) {
var item = Zotero.Items.get(itemID);
if (!item) {
return;
}
var readOnly = _isLibraryReadOnly(item.libraryID); var readOnly = _isLibraryReadOnly(item.libraryID);
var context = _getNotesContext(item.libraryID); var context = _getNotesContext(item.libraryID);
if (context) { if (context) {
var { editor, node } = context; var { editor, node } = context;
node.setAttribute('selectedIndex', 1);
editor.mode = readOnly ? 'view' : 'edit'; let isChild = false;
editor.item = item; var reader = Zotero.Reader.getByTabID(Zotero_Tabs.selectedID);
editor.parentItem = null; if (reader) {
let attachment = Zotero.Items.get(reader.itemID);
node.querySelector('.zotero-context-pane-editor-parent-line').innerHTML = ''; if (attachment.parentItemID == item.parentItemID) {
isChild = true;
}
}
var tabNotesDeck = _notesPaneDeck.selectedPanel.querySelector('.zotero-context-pane-tab-notes-deck');
var parentTitleContainer;
if (isChild) {
var vbox = document.createElement('vbox');
vbox.setAttribute('data-tab-id', Zotero_Tabs.selectedID);
vbox.style.display = 'flex';
editor = document.createElement('zoteronoteeditor');
editor.style.display = 'flex';
editor.style.width = '100%';
vbox.append(editor);
tabNotesDeck.append(vbox);
editor.mode = readOnly ? 'view' : 'edit';
editor.item = item;
editor.parentItem = null;
editor.returnHandler = () => {
_panesDeck.setAttribute('selectedIndex', 1);
_notesPaneDeck.selectedPanel.setAttribute('selectedIndex', 0);
vbox.remove();
_updateAddToNote();
_preventGlobalDeckChange = true;
};
_notesPaneDeck.selectedPanel.setAttribute('selectedIndex', 2);
tabNotesDeck.setAttribute('selectedIndex', tabNotesDeck.children.length - 1);
parentTitleContainer = _notesPaneDeck.selectedPanel.children[2].querySelector('.zotero-context-pane-editor-parent-line');
}
else {
node.setAttribute('selectedIndex', 1);
editor.mode = readOnly ? 'view' : 'edit';
editor.item = item;
editor.parentItem = null;
parentTitleContainer = node.querySelector('.zotero-context-pane-editor-parent-line');
}
editor.focus();
parentTitleContainer.innerHTML = '';
var parentItem = item.parentItem; var parentItem = item.parentItem;
if (parentItem) { if (parentItem) {
var container = document.createElementNS(HTML_NS, 'div'); var container = document.createElementNS(HTML_NS, 'div');
@ -752,7 +849,7 @@ var ZoteroContextPane = new function () {
title.append(parentItem.getDisplayTitle()); title.append(parentItem.getDisplayTitle());
title.className = 'parent-title'; title.className = 'parent-title';
container.append(img, title); container.append(img, title);
node.querySelector('.zotero-context-pane-editor-parent-line').append(container); parentTitleContainer.append(container);
} }
_updateAddToNote(); _updateAddToNote();
} }

View file

@ -57,7 +57,12 @@ var Zotero_Import_Wizard = {
Zotero.Translators.init(); // async Zotero.Translators.init(); // async
}, },
onCancel: function () {
if (this._translation && this._translation.interrupt) {
this._translation.interrupt();
}
},
onModeChosen: async function () { onModeChosen: async function () {
var wizard = this._wizard; var wizard = this._wizard;

View file

@ -10,6 +10,7 @@
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/1999/xhtml"
title="&zotero.import;" title="&zotero.import;"
onwizardcancel="Zotero_Import_Wizard.onCancel()"
onload="Zotero_Import_Wizard.init()"> onload="Zotero_Import_Wizard.init()">
<script src="../include.js"/> <script src="../include.js"/>

View file

@ -33,7 +33,7 @@ const getNextLinkFromResponse = (response) => {
const apiFetchUrl = async (tokens, url, headers = {}, options = {}) => { const apiFetchUrl = async (tokens, url, headers = {}, options = {}) => {
headers = { ...headers, Authorization: `Bearer ${tokens.access_token}` }; headers = { ...headers, Authorization: `Bearer ${tokens.access_token}` };
options = { ...options, headers }; options = { ...options, headers, timeout: 60000 };
const method = 'GET'; const method = 'GET';
// Run the request. If we see 401 or 403, try to refresh tokens and run the request again // Run the request. If we see 401 or 403, try to refresh tokens and run the request again
@ -64,16 +64,18 @@ const get = async (tokens, endPoint, params = {}, headers = {}, options = {}) =>
return JSON.parse(response.responseText); return JSON.parse(response.responseText);
}; };
const getAll = async (tokens, endPoint, params = {}, headers = {}, options = {}) => { const getAll = async (tokens, endPoint, params = {}, headers = {}, options = {}, interruptChecker = () => {}) => {
const PER_PAGE = endPoint === 'annotations' ? 200 : 500; const PER_PAGE = endPoint === 'annotations' ? 200 : 500;
const response = await apiFetch(tokens, endPoint, { ...params, limit: PER_PAGE }, headers, options); const response = await apiFetch(tokens, endPoint, { ...params, limit: PER_PAGE }, headers, options);
var next = getNextLinkFromResponse(response); var next = getNextLinkFromResponse(response);
var data = JSON.parse(response.responseText); var data = JSON.parse(response.responseText);
interruptChecker();
while (next) { while (next) {
const response = await apiFetchUrl(tokens, next, headers, options); //eslint-disable-line no-await-in-loop const response = await apiFetchUrl(tokens, next, headers, options); //eslint-disable-line no-await-in-loop
data = [...data, ...JSON.parse(response.responseText)]; data = [...data, ...JSON.parse(response.responseText)];
next = getNextLinkFromResponse(response); next = getNextLinkFromResponse(response);
interruptChecker();
} }
return data; return data;

View file

@ -1,11 +1,13 @@
/* global map:false, mendeleyOnlineMappings:false, mendeleyAPIUtils:false */ /* eslint-disable no-await-in-loop, camelcase */
var EXPORTED_SYMBOLS = ["Zotero_Import_Mendeley"]; /* global mendeleyDBMaps:false, mendeleyOnlineMappings:false, mendeleyAPIUtils:false */
var EXPORTED_SYMBOLS = ["Zotero_Import_Mendeley"]; //eslint-disable-line no-unused-vars
Components.utils.import("resource://gre/modules/Services.jsm"); Components.utils.import("resource://gre/modules/Services.jsm");
Components.utils.import("resource://gre/modules/osfile.jsm"); Components.utils.import("resource://gre/modules/osfile.jsm");
Services.scriptloader.loadSubScript("chrome://zotero/content/include.js"); Services.scriptloader.loadSubScript("chrome://zotero/content/include.js");
Services.scriptloader.loadSubScript("chrome://zotero/content/import/mendeley/mendeleyOnlineMappings.js"); Services.scriptloader.loadSubScript("chrome://zotero/content/import/mendeley/mendeleyOnlineMappings.js");
Services.scriptloader.loadSubScript("chrome://zotero/content/import/mendeley/mendeleyAPIUtils.js"); Services.scriptloader.loadSubScript("chrome://zotero/content/import/mendeley/mendeleyAPIUtils.js");
Services.scriptloader.loadSubScript("chrome://zotero/content/import/mendeley/mendeleySchemaMap.js");
const { apiTypeToDBType, apiFieldToDBField } = mendeleyOnlineMappings; const { apiTypeToDBType, apiFieldToDBField } = mendeleyOnlineMappings;
const { apiFetch, get, getAll, getTokens } = mendeleyAPIUtils; const { apiFetch, get, getAll, getTokens } = mendeleyAPIUtils;
@ -17,13 +19,32 @@ var Zotero_Import_Mendeley = function () {
this.mendeleyCode = null; this.mendeleyCode = null;
this._tokens = null; this._tokens = null;
this._db; this._db = null;
this._file; this._file = null;
this._saveOptions = null; this._saveOptions = null;
this._itemDone; this._itemDone = () => {};
this._progress = 0; this._progress = 0;
this._progressMax; this._progressMax = 0;
this._tmpFilesToDelete = []; this._tmpFilesToDelete = [];
this._caller = null;
this._interrupted = false;
this._totalSize = 0;
this._started = Date.now();
this._interruptChecker = (tickProgress = false) => {
if (this._interrupted) {
throw new Error(`Mendeley import interrupted!
Started: ${this._started} (${Math.round((Date.now() - this._started) / 1000)}s ago)
Progress: ${this._progress} / ${this._progressMax}
New items created: ${this.newItems.length}
Total size of files to download: ${Math.round(this._totalSize / 1024)}KB
`);
}
if (tickProgress) {
this._progress++;
this._itemDone();
}
};
}; };
Zotero_Import_Mendeley.prototype.setLocation = function (file) { Zotero_Import_Mendeley.prototype.setLocation = function (file) {
@ -32,9 +53,9 @@ Zotero_Import_Mendeley.prototype.setLocation = function (file) {
Zotero_Import_Mendeley.prototype.setHandler = function (name, handler) { Zotero_Import_Mendeley.prototype.setHandler = function (name, handler) {
switch (name) { switch (name) {
case 'itemDone': case 'itemDone':
this._itemDone = handler; this._itemDone = handler;
break; break;
} }
}; };
@ -57,34 +78,16 @@ Zotero_Import_Mendeley.prototype.translate = async function (options = {}) {
...(options.saveOptions || {}) ...(options.saveOptions || {})
}; };
if (true) {
Services.scriptloader.loadSubScript("chrome://zotero/content/import/mendeley/mendeleySchemaMap.js");
}
// TEMP: Load uncached from ~/zotero-client for development
else {
Components.utils.import("resource://gre/modules/FileUtils.jsm");
let file = FileUtils.getDir("Home", []);
file = OS.Path.join(file.path, 'zotero-client', 'chrome', 'content', 'zotero', 'import', 'mendeley', 'mendeleySchemaMap.js');
let fileURI = OS.Path.toFileURI(file);
let xmlhttp = await Zotero.HTTP.request(
'GET',
fileURI,
{
noCache: true,
responseType: 'text'
}
);
eval(xmlhttp.response);
}
const libraryID = options.libraryID || Zotero.Libraries.userLibraryID; const libraryID = options.libraryID || Zotero.Libraries.userLibraryID;
const { key: rootCollectionKey } = options.collections const { key: rootCollectionKey } = options.collections
? Zotero.Collections.getLibraryAndKeyFromID(options.collections[0]) ? Zotero.Collections.getLibraryAndKeyFromID(options.collections[0])
: {}; : {};
Zotero.debug(`Begining Mendeley import at ${this._started}. libraryID: ${libraryID}, linkFiles: ${this.linkFiles}, rootCollectionKey: ${rootCollectionKey}`);
// TODO: Get appropriate version based on schema version // TODO: Get appropriate version based on schema version
const mapVersion = 83; const mapVersion = 83;
map = map[mapVersion]; const map = mendeleyDBMaps[mapVersion];
const mendeleyGroupID = 0; const mendeleyGroupID = 0;
@ -94,7 +97,7 @@ Zotero_Import_Mendeley.prototype.translate = async function (options = {}) {
if (this._file) { if (this._file) {
this._db = new Zotero.DBConnection(this._file); this._db = new Zotero.DBConnection(this._file);
} }
try { try {
if (this._file && !await this._isValidDatabase()) { if (this._file && !await this._isValidDatabase()) {
throw new Error("Not a valid Mendeley database"); throw new Error("Not a valid Mendeley database");
@ -108,14 +111,22 @@ Zotero_Import_Mendeley.prototype.translate = async function (options = {}) {
throw new Error("Missing import token"); throw new Error("Missing import token");
} }
// we don't know how long the import will be but want to show progress to give
// feedback that import has started so we arbitrary set progress at 2%
this._progress = 1;
this._progressMax = 50;
this._itemDone();
const folders = this._tokens const folders = this._tokens
? await this._getFoldersAPI(mendeleyGroupID) ? await this._getFoldersAPI(mendeleyGroupID)
: await this._getFoldersDB(mendeleyGroupID); : await this._getFoldersDB(mendeleyGroupID);
const collectionJSON = this._foldersToAPIJSON(folders, rootCollectionKey); const collectionJSON = this._foldersToAPIJSON(folders, rootCollectionKey);
const folderKeys = this._getFolderKeys(collectionJSON); const folderKeys = this._getFolderKeys(collectionJSON);
await this._saveCollections(libraryID, collectionJSON, folderKeys); await this._saveCollections(libraryID, collectionJSON, folderKeys);
this._interruptChecker(true);
// //
// Items // Items
// //
@ -123,40 +134,59 @@ Zotero_Import_Mendeley.prototype.translate = async function (options = {}) {
? await this._getDocumentsAPI(mendeleyGroupID) ? await this._getDocumentsAPI(mendeleyGroupID)
: await this._getDocumentsDB(mendeleyGroupID); : await this._getDocumentsDB(mendeleyGroupID);
this._progressMax = documents.length; // Update progress to reflect items to import and remaining meta data stages
// We arbitrary set progress at approx 4%. We then add 8, one "tick" for each remaining meta data download.
this._progress = Math.max(Math.floor(0.04 * documents.length), 2);
this._progressMax = documents.length + this._progress + 8;
// Get various attributes mapped to document ids // Get various attributes mapped to document ids
let urls = this._tokens let urls = this._tokens
? await this._getDocumentURLsAPI(documents) ? await this._getDocumentURLsAPI(documents)
: await this._getDocumentURLsDB(mendeleyGroupID); : await this._getDocumentURLsDB(mendeleyGroupID);
this._interruptChecker(true);
let creators = this._tokens let creators = this._tokens
? await this._getDocumentCreatorsAPI(documents) ? await this._getDocumentCreatorsAPI(documents)
: await this._getDocumentCreatorsDB(mendeleyGroupID, map.creatorTypes); : await this._getDocumentCreatorsDB(mendeleyGroupID, map.creatorTypes);
this._interruptChecker(true);
let tags = this._tokens let tags = this._tokens
? await this._getDocumentTagsAPI(documents) ? await this._getDocumentTagsAPI(documents)
: await this._getDocumentTagsDB(mendeleyGroupID); : await this._getDocumentTagsDB(mendeleyGroupID);
this._interruptChecker(true);
let collections = this._tokens let collections = this._tokens
? await this._getDocumentCollectionsAPI(documents, rootCollectionKey, folderKeys) ? await this._getDocumentCollectionsAPI(documents, rootCollectionKey, folderKeys)
: await this._getDocumentCollectionsDB(mendeleyGroupID, documents, rootCollectionKey, folderKeys); : await this._getDocumentCollectionsDB(mendeleyGroupID, documents, rootCollectionKey, folderKeys);
this._interruptChecker(true);
let files = this._tokens let files = this._tokens
? await this._getDocumentFilesAPI(documents) ? await this._getDocumentFilesAPI(documents)
: await this._getDocumentFilesDB(mendeleyGroupID); : await this._getDocumentFilesDB(mendeleyGroupID);
this._interruptChecker(true);
let annotations = this._tokens let annotations = this._tokens
? await this._getDocumentAnnotationsAPI(mendeleyGroupID) ? await this._getDocumentAnnotationsAPI(mendeleyGroupID)
: await this._getDocumentAnnotationsDB(mendeleyGroupID); : await this._getDocumentAnnotationsDB(mendeleyGroupID);
this._interruptChecker(true);
let profile = this._tokens let profile = this._tokens
? await this._getProfileAPI() ? await this._getProfileAPI()
: await this._getProfileDB(); : await this._getProfileDB();
this._interruptChecker(true);
let groups = this._tokens let groups = this._tokens
? await this._getGroupsAPI() ? await this._getGroupsAPI()
: await this._getGroupsDB(); : await this._getGroupsDB();
this._interruptChecker(true);
const fileHashLookup = new Map(); const fileHashLookup = new Map();
for (let [documentID, fileEntries] of files) { for (let [documentID, fileEntries] of files) {
@ -165,7 +195,6 @@ Zotero_Import_Mendeley.prototype.translate = async function (options = {}) {
} }
} }
for (let group of groups) { for (let group of groups) {
let groupAnnotations = this._tokens let groupAnnotations = this._tokens
? await this._getDocumentAnnotationsAPI(group.id, profile.id) ? await this._getDocumentAnnotationsAPI(group.id, profile.id)
@ -263,11 +292,12 @@ Zotero_Import_Mendeley.prototype.translate = async function (options = {}) {
); );
} }
this.newItems.push(Zotero.Items.get(documentIDMap.get(document.id))); this.newItems.push(Zotero.Items.get(documentIDMap.get(document.id)));
this._progress++; this._interruptChecker(true);
if (this._itemDone) {
this._itemDone();
}
} }
Zotero.debug(`Completed Mendeley import in ${Math.round((Date.now() - this._started) / 1000)}s. (Started: ${this._started})`);
}
catch (e) {
Zotero.logError(e);
} }
finally { finally {
try { try {
@ -275,6 +305,7 @@ Zotero_Import_Mendeley.prototype.translate = async function (options = {}) {
await this._db.closeDatabase(); await this._db.closeDatabase();
} }
if (this._tokens) { if (this._tokens) {
Zotero.debug(`Clearing ${this._tmpFilesToDelete.length} temporary files after Mendeley import`);
await Promise.all( await Promise.all(
this._tmpFilesToDelete.map(f => this._removeTemporaryFile(f)) this._tmpFilesToDelete.map(f => this._removeTemporaryFile(f))
); );
@ -288,14 +319,20 @@ Zotero_Import_Mendeley.prototype.translate = async function (options = {}) {
} }
}; };
Zotero_Import_Mendeley.prototype.interrupt = function () {
this._interrupted = true;
if (this._caller) {
this._caller.stop();
}
};
Zotero_Import_Mendeley.prototype._removeTemporaryFile = async function (file) { Zotero_Import_Mendeley.prototype._removeTemporaryFile = async function (file) {
const containingDir = OS.Path.dirname(file);
try { try {
await Zotero.File.removeIfExists(file); await Zotero.File.removeIfExists(file);
await OS.File.removeEmptyDir(containingDir);
} }
catch (e) { catch (e) {
Zotero.logError(e); Zotero.logError("Error while removing temporary file " + file + ": " + e);
} }
}; };
@ -345,7 +382,7 @@ Zotero_Import_Mendeley.prototype._getFoldersAPI = async function (groupID) {
if (groupID && groupID !== 0) { if (groupID && groupID !== 0) {
params.group_id = groupID; //eslint-disable-line camelcase params.group_id = groupID; //eslint-disable-line camelcase
} }
return (await getAll(this._tokens, 'folders', params, headers)).map(f => ({ return (await getAll(this._tokens, 'folders', params, headers, {}, this._interruptChecker)).map(f => ({
id: f.id, id: f.id,
uuid: f.id, uuid: f.id,
name: f.name, name: f.name,
@ -365,11 +402,11 @@ Zotero_Import_Mendeley.prototype._foldersToAPIJSON = function (folderRows, paren
}; };
Zotero_Import_Mendeley.prototype._getFolderDescendents = function (folderID, folderKey, folderRows, maxDepth) { Zotero_Import_Mendeley.prototype._getFolderDescendents = function (folderID, folderKey, folderRows, maxDepth) {
if (maxDepth == 0) return [] if (maxDepth == 0) return [];
var descendents = []; var descendents = [];
var children = folderRows var children = folderRows
.filter(f => f.parentId == folderID) .filter(f => f.parentId == folderID)
.map(f => { .map((f) => {
let c = { let c = {
folderID: f.id, folderID: f.id,
remoteUUID: f.remoteUuid, remoteUUID: f.remoteUuid,
@ -492,7 +529,7 @@ Zotero_Import_Mendeley.prototype._getDocumentsAPI = async function (groupID) {
} }
return (await getAll(this._tokens, 'documents', params, headers)).map(d => ({ return (await getAll(this._tokens, 'documents', params, headers, {}, this._interruptChecker)).map(d => ({
...d, ...d,
uuid: d.id, uuid: d.id,
remoteUuid: d.id remoteUuid: d.id
@ -693,12 +730,13 @@ Zotero_Import_Mendeley.prototype._fetchFile = async function (fileID, filePath)
Zotero_Import_Mendeley.prototype._getDocumentFilesAPI = async function (documents) { Zotero_Import_Mendeley.prototype._getDocumentFilesAPI = async function (documents) {
const map = new Map(); const map = new Map();
let totalSize = 0; this._totalSize = 0;
Components.utils.import("resource://zotero/concurrentCaller.js"); Components.utils.import("resource://zotero/concurrentCaller.js");
var caller = new ConcurrentCaller({ this._caller = new ConcurrentCaller({
numConcurrent: 6, numConcurrent: 6,
onError: e => Zotero.logError(e), onError: e => Zotero.logError(e),
logger: Zotero.debug,
Promise: Zotero.Promise Promise: Zotero.Promise
}); });
@ -712,7 +750,7 @@ Zotero_Import_Mendeley.prototype._getDocumentFilesAPI = async function (document
let tmpFile = OS.Path.join(Zotero.getTempDirectory().path, `m-api-${file.id}.${ext}`); let tmpFile = OS.Path.join(Zotero.getTempDirectory().path, `m-api-${file.id}.${ext}`);
this._tmpFilesToDelete.push(tmpFile); this._tmpFilesToDelete.push(tmpFile);
caller.add(this._fetchFile.bind(this, file.id, tmpFile)); this._caller.add(this._fetchFile.bind(this, file.id, tmpFile));
files.push({ files.push({
fileURL: OS.Path.toFileURI(tmpFile), fileURL: OS.Path.toFileURI(tmpFile),
title: file.file_name || '', title: file.file_name || '',
@ -720,13 +758,14 @@ Zotero_Import_Mendeley.prototype._getDocumentFilesAPI = async function (document
hash: file.filehash, hash: file.filehash,
fileBaseName fileBaseName
}); });
totalSize += file.size; this._totalSize += file.size;
this._progressMax += 1; this._progressMax += 1;
} }
map.set(doc.id, files); map.set(doc.id, files);
} }
// TODO: check if enough space available totalSize // TODO: check if enough space available totalSize
await caller.runAll(); await this._caller.runAll();
this._caller = null;
return map; return map;
}; };
@ -823,7 +862,7 @@ Zotero_Import_Mendeley.prototype._getDocumentAnnotationsAPI = async function (gr
} }
const map = new Map(); const map = new Map();
(await getAll(this._tokens, 'annotations', params, { Accept: 'application/vnd.mendeley-annotation.1+json' })) (await getAll(this._tokens, 'annotations', params, { Accept: 'application/vnd.mendeley-annotation.1+json' }, {}, this._interruptChecker))
.forEach((a) => { .forEach((a) => {
if (profileID !== null && a.profile_id !== profileID) { if (profileID !== null && a.profile_id !== profileID) {
// optionally filter annotations by profile id // optionally filter annotations by profile id
@ -885,7 +924,7 @@ Zotero_Import_Mendeley.prototype._getGroupsAPI = async function () {
const params = { type: 'all' }; const params = { type: 'all' };
const headers = { Accept: 'application/vnd.mendeley-group-list+json' }; const headers = { Accept: 'application/vnd.mendeley-group-list+json' };
return getAll(this._tokens, 'groups/v2', params, headers); return getAll(this._tokens, 'groups/v2', params, headers, {}, this._interruptChecker);
}; };
Zotero_Import_Mendeley.prototype._getGroupsDB = async function () { Zotero_Import_Mendeley.prototype._getGroupsDB = async function () {
@ -985,14 +1024,14 @@ Zotero_Import_Mendeley.prototype._documentToAPIJSON = async function (map, docum
for (let field in parent) { for (let field in parent) {
switch (field) { switch (field) {
case 'itemType': case 'itemType':
case 'key': case 'key':
case 'parentItem': case 'parentItem':
case 'note': case 'note':
case 'creators': case 'creators':
case 'dateAdded': case 'dateAdded':
case 'dateModified': case 'dateModified':
continue; continue;
} }
// Move unknown/invalid fields to Extra // Move unknown/invalid fields to Extra
@ -1035,7 +1074,7 @@ Zotero_Import_Mendeley.prototype._documentToAPIJSON = async function (map, docum
// seriesEditor isn't valid on some item types (e.g., book) // seriesEditor isn't valid on some item types (e.g., book)
if (creator.creatorType == 'seriesEditor' if (creator.creatorType == 'seriesEditor'
&& !Zotero.CreatorTypes.isValidForItemType( && !Zotero.CreatorTypes.isValidForItemType(
Zotero.CreatorTypes.getID('seriesEditor'), itemTypeID)) { Zotero.CreatorTypes.getID('seriesEditor'), itemTypeID)) {
creator.creatorType = 'editor'; creator.creatorType = 'editor';
} }
} }
@ -1160,7 +1199,6 @@ Zotero_Import_Mendeley.prototype._processField = function (parent, children, zFi
} }
else { else {
Zotero.warn(`Unknown function subfield: ${subfield}`); Zotero.warn(`Unknown function subfield: ${subfield}`);
return;
} }
} }
else { else {
@ -1191,20 +1229,21 @@ Zotero_Import_Mendeley.prototype._makeCreator = function (creatorType, firstName
Zotero_Import_Mendeley.prototype._addExtraField = function (extra, field, val) { Zotero_Import_Mendeley.prototype._addExtraField = function (extra, field, val) {
// Strip the field if it appears at the beginning of the value (to avoid "DOI: DOI: 10...") // Strip the field if it appears at the beginning of the value (to avoid "DOI: DOI: 10...")
if (typeof val == 'string') { if (typeof val == 'string') {
val = val.replace(new RegExp(`^${field}:\s*`, 'i'), ""); val = val.replace(new RegExp(`^${field}:\\s*`, 'i'), "");
} }
extra = extra ? extra + '\n' : ''; extra = extra ? extra + '\n' : '';
if (field != 'arXiv') { if (field != 'arXiv') {
field = field[0].toUpperCase() + field.substr(1); field = field[0].toUpperCase() + field.substr(1);
field = field.replace(/([a-z])([A-Z][a-z])/, "$1 $2"); field = field.replace(/([a-z])([A-Z][a-z])/, "$1 $2");
} }
return extra + `${field}: ${val}`; return extra + `${field}: ${val}`;
}; };
Zotero_Import_Mendeley.prototype._convertNote = function (note) { Zotero_Import_Mendeley.prototype._convertNote = function (note) {
return note return note
// Add newlines after <br> // Add newlines after <br>
.replace(/<br\s*\/>/g, '<br\/>\n') .replace(/<br\s*\/>/g, '<br/>\n')
// //
// Legacy pre-HTML stuff // Legacy pre-HTML stuff
// //
@ -1360,7 +1399,7 @@ Zotero_Import_Mendeley.prototype._findExistingItem = async function (libraryID,
Zotero.debug(`Found existing item ${existingItem.libraryKey} for ` Zotero.debug(`Found existing item ${existingItem.libraryKey} for `
+ `${predicate} ${itemJSON.relations[predicate]}`); + `${predicate} ${itemJSON.relations[predicate]}`);
return existingItem; return existingItem;
} };
Zotero_Import_Mendeley.prototype._getItemByRelation = async function (libraryID, predicate, object) { Zotero_Import_Mendeley.prototype._getItemByRelation = async function (libraryID, predicate, object) {
@ -1443,7 +1482,7 @@ Zotero_Import_Mendeley.prototype._saveFilesAndAnnotations = async function (file
Zotero.logError(e); Zotero.logError(e);
} }
} }
} };
Zotero_Import_Mendeley.prototype._findExistingFile = function (parentItemID, file) { Zotero_Import_Mendeley.prototype._findExistingFile = function (parentItemID, file) {
@ -1460,7 +1499,7 @@ Zotero_Import_Mendeley.prototype._findExistingFile = function (parentItemID, fil
} }
} }
return false; return false;
} };
Zotero_Import_Mendeley.prototype._isDownloadedFile = function (path) { Zotero_Import_Mendeley.prototype._isDownloadedFile = function (path) {
var parentDir = OS.Path.dirname(path); var parentDir = OS.Path.dirname(path);
@ -1468,7 +1507,7 @@ Zotero_Import_Mendeley.prototype._isDownloadedFile = function (path) {
|| parentDir.endsWith(OS.Path.join('Local', 'Mendeley Ltd', 'Mendeley Desktop', 'Downloaded')) || parentDir.endsWith(OS.Path.join('Local', 'Mendeley Ltd', 'Mendeley Desktop', 'Downloaded'))
|| parentDir.endsWith(OS.Path.join('Local', 'Mendeley Ltd.', 'Mendeley Desktop', 'Downloaded')) || parentDir.endsWith(OS.Path.join('Local', 'Mendeley Ltd.', 'Mendeley Desktop', 'Downloaded'))
|| parentDir.endsWith(OS.Path.join('data', 'Mendeley Ltd.', 'Mendeley Desktop', 'Downloaded')); || parentDir.endsWith(OS.Path.join('data', 'Mendeley Ltd.', 'Mendeley Desktop', 'Downloaded'));
} };
Zotero_Import_Mendeley.prototype._isTempDownloadedFile = function (path) { Zotero_Import_Mendeley.prototype._isTempDownloadedFile = function (path) {
return path.startsWith(OS.Path.join(Zotero.getTempDirectory().path, 'm-api')); return path.startsWith(OS.Path.join(Zotero.getTempDirectory().path, 'm-api'));
@ -1498,7 +1537,7 @@ Zotero_Import_Mendeley.prototype._getRealFilePath = async function (path) {
return altPath; return altPath;
} }
return false; return false;
} };
Zotero_Import_Mendeley.prototype._saveAnnotations = async function (annotations, parentItemID, attachmentItemID, fileHash) { Zotero_Import_Mendeley.prototype._saveAnnotations = async function (annotations, parentItemID, attachmentItemID, fileHash) {
if (!annotations.length) return; if (!annotations.length) return;
@ -1507,7 +1546,6 @@ Zotero_Import_Mendeley.prototype._saveAnnotations = async function (annotations,
var libraryID = parentItem.libraryID; var libraryID = parentItem.libraryID;
if (attachmentItemID) { if (attachmentItemID) {
var attachmentItem = Zotero.Items.get(attachmentItemID); var attachmentItem = Zotero.Items.get(attachmentItemID);
var attachmentURIPath = Zotero.API.getLibraryPrefix(libraryID) + '/items/' + attachmentItem.key;
if (attachmentItem) { if (attachmentItem) {
let file = await attachmentItem.getFilePathAsync(); let file = await attachmentItem.getFilePathAsync();
@ -1616,7 +1654,7 @@ Zotero_Import_Mendeley.prototype._saveAnnotations = async function (annotations,
}); });
} }
note.setNote('<h1>' + Zotero.getString('extractedAnnotations') + '</h1>\n' + noteStrings.join('\n')); note.setNote('<h1>' + Zotero.getString('extractedAnnotations') + '</h1>\n' + noteStrings.join('\n'));
return note.saveTx(this._saveOptions); await note.saveTx(this._saveOptions);
}; };
@ -1633,17 +1671,7 @@ Zotero_Import_Mendeley.prototype._updateParentKeys = function (objectType, json,
break; break;
} }
} }
} };
Zotero_Import_Mendeley.prototype._updateItemCollectionKeys = function (json, oldKey, newKey) {
for (; i < json.length; i++) {
let x = json[i];
if (x[prop] == oldKey) {
x[prop] = newKey;
}
}
}
// //
// Clean up extra files created <5.0.51 // Clean up extra files created <5.0.51

View file

@ -1,4 +1,5 @@
var map = { // eslint-disable-next-line no-unused-vars
var mendeleyDBMaps = {
83: { 83: {
itemTypes: { itemTypes: {
Bill: "bill", Bill: "bill",

View file

@ -113,9 +113,10 @@ var Zotero_Citation_Dialog = new function () {
var menu = document.getElementById("label"); var menu = document.getElementById("label");
var label_list = document.getElementById("locator-type-popup"); var label_list = document.getElementById("locator-type-popup");
var i = 0; var i = 0;
var pageLocatorIndex;
for(var value in locators) { for(var value in locators) {
var locator = locators[value]; var locator = locators[value];
var locatorLabel = Zotero.getString('citation.locator.'+locator.replace(/\s/g,'')); let locatorLabel = Zotero.Cite.getLocatorString(locator);
// add to list of labels // add to list of labels
var child = document.createElement("menuitem"); var child = document.createElement("menuitem");
child.setAttribute("value", value); child.setAttribute("value", value);
@ -124,9 +125,13 @@ var Zotero_Citation_Dialog = new function () {
// add to array // add to array
_locatorIndexArray[locator] = i; _locatorIndexArray[locator] = i;
_locatorNameArray[i] = locator; _locatorNameArray[i] = locator;
if (locator == 'page') {
pageLocatorIndex = i;
_preserveData.label[1] = i;
}
i++; i++;
} }
menu.selectedIndex = 0; menu.selectedIndex = pageLocatorIndex;
// load (from selectItemsDialog.js) // load (from selectItemsDialog.js)
yield doLoad(); yield doLoad();

View file

@ -116,10 +116,9 @@ var Zotero_QuickFormat = new function () {
// add labels to popup // add labels to popup
var locators = Zotero.Cite.labels; var locators = Zotero.Cite.labels;
var menu = document.getElementById("locator-label");
var labelList = document.getElementById("locator-label-popup"); var labelList = document.getElementById("locator-label-popup");
for(var locator of locators) { for(var locator of locators) {
var locatorLabel = Zotero.getString('citation.locator.'+locator.replace(/\s/g,'')); let locatorLabel = Zotero.Cite.getLocatorString(locator);
// add to list of labels // add to list of labels
var child = document.createElement("menuitem"); var child = document.createElement("menuitem");
@ -127,7 +126,6 @@ var Zotero_QuickFormat = new function () {
child.setAttribute("label", locatorLabel); child.setAttribute("label", locatorLabel);
labelList.appendChild(child); labelList.appendChild(child);
} }
menu.selectedIndex = 0;
} }
@ -1085,15 +1083,16 @@ var Zotero_QuickFormat = new function () {
let citationItem = JSON.parse(target.dataset.citationItem); let citationItem = JSON.parse(target.dataset.citationItem);
panelPrefix.value = citationItem["prefix"] ? citationItem["prefix"] : ""; panelPrefix.value = citationItem["prefix"] ? citationItem["prefix"] : "";
panelSuffix.value = citationItem["suffix"] ? citationItem["suffix"] : ""; panelSuffix.value = citationItem["suffix"] ? citationItem["suffix"] : "";
var pageOption = panelLocatorLabel.getElementsByAttribute("value", "page")[0];
if(citationItem["label"]) { if(citationItem["label"]) {
var option = panelLocatorLabel.getElementsByAttribute("value", citationItem["label"]); var option = panelLocatorLabel.getElementsByAttribute("value", citationItem["label"]);
if(option.length) { if(option.length) {
panelLocatorLabel.selectedItem = option[0]; panelLocatorLabel.selectedItem = option[0];
} else { } else {
panelLocatorLabel.selectedIndex = 0; panelLocatorLabel.selectedItem = pageOption;
} }
} else { } else {
panelLocatorLabel.selectedIndex = 0; panelLocatorLabel.selectedItem = pageOption;
} }
panelLocator.value = citationItem["locator"] ? citationItem["locator"] : ""; panelLocator.value = citationItem["locator"] ? citationItem["locator"] : "";
panelSuppressAuthor.checked = !!citationItem["suppress-author"]; panelSuppressAuthor.checked = !!citationItem["suppress-author"];

View file

@ -40,7 +40,6 @@ Cu.import("resource://gre/modules/osfile.jsm");
const CHILD_INDENT = 12; const CHILD_INDENT = 12;
const COLORED_TAGS_RE = new RegExp("^[0-" + Zotero.Tags.MAX_COLORED_TAGS + "]{1}$"); const COLORED_TAGS_RE = new RegExp("^[0-" + Zotero.Tags.MAX_COLORED_TAGS + "]{1}$");
const COLUMN_PREFS_FILEPATH = OS.Path.join(Zotero.Profile.dir, "treePrefs.json"); const COLUMN_PREFS_FILEPATH = OS.Path.join(Zotero.Profile.dir, "treePrefs.json");
const EMOJI_RE = /\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F/gu;
const HTML_NS = "http://www.w3.org/1999/xhtml"; const HTML_NS = "http://www.w3.org/1999/xhtml";
const ATTACHMENT_STATE_LOAD_DELAY = 150; //ms const ATTACHMENT_STATE_LOAD_DELAY = 150; //ms
@ -475,14 +474,17 @@ var ItemTree = class ItemTree extends LibraryTree {
return; return;
} }
var visibleSubcollections = Zotero.Prefs.get('recursiveCollections')
? collectionTreeRow.ref.getDescendents(false, 'collection')
: [];
var splitIDs = []; var splitIDs = [];
for (let id of ids) { for (let id of ids) {
var split = id.split('-'); var split = id.split('-');
// Skip if not an item in this collection // Include if an item in this collection or a visible subcollection
if (split[0] != collectionTreeRow.ref.id) { if (split[0] == collectionTreeRow.ref.id
continue; || visibleSubcollections.some(c => split[0] == c.id)) {
splitIDs.push(split[1]);
} }
splitIDs.push(split[1]);
} }
ids = splitIDs; ids = splitIDs;
} }
@ -1241,20 +1243,14 @@ var ItemTree = class ItemTree extends LibraryTree {
? `for ${itemIDs.length} ` + Zotero.Utilities.pluralize(itemIDs.length, ['item', 'items']) ? `for ${itemIDs.length} ` + Zotero.Utilities.pluralize(itemIDs.length, ['item', 'items'])
: "")); : ""));
// Set whether rows with empty values should be displayed last, // Set whether rows with empty values should sort at the beginning
// which may be different for primary and secondary sorting. var emptyFirst = {
var emptyFirst = {}; title: true,
switch (primaryField) {
case 'title': // Date columns start descending, so put empty rows at end
emptyFirst.title = true; date: true,
break; year: true,
};
// When sorting by title we want empty titles at the top, but if not
// sorting by title, empty titles should sort to the bottom so that new
// empty items don't get sorted to the middle of the items list.
default:
emptyFirst.title = false;
}
// Cache primary values while sorting, since base-field-mapped getField() // Cache primary values while sorting, since base-field-mapped getField()
// calls are relatively expensive // calls are relatively expensive
@ -1262,7 +1258,7 @@ var ItemTree = class ItemTree extends LibraryTree {
sortFields.forEach(x => cache[x] = {}); sortFields.forEach(x => cache[x] = {});
// Get the display field for a row (which might be a placeholder title) // Get the display field for a row (which might be a placeholder title)
function getField(field, row) { let getField = (field, row) => {
var item = row.ref; var item = row.ref;
switch (field) { switch (field) {
@ -1270,23 +1266,12 @@ var ItemTree = class ItemTree extends LibraryTree {
return Zotero.Items.getSortTitle(item.getDisplayTitle()); return Zotero.Items.getSortTitle(item.getDisplayTitle());
case 'hasAttachment': case 'hasAttachment':
if (item.isFileAttachment()) { if (this._canGetBestAttachmentState(item)) {
var state = item.fileExistsCached() ? 1 : -1; return item.getBestAttachmentStateCached();
}
else if (item.isRegularItem()) {
var state = item.getBestAttachmentStateCached();
} }
else { else {
return 0; return 0;
} }
// Make sort order present, missing, empty when ascending
if (state === 1) {
state = 2;
}
else if (state === -1) {
state = 1;
}
return state;
case 'numNotes': case 'numNotes':
return row.numNotes(false, true) || 0; return row.numNotes(false, true) || 0;
@ -1350,7 +1335,11 @@ var ItemTree = class ItemTree extends LibraryTree {
} }
if (sortField == 'hasAttachment') { if (sortField == 'hasAttachment') {
return fieldB - fieldA; // PDFs at the top
const order = ['pdf', 'snapshot', 'other', 'none'];
fieldA = order.indexOf(fieldA.type || 'none') + (fieldA.exists ? 0 : 4);
fieldB = order.indexOf(fieldB.type || 'none') + (fieldB.exists ? 0 : 4);
return fieldA - fieldB;
} }
if (sortField == 'callNumber') { if (sortField == 'callNumber') {
@ -1439,18 +1428,27 @@ var ItemTree = class ItemTree extends LibraryTree {
var openItemIDs = this._saveOpenState(true); var openItemIDs = this._saveOpenState(true);
// Sort specific items // Sort specific items
if (itemIDs) { try {
let idsToSort = new Set(itemIDs); if (itemIDs) {
this._rows.sort((a, b) => { let idsToSort = new Set(itemIDs);
// Don't re-sort existing items. This assumes a stable sort(), which is the case in Firefox this._rows.sort((a, b) => {
// but not Chrome/v8. // Don't re-sort existing items. This assumes a stable sort(), which is the case in Firefox
if (!idsToSort.has(a.ref.id) && !idsToSort.has(b.ref.id)) return 0; // but not Chrome/v8.
return rowSort(a, b) * order; if (!idsToSort.has(a.ref.id) && !idsToSort.has(b.ref.id)) return 0;
}); return rowSort(a, b) * order;
});
}
// Full sort
else {
this._rows.sort((a, b) => rowSort(a, b) * order);
}
} }
// Full sort catch (e) {
else { Zotero.logError("Error sorting fields: " + e.message);
this._rows.sort((a, b) => rowSort(a, b) * order); Zotero.debug(e, 1);
// Clear anything that might be contributing to the error
Zotero.Prefs.clear('secondarySort.' + this.getSortField());
Zotero.Prefs.clear('fallbackSort');
} }
this._refreshRowMap(); this._refreshRowMap();
@ -1748,8 +1746,21 @@ var ItemTree = class ItemTree extends LibraryTree {
await Zotero.Items.trashTx(ids); await Zotero.Items.trashTx(ids);
} }
else if (collectionTreeRow.isCollection()) { else if (collectionTreeRow.isCollection()) {
let collectionIDs = [collectionTreeRow.ref.id];
if (Zotero.Prefs.get('recursiveCollections')) {
collectionIDs.push(...collectionTreeRow.ref.getDescendents(false, 'collection').map(c => c.id));
}
await Zotero.DB.executeTransaction(async () => { await Zotero.DB.executeTransaction(async () => {
await collectionTreeRow.ref.removeItems(ids); for (let itemID of ids) {
let item = Zotero.Items.get(itemID);
for (let collectionID of collectionIDs) {
item.removeFromCollection(collectionID);
}
await item.save({
skipDateModifiedUpdate: true
});
}
}); });
} }
else if (collectionTreeRow.isPublications()) { else if (collectionTreeRow.isPublications()) {
@ -2752,93 +2763,60 @@ var ItemTree = class ItemTree extends LibraryTree {
// TEMP: For now, we use the blue bullet for all non-PDF attachments, but there's // TEMP: For now, we use the blue bullet for all non-PDF attachments, but there's
// commented-out code for showing different icons for snapshots, files, and URL/DOI links // commented-out code for showing different icons for snapshots, files, and URL/DOI links
if (this.isContainer(index)) { if (this._canGetBestAttachmentState(item)) {
if (item.isRegularItem()) { const { type, exists } = item.getBestAttachmentStateCached();
const { type, exists } = item.getBestAttachmentStateCached();
let icon = "";
let ariaLabel;
// If the item has a child attachment
if (type !== null && type != 'none') {
if (type == 'pdf') {
icon = getDOMElement('IconTreeitemAttachmentPDF');
ariaLabel = Zotero.getString('pane.item.attachments.hasPDF');
if (!exists) {
icon.classList.add('icon-missing-file');
}
}
else if (type == 'snapshot') {
//icon = getDOMElement('IconTreeitemAttachmentSnapshot');
icon = exists ? getDOMElement('IconBulletBlue') : getDOMElement('IconBulletBlueEmpty');
ariaLabel = Zotero.getString('pane.item.attachments.hasSnapshot');
}
else {
//icon = getDOMElement('IconTreeitem');
icon = exists ? getDOMElement('IconBulletBlue') : getDOMElement('IconBulletBlueEmpty');
ariaLabel = Zotero.getString('pane.item.attachments.has');
}
icon.classList.add('cell-icon');
//if (!exists) {
// icon.classList.add('icon-missing-file');
//}
}
//else if (type == 'none') {
// if (item.getField('url') || item.getField('DOI')) {
// icon = getDOMElement('IconLink');
// ariaLabel = Zotero.getString('pane.item.attachments.hasLink');
// icon.classList.add('cell-icon');
// }
//}
if (ariaLabel) {
icon.setAttribute('aria-label', ariaLabel + '.');
span.setAttribute('title', ariaLabel);
}
span.append(icon);
// Don't run this immediately since it might cause a db check and disk access
// but delay for some time and see if the item is still visible in the tree
// (i.e. if we haven't scrolled right past it)
setTimeout(() => {
if (!this.tree.rowIsVisible(index)) return;
item.getBestAttachmentState()
// Refresh cell when promise is fulfilled
.then(({ type: newType, exists: newExists }) => {
if (newType !== type || newExists !== exists) {
this.tree.invalidateRow(index);
}
});
}, ATTACHMENT_STATE_LOAD_DELAY);
}
}
if (item.isFileAttachment()) {
const exists = item.fileExistsCached();
let icon = ""; let icon = "";
if (exists !== null) { let ariaLabel;
if (item.isPDFAttachment()) { // If the item has a child attachment
if (type !== null && type != 'none') {
if (type == 'pdf') {
icon = getDOMElement('IconTreeitemAttachmentPDF'); icon = getDOMElement('IconTreeitemAttachmentPDF');
ariaLabel = Zotero.getString('pane.item.attachments.hasPDF');
if (!exists) { if (!exists) {
icon.classList.add('icon-missing-file'); icon.classList.add('icon-missing-file');
} }
} }
else if (item.isSnapshotAttachment()) { else if (type == 'snapshot') {
//icon = getDOMElement('IconTreeitemAttachmentSnapshot'); //icon = getDOMElement('IconTreeitemAttachmentSnapshot');
icon = exists ? getDOMElement('IconBulletBlue') : getDOMElement('IconBulletBlueEmpty'); icon = exists ? getDOMElement('IconBulletBlue') : getDOMElement('IconBulletBlueEmpty');
ariaLabel = Zotero.getString('pane.item.attachments.hasSnapshot');
} }
else { else {
//icon = getDOMElement('IconTreeitem'); //icon = getDOMElement('IconTreeitem');
icon = exists ? getDOMElement('IconBulletBlue') : getDOMElement('IconBulletBlueEmpty'); icon = exists ? getDOMElement('IconBulletBlue') : getDOMElement('IconBulletBlueEmpty');
ariaLabel = Zotero.getString('pane.item.attachments.has');
} }
icon.classList.add('cell-icon'); icon.classList.add('cell-icon');
//if (!exists) { //if (!exists) {
// icon.classList.add('icon-missing-file'); // icon.classList.add('icon-missing-file');
//} //}
} }
//else if (type == 'none') {
// if (item.getField('url') || item.getField('DOI')) {
// icon = getDOMElement('IconLink');
// ariaLabel = Zotero.getString('pane.item.attachments.hasLink');
// icon.classList.add('cell-icon');
// }
//}
if (ariaLabel) {
icon.setAttribute('aria-label', ariaLabel + '.');
span.setAttribute('title', ariaLabel);
}
span.append(icon); span.append(icon);
item.fileExists() // Don't run this immediately since it might cause a db check and disk access
// TODO: With no cell refreshing this is possibly somewhat inefficient // but delay for some time and see if the item is still visible in the tree
// Refresh cell when promise is fulfilled // (i.e. if we haven't scrolled right past it)
.then(realExists => realExists != exists && this.tree.invalidateRow(index)); setTimeout(() => {
if (!this.tree.rowIsVisible(index)) return;
item.getBestAttachmentState()
// Refresh cell when promise is fulfilled
.then(({ type: newType, exists: newExists }) => {
if (newType !== type || newExists !== exists) {
this.tree.invalidateRow(index);
}
});
}, ATTACHMENT_STATE_LOAD_DELAY);
} }
return span; return span;
@ -3550,7 +3528,7 @@ var ItemTree = class ItemTree extends LibraryTree {
let t = new Date(); let t = new Date();
for (let i = 0; i < this._rows.length; i++) { for (let i = 0; i < this._rows.length; i++) {
let item = this.getRow(i).ref; let item = this.getRow(i).ref;
if (item.isRegularItem()) { if (this._canGetBestAttachmentState(item)) {
await item.getBestAttachmentState(); await item.getBestAttachmentState();
} }
} }
@ -3824,10 +3802,10 @@ var ItemTree = class ItemTree extends LibraryTree {
} }
return icon; return icon;
} }
_isOnlyEmoji(str) { _canGetBestAttachmentState(item) {
// Remove emoji and zero-width joiner and see if anything's left return (item.isRegularItem() && item.numAttachments())
return !str.replace(EMOJI_RE, '').replace(/\u200D/g,''); || (item.isFileAttachment() && item.isTopLevelItem());
} }
_getTagSwatch(tag, color) { _getTagSwatch(tag, color) {
@ -3837,7 +3815,7 @@ var ItemTree = class ItemTree extends LibraryTree {
// //
// TODO: Check for a maximum number of graphemes, which is hard to do // TODO: Check for a maximum number of graphemes, which is hard to do
// https://stackoverflow.com/a/54369605 // https://stackoverflow.com/a/54369605
if (this._isOnlyEmoji(tag)) { if (Zotero.Utilities.Internal.isOnlyEmoji(tag)) {
span.textContent = tag; span.textContent = tag;
} }
// Otherwise display color // Otherwise display color

@ -1 +1 @@
Subproject commit 4877f181b1a962ea3e26d23f12d1acba3ccce347 Subproject commit e637746677fd1f600173e07b561f0388284ae39b

View file

@ -192,12 +192,9 @@ const ZoteroStandalone = new function() {
if (numFiles) { if (numFiles) {
menuitem.hidden = false; menuitem.hidden = false;
sep.hidden = false; sep.hidden = false;
if (numFiles == 1) { menuitem.label = Zotero.getString(
menuitem.label = 'Export PDF…'; 'pane.items.menu.exportPDF' + (numFiles == 1 ? '' : '.multiple')
} );
else {
menuitem.label = 'Export PDFs…';
}
} }
else { else {
menuitem.hidden = true; menuitem.hidden = true;

View file

@ -84,6 +84,11 @@ var Zotero_Tabs = new function () {
window.Zotero_Tooltip.stop(); window.Zotero_Tooltip.stop();
}; };
this.getTabIDByItemID = function (itemID) {
let tab = this._tabs.find(tab => tab.data && tab.data.itemID === itemID);
return tab && tab.id;
};
this.init = function () { this.init = function () {
ReactDOM.render( ReactDOM.render(
<TabBar <TabBar
@ -128,12 +133,23 @@ var Zotero_Tabs = new function () {
} }
else if (tab.type === 'reader') { else if (tab.type === 'reader') {
if (Zotero.Items.exists(tab.data.itemID)) { if (Zotero.Items.exists(tab.data.itemID)) {
this.add({ if (tab.selected) {
type: 'reader-unloaded', Zotero.Reader.open(tab.data.itemID,
title: tab.title, null,
index: i, {
data: tab.data title: tab.title,
}); openInBackground: !tab.selected
}
);
}
else {
this.add({
type: 'reader-unloaded',
title: tab.title,
index: i,
data: tab.data
});
}
} }
} }
} }
@ -152,7 +168,7 @@ var Zotero_Tabs = new function () {
* @param {Function} onClose * @param {Function} onClose
* @return {{ id: string, container: XULElement}} id - tab id, container - a new tab container created in the deck * @return {{ id: string, container: XULElement}} id - tab id, container - a new tab container created in the deck
*/ */
this.add = function ({ type, data, title, index, select, onClose }) { this.add = function ({ id, type, data, title, index, select, onClose }) {
if (typeof type != 'string') { if (typeof type != 'string') {
} }
if (typeof title != 'string') { if (typeof title != 'string') {
@ -164,7 +180,7 @@ var Zotero_Tabs = new function () {
if (onClose !== undefined && typeof onClose != 'function') { if (onClose !== undefined && typeof onClose != 'function') {
throw new Error(`'onClose' should be a function (was ${typeof onClose})`); throw new Error(`'onClose' should be a function (was ${typeof onClose})`);
} }
var id = 'tab-' + Zotero.Utilities.randomString(); id = id || 'tab-' + Zotero.Utilities.randomString();
var container = document.createElement('vbox'); var container = document.createElement('vbox');
container.id = id; container.id = id;
this.deck.appendChild(container); this.deck.appendChild(container);
@ -251,7 +267,7 @@ var Zotero_Tabs = new function () {
closedIDs.push(id); closedIDs.push(id);
} }
this._history.push(historyEntry); this._history.push(historyEntry);
Zotero.Notifier.trigger('close', 'tab', [closedIDs]); Zotero.Notifier.trigger('close', 'tab', [closedIDs], true);
this._update(); this._update();
}; };
@ -333,6 +349,7 @@ var Zotero_Tabs = new function () {
if (tab.type === 'reader-unloaded') { if (tab.type === 'reader-unloaded') {
this.close(tab.id); this.close(tab.id);
Zotero.Reader.open(tab.data.itemID, null, { Zotero.Reader.open(tab.data.itemID, null, {
tabID: tab.id,
title: tab.title, title: tab.title,
tabIndex, tabIndex,
allowDuplicate: true allowDuplicate: true
@ -385,6 +402,7 @@ var Zotero_Tabs = new function () {
} }
this.close(tab.id); this.close(tab.id);
this.add({ this.add({
id: tab.id,
type: 'reader-unloaded', type: 'reader-unloaded',
title: tab.title, title: tab.title,
index: tabIndex, index: tabIndex,

View file

@ -59,10 +59,8 @@ var Zotero_CSL_Editor = new function() {
var pageList = document.getElementById('zotero-csl-page-type'); var pageList = document.getElementById('zotero-csl-page-type');
var locators = Zotero.Cite.labels; var locators = Zotero.Cite.labels;
for (let type of locators) { for (let locator of locators) {
var locator = type; pageList.appendItem(Zotero.Cite.getLocatorString(locator), locator);
locator = Zotero.getString('citation.locator.'+locator.replace(/\s/g,''));
pageList.appendItem(locator, type);
} }
pageList.selectedIndex = 0; pageList.selectedIndex = 0;

View file

@ -270,7 +270,7 @@ Zotero.Attachments = new function(){
/** /**
* @param {Object} options - 'file', 'url', 'title', 'contentType', 'charset', 'parentItemID', 'singleFile' * @param {Object} options - 'file', 'url', 'title', 'contentType', 'charset', 'libraryID', 'parentItemID', 'singleFile'
* @param {Object} [options.saveOptions] - Options to pass to Zotero.Item::save() * @param {Object} [options.saveOptions] - Options to pass to Zotero.Item::save()
* @return {Promise<Zotero.Item>} * @return {Promise<Zotero.Item>}
*/ */
@ -287,10 +287,19 @@ Zotero.Attachments = new function(){
var title = options.title; var title = options.title;
var contentType = options.contentType; var contentType = options.contentType;
var charset = options.charset; var charset = options.charset;
var libraryID = options.libraryID;
var parentItemID = options.parentItemID; var parentItemID = options.parentItemID;
var saveOptions = options.saveOptions; var saveOptions = options.saveOptions;
if (!parentItemID) { if (parentItemID) {
libraryID = Zotero.Items.getLibraryAndKeyFromID(parentItemID).libraryID;
}
else if (contentType == 'text/html') {
throw new Error("parentItemID not provided");
}
// Webpage snapshots must have parent items
if (!parentItemID && contentType == 'text/html') {
throw new Error("parentItemID not provided"); throw new Error("parentItemID not provided");
} }
@ -299,8 +308,9 @@ Zotero.Attachments = new function(){
yield Zotero.DB.executeTransaction(function* () { yield Zotero.DB.executeTransaction(function* () {
// Create a new attachment // Create a new attachment
attachmentItem = new Zotero.Item('attachment'); attachmentItem = new Zotero.Item('attachment');
let {libraryID, key: parentKey} = Zotero.Items.getLibraryAndKeyFromID(parentItemID); if (libraryID) {
attachmentItem.libraryID = libraryID; attachmentItem.libraryID = libraryID;
}
attachmentItem.setField('title', title); attachmentItem.setField('title', title);
attachmentItem.setField('url', url); attachmentItem.setField('url', url);
attachmentItem.parentID = parentItemID; attachmentItem.parentID = parentItemID;
@ -563,7 +573,8 @@ Zotero.Attachments = new function(){
reject(e); reject(e);
}, },
true, true,
cookieSandbox cookieSandbox,
{ allowImages: true }
); );
}); });
}; };
@ -1143,67 +1154,82 @@ Zotero.Attachments = new function(){
*/ */
this.downloadPDFViaBrowser = async function (url, path, options = {}) { this.downloadPDFViaBrowser = async function (url, path, options = {}) {
Zotero.debug(`downloadPDFViaBrowser: Downloading file via browser from ${url}`); Zotero.debug(`downloadPDFViaBrowser: Downloading file via browser from ${url}`);
const onLoadTimeout = 1e3; const onLoadTimeout = Zotero.Prefs.get('downloadPDFViaBrowser.onLoadTimeout');
// Technically this is not a download, but the full operation timeout // Technically this is not a download, but the full operation timeout
const downloadTimeout = 60e3; const downloadTimeout = Zotero.Prefs.get('downloadPDFViaBrowser.downloadTimeout');
let channelBrowser, hiddenBrowser; let channelBrowser, hiddenBrowser;
let hiddenBrowserPDFFoundDeferred = Zotero.Promise.defer(); let hiddenBrowserPDFFoundDeferred = Zotero.Promise.defer();
var pdfMIMETypeHandler = async (blob, name, _, channel) => { let isOurPDF = false;
Zotero.debug(`downloadPDFViaBrowser: Sniffing a PDF loaded at ${name}`); var pdfMIMETypeHandler = {
onStartRequest: function (name, _, channel) {
let isOurPDF = false; Zotero.debug(`downloadPDFViaBrowser: Sniffing a PDF loaded at ${name}`);
// try the browser // try the browser
try {
channelBrowser = channel.notificationCallbacks.getInterface(Ci.nsIWebNavigation)
.QueryInterface(Ci.nsIDocShell).chromeEventHandler;
}
catch (e) {}
if (channelBrowser) {
isOurPDF = hiddenBrowser === channelBrowser;
}
else {
// try the document for the load group
try { try {
channelBrowser = channel.loadGroup.notificationCallbacks.getInterface(Ci.nsIWebNavigation) channelBrowser = channel.notificationCallbacks.getInterface(Ci.nsIWebNavigation)
.QueryInterface(Ci.nsIDocShell).chromeEventHandler; .QueryInterface(Ci.nsIDocShell).chromeEventHandler;
} }
catch(e) {} catch (e) {}
if (channelBrowser) { if (channelBrowser) {
isOurPDF = hiddenBrowser === channelBrowser; isOurPDF = hiddenBrowser === channelBrowser;
} }
} else {
// try the document for the load group
if (isOurPDF) { try {
Zotero.debug(`downloadPDFViaBrowser: Found our PDF at ${name}`); channelBrowser = channel.loadGroup.notificationCallbacks.getInterface(Ci.nsIWebNavigation)
await Zotero.File.putContentsAsync(path, blob); .QueryInterface(Ci.nsIDocShell).chromeEventHandler;
hiddenBrowserPDFFoundDeferred.resolve(); }
return true; catch(e) {}
} if (channelBrowser) {
else { isOurPDF = hiddenBrowser === channelBrowser;
Zotero.debug(`downloadPDFViaBrowser: Not our PDF at ${name}`); }
return false; }
},
onContent: async (blob, name, _, channel) => {
if (isOurPDF) {
Zotero.debug(`downloadPDFViaBrowser: Found our PDF at ${name}`);
await Zotero.File.putContentsAsync(path, blob);
hiddenBrowserPDFFoundDeferred.resolve();
return true;
}
else {
Zotero.debug(`downloadPDFViaBrowser: Not our PDF at ${name}`);
return false;
}
} }
}; };
try { try {
Zotero.MIMETypeHandler.addHandler("application/pdf", pdfMIMETypeHandler, true); Zotero.MIMETypeHandler.addHandlers("application/pdf", pdfMIMETypeHandler, true);
let noop = () => 0; function noop() {};
hiddenBrowser = Zotero.HTTP.loadDocuments([url], noop, noop, noop, true, options.cookieSandbox); hiddenBrowser = Zotero.HTTP.loadDocuments([url], noop, noop, noop, true, options.cookieSandbox);
let onLoadTimeoutDeferred = Zotero.Promise.defer(); let onLoadTimeoutDeferred = Zotero.Promise.defer();
hiddenBrowser.addEventListener("load", async function onLoad() { let currentUrl = "";
Zotero.debug(`downloadPDFViaBrowser: Page with potential JS redirect loaded, giving it ${onLoadTimeout}ms to process`); hiddenBrowser.addProgressListener({
hiddenBrowser.addEventListener("unload", () => { QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsIWebProgressListener,
Zotero.debug(`downloadPDFViaBrowser: A JS redirect occurred, short timeout cancelled`); Components.interfaces.nsISupportsWeakReference]),
hiddenBrowser.removeEventListener('load', onLoad); onProgressChange: noop,
}); onStateChange: noop,
await Zotero.Promise.delay(onLoadTimeout); onStatusChange: noop,
onLoadTimeoutDeferred.reject(`Loading PDF via browser timed out on the JS challenge page after ${onLoadTimeout}ms`); onSecurityChange: noop,
}, true); async onLocationChange() {
let url = hiddenBrowser.contentDocument.location.href;
if (currentUrl) {
Zotero.debug(`downloadPDFViaBrowser: A JS redirect occurred to ${hiddenBrowser.contentDocument.location.href}`);
}
currentUrl = url;
Zotero.debug(`downloadPDFViaBrowser: Page with potential JS redirect loaded, giving it ${onLoadTimeout}ms to process`);
await Zotero.Promise.delay(onLoadTimeout);
// If URL changed that means we got redirected and the onLoadTimeout needs to restart
if (currentUrl === url && !isOurPDF) {
onLoadTimeoutDeferred.reject(new Error(`downloadPDFViaBrowser: Loading PDF via browser timed out on the JS challenge page after ${onLoadTimeout}ms`));
}
}
});
await Zotero.Promise.race([ await Zotero.Promise.race([
onLoadTimeoutDeferred.promise, onLoadTimeoutDeferred.promise,
Zotero.Promise.delay(downloadTimeout).then(() => { Zotero.Promise.delay(downloadTimeout).then(() => {
if (!hiddenBrowserPDFFoundDeferred.promise.isResolved()) { if (!isOurPDF) {
throw new Error(`Loading PDF via browser timed out after ${downloadTimeout}ms`); throw new Error(`downloadPDFViaBrowser: Loading PDF via browser timed out after ${downloadTimeout}ms`);
} }
}), }),
hiddenBrowserPDFFoundDeferred.promise hiddenBrowserPDFFoundDeferred.promise
@ -1213,13 +1239,13 @@ Zotero.Attachments = new function(){
try { try {
await OS.File.remove(path, { ignoreAbsent: true }); await OS.File.remove(path, { ignoreAbsent: true });
} }
catch (e) { catch (err) {
Zotero.logError(e, 1); Zotero.logError(err);
} }
throw e; throw e;
} }
finally { finally {
Zotero.MIMETypeHandler.removeHandler('application/pdf', pdfMIMETypeHandler); Zotero.MIMETypeHandler.removeHandlers('application/pdf', pdfMIMETypeHandler);
if (hiddenBrowser) { if (hiddenBrowser) {
Zotero.Browser.deleteHiddenBrowser(hiddenBrowser); Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
} }

View file

@ -8,9 +8,110 @@ Zotero.Cite = {
/** /**
* Locator labels * Locator labels
*/ */
"labels":["page", "book", "chapter", "column", "figure", "folio", "labels": [
"issue", "line", "note", "opus", "paragraph", "part", "section", "sub verbo", "act",
"volume", "verse"], "appendix",
"article-locator",
"book",
"canon",
"chapter",
"column",
"elocation",
"equation",
"figure",
"folio",
"issue",
"line",
"note",
"opus",
"page",
"paragraph",
"part",
"rule",
"scene",
"section",
"sub-verbo",
"table",
//"timestamp",
"title-locator",
"verse",
"volume"
],
_locatorStrings: new Map(),
/**
* Get localized string for locator
*
* @param {String} locator - Locator name (e.g., 'book')
* @return {String} - Localized string (e.g., 'Livre')
*/
getLocatorString: function (locator) {
// 'timestamp' not included in CSL locales
if (locator == 'timestamp') {
return Zotero.getString('citation.locator.timestamp');
}
// Get the best CSL locale for the current Zotero locale
var cslLocale = Zotero.Utilities.Internal.resolveLocale(
Zotero.locale,
Object.keys(Zotero.Styles.locales)
);
// If locator strings are already cached for the current locale, use that
if (this._locatorStrings.has(cslLocale)) {
return this._locatorStrings.get(cslLocale).get(locator);
}
var map = new Map();
this._locatorStrings.set(cslLocale, map);
var localeXML = Zotero.Cite.Locale.get(cslLocale);
var parser;
if (Zotero.platformMajorVersion > 60) {
parser = new DOMParser();
}
else {
parser = Components.classes["@mozilla.org/xmlextras/domparser;1"]
.createInstance(Components.interfaces.nsIDOMParser);
}
var doc = parser.parseFromString(localeXML, 'text/xml');
var englishDoc;
// Cache all locators for the current locale
for (let locator of this.labels) {
let elem = doc.querySelector(`term[name="${locator}"]:not([form="short"]) > single`);
if (!elem) {
// If locator not found, get from the U.S. English locale
if (cslLocale != 'en-US') {
Zotero.logError(`Locator '${locator}' not found in ${cslLocale} locale -- trying en-US`);
if (!englishDoc) {
englishDoc = parser.parseFromString(Zotero.Cite.Locale.get('en-US'), 'text/xml');
}
elem = englishDoc.querySelector(`term[name="${locator}"]:not([form="short"]) > single`);
if (!elem) {
Zotero.logError(`Locator '${locator}' not found in en-US locale -- using name`);
}
}
else {
Zotero.logError(`Locator '${locator}' not found in en-US locale -- using name`);
}
// If still not found, use the locator name directly
if (!elem) {
map.set(locator, Zotero.Utilities.capitalize(locator));
continue;
}
}
// If <single> is empty, use the locator name directly
let str = elem.textContent;
if (!str) {
Zotero.logError(`Locator '${locator}' is empty in ${cslLocale} locale -- using name`);
map.set(locator, Zotero.Utilities.capitalize(locator));
continue;
}
map.set(locator, Zotero.Utilities.capitalize(str));
}
return map.get(locator);
},
/** /**
* Remove specified item IDs in-place from a citeproc-js bibliography object returned * Remove specified item IDs in-place from a citeproc-js bibliography object returned

View file

@ -22261,7 +22261,7 @@ CSL.Output.Formats.prototype.text = {
return "\n"+str; return "\n"+str;
}, },
"@display/left-margin": function (state, str) { "@display/left-margin": function (state, str) {
return str; return str + " ";
}, },
"@display/right-inline": function (state, str) { "@display/right-inline": function (state, str) {
return str; return str;

View file

@ -383,6 +383,10 @@ Zotero.CookieSandbox.Observer = new function() {
if(trackedBy) { if(trackedBy) {
var cookiesForURI = trackedBy.getCookiesForURI(channel.URI); var cookiesForURI = trackedBy.getCookiesForURI(channel.URI);
} }
if (trackedBy && trackedBy.userAgent) {
channel.setRequestHeader("User-Agent", trackedBy.userAgent, false);
}
if(!trackedBy || !cookiesForURI) { if(!trackedBy || !cookiesForURI) {
channel.setRequestHeader("Cookie", "", false); channel.setRequestHeader("Cookie", "", false);
@ -390,11 +394,7 @@ Zotero.CookieSandbox.Observer = new function() {
Zotero.debug("CookieSandbox: Cleared cookies to be sent to "+channelURI, 5); Zotero.debug("CookieSandbox: Cleared cookies to be sent to "+channelURI, 5);
return; return;
} }
if(trackedBy.userAgent) {
channel.setRequestHeader("User-Agent", trackedBy.userAgent, false);
}
// add cookies to be sent to this domain // add cookies to be sent to this domain
channel.setRequestHeader("Cookie", Zotero.CookieSandbox.generateCookieString(cookiesForURI), false); channel.setRequestHeader("Cookie", Zotero.CookieSandbox.generateCookieString(cookiesForURI), false);
Zotero.debug("CookieSandbox: Added cookies for request to "+channelURI, 5); Zotero.debug("CookieSandbox: Added cookies for request to "+channelURI, 5);

View file

@ -133,8 +133,9 @@ Zotero.Feeds = new function() {
for (let feedElem of feedElems) { for (let feedElem of feedElems) {
let url = feedElem.getAttribute('xmlUrl'); let url = feedElem.getAttribute('xmlUrl');
if (!url) url = feedElem.getAttribute('url'); if (!url) url = feedElem.getAttribute('url');
let name = feedElem.getAttribute('title'); let name = feedElem.getAttribute('title')
if (!name) name = feedElem.getAttribute('text'); || feedElem.getAttribute('text')
|| Zotero.getString('pane.collections.untitled');
if (Zotero.Feeds.existsByURL(url) || registeredUrls.has(url)) { if (Zotero.Feeds.existsByURL(url) || registeredUrls.has(url)) {
Zotero.debug("Feed Import from OPML: Feed " + name + " : " + url + " already exists. Skipping"); Zotero.debug("Feed Import from OPML: Feed " + name + " : " + url + " already exists. Skipping");
continue; continue;

View file

@ -3713,7 +3713,7 @@ Zotero.Item.prototype.getBestAttachments = Zotero.Promise.coroutine(function* ()
/** /**
* Return state of best attachment * Return state of best attachment (or this item if it's a standalone attachment)
* *
* @return {Promise<Object>} - Promise for object with string 'type' ('none'|'pdf'|'snapshot'|'other') * @return {Promise<Object>} - Promise for object with string 'type' ('none'|'pdf'|'snapshot'|'other')
* and boolean 'exists' * and boolean 'exists'
@ -3722,7 +3722,9 @@ Zotero.Item.prototype.getBestAttachmentState = async function () {
if (this._bestAttachmentState !== null) { if (this._bestAttachmentState !== null) {
return this._bestAttachmentState; return this._bestAttachmentState;
} }
var item = await this.getBestAttachment(); var item = this.isAttachment() && this.isTopLevelItem()
? this
: await this.getBestAttachment();
if (!item) { if (!item) {
return this._bestAttachmentState = { return this._bestAttachmentState = {
type: 'none' type: 'none'
@ -3953,6 +3955,29 @@ Zotero.Item.prototype.getAnnotations = function (includeTrashed) {
}; };
/**
* Determine if the item is a PDF attachment that exists on disk and contains
* embedded markup annotations.
*
* @return {Promise<Boolean>}
*/
Zotero.Item.prototype.hasEmbeddedAnnotations = async function () {
if (!this.isPDFAttachment()) {
return false;
}
let path = await this.getFilePathAsync();
if (!path) {
return false;
}
let contents = await Zotero.File.getContentsAsync(path);
// Check for "markup" annotations per the PDF spec
// https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf, p. 390
let re = /\s\/Subtype\s+\/(Text|FreeText|Line|Square|Circle|Polygon|PolyLine|Highlight|Underline|Squiggly|StrikeOut|Stamp|Caret|Ink|FileAttachment|Sound|Redact)\s/;
return re.test(contents);
};
// //
// Methods dealing with item tags // Methods dealing with item tags

View file

@ -1035,6 +1035,29 @@ Zotero.Items = function() {
for (let otherItem of otherItems) { for (let otherItem of otherItems) {
let mergedMasterAttachments = new Set(); let mergedMasterAttachments = new Set();
let doMerge = async (fromAttachment, toAttachment) => {
mergedMasterAttachments.add(toAttachment.id);
await this.moveChildItems(fromAttachment, toAttachment, true);
await this._moveEmbeddedNote(fromAttachment, toAttachment);
await this._moveRelations(fromAttachment, toAttachment);
fromAttachment.deleted = true;
await fromAttachment.save();
// Later on, when processing notes, we'll use this to remap
// URLs pointing to the old attachment.
remapAttachmentKeys.set(fromAttachment.key, toAttachment.key);
// Items can only have one replaced item predicate
if (!toAttachment.getRelationsByPredicate(Zotero.Relations.replacedItemPredicate)) {
toAttachment.addRelation(Zotero.Relations.replacedItemPredicate,
Zotero.URI.getItemURI(fromAttachment));
}
await toAttachment.save();
};
for (let otherAttachment of await this.getAsync(otherItem.getAttachments(true))) { for (let otherAttachment of await this.getAsync(otherItem.getAttachments(true))) {
if (!otherAttachment.isPDFAttachment()) { if (!otherAttachment.isPDFAttachment()) {
continue; continue;
@ -1065,13 +1088,12 @@ Zotero.Items = function() {
await otherAttachment.save(); await otherAttachment.save();
continue; continue;
} }
mergedMasterAttachments.add(masterAttachmentID);
let masterAttachment = await this.getAsync(masterAttachmentID); let masterAttachment = await this.getAsync(masterAttachmentID);
if (masterAttachment.attachmentContentType !== otherAttachment.attachmentContentType) { if (masterAttachment.attachmentContentType !== otherAttachment.attachmentContentType) {
Zotero.debug(`Master attachment ${masterAttachment.key} matches ${otherAttachment.key}, ` Zotero.debug(`Master attachment ${masterAttachment.key} matches ${otherAttachment.key}, `
+ 'but content types differ - moving'); + 'but content types differ - keeping both');
otherAttachment.parentItemID = item.id; otherAttachment.parentItemID = item.id;
await otherAttachment.save(); await otherAttachment.save();
continue; continue;
@ -1080,31 +1102,35 @@ Zotero.Items = function() {
if (!((masterAttachment.isImportedAttachment() && otherAttachment.isImportedAttachment()) if (!((masterAttachment.isImportedAttachment() && otherAttachment.isImportedAttachment())
|| (masterAttachment.isLinkedFileAttachment() && otherAttachment.isLinkedFileAttachment()))) { || (masterAttachment.isLinkedFileAttachment() && otherAttachment.isLinkedFileAttachment()))) {
Zotero.debug(`Master attachment ${masterAttachment.key} matches ${otherAttachment.key}, ` Zotero.debug(`Master attachment ${masterAttachment.key} matches ${otherAttachment.key}, `
+ 'but link modes differ - moving'); + 'but link modes differ - keeping both');
otherAttachment.parentItemID = item.id; otherAttachment.parentItemID = item.id;
await otherAttachment.save(); await otherAttachment.save();
continue; continue;
} }
Zotero.debug(`Master attachment ${masterAttachment.key} matches ${otherAttachment.key} - merging`); // Check whether master and other have embedded annotations
await this.moveChildItems(otherAttachment, masterAttachment, true); // Master yes, other yes -> keep both
await this._moveEmbeddedNote(otherAttachment, masterAttachment); // Master yes, other no -> keep master
await this._moveRelations(otherAttachment, masterAttachment); // Master no, other yes -> keep other
if (await otherAttachment.hasEmbeddedAnnotations()) {
otherAttachment.deleted = true; if (await masterAttachment.hasEmbeddedAnnotations()) {
await otherAttachment.save(); Zotero.debug(`Master attachment ${masterAttachment.key} matches ${otherAttachment.key}, `
+ 'but both have embedded annotations - keeping both');
// Later on, when processing notes, we'll use this to remap otherAttachment.parentItemID = item.id;
// URLs pointing to the old attachment. await otherAttachment.save();
remapAttachmentKeys.set(otherAttachment.key, masterAttachment.key); }
else {
// Items can only have one replaced item predicate Zotero.debug(`Master attachment ${masterAttachment.key} matches ${otherAttachment.key}, `
if (!masterAttachment.getRelationsByPredicate(Zotero.Relations.replacedItemPredicate)) { + 'but other has embedded annotations - merging into other');
masterAttachment.addRelation(Zotero.Relations.replacedItemPredicate, await doMerge(masterAttachment, otherAttachment);
Zotero.URI.getItemURI(otherAttachment)); otherAttachment.parentItemID = item.id;
await otherAttachment.save();
}
continue;
} }
await masterAttachment.save(); Zotero.debug(`Master attachment ${masterAttachment.key} matches ${otherAttachment.key} - merging into master`);
await doMerge(otherAttachment, masterAttachment);
} }
} }

View file

@ -43,9 +43,6 @@ const DOWNLOADED_IMAGE_TYPE = [
'image/png' 'image/png'
]; ];
// Schema version here has to be the same as in note-editor!
const SCHEMA_VERSION = 8;
class EditorInstance { class EditorInstance {
constructor() { constructor() {
this.instanceID = Zotero.Utilities.randomString(); this.instanceID = Zotero.Utilities.randomString();
@ -89,6 +86,25 @@ class EditorInstance {
return doc.execCommand(command, ui, value); return doc.execCommand(command, ui, value);
}; };
// Translate note HTML into Markdown, for setting it as text/plain in clipboard (on text copy/drag)
this._iframeWindow.wrappedJSObject.zoteroTranslateToMarkdown = (html) => {
let item = new Zotero.Item('note');
item.libraryID = this._item.libraryID;
item.setNote(html);
let text = '';
var translation = new Zotero.Translate.Export;
translation.noWait = true;
translation.setItems([item]);
translation.setTranslator(Zotero.Translators.TRANSLATOR_ID_NOTE_MARKDOWN);
translation.setHandler("done", (obj, worked) => {
if (worked) {
text = obj.string.replace(/\r\n/g, '\n');
}
});
translation.translate();
return text;
};
this._iframeWindow.addEventListener('message', this._messageHandler); this._iframeWindow.addEventListener('message', this._messageHandler);
this._iframeWindow.addEventListener('error', (event) => { this._iframeWindow.addEventListener('error', (event) => {
Zotero.logError(event.error); Zotero.logError(event.error);
@ -1242,7 +1258,9 @@ class EditorInstance {
let { html: serializedHTML, citationItems } = Zotero.EditorInstanceUtilities.serializeAnnotations(jsonAnnotations, true); let { html: serializedHTML, citationItems } = Zotero.EditorInstanceUtilities.serializeAnnotations(jsonAnnotations, true);
html += serializedHTML; html += serializedHTML;
citationItems = encodeURIComponent(JSON.stringify(citationItems)); citationItems = encodeURIComponent(JSON.stringify(citationItems));
html = `<div data-citation-items="${citationItems}" data-schema-version="${SCHEMA_VERSION}">${html}</div>`; // Note: Update schema version only if using new features
let schemaVersion = 8;
html = `<div data-citation-items="${citationItems}" data-schema-version="${schemaVersion}">${html}</div>`;
note.setNote(html); note.setNote(html);
await note.saveTx(); await note.saveTx();
return note; return note;
@ -1359,16 +1377,24 @@ class EditorInstanceUtilities {
template = '<p>{{image}}<br/>{{citation}} {{comment}}</p>'; template = '<p>{{image}}<br/>{{citation}} {{comment}}</p>';
} }
Zotero.debug('Using note template:');
Zotero.debug(template);
template = template.replace(
/(<blockquote>[^<>]*?)({{highlight}})([\s\S]*?<\/blockquote>)/g,
(match, p1, p2, p3) => p1 + "{{highlight quotes='false'}}" + p3
);
let vars = { let vars = {
color: annotation.color || '', color: annotation.color || '',
highlight: (attrs) => attrs.quotes === 'true' ? quotedHighlightHTML : highlightHTML, // Include quotation marks by default, but allow to disable with `quotes='false'`
highlight: (attrs) => attrs.quotes === 'false' ? highlightHTML : quotedHighlightHTML,
comment: commentHTML, comment: commentHTML,
citation: citationHTML, citation: citationHTML,
image: imageHTML, image: imageHTML,
tags: (attrs) => (annotation.tags && annotation.tags.map(tag => tag.name) || []).join(attrs.join || ' ') tags: (attrs) => (annotation.tags && annotation.tags.map(tag => tag.name) || []).join(attrs.join || ' ')
}; };
Zotero.debug('Using note template:');
Zotero.debug(template);
let templateHTML = Zotero.Utilities.Internal.generateHTMLFromTemplate(template, vars); let templateHTML = Zotero.Utilities.Internal.generateHTMLFromTemplate(template, vars);
// Remove some spaces at the end of paragraph // Remove some spaces at the end of paragraph
templateHTML = templateHTML.replace(/([\s]*)(<\/p)/g, '$2'); templateHTML = templateHTML.replace(/([\s]*)(<\/p)/g, '$2');
@ -1529,5 +1555,4 @@ class EditorInstanceUtilities {
} }
Zotero.EditorInstance = EditorInstance; Zotero.EditorInstance = EditorInstance;
Zotero.EditorInstance.SCHEMA_VERSION = SCHEMA_VERSION;
Zotero.EditorInstanceUtilities = new EditorInstanceUtilities(); Zotero.EditorInstanceUtilities = new EditorInstanceUtilities();

View file

@ -1217,9 +1217,10 @@ Zotero.HTTP = new function() {
* @param {Boolean} dontDelete Don't delete the hidden browser upon completion; calling function * @param {Boolean} dontDelete Don't delete the hidden browser upon completion; calling function
* must call deleteHiddenBrowser itself. * must call deleteHiddenBrowser itself.
* @param {Zotero.CookieSandbox} [cookieSandbox] Cookie sandbox object * @param {Zotero.CookieSandbox} [cookieSandbox] Cookie sandbox object
* @param {Object} [docShellPrefs] See Zotero.Browser.createHiddenBrowser
* @return {browser} Hidden browser used for loading * @return {browser} Hidden browser used for loading
*/ */
this.loadDocuments = function (urls, processor, onDone, onError, dontDelete, cookieSandbox) { this.loadDocuments = function (urls, processor, onDone, onError, dontDelete, cookieSandbox, docShellPrefs={}) {
// (Approximately) how many seconds to wait if the document is left in the loading state and // (Approximately) how many seconds to wait if the document is left in the loading state and
// pageshow is called before we call pageshow with an incomplete document // pageshow is called before we call pageshow with an incomplete document
const LOADING_STATE_TIMEOUT = 120; const LOADING_STATE_TIMEOUT = 120;
@ -1342,6 +1343,9 @@ Zotero.HTTP = new function() {
currentURL = 0; currentURL = 0;
for(var i=0; i<urls.length; i++) { for(var i=0; i<urls.length; i++) {
let hiddenBrowser = Zotero.Browser.createHiddenBrowser(); let hiddenBrowser = Zotero.Browser.createHiddenBrowser();
for (let pref in docShellPrefs) {
hiddenBrowser.docShell[pref] = docShellPrefs[pref];
}
if (cookieSandbox) { if (cookieSandbox) {
cookieSandbox.attachToBrowser(hiddenBrowser); cookieSandbox.attachToBrowser(hiddenBrowser);
} }

View file

@ -55,20 +55,22 @@ Zotero.MIMETypeHandler = new function () {
_observers = []; _observers = [];
// Install styles from the Cite preferences // Install styles from the Cite preferences
this.addHandler("application/vnd.citationstyles.style+xml", async function (blob, origin) { this.addHandlers("application/vnd.citationstyles.style+xml", {
let win = Services.wm.getMostRecentWindow("zotero:basicViewer"); onContent: async function (blob, origin) {
var data = await Zotero.Utilities.Internal.blobToText(blob); let win = Services.wm.getMostRecentWindow("zotero:basicViewer");
try { var data = await Zotero.Utilities.Internal.blobToText(blob);
await Zotero.Styles.install(data, origin, true); try {
} await Zotero.Styles.install(data, origin, true);
catch (e) { }
Zotero.logError(e); catch (e) {
(new Zotero.Exception.Alert("styles.install.unexpectedError", Zotero.logError(e);
origin, "styles.install.title", e)).present(); (new Zotero.Exception.Alert("styles.install.unexpectedError",
} origin, "styles.install.title", e)).present();
// Close styles page in basic viewer after installing a style }
if (win) { // Close styles page in basic viewer after installing a style
win.close(); if (win) {
win.close();
}
} }
}, true); }, true);
}; };
@ -76,17 +78,25 @@ Zotero.MIMETypeHandler = new function () {
/** /**
* Adds a handler to handle a specific MIME type * Adds a handler to handle a specific MIME type
* @param {String} type MIME type to handle * @param {String} type MIME type to handle
* @param {Function} fn Function to call to handle type - fn(string, uri) * @param {Object} handlers
* - handlers.onContent - function to call when content is received
* - handlers.onStartRequest - function to call when response for content type is first received
* @param {Boolean} ignoreContentDisposition If true, ignores the Content-Disposition header, * @param {Boolean} ignoreContentDisposition If true, ignores the Content-Disposition header,
* which is often used to force a file to download rather than let it be handled by the web * which is often used to force a file to download rather than let it be handled by the web
* browser * browser
*/ */
this.addHandler = function (type, fn, ignoreContentDisposition) { this.addHandlers = function (type, handlers, ignoreContentDisposition) {
if (typeof handlers == 'function') {
handlers = {
onContent: handlers
};
Zotero.debug('MIMETypeHandler.addHandler: second parameter function is deprecated. Pass an object', 1)
}
if (_typeHandlers[type]) { if (_typeHandlers[type]) {
_typeHandlers[type].push(fn); _typeHandlers[type].push(handlers);
} }
else { else {
_typeHandlers[type] = [fn]; _typeHandlers[type] = [handlers];
} }
if (ignoreContentDisposition) { if (ignoreContentDisposition) {
_ignoreContentDispositionTypes.add(type); _ignoreContentDispositionTypes.add(type);
@ -96,19 +106,19 @@ Zotero.MIMETypeHandler = new function () {
/** /**
* Removes a handler for a specific MIME type * Removes a handler for a specific MIME type
* @param {String} type MIME type to handle * @param {String} type MIME type to handle
* @param {Function} handler Function handler to remove * @param {Object} handlers Function handlers to remove
*/ */
this.removeHandler = function (type, handler) { this.removeHandlers = function (type, handlers) {
// If no handler specified or this is the last handler for the type // If no handler specified or this is the last handler for the type
// stop monitoring the content type completely. // stop monitoring the content type completely.
if (!handler || _typeHandlers[type] && _typeHandlers[type].length <= 1) { if (!handlers || _typeHandlers[type] && _typeHandlers[type].length <= 1) {
delete _typeHandlers[type]; delete _typeHandlers[type];
_ignoreContentDispositionTypes.delete(type); _ignoreContentDispositionTypes.delete(type);
} }
else if (_typeHandlers[type]) { else if (_typeHandlers[type]) {
var i = _typeHandlers[type].indexOf(handler); var i = _typeHandlers[type].indexOf(handlers);
if (i != -1) { if (i != -1) {
_typeHandlers.splice(i, 1); _typeHandlers[type].splice(i, 1);
} }
} }
}; };
@ -214,10 +224,27 @@ Zotero.MIMETypeHandler = new function () {
} }
/** /**
* Called when the request is started; we ignore this * Called when the request is started
*/ */
_StreamListener.prototype.onStartRequest = function(channel, context) {} _StreamListener.prototype.onStartRequest = async function(channel, context) {
try {
if (!_typeHandlers[this._contentType]) return;
for (let handlers of _typeHandlers[this._contentType]) {
if (!handlers.onStartRequest) continue;
let maybePromise = handlers.onStartRequest(
this._request.name ? this._request.name : null,
this._contentType,
channel
);
if (maybePromise && maybePromise.then) {
maybePromise = await maybePromise;
}
}
}
catch (e) {
Zotero.logError(e);
}
}
/** /**
* Called when there's data available; we collect this data and keep it until the request is * Called when there's data available; we collect this data and keep it until the request is
@ -259,14 +286,16 @@ Zotero.MIMETypeHandler = new function () {
var handled = false; var handled = false;
try { try {
for (let handler of _typeHandlers[this._contentType]) { if (!_typeHandlers[this._contentType]) return;
let maybePromise = handler( for (let handlers of _typeHandlers[this._contentType]) {
if (!handlers.onContent) continue;
let maybePromise = handlers.onContent(
blob, blob,
this._request.name ? this._request.name : null, this._request.name ? this._request.name : null,
this._contentType, this._contentType,
channel channel
); );
if (maybePromise.then) { if (maybePromise && maybePromise.then) {
maybePromise = await maybePromise; maybePromise = await maybePromise;
} }
handled = handled || maybePromise; handled = handled || maybePromise;

View file

@ -410,6 +410,162 @@ class PDFWorker {
} }
await Promise.all(promises); await Promise.all(promises);
} }
/**
* Delete pages from PDF attachment
*
* @param {Integer} itemID Attachment item id
* @param {Array} pageIndexes
* @param {Boolean} [isPriority]
* @param {String} [password]
* @returns {Promise}
*/
async deletePages(itemID, pageIndexes, isPriority, password) {
return this._enqueue(async () => {
let attachment = await Zotero.Items.getAsync(itemID);
Zotero.debug(`Deleting [${pageIndexes.join(', ')}] pages for item ${attachment.libraryKey}`);
let t = new Date();
if (!attachment.isPDFAttachment()) {
throw new Error('Item must be a PDF attachment');
}
let annotations = attachment
.getAnnotations()
.map(annotation => ({
id: annotation.id,
position: JSON.parse(annotation.annotationPosition)
}));
let path = await attachment.getFilePathAsync();
let buf = await OS.File.read(path, {});
buf = new Uint8Array(buf).buffer;
try {
var { buf: modifiedBuf } = await this._query('deletePages', {
buf, pageIndexes, password
}, [buf]);
}
catch (e) {
let error = new Error(`Worker 'deletePages' failed: ${JSON.stringify({ error: e.message })}`);
try {
error.name = JSON.parse(e.message).name;
}
catch (e) {
Zotero.logError(e);
}
Zotero.logError(error);
throw error;
}
// Delete annotations from deleted pages
let ids = [];
for (let i = annotations.length - 1; i >= 0; i--) {
let { id, position } = annotations[i];
if (pageIndexes.includes(position.pageIndex)) {
ids.push(id);
annotations.splice(i, 1);
}
}
if (ids.length) {
await Zotero.Items.erase(ids);
}
// Shift page index for other annotations
ids = [];
await Zotero.DB.executeTransaction(async function () {
let rows = await Zotero.DB.queryAsync('SELECT itemID, position FROM itemAnnotations WHERE parentItemID=?', itemID);
for (let { itemID, position } of rows) {
try {
position = JSON.parse(position);
}
catch (e) {
Zotero.logError(e);
continue;
}
// Find the count of deleted pages before the current annotation page
let shift = pageIndexes.reduce((prev, cur) => cur < position.pageIndex ? prev + 1 : prev, 0);
if (shift > 0) {
position.pageIndex -= shift;
position = JSON.stringify(position);
await Zotero.DB.queryAsync('UPDATE itemAnnotations SET position=? WHERE itemID=?', [position, itemID]);
ids.push(itemID);
}
}
});
let objectsClass = Zotero.DataObjectUtilities.getObjectsClassForObjectType('item');
let loadedObjects = objectsClass.getLoaded();
for (let object of loadedObjects) {
if (ids.includes(object.id)) {
await object.reload(null, true);
}
}
await Zotero.Notifier.trigger('modify', 'item', ids, {});
await OS.File.writeAtomic(path, new Uint8Array(modifiedBuf));
let mtime = Math.floor(await attachment.attachmentModificationTime / 1000);
attachment.attachmentLastProcessedModificationTime = mtime;
await attachment.saveTx({
skipAll: true
});
Zotero.debug(`Deleted pages for item ${attachment.libraryKey} in ${new Date() - t} ms`);
}, isPriority);
}
/**
* Rotate pages in PDF attachment
*
* @param {Integer} itemID Attachment item id
* @param {Array} pageIndexes
* @param {Integer} degrees 90, 180, 270
* @param {Boolean} [isPriority]
* @param {String} [password]
* @returns {Promise}
*/
async rotatePages(itemID, pageIndexes, degrees, isPriority, password) {
return this._enqueue(async () => {
let attachment = await Zotero.Items.getAsync(itemID);
Zotero.debug(`Rotating [${pageIndexes.join(', ')}] pages for item ${attachment.libraryKey}`);
let t = new Date();
if (!attachment.isPDFAttachment()) {
throw new Error('Item must be a PDF attachment');
}
let path = await attachment.getFilePathAsync();
let buf = await OS.File.read(path, {});
buf = new Uint8Array(buf).buffer;
try {
var { buf: modifiedBuf } = await this._query('rotatePages', {
buf, pageIndexes, degrees, password
}, [buf]);
}
catch (e) {
let error = new Error(`Worker 'rotatePages' failed: ${JSON.stringify({ error: e.message })}`);
try {
error.name = JSON.parse(e.message).name;
}
catch (e) {
Zotero.logError(e);
}
Zotero.logError(error);
throw error;
}
await OS.File.writeAtomic(path, new Uint8Array(modifiedBuf));
let mtime = Math.floor(await attachment.attachmentModificationTime / 1000);
attachment.attachmentLastProcessedModificationTime = mtime;
await attachment.saveTx({
skipAll: true
});
Zotero.debug(`Rotated pages for item ${attachment.libraryKey} in ${new Date() - t} ms`);
}, isPriority);
}
} }
Zotero.PDFWorker = new PDFWorker(); Zotero.PDFWorker = new PDFWorker();

View file

@ -249,6 +249,33 @@ class ReaderInstance {
); );
return !index; return !index;
} }
promptToDeletePages(num) {
let ps = Services.prompt;
let buttonFlags = ps.BUTTON_POS_0 * ps.BUTTON_TITLE_IS_STRING
+ ps.BUTTON_POS_1 * ps.BUTTON_TITLE_CANCEL;
let index = ps.confirmEx(
null,
Zotero.getString('pdfReader.promptDeletePages.title'),
Zotero.getString(
'pdfReader.promptDeletePages.text',
new Intl.NumberFormat().format(num),
num
),
buttonFlags,
Zotero.getString('general.continue'),
null, null, null, {}
);
return !index;
}
async reload() {
let item = Zotero.Items.get(this._itemID);
let path = await item.getFilePathAsync();
let buf = await OS.File.read(path, {});
buf = new Uint8Array(buf).buffer;
this._postMessage({ action: 'reload', buf, }, [buf]);
}
async menuCmd(cmd) { async menuCmd(cmd) {
if (cmd === 'transferFromPDF') { if (cmd === 'transferFromPDF') {
@ -661,6 +688,60 @@ class ReaderInstance {
popup.openPopup(element, 'after_start', 0, 0, true); popup.openPopup(element, 'after_start', 0, 0, true);
} }
_openThumbnailPopup(data) {
let popup = this._window.document.createElement('menupopup');
this._popupset.appendChild(popup);
popup.addEventListener('popuphidden', function () {
popup.remove();
});
let menuitem;
// Rotate Left
menuitem = this._window.document.createElement('menuitem');
menuitem.setAttribute('label', Zotero.getString('pdfReader.rotateLeft'));
menuitem.addEventListener('command', async () => {
this._postMessage({ action: 'reloading' });
await Zotero.PDFWorker.rotatePages(this._itemID, data.pageIndexes, 270, true);
await this.reload();
});
popup.appendChild(menuitem);
// Rotate Right
menuitem = this._window.document.createElement('menuitem');
menuitem.setAttribute('label', Zotero.getString('pdfReader.rotateRight'));
menuitem.addEventListener('command', async () => {
this._postMessage({ action: 'reloading' });
await Zotero.PDFWorker.rotatePages(this._itemID, data.pageIndexes, 90, true);
await this.reload();
});
popup.appendChild(menuitem);
// Rotate 180
menuitem = this._window.document.createElement('menuitem');
menuitem.setAttribute('label', Zotero.getString('pdfReader.rotate180'));
menuitem.addEventListener('command', async () => {
this._postMessage({ action: 'reloading' });
await Zotero.PDFWorker.rotatePages(this._itemID, data.pageIndexes, 180, true);
await this.reload();
});
popup.appendChild(menuitem);
// Separator
popup.appendChild(this._window.document.createElement('menuseparator'));
// Delete
menuitem = this._window.document.createElement('menuitem');
menuitem.setAttribute('label', Zotero.getString('general.delete'));
menuitem.addEventListener('command', async () => {
if (this.promptToDeletePages(data.pageIndexes.length)) {
this._postMessage({ action: 'reloading' });
try {
await Zotero.PDFWorker.deletePages(this._itemID, data.pageIndexes, true);
}
catch (e) {
}
await this.reload();
}
});
popup.appendChild(menuitem);
popup.openPopupAtScreen(data.x, data.y, true);
}
_openSelectorPopup(data) { _openSelectorPopup(data) {
let popup = this._window.document.createElement('menupopup'); let popup = this._window.document.createElement('menupopup');
this._popupset.appendChild(popup); this._popupset.appendChild(popup);
@ -799,6 +880,14 @@ class ReaderInstance {
this._openColorPopup(message.data); this._openColorPopup(message.data);
return; return;
} }
case 'openThumbnailPopup': {
this._openThumbnailPopup(message.data);
return;
}
case 'openSelectorPopup': {
this._openSelectorPopup(message.data);
return;
}
case 'closePopup': { case 'closePopup': {
// Note: This currently only closes tags popup when annotations are // Note: This currently only closes tags popup when annotations are
// disappearing from pdf-reader sidebar // disappearing from pdf-reader sidebar
@ -925,7 +1014,7 @@ class ReaderInstance {
} }
class ReaderTab extends ReaderInstance { class ReaderTab extends ReaderInstance {
constructor({ itemID, title, sidebarWidth, sidebarOpen, bottomPlaceholderHeight, index, background }) { constructor({ itemID, title, sidebarWidth, sidebarOpen, bottomPlaceholderHeight, index, tabID, background }) {
super(); super();
this._itemID = itemID; this._itemID = itemID;
this._sidebarWidth = sidebarWidth; this._sidebarWidth = sidebarWidth;
@ -934,6 +1023,7 @@ class ReaderTab extends ReaderInstance {
this._showItemPaneToggle = true; this._showItemPaneToggle = true;
this._window = Services.wm.getMostRecentWindow('navigator:browser'); this._window = Services.wm.getMostRecentWindow('navigator:browser');
let { id, container } = this._window.Zotero_Tabs.add({ let { id, container } = this._window.Zotero_Tabs.add({
id: tabID,
type: 'reader', type: 'reader',
title: title || '', title: title || '',
index, index,
@ -968,20 +1058,24 @@ class ReaderTab extends ReaderInstance {
// events in PDF reader iframe when mouse up happens over another iframe // events in PDF reader iframe when mouse up happens over another iframe
// i.e. note-editor. There should be a better way to solve this // i.e. note-editor. There should be a better way to solve this
this._window.addEventListener('pointerup', (event) => { this._window.addEventListener('pointerup', (event) => {
if (this._window.Zotero_Tabs.selectedID === this.tabID try {
&& this._iframeWindow if (this._window.Zotero_Tabs.selectedID === this.tabID
&& event.target && this._iframeWindow
&& event.target.closest && event.target
&& !event.target.closest('#outerContainer')) { && event.target.closest
let evt = new this._iframeWindow.CustomEvent('mouseup', { bubbles: false }); && !event.target.closest('#outerContainer')) {
evt.clientX = event.clientX; let evt = new this._iframeWindow.CustomEvent('mouseup', { bubbles: false });
evt.clientY = event.clientY; evt.clientX = event.clientX;
this._iframeWindow.dispatchEvent(evt); evt.clientY = event.clientY;
this._iframeWindow.dispatchEvent(evt);
evt = new this._iframeWindow.CustomEvent('pointerup', { bubbles: false }); evt = new this._iframeWindow.CustomEvent('pointerup', { bubbles: false });
evt.clientX = event.clientX; evt.clientX = event.clientX;
evt.clientY = event.clientY; evt.clientY = event.clientY;
this._iframeWindow.dispatchEvent(evt); this._iframeWindow.dispatchEvent(evt);
}
}
catch(e) {
} }
}); });
} }
@ -1270,11 +1364,22 @@ class Reader {
await this.open(item.id, location, options); await this.open(item.id, location, options);
} }
async open(itemID, location, { title, tabIndex, openInBackground, openInWindow, allowDuplicate } = {}) { async open(itemID, location, { title, tabIndex, tabID, openInBackground, openInWindow, allowDuplicate } = {}) {
this._loadSidebarState(); this._loadSidebarState();
this.triggerAnnotationsImportCheck(itemID); this.triggerAnnotationsImportCheck(itemID);
let reader; let reader;
if (!allowDuplicate) {
let win = Zotero.getMainWindow();
if (win) {
let existingTabID = win.Zotero_Tabs.getTabIDByItemID(itemID);
if (existingTabID) {
win.Zotero_Tabs.select(existingTabID);
return;
}
}
}
if (openInWindow) { if (openInWindow) {
reader = this._readers.find(r => r._itemID === itemID && (r instanceof ReaderWindow)); reader = this._readers.find(r => r._itemID === itemID && (r instanceof ReaderWindow));
} }
@ -1312,6 +1417,7 @@ class Reader {
itemID, itemID,
title, title,
index: tabIndex, index: tabIndex,
tabID,
background: openInBackground, background: openInBackground,
sidebarWidth: this._sidebarWidth, sidebarWidth: this._sidebarWidth,
sidebarOpen: this._sidebarOpen, sidebarOpen: this._sidebarOpen,

View file

@ -23,7 +23,7 @@
***** END LICENSE BLOCK ***** ***** END LICENSE BLOCK *****
*/ */
Zotero.SingleFile = { Zotero.SingleFile = Object.assign(Zotero.SingleFile || {}, {
// These are defaults from SingleFile // These are defaults from SingleFile
// Located in: zotero/resources/SingleFile/extension/core/bg/config.js // Located in: zotero/resources/SingleFile/extension/core/bg/config.js
CONFIG: { CONFIG: {
@ -32,7 +32,9 @@ Zotero.SingleFile = {
removeUnusedFonts: true, removeUnusedFonts: true,
removeFrames: true, removeFrames: true,
removeImports: true, removeImports: true,
removeScripts: true, blockScripts: true,
blockVideos: true,
blockAudios: true,
compressHTML: true, compressHTML: true,
compressCSS: false, compressCSS: false,
loadDeferredImages: true, loadDeferredImages: true,
@ -58,8 +60,6 @@ Zotero.SingleFile = {
progressBarEnabled: true, progressBarEnabled: true,
maxResourceSizeEnabled: false, maxResourceSizeEnabled: false,
maxResourceSize: 10, maxResourceSize: 10,
removeAudioSrc: true,
removeVideoSrc: true,
displayInfobar: true, displayInfobar: true,
displayStats: false, displayStats: false,
backgroundSave: true, backgroundSave: true,
@ -95,4 +95,4 @@ Zotero.SingleFile = {
insertSingleFileComment: true, insertSingleFileComment: true,
blockMixedContent: false, blockMixedContent: false,
} }
}; });

View file

@ -762,6 +762,8 @@ Zotero.Style.prototype.getCiteProc = function(locale, format, automaticJournalAb
var xml = this.getXML(); var xml = this.getXML();
} }
xml = this._eventToEventTitle(xml);
try { try {
var citeproc; var citeproc;
if (Zotero.Prefs.get('cite.useCiteprocRs')) { if (Zotero.Prefs.get('cite.useCiteprocRs')) {
@ -801,6 +803,39 @@ Zotero.Style.prototype.getCiteProc = function(locale, format, automaticJournalAb
} }
}; };
/**
* Temporarily substitute `event-title` for `event`
*
* Until https://github.com/citation-style-language/styles/issues/6151
*/
Zotero.Style.prototype._eventToEventTitle = function (xml) {
var parser = Components.classes["@mozilla.org/xmlextras/domparser;1"]
.createInstance(Components.interfaces.nsIDOMParser);
var doc = parser.parseFromString(xml, "text/xml");
// Ignore styles that already include `event-title`
if (doc.querySelector('[variable*="event-title"]')) {
return xml;
}
var elems = doc.querySelectorAll('[variable*="event"]');
if (!elems.length) {
return xml;
}
var changed = false;
for (let elem of elems) {
let variable = elem.getAttribute('variable');
// Must be "event" or "event foo", not, say, "event-place"
if (!/event( |$)/.test(variable)) {
continue;
}
elem.setAttribute('variable', variable.replace(/event(?= |$)/, 'event-title'));
changed = true;
}
if (changed) {
xml = doc.documentElement.outerHTML;
}
return xml;
};
Zotero.Style.prototype.__defineGetter__("class", Zotero.Style.prototype.__defineGetter__("class",
/** /**
* Retrieves the style class, either from the metadata that's already loaded or by loading the file * Retrieves the style class, either from the metadata that's already loaded or by loading the file

@ -1 +1 @@
Subproject commit 5595949fd1223802159fd1716a116da62fe8f917 Subproject commit 1de1a0e56d2b7d7a93e75d3cbe426aa3ad4291d3

View file

@ -668,6 +668,7 @@ Zotero.Translate.ItemSaver.prototype = {
title: attachment.title, title: attachment.title,
contentType: attachment.mimeType, contentType: attachment.mimeType,
charset: attachment.charset, charset: attachment.charset,
libraryID: this._libraryID,
parentItemID, parentItemID,
collections: !parentItemID ? this._collections : undefined, collections: !parentItemID ? this._collections : undefined,
saveOptions: this._saveOptions, saveOptions: this._saveOptions,
@ -678,6 +679,7 @@ Zotero.Translate.ItemSaver.prototype = {
newItem = yield Zotero.Attachments.importFromFile({ newItem = yield Zotero.Attachments.importFromFile({
file: file, file: file,
parentItemID, parentItemID,
libraryID: this._libraryID,
collections: !parentItemID ? this._collections : undefined, collections: !parentItemID ? this._collections : undefined,
saveOptions: this._saveOptions, saveOptions: this._saveOptions,
}); });

@ -1 +1 @@
Subproject commit a0a145a4b534721148da362a3bae3befc8d65121 Subproject commit 4d8d7d3e92cbc3b4d62b82478e212a6f63b9a35f

View file

@ -405,6 +405,12 @@ Zotero.Utilities.Internal = {
return s; return s;
}, },
isOnlyEmoji: function (str) {
// Remove emoji, Zero Width Joiner, and Variation Selector-16 and see if anything's left
const re = /\p{Extended_Pictographic}|\u200D|\uFE0F/gu;
return !str.replace(re, '');
},
/** /**
* Display a prompt from an error with custom buttons and a callback * Display a prompt from an error with custom buttons and a callback
*/ */
@ -564,11 +570,10 @@ Zotero.Utilities.Internal = {
const SCRIPTS = [ const SCRIPTS = [
// This first script replace in the INDEX_SCRIPTS from the single file cli loader // This first script replace in the INDEX_SCRIPTS from the single file cli loader
"dist/single-file.js", "lib/single-file.js",
// Web SCRIPTS // Web SCRIPTS
"dist/web/hooks/hooks-frames-web.js", "lib/single-file-hooks-frames.js",
"dist/web/hooks/hooks-web.js",
]; ];
const { loadSubScript } = Components.classes['@mozilla.org/moz/jssubscript-loader;1'] const { loadSubScript } = Components.classes['@mozilla.org/moz/jssubscript-loader;1']
@ -594,8 +599,8 @@ Zotero.Utilities.Internal = {
// List of scripts from: // List of scripts from:
// resource/SingleFile/extension/lib/single-file/core/bg/scripts.js // resource/SingleFile/extension/lib/single-file/core/bg/scripts.js
const frameScripts = [ const frameScripts = [
"dist/web/hooks/hooks-frames-web.js", "lib/single-file-hooks-frames.js",
"dist/single-file-frames.js", "lib/single-file-frames.js",
]; ];
// Create sandboxes for all the frames we find // Create sandboxes for all the frames we find
@ -647,7 +652,7 @@ Zotero.Utilities.Internal = {
// Mostly copied from: // Mostly copied from:
// resources/SingleFile/extension/lib/single-file/fetch/bg/fetch.js::fetchResource // resources/SingleFile/extension/lib/single-file/fetch/bg/fetch.js::fetchResource
sandbox.coFetch = Components.utils.exportFunction( sandbox.coFetch = Components.utils.exportFunction(
function (url, onDone) { function (url, options, onDone) {
const xhrRequest = new XMLHttpRequest(); const xhrRequest = new XMLHttpRequest();
xhrRequest.withCredentials = true; xhrRequest.withCredentials = true;
xhrRequest.responseType = "arraybuffer"; xhrRequest.responseType = "arraybuffer";
@ -673,6 +678,11 @@ Zotero.Utilities.Internal = {
} }
}; };
xhrRequest.open("GET", url, true); xhrRequest.open("GET", url, true);
if (options && options.headers) {
for (const entry of Object.entries(options.headers)) {
xhrRequest.setRequestHeader(entry[0], entry[1]);
}
}
xhrRequest.send(); xhrRequest.send();
}, },
sandbox sandbox
@ -683,14 +693,14 @@ Zotero.Utilities.Internal = {
// resources/SingleFile/extension/lib/single-file/fetch/content/content-fetch.js::fetch // resources/SingleFile/extension/lib/single-file/fetch/content/content-fetch.js::fetch
Components.utils.evalInSandbox( Components.utils.evalInSandbox(
` `
ZoteroFetch = async function (url) { ZoteroFetch = async function (url, options) {
try { try {
let response = await fetch(url, { cache: "force-cache" }); let response = await fetch(url, { cache: "force-cache", headers: options.headers });
return response; return response;
} }
catch (error) { catch (error) {
let response = await new Promise((resolve, reject) => { let response = await new Promise((resolve, reject) => {
coFetch(url, (response) => { coFetch(url, { headers: options.headers }, (response) => {
if (response.error) { if (response.error) {
Zotero.debug("Error retrieving url: " + url); Zotero.debug("Error retrieving url: " + url);
Zotero.debug(response); Zotero.debug(response);

View file

@ -2098,7 +2098,7 @@ Zotero.Browser = new function() {
hiddenBrowser.docShell.allowJavascript = options.allowJavaScript !== false hiddenBrowser.docShell.allowJavascript = options.allowJavaScript !== false
hiddenBrowser.docShell.allowMetaRedirects = false; hiddenBrowser.docShell.allowMetaRedirects = false;
hiddenBrowser.docShell.allowPlugins = false; hiddenBrowser.docShell.allowPlugins = false;
Zotero.debug("Created hidden browser (" + (nBrowsers++) + ")"); Zotero.debug("Created hidden browser (" + (++nBrowsers) + ")");
return hiddenBrowser; return hiddenBrowser;
} }

View file

@ -148,6 +148,26 @@ var ZoteroPane = new function()
Zotero.hiDPI = window.devicePixelRatio > 1; Zotero.hiDPI = window.devicePixelRatio > 1;
Zotero.hiDPISuffix = Zotero.hiDPI ? "@2x" : ""; Zotero.hiDPISuffix = Zotero.hiDPI ? "@2x" : "";
// Show warning in toolbar for 'dev' channel builds
try {
let isDevBuild = Zotero.version.includes('-dev');
// Uncomment to test
//isDevBuild = isDevBuild || Zotero.version.includes('.SOURCE');
if (isDevBuild) {
let label = document.createElement('label');
label.setAttribute('value', 'TEST BUILD — DO NOT USE');
label.setAttribute('style', 'font-weight: bold; color: red; cursor: pointer');
label.onclick = function () {
Zotero.launchURL('https://www.zotero.org/support/kb/test_builds');
};
let syncStop = document.getElementById('zotero-tb-sync-stop');
syncStop.parentNode.insertBefore(label, syncStop);
}
}
catch (e) {
Zotero.logError(e);
}
Zotero_Tabs.init(); Zotero_Tabs.init();
ZoteroContextPane.init(); ZoteroContextPane.init();
await ZoteroPane.initCollectionsTree(); await ZoteroPane.initCollectionsTree();
@ -1788,6 +1808,69 @@ var ZoteroPane = new function()
}); });
this.duplicateAndConvertSelectedItem = async function () {
if (this.getSelectedItems().length != 1
|| !['book', 'bookSection'].includes(this.getSelectedItems()[0].itemType)) {
throw new Error('duplicateAndConvertSelectedItem requires a single book or bookSection to be selected');
}
let authorCreatorType = Zotero.CreatorTypes.getID('author');
let bookAuthorCreatorType = Zotero.CreatorTypes.getID('bookAuthor');
let original = this.getSelectedItems()[0];
let duplicate = await this.duplicateSelectedItem();
if (!duplicate) return null;
// TODO: Move this logic to duplicateSelectedItem() with a `targetItemType` flag to avoid
// extra saves?
if (duplicate.itemType == 'book') {
duplicate.setType(Zotero.ItemTypes.getID('bookSection'));
for (let i = 0; i < duplicate.numCreators(); i++) {
let creator = duplicate.getCreator(i);
if (creator.creatorTypeID == authorCreatorType) {
creator.creatorTypeID = bookAuthorCreatorType;
}
duplicate.setCreator(i, creator);
}
// Remove related-item relations to other book sections of this book
for (let relItemKey of [...duplicate.relatedItems]) {
let relItem = await Zotero.Items.getByLibraryAndKeyAsync(
duplicate.libraryID, relItemKey
);
if (relItem.itemType == 'bookSection'
&& relItem.getField('bookTitle') == original.getField('title')) {
duplicate.removeRelatedItem(relItem);
relItem.removeRelatedItem(duplicate);
await relItem.saveTx();
}
}
}
else {
duplicate.setField('title', false); // So bookTitle becomes title
duplicate.setType(Zotero.ItemTypes.getID('book'));
// Get creators from the original item because setType() will have changed the types
let creators = original.getCreators()
// Remove authors of the individual book section
.filter(creator => creator.creatorTypeID !== authorCreatorType);
for (let creator of creators) {
if (creator.creatorTypeID == bookAuthorCreatorType) {
creator.creatorTypeID = authorCreatorType;
}
}
duplicate.setCreators(creators);
}
duplicate.addRelatedItem(original);
original.addRelatedItem(duplicate);
await original.saveTx({ skipDateModifiedUpdate: true });
await duplicate.saveTx();
document.getElementById('zotero-editpane-item-box').focusField('title');
return duplicate;
};
/** /**
* Return whether every selected item can be deleted from the current * Return whether every selected item can be deleted from the current
* collection context (library, trash, collection, etc.). * collection context (library, trash, collection, etc.).
@ -1877,13 +1960,39 @@ var ZoteroPane = new function()
var prompt = (force && !fromMenu) ? false : toTrash; var prompt = (force && !fromMenu) ? false : toTrash;
} }
else if (collectionTreeRow.isCollection()) { else if (collectionTreeRow.isCollection()) {
if (force) {
// Ignore unmodified action if only child items are selected var prompt = toTrash;
if (!force && this.itemsView.getSelectedItems().every(item => !item.isTopLevelItem())) { }
return; else {
// Ignore unmodified action if only child items are selected
if (this.itemsView.getSelectedItems().every(item => !item.isTopLevelItem())) {
return;
}
// If unmodified, recursiveCollections is true, and items are in
// descendant collections (even if also in the selected collection),
// prompt to remove from all
if (Zotero.Prefs.get('recursiveCollections')) {
let descendants = collectionTreeRow.ref.getDescendents(false, 'collection');
let inSubcollection = descendants
.some(({ id }) => this.itemsView.getSelectedItems()
.some(item => item.inCollection(id)));
if (inSubcollection) {
var prompt = {
title: Zotero.getString('pane.items.removeRecursive.title'),
text: Zotero.getString(
'pane.items.removeRecursive' + (this.itemsView.selection.count > 1 ? '.multiple' : '')
)
};
}
else {
var prompt = toRemove;
}
}
else {
var prompt = toRemove;
}
} }
var prompt = force ? toTrash : toRemove;
} }
else if (collectionTreeRow.isTrash() || collectionTreeRow.isBucket()) { else if (collectionTreeRow.isTrash() || collectionTreeRow.isBucket()) {
var prompt = toDelete; var prompt = toDelete;
@ -1920,8 +2029,9 @@ var ZoteroPane = new function()
this.deleteSelectedCollection = function (deleteItems) { this.deleteSelectedCollection = function (deleteItems) {
var collectionTreeRow = this.getCollectionTreeRow(); var collectionTreeRow = this.getCollectionTreeRow();
// Don't allow deleting libraries // Don't allow deleting libraries or My Publications
if (collectionTreeRow.isLibrary(true) && !collectionTreeRow.isFeed()) { if (collectionTreeRow.isLibrary(true) && !collectionTreeRow.isFeed()
|| collectionTreeRow.isPublications()) {
return; return;
} }
@ -3046,6 +3156,7 @@ var ZoteroPane = new function()
'toggleRead', 'toggleRead',
'addToCollection', 'addToCollection',
'removeItems', 'removeItems',
'duplicateAndConvert',
'duplicateItem', 'duplicateItem',
'restoreToLibrary', 'restoreToLibrary',
'moveToTrash', 'moveToTrash',
@ -3325,6 +3436,12 @@ var ZoteroPane = new function()
} }
} }
else if (!collectionTreeRow.isPublications()) { else if (!collectionTreeRow.isPublications()) {
if (item.itemType == 'book' || item.itemType == 'bookSection') {
menu.childNodes[m.duplicateAndConvert].setAttribute('label', Zotero.getString('pane.items.menu.duplicateAndConvert.'
+ (item.itemType == 'book' ? 'toBookSection' : 'toBook')));
show.add(m.duplicateAndConvert);
}
show.add(m.duplicateItem); show.add(m.duplicateItem);
} }
} }
@ -3507,6 +3624,9 @@ var ZoteroPane = new function()
throw new Error('collection must be null if createNew is true'); throw new Error('collection must be null if createNew is true');
} }
let id = await this.newCollection(); let id = await this.newCollection();
if (!id) {
return;
}
collection = Zotero.Collections.get(id); collection = Zotero.Collections.get(id);
} }
@ -4279,12 +4399,25 @@ var ZoteroPane = new function()
extraData && extraData.location, extraData && extraData.location,
{ {
openInWindow: (event && event.shiftKey) openInWindow: (event && event.shiftKey)
|| (extraData && extraData.forceOpenPDFInWindow) || (extraData && extraData.forceOpenPDFInWindow),
allowDuplicate: event && event.shiftKey
} }
); );
return; return;
} }
// Try to open external reader to page number if specified
else {
let pageIndex = extraData?.location?.position?.pageIndex;
if (pageIndex !== undefined) {
await Zotero.OpenPDF.openToPage(
item,
parseInt(pageIndex) + 1
);
return;
}
}
// Custom PDF handler // Custom PDF handler
// TODO: Remove this and unify with Zotero.OpenPDF
if (pdfHandler != 'system') { if (pdfHandler != 'system') {
try { try {
if (await OS.File.exists(pdfHandler)) { if (await OS.File.exists(pdfHandler)) {
@ -4823,9 +4956,11 @@ var ZoteroPane = new function()
return; return;
} }
await Zotero.PDFWorker.import(attachment.id, true); await Zotero.PDFWorker.import(attachment.id, true);
var note = await Zotero.EditorInstance.createNoteFromAnnotations( var annotations = attachment.getAnnotations().filter(x => x.annotationType != 'ink');
attachment.getAnnotations().filter(x => x.annotationType != 'ink'), attachment.parentID if (!annotations.length) {
); return;
}
var note = await Zotero.EditorInstance.createNoteFromAnnotations(annotations, attachment.parentID);
if (!skipSelect) { if (!skipSelect) {
await this.selectItem(note.id); await this.selectItem(note.id);
} }
@ -4863,7 +4998,9 @@ var ZoteroPane = new function()
attachment, attachment,
{ skipSelect: true } { skipSelect: true }
); );
itemIDsToSelect.push(note.id); if (note) {
itemIDsToSelect.push(note.id);
}
} }
} }
await this.selectItems(itemIDsToSelect); await this.selectItems(itemIDsToSelect);

View file

@ -317,6 +317,7 @@
</menupopup> </menupopup>
</menu> </menu>
<menuitem class="menuitem-iconic zotero-menuitem-remove-items" oncommand="ZoteroPane_Local.deleteSelectedItems();"/> <menuitem class="menuitem-iconic zotero-menuitem-remove-items" oncommand="ZoteroPane_Local.deleteSelectedItems();"/>
<menuitem class="menuitem-iconic zotero-menuitem-duplicate-and-convert" oncommand="ZoteroPane_Local.duplicateAndConvertSelectedItem();"/>
<menuitem class="menuitem-iconic zotero-menuitem-duplicate-item" label="&zotero.items.menu.duplicateItem;" oncommand="ZoteroPane_Local.duplicateSelectedItem().done();"/> <menuitem class="menuitem-iconic zotero-menuitem-duplicate-item" label="&zotero.items.menu.duplicateItem;" oncommand="ZoteroPane_Local.duplicateSelectedItem().done();"/>
<menuitem class="menuitem-iconic zotero-menuitem-restore-to-library" label="&zotero.items.menu.restoreToLibrary;" oncommand="ZoteroPane_Local.restoreSelectedItems();"/> <menuitem class="menuitem-iconic zotero-menuitem-restore-to-library" label="&zotero.items.menu.restoreToLibrary;" oncommand="ZoteroPane_Local.restoreSelectedItems();"/>
<menuitem class="menuitem-iconic zotero-menuitem-move-to-trash" oncommand="ZoteroPane_Local.deleteSelectedItems(true, true);"/> <menuitem class="menuitem-iconic zotero-menuitem-move-to-trash" oncommand="ZoteroPane_Local.deleteSelectedItems(true, true);"/>

View file

@ -1,7 +1,7 @@
<!ENTITY styles.preview "Zotero Style Preview"> <!ENTITY styles.preview "Zotero Style Preview">
<!ENTITY styles.preview.citationFormat "Citation Format:"> <!ENTITY styles.preview.citationFormat "Citation Format:">
<!ENTITY styles.preview.citationFormat.all "all"> <!ENTITY styles.preview.citationFormat.all "alles">
<!ENTITY styles.preview.citationFormat.author "author"> <!ENTITY styles.preview.citationFormat.author "author">
<!ENTITY styles.preview.citationFormat.authorDate "author-date"> <!ENTITY styles.preview.citationFormat.authorDate "author-date">
<!ENTITY styles.preview.citationFormat.label "label"> <!ENTITY styles.preview.citationFormat.label "label">

View file

@ -58,7 +58,7 @@
<!ENTITY zotero.items.itemType "Tipe item"> <!ENTITY zotero.items.itemType "Tipe item">
<!ENTITY zotero.items.creator_column "Skepper"> <!ENTITY zotero.items.creator_column "Skepper">
<!ENTITY zotero.items.year_column "Jaar"> <!ENTITY zotero.items.year_column "Jaar">
<!ENTITY zotero.items.dateModified_column "Date Modified"> <!ENTITY zotero.items.dateModified_column "Datum gewysig">
<!ENTITY zotero.items.moreColumns.label "More Columns"> <!ENTITY zotero.items.moreColumns.label "More Columns">
<!ENTITY zotero.items.restoreColumnOrder.label "Restore Column Order"> <!ENTITY zotero.items.restoreColumnOrder.label "Restore Column Order">
@ -129,7 +129,7 @@
<!ENTITY zotero.toolbar.attachment.weblink "Save Link to Current Page"> <!ENTITY zotero.toolbar.attachment.weblink "Save Link to Current Page">
<!ENTITY zotero.toolbar.attachment.snapshot "Take Snapshot of Current Page"> <!ENTITY zotero.toolbar.attachment.snapshot "Take Snapshot of Current Page">
<!ENTITY zotero.toolbar.context.item "Item"> <!ENTITY zotero.toolbar.context.item "Item">
<!ENTITY zotero.toolbar.context.notes "Notes"> <!ENTITY zotero.toolbar.context.notes "Notas">
<!ENTITY zotero.tagSelector.noTagsToDisplay "No tags to display"> <!ENTITY zotero.tagSelector.noTagsToDisplay "No tags to display">
<!ENTITY zotero.tagSelector.loadingTags "Loading tags…"> <!ENTITY zotero.tagSelector.loadingTags "Loading tags…">
@ -148,7 +148,7 @@
<!ENTITY zotero.tagColorChooser.removeColor "Remove Color"> <!ENTITY zotero.tagColorChooser.removeColor "Remove Color">
<!ENTITY zotero.lookup.description "Enter ISBNs, DOIs, PMIDs, arXiv IDs, or ADS Bibcodes to add to your library:"> <!ENTITY zotero.lookup.description "Enter ISBNs, DOIs, PMIDs, arXiv IDs, or ADS Bibcodes to add to your library:">
<!ENTITY zotero.lookup.button.search "Search"> <!ENTITY zotero.lookup.button.search "Soek">
<!ENTITY zotero.createParent.title "Create Parent Item"> <!ENTITY zotero.createParent.title "Create Parent Item">
<!ENTITY zotero.createParent.button.manual "Manual Entry"> <!ENTITY zotero.createParent.button.manual "Manual Entry">

View file

@ -19,8 +19,8 @@ general.unknownErrorOccurred=An unknown error occurred.
general.invalidResponseServer=Invalid response from server. general.invalidResponseServer=Invalid response from server.
general.tryAgainLater=Please try again in a few minutes. general.tryAgainLater=Please try again in a few minutes.
general.serverError=The server returned an error. Please try again. general.serverError=The server returned an error. Please try again.
general.pleaseRestart=Please restart %S. general.pleaseRestart=Please restart Firefox.
general.pleaseRestartAndTryAgain=Please restart %S and try again. general.pleaseRestartAndTryAgain=Please restart Firefox and try again.
general.checkForUpdate=Check for Update general.checkForUpdate=Check for Update
general.checkForUpdates=Check for Updates general.checkForUpdates=Check for Updates
general.actionCannotBeUndone=This action cannot be undone. general.actionCannotBeUndone=This action cannot be undone.
@ -40,10 +40,10 @@ general.and=and
general.etAl=et al. general.etAl=et al.
general.accessDenied=Access Denied general.accessDenied=Access Denied
general.permissionDenied=Permission Denied general.permissionDenied=Permission Denied
general.character.singular=character general.character.singular=karakter
general.character.plural=characters general.character.plural=karakters
general.create=Create general.create=Create
general.delete=Delete general.delete=Skrap
general.remove=Remove general.remove=Remove
general.import=Import general.import=Import
general.export=Export general.export=Export
@ -76,7 +76,7 @@ general.continue=Continue
general.copy=Copy general.copy=Copy
general.copyToClipboard=Copy to Clipboard general.copyToClipboard=Copy to Clipboard
general.cancel=Cancel general.cancel=Cancel
general.clear=Clear general.clear=Skoon
general.processing=Processing general.processing=Processing
general.finished=Finished general.finished=Finished
general.submitted=Submitted general.submitted=Submitted
@ -318,7 +318,7 @@ pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
pane.items.trash.title=Move to Trash pane.items.trash.title=Move to Trash
pane.items.trash=Are you sure you want to move the selected item to the Trash? pane.items.trash=Are you sure you want to move the selected item to the Trash?
pane.items.trash.multiple=Are you sure you want to move the selected items to the Trash? pane.items.trash.multiple=Are you sure you want to move the selected items to the Trash?
pane.items.delete.title=Delete pane.items.delete.title=Skrap
pane.items.delete=Are you sure you want to delete the selected item? pane.items.delete=Are you sure you want to delete the selected item?
pane.items.delete.multiple=Are you sure you want to delete the selected items? pane.items.delete.multiple=Are you sure you want to delete the selected items?
pane.items.remove.title=Remove from Collection pane.items.remove.title=Remove from Collection
@ -327,6 +327,9 @@ pane.items.remove.multiple=Are you sure you want to remove the selected items fr
pane.items.removeFromPublications.title=Remove from My Publications pane.items.removeFromPublications.title=Remove from My Publications
pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications? pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications?
pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications? pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications?
pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.menu.addNoteFromAnnotations=Add Note from Annotations
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=Find Available PDF pane.items.menu.findAvailablePDF=Find Available PDF
@ -343,6 +346,8 @@ pane.items.menu.export=Export Selected Item...
pane.items.menu.export.multiple=Export Selected Items... pane.items.menu.export.multiple=Export Selected Items...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Create Bibliography from Selected Item... pane.items.menu.createBib=Create Bibliography from Selected Item...
pane.items.menu.createBib.multiple=Create Bibliography from Selected Items... pane.items.menu.createBib.multiple=Create Bibliography from Selected Items...
pane.items.menu.generateReport=Generate Report from Selected Item... pane.items.menu.generateReport=Generate Report from Selected Item...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Create Parent Item…
pane.items.menu.createParent.multiple=Create Parent Items pane.items.menu.createParent.multiple=Create Parent Items
pane.items.menu.renameAttachments=Rename File from Parent Metadata pane.items.menu.renameAttachments=Rename File from Parent Metadata
pane.items.menu.renameAttachments.multiple=Rename Files from Parent Metadata pane.items.menu.renameAttachments.multiple=Rename Files from Parent Metadata
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Show Item in Library pane.items.showItemInLibrary=Show Item in Library
pane.items.letter.oneParticipant=Letter to %S pane.items.letter.oneParticipant=Letter to %S
@ -478,34 +485,34 @@ itemTypes.preprint=Preprint
itemFields.itemType=Type itemFields.itemType=Type
itemFields.title=Title itemFields.title=Title
itemFields.dateAdded=Date Added itemFields.dateAdded=Datum bygevoeg
itemFields.dateModified=Modified itemFields.dateModified=Modified
itemFields.source=Source itemFields.source=Source
itemFields.notes=Notes itemFields.notes=Notas
itemFields.tags=Tags itemFields.tags=Etikette
itemFields.attachments=Attachments itemFields.attachments=Aanhegsels
itemFields.related=Related itemFields.related=Verwant
itemFields.url=URL itemFields.url=URL
itemFields.rights=Rights itemFields.rights=Regte
itemFields.series=Series itemFields.series=Series
itemFields.volume=Volume itemFields.volume=Volume
itemFields.issue=Issue itemFields.issue=Issue
itemFields.edition=Edition itemFields.edition=Edition
itemFields.place=Place itemFields.place=Place
itemFields.publisher=Publisher itemFields.publisher=Uitgewer
itemFields.pages=Pages itemFields.pages=Pages
itemFields.ISBN=ISBN itemFields.ISBN=ISBN
itemFields.publicationTitle=Publication itemFields.publicationTitle=Publikasie
itemFields.ISSN=ISSN itemFields.ISSN=ISSN
itemFields.date=Date itemFields.date=Datum
itemFields.section=Section itemFields.section=Section
itemFields.callNumber=Call Number itemFields.callNumber=Telefoonnommer
itemFields.archiveLocation=Loc. in Archive itemFields.archiveLocation=Loc. in Archive
itemFields.distributor=Distributor itemFields.distributor=Distributor
itemFields.extra=Extra itemFields.extra=Extra
itemFields.journalAbbreviation=Journal Abbr itemFields.journalAbbreviation=Joernaalafkorting
itemFields.DOI=DOI itemFields.DOI=DOI
itemFields.accessDate=Accessed itemFields.accessDate=Gebruik/Toegang verkry
itemFields.seriesTitle=Series Title itemFields.seriesTitle=Series Title
itemFields.seriesText=Series Text itemFields.seriesText=Series Text
itemFields.seriesNumber=Series Number itemFields.seriesNumber=Series Number
@ -529,7 +536,7 @@ itemFields.codeNumber=Code Number
itemFields.artworkMedium=Medium itemFields.artworkMedium=Medium
itemFields.number=Number itemFields.number=Number
itemFields.artworkSize=Artwork Size itemFields.artworkSize=Artwork Size
itemFields.libraryCatalog=Library Catalog itemFields.libraryCatalog=Biblioteekkatalogus
itemFields.videoRecordingFormat=Format itemFields.videoRecordingFormat=Format
itemFields.interviewMedium=Medium itemFields.interviewMedium=Medium
itemFields.letterType=Type itemFields.letterType=Type
@ -812,11 +819,11 @@ searchOperator.isInTheLast=is in the last
searchConditions.tooltip.fields=Fields: searchConditions.tooltip.fields=Fields:
searchConditions.collection=Collection searchConditions.collection=Collection
searchConditions.savedSearch=Saved Search searchConditions.savedSearch=Saved Search
searchConditions.itemTypeID=Item Type searchConditions.itemTypeID=Tipe item
searchConditions.tag=Tag searchConditions.tag=Tag
searchConditions.note=Note searchConditions.note=Note
searchConditions.childNote=Child Note searchConditions.childNote=Child Note
searchConditions.creator=Creator searchConditions.creator=Skepper
searchConditions.type=Type searchConditions.type=Type
searchConditions.thesisType=Thesis Type searchConditions.thesisType=Thesis Type
searchConditions.reportType=Report Type searchConditions.reportType=Report Type
@ -830,7 +837,7 @@ searchConditions.presentationType=Presentation Type
searchConditions.mapType=Map Type searchConditions.mapType=Map Type
searchConditions.medium=Medium searchConditions.medium=Medium
searchConditions.artworkMedium=Artwork Medium searchConditions.artworkMedium=Artwork Medium
searchConditions.dateModified=Date Modified searchConditions.dateModified=Datum gewysig
searchConditions.fulltextContent=Attachment Content searchConditions.fulltextContent=Attachment Content
searchConditions.programmingLanguage=Programming Language searchConditions.programmingLanguage=Programming Language
searchConditions.fileTypeID=Attachment File Type searchConditions.fileTypeID=Attachment File Type
@ -863,23 +870,8 @@ citation.singleSource=Single Source...
citation.showEditor=Show Editor... citation.showEditor=Show Editor...
citation.hideEditor=Hide Editor... citation.hideEditor=Hide Editor...
citation.citations=Citations citation.citations=Citations
citation.notes=Notes citation.notes=Notas
citation.locator.page=Page citation.locator.timestamp=Timestamp
citation.locator.book=Book
citation.locator.chapter=Chapter
citation.locator.column=Column
citation.locator.figure=Figure
citation.locator.folio=Folio
citation.locator.issue=Issue
citation.locator.line=Line
citation.locator.note=Note
citation.locator.opus=Opus
citation.locator.paragraph=Paragraph
citation.locator.part=Part
citation.locator.section=Section
citation.locator.subverbo=Sub verbo
citation.locator.volume=Volume
citation.locator.verse=Verse
report.title.default=Zotero Report report.title.default=Zotero Report
report.parentItem=Parent Item: report.parentItem=Parent Item:
@ -1098,8 +1090,8 @@ sync.storage.mbRemaining=%SMB remaining
sync.storage.kbRemaining=%SKB remaining sync.storage.kbRemaining=%SKB remaining
sync.storage.filesRemaining=%1$S/%2$S files sync.storage.filesRemaining=%1$S/%2$S files
sync.storage.none=None sync.storage.none=None
sync.storage.downloads=Downloads: sync.storage.downloads=Aflaaie:
sync.storage.uploads=Uploads: sync.storage.uploads=Oplaaie:
sync.storage.localFile=Local File sync.storage.localFile=Local File
sync.storage.remoteFile=Remote File sync.storage.remoteFile=Remote File
sync.storage.savedFile=Saved File sync.storage.savedFile=Saved File
@ -1303,20 +1295,20 @@ noteEditor.enterLink=Enter Link
noteEditor.heading1=Heading 1 noteEditor.heading1=Heading 1
noteEditor.heading2=Heading 2 noteEditor.heading2=Heading 2
noteEditor.heading3=Heading 3 noteEditor.heading3=Heading 3
noteEditor.paragraph=Paragraph noteEditor.paragraph=Paragraaf
noteEditor.monospaced=Monospaced noteEditor.monospaced=Monospaced
noteEditor.bulletList=Bulleted List noteEditor.bulletList=Bulleted List
noteEditor.orderedList=Numbered List noteEditor.orderedList=Numbered List
noteEditor.blockquote=Block Quote noteEditor.blockquote=Block Quote
noteEditor.formatText=Format Text noteEditor.formatText=Format Text
noteEditor.highlightText=Highlight Text noteEditor.highlightText=Verligmerk teks
noteEditor.removeColor=Remove Color noteEditor.removeColor=Remove Color
noteEditor.bold=Bold noteEditor.bold=Vetdruk
noteEditor.italic=Italic noteEditor.italic=Kursief
noteEditor.underline=Underline noteEditor.underline=Onderstreep
noteEditor.strikethrough=Strikethrough noteEditor.strikethrough=Strikethrough
noteEditor.subscript=Subscript noteEditor.subscript=Onderskrif
noteEditor.superscript=Superscript noteEditor.superscript=Boskrif
noteEditor.returnToNotesList=Return to Notes List noteEditor.returnToNotesList=Return to Notes List
noteEditor.insertLink=Insert Link noteEditor.insertLink=Insert Link
noteEditor.clearFormatting=Clear Formatting noteEditor.clearFormatting=Clear Formatting
@ -1338,7 +1330,7 @@ noteEditor.editCitation=Edit Citation
noteEditor.showOnPage=Show on Page noteEditor.showOnPage=Show on Page
noteEditor.unlink=Unlink noteEditor.unlink=Unlink
noteEditor.set=Set noteEditor.set=Set
noteEditor.edit=Edit noteEditor.edit=Redigeer
noteEditor.addCitation=Add Citation noteEditor.addCitation=Add Citation
noteEditor.removeCitation=Hide Citation noteEditor.removeCitation=Hide Citation
noteEditor.findAndReplace=Find and Replace noteEditor.findAndReplace=Find and Replace
@ -1363,7 +1355,7 @@ pdfReader.noAnnotations=Create an annotation to see it in the sidebar
pdfReader.addText=Add extracted text pdfReader.addText=Add extracted text
pdfReader.addComment=Add comment pdfReader.addComment=Add comment
pdfReader.addTags=Add tags… pdfReader.addTags=Add tags…
pdfReader.highlightText=Highlight Text pdfReader.highlightText=Verligmerk teks
pdfReader.addNote=Add Note pdfReader.addNote=Add Note
pdfReader.selectArea=Select Area pdfReader.selectArea=Select Area
pdfReader.pickColor=Pick a Color pdfReader.pickColor=Pick a Color
@ -1375,13 +1367,18 @@ pdfReader.zoomPageWidth=Zoom to Page Width
pdfReader.zoomPageHeight=Zoom to Page Height pdfReader.zoomPageHeight=Zoom to Page Height
pdfReader.nextPage=Next Page pdfReader.nextPage=Next Page
pdfReader.previousPage=Previous Page pdfReader.previousPage=Previous Page
pdfReader.page=Page pdfReader.page=Bladsy
pdfReader.readOnly=Read-only pdfReader.readOnly=Read-only
pdfReader.promptTransferFromPDF.title=Import Annotations pdfReader.promptTransferFromPDF.title=Import Annotations
pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S. pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S.
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

View file

@ -5,6 +5,12 @@
"general_done": { "general_done": {
"message": "تم" "message": "تم"
}, },
"general_yes": {
"message": "نعم"
},
"general_no": {
"message": "لا"
},
"general_tryAgain": { "general_tryAgain": {
"message": "حاول مرة أخرى" "message": "حاول مرة أخرى"
}, },
@ -14,6 +20,9 @@
"general_cancel": { "general_cancel": {
"message": "إلغاء" "message": "إلغاء"
}, },
"general_copyToClipboard": {
"message": "انسخ إلى الحافظة"
},
"progressWindow_savingTo": { "progressWindow_savingTo": {
"message": "الحفظ في" "message": "الحفظ في"
}, },

View file

@ -6,7 +6,7 @@
<!ENTITY zotero.general.deselectAll "إلغاء تحديد الكل"> <!ENTITY zotero.general.deselectAll "إلغاء تحديد الكل">
<!ENTITY zotero.general.edit "تحرير"> <!ENTITY zotero.general.edit "تحرير">
<!ENTITY zotero.general.delete "حذف"> <!ENTITY zotero.general.delete "حذف">
<!ENTITY zotero.general.moveToTrash "Move to Trash"> <!ENTITY zotero.general.moveToTrash "نقل لسلة المحذوفات">
<!ENTITY zotero.general.ok "موافق"> <!ENTITY zotero.general.ok "موافق">
<!ENTITY zotero.general.cancel "الغاء"> <!ENTITY zotero.general.cancel "الغاء">
<!ENTITY zotero.general.refresh "اعادة تحميل"> <!ENTITY zotero.general.refresh "اعادة تحميل">
@ -307,7 +307,7 @@
<!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations"> <!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations">
<!ENTITY zotero.context.editInWindow "Edit in a Separate Window"> <!ENTITY zotero.context.editInWindow "Edit in a Separate Window">
<!ENTITY zotero.pdfReader.firstPage "First Page"> <!ENTITY zotero.pdfReader.firstPage "الصفحة الأولى">
<!ENTITY zotero.pdfReader.lastPage "Last Page"> <!ENTITY zotero.pdfReader.lastPage "Last Page">
<!ENTITY zotero.pdfReader.back "Back"> <!ENTITY zotero.pdfReader.back "Back">
<!ENTITY zotero.pdfReader.forward "Forward"> <!ENTITY zotero.pdfReader.forward "Forward">

View file

@ -89,7 +89,7 @@ general.back=Back
general.languages=Languages general.languages=Languages
general.default=Default general.default=Default
general.custom=Custom general.custom=Custom
general.loading=Loading… general.loading=التحميل
general.richText=Rich Text general.richText=Rich Text
general.clearSelection=Clear Selection general.clearSelection=Clear Selection
@ -183,7 +183,7 @@ dataDir.unsafeLocation.existing.cloud=Your %S data directory appears to be withi
dataDir.unsafeLocation.existing.chooseDifferent=Would you like to choose a different location now? dataDir.unsafeLocation.existing.chooseDifferent=Would you like to choose a different location now?
dataDir.selectedDirNonEmpty.title=المجلد غير فارغ dataDir.selectedDirNonEmpty.title=المجلد غير فارغ
dataDir.selectedDirNonEmpty.text=المجلد المحدد غير فارغ، ولا يبدو انه مجلد بيانات زوتيرو.\n\nهل ترغب بإنشاء ملفات زوتيرو في هذا الدليل؟ dataDir.selectedDirNonEmpty.text=المجلد المحدد غير فارغ، ولا يبدو انه مجلد بيانات زوتيرو.\n\nهل ترغب بإنشاء ملفات زوتيرو في هذا الدليل؟
dataDir.mustSelectEmpty.title=Directory Not Empty dataDir.mustSelectEmpty.title=المجلد غير فارغ
dataDir.mustSelectEmpty.text=The directory you selected is not empty. You must select an empty directory to continue. dataDir.mustSelectEmpty.text=The directory you selected is not empty. You must select an empty directory to continue.
dataDir.selectedDirEmpty.title=مجلد فارغ dataDir.selectedDirEmpty.title=مجلد فارغ
dataDir.selectedDirEmpty.text=الدليل الذي حددته فارغ. لنقل دليل بيانات زوتيرو موجود ، ستحتاج إلى نقل الملفات يدوياً من دليل البيانات الموجود إلى الموقع الجديد بعد إغلاق %1$S. dataDir.selectedDirEmpty.text=الدليل الذي حددته فارغ. لنقل دليل بيانات زوتيرو موجود ، ستحتاج إلى نقل الملفات يدوياً من دليل البيانات الموجود إلى الموقع الجديد بعد إغلاق %1$S.
@ -255,10 +255,10 @@ pane.collections.savedSearchName=أدخل اسماً لهذا البحث الم
pane.collections.rename=إعادة تسمية مجموعة العناصر: pane.collections.rename=إعادة تسمية مجموعة العناصر:
pane.collections.library=مكتبتي pane.collections.library=مكتبتي
pane.collections.publications=منشوراتي pane.collections.publications=منشوراتي
pane.collections.feeds=Feeds pane.collections.feeds=الملقمات
pane.collections.libraryAndFeeds=My Library & Feeds pane.collections.libraryAndFeeds=My Library & Feeds
pane.collections.groupLibraries=مكتبات المجموعات pane.collections.groupLibraries=مكتبات المجموعات
pane.collections.feedLibraries=Feeds pane.collections.feedLibraries=الملقمات
pane.collections.trash=سلة المحذوفات pane.collections.trash=سلة المحذوفات
pane.collections.untitled=بدون عنوان pane.collections.untitled=بدون عنوان
pane.collections.unfiled=العناصر الغير مصنفة pane.collections.unfiled=العناصر الغير مصنفة
@ -270,7 +270,7 @@ pane.collections.removeLibrary.text=Are you sure you want to permanently remove
pane.collections.menu.rename.collection=إعادة تسمية مجموعة العناصر... pane.collections.menu.rename.collection=إعادة تسمية مجموعة العناصر...
pane.collections.menu.duplicate.savedSearch=تكرار البحث المحفوظ pane.collections.menu.duplicate.savedSearch=تكرار البحث المحفوظ
pane.collections.menu.edit.savedSearch=تحرير البحث المحفوظ pane.collections.menu.edit.savedSearch=تحرير البحث المحفوظ
pane.collections.menu.edit.feed=Edit Feed… pane.collections.menu.edit.feed=تحرير الخلاصة...
pane.collections.menu.remove.library=إزالة المكتبة... pane.collections.menu.remove.library=إزالة المكتبة...
pane.collections.menu.delete.collection=امسح مجموعة العناصر... pane.collections.menu.delete.collection=امسح مجموعة العناصر...
pane.collections.menu.delete.collectionAndItems=Delete Collection and Items… pane.collections.menu.delete.collectionAndItems=Delete Collection and Items…
@ -288,7 +288,7 @@ pane.collections.menu.generateReport.collection=انتاج تقرير من مج
pane.collections.menu.generateReport.savedSearch=انتاج تقرير من البحث المخزن... pane.collections.menu.generateReport.savedSearch=انتاج تقرير من البحث المخزن...
pane.collections.menu.generateReport.feed=Generate Report from Feed… pane.collections.menu.generateReport.feed=Generate Report from Feed…
pane.collections.menu.refresh.feed=Refresh Feed pane.collections.menu.refresh.feed=تحديث الخلاصة
pane.tagSelector.rename.title=إعادة تسمية الوسم pane.tagSelector.rename.title=إعادة تسمية الوسم
pane.tagSelector.rename.message=من فضلك ادخل إسماً لهذا الوسم الجديد.\n\nسيتم إعادة تسمية الوسم في جميع العناصر المرتبطة. pane.tagSelector.rename.message=من فضلك ادخل إسماً لهذا الوسم الجديد.\n\nسيتم إعادة تسمية الوسم في جميع العناصر المرتبطة.
@ -327,6 +327,9 @@ pane.items.remove.multiple=Are you sure you want to remove the selected items fr
pane.items.removeFromPublications.title=أزل من منشوراتي pane.items.removeFromPublications.title=أزل من منشوراتي
pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications? pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications?
pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications? pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications?
pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.menu.addNoteFromAnnotations=Add Note from Annotations
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=ابحث عن ملف PDF متاح pane.items.menu.findAvailablePDF=ابحث عن ملف PDF متاح
@ -338,11 +341,13 @@ pane.items.menu.removeFromPublications=أزل العنصر من منشوراتي
pane.items.menu.removeFromPublications.multiple=أزل العناصر من منشوراتي... pane.items.menu.removeFromPublications.multiple=أزل العناصر من منشوراتي...
pane.items.menu.moveToTrash=انقل العنصر لسلة المحذوفات... pane.items.menu.moveToTrash=انقل العنصر لسلة المحذوفات...
pane.items.menu.moveToTrash.multiple=انقل العناصر لسلة المحذوفات... pane.items.menu.moveToTrash.multiple=انقل العناصر لسلة المحذوفات...
pane.items.menu.delete=Delete Permanently… pane.items.menu.delete=حذف نهائي...
pane.items.menu.export=تصدير العنصر المحدد... pane.items.menu.export=تصدير العنصر المحدد...
pane.items.menu.export.multiple=تصدير العناصر المحددة... pane.items.menu.export.multiple=تصدير العناصر المحددة...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=إنشاء ببليوجرافية من العنصر المحدد... pane.items.menu.createBib=إنشاء ببليوجرافية من العنصر المحدد...
pane.items.menu.createBib.multiple=إنشاء ببليوجرافية من العناصر المحددة... pane.items.menu.createBib.multiple=إنشاء ببليوجرافية من العناصر المحددة...
pane.items.menu.generateReport=انتاج تقرير من العنصر المحدد... pane.items.menu.generateReport=انتاج تقرير من العنصر المحدد...
@ -355,6 +360,8 @@ pane.items.menu.createParent=انشئ عنصر رئيسي…
pane.items.menu.createParent.multiple=انشئ عناصر رئيسية pane.items.menu.createParent.multiple=انشئ عناصر رئيسية
pane.items.menu.renameAttachments=إعادة تسمية الملف وفقا للبيانات الوصفية للعنصر الرئيسي pane.items.menu.renameAttachments=إعادة تسمية الملف وفقا للبيانات الوصفية للعنصر الرئيسي
pane.items.menu.renameAttachments.multiple=إعادة تسمية الملفات وفقا للبيانات الوصفية للعنصر الرئيسي pane.items.menu.renameAttachments.multiple=إعادة تسمية الملفات وفقا للبيانات الوصفية للعنصر الرئيسي
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=عرض العنصر في المكتبة pane.items.showItemInLibrary=عرض العنصر في المكتبة
pane.items.letter.oneParticipant=خطاب إلى %S pane.items.letter.oneParticipant=خطاب إلى %S
@ -430,11 +437,11 @@ pane.item.related.count.zero=لا توجد ارتباطات:
pane.item.related.count.singular=%S ارتباطات: pane.item.related.count.singular=%S ارتباطات:
pane.item.related.count.plural=%S ارتباط: pane.item.related.count.plural=%S ارتباط:
pane.item.parentItem=عنصر رئيسي: pane.item.parentItem=عنصر رئيسي:
pane.item.viewOnline.tooltip=Go to this item online pane.item.viewOnline.tooltip=الذهاب لهذا العنصر على الانترنت
pane.context.noParent=No parent item pane.context.noParent=No parent item
pane.context.itemNotes=Item Notes pane.context.itemNotes=Item Notes
pane.context.allNotes=All Notes pane.context.allNotes=كل الملاحظات
pane.context.noNotes=No notes pane.context.noNotes=No notes
itemTypes.note=ملاحظة itemTypes.note=ملاحظة
@ -547,7 +554,7 @@ itemFields.runningTime=وقت التشغيل
itemFields.network=الشبكة itemFields.network=الشبكة
itemFields.postType=نوع الموضوع itemFields.postType=نوع الموضوع
itemFields.audioFileType=نوع الملف الصوتي itemFields.audioFileType=نوع الملف الصوتي
itemFields.versionNumber=Version itemFields.versionNumber=الإصدارة
itemFields.system=النظام itemFields.system=النظام
itemFields.company=الشركة itemFields.company=الشركة
itemFields.conferenceName=اسم المؤتمر itemFields.conferenceName=اسم المؤتمر
@ -757,7 +764,7 @@ zotero.debugOutputLogging.enabledAfterRestart=Debug output logging will be enabl
dragAndDrop.existingFiles=لم يتم نسخ الملفات التالية لأنها موجودة بالفعل في المجلد الهدف: dragAndDrop.existingFiles=لم يتم نسخ الملفات التالية لأنها موجودة بالفعل في المجلد الهدف:
dragAndDrop.filesNotFound=لم يتم نسخ الملفات التالية لأنه لم يتم العثور عليها: dragAndDrop.filesNotFound=لم يتم نسخ الملفات التالية لأنه لم يتم العثور عليها:
fileInterface.importing=Importing… fileInterface.importing=استيراد...
fileInterface.importComplete=Import Complete fileInterface.importComplete=Import Complete
fileInterface.itemsWereImported=%1$S item was imported;%1$S items were imported fileInterface.itemsWereImported=%1$S item was imported;%1$S items were imported
fileInterface.itemsExported=تصدير العناصر... fileInterface.itemsExported=تصدير العناصر...
@ -864,22 +871,7 @@ citation.showEditor=عرض المحرر...
citation.hideEditor=إخفاء المحرر... citation.hideEditor=إخفاء المحرر...
citation.citations=استشهادات citation.citations=استشهادات
citation.notes=ملاحظات citation.notes=ملاحظات
citation.locator.page=صفحة citation.locator.timestamp=Timestamp
citation.locator.book=كتاب
citation.locator.chapter=فصل
citation.locator.column=عمود
citation.locator.figure=شكل
citation.locator.folio=Folio
citation.locator.issue=اصدار
citation.locator.line=سطر
citation.locator.note=ملاحظة
citation.locator.opus=Opus
citation.locator.paragraph=فقرة
citation.locator.part=جزء
citation.locator.section=قسم
citation.locator.subverbo=Sub verbo
citation.locator.volume=مجلد
citation.locator.verse=Verse
report.title.default=تقرير زوتيرو report.title.default=تقرير زوتيرو
report.parentItem=عنصر رئيسي: report.parentItem=عنصر رئيسي:
@ -1005,7 +997,7 @@ sync.skipGroup=Skip Group
sync.removeGroupsAndSync=ازالة مجموعات المشاركة و المزامنة sync.removeGroupsAndSync=ازالة مجموعات المشاركة و المزامنة
sync.reminder.setUp.message=Back up your library with %S syncing. sync.reminder.setUp.message=Back up your library with %S syncing.
sync.reminder.setUp.action=Set Up Syncing sync.reminder.setUp.action=إعداد المزامنة
sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing? sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing?
sync.error.usernameNotSet=لم يتم تعيين اسم المستخدم sync.error.usernameNotSet=لم يتم تعيين اسم المستخدم
@ -1072,8 +1064,8 @@ sync.conflict.tag.addedToLocal=It has been added to the following local items:
sync.conflict.localItem=Local Item sync.conflict.localItem=Local Item
sync.conflict.remoteItem=Remote Item sync.conflict.remoteItem=Remote Item
sync.conflict.mergedItem=Merged Item sync.conflict.mergedItem=Merged Item
sync.conflict.localFile=Local File sync.conflict.localFile=ملف محلي
sync.conflict.remoteFile=Remote File sync.conflict.remoteFile=ملف عن بعد
sync.conflict.resolveAllLocal=Use the local version for all remaining conflicts sync.conflict.resolveAllLocal=Use the local version for all remaining conflicts
sync.conflict.resolveAllRemote=Use the remote version for all remaining conflicts sync.conflict.resolveAllRemote=Use the remote version for all remaining conflicts
sync.conflict.itemChanged=The following item has been changed in multiple locations. Click the version to use for resolving conflicting fields, and then click %S. sync.conflict.itemChanged=The following item has been changed in multiple locations. Click the version to use for resolving conflicting fields, and then click %S.
@ -1124,7 +1116,7 @@ sync.storage.error.createNow=هل تريد إنشاؤه الآن؟
sync.storage.error.webdav.default=A WebDAV file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences. sync.storage.error.webdav.default=A WebDAV file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.
sync.storage.error.webdav.defaultRestart=A WebDAV file sync error occurred. Please restart %S and try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences. sync.storage.error.webdav.defaultRestart=A WebDAV file sync error occurred. Please restart %S and try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.
sync.storage.error.webdav.enterURL=Please enter a WebDAV URL. sync.storage.error.webdav.enterURL=برجاء ادخال موقع WebDAV.
sync.storage.error.webdav.invalidURL=%S موقع WebDAV غير صالح. sync.storage.error.webdav.invalidURL=%S موقع WebDAV غير صالح.
sync.storage.error.webdav.invalidLogin=لم يقبل خادم WebDAV اسم المستخدم وكلمة السر التي قمت بإدخالهما. sync.storage.error.webdav.invalidLogin=لم يقبل خادم WebDAV اسم المستخدم وكلمة السر التي قمت بإدخالهما.
sync.storage.error.webdav.permissionDenied=ليس لديك الصلاحية للوصول الى %S على خادم WebDAV. sync.storage.error.webdav.permissionDenied=ليس لديك الصلاحية للوصول الى %S على خادم WebDAV.
@ -1293,9 +1285,9 @@ retraction.citationWarning=سُحِب أحد الاقتباسات في مستن
retraction.citationWarning.dontWarn=لا تحذرني حول هذا العنصر ثانية retraction.citationWarning.dontWarn=لا تحذرني حول هذا العنصر ثانية
noteEditor.annotationsDateLine=(%S) noteEditor.annotationsDateLine=(%S)
noteEditor.cut=Cut noteEditor.cut=قص
noteEditor.copy=Copy noteEditor.copy=نسخ
noteEditor.paste=Paste noteEditor.paste=لصق
noteEditor.rightToLeft=Right to Left noteEditor.rightToLeft=Right to Left
noteEditor.leftToRight=Left to Right noteEditor.leftToRight=Left to Right
noteEditor.updateNotice=This note was edited with a newer version of %1$S.\nPlease update %1$S to make changes. noteEditor.updateNotice=This note was edited with a newer version of %1$S.\nPlease update %1$S to make changes.
@ -1303,20 +1295,20 @@ noteEditor.enterLink=Enter Link
noteEditor.heading1=Heading 1 noteEditor.heading1=Heading 1
noteEditor.heading2=Heading 2 noteEditor.heading2=Heading 2
noteEditor.heading3=Heading 3 noteEditor.heading3=Heading 3
noteEditor.paragraph=Paragraph noteEditor.paragraph=فقرة
noteEditor.monospaced=Monospaced noteEditor.monospaced=Monospaced
noteEditor.bulletList=Bulleted List noteEditor.bulletList=Bulleted List
noteEditor.orderedList=Numbered List noteEditor.orderedList=Numbered List
noteEditor.blockquote=Block Quote noteEditor.blockquote=Block Quote
noteEditor.formatText=Format Text noteEditor.formatText=Format Text
noteEditor.highlightText=Highlight Text noteEditor.highlightText=تمييز النص
noteEditor.removeColor=Remove Color noteEditor.removeColor=ازالة اللون
noteEditor.bold=Bold noteEditor.bold=غامق
noteEditor.italic=Italic noteEditor.italic=مائل
noteEditor.underline=Underline noteEditor.underline=تسطير
noteEditor.strikethrough=Strikethrough noteEditor.strikethrough=Strikethrough
noteEditor.subscript=Subscript noteEditor.subscript=منخفض
noteEditor.superscript=Superscript noteEditor.superscript=مرتفع
noteEditor.returnToNotesList=Return to Notes List noteEditor.returnToNotesList=Return to Notes List
noteEditor.insertLink=Insert Link noteEditor.insertLink=Insert Link
noteEditor.clearFormatting=Clear Formatting noteEditor.clearFormatting=Clear Formatting
@ -1325,8 +1317,8 @@ noteEditor.alignLeft=Align Left
noteEditor.alignCenter=Align Center noteEditor.alignCenter=Align Center
noteEditor.alignRight=Align Right noteEditor.alignRight=Align Right
noteEditor.insertCitation=Insert Citation noteEditor.insertCitation=Insert Citation
noteEditor.more=More noteEditor.more=المزيد
noteEditor.find=Find noteEditor.find=اعثر
noteEditor.replace=Replace noteEditor.replace=Replace
noteEditor.previous=Previous noteEditor.previous=Previous
noteEditor.next=Next noteEditor.next=Next
@ -1338,7 +1330,7 @@ noteEditor.editCitation=Edit Citation
noteEditor.showOnPage=Show on Page noteEditor.showOnPage=Show on Page
noteEditor.unlink=Unlink noteEditor.unlink=Unlink
noteEditor.set=Set noteEditor.set=Set
noteEditor.edit=Edit noteEditor.edit=تحرير
noteEditor.addCitation=Add Citation noteEditor.addCitation=Add Citation
noteEditor.removeCitation=Hide Citation noteEditor.removeCitation=Hide Citation
noteEditor.findAndReplace=Find and Replace noteEditor.findAndReplace=Find and Replace
@ -1363,8 +1355,8 @@ pdfReader.noAnnotations=Create an annotation to see it in the sidebar
pdfReader.addText=Add extracted text pdfReader.addText=Add extracted text
pdfReader.addComment=Add comment pdfReader.addComment=Add comment
pdfReader.addTags=Add tags… pdfReader.addTags=Add tags…
pdfReader.highlightText=Highlight Text pdfReader.highlightText=تمييز النص
pdfReader.addNote=Add Note pdfReader.addNote=اضافة ملاحظة
pdfReader.selectArea=Select Area pdfReader.selectArea=Select Area
pdfReader.pickColor=Pick a Color pdfReader.pickColor=Pick a Color
pdfReader.addToNote=Add to Note pdfReader.addToNote=Add to Note
@ -1375,13 +1367,18 @@ pdfReader.zoomPageWidth=Zoom to Page Width
pdfReader.zoomPageHeight=Zoom to Page Height pdfReader.zoomPageHeight=Zoom to Page Height
pdfReader.nextPage=Next Page pdfReader.nextPage=Next Page
pdfReader.previousPage=Previous Page pdfReader.previousPage=Previous Page
pdfReader.page=Page pdfReader.page=صفحة
pdfReader.readOnly=Read-only pdfReader.readOnly=Read-only
pdfReader.promptTransferFromPDF.title=Import Annotations pdfReader.promptTransferFromPDF.title=Import Annotations
pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S. pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S.
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

View file

@ -5,12 +5,24 @@
"general_done": { "general_done": {
"message": "Готово" "message": "Готово"
}, },
"general_yes": {
"message": "Да"
},
"general_no": {
"message": "Не"
},
"general_tryAgain": { "general_tryAgain": {
"message": "Опитайте отново" "message": "Опитайте отново"
}, },
"general_warning": {
"message": "Предупреждение"
},
"general_cancel": { "general_cancel": {
"message": "Отказ" "message": "Отказ"
}, },
"general_copyToClipboard": {
"message": "Копиране в клипборда"
},
"progressWindow_savingTo": { "progressWindow_savingTo": {
"message": "Записване в" "message": "Записване в"
}, },

View file

@ -6,7 +6,7 @@
<!ENTITY zotero.general.deselectAll "Отказ на всички"> <!ENTITY zotero.general.deselectAll "Отказ на всички">
<!ENTITY zotero.general.edit "Редактиране"> <!ENTITY zotero.general.edit "Редактиране">
<!ENTITY zotero.general.delete "Изтриване"> <!ENTITY zotero.general.delete "Изтриване">
<!ENTITY zotero.general.moveToTrash "Move to Trash"> <!ENTITY zotero.general.moveToTrash "Премества в кошчето за боклук">
<!ENTITY zotero.general.ok "OK"> <!ENTITY zotero.general.ok "OK">
<!ENTITY zotero.general.cancel "Отказ"> <!ENTITY zotero.general.cancel "Отказ">
<!ENTITY zotero.general.refresh "Опресняване"> <!ENTITY zotero.general.refresh "Опресняване">
@ -21,7 +21,7 @@
<!ENTITY zotero.general.other "Други..."> <!ENTITY zotero.general.other "Други...">
<!ENTITY zotero.general.bigger "Bigger"> <!ENTITY zotero.general.bigger "Bigger">
<!ENTITY zotero.general.smaller "Smaller"> <!ENTITY zotero.general.smaller "Smaller">
<!ENTITY zotero.general.reset "Reset"> <!ENTITY zotero.general.reset "Нулиране">
<!ENTITY zotero.errorReport.title "Зотеро доклад за проблем"> <!ENTITY zotero.errorReport.title "Зотеро доклад за проблем">
@ -93,7 +93,7 @@
<!ENTITY zotero.toolbar.import.label "Внасяне..."> <!ENTITY zotero.toolbar.import.label "Внасяне...">
<!ENTITY zotero.toolbar.importFromClipboard "Внасяне от клипборда"> <!ENTITY zotero.toolbar.importFromClipboard "Внасяне от клипборда">
<!ENTITY zotero.toolbar.export.label "Изнасяне на библиотека..."> <!ENTITY zotero.toolbar.export.label "Изнасяне на библиотека...">
<!ENTITY zotero.toolbar.rtfScan.label "RTF Scan"> <!ENTITY zotero.toolbar.rtfScan.label "Сканиране на RTF">
<!ENTITY zotero.toolbar.timeline.label "Създаване на хронология"> <!ENTITY zotero.toolbar.timeline.label "Създаване на хронология">
<!ENTITY zotero.toolbar.preferences.label "Предпочитания..."> <!ENTITY zotero.toolbar.preferences.label "Предпочитания...">
<!ENTITY zotero.toolbar.supportAndDocumentation "Подръжка и документация"> <!ENTITY zotero.toolbar.supportAndDocumentation "Подръжка и документация">
@ -128,7 +128,7 @@
<!ENTITY zotero.toolbar.attachment.add "Запазване на копие от файл"> <!ENTITY zotero.toolbar.attachment.add "Запазване на копие от файл">
<!ENTITY zotero.toolbar.attachment.weblink "Запазване на връзка към настоящата страница"> <!ENTITY zotero.toolbar.attachment.weblink "Запазване на връзка към настоящата страница">
<!ENTITY zotero.toolbar.attachment.snapshot "Направи &quot;моментна снимка&quot; на настоящата страница"> <!ENTITY zotero.toolbar.attachment.snapshot "Направи &quot;моментна снимка&quot; на настоящата страница">
<!ENTITY zotero.toolbar.context.item "Item"> <!ENTITY zotero.toolbar.context.item "Елемент">
<!ENTITY zotero.toolbar.context.notes "Notes"> <!ENTITY zotero.toolbar.context.notes "Notes">
<!ENTITY zotero.tagSelector.noTagsToDisplay "Няма маркери, които да бъдат показани"> <!ENTITY zotero.tagSelector.noTagsToDisplay "Няма маркери, които да бъдат показани">
@ -185,7 +185,7 @@
<!ENTITY zotero.import.lastModified "Променено за последно"> <!ENTITY zotero.import.lastModified "Променено за последно">
<!ENTITY zotero.import.size "Размер"> <!ENTITY zotero.import.size "Размер">
<!ENTITY zotero.import.createCollection "Поместване на внесените колекции и записи в нова колекция"> <!ENTITY zotero.import.createCollection "Поместване на внесените колекции и записи в нова колекция">
<!ENTITY zotero.import.fileHandling "File Handling"> <!ENTITY zotero.import.fileHandling "Обработка на файловете">
<!ENTITY zotero.exportOptions.title "Изнасяне..."> <!ENTITY zotero.exportOptions.title "Изнасяне...">
<!ENTITY zotero.exportOptions.format.label "Формат:"> <!ENTITY zotero.exportOptions.format.label "Формат:">
@ -307,7 +307,7 @@
<!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations"> <!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations">
<!ENTITY zotero.context.editInWindow "Edit in a Separate Window"> <!ENTITY zotero.context.editInWindow "Edit in a Separate Window">
<!ENTITY zotero.pdfReader.firstPage "First Page"> <!ENTITY zotero.pdfReader.firstPage "Първа страница">
<!ENTITY zotero.pdfReader.lastPage "Last Page"> <!ENTITY zotero.pdfReader.lastPage "Last Page">
<!ENTITY zotero.pdfReader.back "Back"> <!ENTITY zotero.pdfReader.back "Back">
<!ENTITY zotero.pdfReader.forward "Forward"> <!ENTITY zotero.pdfReader.forward "Forward">

View file

@ -52,7 +52,7 @@ general.moreInformation=Повече информация
general.learnMore=Learn More general.learnMore=Learn More
general.seeForMoreInformation=Вижте %S за повече информация. general.seeForMoreInformation=Вижте %S за повече информация.
general.open=Отваряне на %S general.open=Отваряне на %S
general.close=Close general.close=Затвори
general.enable=Включване general.enable=Включване
general.disable=Изключване general.disable=Изключване
general.reset=Нулиране general.reset=Нулиране
@ -71,7 +71,7 @@ general.fix=Поправяне…
general.tryAgain=Опит отново general.tryAgain=Опит отново
general.tryLater=Опит по-късно general.tryLater=Опит по-късно
general.showDirectory=Показване на директорията general.showDirectory=Показване на директорията
general.showInLibrary=Show in Library general.showInLibrary=Показване в библиотеката
general.continue=Продължаване general.continue=Продължаване
general.copy=Copy general.copy=Copy
general.copyToClipboard=Копиране в клипборда general.copyToClipboard=Копиране в клипборда
@ -89,7 +89,7 @@ general.back=Back
general.languages=Languages general.languages=Languages
general.default=Default general.default=Default
general.custom=Custom general.custom=Custom
general.loading=Loading… general.loading=Зареждане...
general.richText=Rich Text general.richText=Rich Text
general.clearSelection=Clear Selection general.clearSelection=Clear Selection
@ -327,6 +327,9 @@ pane.items.remove.multiple=Are you sure you want to remove the selected items fr
pane.items.removeFromPublications.title=Remove from My Publications pane.items.removeFromPublications.title=Remove from My Publications
pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications? pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications?
pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications? pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications?
pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.menu.addNoteFromAnnotations=Add Note from Annotations
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=Find Available PDF pane.items.menu.findAvailablePDF=Find Available PDF
@ -338,11 +341,13 @@ pane.items.menu.removeFromPublications=Remove Item from My Publications…
pane.items.menu.removeFromPublications.multiple=Remove Items from My Publications… pane.items.menu.removeFromPublications.multiple=Remove Items from My Publications…
pane.items.menu.moveToTrash=Move Item to Trash… pane.items.menu.moveToTrash=Move Item to Trash…
pane.items.menu.moveToTrash.multiple=Move Items to Trash… pane.items.menu.moveToTrash.multiple=Move Items to Trash…
pane.items.menu.delete=Delete Permanently… pane.items.menu.delete=Изтриване окончателно...
pane.items.menu.export=Експорт на избрания запис... pane.items.menu.export=Експорт на избрания запис...
pane.items.menu.export.multiple=Експорт на избраните записи... pane.items.menu.export.multiple=Експорт на избраните записи...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Създава библиография от избрания запис... pane.items.menu.createBib=Създава библиография от избрания запис...
pane.items.menu.createBib.multiple=Създава библиография от избраните записи... pane.items.menu.createBib.multiple=Създава библиография от избраните записи...
pane.items.menu.generateReport=Създава отчет от избрания запис... pane.items.menu.generateReport=Създава отчет от избрания запис...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Create Parent Item…
pane.items.menu.createParent.multiple=Create Parent Items pane.items.menu.createParent.multiple=Create Parent Items
pane.items.menu.renameAttachments=Преименува файла въз основа на родителските метадани pane.items.menu.renameAttachments=Преименува файла въз основа на родителските метадани
pane.items.menu.renameAttachments.multiple=Преименува файловете въз основа на родителските метадани pane.items.menu.renameAttachments.multiple=Преименува файловете въз основа на родителските метадани
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Show Item in Library pane.items.showItemInLibrary=Show Item in Library
pane.items.letter.oneParticipant=Писмо до %S pane.items.letter.oneParticipant=Писмо до %S
@ -438,7 +445,7 @@ pane.context.allNotes=All Notes
pane.context.noNotes=No notes pane.context.noNotes=No notes
itemTypes.note=Бележка itemTypes.note=Бележка
itemTypes.annotation=Annotation itemTypes.annotation=Анотация
itemTypes.attachment=Приложение itemTypes.attachment=Приложение
itemTypes.book=Книга itemTypes.book=Книга
itemTypes.bookSection=Глава от книга itemTypes.bookSection=Глава от книга
@ -864,22 +871,7 @@ citation.showEditor=Показва редактора...
citation.hideEditor=Скрива редактора... citation.hideEditor=Скрива редактора...
citation.citations=Citations citation.citations=Citations
citation.notes=Notes citation.notes=Notes
citation.locator.page=Page citation.locator.timestamp=Timestamp
citation.locator.book=Book
citation.locator.chapter=Chapter
citation.locator.column=Column
citation.locator.figure=Figure
citation.locator.folio=Folio
citation.locator.issue=Issue
citation.locator.line=Line
citation.locator.note=Note
citation.locator.opus=Opus
citation.locator.paragraph=Paragraph
citation.locator.part=Part
citation.locator.section=Section
citation.locator.subverbo=Sub verbo
citation.locator.volume=Volume
citation.locator.verse=Verse
report.title.default=Зотеро отчет report.title.default=Зотеро отчет
report.parentItem=Родителски запис: report.parentItem=Родителски запис:
@ -1005,7 +997,7 @@ sync.skipGroup=Skip Group
sync.removeGroupsAndSync=Отстранява групите и синхронизация sync.removeGroupsAndSync=Отстранява групите и синхронизация
sync.reminder.setUp.message=Back up your library with %S syncing. sync.reminder.setUp.message=Back up your library with %S syncing.
sync.reminder.setUp.action=Set Up Syncing sync.reminder.setUp.action=Настройване на синхронизирането
sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing? sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing?
sync.error.usernameNotSet=Потребителското име не е въведено sync.error.usernameNotSet=Потребителското име не е въведено
@ -1176,10 +1168,10 @@ recognizePDF.couldNotRead=Текста на този PDF файл не може
recognizePDF.noMatches=No matching references found recognizePDF.noMatches=No matching references found
recognizePDF.fileNotFound=File not found recognizePDF.fileNotFound=File not found
recognizePDF.error=An unexpected error occurred recognizePDF.error=An unexpected error occurred
recognizePDF.recognizing.label=Retrieving Metadata… recognizePDF.recognizing.label=Извлича на метаданите...
recognizePDF.complete.label=Metadata Retrieval Complete recognizePDF.complete.label=Metadata Retrieval Complete
recognizePDF.pdfName.label=PDF Name recognizePDF.pdfName.label=Име на PDF
recognizePDF.itemName.label=Item Name recognizePDF.itemName.label=Име на запис
rtfScan.openTitle=Изберете файл, който да бъде сканиран rtfScan.openTitle=Изберете файл, който да бъде сканиран
rtfScan.scanning.label=Сканира RTF документ... rtfScan.scanning.label=Сканира RTF документ...
@ -1309,14 +1301,14 @@ noteEditor.bulletList=Bulleted List
noteEditor.orderedList=Numbered List noteEditor.orderedList=Numbered List
noteEditor.blockquote=Block Quote noteEditor.blockquote=Block Quote
noteEditor.formatText=Format Text noteEditor.formatText=Format Text
noteEditor.highlightText=Highlight Text noteEditor.highlightText=Акцентиране на текст
noteEditor.removeColor=Remove Color noteEditor.removeColor=Премахване на цвят
noteEditor.bold=Bold noteEditor.bold=Удебелен
noteEditor.italic=Italic noteEditor.italic=Наклонен
noteEditor.underline=Underline noteEditor.underline=Подчертан
noteEditor.strikethrough=Strikethrough noteEditor.strikethrough=Strikethrough
noteEditor.subscript=Subscript noteEditor.subscript=Субскрипт / Долни букви
noteEditor.superscript=Superscript noteEditor.superscript=Суперскрипт / Горни букви
noteEditor.returnToNotesList=Return to Notes List noteEditor.returnToNotesList=Return to Notes List
noteEditor.insertLink=Insert Link noteEditor.insertLink=Insert Link
noteEditor.clearFormatting=Clear Formatting noteEditor.clearFormatting=Clear Formatting
@ -1325,7 +1317,7 @@ noteEditor.alignLeft=Align Left
noteEditor.alignCenter=Align Center noteEditor.alignCenter=Align Center
noteEditor.alignRight=Align Right noteEditor.alignRight=Align Right
noteEditor.insertCitation=Insert Citation noteEditor.insertCitation=Insert Citation
noteEditor.more=More noteEditor.more=Още
noteEditor.find=Find noteEditor.find=Find
noteEditor.replace=Replace noteEditor.replace=Replace
noteEditor.previous=Previous noteEditor.previous=Previous
@ -1338,7 +1330,7 @@ noteEditor.editCitation=Edit Citation
noteEditor.showOnPage=Show on Page noteEditor.showOnPage=Show on Page
noteEditor.unlink=Unlink noteEditor.unlink=Unlink
noteEditor.set=Set noteEditor.set=Set
noteEditor.edit=Edit noteEditor.edit=Редактиране
noteEditor.addCitation=Add Citation noteEditor.addCitation=Add Citation
noteEditor.removeCitation=Hide Citation noteEditor.removeCitation=Hide Citation
noteEditor.findAndReplace=Find and Replace noteEditor.findAndReplace=Find and Replace
@ -1363,8 +1355,8 @@ pdfReader.noAnnotations=Create an annotation to see it in the sidebar
pdfReader.addText=Add extracted text pdfReader.addText=Add extracted text
pdfReader.addComment=Add comment pdfReader.addComment=Add comment
pdfReader.addTags=Add tags… pdfReader.addTags=Add tags…
pdfReader.highlightText=Highlight Text pdfReader.highlightText=Акцентиране на текст
pdfReader.addNote=Add Note pdfReader.addNote=Добавяне на бележка
pdfReader.selectArea=Select Area pdfReader.selectArea=Select Area
pdfReader.pickColor=Pick a Color pdfReader.pickColor=Pick a Color
pdfReader.addToNote=Add to Note pdfReader.addToNote=Add to Note
@ -1382,6 +1374,11 @@ pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

View file

@ -23,6 +23,9 @@
"general_pleaseWait": { "general_pleaseWait": {
"message": "Gortozit mar plij..." "message": "Gortozit mar plij..."
}, },
"general_copyToClipboard": {
"message": "Eilañ er golver"
},
"progressWindow_savingTo": { "progressWindow_savingTo": {
"message": "Enrollañ e-barzh" "message": "Enrollañ e-barzh"
}, },

View file

@ -6,7 +6,7 @@
<!ENTITY zotero.general.deselectAll "Diziuzañ pep-tra"> <!ENTITY zotero.general.deselectAll "Diziuzañ pep-tra">
<!ENTITY zotero.general.edit "Aozañ"> <!ENTITY zotero.general.edit "Aozañ">
<!ENTITY zotero.general.delete "Dilemel"> <!ENTITY zotero.general.delete "Dilemel">
<!ENTITY zotero.general.moveToTrash "Move to Trash"> <!ENTITY zotero.general.moveToTrash "Kas d'ar pod-lastez">
<!ENTITY zotero.general.ok "Mat eo"> <!ENTITY zotero.general.ok "Mat eo">
<!ENTITY zotero.general.cancel "Nullañ"> <!ENTITY zotero.general.cancel "Nullañ">
<!ENTITY zotero.general.refresh "Freskaat"> <!ENTITY zotero.general.refresh "Freskaat">
@ -129,7 +129,7 @@
<!ENTITY zotero.toolbar.attachment.weblink "Enrollañ al liamm d'ar bajenn a-vremañ"> <!ENTITY zotero.toolbar.attachment.weblink "Enrollañ al liamm d'ar bajenn a-vremañ">
<!ENTITY zotero.toolbar.attachment.snapshot "Kemer un dapadenn-skramm eus ar bajenn a-vremañ"> <!ENTITY zotero.toolbar.attachment.snapshot "Kemer un dapadenn-skramm eus ar bajenn a-vremañ">
<!ENTITY zotero.toolbar.context.item "Elfenn"> <!ENTITY zotero.toolbar.context.item "Elfenn">
<!ENTITY zotero.toolbar.context.notes "Notes"> <!ENTITY zotero.toolbar.context.notes "Notennoù">
<!ENTITY zotero.tagSelector.noTagsToDisplay "Baliz ebet da ziskouez"> <!ENTITY zotero.tagSelector.noTagsToDisplay "Baliz ebet da ziskouez">
<!ENTITY zotero.tagSelector.loadingTags "O kargañ ar balizoù..."> <!ENTITY zotero.tagSelector.loadingTags "O kargañ ar balizoù...">
@ -307,9 +307,9 @@
<!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations"> <!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations">
<!ENTITY zotero.context.editInWindow "Edit in a Separate Window"> <!ENTITY zotero.context.editInWindow "Edit in a Separate Window">
<!ENTITY zotero.pdfReader.firstPage "First Page"> <!ENTITY zotero.pdfReader.firstPage "Pajenn gentañ">
<!ENTITY zotero.pdfReader.lastPage "Last Page"> <!ENTITY zotero.pdfReader.lastPage "Last Page">
<!ENTITY zotero.pdfReader.back "Back"> <!ENTITY zotero.pdfReader.back "Distreiñ">
<!ENTITY zotero.pdfReader.forward "Forward"> <!ENTITY zotero.pdfReader.forward "Forward">
<!ENTITY zotero.pdfReader.rotateClockwise "Rotate Clockwise"> <!ENTITY zotero.pdfReader.rotateClockwise "Rotate Clockwise">
<!ENTITY zotero.pdfReader.rotateCounterclockwise "Rotate Counterclockwise"> <!ENTITY zotero.pdfReader.rotateCounterclockwise "Rotate Counterclockwise">
@ -320,8 +320,8 @@
<!ENTITY zotero.pdfReader.noSpreads "No Spreads"> <!ENTITY zotero.pdfReader.noSpreads "No Spreads">
<!ENTITY zotero.pdfReader.oddSpreads "Odd Spreads"> <!ENTITY zotero.pdfReader.oddSpreads "Odd Spreads">
<!ENTITY zotero.pdfReader.evenSpreads "Even Spreads"> <!ENTITY zotero.pdfReader.evenSpreads "Even Spreads">
<!ENTITY zotero.pdfReader.zoomIn "Zoom In"> <!ENTITY zotero.pdfReader.zoomIn "Zoumañ">
<!ENTITY zotero.pdfReader.zoomOut "Zoom Out"> <!ENTITY zotero.pdfReader.zoomOut "Dizoumañ">
<!ENTITY zotero.pdfReader.zoomAuto "Automatically Resize"> <!ENTITY zotero.pdfReader.zoomAuto "Automatically Resize">
<!ENTITY zotero.pdfReader.zoomPageWidth "Zoom to Page Width"> <!ENTITY zotero.pdfReader.zoomPageWidth "Zoom to Page Width">
<!ENTITY zotero.pdfReader.zoomPageHeight "Zoom to Page Height"> <!ENTITY zotero.pdfReader.zoomPageHeight "Zoom to Page Height">

View file

@ -71,9 +71,9 @@ general.fix=Kempenn...
general.tryAgain=Klask en-dro general.tryAgain=Klask en-dro
general.tryLater=Klask diwezhatoc'h general.tryLater=Klask diwezhatoc'h
general.showDirectory=Diskouez ar c'havlec'h general.showDirectory=Diskouez ar c'havlec'h
general.showInLibrary=Show in Library general.showInLibrary=Diskouez el levraoueg:
general.continue=Kenderc'hel general.continue=Kenderc'hel
general.copy=Copy general.copy=Eilañ
general.copyToClipboard=Eilañ er golver general.copyToClipboard=Eilañ er golver
general.cancel=Nullañ general.cancel=Nullañ
general.clear=Diverkañ general.clear=Diverkañ
@ -327,6 +327,9 @@ pane.items.remove.multiple=Ha sur oc'h ho peus c'hoant da zilemel an elfennoù d
pane.items.removeFromPublications.title=Tennañ diwar Ma Embannadennoù pane.items.removeFromPublications.title=Tennañ diwar Ma Embannadennoù
pane.items.removeFromPublications=Ha sur ho peus c'hoant da zilemel an elfenn diuzet diwar Ma Embannadennoù? pane.items.removeFromPublications=Ha sur ho peus c'hoant da zilemel an elfenn diuzet diwar Ma Embannadennoù?
pane.items.removeFromPublications.multiple=Ha sur ho peus c'hoant da zilemel an elfennoù diuzet diwar Ma Embannadennoù? pane.items.removeFromPublications.multiple=Ha sur ho peus c'hoant da zilemel an elfennoù diuzet diwar Ma Embannadennoù?
pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.menu.addNoteFromAnnotations=Add Note from Annotations
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=Kavout ur PDF hegerz pane.items.menu.findAvailablePDF=Kavout ur PDF hegerz
@ -338,11 +341,13 @@ pane.items.menu.removeFromPublications=Tennañ an elfenn diwar Ma Embannadennoù
pane.items.menu.removeFromPublications.multiple=Tennañ an elfennoù diwar Ma Embannadennoù... pane.items.menu.removeFromPublications.multiple=Tennañ an elfennoù diwar Ma Embannadennoù...
pane.items.menu.moveToTrash=Kas an elfenn d'ar pod-lastez... pane.items.menu.moveToTrash=Kas an elfenn d'ar pod-lastez...
pane.items.menu.moveToTrash.multiple=Kas an elfennoù d'ar pod-lastez... pane.items.menu.moveToTrash.multiple=Kas an elfennoù d'ar pod-lastez...
pane.items.menu.delete=Delete Permanently… pane.items.menu.delete=Dilemel da virviken...
pane.items.menu.export=Ezporzhiañ an elfenn... pane.items.menu.export=Ezporzhiañ an elfenn...
pane.items.menu.export.multiple=Ezporzhiañ an elfennoù... pane.items.menu.export.multiple=Ezporzhiañ an elfennoù...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Krouiñ ul levrlennadur diwar an elfenn... pane.items.menu.createBib=Krouiñ ul levrlennadur diwar an elfenn...
pane.items.menu.createBib.multiple=Krouiñ ul levrlennadur diwar an elfennoù... pane.items.menu.createBib.multiple=Krouiñ ul levrlennadur diwar an elfennoù...
pane.items.menu.generateReport=Genel un danevell diwar an elfenn... pane.items.menu.generateReport=Genel un danevell diwar an elfenn...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Krouiñ un elfenn kar...
pane.items.menu.createParent.multiple=Krouiñ elfennoù kar pane.items.menu.createParent.multiple=Krouiñ elfennoù kar
pane.items.menu.renameAttachments=Adenvel ar restr diwar ar meta-roadenn kar pane.items.menu.renameAttachments=Adenvel ar restr diwar ar meta-roadenn kar
pane.items.menu.renameAttachments.multiple=Adenvel ar restroù diwar ar meta-roadenn kar pane.items.menu.renameAttachments.multiple=Adenvel ar restroù diwar ar meta-roadenn kar
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Diskouez an elfenn el levraoueg pane.items.showItemInLibrary=Diskouez an elfenn el levraoueg
pane.items.letter.oneParticipant=Lizher da %S pane.items.letter.oneParticipant=Lizher da %S
@ -430,7 +437,7 @@ pane.item.related.count.zero=%S kevreet:
pane.item.related.count.singular=%S kevreet: pane.item.related.count.singular=%S kevreet:
pane.item.related.count.plural=%S kevreet: pane.item.related.count.plural=%S kevreet:
pane.item.parentItem=Elfenn kar: pane.item.parentItem=Elfenn kar:
pane.item.viewOnline.tooltip=Go to this item online pane.item.viewOnline.tooltip=Mont d'an elfenn-mañ enlinenn
pane.context.noParent=Elfenn kar ebet pane.context.noParent=Elfenn kar ebet
pane.context.itemNotes=Item Notes pane.context.itemNotes=Item Notes
@ -864,22 +871,7 @@ citation.showEditor=Diskouez an aozer...
citation.hideEditor=Kuzhat an aozer... citation.hideEditor=Kuzhat an aozer...
citation.citations=Arroudennoù citation.citations=Arroudennoù
citation.notes=Notennoù citation.notes=Notennoù
citation.locator.page=Pajenn citation.locator.timestamp=Timestamp
citation.locator.book=Levr
citation.locator.chapter=Chabistr
citation.locator.column=Bann
citation.locator.figure=Lun
citation.locator.folio=Folio
citation.locator.issue=Niverenn
citation.locator.line=Linenn
citation.locator.note=Notenn
citation.locator.opus=Opus
citation.locator.paragraph=Rannbennad
citation.locator.part=Lodenn
citation.locator.section=Kevrenn
citation.locator.subverbo=Sub verbo
citation.locator.volume=Levrenn
citation.locator.verse=Gwerzad
report.title.default=Danevell Zotero report.title.default=Danevell Zotero
report.parentItem=Elfenn kar: report.parentItem=Elfenn kar:
@ -1005,7 +997,7 @@ sync.skipGroup=Tremen ar strollad
sync.removeGroupsAndSync=Tennañ ar strolladoù ha sinkro sync.removeGroupsAndSync=Tennañ ar strolladoù ha sinkro
sync.reminder.setUp.message=Back up your library with %S syncing. sync.reminder.setUp.message=Back up your library with %S syncing.
sync.reminder.setUp.action=Set Up Syncing sync.reminder.setUp.action=Termeniñ ar sinkro
sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing? sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing?
sync.error.usernameNotSet=Anv-implijer didermenet: sync.error.usernameNotSet=Anv-implijer didermenet:
@ -1309,14 +1301,14 @@ noteEditor.bulletList=Bulleted List
noteEditor.orderedList=Numbered List noteEditor.orderedList=Numbered List
noteEditor.blockquote=Block Quote noteEditor.blockquote=Block Quote
noteEditor.formatText=Format Text noteEditor.formatText=Format Text
noteEditor.highlightText=Highlight Text noteEditor.highlightText=Usskediñ an destenn
noteEditor.removeColor=Remove Color noteEditor.removeColor=Dilemel al liv
noteEditor.bold=Bold noteEditor.bold=Druz
noteEditor.italic=Italic noteEditor.italic=Stouet
noteEditor.underline=Islinennet noteEditor.underline=Islinennet
noteEditor.strikethrough=Strikethrough noteEditor.strikethrough=Strikethrough
noteEditor.subscript=Subscript noteEditor.subscript=Isskrid
noteEditor.superscript=Superscript noteEditor.superscript=Usskrid
noteEditor.returnToNotesList=Return to Notes List noteEditor.returnToNotesList=Return to Notes List
noteEditor.insertLink=Insert Link noteEditor.insertLink=Insert Link
noteEditor.clearFormatting=Clear Formatting noteEditor.clearFormatting=Clear Formatting
@ -1327,7 +1319,7 @@ noteEditor.alignRight=Align Right
noteEditor.insertCitation=Insert Citation noteEditor.insertCitation=Insert Citation
noteEditor.more=Muioc'h noteEditor.more=Muioc'h
noteEditor.find=Find noteEditor.find=Find
noteEditor.replace=Replace noteEditor.replace=Erlec'hiañ
noteEditor.previous=Previous noteEditor.previous=Previous
noteEditor.next=Da-heul noteEditor.next=Da-heul
noteEditor.replaceNext=Erlec'hiañ noteEditor.replaceNext=Erlec'hiañ
@ -1363,7 +1355,7 @@ pdfReader.noAnnotations=Create an annotation to see it in the sidebar
pdfReader.addText=Add extracted text pdfReader.addText=Add extracted text
pdfReader.addComment=Add comment pdfReader.addComment=Add comment
pdfReader.addTags=Add tags… pdfReader.addTags=Add tags…
pdfReader.highlightText=Highlight Text pdfReader.highlightText=Usskediñ an destenn
pdfReader.addNote=Ouzhpennañ un notenn pdfReader.addNote=Ouzhpennañ un notenn
pdfReader.selectArea=Select Area pdfReader.selectArea=Select Area
pdfReader.pickColor=Pick a Color pdfReader.pickColor=Pick a Color
@ -1375,13 +1367,18 @@ pdfReader.zoomPageWidth=Zoom to Page Width
pdfReader.zoomPageHeight=Zoom to Page Height pdfReader.zoomPageHeight=Zoom to Page Height
pdfReader.nextPage=Pajenn da-heul pdfReader.nextPage=Pajenn da-heul
pdfReader.previousPage=Previous Page pdfReader.previousPage=Previous Page
pdfReader.page=Page pdfReader.page=Pajenn
pdfReader.readOnly=Read-only pdfReader.readOnly=Read-only
pdfReader.promptTransferFromPDF.title=Import Annotations pdfReader.promptTransferFromPDF.title=Import Annotations
pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S. pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S.
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

View file

@ -5,9 +5,18 @@
"general_moreInfo": { "general_moreInfo": {
"message": "Més informació…" "message": "Més informació…"
}, },
"general_needHelp": {
"message": "Us cal ajuda?"
},
"general_done": { "general_done": {
"message": "Fet" "message": "Fet"
}, },
"general_yes": {
"message": "Sí"
},
"general_no": {
"message": "No"
},
"general_tryAgain": { "general_tryAgain": {
"message": "Torna-ho a provar" "message": "Torna-ho a provar"
}, },
@ -32,9 +41,15 @@
"progressWindow_error_translation": { "progressWindow_error_translation": {
"message": "S'ha produït un error desar l'element. Vegeu $1 per a més informació. " "message": "S'ha produït un error desar l'element. Vegeu $1 per a més informació. "
}, },
"progressWindow_error_siteAccessLimitsError": {
"message": "S'ha produït un error en desar l'element. $1 pot limitar el nombre d'elements que podeu desar cada vegada. Vegeu $2 per a més informació."
},
"progressWindow_error_troubleshootingTranslatorIssues": { "progressWindow_error_troubleshootingTranslatorIssues": {
"message": "Resolució d'incidències dels tradutors" "message": "Resolució d'incidències dels tradutors"
}, },
"progressWindow_error_siteAccessLimits": {
"message": "Límits d'accés al lloc"
},
"progressWindow_error_fallback": { "progressWindow_error_fallback": {
"message": "S'ha produït un error desant $1. Es provarà de desar-ho fent servir $2." "message": "S'ha produït un error desant $1. Es provarà de desar-ho fent servir $2."
}, },
@ -50,6 +65,18 @@
"upgradeApp": { "upgradeApp": {
"message": "Actualitza $1" "message": "Actualitza $1"
}, },
"firstRun_title": {
"message": "Heu instal·lat el connector de $1!"
},
"firstRun_text1": {
"message": "El connector de $1 us permet <a href=\"$2\">desar elements al $1</a> des del vostre navegador amb un sol clic."
},
"firstRun_text2": {
"message": "Si no ho heu fet encara, <a href=\"$2\">baixeu</a> la versió d'escriptori del $1 per a gaudir d'una millor experiència."
},
"firstRun_acceptButton": {
"message": "Entesos"
},
"error_connection_isAppRunning": { "error_connection_isAppRunning": {
"message": "Està executant-se el $1?" "message": "Està executant-se el $1?"
}, },
@ -92,6 +119,15 @@
"integration_googleDocs_docxAlert": { "integration_googleDocs_docxAlert": {
"message": "La integració de $1 no és disponible quan s'editen fitxers .docx de Microsoft Word directament a Google Docs. Trieu Fitxer → Desa com a Google Docs per a habilitar aquesta funcionalitat. <br/><br/>Si voleu transferir un document de Word amb citacions de $1 a Google Docs, consulteu <a href=\"https://www.zotero.org/support/kb/moving_documents_between_word_processors\">Moure documents entre processadors de text</a>." "message": "La integració de $1 no és disponible quan s'editen fitxers .docx de Microsoft Word directament a Google Docs. Trieu Fitxer → Desa com a Google Docs per a habilitar aquesta funcionalitat. <br/><br/>Si voleu transferir un document de Word amb citacions de $1 a Google Docs, consulteu <a href=\"https://www.zotero.org/support/kb/moving_documents_between_word_processors\">Moure documents entre processadors de text</a>."
}, },
"integration_googleDocs_documentLocked": {
"message": "Les cites del document estan sent editades per un altre usuari del $1. Torneu-ho a provar més endavant."
},
"integration_googleDocs_documentLocked_moreInfo": {
"message": "El $1 bloqueja el vostre document per a evitar que diferents usuaris puguin editar-hi cites al mateix moment. L'edició concurrent de cites en un mateix document pot portar a la seva corrupció. Circumstàncies no esperades, com ara problemes de xarxa, poden provocar que el document quedi bloquejat de forma permanent. Si creieu que ha passat això, podeu sobreescriure el bloqueig. <br/><br/>Voleu sobreescriure el bloqueig del document?"
},
"integration_googleDocs_documentPermissionError": {
"message": "El compte de Google que heu seleccionat no té permisos per a editar el document. Torneu-ho a provar i assegureu-vos que trieu el compte amb accessos d'edició."
},
"integration_googleDocs_orphanedCitations_buttonTooltip": { "integration_googleDocs_orphanedCitations_buttonTooltip": {
"message": "Mostra cites de $1 no enllaçades" "message": "Mostra cites de $1 no enllaçades"
}, },

View file

@ -52,7 +52,7 @@ general.moreInformation=Més informació
general.learnMore=Learn More general.learnMore=Learn More
general.seeForMoreInformation=Mira %S per a més informació. general.seeForMoreInformation=Mira %S per a més informació.
general.open=Obre %S general.open=Obre %S
general.close=Close general.close=Tanca
general.enable=Habilita general.enable=Habilita
general.disable=Deshabilita general.disable=Deshabilita
general.reset=Reinicia general.reset=Reinicia
@ -71,7 +71,7 @@ general.fix=Arregla…
general.tryAgain=Torna-ho a provar general.tryAgain=Torna-ho a provar
general.tryLater=Prova-ho després general.tryLater=Prova-ho després
general.showDirectory=Mostra el directori general.showDirectory=Mostra el directori
general.showInLibrary=Show in Library general.showInLibrary=Mostra a la biblioteca
general.continue=Continua general.continue=Continua
general.copy=Copia general.copy=Copia
general.copyToClipboard=Copia al portaretalls general.copyToClipboard=Copia al portaretalls
@ -89,7 +89,7 @@ general.back=Enrere
general.languages=Languages general.languages=Languages
general.default=Default general.default=Default
general.custom=Custom general.custom=Custom
general.loading=Loading… general.loading=S'està carregant…
general.richText=Rich Text general.richText=Rich Text
general.clearSelection=Clear Selection general.clearSelection=Clear Selection
@ -327,7 +327,10 @@ pane.items.remove.multiple=Segur que voleu eliminar els elements seleccionats d'
pane.items.removeFromPublications.title=Suprimeix de les meves publicacions pane.items.removeFromPublications.title=Suprimeix de les meves publicacions
pane.items.removeFromPublications=Esteu segur que voleu suprimir l'element seleccionat de 'Les meves publicacions'? pane.items.removeFromPublications=Esteu segur que voleu suprimir l'element seleccionat de 'Les meves publicacions'?
pane.items.removeFromPublications.multiple=Esteu segur que voleu suprimir els elements seleccionats de 'Les meves publicacions'? pane.items.removeFromPublications.multiple=Esteu segur que voleu suprimir els elements seleccionats de 'Les meves publicacions'?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Afegeix nota de les anotacions
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=Cerca els PDF disponibles pane.items.menu.findAvailablePDF=Cerca els PDF disponibles
pane.items.menu.findAvailablePDF.multiple=Cerca els PDF disponibles pane.items.menu.findAvailablePDF.multiple=Cerca els PDF disponibles
@ -338,11 +341,13 @@ pane.items.menu.removeFromPublications=Suprimeix l'element de les meves publicac
pane.items.menu.removeFromPublications.multiple=Suprimeix els elements de les meves publicacions… pane.items.menu.removeFromPublications.multiple=Suprimeix els elements de les meves publicacions…
pane.items.menu.moveToTrash=Desplaça l'element a la paperera. pane.items.menu.moveToTrash=Desplaça l'element a la paperera.
pane.items.menu.moveToTrash.multiple=Desplaça els elements a la paperera... pane.items.menu.moveToTrash.multiple=Desplaça els elements a la paperera...
pane.items.menu.delete=Delete Permanently… pane.items.menu.delete=Elimina permanentment…
pane.items.menu.export=Exporta l'element seleccionat... pane.items.menu.export=Exporta l'element seleccionat...
pane.items.menu.export.multiple=Exporta els elements seleccionats... pane.items.menu.export.multiple=Exporta els elements seleccionats...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Crea una bibliografia a partir de l'element seleccionat... pane.items.menu.createBib=Crea una bibliografia a partir de l'element seleccionat...
pane.items.menu.createBib.multiple=Crea una bibliografia a partir dels elements seleccionats... pane.items.menu.createBib.multiple=Crea una bibliografia a partir dels elements seleccionats...
pane.items.menu.generateReport=Genera un informe a partir de l'element seleccionat... pane.items.menu.generateReport=Genera un informe a partir de l'element seleccionat...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Crea un element pare…
pane.items.menu.createParent.multiple=Crea elements pare pane.items.menu.createParent.multiple=Crea elements pare
pane.items.menu.renameAttachments=Canvia el nom del fitxer amb les metadades ascendents pane.items.menu.renameAttachments=Canvia el nom del fitxer amb les metadades ascendents
pane.items.menu.renameAttachments.multiple=Canvia els noms del fitxers amb les metadades ascendents pane.items.menu.renameAttachments.multiple=Canvia els noms del fitxers amb les metadades ascendents
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Mostra l'element a la biblioteca pane.items.showItemInLibrary=Mostra l'element a la biblioteca
pane.items.letter.oneParticipant=Carta a %S pane.items.letter.oneParticipant=Carta a %S
@ -430,7 +437,7 @@ pane.item.related.count.zero=Cap element relacionat:
pane.item.related.count.singular=%S element relacionat: pane.item.related.count.singular=%S element relacionat:
pane.item.related.count.plural=%S elements relacionats: pane.item.related.count.plural=%S elements relacionats:
pane.item.parentItem=Element ascendent pane.item.parentItem=Element ascendent
pane.item.viewOnline.tooltip=Go to this item online pane.item.viewOnline.tooltip=Vés a aquest element en línia
pane.context.noParent=No hi ha cap element pare pane.context.noParent=No hi ha cap element pare
pane.context.itemNotes=Notes dels elements pane.context.itemNotes=Notes dels elements
@ -864,22 +871,7 @@ citation.showEditor=Mostra editor...
citation.hideEditor=Oculta l'editor... citation.hideEditor=Oculta l'editor...
citation.citations=Cites citation.citations=Cites
citation.notes=Notes citation.notes=Notes
citation.locator.page=Pàgina citation.locator.timestamp=Timestamp
citation.locator.book=Llibre
citation.locator.chapter=Capítol
citation.locator.column=Columna
citation.locator.figure=Figura
citation.locator.folio=Infoli
citation.locator.issue=Número
citation.locator.line=Línia
citation.locator.note=Nota
citation.locator.opus=Opus
citation.locator.paragraph=Paràgraf
citation.locator.part=Part
citation.locator.section=Secció
citation.locator.subverbo=Sub verbo
citation.locator.volume=Volum
citation.locator.verse=Vers
report.title.default=Informe del Zotero report.title.default=Informe del Zotero
report.parentItem=Element pare: report.parentItem=Element pare:
@ -1005,7 +997,7 @@ sync.skipGroup=Omet el grup
sync.removeGroupsAndSync=Elimina el grup i sincronitza sync.removeGroupsAndSync=Elimina el grup i sincronitza
sync.reminder.setUp.message=Back up your library with %S syncing. sync.reminder.setUp.message=Back up your library with %S syncing.
sync.reminder.setUp.action=Set Up Syncing sync.reminder.setUp.action=Configura la sincronització
sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing? sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing?
sync.error.usernameNotSet=No s'ha establit un nom d'usuari sync.error.usernameNotSet=No s'ha establit un nom d'usuari
@ -1303,20 +1295,20 @@ noteEditor.enterLink=Enter Link
noteEditor.heading1=Heading 1 noteEditor.heading1=Heading 1
noteEditor.heading2=Heading 2 noteEditor.heading2=Heading 2
noteEditor.heading3=Heading 3 noteEditor.heading3=Heading 3
noteEditor.paragraph=Paragraph noteEditor.paragraph=Paràgraf
noteEditor.monospaced=Monospaced noteEditor.monospaced=Monospaced
noteEditor.bulletList=Bulleted List noteEditor.bulletList=Bulleted List
noteEditor.orderedList=Numbered List noteEditor.orderedList=Numbered List
noteEditor.blockquote=Block Quote noteEditor.blockquote=Block Quote
noteEditor.formatText=Format Text noteEditor.formatText=Format Text
noteEditor.highlightText=Highlight Text noteEditor.highlightText=Marca el text
noteEditor.removeColor=Remove Color noteEditor.removeColor=Elimina el color
noteEditor.bold=Bold noteEditor.bold=Negreta
noteEditor.italic=Italic noteEditor.italic=Cursiva
noteEditor.underline=Underline noteEditor.underline=Subratllat
noteEditor.strikethrough=Strikethrough noteEditor.strikethrough=Strikethrough
noteEditor.subscript=Subscript noteEditor.subscript=Subíndex
noteEditor.superscript=Superscript noteEditor.superscript=Superíndex
noteEditor.returnToNotesList=Return to Notes List noteEditor.returnToNotesList=Return to Notes List
noteEditor.insertLink=Insert Link noteEditor.insertLink=Insert Link
noteEditor.clearFormatting=Clear Formatting noteEditor.clearFormatting=Clear Formatting
@ -1326,7 +1318,7 @@ noteEditor.alignCenter=Align Center
noteEditor.alignRight=Align Right noteEditor.alignRight=Align Right
noteEditor.insertCitation=Insert Citation noteEditor.insertCitation=Insert Citation
noteEditor.more=Més noteEditor.more=Més
noteEditor.find=Find noteEditor.find=Cerca
noteEditor.replace=Replace noteEditor.replace=Replace
noteEditor.previous=Previous noteEditor.previous=Previous
noteEditor.next=Next noteEditor.next=Next
@ -1338,11 +1330,11 @@ noteEditor.editCitation=Edit Citation
noteEditor.showOnPage=Show on Page noteEditor.showOnPage=Show on Page
noteEditor.unlink=Unlink noteEditor.unlink=Unlink
noteEditor.set=Set noteEditor.set=Set
noteEditor.edit=Edit noteEditor.edit=Edita
noteEditor.addCitation=Add Citation noteEditor.addCitation=Add Citation
noteEditor.removeCitation=Hide Citation noteEditor.removeCitation=Hide Citation
noteEditor.findAndReplace=Find and Replace noteEditor.findAndReplace=Find and Replace
noteEditor.editInWindow=Edit in a Separate Window noteEditor.editInWindow=Edita en una finestra separada
noteEditor.applyAnnotationColors=Show Annotation Colors noteEditor.applyAnnotationColors=Show Annotation Colors
noteEditor.removeAnnotationColors=Hide Annotation Colors noteEditor.removeAnnotationColors=Hide Annotation Colors
noteEditor.addCitations=Show Annotation Citations noteEditor.addCitations=Show Annotation Citations
@ -1363,8 +1355,8 @@ pdfReader.noAnnotations=Create an annotation to see it in the sidebar
pdfReader.addText=Add extracted text pdfReader.addText=Add extracted text
pdfReader.addComment=Add comment pdfReader.addComment=Add comment
pdfReader.addTags=Add tags… pdfReader.addTags=Add tags…
pdfReader.highlightText=Highlight Text pdfReader.highlightText=Marca el text
pdfReader.addNote=Add Note pdfReader.addNote=Afegeix una nota
pdfReader.selectArea=Select Area pdfReader.selectArea=Select Area
pdfReader.pickColor=Pick a Color pdfReader.pickColor=Pick a Color
pdfReader.addToNote=Add to Note pdfReader.addToNote=Add to Note
@ -1382,6 +1374,11 @@ pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

View file

@ -5,6 +5,12 @@
"general_done": { "general_done": {
"message": "Hotovo" "message": "Hotovo"
}, },
"general_yes": {
"message": "Ano"
},
"general_no": {
"message": "Ne"
},
"general_tryAgain": { "general_tryAgain": {
"message": "Zkusit znovu" "message": "Zkusit znovu"
}, },
@ -14,6 +20,9 @@
"general_cancel": { "general_cancel": {
"message": "Zrušit" "message": "Zrušit"
}, },
"general_copyToClipboard": {
"message": "Kopírovat do schránky"
},
"progressWindow_savingTo": { "progressWindow_savingTo": {
"message": "Ukládám do" "message": "Ukládám do"
}, },

View file

@ -30,7 +30,7 @@
<!ENTITY zotero.preferences.groups.whenCopyingInclude "Při kopírování položek mezi knihovnami zahrnout:"> <!ENTITY zotero.preferences.groups.whenCopyingInclude "Při kopírování položek mezi knihovnami zahrnout:">
<!ENTITY zotero.preferences.groups.childNotes "dceřiné poznámky"> <!ENTITY zotero.preferences.groups.childNotes "dceřiné poznámky">
<!ENTITY zotero.preferences.groups.childFiles "dceřiné snímky a importované soubory"> <!ENTITY zotero.preferences.groups.childFiles "dceřiné snímky a importované soubory">
<!ENTITY zotero.preferences.groups.annotations "annotations"> <!ENTITY zotero.preferences.groups.annotations "anotace">
<!ENTITY zotero.preferences.groups.childLinks "dceřiné odkazy"> <!ENTITY zotero.preferences.groups.childLinks "dceřiné odkazy">
<!ENTITY zotero.preferences.groups.tags "štítky"> <!ENTITY zotero.preferences.groups.tags "štítky">
@ -105,8 +105,8 @@
<!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Pokud je tato volba neaktivní, Zotero zahrne URL v případě citování článku (z časopisu, magazínu nebo novin) pouze když článek nemá specifikovaný rozsah stran."> <!ENTITY zotero.preferences.export.citePaperJournalArticleURL.description "Pokud je tato volba neaktivní, Zotero zahrne URL v případě citování článku (z časopisu, magazínu nebo novin) pouze když článek nemá specifikovaný rozsah stran.">
<!ENTITY zotero.preferences.quickCopy.caption "Rychlé kopírování"> <!ENTITY zotero.preferences.quickCopy.caption "Rychlé kopírování">
<!ENTITY zotero.preferences.quickCopy.itemFormat "Item Format:"> <!ENTITY zotero.preferences.quickCopy.itemFormat "Formát položky">
<!ENTITY zotero.preferences.quickCopy.noteFormat "Note Format:"> <!ENTITY zotero.preferences.quickCopy.noteFormat "Formát poznámky">
<!ENTITY zotero.preferences.quickCopy.copyAsHTML "Kopírovat jako HTML"> <!ENTITY zotero.preferences.quickCopy.copyAsHTML "Kopírovat jako HTML">
<!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Nastavení dle stránky:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Nastavení dle stránky:">
<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Doména/Cesta"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Doména/Cesta">
@ -144,7 +144,7 @@
<!ENTITY zotero.preferences.proxies.proxyOptions "Možnosti Proxy"> <!ENTITY zotero.preferences.proxies.proxyOptions "Možnosti Proxy">
<!ENTITY zotero.preferences.proxies.desc_before_link "Zotero bude transparentně přesměrovávat požadavky skrz uložené proxy servery. Více informací najdete v"> <!ENTITY zotero.preferences.proxies.desc_before_link "Zotero bude transparentně přesměrovávat požadavky skrz uložené proxy servery. Více informací najdete v">
<!ENTITY zotero.preferences.proxies.desc_link "dokumentaci k proxy"> <!ENTITY zotero.preferences.proxies.desc_link "dokumentaci k proxy">
<!ENTITY zotero.preferences.proxies.desc_after_link "."> <!ENTITY zotero.preferences.proxies.desc_after_link "pro další informace.">
<!ENTITY zotero.preferences.proxies.transparent "Automaticky přesměrovávat požadavky skrz dříve použité proxy servery."> <!ENTITY zotero.preferences.proxies.transparent "Automaticky přesměrovávat požadavky skrz dříve použité proxy servery.">
<!ENTITY zotero.preferences.proxies.autoRecognize "Automaticky rozpoznávat proxované zdroje"> <!ENTITY zotero.preferences.proxies.autoRecognize "Automaticky rozpoznávat proxované zdroje">
<!ENTITY zotero.preferences.proxies.showRedirectNotification "Zobrazovat upozornění při přesměrování přes proxy"> <!ENTITY zotero.preferences.proxies.showRedirectNotification "Zobrazovat upozornění při přesměrování přes proxy">

View file

@ -36,7 +36,7 @@
<!ENTITY copyCitationCmd.label "Kopírovat citaci"> <!ENTITY copyCitationCmd.label "Kopírovat citaci">
<!ENTITY copyBibliographyCmd.label "Kopírovat bibliografii"> <!ENTITY copyBibliographyCmd.label "Kopírovat bibliografii">
<!ENTITY copyNoteCmd.label "Copy Note"> <!ENTITY copyNoteCmd.label "Kopírovat poznámku">
<!ENTITY bidiSwitchPageDirectionItem.label "Přepnout směr stránky"> <!ENTITY bidiSwitchPageDirectionItem.label "Přepnout směr stránky">
<!ENTITY bidiSwitchPageDirectionItem.accesskey "g"> <!ENTITY bidiSwitchPageDirectionItem.accesskey "g">

View file

@ -6,7 +6,7 @@
<!ENTITY zotero.general.deselectAll "Odznačit vše"> <!ENTITY zotero.general.deselectAll "Odznačit vše">
<!ENTITY zotero.general.edit "Editovat"> <!ENTITY zotero.general.edit "Editovat">
<!ENTITY zotero.general.delete "Smazat"> <!ENTITY zotero.general.delete "Smazat">
<!ENTITY zotero.general.moveToTrash "Move to Trash"> <!ENTITY zotero.general.moveToTrash "Přesunout do Koše">
<!ENTITY zotero.general.ok "OK"> <!ENTITY zotero.general.ok "OK">
<!ENTITY zotero.general.cancel "Zrušit"> <!ENTITY zotero.general.cancel "Zrušit">
<!ENTITY zotero.general.refresh "Obnovit"> <!ENTITY zotero.general.refresh "Obnovit">
@ -128,8 +128,8 @@
<!ENTITY zotero.toolbar.attachment.add "Uložit kopii souboru..."> <!ENTITY zotero.toolbar.attachment.add "Uložit kopii souboru...">
<!ENTITY zotero.toolbar.attachment.weblink "Uložit odkaz na aktuální stránku"> <!ENTITY zotero.toolbar.attachment.weblink "Uložit odkaz na aktuální stránku">
<!ENTITY zotero.toolbar.attachment.snapshot "Vytvořit snímek aktuální stránky"> <!ENTITY zotero.toolbar.attachment.snapshot "Vytvořit snímek aktuální stránky">
<!ENTITY zotero.toolbar.context.item "Item"> <!ENTITY zotero.toolbar.context.item "Položka">
<!ENTITY zotero.toolbar.context.notes "Notes"> <!ENTITY zotero.toolbar.context.notes "Poznámky">
<!ENTITY zotero.tagSelector.noTagsToDisplay "Žádné štítky k zobrazení"> <!ENTITY zotero.tagSelector.noTagsToDisplay "Žádné štítky k zobrazení">
<!ENTITY zotero.tagSelector.loadingTags "Nahrávám štítky..."> <!ENTITY zotero.tagSelector.loadingTags "Nahrávám štítky...">
@ -307,7 +307,7 @@
<!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations"> <!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations">
<!ENTITY zotero.context.editInWindow "Edit in a Separate Window"> <!ENTITY zotero.context.editInWindow "Edit in a Separate Window">
<!ENTITY zotero.pdfReader.firstPage "First Page"> <!ENTITY zotero.pdfReader.firstPage "První strana">
<!ENTITY zotero.pdfReader.lastPage "Last Page"> <!ENTITY zotero.pdfReader.lastPage "Last Page">
<!ENTITY zotero.pdfReader.back "Back"> <!ENTITY zotero.pdfReader.back "Back">
<!ENTITY zotero.pdfReader.forward "Forward"> <!ENTITY zotero.pdfReader.forward "Forward">

View file

@ -52,7 +52,7 @@ general.moreInformation=Více informací
general.learnMore=Learn More general.learnMore=Learn More
general.seeForMoreInformation=Pro více informací se podívejte na %S general.seeForMoreInformation=Pro více informací se podívejte na %S
general.open=Otevřít %S general.open=Otevřít %S
general.close=Close general.close=Zavřít
general.enable=Povolit general.enable=Povolit
general.disable=Zakázat general.disable=Zakázat
general.reset=Resetovat general.reset=Resetovat
@ -71,9 +71,9 @@ general.fix=Fix...
general.tryAgain=Zkusit znovu general.tryAgain=Zkusit znovu
general.tryLater=Zkusit později general.tryLater=Zkusit později
general.showDirectory=Zobrazit adresář general.showDirectory=Zobrazit adresář
general.showInLibrary=Show in Library general.showInLibrary=Ukázat v knihovně
general.continue=Pokračovat general.continue=Pokračovat
general.copy=Copy general.copy=Kopírovat
general.copyToClipboard=Kopírovat do schránky general.copyToClipboard=Kopírovat do schránky
general.cancel=Zrušit general.cancel=Zrušit
general.clear=Vyčistit general.clear=Vyčistit
@ -89,7 +89,7 @@ general.back=Back
general.languages=Languages general.languages=Languages
general.default=Default general.default=Default
general.custom=Custom general.custom=Custom
general.loading=Loading… general.loading=Nahrává se...
general.richText=Rich Text general.richText=Rich Text
general.clearSelection=Clear Selection general.clearSelection=Clear Selection
@ -327,8 +327,11 @@ pane.items.remove.multiple=Opravdu chcete odstranit vybrané položky z této ko
pane.items.removeFromPublications.title=Odstranit z Mých publikací pane.items.removeFromPublications.title=Odstranit z Mých publikací
pane.items.removeFromPublications=Opravdu chcete odstranit vybranou položku z Mých publikací? pane.items.removeFromPublications=Opravdu chcete odstranit vybranou položku z Mých publikací?
pane.items.removeFromPublications.multiple=Opravdu chcete odstranit vybrané položky z Mých publikací? pane.items.removeFromPublications.multiple=Opravdu chcete odstranit vybrané položky z Mých publikací?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Přidat poznámku z anotací
pane.items.menu.addNoteFromAnnotations.multiple=Přidat poznámky z anotací
pane.items.menu.findAvailablePDF=Najít dostupné PDF pane.items.menu.findAvailablePDF=Najít dostupné PDF
pane.items.menu.findAvailablePDF.multiple=Najít dostupná PDF pane.items.menu.findAvailablePDF.multiple=Najít dostupná PDF
pane.items.menu.addToCollection=Add to Collection pane.items.menu.addToCollection=Add to Collection
@ -338,11 +341,13 @@ pane.items.menu.removeFromPublications=Odstranit položku z Mých publikací
pane.items.menu.removeFromPublications.multiple=Odstranit položky z Mých publikací... pane.items.menu.removeFromPublications.multiple=Odstranit položky z Mých publikací...
pane.items.menu.moveToTrash=Přesunout položku do Koše... 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.moveToTrash.multiple=Přesunout položky do Koše...
pane.items.menu.delete=Delete Permanently… pane.items.menu.delete=Definitivně smazat...
pane.items.menu.export=Exportovat vybranou položku... pane.items.menu.export=Exportovat vybranou položku...
pane.items.menu.export.multiple=Exportovat vybrané položky... pane.items.menu.export.multiple=Exportovat vybrané položky...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Vytvořit bibliografii z vybrané položky... pane.items.menu.createBib=Vytvořit bibliografii z vybrané položky...
pane.items.menu.createBib.multiple=Vytvořit bibliografii z vybraných položek... pane.items.menu.createBib.multiple=Vytvořit bibliografii z vybraných položek...
pane.items.menu.generateReport=Vygenerovat zprávu z vybrané položky... pane.items.menu.generateReport=Vygenerovat zprávu z vybrané položky...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Create Parent Item…
pane.items.menu.createParent.multiple=Create Parent Items pane.items.menu.createParent.multiple=Create Parent Items
pane.items.menu.renameAttachments=Přejmenovat soubor z rodičovských metadat 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.menu.renameAttachments.multiple=Přejmenovat soubory z rodičovských metadat
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Zobrazit položku v Knihovně. pane.items.showItemInLibrary=Zobrazit položku v Knihovně.
pane.items.letter.oneParticipant=Dopis pro %S pane.items.letter.oneParticipant=Dopis pro %S
@ -393,7 +400,7 @@ pane.item.switchFieldMode.two=Přepnout na více polí
pane.item.creator.moveToTop=Přesunout nahoru pane.item.creator.moveToTop=Přesunout nahoru
pane.item.creator.moveUp=Posunout nahoru pane.item.creator.moveUp=Posunout nahoru
pane.item.creator.moveDown=Posunout dolů pane.item.creator.moveDown=Posunout dolů
pane.item.notes.allNotes=All Notes pane.item.notes.allNotes=Všechny poznámky
pane.item.notes.untitled=Nepojmenovaná poznámka pane.item.notes.untitled=Nepojmenovaná poznámka
pane.item.notes.delete.confirm=Jste si jistý, že chcete smazat tuto poznámku? pane.item.notes.delete.confirm=Jste si jistý, že chcete smazat tuto poznámku?
pane.item.notes.count=%1$S note;%1$S notes pane.item.notes.count=%1$S note;%1$S notes
@ -430,15 +437,15 @@ pane.item.related.count.zero=%S souvisejících:
pane.item.related.count.singular=%S související: pane.item.related.count.singular=%S související:
pane.item.related.count.plural=%S souvisejících: pane.item.related.count.plural=%S souvisejících:
pane.item.parentItem=Rodičovská položka: pane.item.parentItem=Rodičovská položka:
pane.item.viewOnline.tooltip=Go to this item online pane.item.viewOnline.tooltip=Přejít na tuto položku online
pane.context.noParent=No parent item pane.context.noParent=No parent item
pane.context.itemNotes=Item Notes pane.context.itemNotes=Item Notes
pane.context.allNotes=All Notes pane.context.allNotes=Všechny poznámky
pane.context.noNotes=No notes pane.context.noNotes=Žádné poznámky
itemTypes.note=Poznámka itemTypes.note=Poznámka
itemTypes.annotation=Annotation itemTypes.annotation=Anotace
itemTypes.attachment=Příloha itemTypes.attachment=Příloha
itemTypes.book=Kniha itemTypes.book=Kniha
itemTypes.bookSection=Kapitola knihy itemTypes.bookSection=Kapitola knihy
@ -864,22 +871,7 @@ citation.showEditor=Zobrazit editor...
citation.hideEditor=Skrýt editor... citation.hideEditor=Skrýt editor...
citation.citations=Citace citation.citations=Citace
citation.notes=Poznámky citation.notes=Poznámky
citation.locator.page=Stránka citation.locator.timestamp=Timestamp
citation.locator.book=Kniha
citation.locator.chapter=Kapitola
citation.locator.column=Sloupec
citation.locator.figure=Obrázek
citation.locator.folio=Složka
citation.locator.issue=Číslo
citation.locator.line=Řádek
citation.locator.note=Poznámka
citation.locator.opus=Opus
citation.locator.paragraph=Odstavec
citation.locator.part=Část
citation.locator.section=Sekce
citation.locator.subverbo=Pod heslem
citation.locator.volume=Ročník
citation.locator.verse=Verš
report.title.default=Zotero report report.title.default=Zotero report
report.parentItem=Rodičovská položka: report.parentItem=Rodičovská položka:
@ -1005,7 +997,7 @@ sync.skipGroup=Přeskočit skupinu
sync.removeGroupsAndSync=Odstranit skupinu a synchronizovat sync.removeGroupsAndSync=Odstranit skupinu a synchronizovat
sync.reminder.setUp.message=Back up your library with %S syncing. sync.reminder.setUp.message=Back up your library with %S syncing.
sync.reminder.setUp.action=Set Up Syncing sync.reminder.setUp.action=Nastavení synchronizace
sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing? sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing?
sync.error.usernameNotSet=Uživatelské jméno není nastaveno sync.error.usernameNotSet=Uživatelské jméno není nastaveno
@ -1293,9 +1285,9 @@ retraction.citationWarning=Ve vašem dokumentu byly odvoláno publikování cita
retraction.citationWarning.dontWarn=Varování k této položce mi příště nezobrazujte retraction.citationWarning.dontWarn=Varování k této položce mi příště nezobrazujte
noteEditor.annotationsDateLine=(%S) noteEditor.annotationsDateLine=(%S)
noteEditor.cut=Cut noteEditor.cut=Vyjmout
noteEditor.copy=Copy noteEditor.copy=Kopírovat
noteEditor.paste=Paste noteEditor.paste=Vložit
noteEditor.rightToLeft=Right to Left noteEditor.rightToLeft=Right to Left
noteEditor.leftToRight=Left to Right noteEditor.leftToRight=Left to Right
noteEditor.updateNotice=This note was edited with a newer version of %1$S.\nPlease update %1$S to make changes. noteEditor.updateNotice=This note was edited with a newer version of %1$S.\nPlease update %1$S to make changes.
@ -1303,21 +1295,21 @@ noteEditor.enterLink=Enter Link
noteEditor.heading1=Heading 1 noteEditor.heading1=Heading 1
noteEditor.heading2=Heading 2 noteEditor.heading2=Heading 2
noteEditor.heading3=Heading 3 noteEditor.heading3=Heading 3
noteEditor.paragraph=Paragraph noteEditor.paragraph=Odstavec
noteEditor.monospaced=Monospaced noteEditor.monospaced=Monospaced
noteEditor.bulletList=Bulleted List noteEditor.bulletList=Bulleted List
noteEditor.orderedList=Numbered List noteEditor.orderedList=Numbered List
noteEditor.blockquote=Block Quote noteEditor.blockquote=Block Quote
noteEditor.formatText=Format Text noteEditor.formatText=Format Text
noteEditor.highlightText=Highlight Text noteEditor.highlightText=Zvýraznit text
noteEditor.removeColor=Remove Color noteEditor.removeColor=Odstranit barvu
noteEditor.bold=Bold noteEditor.bold=Tučné
noteEditor.italic=Italic noteEditor.italic=Kurzíva
noteEditor.underline=Underline noteEditor.underline=Podtržené
noteEditor.strikethrough=Strikethrough noteEditor.strikethrough=Strikethrough
noteEditor.subscript=Subscript noteEditor.subscript=Spodní index
noteEditor.superscript=Superscript noteEditor.superscript=Horní index
noteEditor.returnToNotesList=Return to Notes List noteEditor.returnToNotesList=Návrat do seznamu poznámek
noteEditor.insertLink=Insert Link noteEditor.insertLink=Insert Link
noteEditor.clearFormatting=Clear Formatting noteEditor.clearFormatting=Clear Formatting
noteEditor.align=Align noteEditor.align=Align
@ -1325,8 +1317,8 @@ noteEditor.alignLeft=Align Left
noteEditor.alignCenter=Align Center noteEditor.alignCenter=Align Center
noteEditor.alignRight=Align Right noteEditor.alignRight=Align Right
noteEditor.insertCitation=Insert Citation noteEditor.insertCitation=Insert Citation
noteEditor.more=More noteEditor.more=Více
noteEditor.find=Find noteEditor.find=Najít
noteEditor.replace=Replace noteEditor.replace=Replace
noteEditor.previous=Previous noteEditor.previous=Previous
noteEditor.next=Next noteEditor.next=Next
@ -1338,13 +1330,13 @@ noteEditor.editCitation=Edit Citation
noteEditor.showOnPage=Show on Page noteEditor.showOnPage=Show on Page
noteEditor.unlink=Unlink noteEditor.unlink=Unlink
noteEditor.set=Set noteEditor.set=Set
noteEditor.edit=Edit noteEditor.edit=Upravit
noteEditor.addCitation=Add Citation noteEditor.addCitation=Add Citation
noteEditor.removeCitation=Hide Citation noteEditor.removeCitation=Hide Citation
noteEditor.findAndReplace=Find and Replace noteEditor.findAndReplace=Find and Replace
noteEditor.editInWindow=Edit in a Separate Window noteEditor.editInWindow=Edit in a Separate Window
noteEditor.applyAnnotationColors=Show Annotation Colors noteEditor.applyAnnotationColors=Zobrazit barvu anotací
noteEditor.removeAnnotationColors=Hide Annotation Colors noteEditor.removeAnnotationColors=Skrýt barvu anotací
noteEditor.addCitations=Show Annotation Citations noteEditor.addCitations=Show Annotation Citations
noteEditor.removeCitations=Hide Annotation Citations noteEditor.removeCitations=Hide Annotation Citations
noteEditor.insertTable=Insert Table noteEditor.insertTable=Insert Table
@ -1356,18 +1348,18 @@ noteEditor.deleteRow=Delete Row
noteEditor.deleteColumn=Delete Column noteEditor.deleteColumn=Delete Column
noteEditor.deleteTable=Delete Table noteEditor.deleteTable=Delete Table
pdfReader.annotations=Annotations pdfReader.annotations=Anotace
pdfReader.showAnnotations=Show Annotations pdfReader.showAnnotations=Zobrazit anotace
pdfReader.searchAnnotations=Search Annotations pdfReader.searchAnnotations=Vyhledat anotace
pdfReader.noAnnotations=Create an annotation to see it in the sidebar pdfReader.noAnnotations=Create an annotation to see it in the sidebar
pdfReader.addText=Add extracted text pdfReader.addText=Add extracted text
pdfReader.addComment=Add comment pdfReader.addComment=Add comment
pdfReader.addTags=Add tags… pdfReader.addTags=Add tags…
pdfReader.highlightText=Highlight Text pdfReader.highlightText=Zvýraznit text
pdfReader.addNote=Add Note pdfReader.addNote=Přidat poznámku
pdfReader.selectArea=Select Area pdfReader.selectArea=Select Area
pdfReader.pickColor=Pick a Color pdfReader.pickColor=Pick a Color
pdfReader.addToNote=Add to Note pdfReader.addToNote=Přidat do poznámky
pdfReader.zoomIn=Zoom In pdfReader.zoomIn=Zoom In
pdfReader.zoomOut=Zoom Out pdfReader.zoomOut=Zoom Out
pdfReader.zoomAuto=Automatically Resize pdfReader.zoomAuto=Automatically Resize
@ -1375,18 +1367,23 @@ pdfReader.zoomPageWidth=Zoom to Page Width
pdfReader.zoomPageHeight=Zoom to Page Height pdfReader.zoomPageHeight=Zoom to Page Height
pdfReader.nextPage=Next Page pdfReader.nextPage=Next Page
pdfReader.previousPage=Previous Page pdfReader.previousPage=Previous Page
pdfReader.page=Page pdfReader.page=Stránka
pdfReader.readOnly=Read-only pdfReader.readOnly=Read-only
pdfReader.promptTransferFromPDF.title=Import Annotations pdfReader.promptTransferFromPDF.title=Importovat anotace
pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S. pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S.
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Uložit anotace v souboru
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:
pdfReader.thisAnnotation=This annotation pdfReader.thisAnnotation=Tato anotace
pdfReader.selectedAnnotations=Selected annotations pdfReader.selectedAnnotations=Vybrané anotace
pdfReader.thisPage=This page pdfReader.thisPage=This page
pdfReader.thisPageAndLaterPages=This page and later pages pdfReader.thisPageAndLaterPages=This page and later pages
pdfReader.allPages=All pages pdfReader.allPages=All pages

View file

@ -5,6 +5,12 @@
"general_done": { "general_done": {
"message": "Færdig" "message": "Færdig"
}, },
"general_yes": {
"message": "Ja"
},
"general_no": {
"message": "Nej"
},
"general_tryAgain": { "general_tryAgain": {
"message": "Prøv igen" "message": "Prøv igen"
}, },
@ -14,6 +20,9 @@
"general_cancel": { "general_cancel": {
"message": "Annullér" "message": "Annullér"
}, },
"general_copyToClipboard": {
"message": "Kopiér til udklipsholderen"
},
"progressWindow_savingTo": { "progressWindow_savingTo": {
"message": "Gemmer i" "message": "Gemmer i"
}, },

View file

@ -6,14 +6,14 @@
<!ENTITY zotero.general.deselectAll "Fravælg alle"> <!ENTITY zotero.general.deselectAll "Fravælg alle">
<!ENTITY zotero.general.edit "Rediger"> <!ENTITY zotero.general.edit "Rediger">
<!ENTITY zotero.general.delete "Slet"> <!ENTITY zotero.general.delete "Slet">
<!ENTITY zotero.general.moveToTrash "Move to Trash"> <!ENTITY zotero.general.moveToTrash "Flyt til papirkurv">
<!ENTITY zotero.general.ok "OK"> <!ENTITY zotero.general.ok "OK">
<!ENTITY zotero.general.cancel "Annullér"> <!ENTITY zotero.general.cancel "Annullér">
<!ENTITY zotero.general.refresh "Opdatér"> <!ENTITY zotero.general.refresh "Opdatér">
<!ENTITY zotero.general.saveAs "Gem som..."> <!ENTITY zotero.general.saveAs "Gem som...">
<!ENTITY zotero.general.options "Indstillinger"> <!ENTITY zotero.general.options "Indstillinger">
<!ENTITY zotero.general.advancedOptions.label "Avancerede indstillinger"> <!ENTITY zotero.general.advancedOptions.label "Avancerede indstillinger">
<!ENTITY zotero.general.tools "Tools"> <!ENTITY zotero.general.tools "Værktøj">
<!ENTITY zotero.general.more "Mere"> <!ENTITY zotero.general.more "Mere">
<!ENTITY zotero.general.loading "Indlæser..."> <!ENTITY zotero.general.loading "Indlæser...">
<!ENTITY zotero.general.close "Luk"> <!ENTITY zotero.general.close "Luk">
@ -21,7 +21,7 @@
<!ENTITY zotero.general.other "Andet..."> <!ENTITY zotero.general.other "Andet...">
<!ENTITY zotero.general.bigger "Bigger"> <!ENTITY zotero.general.bigger "Bigger">
<!ENTITY zotero.general.smaller "Smaller"> <!ENTITY zotero.general.smaller "Smaller">
<!ENTITY zotero.general.reset "Reset"> <!ENTITY zotero.general.reset "Nulstil">
<!ENTITY zotero.errorReport.title "Zotero fejlrapport"> <!ENTITY zotero.errorReport.title "Zotero fejlrapport">
@ -128,8 +128,8 @@
<!ENTITY zotero.toolbar.attachment.add "Gem kopi af filen..."> <!ENTITY zotero.toolbar.attachment.add "Gem kopi af filen...">
<!ENTITY zotero.toolbar.attachment.weblink "Gem link til den aktuelle side"> <!ENTITY zotero.toolbar.attachment.weblink "Gem link til den aktuelle side">
<!ENTITY zotero.toolbar.attachment.snapshot "Tag kopi af den aktuelle side"> <!ENTITY zotero.toolbar.attachment.snapshot "Tag kopi af den aktuelle side">
<!ENTITY zotero.toolbar.context.item "Item"> <!ENTITY zotero.toolbar.context.item "Element">
<!ENTITY zotero.toolbar.context.notes "Notes"> <!ENTITY zotero.toolbar.context.notes "Noter">
<!ENTITY zotero.tagSelector.noTagsToDisplay "Der er ingen mærker at vise"> <!ENTITY zotero.tagSelector.noTagsToDisplay "Der er ingen mærker at vise">
<!ENTITY zotero.tagSelector.loadingTags "Indlæser mærker..."> <!ENTITY zotero.tagSelector.loadingTags "Indlæser mærker...">
@ -150,7 +150,7 @@
<!ENTITY zotero.lookup.description "Enter ISBNs, DOIs, PMIDs, arXiv IDs, or ADS Bibcodes to add to your library:"> <!ENTITY zotero.lookup.description "Enter ISBNs, DOIs, PMIDs, arXiv IDs, or ADS Bibcodes to add to your library:">
<!ENTITY zotero.lookup.button.search "Søg"> <!ENTITY zotero.lookup.button.search "Søg">
<!ENTITY zotero.createParent.title "Create Parent Item"> <!ENTITY zotero.createParent.title "Opret moder-element">
<!ENTITY zotero.createParent.button.manual "Manual Entry"> <!ENTITY zotero.createParent.button.manual "Manual Entry">
<!ENTITY zotero.selectitems.title "Vælg elementer"> <!ENTITY zotero.selectitems.title "Vælg elementer">
@ -307,7 +307,7 @@
<!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations"> <!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations">
<!ENTITY zotero.context.editInWindow "Edit in a Separate Window"> <!ENTITY zotero.context.editInWindow "Edit in a Separate Window">
<!ENTITY zotero.pdfReader.firstPage "First Page"> <!ENTITY zotero.pdfReader.firstPage "Første side">
<!ENTITY zotero.pdfReader.lastPage "Last Page"> <!ENTITY zotero.pdfReader.lastPage "Last Page">
<!ENTITY zotero.pdfReader.back "Back"> <!ENTITY zotero.pdfReader.back "Back">
<!ENTITY zotero.pdfReader.forward "Forward"> <!ENTITY zotero.pdfReader.forward "Forward">

View file

@ -45,14 +45,14 @@ general.character.plural=tegn
general.create=Opret general.create=Opret
general.delete=Slet general.delete=Slet
general.remove=Fjern general.remove=Fjern
general.import=Import general.import=Importér
general.export=Export general.export=Eksportér
general.update=Update general.update=Update
general.moreInformation=Mere information general.moreInformation=Mere information
general.learnMore=Learn More general.learnMore=Learn More
general.seeForMoreInformation=Se %S for nærmere oplysninger. general.seeForMoreInformation=Se %S for nærmere oplysninger.
general.open=Åbn %S general.open=Åbn %S
general.close=Close general.close=Luk
general.enable=Slå til general.enable=Slå til
general.disable=Slå fra general.disable=Slå fra
general.reset=Nulstil general.reset=Nulstil
@ -71,9 +71,9 @@ general.fix=Løs...
general.tryAgain=Prøv igen general.tryAgain=Prøv igen
general.tryLater=Prøv igen senere general.tryLater=Prøv igen senere
general.showDirectory=Vis mappe general.showDirectory=Vis mappe
general.showInLibrary=Show in Library general.showInLibrary=Vis i bibliotek
general.continue=Fortsæt general.continue=Fortsæt
general.copy=Copy general.copy=Kopier
general.copyToClipboard=Kopiér til udklipsholderen general.copyToClipboard=Kopiér til udklipsholderen
general.cancel=Annullér general.cancel=Annullér
general.clear=Ryd general.clear=Ryd
@ -89,7 +89,7 @@ general.back=Back
general.languages=Languages general.languages=Languages
general.default=Default general.default=Default
general.custom=Custom general.custom=Custom
general.loading=Loading… general.loading=Indlæser...
general.richText=Rich Text general.richText=Rich Text
general.clearSelection=Clear Selection general.clearSelection=Clear Selection
@ -327,6 +327,9 @@ pane.items.remove.multiple=Er du sikker på, du vil slette de valgte elementer f
pane.items.removeFromPublications.title=Fjern fra Mine publikationer pane.items.removeFromPublications.title=Fjern fra Mine publikationer
pane.items.removeFromPublications=Er du sikker på, du vil slette det valgte element fra Mine publikationer? pane.items.removeFromPublications=Er du sikker på, du vil slette det valgte element fra Mine publikationer?
pane.items.removeFromPublications.multiple=Er du sikker på, du vil slette det valgte element fra Mine publikationer? pane.items.removeFromPublications.multiple=Er du sikker på, du vil slette det valgte element fra Mine publikationer?
pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.menu.addNoteFromAnnotations=Add Note from Annotations
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=Find tilgængelig PDF pane.items.menu.findAvailablePDF=Find tilgængelig PDF
@ -338,11 +341,13 @@ pane.items.menu.removeFromPublications=Fjern element fra Mine publikationer...
pane.items.menu.removeFromPublications.multiple=Fjern elementer fra Mine publikationer... pane.items.menu.removeFromPublications.multiple=Fjern elementer fra Mine publikationer...
pane.items.menu.moveToTrash=Flyt element til papirkurven... pane.items.menu.moveToTrash=Flyt element til papirkurven...
pane.items.menu.moveToTrash.multiple=Flyt elementer til papirkurven... pane.items.menu.moveToTrash.multiple=Flyt elementer til papirkurven...
pane.items.menu.delete=Delete Permanently… pane.items.menu.delete=Slet permanent...
pane.items.menu.export=Eksportér dette element... pane.items.menu.export=Eksportér dette element...
pane.items.menu.export.multiple=Eksportér disse elementer... pane.items.menu.export.multiple=Eksportér disse elementer...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Dan en referenceliste ud fra element... pane.items.menu.createBib=Dan en referenceliste ud fra element...
pane.items.menu.createBib.multiple=Dan en referenceliste ud fra elementer... pane.items.menu.createBib.multiple=Dan en referenceliste ud fra elementer...
pane.items.menu.generateReport=Opret rapport ud fra element... pane.items.menu.generateReport=Opret rapport ud fra element...
@ -352,9 +357,11 @@ pane.items.menu.reindexItem.multiple=Indeksér elementer igen
pane.items.menu.recognizePDF=Hent metadata for pdf-filen. pane.items.menu.recognizePDF=Hent metadata for pdf-filen.
pane.items.menu.recognizePDF.multiple=Hent metadata for pdf-filerne pane.items.menu.recognizePDF.multiple=Hent metadata for pdf-filerne
pane.items.menu.createParent=Create Parent Item… pane.items.menu.createParent=Create Parent Item…
pane.items.menu.createParent.multiple=Create Parent Items pane.items.menu.createParent.multiple=Opret moder-elementer
pane.items.menu.renameAttachments=Omdøb fil fra moder-metadata pane.items.menu.renameAttachments=Omdøb fil fra moder-metadata
pane.items.menu.renameAttachments.multiple=Omdøb filer fra moder-metadata pane.items.menu.renameAttachments.multiple=Omdøb filer fra moder-metadata
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Vis element i Bibliotek pane.items.showItemInLibrary=Vis element i Bibliotek
pane.items.letter.oneParticipant=Brev til %S pane.items.letter.oneParticipant=Brev til %S
@ -404,8 +411,8 @@ pane.item.attachments.rename.error=Der opstod en fejl under omdøbningen af file
pane.item.attachments.fileNotFound.title=Fil ikke fundet pane.item.attachments.fileNotFound.title=Fil ikke fundet
pane.item.attachments.fileNotFound.text1=Den vedhæftede fil kunne ikke findes. pane.item.attachments.fileNotFound.text1=Den vedhæftede fil kunne ikke findes.
pane.item.attachments.fileNotFound.text1.path=The attached file could not be found at the following path: pane.item.attachments.fileNotFound.text1.path=The attached file could not be found at the following path:
pane.item.attachments.fileNotFound.text2.stored=It may have been moved or deleted outside of %1$S, or, if the file was added on another computer, it may not yet have been synced to or from %2$S. pane.item.attachments.fileNotFound.text2.stored=Den kan være blevet slettet eller flyttet uden for %1$S eller, hvis filen blev tilføjet på en anden computer, er den måske endnu ikke blevet synkroniseret til eller fra %2$S.
pane.item.attachments.fileNotFound.text2.stored.notOnServer=It may have been moved or deleted outside of %1$S, or, if the file was added on another computer, it may not yet have been synced to %2$S. pane.item.attachments.fileNotFound.text2.stored.notOnServer=Den kan være blevet slettet eller flyttet uden for %1$S eller, hvis filen blev tilføjet på en anden computer, er den måske endnu ikke blevet synkroniseret til eller fra %2$S.
pane.item.attachments.fileNotFound.text2.linked=It may have been moved or deleted outside of %1$S, or a Linked Attachment Base Directory may be set incorrectly on one of your computers. pane.item.attachments.fileNotFound.text2.linked=It may have been moved or deleted outside of %1$S, or a Linked Attachment Base Directory may be set incorrectly on one of your computers.
pane.item.attachments.delete.confirm=Er du sikker på, du vil slette denne vedhæftning ? pane.item.attachments.delete.confirm=Er du sikker på, du vil slette denne vedhæftning ?
pane.item.attachments.count.zero=%S vedhæftninger: pane.item.attachments.count.zero=%S vedhæftninger:
@ -430,7 +437,7 @@ pane.item.related.count.zero=%S relaterede:
pane.item.related.count.singular=%S relateret: pane.item.related.count.singular=%S relateret:
pane.item.related.count.plural=%S relaterede: pane.item.related.count.plural=%S relaterede:
pane.item.parentItem=Overordnet element: pane.item.parentItem=Overordnet element:
pane.item.viewOnline.tooltip=Go to this item online pane.item.viewOnline.tooltip=Gå til dette element online
pane.context.noParent=No parent item pane.context.noParent=No parent item
pane.context.itemNotes=Item Notes pane.context.itemNotes=Item Notes
@ -438,7 +445,7 @@ pane.context.allNotes=All Notes
pane.context.noNotes=No notes pane.context.noNotes=No notes
itemTypes.note=Note itemTypes.note=Note
itemTypes.annotation=Annotation itemTypes.annotation=Annotering
itemTypes.attachment=Vedhæftning itemTypes.attachment=Vedhæftning
itemTypes.book=Bog itemTypes.book=Bog
itemTypes.bookSection=Bidrag til bog itemTypes.bookSection=Bidrag til bog
@ -864,22 +871,7 @@ citation.showEditor=Vis redaktør...
citation.hideEditor=Skjul redaktør... citation.hideEditor=Skjul redaktør...
citation.citations=Henvisninger citation.citations=Henvisninger
citation.notes=Noter citation.notes=Noter
citation.locator.page=Side citation.locator.timestamp=Timestamp
citation.locator.book=Bog
citation.locator.chapter=Kapitel
citation.locator.column=Spalte
citation.locator.figure=Figur
citation.locator.folio=Folio
citation.locator.issue=Nummer
citation.locator.line=Linje
citation.locator.note=Note
citation.locator.opus=Værk
citation.locator.paragraph=Afsnit
citation.locator.part=Del
citation.locator.section=Afsnit
citation.locator.subverbo=Under ordet
citation.locator.volume=Bind
citation.locator.verse=Vers
report.title.default=Zotero-rapport report.title.default=Zotero-rapport
report.parentItem=Overordnet element: report.parentItem=Overordnet element:
@ -1005,7 +997,7 @@ sync.skipGroup=Spring gruppe over
sync.removeGroupsAndSync=Fjern grupper og synkronisering sync.removeGroupsAndSync=Fjern grupper og synkronisering
sync.reminder.setUp.message=Back up your library with %S syncing. sync.reminder.setUp.message=Back up your library with %S syncing.
sync.reminder.setUp.action=Set Up Syncing sync.reminder.setUp.action=Indstil synkronisering
sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing? sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing?
sync.error.usernameNotSet=Brugernavn ikke angivet sync.error.usernameNotSet=Brugernavn ikke angivet
@ -1293,9 +1285,9 @@ retraction.citationWarning=A citation in your document has been retracted:
retraction.citationWarning.dontWarn=Don’t warn me about this item again retraction.citationWarning.dontWarn=Don’t warn me about this item again
noteEditor.annotationsDateLine=(%S) noteEditor.annotationsDateLine=(%S)
noteEditor.cut=Cut noteEditor.cut=Klip
noteEditor.copy=Copy noteEditor.copy=Kopier
noteEditor.paste=Paste noteEditor.paste=Indsæt
noteEditor.rightToLeft=Right to Left noteEditor.rightToLeft=Right to Left
noteEditor.leftToRight=Left to Right noteEditor.leftToRight=Left to Right
noteEditor.updateNotice=This note was edited with a newer version of %1$S.\nPlease update %1$S to make changes. noteEditor.updateNotice=This note was edited with a newer version of %1$S.\nPlease update %1$S to make changes.
@ -1303,20 +1295,20 @@ noteEditor.enterLink=Enter Link
noteEditor.heading1=Heading 1 noteEditor.heading1=Heading 1
noteEditor.heading2=Heading 2 noteEditor.heading2=Heading 2
noteEditor.heading3=Heading 3 noteEditor.heading3=Heading 3
noteEditor.paragraph=Paragraph noteEditor.paragraph=Afsnit
noteEditor.monospaced=Monospaced noteEditor.monospaced=Monospaced
noteEditor.bulletList=Bulleted List noteEditor.bulletList=Bulleted List
noteEditor.orderedList=Numbered List noteEditor.orderedList=Numbered List
noteEditor.blockquote=Block Quote noteEditor.blockquote=Block Quote
noteEditor.formatText=Format Text noteEditor.formatText=Format Text
noteEditor.highlightText=Highlight Text noteEditor.highlightText=Marker tekst
noteEditor.removeColor=Remove Color noteEditor.removeColor=Fjern farve
noteEditor.bold=Bold noteEditor.bold=Fed
noteEditor.italic=Italic noteEditor.italic=Kursiv
noteEditor.underline=Underline noteEditor.underline=Understreg
noteEditor.strikethrough=Strikethrough noteEditor.strikethrough=Strikethrough
noteEditor.subscript=Subscript noteEditor.subscript=Sænket skrift
noteEditor.superscript=Superscript noteEditor.superscript=Hævet skrift
noteEditor.returnToNotesList=Return to Notes List noteEditor.returnToNotesList=Return to Notes List
noteEditor.insertLink=Insert Link noteEditor.insertLink=Insert Link
noteEditor.clearFormatting=Clear Formatting noteEditor.clearFormatting=Clear Formatting
@ -1325,7 +1317,7 @@ noteEditor.alignLeft=Align Left
noteEditor.alignCenter=Align Center noteEditor.alignCenter=Align Center
noteEditor.alignRight=Align Right noteEditor.alignRight=Align Right
noteEditor.insertCitation=Insert Citation noteEditor.insertCitation=Insert Citation
noteEditor.more=More noteEditor.more=Mere
noteEditor.find=Find noteEditor.find=Find
noteEditor.replace=Replace noteEditor.replace=Replace
noteEditor.previous=Previous noteEditor.previous=Previous
@ -1338,7 +1330,7 @@ noteEditor.editCitation=Edit Citation
noteEditor.showOnPage=Show on Page noteEditor.showOnPage=Show on Page
noteEditor.unlink=Unlink noteEditor.unlink=Unlink
noteEditor.set=Set noteEditor.set=Set
noteEditor.edit=Edit noteEditor.edit=Rediger
noteEditor.addCitation=Add Citation noteEditor.addCitation=Add Citation
noteEditor.removeCitation=Hide Citation noteEditor.removeCitation=Hide Citation
noteEditor.findAndReplace=Find and Replace noteEditor.findAndReplace=Find and Replace
@ -1363,8 +1355,8 @@ pdfReader.noAnnotations=Create an annotation to see it in the sidebar
pdfReader.addText=Add extracted text pdfReader.addText=Add extracted text
pdfReader.addComment=Add comment pdfReader.addComment=Add comment
pdfReader.addTags=Add tags… pdfReader.addTags=Add tags…
pdfReader.highlightText=Highlight Text pdfReader.highlightText=Marker tekst
pdfReader.addNote=Add Note pdfReader.addNote=Tilføj note
pdfReader.selectArea=Select Area pdfReader.selectArea=Select Area
pdfReader.pickColor=Pick a Color pdfReader.pickColor=Pick a Color
pdfReader.addToNote=Add to Note pdfReader.addToNote=Add to Note
@ -1375,13 +1367,18 @@ pdfReader.zoomPageWidth=Zoom to Page Width
pdfReader.zoomPageHeight=Zoom to Page Height pdfReader.zoomPageHeight=Zoom to Page Height
pdfReader.nextPage=Next Page pdfReader.nextPage=Next Page
pdfReader.previousPage=Previous Page pdfReader.previousPage=Previous Page
pdfReader.page=Page pdfReader.page=Side
pdfReader.readOnly=Read-only pdfReader.readOnly=Read-only
pdfReader.promptTransferFromPDF.title=Import Annotations pdfReader.promptTransferFromPDF.title=Import Annotations
pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S. pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S.
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

View file

@ -311,8 +311,8 @@
<!ENTITY zotero.pdfReader.lastPage "Letzte Seite"> <!ENTITY zotero.pdfReader.lastPage "Letzte Seite">
<!ENTITY zotero.pdfReader.back "Zurück"> <!ENTITY zotero.pdfReader.back "Zurück">
<!ENTITY zotero.pdfReader.forward "Vorwärts"> <!ENTITY zotero.pdfReader.forward "Vorwärts">
<!ENTITY zotero.pdfReader.rotateClockwise "Drehe im Uhrzeigersinn"> <!ENTITY zotero.pdfReader.rotateClockwise "Im Uhrzeigersinn drehen">
<!ENTITY zotero.pdfReader.rotateCounterclockwise "Drehe gegen den Uhrzeigersinn"> <!ENTITY zotero.pdfReader.rotateCounterclockwise "Gegen den Uhrzeigersinn drehen">
<!ENTITY zotero.pdfReader.handTool "Hand-Werkzeug"> <!ENTITY zotero.pdfReader.handTool "Hand-Werkzeug">
<!ENTITY zotero.pdfReader.verticalScrolling "Vertikale Seitenanordnung"> <!ENTITY zotero.pdfReader.verticalScrolling "Vertikale Seitenanordnung">
<!ENTITY zotero.pdfReader.horizontalScrolling "Horizontale Seitenanordnung"> <!ENTITY zotero.pdfReader.horizontalScrolling "Horizontale Seitenanordnung">

View file

@ -157,7 +157,7 @@ attachmentBasePath.clearBasePath.title=Auf absolute Pfade zurücksetzen
attachmentBasePath.clearBasePath.message=Neue verlinkte Dateianhänge werden mit absoluten Pfaden gespeichert. attachmentBasePath.clearBasePath.message=Neue verlinkte Dateianhänge werden mit absoluten Pfaden gespeichert.
attachmentBasePath.clearBasePath.existingAttachments.singular=Ein Dateianhang im alten Basisverzeichnis wird zu einem absoluten Pfad konvertiert attachmentBasePath.clearBasePath.existingAttachments.singular=Ein Dateianhang im alten Basisverzeichnis wird zu einem absoluten Pfad konvertiert
attachmentBasePath.clearBasePath.existingAttachments.plural=%S Dateinanhänge im alten Basisverzeichnis werden zu absoluten Pfaden konvertiert attachmentBasePath.clearBasePath.existingAttachments.plural=%S Dateinanhänge im alten Basisverzeichnis werden zu absoluten Pfaden konvertiert
attachmentBasePath.clearBasePath.button=Basisverzeichnis Einstellungen löschen attachmentBasePath.clearBasePath.button=Basisverzeichnis-Einstellungen löschen
dataDir.dirCannotBeCreated=Das %S-Datenverzeichnis (%S) kann nicht erstellt werden. dataDir.dirCannotBeCreated=Das %S-Datenverzeichnis (%S) kann nicht erstellt werden.
dataDir.checkDirWriteAccess=Stellen Sie sicher, dass Sie Schreibberechtigungen für dieses Verzeichnis haben, und, dass Sicherheitssoftware das Schreiben von %S auf der Festplatte nicht verhindert. dataDir.checkDirWriteAccess=Stellen Sie sicher, dass Sie Schreibberechtigungen für dieses Verzeichnis haben, und, dass Sicherheitssoftware das Schreiben von %S auf der Festplatte nicht verhindert.
@ -171,17 +171,17 @@ dataDir.useNewLocation=Neuen Ort verwenden
dataDir.previousDir=Vorheriger Ordner: dataDir.previousDir=Vorheriger Ordner:
dataDir.default=Standard (%S) dataDir.default=Standard (%S)
dataDir.useDefaultLocation=Standardverzeichnis benutzen dataDir.useDefaultLocation=Standardverzeichnis benutzen
dataDir.selectDir=Zotero-Daten-Ordner auswählen dataDir.selectDir=Zotero-Datenverzeichnis auswählen
dataDir.selectNewDir=Wählen Sie ein neues %S Daten-Verzeichnis dataDir.selectNewDir=Wählen Sie ein neues %S Datenverzeichnis
dataDir.changeDataDirectory=Datenverzeichnis ändern... dataDir.changeDataDirectory=Datenverzeichnis ändern...
dataDir.chooseNewDataDirectory=Wählen Sie das neue Daten-Verzeichnis dataDir.chooseNewDataDirectory=Wählen Sie das neue Datenverzeichnis
dataDir.cannotBeSetWithAlternative=Das Daten-Verzeichnis kann nicht auf ein "%S"-Verzeichnis gesetzt werden. Meinten Sie %S? dataDir.cannotBeSetWithAlternative=Das Daten-Verzeichnis kann nicht auf ein "%S"-Verzeichnis gesetzt werden. Meinten Sie %S?
dataDir.cannotBeLinkedAttachmentBaseDirectory=Das Daten-Verzeichnis kann nicht auf den gleichen Speicherort wie das Basisverzeichnis für verlinkte Anhänge eingestellt werden. dataDir.cannotBeLinkedAttachmentBaseDirectory=Das Daten-Verzeichnis kann nicht auf den gleichen Speicherort wie das Basisverzeichnis für verlinkte Anhänge eingestellt werden.
dataDir.unsafeLocation.selected.cloud=Das Speichern des Daten-Verzeichnisses in einem Cloud-Verzeichnis führt mit hoher Wahrscheinlichkeit zu einer Beschädigung Ihrer Datenbank. dataDir.unsafeLocation.selected.cloud=Das Speichern des Daten-Verzeichnisses in einem Cloud-Verzeichnis führt mit hoher Wahrscheinlichkeit zu einer Beschädigung Ihrer Datenbank.
dataDir.unsafeLocation.selected.areYouSure=Sind Sie sicher, dass Sie diesen Speicherort nutzen möchten? dataDir.unsafeLocation.selected.areYouSure=Sind Sie sicher, dass Sie diesen Speicherort nutzen möchten?
dataDir.unsafeLocation.existing.cloud=Ihr %S-Daten-Verzeichnis scheint in einem Cloud-Speicherordner zu liegen, was mit hoher Wahrscheinlichkeit zu einer Beschädigung Ihrer Datenbank führt. dataDir.unsafeLocation.existing.cloud=Ihr %S-Daten-Verzeichnis scheint in einem Cloud-Speicherordner zu liegen, was mit hoher Wahrscheinlichkeit zu einer Beschädigung Ihrer Datenbank führt.
dataDir.unsafeLocation.existing.chooseDifferent=Möchten Sie ein anderes Verzeichnis wählen? dataDir.unsafeLocation.existing.chooseDifferent=Möchten Sie ein anderes Verzeichnis wählen?
dataDir.selectedDirNonEmpty.title=Ordner nicht leer dataDir.selectedDirNonEmpty.title=Verzeichnis nicht leer
dataDir.selectedDirNonEmpty.text=Der Ordner, den Sie ausgewählt haben, ist nicht leer und scheint kein Zotero-Daten-Verzeichnis zu sein.\n\nDie Zotero-Dateien trotzdem in diesem Ordner anlegen? dataDir.selectedDirNonEmpty.text=Der Ordner, den Sie ausgewählt haben, ist nicht leer und scheint kein Zotero-Daten-Verzeichnis zu sein.\n\nDie Zotero-Dateien trotzdem in diesem Ordner anlegen?
dataDir.mustSelectEmpty.title=Verzeichnis ist nicht leer dataDir.mustSelectEmpty.title=Verzeichnis ist nicht leer
dataDir.mustSelectEmpty.text=Das Verzeichnis, das Sie ausgewählt haben, ist nicht leer. Sie müssen ein leeres Verzeichnis auswählen um fortzufahren. dataDir.mustSelectEmpty.text=Das Verzeichnis, das Sie ausgewählt haben, ist nicht leer. Sie müssen ein leeres Verzeichnis auswählen um fortzufahren.
@ -189,7 +189,7 @@ dataDir.selectedDirEmpty.title=Verzeichnis ist leer
dataDir.selectedDirEmpty.text=Das ausgewählte Verzeichnis ist leer. Um ein bestehendes Zotero Datenverzeichnis zu verschieben, müssen Sie die Dateien manuell aus dem bestehenden Verzeichnis an den neuen Speicherort verschieben, nachdem %1$S geschlossen wurde. dataDir.selectedDirEmpty.text=Das ausgewählte Verzeichnis ist leer. Um ein bestehendes Zotero Datenverzeichnis zu verschieben, müssen Sie die Dateien manuell aus dem bestehenden Verzeichnis an den neuen Speicherort verschieben, nachdem %1$S geschlossen wurde.
dataDir.selectedDirEmpty.useNewDir=Das neue Verzeichnis verwenden? dataDir.selectedDirEmpty.useNewDir=Das neue Verzeichnis verwenden?
dataDir.moveFilesToNewLocation=Sie sollten die Dateien aus Ihrem Zotero-Datenverzeichnis an den neuen Speicherort verschieben, bevor Sie %1$S erneut öffnen. dataDir.moveFilesToNewLocation=Sie sollten die Dateien aus Ihrem Zotero-Datenverzeichnis an den neuen Speicherort verschieben, bevor Sie %1$S erneut öffnen.
dataDir.incompatibleDbVersion.title=Datenbank Version ist nicht kompatibel dataDir.incompatibleDbVersion.title=Datenbankversion ist nicht kompatibel
dataDir.incompatibleDbVersion.text=Das ausgewählte Datenverzeichnis ist zu alt um dies mit dieser Version von Zotero zu nutzen. Führen sie zuerst ein Upgrade des Datenverzeichnis unter Zuhilfenahme von Zotero 4.0 für Firefox durch, oder wählen sie ein anderes Datenverzeichnis für Zotero aus. dataDir.incompatibleDbVersion.text=Das ausgewählte Datenverzeichnis ist zu alt um dies mit dieser Version von Zotero zu nutzen. Führen sie zuerst ein Upgrade des Datenverzeichnis unter Zuhilfenahme von Zotero 4.0 für Firefox durch, oder wählen sie ein anderes Datenverzeichnis für Zotero aus.
dataDir.migration.inProgress=Datenmigration wird durchgeführt... dataDir.migration.inProgress=Datenmigration wird durchgeführt...
dataDir.migration.failure.title=Fehler bei der Migration des Datenverzeichnis dataDir.migration.failure.title=Fehler bei der Migration des Datenverzeichnis
@ -201,7 +201,7 @@ dataDir.migration.failure.partial.showDirectoriesAndQuit=Verzeichnisse anzeigen
dataDir.migration.failure.full.automatic.text1=%S hat versucht das Daten-Verzeichnis in ein neues Standard-Verzeichnis zu verschieben, aber die Migration konnte nicht abgeschlossen werden. dataDir.migration.failure.full.automatic.text1=%S hat versucht das Daten-Verzeichnis in ein neues Standard-Verzeichnis zu verschieben, aber die Migration konnte nicht abgeschlossen werden.
dataDir.migration.failure.full.automatic.text2=Es ist empfohlen, dass Sie %S schließen und manuell das Datenverzeichnis verschieben. dataDir.migration.failure.full.automatic.text2=Es ist empfohlen, dass Sie %S schließen und manuell das Datenverzeichnis verschieben.
dataDir.migration.failure.full.automatic.newDirOnDifferentDrive=%S hat versucht das Daten-Verzeichnis in ein neues Standard-Verzeichnis zu verschieben, aber das alte Verzeichnis befindet sich auf einer anderen Festplatte und kann nicht automatisch migriert werden. dataDir.migration.failure.full.automatic.newDirOnDifferentDrive=%S hat versucht das Daten-Verzeichnis in ein neues Standard-Verzeichnis zu verschieben, aber das alte Verzeichnis befindet sich auf einer anderen Festplatte und kann nicht automatisch migriert werden.
dataDir.migration.failure.full.manual.text1=Der %S Daten-Ordner konnte nicht migriert werden. dataDir.migration.failure.full.manual.text1=Das %S Datenverzeichnis konnte nicht migriert werden.
dataDir.migration.failure.full.manual.text2=Es ist empfohlen, dass Sie %S schließen und manuell das Datenverzeichnis an den neuen Standard-Speicherort verschieben. dataDir.migration.failure.full.manual.text2=Es ist empfohlen, dass Sie %S schließen und manuell das Datenverzeichnis an den neuen Standard-Speicherort verschieben.
dataDir.migration.failure.full.firefoxOpen=Das Datenverzeichnis kann nicht migriert werden, während Zotero für Firefox offen ist. Bitte schließen Sie Firefox und versuchen Sie es erneut. dataDir.migration.failure.full.firefoxOpen=Das Datenverzeichnis kann nicht migriert werden, während Zotero für Firefox offen ist. Bitte schließen Sie Firefox und versuchen Sie es erneut.
dataDir.migration.failure.full.current=Aktuelles Verzeichnis: %S dataDir.migration.failure.full.current=Aktuelles Verzeichnis: %S
@ -295,7 +295,7 @@ pane.tagSelector.rename.message=Bitte geben Sie einen neuen Namen für dieses Ta
pane.tagSelector.delete.title=Tag löschen pane.tagSelector.delete.title=Tag löschen
pane.tagSelector.delete.message=Sind Sie sicher, dass Sie dieses Tag löschen wollen?\n\nDas Tag wird aus allen Einträgen entfernt werden. pane.tagSelector.delete.message=Sind Sie sicher, dass Sie dieses Tag löschen wollen?\n\nDas Tag wird aus allen Einträgen entfernt werden.
pane.tagSelector.deleteAutomatic.title=Lösche automatische Tags... pane.tagSelector.deleteAutomatic.title=Lösche automatische Tags...
pane.tagSelector.deleteAutomatic.message=Sind Sie sicher dass Sie %1$S automatisches Tag in dieser Bibliothek löschen wollen?;Sind Sie sicher dass Sie %1$S automatische Tags in dieser Bibliothek löschen wollen? pane.tagSelector.deleteAutomatic.message=Sind Sie sicher, dass Sie %1$S automatisches Tag in dieser Bibliothek löschen wollen?;Sind Sie sicher, dass Sie %1$S automatische Tags in dieser Bibliothek löschen wollen?
pane.tagSelector.numSelected.none=0 Tags ausgewählt pane.tagSelector.numSelected.none=0 Tags ausgewählt
pane.tagSelector.numSelected.singular=%S Tag ausgewählt pane.tagSelector.numSelected.singular=%S Tag ausgewählt
pane.tagSelector.numSelected.plural=%S Tags ausgewählt pane.tagSelector.numSelected.plural=%S Tags ausgewählt
@ -327,6 +327,9 @@ pane.items.remove.multiple=Sind Sie sicher, dass Sie die ausgewählten Einträge
pane.items.removeFromPublications.title=Bei Meine Veröffentlichungen löschen pane.items.removeFromPublications.title=Bei Meine Veröffentlichungen löschen
pane.items.removeFromPublications=Sind Sie sicher, dass Sie den ausgewählten Eintrag aus Meine Veröffentlichungen entfernen möchten? pane.items.removeFromPublications=Sind Sie sicher, dass Sie den ausgewählten Eintrag aus Meine Veröffentlichungen entfernen möchten?
pane.items.removeFromPublications.multiple=Sind Sie sicher, dass Sie die ausgewählten Einträge aus Meine Veröffentlichungen entfernen möchten? pane.items.removeFromPublications.multiple=Sind Sie sicher, dass Sie die ausgewählten Einträge aus Meine Veröffentlichungen entfernen möchten?
pane.items.removeRecursive.title=Aus Sammlung und Untersammlungen entfernen
pane.items.removeRecursive=Sind Sie sicher, dass Sie den ausgewählten Eintrag aus dieser Sammlung und allen Untersammlungen entfernen möchten?
pane.items.removeRecursive.multiple=Sind Sie sicher, dass Sie die ausgewählten Einträge aus dieser Sammlung und allen Untersammlungen entfernen möchten?
pane.items.menu.addNoteFromAnnotations=Notiz aus Anmerkungen hinzufügen pane.items.menu.addNoteFromAnnotations=Notiz aus Anmerkungen hinzufügen
pane.items.menu.addNoteFromAnnotations.multiple=Notizen aus Anmerkungen hinzufügen pane.items.menu.addNoteFromAnnotations.multiple=Notizen aus Anmerkungen hinzufügen
pane.items.menu.findAvailablePDF=Verfügbares PDF finden pane.items.menu.findAvailablePDF=Verfügbares PDF finden
@ -343,6 +346,8 @@ pane.items.menu.export=Exportieren...
pane.items.menu.export.multiple=Exportieren... pane.items.menu.export.multiple=Exportieren...
pane.items.menu.exportNote=Notiz exportieren… pane.items.menu.exportNote=Notiz exportieren…
pane.items.menu.exportNote.multiple=Notizen exportieren… pane.items.menu.exportNote.multiple=Notizen exportieren…
pane.items.menu.exportPDF=PDF exportieren…
pane.items.menu.exportPDF.multiple=PDFs exportieren…
pane.items.menu.createBib=Literaturverzeichnis erstellen pane.items.menu.createBib=Literaturverzeichnis erstellen
pane.items.menu.createBib.multiple=Literaturverzeichnis erstellen pane.items.menu.createBib.multiple=Literaturverzeichnis erstellen
pane.items.menu.generateReport=Bericht erstellen... pane.items.menu.generateReport=Bericht erstellen...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Übergeordneten Eintrag erstellen…
pane.items.menu.createParent.multiple=Übergeordnete Einträge erstellen pane.items.menu.createParent.multiple=Übergeordnete Einträge erstellen
pane.items.menu.renameAttachments=Datei nach Metadaten des übergeordneten Eintrags umbenennen pane.items.menu.renameAttachments=Datei nach Metadaten des übergeordneten Eintrags umbenennen
pane.items.menu.renameAttachments.multiple=Dateien nach Metadaten des übergeordneten Eintrags umbenennen pane.items.menu.renameAttachments.multiple=Dateien nach Metadaten des übergeordneten Eintrags umbenennen
pane.items.menu.duplicateAndConvert.toBookSection=Buchteil erstellen
pane.items.menu.duplicateAndConvert.toBook=Buch aus Buchteil erstellen
pane.items.showItemInLibrary=Eintrag in Bibliothek anzeigen pane.items.showItemInLibrary=Eintrag in Bibliothek anzeigen
pane.items.letter.oneParticipant=Brief an %S pane.items.letter.oneParticipant=Brief an %S
@ -590,7 +597,7 @@ itemFields.archive=Archiv
itemFields.attachmentPDF=PDF-Anhang itemFields.attachmentPDF=PDF-Anhang
itemFields.repository=Repositorium itemFields.repository=Repositorium
itemFields.archiveID=Archiv-ID itemFields.archiveID=Archiv-ID
itemFields.citationKey=Zitationsschlüssel itemFields.citationKey=Zitierschlüssel
creatorTypes.author=Autor creatorTypes.author=Autor
creatorTypes.contributor=Mitarbeiter creatorTypes.contributor=Mitarbeiter
@ -864,22 +871,7 @@ citation.showEditor=Editor anzeigen...
citation.hideEditor=Editor verbergen... citation.hideEditor=Editor verbergen...
citation.citations=Zitationen citation.citations=Zitationen
citation.notes=Fußnoten citation.notes=Fußnoten
citation.locator.page=Seite citation.locator.timestamp=Zeitstempel
citation.locator.book=Buch
citation.locator.chapter=Kapitel
citation.locator.column=Spalte
citation.locator.figure=Abbildung
citation.locator.folio=Folio
citation.locator.issue=Ausgabe
citation.locator.line=Zeile
citation.locator.note=Fußnote
citation.locator.opus=Opus
citation.locator.paragraph=Absatz
citation.locator.part=Teil
citation.locator.section=Abschnitt
citation.locator.subverbo=Sub voce
citation.locator.volume=Band
citation.locator.verse=Vers
report.title.default=Zotero-Bericht report.title.default=Zotero-Bericht
report.parentItem=Übergeordneter Eintrag: report.parentItem=Übergeordneter Eintrag:
@ -987,8 +979,8 @@ styles.installed=Der Stil "%S" wurde erfolgreich installiert.
styles.installError=%S scheint keine gültige Zitierstils-Datei zu sein. styles.installError=%S scheint keine gültige Zitierstils-Datei zu sein.
styles.validationWarning="%S" ist keine gültige CSL 1.0.2 Zitierstil-Datei, daher funktioniert sie möglicherweise nicht korrekt mit %S.\n\nMöchten Sie dennoch fortfahren? styles.validationWarning="%S" ist keine gültige CSL 1.0.2 Zitierstil-Datei, daher funktioniert sie möglicherweise nicht korrekt mit %S.\n\nMöchten Sie dennoch fortfahren?
styles.installSourceError=%1$S ruft eine ungültige oder nicht existierenden CSL-Datei unter %2$S als Quelle auf. styles.installSourceError=%1$S ruft eine ungültige oder nicht existierenden CSL-Datei unter %2$S als Quelle auf.
styles.deleteStyle=Sind Sie sicher, dass Sie den Stil "%1$S" löschen wollen? styles.deleteStyle=Sind Sie sicher, dass Sie den Stil "%1$S" löschen möchten?
styles.deleteStyles=Sind Sie sicher, dass Sie die ausgewählten Stile löschen wollen? styles.deleteStyles=Sind Sie sicher, dass Sie die ausgewählten Stile löschen möchten?
styles.abbreviations.title=Abkürzungen laden styles.abbreviations.title=Abkürzungen laden
styles.abbreviations.parseError=Die Kürzel-Datei "%1$S" ist nicht gültig gemäß JSON. styles.abbreviations.parseError=Die Kürzel-Datei "%1$S" ist nicht gültig gemäß JSON.
@ -1382,6 +1374,11 @@ pdfReader.promptTransferFromPDF.text=In der PDF-Datei gespeicherte Anmerkungen w
pdfReader.promptTransferToPDF.title=Anmerkungen in der Datei speichern pdfReader.promptTransferToPDF.title=Anmerkungen in der Datei speichern
pdfReader.promptTransferToPDF.text=Anmerkungen werden in die PDF-Datei übertragen und können nicht mehr in %S bearbeitet werden. pdfReader.promptTransferToPDF.text=Anmerkungen werden in die PDF-Datei übertragen und können nicht mehr in %S bearbeitet werden.
pdfReader.promptPasswordProtected=Dieser Vorgang wird für passwortgeschützte PDF-Dateien nicht unterstützt. pdfReader.promptPasswordProtected=Dieser Vorgang wird für passwortgeschützte PDF-Dateien nicht unterstützt.
pdfReader.promptDeletePages.title=Seiten löschen
pdfReader.promptDeletePages.text=Sind Sie sicher, dass Sie %1$S Seite aus der PDF-Datei löschen möchten?;Sind Sie sicher, dass Sie %1$S Seiten aus der PDF-Datei löschen möchten?
pdfReader.rotateLeft=Nach links drehen
pdfReader.rotateRight=Nach rechts drehen
pdfReader.rotate180=Um 180° drehen
pdfReader.editPageNumber=Seitenzahl bearbeiten… pdfReader.editPageNumber=Seitenzahl bearbeiten…
pdfReader.editHighlightedText=Hervorgehobenen Text bearbeiten pdfReader.editHighlightedText=Hervorgehobenen Text bearbeiten
pdfReader.pageNumberPopupHeader=Seitenzahl ändern für: pdfReader.pageNumberPopupHeader=Seitenzahl ändern für:

View file

@ -5,6 +5,12 @@
"general_done": { "general_done": {
"message": "Ολοκληρώθηκε" "message": "Ολοκληρώθηκε"
}, },
"general_yes": {
"message": "Ναι"
},
"general_no": {
"message": "Όχι"
},
"general_tryAgain": { "general_tryAgain": {
"message": "Ξαναπροσπάθηστε" "message": "Ξαναπροσπάθηστε"
}, },
@ -17,6 +23,9 @@
"general_pleaseWait": { "general_pleaseWait": {
"message": "Παρακαλώ περιμένετε..." "message": "Παρακαλώ περιμένετε..."
}, },
"general_copyToClipboard": {
"message": "Αντιγραφή στο Πρόχειρο"
},
"progressWindow_savingTo": { "progressWindow_savingTo": {
"message": "Αποθήκευση σε" "message": "Αποθήκευση σε"
}, },

View file

@ -6,7 +6,7 @@
<!ENTITY zotero.general.deselectAll "Αποεπιλογή όλων"> <!ENTITY zotero.general.deselectAll "Αποεπιλογή όλων">
<!ENTITY zotero.general.edit "Επεξεργασία"> <!ENTITY zotero.general.edit "Επεξεργασία">
<!ENTITY zotero.general.delete "Διαγραφή"> <!ENTITY zotero.general.delete "Διαγραφή">
<!ENTITY zotero.general.moveToTrash "Move to Trash"> <!ENTITY zotero.general.moveToTrash "Μετακίνηση στον Κάδο απορριμμάτων">
<!ENTITY zotero.general.ok "ΟΚ"> <!ENTITY zotero.general.ok "ΟΚ">
<!ENTITY zotero.general.cancel "Ακύρωση"> <!ENTITY zotero.general.cancel "Ακύρωση">
<!ENTITY zotero.general.refresh "Ανανέωση"> <!ENTITY zotero.general.refresh "Ανανέωση">
@ -128,8 +128,8 @@
<!ENTITY zotero.toolbar.attachment.add "Αποθήκευση αντιγράφου του αρχείου..."> <!ENTITY zotero.toolbar.attachment.add "Αποθήκευση αντιγράφου του αρχείου...">
<!ENTITY zotero.toolbar.attachment.weblink "Αποθήκευση Συνδέσμου στην Τρέχουσα Σελίδα"> <!ENTITY zotero.toolbar.attachment.weblink "Αποθήκευση Συνδέσμου στην Τρέχουσα Σελίδα">
<!ENTITY zotero.toolbar.attachment.snapshot "Λήψη Στιγμιότυπου της Τρέχουσας Σελίδας"> <!ENTITY zotero.toolbar.attachment.snapshot "Λήψη Στιγμιότυπου της Τρέχουσας Σελίδας">
<!ENTITY zotero.toolbar.context.item "Item"> <!ENTITY zotero.toolbar.context.item "Είδος">
<!ENTITY zotero.toolbar.context.notes "Notes"> <!ENTITY zotero.toolbar.context.notes "Σημείωση">
<!ENTITY zotero.tagSelector.noTagsToDisplay "Δεν υπάρχουν ετικέτες προς εμφάνιση"> <!ENTITY zotero.tagSelector.noTagsToDisplay "Δεν υπάρχουν ετικέτες προς εμφάνιση">
<!ENTITY zotero.tagSelector.loadingTags "Φόρτωση ετικετών..."> <!ENTITY zotero.tagSelector.loadingTags "Φόρτωση ετικετών...">
@ -307,7 +307,7 @@
<!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations"> <!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations">
<!ENTITY zotero.context.editInWindow "Edit in a Separate Window"> <!ENTITY zotero.context.editInWindow "Edit in a Separate Window">
<!ENTITY zotero.pdfReader.firstPage "First Page"> <!ENTITY zotero.pdfReader.firstPage "Πρώτη Σελίδα">
<!ENTITY zotero.pdfReader.lastPage "Last Page"> <!ENTITY zotero.pdfReader.lastPage "Last Page">
<!ENTITY zotero.pdfReader.back "Back"> <!ENTITY zotero.pdfReader.back "Back">
<!ENTITY zotero.pdfReader.forward "Forward"> <!ENTITY zotero.pdfReader.forward "Forward">

View file

@ -52,7 +52,7 @@ general.moreInformation=Περισσότερες πληροφορίες
general.learnMore=Learn More general.learnMore=Learn More
general.seeForMoreInformation=Για περισσότερες πληροφορίες δείτε %S. general.seeForMoreInformation=Για περισσότερες πληροφορίες δείτε %S.
general.open=Άνοιξε %S general.open=Άνοιξε %S
general.close=Close general.close=Κλείσιμο
general.enable=Ενεργοποίηση general.enable=Ενεργοποίηση
general.disable=Απενεργοποίηση general.disable=Απενεργοποίηση
general.reset=Επανεκκίνηση general.reset=Επανεκκίνηση
@ -71,9 +71,9 @@ general.fix=Διορθώσετε…
general.tryAgain=Προσπάθησε Πάλι general.tryAgain=Προσπάθησε Πάλι
general.tryLater=Προσπάθησε αργότερα general.tryLater=Προσπάθησε αργότερα
general.showDirectory=Εμφάνιση Καταλόγου general.showDirectory=Εμφάνιση Καταλόγου
general.showInLibrary=Show in Library general.showInLibrary=Εμφάνιση στην Βιβλιοθήκη
general.continue=Συνέχεια general.continue=Συνέχεια
general.copy=Copy general.copy=Αντιγραφή
general.copyToClipboard=Αντιγραφή στο Πρόχειρο general.copyToClipboard=Αντιγραφή στο Πρόχειρο
general.cancel=Άκυρο general.cancel=Άκυρο
general.clear=Καθαρισμός general.clear=Καθαρισμός
@ -89,7 +89,7 @@ general.back=Back
general.languages=Languages general.languages=Languages
general.default=Default general.default=Default
general.custom=Custom general.custom=Custom
general.loading=Loading… general.loading=Φόρτωση...
general.richText=Rich Text general.richText=Rich Text
general.clearSelection=Clear Selection general.clearSelection=Clear Selection
@ -327,6 +327,9 @@ pane.items.remove.multiple=Είστε βέβαιοι ότι θέλετε να κ
pane.items.removeFromPublications.title=Κατάργηση από τις Δημοσιεύσεις μου pane.items.removeFromPublications.title=Κατάργηση από τις Δημοσιεύσεις μου
pane.items.removeFromPublications=Είστε βέβαιοι ότι θέλετε να καταργήσετε το επιλεγμένο στοιχείο από τις Δημοσιεύσεις μου; pane.items.removeFromPublications=Είστε βέβαιοι ότι θέλετε να καταργήσετε το επιλεγμένο στοιχείο από τις Δημοσιεύσεις μου;
pane.items.removeFromPublications.multiple=Είστε βέβαιοι ότι θέλετε να καταργήσετε τα επιλεγμένα στοιχεία από τις Δημοσιεύσεις μου; pane.items.removeFromPublications.multiple=Είστε βέβαιοι ότι θέλετε να καταργήσετε τα επιλεγμένα στοιχεία από τις Δημοσιεύσεις μου;
pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.menu.addNoteFromAnnotations=Add Note from Annotations
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=Εύρεση διαθέσιμου αρχείου PDF pane.items.menu.findAvailablePDF=Εύρεση διαθέσιμου αρχείου PDF
@ -338,11 +341,13 @@ pane.items.menu.removeFromPublications=Κατάργηση αντικειμένο
pane.items.menu.removeFromPublications.multiple=Κατάργηση αντικειμένων από τις Δημοσιεύσεις μου… pane.items.menu.removeFromPublications.multiple=Κατάργηση αντικειμένων από τις Δημοσιεύσεις μου…
pane.items.menu.moveToTrash=Μετακίνηση στοιχείου στον Κάδο απορριμμάτων… pane.items.menu.moveToTrash=Μετακίνηση στοιχείου στον Κάδο απορριμμάτων…
pane.items.menu.moveToTrash.multiple=Μετακίνηση στοιχείων στον Κάδο απορριμμάτων… pane.items.menu.moveToTrash.multiple=Μετακίνηση στοιχείων στον Κάδο απορριμμάτων…
pane.items.menu.delete=Delete Permanently… pane.items.menu.delete=Μόνιμη διαγραφή...;
pane.items.menu.export=Export Selected Item... pane.items.menu.export=Export Selected Item...
pane.items.menu.export.multiple=Export Selected Items... pane.items.menu.export.multiple=Export Selected Items...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Create Bibliography from Selected Item... pane.items.menu.createBib=Create Bibliography from Selected Item...
pane.items.menu.createBib.multiple=Create Bibliography from Selected Items... pane.items.menu.createBib.multiple=Create Bibliography from Selected Items...
pane.items.menu.generateReport=Generate Report from Selected Item... pane.items.menu.generateReport=Generate Report from Selected Item...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Δημιουργία γονικού στοιχεί
pane.items.menu.createParent.multiple=Δημιουργία γονικών στοιχείων… pane.items.menu.createParent.multiple=Δημιουργία γονικών στοιχείων…
pane.items.menu.renameAttachments=Μετονομασία Αρχείου από γονικά μεταδεδομένα pane.items.menu.renameAttachments=Μετονομασία Αρχείου από γονικά μεταδεδομένα
pane.items.menu.renameAttachments.multiple=Μετονομασία Αρχείων από γονικά μεταδεδομένα pane.items.menu.renameAttachments.multiple=Μετονομασία Αρχείων από γονικά μεταδεδομένα
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Εμφάνιση Στοιχείου στη Βιβλιοθήκη pane.items.showItemInLibrary=Εμφάνιση Στοιχείου στη Βιβλιοθήκη
pane.items.letter.oneParticipant=Επιστολή προς %S pane.items.letter.oneParticipant=Επιστολή προς %S
@ -430,7 +437,7 @@ pane.item.related.count.zero=%S σχετικό:
pane.item.related.count.singular=%S σχετικό: pane.item.related.count.singular=%S σχετικό:
pane.item.related.count.plural=%S σχετικό: pane.item.related.count.plural=%S σχετικό:
pane.item.parentItem=Γονικό Στοιχείο: pane.item.parentItem=Γονικό Στοιχείο:
pane.item.viewOnline.tooltip=Go to this item online pane.item.viewOnline.tooltip=Μεταβείτε διαδικτυακά σε αυτό το αντικείμενο
pane.context.noParent=No parent item pane.context.noParent=No parent item
pane.context.itemNotes=Item Notes pane.context.itemNotes=Item Notes
@ -503,9 +510,9 @@ itemFields.callNumber=Αριθμός κλήσης
itemFields.archiveLocation=Τοπ. στο Αρχείο itemFields.archiveLocation=Τοπ. στο Αρχείο
itemFields.distributor=Διανομέας itemFields.distributor=Διανομέας
itemFields.extra=Επιπλέον itemFields.extra=Επιπλέον
itemFields.journalAbbreviation=Journal Abbr itemFields.journalAbbreviation=Συντομογραφία περιοδικού
itemFields.DOI=DOI itemFields.DOI=DOI
itemFields.accessDate=Accessed itemFields.accessDate=Πρόσβαση
itemFields.seriesTitle=Τίτλος Σειράς itemFields.seriesTitle=Τίτλος Σειράς
itemFields.seriesText=Series Text itemFields.seriesText=Series Text
itemFields.seriesNumber=Αριθμός Σειράς itemFields.seriesNumber=Αριθμός Σειράς
@ -526,12 +533,12 @@ itemFields.issueDate=Ημερομηνία Έκδοσης
itemFields.references=Αναφορές itemFields.references=Αναφορές
itemFields.legalStatus=Νομική Υπόσταση itemFields.legalStatus=Νομική Υπόσταση
itemFields.codeNumber=Code Number itemFields.codeNumber=Code Number
itemFields.artworkMedium=Medium itemFields.artworkMedium=Μέσο
itemFields.number=Αριθμός itemFields.number=Αριθμός
itemFields.artworkSize=Μέγεθος έργου τέχνης itemFields.artworkSize=Μέγεθος έργου τέχνης
itemFields.libraryCatalog=Κατάλογος Βιβλιοθήκης itemFields.libraryCatalog=Κατάλογος Βιβλιοθήκης
itemFields.videoRecordingFormat=Μορφή itemFields.videoRecordingFormat=Μορφή
itemFields.interviewMedium=Medium itemFields.interviewMedium=Μέσο
itemFields.letterType=Τύπος itemFields.letterType=Τύπος
itemFields.manuscriptType=Τύπος itemFields.manuscriptType=Τύπος
itemFields.mapType=Τύπος itemFields.mapType=Τύπος
@ -573,7 +580,7 @@ itemFields.applicationNumber=Application Number
itemFields.forumTitle=Forum/Listserv Title itemFields.forumTitle=Forum/Listserv Title
itemFields.episodeNumber=Αριθμός Επεισοδίου itemFields.episodeNumber=Αριθμός Επεισοδίου
itemFields.blogTitle=Blog Title itemFields.blogTitle=Blog Title
itemFields.medium=Medium itemFields.medium=Μέσο
itemFields.caseName=Case Name itemFields.caseName=Case Name
itemFields.nameOfAct=Name of Act itemFields.nameOfAct=Name of Act
itemFields.subject=Θέμα itemFields.subject=Θέμα
@ -585,7 +592,7 @@ itemFields.numPages=# από Σελίδες
itemFields.programTitle=Program Title itemFields.programTitle=Program Title
itemFields.issuingAuthority=Issuing Authority itemFields.issuingAuthority=Issuing Authority
itemFields.filingDate=Filing Date itemFields.filingDate=Filing Date
itemFields.genre=Genre itemFields.genre=Είδος
itemFields.archive=Αρχείο itemFields.archive=Αρχείο
itemFields.attachmentPDF=PDF Attachment itemFields.attachmentPDF=PDF Attachment
itemFields.repository=Repository itemFields.repository=Repository
@ -747,7 +754,7 @@ zotero.preferences.advanced.migrateDataDir.directoryWillBeMoved=Your %1$S data d
zotero.preferences.advanced.migrateDataDir.appMustBeRestarted=%S must be restarted to complete the migration. zotero.preferences.advanced.migrateDataDir.appMustBeRestarted=%S must be restarted to complete the migration.
zotero.preferences.advanced.migrateDataDir.manualMigration=You can also quit %1$S and move your existing data directory to %2$S manually, which may be faster for larger data directories. %3$S will automatically detect the new location. zotero.preferences.advanced.migrateDataDir.manualMigration=You can also quit %1$S and move your existing data directory to %2$S manually, which may be faster for larger data directories. %3$S will automatically detect the new location.
zotero.debugOutputLogging=Debug Output Logging zotero.debugOutputLogging=Αποσφαλμάτωση Καταγραφή Εξόδου
zotero.debugOutputLogging.linesLogged=%1$S line logged;%1$S lines logged zotero.debugOutputLogging.linesLogged=%1$S line logged;%1$S lines logged
zotero.debugOutputLogging.dialog.title=Debug Output Submitted zotero.debugOutputLogging.dialog.title=Debug Output Submitted
zotero.debugOutputLogging.dialog.sent=Debug output has been sent to %S.\n\nThe Debug ID is D%S. zotero.debugOutputLogging.dialog.sent=Debug output has been sent to %S.\n\nThe Debug ID is D%S.
@ -757,7 +764,7 @@ zotero.debugOutputLogging.enabledAfterRestart=Debug output logging will be enabl
dragAndDrop.existingFiles=The following files already existed in the destination directory and were not copied: dragAndDrop.existingFiles=The following files already existed in the destination directory and were not copied:
dragAndDrop.filesNotFound=The following files were not found and could not be copied: dragAndDrop.filesNotFound=The following files were not found and could not be copied:
fileInterface.importing=Importing… fileInterface.importing=Εισαγωγή ...
fileInterface.importComplete=Import Complete fileInterface.importComplete=Import Complete
fileInterface.itemsWereImported=%1$S item was imported;%1$S items were imported fileInterface.itemsWereImported=%1$S item was imported;%1$S items were imported
fileInterface.itemsExported=Exporting items... fileInterface.itemsExported=Exporting items...
@ -828,7 +835,7 @@ searchConditions.interviewMedium=Interview Medium
searchConditions.manuscriptType=Manuscript Type searchConditions.manuscriptType=Manuscript Type
searchConditions.presentationType=Presentation Type searchConditions.presentationType=Presentation Type
searchConditions.mapType=Map Type searchConditions.mapType=Map Type
searchConditions.medium=Medium searchConditions.medium=Μέσο
searchConditions.artworkMedium=Artwork Medium searchConditions.artworkMedium=Artwork Medium
searchConditions.dateModified=Ημερομηνία Τροποποίησης searchConditions.dateModified=Ημερομηνία Τροποποίησης
searchConditions.fulltextContent=Attachment Content searchConditions.fulltextContent=Attachment Content
@ -864,22 +871,7 @@ citation.showEditor=Show Editor...
citation.hideEditor=Hide Editor... citation.hideEditor=Hide Editor...
citation.citations=Citations citation.citations=Citations
citation.notes=Σημείωση citation.notes=Σημείωση
citation.locator.page=Σελίδα citation.locator.timestamp=Timestamp
citation.locator.book=Βιβλίο
citation.locator.chapter=Chapter
citation.locator.column=Column
citation.locator.figure=Figure
citation.locator.folio=Folio
citation.locator.issue=Τεύχος
citation.locator.line=Line
citation.locator.note=Σημείωση
citation.locator.opus=Εργασία
citation.locator.paragraph=Παράγραφος
citation.locator.part=Μέρος
citation.locator.section=Ενότητα
citation.locator.subverbo=Sub verbo
citation.locator.volume=Τόμος
citation.locator.verse=Στίχος
report.title.default=Αναφορά Zotero report.title.default=Αναφορά Zotero
report.parentItem=Γονικό Στοιχείο: report.parentItem=Γονικό Στοιχείο:
@ -1005,7 +997,7 @@ sync.skipGroup=Παράλειψη Ομάδας
sync.removeGroupsAndSync=Κατάργηση Ομάδων και Συγχρονισμού sync.removeGroupsAndSync=Κατάργηση Ομάδων και Συγχρονισμού
sync.reminder.setUp.message=Back up your library with %S syncing. sync.reminder.setUp.message=Back up your library with %S syncing.
sync.reminder.setUp.action=Set Up Syncing sync.reminder.setUp.action=Ρύθμιση Συγχρονισμού
sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing? sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing?
sync.error.usernameNotSet=Το όνομα χρήστη δεν έχει οριστεί sync.error.usernameNotSet=Το όνομα χρήστη δεν έχει οριστεί
@ -1293,9 +1285,9 @@ retraction.citationWarning=Μια αναφορά στο έγγραφό σας έ
retraction.citationWarning.dontWarn=Μην με προειδοποιείτε για το στοιχείο αυτό ξανά retraction.citationWarning.dontWarn=Μην με προειδοποιείτε για το στοιχείο αυτό ξανά
noteEditor.annotationsDateLine=(%S) noteEditor.annotationsDateLine=(%S)
noteEditor.cut=Cut noteEditor.cut=Αποκοπή
noteEditor.copy=Copy noteEditor.copy=Αντιγραφή
noteEditor.paste=Paste noteEditor.paste=Επικόλληση
noteEditor.rightToLeft=Right to Left noteEditor.rightToLeft=Right to Left
noteEditor.leftToRight=Left to Right noteEditor.leftToRight=Left to Right
noteEditor.updateNotice=This note was edited with a newer version of %1$S.\nPlease update %1$S to make changes. noteEditor.updateNotice=This note was edited with a newer version of %1$S.\nPlease update %1$S to make changes.
@ -1303,20 +1295,20 @@ noteEditor.enterLink=Enter Link
noteEditor.heading1=Heading 1 noteEditor.heading1=Heading 1
noteEditor.heading2=Heading 2 noteEditor.heading2=Heading 2
noteEditor.heading3=Heading 3 noteEditor.heading3=Heading 3
noteEditor.paragraph=Paragraph noteEditor.paragraph=Παράγραφος
noteEditor.monospaced=Monospaced noteEditor.monospaced=Monospaced
noteEditor.bulletList=Bulleted List noteEditor.bulletList=Bulleted List
noteEditor.orderedList=Numbered List noteEditor.orderedList=Numbered List
noteEditor.blockquote=Block Quote noteEditor.blockquote=Block Quote
noteEditor.formatText=Format Text noteEditor.formatText=Format Text
noteEditor.highlightText=Highlight Text noteEditor.highlightText=Υπογράμμιση κειμένου
noteEditor.removeColor=Remove Color noteEditor.removeColor=Απομάκρυνση χρώματος
noteEditor.bold=Bold noteEditor.bold=Έντονα
noteEditor.italic=Italic noteEditor.italic=Πλάγια
noteEditor.underline=Underline noteEditor.underline=Υπογραμμισμένα
noteEditor.strikethrough=Strikethrough noteEditor.strikethrough=Strikethrough
noteEditor.subscript=Subscript noteEditor.subscript=Δείκτης
noteEditor.superscript=Superscript noteEditor.superscript=Εκθέτης
noteEditor.returnToNotesList=Return to Notes List noteEditor.returnToNotesList=Return to Notes List
noteEditor.insertLink=Insert Link noteEditor.insertLink=Insert Link
noteEditor.clearFormatting=Clear Formatting noteEditor.clearFormatting=Clear Formatting
@ -1325,8 +1317,8 @@ noteEditor.alignLeft=Align Left
noteEditor.alignCenter=Align Center noteEditor.alignCenter=Align Center
noteEditor.alignRight=Align Right noteEditor.alignRight=Align Right
noteEditor.insertCitation=Insert Citation noteEditor.insertCitation=Insert Citation
noteEditor.more=More noteEditor.more=Περισσότερα
noteEditor.find=Find noteEditor.find=Εύρεση
noteEditor.replace=Replace noteEditor.replace=Replace
noteEditor.previous=Previous noteEditor.previous=Previous
noteEditor.next=Next noteEditor.next=Next
@ -1338,7 +1330,7 @@ noteEditor.editCitation=Edit Citation
noteEditor.showOnPage=Show on Page noteEditor.showOnPage=Show on Page
noteEditor.unlink=Unlink noteEditor.unlink=Unlink
noteEditor.set=Set noteEditor.set=Set
noteEditor.edit=Edit noteEditor.edit=Επεξεργασία
noteEditor.addCitation=Add Citation noteEditor.addCitation=Add Citation
noteEditor.removeCitation=Hide Citation noteEditor.removeCitation=Hide Citation
noteEditor.findAndReplace=Find and Replace noteEditor.findAndReplace=Find and Replace
@ -1363,8 +1355,8 @@ pdfReader.noAnnotations=Create an annotation to see it in the sidebar
pdfReader.addText=Add extracted text pdfReader.addText=Add extracted text
pdfReader.addComment=Add comment pdfReader.addComment=Add comment
pdfReader.addTags=Add tags… pdfReader.addTags=Add tags…
pdfReader.highlightText=Highlight Text pdfReader.highlightText=Υπογράμμιση κειμένου
pdfReader.addNote=Add Note pdfReader.addNote=Προσθήκη σημείωσης
pdfReader.selectArea=Select Area pdfReader.selectArea=Select Area
pdfReader.pickColor=Pick a Color pdfReader.pickColor=Pick a Color
pdfReader.addToNote=Add to Note pdfReader.addToNote=Add to Note
@ -1375,13 +1367,18 @@ pdfReader.zoomPageWidth=Zoom to Page Width
pdfReader.zoomPageHeight=Zoom to Page Height pdfReader.zoomPageHeight=Zoom to Page Height
pdfReader.nextPage=Next Page pdfReader.nextPage=Next Page
pdfReader.previousPage=Previous Page pdfReader.previousPage=Previous Page
pdfReader.page=Page pdfReader.page=Σελίδα
pdfReader.readOnly=Read-only pdfReader.readOnly=Read-only
pdfReader.promptTransferFromPDF.title=Import Annotations pdfReader.promptTransferFromPDF.title=Import Annotations
pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S. pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S.
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

View file

@ -6,7 +6,7 @@
<!ENTITY zotero.general.deselectAll "Deselect All"> <!ENTITY zotero.general.deselectAll "Deselect All">
<!ENTITY zotero.general.edit "Edit"> <!ENTITY zotero.general.edit "Edit">
<!ENTITY zotero.general.delete "Delete"> <!ENTITY zotero.general.delete "Delete">
<!ENTITY zotero.general.moveToTrash "Move to Trash"> <!ENTITY zotero.general.moveToTrash "Move to Bin">
<!ENTITY zotero.general.ok "OK"> <!ENTITY zotero.general.ok "OK">
<!ENTITY zotero.general.cancel "Cancel"> <!ENTITY zotero.general.cancel "Cancel">
<!ENTITY zotero.general.refresh "Refresh"> <!ENTITY zotero.general.refresh "Refresh">

View file

@ -327,6 +327,9 @@ pane.items.remove.multiple=Are you sure you want to remove the selected items fr
pane.items.removeFromPublications.title=Remove from My Publications pane.items.removeFromPublications.title=Remove from My Publications
pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications? pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications?
pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications? pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications?
pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.menu.addNoteFromAnnotations=Add Note from Annotations
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=Find Available PDF pane.items.menu.findAvailablePDF=Find Available PDF
@ -343,6 +346,8 @@ pane.items.menu.export=Export Item…
pane.items.menu.export.multiple=Export Items… pane.items.menu.export.multiple=Export Items…
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Create Bibliography from Item… pane.items.menu.createBib=Create Bibliography from Item…
pane.items.menu.createBib.multiple=Create Bibliography from Items… pane.items.menu.createBib.multiple=Create Bibliography from Items…
pane.items.menu.generateReport=Generate Report from Item… pane.items.menu.generateReport=Generate Report from Item…
@ -355,6 +360,8 @@ pane.items.menu.createParent=Create Parent Item…
pane.items.menu.createParent.multiple=Create Parent Items pane.items.menu.createParent.multiple=Create Parent Items
pane.items.menu.renameAttachments=Rename File from Parent Metadata pane.items.menu.renameAttachments=Rename File from Parent Metadata
pane.items.menu.renameAttachments.multiple=Rename Files from Parent Metadata pane.items.menu.renameAttachments.multiple=Rename Files from Parent Metadata
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Show Item in Library pane.items.showItemInLibrary=Show Item in Library
pane.items.letter.oneParticipant=Letter to %S pane.items.letter.oneParticipant=Letter to %S
@ -529,7 +536,7 @@ itemFields.codeNumber=Code Number
itemFields.artworkMedium=Medium itemFields.artworkMedium=Medium
itemFields.number=Number itemFields.number=Number
itemFields.artworkSize=Artwork Size itemFields.artworkSize=Artwork Size
itemFields.libraryCatalog=Library Catalog itemFields.libraryCatalog=Library Catalogue
itemFields.videoRecordingFormat=Format itemFields.videoRecordingFormat=Format
itemFields.interviewMedium=Medium itemFields.interviewMedium=Medium
itemFields.letterType=Type itemFields.letterType=Type
@ -864,22 +871,7 @@ citation.showEditor=Show Editor…
citation.hideEditor=Hide Editor… citation.hideEditor=Hide Editor…
citation.citations=Citations citation.citations=Citations
citation.notes=Notes citation.notes=Notes
citation.locator.page=Page citation.locator.timestamp=Timestamp
citation.locator.book=Book
citation.locator.chapter=Chapter
citation.locator.column=Column
citation.locator.figure=Figure
citation.locator.folio=Folio
citation.locator.issue=Issue
citation.locator.line=Line
citation.locator.note=Note
citation.locator.opus=Opus
citation.locator.paragraph=Paragraph
citation.locator.part=Part
citation.locator.section=Section
citation.locator.subverbo=Sub verbo
citation.locator.volume=Volume
citation.locator.verse=Verse
report.title.default=Zotero Report report.title.default=Zotero Report
report.parentItem=Parent Item: report.parentItem=Parent Item:
@ -1310,7 +1302,7 @@ noteEditor.orderedList=Numbered List
noteEditor.blockquote=Block Quote noteEditor.blockquote=Block Quote
noteEditor.formatText=Format Text noteEditor.formatText=Format Text
noteEditor.highlightText=Highlight Text noteEditor.highlightText=Highlight Text
noteEditor.removeColor=Remove Color noteEditor.removeColor=Remove Colour
noteEditor.bold=Bold noteEditor.bold=Bold
noteEditor.italic=Italic noteEditor.italic=Italic
noteEditor.underline=Underline noteEditor.underline=Underline
@ -1382,6 +1374,11 @@ pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

View file

@ -328,6 +328,9 @@ pane.items.remove.multiple = Are you sure you want to remove the selected items
pane.items.removeFromPublications.title = Remove from My Publications pane.items.removeFromPublications.title = Remove from My Publications
pane.items.removeFromPublications = Are you sure you want to remove the selected item from My Publications? pane.items.removeFromPublications = Are you sure you want to remove the selected item from My Publications?
pane.items.removeFromPublications.multiple = Are you sure you want to remove the selected items from My Publications? pane.items.removeFromPublications.multiple = Are you sure you want to remove the selected items from My Publications?
pane.items.removeRecursive.title = Remove from Collection and Subcollections
pane.items.removeRecursive = Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple = Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations = Add Note from Annotations pane.items.menu.addNoteFromAnnotations = Add Note from Annotations
pane.items.menu.addNoteFromAnnotations.multiple = Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple = Add Notes from Annotations
pane.items.menu.findAvailablePDF = Find Available PDF pane.items.menu.findAvailablePDF = Find Available PDF
@ -344,6 +347,8 @@ pane.items.menu.export = Export Item…
pane.items.menu.export.multiple = Export Items… pane.items.menu.export.multiple = Export Items…
pane.items.menu.exportNote = Export Note… pane.items.menu.exportNote = Export Note…
pane.items.menu.exportNote.multiple = Export Notes… pane.items.menu.exportNote.multiple = Export Notes…
pane.items.menu.exportPDF = Export PDF…
pane.items.menu.exportPDF.multiple = Export PDFs…
pane.items.menu.createBib = Create Bibliography from Item… pane.items.menu.createBib = Create Bibliography from Item…
pane.items.menu.createBib.multiple = Create Bibliography from Items… pane.items.menu.createBib.multiple = Create Bibliography from Items…
pane.items.menu.generateReport = Generate Report from Item… pane.items.menu.generateReport = Generate Report from Item…
@ -356,6 +361,8 @@ pane.items.menu.createParent = Create Parent Item…
pane.items.menu.createParent.multiple = Create Parent Items pane.items.menu.createParent.multiple = Create Parent Items
pane.items.menu.renameAttachments = Rename File from Parent Metadata pane.items.menu.renameAttachments = Rename File from Parent Metadata
pane.items.menu.renameAttachments.multiple = Rename Files from Parent Metadata pane.items.menu.renameAttachments.multiple = Rename Files from Parent Metadata
pane.items.menu.duplicateAndConvert.toBookSection = Create Book Section
pane.items.menu.duplicateAndConvert.toBook = Create Book from Book Section
pane.items.showItemInLibrary = Show Item in Library pane.items.showItemInLibrary = Show Item in Library
pane.items.letter.oneParticipant = Letter to %S pane.items.letter.oneParticipant = Letter to %S
@ -865,22 +872,7 @@ citation.showEditor = Show Editor…
citation.hideEditor = Hide Editor… citation.hideEditor = Hide Editor…
citation.citations = Citations citation.citations = Citations
citation.notes = Notes citation.notes = Notes
citation.locator.page = Page citation.locator.timestamp = Timestamp
citation.locator.book = Book
citation.locator.chapter = Chapter
citation.locator.column = Column
citation.locator.figure = Figure
citation.locator.folio = Folio
citation.locator.issue = Issue
citation.locator.line = Line
citation.locator.note = Note
citation.locator.opus = Opus
citation.locator.paragraph = Paragraph
citation.locator.part = Part
citation.locator.section = Section
citation.locator.subverbo = Sub verbo
citation.locator.volume = Volume
citation.locator.verse = Verse
report.title.default = Zotero Report report.title.default = Zotero Report
report.parentItem = Parent Item: report.parentItem = Parent Item:
@ -1383,6 +1375,11 @@ pdfReader.promptTransferFromPDF.text = Annotations stored in the PDF file will b
pdfReader.promptTransferToPDF.title = Store Annotations in File pdfReader.promptTransferToPDF.title = Store Annotations in File
pdfReader.promptTransferToPDF.text = Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text = Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected = The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected = The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title = Delete Pages
pdfReader.promptDeletePages.text = Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft = Rotate Left
pdfReader.rotateRight = Rotate Right
pdfReader.rotate180 = Rotate 180°
pdfReader.editPageNumber = Edit Page Number… pdfReader.editPageNumber = Edit Page Number…
pdfReader.editHighlightedText = Edit Highlighted Text pdfReader.editHighlightedText = Edit Highlighted Text
pdfReader.pageNumberPopupHeader = Change page number for: pdfReader.pageNumberPopupHeader = Change page number for:

View file

@ -0,0 +1,263 @@
{
"zbib.about.CTA": {
"string": "Awesome! Let’s start!"
},
"zbib.about.feature1.paragraph": {
"string": "Simply find what you’re looking for in another browser tab and copy the page URL to the ZoteroBib search bar. ZoteroBib can automatically pull in data from newspaper and magazine articles, library catalogs, journal articles, sites like Amazon and Google Books, and much more. You can also paste or type in an ISBN, DOI, PMID, or arXiv ID, or you can search by title."
},
"zbib.about.feature1.title": {
"string": "Adding a bibliography entry"
},
"zbib.about.feature10.paragraph": {
"string": "If you want to edit your bibliography on another device, share it with someone else, or switch to another bibliography, you can generate a link to a copy of the current version on zbib.org. Use the link to retrieve your bibliography later."
},
"zbib.about.feature10.title": {
"string": "Link to this version"
},
"zbib.about.feature2.paragraph": {
"string": "If automatic import doesn’t find what you’re looking for or you’re entering something without a URL or identifier, you can enter the reference information by hand."
},
"zbib.about.feature2.title": {
"string": "Manual entry"
},
"zbib.about.feature3.paragraph": {
"string": "To rename your bibliography, just click its title. A title can be useful if you’re switching between multiple projects or sharing a bibliography with others."
},
"zbib.about.feature3.title": {
"string": "Bibliography title"
},
"zbib.about.feature4.paragraph": {
"string": "You might need to add or change a few fields after adding an item. Click on a bibliography entry to make manual changes."
},
"zbib.about.feature4.title": {
"string": "Editing an item"
},
"zbib.about.feature5.paragraph": {
"string": "Click the { deleteIcon } next to a bibliography entry to delete it. To start a new bibliography, click <i>Delete All</i> to remove all entries."
},
"zbib.about.feature5.title": {
"string": "Deleting items"
},
"zbib.about.feature6.paragraph": {
"string": "Format your bibliography using APA, MLA, Chicago / Turabian, Harvard, or any of the {citationStylesCount, plural, other {#+ other <link>CSL</link> styles} }."
},
"zbib.about.feature6.title": {
"string": "Style selection"
},
"zbib.about.feature7.paragraph": {
"string": "As you’re writing, you can quickly generate parenthetical citations or footnotes /endnotes to paste into your document without typing names or dates by hand."
},
"zbib.about.feature7.title": {
"string": "Copy Citation / Note"
},
"zbib.about.feature8.paragraph": {
"string": "When you’re done, you can copy a formatted bibliography to the clipboard and paste it into your document. You can also export HTML to add to a webpage, an RTF document to open in a word processor, or a RIS or BibTeX file to import into a reference manager."
},
"zbib.about.feature8.title": {
"string": "Export"
},
"zbib.about.feature9.paragraph": {
"string": "ZoteroBib automatically saves your bibliography to your browser’s local storage — you can close the page and return to it anytime. (If you’re using private / incognito mode in your browser, your bibliography will be cleared when you close the window.)"
},
"zbib.about.feature9.title": {
"string": "Autosave"
},
"zbib.about.questionsFaq": {
"string": "<block>Still have questions?</block> Check the <link>FAQ</link>."
},
"zbib.about.summary": {
"string": "ZoteroBib helps you build a bibliography instantly from any computer or device, without creating an account or installing any software. It’s brought to you by the team behind <link>Zotero</link>, the powerful open-source research tool recommended by thousands of universities worldwide, so you can trust it to help you seamlessly add sources and produce perfect bibliographies. If you need to reuse sources across multiple projects or build a shared research library, we recommend using Zotero instead."
},
"zbib.about.title": {
"string": "Cite anything"
},
"zbib.bibliography.deleteAll": {
"string": "Delete All"
},
"zbib.bibliography.edit": {
"string": "Edit Bibliography"
},
"zbib.bibliography.emptyLead": {
"string": "<i>T</i>o add a source, paste or type its URL, ISBN, DOI, PMID, arXiv ID, or title into the search box above"
},
"zbib.bibliography.emptyTitle": {
"string": "<i>Y</i>our bibliography is empty."
},
"zbib.bibliography.override": {
"string": "There is an existing bibliography with {localCitationsCount, plural, one {# entry} other {# entries} } in the editor. If you continue, the existing bibliography will be replaced with this one."
},
"zbib.citation.copiedFeedback": {
"string": "Copied!"
},
"zbib.citation.copyCitation": {
"string": "Copy Citation"
},
"zbib.citation.copyNote": {
"string": "Copy Note"
},
"zbib.citation.moveDown": {
"string": "Move Down"
},
"zbib.citation.moveToTop": {
"string": "Move to Top"
},
"zbib.citation.moveUp": {
"string": "Move Up"
},
"zbib.citation.omitAuthor": {
"string": "Omit Author"
},
"zbib.citation.preview": {
"string": "Preview:"
},
"zbib.citePrompt": {
"string": "Enter a URL, ISBN, DOI, PMID, arXiv ID, or title"
},
"zbib.confirmCase.confirm": {
"string": "OK, I’ll Edit Them"
},
"zbib.confirmCase.conversionExample": {
"string": "<b>ZoteroBib conversion:</b> <i>Circadian mood variations in twitter content</i>"
},
"zbib.confirmCase.explanation": {
"string": "The style you’ve selected requires titles to be in sentence case rather than title case. When you use this style, ZoteroBib will convert the titles of entries to sentence case for you, but you’ll need to manually edit some entries to capitalize proper nouns:"
},
"zbib.confirmCase.sentenceCaseExample": {
"string": "<b>Sentence case:</b> <i>Circadian mood variations in <r>T</r>witter content</i>"
},
"zbib.confirmCase.title": {
"string": "Converting Titles to Sentence Case"
},
"zbib.confirmCase.titleCaseExample": {
"string": "<b>Title case:</b> <i>Circadian Mood Variations in Twitter Content</i>"
},
"zbib.confirmDeleteAll.confirm": {
"string": "Delete"
},
"zbib.confirmDeleteAll.prompt": {
"string": "{bibliographyCount, plural, one {# entry} other {# entries} } will be deleted."
},
"zbib.confirmDeleteAll.title": {
"string": "Clear Bibliography?"
},
"zbib.creator.moveDown": {
"string": "Move Down"
},
"zbib.creator.moveToTop": {
"string": "Move to Top"
},
"zbib.creator.moveUp": {
"string": "Move Up"
},
"zbib.creator.placeholderDual": {
"string": "last name, first name"
},
"zbib.creator.placeholderSingle": {
"string": "name"
},
"zbib.dialog.confirmAddThisCitation": {
"string": "Add this citation to your bibliography?"
},
"zbib.editor.title": {
"string": "Item Editor"
},
"zbib.error.fetchMetadata": {
"string": "Failed to obtain metadata. Please check your connection and try again."
},
"zbib.export": {
"string": "Export"
},
"zbib.export.copiedFeedback": {
"string": "Copied!"
},
"zbib.footer.follow": {
"string": "Stay in touch! Follow <link>@zotero</link> on Twitter."
},
"zbib.general.add": {
"string": "Add"
},
"zbib.general.cancel": {
"string": "Cancel"
},
"zbib.general.cite": {
"string": "Cite"
},
"zbib.general.close": {
"string": "Close"
},
"zbib.general.delete": {
"string": "Delete"
},
"zbib.general.done": {
"string": "Done"
},
"zbib.general.edit": {
"string": "Edit"
},
"zbib.help": {
"string": "Help"
},
"zbib.linkToThis": {
"string": "Link to this version"
},
"zbib.manualEntry": {
"string": "Manual Entry"
},
"zbib.multipleChoice.more": {
"string": "More…"
},
"zbib.multipleChoice.prompt": {
"string": "Please select a citation from the list"
},
"zbib.multipleItems.confirm": {
"string": "Add Selected"
},
"zbib.multipleItems.prompt": {
"string": "Please select a citation from the list"
},
"zbib.permalink.copyFeedback": {
"string": "Copied!"
},
"zbib.permalink.copyURL": {
"string": "Copy URL"
},
"zbib.permalink.create": {
"string": "Create"
},
"zbib.permalink.view": {
"string": "View"
},
"zbib.review.newItem": {
"string": "New item…"
},
"zbib.saveToZotero.message": {
"string": "Once you’ve <a>installed Zotero and the Zotero Connector</a>, you can export your bibliography to Zotero by clicking the “Save to Zotero” button in your browser’s toolbar."
},
"zbib.saveToZotero.title": {
"string": "Save to Zotero"
},
"zbib.styleInstaller.active": {
"string": "Active"
},
"zbib.styleInstaller.add": {
"string": "Add"
},
"zbib.styleInstaller.default": {
"string": "Default"
},
"zbib.styleInstaller.remove": {
"string": "Remove"
},
"zbib.styleInstaller.searchPlaceholder": {
"string": "Enter three or more characters to search"
},
"zbib.styleInstaller.title": {
"string": "Add a Citation Style"
},
"zbib.styleSelector.otherStyles": {
"string": "{citationStylesCount, plural, other {#+ other styles} } available…"
},
"zbib.whatsThis": {
"string": "What’s this?"
}
}

View file

@ -327,6 +327,9 @@ pane.items.remove.multiple=¿Está seguro de que quiere eliminar los elementos s
pane.items.removeFromPublications.title=Eliminar de Mis Publicaciones pane.items.removeFromPublications.title=Eliminar de Mis Publicaciones
pane.items.removeFromPublications=¿Está seguro de que quiere eliminar el elemento seleccionado de Mis publicaciones? pane.items.removeFromPublications=¿Está seguro de que quiere eliminar el elemento seleccionado de Mis publicaciones?
pane.items.removeFromPublications.multiple=¿Está seguro de que quiere eliminar los elementos seleccionados de Mis publicaciones? pane.items.removeFromPublications.multiple=¿Está seguro de que quiere eliminar los elementos seleccionados de Mis publicaciones?
pane.items.removeRecursive.title=Eliminar de la colección y subcolecciones
pane.items.removeRecursive=¿Está seguro de que quiere eliminar el elemento seleccionado de esta colección y de todas las subcolecciones?
pane.items.removeRecursive.multiple=¿Está seguro de que quiere eliminar los elementos seleccionados de esta colección y de todas las subcolecciones?
pane.items.menu.addNoteFromAnnotations=Añadir una nota a partir de anotaciones pane.items.menu.addNoteFromAnnotations=Añadir una nota a partir de anotaciones
pane.items.menu.addNoteFromAnnotations.multiple=Añadir notas a partir de anotaciones pane.items.menu.addNoteFromAnnotations.multiple=Añadir notas a partir de anotaciones
pane.items.menu.findAvailablePDF=Buscar PDF disponible pane.items.menu.findAvailablePDF=Buscar PDF disponible
@ -343,6 +346,8 @@ pane.items.menu.export=Exportar elemento...
pane.items.menu.export.multiple=Exportar elementos... pane.items.menu.export.multiple=Exportar elementos...
pane.items.menu.exportNote=Exportar nota.... pane.items.menu.exportNote=Exportar nota....
pane.items.menu.exportNote.multiple=Exportar notas... pane.items.menu.exportNote.multiple=Exportar notas...
pane.items.menu.exportPDF=Exportar PDF...
pane.items.menu.exportPDF.multiple=Exportar PDFs...
pane.items.menu.createBib=Crear una bibliografía a partir del elemento... pane.items.menu.createBib=Crear una bibliografía a partir del elemento...
pane.items.menu.createBib.multiple=Crear una bibliografía a partir de los elementos... pane.items.menu.createBib.multiple=Crear una bibliografía a partir de los elementos...
pane.items.menu.generateReport=Generar un informe a partir del elemento... pane.items.menu.generateReport=Generar un informe a partir del elemento...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Crear elemento contenedor...
pane.items.menu.createParent.multiple=Crear elementos contenedores pane.items.menu.createParent.multiple=Crear elementos contenedores
pane.items.menu.renameAttachments=Renombar archivo a partir de los metadatos del contenedor pane.items.menu.renameAttachments=Renombar archivo a partir de los metadatos del contenedor
pane.items.menu.renameAttachments.multiple=Renombrar archivos a partir de los metadatos del contenedor pane.items.menu.renameAttachments.multiple=Renombrar archivos a partir de los metadatos del contenedor
pane.items.menu.duplicateAndConvert.toBookSection=Crear sección de un libro
pane.items.menu.duplicateAndConvert.toBook=Crear libro desde sección de un libro
pane.items.showItemInLibrary=Mostrar elemento en la biblioteca pane.items.showItemInLibrary=Mostrar elemento en la biblioteca
pane.items.letter.oneParticipant=Carta a %S pane.items.letter.oneParticipant=Carta a %S
@ -864,22 +871,7 @@ citation.showEditor=Mostrar editor...
citation.hideEditor=Ocultar editor... citation.hideEditor=Ocultar editor...
citation.citations=Citas citation.citations=Citas
citation.notes=Notas citation.notes=Notas
citation.locator.page=Página citation.locator.timestamp=Marca de tiempo
citation.locator.book=Libro
citation.locator.chapter=Capítulo
citation.locator.column=Columna
citation.locator.figure=Figura
citation.locator.folio=Folio
citation.locator.issue=Número
citation.locator.line=Línea
citation.locator.note=Nota
citation.locator.opus=Opus
citation.locator.paragraph=Párrafo
citation.locator.part=Pieza
citation.locator.section=Sección
citation.locator.subverbo=Sub voce
citation.locator.volume=Volumen
citation.locator.verse=Versículo
report.title.default=Informe de Zotero report.title.default=Informe de Zotero
report.parentItem=Elemento contenedor: report.parentItem=Elemento contenedor:
@ -1342,7 +1334,7 @@ noteEditor.edit=Editar
noteEditor.addCitation=Añadir cita noteEditor.addCitation=Añadir cita
noteEditor.removeCitation=Ocultar cita noteEditor.removeCitation=Ocultar cita
noteEditor.findAndReplace=Buscar y reemplazar noteEditor.findAndReplace=Buscar y reemplazar
noteEditor.editInWindow=Editar en una ventana separada noteEditor.editInWindow=Editar en una ventana aparte
noteEditor.applyAnnotationColors=Mostrar los colores de las anotaciones noteEditor.applyAnnotationColors=Mostrar los colores de las anotaciones
noteEditor.removeAnnotationColors=Ocultar los colores de las anotaciones noteEditor.removeAnnotationColors=Ocultar los colores de las anotaciones
noteEditor.addCitations=Mostrar citas de anotaciones noteEditor.addCitations=Mostrar citas de anotaciones
@ -1382,6 +1374,11 @@ pdfReader.promptTransferFromPDF.text=Las anotaciones guardadas en el archivo PDF
pdfReader.promptTransferToPDF.title=Guardar anotaciones en archivo pdfReader.promptTransferToPDF.title=Guardar anotaciones en archivo
pdfReader.promptTransferToPDF.text=Las anotaciones se transferirán al archivo PDF y ya no se podrán editar en %S. pdfReader.promptTransferToPDF.text=Las anotaciones se transferirán al archivo PDF y ya no se podrán editar en %S.
pdfReader.promptPasswordProtected=La operación no es compatible con archivos PDF protegidos por contraseña. pdfReader.promptPasswordProtected=La operación no es compatible con archivos PDF protegidos por contraseña.
pdfReader.promptDeletePages.title=Borrar páginas
pdfReader.promptDeletePages.text=¿Está seguro de que desea borrar la página %1$S del archivo PDF?;¿Está seguro de que desea borrar las páginas %1$S del archivo PDF?
pdfReader.rotateLeft=Girar a la izquierda
pdfReader.rotateRight=Girar a la derecha
pdfReader.rotate180=Rotar 180º
pdfReader.editPageNumber=Editar número de página... pdfReader.editPageNumber=Editar número de página...
pdfReader.editHighlightedText=Editar texto resaltado pdfReader.editHighlightedText=Editar texto resaltado
pdfReader.pageNumberPopupHeader=Cambiar número de página por:: pdfReader.pageNumberPopupHeader=Cambiar número de página por::

View file

@ -69,8 +69,8 @@
<!ENTITY zotero.preferences.sync.fileSyncing.tos2 "tingimuste ja piirangutega"> <!ENTITY zotero.preferences.sync.fileSyncing.tos2 "tingimuste ja piirangutega">
<!ENTITY zotero.preferences.sync.librariesToSync "Libraries to Sync"> <!ENTITY zotero.preferences.sync.librariesToSync "Libraries to Sync">
<!ENTITY zotero.preferences.sync.librariesToSync.button "Choose Libraries…"> <!ENTITY zotero.preferences.sync.librariesToSync.button "Choose Libraries…">
<!ENTITY zotero.preferences.sync.librariesToSync.sync "Sync"> <!ENTITY zotero.preferences.sync.librariesToSync.sync "Sünkroonimine">
<!ENTITY zotero.preferences.sync.librariesToSync.library "Library"> <!ENTITY zotero.preferences.sync.librariesToSync.library "Raamatukogu">
<!ENTITY zotero.preferences.sync.reset.warning1 "Järgnevad toimingud on mõeldud vaid erakordseteks ja spetsiifilisteks olukordadeks ja neid ei tohiks kasutada üldiseks probleemide lahendamiseks. Paljudel juhtudel võib algseadistamine lisaprobleeme põhjustada. Vt "> <!ENTITY zotero.preferences.sync.reset.warning1 "Järgnevad toimingud on mõeldud vaid erakordseteks ja spetsiifilisteks olukordadeks ja neid ei tohiks kasutada üldiseks probleemide lahendamiseks. Paljudel juhtudel võib algseadistamine lisaprobleeme põhjustada. Vt ">
<!ENTITY zotero.preferences.sync.reset.warning2 "Sünkroniseerimise alglaadimise seaded"> <!ENTITY zotero.preferences.sync.reset.warning2 "Sünkroniseerimise alglaadimise seaded">
<!ENTITY zotero.preferences.sync.reset.warning3 "edasine info."> <!ENTITY zotero.preferences.sync.reset.warning3 "edasine info.">
@ -111,7 +111,7 @@
<!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Leheküljespetsiifilised seaded:"> <!ENTITY zotero.preferences.quickCopy.siteEditor.setings "Leheküljespetsiifilised seaded:">
<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domeen/aadress"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath "Domeen/aadress">
<!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(e.g., wikipedia.org)"> <!ENTITY zotero.preferences.quickCopy.siteEditor.domainPath.example "(e.g., wikipedia.org)">
<!ENTITY zotero.preferences.quickCopy.siteEditor.format "Format"> <!ENTITY zotero.preferences.quickCopy.siteEditor.format "Formaat">
<!ENTITY zotero.preferences.quickCopy.siteEditor.locale "Keel"> <!ENTITY zotero.preferences.quickCopy.siteEditor.locale "Keel">
<!ENTITY zotero.preferences.quickCopy.dragLimit "Peatada kiirkopeerimine juhul kui lohistatakse rohkem kui"> <!ENTITY zotero.preferences.quickCopy.dragLimit "Peatada kiirkopeerimine juhul kui lohistatakse rohkem kui">
@ -182,7 +182,7 @@
<!ENTITY zotero.preferences.dataDir "Lao asukoht"> <!ENTITY zotero.preferences.dataDir "Lao asukoht">
<!ENTITY zotero.preferences.dataDir.useProfile "Kasutada Firefoxi profiili kataloogi"> <!ENTITY zotero.preferences.dataDir.useProfile "Kasutada Firefoxi profiili kataloogi">
<!ENTITY zotero.preferences.dataDir.custom "Oma valik:"> <!ENTITY zotero.preferences.dataDir.custom "Oma valik:">
<!ENTITY zotero.preferences.dataDir.choose "Choose…"> <!ENTITY zotero.preferences.dataDir.choose "Valida...">
<!ENTITY zotero.preferences.dataDir.viaCommandLine "(specified via command line)"> <!ENTITY zotero.preferences.dataDir.viaCommandLine "(specified via command line)">
<!ENTITY zotero.preferences.dataDir.reveal "Andmete kataloogi näitamine"> <!ENTITY zotero.preferences.dataDir.reveal "Andmete kataloogi näitamine">
<!ENTITY zotero.preferences.dataDir.migrate "Migrate To New Default Location…"> <!ENTITY zotero.preferences.dataDir.migrate "Migrate To New Default Location…">

View file

@ -25,9 +25,9 @@
<!ENTITY closeCmd.accesskey "C"> <!ENTITY closeCmd.accesskey "C">
<!ENTITY manageAttachments.label "Manage Attachments"> <!ENTITY manageAttachments.label "Manage Attachments">
<!ENTITY convertToStored.label "Convert Linked Files to Stored Files…"> <!ENTITY convertToStored.label "Convert Linked Files to Stored Files…">
<!ENTITY importCmd.label "Import…"> <!ENTITY importCmd.label "Import...">
<!ENTITY importCmd.key "I"> <!ENTITY importCmd.key "I">
<!ENTITY importFromClipboardCmd.label "Import from Clipboard"> <!ENTITY importFromClipboardCmd.label "Lõikepuhvrist importimine">
<!ENTITY quitApplicationCmdWin.label "Väljuda"> <!ENTITY quitApplicationCmdWin.label "Väljuda">
<!ENTITY quitApplicationCmdWin.accesskey "x"> <!ENTITY quitApplicationCmdWin.accesskey "x">
<!ENTITY quitApplicationCmd.label "Väljuda"> <!ENTITY quitApplicationCmd.label "Väljuda">
@ -92,14 +92,14 @@
<!ENTITY helpFeedbackPage.label "Discussion Forums"> <!ENTITY helpFeedbackPage.label "Discussion Forums">
<!ENTITY helpFeedbackPage.accesskey "F"> <!ENTITY helpFeedbackPage.accesskey "F">
<!ENTITY helpReportErrors.label "Report Errors…"> <!ENTITY helpReportErrors.label "Andke vigadest teada...">
<!ENTITY helpReportErrors.accesskey "R"> <!ENTITY helpReportErrors.accesskey "R">
<!ENTITY debugOutputLogging.label "Debug Output Logging"> <!ENTITY debugOutputLogging.label "Veateadete logimine">
<!ENTITY debugOutputLogging.accesskey "L"> <!ENTITY debugOutputLogging.accesskey "L">
<!ENTITY debugOutputLogging.submit "Submit Output"> <!ENTITY debugOutputLogging.submit "Submit Output">
<!ENTITY debugOutputLogging.view "View Output"> <!ENTITY debugOutputLogging.view "Logi vaatamine">
<!ENTITY debugOutputLogging.clear "Clear Output"> <!ENTITY debugOutputLogging.clear "Logi tühjendamine">
<!ENTITY debugOutputLogging.restartWithLoggingEnabled "Restart with Logging Enabled…"> <!ENTITY debugOutputLogging.restartWithLoggingEnabled "Restart with Logging Enabled…">
<!ENTITY helpCheckForUpdates.label "Uuenduste kontrollimine"> <!ENTITY helpCheckForUpdates.label "Uuenduste kontrollimine">

View file

@ -1,27 +1,27 @@
<!ENTITY zotero.general.yes "Yes"> <!ENTITY zotero.general.yes "Jah">
<!ENTITY zotero.general.no "No"> <!ENTITY zotero.general.no "Ei">
<!ENTITY zotero.general.optional "(Valikuline)"> <!ENTITY zotero.general.optional "(Valikuline)">
<!ENTITY zotero.general.note "Märkus:"> <!ENTITY zotero.general.note "Märkus:">
<!ENTITY zotero.general.selectAll "Valida kõik"> <!ENTITY zotero.general.selectAll "Valida kõik">
<!ENTITY zotero.general.deselectAll "Tühistada kõik valikud"> <!ENTITY zotero.general.deselectAll "Tühistada kõik valikud">
<!ENTITY zotero.general.edit "Toimetada"> <!ENTITY zotero.general.edit "Toimetada">
<!ENTITY zotero.general.delete "Kustutada"> <!ENTITY zotero.general.delete "Kustutada">
<!ENTITY zotero.general.moveToTrash "Move to Trash"> <!ENTITY zotero.general.moveToTrash "Liiguta Prahi hulka">
<!ENTITY zotero.general.ok "OK"> <!ENTITY zotero.general.ok "OK">
<!ENTITY zotero.general.cancel "Tühistada"> <!ENTITY zotero.general.cancel "Tühistada">
<!ENTITY zotero.general.refresh "Värskenda"> <!ENTITY zotero.general.refresh "Värskenda">
<!ENTITY zotero.general.saveAs "Salvestada kui..."> <!ENTITY zotero.general.saveAs "Salvestada kui...">
<!ENTITY zotero.general.options "Options"> <!ENTITY zotero.general.options "Options">
<!ENTITY zotero.general.advancedOptions.label "Advanced Options"> <!ENTITY zotero.general.advancedOptions.label "Advanced Options">
<!ENTITY zotero.general.tools "Tools"> <!ENTITY zotero.general.tools "Tööriistad">
<!ENTITY zotero.general.more "More"> <!ENTITY zotero.general.more "Veel">
<!ENTITY zotero.general.loading "Loading…"> <!ENTITY zotero.general.loading "Loading…">
<!ENTITY zotero.general.close "Close"> <!ENTITY zotero.general.close "Sulge">
<!ENTITY zotero.general.minimize "Minimize"> <!ENTITY zotero.general.minimize "Minimeerida">
<!ENTITY zotero.general.other "Other…"> <!ENTITY zotero.general.other "Other…">
<!ENTITY zotero.general.bigger "Bigger"> <!ENTITY zotero.general.bigger "Bigger">
<!ENTITY zotero.general.smaller "Smaller"> <!ENTITY zotero.general.smaller "Smaller">
<!ENTITY zotero.general.reset "Reset"> <!ENTITY zotero.general.reset "Lähtestamine">
<!ENTITY zotero.errorReport.title "Zotero vearaport"> <!ENTITY zotero.errorReport.title "Zotero vearaport">
@ -93,7 +93,7 @@
<!ENTITY zotero.toolbar.import.label "Import..."> <!ENTITY zotero.toolbar.import.label "Import...">
<!ENTITY zotero.toolbar.importFromClipboard "Lõikepuhvrist importimine"> <!ENTITY zotero.toolbar.importFromClipboard "Lõikepuhvrist importimine">
<!ENTITY zotero.toolbar.export.label "Raamatukogu eksport..."> <!ENTITY zotero.toolbar.export.label "Raamatukogu eksport...">
<!ENTITY zotero.toolbar.rtfScan.label "RTF Scan"> <!ENTITY zotero.toolbar.rtfScan.label "RTF Skänn">
<!ENTITY zotero.toolbar.timeline.label "Ajajoone loomine"> <!ENTITY zotero.toolbar.timeline.label "Ajajoone loomine">
<!ENTITY zotero.toolbar.preferences.label "Eelistused..."> <!ENTITY zotero.toolbar.preferences.label "Eelistused...">
<!ENTITY zotero.toolbar.supportAndDocumentation "Abi ja dokumentatsioon"> <!ENTITY zotero.toolbar.supportAndDocumentation "Abi ja dokumentatsioon">
@ -129,7 +129,7 @@
<!ENTITY zotero.toolbar.attachment.weblink "Salvestada link käesolevale leheküljele"> <!ENTITY zotero.toolbar.attachment.weblink "Salvestada link käesolevale leheküljele">
<!ENTITY zotero.toolbar.attachment.snapshot "Teha käesolevast leheküljest momentülesvõte"> <!ENTITY zotero.toolbar.attachment.snapshot "Teha käesolevast leheküljest momentülesvõte">
<!ENTITY zotero.toolbar.context.item "Item"> <!ENTITY zotero.toolbar.context.item "Item">
<!ENTITY zotero.toolbar.context.notes "Notes"> <!ENTITY zotero.toolbar.context.notes "Märkused">
<!ENTITY zotero.tagSelector.noTagsToDisplay "Lipikud puuduvad"> <!ENTITY zotero.tagSelector.noTagsToDisplay "Lipikud puuduvad">
<!ENTITY zotero.tagSelector.loadingTags "Loading tags…"> <!ENTITY zotero.tagSelector.loadingTags "Loading tags…">
@ -264,7 +264,7 @@
<!ENTITY zotero.feedSettings.title "Feed Settings"> <!ENTITY zotero.feedSettings.title "Feed Settings">
<!ENTITY zotero.feedSettings.saveButton.label "Save"> <!ENTITY zotero.feedSettings.saveButton.label "Save">
<!ENTITY zotero.feedSettings.url.label "URL:"> <!ENTITY zotero.feedSettings.url.label "URL:">
<!ENTITY zotero.feedSettings.title.label "Title:"> <!ENTITY zotero.feedSettings.title.label "Pealkiri:">
<!ENTITY zotero.feedSettings.refresh.label1 "Update feed every"> <!ENTITY zotero.feedSettings.refresh.label1 "Update feed every">
<!ENTITY zotero.feedSettings.refresh.label2 "hour(s)"> <!ENTITY zotero.feedSettings.refresh.label2 "hour(s)">
<!ENTITY zotero.feedSettings.cleanupUnreadAfter.label1 "Remove unread feed items after"> <!ENTITY zotero.feedSettings.cleanupUnreadAfter.label1 "Remove unread feed items after">
@ -307,7 +307,7 @@
<!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations"> <!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations">
<!ENTITY zotero.context.editInWindow "Edit in a Separate Window"> <!ENTITY zotero.context.editInWindow "Edit in a Separate Window">
<!ENTITY zotero.pdfReader.firstPage "First Page"> <!ENTITY zotero.pdfReader.firstPage "Esimene lehekülg">
<!ENTITY zotero.pdfReader.lastPage "Last Page"> <!ENTITY zotero.pdfReader.lastPage "Last Page">
<!ENTITY zotero.pdfReader.back "Back"> <!ENTITY zotero.pdfReader.back "Back">
<!ENTITY zotero.pdfReader.forward "Forward"> <!ENTITY zotero.pdfReader.forward "Forward">

View file

@ -19,8 +19,8 @@ general.unknownErrorOccurred=Tundmatu viga.
general.invalidResponseServer=Server andis vigase vastuse general.invalidResponseServer=Server andis vigase vastuse
general.tryAgainLater=Palun mõne minuti pärast uuesti proovida general.tryAgainLater=Palun mõne minuti pärast uuesti proovida
general.serverError=Server andis veateate. Palun uuesti proovida. general.serverError=Server andis veateate. Palun uuesti proovida.
general.pleaseRestart=Please restart %S. general.pleaseRestart=Palun Firefox alglaadida.
general.pleaseRestartAndTryAgain=Please restart %S and try again. general.pleaseRestartAndTryAgain=Palun Firefox alglaadida ja siis uuesti proovida.
general.checkForUpdate=Uuenduste kontrollimine general.checkForUpdate=Uuenduste kontrollimine
general.checkForUpdates=Check for Updates general.checkForUpdates=Check for Updates
general.actionCannotBeUndone=Seda ei saa tagasi võtta. general.actionCannotBeUndone=Seda ei saa tagasi võtta.
@ -43,16 +43,16 @@ general.permissionDenied=Juurdepääs keelatud
general.character.singular=tähemärk general.character.singular=tähemärk
general.character.plural=tähemärgid general.character.plural=tähemärgid
general.create=Luua general.create=Luua
general.delete=Delete general.delete=Kustutada
general.remove=Eemaldada general.remove=Eemaldada
general.import=Import general.import=Import
general.export=Export general.export=Eksport
general.update=Update general.update=Update
general.moreInformation=More Information general.moreInformation=More Information
general.learnMore=Learn More general.learnMore=Learn More
general.seeForMoreInformation=Edasise info tarbeks vaadake %S. general.seeForMoreInformation=Edasise info tarbeks vaadake %S.
general.open=Open %S general.open=Open %S
general.close=Close general.close=Sulge
general.enable=Lubada general.enable=Lubada
general.disable=Keelata general.disable=Keelata
general.reset=Lähtestamine general.reset=Lähtestamine
@ -71,12 +71,12 @@ general.fix=Fix…
general.tryAgain=Try Again general.tryAgain=Try Again
general.tryLater=Try Later general.tryLater=Try Later
general.showDirectory=Show Directory general.showDirectory=Show Directory
general.showInLibrary=Show in Library general.showInLibrary=Näidata raamatukogus
general.continue=Continue general.continue=Continue
general.copy=Copy general.copy=Kopeerida
general.copyToClipboard=Copy to Clipboard general.copyToClipboard=Lõikepuhvrisse kopeerimine
general.cancel=Cancel general.cancel=Tühistada
general.clear=Clear general.clear=Tühjendada
general.processing=Processing general.processing=Processing
general.finished=Finished general.finished=Finished
general.submitted=Submitted general.submitted=Submitted
@ -183,7 +183,7 @@ dataDir.unsafeLocation.existing.cloud=Your %S data directory appears to be withi
dataDir.unsafeLocation.existing.chooseDifferent=Would you like to choose a different location now? dataDir.unsafeLocation.existing.chooseDifferent=Would you like to choose a different location now?
dataDir.selectedDirNonEmpty.title=Kataloog ei ole tühi dataDir.selectedDirNonEmpty.title=Kataloog ei ole tühi
dataDir.selectedDirNonEmpty.text=Kataloog, mille valisite ei ole ilmselt tühi ja ei ole ka Zotero andmete kataloog.\n\nLuua Zotero failid sellest hoolimata sinna kataloogi? dataDir.selectedDirNonEmpty.text=Kataloog, mille valisite ei ole ilmselt tühi ja ei ole ka Zotero andmete kataloog.\n\nLuua Zotero failid sellest hoolimata sinna kataloogi?
dataDir.mustSelectEmpty.title=Directory Not Empty dataDir.mustSelectEmpty.title=Kataloog ei ole tühi
dataDir.mustSelectEmpty.text=The directory you selected is not empty. You must select an empty directory to continue. dataDir.mustSelectEmpty.text=The directory you selected is not empty. You must select an empty directory to continue.
dataDir.selectedDirEmpty.title=Kataloog on tühi dataDir.selectedDirEmpty.title=Kataloog on tühi
dataDir.selectedDirEmpty.text=Kataloog, mille valisite, on tühi. Et liigutada olemasolev Zotero andmekataloog, on tarvis käsitsi kopeerida failid olemasolevast kataloogist uued asukohta. Selleks on vajalik kõigepealt sulgeda %1$S. dataDir.selectedDirEmpty.text=Kataloog, mille valisite, on tühi. Et liigutada olemasolev Zotero andmekataloog, on tarvis käsitsi kopeerida failid olemasolevast kataloogist uued asukohta. Selleks on vajalik kõigepealt sulgeda %1$S.
@ -311,7 +311,7 @@ pane.items.intro.text3=Already using %S on another computer? [Set up syncing] to
pane.items.title=Items pane.items.title=Items
pane.items.loading=Loading items… pane.items.loading=Loading items…
pane.items.loadError=Error loading items list pane.items.loadError=Error loading items list
pane.items.columnChooser.moreColumns=More Columns pane.items.columnChooser.moreColumns=Rohkem tulpasid
pane.items.columnChooser.secondarySort=Secondary Sort (%S) pane.items.columnChooser.secondarySort=Secondary Sort (%S)
pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again. pane.items.attach.link.uri.unrecognized=Zotero did not recognize the URI you entered. Please check the address and try again.
pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”. pane.items.attach.link.uri.file=To attach a link to a file, please use “%S”.
@ -327,6 +327,9 @@ pane.items.remove.multiple=Are you sure you want to remove the selected items fr
pane.items.removeFromPublications.title=Remove from My Publications pane.items.removeFromPublications.title=Remove from My Publications
pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications? pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications?
pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications? pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications?
pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.menu.addNoteFromAnnotations=Add Note from Annotations
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=Find Available PDF pane.items.menu.findAvailablePDF=Find Available PDF
@ -343,6 +346,8 @@ pane.items.menu.export=Valitud kirje eksportimine...
pane.items.menu.export.multiple=Valitud kirjete eksportimine... pane.items.menu.export.multiple=Valitud kirjete eksportimine...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Valitud kirjest bibliograafia loomine... pane.items.menu.createBib=Valitud kirjest bibliograafia loomine...
pane.items.menu.createBib.multiple=Valitud kirjetest bibliograafia loomine... pane.items.menu.createBib.multiple=Valitud kirjetest bibliograafia loomine...
pane.items.menu.generateReport=Valitud kirjest raporti loomine... pane.items.menu.generateReport=Valitud kirjest raporti loomine...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Create Parent Item…
pane.items.menu.createParent.multiple=Create Parent Items pane.items.menu.createParent.multiple=Create Parent Items
pane.items.menu.renameAttachments=Nimetada fail ülemkirje metadata alusel ümber pane.items.menu.renameAttachments=Nimetada fail ülemkirje metadata alusel ümber
pane.items.menu.renameAttachments.multiple=Nimetada failid ülemkirjete metadata alusel ümber pane.items.menu.renameAttachments.multiple=Nimetada failid ülemkirjete metadata alusel ümber
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Show Item in Library pane.items.showItemInLibrary=Show Item in Library
pane.items.letter.oneParticipant=Kiri %S-le pane.items.letter.oneParticipant=Kiri %S-le
@ -430,7 +437,7 @@ pane.item.related.count.zero=%S seotut:
pane.item.related.count.singular=%S seotud: pane.item.related.count.singular=%S seotud:
pane.item.related.count.plural=%S seotut: pane.item.related.count.plural=%S seotut:
pane.item.parentItem=Ülemkirje: pane.item.parentItem=Ülemkirje:
pane.item.viewOnline.tooltip=Go to this item online pane.item.viewOnline.tooltip=Selle kirje vaatamine võrgus
pane.context.noParent=No parent item pane.context.noParent=No parent item
pane.context.itemNotes=Item Notes pane.context.itemNotes=Item Notes
@ -438,7 +445,7 @@ pane.context.allNotes=All Notes
pane.context.noNotes=No notes pane.context.noNotes=No notes
itemTypes.note=Märkus itemTypes.note=Märkus
itemTypes.annotation=Annotation itemTypes.annotation=Annotatsioon
itemTypes.attachment=Manus itemTypes.attachment=Manus
itemTypes.book=Raamat itemTypes.book=Raamat
itemTypes.bookSection=Osa raamatust itemTypes.bookSection=Osa raamatust
@ -547,7 +554,7 @@ itemFields.runningTime=Kestvus
itemFields.network=Võrk itemFields.network=Võrk
itemFields.postType=Postituse tüüp itemFields.postType=Postituse tüüp
itemFields.audioFileType=Faili tüüp itemFields.audioFileType=Faili tüüp
itemFields.versionNumber=Version itemFields.versionNumber=Versioon
itemFields.system=Süsteem itemFields.system=Süsteem
itemFields.company=Firma itemFields.company=Firma
itemFields.conferenceName=Konverentsi nimi itemFields.conferenceName=Konverentsi nimi
@ -747,7 +754,7 @@ zotero.preferences.advanced.migrateDataDir.directoryWillBeMoved=Your %1$S data d
zotero.preferences.advanced.migrateDataDir.appMustBeRestarted=%S must be restarted to complete the migration. zotero.preferences.advanced.migrateDataDir.appMustBeRestarted=%S must be restarted to complete the migration.
zotero.preferences.advanced.migrateDataDir.manualMigration=You can also quit %1$S and move your existing data directory to %2$S manually, which may be faster for larger data directories. %3$S will automatically detect the new location. zotero.preferences.advanced.migrateDataDir.manualMigration=You can also quit %1$S and move your existing data directory to %2$S manually, which may be faster for larger data directories. %3$S will automatically detect the new location.
zotero.debugOutputLogging=Debug Output Logging zotero.debugOutputLogging=Veateadete logimine
zotero.debugOutputLogging.linesLogged=%1$S line logged;%1$S lines logged zotero.debugOutputLogging.linesLogged=%1$S line logged;%1$S lines logged
zotero.debugOutputLogging.dialog.title=Debug Output Submitted zotero.debugOutputLogging.dialog.title=Debug Output Submitted
zotero.debugOutputLogging.dialog.sent=Debug output has been sent to %S.\n\nThe Debug ID is D%S. zotero.debugOutputLogging.dialog.sent=Debug output has been sent to %S.\n\nThe Debug ID is D%S.
@ -864,22 +871,7 @@ citation.showEditor=Toimetaja näidata...
citation.hideEditor=Toimetaja peita... citation.hideEditor=Toimetaja peita...
citation.citations=Viited citation.citations=Viited
citation.notes=Märkused citation.notes=Märkused
citation.locator.page=Page citation.locator.timestamp=Timestamp
citation.locator.book=Book
citation.locator.chapter=Chapter
citation.locator.column=Column
citation.locator.figure=Figure
citation.locator.folio=Folio
citation.locator.issue=Issue
citation.locator.line=Line
citation.locator.note=Note
citation.locator.opus=Opus
citation.locator.paragraph=Paragraph
citation.locator.part=Part
citation.locator.section=Section
citation.locator.subverbo=Sub verbo
citation.locator.volume=Volume
citation.locator.verse=Verse
report.title.default=Zotero raport report.title.default=Zotero raport
report.parentItem=Ülemkirje: report.parentItem=Ülemkirje:
@ -994,7 +986,7 @@ styles.abbreviations.title=Load Abbreviations
styles.abbreviations.parseError=The abbreviations file "%1$S" is not valid JSON. styles.abbreviations.parseError=The abbreviations file "%1$S" is not valid JSON.
styles.abbreviations.missingInfo=The abbreviations file "%1$S" does not specify a complete info block. styles.abbreviations.missingInfo=The abbreviations file "%1$S" does not specify a complete info block.
sync.sync=Sync sync.sync=Sünkroonimine
sync.syncWith=Sync with %S sync.syncWith=Sync with %S
sync.stopping=Stopping… sync.stopping=Stopping…
sync.cancel=Lõpeta sync sync.cancel=Lõpeta sync
@ -1072,8 +1064,8 @@ sync.conflict.tag.addedToLocal=It has been added to the following local items:
sync.conflict.localItem=Local Item sync.conflict.localItem=Local Item
sync.conflict.remoteItem=Remote Item sync.conflict.remoteItem=Remote Item
sync.conflict.mergedItem=Merged Item sync.conflict.mergedItem=Merged Item
sync.conflict.localFile=Local File sync.conflict.localFile=Kohalik fail
sync.conflict.remoteFile=Remote File sync.conflict.remoteFile=Serveris asuv fail
sync.conflict.resolveAllLocal=Use the local version for all remaining conflicts sync.conflict.resolveAllLocal=Use the local version for all remaining conflicts
sync.conflict.resolveAllRemote=Use the remote version for all remaining conflicts sync.conflict.resolveAllRemote=Use the remote version for all remaining conflicts
sync.conflict.itemChanged=The following item has been changed in multiple locations. Click the version to use for resolving conflicting fields, and then click %S. sync.conflict.itemChanged=The following item has been changed in multiple locations. Click the version to use for resolving conflicting fields, and then click %S.
@ -1098,8 +1090,8 @@ sync.storage.mbRemaining=%SMB remaining
sync.storage.kbRemaining=jäänud on %SKB sync.storage.kbRemaining=jäänud on %SKB
sync.storage.filesRemaining=%1$S/%2$S faili sync.storage.filesRemaining=%1$S/%2$S faili
sync.storage.none=Midagi sync.storage.none=Midagi
sync.storage.downloads=Downloads: sync.storage.downloads=Allalaadimised:
sync.storage.uploads=Uploads: sync.storage.uploads=Üleslaadimised:
sync.storage.localFile=Kohalik fail sync.storage.localFile=Kohalik fail
sync.storage.remoteFile=Serveris asuv fail sync.storage.remoteFile=Serveris asuv fail
sync.storage.savedFile=Salvestatud fail sync.storage.savedFile=Salvestatud fail
@ -1124,7 +1116,7 @@ sync.storage.error.createNow=Kas soovite seda luua?
sync.storage.error.webdav.default=A WebDAV file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences. sync.storage.error.webdav.default=A WebDAV file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.
sync.storage.error.webdav.defaultRestart=A WebDAV file sync error occurred. Please restart %S and try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences. sync.storage.error.webdav.defaultRestart=A WebDAV file sync error occurred. Please restart %S and try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.
sync.storage.error.webdav.enterURL=Please enter a WebDAV URL. sync.storage.error.webdav.enterURL=Sisestage WebDAV URL.
sync.storage.error.webdav.invalidURL=%S ei ole korrektne WebDAV URL. sync.storage.error.webdav.invalidURL=%S ei ole korrektne WebDAV URL.
sync.storage.error.webdav.invalidLogin=WebDAV server ei tunnista sisestatud kasutajanime ja salasõna. sync.storage.error.webdav.invalidLogin=WebDAV server ei tunnista sisestatud kasutajanime ja salasõna.
sync.storage.error.webdav.permissionDenied=Teil puudub WebDAV serveris ligipääs %S-le. sync.storage.error.webdav.permissionDenied=Teil puudub WebDAV serveris ligipääs %S-le.
@ -1176,10 +1168,10 @@ recognizePDF.couldNotRead=PDFist ei õnnetstu teksti lugeda
recognizePDF.noMatches=Sobivaid vasteid ei leitud. recognizePDF.noMatches=Sobivaid vasteid ei leitud.
recognizePDF.fileNotFound=Faili ei leitud. recognizePDF.fileNotFound=Faili ei leitud.
recognizePDF.error=An unexpected error occurred recognizePDF.error=An unexpected error occurred
recognizePDF.recognizing.label=Retrieving Metadata… recognizePDF.recognizing.label=Metaandmete laadimine...
recognizePDF.complete.label=Metaandmete kogumine lõppenud. recognizePDF.complete.label=Metaandmete kogumine lõppenud.
recognizePDF.pdfName.label=PDF Name recognizePDF.pdfName.label=PDFi nimi
recognizePDF.itemName.label=Item Name recognizePDF.itemName.label=Kirje nimi
rtfScan.openTitle=Faili valimine (RTF skänn) rtfScan.openTitle=Faili valimine (RTF skänn)
rtfScan.scanning.label=RTF dokumendi skänn... rtfScan.scanning.label=RTF dokumendi skänn...
@ -1225,7 +1217,7 @@ standalone.corruptInstallation=Your Zotero installation appears to be corrupted
standalone.addonInstallationFailed.title=Lisa paigaldamine nurjus standalone.addonInstallationFailed.title=Lisa paigaldamine nurjus
standalone.addonInstallationFailed.body=The add-on "%S" could not be installed. It may be incompatible with this version of Zotero. standalone.addonInstallationFailed.body=The add-on "%S" could not be installed. It may be incompatible with this version of Zotero.
standalone.rootWarning=You appear to be running Zotero as root. This is insecure and may prevent Zotero from functioning when launched from your user account.\n\nIf you wish to install an automatic update, modify the Zotero program directory to be writable by your user account. standalone.rootWarning=You appear to be running Zotero as root. This is insecure and may prevent Zotero from functioning when launched from your user account.\n\nIf you wish to install an automatic update, modify the Zotero program directory to be writable by your user account.
standalone.rootWarning.exit=Exit standalone.rootWarning.exit=Väljuda
standalone.rootWarning.continue=Continue standalone.rootWarning.continue=Continue
standalone.updateMessage=A recommended update is available, but you do not have permission to install it. To update automatically, modify the Zotero program directory to be writeable by your user account. standalone.updateMessage=A recommended update is available, but you do not have permission to install it. To update automatically, modify the Zotero program directory to be writeable by your user account.
@ -1239,7 +1231,7 @@ firstRunGuidance.toolbarButton.new=Click the ‘Z’ button to open Zotero, or u
firstRunGuidance.toolbarButton.upgrade=The Zotero icon can now be found in the Firefox toolbar. Click the icon to open Zotero, or use the %S keyboard shortcut. firstRunGuidance.toolbarButton.upgrade=The Zotero icon can now be found in the Firefox toolbar. Click the icon to open Zotero, or use the %S keyboard shortcut.
firstRunGuidance.saveButton=Click this button to save any web page to your Zotero library. On some pages, Zotero will be able to save full details, including author and date. firstRunGuidance.saveButton=Click this button to save any web page to your Zotero library. On some pages, Zotero will be able to save full details, including author and date.
styles.bibliography=Bibliography styles.bibliography=Biblograafia
styles.editor.save=Save Citation Style styles.editor.save=Save Citation Style
styles.editor.warning.noItems=No items selected in Zotero. styles.editor.warning.noItems=No items selected in Zotero.
styles.editor.warning.parseError=Error parsing style: styles.editor.warning.parseError=Error parsing style:
@ -1293,9 +1285,9 @@ retraction.citationWarning=A citation in your document has been retracted:
retraction.citationWarning.dontWarn=Don’t warn me about this item again retraction.citationWarning.dontWarn=Don’t warn me about this item again
noteEditor.annotationsDateLine=(%S) noteEditor.annotationsDateLine=(%S)
noteEditor.cut=Cut noteEditor.cut=Lõigata
noteEditor.copy=Copy noteEditor.copy=Kopeerida
noteEditor.paste=Paste noteEditor.paste=Asetada
noteEditor.rightToLeft=Right to Left noteEditor.rightToLeft=Right to Left
noteEditor.leftToRight=Left to Right noteEditor.leftToRight=Left to Right
noteEditor.updateNotice=This note was edited with a newer version of %1$S.\nPlease update %1$S to make changes. noteEditor.updateNotice=This note was edited with a newer version of %1$S.\nPlease update %1$S to make changes.
@ -1303,20 +1295,20 @@ noteEditor.enterLink=Enter Link
noteEditor.heading1=Heading 1 noteEditor.heading1=Heading 1
noteEditor.heading2=Heading 2 noteEditor.heading2=Heading 2
noteEditor.heading3=Heading 3 noteEditor.heading3=Heading 3
noteEditor.paragraph=Paragraph noteEditor.paragraph=Paragrahv
noteEditor.monospaced=Monospaced noteEditor.monospaced=Monospaced
noteEditor.bulletList=Bulleted List noteEditor.bulletList=Bulleted List
noteEditor.orderedList=Numbered List noteEditor.orderedList=Numbered List
noteEditor.blockquote=Block Quote noteEditor.blockquote=Block Quote
noteEditor.formatText=Format Text noteEditor.formatText=Format Text
noteEditor.highlightText=Highlight Text noteEditor.highlightText=Teksti esiletõstmine
noteEditor.removeColor=Remove Color noteEditor.removeColor=Värvi eemaldamine
noteEditor.bold=Bold noteEditor.bold=Rasvane
noteEditor.italic=Italic noteEditor.italic=Kaldkiri
noteEditor.underline=Underline noteEditor.underline=Allajoonitud
noteEditor.strikethrough=Strikethrough noteEditor.strikethrough=Strikethrough
noteEditor.subscript=Subscript noteEditor.subscript=Alaindeks
noteEditor.superscript=Superscript noteEditor.superscript=Ülaindeks
noteEditor.returnToNotesList=Return to Notes List noteEditor.returnToNotesList=Return to Notes List
noteEditor.insertLink=Insert Link noteEditor.insertLink=Insert Link
noteEditor.clearFormatting=Clear Formatting noteEditor.clearFormatting=Clear Formatting
@ -1325,8 +1317,8 @@ noteEditor.alignLeft=Align Left
noteEditor.alignCenter=Align Center noteEditor.alignCenter=Align Center
noteEditor.alignRight=Align Right noteEditor.alignRight=Align Right
noteEditor.insertCitation=Insert Citation noteEditor.insertCitation=Insert Citation
noteEditor.more=More noteEditor.more=Veel
noteEditor.find=Find noteEditor.find=Otsida
noteEditor.replace=Replace noteEditor.replace=Replace
noteEditor.previous=Previous noteEditor.previous=Previous
noteEditor.next=Next noteEditor.next=Next
@ -1338,7 +1330,7 @@ noteEditor.editCitation=Edit Citation
noteEditor.showOnPage=Show on Page noteEditor.showOnPage=Show on Page
noteEditor.unlink=Unlink noteEditor.unlink=Unlink
noteEditor.set=Set noteEditor.set=Set
noteEditor.edit=Edit noteEditor.edit=Toimetada
noteEditor.addCitation=Add Citation noteEditor.addCitation=Add Citation
noteEditor.removeCitation=Hide Citation noteEditor.removeCitation=Hide Citation
noteEditor.findAndReplace=Find and Replace noteEditor.findAndReplace=Find and Replace
@ -1363,8 +1355,8 @@ pdfReader.noAnnotations=Create an annotation to see it in the sidebar
pdfReader.addText=Add extracted text pdfReader.addText=Add extracted text
pdfReader.addComment=Add comment pdfReader.addComment=Add comment
pdfReader.addTags=Add tags… pdfReader.addTags=Add tags…
pdfReader.highlightText=Highlight Text pdfReader.highlightText=Teksti esiletõstmine
pdfReader.addNote=Add Note pdfReader.addNote=Märkuse lisamine
pdfReader.selectArea=Select Area pdfReader.selectArea=Select Area
pdfReader.pickColor=Pick a Color pdfReader.pickColor=Pick a Color
pdfReader.addToNote=Add to Note pdfReader.addToNote=Add to Note
@ -1375,13 +1367,18 @@ pdfReader.zoomPageWidth=Zoom to Page Width
pdfReader.zoomPageHeight=Zoom to Page Height pdfReader.zoomPageHeight=Zoom to Page Height
pdfReader.nextPage=Next Page pdfReader.nextPage=Next Page
pdfReader.previousPage=Previous Page pdfReader.previousPage=Previous Page
pdfReader.page=Page pdfReader.page=Lehekülg
pdfReader.readOnly=Read-only pdfReader.readOnly=Read-only
pdfReader.promptTransferFromPDF.title=Import Annotations pdfReader.promptTransferFromPDF.title=Import Annotations
pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S. pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S.
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

View file

@ -263,7 +263,7 @@ pane.collections.trash=Zaborra
pane.collections.untitled=Titulu gabe pane.collections.untitled=Titulu gabe
pane.collections.unfiled=Artxibatu gabeko elementuak pane.collections.unfiled=Artxibatu gabeko elementuak
pane.collections.retracted=Erretiratutako elementuak pane.collections.retracted=Erretiratutako elementuak
pane.collections.duplicate=Bikoiztu elementuak pane.collections.duplicate=Bikoiztutako elementuak
pane.collections.removeLibrary=Liburutegiak ezabatu pane.collections.removeLibrary=Liburutegiak ezabatu
pane.collections.removeLibrary.text=Ziur zaude "%S" betirako ezabatu nahi duzula ordenagailu honetatik? pane.collections.removeLibrary.text=Ziur zaude "%S" betirako ezabatu nahi duzula ordenagailu honetatik?
@ -327,8 +327,11 @@ pane.items.remove.multiple=Ziur zaude hautatutako elementuak bilduma honetatik e
pane.items.removeFromPublications.title=Ezabatu Nire argitalpenetatik pane.items.removeFromPublications.title=Ezabatu Nire argitalpenetatik
pane.items.removeFromPublications=Ziur zaude hautatutako elementua Nire argitalpenak ataletik ezabatu nahi duzula? pane.items.removeFromPublications=Ziur zaude hautatutako elementua Nire argitalpenak ataletik ezabatu nahi duzula?
pane.items.removeFromPublications.multiple=Ziur zaude hautatutako elementuak Nire argitalpenak ataletik ezabatu nahi dituzula? pane.items.removeFromPublications.multiple=Ziur zaude hautatutako elementuak Nire argitalpenak ataletik ezabatu nahi dituzula?
pane.items.menu.addNoteFromAnnotations=Gehitu oharra oharpenetatik pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.menu.addNoteFromAnnotations.multiple=Gehitu oharrak oharpenetatik pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Sortu ohar bat oharpenekin
pane.items.menu.addNoteFromAnnotations.multiple=Sortu oharrak oharpenekin
pane.items.menu.findAvailablePDF=Aurkitu eskuragarri den PDFa pane.items.menu.findAvailablePDF=Aurkitu eskuragarri den PDFa
pane.items.menu.findAvailablePDF.multiple=Aurkitu eskuragarri diren PDFak pane.items.menu.findAvailablePDF.multiple=Aurkitu eskuragarri diren PDFak
pane.items.menu.addToCollection=Bilduman gehitu pane.items.menu.addToCollection=Bilduman gehitu
@ -343,6 +346,8 @@ pane.items.menu.export=Elementua esportatu...
pane.items.menu.export.multiple=Elementuak esportatu... pane.items.menu.export.multiple=Elementuak esportatu...
pane.items.menu.exportNote=Esportatu oharra... pane.items.menu.exportNote=Esportatu oharra...
pane.items.menu.exportNote.multiple=Esportatu oharrak... pane.items.menu.exportNote.multiple=Esportatu oharrak...
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Sortu bibliografia elementutik... pane.items.menu.createBib=Sortu bibliografia elementutik...
pane.items.menu.createBib.multiple=Sortu bibliografia elementuetatik... pane.items.menu.createBib.multiple=Sortu bibliografia elementuetatik...
pane.items.menu.generateReport=Sortu txostena elementutik... pane.items.menu.generateReport=Sortu txostena elementutik...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Guraso elementua sortu...
pane.items.menu.createParent.multiple=Elementu gurasoak sortu pane.items.menu.createParent.multiple=Elementu gurasoak sortu
pane.items.menu.renameAttachments=Berrizendatu fitxategia gurasoaren metadatuen arabera pane.items.menu.renameAttachments=Berrizendatu fitxategia gurasoaren metadatuen arabera
pane.items.menu.renameAttachments.multiple=Berrizendatu fitxategiak gurasoen metadatuen arabera pane.items.menu.renameAttachments.multiple=Berrizendatu fitxategiak gurasoen metadatuen arabera
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Erakutsi elementua liburutegian pane.items.showItemInLibrary=Erakutsi elementua liburutegian
pane.items.letter.oneParticipant=Gutuna %S-(r)i pane.items.letter.oneParticipant=Gutuna %S-(r)i
@ -430,7 +437,7 @@ pane.item.related.count.zero=%S erlaziodun:
pane.item.related.count.singular=erlaziodun %S: pane.item.related.count.singular=erlaziodun %S:
pane.item.related.count.plural=%S erlaziodun: pane.item.related.count.plural=%S erlaziodun:
pane.item.parentItem=Guraso elementua: pane.item.parentItem=Guraso elementua:
pane.item.viewOnline.tooltip=Go to this item online pane.item.viewOnline.tooltip=Ikusi elementu hau linean
pane.context.noParent=Ez du guraso elementurik pane.context.noParent=Ez du guraso elementurik
pane.context.itemNotes=Elementuaren oharrak pane.context.itemNotes=Elementuaren oharrak
@ -722,7 +729,7 @@ zotero.preferences.export.quickCopy.citationInstructions=Aipuen estilotarako, ai
zotero.preferences.wordProcessors.installationSuccess=Instalazioa zuzen burutu da. zotero.preferences.wordProcessors.installationSuccess=Instalazioa zuzen burutu da.
zotero.preferences.wordProcessors.installationError=Ezin izan da instalazioa burutu errore bat gertatu delako. Mesedez ziurtatu %1$S itxita dagoela, eta orduan berrabiarazi %2$S. zotero.preferences.wordProcessors.installationError=Ezin izan da instalazioa burutu errore bat gertatu delako. Mesedez ziurtatu %1$S itxita dagoela, eta orduan berrabiarazi %2$S.
zotero.preferences.wordProcessors.manualInstallation.button=Manual Installation zotero.preferences.wordProcessors.manualInstallation.button=Eskuz instalatu
zotero.preferences.wordProcessors.installed=%S gehigarria instalatuta dago. zotero.preferences.wordProcessors.installed=%S gehigarria instalatuta dago.
zotero.preferences.wordProcessors.notInstalled=%S gehigarria ez dago instalatuta. zotero.preferences.wordProcessors.notInstalled=%S gehigarria ez dago instalatuta.
zotero.preferences.wordProcessors.install=%S gehigarria instalatu zotero.preferences.wordProcessors.install=%S gehigarria instalatu
@ -864,22 +871,7 @@ citation.showEditor=Erakutsi Editorea...
citation.hideEditor=Ezkutatu Editorea... citation.hideEditor=Ezkutatu Editorea...
citation.citations=Aipuak citation.citations=Aipuak
citation.notes=Oharrak citation.notes=Oharrak
citation.locator.page=Orrialdea citation.locator.timestamp=Timestamp
citation.locator.book=Liburua
citation.locator.chapter=Kapitulua
citation.locator.column=Zutabea
citation.locator.figure=Irudia
citation.locator.folio=Folioa
citation.locator.issue=Zenbakia
citation.locator.line=Lerroa
citation.locator.note=Oharra
citation.locator.opus=Opusa
citation.locator.paragraph=Paragrafoa
citation.locator.part=Zatia
citation.locator.section=Atala
citation.locator.subverbo=Sub verbo
citation.locator.volume=Liburukia
citation.locator.verse=Bertsoa
report.title.default=Zotero Txostena report.title.default=Zotero Txostena
report.parentItem=Guraso elementua: report.parentItem=Guraso elementua:
@ -1210,8 +1202,8 @@ lookup.failureTooMany.description=Identifikatzaile gehiegi. Mesedez sar ezazu id
createParent.prompt=Adierazi DOI, ISBN, PMID, arXiv ID edo ADS Bibcode bat fitxategi hau identifikatzeko createParent.prompt=Adierazi DOI, ISBN, PMID, arXiv ID edo ADS Bibcode bat fitxategi hau identifikatzeko
locate.online.label=Linean ikusi locate.online.label=Linean ikusi
locate.pdf.label=Open PDF locate.pdf.label=Ireki PDFa
locate.pdfNewWindow.label=Open PDF in New Window locate.pdfNewWindow.label=Ireki PDFa leiho berrian
locate.snapshot.label=Pantaila-argazkia ikusi locate.snapshot.label=Pantaila-argazkia ikusi
locate.file.label=Ikusi fitxategia locate.file.label=Ikusi fitxategia
locate.externalViewer.label=Kanpo-ikustailean ireki locate.externalViewer.label=Kanpo-ikustailean ireki
@ -1347,14 +1339,14 @@ noteEditor.applyAnnotationColors=Oharpenen koloreak erakutsi
noteEditor.removeAnnotationColors=Oharpenen koloreak ezkutatu noteEditor.removeAnnotationColors=Oharpenen koloreak ezkutatu
noteEditor.addCitations=Oharpen aipuak erakutsi noteEditor.addCitations=Oharpen aipuak erakutsi
noteEditor.removeCitations=Oharpen aipuak ezkutatu noteEditor.removeCitations=Oharpen aipuak ezkutatu
noteEditor.insertTable=Insert Table noteEditor.insertTable=Txertatu taula
noteEditor.insertRowBefore=Insert Row Above noteEditor.insertRowBefore=Txertatu errenkada gainean
noteEditor.insertRowAfter=Insert Row Below noteEditor.insertRowAfter=Txertatu errenkada azpian
noteEditor.insertColumnBefore=Insert Column Left noteEditor.insertColumnBefore=Txertatu zutabea ezkerrean
noteEditor.insertColumnAfter=Insert Column Right noteEditor.insertColumnAfter=Txertatu zutabea eskubian
noteEditor.deleteRow=Delete Row noteEditor.deleteRow=Ezabatu errenkada
noteEditor.deleteColumn=Delete Column noteEditor.deleteColumn=Ezabatu zutabea
noteEditor.deleteTable=Delete Table noteEditor.deleteTable=Ezabatu taula
pdfReader.annotations=Oharpenak pdfReader.annotations=Oharpenak
pdfReader.showAnnotations=Erakutsi oharpenak pdfReader.showAnnotations=Erakutsi oharpenak
@ -1382,6 +1374,11 @@ pdfReader.promptTransferFromPDF.text=PDF fitxategian jasotako oharpenak %1$S(e)r
pdfReader.promptTransferToPDF.title=Oharpenak fitxategian gorde pdfReader.promptTransferToPDF.title=Oharpenak fitxategian gorde
pdfReader.promptTransferToPDF.text=Oharpenak PDF fitxategira transferituko dira eta ezingo dira aurrerantzean %S(e)n editatu. pdfReader.promptTransferToPDF.text=Oharpenak PDF fitxategira transferituko dira eta ezingo dira aurrerantzean %S(e)n editatu.
pdfReader.promptPasswordProtected=Prozedura ez da onartzen pasahitzez babestutako PDF fitxategietan. pdfReader.promptPasswordProtected=Prozedura ez da onartzen pasahitzez babestutako PDF fitxategietan.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Orrialde zenbakia editatu... pdfReader.editPageNumber=Orrialde zenbakia editatu...
pdfReader.editHighlightedText=Nabarmendutako testua editatu pdfReader.editHighlightedText=Nabarmendutako testua editatu
pdfReader.pageNumberPopupHeader=Honakoagatik aldatu orrialde zenbakia: pdfReader.pageNumberPopupHeader=Honakoagatik aldatu orrialde zenbakia:
@ -1404,6 +1401,6 @@ tabs.move=Mugitu fitxa
tabs.moveToStart=Hasierara mugitu tabs.moveToStart=Hasierara mugitu
tabs.moveToEnd=Amaierara mugitu tabs.moveToEnd=Amaierara mugitu
tabs.moveToWindow=Leiho berri batera mugitu tabs.moveToWindow=Leiho berri batera mugitu
tabs.duplicate=Duplicate Tab tabs.duplicate=Bikoiztu fitxa
tabs.undoClose=Ireki berriro itxitako fitxa;Ireki berriro itxitako fitxak tabs.undoClose=Ireki berriro itxitako fitxa;Ireki berriro itxitako fitxak
tabs.closeOther=Itxi beste fitxak tabs.closeOther=Itxi beste fitxak

View file

@ -5,6 +5,21 @@
"general_done": { "general_done": {
"message": "انجام شد" "message": "انجام شد"
}, },
"general_yes": {
"message": "بله"
},
"general_no": {
"message": "خیر"
},
"general_warning": {
"message": "اخطار"
},
"general_cancel": {
"message": "انصراف"
},
"general_copyToClipboard": {
"message": "رونوشت به حافظه"
},
"progressWindow_savingTo": { "progressWindow_savingTo": {
"message": "ذخیره در" "message": "ذخیره در"
}, },

View file

@ -1,7 +1,7 @@
<!ENTITY styles.preview "Zotero Style Preview"> <!ENTITY styles.preview "Zotero Style Preview">
<!ENTITY styles.preview.citationFormat "Citation Format:"> <!ENTITY styles.preview.citationFormat "Citation Format:">
<!ENTITY styles.preview.citationFormat.all "all"> <!ENTITY styles.preview.citationFormat.all "همه">
<!ENTITY styles.preview.citationFormat.author "author"> <!ENTITY styles.preview.citationFormat.author "author">
<!ENTITY styles.preview.citationFormat.authorDate "author-date"> <!ENTITY styles.preview.citationFormat.authorDate "author-date">
<!ENTITY styles.preview.citationFormat.label "label"> <!ENTITY styles.preview.citationFormat.label "label">

View file

@ -41,7 +41,7 @@
<!ENTITY zotero.preferences.feeds.feedDefaults "Feed Defaults"> <!ENTITY zotero.preferences.feeds.feedDefaults "Feed Defaults">
<!ENTITY zotero.preferences.openurl.choose "Choose a resolver…"> <!ENTITY zotero.preferences.openurl.choose "Choose a resolver…">
<!ENTITY zotero.preferences.openurl.custom "Custom…"> <!ENTITY zotero.preferences.openurl.custom "سفارشی...">
<!ENTITY zotero.preferences.openurl.server "تشخیص‌دهنده (resolver):"> <!ENTITY zotero.preferences.openurl.server "تشخیص‌دهنده (resolver):">
<!ENTITY zotero.preferences.openurl.version "نگارش:"> <!ENTITY zotero.preferences.openurl.version "نگارش:">
@ -164,7 +164,7 @@
<!ENTITY zotero.preferences.prefpane.advanced "پیشرفته"> <!ENTITY zotero.preferences.prefpane.advanced "پیشرفته">
<!ENTITY zotero.preferences.advanced.filesAndFolders "پرونده‌ها و پوشه‌ها"> <!ENTITY zotero.preferences.advanced.filesAndFolders "پرونده‌ها و پوشه‌ها">
<!ENTITY zotero.preferences.advanced.keys "Shortcuts"> <!ENTITY zotero.preferences.advanced.keys "کلیدهای میان‌بر">
<!ENTITY zotero.preferences.advanced.advancedConfiguration "Advanced Configuration"> <!ENTITY zotero.preferences.advanced.advancedConfiguration "Advanced Configuration">
@ -182,7 +182,7 @@
<!ENTITY zotero.preferences.dataDir "محل ذخیره اطلاعات"> <!ENTITY zotero.preferences.dataDir "محل ذخیره اطلاعات">
<!ENTITY zotero.preferences.dataDir.useProfile "استفاده از پوشه پروفایل فایرفاکس"> <!ENTITY zotero.preferences.dataDir.useProfile "استفاده از پوشه پروفایل فایرفاکس">
<!ENTITY zotero.preferences.dataDir.custom "محل دلخواه:"> <!ENTITY zotero.preferences.dataDir.custom "محل دلخواه:">
<!ENTITY zotero.preferences.dataDir.choose "Choose…"> <!ENTITY zotero.preferences.dataDir.choose "انتخاب...">
<!ENTITY zotero.preferences.dataDir.viaCommandLine "(specified via command line)"> <!ENTITY zotero.preferences.dataDir.viaCommandLine "(specified via command line)">
<!ENTITY zotero.preferences.dataDir.reveal "نمایش محل ذخیره اطلاعات"> <!ENTITY zotero.preferences.dataDir.reveal "نمایش محل ذخیره اطلاعات">
<!ENTITY zotero.preferences.dataDir.migrate "Migrate To New Default Location…"> <!ENTITY zotero.preferences.dataDir.migrate "Migrate To New Default Location…">

View file

@ -95,11 +95,11 @@
<!ENTITY helpReportErrors.label "گزارش خطاها"> <!ENTITY helpReportErrors.label "گزارش خطاها">
<!ENTITY helpReportErrors.accesskey "R"> <!ENTITY helpReportErrors.accesskey "R">
<!ENTITY debugOutputLogging.label "Debug Output Logging"> <!ENTITY debugOutputLogging.label "ثبت وقایع برای اشکال‌زدایی">
<!ENTITY debugOutputLogging.accesskey "L"> <!ENTITY debugOutputLogging.accesskey "L">
<!ENTITY debugOutputLogging.submit "Submit Output"> <!ENTITY debugOutputLogging.submit "Submit Output">
<!ENTITY debugOutputLogging.view "View Output"> <!ENTITY debugOutputLogging.view "نمایش خروجی">
<!ENTITY debugOutputLogging.clear "Clear Output"> <!ENTITY debugOutputLogging.clear "پاک کردن خروجی">
<!ENTITY debugOutputLogging.restartWithLoggingEnabled "Restart with Logging Enabled…"> <!ENTITY debugOutputLogging.restartWithLoggingEnabled "Restart with Logging Enabled…">
<!ENTITY helpCheckForUpdates.label "بررسی بروزرسانی..."> <!ENTITY helpCheckForUpdates.label "بررسی بروزرسانی...">

View file

@ -1,27 +1,27 @@
<!ENTITY zotero.general.yes "Yes"> <!ENTITY zotero.general.yes "بله">
<!ENTITY zotero.general.no "No"> <!ENTITY zotero.general.no "خیر">
<!ENTITY zotero.general.optional "(اختیاری)"> <!ENTITY zotero.general.optional "(اختیاری)">
<!ENTITY zotero.general.note "یادداشت:"> <!ENTITY zotero.general.note "یادداشت:">
<!ENTITY zotero.general.selectAll "انتخاب همه"> <!ENTITY zotero.general.selectAll "انتخاب همه">
<!ENTITY zotero.general.deselectAll "انتخاب هیچ‌کدام"> <!ENTITY zotero.general.deselectAll "انتخاب هیچ‌کدام">
<!ENTITY zotero.general.edit "ویرایش"> <!ENTITY zotero.general.edit "ویرایش">
<!ENTITY zotero.general.delete "حذف"> <!ENTITY zotero.general.delete "حذف">
<!ENTITY zotero.general.moveToTrash "Move to Trash"> <!ENTITY zotero.general.moveToTrash "انتقال به سطل بازیافت">
<!ENTITY zotero.general.ok "تایید"> <!ENTITY zotero.general.ok "تایید">
<!ENTITY zotero.general.cancel "انصراف"> <!ENTITY zotero.general.cancel "انصراف">
<!ENTITY zotero.general.refresh "Refresh"> <!ENTITY zotero.general.refresh "Refresh">
<!ENTITY zotero.general.saveAs "Save As…"> <!ENTITY zotero.general.saveAs "Save As…">
<!ENTITY zotero.general.options "Options"> <!ENTITY zotero.general.options "Options">
<!ENTITY zotero.general.advancedOptions.label "Advanced Options"> <!ENTITY zotero.general.advancedOptions.label "Advanced Options">
<!ENTITY zotero.general.tools "Tools"> <!ENTITY zotero.general.tools "ابزارها">
<!ENTITY zotero.general.more "More"> <!ENTITY zotero.general.more "بیشتر">
<!ENTITY zotero.general.loading "Loading…"> <!ENTITY zotero.general.loading "Loading…">
<!ENTITY zotero.general.close "Close"> <!ENTITY zotero.general.close "بستن">
<!ENTITY zotero.general.minimize "Minimize"> <!ENTITY zotero.general.minimize "کوچک‌ کردن">
<!ENTITY zotero.general.other "Other…"> <!ENTITY zotero.general.other "Other…">
<!ENTITY zotero.general.bigger "Bigger"> <!ENTITY zotero.general.bigger "Bigger">
<!ENTITY zotero.general.smaller "Smaller"> <!ENTITY zotero.general.smaller "Smaller">
<!ENTITY zotero.general.reset "Reset"> <!ENTITY zotero.general.reset "تنظیم مجدد">
<!ENTITY zotero.errorReport.title "گزارش خطا در زوترو"> <!ENTITY zotero.errorReport.title "گزارش خطا در زوترو">
@ -93,7 +93,7 @@
<!ENTITY zotero.toolbar.import.label "درون‌برد..."> <!ENTITY zotero.toolbar.import.label "درون‌برد...">
<!ENTITY zotero.toolbar.importFromClipboard "درون‌برد از حافظه"> <!ENTITY zotero.toolbar.importFromClipboard "درون‌برد از حافظه">
<!ENTITY zotero.toolbar.export.label "صدور کتابخانه..."> <!ENTITY zotero.toolbar.export.label "صدور کتابخانه...">
<!ENTITY zotero.toolbar.rtfScan.label "RTF Scan"> <!ENTITY zotero.toolbar.rtfScan.label "پیمایش RTF">
<!ENTITY zotero.toolbar.timeline.label "ساخت Time Line"> <!ENTITY zotero.toolbar.timeline.label "ساخت Time Line">
<!ENTITY zotero.toolbar.preferences.label "تنظیمات..."> <!ENTITY zotero.toolbar.preferences.label "تنظیمات...">
<!ENTITY zotero.toolbar.supportAndDocumentation "پشتیبانی و راهنما"> <!ENTITY zotero.toolbar.supportAndDocumentation "پشتیبانی و راهنما">
@ -114,7 +114,7 @@
<!ENTITY zotero.item.textTransform.titlecase "حروف اول بزرگ"> <!ENTITY zotero.item.textTransform.titlecase "حروف اول بزرگ">
<!ENTITY zotero.item.textTransform.sentencecase "Sentence case"> <!ENTITY zotero.item.textTransform.sentencecase "Sentence case">
<!ENTITY zotero.item.creatorTransform.nameSwap "Swap First/Last Names"> <!ENTITY zotero.item.creatorTransform.nameSwap "Swap First/Last Names">
<!ENTITY zotero.item.viewOnline "View Online"> <!ENTITY zotero.item.viewOnline "نمایش نسخه برخط">
<!ENTITY zotero.item.copyAsURL "Copy as URL"> <!ENTITY zotero.item.copyAsURL "Copy as URL">
<!ENTITY zotero.item.deletePermanently "Delete Permanently…"> <!ENTITY zotero.item.deletePermanently "Delete Permanently…">
@ -129,7 +129,7 @@
<!ENTITY zotero.toolbar.attachment.weblink "ذخیره پیوند به صفحه جاری"> <!ENTITY zotero.toolbar.attachment.weblink "ذخیره پیوند به صفحه جاری">
<!ENTITY zotero.toolbar.attachment.snapshot "گرفتن تصویر لحظه‌ای از صفحه جاری"> <!ENTITY zotero.toolbar.attachment.snapshot "گرفتن تصویر لحظه‌ای از صفحه جاری">
<!ENTITY zotero.toolbar.context.item "Item"> <!ENTITY zotero.toolbar.context.item "Item">
<!ENTITY zotero.toolbar.context.notes "Notes"> <!ENTITY zotero.toolbar.context.notes "یادداشت‌ها">
<!ENTITY zotero.tagSelector.noTagsToDisplay "هیچ برچسبی برای نمایش وجود ندارد"> <!ENTITY zotero.tagSelector.noTagsToDisplay "هیچ برچسبی برای نمایش وجود ندارد">
<!ENTITY zotero.tagSelector.loadingTags "Loading tags…"> <!ENTITY zotero.tagSelector.loadingTags "Loading tags…">
@ -177,7 +177,7 @@
<!ENTITY zotero.progress.title "پیشرفت"> <!ENTITY zotero.progress.title "پیشرفت">
<!ENTITY zotero.import "Import"> <!ENTITY zotero.import "درون‌برد">
<!ENTITY zotero.import.whereToImportFrom "Where do you want to import from?"> <!ENTITY zotero.import.whereToImportFrom "Where do you want to import from?">
<!ENTITY zotero.import.source.file "A file (BibTeX, RIS, Zotero RDF, etc.)"> <!ENTITY zotero.import.source.file "A file (BibTeX, RIS, Zotero RDF, etc.)">
<!ENTITY zotero.import.importing "Importing…"> <!ENTITY zotero.import.importing "Importing…">
@ -263,8 +263,8 @@
<!ENTITY zotero.feedSettings.title "Feed Settings"> <!ENTITY zotero.feedSettings.title "Feed Settings">
<!ENTITY zotero.feedSettings.saveButton.label "Save"> <!ENTITY zotero.feedSettings.saveButton.label "Save">
<!ENTITY zotero.feedSettings.url.label "URL:"> <!ENTITY zotero.feedSettings.url.label "آدرس:">
<!ENTITY zotero.feedSettings.title.label "Title:"> <!ENTITY zotero.feedSettings.title.label "عنوان:">
<!ENTITY zotero.feedSettings.refresh.label1 "Update feed every"> <!ENTITY zotero.feedSettings.refresh.label1 "Update feed every">
<!ENTITY zotero.feedSettings.refresh.label2 "hour(s)"> <!ENTITY zotero.feedSettings.refresh.label2 "hour(s)">
<!ENTITY zotero.feedSettings.cleanupUnreadAfter.label1 "Remove unread feed items after"> <!ENTITY zotero.feedSettings.cleanupUnreadAfter.label1 "Remove unread feed items after">
@ -307,7 +307,7 @@
<!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations"> <!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations">
<!ENTITY zotero.context.editInWindow "Edit in a Separate Window"> <!ENTITY zotero.context.editInWindow "Edit in a Separate Window">
<!ENTITY zotero.pdfReader.firstPage "First Page"> <!ENTITY zotero.pdfReader.firstPage "صفحه اول">
<!ENTITY zotero.pdfReader.lastPage "Last Page"> <!ENTITY zotero.pdfReader.lastPage "Last Page">
<!ENTITY zotero.pdfReader.back "Back"> <!ENTITY zotero.pdfReader.back "Back">
<!ENTITY zotero.pdfReader.forward "Forward"> <!ENTITY zotero.pdfReader.forward "Forward">

View file

@ -19,8 +19,8 @@ general.unknownErrorOccurred=خطای ناشناخته.
general.invalidResponseServer=Invalid response from server. general.invalidResponseServer=Invalid response from server.
general.tryAgainLater=Please try again in a few minutes. general.tryAgainLater=Please try again in a few minutes.
general.serverError=The server returned an error. Please try again. general.serverError=The server returned an error. Please try again.
general.pleaseRestart=Please restart %S. general.pleaseRestart=لطفا فایرفاکس را دوباره راه‌اندازی کنید.
general.pleaseRestartAndTryAgain=Please restart %S and try again. general.pleaseRestartAndTryAgain=لطفا فایرفاکس را مجددا راه‌اندازی و دوباره تلاش کنید.
general.checkForUpdate=بررسی به روزرسانی general.checkForUpdate=بررسی به روزرسانی
general.checkForUpdates=Check for Updates general.checkForUpdates=Check for Updates
general.actionCannotBeUndone=این عمل قابل بازگشت نیست. general.actionCannotBeUndone=این عمل قابل بازگشت نیست.
@ -45,14 +45,14 @@ general.character.plural=نویسه‌ها
general.create=ساختن general.create=ساختن
general.delete=حذف general.delete=حذف
general.remove=حذف general.remove=حذف
general.import=Import general.import=درون‌برد
general.export=Export general.export=صدور
general.update=Update general.update=Update
general.moreInformation=اطلاعات بیشتر general.moreInformation=اطلاعات بیشتر
general.learnMore=Learn More general.learnMore=Learn More
general.seeForMoreInformation=برای اطلاعات بیشتر %S را ببینید general.seeForMoreInformation=برای اطلاعات بیشتر %S را ببینید
general.open=Open %S general.open=Open %S
general.close=Close general.close=بستن
general.enable=فعال general.enable=فعال
general.disable=غیرفعال general.disable=غیرفعال
general.reset=تنظیم مجدد general.reset=تنظیم مجدد
@ -71,12 +71,12 @@ general.fix=Fix…
general.tryAgain=Try Again general.tryAgain=Try Again
general.tryLater=Try Later general.tryLater=Try Later
general.showDirectory=Show Directory general.showDirectory=Show Directory
general.showInLibrary=Show in Library general.showInLibrary=نمایش در کتابخانه
general.continue=Continue general.continue=ادامه
general.copy=Copy general.copy=کپی
general.copyToClipboard=Copy to Clipboard general.copyToClipboard=رونوشت به حافظه
general.cancel=Cancel general.cancel=انصراف
general.clear=Clear general.clear=پاک کردن
general.processing=Processing general.processing=Processing
general.finished=Finished general.finished=Finished
general.submitted=Submitted general.submitted=Submitted
@ -183,7 +183,7 @@ dataDir.unsafeLocation.existing.cloud=Your %S data directory appears to be withi
dataDir.unsafeLocation.existing.chooseDifferent=Would you like to choose a different location now? dataDir.unsafeLocation.existing.chooseDifferent=Would you like to choose a different location now?
dataDir.selectedDirNonEmpty.title=پوشه خالی نیست dataDir.selectedDirNonEmpty.title=پوشه خالی نیست
dataDir.selectedDirNonEmpty.text=پوشه انتخاب شده خالی نیست و به نظر نمی‌رسد که پوشه داده‌های زوترو باشد. \n\n آیا به هرحال می‌خواهید پرونده‌های زوترو در این پوشه ساخته شوند؟ dataDir.selectedDirNonEmpty.text=پوشه انتخاب شده خالی نیست و به نظر نمی‌رسد که پوشه داده‌های زوترو باشد. \n\n آیا به هرحال می‌خواهید پرونده‌های زوترو در این پوشه ساخته شوند؟
dataDir.mustSelectEmpty.title=Directory Not Empty dataDir.mustSelectEmpty.title=پوشه خالی نیست
dataDir.mustSelectEmpty.text=The directory you selected is not empty. You must select an empty directory to continue. dataDir.mustSelectEmpty.text=The directory you selected is not empty. You must select an empty directory to continue.
dataDir.selectedDirEmpty.title=Directory Empty dataDir.selectedDirEmpty.title=Directory Empty
dataDir.selectedDirEmpty.text=The directory you selected is empty. To move an existing Zotero data directory, you will need to manually move files from the existing data directory to the new location after %1$S has closed. dataDir.selectedDirEmpty.text=The directory you selected is empty. To move an existing Zotero data directory, you will need to manually move files from the existing data directory to the new location after %1$S has closed.
@ -254,7 +254,7 @@ pane.collections.newSavedSeach=جستجوی ذخیره شده جدید
pane.collections.savedSearchName=یک نام برای این جستجوی ذخیره شده وارد کنید: pane.collections.savedSearchName=یک نام برای این جستجوی ذخیره شده وارد کنید:
pane.collections.rename=تغییر نام مجموعه: pane.collections.rename=تغییر نام مجموعه:
pane.collections.library=کتابخانه pane.collections.library=کتابخانه
pane.collections.publications=My Publications pane.collections.publications=نگارش‌های من
pane.collections.feeds=Feeds pane.collections.feeds=Feeds
pane.collections.libraryAndFeeds=My Library & Feeds pane.collections.libraryAndFeeds=My Library & Feeds
pane.collections.groupLibraries=Group Libraries pane.collections.groupLibraries=Group Libraries
@ -327,6 +327,9 @@ pane.items.remove.multiple=آیا اطمینان دارید که می خواه
pane.items.removeFromPublications.title=Remove from My Publications pane.items.removeFromPublications.title=Remove from My Publications
pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications? pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications?
pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications? pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications?
pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.menu.addNoteFromAnnotations=Add Note from Annotations
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=Find Available PDF pane.items.menu.findAvailablePDF=Find Available PDF
@ -343,6 +346,8 @@ pane.items.menu.export=صدور این آیتم...
pane.items.menu.export.multiple=صدور آیتم‌‌های انتخاب شده... pane.items.menu.export.multiple=صدور آیتم‌‌های انتخاب شده...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=ساخت کتابنامه از این آیتم... pane.items.menu.createBib=ساخت کتابنامه از این آیتم...
pane.items.menu.createBib.multiple=ساخت کتابنامه از آیتم‌‌های انتخاب شده... pane.items.menu.createBib.multiple=ساخت کتابنامه از آیتم‌‌های انتخاب شده...
pane.items.menu.generateReport=تولید گزارش از این آیتم... pane.items.menu.generateReport=تولید گزارش از این آیتم...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Create Parent Item…
pane.items.menu.createParent.multiple=Create Parent Items pane.items.menu.createParent.multiple=Create Parent Items
pane.items.menu.renameAttachments=تغییر نام پرونده با توجه به فراداده‌های مادر pane.items.menu.renameAttachments=تغییر نام پرونده با توجه به فراداده‌های مادر
pane.items.menu.renameAttachments.multiple=تغییر نام پرونده‌ها با توجه به فراداده‌های مادر pane.items.menu.renameAttachments.multiple=تغییر نام پرونده‌ها با توجه به فراداده‌های مادر
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=نمایش آیتم در کتابخانه pane.items.showItemInLibrary=نمایش آیتم در کتابخانه
pane.items.letter.oneParticipant=نامه به %S pane.items.letter.oneParticipant=نامه به %S
@ -430,7 +437,7 @@ pane.item.related.count.zero=بدون آیتم‌ مرتبط:
pane.item.related.count.singular=یک آیتم‌ مرتبط: pane.item.related.count.singular=یک آیتم‌ مرتبط:
pane.item.related.count.plural=%S آیتم‌ مرتبط: pane.item.related.count.plural=%S آیتم‌ مرتبط:
pane.item.parentItem=آیتم مادر: pane.item.parentItem=آیتم مادر:
pane.item.viewOnline.tooltip=Go to this item online pane.item.viewOnline.tooltip=رفتن به نسخه برخط این آیتم
pane.context.noParent=No parent item pane.context.noParent=No parent item
pane.context.itemNotes=Item Notes pane.context.itemNotes=Item Notes
@ -438,7 +445,7 @@ pane.context.allNotes=All Notes
pane.context.noNotes=No notes pane.context.noNotes=No notes
itemTypes.note=یادداشت itemTypes.note=یادداشت
itemTypes.annotation=Annotation itemTypes.annotation=حاشیه‌نویسی
itemTypes.attachment=پیوست itemTypes.attachment=پیوست
itemTypes.book=کتاب itemTypes.book=کتاب
itemTypes.bookSection=فصل کتاب itemTypes.bookSection=فصل کتاب
@ -547,7 +554,7 @@ itemFields.runningTime=زمان اجرا
itemFields.network=شبکه itemFields.network=شبکه
itemFields.postType=نوع پست itemFields.postType=نوع پست
itemFields.audioFileType=نوع پرونده itemFields.audioFileType=نوع پرونده
itemFields.versionNumber=Version itemFields.versionNumber=نگارش
itemFields.system=سامانه itemFields.system=سامانه
itemFields.company=شرکت itemFields.company=شرکت
itemFields.conferenceName=نام کنفرانس itemFields.conferenceName=نام کنفرانس
@ -636,11 +643,11 @@ save.error.cannotAddToMyPublications=You cannot save items directly to My Public
save.error.cannotAddToFeed=You cannot save items to feeds. save.error.cannotAddToFeed=You cannot save items to feeds.
ingester.scraping=در حال ذخیره... ingester.scraping=در حال ذخیره...
ingester.scrapingTo=Saving to ingester.scrapingTo=ذخیره در
ingester.scrapeComplete=ذخیره شد ingester.scrapeComplete=ذخیره شد
ingester.scrapeError=ذخیره امکان‌پذیر نیست ingester.scrapeError=ذخیره امکان‌پذیر نیست
ingester.scrapeErrorDescription=در زمان ذخیره این آیتم‌، خطایی رخ داد. %S را برای اطلاعات بیشتر چک کنید. ingester.scrapeErrorDescription=در زمان ذخیره این آیتم‌، خطایی رخ داد. %S را برای اطلاعات بیشتر چک کنید.
ingester.scrapeErrorDescription.linkText=Troubleshooting Translator Issues ingester.scrapeErrorDescription.linkText=عیب‌یابی مشکلات مترجم
ingester.scrapeErrorDescription.previousError=فرایند ذخیره به خاطر خطای قبلی زوترو با شکست مواجه شد. ingester.scrapeErrorDescription.previousError=فرایند ذخیره به خاطر خطای قبلی زوترو با شکست مواجه شد.
ingester.importFile.title=واردکردن فایل ingester.importFile.title=واردکردن فایل
@ -747,7 +754,7 @@ zotero.preferences.advanced.migrateDataDir.directoryWillBeMoved=Your %1$S data d
zotero.preferences.advanced.migrateDataDir.appMustBeRestarted=%S must be restarted to complete the migration. zotero.preferences.advanced.migrateDataDir.appMustBeRestarted=%S must be restarted to complete the migration.
zotero.preferences.advanced.migrateDataDir.manualMigration=You can also quit %1$S and move your existing data directory to %2$S manually, which may be faster for larger data directories. %3$S will automatically detect the new location. zotero.preferences.advanced.migrateDataDir.manualMigration=You can also quit %1$S and move your existing data directory to %2$S manually, which may be faster for larger data directories. %3$S will automatically detect the new location.
zotero.debugOutputLogging=Debug Output Logging zotero.debugOutputLogging=ثبت وقایع برای اشکال‌زدایی
zotero.debugOutputLogging.linesLogged=%1$S line logged;%1$S lines logged zotero.debugOutputLogging.linesLogged=%1$S line logged;%1$S lines logged
zotero.debugOutputLogging.dialog.title=Debug Output Submitted zotero.debugOutputLogging.dialog.title=Debug Output Submitted
zotero.debugOutputLogging.dialog.sent=Debug output has been sent to %S.\n\nThe Debug ID is D%S. zotero.debugOutputLogging.dialog.sent=Debug output has been sent to %S.\n\nThe Debug ID is D%S.
@ -864,22 +871,7 @@ citation.showEditor=نمایش ویرایشگر...
citation.hideEditor=نهفتن ویرایشگر ... citation.hideEditor=نهفتن ویرایشگر ...
citation.citations=Citations citation.citations=Citations
citation.notes=یادداشت‌ها citation.notes=یادداشت‌ها
citation.locator.page=Page citation.locator.timestamp=Timestamp
citation.locator.book=Book
citation.locator.chapter=Chapter
citation.locator.column=Column
citation.locator.figure=Figure
citation.locator.folio=Folio
citation.locator.issue=Issue
citation.locator.line=Line
citation.locator.note=Note
citation.locator.opus=Opus
citation.locator.paragraph=Paragraph
citation.locator.part=Part
citation.locator.section=Section
citation.locator.subverbo=Sub verbo
citation.locator.volume=Volume
citation.locator.verse=Verse
report.title.default=گزارش زوترو report.title.default=گزارش زوترو
report.parentItem=آیتم‌ مادر: report.parentItem=آیتم‌ مادر:
@ -994,7 +986,7 @@ styles.abbreviations.title=Load Abbreviations
styles.abbreviations.parseError=The abbreviations file "%1$S" is not valid JSON. styles.abbreviations.parseError=The abbreviations file "%1$S" is not valid JSON.
styles.abbreviations.missingInfo=The abbreviations file "%1$S" does not specify a complete info block. styles.abbreviations.missingInfo=The abbreviations file "%1$S" does not specify a complete info block.
sync.sync=Sync sync.sync=همگام‌سازی
sync.syncWith=Sync with %S sync.syncWith=Sync with %S
sync.stopping=Stopping… sync.stopping=Stopping…
sync.cancel=لغو همزمان‌‌سازی sync.cancel=لغو همزمان‌‌سازی
@ -1072,8 +1064,8 @@ sync.conflict.tag.addedToLocal=It has been added to the following local items:
sync.conflict.localItem=Local Item sync.conflict.localItem=Local Item
sync.conflict.remoteItem=Remote Item sync.conflict.remoteItem=Remote Item
sync.conflict.mergedItem=Merged Item sync.conflict.mergedItem=Merged Item
sync.conflict.localFile=Local File sync.conflict.localFile=پرونده محلی
sync.conflict.remoteFile=Remote File sync.conflict.remoteFile=پرونده دور
sync.conflict.resolveAllLocal=Use the local version for all remaining conflicts sync.conflict.resolveAllLocal=Use the local version for all remaining conflicts
sync.conflict.resolveAllRemote=Use the remote version for all remaining conflicts sync.conflict.resolveAllRemote=Use the remote version for all remaining conflicts
sync.conflict.itemChanged=The following item has been changed in multiple locations. Click the version to use for resolving conflicting fields, and then click %S. sync.conflict.itemChanged=The following item has been changed in multiple locations. Click the version to use for resolving conflicting fields, and then click %S.
@ -1098,8 +1090,8 @@ sync.storage.mbRemaining=%SMB remaining
sync.storage.kbRemaining=%SKB باقی مانده است sync.storage.kbRemaining=%SKB باقی مانده است
sync.storage.filesRemaining=پرونده‌های %1$S/%2$S sync.storage.filesRemaining=پرونده‌های %1$S/%2$S
sync.storage.none=هیچ‌کدام sync.storage.none=هیچ‌کدام
sync.storage.downloads=Downloads: sync.storage.downloads=بارگیری‌ها:
sync.storage.uploads=Uploads: sync.storage.uploads=بارگذاری‌ها:
sync.storage.localFile=پرونده محلی sync.storage.localFile=پرونده محلی
sync.storage.remoteFile=پرونده دور sync.storage.remoteFile=پرونده دور
sync.storage.savedFile=پرونده ذخیره شده sync.storage.savedFile=پرونده ذخیره شده
@ -1124,7 +1116,7 @@ sync.storage.error.createNow=آیا می‌خواهید آن را ایجاد ک
sync.storage.error.webdav.default=A WebDAV file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences. sync.storage.error.webdav.default=A WebDAV file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.
sync.storage.error.webdav.defaultRestart=A WebDAV file sync error occurred. Please restart %S and try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences. sync.storage.error.webdav.defaultRestart=A WebDAV file sync error occurred. Please restart %S and try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.
sync.storage.error.webdav.enterURL=Please enter a WebDAV URL. sync.storage.error.webdav.enterURL=لطفا یک WebDAV URL وارد کنید.
sync.storage.error.webdav.invalidURL=%S یک WebDAV URL معتبر نیست. sync.storage.error.webdav.invalidURL=%S یک WebDAV URL معتبر نیست.
sync.storage.error.webdav.invalidLogin=کارگزار WebDAV نام کاربر و گذرواژه‌ای که وارد کردید را نپذیرفت. sync.storage.error.webdav.invalidLogin=کارگزار WebDAV نام کاربر و گذرواژه‌ای که وارد کردید را نپذیرفت.
sync.storage.error.webdav.permissionDenied=شما مجوز دسترسی به %S روی کارگزار WebDAV را ندارید. sync.storage.error.webdav.permissionDenied=شما مجوز دسترسی به %S روی کارگزار WebDAV را ندارید.
@ -1176,10 +1168,10 @@ recognizePDF.couldNotRead=خواندن متن از PDF امکان‌پذیر ن
recognizePDF.noMatches=No matching references found recognizePDF.noMatches=No matching references found
recognizePDF.fileNotFound=فایل پیدا نشد recognizePDF.fileNotFound=فایل پیدا نشد
recognizePDF.error=An unexpected error occurred recognizePDF.error=An unexpected error occurred
recognizePDF.recognizing.label=Retrieving Metadata… recognizePDF.recognizing.label=در حال بازیابی فراداده‌ها...
recognizePDF.complete.label=Metadata Retrieval Complete recognizePDF.complete.label=Metadata Retrieval Complete
recognizePDF.pdfName.label=PDF Name recognizePDF.pdfName.label=نام PDF
recognizePDF.itemName.label=Item Name recognizePDF.itemName.label=نام آیتم‌
rtfScan.openTitle=پرونده‌ای را برای پیمایش انتخاب کنید rtfScan.openTitle=پرونده‌ای را برای پیمایش انتخاب کنید
rtfScan.scanning.label=در حال پیمایش سند RTF... rtfScan.scanning.label=در حال پیمایش سند RTF...
@ -1294,7 +1286,7 @@ retraction.citationWarning.dontWarn=Don’t warn me about this item again
noteEditor.annotationsDateLine=(%S) noteEditor.annotationsDateLine=(%S)
noteEditor.cut=Cut noteEditor.cut=Cut
noteEditor.copy=Copy noteEditor.copy=کپی
noteEditor.paste=Paste noteEditor.paste=Paste
noteEditor.rightToLeft=Right to Left noteEditor.rightToLeft=Right to Left
noteEditor.leftToRight=Left to Right noteEditor.leftToRight=Left to Right
@ -1303,20 +1295,20 @@ noteEditor.enterLink=Enter Link
noteEditor.heading1=Heading 1 noteEditor.heading1=Heading 1
noteEditor.heading2=Heading 2 noteEditor.heading2=Heading 2
noteEditor.heading3=Heading 3 noteEditor.heading3=Heading 3
noteEditor.paragraph=Paragraph noteEditor.paragraph=پاراگراف
noteEditor.monospaced=Monospaced noteEditor.monospaced=Monospaced
noteEditor.bulletList=Bulleted List noteEditor.bulletList=Bulleted List
noteEditor.orderedList=Numbered List noteEditor.orderedList=Numbered List
noteEditor.blockquote=Block Quote noteEditor.blockquote=Block Quote
noteEditor.formatText=Format Text noteEditor.formatText=Format Text
noteEditor.highlightText=Highlight Text noteEditor.highlightText=پررنگ کردن متن
noteEditor.removeColor=Remove Color noteEditor.removeColor=حذف رنگ
noteEditor.bold=Bold noteEditor.bold=ضخیم
noteEditor.italic=Italic noteEditor.italic=کج
noteEditor.underline=Underline noteEditor.underline=خط زیر
noteEditor.strikethrough=Strikethrough noteEditor.strikethrough=Strikethrough
noteEditor.subscript=Subscript noteEditor.subscript=زیرنویس
noteEditor.superscript=Superscript noteEditor.superscript=بالانویس
noteEditor.returnToNotesList=Return to Notes List noteEditor.returnToNotesList=Return to Notes List
noteEditor.insertLink=Insert Link noteEditor.insertLink=Insert Link
noteEditor.clearFormatting=Clear Formatting noteEditor.clearFormatting=Clear Formatting
@ -1325,8 +1317,8 @@ noteEditor.alignLeft=Align Left
noteEditor.alignCenter=Align Center noteEditor.alignCenter=Align Center
noteEditor.alignRight=Align Right noteEditor.alignRight=Align Right
noteEditor.insertCitation=Insert Citation noteEditor.insertCitation=Insert Citation
noteEditor.more=More noteEditor.more=بیشتر
noteEditor.find=Find noteEditor.find=یافتن
noteEditor.replace=Replace noteEditor.replace=Replace
noteEditor.previous=Previous noteEditor.previous=Previous
noteEditor.next=Next noteEditor.next=Next
@ -1338,7 +1330,7 @@ noteEditor.editCitation=Edit Citation
noteEditor.showOnPage=Show on Page noteEditor.showOnPage=Show on Page
noteEditor.unlink=Unlink noteEditor.unlink=Unlink
noteEditor.set=Set noteEditor.set=Set
noteEditor.edit=Edit noteEditor.edit=ویرایش
noteEditor.addCitation=Add Citation noteEditor.addCitation=Add Citation
noteEditor.removeCitation=Hide Citation noteEditor.removeCitation=Hide Citation
noteEditor.findAndReplace=Find and Replace noteEditor.findAndReplace=Find and Replace
@ -1363,8 +1355,8 @@ pdfReader.noAnnotations=Create an annotation to see it in the sidebar
pdfReader.addText=Add extracted text pdfReader.addText=Add extracted text
pdfReader.addComment=Add comment pdfReader.addComment=Add comment
pdfReader.addTags=Add tags… pdfReader.addTags=Add tags…
pdfReader.highlightText=Highlight Text pdfReader.highlightText=پررنگ کردن متن
pdfReader.addNote=Add Note pdfReader.addNote=افزودن یادداشت
pdfReader.selectArea=Select Area pdfReader.selectArea=Select Area
pdfReader.pickColor=Pick a Color pdfReader.pickColor=Pick a Color
pdfReader.addToNote=Add to Note pdfReader.addToNote=Add to Note
@ -1375,13 +1367,18 @@ pdfReader.zoomPageWidth=Zoom to Page Width
pdfReader.zoomPageHeight=Zoom to Page Height pdfReader.zoomPageHeight=Zoom to Page Height
pdfReader.nextPage=Next Page pdfReader.nextPage=Next Page
pdfReader.previousPage=Previous Page pdfReader.previousPage=Previous Page
pdfReader.page=Page pdfReader.page=صفحه
pdfReader.readOnly=Read-only pdfReader.readOnly=Read-only
pdfReader.promptTransferFromPDF.title=Import Annotations pdfReader.promptTransferFromPDF.title=Import Annotations
pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S. pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be moved to %1$S.
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

View file

@ -327,6 +327,9 @@ pane.items.remove.multiple=Haluatko varmasti poistaa valitut nimikkeet tästä k
pane.items.removeFromPublications.title=Poista Omista julkaisuistani pane.items.removeFromPublications.title=Poista Omista julkaisuistani
pane.items.removeFromPublications=Oletko varma että haluat poistaa valitun nimikkeen Omista julkaisuistasi? pane.items.removeFromPublications=Oletko varma että haluat poistaa valitun nimikkeen Omista julkaisuistasi?
pane.items.removeFromPublications.multiple=Haluatko varmasti poistaa valitut nimikkeet Omista julkaisuistasi? pane.items.removeFromPublications.multiple=Haluatko varmasti poistaa valitut nimikkeet Omista julkaisuistasi?
pane.items.removeRecursive.title=Poista kokoelmasta ja alakokoelmista
pane.items.removeRecursive=Haluatko varmasti poistaa valitun nimikkeen tästä kokoelmasta ja kaikista alakokoelmista?
pane.items.removeRecursive.multiple=Haluatko varmasti poistaa valitut nimikkeet tästä kokoelmasta ja kaikista alakokoelmista?
pane.items.menu.addNoteFromAnnotations=Lisää muistiinpano huomautuksista pane.items.menu.addNoteFromAnnotations=Lisää muistiinpano huomautuksista
pane.items.menu.addNoteFromAnnotations.multiple=Lisää muistiinpanot huomautuksista pane.items.menu.addNoteFromAnnotations.multiple=Lisää muistiinpanot huomautuksista
pane.items.menu.findAvailablePDF=Etsi saatavilla oleva PDF pane.items.menu.findAvailablePDF=Etsi saatavilla oleva PDF
@ -343,6 +346,8 @@ pane.items.menu.export=Vie valittu kohde...
pane.items.menu.export.multiple=Vie valitut kohteet... pane.items.menu.export.multiple=Vie valitut kohteet...
pane.items.menu.exportNote=Vie muistiinpano... pane.items.menu.exportNote=Vie muistiinpano...
pane.items.menu.exportNote.multiple=Vie muistiinpanot... pane.items.menu.exportNote.multiple=Vie muistiinpanot...
pane.items.menu.exportPDF=Vie PDF...
pane.items.menu.exportPDF.multiple=Vie PDF:t...
pane.items.menu.createBib=Luo kirjallisuusluettelo valitusta kohteesta... pane.items.menu.createBib=Luo kirjallisuusluettelo valitusta kohteesta...
pane.items.menu.createBib.multiple=Luo kirjallisuusluettelo valituista kohteista... pane.items.menu.createBib.multiple=Luo kirjallisuusluettelo valituista kohteista...
pane.items.menu.generateReport=Luo raportti valitusta kohteesta... pane.items.menu.generateReport=Luo raportti valitusta kohteesta...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Luo tiedostolle nimike
pane.items.menu.createParent.multiple=Luo tiedostoille nimikkeet pane.items.menu.createParent.multiple=Luo tiedostoille nimikkeet
pane.items.menu.renameAttachments=Muuta tiedoston nimi ylänimikkeen metatiedoista pane.items.menu.renameAttachments=Muuta tiedoston nimi ylänimikkeen metatiedoista
pane.items.menu.renameAttachments.multiple=Muuta tiedostojen nimet ylänimikkeen metatiedoista pane.items.menu.renameAttachments.multiple=Muuta tiedostojen nimet ylänimikkeen metatiedoista
pane.items.menu.duplicateAndConvert.toBookSection=Luo kirjan osa
pane.items.menu.duplicateAndConvert.toBook=Luo kirja kirjan osasta
pane.items.showItemInLibrary=Näytä nimike kirjastossa pane.items.showItemInLibrary=Näytä nimike kirjastossa
pane.items.letter.oneParticipant=Kirje henkilölle %S pane.items.letter.oneParticipant=Kirje henkilölle %S
@ -864,22 +871,7 @@ citation.showEditor=Näytä editori...
citation.hideEditor=Piilota editori... citation.hideEditor=Piilota editori...
citation.citations=Viitteet citation.citations=Viitteet
citation.notes=Muistiinpanot citation.notes=Muistiinpanot
citation.locator.page=Sivu citation.locator.timestamp=Aikaleima
citation.locator.book=Kirja
citation.locator.chapter=Luku
citation.locator.column=Palsta
citation.locator.figure=Kuva
citation.locator.folio=Lehti
citation.locator.issue=Numero
citation.locator.line=Rivi
citation.locator.note=Muistiinpano
citation.locator.opus=Opus
citation.locator.paragraph=Kappale
citation.locator.part=Osa
citation.locator.section=Osa
citation.locator.subverbo=ks.
citation.locator.volume=Vuosikerta
citation.locator.verse=Jae
report.title.default=Zotero-raportti report.title.default=Zotero-raportti
report.parentItem=Ylänimike: report.parentItem=Ylänimike:
@ -1382,6 +1374,11 @@ pdfReader.promptTransferFromPDF.text=PDF-tiedostoon tallennetut huomautukset sii
pdfReader.promptTransferToPDF.title=Tallenna huomautukset tiedostoon pdfReader.promptTransferToPDF.title=Tallenna huomautukset tiedostoon
pdfReader.promptTransferToPDF.text=Huomautukset siirretään PDF-tiedostoon eivätkä ne ole enää muokattavissa %Sssa. pdfReader.promptTransferToPDF.text=Huomautukset siirretään PDF-tiedostoon eivätkä ne ole enää muokattavissa %Sssa.
pdfReader.promptPasswordProtected=Toimenpidettä ei tueta salasanasuojatuilla PDF-tiedostoilla. pdfReader.promptPasswordProtected=Toimenpidettä ei tueta salasanasuojatuilla PDF-tiedostoilla.
pdfReader.promptDeletePages.title=Poista sivut
pdfReader.promptDeletePages.text=Haluatko varmasti poistaa %1$S sivun PDF-tiedostosta?;Haluatko varmasti poistaa %1$S sivua PDF-tiedostosta?
pdfReader.rotateLeft=Kierrä vasemmalle
pdfReader.rotateRight=Kierrä oikealle
pdfReader.rotate180=Kierrä 180°
pdfReader.editPageNumber=Muokkaa sivunumeroa... pdfReader.editPageNumber=Muokkaa sivunumeroa...
pdfReader.editHighlightedText=Muokkaa korostettua tekstiä pdfReader.editHighlightedText=Muokkaa korostettua tekstiä
pdfReader.pageNumberPopupHeader=Vaihda sivunumero kohteelle: pdfReader.pageNumberPopupHeader=Vaihda sivunumero kohteelle:

View file

@ -327,6 +327,9 @@ pane.items.remove.multiple=Voulez-vous vraiment retirer les documents sélection
pane.items.removeFromPublications.title=Retirer de Mes publications pane.items.removeFromPublications.title=Retirer de Mes publications
pane.items.removeFromPublications=Voulez-vous vraiment retirer le document sélectionné de Mes publications ? pane.items.removeFromPublications=Voulez-vous vraiment retirer le document sélectionné de Mes publications ?
pane.items.removeFromPublications.multiple=Voulez-vous vraiment retirer les documents sélectionnés de Mes publications ? pane.items.removeFromPublications.multiple=Voulez-vous vraiment retirer les documents sélectionnés de Mes publications ?
pane.items.removeRecursive.title=Retirer de la collection et des sous-collections
pane.items.removeRecursive=Êtes-vous sûr de vouloir retirer le document sélectionné de cette collection et de toutes ses sous-collections ?
pane.items.removeRecursive.multiple=Êtes-vous sûr de vouloir retirer les documents sélectionnés de cette collection et de toutes ses sous-collections ?
pane.items.menu.addNoteFromAnnotations=Ajouter une note depuis les annotations pane.items.menu.addNoteFromAnnotations=Ajouter une note depuis les annotations
pane.items.menu.addNoteFromAnnotations.multiple=Ajouter des notes depuis les annotations pane.items.menu.addNoteFromAnnotations.multiple=Ajouter des notes depuis les annotations
pane.items.menu.findAvailablePDF=Trouver un PDF disponible pane.items.menu.findAvailablePDF=Trouver un PDF disponible
@ -343,6 +346,8 @@ pane.items.menu.export=Exporter le document…
pane.items.menu.export.multiple=Exporter les documents… pane.items.menu.export.multiple=Exporter les documents…
pane.items.menu.exportNote=Exporter la note... pane.items.menu.exportNote=Exporter la note...
pane.items.menu.exportNote.multiple=Exporter les notes... pane.items.menu.exportNote.multiple=Exporter les notes...
pane.items.menu.exportPDF=Exporter le PDF…
pane.items.menu.exportPDF.multiple=Exporter les PDFs…
pane.items.menu.createBib=Créer une bibliographie à partir du document… pane.items.menu.createBib=Créer une bibliographie à partir du document…
pane.items.menu.createBib.multiple=Créer une bibliographie à partir des documents… pane.items.menu.createBib.multiple=Créer une bibliographie à partir des documents…
pane.items.menu.generateReport=Établir un rapport à partir du document… pane.items.menu.generateReport=Établir un rapport à partir du document…
@ -355,6 +360,8 @@ pane.items.menu.createParent=Créer un document parent
pane.items.menu.createParent.multiple=Créer des documents parents pane.items.menu.createParent.multiple=Créer des documents parents
pane.items.menu.renameAttachments=Renommer le fichier à partir des métadonnées du parent pane.items.menu.renameAttachments=Renommer le fichier à partir des métadonnées du parent
pane.items.menu.renameAttachments.multiple=Renommer les fichiers à partir des métadonnées du parent pane.items.menu.renameAttachments.multiple=Renommer les fichiers à partir des métadonnées du parent
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Afficher le document dans la bibliothèque pane.items.showItemInLibrary=Afficher le document dans la bibliothèque
pane.items.letter.oneParticipant=Lettre à %S pane.items.letter.oneParticipant=Lettre à %S
@ -864,22 +871,7 @@ citation.showEditor=Afficher l'éditeur…
citation.hideEditor=Cacher l'éditeur… citation.hideEditor=Cacher l'éditeur…
citation.citations=Citations citation.citations=Citations
citation.notes=Notes citation.notes=Notes
citation.locator.page=Page citation.locator.timestamp=Horodatage
citation.locator.book=Livre
citation.locator.chapter=Chapitre
citation.locator.column=Colonne
citation.locator.figure=Figure
citation.locator.folio=Folio
citation.locator.issue=Numéro
citation.locator.line=Ligne
citation.locator.note=Note
citation.locator.opus=Opus
citation.locator.paragraph=Paragraphe
citation.locator.part=Partie
citation.locator.section=Section
citation.locator.subverbo=Sub verbo
citation.locator.volume=Volume
citation.locator.verse=Verset
report.title.default=Rapport Zotero report.title.default=Rapport Zotero
report.parentItem=Document parent : report.parentItem=Document parent :
@ -1382,6 +1374,11 @@ pdfReader.promptTransferFromPDF.text=Les annotations stockées dans le fichier P
pdfReader.promptTransferToPDF.title=Stocker les annotations dans le fichier pdfReader.promptTransferToPDF.title=Stocker les annotations dans le fichier
pdfReader.promptTransferToPDF.text=Les annotations seront transférées dans le fichier PDF et pourront plus être modifiées dans %S. pdfReader.promptTransferToPDF.text=Les annotations seront transférées dans le fichier PDF et pourront plus être modifiées dans %S.
pdfReader.promptPasswordProtected=Cette opération n'est pas prise en charge pour les fichiers PDF protégés par un mot de passe. pdfReader.promptPasswordProtected=Cette opération n'est pas prise en charge pour les fichiers PDF protégés par un mot de passe.
pdfReader.promptDeletePages.title=Supprimer les pages
pdfReader.promptDeletePages.text=Êtes-vous sure de vouloir supprimer %1$S page du fichier PDF ?;Êtes-vous sure de vouloir supprimer %1$S pages du fichier PDF ?
pdfReader.rotateLeft=Rotation antihoraire
pdfReader.rotateRight=Rotation horaire
pdfReader.rotate180=Rotation de 180°
pdfReader.editPageNumber=Modifier le numéro de page... pdfReader.editPageNumber=Modifier le numéro de page...
pdfReader.editHighlightedText=Modifier le texte surligné pdfReader.editHighlightedText=Modifier le texte surligné
pdfReader.pageNumberPopupHeader=Changer le numéro de page en : pdfReader.pageNumberPopupHeader=Changer le numéro de page en :

View file

@ -320,9 +320,9 @@
<!ENTITY zotero.pdfReader.noSpreads "Sen axustar"> <!ENTITY zotero.pdfReader.noSpreads "Sen axustar">
<!ENTITY zotero.pdfReader.oddSpreads "Impares axustadas"> <!ENTITY zotero.pdfReader.oddSpreads "Impares axustadas">
<!ENTITY zotero.pdfReader.evenSpreads "Pares axustadas"> <!ENTITY zotero.pdfReader.evenSpreads "Pares axustadas">
<!ENTITY zotero.pdfReader.zoomIn "Zoom In"> <!ENTITY zotero.pdfReader.zoomIn "Ampliar">
<!ENTITY zotero.pdfReader.zoomOut "Zoom Out"> <!ENTITY zotero.pdfReader.zoomOut "Alonxar">
<!ENTITY zotero.pdfReader.zoomAuto "Automatically Resize"> <!ENTITY zotero.pdfReader.zoomAuto "Axuste automático">
<!ENTITY zotero.pdfReader.zoomPageWidth "Zoom to Page Width"> <!ENTITY zotero.pdfReader.zoomPageWidth "Ampliar ao ancho de páxina">
<!ENTITY zotero.pdfReader.zoomPageHeight "Zoom to Page Height"> <!ENTITY zotero.pdfReader.zoomPageHeight "Zoom to Page Height">
<!ENTITY zotero.pdfReader.transferFromPDF "Import Annotations…"> <!ENTITY zotero.pdfReader.transferFromPDF "Import Annotations…">

View file

@ -52,7 +52,7 @@ general.moreInformation=Máis información
general.learnMore=Saber máis general.learnMore=Saber máis
general.seeForMoreInformation=Vexa %S para máis información. general.seeForMoreInformation=Vexa %S para máis información.
general.open=Abrir %S general.open=Abrir %S
general.close=Close general.close=Pechar
general.enable=Activar general.enable=Activar
general.disable=Desactivar general.disable=Desactivar
general.reset=Reiniciar general.reset=Reiniciar
@ -71,7 +71,7 @@ general.fix=Arranxar...
general.tryAgain=Vólveo a intentar general.tryAgain=Vólveo a intentar
general.tryLater=Vólveo a intentar máis tarde general.tryLater=Vólveo a intentar máis tarde
general.showDirectory=Mostrar o cartafol general.showDirectory=Mostrar o cartafol
general.showInLibrary=Show in Library general.showInLibrary=Amosar na biblioteca
general.continue=Continuar general.continue=Continuar
general.copy=Copiar general.copy=Copiar
general.copyToClipboard=Copiar no portaretallos general.copyToClipboard=Copiar no portaretallos
@ -327,7 +327,10 @@ pane.items.remove.multiple=Seguro que queres eliminar os elementos escollidos de
pane.items.removeFromPublications.title=Eliminar das miñas publicacións pane.items.removeFromPublications.title=Eliminar das miñas publicacións
pane.items.removeFromPublications=Seguro que queres eliminar o elemento escollido das túas publicacións? pane.items.removeFromPublications=Seguro que queres eliminar o elemento escollido das túas publicacións?
pane.items.removeFromPublications.multiple=Seguro que queres eliminar os elementos escollidos das túas publicacións? pane.items.removeFromPublications.multiple=Seguro que queres eliminar os elementos escollidos das túas publicacións?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Engadir nota desde anotacións
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=Buscar PDF dispoñibles pane.items.menu.findAvailablePDF=Buscar PDF dispoñibles
pane.items.menu.findAvailablePDF.multiple=Busca dos PDF dispoñibles pane.items.menu.findAvailablePDF.multiple=Busca dos PDF dispoñibles
@ -343,6 +346,8 @@ pane.items.menu.export=Exportar o elemento seleccionado
pane.items.menu.export.multiple=Exportar os elementos seleccionados... pane.items.menu.export.multiple=Exportar os elementos seleccionados...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Crear unha bibliografía a partir do elemento seleccionado... pane.items.menu.createBib=Crear unha bibliografía a partir do elemento seleccionado...
pane.items.menu.createBib.multiple=Crear unha bibliografía a partir dos elementos seleccionados... pane.items.menu.createBib.multiple=Crear unha bibliografía a partir dos elementos seleccionados...
pane.items.menu.generateReport=Xerar un informe a partir do elemento seleccionado... pane.items.menu.generateReport=Xerar un informe a partir do elemento seleccionado...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Crear elemento pai...
pane.items.menu.createParent.multiple=Crear elementos pais pane.items.menu.createParent.multiple=Crear elementos pais
pane.items.menu.renameAttachments=Renomear o ficheiro dos metadatos parentais pane.items.menu.renameAttachments=Renomear o ficheiro dos metadatos parentais
pane.items.menu.renameAttachments.multiple=Cambiar os nomes dos ficheiros dos metadatos parentais pane.items.menu.renameAttachments.multiple=Cambiar os nomes dos ficheiros dos metadatos parentais
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Mostrar na biblioteca pane.items.showItemInLibrary=Mostrar na biblioteca
pane.items.letter.oneParticipant=Carta a %S pane.items.letter.oneParticipant=Carta a %S
@ -430,7 +437,7 @@ pane.item.related.count.zero=%S relacionados:
pane.item.related.count.singular=%S relacionado: pane.item.related.count.singular=%S relacionado:
pane.item.related.count.plural=%S relacionados: pane.item.related.count.plural=%S relacionados:
pane.item.parentItem=Elemento parental: pane.item.parentItem=Elemento parental:
pane.item.viewOnline.tooltip=Go to this item online pane.item.viewOnline.tooltip=Ir a este elemento en liña
pane.context.noParent=No parent item pane.context.noParent=No parent item
pane.context.itemNotes=Item Notes pane.context.itemNotes=Item Notes
@ -864,22 +871,7 @@ citation.showEditor=Mostrar o editor
citation.hideEditor=Agochar o editor citation.hideEditor=Agochar o editor
citation.citations=Citas citation.citations=Citas
citation.notes=Notas citation.notes=Notas
citation.locator.page=Páxina citation.locator.timestamp=Timestamp
citation.locator.book=Libro
citation.locator.chapter=Capítulo
citation.locator.column=Columna
citation.locator.figure=Figura
citation.locator.folio=Folio
citation.locator.issue=Número
citation.locator.line=Liña
citation.locator.note=Nota
citation.locator.opus=Opus
citation.locator.paragraph=Parágrafo
citation.locator.part=Parte
citation.locator.section=Sección
citation.locator.subverbo=Sub voce (s/v)
citation.locator.volume=Volume
citation.locator.verse=Verso
report.title.default=Informe de Zotero report.title.default=Informe de Zotero
report.parentItem=Artigo pai: report.parentItem=Artigo pai:
@ -1005,7 +997,7 @@ sync.skipGroup=Saír do grupo
sync.removeGroupsAndSync=Borrar o grupo e a sincronización sync.removeGroupsAndSync=Borrar o grupo e a sincronización
sync.reminder.setUp.message=Back up your library with %S syncing. sync.reminder.setUp.message=Back up your library with %S syncing.
sync.reminder.setUp.action=Set Up Syncing sync.reminder.setUp.action=Configurar a sincronización
sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing? sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing?
sync.error.usernameNotSet=Nome de usuario sen definir sync.error.usernameNotSet=Nome de usuario sen definir
@ -1382,6 +1374,11 @@ pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

View file

@ -108,10 +108,10 @@ networkError.errorViaProxy=אירעה שגיאה בהתחברות לשרת המ
networkError.connectionMonitored=החיבור שלך כנראה נמצא תחת מעקב ו־%S לא הוגדר לתת אמון בשרת הביניים. networkError.connectionMonitored=החיבור שלך כנראה נמצא תחת מעקב ו־%S לא הוגדר לתת אמון בשרת הביניים.
about.createdBy=%1$S הוא מיזם מבית %2$S והמפתחים שלו הם חלק [מקהילה גלובלית]. about.createdBy=%1$S הוא מיזם מבית %2$S והמפתחים שלו הם חלק [מקהילה גלובלית].
about.openSource=%S is [open-source software] and depends on many [exceptional open-source projects]. about.openSource=%S היא [תוכנה בקוד פתוח] ותלויה במגוון [מיזמים נפלאים בקוד פתוח].
about.getInvolved=מעניין אותך לעזור? אפשר [להצטרף אלינו] עוד היום! about.getInvolved=מעניין אותך לעזור? אפשר [להצטרף אלינו] עוד היום!
punctuation.openingQMark=“ punctuation.openingQMark=„
punctuation.closingQMark=” punctuation.closingQMark=”
punctuation.colon=: punctuation.colon=:
punctuation.ellipsis=… punctuation.ellipsis=…
@ -178,8 +178,8 @@ dataDir.chooseNewDataDirectory=בחירת תיקיית נתונים חדשה…
dataDir.cannotBeSetWithAlternative=The data directory cannot be set to a “%S” directory. Did you mean %S? dataDir.cannotBeSetWithAlternative=The data directory cannot be set to a “%S” directory. Did you mean %S?
dataDir.cannotBeLinkedAttachmentBaseDirectory=The data directory cannot be set to the same location as the Linked Attachment Base Directory. dataDir.cannotBeLinkedAttachmentBaseDirectory=The data directory cannot be set to the same location as the Linked Attachment Base Directory.
dataDir.unsafeLocation.selected.cloud=Storing the data directory in a cloud storage folder is very likely to corrupt your database. dataDir.unsafeLocation.selected.cloud=Storing the data directory in a cloud storage folder is very likely to corrupt your database.
dataDir.unsafeLocation.selected.areYouSure=Are you sure you want to use this location? dataDir.unsafeLocation.selected.areYouSure=להשתמש במיקום הזה?
dataDir.unsafeLocation.existing.cloud=Your %S data directory appears to be within a cloud storage folder, which is very likely to corrupt your database. dataDir.unsafeLocation.existing.cloud=נראה כי תיקיית הנתונים של ה־%S שלך נמצאת בתיקייה באחסון ענן, מה שעלול בסבירות די גבוהה לפגום במסד הנתונים שלך.
dataDir.unsafeLocation.existing.chooseDifferent=לבחור מיקום שונה כעת? dataDir.unsafeLocation.existing.chooseDifferent=לבחור מיקום שונה כעת?
dataDir.selectedDirNonEmpty.title=ספרייה אינה ריקה dataDir.selectedDirNonEmpty.title=ספרייה אינה ריקה
dataDir.selectedDirNonEmpty.text=The directory you selected is not empty and does not appear to be a Zotero data directory.\n\nCreate Zotero files in this directory anyway? dataDir.selectedDirNonEmpty.text=The directory you selected is not empty and does not appear to be a Zotero data directory.\n\nCreate Zotero files in this directory anyway?
@ -222,7 +222,7 @@ startupError.zoteroVersionIsOlder.upgrade=נא לשדרג לגרסה העדכנ
startupError.databaseUpgradeError=שגיאת שדרוג מסד נתונים startupError.databaseUpgradeError=שגיאת שדרוג מסד נתונים
startupError.internetFunctionalityMayNotWork=יתכן שיכולות שתלויות בחיבור לאינטרנט לא תעבודנה. startupError.internetFunctionalityMayNotWork=יתכן שיכולות שתלויות בחיבור לאינטרנט לא תעבודנה.
startupError.bundledFileUpdateError=%S was unable to load translators and styles. startupError.bundledFileUpdateError=%S was unable to load translators and styles.
startupError.startedFromDiskImage1=%S was started from a disk image, which can break some functionality. startupError.startedFromDiskImage1=%S הופעלה מדמות כונן, מה שעשוי לפגום בחלק מהיכולות.
startupError.startedFromDiskImage2=To install %1$S properly, quit the program, open the disk image you downloaded, and drag “%1$S” to the alias of the Applications folder shown in the window. Then eject the disk image and launch Zotero by opening it from your Applications folder. startupError.startedFromDiskImage2=To install %1$S properly, quit the program, open the disk image you downloaded, and drag “%1$S” to the alias of the Applications folder shown in the window. Then eject the disk image and launch Zotero by opening it from your Applications folder.
date.relative.secondsAgo.one=לפני שנייה date.relative.secondsAgo.one=לפני שנייה
@ -257,12 +257,12 @@ pane.collections.library=הספרייה שלי
pane.collections.publications=הפרסומים שלי pane.collections.publications=הפרסומים שלי
pane.collections.feeds=ערוצי תוכן pane.collections.feeds=ערוצי תוכן
pane.collections.libraryAndFeeds=הספרייה שלי וערוצי תוכן pane.collections.libraryAndFeeds=הספרייה שלי וערוצי תוכן
pane.collections.groupLibraries=Group Libraries pane.collections.groupLibraries=ספריות קבוצתיות
pane.collections.feedLibraries=ערוצי תוכן pane.collections.feedLibraries=ערוצי תוכן
pane.collections.trash=אשפה pane.collections.trash=אשפה
pane.collections.untitled=ללא שם pane.collections.untitled=ללא שם
pane.collections.unfiled=פריטים בלתי מתויקים pane.collections.unfiled=פריטים בלתי מתויקים
pane.collections.retracted=Retracted Items pane.collections.retracted=פריטים שנסוגו
pane.collections.duplicate=פריטים כפולים pane.collections.duplicate=פריטים כפולים
pane.collections.removeLibrary=הסרת ספרייה pane.collections.removeLibrary=הסרת ספרייה
pane.collections.removeLibrary.text=להסיר את „%S” מהמחשב הזה לצמיתות? pane.collections.removeLibrary.text=להסיר את „%S” מהמחשב הזה לצמיתות?
@ -282,7 +282,7 @@ pane.collections.menu.export.feed=ייצוא ערוץ תוכן…
pane.collections.menu.createBib.collection=יצירת ביבליוגרפיה מאוסף… pane.collections.menu.createBib.collection=יצירת ביבליוגרפיה מאוסף…
pane.collections.menu.createBib.savedSearch=יצירת ביבליוגרפיה מחיפוש שמור… pane.collections.menu.createBib.savedSearch=יצירת ביבליוגרפיה מחיפוש שמור…
pane.collections.menu.createBib.feed=יצירת ביבליוגרפיה מערוץ תוכן… pane.collections.menu.createBib.feed=יצירת ביבליוגרפיה מערוץ תוכן…
pane.collections.showCollectionInLibrary=Show Collection in Library pane.collections.showCollectionInLibrary=הצגת אוספים בספרייה
pane.collections.menu.generateReport.collection=יצירת דוח מאוסף… pane.collections.menu.generateReport.collection=יצירת דוח מאוסף…
pane.collections.menu.generateReport.savedSearch=יצירת דוח מחיפוש שמור… pane.collections.menu.generateReport.savedSearch=יצירת דוח מחיפוש שמור…
@ -294,7 +294,7 @@ pane.tagSelector.rename.title=שינוי שם תגית
pane.tagSelector.rename.message=נא למלא שם חדש לתגית הזאת.\n\nהתגית תשתנה בכל הפריטים המשויכים. pane.tagSelector.rename.message=נא למלא שם חדש לתגית הזאת.\n\nהתגית תשתנה בכל הפריטים המשויכים.
pane.tagSelector.delete.title=למחוק תגית זו? pane.tagSelector.delete.title=למחוק תגית זו?
pane.tagSelector.delete.message=למחוק את התגית?\n\nהתגית תוסר מכל הפריטים. pane.tagSelector.delete.message=למחוק את התגית?\n\nהתגית תוסר מכל הפריטים.
pane.tagSelector.deleteAutomatic.title=Delete Automatic Tags pane.tagSelector.deleteAutomatic.title=מחיקת תגיות אוטומטיות
pane.tagSelector.deleteAutomatic.message=Are you sure you want to delete %1$S automatic tag in this library?;Are you sure you want to delete %1$S automatic tags in this library? pane.tagSelector.deleteAutomatic.message=Are you sure you want to delete %1$S automatic tag in this library?;Are you sure you want to delete %1$S automatic tags in this library?
pane.tagSelector.numSelected.none=0 תגיות נבחרו pane.tagSelector.numSelected.none=0 תגיות נבחרו
pane.tagSelector.numSelected.singular=נבחרה תגית אחת pane.tagSelector.numSelected.singular=נבחרה תגית אחת
@ -304,7 +304,7 @@ pane.tagSelector.maxColoredTags=Only %S tags in each library can have colors ass
tagColorChooser.numberKeyInstructions=You can add this tag to selected items by pressing the $NUMBER key on the keyboard. tagColorChooser.numberKeyInstructions=You can add this tag to selected items by pressing the $NUMBER key on the keyboard.
tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned. tagColorChooser.maxTags=Up to %S tags in each library can have colors assigned.
pane.items.intro.text1=Welcome to %S! pane.items.intro.text1=ברוך בואך אל %S!
pane.items.intro.text2=View the [Quick Start Guide] to learn how to begin building your library, and be sure to [install a %S] so you can add items to %S as you browse the web. pane.items.intro.text2=View the [Quick Start Guide] to learn how to begin building your library, and be sure to [install a %S] so you can add items to %S as you browse the web.
pane.items.intro.text3=Already using %S on another computer? [Set up syncing] to pick up right where you left off. pane.items.intro.text3=Already using %S on another computer? [Set up syncing] to pick up right where you left off.
@ -327,6 +327,9 @@ pane.items.remove.multiple=להסיר את הפריטים הנבחרים מהא
pane.items.removeFromPublications.title=הסרה מהפרסומים שלי pane.items.removeFromPublications.title=הסרה מהפרסומים שלי
pane.items.removeFromPublications=להסיר את הפריט הנבחר מהפרסומים שלי? pane.items.removeFromPublications=להסיר את הפריט הנבחר מהפרסומים שלי?
pane.items.removeFromPublications.multiple=להסיר את הפריטים הנבחרים מהפרסומים שלי? pane.items.removeFromPublications.multiple=להסיר את הפריטים הנבחרים מהפרסומים שלי?
pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=הוספת הערה מהסברים pane.items.menu.addNoteFromAnnotations=הוספת הערה מהסברים
pane.items.menu.addNoteFromAnnotations.multiple=הוספות הערות מהסברים pane.items.menu.addNoteFromAnnotations.multiple=הוספות הערות מהסברים
pane.items.menu.findAvailablePDF=איתור PDF זמין pane.items.menu.findAvailablePDF=איתור PDF זמין
@ -343,6 +346,8 @@ pane.items.menu.export=ייצוא פריט…
pane.items.menu.export.multiple=ייצוא פריטים… pane.items.menu.export.multiple=ייצוא פריטים…
pane.items.menu.exportNote=ייצוא הערה… pane.items.menu.exportNote=ייצוא הערה…
pane.items.menu.exportNote.multiple=ייצוא הערות… pane.items.menu.exportNote.multiple=ייצוא הערות…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=יצירת ביבליוגרפיה מפריט… pane.items.menu.createBib=יצירת ביבליוגרפיה מפריט…
pane.items.menu.createBib.multiple=יצירת ביבליוגרפיה מפריטים… pane.items.menu.createBib.multiple=יצירת ביבליוגרפיה מפריטים…
pane.items.menu.generateReport=יצירת דוח מפריט… pane.items.menu.generateReport=יצירת דוח מפריט…
@ -355,6 +360,8 @@ pane.items.menu.createParent=יצירת פריט הורה…
pane.items.menu.createParent.multiple=יצירת פריטי הורים pane.items.menu.createParent.multiple=יצירת פריטי הורים
pane.items.menu.renameAttachments=שינוי שם קובץ מנתוני על של הורה pane.items.menu.renameAttachments=שינוי שם קובץ מנתוני על של הורה
pane.items.menu.renameAttachments.multiple=שינוי שמות קבצים מנתוני על של הורה pane.items.menu.renameAttachments.multiple=שינוי שמות קבצים מנתוני על של הורה
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=הצגת פריט בספרייה pane.items.showItemInLibrary=הצגת פריט בספרייה
pane.items.letter.oneParticipant=מכתב אל %S pane.items.letter.oneParticipant=מכתב אל %S
@ -420,7 +427,7 @@ pane.item.attachments.PDF.installTools.title=כלי PDF לא מותקנים
pane.item.attachments.PDF.installTools.text=To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences. pane.item.attachments.PDF.installTools.text=To use this feature, you must first install the PDF tools in the Search pane of the Zotero preferences.
pane.item.attachments.filename=שם קובץ pane.item.attachments.filename=שם קובץ
pane.item.noteEditor.clickHere=ללחוץ כאן pane.item.noteEditor.clickHere=ללחוץ כאן
pane.item.tags.count.zero=%S tags: pane.item.tags.count.zero=%S תגיות:
pane.item.tags.count.singular=תגית אחת: pane.item.tags.count.singular=תגית אחת:
pane.item.tags.count.plural=%S תגיות: pane.item.tags.count.plural=%S תגיות:
pane.item.tags.icon.user=תגית משתמש pane.item.tags.icon.user=תגית משתמש
@ -484,7 +491,7 @@ itemFields.source=מקור
itemFields.notes=הערות itemFields.notes=הערות
itemFields.tags=תגיות itemFields.tags=תגיות
itemFields.attachments=קבצים מצורפים itemFields.attachments=קבצים מצורפים
itemFields.related=Related itemFields.related=קשור
itemFields.url=כתובת itemFields.url=כתובת
itemFields.rights=זכויות itemFields.rights=זכויות
itemFields.series=סדרה itemFields.series=סדרה
@ -498,7 +505,7 @@ itemFields.ISBN=מסת״ב
itemFields.publicationTitle=הוצאה לאור itemFields.publicationTitle=הוצאה לאור
itemFields.ISSN=ISSN itemFields.ISSN=ISSN
itemFields.date=תאריך itemFields.date=תאריך
itemFields.section=Section itemFields.section=מקטע
itemFields.callNumber=Call Number itemFields.callNumber=Call Number
itemFields.archiveLocation=מיקום בארכיון itemFields.archiveLocation=מיקום בארכיון
itemFields.distributor=מפיץ itemFields.distributor=מפיץ
@ -526,11 +533,11 @@ itemFields.issueDate=תאריך הנפקה
itemFields.references=References itemFields.references=References
itemFields.legalStatus=מצב משפטי itemFields.legalStatus=מצב משפטי
itemFields.codeNumber=Code Number itemFields.codeNumber=Code Number
itemFields.artworkMedium=Medium itemFields.artworkMedium=אמצעי
itemFields.number=מספר itemFields.number=מספר
itemFields.artworkSize=גודל יצירת האומנות itemFields.artworkSize=גודל יצירת האומנות
itemFields.libraryCatalog=קטלוג ספרייה itemFields.libraryCatalog=קטלוג ספרייה
itemFields.videoRecordingFormat=Format itemFields.videoRecordingFormat=עיצוב
itemFields.interviewMedium=אמצעי itemFields.interviewMedium=אמצעי
itemFields.letterType=סוג itemFields.letterType=סוג
itemFields.manuscriptType=סוג itemFields.manuscriptType=סוג
@ -538,7 +545,7 @@ itemFields.mapType=סוג
itemFields.scale=קנה מידה itemFields.scale=קנה מידה
itemFields.thesisType=סוג itemFields.thesisType=סוג
itemFields.websiteType=סוג אתר itemFields.websiteType=סוג אתר
itemFields.audioRecordingFormat=Format itemFields.audioRecordingFormat=עיצוב
itemFields.label=תווית itemFields.label=תווית
itemFields.presentationType=סוג itemFields.presentationType=סוג
itemFields.meetingName=שם פגישה itemFields.meetingName=שם פגישה
@ -573,7 +580,7 @@ itemFields.applicationNumber=מספר בקשה
itemFields.forumTitle=Forum/Listserv Title itemFields.forumTitle=Forum/Listserv Title
itemFields.episodeNumber=מספר פרק itemFields.episodeNumber=מספר פרק
itemFields.blogTitle=שם בלוג itemFields.blogTitle=שם בלוג
itemFields.medium=Medium itemFields.medium=אמצעי
itemFields.caseName=שם התיק itemFields.caseName=שם התיק
itemFields.nameOfAct=שם החוק itemFields.nameOfAct=שם החוק
itemFields.subject=נושא itemFields.subject=נושא
@ -747,7 +754,7 @@ zotero.preferences.advanced.migrateDataDir.directoryWillBeMoved=תיקיית ה
zotero.preferences.advanced.migrateDataDir.appMustBeRestarted=יש להפעיל את %S מחדש כדי להשלים את ההסבה. zotero.preferences.advanced.migrateDataDir.appMustBeRestarted=יש להפעיל את %S מחדש כדי להשלים את ההסבה.
zotero.preferences.advanced.migrateDataDir.manualMigration=You can also quit %1$S and move your existing data directory to %2$S manually, which may be faster for larger data directories. %3$S will automatically detect the new location. zotero.preferences.advanced.migrateDataDir.manualMigration=You can also quit %1$S and move your existing data directory to %2$S manually, which may be faster for larger data directories. %3$S will automatically detect the new location.
zotero.debugOutputLogging=Debug Output Logging zotero.debugOutputLogging=תיעוד פלט ניפוי שגיאות
zotero.debugOutputLogging.linesLogged=שורה תועדה;%1$S שורות תועדו zotero.debugOutputLogging.linesLogged=שורה תועדה;%1$S שורות תועדו
zotero.debugOutputLogging.dialog.title=Debug Output Submitted zotero.debugOutputLogging.dialog.title=Debug Output Submitted
zotero.debugOutputLogging.dialog.sent=Debug output has been sent to %S.\n\nThe Debug ID is D%S. zotero.debugOutputLogging.dialog.sent=Debug output has been sent to %S.\n\nThe Debug ID is D%S.
@ -864,22 +871,7 @@ citation.showEditor=הצגת עורך…
citation.hideEditor=הסתרת עורך… citation.hideEditor=הסתרת עורך…
citation.citations=ציטוטים citation.citations=ציטוטים
citation.notes=הערות citation.notes=הערות
citation.locator.page=עמוד citation.locator.timestamp=Timestamp
citation.locator.book=ספר
citation.locator.chapter=פרק
citation.locator.column=עמודה
citation.locator.figure=Figure
citation.locator.folio=Folio
citation.locator.issue=גיליון
citation.locator.line=שורה
citation.locator.note=הערה
citation.locator.opus=אופוס
citation.locator.paragraph=פסקה
citation.locator.part=חלק
citation.locator.section=מקטע
citation.locator.subverbo=Sub verbo
citation.locator.volume=כרך
citation.locator.verse=פסוק
report.title.default=דוח Zotero report.title.default=דוח Zotero
report.parentItem=פריט הורה: report.parentItem=פריט הורה:
@ -934,9 +926,9 @@ integration.error.noBibliography=The current bibliographic style does not define
integration.error.deletePipe=The pipe that Zotero uses to communicate with the word processor could not be initialized. Would you like Zotero to attempt to correct this error? You will be prompted for your password. integration.error.deletePipe=The pipe that Zotero uses to communicate with the word processor could not be initialized. Would you like Zotero to attempt to correct this error? You will be prompted for your password.
integration.error.invalidStyle=The style you have selected does not appear to be valid. If you have created this style yourself, please ensure that it passes validation as described at https://github.com/citation-style-language/styles/wiki/Validation. Alternatively, try selecting another style. integration.error.invalidStyle=The style you have selected does not appear to be valid. If you have created this style yourself, please ensure that it passes validation as described at https://github.com/citation-style-language/styles/wiki/Validation. Alternatively, try selecting another style.
integration.error.fieldTypeMismatch=Zotero cannot update this document because it was created by a different word processing application with an incompatible field encoding. In order to make a document compatible with both Word and LibreOffice, open the document in the word processor with which it was originally created and switch the field type to Bookmarks in the Zotero Document Preferences. integration.error.fieldTypeMismatch=Zotero cannot update this document because it was created by a different word processing application with an incompatible field encoding. In order to make a document compatible with both Word and LibreOffice, open the document in the word processor with which it was originally created and switch the field type to Bookmarks in the Zotero Document Preferences.
integration.error.styleMissing=The citation style used in this document is missing. Would you like to install it from %S? integration.error.styleMissing=סגנון הציטוט בו נעשה שימוש במסמך הזה חסר. להתקין אותו מתוך %S?
integration.error.styleNotFound=The citation style %S could not be found. integration.error.styleNotFound=לא ניתן למצוא את סגנון הציטוט %S.
integration.error.misconfiguredWordStartupFolder.some=%S could not install the Word plugin for some versions of Word installed on your computer because the Word Startup folder location is misconfigured. integration.error.misconfiguredWordStartupFolder.some=ל־%S לא הייתה אפשרות להתקין את תוסף Word לחלק מגרסאות ה־Word המותקנות במחשב שלך כיוון שמיקום תיקיית ההפעלה של Word לא מוגדר היטב.
integration.error.misconfiguredWordStartupFolder.all=%S could not install the Word plugin because the Word Startup folder location is misconfigured. integration.error.misconfiguredWordStartupFolder.all=%S could not install the Word plugin because the Word Startup folder location is misconfigured.
integration.error.misconfiguredWordStartupFolder.fix=The plugin may not appear in Word until you reset your Startup folder to the default location. integration.error.misconfiguredWordStartupFolder.fix=The plugin may not appear in Word until you reset your Startup folder to the default location.
integration.error.macWordSBPermissionsMissing.title=Missing Permission integration.error.macWordSBPermissionsMissing.title=Missing Permission
@ -1005,7 +997,7 @@ sync.skipGroup=דילוג על הקבוצה
sync.removeGroupsAndSync=להסיר את הקבוצות ולסנכרן sync.removeGroupsAndSync=להסיר את הקבוצות ולסנכרן
sync.reminder.setUp.message=Back up your library with %S syncing. sync.reminder.setUp.message=Back up your library with %S syncing.
sync.reminder.setUp.action=Set Up Syncing sync.reminder.setUp.action=הקמת סנכרון
sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing? sync.reminder.autoSync.message=%S hasn’t synced in a while. Do you want to enable automatic syncing?
sync.error.usernameNotSet=לא הוגדר שם משתמש sync.error.usernameNotSet=לא הוגדר שם משתמש
@ -1154,7 +1146,7 @@ sync.longTagFixer.saveTag=שמירת תגית
sync.longTagFixer.saveTags=שמירת תגיות sync.longTagFixer.saveTags=שמירת תגיות
sync.longTagFixer.deleteTag=מחיקת תגית sync.longTagFixer.deleteTag=מחיקת תגית
proxies.multiSite=Multi-Site proxies.multiSite=ריבוי אתרים
proxies.error=הגדרות המתווך שגויות proxies.error=הגדרות המתווך שגויות
proxies.error.scheme.noHTTP=Valid proxy schemes must start with "http://" or "https://" proxies.error.scheme.noHTTP=Valid proxy schemes must start with "http://" or "https://"
proxies.error.host.invalid=You must enter a full hostname for the site served by this proxy (e.g., jstor.org). proxies.error.host.invalid=You must enter a full hostname for the site served by this proxy (e.g., jstor.org).
@ -1382,6 +1374,11 @@ pdfReader.promptTransferFromPDF.text=הסברים שמאוחסנים ב־PDF י
pdfReader.promptTransferToPDF.title=אחסון הסברים בקובץ pdfReader.promptTransferToPDF.title=אחסון הסברים בקובץ
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=הפעולה אינה נתמכת בקובצי PDF שמוגנים בסיסמה. pdfReader.promptPasswordProtected=הפעולה אינה נתמכת בקובצי PDF שמוגנים בסיסמה.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=עריכת מספר עמוד… pdfReader.editPageNumber=עריכת מספר עמוד…
pdfReader.editHighlightedText=עריכת טקסט מודגש pdfReader.editHighlightedText=עריכת טקסט מודגש
pdfReader.pageNumberPopupHeader=החלפת מספר העמוד של: pdfReader.pageNumberPopupHeader=החלפת מספר העמוד של:

View file

@ -164,7 +164,7 @@
<!ENTITY zotero.preferences.prefpane.advanced "Advanced"> <!ENTITY zotero.preferences.prefpane.advanced "Advanced">
<!ENTITY zotero.preferences.advanced.filesAndFolders "Files and Folders"> <!ENTITY zotero.preferences.advanced.filesAndFolders "Files and Folders">
<!ENTITY zotero.preferences.advanced.keys "Shortcuts"> <!ENTITY zotero.preferences.advanced.keys "Shortcut Keys">
<!ENTITY zotero.preferences.advanced.advancedConfiguration "Advanced Configuration"> <!ENTITY zotero.preferences.advanced.advancedConfiguration "Advanced Configuration">

View file

@ -1,4 +1,4 @@
<!ENTITY preferencesCmdMac.label "Preferences…"> <!ENTITY preferencesCmdMac.label "Preferences...">
<!ENTITY preferencesCmdMac.commandkey ","> <!ENTITY preferencesCmdMac.commandkey ",">
<!ENTITY servicesMenuMac.label "Services"> <!ENTITY servicesMenuMac.label "Services">
<!ENTITY hideThisAppCmdMac.label "Hide &brandShortName;"> <!ENTITY hideThisAppCmdMac.label "Hide &brandShortName;">
@ -25,7 +25,7 @@
<!ENTITY closeCmd.accesskey "C"> <!ENTITY closeCmd.accesskey "C">
<!ENTITY manageAttachments.label "Manage Attachments"> <!ENTITY manageAttachments.label "Manage Attachments">
<!ENTITY convertToStored.label "Convert Linked Files to Stored Files…"> <!ENTITY convertToStored.label "Convert Linked Files to Stored Files…">
<!ENTITY importCmd.label "Import…"> <!ENTITY importCmd.label "Import...">
<!ENTITY importCmd.key "I"> <!ENTITY importCmd.key "I">
<!ENTITY importFromClipboardCmd.label "Import from Clipboard"> <!ENTITY importFromClipboardCmd.label "Import from Clipboard">
<!ENTITY quitApplicationCmdWin.label "Exit"> <!ENTITY quitApplicationCmdWin.label "Exit">
@ -92,7 +92,7 @@
<!ENTITY helpFeedbackPage.label "Discussion Forums"> <!ENTITY helpFeedbackPage.label "Discussion Forums">
<!ENTITY helpFeedbackPage.accesskey "F"> <!ENTITY helpFeedbackPage.accesskey "F">
<!ENTITY helpReportErrors.label "Report Errors…"> <!ENTITY helpReportErrors.label "Report Errors...">
<!ENTITY helpReportErrors.accesskey "R"> <!ENTITY helpReportErrors.accesskey "R">
<!ENTITY debugOutputLogging.label "Debug Output Logging"> <!ENTITY debugOutputLogging.label "Debug Output Logging">

View file

@ -3,7 +3,7 @@
<!ENTITY zotero.general.optional "(Optional)"> <!ENTITY zotero.general.optional "(Optional)">
<!ENTITY zotero.general.note "Note:"> <!ENTITY zotero.general.note "Note:">
<!ENTITY zotero.general.selectAll "Select All"> <!ENTITY zotero.general.selectAll "Select All">
<!ENTITY zotero.general.deselectAll "Deselect All"> <!ENTITY zotero.general.deselectAll "Deselect all">
<!ENTITY zotero.general.edit "Edit"> <!ENTITY zotero.general.edit "Edit">
<!ENTITY zotero.general.delete "Delete"> <!ENTITY zotero.general.delete "Delete">
<!ENTITY zotero.general.moveToTrash "Move to Trash"> <!ENTITY zotero.general.moveToTrash "Move to Trash">
@ -57,8 +57,8 @@
<!ENTITY zotero.items.itemType "Item Type"> <!ENTITY zotero.items.itemType "Item Type">
<!ENTITY zotero.items.creator_column "Creator"> <!ENTITY zotero.items.creator_column "Creator">
<!ENTITY zotero.items.year_column "Year"> <!ENTITY zotero.items.year_column "Godina">
<!ENTITY zotero.items.dateModified_column "Date Modified"> <!ENTITY zotero.items.dateModified_column "Datum izmjene">
<!ENTITY zotero.items.moreColumns.label "More Columns"> <!ENTITY zotero.items.moreColumns.label "More Columns">
<!ENTITY zotero.items.restoreColumnOrder.label "Restore Column Order"> <!ENTITY zotero.items.restoreColumnOrder.label "Restore Column Order">

View file

@ -19,8 +19,8 @@ general.unknownErrorOccurred=An unknown error occurred.
general.invalidResponseServer=Invalid response from server. general.invalidResponseServer=Invalid response from server.
general.tryAgainLater=Please try again in a few minutes. general.tryAgainLater=Please try again in a few minutes.
general.serverError=The server returned an error. Please try again. general.serverError=The server returned an error. Please try again.
general.pleaseRestart=Please restart %S. general.pleaseRestart=Please restart Firefox.
general.pleaseRestartAndTryAgain=Please restart %S and try again. general.pleaseRestartAndTryAgain=Please restart Firefox and try again.
general.checkForUpdate=Check for Update general.checkForUpdate=Check for Update
general.checkForUpdates=Check for Updates general.checkForUpdates=Check for Updates
general.actionCannotBeUndone=This action cannot be undone. general.actionCannotBeUndone=This action cannot be undone.
@ -327,6 +327,9 @@ pane.items.remove.multiple=Are you sure you want to remove the selected items fr
pane.items.removeFromPublications.title=Remove from My Publications pane.items.removeFromPublications.title=Remove from My Publications
pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications? pane.items.removeFromPublications=Are you sure you want to remove the selected item from My Publications?
pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications? pane.items.removeFromPublications.multiple=Are you sure you want to remove the selected items from My Publications?
pane.items.removeRecursive.title=Remove from Collection and Subcollections
pane.items.removeRecursive=Are you sure you want to remove the selected item from this collection and all subcollections?
pane.items.removeRecursive.multiple=Are you sure you want to remove the selected items from this collection and all subcollections?
pane.items.menu.addNoteFromAnnotations=Add Note from Annotations pane.items.menu.addNoteFromAnnotations=Add Note from Annotations
pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations pane.items.menu.addNoteFromAnnotations.multiple=Add Notes from Annotations
pane.items.menu.findAvailablePDF=Find Available PDF pane.items.menu.findAvailablePDF=Find Available PDF
@ -343,6 +346,8 @@ pane.items.menu.export=Export Selected Item...
pane.items.menu.export.multiple=Export Selected Items... pane.items.menu.export.multiple=Export Selected Items...
pane.items.menu.exportNote=Export Note… pane.items.menu.exportNote=Export Note…
pane.items.menu.exportNote.multiple=Export Notes… pane.items.menu.exportNote.multiple=Export Notes…
pane.items.menu.exportPDF=Export PDF…
pane.items.menu.exportPDF.multiple=Export PDFs…
pane.items.menu.createBib=Create Bibliography from Selected Item... pane.items.menu.createBib=Create Bibliography from Selected Item...
pane.items.menu.createBib.multiple=Create Bibliography from Selected Items... pane.items.menu.createBib.multiple=Create Bibliography from Selected Items...
pane.items.menu.generateReport=Generate Report from Selected Item... pane.items.menu.generateReport=Generate Report from Selected Item...
@ -355,6 +360,8 @@ pane.items.menu.createParent=Create Parent Item…
pane.items.menu.createParent.multiple=Create Parent Items pane.items.menu.createParent.multiple=Create Parent Items
pane.items.menu.renameAttachments=Rename File from Parent Metadata pane.items.menu.renameAttachments=Rename File from Parent Metadata
pane.items.menu.renameAttachments.multiple=Rename Files from Parent Metadata pane.items.menu.renameAttachments.multiple=Rename Files from Parent Metadata
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
pane.items.showItemInLibrary=Show Item in Library pane.items.showItemInLibrary=Show Item in Library
pane.items.letter.oneParticipant=Letter to %S pane.items.letter.oneParticipant=Letter to %S
@ -830,7 +837,7 @@ searchConditions.presentationType=Presentation Type
searchConditions.mapType=Map Type searchConditions.mapType=Map Type
searchConditions.medium=Medium searchConditions.medium=Medium
searchConditions.artworkMedium=Artwork Medium searchConditions.artworkMedium=Artwork Medium
searchConditions.dateModified=Date Modified searchConditions.dateModified=Datum izmjene
searchConditions.fulltextContent=Attachment Content searchConditions.fulltextContent=Attachment Content
searchConditions.programmingLanguage=Programming Language searchConditions.programmingLanguage=Programming Language
searchConditions.fileTypeID=Attachment File Type searchConditions.fileTypeID=Attachment File Type
@ -864,22 +871,7 @@ citation.showEditor=Show Editor...
citation.hideEditor=Hide Editor... citation.hideEditor=Hide Editor...
citation.citations=Citations citation.citations=Citations
citation.notes=Notes citation.notes=Notes
citation.locator.page=Page citation.locator.timestamp=Timestamp
citation.locator.book=Book
citation.locator.chapter=Chapter
citation.locator.column=Column
citation.locator.figure=Figure
citation.locator.folio=Folio
citation.locator.issue=Issue
citation.locator.line=Line
citation.locator.note=Note
citation.locator.opus=Opus
citation.locator.paragraph=Paragraph
citation.locator.part=Part
citation.locator.section=Section
citation.locator.subverbo=Sub verbo
citation.locator.volume=Volume
citation.locator.verse=Verse
report.title.default=Zotero Report report.title.default=Zotero Report
report.parentItem=Parent Item: report.parentItem=Parent Item:
@ -1176,7 +1168,7 @@ recognizePDF.couldNotRead=Could not read text from PDF
recognizePDF.noMatches=No matching references found recognizePDF.noMatches=No matching references found
recognizePDF.fileNotFound=File not found recognizePDF.fileNotFound=File not found
recognizePDF.error=An unexpected error occurred recognizePDF.error=An unexpected error occurred
recognizePDF.recognizing.label=Retrieving Metadata… recognizePDF.recognizing.label=Retrieving Metadata...
recognizePDF.complete.label=Metadata Retrieval Complete recognizePDF.complete.label=Metadata Retrieval Complete
recognizePDF.pdfName.label=PDF Name recognizePDF.pdfName.label=PDF Name
recognizePDF.itemName.label=Item Name recognizePDF.itemName.label=Item Name
@ -1382,6 +1374,11 @@ pdfReader.promptTransferFromPDF.text=Annotations stored in the PDF file will be
pdfReader.promptTransferToPDF.title=Store Annotations in File pdfReader.promptTransferToPDF.title=Store Annotations in File
pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S. pdfReader.promptTransferToPDF.text=Annotations will be transferred to the PDF file and will no longer be editable in %S.
pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files. pdfReader.promptPasswordProtected=The operation is not supported for password-protected PDF files.
pdfReader.promptDeletePages.title=Delete Pages
pdfReader.promptDeletePages.text=Are you sure you want to delete %1$S page from the PDF file?;Are you sure you want to delete %1$S pages from the PDF file?
pdfReader.rotateLeft=Rotate Left
pdfReader.rotateRight=Rotate Right
pdfReader.rotate180=Rotate 180°
pdfReader.editPageNumber=Edit Page Number… pdfReader.editPageNumber=Edit Page Number…
pdfReader.editHighlightedText=Edit Highlighted Text pdfReader.editHighlightedText=Edit Highlighted Text
pdfReader.pageNumberPopupHeader=Change page number for: pdfReader.pageNumberPopupHeader=Change page number for:

Some files were not shown because too many files have changed in this diff Show more