feat(audit): add localized security audit logs (#5462)

This commit is contained in:
Calcium-Ion
2026-06-12 23:40:40 +08:00
committed by GitHub
parent 27b2b2c4b9
commit d0c4305a16
25 changed files with 1249 additions and 33 deletions
+72 -1
View File
@@ -46,6 +46,7 @@
"{{count}} weeks ago": "{{count}} weeks ago",
"{{field}} updated to {{value}}": "{{field}} updated to {{value}}",
"{{field}} updated to {{value}} for tag: {{tag}}": "{{field}} updated to {{value}} for tag: {{tag}}",
"{{method}} {{route}}": "{{method}} {{route}}",
"{{modality}} not supported": "{{modality}} not supported",
"{{modality}} supported": "{{modality}} supported",
"{{n}} model(s) selected": "{{n}} model(s) selected",
@@ -122,6 +123,7 @@
"Account used when authenticating with the SMTP server": "Account used when authenticating with the SMTP server",
"acknowledge the related legal risks": "acknowledge the related legal risks",
"Across all groups": "Across all groups",
"Action": "Action",
"Action confirmation": "Action Confirmation",
"Actions": "Actions",
"active": "active",
@@ -372,6 +374,8 @@
"appended": "appended",
"Application": "Application",
"Applied {{name}} pricing to {{count}} models": "Applied {{name}} pricing to {{count}} models",
"Applied upstream model changes to {{count}} channels": "Applied upstream model changes to {{count}} channels",
"Applied upstream model changes to channel (ID: {{id}})": "Applied upstream model changes to channel (ID: {{id}})",
"Applies to custom completion endpoints. JSON map of model → ratio.": "Applies to custom completion endpoints. JSON map of model → ratio.",
"Apply All Upstream Updates": "Apply All Upstream Updates",
"Apply Filters": "Apply Filters",
@@ -519,6 +523,7 @@
"Basic Templates": "Basic Templates",
"Batch Add (one key per line)": "Batch Add (one key per line)",
"Batch delete failed": "Batch delete failed",
"Batch deleted {{count}} channels": "Batch deleted {{count}} channels",
"Batch detection complete: {{channels}} channels, {{add}} to add, {{remove}} to remove, {{fails}} failed": "Batch detection complete: {{channels}} channels, {{add}} to add, {{remove}} to remove, {{fails}} failed",
"Batch detection failed": "Batch detection failed",
"Batch disable failed": "Batch disable failed",
@@ -527,6 +532,7 @@
"Batch Edit by Tag": "Batch Edit by Tag",
"Batch enable failed": "Batch enable failed",
"Batch processing failed": "Batch processing failed",
"Batch set tag for {{count}} channels": "Batch set tag for {{count}} channels",
"Batch upstream model updates applied: {{channels}} channels, {{added}} added, {{removed}} removed, {{fails}} failed": "Batch upstream model updates applied: {{channels}} channels, {{added}} added, {{removed}} removed, {{fails}} failed",
"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",
@@ -566,6 +572,7 @@
"Bot Token": "Bot Token",
"Bot:": "Bot:",
"Bound": "Bound",
"Bound a subscription": "Bound a subscription",
"Bound Channels": "Bound Channels",
"Bound Only": "Bound Only",
"Bound product:": "Bound product:",
@@ -639,6 +646,7 @@
"Change language": "Change language",
"Change Password": "Change Password",
"Change To": "Change To",
"Changed Fields": "Changed Fields",
"Changes are written to the settings draft on save.": "Changes are written to the settings draft on save.",
"Changing...": "Changing...",
"Channel": "Channel",
@@ -735,7 +743,12 @@
"Clear selection": "Clear selection",
"Clear selection (Escape)": "Clear selection (Escape)",
"Cleared": "Cleared",
"Cleared {{bindingType}} binding for user {{username}}": "Cleared {{bindingType}} binding for user {{username}}",
"Cleared all models": "Cleared all models",
"Cleared channel affinity cache": "Cleared channel affinity cache",
"Cleared disk cache": "Cleared disk cache",
"Cleared historical logs": "Cleared historical logs",
"Cleared log files": "Cleared log files",
"Click \"Create Plan\" to create your first subscription plan": "Click \"Create Plan\" to create your first subscription plan",
"Click \"Generate\" to create a token": "Click \"Generate\" to create a token",
"Click any category to drill into its models, apps, and trends": "Click any category to drill into its models, apps, and trends",
@@ -808,6 +821,7 @@
"Complete Order": "Complete Order",
"Complete these steps to finish the initial installation.": "Complete these steps to finish the initial installation.",
"Completed": "Completed",
"Completed top-up order for the user": "Completed top-up order for the user",
"Completion": "Completion",
"Completion price": "Completion price",
"Completion price ($/1M tokens)": "Completion price ($/1M tokens)",
@@ -887,6 +901,7 @@
"Confirm your identity before removing this Passkey from your account.": "Confirm your identity before removing this Passkey from your account.",
"Confirm your identity with Two-factor Authentication before registering a Passkey.": "Confirm your identity with Two-factor Authentication before registering a Passkey.",
"Confirmed at {{time}} by user #{{userId}}": "Confirmed at {{time}} by user #{{userId}}",
"Confirmed payment compliance": "Confirmed payment compliance",
"Conflict": "Conflict",
"Connect": "Connect",
"Connect through OpenAI, Claude, Gemini, and other compatible API routes": "Connect through OpenAI, Claude, Gemini, and other compatible API routes",
@@ -929,6 +944,7 @@
"Convert string to uppercase": "Convert string to uppercase",
"Copied": "Copied",
"Copied {{count}} key(s)": "Copied {{count}} key(s)",
"Copied channel (source ID: {{sourceId}}) to {{name}} (new ID: {{id}})": "Copied channel (source ID: {{sourceId}}) to {{name}} (new ID: {{id}})",
"Copied to clipboard": "Copied to clipboard",
"Copied: {{model}}": "Copied: {{model}}",
"Copied!": "Copied!",
@@ -1010,7 +1026,16 @@
"Create your first group to reuse model, tag, or endpoint selections anywhere in the dashboard.": "Create your first group to reuse model, tag, or endpoint selections anywhere in the dashboard.",
"Create, revoke, and audit API tokens.": "Create, revoke, and audit API tokens.",
"Created": "Created",
"Created {{count}} redemption codes named {{name}} ({{quota}} each)": "Created {{count}} redemption codes named {{name}} ({{quota}} each)",
"Created a custom OAuth provider": "Created a custom OAuth provider",
"Created a deployment": "Created a deployment",
"Created a model": "Created a model",
"Created a prefill group": "Created a prefill group",
"Created a subscription plan": "Created a subscription plan",
"Created a vendor": "Created a vendor",
"Created At": "Created At",
"Created channel {{name}} (type {{type}}, count {{count}})": "Created channel {{name}} (type {{type}}, count {{count}})",
"Created user {{username}} (role {{role}})": "Created user {{username}} (role {{role}})",
"Creates a Pancake product in the saved store using this plans title and price. Requires Waffo Pancake to be fully configured in Payment settings first.": "Creates a Pancake product in the saved store using this plans title and price. Requires Waffo Pancake to be fully configured in Payment settings first.",
"Creating...": "Creating...",
"Creation failed": "Creation failed",
@@ -1090,6 +1115,7 @@
"Day of month": "Day of month",
"days": "days",
"Days to Retain": "Days to Retain",
"Decreased user quota by {{quota}}": "Decreased user quota by {{quota}}",
"Deducted by subscription": "Deducted by subscription",
"DeepSeek": "DeepSeek",
"default": "default",
@@ -1144,7 +1170,18 @@
"Delete selected channels": "Delete selected channels",
"Delete selected models": "Delete selected models",
"Deleted": "Deleted",
"Deleted a custom OAuth provider": "Deleted a custom OAuth provider",
"Deleted a deployment": "Deleted a deployment",
"Deleted a model": "Deleted a model",
"Deleted a passkey": "Deleted a passkey",
"Deleted a prefill group": "Deleted a prefill group",
"Deleted a redemption code": "Deleted a redemption code",
"Deleted a vendor": "Deleted a vendor",
"Deleted all disabled channels ({{count}})": "Deleted all disabled channels ({{count}})",
"Deleted channel {{name}} (ID: {{id}})": "Deleted channel {{name}} (ID: {{id}})",
"Deleted invalid redemption codes": "Deleted invalid redemption codes",
"Deleted successfully": "Deleted successfully",
"Deleted user {{username}} (ID: {{id}})": "Deleted user {{username}} (ID: {{id}})",
"Deleting will permanently remove this subscription record (including benefit details). Continue?": "Deleting will permanently remove this subscription record (including benefit details). Continue?",
"Deleting...": "Deleting...",
"Demo site": "Demo site",
@@ -1200,6 +1237,7 @@
"disabled": "disabled",
"Disabled": "Disabled",
"Disabled all channels with tag: {{tag}}": "Disabled all channels with tag: {{tag}}",
"Disabled channels with tag {{tag}}": "Disabled channels with tag {{tag}}",
"Disabled lanes are omitted on save.": "Disabled lanes are omitted on save.",
"Disabled Reason": "Disabled Reason",
"Disabled Time": "Disabled Time",
@@ -1346,6 +1384,7 @@
"Edit Uptime Kuma Group": "Edit Uptime Kuma Group",
"Edit Vendor": "Edit Vendor",
"edit_this": "edit_this",
"Edited channels with tag {{tag}}": "Edited channels with tag {{tag}}",
"Editor mode": "Editor mode",
"Education": "Education",
"Email": "Email",
@@ -1404,6 +1443,7 @@
"Enable when proxying workers that fetch images over HTTP.": "Enable when proxying workers that fetch images over HTTP.",
"Enabled": "Enabled",
"Enabled all channels with tag: {{tag}}": "Enabled all channels with tag: {{tag}}",
"Enabled channels with tag {{tag}}": "Enabled channels with tag {{tag}}",
"Enabled Status": "Enabled Status",
"Enabling...": "Enabling...",
"Encourages introducing new topics": "Encourages introducing new topics",
@@ -1528,8 +1568,8 @@
"Exists": "Exists",
"Expand": "Expand",
"Expand All": "Expand All",
"Expected a JSON array.": "Expected a JSON array.",
"Expected a JSON array of group identifiers": "Expected a JSON array of group identifiers",
"Expected a JSON array.": "Expected a JSON array.",
"Experiment with prompts and models in real time.": "Experiment with prompts and models in real time.",
"Expiration Time": "Expiration Time",
"expired": "expired",
@@ -1786,6 +1826,7 @@
"Force format response to OpenAI standard (OpenAI channel only)": "Force format response to OpenAI standard (OpenAI channel only)",
"Force JSON object or schema-conforming output": "Force JSON object or schema-conforming output",
"Force SMTP authentication using AUTH LOGIN method": "Force SMTP authentication using AUTH LOGIN method",
"Force-disabled two-factor authentication for the user": "Force-disabled two-factor authentication for the user",
"Forest Whisper": "Forest Whisper",
"Forgot password": "Forgot password",
"Forgot password?": "Forgot password?",
@@ -2024,6 +2065,7 @@
"Include Rule Name": "Include Rule Name",
"Includes request rules": "Includes request rules",
"Including failed requests, 0 = unlimited": "Including failed requests, 0 = unlimited",
"Increased user quota by {{quota}}": "Increased user quota by {{quota}}",
"Index": "Index",
"Initial quota given to new users": "Initial quota given to new users",
"Initialization failed, please try again.": "Initialization failed, please try again.",
@@ -2226,8 +2268,12 @@
"Log IP address for usage and error logs": "Log IP address for usage and error logs",
"Log Maintenance": "Log Maintenance",
"Log Type": "Log Type",
"Logged in successfully via {{method}}": "Logged in successfully via {{method}}",
"Logic": "Logic",
"Login": "Login",
"Login failed": "Login failed",
"Login Info": "Login Info",
"Login Method": "Login Method",
"Logo": "Logo",
"Logo URL": "Logo URL",
"Logs": "Logs",
@@ -2433,6 +2479,7 @@
"ms": "ms",
"Multi-key channel: Keys will be": "Multi-key channel: Keys will be",
"Multi-Key Management": "Multi-Key Management",
"Multi-key management {{action}} on channel (ID: {{id}})": "Multi-key management {{action}} on channel (ID: {{id}})",
"Multi-Key Mode (multiple keys, one channel)": "Multi-Key Mode (multiple keys, one channel)",
"Multi-Key Strategy": "Multi-Key Strategy",
"Multi-key: Polling rotation": "Multi-key: Polling rotation",
@@ -2748,6 +2795,7 @@
"opens in an external client. Trigger it from the sidebar or API key actions to launch the configured application.": "opens in an external client. Trigger it from the sidebar or API key actions to launch the configured application.",
"Operation": "Operation",
"operation and charging behavior": "operation and charging behavior",
"Operation Audit Info": "Operation Audit Info",
"Operation failed": "Operation failed",
"Operation successful": "Operation successful",
"Operation Type": "Operation Type",
@@ -2799,6 +2847,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.",
"Overrode user quota from {{from}} to {{to}}": "Overrode user quota from {{from}} to {{to}}",
"Overview": "Overview",
"Overwritten": "Overwritten",
"Page": "Page",
@@ -2912,6 +2961,7 @@
"Performance metrics shown here are simulated for preview purposes and will be replaced with live observability data once the backend integration is complete.": "Performance metrics shown here are simulated for preview purposes and will be replaced with live observability data once the backend integration is complete.",
"Performance Monitor": "Performance Monitor",
"Performance Settings": "Performance Settings",
"Performed {{action}} on user {{username}} (ID: {{id}})": "Performed {{action}} on user {{username}} (ID: {{id}})",
"Period": "Period",
"Periodically check for upstream model changes": "Periodically check for upstream model changes",
"Periodically send ping frames to keep streaming connections active.": "Periodically send ping frames to keep streaming connections active.",
@@ -3248,6 +3298,7 @@
"Regex Replace": "Regex Replace",
"Register each URL into the matching Test Mode / Production Mode webhook slot in the Pancake dashboard. Separate endpoints prevent test traffic from accidentally crediting production accounts.": "Register each URL into the matching Test Mode / Production Mode webhook slot in the Pancake dashboard. Separate endpoints prevent test traffic from accidentally crediting production accounts.",
"Register Passkey": "Register Passkey",
"Registered a passkey": "Registered a passkey",
"Registration Enabled": "Registration Enabled",
"Registry (optional)": "Registry (optional)",
"Registry secret": "Registry secret",
@@ -3283,6 +3334,7 @@
"Remove tier": "Remove tier",
"Removed": "Removed",
"Removed {{removed}} duplicate key(s). Before: {{before}}, After: {{after}}": "Removed {{removed}} duplicate key(s). Before: {{before}}, After: {{after}}",
"Removed an OAuth binding for the user": "Removed an OAuth binding for the user",
"Removed Models ({{count}})": "Removed Models ({{count}})",
"Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.": "Removes Midjourney flags such as --fast, --relax, and --turbo from user prompts.",
"Removing Passkey will require you to sign in with your password next time. You can re-register anytime.": "Removing Passkey will require you to sign in with your password next time. You can re-register anytime.",
@@ -3354,12 +3406,14 @@
"Reset Cycle": "Reset Cycle",
"Reset email sent, please check your inbox": "Reset email sent, please check your inbox",
"Reset failed": "Reset failed",
"Reset model ratios": "Reset model ratios",
"Reset Passkey": "Reset Passkey",
"Reset password": "Reset password",
"Reset Period": "Reset Period",
"Reset prices": "Reset prices",
"Reset ratios": "Reset ratios",
"Reset Stats": "Reset Stats",
"Reset the user passkey": "Reset the user passkey",
"Reset to default": "Reset to default",
"Reset to Default": "Reset to Default",
"Reset to default configuration": "Reset to default configuration",
@@ -3372,6 +3426,7 @@
"Responses API Version": "Responses API Version",
"Restore defaults": "Restore defaults",
"Restrict user model request frequency (may impact high concurrency performance)": "Restrict user model request frequency (may impact high concurrency performance)",
"Result": "Result",
"Retain last N days": "Retain last N days",
"Retain last N files": "Retain last N files",
"Retention days": "Retention days",
@@ -3635,6 +3690,7 @@
"Set tag for selected channels": "Set tag for selected channels",
"Set the language used across the interface": "Set the language used across the interface",
"Set the user's role (cannot be Root)": "Set the user's role (cannot be Root)",
"Setting Key": "Setting Key",
"Setting saved": "Setting saved",
"Setting up 2FA...": "Setting up 2FA...",
"Setting updated successfully": "Setting updated successfully",
@@ -3827,6 +3883,7 @@
"Sync this model with official upstream": "Sync this model with official upstream",
"Sync Upstream": "Sync Upstream",
"Sync Upstream Models": "Sync Upstream Models",
"Synced upstream models": "Synced upstream models",
"Synchronize models and vendors from an upstream source": "Synchronize models and vendors from an upstream source",
"Syncing prices, please wait...": "Syncing prices, please wait...",
"Syncing...": "Syncing...",
@@ -3872,6 +3929,7 @@
"Target group": "Target group",
"Target Header": "Target Header",
"Target Path (optional)": "Target Path (optional)",
"Target User": "Target User",
"Task": "Task",
"Task ID": "Task ID",
"Task ID:": "Task ID:",
@@ -4127,6 +4185,7 @@
"Trend": "Trend",
"Trending down": "Trending down",
"Trending up": "Trending up",
"Triggered garbage collection": "Triggered garbage collection",
"Trim leading/trailing whitespace": "Trim leading/trailing whitespace",
"Trim Prefix": "Trim Prefix",
"Trim Space": "Trim Space",
@@ -4217,8 +4276,18 @@
"Update your password for account:": "Update your password for account:",
"Update your password to keep your account secure": "Update your password to keep your account secure",
"Updated": "Updated",
"Updated a custom OAuth provider": "Updated a custom OAuth provider",
"Updated a deployment": "Updated a deployment",
"Updated a model": "Updated a model",
"Updated a prefill group": "Updated a prefill group",
"Updated a redemption code": "Updated a redemption code",
"Updated a subscription plan": "Updated a subscription plan",
"Updated a vendor": "Updated a vendor",
"Updated channel {{name}} (ID: {{id}})": "Updated channel {{name}} (ID: {{id}})",
"Updated daily": "Updated daily",
"Updated successfully": "Updated successfully",
"Updated system setting {{key}}": "Updated system setting {{key}}",
"Updated user {{username}} (ID: {{id}})": "Updated user {{username}} (ID: {{id}})",
"Updating all channel balances. This may take a while. Please refresh to see results.": "Updating all channel balances. This may take a while. Please refresh to see results.",
"Upgrade Group": "Upgrade Group",
"Upload": "Upload",
@@ -4290,6 +4359,7 @@
"Used:": "Used:",
"User": "User",
"User {{id}}": "User {{id}}",
"User Agent": "User Agent",
"User Agreement": "User Agreement",
"User Analytics": "User Analytics",
"User Consumption Ranking": "User Consumption Ranking",
@@ -4384,6 +4454,7 @@
"View the complete prompt and its English translation": "View the complete prompt and its English translation",
"View the generated image": "View the generated image",
"View your topup transaction records and payment history": "View your topup transaction records and payment history",
"Viewed channel key {{name}} (ID: {{id}})": "Viewed channel key {{name}} (ID: {{id}})",
"Violation Code": "Violation Code",
"Violation deduction amount": "Violation deduction amount",
"Violation Fee": "Violation Fee",