docs: remove remaining Claude 3.5 references and display page credit costs in translation provider selector
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m11s

This commit is contained in:
2026-06-14 11:41:47 +02:00
parent c7506e6aca
commit 9b0b2ae6f9
3 changed files with 9 additions and 5 deletions

View File

@@ -56,7 +56,7 @@ const LLM_THEMES: Record<string, CardTheme> = {
subBadge: 'Maximum Context', subBadge: 'Maximum Context',
accentClass: 'border-rose-500/30 text-rose-600 dark:text-rose-400 bg-rose-500/5', accentClass: 'border-rose-500/30 text-rose-600 dark:text-rose-400 bg-rose-500/5',
glowClass: 'from-rose-500/10 dark:from-rose-500/5 to-transparent', glowClass: 'from-rose-500/10 dark:from-rose-500/5 to-transparent',
descriptionOverride: 'Traduction assistée par les modèles de pointe (GPT-4o, Claude 3.5 Sonnet) pour documents longs.' descriptionOverride: 'Traduction assistée par les modèles de pointe (GPT-4o, Claude Sonnet 4.6) pour documents longs.'
}, },
zai: { zai: {
badge: 'Spécialisée', badge: 'Spécialisée',
@@ -278,6 +278,7 @@ export function ProviderSelector({
<p className="text-[10px] text-brand-dark/60 dark:text-white/60 leading-normal font-light"> <p className="text-[10px] text-brand-dark/60 dark:text-white/60 leading-normal font-light">
<span className="font-bold text-brand-dark dark:text-white">{meta?.labelOverride || activeP.label} : </span> <span className="font-bold text-brand-dark dark:text-white">{meta?.labelOverride || activeP.label} : </span>
{meta?.descriptionOverride || activeP.description} {meta?.descriptionOverride || activeP.description}
<span className="block mt-1 font-bold text-brand-accent">Coût : 1 crédit par page</span>
</p> </p>
) : null; ) : null;
})() })()
@@ -289,6 +290,9 @@ export function ProviderSelector({
<p className="text-[10px] text-brand-dark/60 dark:text-white/60 leading-normal font-light"> <p className="text-[10px] text-brand-dark/60 dark:text-white/60 leading-normal font-light">
<span className="font-bold text-brand-dark dark:text-white">{activeP.label} : </span> <span className="font-bold text-brand-dark dark:text-white">{activeP.label} : </span>
{theme.descriptionOverride} <span className="opacity-50 text-[9px] font-mono">({activeP.model || 'default'})</span> {theme.descriptionOverride} <span className="opacity-50 text-[9px] font-mono">({activeP.model || 'default'})</span>
<span className="block mt-1 font-bold text-brand-accent">
Coût : {activeP.id === 'openrouter_premium' ? '5 crédits par page (Facteur Premium)' : '1 crédit par page'}
</span>
</p> </p>
) : null; ) : null;
})() })()

View File

