Localizes most of the strings marked "todo: localize"

This commit is contained in:
gracile-fr 2013-03-04 03:44:14 +01:00
parent d69ffd2ad8
commit eb7b301073
15 changed files with 108 additions and 94 deletions

View file

@ -51,7 +51,7 @@
<label class="zotero-text-link" href="http://www.zotero.org/support/credits_and_acknowledgments" value="&zotero.moreCreditsAndAcknowledgements;"/>
</vbox>
<vbox id="column2">
<label class="subhead" value="Citation &amp; Bibliography Processing"/>
<label class="subhead" value="&zotero.citationProcessing;"/>
<vbox class="subcontent">
<label class="zotero-text-link" href="http://citationstyles.org/" value="Citation Style Language"/>
<label class="zotero-text-link" href="http://bitbucket.org/fbennett/citeproc-js/" value="citeproc-js (Frank Bennett)"/>

View file

@ -214,7 +214,8 @@
// Access date
if (this.displayAccessed) {
this._id("accessed-label").value = Zotero.getString('itemFields.accessDate')+":";
this._id("accessed-label").value = Zotero.getString('itemFields.accessDate')
+ Zotero.getString('punctuation.colon');
this._id("accessed").value = Zotero.Date.sqlToDate(
this.item.getField('accessDate'), true
).toLocaleString();
@ -233,12 +234,11 @@
if (this.item.attachmentLinkMode
!= Zotero.Attachments.LINK_MODE_LINKED_URL
&& this.displayFileName) {
// TODO: localize
var fileName = this.item.getFilename();
if (fileName) {
// TODO: localize
this._id("fileName-label").value = "Filename:";
this._id("fileName-label").value = Zotero.getString('pane.item.attachments.filename')
+ Zotero.getString('punctuation.colon');
this._id("fileName").value = fileName;
fileNameRow.hidden = false;
}
@ -255,8 +255,8 @@
var pages = Zotero.Fulltext.getPages(this.item.id);
var pages = pages ? pages.total : null;
if (pages) {
// TODO: localize colon
this._id("pages-label").value = Zotero.getString('itemFields.pages') + ':';
this._id("pages-label").value = Zotero.getString('itemFields.pages')
+ Zotero.getString('punctuation.colon');
this._id("pages").value = pages;
pagesRow.hidden = false;
}
@ -269,7 +269,8 @@
}
if (this.displayDateModified) {
this._id("dateModified-label").value = Zotero.getString('itemFields.dateModified')+':';
this._id("dateModified-label").value = Zotero.getString('itemFields.dateModified')
+ Zotero.getString('punctuation.colon');
var mtime = this.item.attachmentModificationTime;
if (mtime) {
this._id("dateModified").value = new Date(mtime).toLocaleString();
@ -476,7 +477,8 @@
str = 'general.yes';
break;
}
this._id("index-status-label").value = Zotero.getString('fulltext.indexState.indexed') + ':';
this._id("index-status-label").value = Zotero.getString('fulltext.indexState.indexed')
+ Zotero.getString('punctuation.colon');
indexStatus.value = Zotero.getString(str);
// Reindex button tooltip (string stored in zotero.properties)

View file

@ -358,7 +358,7 @@
case 'attachment':
case 'note':
case 'storagefile':
objbox.buttonCaption = 'Choose this version';
objbox.buttonCaption = Zotero.getString('sync.conflict.chooseThisVersion');
break;
}
@ -478,7 +478,7 @@
<xul:box id="object-placeholder"/>
<xul:hbox id="delete-box" hidden="true" flex="1"
onclick="document.getBindingParent(this).chooseObj(this)">
<xul:label value="Deleted"/> <!-- TODO: localize -->
<xul:label value="zotero.merge.deleted"/>
</xul:hbox>
</xul:groupbox>
</content>

View file

@ -410,14 +410,14 @@
<method name="updateTagsSummary">
<body>
<![CDATA[
// TODO: localize
var v = this.id('tags').summary;
if (!v || v == "") {
v = "[" + Zotero.getString('pane.item.noteEditor.clickHere') + "]";
}
this.id('tagsLabel').value = Zotero.getString('pane.item.tags');
this.id('tagsLabel').value = Zotero.getString('itemFields.tags')
+ Zotero.getString('punctuation.colon');
this.id('tagsClick').value = v;
]]>
</body>
@ -446,7 +446,8 @@
v = "[" + Zotero.getString('pane.item.noteEditor.clickHere') + "]";
}
this.id('seeAlsoLabel').value = Zotero.getString('pane.item.related');
this.id('seeAlsoLabel').value = Zotero.getString('itemFields.related')
+ Zotero.getString('punctuation.colon');
this.id('seeAlsoClick').value = v;
]]>
</body>

