refactor(home): redesign hero section to dual-column layout with compliant copywriting

Redesigns the hero section into a balanced horizontal dual-column layout:
- Left Column: Features title, clean legal-compliant descriptions, CTA buttons with BookOpen Docs link, and enlarged supported apps buttons (Cherry Studio and CC Switch with lobe icons)
- Right Column: Smoothly integrates the terminal API demo with top horizontal alignment
- i18n: Configures compliance translations for en, zh, fr, ja, ru, and vi locales
This commit is contained in:
CaIon
2026-05-25 23:11:05 +08:00
parent 1288028181
commit 51ca897cf4
8 changed files with 305 additions and 126 deletions
+18 -11
View File
@@ -107,6 +107,7 @@
"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.",
"Access a vast selection of models via a standard, unified API protocol. Power AI applications, manage digital assets, and connect the Future.": "Accédez à une vaste sélection de modèles via un protocole API standard et unifié. Propulsez les applications d'IA, gérez les actifs numériques et connectez le futur.",
"Access Denied Message": "Message d'accès refusé",
"Access Forbidden": "Accès interdit",
"Access Policy (JSON)": "Politique d'accès (JSON)",
@@ -201,8 +202,8 @@
"Additional Limit": "Limite supplémentaire",
"Additional Limits": "Limites supplémentaires",
"Additional metered capability": "Fonctionnalité supplémentaire facturée à lusage",
"Adjust Quota": "Ajuster le quota",
"Adjust filters, then search to refresh the logs.": "Ajustez les filtres, puis lancez la recherche pour actualiser les journaux.",
"Adjust Quota": "Ajuster le quota",
"Adjust response formatting, prompt behavior, proxy, and upstream automation.": "Ajustez le formatage des réponses, le comportement des prompts, le proxy et lautomatisation amont.",
"Adjust the appearance and layout to suit your preferences.": "Ajustez l'apparence et la mise en page selon vos préférences.",
"Admin": "Administrateur",
@@ -236,6 +237,7 @@
"aggregates 50+ AI providers behind one unified API. Manage access, track costs, and scale effortlessly.": "agrège plus de 50 fournisseurs IA derrière une API unifiée. Gérez l'accès, suivez les coûts et évoluez sans effort.",
"Aggregation bucket": "Fenêtre dagrégation",
"AGPL v3.0 License": "Licence AGPL v3.0",
"AI Application Infrastructure Foundation": "Socle d'infrastructure pour applications d'IA",
"AI model testing environment": "Environnement de test de modèle IA",
"AI models": "Modèles d'IA",
"AI models supported": "Modèles d'IA pris en charge",
@@ -263,7 +265,6 @@
"All Types": "Tous les types",
"All upstream data is trusted": "Toutes les données en amont sont fiables",
"All Vendors": "Tous les fournisseurs",
"All Your AI Models": "Tous vos modèles IA",
"All-time": "Tous temps",
"Allocated Memory": "Mémoire allouée",
"Allow accountFilter parameter": "Autoriser le paramètre accountFilter",
@@ -424,6 +425,11 @@
"Audio Tokens": "Jetons audio",
"Auth configured": "Authentification configurée",
"Auth Style": "Style d'authentification",
"auth.resetPasswordConfirm.backToLogin": "Retour à la connexion",
"auth.resetPasswordConfirm.confirm": "Confirmer la réinitialisation du mot de passe",
"auth.resetPasswordConfirm.description": "Confirmez la demande de réinitialisation pour générer un nouveau mot de passe.",
"auth.resetPasswordConfirm.retry": "Réessayer ({{seconds}}s)",
"auth.resetPasswordConfirm.success": "Votre mot de passe a été réinitialisé avec succès",
"Authentication": "Authentification",
"Authenticator code": "Code d'authentification",
"Authorization Endpoint": "Point de terminaison d'autorisation",
@@ -671,6 +677,7 @@
"Check for updates": "Vérifier les mises à jour",
"Check in daily to receive random quota rewards": "Connectez-vous quotidiennement pour recevoir des récompenses de quota aléatoires",
"Check in now": "Se connecter maintenant",
"Check out the Quick Start": "Consultez le démarrage rapide",
"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",
@@ -867,8 +874,6 @@
"Confirm New Password": "Confirmer le nouveau mot de passe",
"Confirm password": "Confirmer le mot de passe",
"Confirm Payment": "Confirmer le paiement",
"auth.resetPasswordConfirm.confirm": "Confirmer la réinitialisation du mot de passe",
"auth.resetPasswordConfirm.description": "Confirmez la demande de réinitialisation pour générer un nouveau mot de passe.",
"Confirm Selection": "Confirmer la sélection",
"Confirm settings and finish setup": "Confirmez les paramètres et terminez la configuration",
"confirm that I bear legal responsibility arising from deployment": "confirme assumer la responsabilité juridique découlant du déploiement",
@@ -999,6 +1004,7 @@
"Create, revoke, and audit API tokens.": "Créer, révoquer et auditer les jetons API.",
"Created": "Créé",
"Created At": "Créé le",
"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.": "Crée un produit Pancake dans la boutique enregistrée avec le titre et le prix de ce forfait. Waffo Pancake doit dabord être entièrement configuré dans les paramètres de paiement.",
"Creating...": "Création...",
"Creation failed": "Échec de la création",
"Credential generated": "Identifiant généré",
@@ -1757,7 +1763,7 @@
"footer.columns.related.links.oneApi": "One API",
"footer.columns.related.title": "Projets liés",
"footer.defaultCopyright": "Tous droits réservés.",
"footer.new\u0061pi.projectAttributionSuffix": "Tous droits réservés. Conçu et développé par les contributeurs du projet.",
"footer.newapi.projectAttributionSuffix": "Tous droits réservés. Conçu et développé par les contributeurs du projet.",
"For channels added after May 10, 2025, no need to remove \".\" from model names during deployment": "Pour les canaux ajoutés après le 10 mai 2025, pas besoin de supprimer \".\" des noms de modèles lors du déploiement",
"For private deployments, format: https://fastgpt.run/api/openapi": "Pour les déploiements privés, format : https://fastgpt.run/api/openapi",
"Force a syntactically valid JSON response": "Imposer une réponse JSON syntaxiquement valide",
@@ -2293,7 +2299,6 @@
"Minimum:": "Minimum :",
"Minor blips in the last 30 days": "Légères perturbations sur les 30 derniers jours",
"Mint a fresh pair below — or pick an existing one further down. Click Save when ready.": "Créez une nouvelle paire ci-dessous, ou choisissez une paire existante plus bas. Cliquez sur Enregistrer lorsque vous êtes prêt.",
"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.": "Crée un produit Pancake dans la boutique enregistrée avec le titre et le prix de ce forfait. Waffo Pancake doit dabord être entièrement configuré dans les paramètres de paiement.",
"Minute": "Minute",
"minutes": "minutes",
"Missing code": "Code manquant",
@@ -2333,8 +2338,8 @@
"Model not found": "Modèle introuvable",
"Model performance metrics": "Indicateurs de performance des modèles",
"Model Price": "Prix du modèle",
"Model Price Not Configured": "Prix du modèle non configuré",
"Model price is not configured. Please complete model pricing in settings.": "Le prix du modèle n'est pas configuré. Veuillez compléter la tarification du modèle dans les paramètres.",
"Model Price Not Configured": "Prix du modèle non configuré",
"Model prices": "Prix des modèles",
"Model prices reset successfully": "Prix des modèles réinitialisés avec succès",
"Model Pricing": "Tarification des modèles",
@@ -2385,6 +2390,7 @@
"months": "mois",
"Moonshot": "Moonshot",
"More": "Plus",
"More Apps": "Plus",
"more mapping": "plus de mappage",
"More templates...": "Autres modèles…",
"More than 999 days left": "Plus de 999 jours restants",
@@ -2446,6 +2452,7 @@
"Network proxy for this channel (supports socks5 protocol)": "Proxy réseau pour ce canal (supporte le protocole socks5)",
"Never": "Jamais",
"Never expires": "N'expire jamais",
"Never used an API Gateway?": "Vous n'avez jamais utilisé de passerelle API ?",
"NEW": "NOUVEAU",
"New API": "New API",
"New API <noreply@example.com>": "New API <noreply@example.com>",
@@ -3329,7 +3336,6 @@
"Retain last N files": "Conserver les N derniers fichiers",
"Retention days": "Jours de rétention",
"Retry": "Réessayer",
"auth.resetPasswordConfirm.retry": "Réessayer ({{seconds}}s)",
"Retry Chain": "Chaîne de tentatives",
"Retry Suggestion": "Suggestion de relance",
"Retry Times": "Nombre de tentatives",
@@ -3339,7 +3345,6 @@
"Return Error": "Retourner l'erreur",
"Return per-token log probabilities": "Retourner les log-probabilités par jeton",
"Return to dashboard": "Retour au tableau de bord",
"auth.resetPasswordConfirm.backToLogin": "Retour à la connexion",
"Return vector embeddings for inputs": "Renvoyer des embeddings vectoriels pour les entrées",
"Reveal API key": "Afficher la clé API",
"Reveal key": "Révéler la clé",
@@ -3491,7 +3496,6 @@
"Select all (filtered)": "Tout sélectionner (filtré)",
"Select all models": "Sélectionner tous les modèles",
"Select All Visible": "Sélectionner tout ce qui est visible",
"Select model {{model}}": "Sélectionner le modèle {{model}}",
"Select an operation mode and enter the amount": "Sélectionnez un mode d'opération et entrez le montant",
"Select announcement type": "Sélectionner le type d'annonce",
"Select at least one field to overwrite.": "Sélectionnez au moins un champ à écraser.",
@@ -3518,6 +3522,7 @@
"Select layout style": "Sélectionner le style de mise en page",
"Select locations": "Sélectionner des emplacements",
"Select Model": "Sélectionner le modèle",
"Select model {{model}}": "Sélectionner le modèle {{model}}",
"Select models (empty for allow all)": "Sélectionner les modèles (vide pour autoriser tout)",
"Select models and apply to channel models list.": "Sélectionnez les modèles et appliquez-les à la liste des modèles de canaux.",
"Select models or add custom ones": "Sélectionner des modèles ou en ajouter des personnalisés",
@@ -3753,12 +3758,14 @@
"Sunset Glow": "Lueur du couchant",
"Super Admin": "Super Administrateur",
"Support for high concurrency with automatic load balancing": "Prise en charge de la haute concurrence avec équilibrage de charge automatique",
"Supported Applications": "Applications prises en charge",
"Supported Imagine Models": "Modèles Imagine pris en charge",
"Supported modalities": "Modalités prises en charge",
"Supported parameters": "Paramètres pris en charge",
"Supported variables": "Variables supportées",
"Supports `-thinking`, `-thinking-": "Prend en charge `-thinking`, `-thinking-",
"Supports HTML markup or iframe embedding. Enter HTML code directly, or provide a complete URL to automatically embed it as an iframe.": "Prend en charge le balisage HTML ou l'intégration d'iframe. Entrez le code HTML directement, ou fournissez une URL complète pour l'intégrer automatiquement en tant qu'iframe.",
"Supports one-click configuration and perfectly adapts to NewAPI multi-protocol configuration.": "Prend en charge la configuration en un clic et s'adapte parfaitement à la configuration multi-protocole NewAPI.",
"Supports PNG, JPG, SVG, or WebP. Recommended size: 128×128 or smaller.": "Prend en charge PNG, JPG, SVG ou WebP. Taille recommandée : 128×128 ou moins.",
"Sustained tokens per second": "Jetons par seconde soutenus",
"Swap Face": "Échanger le visage",
@@ -4280,6 +4287,7 @@
"Vary": "Varier",
"Vary (Strong)": "Varier (fort)",
"Vary (Subtle)": "Varier (subtil)",
"Vast Range of AI Models": "Vaste gamme de modèles d'IA",
"Vendor": "Fournisseur",
"Vendor deleted successfully": "Fournisseur supprimé avec succès",
"Vendor Name *": "Nom du fournisseur *",
@@ -4466,7 +4474,6 @@
"Your GitHub OAuth Client ID": "Votre ID Client OAuth GitHub",
"Your GitHub OAuth Client Secret": "Votre Secret Client OAuth GitHub",
"Your new backup codes are ready": "Vos nouveaux codes de secours sont prêts",
"auth.resetPasswordConfirm.success": "Votre mot de passe a été réinitialisé avec succès",
"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.",