quota.json 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. {
  2. "header": {
  3. "title": "User Quota",
  4. "role": {
  5. "admin": "Admin",
  6. "user": "User"
  7. },
  8. "keysCountSuffix": " keys",
  9. "rpm": "Rate Limit",
  10. "todayCost": "Today's Cost",
  11. "exceededNotice": "Quota exceeded, please contact administrator"
  12. },
  13. "countdown": {
  14. "reset": "Reset Countdown"
  15. },
  16. "windowType": {
  17. "5h": {
  18. "label": "5-Hour Rolling",
  19. "description": "Tracks consumption over the past 5 hours, updated hourly"
  20. },
  21. "weekly": {
  22. "label": "Weekly Reset",
  23. "description": "Natural week cycle (resets Monday 00:00), weekly statistics"
  24. },
  25. "monthly": {
  26. "label": "Monthly Reset",
  27. "description": "Natural month cycle (resets 1st of month 00:00), monthly statistics"
  28. },
  29. "daily": {
  30. "label": "Daily Reset",
  31. "description": "Natural day cycle (resets daily 00:00), daily statistics"
  32. }
  33. },
  34. "toolbar": {
  35. "searchPlaceholder": "Search username or key",
  36. "filter": "Filter",
  37. "sort": "Sort",
  38. "refresh": "Refresh",
  39. "autoRefresh": "Auto Refresh",
  40. "filterOptions": {
  41. "all": "All",
  42. "warning": "Warning",
  43. "exceeded": "Exceeded"
  44. },
  45. "sortOptions": {
  46. "name": "By Name",
  47. "usage": "By Usage"
  48. },
  49. "interval": {
  50. "10s": "10s",
  51. "30s": "30s",
  52. "60s": "60s"
  53. }
  54. },
  55. "layout": {
  56. "title": "Quota Management",
  57. "description": "View and manage quota usage across all levels",
  58. "tabs": {
  59. "users": "User Quotas",
  60. "keys": "Key Quotas",
  61. "providers": "Provider Quotas"
  62. }
  63. },
  64. "users": {
  65. "title": "User Quota Statistics",
  66. "totalCount": "{count} users total",
  67. "manageNotice": "To manage users and keys, visit",
  68. "manageLink": "User Management",
  69. "noNote": "No note",
  70. "rpm": {
  71. "label": "RPM Quota",
  72. "description": "Requests per minute"
  73. },
  74. "dailyCost": {
  75. "label": "Daily Cost",
  76. "resetAt": "Resets at"
  77. },
  78. "noQuotaData": "Unable to retrieve quota information",
  79. "noMatches": "No matching users found",
  80. "noData": "No user data available",
  81. "sort": {
  82. "name": "By Name",
  83. "usage": "By Usage"
  84. },
  85. "filter": {
  86. "all": "All",
  87. "warning": "Near Limit (>60%)",
  88. "exceeded": "Exceeded (≥100%)"
  89. },
  90. "withQuotas": "With Quotas",
  91. "unlimited": "Unlimited",
  92. "totalCost": "Total Cost",
  93. "totalCostAllTime": "All-time Total",
  94. "todayCost": "Today's Cost",
  95. "expiresAtLabel": "Expiration",
  96. "keys": "Keys",
  97. "more": "more",
  98. "noLimitSet": "-",
  99. "noUnlimited": "No unlimited users",
  100. "noKeys": "No keys",
  101. "limit5h": "5-Hour Limit",
  102. "limitWeekly": "Weekly Limit",
  103. "limitMonthly": "Monthly Limit",
  104. "limitTotal": "Total Limit",
  105. "limitConcurrent": "Concurrent Sessions",
  106. "role": {
  107. "admin": "Admin",
  108. "user": "User"
  109. },
  110. "keyStatus": {
  111. "enabled": "Enabled",
  112. "disabled": "Disabled"
  113. }
  114. },
  115. "providers": {
  116. "title": "Provider Quota Statistics",
  117. "totalCount": "{count} providers total",
  118. "filterCount": "Showing {filtered} / {total} providers",
  119. "searchPlaceholder": "Search provider name...",
  120. "status": {
  121. "enabled": "Enabled",
  122. "disabled": "Disabled"
  123. },
  124. "card": {
  125. "priority": "Priority",
  126. "weight": "Weight"
  127. },
  128. "sort": {
  129. "name": "By Name",
  130. "priority": "By Priority",
  131. "weight": "By Weight",
  132. "usage": "By Usage"
  133. },
  134. "list": {
  135. "resetIn": "Resets in",
  136. "unlimited": "Unlimited",
  137. "current": "Current",
  138. "limit": "Limit",
  139. "used": "used"
  140. },
  141. "cost5h": {
  142. "label": "5-Hour Cost"
  143. },
  144. "costDaily": {
  145. "label": "Daily Cost",
  146. "resetAt": "Resets at"
  147. },
  148. "costWeekly": {
  149. "label": "Weekly Cost",
  150. "resetAt": "Resets at"
  151. },
  152. "costMonthly": {
  153. "label": "Monthly Cost",
  154. "resetAt": "Resets at"
  155. },
  156. "concurrentSessions": {
  157. "label": "Concurrent Sessions"
  158. },
  159. "noQuotaSet": "No quota set",
  160. "noQuotaData": "Unable to retrieve quota information",
  161. "noMatches": "No matching providers",
  162. "noMatchesDesc": "No providers match your search criteria. Try adjusting your filters.",
  163. "noProvidersDesc": "No providers have been configured yet.",
  164. "unlimitedSection": "Providers without quota ({count})"
  165. },
  166. "keys": {
  167. "title": "Key Quota Statistics",
  168. "totalCount": "{users} users, {keys} keys total",
  169. "searchPlaceholder": "Search user or key...",
  170. "filterLabel": "Filter",
  171. "filterCount": "Showing {users} users, {keys} keys",
  172. "filter": {
  173. "all": "All Keys",
  174. "keyQuota": "Key Quota Only",
  175. "userQuotaOnly": "User Quota Only",
  176. "warning": "Warning (≥60%)",
  177. "exceeded": "Exceeded (≥100%)"
  178. },
  179. "table": {
  180. "keyName": "Key Name",
  181. "quotaType": "Quota Type",
  182. "cost5h": "5-Hour Quota",
  183. "costDaily": "Daily Quota",
  184. "costWeekly": "Weekly Quota",
  185. "costMonthly": "Monthly Quota",
  186. "concurrentSessions": "Concurrent Limit",
  187. "status": "Status",
  188. "actions": "Actions"
  189. },
  190. "quotaType": {
  191. "independent": "Independent Quota",
  192. "inherited": "Inherited from User"
  193. },
  194. "status": {
  195. "disabled": "Disabled",
  196. "restricted": "Restricted",
  197. "normal": "Normal"
  198. },
  199. "noMatches": "No matching users or keys",
  200. "editDialog": {
  201. "title": "Set Key Quota",
  202. "description": "Key: {keyName} ({userName})",
  203. "cost5h": {
  204. "label": "5-Hour Quota (USD)",
  205. "placeholder": "Unlimited",
  206. "current": "Current usage: {currency}{current} / {currency}{limit}"
  207. },
  208. "costDaily": {
  209. "label": "Daily Quota (USD)",
  210. "placeholder": "Unlimited",
  211. "current": "Current usage: {currency}{current} / {currency}{limit}"
  212. },
  213. "dailyResetMode": {
  214. "label": "Daily Reset Mode",
  215. "options": {
  216. "fixed": "Fixed Time Reset",
  217. "rolling": "Rolling Window (24h)"
  218. },
  219. "desc": {
  220. "fixed": "Reset quota at a fixed time each day",
  221. "rolling": "Reset 24 hours after first API call"
  222. }
  223. },
  224. "dailyResetTime": {
  225. "label": "Daily Reset Time",
  226. "placeholder": "HH:mm"
  227. },
  228. "costWeekly": {
  229. "label": "Weekly Quota (USD)",
  230. "placeholder": "Unlimited",
  231. "current": "Current usage: {currency}{current} / {currency}{limit}"
  232. },
  233. "costMonthly": {
  234. "label": "Monthly Quota (USD)",
  235. "placeholder": "Unlimited",
  236. "current": "Current usage: {currency}{current} / {currency}{limit}"
  237. },
  238. "concurrentSessions": {
  239. "label": "Concurrent Session Quota",
  240. "placeholder": "0 = Unlimited",
  241. "current": "Current concurrent: {current} / {limit}"
  242. },
  243. "clearAll": "Clear All Quotas",
  244. "save": "Save",
  245. "setQuota": "Set Quota",
  246. "success": "Quota set successfully",
  247. "clearSuccess": "Quota cleared",
  248. "error": "Failed to set",
  249. "clearError": "Failed to clear",
  250. "retryError": "Failed to set, please try again later"
  251. },
  252. "editUserDialog": {
  253. "title": "Set User Quota",
  254. "description": "User: {userName}",
  255. "rpm": {
  256. "label": "Requests Per Minute (RPM)",
  257. "placeholder": "60",
  258. "current": "Current: {current} / {limit} requests/minute"
  259. },
  260. "dailyQuota": {
  261. "label": "Daily Cost Quota (USD)",
  262. "placeholder": "100",
  263. "current": "Today's usage: {currency}{current} / {currency}{limit}"
  264. },
  265. "save": "Save",
  266. "editQuota": "Edit Quota",
  267. "success": "User quota set successfully",
  268. "error": "Failed to set",
  269. "retryError": "Failed to set, please try again later"
  270. },
  271. "editKeyForm": {
  272. "title": "Edit Key",
  273. "description": "Modify the key's name, expiration time, and rate limit configuration.",
  274. "keyName": {
  275. "label": "Key Name",
  276. "placeholder": "Enter key name",
  277. "required": "Key Name *"
  278. },
  279. "expiresAt": {
  280. "label": "Expiration Time",
  281. "placeholder": "Select expiration time",
  282. "description": "Leave blank for never expires"
  283. },
  284. "canLoginWebUi": {
  285. "label": "Enable dedicated balance page",
  286. "description": "Allow users to view their balance via a dedicated page"
  287. },
  288. "limit5hUsd": {
  289. "label": "5-Hour Cost Limit (USD)",
  290. "placeholder": "Leave blank for unlimited",
  291. "description": "Maximum cost within 5 hours",
  292. "descriptionWithUserLimit": "Cannot exceed user 5-hour limit ({limit})"
  293. },
  294. "limitDailyUsd": {
  295. "label": "Daily Cost Limit (USD)",
  296. "placeholder": "Leave blank for unlimited",
  297. "description": "Maximum cost per day"
  298. },
  299. "dailyResetMode": {
  300. "label": "Daily Reset Mode",
  301. "options": {
  302. "fixed": "Fixed Time Reset",
  303. "rolling": "Rolling Window (24h)"
  304. },
  305. "desc": {
  306. "fixed": "Reset quota at a specific time each day",
  307. "rolling": "24-hour rolling window from first request"
  308. }
  309. },
  310. "dailyResetTime": {
  311. "label": "Daily Reset Time",
  312. "placeholder": "HH:mm",
  313. "description": "When the daily limit resets (uses system timezone)"
  314. },
  315. "limitWeeklyUsd": {
  316. "label": "Weekly Cost Limit (USD)",
  317. "placeholder": "Leave blank for unlimited",
  318. "description": "Maximum cost per week",
  319. "descriptionWithUserLimit": "Cannot exceed user weekly limit ({limit})"
  320. },
  321. "limitMonthlyUsd": {
  322. "label": "Monthly Cost Limit (USD)",
  323. "placeholder": "Leave blank for unlimited",
  324. "description": "Maximum cost per month",
  325. "descriptionWithUserLimit": "Cannot exceed user monthly limit ({limit})"
  326. },
  327. "limitTotalUsd": {
  328. "label": "Total Cost Limit (USD)",
  329. "placeholder": "Leave blank for unlimited",
  330. "description": "Maximum cumulative spending (no reset)",
  331. "descriptionWithUserLimit": "Cannot exceed user total limit ({limit})"
  332. },
  333. "limitConcurrentSessions": {
  334. "label": "Concurrent Session Limit",
  335. "placeholder": "0 means unlimited",
  336. "description": "Number of simultaneous conversations",
  337. "descriptionWithUserLimit": "Cannot exceed user session limit ({limit})"
  338. },
  339. "providerGroup": {
  340. "label": "Provider Group",
  341. "placeholder": "Enter provider group tags, press Enter to add",
  342. "description": "Provider groups for this key (default: default).",
  343. "defaultDescription": "default includes providers without groupTag.",
  344. "descriptionWithUserGroup": "Provider groups for this key (user groups: {group}; default: default)."
  345. },
  346. "submitText": "Save Changes",
  347. "loadingText": "Saving...",
  348. "success": "Key updated successfully",
  349. "error": "Failed to update key",
  350. "retryError": "Save failed, please try again later",
  351. "keyInfoMissing": "Key information does not exist"
  352. }
  353. }
  354. }