fix(shared): i18n coverage and contract updates
- keyPath field no longer tells users to enter a server-side path - settings.highlight.builtin.* notes, timeout messages in four languages - prototype-safe dictionary lookup; language as a render-time dependency - Partial<AppSettings> saveSettings contract, update:stateGet channel
This commit is contained in:
1 parent
23fa566fa9
commit
c0342db1e8
16 files changed
+100
-9
No files matched your search
@@ -13,7 +13,7 @@ const main: Record<string, string> = {
|
||||
'main.tray.closeDetail': 'Minimizing to tray keeps your terminal sessions running.',
|
||||
'main.tray.rememberChoice': 'Remember my choice, never ask again',
|
||||
|
||||
'main.updater.feedFailed': 'Domestic feed: {gitea}; GitHub: {github}',
|
||||
'main.updater.feedFailed': 'Gitea feed: {gitea}; GitHub: {github}',
|
||||
|
||||
'main.ssh.connectTimeout': 'Connection timed out ({host}:{port})',
|
||||
'main.ssh.saveFingerprintFailed': 'Failed to save the host fingerprint: {detail}',
|
||||
@@ -27,6 +27,7 @@ const main: Record<string, string> = {
|
||||
'main.sftp.deleteFailed': 'Delete failed: {detail}',
|
||||
'main.sftp.invalidMode': 'Invalid permission value: {mode}',
|
||||
'main.sftp.invalidUidGid': 'Invalid uid/gid',
|
||||
'main.sftp.commandTimeout': 'Command timed out',
|
||||
'main.sftp.commandExitCode': 'Command exited with code {code}',
|
||||
'main.sftp.cancelled': 'Cancelled',
|
||||
|
||||
@@ -47,6 +48,7 @@ const main: Record<string, string> = {
|
||||
|
||||
'main.sysinfo.sessionGone': 'SSH session is missing or disconnected',
|
||||
'main.sysinfo.execFailed': 'SSH exec failed',
|
||||
'main.sysinfo.pollTimeout': 'Monitoring command timed out',
|
||||
'main.sysinfo.parseFailed': 'Parse failed: {message}',
|
||||
'main.pty.serviceNotReady': 'SSH session service is not initialised yet',
|
||||
'main.pty.missingConnectionId': 'SSH session is missing its connectionId',
|
||||
|
||||
@@ -98,6 +98,11 @@ const settings: Record<string, string> = {
|
||||
'Together with the global key this shows or hides the window from anywhere; if registration fails (a conflict with another app) it simply has no effect and the app reports no error.',
|
||||
'settings.system.shortcutRecording': 'Press the keys…',
|
||||
'settings.system.shortcutPlaceholder': 'Click and press a shortcut, leave empty to disable',
|
||||
'settings.system.shortcutConflict':
|
||||
'This shortcut is already used by the app (Ctrl+= / Ctrl+- / Ctrl+0 / Ctrl+PgUp / Ctrl+PgDn). Please choose another.',
|
||||
'settings.resetTerminal': 'Reset terminal settings',
|
||||
'settings.resetTerminalTitle': 'Reset terminal settings?',
|
||||
'settings.resetTerminalDesc': 'All terminal settings — font, cursor, rendering and theme — will be restored to defaults.',
|
||||
'settings.highlight.alert':
|
||||
'Custom highlighting improves readability at a small performance cost. Rules are applied in priority order. PS: colors are injected as text is written to the terminal, so existing scrollback is unaffected',
|
||||
'settings.highlight.enabled': 'Enabled',
|
||||
@@ -121,6 +126,17 @@ const settings: Record<string, string> = {
|
||||
'settings.highlight.resetOk': 'Restore',
|
||||
'settings.highlight.createTitle': 'New highlight rule',
|
||||
'settings.highlight.editTitle': 'Edit highlight rule',
|
||||
'settings.highlight.builtin.perm': 'Linux permissions and user/group',
|
||||
'settings.highlight.builtin.path': 'Linux file paths',
|
||||
'settings.highlight.builtin.shellkw': 'Shell keywords and control flow',
|
||||
'settings.highlight.builtin.okstate': 'Success states',
|
||||
'settings.highlight.builtin.badstate': 'Error/warning states',
|
||||
'settings.highlight.builtin.quoted': 'Strings and quotes',
|
||||
'settings.highlight.builtin.envvar': 'Environment variables and arguments',
|
||||
'settings.highlight.builtin.ipv4': 'Network and IP addresses',
|
||||
'settings.highlight.builtin.datetime': 'Time and date',
|
||||
'settings.highlight.builtin.numbers': 'Numbers and counts',
|
||||
'settings.highlight.builtin.url': 'Web links',
|
||||
'settings.theme.accent': 'Tab accent color',
|
||||
'settings.theme.accentDesc': 'Accent color for the active tab border, the sidebar indicator, and SSH badges',
|
||||
'settings.theme.customBadge': 'Custom',
|
||||
|
||||
@@ -13,7 +13,7 @@ const ssh: Record<string, string> = {
|
||||
'ssh.fields.askPasswordHint':
|
||||
'Prompts for the password on every connection instead of using the saved one',
|
||||
'ssh.fields.passwordPlaceholder': 'Leave empty to keep the saved password',
|
||||
'ssh.fields.keyPath': 'Private key path (path on the server, optional)',
|
||||
'ssh.fields.keyPath': 'Private key file path (on this computer, optional)',
|
||||
'ssh.fields.keyContent': 'Private key content',
|
||||
'ssh.fields.keyContentPlaceholder':
|
||||
'Paste the private key; leave empty to use the path above (leave empty while editing to keep the saved key)',
|
||||
@@ -100,6 +100,8 @@ const ssh: Record<string, string> = {
|
||||
'ssh.file.up': 'Parent folder',
|
||||
'ssh.file.refresh': 'Refresh',
|
||||
'ssh.file.uploadFile': 'Upload files',
|
||||
'ssh.file.overwriteTitle': 'Overwrite existing file?',
|
||||
'ssh.file.overwriteDesc': 'A file with the same name exists in the target directory; uploading will overwrite its contents.',
|
||||
'ssh.file.downloadSelected': 'Download selection',
|
||||
'ssh.file.permOwner': 'Permissions / owner',
|
||||
'ssh.file.open': 'Open',
|
||||
|
||||
Reference in new issue
Block a user