feat(i18n): localize 404, 500, billing_success, about, verify_email_sent templates
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}404 - Not Found{% endblock %}
|
||||
{% block title %}{{ _("error.404_title") }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="flex flex-col items-center justify-center text-center px-4 py-16">
|
||||
<div class="max-w-xl">
|
||||
<h1 class="text-7xl font-extrabold text-blue-600 mb-6">404</h1>
|
||||
<h2 class="text-3xl font-bold text-gray-800 mb-4">Oops, we couldn’t find that page!</h2>
|
||||
<h1 class="text-7xl font-extrabold text-blue-600 mb-6">{{ _("error.404_code") }}</h1>
|
||||
<h2 class="text-3xl font-bold text-gray-800 mb-4">{{ _("error.404_heading") }}</h2>
|
||||
<p class="text-gray-600 mb-8">
|
||||
It seems DocuElevate has misplaced the document you were looking for. Don’t worry – we’ve got your back.
|
||||
{{ _("error.404_message") }}
|
||||
</p>
|
||||
<a href="/" class="inline-block bg-blue-500 hover:bg-blue-600 text-white font-semibold py-3 px-6 rounded-lg transition-colors">
|
||||
← Return Home
|
||||
← {{ _("error.404_home") }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}Server Error - DocuElevate{% endblock %}
|
||||
{% block title %}{{ _("error.500_title") }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="relative isolate px-6 pt-14 lg:px-8">
|
||||
@@ -7,27 +7,27 @@
|
||||
<div class="mx-auto max-w-3xl py-12">
|
||||
<img
|
||||
src="/static/explosion.jpg"
|
||||
alt="Illustration of a server error"
|
||||
alt="{{ _('error.500_img_alt') }}"
|
||||
class="mx-auto rounded-xl shadow-xl h-[300px] w-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="mx-auto max-w-3xl text-center">
|
||||
<h1 class="text-7xl font-bold text-red-500">500</h1>
|
||||
<h1 class="text-7xl font-bold text-red-500">{{ _("error.500_code") }}</h1>
|
||||
<p class="mt-4 text-4xl font-semibold tracking-tight text-gray-900">
|
||||
Oops! Something Went Wrong.
|
||||
{{ _("error.500_heading") }}
|
||||
</p>
|
||||
<p class="mt-4 text-lg leading-8 text-gray-600">
|
||||
Our servers encountered a mishap and need a moment. Maybe the hamsters spilled their coffee?
|
||||
{{ _("error.500_message1") }}
|
||||
</p>
|
||||
<p class="mt-2 text-lg leading-8 text-gray-600">
|
||||
We're already on it—sorting files, rebooting servers, and recalibrating flux capacitors.
|
||||
{{ _("error.500_message2") }}
|
||||
</p>
|
||||
|
||||
{% if exc %}
|
||||
<details class="mt-8 bg-gray-100 rounded-lg p-4 text-left shadow-md">
|
||||
<summary class="cursor-pointer font-medium text-blue-600 hover:text-blue-700">
|
||||
Show Debug Info
|
||||
{{ _("error.500_debug_info") }}
|
||||
</summary>
|
||||
<pre class="mt-4 text-sm text-gray-700 overflow-auto">{{ exc }}</pre>
|
||||
</details>
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
<div class="mt-10">
|
||||
<a href="/" class="inline-block bg-blue-600 px-6 py-3 rounded-md text-white font-semibold shadow-md hover:bg-blue-700 transition-colors">
|
||||
← Go Home
|
||||
← {{ _("error.500_home") }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,69 +1,63 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}About DocuElevate{% endblock %}
|
||||
{% block title %}{{ _("about.page_title") }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container mx-auto px-4 py-8">
|
||||
<h1 class="text-4xl font-bold mb-4">About DocuElevate</h1>
|
||||
<h1 class="text-4xl font-bold mb-4">{{ _("about.heading") }}</h1>
|
||||
<p class="text-gray-700 mb-6 leading-relaxed">
|
||||
Welcome to <strong>DocuElevate</strong> – your modern, intelligent solution for document processing!
|
||||
We've built DocuElevate to completely transform the way you handle your documents – from upload
|
||||
to extraction, from processing to storage.
|
||||
{{ _("about.intro_pre") }}<strong>{{ _("app.name") }}</strong>{{ _("about.intro_post") }}
|
||||
</p>
|
||||
|
||||
<!-- Our Story Section -->
|
||||
<section class="bg-white shadow rounded p-6 mb-8">
|
||||
<h2 class="text-2xl font-semibold mb-2">Our Story</h2>
|
||||
<h2 class="text-2xl font-semibold mb-2">{{ _("about.story_heading") }}</h2>
|
||||
<p class="text-gray-600 mb-4">
|
||||
DocuElevate was created with one goal in mind: to simplify and streamline document management
|
||||
for everyone, whether you're a small startup or a large enterprise.
|
||||
{{ _("about.story_p1") }}
|
||||
</p>
|
||||
<p class="text-gray-600">
|
||||
We harness the power of pluggable AI providers (OpenAI, Anthropic Claude, Google Gemini, Ollama,
|
||||
OpenRouter, Portkey, and more) for metadata extraction and text refinement, integrate seamlessly
|
||||
with Dropbox, Nextcloud, and Paperless NGX for storage and indexing, leverage Azure Document
|
||||
Intelligence for OCR, and even use Gotenberg for file-to-PDF conversions.
|
||||
{{ _("about.story_p2") }}
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Key Features Section - Updated with more comprehensive features -->
|
||||
<section class="bg-white shadow rounded p-6 mb-8">
|
||||
<h2 class="text-2xl font-semibold mb-2">Key Features</h2>
|
||||
<h2 class="text-2xl font-semibold mb-2">{{ _("about.features_heading") }}</h2>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||
<div>
|
||||
<h3 class="font-medium text-lg text-gray-800">Document Processing</h3>
|
||||
<h3 class="font-medium text-lg text-gray-800">{{ _("about.features_processing_heading") }}</h3>
|
||||
<ul class="list-disc list-inside text-gray-600 ml-2">
|
||||
<li>Simple and secure file uploads with drag & drop support</li>
|
||||
<li>OCR powered by Azure Document Intelligence</li>
|
||||
<li>Automated metadata extraction using a pluggable AI provider</li>
|
||||
<li>PDF conversion for various file formats via Gotenberg</li>
|
||||
<li>Intelligent document classification and date extraction</li>
|
||||
<li>{{ _("about.features_processing_upload") }}</li>
|
||||
<li>{{ _("about.features_processing_ocr") }}</li>
|
||||
<li>{{ _("about.features_processing_metadata") }}</li>
|
||||
<li>{{ _("about.features_processing_pdf") }}</li>
|
||||
<li>{{ _("about.features_processing_classification") }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="font-medium text-lg text-gray-800">Integration & Storage</h3>
|
||||
<h3 class="font-medium text-lg text-gray-800">{{ _("about.features_integration_heading") }}</h3>
|
||||
<ul class="list-disc list-inside text-gray-600 ml-2">
|
||||
<li>Multi-destination support (store documents in multiple locations)</li>
|
||||
<li>Cloud storage: Dropbox, Google Drive, OneDrive, Amazon S3</li>
|
||||
<li>Self-hosted options: Nextcloud, Paperless NGX, WebDAV</li>
|
||||
<li>Transfer protocols: FTP, SFTP, Email forwarding</li>
|
||||
<li>{{ _("about.features_integration_multi_dest") }}</li>
|
||||
<li>{{ _("about.features_integration_cloud") }}</li>
|
||||
<li>{{ _("about.features_integration_selfhosted") }}</li>
|
||||
<li>{{ _("about.features_integration_protocols") }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="font-medium text-lg text-gray-800">Automation</h3>
|
||||
<h3 class="font-medium text-lg text-gray-800">{{ _("about.features_automation_heading") }}</h3>
|
||||
<ul class="list-disc list-inside text-gray-600 ml-2">
|
||||
<li>IMAP inbox polling from multiple sources</li>
|
||||
<li>Gmail and generic email account integration</li>
|
||||
<li>Automated document ingestion from various inputs</li>
|
||||
<li>Background processing with Redis and Celery</li>
|
||||
<li>{{ _("about.features_automation_imap") }}</li>
|
||||
<li>{{ _("about.features_automation_gmail") }}</li>
|
||||
<li>{{ _("about.features_automation_ingestion") }}</li>
|
||||
<li>{{ _("about.features_automation_background") }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="font-medium text-lg text-gray-800">Administration</h3>
|
||||
<h3 class="font-medium text-lg text-gray-800">{{ _("about.features_admin_heading") }}</h3>
|
||||
<ul class="list-disc list-inside text-gray-600 ml-2">
|
||||
<li>Powerful REST API for programmatic access</li>
|
||||
<li>OAuth2 authentication support with Authentik</li>
|
||||
<li>Highly configurable via environment variables</li>
|
||||
<li>Docker-ready for easy deployment and scaling</li>
|
||||
<li>{{ _("about.features_admin_api") }}</li>
|
||||
<li>{{ _("about.features_admin_oauth2") }}</li>
|
||||
<li>{{ _("about.features_admin_config") }}</li>
|
||||
<li>{{ _("about.features_admin_docker") }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -71,43 +65,43 @@
|
||||
|
||||
<!-- Meet the Creator Section -->
|
||||
<section class="bg-white shadow rounded p-6 mb-8">
|
||||
<h2 class="text-2xl font-semibold mb-2">Meet the Creator</h2>
|
||||
<h2 class="text-2xl font-semibold mb-2">{{ _("about.creator_heading") }}</h2>
|
||||
<p class="text-gray-600">
|
||||
DocuElevate is passionately developed by
|
||||
<a href="https://www.christianlouis.de" target="_blank" class="text-blue-600 hover:underline">Christian Krakau-Louis</a>.
|
||||
{{ _("about.creator_pre") }}
|
||||
<a href="https://www.christianlouis.de" target="_blank" class="text-blue-600 hover:underline">{{ _("about.creator_name") }}</a>.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<!-- Privacy & Legal Section -->
|
||||
<section class="bg-white shadow rounded p-6 mb-8">
|
||||
<h2 class="text-2xl font-semibold mb-2">Privacy & Legal</h2>
|
||||
<h2 class="text-2xl font-semibold mb-2">{{ _("about.legal_heading") }}</h2>
|
||||
<p class="text-gray-600 mb-4">
|
||||
We care about your privacy and data security. Please review our:
|
||||
{{ _("about.legal_description") }}
|
||||
</p>
|
||||
<div class="flex space-x-4">
|
||||
<a href="/privacy" class="text-blue-600 hover:underline">Privacy Notice</a>
|
||||
<a href="/license" class="text-blue-600 hover:underline">License Information</a>
|
||||
<a href="/privacy" class="text-blue-600 hover:underline">{{ _("about.legal_privacy") }}</a>
|
||||
<a href="/license" class="text-blue-600 hover:underline">{{ _("about.legal_license") }}</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Links Section -->
|
||||
<section class="bg-white shadow rounded p-6">
|
||||
<h2 class="text-2xl font-semibold mb-2">Get Involved</h2>
|
||||
<h2 class="text-2xl font-semibold mb-2">{{ _("about.involved_heading") }}</h2>
|
||||
<p class="text-gray-600 mb-4">
|
||||
Want to dive into the code, contribute ideas, or learn more about DocuElevate?
|
||||
{{ _("about.involved_description") }}
|
||||
</p>
|
||||
<div class="flex flex-col space-y-3">
|
||||
<a href="https://github.com/christianlouis/DocuElevate" target="_blank" class="flex items-center space-x-2 text-blue-600 hover:text-blue-800">
|
||||
<img src="https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png" alt="GitHub Logo" class="h-6 w-6" />
|
||||
<span>View DocuElevate on GitHub</span>
|
||||
<img src="https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png" alt="{{ _('about.github_logo_alt') }}" class="h-6 w-6" />
|
||||
<span>{{ _("about.involved_github") }}</span>
|
||||
</a>
|
||||
<a href="https://www.docuelevate.org" target="_blank" class="flex items-center space-x-2 text-blue-600 hover:text-blue-800">
|
||||
<i class="fas fa-globe h-6 w-6"></i>
|
||||
<span>Visit DocuElevate Website</span>
|
||||
<span>{{ _("about.involved_website") }}</span>
|
||||
</a>
|
||||
<a href="https://docuelevate.readthedocs.io" target="_blank" class="flex items-center space-x-2 text-blue-600 hover:text-blue-800">
|
||||
<i class="fas fa-book h-6 w-6"></i>
|
||||
<span>Read the Documentation</span>
|
||||
<span>{{ _("about.involved_docs") }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>DocuElevate - Subscription Activated</title>
|
||||
<title>{{ _("billing.success_page_title") }}</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||
integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA=="
|
||||
@@ -12,7 +12,7 @@
|
||||
<body class="bg-gray-100 min-h-screen flex items-center justify-center py-8">
|
||||
<main class="bg-white rounded-lg shadow-lg p-8 max-w-md w-full text-center" role="main">
|
||||
<div class="flex justify-center mb-6">
|
||||
<img src="/static/images/logo_writing.svg" alt="DocuElevate Logo" class="h-16">
|
||||
<img src="/static/images/logo_writing.svg" alt="{{ _('auth.logo_alt') }}" class="h-16">
|
||||
</div>
|
||||
|
||||
<div class="flex justify-center mb-4">
|
||||
@@ -21,9 +21,9 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h1 class="text-2xl font-bold text-gray-800 mb-2">You're all set!</h1>
|
||||
<h1 class="text-2xl font-bold text-gray-800 mb-2">{{ _("billing.success_heading") }}</h1>
|
||||
<p class="text-gray-600 mb-8">
|
||||
Your subscription has been activated. Thank you for choosing DocuElevate!
|
||||
{{ _("billing.success_message") }}
|
||||
</p>
|
||||
|
||||
<div class="space-y-3">
|
||||
@@ -31,13 +31,13 @@
|
||||
class="block w-full py-3 px-4 rounded-lg border-2 border-indigo-600 text-indigo-600 font-semibold hover:bg-indigo-50 transition focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
|
||||
style="min-height:44px;display:flex;align-items:center;justify-content:center;"
|
||||
>
|
||||
<i class="fas fa-credit-card mr-2" aria-hidden="true"></i>Manage subscription
|
||||
<i class="fas fa-credit-card mr-2" aria-hidden="true"></i>{{ _("billing.manage_subscription") }}
|
||||
</a>
|
||||
<a href="/upload"
|
||||
class="block w-full py-3 px-4 rounded-lg bg-indigo-600 text-white font-semibold hover:bg-indigo-700 transition focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
|
||||
style="min-height:44px;display:flex;align-items:center;justify-content:center;"
|
||||
>
|
||||
<i class="fas fa-arrow-right mr-2" aria-hidden="true"></i>Go to dashboard
|
||||
<i class="fas fa-arrow-right mr-2" aria-hidden="true"></i>{{ _("billing.go_to_dashboard") }}
|
||||
</a>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>DocuElevate - Verify Your Email</title>
|
||||
<title>{{ _("auth.verify_email_page_title") }}</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
|
||||
integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA=="
|
||||
@@ -13,7 +13,7 @@
|
||||
<body class="bg-gray-100 min-h-screen flex items-center justify-center py-8">
|
||||
<main class="bg-white rounded-lg shadow-lg p-8 max-w-md w-full text-center" role="main">
|
||||
<div class="flex justify-center mb-6">
|
||||
<img src="/static/images/logo_writing.svg" alt="DocuElevate Logo" class="h-16">
|
||||
<img src="/static/images/logo_writing.svg" alt="{{ _('auth.logo_alt') }}" class="h-16">
|
||||
</div>
|
||||
|
||||
<div class="flex justify-center mb-4">
|
||||
@@ -22,19 +22,19 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h1 class="text-2xl font-bold text-gray-800 mb-2">Check your inbox</h1>
|
||||
<h1 class="text-2xl font-bold text-gray-800 mb-2">{{ _("auth.verify_email_heading") }}</h1>
|
||||
<p class="text-gray-600 mb-6">
|
||||
We've sent you a verification email. Please click the link in the email to activate your account.
|
||||
{{ _("auth.verify_email_message") }}
|
||||
</p>
|
||||
<p class="text-sm text-gray-500 mb-8">
|
||||
The link expires in 24 hours. If you don't see the email, check your spam folder.
|
||||
{{ _("auth.verify_email_expiry") }}
|
||||
</p>
|
||||
|
||||
<div
|
||||
x-data="{ email: '', loading: false, message: '', error: '' }"
|
||||
class="border-t border-gray-100 pt-6"
|
||||
>
|
||||
<p class="text-sm text-gray-600 mb-3">Didn't receive it?</p>
|
||||
<p class="text-sm text-gray-600 mb-3">{{ _("auth.verify_email_resend_prompt") }}</p>
|
||||
|
||||
<div x-show="message" x-cloak
|
||||
class="bg-green-100 border-l-4 border-green-500 text-green-700 p-3 mb-4 rounded text-sm"
|
||||
@@ -73,14 +73,14 @@
|
||||
novalidate
|
||||
>
|
||||
<div>
|
||||
<label for="resend-email" class="sr-only">Email address</label>
|
||||
<label for="resend-email" class="sr-only">{{ _("auth.verify_email_resend_label") }}</label>
|
||||
<input
|
||||
type="email" id="resend-email" name="email"
|
||||
x-model="email"
|
||||
placeholder="Enter your email address"
|
||||
placeholder="{{ _('auth.verify_email_resend_placeholder') }}"
|
||||
autocomplete="email"
|
||||
class="block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring focus:ring-indigo-500 focus:ring-opacity-50 text-sm"
|
||||
aria-label="Email address for resend"
|
||||
aria-label="{{ _('auth.verify_email_resend_aria_label') }}"
|
||||
style="min-height:44px;"
|
||||
>
|
||||
</div>
|
||||
@@ -90,9 +90,9 @@
|
||||
class="w-full flex justify-center py-2 px-4 border border-indigo-600 rounded-md text-sm font-medium text-indigo-600 hover:bg-indigo-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 disabled:opacity-50"
|
||||
style="min-height:44px;"
|
||||
>
|
||||
<span x-show="!loading">Resend verification email</span>
|
||||
<span x-show="!loading">{{ _("auth.verify_email_resend_button") }}</span>
|
||||
<span x-show="loading" x-cloak>
|
||||
<i class="fas fa-spinner fa-spin mr-2" aria-hidden="true"></i>Sending…
|
||||
<i class="fas fa-spinner fa-spin mr-2" aria-hidden="true"></i>{{ _("common.loading") }}
|
||||
</span>
|
||||
</button>
|
||||
</form>
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
<div class="mt-6 text-center">
|
||||
<a href="/login" class="text-sm font-medium text-blue-600 hover:text-blue-500">
|
||||
Back to sign in
|
||||
{{ _("auth.verify_email_back_sign_in") }}
|
||||
</a>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
Reference in New Issue
Block a user