feat(performance): update performance metrics handling and UI components

This commit is contained in:
CaIon
2026-05-12 16:04:15 +08:00
parent ba474393fb
commit 19fc384e67
37 changed files with 936 additions and 443 deletions
+23 -11
View File
@@ -100,6 +100,7 @@
"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",
"About {{days}} days left": "Environ {{days}} jours restants",
"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.",
"Accepts comma-separated status codes and inclusive ranges.": "Accepte les codes de statut séparés par des virgules et les plages inclusives.",
@@ -239,6 +240,7 @@
"AILS": "AILS",
"AK/SK mode: use AccessKey|SecretAccessKey|Region": "Mode AK/SK : utiliser AccessKey|SecretAccessKey|Region",
"Ali": "Ali",
"Alipay": "Alipay",
"All": "Tout",
"All categories": "Toutes catégories",
"All conditions must match before this tier is used.": "Toutes les conditions doivent correspondre pour utiliser ce palier.",
@@ -477,6 +479,7 @@
"Baidu V2": "Baidu V2",
"Balance": "Solde",
"Balance and top-up management": "Gestion du solde et des recharges",
"Balance depleted": "Solde épuisé",
"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",
@@ -888,6 +891,7 @@
"Console Area": "Zone console",
"Console Content": "Contenu de la console",
"Consume": "Consommation",
"Consumed in the last 24 hours": "Consommé dans les dernières 24 heures",
"Container": "Conteneur",
"Container name": "Nom du conteneur",
"Containers": "Conteneurs",
@@ -1897,6 +1901,7 @@
"Header Value (supports string or JSON mapping)": "Valeur de l'en-tête (chaîne ou mappage JSON)",
"header. Anthropic-formatted endpoints accept the": ". Les points de terminaison au format Anthropic acceptent à la place",
"Health": "Santé",
"Healthy": "Normal",
"Hidden — verify to reveal": "Masqué — vérifiez pour révéler",
"Hide": "Masquer",
"Hide API key": "Masquer la clé API",
@@ -2101,6 +2106,7 @@
"Language preference saved": "Préférence de langue enregistrée",
"Language Preferences": "Préférences de langue",
"Language preferences sync across your signed-in devices and affect API error messages.": "Les préférences de langue se synchronisent sur vos appareils connectés et affectent les messages d'erreur de l'API.",
"Last 24h usage": "Utilisation 24h",
"Last 30 days uptime": "Disponibilité 30 derniers jours",
"Last check time": "Dernière vérification",
"Last detected addable models": "Derniers modèles ajoutables détectés",
@@ -2143,6 +2149,7 @@
"Less": "Moins",
"Less than": "Inférieur à",
"Less Than": "Inférieur à",
"Less than 1 day left": "Moins d'un jour restant",
"Less than or equal": "Inférieur ou égal",
"Less Than or Equal": "Inférieur ou égal",
"License": "Licence",
@@ -2192,6 +2199,7 @@
"Logo": "Logo",
"Logo URL": "URL du logo",
"Logs": "Journaux",
"Low balance": "Solde faible",
"Lowest median first-token latency": "Latence médiane de premier jeton la plus faible",
"m": "m",
"Maintain a list of common questions for the dashboard help panel": "Maintenir une liste de questions courantes pour le panneau d'aide du tableau de bord",
@@ -2371,6 +2379,7 @@
"MokaAI": "MokaAI",
"Monitor": "Surveiller",
"Monitor balance, usage, and request volume": "Surveillez le solde, l'utilisation et le volume de requêtes",
"Monitored relay requests": "Requêtes relais surveillées",
"Monitoring & Alerts": "Surveillance & Alertes",
"Month": "Mois",
"Month number": "Numéro du mois",
@@ -2381,9 +2390,9 @@
"More": "Plus",
"more mapping": "plus de mappage",
"More templates...": "Autres modèles…",
"More than 999 days left": "Plus de 999 jours restants",
"More...": "Plus...",
"Most-used models in the selected period and category": "Modèles les plus utilisés dans la période et catégorie choisies",
"Monitored relay requests": "Requêtes relais surveillées",
"Move": "Déplacer",
"Move a request header": "Déplacer un en-tête de requête",
"Move affiliate rewards to your main balance": "Transférer les récompenses d'affiliation vers votre solde principal",
@@ -2433,7 +2442,7 @@
"Name the channel, choose the provider, configure API access, and set credentials.": "Nommez le canal, choisissez le fournisseur, configurez laccès API et définissez les identifiants.",
"name@example.com": "name@example.com",
"Native format": "Format natif",
"Need a code?": "Besoin d'un code ?",
"Need a redemption code?": "Besoin d'un code d'échange ?",
"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 →",
@@ -2567,6 +2576,7 @@
"No providers available": "Aucun fournisseur disponible",
"No Quota": "Aucun quota",
"No ratio differences found": "Aucune différence de ratio trouvée",
"No recent usage": "Aucune utilisation récente",
"No records found. Try adjusting your filters.": "Aucun enregistrement trouvé. Essayez d'ajuster vos filtres.",
"No redemption codes available. Create your first redemption code to get started.": "Aucun code d'échange disponible. Créez votre premier code d'échange pour commencer.",
"No Redemption Codes Found": "Aucun code d'échange trouvé",
@@ -2851,6 +2861,7 @@
"Percentage:": "Pourcentage :",
"Performance": "Performances",
"Performance data is not yet available for this model.": "Aucune donnée de performance n'est encore disponible pour ce modèle.",
"Performance health": "Santé des performances",
"Performance metrics for the last 24 hours": "Indicateurs de performance des dernières 24 heures",
"Performance metrics shown here are simulated for preview purposes and will be replaced with live observability data once the backend integration is complete.": "Les indicateurs de performance présentés ici sont simulés à des fins de prévisualisation et seront remplacés par des données d'observabilité réelles une fois l'intégration du backend terminée.",
"Performance Monitor": "Moniteur de performances",
@@ -2923,6 +2934,7 @@
"Please set Ollama API Base URL first": "Veuillez d'abord définir l'URL de base de l'API Ollama",
"Please try again later.": "Veuillez réessayer plus tard.",
"Please upload key file(s)": "Veuillez télécharger le (s) fichier(s) clé (s)",
"Please wait a moment before trying again.": "Veuillez patienter un instant avant de réessayer.",
"Please wait a moment, human check is initializing...": "Veuillez patienter un instant, la vérification humaine s'initialise...",
"Policy JSON": "JSON de stratégie",
"Polling": "Sondage",
@@ -3061,8 +3073,8 @@
"Pull": "Télécharger",
"Pull model": "Télécharger le modèle",
"Pulling...": "Téléchargement en cours...",
"Purchase a plan to enjoy model benefits": "Souscrivez un plan pour bénéficier des avantages des modèles",
"Purchase here": "Acheter ici",
"Subscribe to a plan for model access": "Souscrivez à un plan pour accéder aux modèles",
"Get one here": "Obtenir ici",
"Purchase Limit": "Limite d'achat",
"Purchase limit reached": "Limite d'achat atteinte",
"Purchase Subscription": "Acheter un abonnement",
@@ -3356,6 +3368,7 @@
"Run GC": "Exécuter le GC",
"Run tests for the selected models": "Exécuter les tests pour les modèles sélectionnés",
"Running": "En cours",
"Runway": "Durée restante",
"s": "s",
"Safety Settings": "Paramètres de sécurité",
"Same as Local": "Identique au local",
@@ -3847,6 +3860,7 @@
"This action will permanently remove 2FA protection from your account.": "Cette action supprimera définitivement la protection 2FA de votre compte.",
"This channel is not an Ollama channel.": "Ce canal n'est pas un canal Ollama.",
"This channel type does not support fetching models": "Ce type de canal ne prend pas en charge la récupération de modèles",
"This controls model request rate limiting. Web/API route throttling is configured by environment variables and may still return 429.": "Ce réglage contrôle la limitation des requêtes de modèles. La limitation des routes Web/API se configure via les variables d'environnement et peut encore renvoyer 429.",
"This data may be unreliable, use with caution": "Ces données peuvent être peu fiables, utilisez-les avec prudence",
"This device does not support Passkey": "Cet appareil ne prend pas en charge Passkey",
"This device does not support Passkey verification.": "Cet appareil ne prend pas en charge la vérification par clé d'accès.",
@@ -3955,6 +3969,7 @@
"Tokens since launch": "Jetons depuis le lancement",
"Tokens-only mode will show raw quota values regardless of this toggle.": "Le mode Tokens uniquement affichera les valeurs de quota brutes indépendamment de ce basculement.",
"Too many files. Some were not added.": "Trop de fichiers. Certains n'ont pas été ajoutés.",
"Too many requests": "Trop de requêtes",
"Tool / function declarations the model may call": "Déclarations d'outils / fonctions que le modèle peut appeler",
"Tool identifier": "Identifiant doutil",
"Tool price settings": "Paramètres de prix des outils",
@@ -3969,6 +3984,7 @@
"Top model": "Modèle principal",
"Top models": "Top modèles",
"Top Models": "Top Modèles",
"Top models by traffic": "Modèles les plus utilisés",
"Top up balance and view billing history.": "Recharger le solde et consulter l'historique de facturation.",
"Top Users": "Top utilisateurs",
"Top vendors": "Top fournisseurs",
@@ -4023,6 +4039,7 @@
"Trim Suffix": "Supprimer le suffixe",
"Truncate embeddings to this many dimensions": "Tronquer les vecteurs à autant de dimensions",
"Trusted": "Fiable",
"Try adjusting your search": "Essayez d'ajuster votre recherche",
"Try adjusting your search to locate a missing model.": "Essayez d'ajuster votre recherche pour localiser un modèle manquant.",
"TTFT P50": "TTFT P50",
"TTFT P95": "TTFT P95",
@@ -4323,6 +4340,7 @@
"Website is under maintenance!": "Le site web est en maintenance !",
"WeChat": "WeChat",
"WeChat login QR code": "Code QR de connexion WeChat",
"WeChat Pay": "WeChat Pay",
"WeChat QR code will be displayed here": "Le code QR WeChat sera affiché ici",
"WeChat sign in": "Connexion WeChat",
"Week": "Semaine",
@@ -4398,15 +4416,9 @@
"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 transaction history will appear here": "Votre historique de transactions apparaîtra ici",
"Your Turnstile secret key": "Votre clé secrète Turnstile",
"Your Turnstile site key": "Votre clé de site Turnstile",
"Alipay": "Alipay",
"Please wait a moment before trying again.": "Veuillez patienter un instant avant de réessayer.",
"This controls model request rate limiting. Web/API route throttling is configured by environment variables and may still return 429.": "Ce réglage contrôle la limitation des requêtes de modèles. La limitation des routes Web/API se configure via les variables d'environnement et peut encore renvoyer 429.",
"Too many requests": "Trop de requêtes",
"Try adjusting your search": "Essayez d'ajuster votre recherche",
"WeChat Pay": "WeChat Pay",
"Your transaction history will appear here": "Votre historique de transactions apparaîtra ici",
"Zero retention": "Aucune rétention",
"Zhipu": "Zhipu",
"Zhipu V4": "Zhipu V4",