diff --git a/.editorconfig b/.editorconfig index 05e065b6..09ef84e7 100644 --- a/.editorconfig +++ b/.editorconfig @@ -15,8 +15,5 @@ trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false -[*.nsh] -indent_size = 2 - -[{*.yml,*.yaml}] +[{*.nsh,*.yml,*.yaml,*.json}] indent_size = 2 diff --git a/app/scripts/locales/base.json b/app/scripts/locales/base.json index d43c6553..26cb4521 100644 --- a/app/scripts/locales/base.json +++ b/app/scripts/locales/base.json @@ -1,812 +1,775 @@ { - "retToApp": "return to app", - "name": "name", - "icon": "icon", - "title": "title", - "password": "password", - "user": "user", - "website": "website", - "tags": "tags", - "notes": "notes", - "entry": "entry", - "group": "group", - "noTitle": "no title", - "or": "or", - "history": "history", - "template": "template", - "templates": "templates", - "notImplemented": "Not Implemented", - "saveChanges": "Save changes", - "discardChanges": "Discard changes", - "advanced": "Advanced", - "shortcuts": "Shortcuts", - "help": "Help", - "settings": "Settings", - "plugins": "Plugins", - "ctrlKey": "ctrl", - "shiftKey": "shift", - "altKey": "alt", - "error": "error", - "oneMinute": "one minute", - "minutes": "{} minutes", - "oneHour": "one hour", - "hours": "{} hours", - "oneDay": "one day", - "days": "{} days", - "oneWeek": "one week", - "oneMonth": "one month", - "oneYear": "one year", - - "cache": "cache", - "file": "file", - "device": "device", - "webdav": "WebDAV", - "dropbox": "Dropbox", - "gdrive": "Google Drive", - "onedrive": "OneDrive", - - "menuAllItems": "All Items", - "menuColors": "Colors", - "menuTrash": "Trash", - "menuSetGeneral": "General", - "menuSetBrowser": "Browser", - "menuSetAbout": "About", - "menuSetDevices": "Devices", - "menuAlertNoTags": "No tags", - "menuAlertNoTagsBody": "You can add new tags while editing fields, in the Tags section.", - "menuEmptyTrash": "Empty Trash", - "menuEmptyTrashAlert": "Empty Trash?", - "menuEmptyTrashAlertBody": "You will not be able to put items back", - "menuItemCollapsed": "Double-click to expand", - "menuRestoreApp": "Open {}", - "menuQuitApp": "Quit {}", - - "sysMenuAboutKeeWeb": "About {}", - "sysMenuServices": "Services", - "sysMenuHide": "Hide {}", - "sysMenuHideOthers": "Hide Others", - "sysMenuUnhide": "Show All", - "sysMenuQuit": "Quit {}", - "sysMenuEdit": "Edit", - "sysMenuUndo": "Undo", - "sysMenuRedo": "Redo", - "sysMenuCut": "Cut", - "sysMenuCopy": "Copy", - "sysMenuPaste": "Paste", - "sysMenuSelectAll": "Select All", - "sysMenuWindow": "Window", - "sysMenuMinimize": "Minimize", - "sysMenuClose": "Close Window", - - "alertYes": "Yes", - "alertNo": "No", - "alertOk": "OK", - "alertCancel": "Cancel", - "alertSignIn": "Sign In", - "alertCopy": "Copy", - "alertClose": "Close", - "alertDoNotAsk": "Don't ask me anymore", - "alertAllow": "Allow", - "alertDeny": "Deny", - - "appBeta": "WARNING: beta version, only for preview", - - "footerOpen": "Open / New", - "footerSyncError": "Sync error", - "footerTitleGen": "Generate", - "footerTitleLock": "Lock", - - "genLen": "Length", - "genNewPass": "New password", - "genPresetDefault": "default preset", - "genPresetDerived": "like old password", - "genPresetPronounceable": "pronounceable", - "genPresetMed": "medium length", - "genPresetLong": "long", - "genPresetPin4": "4-digit PIN", - "genPresetMac": "MAC address", - "genPresetHash128": "128-bit hash", - "genPresetHash256": "256-bit hash", - "genHidePass": "Hide password", - "genShowPass": "Show password", - - "grpTitle": "Group", - "grpSearch": "Enable searching entries in this group", - "grpAutoType": "Enable auto-type", - "grpAutoTypeSeq": "Auto-type sequence", - "grpAutoTypeSeqDefault": "Use default auto-type sequence", - "grpTrash": "Delete group with all entries", - - "tagTitle": "Tag", - "tagTrash": "Remove tag from all entries", - "tagRename": "Rename", - "tagTrashQuestion": "Remove tag from all entries?", - "tagTrashQuestionBody": "This tag will be removed from all entries. There will be no easy way to put it back.", - "tagExists": "Tag already exists", - "tagExistsBody": "Tag with this name already exists. Please choose another name.", - "tagBadName": "Bad name", - "tagBadNameBody": "Tag name cannot contain characters {}. Please remove them.", - - "genPsTitle": "Generator Presets", - "genPsCreate": "New preset", - "genPsDelete": "Delete preset", - "genPsNew": "preset", - "genPsEnabled": "Show in presets list", - "genPsDefault": "Selected by default", - "genPsDefaultLength": "Default length", - "genPsUpper": "Uppercase latin letters", - "genPsLower": "Lowercase latin letters", - "genPsDigits": "Digits", - "genPsSpecial": "Special symbols", - "genPsBrackets": "Brackets", - "genPsHigh": "High ASCII characters", - "genPsAmbiguous": "Ambiguous symbols", - "genPsInclude": "Additional symbols to include", - "genPsExample": "Example of generated password", - "genPsPattern": "Pattern", - "genPsPatternHelp": "Patterns can be used to specify custom rules for selecting characters. For example, 1-AA will generate passwords starting with a digit, followed by a dash and two letters. You can use these symbols:", - "genPsAllRanges": "All symbols", - "genPsIncluded": "Additional symbols added above", - - "keyChangeTitleRemote": "Master Key Changed", - "keyChangeMessageRemote": "Master key was changed for this database. Please enter a new key", - "keyChangeTitleExpired": "Master Key Expired", - "keyChangeMessageExpired": "Master key for this database is expired. Please enter a new key", - "keyChangeRepeatPassword": "Password, once again", - "keyEnter": "Enter", - "keyEsc": "Esc", - - "iconFavTitle": "Download and use website favicon", - "iconSelCustom": "Select a custom icon", - - "listEmptyTitle": "Empty", - "listEmptyAdd": "add with {} button above", - "listGroup": "Group", - "listNoWebsite": "no website", - "listNoUser": "no user", - "listNoAttachments": "no attachments", - "listAddTemplateHeader": "Templates", - "listAddTemplateBody1": "Templates allow you to create entries with one click. Add something to template entry and then click {} again to use this template.", - "listAddTemplateBody2": "You can always find your templates in {} group.", - - "searchAddNew": "Add New", - "searchSort": "Sort", - "searchCreated": "Created", - "searchUpdated": "Updated", - "searchAttachments": "Attachments", - "searchAZ": "A {} Z", - "searchZA": "Z {} A", - "searchON": "Old {} New", - "searchNO": "New {} Old", - "searchShiftClickOr": "shift-click or", - "searchAdvTitle": "Toggle advanced search", - "searchSearchIn": "Search in", - "searchOther": "Other fields", - "searchProtect": "Secure fields", - "searchOptions": "Options", - "searchCase": "Match case", - "searchRegex": "RegEx", - "searchRank": "Auto", - "searchExact": "Exact", - - "openOpen": "Open", - "openNew": "New", - "openNewFile": "New", - "openMore": "More", - "openDemo": "Demo", - "openGenerate": "Generate", - "openXml": "Import XML", - "openCaps": "Caps Lock is on", - "openClickToOpen": "Click to open a file", - "openKeyFile": "key file", - "openKeyFileDropbox": "(from dropbox)", - "openDropHere": "drop files here", - "openFailedRead": "Failed to read file", - "openNothingFound": "Nothing found", - "openNothingFoundBody": "We haven't found any suitable files.", - "openSelectFile": "Select a file", - "openSelectFileBody": "Select a file you would like to open", - "openPassFor": "Password for", - "openRemoveLastQuestion": "Delete local file?", - "openRemoveLastQuestionBody": "The file you are deleting is stored only inside the app. Delete it permanently?", - "openRemoveLastQuestionModBody": "The file you are deleting has local modifications. Delete it and discard these modifications?", - "openLocalFile": "Local file", - "openLocalFileBody": "You are going to open a file that will be stored inside the app. Changes you make will not be saved back to file system. To get the file with your data, export it from settings.", - "openLocalFileDontShow": "Don't show this again", - "openWrongFile": "Bad file", - "openWrongFileBody": "This file format is not supported. This app works with KeePass database format files (kdbx).", - "openKdbFileBody": "You are opening an old version format file (KDB). This app supports only new format (kdbx), please use KeePass v2 to convert between them.", - "openConfigHeader": "{} Settings", - "openUrl": "URL", - "openUrlDesc": "https://server/path/file.kdbx, or just file.kdbx", - "openUser": "User", - "openUserDesc": "WebDAV server user (if required)", - "openUserPlaceholder": "no user", - "openPass": "Password", - "openPassDesc": "WebDAV server password (this is not your file password)", - "openPassPlaceholder": "no password", - "openConfigError": "Error: {}", - "openConfigErrorNotFound": "File not found", - "openError": "Error", - "openErrorDescription": "There was an error opening file", - "openErrorDescriptionMaybeTouchIdChanged": "The error looks similar to what usually happens when Touch ID setup is changed, for example, you added or removed an additional finger. If it's the case, go to Settings, disable Touch ID, and re-enable it again.", - "openErrorFileNotFound": "File not found", - "openListErrorBody": "There was an error loading file list", - "openShowAllFiles": "Show all files", - "openFileNoCacheError": "File not found in the cache storage. This can happen because browser storage was cleaned up. To open the file, remove it from KeeWeb and add it again.", - "openChalRespHeader": "Challenge-Response", - "openChalRespLoading": "Loading the list of YubiKeys", - "openChalRespSelectYubiKey": "Select a YubiKey that you would like to use", - "openChalRespErrorEmpty": "No YubiKeys found.", - "openChalRespErrorEmptyMac": "First time using this feature on macOS? KeeWeb must be added to the Input Monitoring section of security settings.", - - "detAttDownload": "Shift-click the attachment button to download it or", - "detAttDelToRemove": "Delete to remove", - "detAttSave": "Save as …", - "detEmpty": "Your passwords will be displayed here", - "detGroupRestore": "To restore this group, please drag it to any group outside trash", - "detHistoryClickPoint": "Click entry history timeline point to view state", - "detHistoryReturn": "return to entry", - "detHistoryRevert": "Revert to state", - "detHistoryDel": "Delete state", - "detHistoryEmpty": "empty", - "detHistoryModified": "modified", - "detHistoryRec": "record", - "detHistoryRecs": "records", - "detHistoryVersion": "Version", - "detHistorySaved": "Saved", - "detHistoryNoTitle": "no title", - "detHistoryCurState": "current state", - "detHistoryCurUnsavedState": "current unsaved state", - "detHistoryRevertAlert": "Revert to this history state?", - "detHistoryRevertAlertBody": "Your current state will be saved to history.", - "detHistoryDeleteAlert": "Delete this history state?", - "detHistoryDeleteAlertBody": "You will not be able to restore it.", - "detHistoryDiscardChangesAlert": "Discard changes made to entry?", - "detHistoryDiscardChangesAlertBody": "Unsaved changes will be lost, there will be no way back.", - "detBackToList": "back to list", - "detSetIconColor": "Change color", - "detSetIcon": "Change icon", - "detDropAttachments": "drop attachments here", - "detDelEntry": "Delete", - "detDelEntryPerm": "Delete permanently", - "detExpires": "Expires", - "detExpired": "expired", - "detGroup": "Group", - "detCreated": "Created", - "detUpdated": "Updated", - "detNetField": "New Field", - "detAttachments": "Attachments", - "detDelFromTrash": "Delete from trash?", - "detDelFromTrashBody": "You will not be able to put it back.", - "detDelFromTrashBodyHint": "To quickly remove all items from trash, click Empty icon in Trash menu.", - "detDelToTrash": "Delete the entry?", - "detDelToTrashBody": "The entry will be moved to the trash folder.", - "detFieldCopied": "Copied", - "detFieldCopiedTime": "Copied for {} seconds", - "detCopyHint": "You can copy field value by clicking its title", - "detMore": "more", - "detClickToAddField": "click to add a new field", - "detMenuAddNewField": "Add a new field", - "detMenuAddNewWebsite": "Add another website", - "detMenuShowEmpty": "Show empty fields", - "detMenuHideEmpty": "Hide empty fields", - "detMenuAddField": "Add {}", - "detMenuCopyPassword": "Copy password", - "detMenuCopyUser": "Copy user", - "detMenuCopyOtp": "Copy one-time code", - "detSetupOtp": "One-time codes", - "detClone": "Make a copy", - "detCopyEntryToClipboard": "Copy all fields", - "detClonedName": "Copy", - "detAutoType": "Auto-type", - "detAutoTypeSettings": "Auto-type settings", - "detAutoTypeEnabled": "Enable auto-type for this entry", - "detAutoTypeSequence": "Keystrokes", - "detAutoTypeInput": "Input", - "detAutoTypeShortcutsDesc": "{} or {} while the app is inactive", - "detAutoTypeObfuscation": "Mix real keystrokes with random", - "detAutoTypeWindow": "Window", - "detAutoTypeInputWindow": "Window title", - "detSetupOtpAlert": "Scan the QR code", - "detSetupOtpAlertBody": "Please copy the QR code which is displayed on the authorization page.", - "detSetupOtpAlertBody1": "1. go to the authorization page", - "detSetupOtpAlertBody2": "2. make a screenshot of the QR code {}", - "detSetupOtpAlertBody3": "3. paste it here {}", - "detSetupOtpAlertBody3Mobile": "3. select it or scan with your camera using Select/Scan button below", - "detSetupOtpAlertBody4": "If you can't scan the code, click Enter code manually", - "detSetupOtpManualButton": "Enter code manually", - "detSetupOtpScanButton": "Select/Scan", - "detSetupOtpAlertBodyWith": "with {}", - "detOtpImageError": "Error reading image", - "detOtpImageErrorBody": "Sorry, we could not read the image format, please contact the app authors with error details.", - "detOtpImageReading": "Reading QR code...", - "detOtpQrError": "QR code scan error", - "detOtpQrErrorBody": "Sorry, we could not read the QR code, please try once again or contact the app authors with error details.", - "detOtpQrWrong": "Wrong QR code", - "detOtpQrWrongBody": "Your QR code was successfully scanned but it doesn't contain one-time code data.", - "detOtpField": "One-time code", - "detOtpClickToTouch": "Click to generate", - "detOtpGenerating": "Generating...", - "detOtpTouch": "Touch your {}", - "detLockField": "Lock this field, so its content isn't searchable and visible. Displaying the content requires explicitly clicking it.", - "detUnlockField": "Unlock this field, making its content searchable and visible immediately", - "detRevealField": "Reveal", - "detHideField": "Hide", - "detAutoTypeField": "Auto type", - "detIssuesHideTooltip": "Hide this warning", - "detIssueWeakPassword": "The password is weak, it's recommended to change it.", - "detIssuePoorPassword": "The password is very weak, it's strongly recommended to change it.", - "detIssuePwnedPassword": "This password has been exposed in a data breach according to {}, it's recommended to change it.", - "detIssuePasswordCheckError": "There was an error checking password strength online.", - "detIssueOldPassword": "The password is old.", - "detIssueCloseAlertHeader": "Hide password issues", - "detIssueCloseAlertBody": "There are different ways you can hide this warning:", - "detIssueCloseAlertEntry": "Don't show for this entry", - "detIssueCloseAlertSettings": "Adjust global settings", - - "autoTypeEntryFields": "Entry fields", - "autoTypeModifiers": "Modifier keys", - "autoTypeKeys": "Keys", - "autoTypeLink": "more...", - "autoTypeError": "Auto-type error", - "autoTypeErrorGeneric": "There was an error performing auto-type: {}", - "autoTypeErrorAccessibilityMacOS": "We tried to send keystrokes to the application, but it doesn't seem to work. This may happen because of missing permissions, click here to read more about it:", - "autoTypeErrorGlobal": "To use a system-wide shortcut, please focus the app where you want to type your password", - "autoTypeErrorNotInstalled": "{} is not installed", - "autoTypeHeader": "Auto-Type: Select", - "autoTypeMsgNoWindow": "We were unable to get active window title, start typing to search", - "autoTypeMsgMatchedByWindow": "Select a password for {}", - "autoTypeNoMatches": "no matches", - "autoTypeSelectionHint": "Type the autotype sequence", - "autoTypeSelectionHintAction": "Only type the password", - "autoTypeSelectionHintOpt": "Only type the username", - "autoTypeSelectionHintShift": "Other fields", - "autoTypeSelectionOtp": "One-time code", - "autoTypeUnlockMessage": "Unlock to auto-type", - - "appSecWarn": "Not Secure!", - "appSecWarnBody1": "You have loaded this app with an insecure connection. Someone may be watching you and stealing your passwords. We strongly advise you to stop, unless you clearly understand what you're doing.", - "appSecWarnBody2": "Yes, your database is encrypted but no one can guarantee that the app has not been modified on the way to you.", - "appSecWarnBtn": "I understand the risks, continue", - "appUnsavedWarn": "Unsaved changes!", - "appUnsavedWarnBody": "You have unsaved files, if you close the app, changes will be lost.", - "appDontExitBtn": "Don't exit", - "appCannotLockAutoInit": "The app cannot be locked because autosave is disabled.", - "appCannotLock": "You have unsaved changes that will be lost. Continue?", - "appAutoSave": "Save changes automatically", - "appSaveError": "Save Error", - "appSaveErrorBody": "Failed to auto-save file", - "appSaveErrorBodyMul": "Failed to auto-save files:", - "appSaveErrorExitLoseChanges": "Quit and lose all changes", - "appSaveErrorExitLoseChangesBody": "You can either quit the app and lose all changes, or go file settings to export data", - "appSettingsError": "Error loading app", - "appSettingsErrorBody": "There was an error loading app settings. Please double check the app URL or contact your administrator.", - "appNotSupportedError": "Your browser doesn't support some important features we're using.", - "appTabWarn": "Too many tabs", - "appTabWarnBody": "KeeWeb cannot be used in two browser tabs simultaneously, please close this tab.", - "appRightsAlert": "Locking KeeWeb app", - "appRightsAlertBody1": "Your KeeWeb app is currently not guarded against unauthorized changes. We're asking you for permissions to make the app writable only for administrators.", - "appRightsAlertBody2": "Don't want to give permissions? You can do it yourself in Terminal", - "appBrowserAuthComplete": "Authentication is complete, you may close this tab now.", - - "setGenTitle": "General Settings", - "setGenUpdate": "Update", - "setGenNewVersion": "New app version was released and downloaded", - "setGenReleaseNotes": "View release notes", - "setGenReloadToUpdate": "Reload to update", - "setGenUpdateManual": "A new version has been released. It will check for updates and install them automatically, but auto-upgrading from your version is not possible.", - "setGenDownloadUpdate": "Download update", - "setGenUpdateAuto": "Download and install automatically", - "setGenUpdateCheck": "Check but don't install", - "setGenNoUpdate": "Never check for updates", - "setGenUpdateChecking": "Checking for updates", - "setGenCheckUpdate": "Check for updates", - "setGenErrorChecking": "Error checking for updates", - "setGenLastCheckSuccess": "Last successful check was at {}", - "setGenLastCheckVer": "the latest version was {}", - "setGenCheckedAt": "Checked at", - "setGenLatestVer": "you are using the latest version", - "setGenNewVer": "new version {} available, released", - "setGenDownloadingUpdate": "Downloading update...", - "setGenExtractingUpdate": "Extracting update...", - "setGenCheckErr": "There was an error downloading new version", - "setGenNeverChecked": "Never checked for updates", - "setGenRestartToUpdate": "Restart KeeWeb to update", - "setGenDownloadAndRestart": "Download update and restart", - "setGenAppearance": "Appearance", - "setGenTheme": "Theme", - "setGenThemeDefault": "Default", - "setGenThemeDark": "Dark", - "setGenThemeLight": "Light", - "setGenThemeBlue": "Flat blue", - "setGenThemeFb": "Dark blue", - "setGenThemeBl": "Light blue", - "setGenThemeBrown": "Brownie", - "setGenThemeDb": "Dark brown", - "setGenThemeLb": "Light brown", - "setGenThemeTerminal": "Terminal", - "setGenThemeTe": "Terminal", - "setGenThemeLt": "Terminal light", - "setGenThemeHighContrast": "High contrast", - "setGenThemeHc": "High contrast", - "setGenThemeDc": "Dark contrast", - "setGenThemeSol": "Solarized", - "setGenThemeSd": "Solarized dark", - "setGenThemeSl": "Solarized light", - "setGenMoreThemes": "More themes", - "setGenAutoSwitchTheme": "Automatically switch between light and dark theme when possible", - "setGenLocale": "Language", - "setGenLocOther": "other languages are available as plugins", - "setGenFontSize": "Font size", - "setGenFontSizeNormal": "Normal", - "setGenFontSizeLarge": "Large", - "setGenFontSizeLargest": "Largest", - "setGenTitlebarStyle": "Window style (requires restart)", - "setGenTitlebarStyleDefault": "Default", - "setGenTitlebarStyleHidden": "Custom title", - "setGenTitlebarStyleHiddenInset": "Custom title, draggable window", - "setGenShowSubgroups": "Show entries from all subgroups", - "setGenTableView": "Entries list table view", - "setGenColorfulIcons": "Colorful custom icons in the list", - "setGenUseMarkdown": "Markdown in notes", - "setGenUseGroupIconForEntries": "Automatically use group icon for new entries", - "setGenDirectAutotype": "If only one matching entry is found, select that one automatically for Autotype", - "setGenFunction": "Function", - "setGenAutoSyncOnClose": "Automatically save and sync on close", - "setGenAutoSyncTimer": "Automatically save and sync periodically", - "setGenAutoSyncTimerOff": "Disabled", - "setGenAutoSyncTimerInterval": "Every {} minute(s)", - "setGenRememberKeyFiles": "Remember key files", - "setGenNoRememberKeyFiles": "Don't remember", - "setGenRememberKeyFilesData": "Store in the internal app storage", - "setGenRememberKeyFilesPath": "Remember only path to key files", - "setGenLockInactive": "If the app is inactive", - "setGenNoAutoLock": "Don't auto-lock", - "setGenLockMinutes": "In {} minutes", - "setGenLockHour": "In an hour", - "setGenLockHours": "In {} hours", - "setGenLockDay": "In a day", - "setGenClearClip": "Clear clipboard after copy", - "setGenNoClear": "Don't clear", - "setGenClearSeconds": "In {} seconds", - "setGenClearMinute": "In a minute", - "setGenMinInstead": "Minimize the app instead of close", - "setGenMinOnFieldCopy": "Minimize on field copy", - "setGenLock": "Auto lock", - "setGenLockMinimize": "When the app is minimized", - "setGenLockCopy": "On password copy", - "setGenLockAutoType": "On auto-type", - "setGenLockOrSleep": "When the computer is locked or put to sleep", - "setGenStorage": "Storage", - "setGenDisableOfflineStorage": "Don't cache loaded files in offline storage", - "setGenShortLivedStorageToken": "Use short-lived sessions in cloud storage providers", - "setGenStorageLogout": "Log out", - "setGenShowAdvanced": "Show advanced settings", - "setGenDevTools": "Show dev tools", - "setGenTryBeta": "Try beta version until restart", - "setGenTryBetaWarning": "Unsaved files", - "setGenTryBetaWarningBody": "Please save all files and click this button again", - "setGenShowAppLogs": "Show app logs", - "setGenReloadApp": "Reload the app", - "setGenFieldLabelDblClickAutoType": "Auto-type on double-clicking field labels", - "setGenTouchId": "Touch ID", - "setGenTouchIdDisabled": "Don't use Touch ID", - "setGenTouchIdMemory": "Unlock with Touch ID only while KeeWeb is running", - "setGenTouchIdFile": "Always use Touch ID instead of master password", - "setGenTouchIdPass": "Require master password after", - "setGenAudit": "Audit", - "setGenAuditPasswords": "Show warnings about password strength", - "setGenAuditPasswordEntropy": "Check password length and randomness", - "setGenExcludePinsFromAudit": "Never check short numeric PIN codes, such as 123456", - "setGenCheckPasswordsOnHIBP": "Check passwords using an online service {}", - "setGenHelpHIBP": "KeeWeb can check if your passwords have been previously exposed in a data breach using an online service. Your password cannot be recovered based on data sent online, however, the number of passwords checked this way may be exposed. More about your privacy when using this service can be found {}. If this option is enabled, KeeWeb will automatically check your passwords there.", - "setGenHelpHIBPLink": "here", - "setGenAuditPasswordAge": "Old passwords", - "setGenAuditPasswordAgeOff": "Don't show warnings about old passwords", - "setGenAuditPasswordAgeOneYear": "Show warnings for passwords older than one year", - "setGenAuditPasswordAgeYears": "Show warnings for passwords older than {} years", - - "setFilePath": "File path", - "setFileStorage": "This file is loaded from {}.", - "setFileIntl": "This file is stored in the internal app storage", - "setFileLocalHint": "Want to work seamlessly with local files?", - "setFileDownloadApp": "Download a desktop app", - "setFileSave": "Save", - "setFileSaveTo": "Save to …", - "setFileClose": "Close", - "setFileSync": "Sync", - "setFileSyncVerb": "Sync", - "setFileSaveToXml": "XML", - "setFileSaveToHtml": "HTML", - "setFileLastSync": "Last sync", - "setFileLastSyncUnknown": "unknown", - "setFileSyncInProgress": "sync in progress", - "setFileSyncError": "Sync error", - "setFilePass": "Master password", - "setFileConfirmPass": "Confirm Master password", - "setFilePassChange": "to change your password, please type it in the Confirm field", - "setFilePassChanged": "your password was changed; leave the field blank to use the old password", - "setFilePassNotMatch": "passwords don't match, please type it again", - "setFileKeyFile": "Key file", - "setFileSelKeyFile": "Select a key file", - "setFileNames": "Names", - "setFileDefUser": "Default user", - "setFileEnableTrash": "Enable trash", - "setFileHistMode": "Entry history", - "setFileHistLimited": "Delete old history records automatically", - "setFileHistDisabled": "Don't save history", - "setFileHistUnlimited": "Keep history records forever", - "setFileHistLen": "History length, keep last records per entry", - "setFileHistSize": "History size, total MB per file", - "setFileBackups": "Backups", - "setFileBackupEnable": "Backup this file", - "setFileBackupPath": "Backup path", - "setFileBackupTime": "Make backups", - "setFileBackupNow": "Backup now", - "setFileBackupNowWorking": "Working...", - "setFileBackupError": "Backup error", - "setFileBackupErrorDescription": "Error writing backup file", - "setFileBackupErrorIsDir": "Backup path invalid", - "setFileBackupErrorIsDirDescription": "The backup path seems to point to a directory. Please specify a filename inside a directory instead.", - "setFileBackupOnSave": "Every time I save the file", - "setFileBackupDaily": "Daily", - "setFileBackupWeekly": "Weekly", - "setFileBackupMonthly": "Monthly", - "setFileBackupManually": "Manually, no auto-backups", - "setFileRounds": "Key encryption rounds", - "setFileKdfParams": "Key derivation function", - "setFileKdfParamsIter": "Iterations", - "setFileKdfParamsMem": "Memory, KB", - "setFileKdfParamsPar": "Parallelism", - "setFileKeyChangeForce": "Ask to change key after (days)", - "setFileUseKeyFile": "Use key file", - "setFileUseGenKeyFile": "Use the generated key file", - "setFileUseOldKeyFile": "Use the old key file", - "setFileGenKeyFile": "Generate a new key file", - "setFileDontUseKeyFile": "Don't use a key file", - "setFileEmptyPass": "Empty password", - "setFileEmptyPassBody": "Saving database with an empty password makes it completely unprotected. Do you really want to do it?", - "setFileSaveError": "Save error", - "setFileSaveErrorBody": "Error saving to file", - "setFileAlreadyExists": "Already exists", - "setFileAlreadyExistsBody": "File {} already exists. Overwrite it?", - "setFileUnsaved": "Unsaved changes", - "setFileUnsavedBody": "There are unsaved changes in this file", - "setFileCloseNoSave": "Close and lose changes", - "setFileDontClose": "Don't close", - "setFileFormatVersion": "File format", - "setFileExportRaw": "Exporting your passwords", - "setFileExportRawBody": "The exported file will contain your passwords, they will not be encrypted there. Would you like to proceed?", - "setFileDeviceIntro": "One-time codes from this {} will be displayed in the app.", - "setFileDeviceSettings": "Settings", - "setFileYubiKey": "YubiKey", - "setFileDontUseYubiKey": "Don't use a YubiKey", - "setFileRefreshYubiKeyList": "Refresh the list", - "setFileYubiKeyHeader": "YubiKey", - "setFileYubiKeyBody": "Using a YubiKey as a part of master key is dangerous and you may lose access to your passwords if something goes wrong. Have you made a backup of your file before changing this setting?", - "setFileYubiKeyErrorEmptyMac": "Looks like there's a YubiKey plugged in, but it's not visible. KeeWeb must be added to the Input Monitoring section of security settings to access YubiKeys.", - - "setShTitle": "Shortcuts", - "setShShowAll": "show all items", - "setShColors": "show items with colors", - "setShTrash": "go to Trash", - "setShFind": "search, or just start typing", - "setShClearSearch": "clear search", - "setShCopyPass": "copy password or selected field", - "setShCopyUser": "copy user", - "setShCopyUrl": "copy website", - "setShAutoType": "auto-type selected entry", - "setShPrev": "go to previous item", - "setShNext": "go to next item", - "setShCreateEntry": "create entry", - "setShOpen": "open / new", - "setShSave": "save all files", - "setShGen": "generate password", - "setShSet": "app settings", - "setShCopyPassGlobal": "copy password", - "setShCopyOtp": "copy OTP", - "setShAutoTypeGlobal": "auto-type", - "setShCopyPassOnly": "copy password", - "setShRestoreApp": "open {}", - "setShGlobal": "These system-wide shortcuts work when the app is running in background. You can click them to select your own shortcut.", - "setShLock": "lock database", - "setShEdit": "Press a new key combination to set it as shortcut", - - "setPlInstallTitle": "Install new plugins", - "setPlInstallDesc": "KeeWeb plugins add features, themes, and languages to KeeWeb. Plugins run with the same privileges as KeeWeb, they can access and manage all your passwords. Never install plugins you don't trust.", - "setPlInstallLabel": "Plugin URL", - "setPlInstallBtn": "Install", - "setPlInstallBtnProgress": "Installing", - "setPlUninstallBtn": "Uninstall", - "setPlDisableBtn": "Disable", - "setPlEnableBtn": "Enable", - "setPlUpdateBtn": "Update", - "setPlLocaleBtn": "Switch to this language", - "setPlThemeBtn": "Switch to this theme", - "setPlJs": "code", - "setPlCss": "styles", - "setPlLoc": "language", - "setPlCreatedBy": "Created by {}", - "setPlLoadTime": "took {} to load", - "setPlLastUpdate": "Last check for updates", - "setPlLoadError": "error loading plugin", - "setPlGalleryLoading": "Loading plugins, please wait a bit", - "setPlGalleryLoadError": "Error loading plugins", - "setPlInstallUrlTitle": "Add plugin from URL", - "setPlInstallUrlDesc": "If the plugin is not in the gallery, you can install it manually from URL", - "setPlOfficial": "Official KeeWeb plugin", - "setPlSearch": "Search for plugins", - "setPlDevelop": "Want to develop your own plugins?", - "setPlDevelopStart": "Start here", - "setPlTranslate": "Or you can {}", - "setPlTranslateLink": "translate the app to your language", - "setPlAutoUpdate": "Update automatically", - "setPlLoadGallery": "Load plugin gallery", - - "setBrowserTitle": "Browser", - "setBrowserIntroDesktop": "KeeWeb can enter passwords using auto-type, however, a browser extension may be a more convenient way of doing it. KeeWeb supports two browser extensions:", - "setBrowserIntroKeeWebConnect": "the official KeeWeb extension, it's built with features of KeeWeb in mind, but you may miss some advanced capabilities that can be found in the other extension.", - "setBrowserIntroKeePassXcBrowser": "this extension was developed for KeePassXC, it's been on the market for a while and it is quite solid. The extension is not a part of KeeWeb and there may be compatibility issues.", - "setBrowserIntroWeb": "Install our browser extension to auto-fill passwords from KeeWeb on different pages. The browser extension will connect to a KeeWeb tab in your browser to fetch passwords. Click here to download the extension:", - "setBrowserNotEnabled": "Browser integration is not enabled, extensions won't be able to connect to KeeWeb. Use the checkboxes below to enable it:", - "setBrowserEnablePerBrowser": "Enable browser integration using the checkboxes below:", - "setBrowserFocusIfLocked": "Open KeeWeb if a browser extension tries to connect while there's no open file", - "setBrowserFocusIfEmpty": "Show the entry selection screen if there's no match found by URL", - "setBrowserOtherBrowsers": "Other browsers", - "setBrowserExtensionFor": "for {}", - "setBrowserExtensionNotSupported": "Not supported", - "setBrowserExtensionHelp": "How to install?", - "setBrowserExtensionInstall": "Install the extension", - "setBrowserExtensionKPXCWarnHeader": "{} will stop working", - "setBrowserExtensionKPXCWarnBody1": "Unfortunately it's not possible to connect one extension to several apps. If you connect the extension to KeeWeb, we'll overwrite its app association, which means that integration with {} will stop working. Even if you uncheck this checkbox, the association with {} won't be restored. To make it work again, configure browser integration in {} settings.", - "setBrowserExtensionKPXCWarnBody2": "Configure the extension to use KeeWeb?", - "setBrowserSessions": "Sessions", - "setBrowserSessionsEmpty": "No connected sessions.", - "setBrowserSessionsIntro": "These extensions are now connected to KeeWeb.", - "setBrowserSessionsActiveTooltip": "Active session", - "setBrowserSessionsActiveText": "This session is active. It can exchange data with KeeWeb based on the following permissions:", - "setBrowserSessionsInactiveTooltip": "Inactive session", - "setBrowserSessionsInactiveText": "This session is inactive. The extension is connected to KeeWeb, however, it hasn't tried to exchange data. When the extension requests anything, you will be able to choose what you want to share.", - "setBrowserSessionsDeniedTooltip": "Access denied", - "setBrowserSessionsDeniedText": "This session is inactive. The extension is connected to KeeWeb, however, you denied access to data.", - "setBrowserSessionsConnectedDate": "Connected", - "setBrowserSessionsTerminate": "Terminate this session", - "setBrowserSessionsAccessToFiles": "Allow access to files", - "setBrowserSessionsNoFileAccess": "The extension doesn't have access to any file, it won't be able to fetch passwords from KeeWeb.", - "setBrowserSessionsPasswordsRead": "Passwords read", - "setBrowserSessionsPasswordsWritten": "Passwords saved", - - "setDevicesTitle": "Devices", - "setDevicesEnableUsb": "Enable interaction with USB devices", - "setDevicesYubiKeyIntro": "It's recommended to read {} before using a YubiKey.", - "setDevicesYubiKeyIntroLink": "this document", - "setDevicesYubiKeyToolsDesc": "To be able to use YubiKey in this mode, you need to install a tool called {}.", - "setDevicesYubiKeyToolsDesc2": "{} to get more information about this tool.", - "setDevicesYubiKeyToolsDescLink": "Click here", - "setDevicesYubiKeyToolsStatusChecking": "Checking if {} is installed", - "setDevicesYubiKeyToolsStatusOk": "{} is installed", - "setDevicesYubiKeyToolsStatusError": "{} is not installed or not working", - "setDevicesYubiKeyOtpTitle": "One-time codes", - "setDevicesYubiKeyOtpDesc": "YubiKey can be used to generate one-time codes for different services.", - "setDevicesYubiKeyOtpShowIcon": "Show the icon on the start screen", - "setDevicesYubiKeyOtpAutoOpen": "Automatically load one-time codes when there are open files", - "setDevicesYubiKeyOtpMatchEntries": "Show matching one-time codes in entries", - "setDevicesYubiKeyChalRespTitle": "Challenge-Response", - "setDevicesYubiKeyChalRespDesc": "It's also possible to use a YubiKey in challenge-response mode, so that a piece of private key used to encrypt files resides on a YubiKey.", - "setDevicesYubiKeyChalRespShow": "Show the option to use a YubiKey when opening files", - "setDevicesYubiKeyStuckWorkaround": "Reconnect the YubiKey if it seems to be stuck during loading", - "setDevicesYubiKeyRememberChalResp": "Remember challenge-response while the app is open", - - "setAboutTitle": "About", - "setAboutBuilt": "This app is built with these awesome tools", - "setAboutLic": "License", - "setAboutLicComment": "The app itself and all included components are licensed under MIT license, unless otherwise specified", - "setAboutFirst": "This is an open-source app created by {}", - "setAboutSecond": "and licensed under {}.", - "setAboutSource": "The source code and issues are on {}.", - - "setHelpFormat": "File Format", - "setHelpFormatBody": "This is a port of {} app built with web technologies. It understands files in KeePass format (kdbx). You can create such files (password databases) either in KeePass or in this app. The file format is 100% compatible and should be understood by both apps.", - "setHelpProblems": "Need some help?", - "setHelpProblems1": "If something goes wrong, please {}", - "setHelpProblems2": "or {}", - "setHelpOpenIssue": "open an issue on GitHub", - "setHelpContactLink": "contact the developer directly", - "setHelpAppInfo": "App information", - "setHelpOtherPlatforms": "Other platforms", - "setHelpDesktopApps": "Desktop apps", - "setHelpWebApp": "Web app", - "setHelpUpdates": "Updates", - "setHelpTwitter": "App twitter", - - "dropboxSetupDesc": "Some configuration is required to use Dropbox in a self-hosted app. Please create your own Dropbox app and fill in its key below.", - "dropboxAppKey": "Dropbox app key", - "dropboxAppKeyDesc": "Copy the key from your Dropbox app (Developer settings)", - "dropboxAppKeyHint": "your app key", - "dropboxAppSecret": "Dropbox app secret", - "dropboxAppSecretDesc": "The secret can be found next to the app key", - "dropboxFolder": "App folder", - "dropboxFolderDesc": "If your app is linked to entire Dropbox (not app folder), set the folder with your kdbx files here", - "dropboxFolderSettingsDesc": "Select any folder in your Dropbox where files will be stored (root folder by default)", - "dropboxFolderPlaceholder": "default folder", - "dropboxLink": "Link the app to", - "dropboxLinkApp": "App folder (Apps/KeeWeb)", - "dropboxLinkFull": "Full Dropbox or any folder", - "dropboxLinkCustom": "Own Dropbox app", - - "gdriveSharedWithMe": "Shared with me", - "gdriveSharedDrives": "Shared drives", - - "webdavSaveMethod": "Save method", - "webdavSaveMove": "Upload a temporary file and move", - "webdavSavePut": "Overwrite the kdbx file with PUT", - "webdavNoLastModified": "Last-Modified HTTP header is absent", - "webdavStatReload": "Always reload the file instead of relying on Last-Modified HTTP header", - - "launcherSave": "Save Passwords Database", - "launcherFileFilter": "KeePass files", - - "authPopupRequired": "Pop-ups are blocked", - "authPopupRequiredBody": "Please allow pop-ups in your browser or try again.", - - "exportFileInfo": "File information", - "exportHtmlName": "Name", - "exportHtmlDate": "Export date", - "exportGenerator": "Software", - "exportDescription": "This file is generated with {}.", - - "importCsvTitle": "Import from CSV", - "importCsvRun": "Import", - "importIgnoreField": "Ignore", - "importTo": "Entries will be imported to", - "importNewFile": "New file", - - "yubiKeyStuckError": "The YubiKey seems to be stuck, auto-repair can be enabled in app settings.", - "yubiKeyNoKeyHeader": "YubiKey required", - "yubiKeyNoKeyBody": "Please insert your YubiKey with serial number {}", - "yubiKeySlot": "slot", - "yubiKeyTouchRequestedHeader": "Touch your YubiKey", - "yubiKeyTouchRequestedBody": "Please touch your YubiKey with serial number {}", - "yubiKeyDisabledErrorHeader": "USB is disabled", - "yubiKeyDisabledErrorBody": "YubiKey is required to open this file, please enable USB devices in settings.", - "yubiKeyErrorWithCode": "YubiKey error, code {}.", - - "bioOpenAuthPrompt": "open \"{}\"", - - "extensionErrorNoOpenFiles": "No open files", - "extensionErrorUserRejected": "The request was denied", - "extensionErrorNoMatches": "No matching logins", - "extensionErrorAlertDisplayed": "Cannot ask a question now because there's another dialog displayed, please try again", - "extensionConnectHeader": "Extension data exchange", - "extensionConnectIntro": "A browser extension that identifies itself as {} tries to exchange data with KeeWeb.", - "extensionConnectUnknownActivity": "KeeWeb doesn't verify that the connected application is what it pretends to be. Approve the request only if you recognize this activity.", - "extensionConnectFiles": "In this session, allow access to:", - "extensionConnectAllOtherFiles": "All other files", - "extensionConnectAllFiles": "All files", - "extensionConnectAskGet": "Ask before returning passwords to the extension:", - "extensionConnectAskGetMultiple": "if there's more than one match", - "extensionConnectAskGetAlways": "always", - "extensionConnectAskSave": "Ask before saving new passwords to KeeWeb:", - "extensionConnectAskSaveAlways": "always", - "extensionConnectAskSaveAuto": "when it's not possible to save automatically", - "extensionConnectSettingsAreForSession": "Settings you select here are valid only for the active session. You can view and manage sessions in KeeWeb settings.", - "extensionUnlockMessage": "Unlock to connect a browser extension", - "extensionNewGroupHeader": "New group", - "extensionNewGroupBody": "{} is trying to create a new group. Allow this?", - "extensionNewGroupPath": "Group path", - "extensionNewGroupFile": "This group will be created in:", - "extensionSaveEntryHeader": "Save password", - "extensionSaveEntryBody": "{} is trying to save a password. Allow this?", - "extensionSaveEntryAuto": "Save other passwords automatically in this session", - "extensionSaveEntryNewGroup": "new group", - "extensionSelectPasswordFor": "Select a password for {}", - - "selectEntryHeader": "Select entry", - "selectEntryEnterHint": "use the highlighted entry", - "selectEntryTypingHint": "Start typing to filter", - "selectEntryContains": "Contains text", - "selectEntrySubdomains": "Subdomains", - "selectEntryFieldHeader": "Select field", - "selectEntryFieldTouch": "Press the button on your device to generate a one-time code." + "retToApp": "return to app", + "name": "name", + "icon": "icon", + "title": "title", + "password": "password", + "user": "user", + "website": "website", + "tags": "tags", + "notes": "notes", + "entry": "entry", + "group": "group", + "noTitle": "no title", + "or": "or", + "history": "history", + "template": "template", + "templates": "templates", + "notImplemented": "Not Implemented", + "saveChanges": "Save changes", + "discardChanges": "Discard changes", + "advanced": "Advanced", + "shortcuts": "Shortcuts", + "help": "Help", + "settings": "Settings", + "plugins": "Plugins", + "ctrlKey": "ctrl", + "shiftKey": "shift", + "altKey": "alt", + "error": "error", + "oneMinute": "one minute", + "minutes": "{} minutes", + "oneHour": "one hour", + "hours": "{} hours", + "oneDay": "one day", + "days": "{} days", + "oneWeek": "one week", + "oneMonth": "one month", + "oneYear": "one year", + "cache": "cache", + "file": "file", + "device": "device", + "webdav": "WebDAV", + "dropbox": "Dropbox", + "gdrive": "Google Drive", + "onedrive": "OneDrive", + "menuAllItems": "All Items", + "menuColors": "Colors", + "menuTrash": "Trash", + "menuSetGeneral": "General", + "menuSetBrowser": "Browser", + "menuSetAbout": "About", + "menuSetDevices": "Devices", + "menuAlertNoTags": "No tags", + "menuAlertNoTagsBody": "You can add new tags while editing fields, in the Tags section.", + "menuEmptyTrash": "Empty Trash", + "menuEmptyTrashAlert": "Empty Trash?", + "menuEmptyTrashAlertBody": "You will not be able to put items back", + "menuItemCollapsed": "Double-click to expand", + "menuRestoreApp": "Open {}", + "menuQuitApp": "Quit {}", + "sysMenuAboutKeeWeb": "About {}", + "sysMenuServices": "Services", + "sysMenuHide": "Hide {}", + "sysMenuHideOthers": "Hide Others", + "sysMenuUnhide": "Show All", + "sysMenuQuit": "Quit {}", + "sysMenuEdit": "Edit", + "sysMenuUndo": "Undo", + "sysMenuRedo": "Redo", + "sysMenuCut": "Cut", + "sysMenuCopy": "Copy", + "sysMenuPaste": "Paste", + "sysMenuSelectAll": "Select All", + "sysMenuWindow": "Window", + "sysMenuMinimize": "Minimize", + "sysMenuClose": "Close Window", + "alertYes": "Yes", + "alertNo": "No", + "alertOk": "OK", + "alertCancel": "Cancel", + "alertSignIn": "Sign In", + "alertCopy": "Copy", + "alertClose": "Close", + "alertDoNotAsk": "Don't ask me anymore", + "alertAllow": "Allow", + "alertDeny": "Deny", + "appBeta": "WARNING: beta version, only for preview", + "footerOpen": "Open / New", + "footerSyncError": "Sync error", + "footerTitleGen": "Generate", + "footerTitleLock": "Lock", + "genLen": "Length", + "genNewPass": "New password", + "genPresetDefault": "default preset", + "genPresetDerived": "like old password", + "genPresetPronounceable": "pronounceable", + "genPresetMed": "medium length", + "genPresetLong": "long", + "genPresetPin4": "4-digit PIN", + "genPresetMac": "MAC address", + "genPresetHash128": "128-bit hash", + "genPresetHash256": "256-bit hash", + "genHidePass": "Hide password", + "genShowPass": "Show password", + "grpTitle": "Group", + "grpSearch": "Enable searching entries in this group", + "grpAutoType": "Enable auto-type", + "grpAutoTypeSeq": "Auto-type sequence", + "grpAutoTypeSeqDefault": "Use default auto-type sequence", + "grpTrash": "Delete group with all entries", + "tagTitle": "Tag", + "tagTrash": "Remove tag from all entries", + "tagRename": "Rename", + "tagTrashQuestion": "Remove tag from all entries?", + "tagTrashQuestionBody": "This tag will be removed from all entries. There will be no easy way to put it back.", + "tagExists": "Tag already exists", + "tagExistsBody": "Tag with this name already exists. Please choose another name.", + "tagBadName": "Bad name", + "tagBadNameBody": "Tag name cannot contain characters {}. Please remove them.", + "genPsTitle": "Generator Presets", + "genPsCreate": "New preset", + "genPsDelete": "Delete preset", + "genPsNew": "preset", + "genPsEnabled": "Show in presets list", + "genPsDefault": "Selected by default", + "genPsDefaultLength": "Default length", + "genPsUpper": "Uppercase latin letters", + "genPsLower": "Lowercase latin letters", + "genPsDigits": "Digits", + "genPsSpecial": "Special symbols", + "genPsBrackets": "Brackets", + "genPsHigh": "High ASCII characters", + "genPsAmbiguous": "Ambiguous symbols", + "genPsInclude": "Additional symbols to include", + "genPsExample": "Example of generated password", + "genPsPattern": "Pattern", + "genPsPatternHelp": "Patterns can be used to specify custom rules for selecting characters. For example, 1-AA will generate passwords starting with a digit, followed by a dash and two letters. You can use these symbols:", + "genPsAllRanges": "All symbols", + "genPsIncluded": "Additional symbols added above", + "keyChangeTitleRemote": "Master Key Changed", + "keyChangeMessageRemote": "Master key was changed for this database. Please enter a new key", + "keyChangeTitleExpired": "Master Key Expired", + "keyChangeMessageExpired": "Master key for this database is expired. Please enter a new key", + "keyChangeRepeatPassword": "Password, once again", + "keyEnter": "Enter", + "keyEsc": "Esc", + "iconFavTitle": "Download and use website favicon", + "iconSelCustom": "Select a custom icon", + "listEmptyTitle": "Empty", + "listEmptyAdd": "add with {} button above", + "listGroup": "Group", + "listNoWebsite": "no website", + "listNoUser": "no user", + "listNoAttachments": "no attachments", + "listAddTemplateHeader": "Templates", + "listAddTemplateBody1": "Templates allow you to create entries with one click. Add something to template entry and then click {} again to use this template.", + "listAddTemplateBody2": "You can always find your templates in {} group.", + "searchAddNew": "Add New", + "searchSort": "Sort", + "searchCreated": "Created", + "searchUpdated": "Updated", + "searchAttachments": "Attachments", + "searchAZ": "A {} Z", + "searchZA": "Z {} A", + "searchON": "Old {} New", + "searchNO": "New {} Old", + "searchShiftClickOr": "shift-click or", + "searchAdvTitle": "Toggle advanced search", + "searchSearchIn": "Search in", + "searchOther": "Other fields", + "searchProtect": "Secure fields", + "searchOptions": "Options", + "searchCase": "Match case", + "searchRegex": "RegEx", + "searchRank": "Auto", + "searchExact": "Exact", + "openOpen": "Open", + "openNew": "New", + "openNewFile": "New", + "openMore": "More", + "openDemo": "Demo", + "openGenerate": "Generate", + "openXml": "Import XML", + "openCaps": "Caps Lock is on", + "openClickToOpen": "Click to open a file", + "openKeyFile": "key file", + "openKeyFileDropbox": "(from dropbox)", + "openDropHere": "drop files here", + "openFailedRead": "Failed to read file", + "openNothingFound": "Nothing found", + "openNothingFoundBody": "We haven't found any suitable files.", + "openSelectFile": "Select a file", + "openSelectFileBody": "Select a file you would like to open", + "openPassFor": "Password for", + "openRemoveLastQuestion": "Delete local file?", + "openRemoveLastQuestionBody": "The file you are deleting is stored only inside the app. Delete it permanently?", + "openRemoveLastQuestionModBody": "The file you are deleting has local modifications. Delete it and discard these modifications?", + "openLocalFile": "Local file", + "openLocalFileBody": "You are going to open a file that will be stored inside the app. Changes you make will not be saved back to file system. To get the file with your data, export it from settings.", + "openLocalFileDontShow": "Don't show this again", + "openWrongFile": "Bad file", + "openWrongFileBody": "This file format is not supported. This app works with KeePass database format files (kdbx).", + "openKdbFileBody": "You are opening an old version format file (KDB). This app supports only new format (kdbx), please use KeePass v2 to convert between them.", + "openConfigHeader": "{} Settings", + "openUrl": "URL", + "openUrlDesc": "https://server/path/file.kdbx, or just file.kdbx", + "openUser": "User", + "openUserDesc": "WebDAV server user (if required)", + "openUserPlaceholder": "no user", + "openPass": "Password", + "openPassDesc": "WebDAV server password (this is not your file password)", + "openPassPlaceholder": "no password", + "openConfigError": "Error: {}", + "openConfigErrorNotFound": "File not found", + "openError": "Error", + "openErrorDescription": "There was an error opening file", + "openErrorDescriptionMaybeTouchIdChanged": "The error looks similar to what usually happens when Touch ID setup is changed, for example, you added or removed an additional finger. If it's the case, go to Settings, disable Touch ID, and re-enable it again.", + "openErrorFileNotFound": "File not found", + "openListErrorBody": "There was an error loading file list", + "openShowAllFiles": "Show all files", + "openFileNoCacheError": "File not found in the cache storage. This can happen because browser storage was cleaned up. To open the file, remove it from KeeWeb and add it again.", + "openChalRespHeader": "Challenge-Response", + "openChalRespLoading": "Loading the list of YubiKeys", + "openChalRespSelectYubiKey": "Select a YubiKey that you would like to use", + "openChalRespErrorEmpty": "No YubiKeys found.", + "openChalRespErrorEmptyMac": "First time using this feature on macOS? KeeWeb must be added to the Input Monitoring section of security settings.", + "detAttDownload": "Shift-click the attachment button to download it or", + "detAttDelToRemove": "Delete to remove", + "detAttSave": "Save as …", + "detEmpty": "Your passwords will be displayed here", + "detGroupRestore": "To restore this group, please drag it to any group outside trash", + "detHistoryClickPoint": "Click entry history timeline point to view state", + "detHistoryReturn": "return to entry", + "detHistoryRevert": "Revert to state", + "detHistoryDel": "Delete state", + "detHistoryEmpty": "empty", + "detHistoryModified": "modified", + "detHistoryRec": "record", + "detHistoryRecs": "records", + "detHistoryVersion": "Version", + "detHistorySaved": "Saved", + "detHistoryNoTitle": "no title", + "detHistoryCurState": "current state", + "detHistoryCurUnsavedState": "current unsaved state", + "detHistoryRevertAlert": "Revert to this history state?", + "detHistoryRevertAlertBody": "Your current state will be saved to history.", + "detHistoryDeleteAlert": "Delete this history state?", + "detHistoryDeleteAlertBody": "You will not be able to restore it.", + "detHistoryDiscardChangesAlert": "Discard changes made to entry?", + "detHistoryDiscardChangesAlertBody": "Unsaved changes will be lost, there will be no way back.", + "detBackToList": "back to list", + "detSetIconColor": "Change color", + "detSetIcon": "Change icon", + "detDropAttachments": "drop attachments here", + "detDelEntry": "Delete", + "detDelEntryPerm": "Delete permanently", + "detExpires": "Expires", + "detExpired": "expired", + "detGroup": "Group", + "detCreated": "Created", + "detUpdated": "Updated", + "detNetField": "New Field", + "detAttachments": "Attachments", + "detDelFromTrash": "Delete from trash?", + "detDelFromTrashBody": "You will not be able to put it back.", + "detDelFromTrashBodyHint": "To quickly remove all items from trash, click Empty icon in Trash menu.", + "detDelToTrash": "Delete the entry?", + "detDelToTrashBody": "The entry will be moved to the trash folder.", + "detFieldCopied": "Copied", + "detFieldCopiedTime": "Copied for {} seconds", + "detCopyHint": "You can copy field value by clicking its title", + "detMore": "more", + "detClickToAddField": "click to add a new field", + "detMenuAddNewField": "Add a new field", + "detMenuAddNewWebsite": "Add another website", + "detMenuShowEmpty": "Show empty fields", + "detMenuHideEmpty": "Hide empty fields", + "detMenuAddField": "Add {}", + "detMenuCopyPassword": "Copy password", + "detMenuCopyUser": "Copy user", + "detMenuCopyOtp": "Copy one-time code", + "detSetupOtp": "One-time codes", + "detClone": "Make a copy", + "detCopyEntryToClipboard": "Copy all fields", + "detClonedName": "Copy", + "detAutoType": "Auto-type", + "detAutoTypeSettings": "Auto-type settings", + "detAutoTypeEnabled": "Enable auto-type for this entry", + "detAutoTypeSequence": "Keystrokes", + "detAutoTypeInput": "Input", + "detAutoTypeShortcutsDesc": "{} or {} while the app is inactive", + "detAutoTypeObfuscation": "Mix real keystrokes with random", + "detAutoTypeWindow": "Window", + "detAutoTypeInputWindow": "Window title", + "detSetupOtpAlert": "Scan the QR code", + "detSetupOtpAlertBody": "Please copy the QR code which is displayed on the authorization page.", + "detSetupOtpAlertBody1": "1. go to the authorization page", + "detSetupOtpAlertBody2": "2. make a screenshot of the QR code {}", + "detSetupOtpAlertBody3": "3. paste it here {}", + "detSetupOtpAlertBody3Mobile": "3. select it or scan with your camera using Select/Scan button below", + "detSetupOtpAlertBody4": "If you can't scan the code, click Enter code manually", + "detSetupOtpManualButton": "Enter code manually", + "detSetupOtpScanButton": "Select/Scan", + "detSetupOtpAlertBodyWith": "with {}", + "detOtpImageError": "Error reading image", + "detOtpImageErrorBody": "Sorry, we could not read the image format, please contact the app authors with error details.", + "detOtpImageReading": "Reading QR code...", + "detOtpQrError": "QR code scan error", + "detOtpQrErrorBody": "Sorry, we could not read the QR code, please try once again or contact the app authors with error details.", + "detOtpQrWrong": "Wrong QR code", + "detOtpQrWrongBody": "Your QR code was successfully scanned but it doesn't contain one-time code data.", + "detOtpField": "One-time code", + "detOtpClickToTouch": "Click to generate", + "detOtpGenerating": "Generating...", + "detOtpTouch": "Touch your {}", + "detLockField": "Lock this field, so its content isn't searchable and visible. Displaying the content requires explicitly clicking it.", + "detUnlockField": "Unlock this field, making its content searchable and visible immediately", + "detRevealField": "Reveal", + "detHideField": "Hide", + "detAutoTypeField": "Auto type", + "detIssuesHideTooltip": "Hide this warning", + "detIssueWeakPassword": "The password is weak, it's recommended to change it.", + "detIssuePoorPassword": "The password is very weak, it's strongly recommended to change it.", + "detIssuePwnedPassword": "This password has been exposed in a data breach according to {}, it's recommended to change it.", + "detIssuePasswordCheckError": "There was an error checking password strength online.", + "detIssueOldPassword": "The password is old.", + "detIssueCloseAlertHeader": "Hide password issues", + "detIssueCloseAlertBody": "There are different ways you can hide this warning:", + "detIssueCloseAlertEntry": "Don't show for this entry", + "detIssueCloseAlertSettings": "Adjust global settings", + "autoTypeEntryFields": "Entry fields", + "autoTypeModifiers": "Modifier keys", + "autoTypeKeys": "Keys", + "autoTypeLink": "more...", + "autoTypeError": "Auto-type error", + "autoTypeErrorGeneric": "There was an error performing auto-type: {}", + "autoTypeErrorAccessibilityMacOS": "We tried to send keystrokes to the application, but it doesn't seem to work. This may happen because of missing permissions, click here to read more about it:", + "autoTypeErrorGlobal": "To use a system-wide shortcut, please focus the app where you want to type your password", + "autoTypeErrorNotInstalled": "{} is not installed", + "autoTypeHeader": "Auto-Type: Select", + "autoTypeMsgNoWindow": "We were unable to get active window title, start typing to search", + "autoTypeMsgMatchedByWindow": "Select a password for {}", + "autoTypeNoMatches": "no matches", + "autoTypeSelectionHint": "Type the autotype sequence", + "autoTypeSelectionHintAction": "Only type the password", + "autoTypeSelectionHintOpt": "Only type the username", + "autoTypeSelectionHintShift": "Other fields", + "autoTypeSelectionOtp": "One-time code", + "autoTypeUnlockMessage": "Unlock to auto-type", + "appSecWarn": "Not Secure!", + "appSecWarnBody1": "You have loaded this app with an insecure connection. Someone may be watching you and stealing your passwords. We strongly advise you to stop, unless you clearly understand what you're doing.", + "appSecWarnBody2": "Yes, your database is encrypted but no one can guarantee that the app has not been modified on the way to you.", + "appSecWarnBtn": "I understand the risks, continue", + "appUnsavedWarn": "Unsaved changes!", + "appUnsavedWarnBody": "You have unsaved files, if you close the app, changes will be lost.", + "appDontExitBtn": "Don't exit", + "appCannotLockAutoInit": "The app cannot be locked because autosave is disabled.", + "appCannotLock": "You have unsaved changes that will be lost. Continue?", + "appAutoSave": "Save changes automatically", + "appSaveError": "Save Error", + "appSaveErrorBody": "Failed to auto-save file", + "appSaveErrorBodyMul": "Failed to auto-save files:", + "appSaveErrorExitLoseChanges": "Quit and lose all changes", + "appSaveErrorExitLoseChangesBody": "You can either quit the app and lose all changes, or go file settings to export data", + "appSettingsError": "Error loading app", + "appSettingsErrorBody": "There was an error loading app settings. Please double check the app URL or contact your administrator.", + "appNotSupportedError": "Your browser doesn't support some important features we're using.", + "appTabWarn": "Too many tabs", + "appTabWarnBody": "KeeWeb cannot be used in two browser tabs simultaneously, please close this tab.", + "appRightsAlert": "Locking KeeWeb app", + "appRightsAlertBody1": "Your KeeWeb app is currently not guarded against unauthorized changes. We're asking you for permissions to make the app writable only for administrators.", + "appRightsAlertBody2": "Don't want to give permissions? You can do it yourself in Terminal", + "appBrowserAuthComplete": "Authentication is complete, you may close this tab now.", + "setGenTitle": "General Settings", + "setGenUpdate": "Update", + "setGenNewVersion": "New app version was released and downloaded", + "setGenReleaseNotes": "View release notes", + "setGenReloadToUpdate": "Reload to update", + "setGenUpdateManual": "A new version has been released. It will check for updates and install them automatically, but auto-upgrading from your version is not possible.", + "setGenDownloadUpdate": "Download update", + "setGenUpdateAuto": "Download and install automatically", + "setGenUpdateCheck": "Check but don't install", + "setGenNoUpdate": "Never check for updates", + "setGenUpdateChecking": "Checking for updates", + "setGenCheckUpdate": "Check for updates", + "setGenErrorChecking": "Error checking for updates", + "setGenLastCheckSuccess": "Last successful check was at {}", + "setGenLastCheckVer": "the latest version was {}", + "setGenCheckedAt": "Checked at", + "setGenLatestVer": "you are using the latest version", + "setGenNewVer": "new version {} available, released", + "setGenDownloadingUpdate": "Downloading update...", + "setGenExtractingUpdate": "Extracting update...", + "setGenCheckErr": "There was an error downloading new version", + "setGenNeverChecked": "Never checked for updates", + "setGenRestartToUpdate": "Restart KeeWeb to update", + "setGenDownloadAndRestart": "Download update and restart", + "setGenAppearance": "Appearance", + "setGenTheme": "Theme", + "setGenThemeDefault": "Default", + "setGenThemeDark": "Dark", + "setGenThemeLight": "Light", + "setGenThemeBlue": "Flat blue", + "setGenThemeFb": "Dark blue", + "setGenThemeBl": "Light blue", + "setGenThemeBrown": "Brownie", + "setGenThemeDb": "Dark brown", + "setGenThemeLb": "Light brown", + "setGenThemeTerminal": "Terminal", + "setGenThemeTe": "Terminal", + "setGenThemeLt": "Terminal light", + "setGenThemeHighContrast": "High contrast", + "setGenThemeHc": "High contrast", + "setGenThemeDc": "Dark contrast", + "setGenThemeSol": "Solarized", + "setGenThemeSd": "Solarized dark", + "setGenThemeSl": "Solarized light", + "setGenMoreThemes": "More themes", + "setGenAutoSwitchTheme": "Automatically switch between light and dark theme when possible", + "setGenLocale": "Language", + "setGenLocOther": "other languages are available as plugins", + "setGenFontSize": "Font size", + "setGenFontSizeNormal": "Normal", + "setGenFontSizeLarge": "Large", + "setGenFontSizeLargest": "Largest", + "setGenTitlebarStyle": "Window style (requires restart)", + "setGenTitlebarStyleDefault": "Default", + "setGenTitlebarStyleHidden": "Custom title", + "setGenTitlebarStyleHiddenInset": "Custom title, draggable window", + "setGenShowSubgroups": "Show entries from all subgroups", + "setGenTableView": "Entries list table view", + "setGenColorfulIcons": "Colorful custom icons in the list", + "setGenUseMarkdown": "Markdown in notes", + "setGenUseGroupIconForEntries": "Automatically use group icon for new entries", + "setGenDirectAutotype": "If only one matching entry is found, select that one automatically for Autotype", + "setGenFunction": "Function", + "setGenAutoSyncOnClose": "Automatically save and sync on close", + "setGenAutoSyncTimer": "Automatically save and sync periodically", + "setGenAutoSyncTimerOff": "Disabled", + "setGenAutoSyncTimerInterval": "Every {} minute(s)", + "setGenRememberKeyFiles": "Remember key files", + "setGenNoRememberKeyFiles": "Don't remember", + "setGenRememberKeyFilesData": "Store in the internal app storage", + "setGenRememberKeyFilesPath": "Remember only path to key files", + "setGenLockInactive": "If the app is inactive", + "setGenNoAutoLock": "Don't auto-lock", + "setGenLockMinutes": "In {} minutes", + "setGenLockHour": "In an hour", + "setGenLockHours": "In {} hours", + "setGenLockDay": "In a day", + "setGenClearClip": "Clear clipboard after copy", + "setGenNoClear": "Don't clear", + "setGenClearSeconds": "In {} seconds", + "setGenClearMinute": "In a minute", + "setGenMinInstead": "Minimize the app instead of close", + "setGenMinOnFieldCopy": "Minimize on field copy", + "setGenLock": "Auto lock", + "setGenLockMinimize": "When the app is minimized", + "setGenLockCopy": "On password copy", + "setGenLockAutoType": "On auto-type", + "setGenLockOrSleep": "When the computer is locked or put to sleep", + "setGenStorage": "Storage", + "setGenDisableOfflineStorage": "Don't cache loaded files in offline storage", + "setGenShortLivedStorageToken": "Use short-lived sessions in cloud storage providers", + "setGenStorageLogout": "Log out", + "setGenShowAdvanced": "Show advanced settings", + "setGenDevTools": "Show dev tools", + "setGenTryBeta": "Try beta version until restart", + "setGenTryBetaWarning": "Unsaved files", + "setGenTryBetaWarningBody": "Please save all files and click this button again", + "setGenShowAppLogs": "Show app logs", + "setGenReloadApp": "Reload the app", + "setGenFieldLabelDblClickAutoType": "Auto-type on double-clicking field labels", + "setGenTouchId": "Touch ID", + "setGenTouchIdDisabled": "Don't use Touch ID", + "setGenTouchIdMemory": "Unlock with Touch ID only while KeeWeb is running", + "setGenTouchIdFile": "Always use Touch ID instead of master password", + "setGenTouchIdPass": "Require master password after", + "setGenAudit": "Audit", + "setGenAuditPasswords": "Show warnings about password strength", + "setGenAuditPasswordEntropy": "Check password length and randomness", + "setGenExcludePinsFromAudit": "Never check short numeric PIN codes, such as 123456", + "setGenCheckPasswordsOnHIBP": "Check passwords using an online service {}", + "setGenHelpHIBP": "KeeWeb can check if your passwords have been previously exposed in a data breach using an online service. Your password cannot be recovered based on data sent online, however, the number of passwords checked this way may be exposed. More about your privacy when using this service can be found {}. If this option is enabled, KeeWeb will automatically check your passwords there.", + "setGenHelpHIBPLink": "here", + "setGenAuditPasswordAge": "Old passwords", + "setGenAuditPasswordAgeOff": "Don't show warnings about old passwords", + "setGenAuditPasswordAgeOneYear": "Show warnings for passwords older than one year", + "setGenAuditPasswordAgeYears": "Show warnings for passwords older than {} years", + "setFilePath": "File path", + "setFileStorage": "This file is loaded from {}.", + "setFileIntl": "This file is stored in the internal app storage", + "setFileLocalHint": "Want to work seamlessly with local files?", + "setFileDownloadApp": "Download a desktop app", + "setFileSave": "Save", + "setFileSaveTo": "Save to …", + "setFileClose": "Close", + "setFileSync": "Sync", + "setFileSyncVerb": "Sync", + "setFileSaveToXml": "XML", + "setFileSaveToHtml": "HTML", + "setFileLastSync": "Last sync", + "setFileLastSyncUnknown": "unknown", + "setFileSyncInProgress": "sync in progress", + "setFileSyncError": "Sync error", + "setFilePass": "Master password", + "setFileConfirmPass": "Confirm Master password", + "setFilePassChange": "to change your password, please type it in the Confirm field", + "setFilePassChanged": "your password was changed; leave the field blank to use the old password", + "setFilePassNotMatch": "passwords don't match, please type it again", + "setFileKeyFile": "Key file", + "setFileSelKeyFile": "Select a key file", + "setFileNames": "Names", + "setFileDefUser": "Default user", + "setFileEnableTrash": "Enable trash", + "setFileHistMode": "Entry history", + "setFileHistLimited": "Delete old history records automatically", + "setFileHistDisabled": "Don't save history", + "setFileHistUnlimited": "Keep history records forever", + "setFileHistLen": "History length, keep last records per entry", + "setFileHistSize": "History size, total MB per file", + "setFileBackups": "Backups", + "setFileBackupEnable": "Backup this file", + "setFileBackupPath": "Backup path", + "setFileBackupTime": "Make backups", + "setFileBackupNow": "Backup now", + "setFileBackupNowWorking": "Working...", + "setFileBackupError": "Backup error", + "setFileBackupErrorDescription": "Error writing backup file", + "setFileBackupErrorIsDir": "Backup path invalid", + "setFileBackupErrorIsDirDescription": "The backup path seems to point to a directory. Please specify a filename inside a directory instead.", + "setFileBackupOnSave": "Every time I save the file", + "setFileBackupDaily": "Daily", + "setFileBackupWeekly": "Weekly", + "setFileBackupMonthly": "Monthly", + "setFileBackupManually": "Manually, no auto-backups", + "setFileRounds": "Key encryption rounds", + "setFileKdfParams": "Key derivation function", + "setFileKdfParamsIter": "Iterations", + "setFileKdfParamsMem": "Memory, KB", + "setFileKdfParamsPar": "Parallelism", + "setFileKeyChangeForce": "Ask to change key after (days)", + "setFileUseKeyFile": "Use key file", + "setFileUseGenKeyFile": "Use the generated key file", + "setFileUseOldKeyFile": "Use the old key file", + "setFileGenKeyFile": "Generate a new key file", + "setFileDontUseKeyFile": "Don't use a key file", + "setFileEmptyPass": "Empty password", + "setFileEmptyPassBody": "Saving database with an empty password makes it completely unprotected. Do you really want to do it?", + "setFileSaveError": "Save error", + "setFileSaveErrorBody": "Error saving to file", + "setFileAlreadyExists": "Already exists", + "setFileAlreadyExistsBody": "File {} already exists. Overwrite it?", + "setFileUnsaved": "Unsaved changes", + "setFileUnsavedBody": "There are unsaved changes in this file", + "setFileCloseNoSave": "Close and lose changes", + "setFileDontClose": "Don't close", + "setFileFormatVersion": "File format", + "setFileExportRaw": "Exporting your passwords", + "setFileExportRawBody": "The exported file will contain your passwords, they will not be encrypted there. Would you like to proceed?", + "setFileDeviceIntro": "One-time codes from this {} will be displayed in the app.", + "setFileDeviceSettings": "Settings", + "setFileYubiKey": "YubiKey", + "setFileDontUseYubiKey": "Don't use a YubiKey", + "setFileRefreshYubiKeyList": "Refresh the list", + "setFileYubiKeyHeader": "YubiKey", + "setFileYubiKeyBody": "Using a YubiKey as a part of master key is dangerous and you may lose access to your passwords if something goes wrong. Have you made a backup of your file before changing this setting?", + "setFileYubiKeyErrorEmptyMac": "Looks like there's a YubiKey plugged in, but it's not visible. KeeWeb must be added to the Input Monitoring section of security settings to access YubiKeys.", + "setShTitle": "Shortcuts", + "setShShowAll": "show all items", + "setShColors": "show items with colors", + "setShTrash": "go to Trash", + "setShFind": "search, or just start typing", + "setShClearSearch": "clear search", + "setShCopyPass": "copy password or selected field", + "setShCopyUser": "copy user", + "setShCopyUrl": "copy website", + "setShAutoType": "auto-type selected entry", + "setShPrev": "go to previous item", + "setShNext": "go to next item", + "setShCreateEntry": "create entry", + "setShOpen": "open / new", + "setShSave": "save all files", + "setShGen": "generate password", + "setShSet": "app settings", + "setShCopyPassGlobal": "copy password", + "setShCopyOtp": "copy OTP", + "setShAutoTypeGlobal": "auto-type", + "setShCopyPassOnly": "copy password", + "setShRestoreApp": "open {}", + "setShGlobal": "These system-wide shortcuts work when the app is running in background. You can click them to select your own shortcut.", + "setShLock": "lock database", + "setShEdit": "Press a new key combination to set it as shortcut", + "setPlInstallTitle": "Install new plugins", + "setPlInstallDesc": "KeeWeb plugins add features, themes, and languages to KeeWeb. Plugins run with the same privileges as KeeWeb, they can access and manage all your passwords. Never install plugins you don't trust.", + "setPlInstallLabel": "Plugin URL", + "setPlInstallBtn": "Install", + "setPlInstallBtnProgress": "Installing", + "setPlUninstallBtn": "Uninstall", + "setPlDisableBtn": "Disable", + "setPlEnableBtn": "Enable", + "setPlUpdateBtn": "Update", + "setPlLocaleBtn": "Switch to this language", + "setPlThemeBtn": "Switch to this theme", + "setPlJs": "code", + "setPlCss": "styles", + "setPlLoc": "language", + "setPlCreatedBy": "Created by {}", + "setPlLoadTime": "took {} to load", + "setPlLastUpdate": "Last check for updates", + "setPlLoadError": "error loading plugin", + "setPlGalleryLoading": "Loading plugins, please wait a bit", + "setPlGalleryLoadError": "Error loading plugins", + "setPlInstallUrlTitle": "Add plugin from URL", + "setPlInstallUrlDesc": "If the plugin is not in the gallery, you can install it manually from URL", + "setPlOfficial": "Official KeeWeb plugin", + "setPlSearch": "Search for plugins", + "setPlDevelop": "Want to develop your own plugins?", + "setPlDevelopStart": "Start here", + "setPlTranslate": "Or you can {}", + "setPlTranslateLink": "translate the app to your language", + "setPlAutoUpdate": "Update automatically", + "setPlLoadGallery": "Load plugin gallery", + "setBrowserTitle": "Browser", + "setBrowserIntroDesktop": "KeeWeb can enter passwords using auto-type, however, a browser extension may be a more convenient way of doing it. KeeWeb supports two browser extensions:", + "setBrowserIntroKeeWebConnect": "the official KeeWeb extension, it's built with features of KeeWeb in mind, but you may miss some advanced capabilities that can be found in the other extension.", + "setBrowserIntroKeePassXcBrowser": "this extension was developed for KeePassXC, it's been on the market for a while and it is quite solid. The extension is not a part of KeeWeb and there may be compatibility issues.", + "setBrowserIntroWeb": "Install our browser extension to auto-fill passwords from KeeWeb on different pages. The browser extension will connect to a KeeWeb tab in your browser to fetch passwords. Click here to download the extension:", + "setBrowserNotEnabled": "Browser integration is not enabled, extensions won't be able to connect to KeeWeb. Use the checkboxes below to enable it:", + "setBrowserEnablePerBrowser": "Enable browser integration using the checkboxes below:", + "setBrowserFocusIfLocked": "Open KeeWeb if a browser extension tries to connect while there's no open file", + "setBrowserFocusIfEmpty": "Show the entry selection screen if there's no match found by URL", + "setBrowserOtherBrowsers": "Other browsers", + "setBrowserExtensionFor": "for {}", + "setBrowserExtensionNotSupported": "Not supported", + "setBrowserExtensionHelp": "How to install?", + "setBrowserExtensionInstall": "Install the extension", + "setBrowserExtensionKPXCWarnHeader": "{} will stop working", + "setBrowserExtensionKPXCWarnBody1": "Unfortunately it's not possible to connect one extension to several apps. If you connect the extension to KeeWeb, we'll overwrite its app association, which means that integration with {} will stop working. Even if you uncheck this checkbox, the association with {} won't be restored. To make it work again, configure browser integration in {} settings.", + "setBrowserExtensionKPXCWarnBody2": "Configure the extension to use KeeWeb?", + "setBrowserSessions": "Sessions", + "setBrowserSessionsEmpty": "No connected sessions.", + "setBrowserSessionsIntro": "These extensions are now connected to KeeWeb.", + "setBrowserSessionsActiveTooltip": "Active session", + "setBrowserSessionsActiveText": "This session is active. It can exchange data with KeeWeb based on the following permissions:", + "setBrowserSessionsInactiveTooltip": "Inactive session", + "setBrowserSessionsInactiveText": "This session is inactive. The extension is connected to KeeWeb, however, it hasn't tried to exchange data. When the extension requests anything, you will be able to choose what you want to share.", + "setBrowserSessionsDeniedTooltip": "Access denied", + "setBrowserSessionsDeniedText": "This session is inactive. The extension is connected to KeeWeb, however, you denied access to data.", + "setBrowserSessionsConnectedDate": "Connected", + "setBrowserSessionsTerminate": "Terminate this session", + "setBrowserSessionsAccessToFiles": "Allow access to files", + "setBrowserSessionsNoFileAccess": "The extension doesn't have access to any file, it won't be able to fetch passwords from KeeWeb.", + "setBrowserSessionsPasswordsRead": "Passwords read", + "setBrowserSessionsPasswordsWritten": "Passwords saved", + "setDevicesTitle": "Devices", + "setDevicesEnableUsb": "Enable interaction with USB devices", + "setDevicesYubiKeyIntro": "It's recommended to read {} before using a YubiKey.", + "setDevicesYubiKeyIntroLink": "this document", + "setDevicesYubiKeyToolsDesc": "To be able to use YubiKey in this mode, you need to install a tool called {}.", + "setDevicesYubiKeyToolsDesc2": "{} to get more information about this tool.", + "setDevicesYubiKeyToolsDescLink": "Click here", + "setDevicesYubiKeyToolsStatusChecking": "Checking if {} is installed", + "setDevicesYubiKeyToolsStatusOk": "{} is installed", + "setDevicesYubiKeyToolsStatusError": "{} is not installed or not working", + "setDevicesYubiKeyOtpTitle": "One-time codes", + "setDevicesYubiKeyOtpDesc": "YubiKey can be used to generate one-time codes for different services.", + "setDevicesYubiKeyOtpShowIcon": "Show the icon on the start screen", + "setDevicesYubiKeyOtpAutoOpen": "Automatically load one-time codes when there are open files", + "setDevicesYubiKeyOtpMatchEntries": "Show matching one-time codes in entries", + "setDevicesYubiKeyChalRespTitle": "Challenge-Response", + "setDevicesYubiKeyChalRespDesc": "It's also possible to use a YubiKey in challenge-response mode, so that a piece of private key used to encrypt files resides on a YubiKey.", + "setDevicesYubiKeyChalRespShow": "Show the option to use a YubiKey when opening files", + "setDevicesYubiKeyStuckWorkaround": "Reconnect the YubiKey if it seems to be stuck during loading", + "setDevicesYubiKeyRememberChalResp": "Remember challenge-response while the app is open", + "setAboutTitle": "About", + "setAboutBuilt": "This app is built with these awesome tools", + "setAboutLic": "License", + "setAboutLicComment": "The app itself and all included components are licensed under MIT license, unless otherwise specified", + "setAboutFirst": "This is an open-source app created by {}", + "setAboutSecond": "and licensed under {}.", + "setAboutSource": "The source code and issues are on {}.", + "setHelpFormat": "File Format", + "setHelpFormatBody": "This is a port of {} app built with web technologies. It understands files in KeePass format (kdbx). You can create such files (password databases) either in KeePass or in this app. The file format is 100% compatible and should be understood by both apps.", + "setHelpProblems": "Need some help?", + "setHelpProblems1": "If something goes wrong, please {}", + "setHelpProblems2": "or {}", + "setHelpOpenIssue": "open an issue on GitHub", + "setHelpContactLink": "contact the developer directly", + "setHelpAppInfo": "App information", + "setHelpOtherPlatforms": "Other platforms", + "setHelpDesktopApps": "Desktop apps", + "setHelpWebApp": "Web app", + "setHelpUpdates": "Updates", + "setHelpTwitter": "App twitter", + "dropboxSetupDesc": "Some configuration is required to use Dropbox in a self-hosted app. Please create your own Dropbox app and fill in its key below.", + "dropboxAppKey": "Dropbox app key", + "dropboxAppKeyDesc": "Copy the key from your Dropbox app (Developer settings)", + "dropboxAppKeyHint": "your app key", + "dropboxAppSecret": "Dropbox app secret", + "dropboxAppSecretDesc": "The secret can be found next to the app key", + "dropboxFolder": "App folder", + "dropboxFolderDesc": "If your app is linked to entire Dropbox (not app folder), set the folder with your kdbx files here", + "dropboxFolderSettingsDesc": "Select any folder in your Dropbox where files will be stored (root folder by default)", + "dropboxFolderPlaceholder": "default folder", + "dropboxLink": "Link the app to", + "dropboxLinkApp": "App folder (Apps/KeeWeb)", + "dropboxLinkFull": "Full Dropbox or any folder", + "dropboxLinkCustom": "Own Dropbox app", + "gdriveSharedWithMe": "Shared with me", + "gdriveSharedDrives": "Shared drives", + "webdavSaveMethod": "Save method", + "webdavSaveMove": "Upload a temporary file and move", + "webdavSavePut": "Overwrite the kdbx file with PUT", + "webdavNoLastModified": "Last-Modified HTTP header is absent", + "webdavStatReload": "Always reload the file instead of relying on Last-Modified HTTP header", + "launcherSave": "Save Passwords Database", + "launcherFileFilter": "KeePass files", + "authPopupRequired": "Pop-ups are blocked", + "authPopupRequiredBody": "Please allow pop-ups in your browser or try again.", + "exportFileInfo": "File information", + "exportHtmlName": "Name", + "exportHtmlDate": "Export date", + "exportGenerator": "Software", + "exportDescription": "This file is generated with {}.", + "importCsvTitle": "Import from CSV", + "importCsvRun": "Import", + "importIgnoreField": "Ignore", + "importTo": "Entries will be imported to", + "importNewFile": "New file", + "yubiKeyStuckError": "The YubiKey seems to be stuck, auto-repair can be enabled in app settings.", + "yubiKeyNoKeyHeader": "YubiKey required", + "yubiKeyNoKeyBody": "Please insert your YubiKey with serial number {}", + "yubiKeySlot": "slot", + "yubiKeyTouchRequestedHeader": "Touch your YubiKey", + "yubiKeyTouchRequestedBody": "Please touch your YubiKey with serial number {}", + "yubiKeyDisabledErrorHeader": "USB is disabled", + "yubiKeyDisabledErrorBody": "YubiKey is required to open this file, please enable USB devices in settings.", + "yubiKeyErrorWithCode": "YubiKey error, code {}.", + "bioOpenAuthPrompt": "open \"{}\"", + "extensionErrorNoOpenFiles": "No open files", + "extensionErrorUserRejected": "The request was denied", + "extensionErrorNoMatches": "No matching logins", + "extensionErrorAlertDisplayed": "Cannot ask a question now because there's another dialog displayed, please try again", + "extensionConnectHeader": "Extension data exchange", + "extensionConnectIntro": "A browser extension that identifies itself as {} tries to exchange data with KeeWeb.", + "extensionConnectUnknownActivity": "KeeWeb doesn't verify that the connected application is what it pretends to be. Approve the request only if you recognize this activity.", + "extensionConnectFiles": "In this session, allow access to:", + "extensionConnectAllOtherFiles": "All other files", + "extensionConnectAllFiles": "All files", + "extensionConnectAskGet": "Ask before returning passwords to the extension:", + "extensionConnectAskGetMultiple": "if there's more than one match", + "extensionConnectAskGetAlways": "always", + "extensionConnectAskSave": "Ask before saving new passwords to KeeWeb:", + "extensionConnectAskSaveAlways": "always", + "extensionConnectAskSaveAuto": "when it's not possible to save automatically", + "extensionConnectSettingsAreForSession": "Settings you select here are valid only for the active session. You can view and manage sessions in KeeWeb settings.", + "extensionUnlockMessage": "Unlock to connect a browser extension", + "extensionNewGroupHeader": "New group", + "extensionNewGroupBody": "{} is trying to create a new group. Allow this?", + "extensionNewGroupPath": "Group path", + "extensionNewGroupFile": "This group will be created in:", + "extensionSaveEntryHeader": "Save password", + "extensionSaveEntryBody": "{} is trying to save a password. Allow this?", + "extensionSaveEntryAuto": "Save other passwords automatically in this session", + "extensionSaveEntryNewGroup": "new group", + "extensionSelectPasswordFor": "Select a password for {}", + "selectEntryHeader": "Select entry", + "selectEntryEnterHint": "use the highlighted entry", + "selectEntryTypingHint": "Start typing to filter", + "selectEntryContains": "Contains text", + "selectEntrySubdomains": "Subdomains", + "selectEntryFieldHeader": "Select field", + "selectEntryFieldTouch": "Press the button on your device to generate a one-time code." } diff --git a/package.json b/package.json index 81ed008f..7a57278c 100644 --- a/package.json +++ b/package.json @@ -1,143 +1,143 @@ { - "name": "keeweb", - "version": "1.17.6", - "description": "Free cross-platform password manager compatible with KeePass", - "main": "Gruntfile.js", - "private": true, - "homepage": "https://keeweb.info", - "repository": { - "type": "git", - "url": "https://github.com/keeweb/keeweb" - }, - "dependencies": { - "@babel/core": "^7.13.16", - "@babel/plugin-external-helpers": "^7.12.13", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-optional-chaining": "^7.13.12", - "@babel/preset-env": "^7.13.15", - "@fortawesome/fontawesome-free": "^5.15.3", - "@keeweb/keeweb-native-messaging-host": "https://github.com/keeweb/keeweb-connect/releases/download/0.1.3/keeweb-native-messaging-host.tgz", - "@keeweb/keeweb-native-modules": "https://github.com/keeweb/keeweb-native-modules/releases/download/0.11.6/keeweb-native-modules.tgz", - "adm-zip": "^0.5.5", - "argon2-browser": "1.15.4", - "autoprefixer": "^10.2.5", - "babel-cli": "^6.26.0", - "babel-eslint": "^10.1.0", - "babel-loader": "8.2.2", - "baron": "3.0.3", - "base64-inline-loader": "^1.1.1", - "base64-loader": "1.0.0", - "bourbon": "^7.0.0", - "chai": "^4.3.4", - "cross-env": "^7.0.3", - "css-loader": "^5.2.4", - "dompurify": "^2.2.8", - "electron": "^12.0.5", - "electron-builder": "^22.10.5", - "electron-evil-feature-patcher": "^1.2.1", - "electron-notarize": "^1.0.0", - "electron-osx-sign": "^0.5.0", - "eslint": "^7.25.0", - "eslint-config-prettier": "^8.3.0", - "eslint-config-standard": "^16.0.2", - "eslint-plugin-babel": "^5.3.1", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.4.0", - "eslint-plugin-promise": "5.1.0", - "eslint-plugin-standard": "4.1.0", - "exports-loader": "2.0.0", - "form-data": "^4.0.0", - "fs-extra": "^9.1.0", - "grunt": "1.4.0", - "grunt-chmod": "^1.1.1", - "grunt-contrib-clean": "2.0.0", - "grunt-contrib-compress": "github:keeweb/grunt-contrib-compress#08966cd", - "grunt-contrib-copy": "1.0.0", - "grunt-contrib-deb": "github:keeweb/grunt-contrib-deb#e9b6e9f", - "grunt-contrib-htmlmin": "3.1.0", - "grunt-contrib-watch": "1.1.0", - "grunt-electron": "12.0.0", - "grunt-eslint": "23.0.0", - "grunt-inline-alt": "github:keeweb/grunt-inline-alt#ec9f6ad", - "grunt-string-replace": "1.3.1", - "grunt-webpack": "4.0.3", - "handlebars": "^4.7.7", - "handlebars-loader": "1.7.1", - "html-minifier": "4.0.0", - "ignore-loader": "^0.1.2", - "jquery": "3.6.0", - "json-loader": "^0.5.7", - "jsqrcode": "github:antelle/jsqrcode#0.1.3", - "kdbxweb": "^1.14.4", - "load-grunt-tasks": "5.1.0", - "lodash": "^4.17.21", - "marked": "^2.0.3", - "mini-css-extract-plugin": "^1.5.1", - "mocha": "^8.3.2", - "morphdom": "^2.6.1", - "node-fetch": "^2.6.1", - "normalize.css": "8.0.1", - "optimize-css-assets-webpack-plugin": "^5.0.4", - "pikaday": "1.8.2", - "pkcs11-smartcard-sign": "^1.0.1", - "postcss": "^8.2.13", - "postcss-loader": "^5.2.0", - "prettier": "^2.2.1", - "puppeteer": "^9.0.0", - "raw-loader": "^4.0.2", - "run-remote-task": "^0.5.0", - "sass": "^1.32.11", - "sass-loader": "^11.0.1", - "stats-webpack-plugin": "0.7.0", - "string-replace-loader": "^3.0.1", - "strip-sourcemap-loader": "0.0.1", - "sumchecker": "^3.0.1", - "svg2ttf": "^5.2.0", - "svgicons2svgfont": "^9.2.0", - "terser-webpack-plugin": "^5.1.1", - "time-grunt": "2.0.0", - "tweetnacl": "^1.0.3", - "url-loader": "^4.1.1", - "wawoff2": "^2.0.0", - "webpack": "^5.36.1", - "webpack-bundle-analyzer": "^4.4.1", - "webpack-dev-server": "^3.11.2" - }, - "optionalDependencies": { - "grunt-appdmg": "github:keeweb/grunt-appdmg#874ad83", - "keytar": "^7.7.0" - }, - "scripts": { - "start": "grunt", - "test": "grunt test", - "build-beta": "grunt --beta && cp dist/index.html ../keeweb-beta/index.html && cd ../keeweb-beta && git add index.html && git commit -a -m 'beta' && git push origin master", - "electron": "cross-env KEEWEB_IS_PORTABLE=0 ELECTRON_DISABLE_SECURITY_WARNINGS=1 KEEWEB_EMULATE_HARDWARE_ENCRYPTION=persistent KEEWEB_HTML_PATH=http://localhost:8085 electron desktop --no-sandbox", - "dev": "grunt dev", - "dev-desktop-macos": "grunt dev-desktop-darwin --skip-sign", - "dev-desktop-macos-signed": "grunt dev-desktop-darwin-signed", - "dev-desktop-windows": "grunt dev-desktop-win32 --skip-sign", - "dev-desktop-linux": "grunt dev-desktop-linux --skip-sign", - "babel-helpers": "babel-external-helpers -l 'slicedToArray,toConsumableArray,defineProperty,typeof' -t global > app/lib/babel-helpers.js" - }, - "author": { - "name": "Antelle", - "email": "antelle.net@gmail.com", - "url": "http://antelle.net" - }, - "engines": { - "node": ">=10.0" - }, - "license": "MIT", - "readme": "README.md", - "browserslist": [ - "last 2 Firefox versions", - "last 2 Chrome versions", - "last 2 Safari version", - "last 2 iOS versions", - "last 2 Edge versions", - "last 1 Opera version", - "last 1 ChromeAndroid version", - "Electron > 6.0.1" - ] + "name": "keeweb", + "version": "1.17.6", + "description": "Free cross-platform password manager compatible with KeePass", + "main": "Gruntfile.js", + "private": true, + "homepage": "https://keeweb.info", + "repository": { + "type": "git", + "url": "https://github.com/keeweb/keeweb" + }, + "dependencies": { + "@babel/core": "^7.13.16", + "@babel/plugin-external-helpers": "^7.12.13", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/preset-env": "^7.13.15", + "@fortawesome/fontawesome-free": "^5.15.3", + "@keeweb/keeweb-native-messaging-host": "https://github.com/keeweb/keeweb-connect/releases/download/0.1.3/keeweb-native-messaging-host.tgz", + "@keeweb/keeweb-native-modules": "https://github.com/keeweb/keeweb-native-modules/releases/download/0.11.6/keeweb-native-modules.tgz", + "adm-zip": "^0.5.5", + "argon2-browser": "1.15.4", + "autoprefixer": "^10.2.5", + "babel-cli": "^6.26.0", + "babel-eslint": "^10.1.0", + "babel-loader": "8.2.2", + "baron": "3.0.3", + "base64-inline-loader": "^1.1.1", + "base64-loader": "1.0.0", + "bourbon": "^7.0.0", + "chai": "^4.3.4", + "cross-env": "^7.0.3", + "css-loader": "^5.2.4", + "dompurify": "^2.2.8", + "electron": "^12.0.5", + "electron-builder": "^22.10.5", + "electron-evil-feature-patcher": "^1.2.1", + "electron-notarize": "^1.0.0", + "electron-osx-sign": "^0.5.0", + "eslint": "^7.25.0", + "eslint-config-prettier": "^8.3.0", + "eslint-config-standard": "^16.0.2", + "eslint-plugin-babel": "^5.3.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^3.4.0", + "eslint-plugin-promise": "5.1.0", + "eslint-plugin-standard": "4.1.0", + "exports-loader": "2.0.0", + "form-data": "^4.0.0", + "fs-extra": "^9.1.0", + "grunt": "1.4.0", + "grunt-chmod": "^1.1.1", + "grunt-contrib-clean": "2.0.0", + "grunt-contrib-compress": "github:keeweb/grunt-contrib-compress#08966cd", + "grunt-contrib-copy": "1.0.0", + "grunt-contrib-deb": "github:keeweb/grunt-contrib-deb#e9b6e9f", + "grunt-contrib-htmlmin": "3.1.0", + "grunt-contrib-watch": "1.1.0", + "grunt-electron": "12.0.0", + "grunt-eslint": "23.0.0", + "grunt-inline-alt": "github:keeweb/grunt-inline-alt#ec9f6ad", + "grunt-string-replace": "1.3.1", + "grunt-webpack": "4.0.3", + "handlebars": "^4.7.7", + "handlebars-loader": "1.7.1", + "html-minifier": "4.0.0", + "ignore-loader": "^0.1.2", + "jquery": "3.6.0", + "json-loader": "^0.5.7", + "jsqrcode": "github:antelle/jsqrcode#0.1.3", + "kdbxweb": "^1.14.4", + "load-grunt-tasks": "5.1.0", + "lodash": "^4.17.21", + "marked": "^2.0.3", + "mini-css-extract-plugin": "^1.5.1", + "mocha": "^8.3.2", + "morphdom": "^2.6.1", + "node-fetch": "^2.6.1", + "normalize.css": "8.0.1", + "optimize-css-assets-webpack-plugin": "^5.0.4", + "pikaday": "1.8.2", + "pkcs11-smartcard-sign": "^1.0.1", + "postcss": "^8.2.13", + "postcss-loader": "^5.2.0", + "prettier": "^2.2.1", + "puppeteer": "^9.0.0", + "raw-loader": "^4.0.2", + "run-remote-task": "^0.5.0", + "sass": "^1.32.11", + "sass-loader": "^11.0.1", + "stats-webpack-plugin": "0.7.0", + "string-replace-loader": "^3.0.1", + "strip-sourcemap-loader": "0.0.1", + "sumchecker": "^3.0.1", + "svg2ttf": "^5.2.0", + "svgicons2svgfont": "^9.2.0", + "terser-webpack-plugin": "^5.1.1", + "time-grunt": "2.0.0", + "tweetnacl": "^1.0.3", + "url-loader": "^4.1.1", + "wawoff2": "^2.0.0", + "webpack": "^5.36.1", + "webpack-bundle-analyzer": "^4.4.1", + "webpack-dev-server": "^3.11.2" + }, + "optionalDependencies": { + "grunt-appdmg": "github:keeweb/grunt-appdmg#874ad83", + "keytar": "^7.7.0" + }, + "scripts": { + "start": "grunt", + "test": "grunt test", + "build-beta": "grunt --beta && cp dist/index.html ../keeweb-beta/index.html && cd ../keeweb-beta && git add index.html && git commit -a -m 'beta' && git push origin master", + "electron": "cross-env KEEWEB_IS_PORTABLE=0 ELECTRON_DISABLE_SECURITY_WARNINGS=1 KEEWEB_EMULATE_HARDWARE_ENCRYPTION=persistent KEEWEB_HTML_PATH=http://localhost:8085 electron desktop --no-sandbox", + "dev": "grunt dev", + "dev-desktop-macos": "grunt dev-desktop-darwin --skip-sign", + "dev-desktop-macos-signed": "grunt dev-desktop-darwin-signed", + "dev-desktop-windows": "grunt dev-desktop-win32 --skip-sign", + "dev-desktop-linux": "grunt dev-desktop-linux --skip-sign", + "babel-helpers": "babel-external-helpers -l 'slicedToArray,toConsumableArray,defineProperty,typeof' -t global > app/lib/babel-helpers.js" + }, + "author": { + "name": "Antelle", + "email": "antelle.net@gmail.com", + "url": "http://antelle.net" + }, + "engines": { + "node": ">=10.0" + }, + "license": "MIT", + "readme": "README.md", + "browserslist": [ + "last 2 Firefox versions", + "last 2 Chrome versions", + "last 2 Safari version", + "last 2 iOS versions", + "last 2 Edge versions", + "last 1 Opera version", + "last 1 ChromeAndroid version", + "Electron > 6.0.1" + ] }