mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-09-22 06:40:21 +08:00
@@ -4,15 +4,26 @@ export default {
|
||||
title: 'Admin Dashboard',
|
||||
description: 'System overview and real-time statistics',
|
||||
apiKeys: 'API Keys',
|
||||
totalApiKeys: 'Total API Keys',
|
||||
activeApiKeys: 'Active Keys',
|
||||
accounts: 'Accounts',
|
||||
totalAccounts: 'Total Accounts',
|
||||
activeAccounts: 'Active Accounts',
|
||||
users: 'Users',
|
||||
totalUsers: 'Total Users',
|
||||
todayRequests: 'Today Requests',
|
||||
totalRequests: 'Total Requests',
|
||||
todayCost: 'Today Cost',
|
||||
totalCost: 'Total Cost',
|
||||
newUsersToday: 'New Users Today',
|
||||
todayTokens: 'Today Tokens',
|
||||
totalTokens: 'Total Tokens',
|
||||
input: 'Input',
|
||||
output: 'Output',
|
||||
cacheToday: 'Cache (Today)',
|
||||
performance: 'Performance',
|
||||
avgResponse: 'Avg Response',
|
||||
averageTime: 'Average Time',
|
||||
active: 'active',
|
||||
ok: 'ok',
|
||||
err: 'err',
|
||||
@@ -33,6 +44,7 @@ export default {
|
||||
noGroup: 'No Group',
|
||||
requests: 'Requests',
|
||||
tokens: 'Tokens',
|
||||
cache: 'Cache',
|
||||
actual: 'Actual',
|
||||
standard: 'Standard',
|
||||
accountCost: 'Cost',
|
||||
@@ -50,11 +62,21 @@ export default {
|
||||
spendShort: 'Spend',
|
||||
requestsShort: 'Req',
|
||||
tokensShort: 'Tok',
|
||||
last7Days: 'Last 7 days',
|
||||
noUsageRecords: 'No usage records',
|
||||
startUsingApi: 'Once you start using the API, your usage history will appear here.',
|
||||
viewAllUsage: 'View all',
|
||||
quickActions: 'Quick Actions',
|
||||
manageUsers: 'Manage Users',
|
||||
viewUserAccounts: 'View and manage user accounts',
|
||||
manageAccounts: 'Manage Accounts',
|
||||
configureAiAccounts: 'Configure AI platform accounts',
|
||||
batchImage: 'Batch Image',
|
||||
batchImageDesc: 'Submit jobs and copy agent instructions',
|
||||
groupPricing: 'Group Pricing',
|
||||
groupPricingDesc: 'Configure batch discount and hold ratio',
|
||||
systemSettings: 'System Settings',
|
||||
configureSystem: 'Configure system settings',
|
||||
failedToLoad: 'Failed to load dashboard statistics'
|
||||
},
|
||||
|
||||
@@ -398,7 +420,10 @@ export default {
|
||||
createUser: 'Create User',
|
||||
editUser: 'Edit User',
|
||||
deleteUser: 'Delete User',
|
||||
searchUsers: 'Search by email, username, notes, or API key...',
|
||||
deleteConfirmMessage: "Are you sure you want to delete user '{email}'? This action cannot be undone.",
|
||||
searchPlaceholder: 'Search by email, username, notes, or API key...',
|
||||
searchUsers: 'Search by email, username, notes, or API key',
|
||||
roleFilter: 'Role Filter',
|
||||
allRoles: 'All Roles',
|
||||
allStatus: 'All Status',
|
||||
allGroups: 'All Groups',
|
||||
@@ -414,6 +439,8 @@ export default {
|
||||
searchAuthorizedGroups: 'Search authorized groups...',
|
||||
allApiKeyGroups: 'All API Key Groups',
|
||||
searchApiKeyGroups: 'Search API Key groups...',
|
||||
statusFilter: 'Status Filter',
|
||||
allStatuses: 'All Status',
|
||||
admin: 'Admin',
|
||||
user: 'User',
|
||||
disabled: 'Disabled',
|
||||
@@ -433,7 +460,21 @@ export default {
|
||||
creating: 'Creating...',
|
||||
updating: 'Updating...',
|
||||
form: {
|
||||
emailLabel: 'Email',
|
||||
emailPlaceholder: 'Enter email',
|
||||
usernameLabel: 'Username',
|
||||
usernamePlaceholder: 'Enter username (optional)',
|
||||
notesLabel: 'Notes',
|
||||
notesPlaceholder: 'Enter notes (admin only)',
|
||||
notesHint: 'This note is only visible to administrators',
|
||||
passwordLabel: 'Password',
|
||||
passwordPlaceholder: 'Enter password (leave empty to keep unchanged)',
|
||||
roleLabel: 'Role',
|
||||
selectRole: 'Select role',
|
||||
balanceLabel: 'Balance',
|
||||
concurrencyLabel: 'Concurrency',
|
||||
statusLabel: 'Status',
|
||||
selectStatus: 'Select status',
|
||||
rpmLimit: 'Requests Per Minute (RPM)',
|
||||
rpmLimitPlaceholder: '0 = unlimited',
|
||||
rpmLimitHint: 'Max requests per minute for this user; 0 = unlimited. Acts as a fallback only when the group has no rpm_limit set.'
|
||||
@@ -504,6 +545,21 @@ export default {
|
||||
soraStorageQuotaHint: 'In GB, 0 means use group or system default quota',
|
||||
amountRequired: 'Please enter a valid amount',
|
||||
insufficientBalance: 'Insufficient balance',
|
||||
adjustBalance: 'Adjust Balance',
|
||||
adjustConcurrency: 'Adjust Concurrency',
|
||||
adjustmentAmount: 'Adjustment Amount',
|
||||
adjustmentAmountHint: 'Positive to add, negative to subtract',
|
||||
currentConcurrency: 'Current Concurrency',
|
||||
saving: 'Saving...',
|
||||
noUsers: 'No users yet',
|
||||
noUsersDescription: 'Create your first user to get started.',
|
||||
userCreatedSuccess: 'User created successfully',
|
||||
userUpdatedSuccess: 'User updated successfully',
|
||||
userDeletedSuccess: 'User deleted successfully',
|
||||
balanceAdjustedSuccess: 'Balance adjusted successfully',
|
||||
concurrencyAdjustedSuccess: 'Concurrency adjusted successfully',
|
||||
failedToSave: 'Failed to save user',
|
||||
failedToAdjust: 'Adjustment failed',
|
||||
deleteConfirm: "Are you sure you want to delete '{email}'? This action cannot be undone.",
|
||||
setAllowedGroups: 'Set Allowed Groups',
|
||||
allowedGroupsHint:
|
||||
@@ -695,6 +751,7 @@ export default {
|
||||
allPlatforms: 'All Platforms',
|
||||
allStatus: 'All Status',
|
||||
allGroups: 'All Groups',
|
||||
exclusiveFilter: 'Exclusive',
|
||||
exclusive: 'Exclusive',
|
||||
nonExclusive: 'Non-Exclusive',
|
||||
public: 'Public',
|
||||
@@ -706,7 +763,10 @@ export default {
|
||||
rpmOverrideHint: 'Per-user RPM cap in this group; empty = group default; 0 = unlimited',
|
||||
rateDefault: 'default',
|
||||
rpmDefault: 'default',
|
||||
exclusive: 'Exclusive',
|
||||
type: 'Type',
|
||||
priority: 'Priority',
|
||||
apiKeys: 'API Keys',
|
||||
accounts: 'Accounts',
|
||||
capacity: 'Capacity',
|
||||
usage: 'Usage',
|
||||
@@ -742,14 +802,39 @@ export default {
|
||||
rateMultiplier: 'Rate Multiplier',
|
||||
status: 'Status',
|
||||
exclusive: 'Exclusive Group',
|
||||
nameLabel: 'Group Name',
|
||||
namePlaceholder: 'Enter group name',
|
||||
descriptionLabel: 'Description',
|
||||
descriptionPlaceholder: 'Enter description (optional)',
|
||||
rateMultiplierLabel: 'Rate Multiplier',
|
||||
rateMultiplierHint: '1.0 = standard rate, 0.5 = half price, 2.0 = double',
|
||||
rpmLimit: 'Requests Per Minute (RPM)',
|
||||
rpmLimitPlaceholder: '0 = unlimited',
|
||||
rpmLimitHint: 'Max requests per minute for each user in this group; 0 = unlimited. Once set, it takes over per-user rate limiting in this group (overrides the user-level rpm_limit fallback).'
|
||||
rpmLimitHint: 'Max requests per minute for each user in this group; 0 = unlimited. Once set, it takes over per-user rate limiting in this group (overrides the user-level rpm_limit fallback).',
|
||||
exclusiveLabel: 'Exclusive Group',
|
||||
exclusiveHint: 'Exclusive group, can be manually assigned to users',
|
||||
platformLabel: 'Platform Restriction',
|
||||
platformPlaceholder: 'Select platform (leave empty for no restriction)',
|
||||
accountsLabel: 'Designated Accounts',
|
||||
accountsPlaceholder: 'Select accounts (leave empty for no restriction)',
|
||||
priorityLabel: 'Priority',
|
||||
priorityHint: 'Lower value means higher priority, used for account scheduling',
|
||||
statusLabel: 'Status'
|
||||
},
|
||||
exclusiveObj: {
|
||||
yes: 'Yes',
|
||||
no: 'No'
|
||||
},
|
||||
enterGroupName: 'Enter group name',
|
||||
optionalDescription: 'Optional description',
|
||||
platformHint: 'Select the platform this group is associated with',
|
||||
platformNotEditable: 'Platform cannot be changed after creation',
|
||||
saving: 'Saving...',
|
||||
noGroups: 'No groups yet',
|
||||
noGroupsDescription: 'Create a group to better manage API keys and rates.',
|
||||
groupCreatedSuccess: 'Group created successfully',
|
||||
groupUpdatedSuccess: 'Group updated successfully',
|
||||
groupDeletedSuccess: 'Group deleted successfully',
|
||||
rateMultiplierHint: 'Cost multiplier for this group (e.g., 1.5 = 150% of base cost)',
|
||||
exclusiveHint: 'Exclusive group, manually assign to specific users',
|
||||
exclusiveTooltip: {
|
||||
|
||||
@@ -50,6 +50,8 @@ export default {
|
||||
ad: {
|
||||
inline: 'Need proxy IP?'
|
||||
},
|
||||
deleteConfirmMessage: "Are you sure you want to delete proxy '{name}'?",
|
||||
testProxy: 'Test Proxy',
|
||||
dataImport: 'Import',
|
||||
dataExportSelected: 'Export Selected',
|
||||
dataImportTitle: 'Import Proxies',
|
||||
@@ -93,7 +95,27 @@ export default {
|
||||
latency: 'Latency',
|
||||
expiry: 'Validity',
|
||||
createdAt: 'Created',
|
||||
actions: 'Actions'
|
||||
actions: 'Actions',
|
||||
nameLabel: 'Name',
|
||||
namePlaceholder: 'Enter proxy name',
|
||||
protocolLabel: 'Protocol',
|
||||
selectProtocol: 'Select protocol',
|
||||
hostLabel: 'Host',
|
||||
hostPlaceholder: 'Enter host address',
|
||||
portLabel: 'Port',
|
||||
portPlaceholder: 'Enter port',
|
||||
usernameLabel: 'Username (Optional)',
|
||||
usernamePlaceholder: 'Enter username',
|
||||
passwordLabel: 'Password (Optional)',
|
||||
passwordPlaceholder: 'Enter password',
|
||||
priorityLabel: 'Priority',
|
||||
statusLabel: 'Status'
|
||||
},
|
||||
filters: {
|
||||
protocol: 'Protocol',
|
||||
allProtocols: 'All Protocols',
|
||||
status: 'Status',
|
||||
allStatuses: 'All Status'
|
||||
},
|
||||
testConnection: 'Test Connection',
|
||||
qualityCheck: 'Quality Check',
|
||||
@@ -150,8 +172,12 @@ export default {
|
||||
batchImportAllSkipped: 'All {skipped} proxies already exist, skipped import',
|
||||
failedToImport: 'Failed to batch import',
|
||||
// Other messages
|
||||
saving: 'Saving...',
|
||||
testing: 'Testing...',
|
||||
creating: 'Creating...',
|
||||
updating: 'Updating...',
|
||||
noProxies: 'No proxies yet',
|
||||
noProxiesDescription: 'Add a proxy server to improve API access stability.',
|
||||
proxyCreated: 'Proxy created successfully',
|
||||
proxyUpdated: 'Proxy updated successfully',
|
||||
proxyDeleted: 'Proxy deleted successfully',
|
||||
@@ -181,7 +207,12 @@ export default {
|
||||
qualityStatusFail: 'Fail',
|
||||
qualityStatusChallenge: 'Challenge',
|
||||
qualityTargetBase: 'Base Connectivity',
|
||||
proxyCreatedSuccess: 'Proxy created successfully',
|
||||
proxyUpdatedSuccess: 'Proxy updated successfully',
|
||||
proxyDeletedSuccess: 'Proxy deleted successfully',
|
||||
testSuccess: 'Proxy test passed',
|
||||
failedToLoad: 'Failed to load proxies',
|
||||
failedToSave: 'Failed to save proxy',
|
||||
failedToCreate: 'Failed to create proxy',
|
||||
failedToUpdate: 'Failed to update proxy',
|
||||
failedToDelete: 'Failed to delete proxy',
|
||||
@@ -229,6 +260,7 @@ export default {
|
||||
status: 'Status',
|
||||
usedBy: 'Used By',
|
||||
usedAt: 'Used At',
|
||||
createdAt: 'Created At',
|
||||
expiresAt: 'Expires At',
|
||||
actions: 'Actions'
|
||||
},
|
||||
@@ -304,7 +336,39 @@ export default {
|
||||
used: 'Used',
|
||||
expired: 'Expired',
|
||||
disabled: 'Disabled'
|
||||
}
|
||||
},
|
||||
form: {
|
||||
typeLabel: 'Type',
|
||||
selectType: 'Select type',
|
||||
valueLabel: 'Value',
|
||||
valuePlaceholder: 'Enter value',
|
||||
balanceHint: 'Balance amount (USD)',
|
||||
concurrencyHint: 'Concurrency increment',
|
||||
countLabel: 'Count',
|
||||
countPlaceholder: 'Enter count',
|
||||
countHint: 'Number of redeem codes to generate',
|
||||
prefixLabel: 'Prefix (Optional)',
|
||||
prefixPlaceholder: 'e.g., GIFT',
|
||||
expiresLabel: 'Expires At (Optional)'
|
||||
},
|
||||
filters: {
|
||||
type: 'Type',
|
||||
allTypes: 'All Types',
|
||||
status: 'Status',
|
||||
allStatuses: 'All Status',
|
||||
search: 'Search codes'
|
||||
},
|
||||
copyCode: 'Copy',
|
||||
disableCode: 'Disable',
|
||||
enableCode: 'Enable',
|
||||
deleteConfirmMessage: 'Are you sure you want to delete this redeem code?',
|
||||
noCodes: 'No redeem codes yet',
|
||||
noCodesDescription: 'Generate redeem codes to distribute balance or concurrency to users.',
|
||||
codesGeneratedSuccess: 'Redeem codes generated successfully, {count} total',
|
||||
codeDisabledSuccess: 'Redeem code disabled',
|
||||
codeEnabledSuccess: 'Redeem code enabled',
|
||||
codeDeletedSuccess: 'Redeem code deleted successfully',
|
||||
failedToUpdate: 'Failed to update redeem code'
|
||||
},
|
||||
|
||||
// Announcements
|
||||
|
||||
Reference in New Issue
Block a user