feat(default): redesign dashboard overview

Refresh the overview page with an actionable Get Started guide, live API request details, real usage sparklines, and OpenAI-inspired dashboard panels. Add collapsible setup state, role-aware quick actions, and localized copy so returning users can focus on platform health.
This commit is contained in:
t0ng7u
2026-05-07 03:20:35 +08:00
parent e8cfb546fa
commit a7d019e3a9
30 changed files with 1389 additions and 195 deletions
+49 -4
View File
@@ -98,6 +98,7 @@
"7 days ago": "Il y a 7 jours",
"80,443,8080": "80,443,8080",
"A billing multiplier. Lower ratios mean lower API call costs.": "Un multiplicateur de facturation. Plus le ratio est faible, plus le coût des appels API est bas.",
"A focused home for keys, balance, routing, and service health.": "Un accueil dédié aux clés, au solde, au routage et à l'état du service.",
"About": "À propos",
"Accept Unpriced Models": "Accepter les modèles non tarifés",
"Accepts a JSON array of model identifiers that support the Imagine API.": "Accepte un tableau JSON d'identifiants de modèles qui prennent en charge l'API Imagine.",
@@ -145,6 +146,7 @@
"Add chat preset": "Ajouter un préréglage de chat",
"Add condition": "Ajouter une condition",
"Add Condition": "Ajouter une condition",
"Add credits": "Ajouter des crédits",
"Add custom model(s), comma-separated": "Ajouter un ou plusieurs modèles personnalisés, séparés par des virgules",
"Add discount tier": "Ajouter un niveau de réduction",
"Add each model or tag you want to include.": "Ajoutez chaque modèle ou étiquette que vous souhaitez inclure.",
@@ -311,6 +313,7 @@
"Announcements": "Annonces",
"Announcements saved successfully": "Annonces enregistrées avec succès",
"Answer": "Réponse",
"Answers for common access and billing questions": "Réponses aux questions courantes sur l'accès et la facturation",
"Anthropic": "Anthropic",
"Any Match (OR)": "N'importe laquelle (OR)",
"API": "API",
@@ -411,6 +414,7 @@
"Audio Preview": "Aperçu audio",
"Audio ratio": "Ratio audio",
"Audio Tokens": "Jetons audio",
"Auth configured": "Authentification configurée",
"Auth Style": "Style d'authentification",
"Authentication": "Authentification",
"Authenticator code": "Code d'authentification",
@@ -446,8 +450,6 @@
"Available Models": "Modèles disponibles",
"Available Rewards": "Récompenses disponibles",
"Average latency": "Latence moyenne",
"Latency": "Latence",
"Latency short": "Lat.",
"Average latency, TTFT, and success rate by group": "Latence moyenne, TTFT et taux de réussite par groupe",
"Average RPM": "RPM moyen",
"Average time-to-first-token (TTFT) by group": "Temps moyen jusquau premier token (TTFT) par groupe",
@@ -475,6 +477,7 @@
"Baidu V2": "Baidu V2",
"Balance": "Solde",
"Balance and top-up management": "Gestion du solde et des recharges",
"Balance is shown in quota units": "Le solde est affiché en unités de quota",
"Balance queried successfully": "Solde interrogé avec succès",
"Balance updated successfully": "Solde mis à jour avec succès",
"Balance updated: {{balance}}": "Solde mis à jour : {{balance}}",
@@ -549,11 +552,13 @@
"Broadcast a global banner to users. Markdown is supported.": "Diffuser une bannière globale aux utilisateurs. Le Markdown est pris en charge.",
"Broadcast short system notices on the dashboard": "Diffuser de courtes notifications système sur le tableau de bord",
"Browse and compare": "Parcourir et comparer",
"Browse available models and pricing": "Parcourir les modèles disponibles et les tarifs",
"Browse rankings by category": "Parcourir les classements par catégorie",
"Budget tokens = max tokens × ratio. Accepts a decimal between 0.002 and 1. Recommended to keep aligned with upstream billing.": "Jetons budgétaires = jetons max × ratio. Accepte un nombre décimal entre 0,002 et 1. Il est recommandé de rester aligné avec la facturation en amont.",
"Budget tokens = max tokens × ratio. Accepts a decimal between 0.1 and 1.": "Jetons budgétaires = jetons max × ratio. Accepte un nombre décimal entre 0,1 et 1.",
"Budget Tokens Ratio": "Ratio de jetons budgétaires",
"Budgets": "Budgets",
"Build on your API gateway in minutes": "Construisez sur votre passerelle API en quelques minutes",
"Built for developers,": "Conçu pour les développeurs,",
"Built-in": "Intégré",
"Built-in Device": "Appareil intégré",
@@ -846,6 +851,7 @@
"Configure xAI Grok model specific settings": "Configurer les paramètres spécifiques du modèle xAI Grok",
"Configure your account behavior preferences": "Configurer les préférences de comportement de votre compte",
"Configure your account preferences and integrations": "Configurer les préférences et les intégrations de votre compte",
"Configured routes and latency checks": "Routes configurées et contrôles de latence",
"Confirm": "Confirmer",
"Confirm Action": "Confirmer l'action",
"Confirm Batch Update": "Confirmer la mise à jour par lot",
@@ -937,6 +943,7 @@
"Copy model name": "Copier le nom du modèle",
"Copy model names": "Copier les noms des modèles",
"Copy prompt": "Copier le prompt",
"Copy ready-to-run curl": "Copier le curl prêt à exécuter",
"Copy redemption code": "Copier le code de rachat",
"Copy referral link": "Copier le lien de parrainage",
"Copy Request Header": "Copier un en-tête de requête",
@@ -962,9 +969,11 @@
"CPU Threshold (%)": "Seuil CPU (%)",
"Create": "Créer",
"Create a copy of:": "Créer une copie de :",
"Create a key for your app or service": "Créer une clé pour votre application ou service",
"Create a new user group to configure ratio overrides for.": "Créer un nouveau groupe d'utilisateurs pour configurer les remplacements de ratio.",
"Create account": "Créer un compte",
"Create an account": "Créer un compte",
"Create an API key to unlock the real request": "Créez une clé API pour débloquer la requête réelle",
"Create and review invite or credit codes.": "Créer et examiner les codes d'invitation ou de crédit.",
"Create API Key": "Créer une clé API",
"Create cache": "Créer le cache",
@@ -996,6 +1005,7 @@
"Credential generated": "Identifiant généré",
"Credential refreshed": "Identifiant actualisé",
"Credentials": "Identifiants",
"Credit remaining": "Crédit restant",
"Creem API key (leave blank unless updating)": "Clé API Creem (laissez vide sauf si mise à jour)",
"Creem Gateway": "Passerelle Creem",
"Creem Payment": "Paiement Creem",
@@ -1009,6 +1019,7 @@
"Current Balance": "Solde actuel",
"Current Billing": "Facturation actuelle",
"Current Cache Size": "Taille actuelle du cache",
"Current domain": "Domaine actuel",
"Current email: {{email}}. Enter a new email to change.": "E-mail actuel : {{email}}. Saisissez un nouvel e-mail pour le modifier.",
"Current key": "Clé actuelle",
"Current legacy JSON is invalid, cannot append": "Le JSON ancien format actuel n'est pas valide, impossible d'ajouter",
@@ -1211,6 +1222,7 @@
"Display name shown to users.": "Nom d'affichage affiché aux utilisateurs.",
"Display Options": "Options d'affichage",
"Display Token Statistics": "Afficher les statistiques des jetons",
"Displayed in": "Affiché en",
"Displays the mobile sidebar.": "Affiche la barre latérale mobile.",
"Do not over-trust this feature. IP may be spoofed. Please use with nginx, CDN and other gateways.": "Ne faites pas trop confiance à cette fonctionnalité. L'IP peut être usurpée. Veuillez l'utiliser avec nginx, CDN et autres passerelles.",
"Do not repeat check-in; only once per day": "Ne répétez pas le check-in ; une seule fois par jour",
@@ -1714,6 +1726,7 @@
"Finance": "Finance",
"Fine-tune Midjourney integration and guardrails.": "Affiner l'intégration et les garde-fous de Midjourney.",
"Finish Time": "Heure de fin",
"First API request": "Première requête API",
"First/Last Frame to Video": "Première/Dernière image vers vidéo",
"Fix Abilities": "Corriger les capacités",
"Fixed abilities: {{success}} succeeded, {{fails}} failed": "Correction des capacités : {{success}} réussie(s), {{fails}} échouée(s)",
@@ -1800,6 +1813,7 @@
"Generation quality preset": "Préréglage de qualité de génération",
"Generic cache": "Cache générique",
"Get notified when balance falls below this value": "Recevoir une notification lorsque le solde tombe en dessous de cette valeur",
"Get started": "Commencer",
"Get Started": "Commencer",
"GitHub": "GitHub",
"Give the group a recognizable name and optional description.": "Donnez au groupe un nom reconnaissable et une description facultative.",
@@ -1856,6 +1870,7 @@
"Group-based rate limits": "Limites de débit basées sur le groupe",
"Group:": "Groupe :",
"Group: {{ratio}}x": "Groupe : {{ratio}}x",
"Grouped monitor status from Uptime Kuma": "État des moniteurs groupés depuis Uptime Kuma",
"Groups": "Groupes",
"Groups *": "Groupes *",
"Groups that users can select when creating API keys.": "Groupes que les utilisateurs peuvent sélectionner lors de la création de clés API.",
@@ -1884,6 +1899,7 @@
"Hidden — verify to reveal": "Masqué — vérifiez pour révéler",
"Hide": "Masquer",
"Hide API key": "Masquer la clé API",
"Hide setup guide": "Masquer le guide de configuration",
"High Performance": "Hautes performances",
"High-risk operation confirmation": "Confirmation d'opération à haut risque",
"High-risk status code retry confirmation text": "JE CONFIRME",
@@ -1990,6 +2006,7 @@
"Input tokens": "Jetons dentrée",
"Input Tokens": "Tokens d'entrée",
"Inset": "Encastré",
"Inspect requests, errors, and billing details": "Inspecter les requêtes, les erreurs et les détails de facturation",
"Inspect user prompts": "Inspecter les invites utilisateur",
"Instance": "Instance",
"Integrations": "Intégrations",
@@ -2063,8 +2080,10 @@
"JustSong": "JustSong",
"K": "K",
"Keep enabled if you need to proxy requests for different upstream accounts.": "Gardez activé si vous devez proxifier les requêtes pour différents comptes en amont.",
"Keep enough balance before production traffic": "Gardez un solde suffisant avant le trafic de production",
"Keep original value": "Conserver la valeur originale",
"Keep original value (skip if target exists)": "Conserver la valeur originale (ignorer si la cible existe)",
"Keep the platform ready": "Gardez la plateforme prête",
"Keep this above 1 minute to avoid heavy database load": "Gardez cette valeur au-dessus de 1 minute pour éviter une charge excessive de la base de données",
"Keep-alive Ping": "Ping de maintien de connexion",
"Key": "Clé",
@@ -2090,7 +2109,11 @@
"Last updated:": "Dernière mise à jour :",
"Last Used": "Dernière utilisation",
"Last used:": "Dernière utilisation :",
"Latency": "Latence",
"Latency check": "Contrôle de latence",
"Latency short": "Lat.",
"Latency trend (last 24h)": "Tendance de latence (24 dernières heures)",
"Latest platform updates and notices": "Dernières mises à jour et annonces de la plateforme",
"Lavender Dream": "Rêve de lavande",
"Layout": "Disposition",
"lead": "tête",
@@ -2141,6 +2164,7 @@
"Load Balancing": "Équilibrage de charge",
"Load template...": "Charger le modèle...",
"Loader": "Chargeur",
"Loading": "Chargement",
"Loading configuration": "Chargement de la configuration",
"Loading content settings...": "Chargement des paramètres de contenu...",
"Loading current models...": "Chargement des modèles actuels...",
@@ -2314,6 +2338,7 @@
"Model ratios reset successfully": "Ratios des modèles réinitialisés avec succès",
"Model Regex": "Regex du modèle",
"Model Regex (one per line)": "Regex du modèle (un par ligne)",
"Model selected": "Modèle sélectionné",
"Model Square": "Place des modèles",
"Model Tags": "Tags de modèle",
"Model to use for testing": "Modèle à utiliser pour les tests",
@@ -2344,6 +2369,7 @@
"Module availability": "Disponibilité du module",
"MokaAI": "MokaAI",
"Monitor": "Surveiller",
"Monitor balance, usage, and request volume": "Surveillez le solde, l'utilisation et le volume de requêtes",
"Monitoring & Alerts": "Surveillance & Alertes",
"Month": "Mois",
"Month number": "Numéro du mois",
@@ -2406,6 +2432,7 @@
"name@example.com": "name@example.com",
"Native format": "Format natif",
"Need a code?": "Besoin d'un code ?",
"Needs API key": "Clé API requise",
"Nested JSON defining per-group rules for adding (+:), removing (-:), or appending usable groups.": "JSON imbriqué définissant des règles par groupe pour ajouter (+:), supprimer (-:), ou ajouter des groupes utilisables.",
"Nested JSON: source group →": "JSON imbriqué : groupe source →",
"Network proxy for this channel (supports socks5 protocol)": "Proxy réseau pour ce canal (supporte le protocole socks5)",
@@ -2438,6 +2465,7 @@
"No announcements at this time": "Aucune annonce pour le moment",
"No announcements yet. Click \"Add Announcement\" to create one.": "Aucune annonce pour l'instant. Cliquez sur « Ajouter une annonce » pour en créer une.",
"No API Domains yet. Click \"Add API\" to create one.": "Aucun domaine API pour l'instant. Cliquez sur \"Ajouter une API\" pour en créer un.",
"No API key yet": "Aucune clé API pour le moment",
"No API keys available. Create your first API key to get started.": "Aucune clé API disponible. Créez votre première clé API pour commencer.",
"No API Keys Found": "Aucune clé API trouvée",
"No API routes configured": "Aucune route API configurée",
@@ -2632,6 +2660,7 @@
"One IP or CIDR range per line": "Une IP ou plage CIDR par ligne",
"One IP per line (empty for no restriction)": "Une IP par ligne (laisser vide pour aucune restriction)",
"one keyword per line": "un mot-clé par ligne",
"Online": "En ligne",
"Online payment is not enabled. Please contact the administrator.": "Le paiement en ligne n'est pas activé. Veuillez contacter l'administrateur.",
"Online topup is not enabled. Please use redemption code or contact administrator.": "La recharge en ligne n'est pas activée. Veuillez utiliser un code d'échange ou contacter l'administrateur.",
"Only allow specific email domains": "Autoriser uniquement des domaines d'e-mail spécifiques",
@@ -3082,6 +3111,7 @@
"Raw Quota": "Quota brut",
"Re-enable on success": "Réactiver en cas de succès",
"Re-login": "Se reconnecter",
"Ready": "Prêt",
"Ready to initialize": "Prêt à initialiser",
"Ready to simplify": "Prêt à simplifier",
"Real exchange rate between USD and your payment gateway currency": "Taux de change réel entre l'USD et la devise de votre passerelle de paiement",
@@ -3097,6 +3127,7 @@
"Recharge Amount": "Montant de la recharge",
"Recharge Amount (USD)": "Montant de la recharge (USD)",
"Recommended": "Recommandé",
"Recommended actions": "Actions recommandées",
"Recommended to keep this high to avoid upstream throttling.": "Il est recommandé de maintenir cette valeur élevée pour éviter la limitation en amont.",
"Record IP Address": "Enregistrer l'adresse IP",
"Record quota usage": "Enregistrer l'utilisation du quota",
@@ -3281,6 +3312,7 @@
"Revenue": "Revenu",
"Review & initialize": "Vérifier et initialiser",
"Review current version and fetch release notes.": "Examiner la version actuelle et récupérer les notes de publication.",
"Review model rates before scaling traffic": "Consulter les tarifs des modèles avant d'augmenter le trafic",
"Review your payment details": "Vérifier vos détails de paiement",
"Review your purchase details before proceeding.": "Vérifiez les détails de votre achat avant de continuer.",
"Rewards will be added directly to your balance": "Les récompenses seront ajoutées directement à votre solde",
@@ -3291,8 +3323,10 @@
"Root": "Racine",
"Rose Garden": "Jardin de roses",
"Route": "Route",
"Route active": "Route active",
"Route Description": "Description de la route",
"Route is required": "La route est requise",
"Route, auth, and balance check in one place": "Routage, authentification et solde au même endroit",
"Routing & Overrides": "Routage et surcharges",
"Routing Strategy": "Stratégie de routage",
"Rows per page": "Lignes par page",
@@ -3401,6 +3435,7 @@
"Secret environment variables (JSON)": "Variables d'environnement secrètes (JSON)",
"Secret Key": "Clé secrète",
"Secure & Reliable": "Sécurisé et fiable",
"Secured": "Sécurisé",
"Security": "Sécurité",
"Security & Limits": "Sécurité et limites",
"Security Check": "Vérification de sécurité",
@@ -3480,6 +3515,7 @@
"Selected when creating a token and used as the default billing group for API calls.": "Sélectionné lors de la création dun jeton et utilisé comme groupe de facturation par défaut pour les appels API.",
"Self-Use Mode": "Mode d'utilisation personnelle",
"Send": "Envoyer",
"Send a request": "Envoyer une requête",
"Send code": "Envoyer le code",
"Send email alerts when a user falls below this quota": "Envoyer des alertes par e-mail lorsqu'un utilisateur descend en dessous de ce quota",
"Sending...": "Envoi en cours...",
@@ -3520,7 +3556,11 @@
"Settings": "Paramètres",
"Settings & Preferences": "Paramètres et préférences",
"Settings updated successfully": "Paramètres mis à jour avec succès",
"Setup guide": "Guide de configuration",
"Setup guide complete": "Guide de configuration terminé",
"Setup guide is collapsed. Expand it anytime.": "Le guide de configuration est réduit. Vous pouvez le rouvrir à tout moment.",
"Setup Instructions": "Instructions de configuration",
"Setup progress: {{completed}}/{{total}}": "Progression : {{completed}}/{{total}}",
"Setup Two-Factor Authentication": "Configurer l'authentification à deux facteurs",
"Share": "Part",
"Share your link and earn rewards": "Partagez votre lien et gagnez des récompenses",
@@ -3531,6 +3571,7 @@
"Show all providers including unbound": "Afficher tous les fournisseurs (y compris non liés)",
"Show only bound providers": "Afficher uniquement les fournisseurs liés",
"Show prices in currency instead of quota.": "Afficher les prix en devise au lieu du quota.",
"Show setup guide": "Afficher le guide de configuration",
"Show token usage statistics in the UI": "Afficher les statistiques d'utilisation des jetons dans l'interface utilisateur",
"Showcase core capabilities with demo credentials and limited access.": "Présenter les fonctionnalités principales avec des identifiants de démonstration et un accès limité.",
"Showing": "Affichage de",
@@ -3605,11 +3646,11 @@
"Statistical tokens": "Jetons statistiques",
"Statistics reset": "Statistiques réinitialisées",
"Status": "Statut",
"Status short": "État",
"Status & Sync": "Statut et synchronisation",
"Status Code": "Code de statut",
"Status Code Mapping": "Mappage des codes d'état",
"Status Page Slug": "Slug de la page d'état",
"Status short": "État",
"Status:": "Statut :",
"Stay": "Rester",
"Stay tuned though!": "Restez à l'écoute cependant !",
@@ -3754,6 +3795,7 @@
"Test Latency": "Tester la latence",
"Test Mode": "Mode test",
"Test Model": "Tester le modèle",
"Test models and prompts from the browser": "Tester les modèles et les prompts depuis le navigateur",
"Testing all enabled channels started. Please refresh to see results.": "Test de tous les canaux activés démarré. Veuillez actualiser pour voir les résultats.",
"Testing...": "Test en cours...",
"Text": "Texte",
@@ -3837,8 +3879,8 @@
"This year": "Cette année",
"Three steps to get started": "Trois étapes pour commencer",
"Throughput": "Débit",
"Throughput short": "TPS",
"Throughput by group": "Débit par groupe",
"Throughput short": "TPS",
"Throughput trend": "Tendance du débit",
"Tier": "Palier",
"Tier conditions": "Conditions du palier",
@@ -4092,6 +4134,7 @@
"URL is required": "L'URL est requise",
"URL to your logo image (optional)": "URL de votre image de logo (facultatif)",
"Usage": "Utilisation",
"Usage at a glance": "Vue d'ensemble de l'utilisation",
"Usage guide": "Guide d'utilisation",
"Usage logs": "Journaux d'utilisation",
"Usage Logs": "Journaux d'utilisation",
@@ -4189,6 +4232,7 @@
"Verification required to reveal the saved key.": "Vérification requise pour révéler la clé enregistrée.",
"Verify": "Vérifier",
"Verify and Sign In": "Vérifier et se connecter",
"Verify routing with Playground or your client": "Vérifiez le routage avec Playground ou votre client",
"Verify Setup": "Vérifier la configuration",
"Verify your database connection": "Vérifiez votre connexion à la base de données",
"Version Overrides": "Remplacements de version",
@@ -4346,6 +4390,7 @@
"Your GitHub OAuth Client Secret": "Votre Secret Client OAuth GitHub",
"Your new backup codes are ready": "Vos nouveaux codes de secours sont prêts",
"Your Referral Link": "Votre lien de parrainage",
"Your setup guide is collapsed so usage stays in focus.": "Le guide de configuration est réduit afin de garder l'utilisation au premier plan.",
"Your system access token for API authentication. Keep it secure and don't share it with others.": "Votre jeton d'accès système pour l'authentification API. Gardez-le en sécurité et ne le partagez pas avec d'autres.",
"Your Telegram Bot Token": "Votre Jeton de Bot Telegram",
"Your Turnstile secret key": "Votre clé secrète Turnstile",