feat(ui): redesign model square pricing page

This commit is contained in:
CaIon
2026-04-30 16:29:32 +08:00
parent 5f86839c7e
commit d2b30dfc95
34 changed files with 2468 additions and 767 deletions
+29 -2
View File
@@ -485,6 +485,7 @@
"Broadcast a global banner to users. Markdown is supported.": "Broadcast a global banner to users. Markdown is supported.",
"Broadcast short system notices on the dashboard": "Broadcast short system notices on the dashboard",
"Browse and compare": "Browse and compare",
"Discover curated AI models, compare pricing and capabilities, and choose the right model for every scenario.": "Discover curated AI models, compare pricing and capabilities, and choose the right model for every scenario.",
"Budget tokens = max tokens × ratio. Accepts a decimal between 0.002 and 1. Recommended to keep aligned with upstream billing.": "Budget tokens = max tokens × ratio. Accepts a decimal between 0.002 and 1. Recommended to keep aligned with upstream billing.",
"Budget tokens = max tokens × ratio. Accepts a decimal between 0.1 and 1.": "Budget tokens = max tokens × ratio. Accepts a decimal between 0.1 and 1.",
"Budget Tokens Ratio": "Budget Tokens Ratio",
@@ -527,6 +528,7 @@
"Cancelled": "Cancelled",
"Cancelled at": "Cancelled at",
"Capture a reusable bundle of models, tags, or endpoints.": "Capture a reusable bundle of models, tags, or endpoints.",
"Card view": "Card view",
"Category Name": "Category Name",
"Category name is required": "Category name is required",
"Category name must be less than 50 characters": "Category name must be less than 50 characters",
@@ -600,8 +602,8 @@
"Choose how to filter domains": "Choose how to filter domains",
"Choose how to filter IP addresses": "Choose how to filter IP addresses",
"Choose the bundle type and define the items inside it.": "Choose the bundle type and define the items inside it.",
"Choose where to fetch upstream metadata.": "Choose where to fetch upstream metadata.",
"Choose the default charts, range, and time granularity for model analytics.": "Choose the default charts, range, and time granularity for model analytics.",
"Choose where to fetch upstream metadata.": "Choose where to fetch upstream metadata.",
"Choose which charts are selected by default when opening model analytics.": "Choose which charts are selected by default when opening model analytics.",
"Classic (Legacy Frontend)": "Classic (Legacy Frontend)",
"Claude": "Claude",
@@ -676,6 +678,9 @@
"Common Logs": "Common Logs",
"Common ports include 25, 465, and 587": "Common ports include 25, 465, and 587",
"Common User": "Common User",
"Community driven, self-hosted, and extensible": "Community driven, self-hosted, and extensible",
"compatible API routes": "compatible API routes",
"Compatible API routes for common AI application workflows": "Compatible API routes for common AI application workflows",
"Complete API documentation with multi-language SDK support": "Complete API documentation with multi-language SDK support",
"Complete Order": "Complete Order",
"Complete these steps to finish the initial installation.": "Complete these steps to finish the initial installation.",
@@ -769,6 +774,7 @@
"Confirm your identity with Two-factor Authentication before registering a Passkey.": "Confirm your identity with Two-factor Authentication before registering a Passkey.",
"Conflict": "Conflict",
"Connect": "Connect",
"Connect through OpenAI, Claude, Gemini, and other compatible API routes": "Connect through OpenAI, Claude, Gemini, and other compatible API routes",
"Connected to io.net service normally.": "Connected to io.net service normally.",
"Connection error": "Connection error",
"Connection failed": "Connection failed",
@@ -1003,6 +1009,7 @@
"Demo site mode": "Demo site mode",
"Demo Site Mode": "Demo Site Mode",
"Demote": "Demote",
"Deploy your own gateway and start routing requests through your configured upstream services.": "Deploy your own gateway and start routing requests through your configured upstream services.",
"Deployment created successfully": "Deployment created successfully",
"Deployment details": "Deployment details",
"Deployment ID": "Deployment ID",
@@ -1553,10 +1560,12 @@
"Filter by username": "Filter by username",
"Filter by username, name or email...": "Filter by username, name or email...",
"Filter Dashboard Models": "Filter Dashboard Models",
"Filter models by provider, group, type, endpoint, and tags.": "Filter models by provider, group, type, endpoint, and tags.",
"Filter models by type, endpoint, vendor, group and tags": "Filter models by type, endpoint, vendor, group and tags",
"Filter models...": "Filter models...",
"Filter...": "Filter...",
"Filters": "Filters",
"Filters active": "Filters active",
"Final Consumed": "Final Consumed",
"Final cost = base × multiplier when conditions match": "Final cost = base × multiplier when conditions match",
"Final price multiplier (0.95 = 5% discount": "Final price multiplier (0.95 = 5% discount",
@@ -1676,6 +1685,7 @@
"Group name": "Group name",
"Group Name": "Group Name",
"Group name cannot be changed when editing.": "Group name cannot be changed when editing.",
"Group prices cannot be expanded because this expression is not a standard tiered pricing expression.": "Group prices cannot be expanded because this expression is not a standard tiered pricing expression.",
"group ratio": "group ratio",
"Group Ratio": "Group Ratio",
"Group ratios": "Group ratios",
@@ -1843,6 +1853,7 @@
"IP Filter Mode": "IP Filter Mode",
"IP Restriction": "IP Restriction",
"IP Whitelist (supports CIDR)": "IP Whitelist (supports CIDR)",
"is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.": "is an open-source AI API gateway for self-hosted deployments. Connect multiple upstream services, manage models, keys, quotas, logs, and routing policies in one place.",
"is less than the configured maximum cache size": "is less than the configured maximum cache size",
"is the default price; ": "is the default price; ",
"It seems like the page you're looking for": "It seems like the page you're looking for",
@@ -2051,6 +2062,7 @@
"Model": "Model",
"Model Access": "Model Access",
"Model Analytics": "Model Analytics",
"model billing support": "model billing support",
"Model Call Analytics": "Model Call Analytics",
"Model context usage": "Model context usage",
"Model deleted": "Model deleted",
@@ -2081,6 +2093,8 @@
"Model ratios reset successfully": "Model ratios reset successfully",
"Model Regex": "Model Regex",
"Model Regex (one per line)": "Model Regex (one per line)",
"Model Square": "Model Square",
"Model Tags": "Model Tags",
"Model to use for testing": "Model to use for testing",
"Model to use when testing channel connectivity": "Model to use when testing channel connectivity",
"Model Version *": "Model Version *",
@@ -2093,6 +2107,7 @@
"Models appended successfully": "Models appended successfully",
"Models are required": "Models are required",
"Models directory": "Models directory",
"Models Directory": "Models Directory",
"Models fetched successfully": "Models fetched successfully",
"Models filled to form": "Models filled to form",
"Models listed here will not automatically append or remove -thinking / -nothinking suffixes.": "Models listed here will not automatically append or remove -thinking / -nothinking suffixes.",
@@ -2126,6 +2141,7 @@
"Multi-Key Strategy": "Multi-Key Strategy",
"Multi-key: Polling rotation": "Multi-key: Polling rotation",
"Multi-key: Random rotation": "Multi-key: Random rotation",
"Multi-protocol Compatible": "Multi-protocol Compatible",
"Multi-region deployment for stable global access": "Multi-region deployment for stable global access",
"Multi-user management with flexible permission allocation": "Multi-user management with flexible permission allocation",
"Multiplier": "Multiplier",
@@ -2216,6 +2232,7 @@
"No data available": "No data available",
"No deployments available. Create one to get started.": "No deployments available. Create one to get started.",
"No Deployments Found": "No Deployments Found",
"No description available.": "No description available.",
"No discount tiers configured. Click \"Add discount tier\" to get started.": "No discount tiers configured. Click \"Add discount tier\" to get started.",
"No duplicate keys found": "No duplicate keys found",
"No enabled tokens available": "No enabled tokens available",
@@ -2375,6 +2392,7 @@
"Open in New Tab": "Open in New Tab",
"Open menu": "Open menu",
"Open release": "Open release",
"Open Source": "Open Source",
"Open the io.net console API Keys page": "Open the io.net console API Keys page",
"Open theme settings": "Open theme settings",
"OpenAI": "OpenAI",
@@ -2637,6 +2655,7 @@
"Previous": "Previous",
"Previous branch": "Previous branch",
"Previous page": "Previous page",
"Base Price": "Base Price",
"Price": "Price",
"Price ($/1K calls)": "Price ($/1K calls)",
"Price (local currency / USD)": "Price (local currency / USD)",
@@ -2757,6 +2776,7 @@
"Ratio Type": "Ratio Type",
"Ratio: {{value}}": "Ratio: {{value}}",
"Ratios synced successfully": "Ratios synced successfully",
"Raw expression": "Raw expression",
"Raw JSON": "Raw JSON",
"Raw Quota": "Raw Quota",
"Re-enable on success": "Re-enable on success",
@@ -2801,6 +2821,7 @@
"Reference Video": "Reference Video",
"Referral link:": "Referral link:",
"Referral Program": "Referral Program",
"Refine models by provider, group, type, and tags.": "Refine models by provider, group, type, and tags.",
"Refresh": "Refresh",
"Refresh Cache": "Refresh Cache",
"Refresh credential": "Refresh credential",
@@ -2990,7 +3011,6 @@
"Save drawing settings": "Save drawing settings",
"Save Epay settings": "Save Epay settings",
"Save failed": "Save failed",
"Save Preferences": "Save Preferences",
"Save failed, please retry": "Save failed, please retry",
"Save general settings": "Save general settings",
"Save group ratios": "Save group ratios",
@@ -3001,6 +3021,7 @@
"Save monitoring rules": "Save monitoring rules",
"Save navigation": "Save navigation",
"Save notice": "Save notice",
"Save Preferences": "Save Preferences",
"Save rate limits": "Save rate limits",
"Save sensitive words": "Save sensitive words",
"Save Settings": "Save Settings",
@@ -3021,6 +3042,7 @@
"Scan this QR code with your authenticator app (Google Authenticator, Microsoft Authenticator, etc.)": "Scan this QR code with your authenticator app (Google Authenticator, Microsoft Authenticator, etc.)",
"Scenario Templates": "Scenario Templates",
"Scheduled channel tests": "Scheduled channel tests",
"scheduling controls": "scheduling controls",
"Scope": "Scope",
"Scopes": "Scopes",
"Search": "Search",
@@ -3035,6 +3057,7 @@
"Search group names...": "Search group names...",
"Search groups...": "Search groups...",
"Search missing models": "Search missing models",
"Search model name, provider, endpoint, or tag...": "Search model name, provider, endpoint, or tag...",
"Search model name...": "Search model name...",
"Search models": "Search models",
"Search models or fields...": "Search models or fields...",
@@ -3219,6 +3242,7 @@
"sources": "sources",
"Space-separated OAuth scopes": "Space-separated OAuth scopes",
"Spark model version, e.g., v2.1 (version number in API URL)": "Spark model version, e.g., v2.1 (version number in API URL)",
"Special billing expression": "Special billing expression",
"Special usable group rules": "Special usable group rules",
"SQLite stores all data in a single file. Make sure that file is persisted when running in containers.": "SQLite stores all data in a single file. Make sure that file is persisted when running in containers.",
"SSRF Protection": "SSRF Protection",
@@ -3425,6 +3449,7 @@
"This page has not been created yet.": "This page has not been created yet.",
"This project must be used in compliance with the": "This project must be used in compliance with the",
"This record was written by a pre-upgrade instance and lacks audit info. Upgrade the instance to record server IP, callback IP, payment method and system version.": "This record was written by a pre-upgrade instance and lacks audit info. Upgrade the instance to record server IP, callback IP, payment method and system version.",
"This site currently has {{count}} models enabled": "This site currently has {{count}} models enabled",
"this token group": "this token group",
"this user group": "this user group",
"This user has no bindings": "This user has no bindings",
@@ -3563,6 +3588,7 @@
"Unable to generate chat link. Please contact your administrator.": "Unable to generate chat link. Please contact your administrator.",
"Unable to load groups": "Unable to load groups",
"Unable to open chat": "Unable to open chat",
"Unable to parse structured pricing": "Unable to parse structured pricing",
"Unable to prepare chat link. Please ensure you have an enabled API key.": "Unable to prepare chat link. Please ensure you have an enabled API key.",
"Unauthorized": "Unauthorized",
"Unauthorized Access": "Unauthorized Access",
@@ -3629,6 +3655,7 @@
"Upstream prices fetched successfully": "Upstream prices fetched successfully",
"Upstream ratios fetched successfully": "Upstream ratios fetched successfully",
"Upstream Response": "Upstream Response",
"upstream services integrated": "upstream services integrated",
"Upstream Updates": "Upstream Updates",
"uptime": "uptime",
"Uptime": "Uptime",