chore: sync english locale keys

This commit is contained in:
mirivlad 2026-06-04 03:44:25 +08:00
parent 3c6bc097e1
commit bb0bb608e3
3 changed files with 575 additions and 103 deletions

View File

@ -2,6 +2,7 @@ export default {
'nav.today': 'Today', 'nav.today': 'Today',
'nav.inbox': 'Inbox', 'nav.inbox': 'Inbox',
'nav.activity': 'Activity', 'nav.activity': 'Activity',
'nav.journal': 'Journal',
'nav.clients': 'Clients', 'nav.clients': 'Clients',
'nav.projects': 'Projects', 'nav.projects': 'Projects',
'nav.recipes': 'Recipes', 'nav.recipes': 'Recipes',
@ -10,6 +11,11 @@ export default {
'nav.sections': 'Sections', 'nav.sections': 'Sections',
'nav.cases': 'Cases', 'nav.cases': 'Cases',
'nav.noCases': 'No 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.system': 'System',
'nav.workspace': 'Workspace', 'nav.workspace': 'Workspace',
'nav.noNodes': 'No nodes', 'nav.noNodes': 'No nodes',
@ -17,16 +23,12 @@ export default {
'nav.createInside': 'Create inside', 'nav.createInside': 'Create inside',
'nav.createNode': 'Create element', 'nav.createNode': 'Create element',
'nav.moveToRoot': 'Move to root', 'nav.moveToRoot': 'Move to root',
'nav.selectPrompt': 'Select a section or case',
'nav.brand': 'Verstak',
'tab.overview': 'Overview', 'tab.overview': 'Overview',
'tab.notes': 'Notes', 'tab.notes': 'Notes',
'tab.files': 'Files', 'tab.files': 'Files',
'tab.actions': 'Actions', 'tab.actions': 'Actions',
'tab.worklog': 'Work Log', 'tab.worklog': 'Work Log',
'tab.activity': 'Activity', 'tab.activity': 'Activity',
'common.save': 'Save', 'common.save': 'Save',
'common.cancel': 'Cancel', 'common.cancel': 'Cancel',
'common.delete': 'Delete', 'common.delete': 'Delete',
@ -39,14 +41,31 @@ export default {
'common.error': 'Error:', 'common.error': 'Error:',
'common.yes': 'Yes', 'common.yes': 'Yes',
'common.ok': 'OK', 'common.ok': 'OK',
'common.copy': 'Copy',
'common.cut': 'Cut',
'common.paste': 'Paste',
'common.duplicate': 'Duplicate',
'common.run': 'Run', 'common.run': 'Run',
'common.name': 'Name', '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.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.title': 'Verstak',
'welcome.selectSection': 'Select a section in the sidebar.', 'welcome.selectSection': 'Select a section in the sidebar.',
'welcome.createCase': 'Or create a new case with the + button.',
'welcome.addCase': 'Add case', 'welcome.addCase': 'Add case',
'event.noteCreated': 'Note created', 'event.noteCreated': 'Note created',
'event.noteUpdated': 'Note updated', 'event.noteUpdated': 'Note updated',
'event.fileAdded': 'File added', 'event.fileAdded': 'File added',
@ -54,43 +73,11 @@ export default {
'event.fileRenamed': 'File renamed', 'event.fileRenamed': 'File renamed',
'event.fileCopied': 'File copied', 'event.fileCopied': 'File copied',
'event.fileMoved': 'File moved', 'event.fileMoved': 'File moved',
'event.folderAdded': 'Folder added',
'event.folderDeleted': 'Folder deleted',
'event.folderRenamed': 'Folder renamed',
'event.caseCreated': 'Case created', 'event.caseCreated': 'Case created',
'event.caseUpdated': 'Case updated',
'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',
'note.add': '+ Add note',
'note.noNotes': 'No notes',
'note.title': 'Note title',
'note.placeholder': 'Start writing...',
'file.addFile': '+ Add file',
'file.addFolder': '+ Add folder',
'file.preview': 'Preview',
'file.openExternal': 'Open in external program',
'file.openFolder': 'Open folder',
'file.showInExplorer': 'Show in explorer',
'file.delete': 'Delete',
'file.pickSingle': 'Select file',
'file.pickDirectory': 'Select folder',
'sync.title': 'Sync',
'sync.settings': 'Sync settings',
'sync.status': 'Status',
'sync.server': 'Server',
'sync.device': 'Device',
'sync.connected': 'Connected',
'sync.notConnected': 'Not connected',
'sync.disabled': 'Disabled',
'sync.status.error': 'Sync error',
'sync.conflictsCount': 'Conflicts: {count}',
'sync.applyErrorsCount': 'Apply errors: {count}',
'kind.project': 'Project', 'kind.project': 'Project',
'kind.client': 'Client', 'kind.client': 'Client',
'kind.document': 'Document', 'kind.document': 'Document',
@ -100,33 +87,61 @@ export default {
'kind.file': 'File', 'kind.file': 'File',
'kind.archive': 'Archive', 'kind.archive': 'Archive',
'kind.case': 'Case', 'kind.case': 'Case',
'action.openUrl': 'Open URL',
'template.optionNone': 'Empty case', 'action.openFile': 'Open file',
'template.optional': 'Template (optional)', 'action.openFolder': 'Open folder',
'template.none.desc': 'No template, simple container node', 'action.runCommand': 'Run command',
'template.folder': 'Folder', 'action.runScript': 'Run script',
'template.folder.desc': 'A folder to group items inside a workspace', 'action.openTerminal': 'Open terminal',
'template.project': 'Project', 'action.launchApp': 'Launch app',
'template.project.desc': 'A distinct project or task with files, notes and work log', 'action.addAction': '+ Add action',
'template.client': 'Client', 'action.newAction': 'New action',
'template.client.desc': 'An organization or person for whom work is performed', 'action.noActions': 'No actions yet',
'template.document': 'Document', 'action.run': 'Run',
'template.document.desc': 'A document with description, notes and files', 'action.dataUrl': 'URL',
'template.recipe': 'Recipe', 'action.dataPath': 'Path',
'template.recipe.desc': 'A repeatable procedure or instruction', 'action.dataCommand': 'Command',
'template.note': 'Note', 'action.urlPlaceholder': 'https://example.com',
'template.file': 'File', 'action.pathPlaceholder': '/path/to/file',
'template.select': 'Select type', 'action.commandPlaceholder': 'command',
'action.namePlaceholder': 'Example: Open website',
'case.new': 'New case', 'note.add': '+ Add note',
'case.namePlaceholder': 'Case name', 'note.new': 'New note',
'note.title': 'Note title',
'error.generic': 'An error occurred', 'note.noNotes': 'No notes',
'error.invalidCredentials': 'Invalid username or password', 'note.createFirst': 'Create the first note for this case.',
'error.vaultNotOpen': 'Vault not open', 'note.placeholder': 'Start writing...',
'note.unsavedTitle': 'Unsaved changes',
'worklog.suggestions': 'Suggestions for today', 'note.unsavedMessage': 'Close the editor? All unsaved changes will be lost.',
'worklog.apply': 'Apply', '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.title': 'Work Log',
'worklog.whatDone': 'What was done', 'worklog.whatDone': 'What was done',
'worklog.minutes': 'Min', 'worklog.minutes': 'Min',
@ -141,15 +156,50 @@ export default {
'worklog.sourceSuggestionNoEvents': 'From suggestion, but related events missing', 'worklog.sourceSuggestionNoEvents': 'From suggestion, but related events missing',
'worklog.sourceManual': 'Manual entry', 'worklog.sourceManual': 'Manual entry',
'worklog.sourceUnknown': 'Unknown source', 'worklog.sourceUnknown': 'Unknown source',
'worklog.suggestions': 'Suggestions for today',
'common.all': 'All', 'worklog.apply': 'Apply',
'common.no': 'No', 'sync.title': 'Sync',
'common.open': 'Open', 'sync.settings': 'Sync settings',
'common.date': 'Date', 'sync.status': 'Status',
'common.search': 'Search', 'sync.server': 'Server',
'sync.device': 'Device',
'nav.journal': 'Journal', '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.title': 'Work Log',
'journal.empty': 'No entries for the selected period', 'journal.empty': 'No entries for the selected period',
'journal.dateFrom': 'From', 'journal.dateFrom': 'From',
@ -177,7 +227,6 @@ export default {
'journal.filterHeading': 'Filters', 'journal.filterHeading': 'Filters',
'journal.exportHeading': 'Export Report', 'journal.exportHeading': 'Export Report',
'journal.reset': 'Reset', 'journal.reset': 'Reset',
'suggest.title': 'Suggestions', 'suggest.title': 'Suggestions',
'suggest.apply': 'Log', 'suggest.apply': 'Log',
'suggest.dismiss': 'Dismiss', 'suggest.dismiss': 'Dismiss',
@ -189,4 +238,180 @@ export default {
'suggest.edit': 'Edit', 'suggest.edit': 'Edit',
'suggest.noSuggestions': 'No suggestions', 'suggest.noSuggestions': 'No suggestions',
'suggest.detectedEvents': 'What was detected', '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',
} }

View File

@ -326,7 +326,6 @@ export default {
'error.nameInvalid': 'Недопустимое имя', 'error.nameInvalid': 'Недопустимое имя',
'error.selectCaseFirst': 'Сначала выберите дело', 'error.selectCaseFirst': 'Сначала выберите дело',
'error.vaultNotOpen': 'Хранилище не открыто', 'error.vaultNotOpen': 'Хранилище не открыто',
'common.open': 'Открыть',
'delete.files': 'файлов ({count})', 'delete.files': 'файлов ({count})',
'file.namePrompt': 'Введите имя файла:', 'file.namePrompt': 'Введите имя файла:',
'file.pdfUnavailable': 'Предпросмотр PDF недоступен.', 'file.pdfUnavailable': 'Предпросмотр PDF недоступен.',

View File

@ -7,25 +7,21 @@
"nav.recipes": "Recipes", "nav.recipes": "Recipes",
"nav.documents": "Documents", "nav.documents": "Documents",
"nav.archive": "Archive", "nav.archive": "Archive",
"nav.journal": "Work Log",
"nav.sections": "Sections", "nav.sections": "Sections",
"nav.cases": "Cases", "nav.cases": "Cases",
"nav.noCases": "No cases", "nav.noCases": "No cases",
"nav.journal": "Work Log",
"nav.sync": "Sync", "nav.sync": "Sync",
"nav.syncSettings": "Sync settings", "nav.syncSettings": "Sync settings",
"nav.syncNow": "Sync now", "nav.syncNow": "Sync now",
"nav.selectPrompt": "Select a section or case", "nav.selectPrompt": "Select a section or case",
"nav.brand": "Verstak", "nav.brand": "Verstak",
"nav.createNode": "Create node",
"nav.moveToRoot": "Move to root",
"tab.overview": "Overview", "tab.overview": "Overview",
"tab.notes": "Notes", "tab.notes": "Notes",
"tab.files": "Files", "tab.files": "Files",
"tab.actions": "Actions", "tab.actions": "Actions",
"tab.worklog": "Work Log", "tab.worklog": "Work Log",
"tab.activity": "Activity", "tab.activity": "Activity",
"common.save": "Save", "common.save": "Save",
"common.cancel": "Cancel", "common.cancel": "Cancel",
"common.delete": "Delete", "common.delete": "Delete",
@ -38,14 +34,26 @@
"common.error": "Error:", "common.error": "Error:",
"common.yes": "Yes", "common.yes": "Yes",
"common.ok": "OK", "common.ok": "OK",
"common.copy": "Copy",
"common.cut": "Cut",
"common.paste": "Paste",
"common.duplicate": "Duplicate",
"common.run": "Run", "common.run": "Run",
"common.name": "Name", "common.test": "Test",
"common.testAgain": "Check",
"common.connect": "Connect",
"common.disconnect": "Disconnect",
"common.settings": "Settings", "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.title": "Verstak",
"welcome.selectSection": "Select a section in the sidebar.", "welcome.selectSection": "Select a section in the sidebar.",
"welcome.createCase": "Or create a new case with the + button.",
"welcome.addCase": "Add case", "welcome.addCase": "Add case",
"event.noteCreated": "Note created", "event.noteCreated": "Note created",
"event.noteUpdated": "Note updated", "event.noteUpdated": "Note updated",
"event.fileAdded": "File added", "event.fileAdded": "File added",
@ -53,8 +61,17 @@
"event.fileRenamed": "File renamed", "event.fileRenamed": "File renamed",
"event.fileCopied": "File copied", "event.fileCopied": "File copied",
"event.fileMoved": "File moved", "event.fileMoved": "File moved",
"event.folderAdded": "Folder added",
"event.folderDeleted": "Folder deleted",
"event.folderRenamed": "Folder renamed",
"event.caseCreated": "Case created", "event.caseCreated": "Case created",
"event.caseUpdated": "Case updated",
"kind.project": "Project",
"kind.client": "Client",
"kind.document": "Document",
"kind.recipe": "Recipe",
"kind.archive": "Archive",
"kind.case": "Case",
"action.openUrl": "Open URL", "action.openUrl": "Open URL",
"action.openFile": "Open file", "action.openFile": "Open file",
"action.openFolder": "Open folder", "action.openFolder": "Open folder",
@ -62,73 +79,304 @@
"action.runScript": "Run script", "action.runScript": "Run script",
"action.openTerminal": "Open terminal", "action.openTerminal": "Open terminal",
"action.launchApp": "Launch app", "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.add": "+ Add note",
"note.noNotes": "No notes", "note.new": "New note",
"note.title": "Note title", "note.title": "Note title",
"note.noNotes": "No notes",
"note.createFirst": "Create the first note for this case.",
"note.placeholder": "Start writing...", "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.addFile": "+ Add file",
"file.addFolder": "+ Add folder", "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.preview": "Preview",
"file.openExternal": "Open in external program", "file.openExternal": "Open in external program",
"file.openFolder": "Open folder", "file.openFolder": "Open folder",
"file.showInExplorer": "Show in explorer",
"file.more": "More",
"file.delete": "Delete", "file.delete": "Delete",
"file.ariaFolder": "Folder",
"file.ariaFile": "File",
"file.scanning": "Scanning...",
"file.pickSingle": "Select file", "file.pickSingle": "Select file",
"file.pickMultiple": "Select files",
"file.pickDirectory": "Select folder", "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.empty": "No work entries yet",
"sync.title": "Sync", "sync.title": "Sync",
"sync.settings": "Sync settings", "sync.settings": "Sync settings",
"sync.status": "Status", "sync.status": "Status",
"sync.server": "Server", "sync.server": "Server",
"sync.device": "Device", "sync.device": "Device",
"sync.deviceId": "Device ID",
"sync.unpushed": "Unpushed",
"sync.lastSync": "Last sync",
"sync.revoked": "Revoked",
"sync.connected": "Connected", "sync.connected": "Connected",
"sync.notConnected": "Not connected", "sync.notConnected": "Not connected",
"sync.disabled": "Disabled", "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.autoSync": "Auto sync (min, 0 = disabled)",
"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",
"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)",
"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",
"server.register": "Register",
"server.registerTitle": "Verstak Sync - Register",
"server.registerBtn": "Register", "server.registerBtn": "Register",
"server.login": "Login",
"server.loginTitle": "Verstak Sync - Login",
"server.loginBtn": "Log in", "server.loginBtn": "Log in",
"server.logout": "Log out", "server.logout": "Log out",
"server.username": "Username", "server.username": "Username",
"server.usernameOrEmail": "Username or email",
"server.email": "Email", "server.email": "Email",
"server.password": "Password", "server.password": "Password",
"server.passwordConfirm": "Confirm password",
"server.passwordHint": "At least 8 characters: Latin letters and digits",
"server.forgotPassword": "Forgot password?",
"server.adminLink": "Administrator?",
"server.alreadyHaveAccount": "Already have an account?",
"server.backToLogin": "← Remembered your password?",
"server.goHome": "Home",
"server.needEmail": "Email is required",
"server.allFieldsRequired": "All fields are required",
"server.passwordsDoNotMatch": "Passwords do not match",
"server.resetPasswordTitle": "Verstak Sync - Password recovery",
"server.resetPassword": "Password recovery",
"server.resetInstruction": "Enter the email used during registration",
"server.sendLink": "Send link",
"server.emailSentTitle": "Verstak Sync - Email sent",
"server.emailSent": "✓ Email sent",
"server.emailSentMessage": "If the email is registered, a password reset link will be sent to it.",
"server.newPasswordTitle": "Verstak Sync - New password",
"server.newPassword": "New password",
"server.passwordChanged": "✓ Password changed",
"server.passwordChangedMessage": "You can now log in with the new password.",
"server.save": "Save", "server.save": "Save",
"server.emailConfirmed": "✓ Email confirmed",
"server.emailConfirmedMessage": "Your email has been confirmed. You can now log in.",
"server.registrationSuccess": "✓ Registration successful",
"server.registrationEmailSent": "A confirmation email has been sent to your address.",
"server.registrationCheckEmail": "Follow the link in the email to activate your account.",
"server.registrationAutoSuccess": "✓ Registration successful",
"server.registrationAutoMessage": "You can log in; email confirmation is not required.",
"server.back": "← Back", "server.back": "← Back",
"server.dashboard": "← Dashboard",
"admin.devices": "Devices", "server.users": "Users",
"server.adminPwdHint": "At least 8 characters, Latin letters and digits",
"server.newPasswordResult": "New password: %s\nSend it to the user.",
"admin.login": "Verstak Sync - Admin Login",
"admin.dashboard": "Verstak Sync - Admin",
"admin.users": "Users", "admin.users": "Users",
"admin.usersHeading": "Users",
"admin.username": "Username",
"admin.email": "Email",
"admin.password": "Password",
"admin.loginBtn": "Log in",
"admin.devices": "Devices",
"admin.deviceCount": "Devices:",
"admin.opsCount": "Operations:",
"admin.smtp": "SMTP Settings", "admin.smtp": "SMTP Settings",
"admin.smtpTitle": "SMTP (for emails)",
"admin.smtpServer": "Server",
"admin.smtpPort": "Port",
"admin.smtpType": "Type",
"admin.smtpNoEncryption": "No encryption",
"admin.smtpUsername": "Username",
"admin.smtpPassword": "Password",
"admin.smtpFrom": "From",
"admin.smtpServerURL": "Server URL",
"admin.smtpSave": "Save SMTP",
"admin.smtpTest": "Test",
"admin.smtpTesting": "Testing...",
"admin.smtpPassed": "✓ Test passed",
"admin.smtpFailed": "Failed",
"admin.healthCheck": "Health check", "admin.healthCheck": "Health check",
"admin.healthLoading": "Loading...",
"admin.noDevices": "No devices",
"admin.device": "Device",
"admin.user": "User",
"admin.version": "Version",
"admin.status": "Status", "admin.status": "Status",
"admin.active": "Active", "admin.active": "Active",
"admin.revoked": "Revoked", "admin.revoked": "Revoked",
"admin.lastSeen": "Activity",
"admin.revoke": "Revoke",
"admin.revokeConfirm": "Revoke device?",
"admin.filterPlaceholder": "Filter by username...",
"admin.actions": "Actions",
"admin.confirmed": "Confirmed",
"admin.unconfirmed": "Unconfirmed",
"admin.blocked": "Blocked",
"admin.unblock": "Unblock",
"admin.block": "Block",
"admin.resetPassword": "Password reset",
"admin.resetPasswordConfirm": "Reset password?",
"admin.resetPasswordMessage": "The user will not be able to log in with the old password.",
"admin.resetBtn": "Reset",
"admin.editUser": "Edit user",
"admin.editBtn": "Save",
"admin.deleteUser": "Delete user?",
"admin.deleteUserMessage": "User \"%s\" and all their devices will be deleted.",
"admin.deleteBtn": "Delete",
"admin.resultTitle": "Result",
"admin.confirmTitle": "Confirmation",
"admin.modalCancel": "Cancel",
"admin.modalConfirm": "Yes",
"admin.noUsers": "No users",
"admin.unblockUserTitle": "Unblock user?",
"admin.unblockUserMessage": "The user will be able to log in again.",
"admin.blockUserTitle": "Block user?",
"admin.blockUserMessage": "The user will not be able to log in.",
"admin.unblockBtn": "Unblock",
"admin.blockBtn": "Block",
"userDashboard.title": "Verstak Sync",
"userDashboard.devices": "Devices",
"userDashboard.connectNew": "Connect new device",
"userDashboard.connectNewHint": "Open the Verstak desktop client, go to sync settings, and enter the server URL, username, and password.",
"userDashboard.noDevices": "No connected devices.<br>Connect a device from the Verstak desktop client.",
"userDashboard.device": "Device",
"userDashboard.status": "Status",
"userDashboard.connected": "Connected",
"userDashboard.lastSeen": "Activity",
"userDashboard.version": "Version",
"userDashboard.active": "Active",
"userDashboard.revoked": "Revoked",
"userDashboard.revoke": "Revoke",
"userDashboard.revokeConfirm": "Revoke device? It will stop syncing.",
"userDashboard.revokePrompt": "Enter your password to confirm:",
"userDashboard.logout": "Log out",
"error.nameEmpty": "Name cannot be empty",
"error.nameInvalid": "Invalid name",
"error.selectCaseFirst": "Select a case first",
"error.generic": "An error occurred", "error.generic": "An error occurred",
"error.invalidCredentials": "Invalid username or password", "error.invalidCredentials": "Invalid username or password",
"error.accountBlocked": "Account blocked", "error.accountBlocked": "Account blocked",
"error.emailNotConfirmed": "Email not confirmed", "error.emailNotConfirmed": "Email not confirmed",
"error.tokenInvalid": "Invalid or expired token", "error.tokenInvalid": "Invalid or expired token",
"error.tokenExpired": "Token expired", "error.tokenExpired": "Token expired",
"server.emailConfirmSubject": "Confirm your Verstak Sync account", "server.emailConfirmSubject": "Confirm your Verstak Sync account",
"server.emailConfirmBody": "Welcome to Verstak Sync!\n\nPlease confirm your email by clicking:\n%s\n\nIf you did not register, ignore this message.", "server.emailConfirmBody": "Welcome to Verstak Sync!\n\nPlease confirm your email by clicking:\n%s\n\nIf you did not register, ignore this message.",
"server.emailResetSubject": "Verstak Sync password reset", "server.emailResetSubject": "Verstak Sync password reset",
"server.emailResetBody": "Reset your Verstak Sync password:\n\n%s\n\nThis link expires in 1 hour.", "server.emailResetBody": "Reset your Verstak Sync password:\n\n%s\n\nThis link expires in 1 hour.",
"nav.system": "System", "nav.system": "System",
"nav.workspace": "Workspace", "nav.workspace": "Workspace",
"nav.noNodes": "No nodes", "nav.noNodes": "No nodes",
"nav.openFolder": "Open folder", "nav.openFolder": "Open folder",
"nav.createInside": "Create inside", "nav.createInside": "Create inside",
"nav.createNode": "Create node",
"nav.moveToRoot": "Move to root",
"template.folder": "Folder", "template.folder": "Folder",
"template.project": "Project", "template.project": "Project",
"template.client": "Client", "template.client": "Client",
"template.document": "Document", "template.document": "Document",
"template.recipe": "Recipe", "template.recipe": "Recipe",
"common.archive": "Archive", "common.archive": "Archive",
"migrate.dryRun": "Dry run", "migrate.dryRun": "Dry run",
"migrate.foldersCreated": "Folders created", "migrate.foldersCreated": "Folders created",
"migrate.templatesSet": "Templates set", "migrate.templatesSet": "Templates set",