View file

@ -44,8 +44,7 @@ var Zotero_Duplicates_Pane = new function () {
}
if (!item.isRegularItem() || [1,14].indexOf(item.itemTypeID) != -1) {
// TODO: localize
var msg = "Only top-level full items can be merged.";
var msg = Zotero.getString('pane.item.duplicates.onlyTopLevel');
ZoteroPane_Local.setItemPaneMessage(msg);
return false;
}
@ -57,8 +56,7 @@ var Zotero_Duplicates_Pane = new function () {
var msg = Zotero.getString('pane.item.selected.multiple', items.length);
}
else {
// TODO: localize
var msg = "Merged items must all be of the same item type.";
var msg = Zotero.getString('pane.item.duplicates.onlySameItemType');
}
ZoteroPane_Local.setItemPaneMessage(msg);
return false;
@ -112,7 +110,7 @@ var Zotero_Duplicates_Pane = new function () {
}, 0);
}
button.label = "Merge " + (otherItems.length + 1) + " items";
button.label = Zotero.getString('pane.item.duplicates.mergeItems', (otherItems.length + 1));
itembox.hiddenFields = diff ? [] : ['dateAdded', 'dateModified'];
fieldSelect.hidden = !diff;

View file

@ -266,15 +266,15 @@ var Zotero_Merge_Window = new function () {
function _setInstructionsString(buttonName) {
switch (_mergeGroup.type) {
case 'storagefile':
var msg = "The following file has been changed in multiple locations.";
var msg = Zotero.getString('sync.conflict.fileChanged');
break;
default:
// TODO: localize and maybe not always call it 'item'
var msg = "The following item has been changed in multiple locations.";
// TODO: cf. localization: maybe not always call it 'item'
var msg = Zotero.getString('sync.conflict.itemChanged');
}
msg += " Choose the version you would like to keep, and then click " + buttonName + ".";
msg += Zotero.getString('sync.conflict.chooseVersionToKeep', buttonName);
document.getElementById('zotero-merge-instructions').value = msg;
}

View file

@ -28,7 +28,7 @@
<?xml-stylesheet href="chrome://zotero/skin/zotero.css" type="text/css"?>
<?xml-stylesheet href="chrome://zotero/skin/merge.css" type="text/css"?>
<!-- <!DOCTYPE window SYSTEM "chrome://zotero/locale/merge.dtd"> -->
<!DOCTYPE window SYSTEM "chrome://zotero/locale/merge.dtd">
<wizard
id="zotero-merge-window"
@ -44,13 +44,13 @@
<wizardpage onpageshow="Zotero_Merge_Window.init()"
onpagerewound="Zotero_Merge_Window.onBack(); return false"
onpageadvanced="return Zotero_Merge_Window.onNext()"
label="Conflict Resolution">
label="&zotero.merge.title;">
<description id="zotero-merge-instructions"/>
<zoteromergegroup flex="1"/>
<separator class="thin"/>
<hbox id="zotero-step-count">
<label id="zotero-merge-num-objects"/>
<label value="of"/>
<label value="&zotero.merge.of;"/>
<label id="zotero-merge-total-objects"/>
</hbox>
</wizardpage>

View file

@ -441,58 +441,49 @@ Zotero.File = new function(){
}
// TODO: localize
this.checkFileAccessError = function (e, file, operation) {
if (file) {
var str = "The file '" + file.path + "' ";
var str = Zotero.getString('file.accessError.theFile', file.path);
}
else {
var str = "A file ";
var str = Zotero.getString('file.accessError.aFile');
}
switch (operation) {
case 'create':
var opWord = "created";
var opWord = Zotero.getString('file.accessError.created');
break;
case 'update':
var opWord = "updated";
var opWord = Zotero.getString('file.accessError.updated');
break;
case 'delete':
var opWord = "deleted";
var opWord = Zotero.getString('file.accessError.deleted');
break;
default:
var opWord = "updated";
var opWord = Zotero.getString('file.accessError.updated');
}
if (e.name == 'NS_ERROR_FILE_ACCESS_DENIED' || e.name == 'NS_ERROR_FILE_IS_LOCKED'
// Shows up on some Windows systems
|| e.name == 'NS_ERROR_FAILURE') {
Zotero.debug(e);
// TODO: localize
str = str + "cannot be " + opWord + ".";
var checkFileWindows = "Check that the file is not currently "
+ "in use and that it is not marked as read-only. To check "
+ "all files in your Zotero data directory, right-click on "
+ "the 'zotero' directory, click Properties, clear "
+ "the Read-Only checkbox, and apply the change to all folders "
+ "and files in the directory.";
var checkFileOther = "Check that the file is not currently "
+ "in use and that its permissions allow write access.";
str = str + Zotero.getString('file.accessError.cannotBe') + opWord + ".";
var checkFileWindows = Zotero.getString('file.accessError.message.windows');
var checkFileOther = Zotero.getString('file.accessError.message.other');
var msg = str + " "
+ (Zotero.isWin ? checkFileWindows : checkFileOther)
+ "\n\n"
+ "Restarting your computer or disabling security "
+ "software may also help.";
+ Zotero.getString('file.accessError.restart');
if (operation == 'create') {
var e = new Zotero.Error(
msg,
0,
{
dialogButtonText: "Show Parent Directory",
dialogButtonText: Zotero.getString('file.accessError.showParentDir'),
dialogButtonCallback: function () {
try {
file.parent.QueryInterface(Components.interfaces.nsILocalFile).reveal();
@ -510,7 +501,7 @@ Zotero.File = new function(){
msg,
0,
{
dialogButtonText: "Show File",
dialogButtonText: Zotero.getString('locate.showFile.label'),
dialogButtonCallback: function () {
try {
file.QueryInterface(Components.interfaces.nsILocalFile);

View file

@ -53,9 +53,8 @@ Zotero.Sync.Storage = new function () {
this.ERROR_FILE_MISSING_AFTER_UPLOAD = -16;
// TEMP
// TODO: localize
this.__defineGetter__("defaultError", function () "A file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, restart " + Zotero.appName + " and/or your computer and try again. If you continue to receive the message, submit an error report and post the Report ID to a new thread in the Zotero Forums.");
this.__defineGetter__("defaultErrorRestart", function () "A file sync error occurred. Please restart " + Zotero.appName + " and/or your computer and try syncing again.\n\nIf you receive this message repeatedly, submit an error report and post the Report ID to a new thread in the Zotero Forums.");
this.__defineGetter__("defaultError", function () Zotero.getString('sync.storage.error.default', Zotero.appName));
this.__defineGetter__("defaultErrorRestart", function () Zotero.getString('sync.storage.error.defaultRestart', Zotero.appName));
//
// Public properties
@ -1189,8 +1188,7 @@ Zotero.Sync.Storage = new function () {
// but log a warning and skip the file
else if (e.name == "NS_ERROR_FAILURE" && Zotero.isLinux && destFile.leafName.length > 130) {
Zotero.debug(e);
var msg = "Error creating file '" + destFile.leafName + "'\n\n"
+ "See http://www.zotero.org/support/kb/encrypted_filenames for more information.";
var msg = Zotero.getString('sync.storage.error.encryptedFilenames', destFile.leafName);
Components.utils.reportError(msg);
return;
}
@ -1394,9 +1392,7 @@ Zotero.Sync.Storage = new function () {
// can result in a lower limit -- not much we can do about this,
// but log a warning and skip the file
else if (e.name == "NS_ERROR_FAILURE" && Zotero.isLinux && destFile.leafName.length > 130) {
// TODO: localize
var msg = "Error creating file '" + destFile.leafName + "'. "
+ "See http://www.zotero.org/support/kb/encrypted_filenames for more information.";
var msg = Zotero.getString('sync.storage.error.encryptedFilenames', destFile.leafName);
Components.utils.reportError(msg);
continue;
}
@ -1460,9 +1456,7 @@ Zotero.Sync.Storage = new function () {
// See above
if (e.name == "NS_ERROR_FAILURE" && Zotero.isLinux && destFile.leafName.length > 130) {
Zotero.debug(e);
// TODO: localize
var msg = "Error creating file '" + destFile.leafName + "'. "
+ "See http://www.zotero.org/support/kb/encrypted_filenames for more information.";
var msg = Zotero.getString('sync.storage.error.encryptedFilenames', destFile.leafName);
Components.utils.reportError(msg);
continue;
}

View file

@ -26,7 +26,9 @@
Zotero.Sync.Storage.WebDAV = (function () {
// TEMP
// TODO: localize
//This doesn't work (Localized string not available for sync.storage...):
//var _defaultError = Zotero.getString('sync.storage.error.webdav.default');
//var _defaultErrorRestart = Zotero.getString('sync.storage.error.webdav.defaultRestart', Zotero.appName);
var _defaultError = "A WebDAV file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.";
var _defaultErrorRestart = "A WebDAV file sync error occurred. Please restart " + Zotero.appName + " and try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.";
@ -1409,23 +1411,15 @@ Zotero.Sync.Storage.WebDAV = (function () {
return false;
case Zotero.Sync.Storage.ERROR_FILE_MISSING_AFTER_UPLOAD:
// TODO: localize
var errorTitle = Zotero.getString("general.warning");
var errorMessage = "A potential problem was found with your WebDAV server.\n\n"
+ "An uploaded file was not immediately available for download. There may be a "
+ "short delay between when you upload files and when they become available, "
+ "particularly if you are using a cloud storage service.\n\n"
+ "If Zotero file syncing appears to work normally, "
+ "you can ignore this message. "
+ "If you have trouble, please post to the Zotero Forums.";
var errorMessage = Zotero.getString('sync.storage.error.webdav.fileMissingAfterUpload');
Zotero.Prefs.set("sync.storage.verified", true);
break;
case Zotero.Sync.Storage.ERROR_SERVER_ERROR:
// TODO: localize
var errorTitle = "WebDAV Server Configuration Error";
var errorMessage = "Your WebDAV server returned an internal error."
+ "\n\n" + Zotero.getString('sync.storage.error.checkFileSyncSettings');
var errorTitle = Zotero.getString('sync.storage.error.webdav.serverConfig.title');
var errorMessage = Zotero.getString('sync.storage.error.webdav.serverConfig')
+ Zotero.getString('sync.storage.error.checkFileSyncSettings');
break;
case Zotero.Sync.Storage.ERROR_UNKNOWN:

View file

@ -58,10 +58,7 @@ Zotero.Sync.Storage.ZFS = (function () {
catch (e) {
Zotero.debug("Response headers unavailable");
}
// TODO: localize?
var msg = "A file sync error occurred. Please restart " + Zotero.appName + " and/or your computer and try syncing again.\n\n"
+ "If the error persists, there may be a problem with either your computer or your network: security software, proxy server, VPN, etc. "
+ "Try disabling any security/firewall software you're using or, if this is a laptop, try from a different network.";
var msg = Zotero.getString('sync.storage.error.zfs.restart', Zotero.appName);
throw msg;
}
info.filename = req.getResponseHeader('X-Zotero-Filename');
@ -268,10 +265,8 @@ Zotero.Sync.Storage.ZFS = (function () {
var retry = e.xmlhttp.getResponseHeader('Retry-After');
if (retry) {
var minutes = Math.round(retry / 60);
// TODO: localize
var e = new Zotero.Error(
"You have too many queued uploads. "
+ "Please try again in " + minutes + " minutes.",
Zotero.getString('sync.storage.error.zfs.tooManyQueuedUploads', minutes),
"ZFS_UPLOAD_QUEUE_LIMIT"
);
throw e;
@ -301,11 +296,10 @@ Zotero.Sync.Storage.ZFS = (function () {
}
}
// TODO: localize
text += "\n\n" + filename + " (" + Math.round(file.fileSize / 1024) + "KB)";
var e = new Zotero.Error(
"The file '" + filename + "' would exceed your Zotero File Storage quota",
Zotero.getString('sync.storage.error.zfs.fileWouldExceedQuota', filename),
"ZFS_OVER_QUOTA",
{
dialogText: text,

View file

@ -1275,8 +1275,7 @@ var ZoteroPane = new function()
if (itemGroup.isDuplicates()) {
if (!itemGroup.editable) {
if (count) {
// TODO: localize
var msg = "Library write access is required to merge items.";
var msg = Zotero.getString('pane.item.duplicates.writeAccessRequired');
}
else {
var msg = Zotero.getString('pane.item.selected.zero');
@ -1302,7 +1301,7 @@ var ZoteroPane = new function()
Zotero_Duplicates_Pane.setItems(this.getSelectedItems(), displayNumItemsOnTypeError);
}
else {
var msg = Zotero.getString('pane.item.selectToMerge');
var msg = Zotero.getString('pane.item.duplicates.selectToMerge');
this.setItemPaneMessage(msg);
}
}
@ -1415,12 +1414,10 @@ var ZoteroPane = new function()
+ (ps.BUTTON_POS_1) * (ps.BUTTON_TITLE_CANCEL);
var index = ps.confirmEx(
null,
// TODO: localize
"PDF Tools Not Installed",
"To use this feature, you must first install the PDF tools in "
+ "the Zotero preferences.",
Zotero.getString('pane.item.attachments.PDF.installTools.title'),
Zotero.getString('pane.item.attachments.PDF.installTools.text'),
buttonFlags,
"Open Preferences",
Zotero.getString('general.openPreferences'),
null, null, null, {}
);
if (index == 0) {
@ -2938,9 +2935,9 @@ var ZoteroPane = new function()
var input = {};
var check = {value : false};
// TODO: Localize
// TODO: Allow title to be specified?
var result = ps.prompt(null, "Attach Link to URI", "Enter a URI:", input, "", {});
var result = ps.prompt(null, Zotero.getString('pane.items.attach.link.uri.title'),
Zotero.getString('pane.items.attach.link.uri'), input, "", {});
if (!result || !input.value) return false;
// Create a new attachment

View file

@ -10,3 +10,4 @@
<!ENTITY zotero.thanks "Special Thanks:">
<!ENTITY zotero.about.close "Close">
<!ENTITY zotero.moreCreditsAndAcknowledgements "More Credits &amp; Acknowledgements">
<!ENTITY zotero.citationProcessing "Citation &amp; Bibliography Processing">

View file

@ -0,0 +1,3 @@
<!ENTITY zotero.merge.title "Conflict Resolution">
<!ENTITY zotero.merge.of "of">
<!ENTITY zotero.merge.deleted "Deleted">

View file

@ -43,6 +43,7 @@ general.quit = Quit
general.useDefault = Use Default
general.openDocumentation = Open Documentation
general.numMore = %S more…
general.openPreferences = Open Preferences
general.operationInProgress = A Zotero operation is currently in progress.
general.operationInProgress.waitUntilFinished = Please wait until it has finished.
@ -167,6 +168,8 @@ pane.tagSelector.numSelected.singular = %S tag selected
pane.tagSelector.numSelected.plural = %S tags selected
pane.items.loading = Loading items list…
pane.items.attach.link.uri.title = Attach Link to URI
pane.items.attach.link.uri = Enter a URI:
pane.items.trash.title = Move to Trash
pane.items.trash = Are you sure you want to move the selected item to the Trash?
pane.items.trash.multiple = Are you sure you want to move the selected items to the Trash?
@ -206,7 +209,12 @@ pane.item.selected.multiple = %S items selected
pane.item.unselected.zero = No items in this view
pane.item.unselected.singular = %S item in this view
pane.item.unselected.plural = %S items in this view
pane.item.selectToMerge = Select items to merge
pane.item.duplicates.selectToMerge = Select items to merge
pane.item.duplicates.mergeItems = Merge %S items
pane.item.duplicates.writeAccessRequired = Library write access is required to merge items.
pane.item.duplicates.onlyTopLevel = Only top-level full items can be merged.
pane.item.duplicates.onlySameItemType = Merged items must all be of the same item type.
pane.item.changeType.title = Change Item Type
pane.item.changeType.text = Are you sure you want to change the item type?\n\nThe following fields will be lost:
@ -232,14 +240,15 @@ pane.item.attachments.count.zero = %S attachments:
pane.item.attachments.count.singular = %S attachment:
pane.item.attachments.count.plural = %S attachments:
pane.item.attachments.select = Select a File
pane.item.attachments.PDF.installTools.title = PDF Tools Not Installed
pane.item.attachments.PDF.installTools.text = To use this feature, you must first install the PDF tools in the Zotero preferences.
pane.item.attachments.filename = Filename
pane.item.noteEditor.clickHere = click here
pane.item.tags = Tags:
pane.item.tags.count.zero = %S tags:
pane.item.tags.count.singular = %S tag:
pane.item.tags.count.plural = %S tags:
pane.item.tags.icon.user = User-added tag
pane.item.tags.icon.automatic = Automatically added tag
pane.item.related = Related:
pane.item.related.count.zero = %S related:
pane.item.related.count.singular = %S related:
pane.item.related.count.plural = %S related:
@ -765,6 +774,11 @@ sync.conflict.tagItemMerge.log = The Zotero tag '%S' has been added to and/or
sync.conflict.tag.addedToRemote = It has been added to the following remote items:
sync.conflict.tag.addedToLocal = It has been added to the following local items:
sync.conflict.fileChanged = The following file has been changed in multiple locations.
sync.conflict.itemChanged = The following item has been changed in multiple locations.
sync.conflict.chooseVersionToKeep = \u0020Choose the version you would like to keep, and then click %S.
sync.conflict.chooseThisVersion = Choose this version
sync.status.notYetSynced = Not yet synced
sync.status.lastSync = Last sync:
sync.status.loggingIn = Logging in to sync server
@ -787,17 +801,23 @@ sync.storage.serverConfigurationVerified = Server configuration verified
sync.storage.fileSyncSetUp = File sync is successfully set up.
sync.storage.openAccountSettings = Open Account Settings
sync.storage.error.default = A file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, restart %S and/or your computer and try again. If you continue to receive the message, submit an error report and post the Report ID to a new thread in the Zotero Forums.
sync.storage.error.defaultRestart = A file sync error occurred. Please restart %S and/or your computer and try syncing again.\n\nIf you receive this message repeatedly, submit an error report and post the Report ID to a new thread in the Zotero Forums.
sync.storage.error.serverCouldNotBeReached = The server %S could not be reached.
sync.storage.error.permissionDeniedAtAddress = You do not have permission to create a Zotero directory at the following address:
sync.storage.error.checkFileSyncSettings = Please check your file sync settings or contact your server administrator.
sync.storage.error.verificationFailed = %S verification failed. Verify your file sync settings in the Sync pane of the Zotero preferences.
sync.storage.error.fileNotCreated = The file '%S' could not be created in the Zotero 'storage' directory.
sync.storage.error.encryptedFilenames = Error creating file '%S'.\n\nSee http://www.zotero.org/support/kb/encrypted_filenames for more information.
sync.storage.error.fileEditingAccessLost = You no longer have file editing access to the Zotero group '%S', and files you've added or edited cannot be synced to the server.
sync.storage.error.copyChangedItems = If you would like a chance to copy changed items and files elsewhere, cancel the sync now.
sync.storage.error.fileUploadFailed = File upload failed.
sync.storage.error.directoryNotFound = Directory not found
sync.storage.error.doesNotExist = %S does not exist.
sync.storage.error.createNow = Do you want to create it now?
sync.storage.error.webdav.default = A WebDAV file sync error occurred. Please try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.
sync.storage.error.webdav.defaultRestart = A WebDAV file sync error occurred. Please restart %S and try syncing again.\n\nIf you receive this message repeatedly, check your WebDAV server settings in the Sync pane of the Zotero preferences.
sync.storage.error.webdav.enterURL = Please enter a WebDAV URL.
sync.storage.error.webdav.invalidURL = %S is not a valid WebDAV URL.
sync.storage.error.webdav.invalidLogin = The WebDAV server did not accept the username and password you entered.
@ -808,10 +828,17 @@ sync.storage.error.webdav.sslConnectionError = SSL connection error connecting t
sync.storage.error.webdav.loadURLForMoreInfo = Load your WebDAV URL in the browser for more information.
sync.storage.error.webdav.seeCertOverrideDocumentation = See the certificate override documentation for more information.
sync.storage.error.webdav.loadURL = Load WebDAV URL
sync.storage.error.webdav.fileMissingAfterUpload = A potential problem was found with your WebDAV server.\n\nAn uploaded file was not immediately available for download. There may be a short delay between when you upload files and when they become available, particularly if you are using a cloud storage service.\n\nIf Zotero file syncing appears to work normally, you can ignore this message. If you have trouble, please post to the Zotero Forums.
sync.storage.error.webdav.serverConfig.title = WebDAV Server Configuration Error
sync.storage.error.webdav.serverConfig = Your WebDAV server returned an internal error.\n\n
sync.storage.error.zfs.restart = A file sync error occurred. Please restart %S and/or your computer and try syncing again.\n\nIf the error persists, there may be a problem with either your computer or your network: security software, proxy server, VPN, etc. Try disabling any security/firewall software you're using or, if this is a laptop, try from a different network.
sync.storage.error.zfs.tooManyQueuedUploads = You have too many queued uploads. Please try again in %S minutes.
sync.storage.error.zfs.personalQuotaReached1 = You have reached your Zotero File Storage quota. Some files were not uploaded. Other Zotero data will continue to sync to the server.
sync.storage.error.zfs.personalQuotaReached2 = See your zotero.org account settings for additional storage options.
sync.storage.error.zfs.groupQuotaReached1 = The group '%S' has reached its Zotero File Storage quota. Some files were not uploaded. Other Zotero data will continue to sync to the server.
sync.storage.error.zfs.groupQuotaReached2 = The group owner can increase the group's storage capacity from the storage settings section on zotero.org.
sync.storage.error.zfs.fileWouldExceedQuota = The file '%S' would exceed your Zotero File Storage quota
sync.longTagFixer.saveTag = Save Tag
sync.longTagFixer.saveTags = Save Tags
@ -849,6 +876,18 @@ rtfScan.rtf = Rich Text Format (.rtf)
rtfScan.saveTitle = Select a location in which to save the formatted file
rtfScan.scannedFileSuffix = (Scanned)
file.accessError.theFile = The file '%S'
file.accessError.aFile = A file
file.accessError.cannotBe = \u0020cannot be\u0020
file.accessError.created = created
file.accessError.updated = updated
file.accessError.deleted = deleted
file.accessError.message.windows = Check that the file is not currently in use and that it is not marked as read-only. To check all files in your Zotero data directory, right-click on the 'zotero' directory, click Properties, clear the Read-Only checkbox, and apply the change to all folders and files in the directory.
file.accessError.message.other = Check that the file is not currently in use and that its permissions allow write access.
file.accessError.restart = Restarting your computer or disabling security software may also help.
file.accessError.showParentDir = Show Parent Directory
lookup.failure.title = Lookup Failed
lookup.failure.description = Zotero could not find a record for the specified identifier. Please verify the identifier and try again.