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.": "Idéal pour les déploiements mono-utilisateur. Les options de tarification et de facturation restent masquées.",
"Best TTFT": "Meilleur TTFT",
"Billing": "Facturation",
"Billing & Payment": "Facturation et paiement",
"Billing currency": "Devise de facturation",
"Billing Details": "Détails de facturation",
"Billing History": "Historique de facturation",
@@ -633,6 +634,7 @@
"Check in now": "Se connecter maintenant",
"Check resolved IPs against IP filters even when accessing by domain": "Vérifier les adresses IP résolues par rapport aux filtres IP même lors de l'accès par domaine",
"Check-in failed": "Échec de la connexion",
"Check-in Rewards": "Récompenses de connexion quotidienne",
"Check-in Settings": "Paramètres de connexion",
"Check-in successful! Received": "Connexion réussie ! Reçu",
"Checked in": "Vérifié",
@@ -783,14 +785,18 @@
"Configure basic system information and branding": "Configurer les informations système de base et l'image de marque",
"Configure channel affinity (sticky routing) rules": "Configurer les règles d'affinité de canal (routage persistant)",
"Configure Creem products. Provide a JSON array.": "Configurez les produits Creem. Fournissez un tableau JSON.",
"Configure currency conversion and quota display options": "Configurer la conversion de devise et les options d'affichage des quotas",
"Configure custom OAuth providers for user authentication": "Configurer des fournisseurs OAuth personnalisés pour l'authentification des utilisateurs",
"Configure daily check-in rewards for users": "Configurer les récompenses de connexion quotidienne pour les utilisateurs",
"Configure discount rates based on recharge amounts": "Configurer les taux de réduction basés sur les montants de recharge",
"Configure experimental data export for the dashboard": "Configurer l'exportation de données expérimentales pour le tableau de bord",
"Configure Gemini safety behavior, version overrides, and thinking adapter": "Configurer le comportement de sécurité Gemini, les remplacements de version et l'adaptateur de réflexion",
"Configure group ratios and group-specific pricing rules": "Configurer les ratios de groupe et les règles de tarification propres aux groupes",
"Configure in your Creem dashboard": "Configurez dans votre tableau de bord Creem",
"Configure io.net API key for model deployments": "Configurer la clé API io.net pour les déploiements de modèles",
"Configure keyword filtering for prompts and responses.": "Configurer le filtrage par mots-clés pour les invites et les réponses.",
"Configure model deployment provider settings": "Configurer les paramètres du fournisseur de déploiement de modèles",
"Configure model pricing ratios and tool prices": "Configurer les ratios de tarification des modèles et les prix des outils",
"Configure model, caching, and group ratios used for billing": "Configurer les ratios de modèle, de mise en cache et de groupe utilisés pour la facturation",
"Configure monitoring status page groups for the dashboard": "Configurer les groupes de pages d'état de surveillance pour le tableau de bord",
"Configure outgoing email server for notifications": "Configurer le serveur de messagerie sortant pour les notifications",
@@ -849,6 +855,7 @@
"Console": "Console",
"Console area": "Zone de console",
"Console Area": "Zone console",
"Console Content": "Contenu de la console",
"Consume": "Consommation",
"Container": "Conteneur",
"Container name": "Nom du conteneur",
@@ -970,6 +977,7 @@
"Cross-group retry": "Nouvelle tentative inter-groupes",
"Curate quick links to your different Domains": "Organiser des liens rapides vers vos différents domaines",
"Currency": "Devise",
"Currency & Display": "Devise et affichage",
"Current Balance": "Solde actuel",
"Current Billing": "Facturation actuelle",
"Current Cache Size": "Taille actuelle du cache",
@@ -1027,6 +1035,7 @@
"Date and time when this announcement should be displayed": "Date et heure auxquelles cette annonce doit être affichée",
"Date Range": "Plage de dates",
"Day": "Jour",
"Day of month": "Jour du mois",
"days": "jours",
"Days to Retain": "Jours à conserver",
"Deducted by subscription": "Déduit par abonnement",
@@ -1778,6 +1787,8 @@
"GPU count": "Nombre de GPU",
"Greater Than": "Supérieur à",
"Greater Than or Equal": "Supérieur ou égal",
"Greater than": "Supérieur à",
"Greater than or equal": "Supérieur ou égal",
"Grok": "Grok",
"Grok Settings": "Paramètres Grok",
"Group": "Groupe",
@@ -1793,6 +1804,7 @@
"Group Name": "Nom du groupe",
"Group name cannot be changed when editing.": "Le nom du groupe ne peut pas être modifié lors de la modification.",
"Group prices cannot be expanded because this expression is not a standard tiered pricing expression.": "Les prix par groupe ne peuvent pas être détaillés car cette expression n'est pas une expression tarifaire par paliers standard.",
"Group Pricing": "Tarification des groupes",
"group ratio": "ratio de groupe",
"Group Ratio": "Ratio de groupe",
"Group ratios": "Ratios de groupe",
@@ -1848,6 +1860,7 @@
"Home Page Content": "Contenu de la page d'accueil",
"Hostname or IP of your SMTP provider": "Nom d'hôte ou IP de votre fournisseur SMTP",
"Hour": "Heure",
"Hour of day": "Heure du jour",
"Hourly token usage by model across the last 24 hours": "Utilisation horaire des tokens par modèle sur les dernières 24 heures",
"Hourly token usage by model over the past 24 hours": "Utilisation horaire de tokens par modèle sur les dernières 24 heures",
"hours": "heures",
@@ -1893,6 +1906,7 @@
"If an upstream error contains any of these keywords (case insensitive), the channel will be disabled automatically.": "Si une erreur en amont contient l'un de ces mots-clés (insensible à la casse), le canal sera désactivé automatiquement.",
"If authorization succeeds, the generated JSON will be inserted into the key field. You still need to save the channel to persist it.": "Si l'autorisation réussit, le JSON généré sera inséré dans le champ clé. Vous devez encore enregistrer le canal pour le conserver.",
"If connecting to upstream One API or New API relay projects, use OpenAI type instead unless you know what you are doing": "Si vous vous connectez à des projets de relais One API ou New API en amont, utilisez le type OpenAI à la place sauf si vous savez ce que vous faites",
"If this keeps happening, please report it on GitHub Issues.": "Si cela continue, veuillez le signaler sur GitHub Issues.",
"If the affinity channel fails and retry succeeds on another channel, update affinity to the successful channel.": "Si le canal affinitaire échoue et qu'une nouvelle tentative réussit sur un autre canal, mettre à jour l'affinité vers le canal ayant réussi.",
"Ignored upstream models": "Modèles amont ignorés",
"Image": "Image",
@@ -2056,6 +2070,8 @@
"Less": "Moins",
"Less Than": "Inférieur à",
"Less Than or Equal": "Inférieur ou égal",
"Less than": "Inférieur à",
"Less than or equal": "Inférieur ou égal",
"License": "Licence",
"Light": "Clair",
"Lightning Fast": "Extrêmement rapide",
@@ -2217,6 +2233,7 @@
"Model context usage": "Utilisation du contexte du modèle",
"Model deleted": "Modèle supprimé",
"Model deleted successfully": "Modèle supprimé avec succès",
"Model Deployment": "Déploiement de modèles",
"Model deployment service is disabled": "Le service de déploiement de modèles est désactivé",
"Model Description": "Description du modèle",
"Model details": "Détails du modèle",
@@ -2256,6 +2273,7 @@
"Models": "Modèles",
"Models *": "Modèles *",
"Models & Groups": "Modèles & Groupes",
"Models & Routing": "Modèles et routage",
"Models appended successfully": "Modèles ajoutés avec succès",
"Models are required": "Les modèles sont requis",
"Models climbing the leaderboard": "Modèles qui montent au classement",
@@ -2276,6 +2294,7 @@
"Monitor": "Surveiller",
"Monitoring & Alerts": "Surveillance & Alertes",
"Month": "Mois",
"Month number": "Numéro du mois",
"Monthly": "Mensuel",
"Monthly tokens": "Tokens par mois",
"months": "mois",
@@ -2592,6 +2611,7 @@
"Operation": "Opération",
"Operation failed": "Opération échouée",
"Operation Type": "Type d'opération",
"Operations": "Opérations",
"Operator Admin": "Admin opérateur",
"Optimize system for self-hosted single-user usage": "Optimiser le système pour une utilisation auto-hébergée par un seul utilisateur",
"Optimized network architecture ensures millisecond response times": "Architecture réseau optimisée garantissant des temps de réponse en millisecondes",
@@ -2636,6 +2656,7 @@
"Override Rules": "Règles de remplacement",
"Override the endpoint used for testing. Leave empty to auto detect.": "Remplacer le point de terminaison utilisé pour les tests. Laisser vide pour la détection automatique.",
"overrides for matching model prefix.": "remplace le tarif si le modèle a ce préfixe.",
"Overnight range": "Plage nocturne",
"Overview": "Vue d'ensemble",
"Overwritten": "Écrasé",
"Page": "Page",
@@ -3102,6 +3123,7 @@
"Replacement Model": "Modèle de remplacement",
"Replica count": "Nombre de réplicas",
"Replicate": "Replicate",
"Report an issue": "Signaler un problème",
"request": "requête",
"Request": "Requête",
"Request Body Disk Cache": "Cache disque du corps de requête",
@@ -3308,6 +3330,7 @@
"Secret Key": "Clé secrète",
"Secure & Reliable": "Sécurisé et fiable",
"Security": "Sécurité",
"Security & Limits": "Sécurité et limites",
"Security Check": "Vérification de sécurité",
"Security verification": "Vérification de sécurité",
"Select": "Sélectionner",
@@ -3456,6 +3479,7 @@
"Simple mode only returns message; status code and error type use system defaults.": "Le mode simple ne retourne que le message ; le code de statut et le type d'erreur utilisent les valeurs par défaut.",
"Simple mode: prune objects by type, e.g. redacted_thinking.": "Mode simple : nettoyer les objets par type, ex. redacted_thinking.",
"Single Key": "Clé unique",
"Site & Branding": "Site et marque",
"Site Key": "Clé du site",
"Size:": "Taille :",
"sk_xxx or rk_xxx": "sk_xxx ou rk_xxx",
@@ -3733,6 +3757,8 @@
"Tier": "Palier",
"Tier name": "Nom du palier",
"Tiered": "Par paliers",
"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)": "Par paliers (expression de facturation)",
"Tiered price table": "Grille de prix par paliers",
"Time": "Heure",
@@ -3741,7 +3767,7 @@
"Time window for rate limiting": "Fenêtre de temps pour la limitation de débit",
"Time-based": "Selon lheure",
"Time:": "Heure :",
"Timed cache (1h)": "Cache limité (1h)",
"Time-sliced cache (Claude)": "Cache segmenté (Claude)",
"Timeline": "Chronologie",
"times": "Fois",
"Timing": "Durée",
@@ -4219,6 +4245,71 @@
"Zero retention": "Aucune rétention",
"Zhipu": "Zhipu",
"Zhipu V4": "Zhipu V4",
"Zoom": "Zoom"
"Zoom": "Zoom",
"Add model pricing": "Ajouter une tarification de modèle",
"Applied {{name}} pricing to {{count}} models": "Tarification de {{name}} appliquée à {{count}} modèles",
"Audio input price": "Prix dentrée audio",
"Audio output price": "Prix de sortie audio",
"Audio output price requires an audio input price.": "Le prix de sortie audio nécessite un prix dentrée audio.",
"Billable input tokens": "Tokens dentrée facturables",
"Billable output tokens": "Tokens de sortie facturables",
"Cache create (1h) price": "Prix de création du cache (1 h)",
"Cache create price": "Prix de création du cache",
"Cache read price": "Prix de lecture du cache",
"Cache pricing": "Tarification du cache",
"Cache write price": "Prix d’écriture du cache",
"Changes are written to the settings draft on save.": "Les modifications sont écrites dans le brouillon des paramètres lors de lenregistrement.",
"Clean": "Sans conflit",
"Completion price": "Prix de complétion",
"Core pricing": "Tarification principale",
"Copy {{name}} pricing": "Copier la tarification de {{name}}",
"Disabled lanes are omitted on save.": "Les voies désactivées sont omises à lenregistrement.",
"Edit model pricing": "Modifier la tarification du modèle",
"Empty": "Vide",
"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.": "Chaque palier accepte jusqu’à 2 conditions ; le dernier palier sert de repli sans condition. Utilisez la longueur complète de lentrée pour éviter un mauvais aiguillage lorsque les lectures de cache réduisent les tokens dentrée facturables.",
"All conditions must match before this tier is used.": "Toutes les conditions doivent correspondre pour utiliser ce palier.",
"Base input and output token prices for this tier.": "Prix de base des tokens dentrée et de sortie pour ce palier.",
"Expression": "Expression",
"Fallback tier": "Palier de repli",
"Full input length": "Longueur complète de lentrée",
"Input price is required before saving dependent prices.": "Le prix dentrée est requis avant denregistrer les prix dépendants.",
"Image input price": "Prix dentrée image",
"Image output price": "Prix de sortie image",
"Media pricing": "Tarification multimodale",
"New model": "Nouveau modèle",
"No separate media pricing configured.": "Aucune tarification multimodale séparée nest configurée.",
"Open a source model first": "Ouvrez dabord un modèle source",
"Output token price for generated tokens.": "Prix des tokens de sortie générés.",
"Per-request": "Par requête",
"Save preview": "Aperçu de lenregistrement",
"Select at least one target model": "Sélectionnez au moins un modèle cible",
"Separate image/audio prices are enabled.": "Les prix séparés image/audio sont activés.",
"Set separate prices for cache reads and writes.": "Définissez des prix séparés pour les lectures et écritures du cache.",
"This model has both fixed-price and ratio settings. Saving the current mode will rewrite the conflicting fields.": "Ce modèle possède à la fois un prix fixe et des paramètres de ratio. Lenregistrement du mode actuel réécrira les champs en conflit.",
"This model has both fixed-price and token-price settings. Saving the current mode will rewrite the conflicting fields.": "Ce modèle possède à la fois un prix fixe et des prix par token. Lenregistrement du mode actuel réécrira les champs en conflit.",
"This tier catches any request that did not match earlier tiers.": "Ce palier récupère toute requête qui na pas correspondu aux paliers précédents.",
"Tier conditions": "Conditions du palier",
"Token price for audio input.": "Prix par token pour lentrée audio.",
"Token price for audio output.": "Prix par token pour la sortie audio.",
"Token price for cache reads.": "Prix par token pour les lectures du cache.",
"Token price for creating cache entries.": "Prix par token pour la création dentrées de cache.",
"Token price for image input.": "Prix par token pour lentrée image.",
"USD price per 1M input tokens.": "Prix en USD par million de tokens dentrée.",
"USD price per 1M tokens.": "Prix en USD par million de tokens.",
"{{count}} selected targets available for bulk copy.": "{{count}} cibles sélectionnées disponibles pour la copie en lot.",
"Base input price only": "Prix dentrée de base uniquement",
"Expression based": "Basé sur une expression",
"Expression pricing": "Tarification par expression",
"Fixed request price": "Prix fixe par requête",
"Includes request rules": "Inclut des règles de requête",
"No base input price": "Aucun prix dentrée de base",
"No models configured. Use Add model to get started.": "Aucun modèle configuré. Utilisez Ajouter un modèle pour commencer.",
"Price summary": "Résumé des prix",
"Select a model to edit pricing": "Sélectionnez un modèle pour modifier sa tarification",
"Tiered pricing": "Tarification par paliers",
"Unset price": "Prix non défini",
"Use the full-width table to scan prices, then select a row to edit it here.": "Parcourez les prix dans le tableau, puis sélectionnez une ligne pour la modifier ici.",
"extras": "suppléments",
"tiers": "paliers"
}
}