Files
EventHubFrontAdmin/src/locales/en.json
T
aleksey 8753e84a03 feat: Spec product version, build bake, Admin UI label.
Resolve VERSION from EventHubSpec; VITE_APP_BUILD from run_number; show Admin UI / API as version.build (sha).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 21:48:25 +03:00

526 lines
17 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"appTitle": "EventHub",
"cancel": "Cancel",
"save": "Save",
"saving": "Saving…",
"delete": "Delete",
"edit": "Edit",
"open": "Open",
"close": "Close",
"create": "Create",
"add": "Add",
"find": "Search",
"search": "Search",
"actions": "Actions",
"backToList": "Back to list",
"tryAgain": "Try again",
"toDashboard": "Go to dashboard",
"yes": "Yes",
"no": "No",
"noData": "No data",
"ageJustNow": "just now",
"ageMinutes": "{{count}}m",
"ageHours": "{{count}}h",
"ageYesterday": "yesterday",
"ageDays": "{{count}}d",
"selectedCount": "Selected: {{count}}",
"bulkReviewed": "Reviewed ({{count}})",
"bulkDismissed": "Dismissed ({{count}})",
"loading": "Loading…",
"emDash": "—",
"all": "All",
"allStatuses": "All statuses",
"allPlans": "All plans",
"allTypes": "All types",
"total": "Total",
"freeze": "Freeze",
"unfreeze": "Unfreeze",
"quickView": "Quick view",
"show": "Show",
"hide": "Hide",
"irreversible": "This action cannot be undone.",
"pageOf": "{{current}} / {{total}}",
"shownRange": "Showing {{from}}{{to}} of {{total}}",
"pageLabel": "Page {{current}}",
"perPage": "Per page",
"searchPlaceholder": "Search…",
"selectRole": "Select role",
"selectStatus": "Select status",
"selectType": "Select type",
"selectPlan": "Select plan",
"selectLanguage": "Select language",
"selectTimezone": "Select timezone",
"selectAdmin": "Select admin",
"enterReason": "Enter reason for status change",
"unassigned": "Unassigned",
"email": "Email",
"nickname": "Nickname",
"role": "Role",
"status": "Status",
"reason": "Reason",
"phone": "Phone",
"language": "Language",
"timezone": "Timezone",
"lastLogin": "Last login",
"createdAt": "Created",
"updatedAt": "Updated",
"title": "Title",
"description": "Description",
"type": "Type",
"start": "Start",
"rating": "Rating",
"owner": "Owner",
"target": "Target",
"targetType": "Target type",
"sender": "Reporter",
"plan": "Plan",
"comment": "Comment",
"password": "Password",
"error": "Error",
"word": "Word",
"date": "Date",
"dateFrom": "From",
"dateTo": "To",
"assigned": "Assigned",
"expiresAt": "Expires at",
"count": "Count",
"firstSeen": "First seen",
"lastSeen": "Last seen",
"user": "User",
"entityUpdated": "Updated",
"entityDeleted": "Deleted",
"entityCreated": "Created",
"updateError": "Update failed",
"deleteError": "Delete failed",
"createError": "Create failed",
"loadError": "Load failed",
"notFound": "Not found",
"langRu": "Русский",
"langEn": "English",
"reviewed": "Reviewed",
"dismissed": "Dismissed",
"resolved": "Resolved",
"inProgress": "In progress",
"pendingUsers": "Unverified",
"queueEmpty": "Queue is empty",
"openInbox": "Open inbox",
"nothingFound": "Nothing found",
"category": "Category",
"ip": "IP",
"apply": "Apply",
"id": "ID",
"changeStatusTo": "Change status to «{{status}}»",
"confirmMarkAs": "Mark as «{{status}}»?",
"bulkUpdated": "Statuses updated",
"bulkUpdateError": "Bulk update failed",
"openFull": "Open full details",
"socialLinks": "Social links",
"shortName": "Short name",
"color": "Color",
"image": "Image",
"confirmation": "Confirmation",
"settings": "Settings",
"specialist": "Specialist",
"calendar": "Calendar",
"masterEvent": "Master event",
"attachments": "Attachments",
"editHistory": "Edit history",
"recurrence": "Recurrence",
"location": "Location",
"isInstance": "Is instance",
"likes": "Likes",
"dislikes": "Dislikes",
"errorHash": "Error hash",
"errorMessage": "Message",
"stacktrace": "Stack trace",
"context": "Context",
"resolution": "Resolution",
"resolutionNote": "Resolution comment",
"assign": "Assign"
},
"navGroup": {
"work": "Work",
"overview": "Overview",
"content": "Content",
"moderation": "Moderation",
"system": "System",
"account": "Account"
},
"nav": {
"inboxReports": "Queue · reports",
"inboxTickets": "Queue · tickets",
"inboxAutomod": "Queue · automod",
"dashboard": "Dashboard",
"monitoring": "Monitoring",
"users": "Users",
"calendars": "Calendars",
"events": "Events",
"subscriptions": "Subscriptions",
"reports": "Reports · archive",
"reviews": "Reviews",
"bannedWords": "Banned words",
"automodSettings": "Automoderation",
"tickets": "Tickets · archive",
"admins": "Admins",
"audit": "Audit",
"profile": "My profile"
},
"layout": {
"search": "Search",
"searchHotkey": "Search (⌘K)",
"myProfile": "My profile",
"uiLanguage": "UI language",
"logout": "Log out",
"densityCompact": "Density: compact",
"densityNormal": "Density: comfortable",
"densityToNormal": "Comfortable density",
"densityToCompact": "Compact density",
"paletteTitle": "Command palette",
"palettePlaceholder": "Go to a section or paste an ID…",
"paletteHints": "↑↓ navigate · Enter open · Esc close",
"paletteOpenReportInbox": "Report in inbox",
"paletteOpenReport": "Report detail",
"paletteOpenTicketInbox": "Ticket in inbox",
"paletteOpenTicket": "Ticket detail",
"paletteOpenEvent": "Event detail",
"paletteOpenUser": "User detail",
"paletteJumpGroup": "By ID",
"nodesNoData": "Nodes: no data",
"nodesLabel": "Nodes · CPU",
"nodesPrev": "Previous nodes",
"nodesNext": "Next nodes",
"nodeTooltipTitle": "Node {{node}} · CPU / RAM",
"nodeCpu": "CPU: {{value}}%",
"nodeMemory": "Memory: {{used}} / {{total}} MB ({{percent}}%)",
"nodeWas": "was {{value}}%",
"nodeAria": "{{node}}: CPU {{cpu}}%, memory {{memory}}%",
"adminVersion": "Admin UI {{version}}",
"apiVersion": "API {{version}}",
"apiVersionUnavailable": "API — unavailable"
},
"explore": {
"viewAria": "List view",
"table": "Table",
"rows": "Rows",
"tops": "Tops",
"listsCount": "{{count}} lists",
"descPreviewName": "Explore · click name for preview, ⋯ for actions",
"descPreviewTitle": "Explore · click title for preview, ⋯ for actions",
"descActions": "Explore · ⋯ for actions",
"descBulk": "Explore · ⋯ for actions, bulk via row selection",
"descRowOpen": "Explore · click row to open, ⋯ for actions",
"searchEvents": "Search events…",
"searchCalendars": "Search calendars…",
"searchUsers": "Search (email, nickname)…",
"searchWord": "Search by word",
"expiringSoon": "Expiring soon",
"paid30d": "Paid · 30 days",
"byRating": "Rating",
"byReviews": "Reviews",
"positive": "Positive",
"negative": "Negative",
"allReviews": "All reviews",
"byReports": "By reports",
"loginAt": "login {{date}}",
"ownerId": "owner {{id}}"
},
"inbox": {
"reportsTitle": "Queue · Reports",
"ticketsTitle": "Queue · Tickets",
"reportsHints": "j/k · Enter open · 1 reviewed · 2 dismissed · link → preview",
"ticketsHints": "j/k · Enter open · 1 resolved · 2 in progress",
"pending": "Pending",
"all": "All",
"active": "Active",
"mine": "Mine",
"queue": "Queue ({{count}})",
"selectReport": "Select a report from the queue",
"selectTicket": "Select a ticket from the queue",
"reportCard": "Report {{id}}",
"fullCard": "Full card",
"bannerReports": "Day-to-day work is in Queue · reports. This is archive and filters.",
"bannerTickets": "Day-to-day work is in Queue · tickets. This is the full list and filters."
},
"dashboard": {
"controlCenter": "Control Center",
"moderation": "Moderation",
"support": "Support",
"subtitleAdmin": "Work · Overview · Investigate",
"subtitleModeration": "Primary mode is the inbox. Shift KPIs only.",
"subtitleSupport": "Focus on assigned tickets — not the full error catalog.",
"reportsInboxTitle": "Reports inbox",
"reportsInboxDesc": "Split-view queue: j/k, 1 reviewed, 2 dismissed",
"ticketsInboxTitle": "Tickets inbox",
"ticketsInboxDesc": "Active / mine · j/k · 1 resolved · 2 in progress",
"reportQueueTitle": "Reports queue",
"reportQueueDesc": "Pending: {{count}}",
"ticketQueueTitle": "Tickets queue",
"ticketQueueDesc": "Open: {{count}}",
"quickOverview": "Quick overview",
"pending": "Pending",
"reviewed": "Reviewed",
"avgTimeH": "Avg time (h)",
"assignedOpen": "Assigned open",
"assignedTotal": "Assigned total",
"avgResolutionH": "Avg resolution (h)",
"eventsByDay": "Events by day",
"registrationsByDay": "Registrations by day",
"reviewsByDay": "Reviews by day",
"reportsByDay": "Reports by day",
"ticketsByDay": "Tickets by day",
"subscriptionsByDay": "Subscriptions by day",
"loadStatsError": "Failed to load stats",
"ticketsTotal": "Tickets (total)",
"ticketsOpen": "Open tickets",
"trialSubscriptions": "Trial subscriptions"
},
"monitoring": {
"title": "Observe · Monitoring",
"subtitle": "Live WS + metrics history · range {{minutes}} min",
"noData": "no data",
"waitingTitle": "Waiting for telemetry",
"waitingDesc": "Metrics appear via WebSocket or REST history for the selected range.",
"noPoints": "No data points yet.",
"node": "Node",
"nodeNamed": "Node {{name}}",
"refreshing": "Refreshing history…",
"m5": "5 min",
"m15": "15 min",
"m30": "30 min",
"h1": "1 hour",
"onlineNodes": "Online nodes",
"cpuPeak": "CPU peak (latest)",
"memoryAvg": "Memory avg",
"cpuMemory": "CPU and memory (MB)",
"memoryByType": "Memory by type (MB)",
"wsQueue": "WebSocket and queue",
"mnesia": "Mnesia",
"mnesiaTables": "Mnesia table sizes (latest)",
"noTableData": "No table data for the selected range",
"table": "Table",
"records": "Records",
"healthy": "{{count}} nodes healthy",
"load": "{{count}} nodes · load"
},
"status": {
"active": "Active",
"frozen": "Frozen",
"deleted": "Deleted",
"pending": "Pending",
"reviewed": "Reviewed",
"dismissed": "Dismissed",
"open": "Open",
"in_progress": "In progress",
"resolved": "Resolved",
"closed": "Closed",
"visible": "Visible",
"hidden": "Hidden",
"cancelled": "Cancelled",
"completed": "Completed",
"expired": "Expired"
},
"ws": {
"newReport": "New report",
"reportId": "Report #{{id}}",
"onTarget": "on {{type}}",
"newTicket": "New ticket created",
"ticketCreated": "Ticket #{{id}} created",
"automodHit": "Automoderation hit",
"open": "Open"
},
"errors": {
"forbiddenTitle": "403",
"forbiddenMessage": "You do not have access to «{{section}}».",
"renderTitle": "Render error",
"renderFallback": "Could not render this page."
},
"login": {
"title": "Sign in",
"subtitle": "Control Center · moderation and support",
"email": "Email",
"password": "Password",
"submit": "Sign in",
"invalid_credentials": "Invalid email or password",
"insufficient_permissions": "Insufficient permissions",
"error": "Sign-in error"
},
"profile": {
"title": "My profile",
"description": "Admin account details",
"edit": "Edit",
"saved": "Profile updated",
"saveError": "Failed to update profile",
"avatarUrl": "Avatar URL",
"preferences": "Preferences",
"preferencesJson": "Preferences (JSON)",
"invalidJson": "Invalid JSON",
"preferencesInvalidJson": "Preferences must be valid JSON"
},
"users": {
"title": "Users",
"editTitle": "Edit user",
"deleteTitle": "Delete user?",
"deleteHint": "This cannot be undone. Set a reason via edit first if needed.",
"statusTitle": "Change status to «{{status}}»",
"notFound": "User not found"
},
"events": {
"title": "Events",
"entity": "Event",
"detailTitle": "Event {{name}}",
"editTitle": "Edit event",
"deleteTitle": "Delete event?",
"notFound": "Event not found",
"topsRating": "Top by rating",
"startDatetime": "Start date and time",
"durationMin": "Duration (min)",
"capacity": "Capacity",
"specialistId": "Specialist (ID)",
"calendarId": "Calendar (ID)",
"onlineLink": "Online link",
"tags": "Tags",
"recurrenceInterval": "{{freq}} (interval: {{interval}})",
"ratingWithCount": "{{avg}} ({{count}} ratings)",
"periodChip": "start_time range: {{from}} — {{to}}",
"emptyFiltered": "No events match the current filters",
"emptyInRange": "No events in the selected period",
"widenPeriod": "Widen period",
"resetFilters": "Reset filters"
},
"calendars": {
"title": "Calendars",
"entity": "Calendar",
"detailTitle": "Calendar {{name}}",
"editTitle": "Edit calendar",
"deleteTitle": "Delete calendar?",
"notFound": "Calendar not found"
},
"reports": {
"title": "Reports",
"entity": "Report",
"notFound": "Report not found",
"detailTitle": "Report {{id}}",
"resolvedAt": "Resolved at",
"resolvedBy": "Resolved by",
"id": "ID"
},
"reviews": {
"title": "Reviews",
"detailTitle": "Review {{id}}",
"editTitle": "Edit review",
"hideSelected": "Hide selected",
"showSelected": "Show selected",
"deleteSelected": "Delete selected",
"notFound": "Review not found",
"score": "Score",
"likesDislikes": "Likes / Dislikes",
"selectAllAria": "Select all on page",
"selectReviewAria": "Select review {{id}}",
"selectReviews": "Select reviews",
"reasonRequired": "Enter a reason for the status change",
"reasonRequiredShort": "Enter a reason",
"bulkStatusTitle": "Change status to «{{status}}» for {{count}} reviews",
"bulkReasonPlaceholder": "Shared reason for selected reviews",
"ratingValue": "Score {{rating}}"
},
"tickets": {
"title": "Tickets",
"detailTitle": "Ticket {{id}}",
"deleteTitle": "Delete ticket?",
"notFound": "Ticket not found",
"statsHint": "Explore · closed {{closed}}, total errors {{errors}}",
"source": "Source",
"sourceAll": "All sources",
"sourceBackend": "Backend",
"sourceFrontend": "Frontend",
"sourceManual": "Manual"
},
"subscriptions": {
"title": "Subscriptions",
"editTitle": "Edit subscription",
"deleteTitle": "Delete subscription?",
"trial": "Trial",
"trialUsed": "Trial used",
"trialCount": "Trial",
"expiresUntil": "until {{date}}",
"trialBadge": "trial"
},
"admins": {
"title": "Admins",
"detailTitle": "Admin {{name}}",
"description": "Manage administrator accounts",
"add": "Add admin",
"createTitle": "Create admin",
"editTitle": "Edit admin",
"deleteTitle": "Delete admin?",
"notFound": "Admin not found"
},
"audit": {
"title": "Audit",
"description": "Administrator action log",
"admin": "Admin",
"action": "Action",
"name": "Name",
"searchAdmin": "Search administrator",
"searchAdminPlaceholder": "Email…"
},
"bannedWords": {
"title": "Banned words",
"description": "Manage banned words in content",
"placeholder": "New word",
"deleteTitle": "Delete word?",
"deleteBody": "«{{word}}» will be removed from the banned list.",
"addedBy": "Added by",
"addedAt": "Added at"
},
"automodSettings": {
"title": "Automoderation settings",
"description": "Keyword policy, matching mode, and report threshold",
"keywordAction": "Action on banned word",
"actionFlag": "Flag (queue + soft-hide)",
"actionReject": "Reject save",
"actionCensor": "Replace with ***",
"matchMode": "Match mode",
"matchWordBoundary": "Word boundary",
"matchSubstring": "Substring",
"reportThreshold": "Pending reports threshold",
"thresholdInvalid": "Threshold must be ≥ 1",
"saved": "Settings saved",
"saveFailed": "Failed to save settings"
},
"automodInbox": {
"title": "Automoderation queue",
"description": "Hits from keywords and report threshold",
"createdAt": "When",
"trigger": "Trigger",
"entity": "Entity",
"words": "Words",
"action": "Action",
"status": "Status",
"actions": "Decision",
"approve": "Approve",
"reject": "Reject",
"filterOpen": "Open",
"filterAll": "All",
"filterApproved": "Approved",
"filterRejected": "Rejected",
"resolved": "Decision saved",
"resolveFailed": "Failed to save decision"
},
"menu": {
"dashboard": "Dashboard",
"users": "Users",
"calendars": "Calendars",
"events": "Events",
"reports": "Reports",
"reviews": "Reviews",
"bannedWords": "Banned words",
"tickets": "Tickets",
"subscriptions": "Subscriptions",
"admins": "Admins",
"audit": "Audit",
"monitoring": "Monitoring"
}
}