feat: rewrite all dashboard views with editorial design
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m29s
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 1m29s
Translate page: editorial dropzone (rounded-[40px]), config panel, progress stepper, download button, Momento promo banner. Profile page: pill tabs, dark subscription card, usage bars, language grid. Context page: preset grid (rounded-[32px]), instruction/glossary textareas. API keys page: editorial-card with production key display. Glossaries page: editorial-card grid with hover lift. Pricing page: 5-column grid, colored headers, plan badges. All pages use editorial design system: accent-pill, editorial-card, premium-button, brand colors, dark mode support. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -154,6 +154,12 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.pricing.business.f5": "Webhooks & automation",
|
||||
"landing.pricing.business.f6": "5 team seats",
|
||||
"landing.pricing.business.cta": "Contact Us",
|
||||
"landing.pricing.free.name": "Free",
|
||||
"landing.pricing.free.desc": "Perfect to discover the app",
|
||||
"landing.pricing.free.cta": "Choose this plan",
|
||||
"landing.pricing.enterprise.name": "Enterprise",
|
||||
"landing.pricing.enterprise.desc": "Custom solutions for large organizations",
|
||||
"landing.pricing.enterprise.cta": "Contact us",
|
||||
"landing.cta.title": "Start translating in 30 seconds",
|
||||
"landing.cta.subtitle": "No credit card required. Try for free now and bring your multilingual documents back to life.",
|
||||
"landing.cta.button": "Create Free Account",
|
||||
@@ -746,6 +752,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "Live Analysis",
|
||||
"landing.hero.termsDetected": "terms detected",
|
||||
"landing.steps.process": "PROCESS",
|
||||
"landing.translate.newProject": "New Project",
|
||||
"landing.translate.title": "Translate a document",
|
||||
"landing.translate.subtitle": "Import a file and choose the target language",
|
||||
"landing.translate.sourceDocument": "Source Document",
|
||||
"landing.translate.configuration": "Configuration",
|
||||
"landing.translate.sourceLang": "Source Language",
|
||||
"landing.translate.targetLang": "Target Language",
|
||||
"landing.translate.provider": "Provider",
|
||||
"landing.translate.startTranslation": "Start Translation",
|
||||
"landing.translate.zeroRetention": "Zero retention",
|
||||
"landing.translate.filesDeleted": "Files deleted after processing",
|
||||
"landing.translate.dropHere": "Drag & drop here",
|
||||
"landing.translate.supportedFormats": "DOCX, XLSX, PPTX or PDF files supported",
|
||||
"landing.translate.aiAnalysis": "Active AI Analysis",
|
||||
"landing.translate.processing": "Processing",
|
||||
"landing.translate.preservingLayout": "Your layout is being preserved",
|
||||
},
|
||||
|
||||
fr: {
|
||||
@@ -1483,6 +1505,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "Analyse en direct",
|
||||
"landing.hero.termsDetected": "termes détectés",
|
||||
"landing.steps.process": "PROCESSUS",
|
||||
"landing.translate.newProject": "Nouveau projet",
|
||||
"landing.translate.title": "Traduire un document",
|
||||
"landing.translate.subtitle": "Importez un fichier et choisissez la langue cible",
|
||||
"landing.translate.sourceDocument": "Document source",
|
||||
"landing.translate.configuration": "Configuration",
|
||||
"landing.translate.sourceLang": "Langue source",
|
||||
"landing.translate.targetLang": "Langue cible",
|
||||
"landing.translate.provider": "Fournisseur",
|
||||
"landing.translate.startTranslation": "Lancer la traduction",
|
||||
"landing.translate.zeroRetention": "Rétention zéro",
|
||||
"landing.translate.filesDeleted": "Fichiers supprimés après traitement",
|
||||
"landing.translate.dropHere": "Glissez-déposez ici",
|
||||
"landing.translate.supportedFormats": "Fichiers DOCX, XLSX, PPTX ou PDF supportés",
|
||||
"landing.translate.aiAnalysis": "Analyse IA Active",
|
||||
"landing.translate.processing": "Traitement en cours",
|
||||
"landing.translate.preservingLayout": "Votre mise en page est en cours de préservation",
|
||||
},
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// SPANISH (es)
|
||||
@@ -2164,6 +2202,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "Análisis en vivo",
|
||||
"landing.hero.termsDetected": "términos detectados",
|
||||
"landing.steps.process": "PROCESO",
|
||||
"landing.translate.newProject": "Nuevo proyecto",
|
||||
"landing.translate.title": "Traducir un documento",
|
||||
"landing.translate.subtitle": "Importa un archivo y elige el idioma de destino",
|
||||
"landing.translate.sourceDocument": "Documento fuente",
|
||||
"landing.translate.configuration": "Configuración",
|
||||
"landing.translate.sourceLang": "Idioma de origen",
|
||||
"landing.translate.targetLang": "Idioma de destino",
|
||||
"landing.translate.provider": "Proveedor",
|
||||
"landing.translate.startTranslation": "Iniciar traducción",
|
||||
"landing.translate.zeroRetention": "Retención cero",
|
||||
"landing.translate.filesDeleted": "Archivos eliminados tras el procesamiento",
|
||||
"landing.translate.dropHere": "Arrastra y suelta aquí",
|
||||
"landing.translate.supportedFormats": "Archivos DOCX, XLSX, PPTX o PDF compatibles",
|
||||
"landing.translate.aiAnalysis": "Análisis IA Activo",
|
||||
"landing.translate.processing": "Procesando",
|
||||
"landing.translate.preservingLayout": "Tu diseño se está preservando",
|
||||
},
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// GERMAN (de)
|
||||
@@ -2845,6 +2899,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "Live-Analyse",
|
||||
"landing.hero.termsDetected": "Begriffe erkannt",
|
||||
"landing.steps.process": "PROZESS",
|
||||
"landing.translate.newProject": "Neues Projekt",
|
||||
"landing.translate.title": "Dokument übersetzen",
|
||||
"landing.translate.subtitle": "Datei importieren und Zielsprache wählen",
|
||||
"landing.translate.sourceDocument": "Quelldokument",
|
||||
"landing.translate.configuration": "Konfiguration",
|
||||
"landing.translate.sourceLang": "Quellsprache",
|
||||
"landing.translate.targetLang": "Zielsprache",
|
||||
"landing.translate.provider": "Anbieter",
|
||||
"landing.translate.startTranslation": "Übersetzung starten",
|
||||
"landing.translate.zeroRetention": "Keine Speicherung",
|
||||
"landing.translate.filesDeleted": "Dateien nach Verarbeitung gelöscht",
|
||||
"landing.translate.dropHere": "Hier ablegen",
|
||||
"landing.translate.supportedFormats": "DOCX, XLSX, PPTX oder PDF Dateien unterstützt",
|
||||
"landing.translate.aiAnalysis": "KI-Analyse aktiv",
|
||||
"landing.translate.processing": "Verarbeitung läuft",
|
||||
"landing.translate.preservingLayout": "Ihr Layout wird beibehalten",
|
||||
},
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// PORTUGUESE – BRAZILIAN (pt)
|
||||
@@ -3526,6 +3596,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "Análise em tempo real",
|
||||
"landing.hero.termsDetected": "termos detectados",
|
||||
"landing.steps.process": "PROCESSO",
|
||||
"landing.translate.newProject": "Novo projeto",
|
||||
"landing.translate.title": "Traduzir um documento",
|
||||
"landing.translate.subtitle": "Importe um arquivo e escolha o idioma de destino",
|
||||
"landing.translate.sourceDocument": "Documento fonte",
|
||||
"landing.translate.configuration": "Configuração",
|
||||
"landing.translate.sourceLang": "Idioma de origem",
|
||||
"landing.translate.targetLang": "Idioma de destino",
|
||||
"landing.translate.provider": "Fornecedor",
|
||||
"landing.translate.startTranslation": "Iniciar tradução",
|
||||
"landing.translate.zeroRetention": "Retenção zero",
|
||||
"landing.translate.filesDeleted": "Ficheiros eliminados após processamento",
|
||||
"landing.translate.dropHere": "Arraste e solte aqui",
|
||||
"landing.translate.supportedFormats": "Ficheiros DOCX, XLSX, PPTX ou PDF suportados",
|
||||
"landing.translate.aiAnalysis": "Análise IA Ativa",
|
||||
"landing.translate.processing": "Em processamento",
|
||||
"landing.translate.preservingLayout": "O seu layout está a ser preservado",
|
||||
},
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// ITALIAN (it)
|
||||
@@ -4207,6 +4293,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "Analisi in tempo reale",
|
||||
"landing.hero.termsDetected": "termini rilevati",
|
||||
"landing.steps.process": "PROCESSO",
|
||||
"landing.translate.newProject": "Nuovo progetto",
|
||||
"landing.translate.title": "Traduci un documento",
|
||||
"landing.translate.subtitle": "Importa un file e scegli la lingua di destinazione",
|
||||
"landing.translate.sourceDocument": "Documento sorgente",
|
||||
"landing.translate.configuration": "Configurazione",
|
||||
"landing.translate.sourceLang": "Lingua sorgente",
|
||||
"landing.translate.targetLang": "Lingua di destinazione",
|
||||
"landing.translate.provider": "Fornitore",
|
||||
"landing.translate.startTranslation": "Avvia traduzione",
|
||||
"landing.translate.zeroRetention": "Zero conservazione",
|
||||
"landing.translate.filesDeleted": "File eliminati dopo l'elaborazione",
|
||||
"landing.translate.dropHere": "Trascina e rilascia qui",
|
||||
"landing.translate.supportedFormats": "File DOCX, XLSX, PPTX o PDF supportati",
|
||||
"landing.translate.aiAnalysis": "Analisi IA Attiva",
|
||||
"landing.translate.processing": "Elaborazione in corso",
|
||||
"landing.translate.preservingLayout": "Il tuo layout viene preservato",
|
||||
},
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// DUTCH (nl)
|
||||
@@ -4888,6 +4990,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "Live-analyse",
|
||||
"landing.hero.termsDetected": "termen gedetecteerd",
|
||||
"landing.steps.process": "PROCES",
|
||||
"landing.translate.newProject": "Nieuw project",
|
||||
"landing.translate.title": "Vertaal een document",
|
||||
"landing.translate.subtitle": "Importeer een bestand en kies de doeltaal",
|
||||
"landing.translate.sourceDocument": "Brondocument",
|
||||
"landing.translate.configuration": "Configuratie",
|
||||
"landing.translate.sourceLang": "Brontaal",
|
||||
"landing.translate.targetLang": "Doeltaal",
|
||||
"landing.translate.provider": "Provider",
|
||||
"landing.translate.startTranslation": "Vertaling starten",
|
||||
"landing.translate.zeroRetention": "Nul retentie",
|
||||
"landing.translate.filesDeleted": "Bestanden verwijderd na verwerking",
|
||||
"landing.translate.dropHere": "Sleep en zet hier neer",
|
||||
"landing.translate.supportedFormats": "DOCX, XLSX, PPTX of PDF bestanden ondersteund",
|
||||
"landing.translate.aiAnalysis": "Actieve AI-analyse",
|
||||
"landing.translate.processing": "Verwerking bezig",
|
||||
"landing.translate.preservingLayout": "Uw opmaak wordt behouden",
|
||||
},
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// RUSSIAN (ru)
|
||||
@@ -5571,6 +5689,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "Анализ в реальном времени",
|
||||
"landing.hero.termsDetected": "терминов обнаружено",
|
||||
"landing.steps.process": "ПРОЦЕСС",
|
||||
"landing.translate.newProject": "Новый проект",
|
||||
"landing.translate.title": "Перевести документ",
|
||||
"landing.translate.subtitle": "Импортируйте файл и выберите целевой язык",
|
||||
"landing.translate.sourceDocument": "Исходный документ",
|
||||
"landing.translate.configuration": "Настройки",
|
||||
"landing.translate.sourceLang": "Исходный язык",
|
||||
"landing.translate.targetLang": "Целевой язык",
|
||||
"landing.translate.provider": "Провайдер",
|
||||
"landing.translate.startTranslation": "Начать перевод",
|
||||
"landing.translate.zeroRetention": "Нулевое хранение",
|
||||
"landing.translate.filesDeleted": "Файлы удаляются после обработки",
|
||||
"landing.translate.dropHere": "Перетащите сюда",
|
||||
"landing.translate.supportedFormats": "Поддерживаются файлы DOCX, XLSX, PPTX или PDF",
|
||||
"landing.translate.aiAnalysis": "Активный ИИ-анализ",
|
||||
"landing.translate.processing": "Обработка",
|
||||
"landing.translate.preservingLayout": "Ваше форматирование сохраняется",
|
||||
},
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// JAPANESE (ja)
|
||||
@@ -6251,6 +6385,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "リアルタイム分析",
|
||||
"landing.hero.termsDetected": "件の用語を検出",
|
||||
"landing.steps.process": "プロセス",
|
||||
"landing.translate.newProject": "新規プロジェクト",
|
||||
"landing.translate.title": "ドキュメントを翻訳",
|
||||
"landing.translate.subtitle": "ファイルをインポートして翻訳先言語を選択",
|
||||
"landing.translate.sourceDocument": "ソースドキュメント",
|
||||
"landing.translate.configuration": "設定",
|
||||
"landing.translate.sourceLang": "翻訳元言語",
|
||||
"landing.translate.targetLang": "翻訳先言語",
|
||||
"landing.translate.provider": "プロバイダー",
|
||||
"landing.translate.startTranslation": "翻訳を開始",
|
||||
"landing.translate.zeroRetention": "ゼロ保持",
|
||||
"landing.translate.filesDeleted": "処理後にファイルを削除",
|
||||
"landing.translate.dropHere": "ここにドラッグ&ドロップ",
|
||||
"landing.translate.supportedFormats": "DOCX, XLSX, PPTX, PDFファイル対応",
|
||||
"landing.translate.aiAnalysis": "AI分析アクティブ",
|
||||
"landing.translate.processing": "処理中",
|
||||
"landing.translate.preservingLayout": "レイアウトを保持しています",
|
||||
},
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// KOREAN (ko)
|
||||
@@ -6931,6 +7081,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "실시간 분석",
|
||||
"landing.hero.termsDetected": "개 용어 감지됨",
|
||||
"landing.steps.process": "프로세스",
|
||||
"landing.translate.newProject": "새 프로젝트",
|
||||
"landing.translate.title": "문서 번역",
|
||||
"landing.translate.subtitle": "파일을 가져오고 대상 언어를 선택하세요",
|
||||
"landing.translate.sourceDocument": "원본 문서",
|
||||
"landing.translate.configuration": "설정",
|
||||
"landing.translate.sourceLang": "원본 언어",
|
||||
"landing.translate.targetLang": "대상 언어",
|
||||
"landing.translate.provider": "제공자",
|
||||
"landing.translate.startTranslation": "번역 시작",
|
||||
"landing.translate.zeroRetention": "제로 보관",
|
||||
"landing.translate.filesDeleted": "처리 후 파일 삭제됨",
|
||||
"landing.translate.dropHere": "여기에 드래그 앤 드롭",
|
||||
"landing.translate.supportedFormats": "DOCX, XLSX, PPTX 또는 PDF 파일 지원",
|
||||
"landing.translate.aiAnalysis": "AI 분석 활성",
|
||||
"landing.translate.processing": "처리 중",
|
||||
"landing.translate.preservingLayout": "레이아웃이 보존되고 있습니다",
|
||||
},
|
||||
// ═══════════════════════════════════════════════════════════════
|
||||
// CHINESE SIMPLIFIED (zh)
|
||||
@@ -7569,6 +7735,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "实时分析",
|
||||
"landing.hero.termsDetected": "个术语已检测",
|
||||
"landing.steps.process": "流程",
|
||||
"landing.translate.newProject": "新项目",
|
||||
"landing.translate.title": "翻译文档",
|
||||
"landing.translate.subtitle": "导入文件并选择目标语言",
|
||||
"landing.translate.sourceDocument": "源文档",
|
||||
"landing.translate.configuration": "配置",
|
||||
"landing.translate.sourceLang": "源语言",
|
||||
"landing.translate.targetLang": "目标语言",
|
||||
"landing.translate.provider": "提供商",
|
||||
"landing.translate.startTranslation": "开始翻译",
|
||||
"landing.translate.zeroRetention": "零保留",
|
||||
"landing.translate.filesDeleted": "处理后删除文件",
|
||||
"landing.translate.dropHere": "拖放到此处",
|
||||
"landing.translate.supportedFormats": "支持 DOCX, XLSX, PPTX 或 PDF 文件",
|
||||
"landing.translate.aiAnalysis": "AI 分析中",
|
||||
"landing.translate.processing": "正在处理",
|
||||
"landing.translate.preservingLayout": "正在保留您的排版",
|
||||
},
|
||||
|
||||
// ARABIC (ar)
|
||||
@@ -8207,6 +8389,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "تحليل مباشر",
|
||||
"landing.hero.termsDetected": "مصطلحات مكتشفة",
|
||||
"landing.steps.process": "العملية",
|
||||
"landing.translate.newProject": "مشروع جديد",
|
||||
"landing.translate.title": "ترجمة مستند",
|
||||
"landing.translate.subtitle": "استورد ملفًا واختر اللغة المستهدفة",
|
||||
"landing.translate.sourceDocument": "المستند المصدر",
|
||||
"landing.translate.configuration": "الإعدادات",
|
||||
"landing.translate.sourceLang": "لغة المصدر",
|
||||
"landing.translate.targetLang": "اللغة المستهدفة",
|
||||
"landing.translate.provider": "المزود",
|
||||
"landing.translate.startTranslation": "بدء الترجمة",
|
||||
"landing.translate.zeroRetention": "صفر احتفاظ",
|
||||
"landing.translate.filesDeleted": "الملفات محذوفة بعد المعالجة",
|
||||
"landing.translate.dropHere": "اسحب وأفلت هنا",
|
||||
"landing.translate.supportedFormats": "ملفات DOCX, XLSX, PPTX أو PDF مدعومة",
|
||||
"landing.translate.aiAnalysis": "تحليل AI نشط",
|
||||
"landing.translate.processing": "جاري المعالجة",
|
||||
"landing.translate.preservingLayout": "جاري الحفاظ على التنسيق",
|
||||
},
|
||||
|
||||
// PERSIAN (fa)
|
||||
@@ -8881,6 +9079,22 @@ const messages: Record<Locale, Record<string, string>> = {
|
||||
"landing.hero.liveAnalysis": "تحلیل زنده",
|
||||
"landing.hero.termsDetected": "اصطلاح شناسایی شد",
|
||||
"landing.steps.process": "فرآیند",
|
||||
"landing.translate.newProject": "پروژه جدید",
|
||||
"landing.translate.title": "ترجمه سند",
|
||||
"landing.translate.subtitle": "فایل را وارد کنید و زبان مقصد را انتخاب کنید",
|
||||
"landing.translate.sourceDocument": "سند منبع",
|
||||
"landing.translate.configuration": "پیکربندی",
|
||||
"landing.translate.sourceLang": "زبان منبع",
|
||||
"landing.translate.targetLang": "زبان مقصد",
|
||||
"landing.translate.provider": "ارائهدهنده",
|
||||
"landing.translate.startTranslation": "شروع ترجمه",
|
||||
"landing.translate.zeroRetention": "صفر نگهداری",
|
||||
"landing.translate.filesDeleted": "فایلها پس از پردازش حذف میشوند",
|
||||
"landing.translate.dropHere": "اینجا بکشید و رها کنید",
|
||||
"landing.translate.supportedFormats": "فایلهای DOCX, XLSX, PPTX یا PDF پشتیبانی میشوند",
|
||||
"landing.translate.aiAnalysis": "تحلیل AI فعال",
|
||||
"landing.translate.processing": "در حال پردازش",
|
||||
"landing.translate.preservingLayout": "طرحبندی شما حفظ میشود",
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user