Files
lobehub/locales/fr-FR/file.json
YuTengjing db45907ab8 feat: add GPT-5.4 model support (#12744)
*  feat: add GPT-5.4 model support and fix reasoning payload pruning

- Add GPT-5.4 model card to model-bank
- Update planCardModels to use gpt-5.4
- Add gpt-5.4 to responsesAPIModels
- Fix pruneReasoningPayload to strip logprobs/top_logprobs for reasoning models
- Add logprobs, top_logprobs to ChatStreamPayload type
- Extend reasoning_effort to include none and xhigh
- Add success log for non-fallback requests in RouterRuntime
- Fix log parameter mismatch in RouterRuntime

Fixes LOBE-5735

* 🐛 fix: match gpt-5.4 to gpt5_2ReasoningEffort in openrouter and vercelaigateway

* 🐛 fix: update OpenRouterReasoning effort type to include none and xhigh

* 🐛 fix: use tiered pricing for gpt-5.4 based on 272K token threshold

* 🌐 chore: update i18n translations

* 🐛 fix: update claude-sonnet model version to 4-6 in planCardModels

*  feat: add GPT-5.4 Pro model support

* 🐛 fix: remove dated snapshot for gpt-5.4-pro in responsesAPIModels

* 🐛 fix: add tierBy support for cross-unit tiered pricing threshold

OpenAI charges output at 1.5x when INPUT exceeds 272K tokens.
The tiered strategy previously only checked the unit's own quantity
to select a tier. Added optional tierBy field to TieredPricingUnit
so output/cacheRead tiers can reference input quantity for selection.

* 🐛 fix: use totalInputTokens for tiered pricing tier selection

Tiered pricing tiers should be determined by total prompt size
(totalInputTokens), not each unit's own quantity. This fixes output
and cacheRead being charged at the wrong tier rate when the prompt
exceeds the threshold but the individual unit quantity does not.
2026-03-06 13:47:31 +08:00

148 lines
9.2 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"addFolder": "Créer un dossier",
"addLibrary": "Ajouter",
"addPage": "Créer une page",
"detail.basic.createdAt": "Date de création",
"detail.basic.filename": "Nom du fichier",
"detail.basic.size": "Taille du fichier",
"detail.basic.title": "Informations de base",
"detail.basic.type": "Format",
"detail.basic.updatedAt": "Date de mise à jour",
"detail.data.chunkCount": "Segments",
"detail.data.embedding.default": "Non vectorisé",
"detail.data.embedding.error": "Échec",
"detail.data.embedding.pending": "En attente de démarrage",
"detail.data.embedding.processing": "En cours",
"detail.data.embedding.success": "Terminé",
"detail.data.embeddingStatus": "vectorisation",
"detail.data.noChunk": "Aucun fragment",
"empty": "Aucun fichier ou dossier na encore été importé.",
"header.actions.builtInBlockList.filtered": "{{ignored}} fichiers filtrés (sur {{total}} au total)",
"header.actions.connect": "Se connecter...",
"header.actions.createFolderError": "Échec de la création du dossier",
"header.actions.creatingFolder": "Création du dossier...",
"header.actions.deleteLibrary": "Supprimer la bibliothèque",
"header.actions.gitignore.apply": "Appliquer les règles",
"header.actions.gitignore.cancel": "Ignorer les règles",
"header.actions.gitignore.content": "Fichier .gitignore détecté ({{count}} fichiers au total). Souhaitez-vous appliquer les règles dexclusion ?",
"header.actions.gitignore.filtered": "{{ignored}} fichiers filtrés ({{total}} fichiers au total)",
"header.actions.gitignore.title": ".gitignore détecté",
"header.actions.newFolder": "Nouveau dossier",
"header.actions.newPage": "Nouvelle page",
"header.actions.notion.error": "Échec de limportation des fichiers Notion",
"header.actions.notion.foundFiles": "{{count}} fichiers trouvés",
"header.actions.notion.importing": "Importation du contenu Notion...",
"header.actions.notion.noMarkdownFiles": "Aucun fichier Markdown trouvé dans larchive ZIP",
"header.actions.notion.partial": "{{success}} fichiers importés avec succès, {{failed}} échecs",
"header.actions.notion.success": "{{count}} fichiers importés avec succès",
"header.actions.notionGuide.cancel": "Plus tard",
"header.actions.notionGuide.desc": "Commencez par exporter votre contenu depuis Notion au format Markdown (ZIP). Cliquez ensuite sur Continuer pour sélectionner le fichier ZIP et importer toutes les pages.",
"header.actions.notionGuide.ok": "Sélectionner le ZIP Notion",
"header.actions.notionGuide.title": "Importer depuis Notion",
"header.actions.uploadFile": "Importer un fichier",
"header.actions.uploadFolder": "Importer un dossier",
"header.actions.uploadFolder.creatingFolders": "Création de la structure des dossiers...",
"header.newPageButton": "Nouvelle page",
"header.uploadButton": "Importer",
"home.getStarted": "Commencer",
"home.greeting": "Commencer",
"home.quickActions": "Actions rapides",
"home.recentFiles": "Fichiers récents",
"home.recentPages": "Pages récentes",
"home.uploadEntries.files.title": "Importer des fichiers",
"home.uploadEntries.folder.title": "Importer un dossier",
"home.uploadEntries.library.title": "Créer une nouvelle bibliothèque",
"home.uploadEntries.newPage.title": "Nouvelle page",
"library.list.confirmRemoveLibrary": "Vous êtes sur le point de supprimer cette bibliothèque. Les fichiers quelle contient ne seront pas supprimés mais déplacés vers Tous les fichiers. Cette action est irréversible, veuillez procéder avec prudence.",
"library.list.empty": "Cliquez sur <1>+</1> pour créer une nouvelle bibliothèque",
"library.new": "Nouvelle bibliothèque",
"library.title": "Bibliothèque",
"loadMore": "Charger plus",
"menu.allFiles": "Tous les fichiers",
"menu.allPages": "Toutes les pages",
"networkError": "Échec de la récupération des bibliothèques. Veuillez vérifier votre connexion réseau et réessayer.",
"notSupportGuide.desc": "Le mode de déploiement actuel ne prend pas en charge la gestion des fichiers. Passez en <1>mode de déploiement avec base de données serveur</1>, ou utilisez <3>LobeHub Cloud</3>.",
"notSupportGuide.features.allKind.desc": "Prend en charge les types de fichiers courants, y compris les formats de page comme Word, PPT, Excel, PDF, TXT, ainsi que les fichiers de code populaires comme JS et Python.",
"notSupportGuide.features.allKind.title": "Prise en charge de plusieurs types de fichiers",
"notSupportGuide.features.embeddings.desc": "Utilise des modèles vectoriels haute performance pour vectoriser les segments de texte, permettant une recherche sémantique du contenu.",
"notSupportGuide.features.embeddings.title": "Sémantique vectorielle",
"notSupportGuide.features.libraries.desc": "Créez des bibliothèques et ajoutez-y des fichiers pour constituer votre propre collection.",
"notSupportGuide.features.libraries.title": "Bibliothèque",
"notSupportGuide.title": "Le mode de déploiement actuel ne prend pas en charge la gestion des fichiers",
"pageEditor.addIcon": "Ajouter une icône",
"pageEditor.autoSaveMessage": "Votre page est enregistrée automatiquement. Aucun enregistrement manuel nécessaire.",
"pageEditor.chooseIcon": "Choisir une icône",
"pageEditor.deleteConfirm.content": "Cette page sera supprimée de façon définitive. Veuillez confirmer.",
"pageEditor.deleteConfirm.title": "Supprimer la page",
"pageEditor.deleteError": "Échec de la suppression de la page",
"pageEditor.deleteSuccess": "Page supprimée avec succès",
"pageEditor.duplicateError": "Échec de la duplication de la page",
"pageEditor.duplicateSuccess": "Page dupliquée avec succès",
"pageEditor.editedAt": "Dernière modification le {{time}}",
"pageEditor.editedBy": "Dernière modification par {{name}}",
"pageEditor.editorPlaceholder": "Commencez à écrire votre page. Appuyez sur / pour ouvrir le menu de commandes",
"pageEditor.empty.createNewDocument": "Créer une nouvelle page",
"pageEditor.empty.importNotion": "Importer depuis Notion",
"pageEditor.empty.title": "Sélectionnez une page pour commencer",
"pageEditor.empty.uploadFiles": "Importer des fichiers",
"pageEditor.exportActions.openFile": "Ouvrir",
"pageEditor.exportActions.showInFolder": "Afficher dans le dossier",
"pageEditor.exportDialogTitle": "Exporter la page",
"pageEditor.exportError": "Échec de lexportation de la page",
"pageEditor.exportSuccess": "Page exportée avec succès",
"pageEditor.linkCopied": "Lien copié",
"pageEditor.menu.copyLink": "Copier le lien",
"pageEditor.menu.export": "Exporter",
"pageEditor.menu.export.markdown": "Markdown",
"pageEditor.menu.exportDocument": "Exporter la page",
"pageEditor.menu.importDocument": "Importer une page",
"pageEditor.menu.pin": "Épingler la page",
"pageEditor.saving": "Enregistrement...",
"pageEditor.titlePlaceholder": "Sans titre",
"pageEditor.wordCount": "{{wordCount}} mots",
"pageList.actions.openInNewTab": "Ouvrir dans un nouvel onglet",
"pageList.copyContent": "Copier le texte complet",
"pageList.duplicate": "Dupliquer",
"pageList.empty": "Aucune page pour le moment. Cliquez sur le bouton ci-dessus pour en créer une.",
"pageList.filter.all": "Toutes",
"pageList.filter.onlyInPages": "Uniquement dans les pages",
"pageList.noResults": "Aucune page correspondante trouvée",
"pageList.pageCount": "{{count}} pages au total",
"pageList.pageSizeItem": "{{count}} éléments",
"pageList.title": "Pages",
"pageList.untitled": "Sans titre",
"portal.openInPageEditor": "Modifier dans la page",
"preview.downloadFile": "Télécharger le fichier",
"preview.unsupportedFileAndContact": "Ce format de fichier nest pas encore pris en charge pour laperçu en ligne. Si vous souhaitez en faire la demande, nhésitez pas à <1>nous contacter</1>.",
"resource": "Ressource",
"searchFilePlaceholder": "Rechercher des fichiers",
"searchPagePlaceholder": "Rechercher des pages",
"tab.all": "Tous",
"tab.audios": "Audios",
"tab.documents": "Documents",
"tab.home": "Accueil",
"tab.images": "Images",
"tab.moreTypes": "Autres types",
"tab.pages": "Pages",
"tab.videos": "Vidéos",
"tab.websites": "Sites web",
"title": "Ressources",
"toggleLeftPanel": "Afficher/Masquer le panneau gauche",
"uploadDock.body.collapse": "Réduire",
"uploadDock.body.item.cancel": "Annuler",
"uploadDock.body.item.cancelled": "Annulé",
"uploadDock.body.item.done": "Importé",
"uploadDock.body.item.error": "Échec de limportation, veuillez réessayer",
"uploadDock.body.item.pending": "Préparation à limportation...",
"uploadDock.body.item.processing": "Traitement du fichier...",
"uploadDock.body.item.restTime": "Temps restant : {{time}}",
"uploadDock.fileQueueInfo": "Importation des {{count}} premiers fichiers, {{remaining}} en attente",
"uploadDock.totalCount": "Total : {{count}} éléments",
"uploadDock.uploadStatus.cancelled": "Téléversement annulé",
"uploadDock.uploadStatus.error": "Erreur dimportation",
"uploadDock.uploadStatus.pending": "En attente dimportation",
"uploadDock.uploadStatus.processing": "Importation en cours",
"uploadDock.uploadStatus.success": "Importation terminée",
"uploadDock.uploadStatus.uploading": "Importation en cours"
}