{view === "daily" ? t("usageTrend.dailyTitle") : t("usageTrend.monthlyTitle")}
-
-
-
-
+
onViewChange(value as UsageTrendView)}>
+
+ {t("usageTrend.daily")}
+ {t("usageTrend.monthly")}
+
+
{view === "daily" ? (
diff --git a/frontend/i18n/messages/en-US/admin-statistics.json b/frontend/i18n/messages/en-US/admin-statistics.json
index 93833923..9690985e 100644
--- a/frontend/i18n/messages/en-US/admin-statistics.json
+++ b/frontend/i18n/messages/en-US/admin-statistics.json
@@ -1,33 +1,36 @@
{
"title": "Usage statistics",
- "description": "Review global model usage, billed cost, tokens, calls, and latency.",
"refresh": "Refresh",
"empty": "No usage data for the selected filters.",
"unknownModel": "Unknown model",
"unknownUser": "User #{id}",
"filters": {
- "rangePreset": "Time range",
- "dateRange": "Dates",
"last7Days": "Last 7 days",
"last30Days": "Last 30 days",
"last90Days": "Last 90 days",
"custom": "Custom",
- "user": "User",
+ "subject": "Subject",
"model": "Model",
"allModels": "All models",
"billingScope": "Billing type",
"billingAll": "All calls",
"billingFree": "Free models",
"billingBillable": "Billable models",
+ "clear": "Clear filters",
"rangeErrors": {
"incomplete": "Select both a start and end date.",
"invalid": "The end date must be on or after the start date.",
"tooLong": "The selected range cannot exceed 366 days."
},
- "userSelect": {
+ "subjectSelect": {
"allUsers": "All users",
- "searchPlaceholder": "Search username, name, or email",
- "empty": "No matching users.",
+ "users": "Users",
+ "permissionGroups": "Permission groups",
+ "searchUsers": "Search username, name, or email",
+ "searchPermissionGroups": "Search permission groups",
+ "emptyUsers": "No matching users.",
+ "emptyPermissionGroups": "No matching permission groups.",
+ "memberCount": "{count} users",
"loadFailed": "Could not load users"
}
},
@@ -43,14 +46,11 @@
"calls": "Calls"
},
"trend": {
- "title": "Usage trend",
- "daily": "Aggregated by day",
- "monthly": "Aggregated by month"
+ "title": "Usage trend"
},
"rankings": {
"models": "Top models",
"users": "Top users",
- "top10": "Top 10 by {metric}",
"total": "Total"
},
"toasts": {
diff --git a/frontend/i18n/messages/en-US/settings.json b/frontend/i18n/messages/en-US/settings.json
index c5fb063f..b44e6690 100644
--- a/frontend/i18n/messages/en-US/settings.json
+++ b/frontend/i18n/messages/en-US/settings.json
@@ -504,6 +504,7 @@
"monthly": "Monthly",
"dailyUsage": "Daily usage",
"monthlyUsage": "Monthly usage",
+ "otherModels": "Other",
"empty": "No usage data.",
"metrics": {
"totalCost": "Total cost",
@@ -513,7 +514,8 @@
},
"tooltip": {
"cost": "Cost",
- "calls": "Calls"
+ "calls": "Calls",
+ "latency": "Average latency"
}
},
"usageLog": {
diff --git a/frontend/i18n/messages/zh-CN/admin-statistics.json b/frontend/i18n/messages/zh-CN/admin-statistics.json
index 1f60a177..e9827880 100644
--- a/frontend/i18n/messages/zh-CN/admin-statistics.json
+++ b/frontend/i18n/messages/zh-CN/admin-statistics.json
@@ -1,33 +1,36 @@
{
"title": "用量统计",
- "description": "查看全局模型调用的费用、Token、调用次数与平均耗时。",
"refresh": "刷新",
"empty": "当前筛选条件下暂无用量数据。",
"unknownModel": "未知模型",
"unknownUser": "用户 #{id}",
"filters": {
- "rangePreset": "时间范围",
- "dateRange": "起止日期",
"last7Days": "近 7 天",
"last30Days": "近 30 天",
"last90Days": "近 90 天",
"custom": "自定义",
- "user": "用户",
+ "subject": "统计对象",
"model": "模型",
"allModels": "全部模型",
"billingScope": "计费类型",
"billingAll": "全部调用",
"billingFree": "免费模型",
"billingBillable": "计费模型",
+ "clear": "清除筛选",
"rangeErrors": {
"incomplete": "请选择完整的开始和结束日期。",
"invalid": "结束日期不能早于开始日期。",
"tooLong": "时间范围不能超过 366 天。"
},
- "userSelect": {
+ "subjectSelect": {
"allUsers": "全部用户",
- "searchPlaceholder": "搜索用户名、昵称或邮箱",
- "empty": "没有匹配的用户。",
+ "users": "用户",
+ "permissionGroups": "权限组",
+ "searchUsers": "搜索用户名、昵称或邮箱",
+ "searchPermissionGroups": "搜索权限组",
+ "emptyUsers": "没有匹配的用户。",
+ "emptyPermissionGroups": "没有匹配的权限组。",
+ "memberCount": "{count} 人",
"loadFailed": "用户列表加载失败"
}
},
@@ -38,19 +41,16 @@
"latency": "平均耗时"
},
"rankBy": {
- "cost": "费用",
+ "cost": "计费",
"tokens": "Tokens",
"calls": "调用"
},
"trend": {
- "title": "用量趋势",
- "daily": "按日聚合",
- "monthly": "按月聚合"
+ "title": "用量趋势"
},
"rankings": {
"models": "模型排行",
"users": "用户排行",
- "top10": "按{metric}排序的 Top 10",
"total": "总计"
},
"toasts": {
diff --git a/frontend/i18n/messages/zh-CN/settings.json b/frontend/i18n/messages/zh-CN/settings.json
index c56cf43f..2624cd9e 100644
--- a/frontend/i18n/messages/zh-CN/settings.json
+++ b/frontend/i18n/messages/zh-CN/settings.json
@@ -504,6 +504,7 @@
"monthly": "按月",
"dailyUsage": "每日用量",
"monthlyUsage": "月度用量",
+ "otherModels": "其他",
"empty": "暂无用量数据。",
"metrics": {
"totalCost": "总费用",
@@ -513,7 +514,8 @@
},
"tooltip": {
"cost": "费用",
- "calls": "调用"
+ "calls": "调用",
+ "latency": "平均耗时"
}
},
"usageLog": {