Newer
Older
tgclient-mcp / frontend / src / i18n / messages / en.js
// 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',
}