feat(pricing): remove DeepL from all user-facing surfaces
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m57s
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m57s
Pricing: 'deepl' removed from plan provider lists and the comparison table row. Landing and pricing copy (13 locales) no longer mention DeepL (65 values cleaned, 39 dead keys deleted: pricing.comparison.deepl, providerTheme.classic.deepl.*). Providers: available-provider responses are filtered so a DeepL entry from the backend can never surface in the engine picker or the services page; DeepL theme entry and static lib/api.ts list entry removed. Admin: DeepL config card, type fields, defaults and fallback-chain mentions removed; stats/chart/status maps and mock data cleaned. Backend adapter untouched — DeepL is invisible app-wide via the UI filter; removing the Python adapter itself is a separate step if wanted. Verified: build exit 0, vitest 9/9, eslint clean on touched files, zero 'deepl' occurrences outside the two intentional UI filters.
This commit is contained in:
@@ -92,7 +92,7 @@ const STATIC_PLANS: Plan[] = [
|
||||
max_pages_per_doc: 50,
|
||||
max_file_size_mb: 10,
|
||||
max_chars_per_month: 500_000,
|
||||
providers: ["google", "deepl"],
|
||||
providers: ["google"],
|
||||
features: [
|
||||
"pricing.plans.starter.feat1",
|
||||
"pricing.plans.starter.feat2",
|
||||
@@ -116,7 +116,7 @@ const STATIC_PLANS: Plan[] = [
|
||||
max_pages_per_doc: 200,
|
||||
max_file_size_mb: 25,
|
||||
max_chars_per_month: 2_000_000,
|
||||
providers: ["google", "deepl", "openrouter"],
|
||||
providers: ["google", "openrouter"],
|
||||
features: [
|
||||
"pricing.plans.pro.feat1",
|
||||
"pricing.plans.pro.feat2",
|
||||
@@ -145,7 +145,7 @@ const STATIC_PLANS: Plan[] = [
|
||||
max_pages_per_doc: 500,
|
||||
max_file_size_mb: 50,
|
||||
max_chars_per_month: 10_000_000,
|
||||
providers: ["google", "deepl", "openrouter", "openrouter_premium", "openai"],
|
||||
providers: ["google", "openrouter", "openrouter_premium", "openai"],
|
||||
features: [
|
||||
"pricing.plans.business.feat1",
|
||||
"pricing.plans.business.feat2",
|
||||
@@ -811,7 +811,6 @@ export default function PricingPage() {
|
||||
{ label: t('pricing.comparison.pagesMaxPerDoc'), vals: plans.slice(0,4).map(p => p.max_pages_per_doc === -1 ? "∞" : String(p.max_pages_per_doc)) },
|
||||
{ label: t('pricing.comparison.maxFileSize'), vals: plans.slice(0,4).map(p => p.max_file_size_mb === -1 ? "∞" : `${p.max_file_size_mb} ${t('pricing.comparison.mb')}`) },
|
||||
{ label: t('pricing.comparison.googleTranslation'), vals: plans.slice(0,4).map(() => true) },
|
||||
{ label: t('pricing.comparison.deepl'), vals: plans.slice(0,4).map(p => p.providers.includes("deepl") || p.providers.includes("all")) },
|
||||
{ label: t('pricing.comparison.aiEssential'), vals: plans.slice(0,4).map(p => p.ai_translation && (p.ai_tier === "essential" || p.ai_tier === "premium" || p.ai_tier === "custom")) },
|
||||
{ label: t('pricing.comparison.aiPremium'), vals: plans.slice(0,4).map(p => p.ai_translation && (p.ai_tier === "premium" || p.ai_tier === "custom")) },
|
||||
{ label: t('pricing.comparison.apiAccess'), vals: plans.slice(0,4).map(p => p.api_access) },
|
||||
|
||||
Reference in New Issue
Block a user