diff --git a/landing/api/pro/verify.js b/landing/api/pro/verify.js index e2e356d..2d5fca7 100644 --- a/landing/api/pro/verify.js +++ b/landing/api/pro/verify.js @@ -97,7 +97,7 @@ const isRateLimited = (clientId) => { return existing.count > RATE_LIMIT_MAX; }; -module.exports = async (req, res) => { +const handler = async (req, res) => { if (req.method !== "POST") { res.status(405).json({ error: "method_not_allowed" }); return; @@ -220,3 +220,5 @@ module.exports = async (req, res) => { }); } }; + +export default handler; diff --git a/landing/vercel.json b/landing/vercel.json index faf877e..44056bb 100644 --- a/landing/vercel.json +++ b/landing/vercel.json @@ -7,6 +7,15 @@ } ], "headers": [ + { + "source": "/api/(.*)", + "headers": [ + { + "key": "Cache-Control", + "value": "no-store" + } + ] + }, { "source": "/(.*)", "headers": [ diff --git a/src/i18n/locales/ar/translation.json b/src/i18n/locales/ar/translation.json index f99ed5f..a375648 100644 --- a/src/i18n/locales/ar/translation.json +++ b/src/i18n/locales/ar/translation.json @@ -414,7 +414,9 @@ }, "updateChecks": { "label": "التحقق من وجود تحديثات", - "description": "التحقق تلقائياً من وجود إصدارات جديدة من Dictx" + "description": "التحقق تلقائياً من وجود إصدارات جديدة من Dictx", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "سمة الصوت", @@ -501,6 +503,17 @@ "description": "استنتاج عالي الأداء لنموذج التعرف التلقائي على الكلام Whisper من OpenAI", "details": ".يستخدم Dictx برنامج Whisper.cpp لمعالجة سريعة ومحلية لتحويل الكلام إلى نص. شكراً للعمل الرائع الذي قام به Georgi Gerganov والمساهمون" } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "modelSettings": { diff --git a/src/i18n/locales/cs/translation.json b/src/i18n/locales/cs/translation.json index 582df69..1ae1fdb 100644 --- a/src/i18n/locales/cs/translation.json +++ b/src/i18n/locales/cs/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "Kontrolovat aktualizace", - "description": "Automaticky kontrolovat nové verze Dictx" + "description": "Automaticky kontrolovat nové verze Dictx", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "Zvukový motiv", @@ -523,6 +525,17 @@ "description": "Vysoce výkonné inferenční zpracování modelu automatického rozpoznávání řeči Whisper od OpenAI", "details": "Dictx používá Whisper.cpp pro rychlé lokální zpracování řeči na text. Díky skvělé práci Georgiho Gerganova a přispěvatelů." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/de/translation.json b/src/i18n/locales/de/translation.json index 60da5b8..e084919 100644 --- a/src/i18n/locales/de/translation.json +++ b/src/i18n/locales/de/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "Nach Updates suchen", - "description": "Automatisch nach neuen Versionen von Dictx suchen" + "description": "Automatisch nach neuen Versionen von Dictx suchen", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "Sound-Thema", @@ -523,6 +525,17 @@ "description": "Hochleistungs-Inferenz des Whisper-Spracherkennungsmodells von OpenAI", "details": "Dictx verwendet Whisper.cpp für schnelle, lokale Sprach-zu-Text-Verarbeitung. Dank an Georgi Gerganov und die Mitwirkenden für ihre großartige Arbeit." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/es/translation.json b/src/i18n/locales/es/translation.json index f6d2713..17461e9 100644 --- a/src/i18n/locales/es/translation.json +++ b/src/i18n/locales/es/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "Buscar Actualizaciones", - "description": "Buscar automáticamente nuevas versiones de Dictx" + "description": "Buscar automáticamente nuevas versiones de Dictx", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "Tema de Sonido", @@ -523,6 +525,17 @@ "description": "Inferencia de alto rendimiento del modelo de reconocimiento automático de voz Whisper de OpenAI", "details": "Dictx usa Whisper.cpp para procesamiento de voz a texto rápido y local. Gracias al increíble trabajo de Georgi Gerganov y colaboradores." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/fr/translation.json b/src/i18n/locales/fr/translation.json index 9c4c304..3465ae7 100644 --- a/src/i18n/locales/fr/translation.json +++ b/src/i18n/locales/fr/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "Vérifier les mises à jour", - "description": "Vérifier automatiquement les nouvelles versions de Dictx" + "description": "Vérifier automatiquement les nouvelles versions de Dictx", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "Thème sonore", @@ -523,6 +525,17 @@ "description": "Inférence haute performance du modèle de reconnaissance vocale automatique Whisper d'OpenAI", "details": "Dictx utilise Whisper.cpp pour un traitement rapide et local de la parole en texte. Merci au travail incroyable de Georgi Gerganov et des contributeurs." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/it/translation.json b/src/i18n/locales/it/translation.json index a56287f..589117a 100644 --- a/src/i18n/locales/it/translation.json +++ b/src/i18n/locales/it/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "Controlla aggiornamenti", - "description": "Controlla automaticamente la disponibilità di nuove versioni di Dictx" + "description": "Controlla automaticamente la disponibilità di nuove versioni di Dictx", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "Tema Sonoro", @@ -523,6 +525,17 @@ "description": "Inferenza ad alte prestazioni del modello di riconoscimento vocale automatico Whisper di OpenAI", "details": "Dictx usa Whisper.cpp per il riconoscimento vocale veloce in locale. Grazie a Georgi Gerganov e collaboratori per il fantastico lavoro." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/ja/translation.json b/src/i18n/locales/ja/translation.json index 1805e77..9c87b43 100644 --- a/src/i18n/locales/ja/translation.json +++ b/src/i18n/locales/ja/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "アップデートを確認", - "description": "Dictxの新しいバージョンを自動的にチェック" + "description": "Dictxの新しいバージョンを自動的にチェック", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "サウンドテーマ", @@ -523,6 +525,17 @@ "description": "OpenAIのWhisper自動音声認識モデルの高性能推論", "details": "Dictxは高速でローカルな音声からテキストへの変換にWhisper.cppを使用しています。Georgi Gerganov氏と貢献者の皆様の素晴らしい仕事に感謝します。" } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/ko/translation.json b/src/i18n/locales/ko/translation.json index f2254c9..76bcf3b 100644 --- a/src/i18n/locales/ko/translation.json +++ b/src/i18n/locales/ko/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "업데이트 확인", - "description": "Dictx의 새 버전을 자동으로 확인합니다" + "description": "Dictx의 새 버전을 자동으로 확인합니다", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "사운드 테마", @@ -523,6 +525,17 @@ "description": "OpenAI의 Whisper 자동 음성 인식 모델의 고성능 추론", "details": "Dictx는 빠르고 로컬 음성-텍스트 처리를 위해 Whisper.cpp를 사용합니다. Georgi Gerganov와 기여자들의 놀라운 작업에 감사드립니다." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/pl/translation.json b/src/i18n/locales/pl/translation.json index 6bdaaea..df4d3f6 100644 --- a/src/i18n/locales/pl/translation.json +++ b/src/i18n/locales/pl/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "Sprawdzaj aktualizacje", - "description": "Automatycznie sprawdzaj nowe wersje Dictx" + "description": "Automatycznie sprawdzaj nowe wersje Dictx", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "Motyw dźwiękowy", @@ -523,6 +525,17 @@ "description": "Wydajne wykonywanie modelu rozpoznawania mowy Whisper od OpenAI", "details": "Dictx używa Whisper.cpp do szybkiego, lokalnego przetwarzania mowy na tekst. Dzięki niesamowitej pracy Georgi Gerganova i współtwórców." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/pt/translation.json b/src/i18n/locales/pt/translation.json index 58be81b..db8af3a 100644 --- a/src/i18n/locales/pt/translation.json +++ b/src/i18n/locales/pt/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "Verificar Atualizações", - "description": "Verificar automaticamente novas versões do Dictx" + "description": "Verificar automaticamente novas versões do Dictx", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "Tema de Som", @@ -523,6 +525,17 @@ "description": "Inferência de alto desempenho do modelo de reconhecimento automático de fala Whisper da OpenAI", "details": "O Dictx usa Whisper.cpp para processamento rápido e local de fala para texto. Agradecemos ao incrível trabalho de Georgi Gerganov e colaboradores." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/ru/translation.json b/src/i18n/locales/ru/translation.json index 7893c7b..ad30dbc 100644 --- a/src/i18n/locales/ru/translation.json +++ b/src/i18n/locales/ru/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "Проверьте наличие обновлений", - "description": "Автоматически проверять наличие новых версий Dictx" + "description": "Автоматически проверять наличие новых версий Dictx", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "Звуковая тема", @@ -523,6 +525,17 @@ "description": "Высокопроизводительный вывод модели автоматического распознавания речи OpenAI Whisper", "details": "Dictx использует Whisper.cpp для быстрой локальной обработки речи в текст. Спасибо великолепной работе Георгия Герганова и его участников." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/tr/translation.json b/src/i18n/locales/tr/translation.json index b8302ff..317d1c2 100644 --- a/src/i18n/locales/tr/translation.json +++ b/src/i18n/locales/tr/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "Güncellemeleri Kontrol Et", - "description": "Dictx için yeni sürümleri otomatik olarak kontrol eder" + "description": "Dictx için yeni sürümleri otomatik olarak kontrol eder", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "Ses Teması", @@ -523,6 +525,17 @@ "description": "OpenAI'nin Whisper otomatik konuşma tanıma modelinin yüksek performanslı çıkarımı", "details": "Dictx, hızlı ve yerel konuşmadan metne dönüştürme için Whisper.cpp kullanır. Georgi Gerganov ve katkıda bulunanların harika çalışmaları için teşekkür ederiz." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/uk/translation.json b/src/i18n/locales/uk/translation.json index a20b769..0abfe81 100644 --- a/src/i18n/locales/uk/translation.json +++ b/src/i18n/locales/uk/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "Перевірка оновлень", - "description": "Автоматично перевіряти наявність нових версій Dictx" + "description": "Автоматично перевіряти наявність нових версій Dictx", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "Звукова тема", @@ -523,6 +525,17 @@ "description": "Високопродуктивний інференс моделі автоматичного розпізнавання мовлення Whisper від OpenAI", "details": "Dictx використовує Whisper.cpp для швидкої локальної обробки мовлення в текст. Дякуємо за чудову роботу Георгію Герганову та контриб'юторам." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/vi/translation.json b/src/i18n/locales/vi/translation.json index 5651fb2..aba25c2 100644 --- a/src/i18n/locales/vi/translation.json +++ b/src/i18n/locales/vi/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "Kiểm tra cập nhật", - "description": "Tự động kiểm tra phiên bản mới của Dictx" + "description": "Tự động kiểm tra phiên bản mới của Dictx", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "Chủ đề âm thanh", @@ -523,6 +525,17 @@ "description": "Suy luận hiệu suất cao của mô hình nhận dạng giọng nói tự động Whisper của OpenAI", "details": "Dictx sử dụng Whisper.cpp để xử lý chuyển đổi giọng nói thành văn bản nhanh, cục bộ. Cảm ơn công việc tuyệt vời của Georgi Gerganov và các cộng tác viên." } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/zh-TW/translation.json b/src/i18n/locales/zh-TW/translation.json index 83bcae4..87b4293 100644 --- a/src/i18n/locales/zh-TW/translation.json +++ b/src/i18n/locales/zh-TW/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "檢查更新", - "description": "自動檢查 Dictx 的新版本" + "description": "自動檢查 Dictx 的新版本", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "聲音主題", @@ -523,6 +525,17 @@ "description": "針對 OpenAI Whisper 自動語音識別模型的高效能推理引擎", "details": "Dictx 使用 Whisper.cpp 進行快速的本機語音轉文字處理。感謝 Georgi Gerganov 和貢獻者們的傑出工作" } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": { diff --git a/src/i18n/locales/zh/translation.json b/src/i18n/locales/zh/translation.json index 9826b78..a2eebb1 100644 --- a/src/i18n/locales/zh/translation.json +++ b/src/i18n/locales/zh/translation.json @@ -436,7 +436,9 @@ }, "updateChecks": { "label": "检查更新", - "description": "自动检查 Dictx 的新版本" + "description": "自动检查 Dictx 的新版本", + "proRequired": "Auto-updates are available for active Dictx Pro installations.", + "upgrade": "Activate or Upgrade Pro" }, "soundTheme": { "label": "声音主题", @@ -523,6 +525,17 @@ "description": "OpenAI Whisper 自动语音识别模型的高性能推理", "details": "Dictx 使用 Whisper.cpp 进行快速的本地语音转文字处理。感谢 Georgi Gerganov 和贡献者们的出色工作。" } + }, + "proActivation": { + "active": "Dictx Pro is active on this device.", + "inactive": "Dictx Pro is not active. Enter your license key to activate updater entitlement.", + "activate": "Activate Dictx Pro", + "refresh": "Re-check Entitlement", + "clear": "Remove Activation", + "licenseKey": "License Key", + "licenseKeyPlaceholder": "lk_... (or migration key)", + "pasteFromClipboard": "Paste From Clipboard", + "clipboardFailed": "Clipboard access failed. Paste manually." } }, "obsidian": {