@@ -878,11 +878,11 @@ export default function PricingPage() {
<Badge className="ml-auto text-xs bg-accent/10 text-accent border-accent/30">{t('pricing.aiModels.premium.plan')}</Badge> <Badge className="ml-auto text-xs bg-accent/10 text-accent border-accent/30">{t('pricing.aiModels.premium.plan')}</Badge>
</div> </div>
<div className="text-sm text-muted-foreground mb-3"> <div className="text-sm text-muted-foreground mb-3">
{t('pricing.aiModels.premium.descPrefix')} <strong className="text-foreground">Claude 3.5 Haiku</strong> {t('pricing.aiModels.premium.descSuffix')} {t('pricing.aiModels.premium.descPrefix')} <strong className="text-foreground">Claude Sonnet 4.6</strong> {t('pricing.aiModels.premium.descSuffix')}
</div> </div>
<div className="flex flex-wrap gap-2 text-xs"> <div className="flex flex-wrap gap-2 text-xs">
<span className="px-2 py-1 bg-muted rounded">{t('pricing.aiModels.premium.context')}</span> <span className="px-2 py-1 bg-muted rounded">{t('pricing.aiModels.premium.context')}</span>
<span className="px-2 py-1 bg-muted rounded">$0.25/$1.25 per 1M</span> <span className="px-2 py-1 bg-muted rounded">$3.00/$15.00 per 1M</span>
<span className="px-2 py-1 bg-accent/10 text-accent rounded">{t('pricing.aiModels.premium.precision')}</span> <span className="px-2 py-1 bg-accent/10 text-accent rounded">{t('pricing.aiModels.premium.precision')}</span>
</div> </div>
</div> </div>

View File

@@ -611,7 +611,7 @@ const messages: Record<Locale, Record<string, string>> = {
"pricing.faq.q2": "What is \"Essential AI Translation\"?", "pricing.faq.q2": "What is \"Essential AI Translation\"?",
"pricing.faq.a2": "It's our AI engine. It understands your documents' context, preserves layout and handles technical terms much better than classic translation.", "pricing.faq.a2": "It's our AI engine. It understands your documents' context, preserves layout and handles technical terms much better than classic translation.",
"pricing.faq.q3": "What's the difference between Essential and Premium AI?", "pricing.faq.q3": "What's the difference between Essential and Premium AI?",
"pricing.faq.a3": "Essential AI uses an optimized model (excellent value for money). Premium AI uses Anthropic's Claude 3.5 Haiku, more accurate on legal, medical and complex technical documents.", "pricing.faq.a3": "Essential AI uses an optimized model (excellent value for money). Premium AI uses Anthropic's Claude Sonnet 4.6, more accurate on legal, medical and complex technical documents.",
"pricing.faq.q4": "Are my documents kept after translation?", "pricing.faq.q4": "Are my documents kept after translation?",
"pricing.faq.a4": "Translated files are available according to your plan (30 days Starter, 90 days Pro, 1 year Business). They are encrypted at rest and in transit.", "pricing.faq.a4": "Translated files are available according to your plan (30 days Starter, 90 days Pro, 1 year Business). They are encrypted at rest and in transit.",
"pricing.faq.q5": "What happens if I exceed my monthly quota?", "pricing.faq.q5": "What happens if I exceed my monthly quota?",
@@ -1599,7 +1599,7 @@ const messages: Record<Locale, Record<string, string>> = {
"pricing.faq.q2": "Qu'est-ce que la « Traduction IA Essentielle » ?", "pricing.faq.q2": "Qu'est-ce que la « Traduction IA Essentielle » ?",
"pricing.faq.a2": "C'est notre moteur IA. Il comprend le contexte de vos documents, préserve la mise en page et gère les termes techniques bien mieux qu'une traduction classique.", "pricing.faq.a2": "C'est notre moteur IA. Il comprend le contexte de vos documents, préserve la mise en page et gère les termes techniques bien mieux qu'une traduction classique.",
"pricing.faq.q3": "Quelle est la différence entre IA Essentielle et IA Premium ?", "pricing.faq.q3": "Quelle est la différence entre IA Essentielle et IA Premium ?",
"pricing.faq.a3": "L'IA Essentielle utilise un modèle optimisé (excellent rapport qualité/prix). L'IA Premium utilise Claude 3.5 Haiku d'Anthropic, plus précis sur les documents juridiques, médicaux et techniques complexes.", "pricing.faq.a3": "L'IA Essentielle utilise un modèle optimisé (excellent rapport qualité/prix). L'IA Premium utilise Claude Sonnet 4.6 d'Anthropic, plus précis sur les documents juridiques, médicaux et techniques complexes.",
"pricing.faq.q4": "Mes documents sont-ils conservés après traduction ?", "pricing.faq.q4": "Mes documents sont-ils conservés après traduction ?",
"pricing.faq.a4": "Les fichiers traduits sont disponibles selon votre forfait (30 jours Starter, 90 jours Pro, 1 an Business). Ils sont chiffrés au repos et en transit.", "pricing.faq.a4": "Les fichiers traduits sont disponibles selon votre forfait (30 jours Starter, 90 jours Pro, 1 an Business). Ils sont chiffrés au repos et en transit.",
"pricing.faq.q5": "Que se passe-t-il si je dépasse mon quota mensuel ?", "pricing.faq.q5": "Que se passe-t-il si je dépasse mon quota mensuel ?",