// English — canonical key set; ru/uk mirror it (missing slug falls back to en).
export default {
// app / shell / nav
'app.docTitle': 'tgclient',
'shell.title': 'Telegram accounts',
'shell.subtitle': 'tgclient',
'nav.accounts': 'Accounts',
'nav.mcpKeys': 'MCP keys',
'nav.admin': 'Admin',
'nav.settings': 'Settings',
'nav.signOut': 'Sign out',
// login screen
'login.title': 'Sign in',
'login.subtitle': 'tgclient is protected by gnexus-auth',
'login.offline': 'No connection — sign-in needs the service to be reachable',
'login.action': 'Sign in',
// common
'common.copy': 'Copy',
'common.cancel': 'Cancel',
'common.close': 'Close',
'common.delete': 'Delete',
'common.failed': 'Failed',
'common.loading': 'Loading',
// time
'time.never': 'never',
'time.now': 'just now',
'time.secondsAgo': '{n} s ago',
'time.minutesAgo': '{n} min ago',
'time.hoursAgo': '{n} h ago',
'time.daysAgo': '{n} d ago',
// accounts page
'accounts.title': 'Telegram accounts',
'accounts.addAccount': 'Add account',
'accounts.emptyTitle': 'No accounts yet',
'accounts.emptyText': 'Add your first Telegram account — the code will arrive in the app.',
'accounts.maxAccounts': 'Accounts: {n} / {limit}',
'accounts.colPhone': 'Phone',
'accounts.colUser': 'Telegram user',
'accounts.colLabel': 'Label',
'accounts.colStatus': 'Status',
'accounts.colConnected': 'Connected',
'accounts.colLastUsed': 'Last used',
'accounts.colActions': '',
'accounts.statusActive': 'active',
'accounts.statusLoggedOut': 'logged out',
'accounts.statusError': 'error',
'accounts.connectedYes': 'connected',
'accounts.connectedNo': 'idle',
'accounts.connect': 'Connect',
'accounts.disconnect': 'Disconnect',
'accounts.delete': 'Log out',
'accounts.deleteTitle': 'Log out of Telegram?',
'accounts.deleteMessage':
'The Telegram session will be revoked (log_out) and the account will be removed from tgclient. This cannot be undone.',
'accounts.deleted': 'Account removed',
'accounts.connectFailed': 'Connect failed',
'accounts.loginAgain': 'Log in again',
// login wizard
'wizard.title': 'Add Telegram account',
'wizard.subtitle': 'Enter the phone number — a login code will arrive in Telegram',
'wizard.phone': 'Phone (E.164, e.g. +15551234567)',
'wizard.label': 'Label (optional)',
'wizard.labelPlaceholder': 'e.g. work',
'wizard.sendCode': 'Send code',
'wizard.codeStep': 'Code from Telegram',
'wizard.codeHint': 'Code sent to {phone} — valid until {until}',
'wizard.code': 'Code',
'wizard.submitCode': 'Confirm code',
'wizard.passwordStep': 'Cloud password (2FA)',
'wizard.passwordHint': 'This account is protected with a Telegram cloud password',
'wizard.password': 'Password',
'wizard.submitPassword': 'Confirm password',
'wizard.success': 'Account added',
'wizard.done': 'Done — closing…',
'wizard.reused': 'A pending login for this number already exists — code already sent',
'wizard.attemptsLeft': 'Attempts left: {n}',
'wizard.wrongCode': 'Invalid code',
'wizard.wrongPassword': 'Invalid password',
'wizard.cancel': 'Cancel login',
'wizard.expired': 'Login window expired — start again',
// mcp keys page
'mcpKeys.title': 'MCP keys',
'mcpKeys.myKeys': 'My keys',
'mcpKeys.myKeysNote':
'Personal MCP keys let AI agents work with your Telegram accounts. Key role is a snapshot of your role at issue time.',
'mcpKeys.limits': 'Active: {count} / {limit}',
'mcpKeys.generate': 'Create key',
'mcpKeys.newKey': 'New key',
'mcpKeys.plaintextOnceName': 'The new key will be shown once — right after creation.',
'mcpKeys.plaintextHint': 'The key is shown once. Save it now — it will not be shown again.',
'mcpKeys.createdTitle': 'Key created',
'mcpKeys.keyName': 'Key name',
'mcpKeys.namePlaceholder': 'e.g. work-agent',
'mcpKeys.defaultName': 'agent',
'mcpKeys.authOff':
'The service is open (gnexus-auth is not configured): personal MCP keys are not issued here — use the static admin token.',
'mcpKeys.loading': 'Loading keys',
'mcpKeys.colKey': 'Name',
'mcpKeys.colTail': 'Tail',
'mcpKeys.colRole': 'Role',
'mcpKeys.colCreated': 'Created',
'mcpKeys.colUsed': 'Last used',
'mcpKeys.colStatus': 'Status',
'mcpKeys.colOwner': 'Owner',
'mcpKeys.badgeActive': 'active',
'mcpKeys.badgeRevoked': 'revoked',
'mcpKeys.revoke': 'Revoke',
'mcpKeys.revokeTitle': 'Revoke key?',
'mcpKeys.revokeMessage': 'Key "{name}" will stop working immediately. Revocation is permanent.',
'mcpKeys.revokedTitle': 'Key revoked',
'mcpKeys.emptyOwn': 'No keys yet',
'mcpKeys.emptyAll': 'No keys',
'mcpKeys.allKeysAdmin': 'All keys (admin)',
'mcpKeys.allKeysNote': 'Every key in the service, including revoked ones.',
'mcpKeys.howToConnect': 'Connect an agent',
'mcpKeys.connectNote':
'Point the agent at the MCP endpoint; account access is limited to your own accounts.',
'mcpKeys.endpoint': 'MCP endpoint',
// admin page
'admin.title': 'Admin',
'admin.tabUsers': 'Users',
'admin.tabAccounts': 'Accounts',
'admin.tabTokens': 'Tokens',
'admin.notAllowed': 'Admin role required',
'admin.colUser': 'User',
'admin.colEmail': 'E-mail',
'admin.colRole': 'Role',
'admin.colBlocked': 'Blocked',
'admin.colOwner': 'Owner',
'admin.colName': 'Name',
'admin.colPhone': 'Phone',
'admin.colStatus': 'Status',
'admin.colConnected': 'Connected',
'admin.colLastUsed': 'Last used',
'admin.colHint': 'Tail',
'admin.colCreatedAt': 'Created',
'admin.colActions': '',
'admin.revokeSession': 'Disconnect',
'admin.revokeSessionTitle': 'Disconnect client?',
'admin.revokeSessionMessage':
'The connected client will be dropped (the session stays in the database — this is not a Telegram logout).',
'admin.revokeSessionDone': 'Client disconnected',
'admin.pendingLogins': 'Pending logins: {n} · account limit: {max}',
'admin.colPendingLabel': 'Label',
'admin.yes': 'yes',
'admin.no': 'no',
// settings page
'settings.title': 'Settings',
'settings.locale': 'Language',
'settings.localeOff': 'default (from account)',
'settings.localeSaved': 'Language saved',
'settings.statusTitle': 'Service status',
'settings.statusVersion': 'Version',
'settings.statusAccounts': 'Accounts (active / connected / pending logins)',
'settings.statusDb': 'Database',
'settings.statusMaxAccounts': 'Account cap per user',
}