diff --git a/apps/chat/apps/web/package.json b/apps/chat/apps/web/package.json
index c04145ad2..e7a518df7 100644
--- a/apps/chat/apps/web/package.json
+++ b/apps/chat/apps/web/package.json
@@ -42,6 +42,8 @@
"@manacore/shared-feedback-service": "workspace:*",
"@manacore/shared-feedback-ui": "workspace:*",
"@manacore/shared-i18n": "workspace:*",
+ "@manacore/shared-help-types": "workspace:*",
+ "@manacore/shared-help-ui": "workspace:*",
"@manacore/shared-icons": "workspace:*",
"@manacore/shared-profile-ui": "workspace:*",
"@manacore/shared-stores": "workspace:*",
diff --git a/apps/chat/apps/web/src/lib/content/help/index.ts b/apps/chat/apps/web/src/lib/content/help/index.ts
new file mode 100644
index 000000000..3e48e2952
--- /dev/null
+++ b/apps/chat/apps/web/src/lib/content/help/index.ts
@@ -0,0 +1,166 @@
+/**
+ * Help content for Chat app
+ */
+
+import type { HelpContent } from '@manacore/shared-help-types';
+
+export function getChatHelpContent(locale: string): HelpContent {
+ const isDE = locale === 'de';
+
+ return {
+ faq: [
+ {
+ id: 'faq-models',
+ question: isDE
+ ? 'Welche KI-Modelle stehen zur Verfügung?'
+ : 'Which AI models are available?',
+ answer: isDE
+ ? '
Es gibt zwei Kategorien von Modellen:
- Lokale Modelle (kostenlos): Laufen auf unserem Server — z.B. Gemma 3, Qwen2.5 Coder, LLaVA Vision
- Cloud-Modelle (Credits): Leistungsstärkere Modelle — z.B. Claude, GPT-4o, DeepSeek, Llama
Lokale Modelle sind ideal für alltägliche Aufgaben. Cloud-Modelle bieten höhere Qualität für komplexe Anfragen.
'
+ : 'There are two categories of models:
- Local models (free): Run on our server — e.g. Gemma 3, Qwen2.5 Coder, LLaVA Vision
- Cloud models (credits): More powerful models — e.g. Claude, GPT-4o, DeepSeek, Llama
Local models are ideal for everyday tasks. Cloud models offer higher quality for complex requests.
',
+ category: 'features',
+ order: 1,
+ language: isDE ? 'de' : 'en',
+ featured: true,
+ tags: isDE ? ['modelle', 'ki', 'lokal', 'cloud'] : ['models', 'ai', 'local', 'cloud'],
+ },
+ {
+ id: 'faq-spaces',
+ question: isDE ? 'Was sind Spaces?' : 'What are Spaces?',
+ answer: isDE
+ ? 'Spaces sind Bereiche, um deine Chats thematisch zu organisieren:
- Erstelle Spaces für verschiedene Projekte oder Themen
- Jeder Space enthält eigene Unterhaltungen
- Wechsle schnell zwischen Kontexten
'
+ : 'Spaces are areas to organize your chats by topic:
- Create spaces for different projects or topics
- Each space contains its own conversations
- Switch quickly between contexts
',
+ category: 'features',
+ order: 2,
+ language: isDE ? 'de' : 'en',
+ tags: isDE ? ['spaces', 'organisation', 'bereiche'] : ['spaces', 'organize', 'areas'],
+ },
+ {
+ id: 'faq-templates',
+ question: isDE ? 'Wie nutze ich Templates?' : 'How do I use templates?',
+ answer: isDE
+ ? 'Templates sind vordefinierte Prompt-Vorlagen:
- Wähle ein Template aus der Vorlagenbibliothek
- Das Template füllt automatisch den Chat mit einem optimierten Prompt
- Ideal für wiederkehrende Aufgaben wie Texterstellung, Übersetzung oder Code-Analyse
'
+ : 'Templates are predefined prompt presets:
- Select a template from the template library
- The template automatically fills the chat with an optimized prompt
- Ideal for recurring tasks like writing, translation, or code analysis
',
+ category: 'features',
+ order: 3,
+ language: isDE ? 'de' : 'en',
+ tags: isDE ? ['templates', 'vorlagen', 'prompts'] : ['templates', 'presets', 'prompts'],
+ },
+ {
+ id: 'faq-compare',
+ question: isDE ? 'Was ist der Modellvergleich?' : 'What is model comparison?',
+ answer: isDE
+ ? 'Mit dem Modellvergleich kannst du denselben Prompt an mehrere Modelle gleichzeitig senden und die Antworten nebeneinander vergleichen. So findest du das beste Modell für deine Aufgabe.
'
+ : 'Model comparison lets you send the same prompt to multiple models simultaneously and compare responses side by side. This helps you find the best model for your task.
',
+ category: 'features',
+ order: 4,
+ language: isDE ? 'de' : 'en',
+ tags: isDE ? ['vergleich', 'modelle', 'test'] : ['compare', 'models', 'test'],
+ },
+ {
+ id: 'faq-privacy',
+ question: isDE ? 'Wie werden meine Chats geschützt?' : 'How are my chats protected?',
+ answer: isDE
+ ? 'Deine Unterhaltungen sind sicher:
- Verschlüsselung: Alle Daten werden bei der Übertragung (TLS) verschlüsselt
- Privat: Nur du hast Zugriff auf deine Chats
- Lokale Modelle: Bei lokalen Modellen verlassen deine Daten nie unseren Server
- DSGVO-konform: Wir halten uns an die EU-Datenschutzverordnung
'
+ : 'Your conversations are secure:
- Encryption: All data is encrypted in transit (TLS)
- Private: Only you have access to your chats
- Local models: With local models, your data never leaves our server
- GDPR Compliant: We follow EU data protection regulations
',
+ category: 'privacy',
+ order: 5,
+ language: isDE ? 'de' : 'en',
+ featured: true,
+ tags: isDE ? ['datenschutz', 'sicherheit', 'dsgvo'] : ['privacy', 'security', 'gdpr'],
+ },
+ ],
+ features: [
+ {
+ id: 'feature-models',
+ title: isDE ? 'Mehrere KI-Modelle' : 'Multiple AI Models',
+ description: isDE
+ ? 'Lokale und Cloud-Modelle für jede Aufgabe'
+ : 'Local and cloud models for every task',
+ icon: '🤖',
+ category: 'core',
+ highlights: isDE
+ ? ['7+ lokale Modelle (kostenlos)', 'Cloud-Modelle (Claude, GPT)', 'Vision-Modelle']
+ : ['7+ local models (free)', 'Cloud models (Claude, GPT)', 'Vision models'],
+ content: '',
+ order: 1,
+ language: isDE ? 'de' : 'en',
+ },
+ {
+ id: 'feature-spaces',
+ title: 'Spaces',
+ description: isDE
+ ? 'Organisiere Chats nach Themen und Projekten'
+ : 'Organize chats by topics and projects',
+ icon: '📂',
+ category: 'core',
+ highlights: isDE
+ ? ['Thematische Gruppierung', 'Schneller Kontextwechsel', 'Eigene Unterhaltungen']
+ : ['Topic grouping', 'Quick context switch', 'Separate conversations'],
+ content: '',
+ order: 2,
+ language: isDE ? 'de' : 'en',
+ },
+ {
+ id: 'feature-compare',
+ title: isDE ? 'Modellvergleich' : 'Model Comparison',
+ description: isDE
+ ? 'Vergleiche Antworten mehrerer Modelle nebeneinander'
+ : 'Compare responses from multiple models side by side',
+ icon: '⚖️',
+ category: 'advanced',
+ highlights: isDE
+ ? ['Parallele Anfragen', 'Qualitätsvergleich', 'Beste Modellwahl']
+ : ['Parallel requests', 'Quality comparison', 'Best model selection'],
+ content: '',
+ order: 3,
+ language: isDE ? 'de' : 'en',
+ },
+ {
+ id: 'feature-templates',
+ title: 'Templates',
+ description: isDE
+ ? 'Optimierte Prompts für wiederkehrende Aufgaben'
+ : 'Optimized prompts for recurring tasks',
+ icon: '📋',
+ category: 'core',
+ highlights: isDE
+ ? ['Prompt-Vorlagen', 'Ein-Klick-Start', 'Verschiedene Kategorien']
+ : ['Prompt presets', 'One-click start', 'Various categories'],
+ content: '',
+ order: 4,
+ language: isDE ? 'de' : 'en',
+ },
+ ],
+ shortcuts: [
+ {
+ id: 'shortcuts-nav',
+ category: 'navigation',
+ title: 'Navigation',
+ language: isDE ? 'de' : 'en',
+ order: 1,
+ shortcuts: [
+ { shortcut: 'Cmd/Ctrl + 1', action: 'Chat' },
+ { shortcut: 'Cmd/Ctrl + 2', action: isDE ? 'Vergleich' : 'Compare' },
+ { shortcut: 'Cmd/Ctrl + 3', action: 'Templates' },
+ { shortcut: 'Cmd/Ctrl + 4', action: 'Spaces' },
+ { shortcut: 'Cmd/Ctrl + 5', action: isDE ? 'Dokumente' : 'Documents' },
+ { shortcut: 'Cmd/Ctrl + 6', action: isDE ? 'Archiv' : 'Archive' },
+ ],
+ },
+ ],
+ gettingStarted: [],
+ changelog: [],
+ contact: {
+ id: 'contact-support',
+ title: isDE ? 'Support kontaktieren' : 'Contact Support',
+ content: isDE
+ ? 'Unser Support-Team hilft dir bei allen Fragen rund um Chat.
'
+ : 'Our support team is here to help you with any chat-related questions.
',
+ language: isDE ? 'de' : 'en',
+ order: 1,
+ supportEmail: 'support@mana.how',
+ documentationUrl: 'https://mana.how/docs',
+ responseTime: isDE ? 'Normalerweise innerhalb von 24 Stunden' : 'Usually within 24 hours',
+ },
+ };
+}
diff --git a/apps/chat/apps/web/src/routes/(protected)/help/+page.svelte b/apps/chat/apps/web/src/routes/(protected)/help/+page.svelte
new file mode 100644
index 000000000..4685558ae
--- /dev/null
+++ b/apps/chat/apps/web/src/routes/(protected)/help/+page.svelte
@@ -0,0 +1,157 @@
+
+
+
+ {translations.title} | Chat
+
+
+ goto('/chat')}
+ showGettingStarted={false}
+ showChangelog={false}
+ defaultSection="faq"
+/>
diff --git a/apps/picture/apps/web/package.json b/apps/picture/apps/web/package.json
index 738162e55..529a012e7 100644
--- a/apps/picture/apps/web/package.json
+++ b/apps/picture/apps/web/package.json
@@ -25,6 +25,8 @@
"@manacore/shared-feedback-service": "workspace:*",
"@manacore/shared-feedback-ui": "workspace:*",
"@manacore/shared-i18n": "workspace:*",
+ "@manacore/shared-help-types": "workspace:*",
+ "@manacore/shared-help-ui": "workspace:*",
"@manacore/shared-icons": "workspace:*",
"@manacore/shared-profile-ui": "workspace:*",
"@manacore/shared-subscription-types": "workspace:*",
diff --git a/apps/picture/apps/web/src/lib/content/help/index.ts b/apps/picture/apps/web/src/lib/content/help/index.ts
new file mode 100644
index 000000000..eba973558
--- /dev/null
+++ b/apps/picture/apps/web/src/lib/content/help/index.ts
@@ -0,0 +1,184 @@
+/**
+ * Help content for Picture app
+ */
+
+import type { HelpContent } from '@manacore/shared-help-types';
+
+export function getPictureHelpContent(locale: string): HelpContent {
+ const isDE = locale === 'de';
+
+ return {
+ faq: [
+ {
+ id: 'faq-generate',
+ question: isDE ? 'Wie generiere ich ein Bild?' : 'How do I generate an image?',
+ answer: isDE
+ ? 'So erstellst du ein KI-Bild:
- Gehe zu Generieren (Taste N)
- Wähle ein Modell aus
- Beschreibe dein gewünschtes Bild im Prompt-Feld
- Klicke auf Generieren
Tipp: Je detaillierter dein Prompt, desto besser das Ergebnis.
'
+ : 'To create an AI image:
- Go to Generate (key N)
- Select a model
- Describe your desired image in the prompt field
- Click Generate
Tip: The more detailed your prompt, the better the result.
',
+ category: 'features',
+ order: 1,
+ language: isDE ? 'de' : 'en',
+ featured: true,
+ tags: isDE
+ ? ['generieren', 'bild', 'erstellen', 'prompt']
+ : ['generate', 'image', 'create', 'prompt'],
+ },
+ {
+ id: 'faq-credits',
+ question: isDE ? 'Wie funktioniert das Credit-System?' : 'How does the credit system work?',
+ answer: isDE
+ ? 'Picture nutzt ein Freemium-Modell:
- 3 kostenlose Generierungen für neue Nutzer
- Danach werden 10 Credits pro Generierung berechnet
- Credits können über die Einstellungen erworben werden
- Dein verbleibendes Kontingent wird in der App angezeigt
'
+ : 'Picture uses a freemium model:
- 3 free generations for new users
- After that, 10 credits per generation are charged
- Credits can be purchased via settings
- Your remaining balance is displayed in the app
',
+ category: 'billing',
+ order: 2,
+ language: isDE ? 'de' : 'en',
+ tags: isDE ? ['credits', 'kosten', 'freemium'] : ['credits', 'cost', 'freemium'],
+ },
+ {
+ id: 'faq-boards',
+ question: isDE ? 'Was sind Moodboards?' : 'What are Moodboards?',
+ answer: isDE
+ ? 'Moodboards sind Sammlungen, um deine Bilder zu organisieren:
- Erstelle Boards für verschiedene Projekte oder Stile
- Füge Bilder per Drag & Drop zu Boards hinzu
- Teile Boards mit anderen
Gehe zu Boards (Taste M) um loszulegen.
'
+ : 'Moodboards are collections to organize your images:
- Create boards for different projects or styles
- Add images to boards via drag & drop
- Share boards with others
Go to Boards (key M) to get started.
',
+ category: 'features',
+ order: 3,
+ language: isDE ? 'de' : 'en',
+ tags: isDE
+ ? ['moodboard', 'sammlung', 'organisieren']
+ : ['moodboard', 'collection', 'organize'],
+ },
+ {
+ id: 'faq-explore',
+ question: isDE ? 'Was ist der Explore-Bereich?' : 'What is the Explore section?',
+ answer: isDE
+ ? 'Im Explore-Bereich kannst du Bilder anderer Nutzer entdecken, dich inspirieren lassen und Prompts als Vorlage verwenden.
'
+ : 'In the Explore section you can discover images from other users, get inspired, and use prompts as templates.
',
+ category: 'features',
+ order: 4,
+ language: isDE ? 'de' : 'en',
+ tags: isDE
+ ? ['explore', 'entdecken', 'inspiration']
+ : ['explore', 'discover', 'inspiration'],
+ },
+ {
+ id: 'faq-privacy',
+ question: isDE ? 'Wie werden meine Bilder geschützt?' : 'How are my images protected?',
+ answer: isDE
+ ? 'Deine Bilder sind sicher:
- Privat: Generierte Bilder sind standardmäßig nur für dich sichtbar
- Verschlüsselung: Alle Daten werden bei der Übertragung (TLS) verschlüsselt
- DSGVO-konform: Wir halten uns an die EU-Datenschutzverordnung
- Löschung: Du kannst Bilder jederzeit dauerhaft löschen
'
+ : 'Your images are secure:
- Private: Generated images are only visible to you by default
- Encryption: All data is encrypted in transit (TLS)
- GDPR Compliant: We follow EU data protection regulations
- Deletion: You can permanently delete images at any time
',
+ category: 'privacy',
+ order: 5,
+ language: isDE ? 'de' : 'en',
+ featured: true,
+ tags: isDE ? ['datenschutz', 'sicherheit', 'dsgvo'] : ['privacy', 'security', 'gdpr'],
+ },
+ ],
+ features: [
+ {
+ id: 'feature-generate',
+ title: isDE ? 'KI-Bildgenerierung' : 'AI Image Generation',
+ description: isDE
+ ? 'Erstelle Bilder mit modernsten KI-Modellen'
+ : 'Create images with state-of-the-art AI models',
+ icon: '🎨',
+ category: 'core',
+ highlights: isDE
+ ? ['Replicate AI-Modelle', 'Prompt-basiert', '3 kostenlose Generierungen']
+ : ['Replicate AI models', 'Prompt-based', '3 free generations'],
+ content: '',
+ order: 1,
+ language: isDE ? 'de' : 'en',
+ },
+ {
+ id: 'feature-gallery',
+ title: isDE ? 'Galerie' : 'Gallery',
+ description: isDE
+ ? 'Verwalte und organisiere deine generierten Bilder'
+ : 'Manage and organize your generated images',
+ icon: '🖼️',
+ category: 'core',
+ highlights: isDE
+ ? ['Raster- & Listenansicht', 'Tags & Favoriten', 'Archiv']
+ : ['Grid & list view', 'Tags & favorites', 'Archive'],
+ content: '',
+ order: 2,
+ language: isDE ? 'de' : 'en',
+ },
+ {
+ id: 'feature-boards',
+ title: 'Moodboards',
+ description: isDE
+ ? 'Sammle und organisiere Bilder in thematischen Boards'
+ : 'Collect and organize images in themed boards',
+ icon: '📌',
+ category: 'core',
+ highlights: isDE
+ ? ['Drag & Drop', 'Boards teilen', 'Thematisch sortieren']
+ : ['Drag & drop', 'Share boards', 'Sort by theme'],
+ content: '',
+ order: 3,
+ language: isDE ? 'de' : 'en',
+ },
+ {
+ id: 'feature-explore',
+ title: 'Explore',
+ description: isDE
+ ? 'Entdecke Bilder und Prompts der Community'
+ : 'Discover images and prompts from the community',
+ icon: '🔍',
+ category: 'core',
+ highlights: isDE
+ ? ['Community-Feed', 'Prompt-Vorlagen', 'Inspiration']
+ : ['Community feed', 'Prompt templates', 'Inspiration'],
+ content: '',
+ order: 4,
+ language: isDE ? 'de' : 'en',
+ },
+ ],
+ shortcuts: [
+ {
+ id: 'shortcuts-nav',
+ category: 'navigation',
+ title: 'Navigation',
+ language: isDE ? 'de' : 'en',
+ order: 1,
+ shortcuts: [
+ { shortcut: 'G', action: isDE ? 'Galerie' : 'Gallery' },
+ { shortcut: 'M', action: 'Moodboards' },
+ { shortcut: 'E', action: 'Explore' },
+ { shortcut: 'N', action: isDE ? 'Generieren' : 'Generate' },
+ { shortcut: 'U', action: 'Upload' },
+ { shortcut: 'A', action: isDE ? 'Archiv' : 'Archive' },
+ ],
+ },
+ {
+ id: 'shortcuts-view',
+ category: 'general',
+ title: isDE ? 'Ansicht' : 'View',
+ language: isDE ? 'de' : 'en',
+ order: 2,
+ shortcuts: [
+ { shortcut: '1', action: isDE ? 'Listen-Ansicht' : 'List view' },
+ { shortcut: '2', action: isDE ? 'Raster 3×3' : 'Grid 3×3' },
+ { shortcut: '3', action: isDE ? 'Raster 5×5' : 'Grid 5×5' },
+ { shortcut: 'Tab', action: isDE ? 'UI ein-/ausblenden' : 'Toggle UI' },
+ { shortcut: '?', action: isDE ? 'Tastenkürzel anzeigen' : 'Show shortcuts' },
+ ],
+ },
+ ],
+ gettingStarted: [],
+ changelog: [],
+ contact: {
+ id: 'contact-support',
+ title: isDE ? 'Support kontaktieren' : 'Contact Support',
+ content: isDE
+ ? 'Unser Support-Team hilft dir bei allen Fragen rund um Picture.
'
+ : 'Our support team is here to help you with any picture-related questions.
',
+ language: isDE ? 'de' : 'en',
+ order: 1,
+ supportEmail: 'support@mana.how',
+ documentationUrl: 'https://mana.how/docs',
+ responseTime: isDE ? 'Normalerweise innerhalb von 24 Stunden' : 'Usually within 24 hours',
+ },
+ };
+}
diff --git a/apps/picture/apps/web/src/routes/app/help/+page.svelte b/apps/picture/apps/web/src/routes/app/help/+page.svelte
new file mode 100644
index 000000000..1302d0e6f
--- /dev/null
+++ b/apps/picture/apps/web/src/routes/app/help/+page.svelte
@@ -0,0 +1,157 @@
+
+
+
+ {translations.title} | Picture
+
+
+ goto('/app/gallery')}
+ showGettingStarted={false}
+ showChangelog={false}
+ defaultSection="faq"
+/>
diff --git a/apps/storage/apps/web/package.json b/apps/storage/apps/web/package.json
index 579a03673..56b7e110f 100644
--- a/apps/storage/apps/web/package.json
+++ b/apps/storage/apps/web/package.json
@@ -46,6 +46,8 @@
"@manacore/shared-feedback-service": "workspace:*",
"@manacore/shared-feedback-ui": "workspace:*",
"@manacore/shared-i18n": "workspace:*",
+ "@manacore/shared-help-types": "workspace:*",
+ "@manacore/shared-help-ui": "workspace:*",
"@manacore/shared-icons": "workspace:*",
"@manacore/shared-profile-ui": "workspace:*",
"@manacore/shared-stores": "workspace:*",
diff --git a/apps/storage/apps/web/src/lib/content/help/index.ts b/apps/storage/apps/web/src/lib/content/help/index.ts
new file mode 100644
index 000000000..162d8fa5f
--- /dev/null
+++ b/apps/storage/apps/web/src/lib/content/help/index.ts
@@ -0,0 +1,160 @@
+/**
+ * Help content for Storage app
+ */
+
+import type { HelpContent } from '@manacore/shared-help-types';
+
+export function getStorageHelpContent(locale: string): HelpContent {
+ const isDE = locale === 'de';
+
+ return {
+ faq: [
+ {
+ id: 'faq-upload',
+ question: isDE ? 'Wie lade ich Dateien hoch?' : 'How do I upload files?',
+ answer: isDE
+ ? 'Du kannst Dateien auf verschiedene Arten hochladen:
- Drag & Drop: Ziehe Dateien direkt in den Browser
- Upload-Button: Klicke auf das Upload-Symbol in der Toolbar
- Es können bis zu 10 Dateien gleichzeitig hochgeladen werden (max. 100 MB pro Datei)
'
+ : 'You can upload files in several ways:
- Drag & drop: Drag files directly into the browser
- Upload button: Click the upload icon in the toolbar
- Up to 10 files can be uploaded simultaneously (max 100 MB per file)
',
+ category: 'features',
+ order: 1,
+ language: isDE ? 'de' : 'en',
+ tags: isDE ? ['hochladen', 'upload', 'dateien'] : ['upload', 'files', 'drag-drop'],
+ },
+ {
+ id: 'faq-share',
+ question: isDE ? 'Wie teile ich Dateien mit anderen?' : 'How do I share files?',
+ answer: isDE
+ ? 'Um eine Datei oder einen Ordner zu teilen:
- Rechtsklick auf die Datei und wähle Teilen
- Ein Share-Link wird erstellt, den du kopieren kannst
- Optional: Setze ein Passwort, ein Ablaufdatum oder ein Download-Limit
- Geteilte Links können jederzeit widerrufen werden
'
+ : 'To share a file or folder:
- Right-click the file and select Share
- A share link will be created that you can copy
- Optional: Set a password, expiration date, or download limit
- Shared links can be revoked at any time
',
+ category: 'features',
+ order: 2,
+ language: isDE ? 'de' : 'en',
+ tags: isDE ? ['teilen', 'link', 'freigabe'] : ['share', 'link', 'access'],
+ },
+ {
+ id: 'faq-versions',
+ question: isDE ? 'Wie funktioniert die Versionierung?' : 'How does versioning work?',
+ answer: isDE
+ ? 'Jede Datei unterstützt automatische Versionierung:
- Lade eine neue Version hoch, um die Datei zu aktualisieren
- Alle vorherigen Versionen bleiben erhalten
- Du kannst jederzeit ältere Versionen herunterladen
- Jede Version zeigt Größe, Datum und optionalen Kommentar
'
+ : 'Every file supports automatic versioning:
- Upload a new version to update the file
- All previous versions are preserved
- You can download older versions at any time
- Each version shows size, date, and optional comment
',
+ category: 'features',
+ order: 3,
+ language: isDE ? 'de' : 'en',
+ tags: isDE ? ['version', 'historie', 'aktualisieren'] : ['version', 'history', 'update'],
+ },
+ {
+ id: 'faq-trash',
+ question: isDE ? 'Wie funktioniert der Papierkorb?' : 'How does the trash work?',
+ answer: isDE
+ ? 'Gelöschte Dateien landen zunächst im Papierkorb:
- Im Papierkorb können Dateien wiederhergestellt werden
- Einzelne Dateien oder der gesamte Papierkorb können endgültig gelöscht werden
- Endgültig gelöschte Dateien können nicht wiederhergestellt werden
'
+ : 'Deleted files are moved to the trash first:
- Files in trash can be restored
- Individual files or the entire trash can be permanently deleted
- Permanently deleted files cannot be recovered
',
+ category: 'features',
+ order: 4,
+ language: isDE ? 'de' : 'en',
+ tags: isDE ? ['papierkorb', 'löschen', 'wiederherstellen'] : ['trash', 'delete', 'restore'],
+ },
+ {
+ id: 'faq-privacy',
+ question: isDE ? 'Wie werden meine Dateien geschützt?' : 'How are my files protected?',
+ answer: isDE
+ ? 'Deine Dateien sind sicher:
- Verschlüsselung: Alle Daten werden bei der Übertragung (TLS) verschlüsselt
- Privat: Nur du hast Zugriff auf deine Dateien
- DSGVO-konform: Wir halten uns an die EU-Datenschutzverordnung
- Share-Kontrolle: Du bestimmst, wer Zugriff hat (Passwort, Ablauf, Limit)
'
+ : 'Your files are secure:
- Encryption: All data is encrypted in transit (TLS)
- Private: Only you have access to your files
- GDPR Compliant: We follow EU data protection regulations
- Share control: You decide who has access (password, expiry, limits)
',
+ category: 'privacy',
+ order: 5,
+ language: isDE ? 'de' : 'en',
+ featured: true,
+ tags: isDE ? ['datenschutz', 'sicherheit', 'dsgvo'] : ['privacy', 'security', 'gdpr'],
+ },
+ ],
+ features: [
+ {
+ id: 'feature-storage',
+ title: isDE ? 'Cloud-Speicher' : 'Cloud Storage',
+ description: isDE
+ ? 'Sichere Dateiablage mit Ordnerstruktur'
+ : 'Secure file storage with folder structure',
+ icon: '☁️',
+ category: 'core',
+ highlights: isDE
+ ? ['Drag & Drop Upload', 'Ordner-Hierarchie', 'Datei-Tags']
+ : ['Drag & drop upload', 'Folder hierarchy', 'File tags'],
+ content: '',
+ order: 1,
+ language: isDE ? 'de' : 'en',
+ },
+ {
+ id: 'feature-sharing',
+ title: isDE ? 'Dateien teilen' : 'File Sharing',
+ description: isDE ? 'Teile Dateien sicher per Link' : 'Share files securely via link',
+ icon: '🔗',
+ category: 'core',
+ highlights: isDE
+ ? ['Passwortschutz', 'Ablaufdatum', 'Download-Limit']
+ : ['Password protection', 'Expiration date', 'Download limit'],
+ content: '',
+ order: 2,
+ language: isDE ? 'de' : 'en',
+ },
+ {
+ id: 'feature-versioning',
+ title: isDE ? 'Versionierung' : 'Versioning',
+ description: isDE
+ ? 'Automatische Versionskontrolle für alle Dateien'
+ : 'Automatic version control for all files',
+ icon: '📝',
+ category: 'advanced',
+ highlights: isDE
+ ? ['Versions-Historie', 'Kommentare', 'Ältere Versionen laden']
+ : ['Version history', 'Comments', 'Download older versions'],
+ content: '',
+ order: 3,
+ language: isDE ? 'de' : 'en',
+ },
+ {
+ id: 'feature-search',
+ title: isDE ? 'Suche' : 'Search',
+ description: isDE
+ ? 'Finde Dateien und Ordner blitzschnell'
+ : 'Find files and folders instantly',
+ icon: '🔍',
+ category: 'core',
+ highlights: isDE
+ ? ['Volltextsuche', 'Tag-Filter', 'Favoriten']
+ : ['Full-text search', 'Tag filters', 'Favorites'],
+ content: '',
+ order: 4,
+ language: isDE ? 'de' : 'en',
+ },
+ ],
+ shortcuts: [
+ {
+ id: 'shortcuts-nav',
+ category: 'navigation',
+ title: 'Navigation',
+ language: isDE ? 'de' : 'en',
+ order: 1,
+ shortcuts: [
+ { shortcut: 'Cmd/Ctrl + K', action: isDE ? 'Suche öffnen' : 'Open search' },
+ { shortcut: 'Cmd/Ctrl + 1', action: isDE ? 'Dateien' : 'Files' },
+ { shortcut: 'Cmd/Ctrl + 2', action: isDE ? 'Geteilt' : 'Shared' },
+ { shortcut: 'Cmd/Ctrl + 3', action: isDE ? 'Favoriten' : 'Favorites' },
+ { shortcut: 'Cmd/Ctrl + 4', action: isDE ? 'Papierkorb' : 'Trash' },
+ ],
+ },
+ ],
+ gettingStarted: [],
+ changelog: [],
+ contact: {
+ id: 'contact-support',
+ title: isDE ? 'Support kontaktieren' : 'Contact Support',
+ content: isDE
+ ? 'Unser Support-Team hilft dir bei allen Fragen rund um Storage.
'
+ : 'Our support team is here to help you with any storage-related questions.
',
+ language: isDE ? 'de' : 'en',
+ order: 1,
+ supportEmail: 'support@mana.how',
+ documentationUrl: 'https://mana.how/docs',
+ responseTime: isDE ? 'Normalerweise innerhalb von 24 Stunden' : 'Usually within 24 hours',
+ },
+ };
+}
diff --git a/apps/storage/apps/web/src/routes/help/+page.svelte b/apps/storage/apps/web/src/routes/help/+page.svelte
new file mode 100644
index 000000000..03cf75d04
--- /dev/null
+++ b/apps/storage/apps/web/src/routes/help/+page.svelte
@@ -0,0 +1,157 @@
+
+
+
+ {translations.title} | Storage
+
+
+ goto('/files')}
+ showGettingStarted={false}
+ showChangelog={false}
+ defaultSection="faq"
+/>
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2b3be822a..b0aefc8e7 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -752,6 +752,12 @@ importers:
'@manacore/shared-feedback-ui':
specifier: workspace:*
version: link:../../../../packages/shared-feedback-ui
+ '@manacore/shared-help-types':
+ specifier: workspace:*
+ version: link:../../../../packages/shared-help-types
+ '@manacore/shared-help-ui':
+ specifier: workspace:*
+ version: link:../../../../packages/shared-help-ui
'@manacore/shared-i18n':
specifier: workspace:*
version: link:../../../../packages/shared-i18n
@@ -4236,6 +4242,12 @@ importers:
'@manacore/shared-feedback-ui':
specifier: workspace:*
version: link:../../../../packages/shared-feedback-ui
+ '@manacore/shared-help-types':
+ specifier: workspace:*
+ version: link:../../../../packages/shared-help-types
+ '@manacore/shared-help-ui':
+ specifier: workspace:*
+ version: link:../../../../packages/shared-help-ui
'@manacore/shared-i18n':
specifier: workspace:*
version: link:../../../../packages/shared-i18n
@@ -5477,6 +5489,12 @@ importers:
'@manacore/shared-feedback-ui':
specifier: workspace:*
version: link:../../../../packages/shared-feedback-ui
+ '@manacore/shared-help-types':
+ specifier: workspace:*
+ version: link:../../../../packages/shared-help-types
+ '@manacore/shared-help-ui':
+ specifier: workspace:*
+ version: link:../../../../packages/shared-help-ui
'@manacore/shared-i18n':
specifier: workspace:*
version: link:../../../../packages/shared-i18n
@@ -6967,6 +6985,10 @@ importers:
version: 5.9.3
packages/shared-nestjs-auth:
+ dependencies:
+ jose:
+ specifier: ^5.0.0
+ version: 5.10.0
devDependencies:
'@nestjs/common':
specifier: ^10.0.0