verstak/frontend/src/lib/i18n/locales/en.js

418 lines
16 KiB
JavaScript

export default {
'nav.today': 'Today',
'nav.inbox': 'Inbox',
'nav.activity': 'Activity',
'nav.journal': 'Journal',
'nav.clients': 'Clients',
'nav.projects': 'Projects',
'nav.recipes': 'Recipes',
'nav.documents': 'Documents',
'nav.archive': 'Archive',
'nav.sections': 'Sections',
'nav.cases': 'Cases',
'nav.noCases': 'No cases',
'nav.sync': 'Sync',
'nav.syncSettings': 'Sync settings',
'nav.syncNow': 'Sync now',
'nav.selectPrompt': 'Select a section or case',
'nav.brand': 'Verstak',
'nav.system': 'System',
'nav.workspace': 'Workspace',
'nav.noNodes': 'No nodes',
'nav.openFolder': 'Open folder',
'nav.createInside': 'Create inside',
'nav.createNode': 'Create element',
'nav.moveToRoot': 'Move to root',
'tab.overview': 'Overview',
'tab.notes': 'Notes',
'tab.files': 'Files',
'tab.actions': 'Actions',
'tab.worklog': 'Work Log',
'tab.activity': 'Activity',
'common.save': 'Save',
'common.cancel': 'Cancel',
'common.delete': 'Delete',
'common.rename': 'Rename',
'common.close': 'Close',
'common.create': 'Create',
'common.confirm': 'Confirm',
'common.back': '← Back',
'common.loading': 'Loading...',
'common.error': 'Error:',
'common.yes': 'Yes',
'common.ok': 'OK',
'common.copy': 'Copy',
'common.cut': 'Cut',
'common.paste': 'Paste',
'common.duplicate': 'Duplicate',
'common.run': 'Run',
'common.test': 'Test',
'common.all': 'All',
'common.open': 'Open',
'common.no': 'No',
'common.date': 'Date',
'common.search': 'Search',
'common.testAgain': 'Check',
'common.connect': 'Connect',
'common.disconnect': 'Disconnect',
'common.settings': 'Settings',
'common.name': 'Name',
'common.type': 'Type',
'common.section': 'Section',
'common.created': 'Created',
'common.empty': 'None',
'common.newName': 'New name',
'welcome.title': 'Verstak',
'welcome.selectSection': 'Select a section in the sidebar.',
'welcome.createCase': 'Or create a new case with the + button.',
'welcome.addCase': 'Add case',
'event.noteCreated': 'Note created',
'event.noteUpdated': 'Note updated',
'event.fileAdded': 'File added',
'event.fileDeleted': 'File deleted',
'event.fileRenamed': 'File renamed',
'event.fileCopied': 'File copied',
'event.fileMoved': 'File moved',
'event.folderAdded': 'Folder added',
'event.folderDeleted': 'Folder deleted',
'event.folderRenamed': 'Folder renamed',
'event.caseCreated': 'Case created',
'event.caseUpdated': 'Case updated',
'kind.project': 'Project',
'kind.client': 'Client',
'kind.document': 'Document',
'kind.recipe': 'Recipe',
'kind.folder': 'Folder',
'kind.note': 'Note',
'kind.file': 'File',
'kind.archive': 'Archive',
'kind.case': 'Case',
'action.openUrl': 'Open URL',
'action.openFile': 'Open file',
'action.openFolder': 'Open folder',
'action.runCommand': 'Run command',
'action.runScript': 'Run script',
'action.openTerminal': 'Open terminal',
'action.launchApp': 'Launch app',
'action.addAction': '+ Add action',
'action.newAction': 'New action',
'action.noActions': 'No actions yet',
'action.run': 'Run',
'action.dataUrl': 'URL',
'action.dataPath': 'Path',
'action.dataCommand': 'Command',
'action.urlPlaceholder': 'https://example.com',
'action.pathPlaceholder': '/path/to/file',
'action.commandPlaceholder': 'command',
'action.namePlaceholder': 'Example: Open website',
'note.add': '+ Add note',
'note.new': 'New note',
'note.title': 'Note title',
'note.noNotes': 'No notes',
'note.createFirst': 'Create the first note for this case.',
'note.placeholder': 'Start writing...',
'note.unsavedTitle': 'Unsaved changes',
'note.unsavedMessage': 'Close the editor? All unsaved changes will be lost.',
'note.unsavedClose': 'Close',
'file.addFile': '+ Add file',
'file.addFolder': '+ Add folder',
'file.newFile': '+ New file',
'file.addFileSimple': 'Add file',
'file.addFolderSimple': 'Add folder',
'file.noFiles': 'No files in this folder yet',
'file.noFilesCase': 'No files in this project yet',
'file.hint': 'Add a file or folder to store project materials.',
'file.root': 'Files',
'file.preview': 'Preview',
'file.openExternal': 'Open in external program',
'file.openFolder': 'Open folder',
'file.showInExplorer': 'Show in explorer',
'file.more': 'More',
'file.delete': 'Delete',
'file.ariaFolder': 'Folder',
'file.ariaFile': 'File',
'file.scanning': 'Scanning...',
'file.pickSingle': 'Select file',
'file.pickMultiple': 'Select files',
'file.pickDirectory': 'Select folder',
'file.importTitle': 'Add to',
'file.importFiles': 'Files:',
'file.importFolders': 'Folders:',
'file.importSize': 'Size:',
'file.importCopy': 'Copy',
'file.importLink': 'Link',
'file.selectCaseFirst': 'Select a case before adding files',
'worklog.title': 'Work Log',
'worklog.whatDone': 'What was done',
'worklog.minutes': 'Min',
'worklog.min': 'min',
'worklog.log': 'Log',
'worklog.addEntry': 'Add entry',
'worklog.date': 'Date',
'worklog.empty': 'No work logged yet',
'worklog.details': 'Details',
'worklog.source': 'Source',
'worklog.sourceSuggestion': 'From suggestion',
'worklog.sourceSuggestionNoEvents': 'From suggestion, but related events missing',
'worklog.sourceManual': 'Manual entry',
'worklog.sourceUnknown': 'Unknown source',
'worklog.suggestions': 'Suggestions for today',
'worklog.apply': 'Apply',
'sync.title': 'Sync',
'sync.settings': 'Sync settings',
'sync.status': 'Status',
'sync.server': 'Server',
'sync.device': 'Device',
'sync.deviceId': 'Device ID',
'sync.unpushed': 'Unpushed',
'sync.lastSync': 'Last sync',
'sync.revoked': 'Revoked',
'sync.connected': 'Connected',
'sync.notConnected': 'Not connected',
'sync.disabled': 'Disabled',
'sync.serverUrl': 'Server URL',
'sync.serverUrlPlaceholder': 'https://example.com:47732',
'sync.username': 'Username',
'sync.usernamePlaceholder': 'username',
'sync.password': 'Password',
'sync.passwordPlaceholder': 'password',
'sync.interval': 'Auto sync (min)',
'sync.saveInterval': 'Save interval',
'sync.syncNow': 'Sync now',
'sync.disconnect': 'Disconnect',
'sync.connect': 'Connect',
'sync.test': 'Check',
'sync.settingsSaved': 'interval saved',
'today.title': 'Today',
'today.changedCases': 'Changed today',
'today.timeline': 'Timeline for today',
'today.empty': 'Nothing happened today yet',
'today.emptyHint': 'Cases, notes, files, and actions you worked with today will appear here.',
'today.plural.case_one': 'case',
'today.plural.case_few': 'cases',
'today.plural.case_many': 'cases',
'today.plural.note_one': 'note',
'today.plural.note_few': 'notes',
'today.plural.note_many': 'notes',
'today.plural.file_one': 'file',
'today.plural.file_few': 'files',
'today.plural.file_many': 'files',
'today.plural.event_one': 'event',
'today.plural.event_few': 'events',
'today.plural.event_many': 'events',
'journal.title': 'Work Log',
'journal.empty': 'No entries for the selected period',
'journal.dateFrom': 'From',
'journal.dateTo': 'To',
'journal.filter': 'Filter',
'journal.total': 'Total',
'journal.exportCSV': 'CSV',
'journal.exportMarkdown': 'Markdown',
'journal.billable': 'Billable',
'journal.billableYes': 'Billable',
'journal.billableNo': 'Not billable',
'journal.billableHint': 'Billable — can be included in client invoice',
'journal.approx': 'Time type',
'journal.approxExact': 'Exact',
'journal.approxEstimated': 'Estimated',
'journal.approxHint': 'Estimated — time suggested by the system or entered as approximate',
'journal.includeChildrenDisabledHint': 'Only works when a case/client/project is selected',
'journal.node': 'Case',
'journal.path': 'Path',
'journal.byDay': 'By day',
'journal.byNode': 'By case',
'journal.includeChildren': 'Include subtasks',
'journal.nodeSearch': 'Search case...',
'journal.relatedEvents': 'Related events',
'journal.filterHeading': 'Filters',
'journal.exportHeading': 'Export Report',
'journal.reset': 'Reset',
'suggest.title': 'Suggestions',
'suggest.apply': 'Log',
'suggest.dismiss': 'Dismiss',
'suggest.open': 'Open',
'suggest.confidence.low': 'Low confidence',
'suggest.confidence.medium': 'Medium confidence',
'suggest.confidence.high': 'High confidence',
'suggest.minutes': 'min',
'suggest.edit': 'Edit',
'suggest.noSuggestions': 'No suggestions',
'suggest.detectedEvents': 'What was detected',
'activity.title': 'Activity',
'activity.empty': 'No activity recorded yet',
'activity.perCaseEmpty': 'No activity recorded yet',
'overview.type': 'Type',
'overview.section': 'Section',
'overview.created': 'Created',
'overview.newNote': 'New note',
'overview.addFile': 'Add file',
'overview.addAction': 'Add action',
'overview.logTime': 'Log time',
'overview.recentNotes': 'Recent notes',
'overview.recentEntries': 'Recent entries',
'rename.title': 'Rename',
'rename.emptyError': 'Name cannot be empty',
'rename.invalidError': 'Invalid name',
'delete.confirmTitle': 'Delete',
'delete.confirmMessage': 'Delete',
'delete.folder': 'folder',
'delete.file': 'file',
'template.optionNone': 'Empty case',
'template.optional': 'Template (optional)',
'template.none.desc': 'No template, simple container node',
'template.folder': 'Folder',
'template.folder.desc': 'A folder to group items inside a workspace',
'template.project': 'Project',
'template.project.desc': 'A distinct project or task with files, notes and work log',
'template.client': 'Client',
'template.client.desc': 'An organization or person for whom work is performed',
'template.document': 'Document',
'template.document.desc': 'A document with description, notes and files',
'template.recipe': 'Recipe',
'template.recipe.desc': 'A repeatable procedure or instruction',
'template.note': 'Note',
'template.file': 'File',
'template.select': 'Select type',
'mime.jpeg': 'JPEG image',
'mime.png': 'PNG image',
'mime.gif': 'GIF image',
'mime.webp': 'WebP image',
'mime.svg': 'SVG image',
'mime.bmp': 'BMP image',
'mime.tiff': 'TIFF image',
'mime.avif': 'AVIF image',
'mime.pdf': 'PDF document',
'mime.word': 'Word document',
'mime.excel': 'Excel spreadsheet',
'mime.ppt': 'PowerPoint presentation',
'mime.zip': 'ZIP archive',
'mime.gzip': 'GZIP archive',
'mime.tar': 'TAR archive',
'mime.sevenz': '7z archive',
'mime.rar': 'RAR archive',
'mime.text': 'Text file',
'mime.html': 'HTML file',
'mime.css': 'CSS file',
'mime.js': 'JavaScript file',
'mime.json': 'JSON file',
'mime.xml': 'XML file',
'mime.yaml': 'YAML file',
'mime.binary': 'Binary file',
'mime.executable': 'Executable file',
'mime.folder': 'Folder',
'mime.unknown': 'Unknown',
'mime.file': 'File',
'error.nameEmpty': 'Name cannot be empty',
'error.nameInvalid': 'Invalid name',
'error.selectCaseFirst': 'Select a case first',
'error.vaultNotOpen': 'Vault not open',
'delete.files': 'files ({count})',
'file.namePrompt': 'Enter file name:',
'file.pdfUnavailable': 'PDF preview is unavailable.',
'file.previewUnavailable': 'Preview is unavailable for this file type.',
'case.new': 'New case',
'case.namePlaceholder': 'Case name',
'settings.title': 'Settings',
'settings.general': 'General',
'settings.generalDesc': 'Basic interface settings.',
'settings.workspace': 'Workspace',
'settings.workspaceDesc': 'Manage data storage.',
'settings.appearance': 'Appearance',
'settings.localization': 'Localization',
'settings.templates': 'Templates',
'settings.plugins': 'Plugins',
'settings.files': 'Files',
'settings.activity': 'Activity',
'settings.sync': 'Sync',
'settings.backup': 'Backups',
'settings.close': 'Close settings',
'settings.noPlugins': 'No plugins installed yet.',
'settings.openPluginsDir': 'Open plugins folder',
'settings.activityStub': 'Activity tracking settings will be here.',
'settings.backupStub': 'Backup settings will be here.',
'settings.theme': 'Interface theme',
'settings.themeSystem': 'System',
'settings.themeLight': 'Light',
'settings.themeDark': 'Dark',
'settings.language': 'Interface language',
'settings.langRu': 'Russian',
'settings.langEn': 'English',
'settings.langSoon': 'coming soon',
'settings.save': 'Save settings',
'settings.saved': 'Settings saved',
'settings.vaultPath': 'Workspace path',
'settings.noVaultInfo': 'No workspace information.',
'settings.vaultInfo': 'Workspace information',
'settings.openVault': 'Open vault folder',
'settings.changeVault': 'Change path',
'settings.checkIntegrity': 'Check integrity',
'settings.templatesDesc': 'Enable or disable templates for creating items.',
'settings.templateEnabled': 'Enabled',
'settings.templateDisabled': 'Disabled',
'settings.filesStub': 'File storage settings will be here.',
'settings.syncEnabled': 'Sync enabled',
'settings.syncDisabled': 'Sync disabled',
'settings.syncDesc': 'Configure connection to the sync server.',
'settings.serverUrl': 'Server URL',
'settings.deviceName': 'Device name',
'settings.deviceId': 'Device ID',
'settings.lastSync': 'Last sync',
'settings.lastError': 'Last error',
'settings.pendingChanges': 'Pending changes',
'settings.checkConnection': 'Check connection',
'settings.syncNow': 'Sync now',
'settings.reconnect': 'Reconnect',
'settings.disconnect': 'Disconnect device',
'settings.resetKey': 'Reset key',
'settings.confirmDisconnect': 'Are you sure you want to disconnect this device?',
'settings.confirmDisconnectDesc': 'Sync will stop. Reconnecting will require username and password.',
'settings.confirmResetKey': 'Reset sync key?',
'settings.confirmResetKeyDesc': 'The current device key will be removed. Reconnection will be required.',
'settings.connected': 'Connected',
'settings.disconnected': 'Disconnected',
'settings.notConfigured': 'Not configured',
'settings.error': 'Error',
'settings.revoked': 'Revoked',
'settings.status': 'Status',
'firstrun.title': 'Welcome to Verstak',
'firstrun.desc': 'Verstak stores data in a local workspace called a vault.',
'firstrun.pathLabel': 'Vault path',
'firstrun.defaultPath': 'Default path',
'firstrun.browse': 'Choose folder',
'firstrun.create': 'Create workspace',
'firstrun.quit': 'Quit',
'firstrun.pathExists': 'The folder exists. A new vault will be created.',
'firstrun.pathHasVault': 'Existing vault found. It will be connected.',
'firstrun.pathNew': 'The path does not exist. A new vault will be created.',
'firstrun.errorNoWrite': 'No write permission for the selected folder.',
'firstrun.creating': 'Creating workspace...',
'firstrun.created': 'Workspace created!',
'recovery.title': 'Workspace not found',
'recovery.expected': 'Expected path',
'recovery.choose': 'Choose another vault',
'recovery.create': 'Create new vault',
'recovery.settings': 'Open settings',
'recovery.quit': 'Quit',
'recovery.createConfirm': 'A new empty workspace will be created. The old path in settings will be replaced.',
'recovery.createConfirmTitle': 'Create a new workspace?',
'sync.status.connected': 'Sync available',
'sync.status.disconnected': 'Server unavailable',
'sync.status.disabled': 'Sync is not configured',
'sync.status.syncing': 'Syncing...',
'sync.status.error': 'Sync error',
'sync.changes': 'changes',
'sync.details': 'Details',
'sync.configure': 'Configure',
'sync.retry': 'Retry',
'sync.run': 'Sync',
'sync.running': 'Syncing...',
'sync.conflictsCount': 'Conflicts: {count}',
'sync.applyErrorsCount': 'Apply errors: {count}',
'error.generic': 'An error occurred',
'error.invalidCredentials': 'Invalid username or password',
'error.accountBlocked': 'Account blocked',
'error.emailNotConfirmed': 'Email not confirmed',
'error.tokenInvalid': 'Invalid or expired token',
'error.tokenExpired': 'Token expired',
}