feat(default): reorganize system settings pricing UI

Refine the default system settings structure and model pricing editor so pricing configuration is easier to scan and edit.
This commit is contained in:
CaIon
2026-05-06 16:29:45 +08:00
parent 9acf5fecae
commit 0f9f094a48
62 changed files with 3655 additions and 2343 deletions
+93 -2
View File
@@ -494,6 +494,7 @@
"Best for single-tenant deployments. Pricing and billing options stay hidden.": "Best for single-tenant deployments. Pricing and billing options stay hidden.",
"Best TTFT": "Best TTFT",
"Billing": "Billing",
"Billing & Payment": "Billing & Payment",
"Billing currency": "Billing currency",
"Billing Details": "Billing Details",
"Billing History": "Billing History",
@@ -633,6 +634,7 @@
"Check in now": "Check in now",
"Check resolved IPs against IP filters even when accessing by domain": "Check resolved IPs against IP filters even when accessing by domain",
"Check-in failed": "Check-in failed",
"Check-in Rewards": "Check-in Rewards",
"Check-in Settings": "Check-in Settings",
"Check-in successful! Received": "Check-in successful! Received",
"Checked in": "Checked in",
@@ -783,14 +785,18 @@
"Configure basic system information and branding": "Configure basic system information and branding",
"Configure channel affinity (sticky routing) rules": "Configure channel affinity (sticky routing) rules",
"Configure Creem products. Provide a JSON array.": "Configure Creem products. Provide a JSON array.",
"Configure currency conversion and quota display options": "Configure currency conversion and quota display options",
"Configure custom OAuth providers for user authentication": "Configure custom OAuth providers for user authentication",
"Configure daily check-in rewards for users": "Configure daily check-in rewards for users",
"Configure discount rates based on recharge amounts": "Configure discount rates based on recharge amounts",
"Configure experimental data export for the dashboard": "Configure experimental data export for the dashboard",
"Configure Gemini safety behavior, version overrides, and thinking adapter": "Configure Gemini safety behavior, version overrides, and thinking adapter",
"Configure group ratios and group-specific pricing rules": "Configure group ratios and group-specific pricing rules",
"Configure in your Creem dashboard": "Configure in your Creem dashboard",
"Configure io.net API key for model deployments": "Configure io.net API key for model deployments",
"Configure keyword filtering for prompts and responses.": "Configure keyword filtering for prompts and responses.",
"Configure model deployment provider settings": "Configure model deployment provider settings",
"Configure model pricing ratios and tool prices": "Configure model pricing ratios and tool prices",
"Configure model, caching, and group ratios used for billing": "Configure model, caching, and group ratios used for billing",
"Configure monitoring status page groups for the dashboard": "Configure monitoring status page groups for the dashboard",
"Configure outgoing email server for notifications": "Configure outgoing email server for notifications",
@@ -849,6 +855,7 @@
"Console": "Console",
"Console area": "Console area",
"Console Area": "Console Area",
"Console Content": "Console Content",
"Consume": "Consume",
"Container": "Container",
"Container name": "Container name",
@@ -970,6 +977,7 @@
"Cross-group retry": "Cross-group retry",
"Curate quick links to your different Domains": "Curate quick links to your different Domains",
"Currency": "Currency",
"Currency & Display": "Currency & Display",
"Current Balance": "Current Balance",
"Current Billing": "Current Billing",
"Current Cache Size": "Current Cache Size",
@@ -1027,6 +1035,7 @@
"Date and time when this announcement should be displayed": "Date and time when this announcement should be displayed",
"Date Range": "Date Range",
"Day": "Day",
"Day of month": "Day of month",
"days": "days",
"Days to Retain": "Days to Retain",
"Deducted by subscription": "Deducted by subscription",
@@ -1778,6 +1787,8 @@
"GPU count": "GPU count",
"Greater Than": "Greater Than",
"Greater Than or Equal": "Greater Than or Equal",
"Greater than": "Greater than",
"Greater than or equal": "Greater than or equal",
"Grok": "Grok",
"Grok Settings": "Grok Settings",
"Group": "Group",
@@ -1793,6 +1804,7 @@
"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 Pricing": "Group Pricing",
"group ratio": "group ratio",
"Group Ratio": "Group Ratio",
"Group ratios": "Group ratios",
@@ -1848,6 +1860,7 @@
"Home Page Content": "Home Page Content",
"Hostname or IP of your SMTP provider": "Hostname or IP of your SMTP provider",
"Hour": "Hour",
"Hour of day": "Hour of day",
"Hourly token usage by model across the last 24 hours": "Hourly token usage by model across the last 24 hours",
"Hourly token usage by model over the past 24 hours": "Hourly token usage by model over the past 24 hours",
"hours": "hours",
@@ -1893,6 +1906,7 @@
"If an upstream error contains any of these keywords (case insensitive), the channel will be disabled automatically.": "If an upstream error contains any of these keywords (case insensitive), the channel will be disabled automatically.",
"If authorization succeeds, the generated JSON will be inserted into the key field. You still need to save the channel to persist it.": "If authorization succeeds, the generated JSON will be inserted into the key field. You still need to save the channel to persist it.",
"If connecting to upstream One API or New API relay projects, use OpenAI type instead unless you know what you are doing": "If connecting to upstream One API or New API relay projects, use OpenAI type instead unless you know what you are doing",
"If this keeps happening, please report it on GitHub Issues.": "If this keeps happening, please report it on GitHub Issues.",
"If the affinity channel fails and retry succeeds on another channel, update affinity to the successful channel.": "If the affinity channel fails and retry succeeds on another channel, update affinity to the successful channel.",
"Ignored upstream models": "Ignored upstream models",
"Image": "Image",
@@ -2056,6 +2070,8 @@
"Less": "Less",
"Less Than": "Less Than",
"Less Than or Equal": "Less Than or Equal",
"Less than": "Less than",
"Less than or equal": "Less than or equal",
"License": "License",
"Light": "Light",
"Lightning Fast": "Lightning Fast",
@@ -2217,6 +2233,7 @@
"Model context usage": "Model context usage",
"Model deleted": "Model deleted",
"Model deleted successfully": "Model deleted successfully",
"Model Deployment": "Model Deployment",
"Model deployment service is disabled": "Model deployment service is disabled",
"Model Description": "Model Description",
"Model details": "Model details",
@@ -2256,6 +2273,7 @@
"Models": "Models",
"Models *": "Models *",
"Models & Groups": "Models & Groups",
"Models & Routing": "Models & Routing",
"Models appended successfully": "Models appended successfully",
"Models are required": "Models are required",
"Models climbing the leaderboard": "Models climbing the leaderboard",
@@ -2276,6 +2294,7 @@
"Monitor": "Monitor",
"Monitoring & Alerts": "Monitoring & Alerts",
"Month": "Month",
"Month number": "Month number",
"Monthly": "Monthly",
"Monthly tokens": "Monthly tokens",
"months": "months",
@@ -2592,6 +2611,7 @@
"Operation": "Operation",
"Operation failed": "Operation failed",
"Operation Type": "Operation Type",
"Operations": "Operations",
"Operator Admin": "Operator Admin",
"Optimize system for self-hosted single-user usage": "Optimize system for self-hosted single-user usage",
"Optimized network architecture ensures millisecond response times": "Optimized network architecture ensures millisecond response times",
@@ -2636,6 +2656,7 @@
"Override Rules": "Override Rules",
"Override the endpoint used for testing. Leave empty to auto detect.": "Override the endpoint used for testing. Leave empty to auto detect.",
"overrides for matching model prefix.": "overrides for matching model prefix.",
"Overnight range": "Overnight range",
"Overview": "Overview",
"Overwritten": "Overwritten",
"Page": "Page",
@@ -3102,6 +3123,7 @@
"Replacement Model": "Replacement Model",
"Replica count": "Replica count",
"Replicate": "Replicate",
"Report an issue": "Report an issue",
"request": "request",
"Request": "Request",
"Request Body Disk Cache": "Request Body Disk Cache",
@@ -3308,6 +3330,7 @@
"Secret Key": "Secret Key",
"Secure & Reliable": "Secure & Reliable",
"Security": "Security",
"Security & Limits": "Security & Limits",
"Security Check": "Security Check",
"Security verification": "Security verification",
"Select": "Select",
@@ -3456,6 +3479,7 @@
"Simple mode only returns message; status code and error type use system defaults.": "Simple mode only returns message; status code and error type use system defaults.",
"Simple mode: prune objects by type, e.g. redacted_thinking.": "Simple mode: prune objects by type, e.g. redacted_thinking.",
"Single Key": "Single Key",
"Site & Branding": "Site & Branding",
"Site Key": "Site Key",
"Size:": "Size:",
"sk_xxx or rk_xxx": "sk_xxx or rk_xxx",
@@ -3733,6 +3757,8 @@
"Tier": "Tier",
"Tier name": "Tier name",
"Tiered": "Tiered",
"Token prices": "Token prices",
"Each tier supports up to 2 conditions. The last tier without conditions is the fallback.": "Each tier supports up to 2 conditions. The last tier without conditions is the fallback.",
"Tiered (billing expression)": "Tiered (billing expression)",
"Tiered price table": "Tiered price table",
"Time": "Time",
@@ -3741,7 +3767,7 @@
"Time window for rate limiting": "Time window for rate limiting",
"Time-based": "Time-based",
"Time:": "Time:",
"Timed cache (1h)": "Timed cache (1h)",
"Time-sliced cache (Claude)": "Time-sliced cache (Claude)",
"Timeline": "Timeline",
"times": "times",
"Timing": "Timing",
@@ -4219,6 +4245,71 @@
"Zero retention": "Zero retention",
"Zhipu": "Zhipu",
"Zhipu V4": "Zhipu V4",
"Zoom": "Zoom"
"Zoom": "Zoom",
"Add model pricing": "Add model pricing",
"Applied {{name}} pricing to {{count}} models": "Applied {{name}} pricing to {{count}} models",
"Audio input price": "Audio input price",
"Audio output price": "Audio output price",
"Audio output price requires an audio input price.": "Audio output price requires an audio input price.",
"Billable input tokens": "Billable input tokens",
"Billable output tokens": "Billable output tokens",
"Cache create (1h) price": "Cache create (1h) price",
"Cache create price": "Cache create price",
"Cache read price": "Cache read price",
"Cache pricing": "Cache pricing",
"Cache write price": "Cache write price",
"Changes are written to the settings draft on save.": "Changes are written to the settings draft on save.",
"Clean": "Clean",
"Completion price": "Completion price",
"Core pricing": "Core pricing",
"Copy {{name}} pricing": "Copy {{name}} pricing",
"Disabled lanes are omitted on save.": "Disabled lanes are omitted on save.",
"Edit model pricing": "Edit model pricing",
"Empty": "Empty",
"Each tier supports up to 2 conditions; the last tier is the catch-all without conditions. Use full input length for tier conditions to avoid mis-routing when cache hits reduce billable input tokens.": "Each tier supports up to 2 conditions; the last tier is the catch-all without conditions. Use full input length for tier conditions to avoid mis-routing when cache hits reduce billable input tokens.",
"All conditions must match before this tier is used.": "All conditions must match before this tier is used.",
"Base input and output token prices for this tier.": "Base input and output token prices for this tier.",
"Expression": "Expression",
"Fallback tier": "Fallback tier",
"Full input length": "Full input length",
"Input price is required before saving dependent prices.": "Input price is required before saving dependent prices.",
"Image input price": "Image input price",
"Image output price": "Image output price",
"Media pricing": "Media pricing",
"New model": "New model",
"No separate media pricing configured.": "No separate media pricing configured.",
"Open a source model first": "Open a source model first",
"Output token price for generated tokens.": "Output token price for generated tokens.",
"Per-request": "Per-request",
"Save preview": "Save preview",
"Select at least one target model": "Select at least one target model",
"Separate image/audio prices are enabled.": "Separate image/audio prices are enabled.",
"Set separate prices for cache reads and writes.": "Set separate prices for cache reads and writes.",
"This model has both fixed-price and ratio settings. Saving the current mode will rewrite the conflicting fields.": "This model has both fixed-price and ratio settings. Saving the current mode will rewrite the conflicting fields.",
"This model has both fixed-price and token-price settings. Saving the current mode will rewrite the conflicting fields.": "This model has both fixed-price and token-price settings. Saving the current mode will rewrite the conflicting fields.",
"This tier catches any request that did not match earlier tiers.": "This tier catches any request that did not match earlier tiers.",
"Tier conditions": "Tier conditions",
"Token price for audio input.": "Token price for audio input.",
"Token price for audio output.": "Token price for audio output.",
"Token price for cache reads.": "Token price for cache reads.",
"Token price for creating cache entries.": "Token price for creating cache entries.",
"Token price for image input.": "Token price for image input.",
"USD price per 1M input tokens.": "USD price per 1M input tokens.",
"USD price per 1M tokens.": "USD price per 1M tokens.",
"{{count}} selected targets available for bulk copy.": "{{count}} selected targets available for bulk copy.",
"Base input price only": "Base input price only",
"Expression based": "Expression based",
"Expression pricing": "Expression pricing",
"Fixed request price": "Fixed request price",
"Includes request rules": "Includes request rules",
"No base input price": "No base input price",
"No models configured. Use Add model to get started.": "No models configured. Use Add model to get started.",
"Price summary": "Price summary",
"Select a model to edit pricing": "Select a model to edit pricing",
"Tiered pricing": "Tiered pricing",
"Unset price": "Unset price",
"Use the full-width table to scan prices, then select a row to edit it here.": "Use the full-width table to scan prices, then select a row to edit it here.",
"extras": "extras",
"tiers": "tiers"
}
}