mirror of
https://github.com/zotero/zotero.git
synced 2026-09-28 01:31:40 +00:00
Merge branch 'zotero:main' into advanced-search-attachment-storage-type
This commit is contained in:
commit
da4915653e
112 changed files with 1257 additions and 611 deletions
|
|
@ -45,8 +45,7 @@ S3_CI_ZIP_PATH="ci/client"
|
|||
S3_DIST_PATH="client"
|
||||
|
||||
DEPLOY_HOST="deploy.zotero"
|
||||
DEPLOY_PATH="www/www-production/public/download/client/manifests"
|
||||
DEPLOY_CMD="ssh $DEPLOY_HOST update-site-files"
|
||||
DEPLOY_PATH="www/www-production/public/download/client"
|
||||
|
||||
BUILD_PLATFORMS=""
|
||||
NUM_INCREMENTALS=6
|
||||
|
|
|
|||
|
|
@ -8,10 +8,20 @@ ROOT_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")"
|
|||
|
||||
CHANNEL="release"
|
||||
BRANCH="8.0"
|
||||
BUILD_ONLY=0
|
||||
if [ "`uname`" = "Darwin" ]; then
|
||||
export SAFARI_APPEX="$ROOT_DIR/../safari-app-extension-builds/release/ZoteroSafariExtension.appex"
|
||||
fi
|
||||
|
||||
while getopts "b" opt; do
|
||||
case $opt in
|
||||
b)
|
||||
BUILD_ONLY=1
|
||||
;;
|
||||
esac
|
||||
shift $((OPTIND-1)); OPTIND=1
|
||||
done
|
||||
|
||||
cd "$SCRIPT_DIR"
|
||||
./check_requirements
|
||||
|
||||
|
|
@ -26,4 +36,14 @@ function cleanup {
|
|||
trap cleanup EXIT
|
||||
|
||||
./prepare_build -s "$source_dir" -o "$build_dir" -c $CHANNEL -m $hash
|
||||
./build_and_deploy -d "$build_dir" -p $BUILD_PLATFORMS -c $CHANNEL
|
||||
VERSION="`cat \"$build_dir/version\"`"
|
||||
./build_for_deploy -d "$build_dir" -p $BUILD_PLATFORMS -c $CHANNEL
|
||||
|
||||
if [ $BUILD_ONLY -eq 1 ]; then
|
||||
echo
|
||||
echo "Build only -- skipping deploy."
|
||||
echo "To deploy, run on the deploy server:"
|
||||
echo " $DEPLOY_PATH/deploy $CHANNEL $VERSION $BUILD_PLATFORMS"
|
||||
else
|
||||
ssh $DEPLOY_HOST "$DEPLOY_PATH/deploy" $CHANNEL "$VERSION" $BUILD_PLATFORMS
|
||||
fi
|
||||
|
|
|
|||
49
app/scripts/9.0_release_build_and_deploy
Executable file
49
app/scripts/9.0_release_build_and_deploy
Executable file
|
|
@ -0,0 +1,49 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
APP_ROOT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
ROOT_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")"
|
||||
. "$APP_ROOT_DIR/config.sh"
|
||||
|
||||
CHANNEL="release"
|
||||
BRANCH="9.0"
|
||||
BUILD_ONLY=0
|
||||
if [ "`uname`" = "Darwin" ]; then
|
||||
export SAFARI_APPEX="$ROOT_DIR/../safari-app-extension-builds/release/ZoteroSafariExtension.appex"
|
||||
fi
|
||||
|
||||
while getopts "b" opt; do
|
||||
case $opt in
|
||||
b)
|
||||
BUILD_ONLY=1
|
||||
;;
|
||||
esac
|
||||
shift $((OPTIND-1)); OPTIND=1
|
||||
done
|
||||
|
||||
cd "$SCRIPT_DIR"
|
||||
./check_requirements
|
||||
|
||||
hash=`./get_repo_branch_hash $BRANCH`
|
||||
source_dir=`./get_commit_files $hash`
|
||||
build_dir=`mktemp -d`
|
||||
|
||||
function cleanup {
|
||||
rm -rf "$source_dir"
|
||||
rm -rf "$build_dir"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
./prepare_build -s "$source_dir" -o "$build_dir" -c $CHANNEL -m $hash
|
||||
VERSION="`cat \"$build_dir/version\"`"
|
||||
./build_for_deploy -d "$build_dir" -p $BUILD_PLATFORMS -c $CHANNEL
|
||||
|
||||
if [ $BUILD_ONLY -eq 1 ]; then
|
||||
echo
|
||||
echo "Build only -- skipping deploy."
|
||||
echo "To deploy, run on the deploy server:"
|
||||
echo " $DEPLOY_PATH/deploy $CHANNEL $VERSION $BUILD_PLATFORMS"
|
||||
else
|
||||
ssh $DEPLOY_HOST "$DEPLOY_PATH/deploy" $CHANNEL "$VERSION" $BUILD_PLATFORMS
|
||||
fi
|
||||
|
|
@ -27,4 +27,6 @@ function cleanup {
|
|||
trap cleanup EXIT
|
||||
|
||||
./prepare_build -s "$source_dir" -o "$build_dir" -c $CHANNEL -m $hash
|
||||
./build_and_deploy -d "$build_dir" -p $BUILD_PLATFORMS -c $CHANNEL
|
||||
VERSION="`cat \"$build_dir/version\"`"
|
||||
./build_for_deploy -d "$build_dir" -p $BUILD_PLATFORMS -c $CHANNEL
|
||||
ssh $DEPLOY_HOST "$DEPLOY_PATH/deploy" $CHANNEL "$VERSION" $BUILD_PLATFORMS
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Builds and deploys Zotero with full and incremental updates
|
||||
# Builds Zotero and uploads to S3 and deploy server, but does not make the build live.
|
||||
# To make the build live, run the deploy script on the deploy server (or via SSH).
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
|
|
@ -107,13 +108,23 @@ do
|
|||
usage
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
echo
|
||||
echo "Getting $platform_name incrementals"
|
||||
INCREMENTALS="`\"$SCRIPT_DIR/manage_incrementals\" -c $CHANNEL -p ${PLATFORMS:i:1} -n $NUM_INCREMENTALS`"
|
||||
|
||||
# Fetch pinned incrementals from deploy server and merge
|
||||
PINNED_FILE="$DEPLOY_PATH/manifests/$CHANNEL/pinned-incrementals-$platform"
|
||||
PINNED=""
|
||||
if ssh $DEPLOY_HOST "test -f $PINNED_FILE"; then
|
||||
PINNED="`ssh $DEPLOY_HOST cat $PINNED_FILE`"
|
||||
fi
|
||||
|
||||
# Combine and deduplicate
|
||||
INCREMENTALS="`echo -e "$INCREMENTALS\n$PINNED" | sort -u | grep -v '^$'`"
|
||||
echo "$INCREMENTALS"
|
||||
echo
|
||||
|
||||
|
||||
if [ -n "$INCREMENTALS" ]; then
|
||||
for from in $INCREMENTALS; do
|
||||
echo "Building incremental update for $platform_name from $from to $VERSION"
|
||||
|
|
@ -127,7 +138,7 @@ done
|
|||
"$SCRIPT_DIR/upload_builds" $CHANNEL $VERSION
|
||||
|
||||
# Upload file lists and build info for each platform
|
||||
channel_deploy_path="$DEPLOY_PATH/$CHANNEL"
|
||||
channel_deploy_path="$DEPLOY_PATH/manifests/$CHANNEL"
|
||||
mkdir "$TEMP_DIR/version_info"
|
||||
chmod g+ws "$TEMP_DIR/version_info"
|
||||
cp "$DIST_DIR"/files-* "$TEMP_DIR/version_info"
|
||||
|
|
@ -148,38 +159,9 @@ do
|
|||
done
|
||||
rsync -rv "$TEMP_DIR/version_info/" $DEPLOY_HOST:"$channel_deploy_path/$VERSION/"
|
||||
|
||||
# Download updates JSON for each platform, update it, and reupload it
|
||||
for i in `seq 0 1 $((${#PLATFORMS}-1))`
|
||||
do
|
||||
case ${PLATFORMS:i:1} in
|
||||
m)
|
||||
architectures="mac"
|
||||
;;
|
||||
w)
|
||||
architectures="win32 win-x64 win-arm64"
|
||||
;;
|
||||
l)
|
||||
architectures="linux-i686 linux-x86_64 linux-arm64"
|
||||
;;
|
||||
esac
|
||||
|
||||
for arch in $architectures;
|
||||
do
|
||||
jsonfile="updates-$arch.json"
|
||||
|
||||
scp $DEPLOY_HOST:"$channel_deploy_path/$jsonfile" "$TEMP_DIR/$jsonfile"
|
||||
"$SCRIPT_DIR/add_version_info" -f "$TEMP_DIR/$jsonfile" -v $VERSION -b $BUILD_ID
|
||||
scp "$TEMP_DIR/$jsonfile" $DEPLOY_HOST:"$channel_deploy_path/$jsonfile"
|
||||
done
|
||||
done
|
||||
|
||||
# Add version to incremental lists
|
||||
echo
|
||||
for i in `seq 0 1 $((${#PLATFORMS}-1))`
|
||||
do
|
||||
"$SCRIPT_DIR/manage_incrementals" -c $CHANNEL -p ${PLATFORMS:i:1} -a $VERSION
|
||||
done
|
||||
|
||||
$DEPLOY_CMD
|
||||
|
||||
rm -rf "$STAGE_DIR"/*
|
||||
|
||||
echo
|
||||
echo "Build $VERSION uploaded successfully."
|
||||
echo "To deploy, run on the deploy server:"
|
||||
echo " ./deploy $CHANNEL $VERSION $PLATFORMS"
|
||||
|
|
@ -24,4 +24,6 @@ function cleanup {
|
|||
trap cleanup EXIT
|
||||
|
||||
./prepare_build -s "$source_dir" -o "$build_dir" -c $CHANNEL -m $hash
|
||||
./build_and_deploy -d "$build_dir" -p $BUILD_PLATFORMS -c $CHANNEL -i 1
|
||||
VERSION="`cat \"$build_dir/version\"`"
|
||||
./build_for_deploy -d "$build_dir" -p $BUILD_PLATFORMS -c $CHANNEL -i 1
|
||||
ssh $DEPLOY_HOST "$DEPLOY_PATH/deploy" $CHANNEL "$VERSION" $BUILD_PLATFORMS
|
||||
|
|
|
|||
|
|
@ -64,22 +64,19 @@ if [[ "$VERSION" ]] && [[ "$NUM_VERSIONS" ]]; then
|
|||
usage
|
||||
fi
|
||||
|
||||
INCR_FILENAME="incrementals-$CHANNEL-$PLATFORM"
|
||||
S3_URL="s3://$S3_BUCKET/$S3_DIST_PATH/$CHANNEL/incrementals-$PLATFORM"
|
||||
INCR_FILENAME="incrementals-$PLATFORM"
|
||||
REMOTE_PATH="$DEPLOY_PATH/manifests/$CHANNEL/$INCR_FILENAME"
|
||||
INCR_PATH="$DIST_DIR/$INCR_FILENAME"
|
||||
|
||||
if [ "`uname -o 2> /dev/null`" = "Cygwin" ]; then
|
||||
INCR_PATH=$(cygpath -w "$INCR_PATH")
|
||||
fi
|
||||
|
||||
mkdir -p "$DIST_DIR"
|
||||
aws s3 cp $S3_URL "$INCR_PATH" >&2
|
||||
scp $DEPLOY_HOST:"$REMOTE_PATH" "$INCR_PATH" >&2
|
||||
|
||||
# Add version to file and reupload
|
||||
if [ "$VERSION" ]; then
|
||||
echo "Adding $VERSION to incrementals-$PLATFORM"
|
||||
echo $VERSION >> "$INCR_PATH"
|
||||
aws s3 cp "$INCR_PATH" $S3_URL
|
||||
scp "$INCR_PATH" $DEPLOY_HOST:"$REMOTE_PATH"
|
||||
# Show last n versions
|
||||
elif [ "$NUM_VERSIONS" -gt 0 ]; then
|
||||
# TEMP: Don't include 6.0 versions
|
||||
|
|
|
|||
|
|
@ -24,4 +24,6 @@ function cleanup {
|
|||
trap cleanup EXIT
|
||||
|
||||
./prepare_build -s "$source_dir" -o "$build_dir" -c $CHANNEL -m $hash
|
||||
./build_and_deploy -d "$build_dir" -p $BUILD_PLATFORMS -c $CHANNEL -i 1
|
||||
VERSION="`cat \"$build_dir/version\"`"
|
||||
./build_for_deploy -d "$build_dir" -p $BUILD_PLATFORMS -c $CHANNEL -i 1
|
||||
ssh $DEPLOY_HOST "$DEPLOY_PATH/deploy" $CHANNEL "$VERSION" $BUILD_PLATFORMS
|
||||
|
|
|
|||
|
|
@ -3022,14 +3022,16 @@ var CollectionTree = class CollectionTree extends LibraryTree {
|
|||
|
||||
// Recently Read
|
||||
if (showRecentlyRead && this._isFilterEmpty()) {
|
||||
let s = new Zotero.Search();
|
||||
s.libraryID = libraryID;
|
||||
s.name = Zotero.getString('recently-read');
|
||||
s.addCondition('libraryID', 'is', libraryID);
|
||||
s.addCondition('lastRead', 'isInTheLast', '14 days');
|
||||
s.addCondition('includeParents', 'true');
|
||||
rows.splice(row + 1 + newRows, 0,
|
||||
new Zotero.CollectionTreeRow(this, 'recentlyRead', s, level + 1));
|
||||
new Zotero.CollectionTreeRow(this,
|
||||
'recentlyRead',
|
||||
{
|
||||
libraryID,
|
||||
name: Zotero.getString('recently-read'),
|
||||
},
|
||||
level + 1
|
||||
)
|
||||
);
|
||||
newRows++;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1066,7 +1066,8 @@ class VirtualizedTable extends React.Component {
|
|||
}
|
||||
|
||||
componentDidUpdate(prevProps) {
|
||||
if (this.props.id !== prevProps.id) {
|
||||
if (this.props.id !== prevProps.id
|
||||
|| this.props.columns !== prevProps.columns) {
|
||||
this._columns = new Columns(this);
|
||||
this.forceUpdate();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1125,7 +1125,7 @@ var ItemTree = class ItemTree extends LibraryTree {
|
|||
window.ZoteroPane.loadURI(e.target.dataset.href);
|
||||
}
|
||||
if (e.target.dataset.action == 'open-sync-prefs') {
|
||||
Zotero.Utilities.Internal.openPreferences('zotero-prefpane-sync');
|
||||
Zotero.Utilities.Internal.openPreferences('zotero-prefpane-account');
|
||||
}
|
||||
}}
|
||||
className={"items-tree-message"}
|
||||
|
|
@ -1304,7 +1304,7 @@ var ItemTree = class ItemTree extends LibraryTree {
|
|||
// Clear the quick search and tag selection and try again (once)
|
||||
if (!noRecurse && window.ZoteroPane) {
|
||||
let hasQuickSearch = !!this.collectionTreeRow.searchText;
|
||||
let hasTagFilters = this.collectionTreeRow.tags.size > 0;
|
||||
let hasTagFilters = this.collectionTreeRow.tags?.size > 0;
|
||||
if (hasQuickSearch || hasTagFilters) {
|
||||
// Clear all searches set on the collection tree row directly on
|
||||
// collectionTreeRow (vs using ZoteroPane functions) to avoid
|
||||
|
|
@ -3810,11 +3810,15 @@ var ItemTree = class ItemTree extends LibraryTree {
|
|||
|
||||
const visibilityGroup = this.collectionTreeRow.visibilityGroup;
|
||||
const prefKey = this.id;
|
||||
if (this._columnsId == prefKey) {
|
||||
// Include group status in cache key so groupLibrariesOnly columns
|
||||
// are recalculated when switching between personal and group libraries
|
||||
let cacheKey = prefKey
|
||||
+ (this.collectionTreeRow.isWithinGroup?.() ? '-group' : '');
|
||||
if (this._columnsId == cacheKey) {
|
||||
return this._columns;
|
||||
}
|
||||
|
||||
this._columnsId = prefKey;
|
||||
|
||||
this._columnsId = cacheKey;
|
||||
this._columns = [];
|
||||
|
||||
let columnsSettings = this._getColumnPrefs();
|
||||
|
|
@ -3949,7 +3953,7 @@ var ItemTree = class ItemTree extends LibraryTree {
|
|||
else if (span.hasAttribute('data-action')) {
|
||||
if (span.getAttribute('data-action') == 'open-sync-prefs') {
|
||||
span.onclick = () => {
|
||||
Zotero.Utilities.Internal.openPreferences('zotero-prefpane-sync');
|
||||
Zotero.Utilities.Internal.openPreferences('zotero-prefpane-account');
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
<script src="chrome://zotero/content/include.js"/>
|
||||
<script src="preferences.js"/>
|
||||
<script src="preferences_sync.js"/>
|
||||
<script src="preferences_account.js"/>
|
||||
|
||||
<label style="font-size: 14px; margin-bottom: 0.5em;" value="&zotero.preferences.sync.librariesToSync;"/>
|
||||
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ Zotero_Preferences.Sync = {
|
|||
}
|
||||
});
|
||||
|
||||
document.getElementById('zotero-prefpane-sync').addEventListener('action', () => {
|
||||
document.getElementById('zotero-prefpane-account').addEventListener('action', () => {
|
||||
this._handlePendingAction();
|
||||
});
|
||||
// Auto-trigger login if opened with the 'logIn' action.
|
||||
|
|
@ -122,15 +122,13 @@ Zotero_Preferences.Sync = {
|
|||
|
||||
document.getElementById('sync-unauthorized').hidden = linked;
|
||||
document.getElementById('account-linked').hidden = !linked;
|
||||
document.getElementById('sync-settings-section').hidden = !loggedIn;
|
||||
document.getElementById('sync-reset').hidden = !loggedIn;
|
||||
|
||||
// Toggle logged-in vs logged-out elements within the linked container
|
||||
document.getElementById('account-log-out-button').hidden = !loggedIn;
|
||||
document.querySelector('.account-logged-out-status').hidden = !loggedOutLinked;
|
||||
document.getElementById('account-logged-out-actions').hidden = !loggedOutLinked;
|
||||
for (let elem of document.querySelectorAll('.sync-settings')) {
|
||||
elem.hidden = !loggedIn;
|
||||
}
|
||||
|
||||
let displayUsername = loggedIn ? username : linkedUsername;
|
||||
document.getElementById('account-username').value = displayUsername;
|
||||
|
|
@ -22,94 +22,16 @@
|
|||
|
||||
***** END LICENSE BLOCK *****
|
||||
-->
|
||||
<vbox id="zotero-prefpane-sync" onload="Zotero_Preferences.Sync.init()">
|
||||
<vbox id="zotero-prefpane-account" onload="Zotero_Preferences.Sync.init()">
|
||||
<vbox class="main-section">
|
||||
<vbox id="sync-unauthorized">
|
||||
<groupbox data-l10n-id="preferences-sync-data-syncing-groupbox">
|
||||
<label><html:h2 data-l10n-id="preferences-sync-data-syncing-heading"/></label>
|
||||
<description data-l10n-id="preferences-sync-data-syncing-description"/>
|
||||
<description data-l10n-id="preferences-sync-data-syncing-description"/>
|
||||
|
||||
<hbox>
|
||||
<vbox>
|
||||
<hbox class="account-login-default">
|
||||
<button data-l10n-id="preferences-account-log-in"
|
||||
oncommand="Zotero_Preferences.Sync.linkAccount(event)"/>
|
||||
</hbox>
|
||||
<hbox class="account-login-pending" hidden="true" align="center">
|
||||
<label class="account-login-status-indicator"/>
|
||||
<label data-l10n-id="preferences-account-waiting-for-login"/>
|
||||
<button data-l10n-id="preferences-account-cancel-button"
|
||||
oncommand="Zotero_Preferences.Sync.cancelLogin()"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
<vbox style="width:2em"/>
|
||||
<vbox>
|
||||
<label is="zotero-text-link" value="&zotero.preferences.sync.createAccount;" href="http://zotero.org/user/register"/>
|
||||
<separator class="thin"/>
|
||||
<label is="zotero-text-link" value="&zotero.preferences.sync.about;" href="http://www.zotero.org/support/sync"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</vbox>
|
||||
|
||||
<vbox id="account-linked" hidden="true">
|
||||
<groupbox data-l10n-id="preferences-sync-data-syncing-groupbox">
|
||||
<label><html:h2 data-l10n-id="preferences-sync-data-syncing-heading"/></label>
|
||||
|
||||
<html:div class="form-grid">
|
||||
<label value="&zotero.preferences.sync.username;"/>
|
||||
<hbox>
|
||||
<label id="account-username" value=""/>
|
||||
<!-- Logged in -->
|
||||
<button id="account-log-out-button"
|
||||
data-l10n-id="preferences-account-log-out"
|
||||
aria-describedby="account-username"
|
||||
oncommand="Zotero_Preferences.Sync.unlinkAccount()"
|
||||
hidden="true"/>
|
||||
<!-- Logged out -->
|
||||
<label data-l10n-id="preferences-account-logged-out-status"
|
||||
class="account-logged-out-status" hidden="true"/>
|
||||
</hbox>
|
||||
|
||||
<label id="account-email-label"
|
||||
data-l10n-id="preferences-account-email-label"
|
||||
hidden="true"/>
|
||||
<vbox id="account-emails" hidden="true"/>
|
||||
|
||||
<!-- Logged in: sync settings -->
|
||||
<box class="sync-settings" hidden="true"/>
|
||||
<box class="sync-settings" hidden="true">
|
||||
<button id="sync-libraries-button" label="&zotero.preferences.sync.librariesToSync.button;"
|
||||
oncommand="Zotero_Preferences.Sync.showLibrariesToSyncDialog()"
|
||||
data-search-strings="zotero.preferences.sync.librariesToSync"/>
|
||||
</box>
|
||||
|
||||
<box class="sync-settings" hidden="true"/>
|
||||
<checkbox class="sync-settings" hidden="true"
|
||||
label="&zotero.preferences.sync.syncAutomatically;"
|
||||
preference="extensions.zotero.sync.autoSync"
|
||||
native="true"/>
|
||||
|
||||
<box class="sync-settings" hidden="true"/>
|
||||
<checkbox class="sync-settings" hidden="true"
|
||||
label="&zotero.preferences.sync.syncFullTextContent;"
|
||||
preference="extensions.zotero.sync.fulltext.enabled"
|
||||
tooltiptext="&zotero.preferences.sync.syncFullTextContent.desc;"
|
||||
native="true"/>
|
||||
|
||||
<box class="sync-settings" hidden="true"/>
|
||||
<label class="sync-settings" hidden="true"
|
||||
is="zotero-text-link" value="&zotero.preferences.sync.about;" href="http://www.zotero.org/support/sync"/>
|
||||
</html:div>
|
||||
|
||||
<!-- Logged out: login/switch buttons -->
|
||||
<vbox id="account-logged-out-actions" style="margin-top: 8px" hidden="true">
|
||||
<hbox class="account-login-default" style="gap: 8px">
|
||||
<hbox>
|
||||
<vbox>
|
||||
<hbox class="account-login-default">
|
||||
<button data-l10n-id="preferences-account-log-in"
|
||||
oncommand="Zotero_Preferences.Sync.linkAccount(event)"/>
|
||||
<button data-l10n-id="preferences-account-switch-accounts"
|
||||
oncommand="Zotero_Preferences.Sync.switchAccounts()"/>
|
||||
</hbox>
|
||||
<hbox class="account-login-pending" hidden="true" align="center">
|
||||
<label class="account-login-status-indicator"/>
|
||||
|
|
@ -119,10 +41,88 @@
|
|||
</hbox>
|
||||
</vbox>
|
||||
|
||||
</groupbox>
|
||||
<vbox style="width:2em"/>
|
||||
<vbox>
|
||||
<label is="zotero-text-link" value="&zotero.preferences.sync.createAccount;" href="http://zotero.org/user/register"/>
|
||||
<separator class="thin"/>
|
||||
<label is="zotero-text-link" value="&zotero.preferences.sync.about;" href="http://www.zotero.org/support/sync"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
<groupbox id="storage-settings" aria-label="&zotero.preferences.sync.fileSyncing;">
|
||||
<label><html:h2>&zotero.preferences.sync.fileSyncing;</html:h2></label>
|
||||
<vbox id="account-linked" hidden="true">
|
||||
<html:div class="form-grid">
|
||||
<label value="&zotero.preferences.sync.username;"/>
|
||||
<hbox>
|
||||
<label id="account-username" value=""/>
|
||||
<!-- Logged in -->
|
||||
<button id="account-log-out-button"
|
||||
data-l10n-id="preferences-account-log-out"
|
||||
aria-describedby="account-username"
|
||||
oncommand="Zotero_Preferences.Sync.unlinkAccount()"
|
||||
hidden="true"/>
|
||||
<!-- Logged out -->
|
||||
<label data-l10n-id="preferences-account-logged-out-status"
|
||||
class="account-logged-out-status" hidden="true"/>
|
||||
</hbox>
|
||||
|
||||
<label id="account-email-label"
|
||||
data-l10n-id="preferences-account-email-label"
|
||||
hidden="true"/>
|
||||
<vbox id="account-emails" hidden="true"/>
|
||||
</html:div>
|
||||
|
||||
<!-- Logged out: login/switch buttons -->
|
||||
<vbox id="account-logged-out-actions" style="margin-top: 8px" hidden="true">
|
||||
<hbox class="account-login-default" style="gap: 8px">
|
||||
<button data-l10n-id="preferences-account-log-in"
|
||||
oncommand="Zotero_Preferences.Sync.linkAccount(event)"/>
|
||||
<button data-l10n-id="preferences-account-switch-accounts"
|
||||
oncommand="Zotero_Preferences.Sync.switchAccounts()"/>
|
||||
</hbox>
|
||||
<hbox class="account-login-pending" hidden="true" align="center">
|
||||
<label class="account-login-status-indicator"/>
|
||||
<label data-l10n-id="preferences-account-waiting-for-login"/>
|
||||
<button data-l10n-id="preferences-account-cancel-button"
|
||||
oncommand="Zotero_Preferences.Sync.cancelLogin()"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</vbox>
|
||||
</vbox>
|
||||
|
||||
<vbox class="main-section" id="sync-settings-section" hidden="true">
|
||||
<html:h1 data-l10n-id="preferences-sync-settings-heading"/>
|
||||
<description data-l10n-id="preferences-sync-settings-intro">
|
||||
<label is="zotero-text-link" href="http://www.zotero.org/support/sync" data-l10n-name="sync-link"/>
|
||||
</description>
|
||||
<separator class="thin"/>
|
||||
|
||||
<groupbox>
|
||||
<html:div class="form-grid">
|
||||
<box/>
|
||||
<checkbox
|
||||
label="&zotero.preferences.sync.syncAutomatically;"
|
||||
preference="extensions.zotero.sync.autoSync"
|
||||
native="true"/>
|
||||
|
||||
<box/>
|
||||
<checkbox
|
||||
label="&zotero.preferences.sync.syncFullTextContent;"
|
||||
preference="extensions.zotero.sync.fulltext.enabled"
|
||||
tooltiptext="&zotero.preferences.sync.syncFullTextContent.desc;"
|
||||
native="true"/>
|
||||
|
||||
<box/>
|
||||
<box>
|
||||
<button id="sync-libraries-button" label="&zotero.preferences.sync.librariesToSync.button;"
|
||||
oncommand="Zotero_Preferences.Sync.showLibrariesToSyncDialog()"
|
||||
data-search-strings="zotero.preferences.sync.librariesToSync"/>
|
||||
</box>
|
||||
</html:div>
|
||||
</groupbox>
|
||||
|
||||
<groupbox id="storage-settings" aria-label="&zotero.preferences.sync.fileSyncing;">
|
||||
<label><html:h2>&zotero.preferences.sync.fileSyncing;</html:h2></label>
|
||||
|
||||
<!-- My Library -->
|
||||
<hbox>
|
||||
|
|
@ -137,7 +137,7 @@
|
|||
oncommand="Zotero_Preferences.Sync.onStorageSettingsChange()"
|
||||
native="true">
|
||||
<menupopup>
|
||||
<menuitem label="Zotero" value="zotero"/>
|
||||
<menuitem label="Zotero Storage" value="zotero"/>
|
||||
<menuitem label="WebDAV" value="webdav"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
|
|
@ -212,7 +212,7 @@
|
|||
<separator id="storage-separator" class="thin"/>
|
||||
|
||||
<!-- Group Libraries -->
|
||||
<checkbox label="&zotero.preferences.sync.fileSyncing.groups;"
|
||||
<checkbox data-l10n-id="preferences-sync-fileSyncing-groups"
|
||||
preference="extensions.zotero.sync.storage.groups.enabled"
|
||||
oncommand="Zotero_Preferences.Sync.updateStorageSettingsGroupsUI()"
|
||||
native="true"/>
|
||||
|
|
@ -234,18 +234,15 @@
|
|||
<separator class="thin"/>
|
||||
|
||||
<vbox id="storage-terms">
|
||||
<hbox style="margin-top: .4em; display: block" align="center">
|
||||
<label id="preferences_storage_terms" >&zotero.preferences.sync.fileSyncing.tos1;</label>
|
||||
<label is="zotero-text-link" href="https://www.zotero.org/support/terms/terms_of_service" value="&zotero.preferences.sync.fileSyncing.tos2;" aria-describedby="preferences_storage_terms"/>
|
||||
<label>&zotero.preferences.period;</label>
|
||||
</hbox>
|
||||
<description style="margin-top: .4em" data-l10n-id="preferences-sync-fileSyncing-tos">
|
||||
<label is="zotero-text-link" href="https://www.zotero.org/support/terms/terms_of_service" data-l10n-name="terms-link"/>
|
||||
</description>
|
||||
</vbox>
|
||||
</groupbox>
|
||||
</vbox>
|
||||
</groupbox>
|
||||
</vbox>
|
||||
|
||||
<vbox class="main-section" id="sync-reset" align="start" aria-label="&zotero.preferences.sync.reset;" role="group">
|
||||
<html:h1>&zotero.preferences.sync.reset;</html:h1>
|
||||
<html:h1 data-l10n-id="preferences-sync-reset-heading"/>
|
||||
<button label="&zotero.preferences.sync.reset.showResetOptions;" oncommand="Zotero_Preferences.navigateToPane('zotero-subpane-reset-sync')"
|
||||
data-search-strings="
|
||||
zotero.preferences.sync.reset.restoreToOnlineLibrary,
|
||||
|
|
@ -237,13 +237,6 @@ Zotero_Preferences.Advanced = {
|
|||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
await Zotero.DB.vacuum();
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.logError(e);
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
var str = ok ? 'passed' : 'failed';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<vbox class="main-section subpane" id="sync-reset" onload="Zotero_Preferences.Sync.initResetPane()">
|
||||
<html:h1>&zotero.preferences.sync.reset;</html:h1>
|
||||
<html:h1 data-l10n-id="preferences-sync-reset-heading"/>
|
||||
|
||||
<!-- This doesn't wrap without an explicit width, for some reason -->
|
||||
<description id="reset-sync-warning" width="45em">&zotero.preferences.sync.reset.warning1;<label style="margin-left: 0; margin-right: 0" is="zotero-text-link" href="http://zotero.org/support/kb/sync_reset_options">&zotero.preferences.sync.reset.warning2;</label>&zotero.preferences.sync.reset.warning3;</description>
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ var Zotero_Read_Aloud_First_Run = new function () {
|
|||
// TODO
|
||||
},
|
||||
onLogIn: () => {
|
||||
setTimeout(() => Zotero.Utilities.Internal.openPreferences('zotero-prefpane-sync', { action: 'logIn' }));
|
||||
setTimeout(() => Zotero.Utilities.Internal.openPreferences('zotero-prefpane-account', { action: 'logIn' }));
|
||||
},
|
||||
onSetDoneMode: ({ enabled, needsLogIn }) => {
|
||||
let acceptButton = this._dialog.getButton('accept');
|
||||
|
|
@ -67,7 +67,7 @@ var Zotero_Read_Aloud_First_Run = new function () {
|
|||
this.accept = function (event) {
|
||||
if (this._needsLogIn) {
|
||||
this.cancel();
|
||||
Zotero.Utilities.Internal.openPreferences('zotero-prefpane-sync', { action: 'logIn' });
|
||||
Zotero.Utilities.Internal.openPreferences('zotero-prefpane-account', { action: 'logIn' });
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21128,7 +21128,14 @@ CSL.Util.PageRangeMangler.getFunction = function (state, rangeType) {
|
|||
if (begin > 100 && begin % 100 && parseInt((begin / 100), 10) === parseInt((end / 100), 10)) {
|
||||
m[3] = "" + (end % 100);
|
||||
} else if (begin >= 10000) {
|
||||
m[3] = "" + (end % 1000);
|
||||
e = "" + end;
|
||||
for (var i = 3; i < e.length; i++) {
|
||||
var divisor = Math.pow(10, i);
|
||||
if (Math.floor(begin / divisor) === Math.floor(end / divisor)) {
|
||||
m[3] = "" + (end % divisor);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (m[2].slice(1) === m[0]) {
|
||||
|
|
|
|||
|
|
@ -364,14 +364,25 @@ Zotero.CollectionTreeRow.prototype.getSearchObject = async function () {
|
|||
return Zotero.CollectionTreeCache.lastSearch;
|
||||
}
|
||||
|
||||
var s;
|
||||
var includeScopeChildren = false;
|
||||
|
||||
// Create/load the inner search
|
||||
if (this.ref instanceof Zotero.Search) {
|
||||
var s = this.ref;
|
||||
if (this.isRecentlyRead()) {
|
||||
let ids = await Zotero.Items.getLastRead(this.ref.libraryID);
|
||||
let tmpTable = await Zotero.Search.idsToTempTable(ids, { idColumn: 'id' });
|
||||
s = new Zotero.Search();
|
||||
s.libraryID = this.ref.libraryID;
|
||||
s.addCondition('tempTable', 'is', tmpTable);
|
||||
this.onUnload = async function () {
|
||||
await Zotero.DB.queryAsync(`DROP TABLE IF EXISTS ${tmpTable}`, false, { noCache: true });
|
||||
};
|
||||
}
|
||||
else if (this.ref instanceof Zotero.Search) {
|
||||
s = this.ref;
|
||||
}
|
||||
else if (this.isDuplicates()) {
|
||||
var s = await this.ref.getSearchObject();
|
||||
s = await this.ref.getSearchObject();
|
||||
let tmpTable;
|
||||
for (let id in s.conditions) {
|
||||
let c = s.conditions[id];
|
||||
|
|
@ -386,7 +397,7 @@ Zotero.CollectionTreeRow.prototype.getSearchObject = async function () {
|
|||
};
|
||||
}
|
||||
else {
|
||||
var s = new Zotero.Search();
|
||||
s = new Zotero.Search();
|
||||
if (!this.isFeeds()) {
|
||||
s.libraryID = this.ref.libraryID;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -139,7 +139,56 @@ Zotero.Items = function () {
|
|||
return this.getAsync(ids);
|
||||
};
|
||||
|
||||
this._lastReadCutoffs = new Map(); // libraryID -> cutoff timestamp
|
||||
|
||||
/**
|
||||
* Get items with recently read attachments in a library.
|
||||
*
|
||||
* "Recently read" means read within two weeks of the most recently read
|
||||
* attachment in the library (cutoff fixed within each session).
|
||||
*
|
||||
* @param {Integer} libraryID
|
||||
* @return {Promise<Integer[]>} Item IDs (parent items, or standalone attachments)
|
||||
*/
|
||||
this.getLastRead = async function (libraryID) {
|
||||
let twoWeeksInSeconds = 14 * 24 * 60 * 60;
|
||||
|
||||
// Freeze the cutoff on first load so that reading something new
|
||||
// doesn't cause old items to vanish mid-session
|
||||
let cutoff;
|
||||
if (this._lastReadCutoffs.has(libraryID)) {
|
||||
cutoff = this._lastReadCutoffs.get(libraryID);
|
||||
}
|
||||
else {
|
||||
let maxSQL = "SELECT MAX(IA.lastRead) FROM itemAttachments IA "
|
||||
+ "JOIN items I ON (I.itemID = IA.itemID) "
|
||||
+ "WHERE I.libraryID = ? "
|
||||
+ "AND IA.lastRead IS NOT NULL "
|
||||
+ "AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) "
|
||||
+ "AND COALESCE(IA.parentItemID, IA.itemID) NOT IN (SELECT itemID FROM deletedItems)";
|
||||
let maxLastRead = await Zotero.DB.valueQueryAsync(maxSQL, [libraryID]);
|
||||
if (maxLastRead) {
|
||||
cutoff = maxLastRead - twoWeeksInSeconds;
|
||||
this._lastReadCutoffs.set(libraryID, cutoff);
|
||||
}
|
||||
else {
|
||||
// No items with lastRead.
|
||||
// Don't persist this - we want to calculate a new cutoff if items come in later.
|
||||
cutoff = 0;
|
||||
}
|
||||
}
|
||||
|
||||
let sql = "SELECT DISTINCT COALESCE(IA.parentItemID, IA.itemID) "
|
||||
+ "FROM itemAttachments IA "
|
||||
+ "JOIN items I ON (I.itemID = COALESCE(IA.parentItemID, IA.itemID)) "
|
||||
+ "WHERE IA.lastRead >= ? "
|
||||
+ "AND I.libraryID = ? "
|
||||
+ "AND IA.itemID NOT IN (SELECT itemID FROM deletedItems) "
|
||||
+ "AND COALESCE(IA.parentItemID, IA.itemID) NOT IN (SELECT itemID FROM deletedItems)";
|
||||
return Zotero.DB.columnQueryAsync(sql, [cutoff, libraryID]);
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// Bulk data loading functions
|
||||
//
|
||||
|
|
@ -268,7 +317,12 @@ Zotero.Items = function () {
|
|||
else if (item.isAnnotation()) {
|
||||
await item.loadDataType('annotation');
|
||||
}
|
||||
item.updateDisplayTitle()
|
||||
try {
|
||||
item.updateDisplayTitle();
|
||||
}
|
||||
catch (e2) {
|
||||
Zotero.logError(e2);
|
||||
}
|
||||
}
|
||||
else {
|
||||
throw e;
|
||||
|
|
|
|||
|
|
@ -923,25 +923,25 @@ Zotero.Search.prototype.getSQLParams = async function () {
|
|||
/*
|
||||
* Batch insert
|
||||
*/
|
||||
Zotero.Search.idsToTempTable = async function (ids) {
|
||||
Zotero.Search.idsToTempTable = async function (ids, { idColumn = 'itemID' } = {}) {
|
||||
var tmpTable = "tmpSearchResults_" + Zotero.randomString(8);
|
||||
|
||||
|
||||
Zotero.debug(`Creating ${tmpTable} with ${ids.length} item${ids.length != 1 ? 's' : ''}`);
|
||||
var sql = "CREATE TEMPORARY TABLE " + tmpTable;
|
||||
if (ids.length) {
|
||||
sql += " AS "
|
||||
+ "WITH cte(itemID) AS ("
|
||||
+ `WITH cte(${idColumn}) AS (`
|
||||
+ "VALUES " + ids.map(id => "(" + parseInt(id) + ")").join(',')
|
||||
+ ") "
|
||||
+ "SELECT * FROM cte";
|
||||
}
|
||||
else {
|
||||
sql += " (itemID INTEGER PRIMARY KEY)";
|
||||
sql += ` (${idColumn} INTEGER PRIMARY KEY)`;
|
||||
}
|
||||
await Zotero.DB.queryAsync(sql, false, { debug: false, noCache: true });
|
||||
if (ids.length) {
|
||||
await Zotero.DB.queryAsync(
|
||||
`CREATE UNIQUE INDEX ${tmpTable}_itemID ON ${tmpTable}(itemID)`,
|
||||
`CREATE UNIQUE INDEX ${tmpTable}_${idColumn} ON ${tmpTable}(${idColumn})`,
|
||||
false,
|
||||
{
|
||||
noCache: true
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ Zotero.DBConnection = function (dbNameOrPath) {
|
|||
this._lastTransactionDate = null;
|
||||
this._transactionRollback = false;
|
||||
this._transactionNestingLevel = 0;
|
||||
this._commitCount = 0;
|
||||
this._callbacks = {
|
||||
begin: [],
|
||||
commit: [],
|
||||
|
|
@ -481,6 +482,7 @@ Zotero.DBConnection.prototype.executeTransaction = async function (func, options
|
|||
}
|
||||
|
||||
result = await conn.executeTransaction(func);
|
||||
this._commitCount++;
|
||||
Zotero.debug(`Committed DB transaction ${id}`, 4);
|
||||
}
|
||||
finally {
|
||||
|
|
@ -500,12 +502,6 @@ Zotero.DBConnection.prototype.executeTransaction = async function (func, options
|
|||
|
||||
this._transactionID = null;
|
||||
|
||||
if (options.vacuumOnCommit) {
|
||||
Zotero.debug('Vacuuming database');
|
||||
await this.queryAsync('VACUUM');
|
||||
Zotero.debug('Done vacuuming');
|
||||
}
|
||||
|
||||
// Function to run once transaction has been committed but before any
|
||||
// permanent callbacks
|
||||
if (options.onCommit) {
|
||||
|
|
@ -906,10 +902,16 @@ Zotero.DBConnection.prototype.executeSQLFile = async function (sql) {
|
|||
/*
|
||||
* Implements nsIObserver
|
||||
*/
|
||||
Zotero.DBConnection.prototype.observe = function (subject, topic, data) {
|
||||
Zotero.DBConnection.prototype.observe = async function (subject, topic, data) {
|
||||
switch (topic) {
|
||||
case 'idle':
|
||||
this.backUpDatabase({ online: true });
|
||||
try {
|
||||
await this.backUpDatabase({ online: true });
|
||||
await this.vacuum();
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.logError(e);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -925,16 +927,130 @@ Zotero.DBConnection.prototype.getCachedStatements = function () {
|
|||
};
|
||||
|
||||
|
||||
// TEMP
|
||||
Zotero.DBConnection.prototype.vacuum = function () {
|
||||
return this.executeTransaction(async function () {}, { vacuumOnCommit: true });
|
||||
/**
|
||||
* Vacuum the database using VACUUM INTO and perform an atomic file swap
|
||||
*
|
||||
* Creates a compacted copy of the database without blocking writes during
|
||||
* the copy phase, then closes the connection and atomically replaces the
|
||||
* original file if no writes occurred during compaction.
|
||||
*
|
||||
* @param {Object} [options]
|
||||
* @param {Boolean} [options.force] - Skip time/freelist/disk-space checks
|
||||
* @return {Promise<Boolean>} - Whether vacuum was performed
|
||||
*/
|
||||
Zotero.DBConnection.prototype.vacuum = async function ({ force } = {}) {
|
||||
if (this._externalDB) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.inTransaction()) {
|
||||
await this.waitForTransaction();
|
||||
}
|
||||
|
||||
if (!force) {
|
||||
// Check time threshold
|
||||
let lastVacuum = Zotero.Prefs.get('vacuum.lastTime') || 0;
|
||||
let intervalDays = Zotero.Prefs.get('vacuum.interval') || 14;
|
||||
let intervalSeconds = intervalDays * 24 * 60 * 60;
|
||||
let nowSeconds = Math.floor(Date.now() / 1000);
|
||||
if ((nowSeconds - lastVacuum) < intervalSeconds) {
|
||||
Zotero.debug("Database was vacuumed recently -- skipping");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check freelist threshold
|
||||
let freelistCount = await this.valueQueryAsync("PRAGMA freelist_count");
|
||||
let pageCount = await this.valueQueryAsync("PRAGMA page_count");
|
||||
let threshold = Zotero.Prefs.get('vacuum.freelistThreshold') || 10;
|
||||
if (pageCount > 0 && (freelistCount / pageCount * 100) < threshold) {
|
||||
Zotero.debug(`Database freelist is ${freelistCount}/${pageCount} pages `
|
||||
+ `(${(freelistCount / pageCount * 100).toFixed(1)}%) `
|
||||
+ `-- below ${threshold}% threshold, skipping`);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check disk space
|
||||
let dbFile = Zotero.File.pathToFile(this._dbPath);
|
||||
let dbSize = (await IOUtils.stat(this._dbPath)).size;
|
||||
let freeSpace = dbFile.diskSpaceAvailable;
|
||||
if (freeSpace < dbSize) {
|
||||
Zotero.debug(`Not enough disk space to vacuum database `
|
||||
+ `(${freeSpace} available, ${dbSize} needed) -- skipping`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
let tmpFile = this._dbPath + '.vacuum.tmp';
|
||||
|
||||
try {
|
||||
// Clean up any leftover temp file from a previous failed attempt
|
||||
if (await IOUtils.exists(tmpFile)) {
|
||||
await IOUtils.remove(tmpFile);
|
||||
}
|
||||
|
||||
Zotero.debug("Vacuuming database");
|
||||
let t = new Date();
|
||||
|
||||
let commitCountBefore = this._commitCount;
|
||||
|
||||
// Disable auto_vacuum for the output file if previously enabled -- periodic VACUUM handles
|
||||
// compaction, and auto_vacuum causes fragmentation
|
||||
await this.queryAsync("PRAGMA auto_vacuum=0");
|
||||
|
||||
// VACUUM INTO creates a compacted copy as a snapshot of committed data. Concurrent writes
|
||||
// in WAL are NOT included in the output.
|
||||
await this.queryAsync(`VACUUM INTO '${tmpFile.replace(/'/g, "''")}'`);
|
||||
|
||||
// Block other code from reopening the connection during the swap
|
||||
let resolveVacuumPromise;
|
||||
this._offlineBackupPromise = new Promise(function () {
|
||||
resolveVacuumPromise = arguments[0];
|
||||
});
|
||||
|
||||
try {
|
||||
// Close the database -- this waits for any in-flight transactions and checkpoints WAL
|
||||
await this.closeDatabase();
|
||||
|
||||
// If any writes happened between VACUUM INTO start and close, the compacted copy is
|
||||
// stale -- abort
|
||||
if (this._commitCount !== commitCountBefore) {
|
||||
Zotero.debug("Database was modified during vacuum -- aborting swap", 1);
|
||||
await IOUtils.remove(tmpFile);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Atomic swap
|
||||
await IOUtils.move(tmpFile, this._dbPath);
|
||||
|
||||
Zotero.Prefs.set('vacuum.lastTime', Math.floor(Date.now() / 1000));
|
||||
Zotero.debug("Vacuumed database in " + (new Date() - t) + " ms");
|
||||
|
||||
return true;
|
||||
}
|
||||
finally {
|
||||
this._offlineBackupPromise = null;
|
||||
resolveVacuumPromise();
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.logError(e);
|
||||
try {
|
||||
if (await IOUtils.exists(tmpFile)) {
|
||||
await IOUtils.remove(tmpFile);
|
||||
}
|
||||
}
|
||||
catch (e2) {
|
||||
Zotero.logError(e2);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// TEMP
|
||||
Zotero.DBConnection.prototype.info = async function () {
|
||||
var info = {};
|
||||
var pragmas = ['auto_vacuum', 'cache_size', 'main.locking_mode', 'page_size'];
|
||||
var pragmas = ['auto_vacuum', 'cache_size', 'journal_mode', 'main.locking_mode', 'page_size', 'synchronous'];
|
||||
for (let p of pragmas) {
|
||||
info[p] = await Zotero.DB.valueQueryAsync(`PRAGMA ${p}`);
|
||||
}
|
||||
|
|
@ -978,6 +1094,18 @@ Zotero.DBConnection.prototype.closeDatabase = async function (permanent) {
|
|||
}
|
||||
|
||||
Zotero.debug("Closing database");
|
||||
|
||||
// Checkpoint WAL before closing so all data is in the main file
|
||||
// and -wal file is truncated. Use _connection.execute() directly
|
||||
// to avoid deadlocking with _offlineBackupPromise in queryAsync.
|
||||
try {
|
||||
Zotero.debug("PRAGMA wal_checkpoint(TRUNCATE)");
|
||||
await this._connection.execute("PRAGMA wal_checkpoint(TRUNCATE)");
|
||||
}
|
||||
catch (e) {
|
||||
Zotero.logError(e);
|
||||
}
|
||||
|
||||
this.closed = true;
|
||||
await this._connection.close();
|
||||
this._connection = undefined;
|
||||
|
|
@ -1285,7 +1413,15 @@ Zotero.DBConnection.prototype._getConnectionAsync = async function () {
|
|||
else {
|
||||
await this.queryAsync("PRAGMA main.locking_mode=NORMAL");
|
||||
}
|
||||
|
||||
|
||||
// Enable WAL mode for better write performance. With locking_mode=EXCLUSIVE
|
||||
// set first, SQLite uses heap memory for the WAL index instead of shared
|
||||
// memory, so no -shm file is created on disk.
|
||||
await this.queryAsync("PRAGMA journal_mode=WAL");
|
||||
// NORMAL synchronous is safe with WAL -- only risks losing the last
|
||||
// transaction on power loss, not corruption
|
||||
await this.queryAsync("PRAGMA synchronous=NORMAL");
|
||||
|
||||
// Set page cache size to 8MB
|
||||
let pageSize = await this.valueQueryAsync("PRAGMA page_size");
|
||||
let cacheSize = 8192000 / pageSize;
|
||||
|
|
|
|||
|
|
@ -46,11 +46,11 @@ Zotero.PreferencePanes = {
|
|||
helpURL: 'https://www.zotero.org/support/preferences/general',
|
||||
},
|
||||
{
|
||||
id: 'zotero-prefpane-sync',
|
||||
label: 'zotero.preferences.prefpane.sync',
|
||||
image: 'chrome://zotero/skin/20/universal/sync.svg',
|
||||
src: 'chrome://zotero/content/preferences/preferences_sync.xhtml',
|
||||
scripts: ['chrome://zotero/content/preferences/preferences_sync.js'],
|
||||
id: 'zotero-prefpane-account',
|
||||
label: 'preferences-pane-account',
|
||||
image: 'chrome://zotero/skin/20/universal/account.svg',
|
||||
src: 'chrome://zotero/content/preferences/preferences_account.xhtml',
|
||||
scripts: ['chrome://zotero/content/preferences/preferences_account.js'],
|
||||
defaultXUL: true,
|
||||
helpURL: 'https://www.zotero.org/support/preferences/sync',
|
||||
},
|
||||
|
|
@ -83,10 +83,10 @@ Zotero.PreferencePanes = {
|
|||
},
|
||||
{
|
||||
id: 'zotero-subpane-reset-sync',
|
||||
parent: 'zotero-prefpane-sync',
|
||||
parent: 'zotero-prefpane-account',
|
||||
label: 'zotero.preferences.subpane.resetSync',
|
||||
src: 'chrome://zotero/content/preferences/preferences_sync_reset.xhtml',
|
||||
scripts: ['chrome://zotero/content/preferences/preferences_sync.js'],
|
||||
scripts: ['chrome://zotero/content/preferences/preferences_account.js'],
|
||||
defaultXUL: true,
|
||||
helpURL: 'https://www.zotero.org/support/preferences/sync#reset',
|
||||
}
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ class ReaderInstance {
|
|||
autoDisableTextTool: Zotero.Prefs.get('reader.autoDisableTool.text'),
|
||||
autoDisableImageTool: Zotero.Prefs.get('reader.autoDisableTool.image'),
|
||||
sidebarView: Zotero.Prefs.get('reader.lastSidebarTab'),
|
||||
enableReadAloud: Zotero.isBetaBuild || Zotero.isDevBuild || Zotero.isSourceBuild,
|
||||
enableReadAloud: true,
|
||||
readAloudVoices: this._getReadAloudVoices(),
|
||||
readAloudEnabledVoices: await this._getReadAloudEnabledVoices(),
|
||||
readAloudRemoteInterface: this._getReadAloudRemoteInterface(this._iframeWindow),
|
||||
|
|
@ -615,7 +615,7 @@ class ReaderInstance {
|
|||
},
|
||||
onLogIn: () => {
|
||||
// This causes a segfault without the timeout...
|
||||
setTimeout(() => Zotero.Utilities.Internal.openPreferences('zotero-prefpane-sync', { action: 'logIn' }));
|
||||
setTimeout(() => Zotero.Utilities.Internal.openPreferences('zotero-prefpane-account', { action: 'logIn' }));
|
||||
},
|
||||
onOpenReadAloudFirstRunPopup: ({ lang }) => {
|
||||
// As above
|
||||
|
|
|
|||
|
|
@ -1936,6 +1936,11 @@ Zotero.Schema = new function () {
|
|||
`SELECT COUNT(*) > 0 FROM items WHERE itemTypeID=${attachmentID} AND itemID NOT IN (SELECT itemID FROM itemAttachments)`,
|
||||
`INSERT INTO itemAttachments (itemID, linkMode) SELECT itemID, 0 FROM items WHERE itemTypeID=${attachmentID} AND itemID NOT IN (SELECT itemID FROM itemAttachments)`,
|
||||
],
|
||||
// Missing itemAnnotations rows
|
||||
[
|
||||
`SELECT COUNT(*) > 0 FROM items WHERE itemTypeID=${annotationID} AND itemID NOT IN (SELECT itemID FROM itemAnnotations)`,
|
||||
`DELETE FROM items WHERE itemTypeID=${annotationID} AND itemID NOT IN (SELECT itemID FROM itemAnnotations)`,
|
||||
],
|
||||
// Attachments with note parents, unless they're embedded-image attachments
|
||||
[
|
||||
`SELECT COUNT(*) > 0 FROM itemAttachments `
|
||||
|
|
@ -2206,11 +2211,9 @@ Zotero.Schema = new function () {
|
|||
try {
|
||||
var userLibraryID = 1;
|
||||
|
||||
// Enable auto-vacuuming
|
||||
await Zotero.DB.queryAsync("PRAGMA page_size = 4096");
|
||||
await Zotero.DB.queryAsync("PRAGMA encoding = 'UTF-8'");
|
||||
await Zotero.DB.queryAsync("PRAGMA auto_vacuum = 1");
|
||||
|
||||
|
||||
var sql = await _getSchemaSQL('system');
|
||||
await Zotero.DB.executeSQLFile(sql);
|
||||
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ Zotero.Sync.Storage.Engine.prototype.start = async function () {
|
|||
let wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
|
||||
.getService(Components.interfaces.nsIWindowMediator);
|
||||
let lastWin = wm.getMostRecentWindow("navigator:browser");
|
||||
lastWin.ZoteroPane.openPreferences('zotero-prefpane-sync');
|
||||
lastWin.ZoteroPane.openPreferences('zotero-prefpane-account');
|
||||
}
|
||||
}
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1739,7 +1739,20 @@ Zotero.Sync.Data.Local = {
|
|||
|| isAutoMergeType) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// Auto-resolve lastRead by keeping the most recent value
|
||||
if (c1.field == 'lastRead') {
|
||||
if ((c1.value || 0) > (c2.value || 0)) {
|
||||
// Local is more recent -- drop remote change
|
||||
changeset2.splice(j--, 1);
|
||||
}
|
||||
else {
|
||||
// Remote is more recent -- apply it
|
||||
matchedLocalChanges.add(i);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// Conflict
|
||||
matchedLocalChanges.add(i);
|
||||
changeset2.splice(j--, 1);
|
||||
|
|
|
|||
|
|
@ -1153,7 +1153,7 @@ Zotero.Sync.Runner_Module = function (options = {}) {
|
|||
e.dialogButtonText = Zotero.ftl.formatValueSync('account-log-in');
|
||||
e.dialogButtonCallback = function () {
|
||||
Zotero.Utilities.Internal.openPreferences(
|
||||
"zotero-prefpane-sync",
|
||||
"zotero-prefpane-account",
|
||||
{ action: 'logIn' }
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -637,7 +637,7 @@ var ZoteroPane = new function () {
|
|||
|
||||
if (Zotero.Prefs.get('reopenAccountPrefsOnRestart')) {
|
||||
Zotero.Prefs.clear('reopenAccountPrefsOnRestart');
|
||||
Zotero.Utilities.Internal.openPreferences('zotero-prefpane-sync');
|
||||
Zotero.Utilities.Internal.openPreferences('zotero-prefpane-account');
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -3047,7 +3047,7 @@ var ZoteroPane = new function () {
|
|||
|
||||
switch (reminderType) {
|
||||
case 'setUp':
|
||||
Zotero.Utilities.Internal.openPreferences('zotero-prefpane-sync');
|
||||
Zotero.Utilities.Internal.openPreferences('zotero-prefpane-account');
|
||||
break;
|
||||
case 'autoSync':
|
||||
Zotero.Prefs.set(`sync.autoSync`, true);
|
||||
|
|
@ -6701,7 +6701,7 @@ var ZoteroPane = new function () {
|
|||
|
||||
// Set message and link to current version
|
||||
let div = document.getElementById('post-upgrade-message');
|
||||
document.l10n.setArgs(div, { version: "8" });
|
||||
document.l10n.setArgs(div, { version: majorVersion });
|
||||
let link = document.getElementById('post-upgrade-new-features-link');
|
||||
link.href = ZOTERO_CONFIG.NEW_FEATURES_URL.replace('{version}', majorVersion);
|
||||
document.getElementById('post-upgrade-container').removeAttribute('collapsed');
|
||||
|
|
|
|||
|
|
@ -421,9 +421,12 @@
|
|||
oncommand="ZoteroStandalone.currentReader.rotatePageRight()"
|
||||
/>
|
||||
<menuseparator/>
|
||||
<menuitem id="menu_find" label="&findCmd.label;"
|
||||
<menuitem id="menu_find" class="menu-type-library" label="&findCmd.label;"
|
||||
key="key_find" accesskey="&findCmd.accesskey;"
|
||||
command="cmd_find"/>
|
||||
<menuitem id="menu_find_reader" class="menu-type-reader" label="&findCmd.label;"
|
||||
key="key_find" accesskey="&findCmd.accesskey;"
|
||||
oncommand="ZoteroStandalone.currentReader.toggleFindPopup({ open: true });"/>
|
||||
<menuitem id="menu_advancedSearch"
|
||||
label="&zotero.toolbar.advancedSearch;"
|
||||
key="key_advancedSearch"
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = More Information
|
||||
general-warning = Warning
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Continue
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = More Information
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = إلخ.
|
|||
general-previous = السابق
|
||||
general-next = التالي
|
||||
general-learn-more = تعرف على المزيد
|
||||
general-more-information = المزيد من المعلومات
|
||||
general-warning = تحذير
|
||||
general-type-to-continue = اكتب ”{ $text }“ للمتابعة.
|
||||
general-continue = استمر
|
||||
|
|
@ -283,7 +284,7 @@ import-online-wrong-credentials = لقد فشل تسجيل الدخول إلى {
|
|||
import-online-blocked-by-plugin = لا يمكن متابعة الاستيراد مع تثبيت { $plugin }. يرجى تعطيل هذه الإضافة والمحاولة مرة أخرى.
|
||||
import-online-relink-only =
|
||||
.label = إعادة ربط استشهادات مندلي المكتبية
|
||||
import-online-relink-kb = المزيد من المعلومات
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = تعذر على { -app-name } الاتصال ب { $targetApp }. يرجى التحقق من اتصالك بالإنترنت والمحاولة مرة أخرى.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = и др.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = Повече информация
|
||||
general-warning = Предупреждение
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Продължаване
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Повече информация
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ integration-citationDialog = Citation Dialog
|
|||
integration-citationDialog-section-open = Open Documents ({ $count })
|
||||
integration-citationDialog-section-selected = Selected Items ({ $count }/{ $total })
|
||||
integration-citationDialog-section-selectedAnnotations = Selected Annotations
|
||||
integration-citationDialog-section-selectedItems = Selected Items
|
||||
integration-citationDialog-section-selectedItems = Elfennoù diuzet
|
||||
integration-citationDialog-section-cited =
|
||||
{ $count ->
|
||||
[0] Cited Items
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ note-editor-paragraph = Rannbennad
|
|||
note-editor-monospaced = Monospaset
|
||||
note-editor-bullet-list = Listenn gant merkigoù
|
||||
note-editor-ordered-list = Listenn niverennet
|
||||
note-editor-block-quote = Block Quote
|
||||
note-editor-block-quote = Bloc'had arroudenn
|
||||
note-editor-math-block = Matematik bloc'had
|
||||
note-editor-format-text = Stumm an destenn
|
||||
note-editor-highlight-text = Usskediñ an destenn
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ reader-no-extracted-text = Testenn ebet eztennet
|
|||
reader-add-comment = Ouzhpennañ un evezhiadenn
|
||||
reader-annotation-comment = Evezhiadenn an ennotadur
|
||||
reader-annotation-text = Testenn an ennotadur
|
||||
reader-manage-tags = Manage tags for this annotation
|
||||
reader-manage-tags = Merañ an tikedennoù evit an ennotadur-mañ
|
||||
reader-open-menu = Digeriñ lañser an ennotaudurioù
|
||||
reader-thumbnails = Skeudennigoù
|
||||
reader-tag-selector-message = Silañ an ennotadurioù dre an dikedenn-mañ
|
||||
|
|
@ -94,12 +94,12 @@ reader-epub-appearance-word-spacing = Spas etre gerioù
|
|||
reader-epub-appearance-letter-spacing = Spas etre al lizherennoù
|
||||
reader-epub-appearance-page-width = Ledander ar bajenn
|
||||
reader-epub-appearance-use-original-font = Ober gant ar skritur orin
|
||||
reader-epub-appearance-line-height-revert = Use default line height
|
||||
reader-epub-appearance-line-height-revert = Ober gant an uhelder linenn dre ziouer
|
||||
reader-epub-appearance-word-spacing-revert = Ober gant ar spas dre ziouer etre ar gerioù
|
||||
reader-epub-appearance-letter-spacing-revert = Ober gant ar spas dre ziouer etre al lizherennoù
|
||||
reader-epub-appearance-page-width-revert = Ober gant al ledander pajenn dre ziouer
|
||||
reader-convert-to-highlight = Convert to Highlight
|
||||
reader-convert-to-underline = Convert to Underline
|
||||
reader-convert-to-highlight = Emdreiñ da usskedet
|
||||
reader-convert-to-underline = Emdreiñ da islinennet
|
||||
reader-size = Ment
|
||||
reader-merge = Kendeuziñ
|
||||
reader-copy-link = Eilañ al liamm
|
||||
|
|
@ -131,7 +131,7 @@ reader-background = Drekleur:
|
|||
reader-foreground = Rakleur:
|
||||
reader-reading-mode = Reading Mode
|
||||
reader-reading-mode-not-supported = Reading Mode is not supported in this document.
|
||||
reader-clear-selection = Clear Selection
|
||||
reader-clear-selection = Dilemel an diuzadenn
|
||||
reader-epub-encrypted = This ebook is encrypted and cannot be opened.
|
||||
reader-move-annotation-start-key =
|
||||
{ PLATFORM() ->
|
||||
|
|
|
|||
|
|
@ -106,8 +106,8 @@
|
|||
<!ENTITY zotero.item.textTransform "Treuzfurmiñ an destenn">
|
||||
<!ENTITY zotero.item.textTransform.titlecase "Al lizherennoù kentañ e pennlizherennoù">
|
||||
<!ENTITY zotero.item.textTransform.sentencecase "Lizherenn gentañ ar frazenn e pennlizherenn">
|
||||
<!ENTITY zotero.item.creatorTransform.nameSwap "Swap First/Last">
|
||||
<!ENTITY zotero.item.creatorTransform.fixCase "Fix Case">
|
||||
<!ENTITY zotero.item.creatorTransform.nameSwap "Eilpennañ Anv-bihan/Anv-familh">
|
||||
<!ENTITY zotero.item.creatorTransform.fixCase "Reizhañ al lizherennoù bras/bihan">
|
||||
<!ENTITY zotero.item.copyAsURL "Eilañ evel URL">
|
||||
<!ENTITY zotero.item.deletePermanently "Dilemel da virviken...">
|
||||
|
||||
|
|
@ -133,7 +133,7 @@
|
|||
<!ENTITY zotero.tagSelector.assignColor "Dereiñ ul liv...">
|
||||
<!ENTITY zotero.tagSelector.renameTag "Adenvel ar baliz...">
|
||||
<!ENTITY zotero.tagSelector.deleteTag "Dilemel ar baliz...">
|
||||
<!ENTITY zotero.tagSelector.splitTag "Split…">
|
||||
<!ENTITY zotero.tagSelector.splitTag "Skarat...">
|
||||
|
||||
<!ENTITY zotero.tagColorChooser.title "Dereiñ ul liv hag ul lec'hiadur d'ar baliz">
|
||||
<!ENTITY zotero.tagColorChooser.color "Liv:">
|
||||
|
|
@ -173,7 +173,7 @@
|
|||
<!ENTITY zotero.import "Emporzhiañ">
|
||||
<!ENTITY zotero.import.whereToImportFrom "Deus pelec'h ho peus c'hoant emporzhiañ?">
|
||||
<!ENTITY zotero.import.source.file "Ur restr (BibTeX, RIS, Zotero RDF, hag all hag all...)">
|
||||
<!ENTITY zotero.import.source.folder "A folder of PDFs or other files">
|
||||
<!ENTITY zotero.import.source.folder "Un doser gant PDFoù pe restroù all">
|
||||
<!ENTITY zotero.import.onlineImport "emporzhiañ enlinenn">
|
||||
<!ENTITY zotero.import.importing "Oc'h emporzhiañ...">
|
||||
<!ENTITY zotero.import.database "Diaz-roadennoù">
|
||||
|
|
@ -181,7 +181,7 @@
|
|||
<!ENTITY zotero.import.size "Ment">
|
||||
<!ENTITY zotero.import.createCollection "Plasit an dastumadegoù hag an teuliadoù emporzhiet e-barzh un dastumadeg nevez">
|
||||
<!ENTITY zotero.import.fileHandling "Meradur ar restroù">
|
||||
<!ENTITY zotero.import.online.newItemsOnly "Download new items only; don’t update previously imported items">
|
||||
<!ENTITY zotero.import.online.newItemsOnly "Pellgargañ an elfennoù nevez hepken; na hizivaat an elfennoù emporzhiet kent">
|
||||
|
||||
<!ENTITY zotero.exportOptions.title "Ezporzhiañ...">
|
||||
<!ENTITY zotero.exportOptions.format.label "Stumm:">
|
||||
|
|
@ -297,10 +297,10 @@
|
|||
<!ENTITY zotero.attachLink.label.link "Liamm:">
|
||||
<!ENTITY zotero.attachLink.label.title "Titl:">
|
||||
|
||||
<!ENTITY zotero.context.addChildNote "Add Item Note">
|
||||
<!ENTITY zotero.context.addChildNoteFromAnnotations "Add Item Note from Annotations">
|
||||
<!ENTITY zotero.context.addStandaloneNote "Add Standalone Note">
|
||||
<!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Add Standalone Note from Annotations">
|
||||
<!ENTITY zotero.context.addChildNote "Ouzhpennañ un notenn elfenn">
|
||||
<!ENTITY zotero.context.addChildNoteFromAnnotations "Ouzhpennañ un notenn elfenn diwar an ennotadurioù">
|
||||
<!ENTITY zotero.context.addStandaloneNote "Ouzhpennañ un notenn dizalc'h">
|
||||
<!ENTITY zotero.context.addStandaloneNoteFromAnnotations "Ouzhpennañ un notenn dizalc'h diwar an ennotadurioù">
|
||||
<!ENTITY zotero.context.editInWindow "Aozañ en ur prenestr distag">
|
||||
|
||||
<!ENTITY zotero.pdfReader.firstPage "Pajenn gentañ">
|
||||
|
|
@ -311,9 +311,9 @@
|
|||
<!ENTITY zotero.pdfReader.verticalScrolling "Dibunañ a-blom">
|
||||
<!ENTITY zotero.pdfReader.horizontalScrolling "Dibunañ a-blaen">
|
||||
<!ENTITY zotero.pdfReader.wrappedScrolling "Dibunañ dre vloc'had">
|
||||
<!ENTITY zotero.pdfReader.noSpreads "No Spreads">
|
||||
<!ENTITY zotero.pdfReader.oddSpreads "Odd Spreads">
|
||||
<!ENTITY zotero.pdfReader.evenSpreads "Even Spreads">
|
||||
<!ENTITY zotero.pdfReader.noSpreads "Pajennadoù doubl ebet">
|
||||
<!ENTITY zotero.pdfReader.oddSpreads "Pajennadoù doubl, ampar a-gleiz">
|
||||
<!ENTITY zotero.pdfReader.evenSpreads "Pajennadoù doubl, par a-gleiz">
|
||||
<!ENTITY zotero.pdfReader.scrolled "Dibunet">
|
||||
<!ENTITY zotero.pdfReader.paginated "Pajennet">
|
||||
<!ENTITY zotero.pdfReader.zoomIn "Zoumañ">
|
||||
|
|
@ -324,6 +324,6 @@
|
|||
<!ENTITY zotero.pdfReader.zoomPageHeight "Zoumañ betek uhelder ar bajenn">
|
||||
<!ENTITY zotero.pdfReader.splitVertically "Rannañ a-blom">
|
||||
<!ENTITY zotero.pdfReader.splitHorizontally "Rannañ a-blaen">
|
||||
<!ENTITY zotero.pdfReader.transferFromPDF "Import Annotations…">
|
||||
<!ENTITY zotero.pdfReader.rotatePageLeft "Rotate Page Left">
|
||||
<!ENTITY zotero.pdfReader.rotatePageRight "Rotate Page Right">
|
||||
<!ENTITY zotero.pdfReader.transferFromPDF "Emporzhiañ an ennotadurioù...">
|
||||
<!ENTITY zotero.pdfReader.rotatePageLeft "Treiñ ar bajenn a-gleiz">
|
||||
<!ENTITY zotero.pdfReader.rotatePageRight "Treiñ ar bajenn a-zehoù">
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = hag all hag all
|
|||
general-previous = Kent
|
||||
general-next = Da-heul
|
||||
general-learn-more = Gouzout hiroc'h
|
||||
general-more-information = Muioc'h a ditouroù
|
||||
general-warning = Kemenn-diwall
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Kenderc'hel
|
||||
|
|
@ -231,7 +232,7 @@ import-online-intro-title = Digoradur
|
|||
import-source-file =
|
||||
.label = Ur restr (BibTeX, RIS, Zotero RDF, hag all hag all...)
|
||||
import-source-folder =
|
||||
.label = A folder of PDFs or other files
|
||||
.label = Un doser gant PDFoù pe restroù all
|
||||
import-source-online =
|
||||
.label = { $targetApp } online import
|
||||
import-options = Dibarzhioù
|
||||
|
|
@ -252,7 +253,7 @@ import-file-handling-link =
|
|||
.label = Liammañ d'ar restroù el lec'hiadur orin
|
||||
import-fileHandling-description = Linked files cannot be synced by { -app-name }.
|
||||
import-online-new =
|
||||
.label = Download new items only; don’t update previously imported items
|
||||
.label = Pellgargañ an elfennoù nevez hepken; na hizivaat an elfennoù emporzhiet kent
|
||||
import-mendeley-username = Anv-implijer
|
||||
import-mendeley-password = Ger-tremen
|
||||
general-error = Fazi
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Muioc'h a ditouroù
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ general.default=Dre ziouer
|
|||
general.custom=Personelaet
|
||||
general.loading=O kargañ...
|
||||
general.richText=Testennoù pinvidik
|
||||
general.clearSelection=Clear Selection
|
||||
general.clearSelection=Dilemel an diuzadenn
|
||||
general.insert=Enlakaat
|
||||
general.username=Anv-implijer
|
||||
general.password=Ger-tremen
|
||||
|
|
@ -115,7 +115,7 @@ general.operationInProgress=Un oberiadenn a-berzh Zotero a zo war ober er mare-m
|
|||
general.operationInProgress.waitUntilFinished=Gortozit betek ma vo echuet.
|
||||
general.operationInProgress.waitUntilFinishedAndTryAgain=Gortozit betek ma vo echuet ha klaskit en-dro.
|
||||
|
||||
networkError.connectionNotSecure=Insecure Connection
|
||||
networkError.connectionNotSecure=Kevreañ diasur
|
||||
networkError.insecureConnectionTo=%1$S could not make a secure connection to %2$S.
|
||||
networkError.errorViaProxy=Fazi en ur gevreañ dre ur servijer proksi
|
||||
networkError.connectionMonitored=Your connection is likely being monitored, and %S has not been configured to trust the intermediate server.
|
||||
|
|
@ -364,12 +364,12 @@ pane.items.menu.generateReport=Genel un danevell diwar an elfenn...
|
|||
pane.items.menu.generateReport.multiple=Genel un danevell diwar an elfennoù...
|
||||
pane.items.menu.reindexItem=Ad-Indeksiñ an elfenn
|
||||
pane.items.menu.reindexItem.multiple=Ad-Indeksiñ an elfennoù
|
||||
pane.items.menu.recognizeDocument=Retrieve Metadata
|
||||
pane.items.menu.recognizeDocument=Adtapout ar metaroadennoù
|
||||
pane.items.menu.createParent=Krouiñ un elfenn 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.multiple=Adenvel ar restroù diwar ar meta-roadenn kar
|
||||
pane.items.menu.duplicateAndConvert.toBookSection=Create Book Section
|
||||
pane.items.menu.duplicateAndConvert.toBookSection=Krouiñ ur chabistr levr
|
||||
pane.items.menu.duplicateAndConvert.toBook=Create Book from Book Section
|
||||
pane.items.menu.showInFeed=Diskouez er froud
|
||||
pane.items.showItemInLibrary=Diskouez an elfenn el levraoueg
|
||||
|
|
@ -426,7 +426,7 @@ pane.item.attachments.autoRelink.text4=%1$S can automatically relink this attach
|
|||
pane.item.attachments.autoRelink.relink=Adliammañ
|
||||
pane.item.attachments.autoRelinkOthers.title=Additional Files Located
|
||||
pane.item.attachments.autoRelinkOthers.text=One other unlinked attachment in this library was found within the same directory. Relink this attachment as well?;%S other unlinked attachments in this library were found within the same directory. Relink all located attachments?
|
||||
pane.item.attachments.autoRelink.locateManually=Locate Manually…
|
||||
pane.item.attachments.autoRelink.locateManually=Lec'helaat gant an dorn…
|
||||
pane.item.attachments.autoRelink.relinkAll=Adliammañ pep-tra
|
||||
pane.item.attachments.has=Gant pezhioù stag
|
||||
pane.item.attachments.hasPDF=Gant restroù PDF stag
|
||||
|
|
@ -487,7 +487,7 @@ itemTypes.document=Teuliad
|
|||
itemTypes.encyclopediaArticle=Pennad hollouiziegezh
|
||||
itemTypes.dictionaryEntry=Pennger geriadur
|
||||
itemTypes.preprint=Rakvoullañ
|
||||
itemTypes.dataset=Dataset
|
||||
itemTypes.dataset=Diaz-roadennoù
|
||||
itemTypes.standard=Standard
|
||||
|
||||
itemFields.itemType=Doare elfenn
|
||||
|
|
@ -601,16 +601,16 @@ itemFields.issuingAuthority=Aozadur a embann
|
|||
itemFields.filingDate=Deiziad leuniadur
|
||||
itemFields.genre=Doare
|
||||
itemFields.archive=Diell
|
||||
itemFields.attachmentPDF=PDF Attachment
|
||||
itemFields.attachmentPDF=PDF stag
|
||||
itemFields.repository=Kavlec'h
|
||||
itemFields.repositoryLocation=Repo. Location
|
||||
itemFields.archiveID=Archive ID
|
||||
itemFields.citationKey=Citation Key
|
||||
itemFields.repositoryLocation=Lec'h. an etrepaouez
|
||||
itemFields.archiveID=ID en diell
|
||||
itemFields.citationKey=Alc'hwez arroudenn
|
||||
itemFields.identifier=Anaouder
|
||||
itemFields.type=Doare
|
||||
itemFields.format=Stumm
|
||||
itemFields.status=Statud
|
||||
itemFields.authority=Authority
|
||||
itemFields.authority=Aotrouniezh
|
||||
itemFields.organization=Aozadur
|
||||
itemFields.feed=Froud
|
||||
|
||||
|
|
@ -664,7 +664,7 @@ ingester.importFile.intoNewCollection=Emporzhiañ e-barzh un dastumadeg nevez
|
|||
ingester.lookup.performing=O klask...
|
||||
ingester.lookup.error=Ur fazi a zo c'hoarvezet en ur glask an elfenn.
|
||||
|
||||
findPDF.searchingForAvailableFiles=Searching for available files…
|
||||
findPDF.searchingForAvailableFiles=O klask restroù hegerz…
|
||||
findPDF.checkingItems=O wiriañ %1$S elfenn;O wiriañ %1$S elfenn
|
||||
findPDF.openAccessPDF=PDF moned-digor
|
||||
findPDF.pdfWithMethod=PDF (%S)
|
||||
|
|
@ -730,11 +730,11 @@ zotero.preferences.export.quickCopy.citationStyles=Doare arroudenn
|
|||
zotero.preferences.export.quickCopy.exportFormats=Ezporzhiañ ar stummoù
|
||||
zotero.preferences.export.quickCopy.instructions=An Eilañ prim a ro an tu deoc'h da ezporzhiañ buan-tre an elfennoù en ur stumm roet. Gellout a rit eilañ an elfennoù diuzet er golver en ur bouezañ war %S pe rinklit an elfennoù war-eeun e-barzh ur voest testenn e-barzh ur program all.
|
||||
zotero.preferences.export.quickCopy.citationInstructions=Evit ar stiloù arroudenn e c'hallit eilañ an arroudennoù pe an notennoù-traoñ pajenn en ur bouezañ war %S pe en ur zerc'hel war Linkad a-raok rinklañ-stlejañ elfennoù.
|
||||
zotero.preferences.export.quickCopy.note.htmlOptions.label=Rich Text/HTML
|
||||
zotero.preferences.export.quickCopy.note.htmlOptions.label=Testenn pinvidik/HTML
|
||||
|
||||
zotero.preferences.wordProcessors.installationSuccess=Berzh en deus graet ar staliadur.
|
||||
zotero.preferences.wordProcessors.installationError=N'hall ket bezañ klokaet ar staliadur rak ur fazi a zo c'hoarvezet. Bezit asur eo sarr %1$S, hag adloc'hit goude-se %2$S.
|
||||
zotero.preferences.wordProcessors.manualInstallation.button=Manual Installation
|
||||
zotero.preferences.wordProcessors.manualInstallation.button=Staliadur gant an dorn
|
||||
zotero.preferences.wordProcessors.installed=Ar vodulenn %S a zo staliet endeo.
|
||||
zotero.preferences.wordProcessors.notInstalled=Neket staliet ar vodulenn %S betek-hen.
|
||||
zotero.preferences.wordProcessors.install=Staliañ ar vodulenn %S
|
||||
|
|
@ -841,7 +841,7 @@ citation.showEditor=Diskouez an aozer...
|
|||
citation.hideEditor=Kuzhat an aozer...
|
||||
citation.citations=Arroudennoù
|
||||
citation.notes=Notennoù
|
||||
citation.locator.timestamp=Timestamp
|
||||
citation.locator.timestamp=Eurdeiziad
|
||||
|
||||
report.title.default=Danevell Zotero
|
||||
report.parentItem=Elfenn kar:
|
||||
|
|
@ -879,7 +879,7 @@ integration.removeBibEntry.body=Ha fellout a ra deoc'h leuskel anezhañ e-maez h
|
|||
integration.cited=Arroudennet
|
||||
integration.cited.loading=O kargañ an elfennoù arroudennet...
|
||||
integration.openTabs=Restroù digor
|
||||
integration.selectedItems=Selected Items
|
||||
integration.selectedItems=Elfennoù diuzet
|
||||
integration.ibid=ibid
|
||||
integration.emptyCitationWarning.title=Arroudenn wenn
|
||||
integration.emptyCitationWarning.body=An arroudenn spisaet ganeoc'h a vo goullo gant ar stil diuzet er mare-mañ. Ha sur oc'h e fell deoc'h ouzhpennañ anezhañ?
|
||||
|
|
@ -905,7 +905,7 @@ integration.error.misconfiguredWordStartupFolder.fix=Al lugant na vo ket diskoue
|
|||
integration.error.macWordSBPermissionsMissing.title=Aotreadurioù a vank
|
||||
integration.error.macWordSBPermissionsMissing=Zotero does not have permission to control Word. To grant this permission:\n\n1) Open System Settings\n2) Select “Privacy & Security” in the left column\n3) Select “Automation”\n4) Find “Zotero” and click the arrow to expand it\n5) Make sure “Microsoft Word” is enabled under “Zotero”\n6) Restart Word
|
||||
integration.error.macWordSBPermissionsMissing.pre2016=Ma ne gaver ket «Microsoft Word» dindan «Automation», bezit asur e rit gant Word 2011 stumm 14.7.7 pe nevesoc'h.
|
||||
integration.error.m1UpgradeOS.title=macOS Upgrade Required
|
||||
integration.error.m1UpgradeOS.title=Hizivadur macOS rekis
|
||||
integration.error.m1UpgradeOS=Citing in Word on an Apple Silicon Mac with macOS 11.3 or earlier is not supported and may cause %S to freeze. Please upgrade to macOS 11.4 or later.
|
||||
integration.error.viewTroubleshootingInfo=Ha c'hoant ho peus da welet ar c'helennadurioù distankañ?
|
||||
integration.error.tabUnavailable=The operation cannot be completed because the %S tab is no longer available.
|
||||
|
|
@ -1007,7 +1007,7 @@ sync.error.invalidDataError.otherData=Roadennoù all a gendalc'ho da sinkro.
|
|||
|
||||
account.unlinkWarning=Logging out will prevent %S from syncing your data.
|
||||
account.unlinkWarning.removeData=Dilemel ma roadennoù %S diwar an urzhiataer-mañ da virviken
|
||||
account.unlinkWarning.button=Log Out
|
||||
account.unlinkWarning.button=Digevreañ
|
||||
account.warning.emptyLibrary=You are about to sync to an empty %1$S database. This could happen if you accidentally deleted the %2$S file in your %1$S data directory or the location of your data directory changed.
|
||||
account.warning.emptyLibrary.dataWillBeDownloaded=If you continue, data in the ‘%1$S’ account will be downloaded to this computer. Your online library won’t be affected.
|
||||
account.warning.existingDataElsewhere=Ma 'z eus eus ho roadennoù %S en ul lec'h all war hoc'h urzhiataer, rankout a rafec'h lakaat anezho da fiñval betek ar c'havlec'h roadennoù pe cheñch lec'hiadur ar c'havlec'h roadennoù evit ma poentfe war-zu ho roadennoù a zo anezho.
|
||||
|
|
@ -1136,9 +1136,9 @@ proxies.notification.settings.button=Arventennoù proksi...
|
|||
proxies.recognized.message=Ouzhpennañ ar proksi-mañ a roio an aotre da Zotero da anavezout elfennoù adalek e bajennoù hag e vo em-adheñchet ar rekedoù da zont savet ouzh %1$S dre %2$S.
|
||||
proxies.recognized.add=Ouzhpennañ ur proksi
|
||||
|
||||
recognizePDF.title=Metadata Retrieval
|
||||
recognizePDF.title=Oc'h adpakout ar metaroadennoù
|
||||
recognizePDF.noOCR=Ne endalc'h ket ar PDF-mañ un destenn OCRet (OCR = arouezioù an destenn anavezet dre wel)
|
||||
recognizePDF.couldNotRead=Could not read text from document
|
||||
recognizePDF.couldNotRead=N'heller ket lenn an destenn diwar ar restr
|
||||
recognizePDF.noMatches=N'eus bet kavet daveenn ebet kenglotus
|
||||
recognizePDF.fileNotFound=Restr nann-kavet
|
||||
recognizePDF.error=Ur fazi dic'hortoz 'zo c'hoarvezet
|
||||
|
|
@ -1176,13 +1176,13 @@ lookup.failureTooMany.description=Re a anaouadurioù. Ebarzhit un anaouader mar
|
|||
locate.online.label=Diskouez enlinenn
|
||||
locate.pdf.label=Digeriñ ar PDF
|
||||
locate.pdfNewWindow.label=Open PDF in New Window
|
||||
locate.pdfNewTab.label=Open PDF in New Tab
|
||||
locate.pdfNewTab.label=Digeriñ ur PDF en un ivinell nevez
|
||||
locate.snapshot.label=Diskouez an dapadenn
|
||||
locate.file.label=Diskouez ar restr
|
||||
locate.externalViewer.label=Digeriñ gant ul lenner diavaez
|
||||
locate.internalViewer.label=Digeriñ e-barzh ul lenner diabarzh
|
||||
locate.libraryLookup.label=Klask el levraoueg
|
||||
locate.libraryLookup.noResolver.title=No OpenURL Resolver
|
||||
locate.libraryLookup.noResolver.title=Diskoulmer OpenURL ebet
|
||||
locate.manageLocateEngines=Merañ al luskerioù enklask...
|
||||
locate.locateEngineDescription=Lookup engines help you find resources in your %S library on the web. Engines enabled in this list appear in the Locate drop-down in the toolbar.
|
||||
|
||||
|
|
@ -1269,7 +1269,7 @@ noteEditor.paragraph=Rannbennad
|
|||
noteEditor.monospaced=Monospaset
|
||||
noteEditor.bulletList=Listenn gant merkigoù
|
||||
noteEditor.orderedList=Listenn niverennet
|
||||
noteEditor.blockquote=Block Quote
|
||||
noteEditor.blockquote=Bloc'had arroudenn
|
||||
noteEditor.mathBlock=Matematik bloc'had
|
||||
noteEditor.formatText=Stumm an destenn
|
||||
noteEditor.highlightText=Usskediñ an destenn
|
||||
|
|
@ -1334,7 +1334,7 @@ pdfReader.noExtractedText=Testenn ebet eztennet
|
|||
pdfReader.addComment=Ouzhpennañ un evezhiadenn
|
||||
pdfReader.annotationComment=Evezhiadenn an ennotadur
|
||||
pdfReader.annotationText=Testenn an ennotadur
|
||||
pdfReader.manageTags=Manage tags for this annotation
|
||||
pdfReader.manageTags=Merañ an tikedennoù evit an ennotadur-mañ
|
||||
pdfReader.openMenu=Digeriñ lañser an ennotaudurioù
|
||||
pdfReader.thumbnails=Skeudennigoù
|
||||
pdfReader.tagSelectorMessage=Silañ an ennotadurioù dre an dikedenn-mañ
|
||||
|
|
@ -1405,12 +1405,12 @@ pdfReader.epubAppearance.wordSpacing=Spas etre ar gerioù
|
|||
pdfReader.epubAppearance.letterSpacing=Spas etre al lizherennoù
|
||||
pdfReader.epubAppearance.pageWidth=Ledander ar bajenn
|
||||
pdfReader.epubAppearance.useOriginalFont=Ober gant ar skritur orin
|
||||
pdfReader.epubAppearance.lineHeight.revert=Use default line height
|
||||
pdfReader.epubAppearance.lineHeight.revert=Ober gant an uhelder linenn dre ziouer
|
||||
pdfReader.epubAppearance.wordSpacing.revert=Ober gant ar spas dre ziouer etre ar gerioù
|
||||
pdfReader.epubAppearance.letterSpacing.revert=Ober gant ar spas dre ziouer etre al lizherennoù
|
||||
pdfReader.epubAppearance.pageWidth.revert=Ober gant al ledander pajenn dre ziouer
|
||||
pdfReader.convertToHighlight=Convert to Highlight
|
||||
pdfReader.convertToUnderline=Convert to Underline
|
||||
pdfReader.convertToHighlight=Emdreiñ da usskedet
|
||||
pdfReader.convertToUnderline=Emdreiñ da islinennet
|
||||
pdfReader.size=Ment
|
||||
pdfReader.merge=Kendeuziñ
|
||||
pdfReader.copyLink=Eilañ al liamm
|
||||
|
|
@ -1450,9 +1450,9 @@ tabs.moveToStart=Fiñval d'an penn-kentañ
|
|||
tabs.moveToEnd=Fiñval d'ar fin
|
||||
tabs.moveToWindow=Move to New Window
|
||||
tabs.duplicate=Eilañ an ivinell
|
||||
tabs.undoClose=Reopen Closed Tab;Reopen Closed Tabs
|
||||
tabs.closeOther=Close Other Tabs
|
||||
tabs.undoClose=Addigeriñ an ivinell serret;Addigeriñ an ivinelloù serret
|
||||
tabs.closeOther=Serriñ an holl ivinelloù
|
||||
|
||||
addons.emptyListMessage=Download plugins from the [Zotero plugins directory].
|
||||
addons.remove.title=Remove %S?
|
||||
addons.remove.text=Are you sure you want to remove %1$S from %2$S?
|
||||
addons.remove.title=Dilemel %S?
|
||||
addons.remove.text=Ha sur oc'h ho peus c'hoant da zilemel %1$S diwar %2$S?
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Anterior
|
||||
general-next = Següent
|
||||
general-learn-more = Més informació
|
||||
general-more-information = Més informació
|
||||
general-warning = Avís
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Continua
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Més informació
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Předchozí
|
||||
general-next = Následující
|
||||
general-learn-more = Zjistit více
|
||||
general-more-information = Více informací
|
||||
general-warning = Varování
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Pokračovat
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Přihlášení do { $targetApp } se nezdařilo
|
|||
import-online-blocked-by-plugin = Import nemůže pokračovat, pokud je nainstalován { $plugin }. Vypněte prosím tento doplněk a zkuste to znovu.
|
||||
import-online-relink-only =
|
||||
.label = Znovu propojit citace Mendeley Desktop
|
||||
import-online-relink-kb = Více informací
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } se nepodařilo připojit k { $targetApp }. Zkontrolujte prosím své internetové připojení a zkuste to znovu.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = m.fl.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Lær mere
|
||||
general-more-information = Mere information
|
||||
general-warning = Warning
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Fortsæt
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Mere information
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Nächstes
|
||||
general-next = Vorheriges
|
||||
general-learn-more = Mehr erfahren
|
||||
general-more-information = Weitere Informationen
|
||||
general-warning = Warnung
|
||||
general-type-to-continue = Drücke "{ $text }" um fortzufahren.
|
||||
general-continue = Weiter
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Anmeldung bei { $targetApp } fehlgeschlagen. B
|
|||
import-online-blocked-by-plugin = Der Import kann nicht fortgesetzt werden, wenn { $plugin } installiert ist. Bitte deaktivieren Sie dieses Plugin und versuchen Sie es erneut.
|
||||
import-online-relink-only =
|
||||
.label = Zitationen aus Mendeley Desktop erneut vernküfen
|
||||
import-online-relink-kb = Weitere Informationen
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } konnte sich nicht mit { $targetApp } verbinden. Bitte überprüfen Sie Ihre Internetverbindung und wiederholen Sie den Vorgang.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = κ.α.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = Περισσότερες πληροφορίες
|
||||
general-warning = Προειδοποίηση
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Συνέχεια
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Περισσότερες πληροφορίες
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = More Information
|
||||
general-warning = Warning
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Continue
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = More Information
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -57,13 +57,11 @@
|
|||
<!ENTITY zotero.preferences.sync.fileSyncing "File Syncing">
|
||||
<!ENTITY zotero.preferences.sync.fileSyncing.url "URL:">
|
||||
<!ENTITY zotero.preferences.sync.fileSyncing.myLibrary "Sync attachment files in My Library using">
|
||||
<!ENTITY zotero.preferences.sync.fileSyncing.groups "Sync attachment files in group libraries using Zotero storage">
|
||||
|
||||
<!ENTITY zotero.preferences.sync.fileSyncing.download "Download files">
|
||||
<!ENTITY zotero.preferences.sync.fileSyncing.download.atSyncTime "at sync time">
|
||||
<!ENTITY zotero.preferences.sync.fileSyncing.download.onDemand "as needed">
|
||||
<!ENTITY zotero.preferences.sync.fileSyncing.verifyServer "Verify Server">
|
||||
<!ENTITY zotero.preferences.sync.fileSyncing.tos1 "By using Zotero storage, you agree to become bound by its">
|
||||
<!ENTITY zotero.preferences.sync.fileSyncing.tos2 "terms and conditions">
|
||||
<!ENTITY zotero.preferences.sync.librariesToSync "Libraries to Sync">
|
||||
<!ENTITY zotero.preferences.sync.librariesToSync.button "Choose Libraries…">
|
||||
<!ENTITY zotero.preferences.sync.librariesToSync.sync "Sync">
|
||||
|
|
|
|||
|
|
@ -91,11 +91,19 @@ preferences-advanced-default-data-dir =
|
|||
.value = (Default: { $directory })
|
||||
.aria-label = Default location
|
||||
|
||||
preferences-pane-account = Account
|
||||
|
||||
-preferences-sync-data-syncing = Data Syncing
|
||||
preferences-sync-data-syncing-groupbox =
|
||||
.aria-label = { -preferences-sync-data-syncing }
|
||||
preferences-sync-data-syncing-heading = { -preferences-sync-data-syncing }
|
||||
preferences-sync-data-syncing-description = Log in with your { -app-name } account to sync your data between devices, collaborate with others, and more.
|
||||
preferences-sync-settings-heading = Sync
|
||||
preferences-sync-settings-intro = { -app-name } can sync your library data and files across devices. <label data-l10n-name="sync-link">Learn more</label>
|
||||
preferences-sync-reset-heading = Sync Reset
|
||||
preferences-sync-fileSyncing-groups =
|
||||
.label = Sync attachment files in group libraries using { -app-name } Storage
|
||||
preferences-sync-fileSyncing-tos = By using { -app-name } Storage, you agree to become bound by its <label data-l10n-name="terms-link">terms and conditions</label>.
|
||||
preferences-account-log-out =
|
||||
.label = Log Out…
|
||||
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ general-et-al = et al.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = More Information
|
||||
general-warning = Warning
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Continue
|
||||
|
|
@ -323,7 +324,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = More Information
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
|
||||
items-table-cell-notes =
|
||||
|
|
|
|||
|
|
@ -128,6 +128,9 @@
|
|||
"general-learn-more": {
|
||||
"string": "Learn More"
|
||||
},
|
||||
"general-more-information": {
|
||||
"string": "More Information"
|
||||
},
|
||||
"general-warning": {
|
||||
"string": "Warning"
|
||||
},
|
||||
|
|
@ -452,9 +455,6 @@
|
|||
"import-online-relink-only.label": {
|
||||
"string": "Relink Mendeley Desktop citations"
|
||||
},
|
||||
"import-online-relink-kb": {
|
||||
"string": "More Information"
|
||||
},
|
||||
"import-online-connection-error": {
|
||||
"string": "{ app-name } could not connect to { targetApp }. Please check your internet connection and try again."
|
||||
},
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Anterior
|
||||
general-next = Siguiente
|
||||
general-learn-more = Más información
|
||||
general-more-information = Más información
|
||||
general-warning = Advertencia
|
||||
general-type-to-continue = Introduzca “{ $text }” para continuar.
|
||||
general-continue = Continuar
|
||||
|
|
@ -280,7 +281,7 @@ import-online-wrong-credentials = Error al iniciar sesión en { $targetApp }. Vu
|
|||
import-online-blocked-by-plugin = La importación no puede continuar con { $plugin } instalado. Por favor, desactive esta extensión e inténtelo de nuevo.
|
||||
import-online-relink-only =
|
||||
.label = Volver a vincular las citas de Mendeley Desktop
|
||||
import-online-relink-kb = Más información
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } no ha podido conectarse a { $targetApp }. Compruebe su conexión a Internet e inténtelo de nuevo.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Eelmine
|
||||
general-next = Järgmine
|
||||
general-learn-more = Õpi lisa
|
||||
general-more-information = Lisainfo
|
||||
general-warning = Hoiatus
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Jätka
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Lisainfo
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Aurrekoa
|
||||
general-next = Hurrengoa
|
||||
general-learn-more = Gehiago jakin
|
||||
general-more-information = Informazio gehiago
|
||||
general-warning = Kontuz!
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Jarraitu
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Informazio gehiago
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = اطلاعات بیشتر
|
||||
general-warning = اخطار
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = ادامه
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = اطلاعات بیشتر
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = ym.
|
|||
general-previous = Edellinen
|
||||
general-next = Seuraava
|
||||
general-learn-more = Lisätietoja
|
||||
general-more-information = Lisätietoja
|
||||
general-warning = Varoitus
|
||||
general-type-to-continue = Kirjoita “{ $text }” jatkaaksesi.
|
||||
general-continue = Jatka
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Kirjautuminen sovellukseen { $targetApp } epä
|
|||
import-online-blocked-by-plugin = Tuontia ei voida jatkaa kun { $plugin } on asennettu. Kytke tämä lisäosa pois päältä ja yritä uudelleen.
|
||||
import-online-relink-only =
|
||||
.label = Linkitä uudelleen Mendeley Desktopin viittaukset
|
||||
import-online-relink-kb = Lisätietoja
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } ei saanut yhteyttä sovellukseen { $targetApp }. Tarkista internet-yhteytesi ja yritä uudelleen.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ integration-citationDialog-settings-title = Paramètres de citation
|
|||
integration-citationDialog-lib-message-citation =
|
||||
{ $search ->
|
||||
[true] Aucun document sélectionné, ouvert ou cité ne correspond à la recherche actuelle
|
||||
*[other] Aucun document sélectionné ou ouvert
|
||||
*[other] Aucun document n'est ouvert ou sélectionné
|
||||
}
|
||||
integration-citationDialog-lib-message-add-note =
|
||||
{ $search ->
|
||||
|
|
@ -50,8 +50,8 @@ integration-citationDialog-lib-message-add-note =
|
|||
}
|
||||
integration-citationDialog-lib-message-annotations =
|
||||
{ $search ->
|
||||
[true] No items with annotations match the current search
|
||||
*[other] No selected or open items with annotations
|
||||
[true] Aucun document avec annotations ne correspond à la recherche actuelle
|
||||
*[other] Aucun document avec annotations n'est ouvert ou sélectionné
|
||||
}
|
||||
integration-citationDialog-settings-keepSorted = Trier les sources automatiquement
|
||||
integration-citationDialog-btn-settings =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Précédent
|
||||
general-next = Suivant
|
||||
general-learn-more = En savoir plus
|
||||
general-more-information = Plus d'informations
|
||||
general-warning = Avertissement
|
||||
general-type-to-continue = Tapez “{ $text }” pour continuer.
|
||||
general-continue = Continuer
|
||||
|
|
@ -280,7 +281,7 @@ import-online-wrong-credentials = Connexion à { $targetApp } refusée. Veuillez
|
|||
import-online-blocked-by-plugin = L'importation ne peut pas aboutir avec l'extension { $plugin } installée. Veuillez désactiver cette extension et réessayer.
|
||||
import-online-relink-only =
|
||||
.label = Lier à nouveau les citations de Mendeley Desktop
|
||||
import-online-relink-kb = Plus d'informations
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } n'a pas pu se connecter à { $targetApp }. Veuillez vérifier votre connexion Internet et réessayer.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Anterior
|
||||
general-next = Seguinte
|
||||
general-learn-more = Saber máis
|
||||
general-more-information = Máis información
|
||||
general-warning = Advertencia
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Continuar
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Volver a ligar as citas de Mendeley Desktop
|
||||
import-online-relink-kb = Máis información
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } non puido conectar con { $targetApp }. Por favor, comprobe a súa conexión a internet e vólvao intentar.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = ועוד
|
|||
general-previous = הקודם
|
||||
general-next = הבא
|
||||
general-learn-more = מידע נוסף
|
||||
general-more-information = פרטים נוספים
|
||||
general-warning = אזהרה
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = להמשיך
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = פרטים נוספים
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = i dr.
|
|||
general-previous = Prethodno
|
||||
general-next = Sljedeće
|
||||
general-learn-more = Saznajte više
|
||||
general-more-information = Još informacija
|
||||
general-warning = Upozorenje
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Nastavi
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Još informacija
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = és mtsai.
|
|||
general-previous = Előző
|
||||
general-next = Következő
|
||||
general-learn-more = Bővebben
|
||||
general-more-information = További információ
|
||||
general-warning = Figyelmeztetés
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Folytatás
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = A { $targetApp } bejelentkezés sikertelen. K
|
|||
import-online-blocked-by-plugin = Az importálás nem folytatható a telepített { $plugin } esetén. Kérjük, tiltsa le ezt a plugint, és próbálja meg újra.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = További információ
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } nem tudott csatlakozni { $targetApp }. Kérjük, ellenőrizze az internetkapcsolatot, és próbálja meg újra.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Sebelum
|
||||
general-next = Lanjut
|
||||
general-learn-more = Baca lebih lanjut
|
||||
general-more-information = Informasi lebih lanjut
|
||||
general-warning = Peringatan
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Lanjut
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Informasi lebih lanjut
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = og fl.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = Frekari upplýsingar
|
||||
general-warning = Viðvörun
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Halda áfram
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Frekari upplýsingar
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
file-renaming-settings-window =
|
||||
.title = Configure File Renaming
|
||||
file-renaming-settings-library-label = Library:
|
||||
.title = Configura rinominazione dei file
|
||||
file-renaming-settings-library-label = Biblioteca:
|
||||
file-renaming-auto-rename-files =
|
||||
.label = Rinomina file automaticamente
|
||||
file-renaming-file-types = Rinomina file di questi tipi:
|
||||
|
|
@ -20,7 +20,7 @@ file-renaming-rename-linked =
|
|||
.label = Rinomina i file collegati
|
||||
file-renaming-format-title = Formato del nome dei file
|
||||
file-renaming-format-instructions = È possibile personalizzare lo schema con cui { -app-name } rinomina i file allegati dai metadati dell'elemento genitore.
|
||||
file-renaming-format-instructions-example = For example, "{ $example }" in this template will be replaced with the title of the parent item, truncated at 50 characters.
|
||||
file-renaming-format-instructions-example = Ad esempio, "{ $example }" in questo modello sarà sostituito dal titolo dell'elemento genitore, troncato dopo 50 caratteri.
|
||||
file-renaming-format-instructions-more = Vedi la <label data-l10n-name="file-renaming-format-help-link">documentazione</label> per ulteriori informazioni (in inglese).
|
||||
file-renaming-format-template = Schema di rinominazione:
|
||||
file-renaming-format-preview = Anteprima:
|
||||
|
|
@ -33,13 +33,13 @@ file-renaming-cancel-button =
|
|||
.label = { general-cancel }
|
||||
file-renaming-auto-rename-prompt-title = Modificate le impostazioni di auto-rinominazione
|
||||
file-renaming-auto-rename-prompt-body = Vuoi rinominare i file nella tua biblioteca in accordo con le nuove impostazioni?
|
||||
file-renaming-auto-rename-prompt-body-library = Would you like to rename existing files in library "{ $library }" to match the new settings?
|
||||
file-renaming-auto-rename-prompt-body-library = Vuoi rinominare i file nella biblioteca "{ $library }" in accordo con le nuove impostazioni?
|
||||
file-renaming-auto-rename-prompt-yes = { file-renaming-preview-changes }
|
||||
file-renaming-auto-rename-prompt-no = Mantieni i nomi correnti dei file
|
||||
file-renaming-preview-window =
|
||||
.title = Rinomina file
|
||||
file-renaming-preview-window-loading = Caricamento in corso…
|
||||
file-renaming-preview-window-intro = { -app-name } rinominerà i seguenti file nella tua libreria secondo i metadati del rispettivo elemento genitore:
|
||||
file-renaming-preview-window-intro-library = { -app-name } will rename the following files in "{ $library }" to match their parent items:
|
||||
file-renaming-preview-window-intro-library = { -app-name } rinominerà i seguenti file nella libreria "{ $library }" secondo i metadati del rispettivo elemento genitore:
|
||||
file-renaming-preview-window-renaming = Rinominazione in corso...
|
||||
file-renaming-preview-window-no-files = Tutti i file corrispondono già al proprio elemento genitore. Nessuna modifica richiesta.
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ integration-editBibliography-wrapper =
|
|||
integration-citationDialog = Finestra di citazione
|
||||
integration-citationDialog-section-open = Apri documenti ({ $count })
|
||||
integration-citationDialog-section-selected = Elementi selezionati ({ $count }/{ $total })
|
||||
integration-citationDialog-section-selectedAnnotations = Selected Annotations
|
||||
integration-citationDialog-section-selectedAnnotations = Annotazioni selezionate
|
||||
integration-citationDialog-section-selectedItems = Elementi selezionati
|
||||
integration-citationDialog-section-cited =
|
||||
{ $count ->
|
||||
|
|
@ -32,7 +32,7 @@ integration-citationDialog-section-cited =
|
|||
integration-citationDialog-details-suffix = Suffisso
|
||||
integration-citationDialog-details-prefix = Prefisso
|
||||
integration-citationDialog-details-suppressAuthor = Ometti l'autore
|
||||
integration-citationDialog-details-includeComments = Include Comments
|
||||
integration-citationDialog-details-includeComments = Includi i commenti
|
||||
integration-citationDialog-details-remove = { general-remove }
|
||||
integration-citationDialog-details-done =
|
||||
.label = { general-done }
|
||||
|
|
@ -50,8 +50,8 @@ integration-citationDialog-lib-message-add-note =
|
|||
}
|
||||
integration-citationDialog-lib-message-annotations =
|
||||
{ $search ->
|
||||
[true] No items with annotations match the current search
|
||||
*[other] No selected or open items with annotations
|
||||
[true] Non ci sono elementi con annotazioni che corrispondono alla ricerca corrente
|
||||
*[other] Nessun elemento con annotazioni selezionato o aperto
|
||||
}
|
||||
integration-citationDialog-settings-keepSorted = Mantieni l'ordinamento delle fonti
|
||||
integration-citationDialog-btn-settings =
|
||||
|
|
@ -63,7 +63,7 @@ integration-citationDialog-btn-type-citation =
|
|||
integration-citationDialog-btn-type-add-note =
|
||||
.title = Aggiungi nota
|
||||
integration-citationDialog-btn-type-annotations =
|
||||
.title = Add Annotations
|
||||
.title = Aggiungi annotazioni
|
||||
integration-citationDialog-btn-accept =
|
||||
.title = { general-accept }
|
||||
integration-citationDialog-btn-cancel =
|
||||
|
|
@ -82,7 +82,7 @@ integration-citationDialog-input-citation =
|
|||
integration-citationDialog-single-input-add-note =
|
||||
.placeholder = Cerca una nota da inserire nel documento
|
||||
integration-citationDialog-single-input-annotations =
|
||||
.placeholder = Search for annotations to insert into the document
|
||||
.placeholder = Cerca annotazioni da inserire nel documento
|
||||
integration-citationDialog-aria-item-list =
|
||||
.aria-description = Usa le frecce su/giù per cambiare la selezione degli elementi. { integration-citationDialog-enter-to-add-item }
|
||||
integration-citationDialog-aria-item-library =
|
||||
|
|
@ -100,8 +100,8 @@ integration-citationDialog-collapse-section =
|
|||
integration-citationDialog-bubble-empty = (nessun titolo)
|
||||
integration-citationDialog-add-to-citation = Aggiungi alla citazione
|
||||
integration-citationDialog-annotations-filter =
|
||||
.placeholder = Filter annotations
|
||||
integration-citationDialog-annotations-empty = Select an item, attachment, or annotation to view annotation details
|
||||
.placeholder = Filtra annotazioni
|
||||
integration-citationDialog-annotations-empty = Seleziona un elemento, allegato o annotazione per vedere i dettagli dell'annotazione
|
||||
integration-prefs-displayAs-label = Mostra citazioni come:
|
||||
integration-prefs-footnotes =
|
||||
.label = Note a piè di pagina
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ preferences-auto-recognize-files =
|
|||
preferences-file-renaming-title = Rinominazione dei file
|
||||
preferences-file-renaming-intro = { -app-name } può rinominare automaticamente i file in accordo con i metadati dell'elemento genitore (titolo, autore, ecc.) e mantenerli sincronizzati con eventuali modifiche. I file scaricati sono sempre rinominati in accordo con l'elemento genitore.
|
||||
preferences-file-renaming-configure-button =
|
||||
.label = Configure File Renaming…
|
||||
.label = Configura rinominazione dei file...
|
||||
preferences-attachment-titles-title = Titoli degli allegati
|
||||
preferences-attachment-titles-intro = I titoli degli allegati sono <label data-l10n-name="wiki-link">diversi dai nomi dei file</label>. A supporto di certi flussi di lavoro, { -app-name } può mostrare i nomi dei file al posto dei titoli degli allegati nella lista degli elementi.
|
||||
preferences-attachment-titles-show-filenames =
|
||||
|
|
@ -107,15 +107,15 @@ preferences-sync-reset-restore-to-server-yes = Sostituisci i dati nella bibliote
|
|||
preferences-account-log-in =
|
||||
.label = Accedi
|
||||
preferences-account-waiting-for-login =
|
||||
.value = Waiting for login…
|
||||
.value = In attesa dell'accesso…
|
||||
preferences-account-cancel-button =
|
||||
.label = { general-cancel }
|
||||
preferences-account-logged-out-status =
|
||||
.value = (logged out)
|
||||
.value = (disconnesso)
|
||||
preferences-account-email-label =
|
||||
.value = Email:
|
||||
preferences-account-switch-accounts =
|
||||
.label = Switch Accounts…
|
||||
preferences-account-switch-text = Switching to a different account will remove all { -app-name } data on this computer. Before continuing, make sure all data and files you wish to keep have been synced with the “{ $username }” account or you have a backup of your { -app-name } data directory.
|
||||
preferences-account-switch-confirmation-text = remove local data
|
||||
preferences-account-switch-accept = Remove Data and Restart
|
||||
.label = Cambia account…
|
||||
preferences-account-switch-text = Cambiare account eliminerà tutti i dati di { -app-name } su questo computer. Prima di continuare, assicurati che tutti i dati e i file che vuoi mantenere siano sincronizzati con l'account “{ $username }” o di avere un backup della cartella dei dati di { -app-name }.
|
||||
preferences-account-switch-confirmation-text = elimina i dati locali
|
||||
preferences-account-switch-accept = Rimuovi i dati e riavvia
|
||||
|
|
|
|||
|
|
@ -197,12 +197,12 @@ reader-selected-pages =
|
|||
}
|
||||
reader-page-options = Opzioni pagina
|
||||
reader-read-aloud = Leggi ad alta voce
|
||||
reader-read-aloud-from-here = Read Aloud from Here
|
||||
reader-read-aloud-from-here = Leggi ad alta voce da qui
|
||||
reader-read-aloud-options = Opzioni
|
||||
reader-read-aloud-skip-back = Indietro
|
||||
reader-read-aloud-skip-back-sentence = Skip Back by Sentence
|
||||
reader-read-aloud-skip-back-sentence = Indietro di una frase
|
||||
reader-read-aloud-skip-ahead = Avanti
|
||||
reader-read-aloud-skip-ahead-sentence = Skip Ahead by Sentence
|
||||
reader-read-aloud-skip-ahead-sentence = Avanti di una frase
|
||||
reader-read-aloud-add-annotation = Annota frase ({ $key1 }/{ $key2 })
|
||||
reader-read-aloud-play = Riproduci
|
||||
reader-read-aloud-pause = Pausa
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Precedente
|
||||
general-next = Successivo
|
||||
general-learn-more = Approfondisci
|
||||
general-more-information = Ulteriori informazioni
|
||||
general-warning = Attenzione
|
||||
general-type-to-continue = Digita “{ $text }” per continuare.
|
||||
general-continue = Continua
|
||||
|
|
@ -157,11 +158,11 @@ zotero-toolbar-tabs-scroll-backwards =
|
|||
.title = Scorri indietro
|
||||
toolbar-add-attachment =
|
||||
.tooltiptext = { add-attachment }
|
||||
recently-read = Recently Read
|
||||
recently-read = Letti di recente
|
||||
collections-menu-show-recently-read =
|
||||
.label = Show { recently-read }
|
||||
.label = Mostra { recently-read }
|
||||
item-menu-remove-from-recently-read =
|
||||
.label = Remove from { recently-read }…
|
||||
.label = Rimuovi da { recently-read }…
|
||||
collections-menu-rename-collection =
|
||||
.label = Rinomina collezione
|
||||
collections-menu-edit-saved-search =
|
||||
|
|
@ -280,7 +281,7 @@ import-online-wrong-credentials = L'autenticazione in { $targetApp } è fallita.
|
|||
import-online-blocked-by-plugin = L'importazione non può proseguire se { $plugin } è installato. Si prega di disabilitare questo plugin e riprovare.
|
||||
import-online-relink-only =
|
||||
.label = Ricollega le citazioni di Mendeley Desktop
|
||||
import-online-relink-kb = Ulteriori informazioni
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } non è riuscito a connettersi a { $targetApp }. Si prega di verificare la connessione a Internet e riprovare.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
@ -289,9 +290,9 @@ items-table-cell-notes =
|
|||
[many] { $count } Note
|
||||
*[other] { $count } Note
|
||||
}
|
||||
items-column-added-by = Added By
|
||||
items-column-modified-by = Modified By
|
||||
items-column-last-read = Last Read
|
||||
items-column-added-by = Aggiunto da
|
||||
items-column-modified-by = Modificato da
|
||||
items-column-last-read = Ultima lettura
|
||||
report-error =
|
||||
.label = Segnala un errore…
|
||||
rtfScan-wizard =
|
||||
|
|
@ -611,8 +612,8 @@ attachment-preview-placeholder = Nessun allegato da mostrare
|
|||
attachment-rename-from-parent =
|
||||
.tooltiptext = Rinominare il file in base ai metadati dell'elemento genitore
|
||||
account-log-in = Accedi
|
||||
account-not-logged-in-text = Log in to your Zotero account to sync your data.
|
||||
account-error-login-session-expired = Your login session has expired. Please try again.
|
||||
account-not-logged-in-text = Accedi al tuo account Zotero per sincronizzare i dati.
|
||||
account-error-login-session-expired = La sessione di accesso è scaduta. Riprova.
|
||||
toggle-preview =
|
||||
.label =
|
||||
{ $type ->
|
||||
|
|
@ -725,7 +726,7 @@ search-conditions-dateModified = Data ultima modifica
|
|||
search-conditions-fulltextContent = Contenuto dell'allegato
|
||||
search-conditions-programmingLanguage = Linguaggio di programmazione
|
||||
search-conditions-fileTypeID = Tipo di allegato
|
||||
search-conditions-lastRead = Attachment Last Read
|
||||
search-conditions-lastRead = Ultima lettura dell'allegato
|
||||
search-conditions-annotationText = Testo dell'annotazione
|
||||
search-conditions-annotationComment = Commento all'annotazione
|
||||
search-conditions-anyField = Qualsiasi campo
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = 詳細情報の表示
|
||||
general-more-information = さらに詳しく
|
||||
general-warning = 警告
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Continue
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = More Information
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = ព័ត៌មានបន្ថែម
|
||||
general-warning = បម្រាម
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Continue
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = ព័ត៌មានបន្ថែម
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = 등
|
|||
general-previous = 이전
|
||||
general-next = 다음
|
||||
general-learn-more = 더 알아보기
|
||||
general-more-information = 정보 더 보기
|
||||
general-warning = 경고
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = 계속
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = 정보 더 보기
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = ir kt.
|
|||
general-previous = Ankstesnis
|
||||
general-next = Tolesnis
|
||||
general-learn-more = Parodyti išsamiau
|
||||
general-more-information = Daugiau informacijos
|
||||
general-warning = Įspėjimas
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Tęsti
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Nepavyko prisijungti prie { $targetApp }. Iš
|
|||
import-online-blocked-by-plugin = Importavimo negalima tęsti, jei veikia { $plugin }. Prašome išjungti šį papildinį, tada bandykite iš naujo.
|
||||
import-online-relink-only =
|
||||
.label = Iš naujo susieti Mendeley Desktop citatas
|
||||
import-online-relink-kb = Daugiau informacijos
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } negali prisijungti { $targetApp }. Prašome patikrinti interneto ryšį ir bandykite vėl.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = гэх мэт.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Илүү ихийг мэдэж аваарай
|
||||
general-more-information = Дэлгэрэнгүй мэдээлэл
|
||||
general-warning = Анхааруулга
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Үргэлжлүүлэх
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Дэлгэрэнгүй мэдээлэл
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Forrige
|
||||
general-next = Neste
|
||||
general-learn-more = Lær mer
|
||||
general-more-information = Mer informasjon
|
||||
general-warning = Advarsel
|
||||
general-type-to-continue = Skriv “{ $text }” for å fortsette.
|
||||
general-continue = Fortsett
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Innlogging til { $targetApp } mislyktes. Vennl
|
|||
import-online-blocked-by-plugin = Importen kan ikke fortsette med { $plugin } installert. Deaktiver dette programtillegget og prøv på nytt.
|
||||
import-online-relink-only =
|
||||
.label = Koble sammen igjen Mendeley Desktop henvisninger
|
||||
import-online-relink-kb = Mer informasjon
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } kunne ikke koble til { $targetApp }. Kontroller Internett-tilkoblingen din og prøv igjen.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = e.a.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Meer info
|
||||
general-more-information = Meer informatie
|
||||
general-warning = Waarschuwing
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Doorgaan
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Meer informatie
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = More Information
|
||||
general-warning = Åtvaring
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Continue
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = More Information
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
file-renaming-settings-window =
|
||||
.title = Configure File Renaming
|
||||
file-renaming-settings-library-label = Library:
|
||||
.title = Konfiguruj zmianę nazw plików
|
||||
file-renaming-settings-library-label = Biblioteka:
|
||||
file-renaming-auto-rename-files =
|
||||
.label = Automatycznie zmień nazwy plików
|
||||
file-renaming-file-types = Zmień nazwy plików następujących typów:
|
||||
|
|
@ -20,7 +20,7 @@ file-renaming-rename-linked =
|
|||
.label = Zmień nazwy powiązanych plików
|
||||
file-renaming-format-title = Format nazwy pliku
|
||||
file-renaming-format-instructions = Możesz dostosować wzorzec zmiany nazwy plik, który zostanie użyty przez { -app-name } aby zmienić nazwy plików załączników w taki sposób, aby użyte zostały metadane elementu nadrzędnego.
|
||||
file-renaming-format-instructions-example = For example, "{ $example }" in this template will be replaced with the title of the parent item, truncated at 50 characters.
|
||||
file-renaming-format-instructions-example = Na przykład “{ $example }” w tym szablonie zostanie zastąpione tytułem elementu nadrzędnego, skróconym do 50 znaków.
|
||||
file-renaming-format-instructions-more = Zobacz <label data-l10n-name="file-renaming-format-help-link">dokumentację</label>, aby uzyskać więcej informacji.
|
||||
file-renaming-format-template = Szablon nazwy pliku:
|
||||
file-renaming-format-preview = Podgląd:
|
||||
|
|
@ -33,13 +33,13 @@ file-renaming-cancel-button =
|
|||
.label = { general-cancel }
|
||||
file-renaming-auto-rename-prompt-title = Zmieniono ustawienia nazw plików
|
||||
file-renaming-auto-rename-prompt-body = Czy chcesz zmienić nazwy istniejących plików w twojej bibliotece, aby zgadzały się z nowymi ustawieniami?
|
||||
file-renaming-auto-rename-prompt-body-library = Would you like to rename existing files in library "{ $library }" to match the new settings?
|
||||
file-renaming-auto-rename-prompt-body-library = Czy chcesz zmienić nazwy istniejących plików w bibliotece "{ $library }", aby zgadzały się z nowymi ustawieniami?
|
||||
file-renaming-auto-rename-prompt-yes = { file-renaming-preview-changes }
|
||||
file-renaming-auto-rename-prompt-no = Zachowaj istniejące nazwy plików
|
||||
file-renaming-preview-window =
|
||||
.title = Zmień nazwy plików
|
||||
file-renaming-preview-window-loading = Wczytywanie...
|
||||
file-renaming-preview-window-intro = { -app-name } zmieni nazwy następujących plików w Twojej bibliotece tak, aby odpowiadały nazwom ich elementów nadrzędnych:
|
||||
file-renaming-preview-window-intro-library = { -app-name } will rename the following files in "{ $library }" to match their parent items:
|
||||
file-renaming-preview-window-intro-library = { -app-name } zmieni nazwy następujących plików w bibliotece "{ $library }" tak, aby odpowiadały nazwom ich elementów nadrzędnych:
|
||||
file-renaming-preview-window-renaming = Zmiana nazw...
|
||||
file-renaming-preview-window-no-files = Wszystkie nazwy plików obecnie odpowiadają elementom nadrzędnym. Nie są wymagane żadne zmiany.
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ integration-editBibliography-wrapper =
|
|||
integration-citationDialog = Okno cytowania
|
||||
integration-citationDialog-section-open = Open Documents ({ $count })
|
||||
integration-citationDialog-section-selected = Wybrane elementy ({ $count }/{ $total })
|
||||
integration-citationDialog-section-selectedAnnotations = Selected Annotations
|
||||
integration-citationDialog-section-selectedAnnotations = Wybrane adnotacje
|
||||
integration-citationDialog-section-selectedItems = Wybrane elementy
|
||||
integration-citationDialog-section-cited =
|
||||
{ $count ->
|
||||
|
|
@ -29,7 +29,7 @@ integration-citationDialog-section-cited =
|
|||
integration-citationDialog-details-suffix = Przyrostek
|
||||
integration-citationDialog-details-prefix = Przedrostek
|
||||
integration-citationDialog-details-suppressAuthor = Pomiń autora
|
||||
integration-citationDialog-details-includeComments = Include Comments
|
||||
integration-citationDialog-details-includeComments = Dołącz komentarze
|
||||
integration-citationDialog-details-remove = { general-remove }
|
||||
integration-citationDialog-details-done =
|
||||
.label = { general-done }
|
||||
|
|
@ -60,7 +60,7 @@ integration-citationDialog-btn-type-citation =
|
|||
integration-citationDialog-btn-type-add-note =
|
||||
.title = Dodaj notatkę
|
||||
integration-citationDialog-btn-type-annotations =
|
||||
.title = Add Annotations
|
||||
.title = Dodaj adnotacje
|
||||
integration-citationDialog-btn-accept =
|
||||
.title = { general-accept }
|
||||
integration-citationDialog-btn-cancel =
|
||||
|
|
@ -79,7 +79,7 @@ integration-citationDialog-input-citation =
|
|||
integration-citationDialog-single-input-add-note =
|
||||
.placeholder = Wyszukaj notatkę, aby wstawić ją do dokumentu
|
||||
integration-citationDialog-single-input-annotations =
|
||||
.placeholder = Search for annotations to insert into the document
|
||||
.placeholder = Wyszukaj adnotację, aby wstawić ją do dokumentu
|
||||
integration-citationDialog-aria-item-list =
|
||||
.aria-description = Użyj klawiszy strzałki w górę/w dół, aby zmienić wybór elementu. { integration-citationDialog-enter-to-add-item }
|
||||
integration-citationDialog-aria-item-library =
|
||||
|
|
@ -97,7 +97,7 @@ integration-citationDialog-collapse-section =
|
|||
integration-citationDialog-bubble-empty = (brak tytułu)
|
||||
integration-citationDialog-add-to-citation = Dodaj do cytowania
|
||||
integration-citationDialog-annotations-filter =
|
||||
.placeholder = Filter annotations
|
||||
.placeholder = Filtruj adnotacje
|
||||
integration-citationDialog-annotations-empty = Select an item, attachment, or annotation to view annotation details
|
||||
integration-prefs-displayAs-label = Wyświetl cytowania jako:
|
||||
integration-prefs-footnotes =
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ preferences-auto-recognize-files =
|
|||
preferences-file-renaming-title = Zmiana nazw plików
|
||||
preferences-file-renaming-intro = { -app-name } może automatycznie zmienić nazwy plików na podstawie szczegółów elementu nadrzędnego (tytuł, autor, etc.) i utrzymać nazwy plików zsynchronizowane podczas dokonywania przez Ciebie zmian. Pobrane pliki są zawsze początkowo nazywane na podstawie elementu nadrzędnego.
|
||||
preferences-file-renaming-configure-button =
|
||||
.label = Configure File Renaming…
|
||||
.label = Konfiguruj zmianę nazw plików...
|
||||
preferences-attachment-titles-title = Nazwy załączników
|
||||
preferences-attachment-titles-intro = Nazwy załączników są <label data-l10n-name="wiki-link">różne od nazw plików</label>. Aby wspierać różne style pracy, { -app-name } może pokazywać nazwy plików zamiast nazw załączników na liście elementów.
|
||||
preferences-attachment-titles-show-filenames =
|
||||
|
|
@ -108,15 +108,15 @@ preferences-sync-reset-restore-to-server-yes = Zamień dane w zdalnej bibliotece
|
|||
preferences-account-log-in =
|
||||
.label = Zaloguj się
|
||||
preferences-account-waiting-for-login =
|
||||
.value = Waiting for login…
|
||||
.value = Czekanie na zalogowanie...
|
||||
preferences-account-cancel-button =
|
||||
.label = { general-cancel }
|
||||
preferences-account-logged-out-status =
|
||||
.value = (logged out)
|
||||
.value = (wylogowano)
|
||||
preferences-account-email-label =
|
||||
.value = Email:
|
||||
preferences-account-switch-accounts =
|
||||
.label = Switch Accounts…
|
||||
.label = Przełącz konta…
|
||||
preferences-account-switch-text = Switching to a different account will remove all { -app-name } data on this computer. Before continuing, make sure all data and files you wish to keep have been synced with the “{ $username }” account or you have a backup of your { -app-name } data directory.
|
||||
preferences-account-switch-confirmation-text = remove local data
|
||||
preferences-account-switch-accept = Remove Data and Restart
|
||||
preferences-account-switch-confirmation-text = usuń dane lokalne
|
||||
preferences-account-switch-accept = Usuń dane i uruchom ponownie
|
||||
|
|
|
|||
|
|
@ -230,7 +230,7 @@ reader-read-aloud-quota-exceeded-message =
|
|||
reader-read-aloud-error = { general-error }
|
||||
reader-read-aloud-error-unknown = Wystąpił nieznany błąd.
|
||||
reader-read-aloud-error-connection = Nie można się połączyć z usługą Read Aloud. Sprawdź swoje połączenie internetowe.
|
||||
reader-read-aloud-error-daily-limit-exceeded = You have exceeded your daily limit for { -app-name } Voices.
|
||||
reader-read-aloud-error-daily-limit-exceeded = Osiągnięto twój dzienny limit dla głosów { -app-name }.
|
||||
reader-read-aloud-retry = Ponów
|
||||
reader-read-aloud-first-run-title = Wybierz swój preferowany głos Read Aloud:
|
||||
reader-read-aloud-first-run-voice-tier-local-bullet-os-provided = Głosy dostarczone przez Twój system operacyjny
|
||||
|
|
@ -252,9 +252,9 @@ reader-read-aloud-first-run-voice-tier-premium-bullet-multilingual = Wsparcie wi
|
|||
reader-read-aloud-first-run-voice-tier-premium-bullet-external-processing = Source text is processed by external text-to-speech providers
|
||||
reader-read-aloud-first-run-voice-tier-premium-bullet-subscription-minutes = { -subscription-name } plans include monthly Premium Voice minutes
|
||||
reader-read-aloud-first-run-voice-tier-premium-bullet-beta-credits = Request credits for additional minutes during beta
|
||||
reader-read-aloud-sample-text = I am the local voice { $name }
|
||||
reader-read-aloud-sample-text = Jestem głosem lokalnym { $name }
|
||||
reader-read-aloud-voices-none-available = Brak dostępnych głosów
|
||||
reader-read-aloud-first-run-no-voices-for-language = { $tier } Voices do not support { $language }.
|
||||
reader-read-aloud-first-run-no-voices-for-language = { $tier } Głosy nie obsługują { $language }.
|
||||
reader-read-aloud-region = Region
|
||||
reader-read-aloud-region-auto = Automatycznie
|
||||
reader-read-aloud-annotation-popup-move = Move annotation by sentence
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Poprzedni
|
||||
general-next = Następny
|
||||
general-learn-more = Dowiedz się więcej
|
||||
general-more-information = Więcej informacji
|
||||
general-warning = Ostrzeżenie
|
||||
general-type-to-continue = Wpisz “{ $text }”, aby kontynuować.
|
||||
general-continue = Dalej
|
||||
|
|
@ -158,11 +159,11 @@ zotero-toolbar-tabs-scroll-backwards =
|
|||
.title = Przewiń wstecz
|
||||
toolbar-add-attachment =
|
||||
.tooltiptext = { add-attachment }
|
||||
recently-read = Recently Read
|
||||
recently-read = Ostatnio czytane
|
||||
collections-menu-show-recently-read =
|
||||
.label = Show { recently-read }
|
||||
.label = Pokaż { recently-read }
|
||||
item-menu-remove-from-recently-read =
|
||||
.label = Remove from { recently-read }…
|
||||
.label = Usuń z { recently-read }…
|
||||
collections-menu-rename-collection =
|
||||
.label = Zmień nazwę kolekcji
|
||||
collections-menu-edit-saved-search =
|
||||
|
|
@ -281,7 +282,7 @@ import-online-wrong-credentials = Logowanie do { $targetApp } nie powiodło się
|
|||
import-online-blocked-by-plugin = Importowanie nie może być kontynuowane z zainstalowaną wtyczką { $plugin }. Proszę, wyłącz tę wtyczkę i spróbuj ponownie.
|
||||
import-online-relink-only =
|
||||
.label = Zlinkuj ponownie cytowania Mendeley Desktop
|
||||
import-online-relink-kb = Więcej informacji
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } nie może się połączyć z { $targetApp }. Proszę, sprawdź swoje połączenie internetowe i spróbuj ponownie.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
@ -291,9 +292,9 @@ items-table-cell-notes =
|
|||
[many] { $count } notatek
|
||||
*[other] { $count } notatek
|
||||
}
|
||||
items-column-added-by = Added By
|
||||
items-column-modified-by = Modified By
|
||||
items-column-last-read = Last Read
|
||||
items-column-added-by = Dodany przez
|
||||
items-column-modified-by = Zmodyfikowany przez
|
||||
items-column-last-read = Ostatnio czytany
|
||||
report-error =
|
||||
.label = Zgłoś błąd...
|
||||
rtfScan-wizard =
|
||||
|
|
@ -618,8 +619,8 @@ attachment-preview-placeholder = Brak załącznika do pokazania w podglądzie
|
|||
attachment-rename-from-parent =
|
||||
.tooltiptext = Zmień nazwę pliku tak, aby odpowiadał elementowi nadrzędnemu
|
||||
account-log-in = Zaloguj się
|
||||
account-not-logged-in-text = Log in to your Zotero account to sync your data.
|
||||
account-error-login-session-expired = Your login session has expired. Please try again.
|
||||
account-not-logged-in-text = Zaloguj się do swojego konta Zotero, aby zsynchronizować swoje dane.
|
||||
account-error-login-session-expired = Twoja sesja logowania wygasła. Proszę spróbuj ponownie.
|
||||
toggle-preview =
|
||||
.label =
|
||||
{ $type ->
|
||||
|
|
@ -736,7 +737,7 @@ search-conditions-dateModified = Data modyfikacji
|
|||
search-conditions-fulltextContent = Zawartość załącznika
|
||||
search-conditions-programmingLanguage = Język programowania
|
||||
search-conditions-fileTypeID = Typ pliku załącznika
|
||||
search-conditions-lastRead = Attachment Last Read
|
||||
search-conditions-lastRead = Ostatnio czytany załącznik
|
||||
search-conditions-annotationText = Tekst adnotacji
|
||||
search-conditions-annotationComment = Komentarz adnotacji
|
||||
search-conditions-anyField = Dowolne pole
|
||||
|
|
@ -806,6 +807,6 @@ menu-normalize-attachment-titles =
|
|||
normalize-attachment-titles-title = Normalizuj nazwy załączników
|
||||
normalize-attachment-titles-text = { -app-name } automatycznie zmienia nazwy plików na dysku z użyciem metadanych elementu nadrzędnego, ale używa osobnych, prostszych nazw jak “Full Text PDF”, “Preprint PDF”, or “PDF” dla głównych załączników, aby utrzymać bardziej klarowną listę elementów i zapobiec duplikowaniu informacji.W starszych wersjach { -app-name }, podobnie jak używając różnych wtyczek, nazwy plików załączników mogą być niepotrzebnie zmieniane, aby odpowiadały nazwom plików.Czy chcesz zaktualizować wybrane załączniki, aby użyć ich prostszych nazw? Zostaną zmienione tylko główne załączniki z nazwami, które odpowiadają nazwie pliku.
|
||||
banner-close-button =
|
||||
.aria-label = Dismiss notification
|
||||
.aria-label = Odrzuć powiadomienie
|
||||
plugins-blocked-plugin =
|
||||
.message = Ta wtyczka została wyłączona przez { -app-name }.
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Anterior
|
||||
general-next = Próximo
|
||||
general-learn-more = Saber Mais
|
||||
general-more-information = Mais informações
|
||||
general-warning = Aviso
|
||||
general-type-to-continue = Digite “{ $text }” para continuar.
|
||||
general-continue = Continuar
|
||||
|
|
@ -280,7 +281,7 @@ import-online-wrong-credentials = Login para { $targetApp } falhou. Por favor, r
|
|||
import-online-blocked-by-plugin = A importação não pode continuar com o { $plugin } instalado. Por favor, desabilite a extensão e tente novamente.
|
||||
import-online-relink-only =
|
||||
.label = Religar citações do Mendeley Desktop
|
||||
import-online-relink-kb = Mais informações
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } não conseguiu se conectar ao { $targetApp }. Por favor, verifique sua conexão com a internet e tente novamente.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Anterior
|
||||
general-next = Seguinte
|
||||
general-learn-more = Saber Mais
|
||||
general-more-information = Mais Informação
|
||||
general-warning = Aviso
|
||||
general-type-to-continue = Digite “{ $text }” para continuar.
|
||||
general-continue = Continuar
|
||||
|
|
@ -280,7 +281,7 @@ import-online-wrong-credentials = Login para { $targetApp } falhou. Por favor, r
|
|||
import-online-blocked-by-plugin = A importação não pode continuar com o { $plugin } instalado. Por favor, desabilite a extensão e tente novamente.
|
||||
import-online-relink-only =
|
||||
.label = Religar citações do Mendeley Desktop
|
||||
import-online-relink-kb = Mais Informação
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } não conseguiu se conectar ao { $targetApp }. Por favor, verifique sua conexão com a internet e tente novamente.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Anterior
|
||||
general-next = Următoarea
|
||||
general-learn-more = Învață mai multe
|
||||
general-more-information = Mai multe informații
|
||||
general-warning = Avertisment
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Continuă
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Mai multe informații
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = и др.
|
|||
general-previous = Предыдущий
|
||||
general-next = Следующий
|
||||
general-learn-more = Узнать больше
|
||||
general-more-information = Дополнительные сведения
|
||||
general-warning = Внимание
|
||||
general-type-to-continue = Введите “{ $text }”, чтобы продолжить.
|
||||
general-continue = Продолжить
|
||||
|
|
@ -281,7 +282,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Заменить ссылки на цитирования из Mendeley Desktop
|
||||
import-online-relink-kb = Дополнительные сведения
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } не смог подсоединиться к { $targetApp }. Пожалуйста, проверьте своё подключение к интернету и попробуйте снова.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = Viac informácií
|
||||
general-warning = Upozornenie
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Pokračovať
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Viac informácií
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = idr.
|
|||
general-previous = Nazaj
|
||||
general-next = Naprej
|
||||
general-learn-more = Več o tem
|
||||
general-more-information = Podrobnosti
|
||||
general-warning = Opozorilo
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Nadaljuj
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Ponovno poveži citate Mendeley Desktop
|
||||
import-online-relink-kb = Podrobnosti
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = и сар.
|
|||
general-previous = Претходно
|
||||
general-next = Следеће
|
||||
general-learn-more = Сазнајте више
|
||||
general-more-information = Више података
|
||||
general-warning = Упозорење
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Настави
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Није успела пријава на { $t
|
|||
import-online-blocked-by-plugin = Не можете да наставите увоз док је покренут прикључак { $plugin }. Искључите овај прикључак и покушајте поново.
|
||||
import-online-relink-only =
|
||||
.label = Поново повежи цитате из Мендељејева
|
||||
import-online-relink-kb = Више података
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } не може да се повеже на { $targetApp }. Проверите везу са интернетом и покушајте поново.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = m. fl.
|
|||
general-previous = Föregående
|
||||
general-next = Nästa
|
||||
general-learn-more = Läs mer
|
||||
general-more-information = Mer information
|
||||
general-warning = Varning
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Fortsätt
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Mer information
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = மற்றும் பலர்.
|
|||
general-previous = முந்தையது
|
||||
general-next = அடுத்தது
|
||||
general-learn-more = மேலும் அறிக
|
||||
general-more-information = மேலும் செய்தி
|
||||
general-warning = முன்னறிவிப்பு
|
||||
general-type-to-continue = தொடர “{ $text }” எனத் தட்டச்சு செய்.
|
||||
general-continue = தொடரவும்
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = மேலும் செய்தி
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = More Information
|
||||
general-warning = คำเตือน
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Continue
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = More Information
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = vd.
|
|||
general-previous = Önceki
|
||||
general-next = Sonraki
|
||||
general-learn-more = Daha Öğren
|
||||
general-more-information = Daha Fazla Bilgi
|
||||
general-warning = Uyarı
|
||||
general-type-to-continue = Devam etmek için “{ $text }” yazın.
|
||||
general-continue = Devam et
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = { $targetApp } için oturum açılamadı. Lüt
|
|||
import-online-blocked-by-plugin = { $plugin } kuruluyken içeri aktarma işlemi sürdürülemez. Lütfen bu eklentiyi devre dışı bırakın ve yeniden deneyin.
|
||||
import-online-relink-only =
|
||||
.label = Mendeley Desktop alıntılarını yeniden bağlantıla
|
||||
import-online-relink-kb = Daha Fazla Bilgi
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name }, { $targetApp } uygulamasına bağlanamadı. Lütfen internet bağlantınızı kontrol edip tekrar deneyin.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = Додаткова інформація
|
||||
general-warning = Попередження
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Продовжити
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = Додаткова інформація
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = et al.
|
|||
general-previous = Previous
|
||||
general-next = Next
|
||||
general-learn-more = Learn More
|
||||
general-more-information = More Information
|
||||
general-warning = Cảnh báo
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = Continue
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = Login to { $targetApp } failed. Please re-ente
|
|||
import-online-blocked-by-plugin = The import cannot continue with { $plugin } installed. Please disable this plugin and try again.
|
||||
import-online-relink-only =
|
||||
.label = Relink Mendeley Desktop citations
|
||||
import-online-relink-kb = More Information
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } could not connect to { $targetApp }. Please check your internet connection and try again.
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ preferences-appearance-title = 外观和语言
|
|||
preferences-auto-recognize-files =
|
||||
.label = 自动检索 PDF 和电子书的元数据
|
||||
preferences-file-renaming-title = 文件重命名
|
||||
preferences-file-renaming-intro = { -app-name } 可以根据上级条目的元数据(如标题、作者等)自动重命名文件,并在你进行更改时保持文件名同步。下载的文件始终会根据父项进行初始命名。
|
||||
preferences-file-renaming-intro = { -app-name } 可以根据上级条目的元数据(如标题、作者等)自动重命名文件,并在你进行更改时保持文件名同步。下载的文件始终会根据上级条目进行初始命名。
|
||||
preferences-file-renaming-configure-button =
|
||||
.label = 配置文件重命名…
|
||||
preferences-attachment-titles-title = 附件标题
|
||||
|
|
@ -111,7 +111,7 @@ preferences-account-cancel-button =
|
|||
preferences-account-logged-out-status =
|
||||
.value = (已退出登录)
|
||||
preferences-account-email-label =
|
||||
.value = 邮箱:
|
||||
.value = 邮箱:
|
||||
preferences-account-switch-accounts =
|
||||
.label = 切换账户…
|
||||
preferences-account-switch-text = 切换到其他账户将删除此计算机中所有的 { -app-name } 数据。在继续之前,请确保您想要保留的所有数据和文件都已与 “{ $username }” 账户同步,或者您已经备份 { -app-name } 数据目录。
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = 等
|
|||
general-previous = 前一页
|
||||
general-next = 下一步
|
||||
general-learn-more = 了解更多
|
||||
general-more-information = 更多信息
|
||||
general-warning = 警告
|
||||
general-type-to-continue = 输入 “{ $text }” 以继续
|
||||
general-continue = 继续
|
||||
|
|
@ -278,7 +279,7 @@ import-online-wrong-credentials = 登录 { $targetApp } 失败。请重新输入
|
|||
import-online-blocked-by-plugin = 安装了 { $plugin } 后导入无法继续。请禁用此插件并重试。
|
||||
import-online-relink-only =
|
||||
.label = 重新链接 Mendeley 桌面程序参考文献
|
||||
import-online-relink-kb = 更多信息
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } 无法连接到 { $targetApp }。请检查您的网络连接并重试。
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ general-et-al = …等
|
|||
general-previous = 上一步
|
||||
general-next = 下一步
|
||||
general-learn-more = 了解更多
|
||||
general-more-information = 更多資訊
|
||||
general-warning = 警告
|
||||
general-type-to-continue = Type “{ $text }” to continue.
|
||||
general-continue = 繼續
|
||||
|
|
@ -279,7 +280,7 @@ import-online-wrong-credentials = 登入 { $targetApp } 失敗。請重新輸入
|
|||
import-online-blocked-by-plugin = 在 { $plugin } 裝著的時候無法繼續匯入,請停用這個附加元件,然後再試一次。
|
||||
import-online-relink-only =
|
||||
.label = 重新連結Mendeley桌面應用程式引文
|
||||
import-online-relink-kb = 更多資訊
|
||||
import-online-relink-kb = { general-more-information }
|
||||
import-online-connection-error = { -app-name } 無法連結到 { $targetApp }。請檢查您的網路連線後再試一次。
|
||||
items-table-cell-notes =
|
||||
.aria-label =
|
||||
|
|
|
|||
5
chrome/skin/default/zotero/16/universal/related.svg
Normal file
5
chrome/skin/default/zotero/16/universal/related.svg
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="link">
|
||||
<path id="Vector" d="M12.5 13H8.5C7.57174 13 6.6815 12.6313 6.02513 11.9749C5.36875 11.3185 5 10.4283 5 9.5C5 8.57174 5.36875 7.6815 6.02513 7.02513C6.6815 6.36875 7.57174 6 8.5 6H8.908C9.03111 6.32197 9.03111 6.67803 8.908 7H8.5C7.83696 7 7.20107 7.26339 6.73223 7.73223C6.26339 8.20107 6 8.83696 6 9.5C6 10.163 6.26339 10.7989 6.73223 11.2678C7.20107 11.7366 7.83696 12 8.5 12H12.5C13.163 12 13.7989 11.7366 14.2678 11.2678C14.7366 10.7989 15 10.163 15 9.5C15 8.83696 14.7366 8.20107 14.2678 7.73223C13.7989 7.26339 13.163 7 12.5 7H11.953C11.9778 6.83432 11.9935 6.6674 12 6.5C11.9935 6.3326 11.9778 6.16568 11.953 6H12.5C13.4283 6 14.3185 6.36875 14.9749 7.02513C15.6313 7.6815 16 8.57174 16 9.5C16 10.4283 15.6313 11.3185 14.9749 11.9749C14.3185 12.6313 13.4283 13 12.5 13ZM0 6.5C0 7.42826 0.368749 8.3185 1.02513 8.97487C1.6815 9.63125 2.57174 10 3.5 10H4.047C4.02219 9.83432 4.0065 9.6674 4 9.5C4.0065 9.3326 4.02219 9.16568 4.047 9H3.5C2.83696 9 2.20107 8.73661 1.73223 8.26777C1.26339 7.79893 1 7.16304 1 6.5C1 5.83696 1.26339 5.20107 1.73223 4.73223C2.20107 4.26339 2.83696 4 3.5 4H7.5C8.16304 4 8.79893 4.26339 9.26777 4.73223C9.73661 5.20107 10 5.83696 10 6.5C10 7.16304 9.73661 7.79893 9.26777 8.26777C8.79893 8.73661 8.16304 9 7.5 9H7.092C6.96889 9.32197 6.96889 9.67803 7.092 10H7.5C8.42826 10 9.3185 9.63125 9.97487 8.97487C10.6313 8.3185 11 7.42826 11 6.5C11 5.57174 10.6313 4.6815 9.97487 4.02513C9.3185 3.36875 8.42826 3 7.5 3H3.5C2.57174 3 1.6815 3.36875 1.02513 4.02513C0.368749 4.6815 0 5.57174 0 6.5Z" fill="context-fill"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
3
chrome/skin/default/zotero/20/universal/account.svg
Normal file
3
chrome/skin/default/zotero/20/universal/account.svg
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10 10C14.4183 10 18 13.5817 18 18V19H2V18C2 13.5817 5.58172 10 10 10ZM10 11.25C6.35579 11.25 3.3874 14.1379 3.25586 17.75H16.7441C16.6126 14.1379 13.6442 11.25 10 11.25ZM10 1C12.2091 1 14 2.79086 14 5C14 7.20914 12.2091 9 10 9C7.79086 9 6 7.20914 6 5C6 2.79086 7.79086 1 10 1ZM10 2.25C8.48122 2.25 7.25 3.48122 7.25 5C7.25 6.51878 8.48122 7.75 10 7.75C11.5188 7.75 12.75 6.51878 12.75 5C12.75 3.48122 11.5188 2.25 10 2.25Z" fill="context-fill"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 559 B |
|
|
@ -68,6 +68,9 @@ pref("extensions.zotero.feeds.defaultCleanupUnreadAfter", 30);
|
|||
pref("extensions.zotero.backup.numBackups", 2);
|
||||
pref("extensions.zotero.backup.interval", 1440);
|
||||
|
||||
pref("extensions.zotero.vacuum.interval", 14); // days
|
||||
pref("extensions.zotero.vacuum.freelistThreshold", 10); // percentage of free pages to trigger
|
||||
|
||||
pref("extensions.zotero.lastCreatorFieldMode",0);
|
||||
pref("extensions.zotero.lastAbstractExpand", true);
|
||||
pref("extensions.zotero.lastRenameAssociatedFile", false);
|
||||
|
|
|
|||
2
reader
2
reader
|
|
@ -1 +1 @@
|
|||
Subproject commit 7732d4b99967901b51a61ed9deeb4d7062634f37
|
||||
Subproject commit a3ab660769013b8d26590ade93f942cc8fdd4b3e
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue