From 7077c0a39701a8c3552f4da198ac52258686c497 Mon Sep 17 00:00:00 2001 From: Till JS Date: Wed, 25 Mar 2026 10:36:22 +0100 Subject: [PATCH] feat(help): add help pages to 10 remaining web apps Add bilingual (DE/EN) help content and help page routes for Clock, Context, ManaCore, ManaDeck, NutriPhi, Photos, Planta, Presi, Questions, and SkillTree. Uses shared-help-types and shared-help-ui packages consistent with already-committed help pages in other apps. Co-Authored-By: Claude Opus 4.6 (1M context) --- apps/clock/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 216 ++++++++++++++++++ .../web/src/routes/(app)/help/+page.svelte | 32 +++ apps/context/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 163 +++++++++++++ .../web/src/routes/(app)/help/+page.svelte | 32 +++ apps/manacore/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 153 +++++++++++++ .../web/src/routes/(app)/help/+page.svelte | 32 +++ apps/manadeck/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 151 ++++++++++++ .../web/src/routes/(app)/help/+page.svelte | 32 +++ apps/nutriphi/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 158 +++++++++++++ .../apps/web/src/routes/help/+page.svelte | 32 +++ .../apps/web/src/lib/content/help/index.ts | 146 ++++++++++++ .../web/src/routes/(app)/help/+page.svelte | 32 +++ apps/planta/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 150 ++++++++++++ .../web/src/routes/(app)/help/+page.svelte | 32 +++ apps/presi/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 170 ++++++++++++++ .../web/src/routes/(app)/help/+page.svelte | 32 +++ apps/questions/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 146 ++++++++++++ .../web/src/routes/(app)/help/+page.svelte | 32 +++ apps/skilltree/apps/web/package.json | 2 + .../apps/web/src/lib/content/help/index.ts | 146 ++++++++++++ .../apps/web/src/routes/help/+page.svelte | 32 +++ 29 files changed, 1937 insertions(+) create mode 100644 apps/clock/apps/web/src/lib/content/help/index.ts create mode 100644 apps/clock/apps/web/src/routes/(app)/help/+page.svelte create mode 100644 apps/context/apps/web/src/lib/content/help/index.ts create mode 100644 apps/context/apps/web/src/routes/(app)/help/+page.svelte create mode 100644 apps/manacore/apps/web/src/lib/content/help/index.ts create mode 100644 apps/manacore/apps/web/src/routes/(app)/help/+page.svelte create mode 100644 apps/manadeck/apps/web/src/lib/content/help/index.ts create mode 100644 apps/manadeck/apps/web/src/routes/(app)/help/+page.svelte create mode 100644 apps/nutriphi/apps/web/src/lib/content/help/index.ts create mode 100644 apps/nutriphi/apps/web/src/routes/help/+page.svelte create mode 100644 apps/photos/apps/web/src/lib/content/help/index.ts create mode 100644 apps/photos/apps/web/src/routes/(app)/help/+page.svelte create mode 100644 apps/planta/apps/web/src/lib/content/help/index.ts create mode 100644 apps/planta/apps/web/src/routes/(app)/help/+page.svelte create mode 100644 apps/presi/apps/web/src/lib/content/help/index.ts create mode 100644 apps/presi/apps/web/src/routes/(app)/help/+page.svelte create mode 100644 apps/questions/apps/web/src/lib/content/help/index.ts create mode 100644 apps/questions/apps/web/src/routes/(app)/help/+page.svelte create mode 100644 apps/skilltree/apps/web/src/lib/content/help/index.ts create mode 100644 apps/skilltree/apps/web/src/routes/help/+page.svelte diff --git a/apps/clock/apps/web/package.json b/apps/clock/apps/web/package.json index 05a858e18..3df6a6d71 100644 --- a/apps/clock/apps/web/package.json +++ b/apps/clock/apps/web/package.json @@ -45,6 +45,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/clock/apps/web/src/lib/content/help/index.ts b/apps/clock/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..744b5fdcf --- /dev/null +++ b/apps/clock/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,216 @@ +/** + * Help content for Clock app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getClockHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-create-alarms', + question: isDE ? 'Wie erstelle ich Wecker?' : 'How do I create alarms?', + answer: isDE + ? '

Du kannst Wecker auf verschiedene Arten erstellen:

' + : '

You can create alarms in several ways:

', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + tags: isDE ? ['wecker', 'erstellen', 'neu'] : ['alarm', 'create', 'new'], + }, + { + id: 'faq-timers', + question: isDE + ? 'Wie funktionieren Timer und Stoppuhr?' + : 'How do timers and the stopwatch work?', + answer: isDE + ? '

Clock bietet zwei Zeitmesser:

Beide laufen auch im Hintergrund weiter und benachrichtigen dich, wenn die Zeit abgelaufen ist.

' + : '

Clock offers two time measurement tools:

Both continue running in the background and notify you when time is up.

', + category: 'features', + order: 2, + language: isDE ? 'de' : 'en', + tags: isDE ? ['timer', 'stoppuhr', 'countdown'] : ['timer', 'stopwatch', 'countdown'], + }, + { + id: 'faq-pomodoro', + question: isDE ? 'Was ist die Pomodoro-Technik?' : 'What is the Pomodoro technique?', + answer: isDE + ? '

Die Pomodoro-Technik ist eine Zeitmanagement-Methode:

  1. Arbeite 25 Minuten konzentriert (ein "Pomodoro")
  2. Mache eine 5-Minuten-Pause
  3. Nach 4 Pomodoros: 15-30 Minuten längere Pause

In Clock kannst du die Intervalle anpassen, deinen Fortschritt verfolgen und Statistiken über deine Produktivität einsehen.

' + : '

The Pomodoro technique is a time management method:

  1. Work for 25 minutes with focus (one "Pomodoro")
  2. Take a 5-minute break
  3. After 4 Pomodoros: take a 15-30 minute longer break

In Clock you can customize the intervals, track your progress, and view statistics about your productivity.

', + category: 'features', + order: 3, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['pomodoro', 'produktivität', 'fokus', 'technik'] + : ['pomodoro', 'productivity', 'focus', 'technique'], + }, + { + id: 'faq-life-clock', + question: isDE ? 'Was ist die Life Clock?' : 'What is the Life Clock?', + answer: isDE + ? '

Die Life Clock ist eine einzigartige Visualisierung deiner Lebenszeit:

Die Life Clock soll dich motivieren, deine Zeit bewusst zu nutzen — keine Angst, sondern Inspiration.

' + : '

The Life Clock is a unique visualization of your lifetime:

The Life Clock is meant to motivate you to use your time mindfully — not fear, but inspiration.

', + category: 'features', + order: 4, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['life-clock', 'lebenszeit', 'visualisierung'] + : ['life-clock', 'lifetime', 'visualization'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Daten geschützt?' : 'How is my data protected?', + answer: isDE + ? '

Deine Daten sind sicher:

' + : '

Your data is secure:

', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + featured: true, + tags: isDE ? ['datenschutz', 'dsgvo', 'sicherheit'] : ['privacy', 'gdpr', 'security'], + }, + ], + features: [ + { + id: 'feature-alarms', + title: isDE ? 'Wecker' : 'Alarms', + description: isDE + ? 'Erstelle wiederkehrende und einmalige Wecker mit individuellen Tönen' + : 'Create recurring and one-time alarms with custom sounds', + icon: '⏰', + category: 'core', + highlights: isDE + ? ['Wiederkehrende Wecker', 'Individuelle Töne', 'Schlummerfunktion', 'Labels'] + : ['Recurring alarms', 'Custom sounds', 'Snooze function', 'Labels'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-timers-stopwatch', + title: isDE ? 'Timer & Stoppuhr' : 'Timers & Stopwatch', + description: isDE + ? 'Mehrere gleichzeitige Timer und eine Stoppuhr mit Rundenzeiten' + : 'Multiple simultaneous timers and a stopwatch with lap times', + icon: '⏱️', + category: 'core', + highlights: isDE + ? ['Mehrere Timer', 'Rundenzeiten', 'Hintergrund-Benachrichtigung', 'Voreinstellungen'] + : ['Multiple timers', 'Lap times', 'Background notifications', 'Presets'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-pomodoro', + title: 'Pomodoro', + description: isDE + ? 'Steigere deine Produktivität mit der Pomodoro-Technik und Statistiken' + : 'Boost your productivity with the Pomodoro technique and statistics', + icon: '🍅', + category: 'advanced', + highlights: isDE + ? ['Anpassbare Intervalle', 'Sitzungs-Tracking', 'Statistiken', 'Benachrichtigungen'] + : ['Customizable intervals', 'Session tracking', 'Statistics', 'Notifications'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-world-clock', + title: isDE ? 'Weltzeituhr' : 'World Clock', + description: isDE + ? 'Behalte die Uhrzeit in verschiedenen Zeitzonen im Blick' + : 'Keep track of the time across different time zones', + icon: '🌍', + category: 'core', + highlights: isDE + ? ['Alle Zeitzonen', 'Zeitvergleich', 'Favoriten', 'Analoges Zifferblatt'] + : ['All time zones', 'Time comparison', 'Favorites', 'Analog clock face'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + shortcuts: [ + { + id: 'shortcuts-general', + category: 'general', + title: isDE ? 'Allgemein' : 'General', + language: isDE ? 'de' : 'en', + order: 1, + shortcuts: [ + { + shortcut: 'Cmd/Ctrl + K', + action: isDE ? 'Kommandoleiste öffnen' : 'Open command bar', + }, + { + shortcut: 'A', + action: isDE ? 'Neuer Wecker' : 'New alarm', + }, + { + shortcut: 'T', + action: isDE ? 'Neuer Timer' : 'New timer', + }, + ], + }, + { + id: 'shortcuts-navigation', + category: 'navigation', + title: 'Navigation', + language: isDE ? 'de' : 'en', + order: 2, + shortcuts: [ + { + shortcut: 'Cmd/Ctrl + 1', + action: isDE ? 'Wecker öffnen' : 'Open Alarms', + }, + { + shortcut: 'Cmd/Ctrl + 2', + action: isDE ? 'Timer öffnen' : 'Open Timers', + }, + { + shortcut: 'Cmd/Ctrl + 3', + action: isDE ? 'Stoppuhr öffnen' : 'Open Stopwatch', + }, + { + shortcut: 'Cmd/Ctrl + 4', + action: isDE ? 'Pomodoro öffnen' : 'Open Pomodoro', + }, + { + shortcut: 'Cmd/Ctrl + 5', + action: isDE ? 'Weltzeituhr öffnen' : 'Open World Clock', + }, + { + shortcut: 'Cmd/Ctrl + 6', + action: isDE ? 'Life Clock öffnen' : 'Open Life Clock', + }, + { + shortcut: 'Cmd/Ctrl + 7', + action: isDE ? 'Statistiken öffnen' : 'Open Statistics', + }, + { + shortcut: 'Cmd/Ctrl + 8', + action: isDE ? 'Einstellungen öffnen' : 'Open Settings', + }, + ], + }, + ], + gettingStarted: [], + changelog: [], + contact: { + id: 'contact-support', + title: isDE ? 'Support kontaktieren' : 'Contact Support', + content: isDE + ? '

Unser Support-Team hilft dir bei allen Fragen rund um Clock.

' + : '

Our support team is here to help you with any questions about Clock.

', + 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/clock/apps/web/src/routes/(app)/help/+page.svelte b/apps/clock/apps/web/src/routes/(app)/help/+page.svelte new file mode 100644 index 000000000..c04e19694 --- /dev/null +++ b/apps/clock/apps/web/src/routes/(app)/help/+page.svelte @@ -0,0 +1,32 @@ + + + + {translations.title} | Clock + + + goto('/')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/apps/context/apps/web/package.json b/apps/context/apps/web/package.json index 004c5d74f..f2f6be313 100644 --- a/apps/context/apps/web/package.json +++ b/apps/context/apps/web/package.json @@ -41,6 +41,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/context/apps/web/src/lib/content/help/index.ts b/apps/context/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..32bc9f7a5 --- /dev/null +++ b/apps/context/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,163 @@ +/** + * Help content for Context app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getContextHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-spaces', + question: isDE ? 'Was sind Spaces?' : 'What are Spaces?', + answer: isDE + ? '

Spaces sind Arbeitsbereiche, in denen du Dokumente organisierst:

  • Erstelle separate Spaces für verschiedene Projekte oder Themen
  • Jeder Space hat eigene Dokumente, Einstellungen und Zugriffsrechte
  • Wechsle schnell zwischen Spaces über die Seitenleiste
  • Teile Spaces mit Teammitgliedern für gemeinsames Arbeiten
' + : '

Spaces are workspaces where you organize your documents:

  • Create separate Spaces for different projects or topics
  • Each Space has its own documents, settings, and access rights
  • Quickly switch between Spaces via the sidebar
  • Share Spaces with team members for collaboration
', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['spaces', 'arbeitsbereiche', 'organisation'] + : ['spaces', 'workspaces', 'organization'], + }, + { + id: 'faq-ai-generation', + question: isDE ? 'Wie funktioniert die KI-Generierung?' : 'How does AI generation work?', + answer: isDE + ? '

Context nutzt mehrere KI-Modelle für die Dokumentenerstellung:

  1. Wähle ein Dokument oder erstelle ein neues
  2. Beschreibe, was du generieren möchtest, oder markiere Text für Überarbeitung
  3. Wähle das gewünschte KI-Modell (z.B. GPT-4, Claude, Gemini)
  4. Die KI generiert den Inhalt direkt in deinem Dokument

Du kannst auch bestehende Texte umschreiben, zusammenfassen oder erweitern lassen.

' + : '

Context uses multiple AI models for document creation:

  1. Select a document or create a new one
  2. Describe what you want to generate, or highlight text for revision
  3. Choose the desired AI model (e.g. GPT-4, Claude, Gemini)
  4. The AI generates content directly in your document

You can also have existing text rewritten, summarized, or expanded.

', + category: 'features', + order: 2, + language: isDE ? 'de' : 'en', + tags: isDE ? ['ki', 'generierung', 'dokument'] : ['ai', 'generation', 'document'], + }, + { + id: 'faq-models', + question: isDE ? 'Welche KI-Modelle sind verfügbar?' : 'What AI models are available?', + answer: isDE + ? '

Context unterstützt mehrere führende KI-Modelle:

  • OpenAI GPT-4: Vielseitig und leistungsstark für komplexe Aufgaben
  • Anthropic Claude: Besonders gut bei langen Dokumenten und Analysen
  • Google Gemini: Schnell und effizient für alltägliche Aufgaben

Jedes Modell hat unterschiedliche Stärken. Du kannst das Modell pro Generierung wechseln, um die besten Ergebnisse zu erzielen.

' + : '

Context supports multiple leading AI models:

  • OpenAI GPT-4: Versatile and powerful for complex tasks
  • Anthropic Claude: Especially good with long documents and analysis
  • Google Gemini: Fast and efficient for everyday tasks

Each model has different strengths. You can switch models per generation to achieve the best results.

', + category: 'technical', + order: 3, + language: isDE ? 'de' : 'en', + tags: isDE ? ['modelle', 'gpt', 'claude', 'gemini'] : ['models', 'gpt', 'claude', 'gemini'], + }, + { + id: 'faq-versioning', + question: isDE + ? 'Wie funktioniert die Dokumentenversionierung?' + : 'How does document versioning work?', + answer: isDE + ? '

Context speichert automatisch Versionen deiner Dokumente:

  • Jede Änderung wird als neue Version gespeichert
  • Vergleiche zwei Versionen nebeneinander mit Diff-Ansicht
  • Stelle jede frühere Version mit einem Klick wieder her
  • KI-Generierungen werden als separate Versionen markiert

So kannst du jederzeit zu einem früheren Stand zurückkehren, ohne Arbeit zu verlieren.

' + : '

Context automatically saves versions of your documents:

  • Every change is saved as a new version
  • Compare two versions side by side with diff view
  • Restore any previous version with one click
  • AI generations are marked as separate versions

This way you can always go back to a previous state without losing work.

', + category: 'features', + order: 4, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['versionierung', 'historie', 'wiederherstellen'] + : ['versioning', 'history', 'restore'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Daten geschützt?' : 'How is my data protected?', + answer: isDE + ? '

Deine Daten sind sicher:

  • Verschlüsselung: Alle Daten werden bei der Übertragung (TLS) und im Ruhezustand verschlüsselt
  • DSGVO-konform: Wir halten uns an die EU-Datenschutzverordnung
  • KI-Datenschutz: Deine Dokumente werden nicht zum Trainieren von KI-Modellen verwendet
  • Datenexport: Du kannst jederzeit alle Dokumente exportieren
' + : '

Your data is secure:

  • Encryption: All data is encrypted in transit (TLS) and at rest
  • GDPR compliant: We follow EU data protection regulations
  • AI privacy: Your documents are not used to train AI models
  • Data export: You can export all documents at any time
', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + featured: true, + tags: isDE ? ['datenschutz', 'dsgvo', 'sicherheit'] : ['privacy', 'gdpr', 'security'], + }, + ], + features: [ + { + id: 'feature-ai-generation', + title: isDE ? 'KI-Dokumentengenerierung' : 'AI Document Generation', + description: isDE + ? 'Erstelle und überarbeite Dokumente mit mehreren KI-Modellen' + : 'Create and revise documents with multiple AI models', + icon: '🤖', + category: 'core', + highlights: isDE + ? [ + 'Multi-Modell-Unterstützung', + 'Inline-Generierung', + 'Umschreiben & Zusammenfassen', + 'Kontextbewusst', + ] + : ['Multi-model support', 'Inline generation', 'Rewrite & summarize', 'Context-aware'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-spaces', + title: 'Spaces', + description: isDE + ? 'Organisiere Dokumente in thematischen Arbeitsbereichen' + : 'Organize documents in thematic workspaces', + icon: '📂', + category: 'core', + highlights: isDE + ? ['Projekt-Organisation', 'Zugriffsrechte', 'Team-Zusammenarbeit', 'Schneller Wechsel'] + : ['Project organization', 'Access rights', 'Team collaboration', 'Quick switching'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-versioning', + title: isDE ? 'Dokumentenversionierung' : 'Document Versioning', + description: isDE + ? 'Automatische Versionierung mit Diff-Ansicht und Wiederherstellung' + : 'Automatic versioning with diff view and restoration', + icon: '📋', + category: 'advanced', + highlights: isDE + ? [ + 'Automatische Versionen', + 'Diff-Vergleich', + 'Ein-Klick-Wiederherstellung', + 'KI-Versionsmarker', + ] + : ['Automatic versions', 'Diff comparison', 'One-click restore', 'AI version markers'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-multi-model', + title: isDE ? 'Multi-Modell-Unterstützung' : 'Multi-Model Support', + description: isDE + ? 'Wähle aus GPT-4, Claude, Gemini und weiteren KI-Modellen' + : 'Choose from GPT-4, Claude, Gemini, and more AI models', + icon: '🧠', + category: 'advanced', + highlights: isDE + ? ['GPT-4', 'Claude', 'Gemini', 'Modellvergleich'] + : ['GPT-4', 'Claude', 'Gemini', 'Model comparison'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + 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 Context.

' + : '

Our support team is here to help you with any questions about Context.

', + 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/context/apps/web/src/routes/(app)/help/+page.svelte b/apps/context/apps/web/src/routes/(app)/help/+page.svelte new file mode 100644 index 000000000..4789ab212 --- /dev/null +++ b/apps/context/apps/web/src/routes/(app)/help/+page.svelte @@ -0,0 +1,32 @@ + + + + {translations.title} | Context + + + goto('/')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/apps/manacore/apps/web/package.json b/apps/manacore/apps/web/package.json index 5bae124f3..e5d7005cd 100644 --- a/apps/manacore/apps/web/package.json +++ b/apps/manacore/apps/web/package.json @@ -52,6 +52,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/manacore/apps/web/src/lib/content/help/index.ts b/apps/manacore/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..a4e65b8ef --- /dev/null +++ b/apps/manacore/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,153 @@ +/** + * Help content for ManaCore app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getManaCoreHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-what-is-manacore', + question: isDE ? 'Was ist ManaCore?' : 'What is ManaCore?', + answer: isDE + ? '

ManaCore ist die zentrale Plattform des Mana-Ökosystems:

  • Verwalte dein Konto und Profil an einem zentralen Ort
  • Greife auf alle Mana-Apps zu — Chat, Picture, Zitare, Clock und mehr
  • Nutze Single Sign-On (SSO), um dich einmal anzumelden und überall eingeloggt zu sein
  • Erstelle und verwalte Organisationen für Teamarbeit
' + : '

ManaCore is the central platform of the Mana ecosystem:

  • Manage your account and profile in one central place
  • Access all Mana apps — Chat, Picture, Zitare, Clock, and more
  • Use Single Sign-On (SSO) to log in once and be authenticated everywhere
  • Create and manage organizations for teamwork
', + category: 'general', + order: 1, + language: isDE ? 'de' : 'en', + tags: isDE ? ['manacore', 'plattform', 'ökosystem'] : ['manacore', 'platform', 'ecosystem'], + }, + { + id: 'faq-sso', + question: isDE + ? 'Wie funktioniert Single Sign-On (SSO)?' + : 'How does Single Sign-On (SSO) work?', + answer: isDE + ? '

Single Sign-On ermöglicht dir, dich einmal anzumelden und alle Mana-Apps zu nutzen:

  1. Melde dich bei einer beliebigen Mana-App an (z.B. ManaCore, Chat, Picture)
  2. Dein Login wird automatisch auf alle verbundenen Apps übertragen
  3. Du bleibst eingeloggt, bis du dich explizit abmeldest

SSO verwendet sichere JWT-Tokens mit EdDSA-Verschlüsselung. Dein Passwort wird nur einmal beim Login übertragen.

' + : '

Single Sign-On lets you log in once and use all Mana apps:

  1. Sign in to any Mana app (e.g. ManaCore, Chat, Picture)
  2. Your login is automatically shared across all connected apps
  3. You stay logged in until you explicitly sign out

SSO uses secure JWT tokens with EdDSA encryption. Your password is only transmitted once during login.

', + category: 'account', + order: 2, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['sso', 'anmeldung', 'login', 'authentifizierung'] + : ['sso', 'login', 'authentication', 'sign-in'], + }, + { + id: 'faq-organizations', + question: isDE ? 'Wie verwalte ich Organisationen?' : 'How do I manage organizations?', + answer: isDE + ? '

Organisationen ermöglichen Teamarbeit im Mana-Ökosystem:

  • Erstellen: Gehe zu Einstellungen > Organisationen > Neue Organisation
  • Mitglieder einladen: Lade Teammitglieder per E-Mail ein und weise Rollen zu (Admin, Mitglied)
  • Apps verwalten: Aktiviere oder deaktiviere Apps pro Organisation
  • Landing Page: Erstelle eine eigene Landingpage unter slug.mana.how
' + : '

Organizations enable teamwork in the Mana ecosystem:

  • Create: Go to Settings > Organizations > New Organization
  • Invite members: Invite team members by email and assign roles (Admin, Member)
  • Manage apps: Enable or disable apps per organization
  • Landing page: Create a custom landing page at slug.mana.how
', + category: 'features', + order: 3, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['organisation', 'team', 'mitglieder', 'verwalten'] + : ['organization', 'team', 'members', 'manage'], + }, + { + id: 'faq-switch-apps', + question: isDE ? 'Wie wechsle ich zwischen Apps?' : 'How do I switch between apps?', + answer: isDE + ? '

Du kannst schnell zwischen Mana-Apps wechseln:

  • App-Übersicht: Klicke auf das App-Menü in der Navigation, um alle verfügbaren Apps zu sehen
  • Direkt-Links: Jede App hat ihre eigene URL (z.B. chat.mana.how, picture.mana.how)
  • Dashboard: Das ManaCore-Dashboard zeigt alle deine Apps mit Schnellzugriff

Dein Login bleibt dank SSO beim Wechsel zwischen Apps erhalten.

' + : '

You can quickly switch between Mana apps:

  • App overview: Click the app menu in the navigation to see all available apps
  • Direct links: Each app has its own URL (e.g. chat.mana.how, picture.mana.how)
  • Dashboard: The ManaCore dashboard shows all your apps with quick access

Your login persists when switching between apps thanks to SSO.

', + category: 'general', + order: 4, + language: isDE ? 'de' : 'en', + tags: isDE ? ['wechseln', 'apps', 'navigation'] : ['switch', 'apps', 'navigation'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Daten geschützt?' : 'How is my data protected?', + answer: isDE + ? '

Deine Daten sind sicher:

  • Verschlüsselung: Alle Daten werden bei der Übertragung (TLS) und im Ruhezustand verschlüsselt
  • DSGVO-konform: Wir halten uns an die EU-Datenschutzverordnung
  • Datenhoheit: Deine Daten gehören dir — exportiere oder lösche sie jederzeit
  • Kein Datenverkauf: Deine Daten werden nie an Dritte verkauft
  • Self-Hosted: ManaCore läuft auf unserer eigenen Infrastruktur
' + : '

Your data is secure:

  • Encryption: All data is encrypted in transit (TLS) and at rest
  • GDPR compliant: We follow EU data protection regulations
  • Data sovereignty: Your data belongs to you — export or delete it anytime
  • No data selling: Your data is never sold to third parties
  • Self-hosted: ManaCore runs on our own infrastructure
', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + featured: true, + tags: isDE ? ['datenschutz', 'dsgvo', 'sicherheit'] : ['privacy', 'gdpr', 'security'], + }, + ], + features: [ + { + id: 'feature-sso', + title: 'Single Sign-On', + description: isDE + ? 'Einmal anmelden und alle Mana-Apps nutzen' + : 'Sign in once and use all Mana apps', + icon: '🔐', + category: 'core', + highlights: isDE + ? ['Ein Login für alles', 'EdDSA JWT-Tokens', 'Sichere Sitzungen', 'Automatischer Logout'] + : ['One login for everything', 'EdDSA JWT tokens', 'Secure sessions', 'Automatic logout'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-app-ecosystem', + title: isDE ? 'App-Ökosystem' : 'App Ecosystem', + description: isDE + ? 'Zugang zu allen Mana-Apps über eine zentrale Plattform' + : 'Access all Mana apps from one central platform', + icon: '🌐', + category: 'core', + highlights: isDE + ? ['App-Übersicht', 'Schnellzugriff', 'Einheitliches Design', 'Verbundene Daten'] + : ['App overview', 'Quick access', 'Unified design', 'Connected data'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-organizations', + title: isDE ? 'Organisationen & Teams' : 'Organizations & Teams', + description: isDE + ? 'Erstelle Organisationen und verwalte Teammitglieder und Rollen' + : 'Create organizations and manage team members and roles', + icon: '👥', + category: 'advanced', + highlights: isDE + ? ['Rollenbasierter Zugriff', 'Team-Einladungen', 'App-Verwaltung', 'Landing Pages'] + : ['Role-based access', 'Team invitations', 'App management', 'Landing pages'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-unified-profile', + title: isDE ? 'Einheitliches Profil' : 'Unified Profile', + description: isDE + ? 'Verwalte dein Profil, Einstellungen und Sicherheit an einem Ort' + : 'Manage your profile, settings, and security in one place', + icon: '👤', + category: 'core', + highlights: isDE + ? ['Profilbild', 'Sicherheitseinstellungen', 'Sitzungsverwaltung', 'Datenexport'] + : ['Profile picture', 'Security settings', 'Session management', 'Data export'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + 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 ManaCore.

' + : '

Our support team is here to help you with any questions about ManaCore.

', + 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/manacore/apps/web/src/routes/(app)/help/+page.svelte b/apps/manacore/apps/web/src/routes/(app)/help/+page.svelte new file mode 100644 index 000000000..e990c5a22 --- /dev/null +++ b/apps/manacore/apps/web/src/routes/(app)/help/+page.svelte @@ -0,0 +1,32 @@ + + + + {translations.title} | ManaCore + + + goto('/dashboard')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/apps/manadeck/apps/web/package.json b/apps/manadeck/apps/web/package.json index f04130c3c..9ae70ac05 100644 --- a/apps/manadeck/apps/web/package.json +++ b/apps/manadeck/apps/web/package.json @@ -39,6 +39,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/manadeck/apps/web/src/lib/content/help/index.ts b/apps/manadeck/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..c91bdd772 --- /dev/null +++ b/apps/manadeck/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,151 @@ +/** + * Help content for ManaDeck app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getManaDeckHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-create-decks', + question: isDE ? 'Wie erstelle ich Decks und Karten?' : 'How do I create decks and cards?', + answer: isDE + ? '

So erstellst du Decks und Karten in ManaDeck:

  1. Klicke auf Neues Deck und gib einen Namen und eine Beschreibung ein
  2. Öffne das Deck und klicke auf Karte hinzufügen
  3. Gib die Vorderseite (Frage) und Rückseite (Antwort) ein
  4. Optional: Füge Bilder, Tags oder Notizen hinzu

Du kannst auch mehrere Karten auf einmal importieren — siehe Import & Export.

' + : '

Here is how to create decks and cards in ManaDeck:

  1. Click New Deck and enter a name and description
  2. Open the deck and click Add Card
  3. Enter the front (question) and back (answer)
  4. Optional: Add images, tags, or notes

You can also import multiple cards at once — see Import & Export.

', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + tags: isDE ? ['deck', 'karten', 'erstellen'] : ['deck', 'cards', 'create'], + }, + { + id: 'faq-spaced-repetition', + question: isDE ? 'Wie funktioniert Spaced Repetition?' : 'How does spaced repetition work?', + answer: isDE + ? '

Spaced Repetition (verteiltes Wiederholen) ist eine wissenschaftlich fundierte Lernmethode:

  • Karten, die du gut kannst, werden in größeren Abständen gezeigt
  • Karten, die du noch lernst, erscheinen häufiger
  • Der Algorithmus passt sich automatisch an dein Lerntempo an
  • Nach jeder Wiederholung bewertest du dein Wissen: Nochmal, Schwer, Gut oder Leicht

So lernst du effizienter und behältst Wissen langfristig.

' + : '

Spaced repetition is a scientifically proven learning method:

  • Cards you know well are shown at increasing intervals
  • Cards you are still learning appear more frequently
  • The algorithm automatically adapts to your learning pace
  • After each review, rate your knowledge: Again, Hard, Good, or Easy

This way you learn more efficiently and retain knowledge long-term.

', + category: 'features', + order: 2, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['spaced-repetition', 'lernen', 'algorithmus', 'wiederholen'] + : ['spaced-repetition', 'learning', 'algorithm', 'review'], + }, + { + id: 'faq-study-sessions', + question: isDE ? 'Wie starte ich eine Lernsitzung?' : 'How do I start a study session?', + answer: isDE + ? '

So startest du eine Lernsitzung:

  1. Wähle ein Deck aus deiner Bibliothek
  2. Klicke auf Lernen — die fälligen Karten werden automatisch ausgewählt
  3. Für jede Karte: Lies die Frage, überlege die Antwort, decke die Rückseite auf
  4. Bewerte dein Wissen mit den Buttons: Nochmal, Schwer, Gut, Leicht

ManaDeck zeigt dir an, wie viele Karten neu, fällig und zu wiederholen sind.

' + : '

Here is how to start a study session:

  1. Select a deck from your library
  2. Click Study — due cards are automatically selected
  3. For each card: Read the question, think of the answer, reveal the back
  4. Rate your knowledge with the buttons: Again, Hard, Good, Easy

ManaDeck shows you how many cards are new, due, and to review.

', + category: 'features', + order: 3, + language: isDE ? 'de' : 'en', + tags: isDE ? ['lernen', 'sitzung', 'wiederholen'] : ['study', 'session', 'review'], + }, + { + id: 'faq-import-export', + question: isDE + ? 'Kann ich Karten importieren und exportieren?' + : 'Can I import and export cards?', + answer: isDE + ? '

ManaDeck unterstützt verschiedene Import- und Exportformate:

  • CSV: Importiere Karten aus Tabellenkalkulationen (Vorderseite, Rückseite, Tags)
  • Anki-Format: Importiere bestehende Anki-Decks (.apkg)
  • JSON: Für programmatischen Zugriff und Backup
  • Export: Exportiere einzelne Decks oder deine gesamte Bibliothek
' + : '

ManaDeck supports various import and export formats:

  • CSV: Import cards from spreadsheets (front, back, tags)
  • Anki format: Import existing Anki decks (.apkg)
  • JSON: For programmatic access and backup
  • Export: Export individual decks or your entire library
', + category: 'technical', + order: 4, + language: isDE ? 'de' : 'en', + tags: isDE ? ['import', 'export', 'csv', 'anki'] : ['import', 'export', 'csv', 'anki'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Daten geschützt?' : 'How is my data protected?', + answer: isDE + ? '

Deine Daten sind sicher:

  • Verschlüsselung: Alle Daten werden bei der Übertragung (TLS) verschlüsselt
  • DSGVO-konform: Wir halten uns an die EU-Datenschutzverordnung
  • Kein Datenverkauf: Deine Lernkarten und Fortschritte werden nie an Dritte verkauft
  • Datenexport: Du kannst jederzeit alle Decks und Karten exportieren
' + : '

Your data is secure:

  • Encryption: All data is encrypted in transit (TLS)
  • GDPR compliant: We follow EU data protection regulations
  • No data selling: Your flashcards and progress are never sold to third parties
  • Data export: You can export all decks and cards at any time
', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + featured: true, + tags: isDE ? ['datenschutz', 'dsgvo', 'sicherheit'] : ['privacy', 'gdpr', 'security'], + }, + ], + features: [ + { + id: 'feature-deck-management', + title: isDE ? 'Deck-Verwaltung' : 'Deck Management', + description: isDE + ? 'Erstelle, organisiere und verwalte deine Karteikarten-Decks' + : 'Create, organize, and manage your flashcard decks', + icon: '🃏', + category: 'core', + highlights: isDE + ? ['Decks & Unterdecks', 'Tags & Kategorien', 'Bilder auf Karten', 'Deck-Statistiken'] + : ['Decks & sub-decks', 'Tags & categories', 'Images on cards', 'Deck statistics'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-spaced-repetition', + title: 'Spaced Repetition', + description: isDE + ? 'Wissenschaftlich fundierter Algorithmus für effizientes Lernen' + : 'Scientifically proven algorithm for efficient learning', + icon: '🧠', + category: 'core', + highlights: isDE + ? ['Adaptiver Algorithmus', 'Optimale Intervalle', 'Lernstatistiken', 'Tägliche Ziele'] + : ['Adaptive algorithm', 'Optimal intervals', 'Learning statistics', 'Daily goals'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-study-sessions', + title: isDE ? 'Lernsitzungen' : 'Study Sessions', + description: isDE + ? 'Starte fokussierte Lernsitzungen mit fälligen Karten' + : 'Start focused study sessions with due cards', + icon: '📖', + category: 'core', + highlights: isDE + ? ['Fällige Karten', 'Bewertungssystem', 'Fortschrittsanzeige', 'Sitzungsstatistiken'] + : ['Due cards', 'Rating system', 'Progress indicator', 'Session statistics'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-import-export', + title: 'Import & Export', + description: isDE + ? 'Importiere aus CSV, Anki und mehr — exportiere jederzeit' + : 'Import from CSV, Anki, and more — export anytime', + icon: '📦', + category: 'advanced', + highlights: isDE + ? ['CSV-Import', 'Anki-Kompatibilität', 'JSON-Export', 'Bibliotheks-Backup'] + : ['CSV import', 'Anki compatibility', 'JSON export', 'Library backup'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + 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 ManaDeck.

' + : '

Our support team is here to help you with any questions about ManaDeck.

', + 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/manadeck/apps/web/src/routes/(app)/help/+page.svelte b/apps/manadeck/apps/web/src/routes/(app)/help/+page.svelte new file mode 100644 index 000000000..95ca0bc4f --- /dev/null +++ b/apps/manadeck/apps/web/src/routes/(app)/help/+page.svelte @@ -0,0 +1,32 @@ + + + + {translations.title} | ManaDeck + + + goto('/')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/apps/nutriphi/apps/web/package.json b/apps/nutriphi/apps/web/package.json index e6d9c054f..7a437a150 100644 --- a/apps/nutriphi/apps/web/package.json +++ b/apps/nutriphi/apps/web/package.json @@ -47,6 +47,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-ui": "workspace:*", diff --git a/apps/nutriphi/apps/web/src/lib/content/help/index.ts b/apps/nutriphi/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..29bfb3f2b --- /dev/null +++ b/apps/nutriphi/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,158 @@ +/** + * Help content for NutriPhi app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getNutriPhiHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-log-meals', + question: isDE ? 'Wie erfasse ich meine Mahlzeiten?' : 'How do I log my meals?', + answer: isDE + ? '

Du kannst Mahlzeiten auf zwei Arten erfassen:

  • Foto-Analyse: Mache ein Foto deiner Mahlzeit — die KI erkennt automatisch die Lebensmittel und schätzt Nährwerte
  • Manuelle Eingabe: Suche nach Lebensmitteln in der Datenbank und gib Portionsgrößen ein

Nach der Erfassung kannst du die erkannten Lebensmittel und Mengen anpassen, bevor du speicherst.

' + : '

You can log meals in two ways:

  • Photo analysis: Take a photo of your meal — the AI automatically recognizes the food items and estimates nutritional values
  • Manual entry: Search for food items in the database and enter portion sizes

After logging, you can adjust the recognized food items and quantities before saving.

', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['mahlzeit', 'erfassen', 'foto', 'eingabe'] + : ['meal', 'log', 'photo', 'entry'], + }, + { + id: 'faq-nutrients', + question: isDE ? 'Welche Nährwerte werden erfasst?' : 'What nutrients are tracked?', + answer: isDE + ? '

NutriPhi erfasst umfassende Makro- und Mikronährstoffe:

  • Makronährstoffe: Kalorien, Protein, Kohlenhydrate, Fett, Ballaststoffe
  • Mikronährstoffe: Vitamine (A, B, C, D, E, K), Mineralstoffe (Eisen, Kalzium, Zink, Magnesium)
  • Weitere: Zucker, gesättigte Fettsäuren, Natrium, Cholesterin

Dein Tagesbericht zeigt dir, wie nah du an deinen persönlichen Zielen bist.

' + : '

NutriPhi tracks comprehensive macro and micronutrients:

  • Macronutrients: Calories, protein, carbohydrates, fat, fiber
  • Micronutrients: Vitamins (A, B, C, D, E, K), minerals (iron, calcium, zinc, magnesium)
  • Other: Sugar, saturated fat, sodium, cholesterol

Your daily report shows how close you are to your personal goals.

', + category: 'features', + order: 2, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['nährwerte', 'makros', 'mikros', 'kalorien'] + : ['nutrients', 'macros', 'micros', 'calories'], + }, + { + id: 'faq-ai-analysis', + question: isDE ? 'Wie funktioniert die KI-Analyse?' : 'How does the AI analysis work?', + answer: isDE + ? '

Die KI-gestützte Foto-Analyse funktioniert in drei Schritten:

  1. Erkennung: Die KI identifiziert alle sichtbaren Lebensmittel auf dem Foto
  2. Portionsschätzung: Anhand der Bildgröße und bekannter Referenzobjekte wird die Menge geschätzt
  3. Nährwertberechnung: Die Nährwerte werden aus unserer Datenbank abgerufen und berechnet

Die Genauigkeit liegt bei ca. 85-90%. Du kannst die Ergebnisse immer manuell korrigieren.

' + : '

The AI-powered photo analysis works in three steps:

  1. Recognition: The AI identifies all visible food items in the photo
  2. Portion estimation: Based on image size and known reference objects, quantities are estimated
  3. Nutrition calculation: Nutritional values are retrieved from our database and calculated

Accuracy is approximately 85-90%. You can always manually correct the results.

', + category: 'technical', + order: 3, + language: isDE ? 'de' : 'en', + tags: isDE + ? ['ki', 'analyse', 'foto', 'erkennung'] + : ['ai', 'analysis', 'photo', 'recognition'], + }, + { + id: 'faq-favorites', + question: isDE ? 'Wie nutze ich Favoriten-Mahlzeiten?' : 'How do I use favorite meals?', + answer: isDE + ? '

Favoriten beschleunigen die tägliche Erfassung:

  • Speichere häufig gegessene Mahlzeiten als Favoriten
  • Füge eine Favoriten-Mahlzeit mit einem Klick zu deinem Tageslog hinzu
  • Passe die Portionsgröße beim Hinzufügen an
  • Erstelle Favoriten aus vergangenen Mahlzeiten in deiner Historie
' + : '

Favorites speed up daily logging:

  • Save frequently eaten meals as favorites
  • Add a favorite meal to your daily log with one click
  • Adjust the portion size when adding
  • Create favorites from past meals in your history
', + category: 'features', + order: 4, + language: isDE ? 'de' : 'en', + tags: isDE ? ['favoriten', 'mahlzeiten', 'schnell'] : ['favorites', 'meals', 'quick'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Daten geschützt?' : 'How is my data protected?', + answer: isDE + ? '

Deine Daten sind sicher:

  • Verschlüsselung: Alle Daten werden bei der Übertragung (TLS) verschlüsselt
  • DSGVO-konform: Wir halten uns an die EU-Datenschutzverordnung
  • Foto-Datenschutz: Mahlzeitenfotos werden nach der Analyse nur auf deinem Wunsch gespeichert
  • Gesundheitsdaten: Deine Ernährungsdaten werden nie an Dritte verkauft
  • Datenexport: Du kannst jederzeit alle Daten exportieren
' + : '

Your data is secure:

  • Encryption: All data is encrypted in transit (TLS)
  • GDPR compliant: We follow EU data protection regulations
  • Photo privacy: Meal photos are only stored after analysis upon your request
  • Health data: Your nutrition data is never sold to third parties
  • Data export: You can export all data at any time
', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + featured: true, + tags: isDE ? ['datenschutz', 'dsgvo', 'sicherheit'] : ['privacy', 'gdpr', 'security'], + }, + ], + features: [ + { + id: 'feature-photo-analysis', + title: isDE ? 'Foto-Analyse' : 'Photo Analysis', + description: isDE + ? 'Erfasse Mahlzeiten per Foto mit KI-gestützter Erkennung' + : 'Log meals by photo with AI-powered recognition', + icon: '📸', + category: 'core', + highlights: isDE + ? ['KI-Erkennung', 'Portionsschätzung', 'Sofort-Analyse', 'Manuelle Korrektur'] + : ['AI recognition', 'Portion estimation', 'Instant analysis', 'Manual correction'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-macro-micro', + title: isDE ? 'Makro- & Mikro-Tracking' : 'Macro & Micro Tracking', + description: isDE + ? 'Verfolge Kalorien, Makros, Vitamine und Mineralstoffe' + : 'Track calories, macros, vitamins, and minerals', + icon: '📊', + category: 'core', + highlights: isDE + ? ['Kalorien & Makros', 'Vitamine & Mineralstoffe', 'Tägliche Ziele', 'Trendanalyse'] + : ['Calories & macros', 'Vitamins & minerals', 'Daily goals', 'Trend analysis'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-ai-coaching', + title: isDE ? 'KI-Coaching' : 'AI Coaching', + description: isDE + ? 'Erhalte personalisierte Ernährungstipps und Empfehlungen' + : 'Receive personalized nutrition tips and recommendations', + icon: '🤖', + category: 'advanced', + highlights: isDE + ? ['Personalisierte Tipps', 'Nährstofflücken', 'Mahlzeitenvorschläge', 'Wochenbericht'] + : ['Personalized tips', 'Nutrient gaps', 'Meal suggestions', 'Weekly report'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-favorites', + title: isDE ? 'Favoriten-Mahlzeiten' : 'Favorite Meals', + description: isDE + ? 'Speichere häufige Mahlzeiten für schnelle Erfassung' + : 'Save frequent meals for quick logging', + icon: '⭐', + category: 'core', + highlights: isDE + ? [ + 'Ein-Klick-Erfassung', + 'Anpassbare Portionen', + 'Aus Historie erstellen', + 'Schnellzugriff', + ] + : ['One-click logging', 'Adjustable portions', 'Create from history', 'Quick access'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + 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 NutriPhi.

' + : '

Our support team is here to help you with any questions about NutriPhi.

', + 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/nutriphi/apps/web/src/routes/help/+page.svelte b/apps/nutriphi/apps/web/src/routes/help/+page.svelte new file mode 100644 index 000000000..77b620037 --- /dev/null +++ b/apps/nutriphi/apps/web/src/routes/help/+page.svelte @@ -0,0 +1,32 @@ + + + + {translations.title} | NutriPhi + + + goto('/')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/apps/photos/apps/web/src/lib/content/help/index.ts b/apps/photos/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..7ee1a5a86 --- /dev/null +++ b/apps/photos/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,146 @@ +/** + * Help content for Photos app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getPhotosHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-gallery', + question: isDE ? 'Wie funktioniert die Galerie?' : 'How does the gallery work?', + answer: isDE + ? '

Die Photos-Galerie vereint alle Fotos aus deinen ManaCore-Apps an einem Ort. Bilder aus Chat, Picture, Contacts und anderen Apps werden automatisch gesammelt und chronologisch angezeigt.

  • Fotos werden automatisch aus verbundenen Apps importiert
  • Du kannst nach Datum, App oder Tags filtern
  • Die Galerie aktualisiert sich automatisch, wenn neue Fotos hinzugefügt werden
' + : '

The Photos gallery unifies all photos from your ManaCore apps in one place. Images from Chat, Picture, Contacts, and other apps are automatically collected and displayed chronologically.

  • Photos are automatically imported from connected apps
  • You can filter by date, app, or tags
  • The gallery updates automatically when new photos are added
', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + tags: ['gallery', 'photos', 'overview'], + }, + { + id: 'faq-albums', + question: isDE ? 'Wie erstelle ich Alben?' : 'How do I create albums?', + answer: isDE + ? '

Alben helfen dir, deine Fotos zu organisieren:

  1. Öffne den Bereich Alben
  2. Tippe auf Neues Album
  3. Gib einen Namen und optional eine Beschreibung ein
  4. Wähle Fotos aus, die du hinzufügen möchtest

Du kannst Fotos auch direkt aus der Galerie zu bestehenden Alben hinzufügen.

' + : '

Albums help you organize your photos:

  1. Open the Albums section
  2. Tap New Album
  3. Enter a name and optional description
  4. Select photos you want to add

You can also add photos to existing albums directly from the gallery.

', + category: 'features', + order: 2, + language: isDE ? 'de' : 'en', + tags: ['albums', 'organize', 'create'], + }, + { + id: 'faq-smart-albums', + question: isDE ? 'Was sind smarte Alben?' : 'What are smart albums?', + answer: isDE + ? '

Smarte Alben werden automatisch basierend auf Regeln erstellt und aktualisiert:

  • Nach App — Alle Fotos aus einer bestimmten App (z.B. alle Chat-Bilder)
  • Nach Datum — Fotos aus einem bestimmten Zeitraum
  • Nach Tags — Fotos mit bestimmten Tags

Smarte Alben aktualisieren sich automatisch, wenn neue Fotos den Kriterien entsprechen.

' + : '

Smart albums are automatically created and updated based on rules:

  • By App — All photos from a specific app (e.g., all Chat images)
  • By Date — Photos from a specific time period
  • By Tags — Photos with specific tags

Smart albums update automatically when new photos match the criteria.

', + category: 'features', + order: 3, + language: isDE ? 'de' : 'en', + tags: ['smart-albums', 'automatic', 'rules'], + }, + { + id: 'faq-favorites', + question: isDE ? 'Wie funktionieren Favoriten?' : 'How do favorites work?', + answer: isDE + ? '

Markiere deine Lieblingsfotos als Favoriten, um sie schnell wiederzufinden:

  • Klicke auf das Herz-Symbol auf einem Foto, um es als Favorit zu markieren
  • Alle Favoriten findest du im Bereich Favoriten
  • Favoriten werden über alle Geräte synchronisiert
' + : '

Mark your favorite photos to find them quickly:

  • Click the heart icon on a photo to mark it as a favorite
  • Find all favorites in the Favorites section
  • Favorites are synced across all your devices
', + category: 'features', + order: 4, + language: isDE ? 'de' : 'en', + tags: ['favorites', 'heart', 'bookmarks'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Fotos geschützt?' : 'How are my photos protected?', + answer: isDE + ? '

Deine Fotos sind sicher bei ManaCore:

  • Alle Fotos werden verschlüsselt übertragen und gespeichert
  • Nur du hast Zugriff auf deine Galerie
  • Fotos werden nicht für KI-Training oder andere Zwecke verwendet
  • Du kannst jederzeit Fotos löschen — sie werden dann dauerhaft entfernt
' + : '

Your photos are safe with ManaCore:

  • All photos are encrypted in transit and at rest
  • Only you have access to your gallery
  • Photos are not used for AI training or other purposes
  • You can delete photos at any time — they are permanently removed
', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + tags: ['privacy', 'security', 'data'], + }, + ], + features: [ + { + id: 'feature-gallery', + title: isDE ? 'Zentrale Galerie' : 'Central Gallery', + description: isDE + ? 'Alle Fotos aus deinen ManaCore-Apps an einem Ort, automatisch organisiert und durchsuchbar.' + : 'All photos from your ManaCore apps in one place, automatically organized and searchable.', + icon: '🖼️', + category: 'core', + highlights: isDE + ? ['App-übergreifende Sammlung', 'Chronologische Ansicht', 'Schnelle Suche'] + : ['Cross-app collection', 'Chronological view', 'Fast search'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-albums', + title: isDE ? 'Alben' : 'Albums', + description: isDE + ? 'Erstelle benutzerdefinierte Alben, um deine Fotos nach Themen, Ereignissen oder Projekten zu organisieren.' + : 'Create custom albums to organize your photos by topics, events, or projects.', + icon: '📁', + category: 'core', + highlights: isDE + ? ['Benutzerdefinierte Alben', 'Drag & Drop', 'Geteilte Alben'] + : ['Custom albums', 'Drag & drop', 'Shared albums'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-smart-albums', + title: isDE ? 'Smarte Alben' : 'Smart Albums', + description: isDE + ? 'Automatisch aktualisierte Alben basierend auf Regeln wie App-Quelle, Datum oder Tags.' + : 'Automatically updated albums based on rules like app source, date, or tags.', + icon: '🧠', + category: 'advanced', + highlights: isDE + ? ['Regelbasiert', 'Automatische Updates', 'Flexible Filter'] + : ['Rule-based', 'Automatic updates', 'Flexible filters'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-tags-favorites', + title: isDE ? 'Tags & Favoriten' : 'Tags & Favorites', + description: isDE + ? 'Tagge und markiere Fotos als Favoriten für schnellen Zugriff und bessere Organisation.' + : 'Tag and mark photos as favorites for quick access and better organization.', + icon: '❤️', + category: 'core', + highlights: isDE + ? ['Benutzerdefinierte Tags', 'Favoriten-Sammlung', 'Geräteübergreifende Sync'] + : ['Custom tags', 'Favorites collection', 'Cross-device sync'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + 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 Photos.

' + : '

Our support team is here to help you with any questions about Photos.

', + 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/photos/apps/web/src/routes/(app)/help/+page.svelte b/apps/photos/apps/web/src/routes/(app)/help/+page.svelte new file mode 100644 index 000000000..e3733bf37 --- /dev/null +++ b/apps/photos/apps/web/src/routes/(app)/help/+page.svelte @@ -0,0 +1,32 @@ + + + + {translations.title} | Photos + + + goto('/')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/apps/planta/apps/web/package.json b/apps/planta/apps/web/package.json index 5a60e5e6b..b5ca4178d 100644 --- a/apps/planta/apps/web/package.json +++ b/apps/planta/apps/web/package.json @@ -36,6 +36,8 @@ "@manacore/shared-branding": "workspace:*", "@manacore/shared-error-tracking": "workspace:*", "@manacore/shared-i18n": "workspace:*", + "@manacore/shared-help-types": "workspace:*", + "@manacore/shared-help-ui": "workspace:*", "@manacore/shared-icons": "workspace:*", "@manacore/shared-tailwind": "workspace:*", "@manacore/shared-theme": "workspace:*", diff --git a/apps/planta/apps/web/src/lib/content/help/index.ts b/apps/planta/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..1946de89f --- /dev/null +++ b/apps/planta/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,150 @@ +/** + * Help content for Planta app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getPlantaHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-identify', + question: isDE ? 'Wie identifiziere ich eine Pflanze?' : 'How do I identify a plant?', + answer: isDE + ? '

Die KI-Pflanzenerkennung macht es einfach:

  1. Tippe auf den Kamera-Button
  2. Mache ein Foto der Pflanze (Blätter, Blüten oder die ganze Pflanze)
  3. Die KI analysiert das Bild und zeigt dir die Ergebnisse

Für beste Ergebnisse fotografiere die Pflanze bei gutem Licht und aus verschiedenen Winkeln.

' + : '

AI plant identification makes it easy:

  1. Tap the camera button
  2. Take a photo of the plant (leaves, flowers, or the whole plant)
  3. The AI analyzes the image and shows you the results

For best results, photograph the plant in good lighting and from different angles.

', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + tags: ['identify', 'camera', 'ai', 'recognition'], + }, + { + id: 'faq-care', + question: isDE + ? 'Wie funktionieren die Pflegeempfehlungen?' + : 'How do care recommendations work?', + answer: isDE + ? '

Nach der Identifizierung erhältst du individuelle Pflegeempfehlungen:

  • Licht — Optimale Lichtverhältnisse für deine Pflanze
  • Wasser — Gießhäufigkeit und -menge
  • Temperatur — Idealer Temperaturbereich
  • Boden — Empfohlene Erdmischung

Die Empfehlungen passen sich an die Jahreszeit und deinen Standort an.

' + : '

After identification, you receive personalized care recommendations:

  • Light — Optimal light conditions for your plant
  • Water — Watering frequency and amount
  • Temperature — Ideal temperature range
  • Soil — Recommended soil mix

Recommendations adapt to the season and your location.

', + category: 'features', + order: 2, + language: isDE ? 'de' : 'en', + tags: ['care', 'recommendations', 'light', 'water'], + }, + { + id: 'faq-watering', + question: isDE ? 'Wie funktioniert der Gießplan?' : 'How does the watering schedule work?', + answer: isDE + ? '

Der Gießplan erinnert dich automatisch daran, deine Pflanzen zu gießen:

  • Jede Pflanze erhält einen individuellen Gießrhythmus basierend auf ihrer Art
  • Du bekommst Push-Benachrichtigungen, wenn eine Pflanze Wasser braucht
  • Nach dem Gießen markierst du die Pflanze als gegossen
  • Der Plan passt sich automatisch an die Jahreszeit an
' + : '

The watering schedule automatically reminds you to water your plants:

  • Each plant gets an individual watering rhythm based on its species
  • You receive push notifications when a plant needs water
  • After watering, mark the plant as watered
  • The schedule automatically adapts to the season
', + category: 'features', + order: 3, + language: isDE ? 'de' : 'en', + tags: ['watering', 'schedule', 'notifications', 'reminders'], + }, + { + id: 'faq-health', + question: isDE + ? 'Wie überwache ich die Pflanzengesundheit?' + : 'How do I monitor plant health?', + answer: isDE + ? '

Planta hilft dir, Probleme frühzeitig zu erkennen:

  • Mache regelmäßig Fotos deiner Pflanzen — die KI erkennt Veränderungen
  • Erhalte Warnungen bei Anzeichen von Krankheiten, Schädlingen oder Nährstoffmangel
  • Sieh dir den Gesundheitsverlauf jeder Pflanze in der Timeline an
  • Bekomme Behandlungsvorschläge bei Problemen
' + : '

Planta helps you detect problems early:

  • Take regular photos of your plants — the AI detects changes
  • Receive warnings for signs of diseases, pests, or nutrient deficiency
  • View the health history of each plant in the timeline
  • Get treatment suggestions for issues
', + category: 'features', + order: 4, + language: isDE ? 'de' : 'en', + tags: ['health', 'diseases', 'pests', 'monitoring'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Daten geschützt?' : 'How is my data protected?', + answer: isDE + ? '

Deine Pflanzendaten sind sicher bei Planta:

  • Fotos werden nur zur Pflanzenidentifizierung verwendet und nicht an Dritte weitergegeben
  • Deine Pflanzensammlung ist nur für dich sichtbar
  • Standortdaten werden nur lokal für Wetteranpassungen genutzt
  • Du kannst jederzeit alle Daten exportieren oder löschen
' + : '

Your plant data is safe with Planta:

  • Photos are only used for plant identification and are not shared with third parties
  • Your plant collection is visible only to you
  • Location data is only used locally for weather adjustments
  • You can export or delete all data at any time
', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + tags: ['privacy', 'security', 'data', 'photos'], + }, + ], + features: [ + { + id: 'feature-identification', + title: isDE ? 'KI-Pflanzenerkennung' : 'AI Plant Identification', + description: isDE + ? 'Identifiziere jede Pflanze sofort mit einem Foto — powered by KI.' + : 'Identify any plant instantly with a photo — powered by AI.', + icon: '📸', + category: 'core', + highlights: isDE + ? ['Sofortige Erkennung', 'Tausende Pflanzenarten', 'Hohe Genauigkeit'] + : ['Instant recognition', 'Thousands of species', 'High accuracy'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-care', + title: isDE ? 'Pflegeempfehlungen' : 'Care Recommendations', + description: isDE + ? 'Individuelle Pflegetipps für jede Pflanze, angepasst an Jahreszeit und Standort.' + : 'Personalized care tips for every plant, adapted to season and location.', + icon: '🌱', + category: 'core', + highlights: isDE + ? ['Saisonale Anpassung', 'Standortbasiert', 'Expertenbasiert'] + : ['Seasonal adaptation', 'Location-based', 'Expert-backed'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-watering', + title: isDE ? 'Gießplan' : 'Watering Schedule', + description: isDE + ? 'Automatische Gießerinnerungen mit Push-Benachrichtigungen für jede Pflanze.' + : 'Automatic watering reminders with push notifications for every plant.', + icon: '💧', + category: 'core', + highlights: isDE + ? ['Push-Benachrichtigungen', 'Individueller Rhythmus', 'Saisonale Anpassung'] + : ['Push notifications', 'Individual rhythm', 'Seasonal adaptation'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-health', + title: isDE ? 'Gesundheits-Tracking' : 'Health Tracking', + description: isDE + ? 'Überwache die Gesundheit deiner Pflanzen mit KI-gestützter Problemerkennung.' + : 'Monitor your plant health with AI-powered problem detection.', + icon: '🏥', + category: 'advanced', + highlights: isDE + ? ['Krankheitserkennung', 'Schädlingswarnung', 'Behandlungsvorschläge'] + : ['Disease detection', 'Pest warnings', 'Treatment suggestions'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + 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 Planta.

' + : '

Our support team is here to help you with any questions about Planta.

', + 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/planta/apps/web/src/routes/(app)/help/+page.svelte b/apps/planta/apps/web/src/routes/(app)/help/+page.svelte new file mode 100644 index 000000000..31f98d586 --- /dev/null +++ b/apps/planta/apps/web/src/routes/(app)/help/+page.svelte @@ -0,0 +1,32 @@ + + + + {translations.title} | Planta + + + goto('/dashboard')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/apps/presi/apps/web/package.json b/apps/presi/apps/web/package.json index 2a85a8b4d..265398150 100644 --- a/apps/presi/apps/web/package.json +++ b/apps/presi/apps/web/package.json @@ -39,6 +39,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/presi/apps/web/src/lib/content/help/index.ts b/apps/presi/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..a861167b5 --- /dev/null +++ b/apps/presi/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,170 @@ +/** + * Help content for Presi app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getPresiHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-create', + question: isDE ? 'Wie erstelle ich eine Präsentation?' : 'How do I create a presentation?', + answer: isDE + ? '

Eine neue Präsentation erstellen ist einfach:

  1. Klicke auf Neue Präsentation
  2. Wähle ein Theme oder starte mit einer leeren Vorlage
  3. Füge Folien hinzu mit dem + Button
  4. Bearbeite Inhalte direkt im Slide-Editor

Du kannst Text, Bilder, Code-Blöcke und mehr zu jeder Folie hinzufügen.

' + : '

Creating a new presentation is easy:

  1. Click New Presentation
  2. Choose a theme or start with a blank template
  3. Add slides with the + button
  4. Edit content directly in the slide editor

You can add text, images, code blocks, and more to each slide.

', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + tags: ['create', 'presentation', 'slides', 'new'], + }, + { + id: 'faq-present', + question: isDE ? 'Wie halte ich eine Präsentation?' : 'How do I present?', + answer: isDE + ? '

Starte den Präsentationsmodus:

  1. Klicke auf Präsentieren oder drücke F für Vollbild
  2. Navigiere mit oder Leertaste zur nächsten Folie
  3. Gehe mit oder A zur vorherigen Folie
  4. Drücke ESC um den Präsentationsmodus zu verlassen

Im Präsentationsmodus werden alle Steuerelemente ausgeblendet.

' + : '

Start the presentation mode:

  1. Click Present or press F for fullscreen
  2. Navigate with or Space to the next slide
  3. Go back with or A to the previous slide
  4. Press ESC to exit presentation mode

In presentation mode, all controls are hidden for a clean view.

', + category: 'features', + order: 2, + language: isDE ? 'de' : 'en', + tags: ['present', 'fullscreen', 'navigation', 'keyboard'], + }, + { + id: 'faq-sharing', + question: isDE ? 'Wie funktioniert das Teilen?' : 'How does sharing work?', + answer: isDE + ? '

Teile deine Präsentationen auf verschiedene Arten:

  • Link teilen — Erstelle einen öffentlichen oder privaten Link
  • PDF Export — Exportiere als PDF zum Offline-Anschauen
  • Einbetten — Bette die Präsentation in eine Webseite ein

Du kannst festlegen, ob Betrachter die Folien herunterladen dürfen.

' + : '

Share your presentations in different ways:

  • Share link — Create a public or private link
  • PDF Export — Export as PDF for offline viewing
  • Embed — Embed the presentation in a website

You can control whether viewers are allowed to download the slides.

', + category: 'features', + order: 3, + language: isDE ? 'de' : 'en', + tags: ['sharing', 'link', 'pdf', 'export', 'embed'], + }, + { + id: 'faq-themes', + question: isDE ? 'Welche Themes gibt es?' : 'What themes are available?', + answer: isDE + ? '

Presi bietet verschiedene Themes für unterschiedliche Anlässe:

  • Professional — Klar und geschäftlich
  • Creative — Bunt und ausdrucksstark
  • Minimal — Schlicht und elegant
  • Dark — Dunkles Design für Präsentationen in dunklen Räumen

Jedes Theme kann mit eigenen Farben und Schriftarten angepasst werden.

' + : '

Presi offers different themes for different occasions:

  • Professional — Clean and business-oriented
  • Creative — Colorful and expressive
  • Minimal — Simple and elegant
  • Dark — Dark design for presentations in dim rooms

Each theme can be customized with your own colors and fonts.

', + category: 'features', + order: 4, + language: isDE ? 'de' : 'en', + tags: ['themes', 'design', 'customization', 'styles'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Daten geschützt?' : 'How is my data protected?', + answer: isDE + ? '

Deine Präsentationen sind sicher bei Presi:

  • Alle Daten werden verschlüsselt übertragen und gespeichert
  • Geteilte Links können jederzeit widerrufen werden
  • Du bestimmst, wer Zugriff auf deine Präsentationen hat
  • Gelöschte Präsentationen werden dauerhaft entfernt
' + : '

Your presentations are safe with Presi:

  • All data is encrypted in transit and at rest
  • Shared links can be revoked at any time
  • You control who has access to your presentations
  • Deleted presentations are permanently removed
', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + tags: ['privacy', 'security', 'data', 'sharing'], + }, + ], + features: [ + { + id: 'feature-editor', + title: isDE ? 'Folien-Editor' : 'Slide Editor', + description: isDE + ? 'Ein leistungsstarker Editor zum Erstellen schöner Folien mit Text, Bildern und Code.' + : 'A powerful editor for creating beautiful slides with text, images, and code.', + icon: '✏️', + category: 'core', + highlights: isDE + ? ['Rich-Text-Bearbeitung', 'Bilder & Medien', 'Code-Blöcke'] + : ['Rich text editing', 'Images & media', 'Code blocks'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-present', + title: isDE ? 'Präsentationsmodus' : 'Presentation Mode', + description: isDE + ? 'Halte Präsentationen im Vollbildmodus mit Tastatursteuerung.' + : 'Deliver presentations in fullscreen mode with keyboard navigation.', + icon: '🎬', + category: 'core', + highlights: isDE + ? ['Vollbild', 'Tastatursteuerung', 'Saubere Ansicht'] + : ['Fullscreen', 'Keyboard controls', 'Clean view'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-sharing', + title: isDE ? 'Teilen' : 'Sharing', + description: isDE + ? 'Teile Präsentationen per Link, exportiere als PDF oder bette sie in Webseiten ein.' + : 'Share presentations via link, export as PDF, or embed them in websites.', + icon: '🔗', + category: 'core', + highlights: isDE + ? ['Öffentliche Links', 'PDF-Export', 'Einbettung'] + : ['Public links', 'PDF export', 'Embedding'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-themes', + title: isDE ? 'Themes' : 'Themes', + description: isDE + ? 'Wähle aus verschiedenen professionellen Themes und passe sie an dein Branding an.' + : 'Choose from various professional themes and customize them to match your branding.', + icon: '🎨', + category: 'advanced', + highlights: isDE + ? ['Mehrere Themes', 'Anpassbare Farben', 'Eigene Schriftarten'] + : ['Multiple themes', 'Customizable colors', 'Custom fonts'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + shortcuts: [ + { + id: 'shortcuts-navigation', + title: isDE ? 'Navigation' : 'Navigation', + category: 'navigation', + shortcuts: [ + { + keys: ['←', 'A'], + label: isDE ? 'Vorherige Folie' : 'Previous slide', + }, + { + keys: ['→', 'D', 'Space'], + label: isDE ? 'Nächste Folie' : 'Next slide', + }, + { + keys: ['F'], + label: isDE ? 'Vollbild' : 'Fullscreen', + }, + { + keys: ['ESC'], + label: isDE ? 'Präsentation beenden' : 'Exit presentation', + }, + ], + }, + ], + gettingStarted: [], + changelog: [], + contact: { + id: 'contact-support', + title: isDE ? 'Support kontaktieren' : 'Contact Support', + content: isDE + ? '

Unser Support-Team hilft dir bei allen Fragen rund um Presi.

' + : '

Our support team is here to help you with any questions about Presi.

', + 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/presi/apps/web/src/routes/(app)/help/+page.svelte b/apps/presi/apps/web/src/routes/(app)/help/+page.svelte new file mode 100644 index 000000000..d993068a0 --- /dev/null +++ b/apps/presi/apps/web/src/routes/(app)/help/+page.svelte @@ -0,0 +1,32 @@ + + + + {translations.title} | Presi + + + goto('/')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/apps/questions/apps/web/package.json b/apps/questions/apps/web/package.json index c05bd26ed..7b62096d9 100644 --- a/apps/questions/apps/web/package.json +++ b/apps/questions/apps/web/package.json @@ -40,6 +40,8 @@ "@manacore/shared-branding": "workspace:*", "@manacore/shared-error-tracking": "workspace:*", "@manacore/shared-i18n": "workspace:*", + "@manacore/shared-help-types": "workspace:*", + "@manacore/shared-help-ui": "workspace:*", "@manacore/shared-icons": "workspace:*", "@manacore/shared-app-onboarding": "workspace:*", "@manacore/shared-tailwind": "workspace:*", diff --git a/apps/questions/apps/web/src/lib/content/help/index.ts b/apps/questions/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..3c34b42f3 --- /dev/null +++ b/apps/questions/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,146 @@ +/** + * Help content for Questions app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getQuestionsHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-research', + question: isDE ? 'Wie funktioniert die KI-Recherche?' : 'How does AI research work?', + answer: isDE + ? '

Questions nutzt KI und Websuche, um deine Fragen gründlich zu beantworten:

  1. Stelle eine Frage oder gib ein Recherchethema ein
  2. Die KI durchsucht das Web nach relevanten Quellen
  3. Informationen werden analysiert, zusammengefasst und mit Quellenangaben versehen
  4. Du erhältst eine strukturierte Antwort mit verlinkten Quellen

Je spezifischer deine Frage, desto besser die Ergebnisse.

' + : '

Questions uses AI and web search to thoroughly answer your questions:

  1. Ask a question or enter a research topic
  2. The AI searches the web for relevant sources
  3. Information is analyzed, summarized, and attributed to sources
  4. You receive a structured answer with linked sources

The more specific your question, the better the results.

', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + tags: ['research', 'ai', 'search', 'questions'], + }, + { + id: 'faq-depth', + question: isDE ? 'Was sind Recherchetiefen?' : 'What are research depths?', + answer: isDE + ? '

Du kannst die Gründlichkeit der Recherche steuern:

  • Schnell — Kurze, direkte Antwort aus wenigen Quellen
  • Standard — Ausgewogene Recherche mit mehreren Quellen
  • Tief — Umfassende Analyse mit vielen Quellen und Details
  • Experte — Maximale Tiefe mit akademischen und spezialisierten Quellen

Tiefere Recherchen dauern länger, liefern aber detailliertere Ergebnisse.

' + : '

You can control the thoroughness of the research:

  • Quick — Brief, direct answer from a few sources
  • Standard — Balanced research with multiple sources
  • Deep — Comprehensive analysis with many sources and details
  • Expert — Maximum depth with academic and specialized sources

Deeper research takes longer but delivers more detailed results.

', + category: 'features', + order: 2, + language: isDE ? 'de' : 'en', + tags: ['depth', 'levels', 'quick', 'deep', 'expert'], + }, + { + id: 'faq-sources', + question: isDE ? 'Wie funktionieren Quellenangaben?' : 'How do sources work?', + answer: isDE + ? '

Jede Antwort enthält verifizierbare Quellenangaben:

  • Quellen werden als nummerierte Referenzen im Text angezeigt
  • Klicke auf eine Quellenangabe, um die Originalseite zu besuchen
  • Die Zuverlässigkeit jeder Quelle wird bewertet
  • Du kannst die Quellentypen filtern (Nachricht, Akademisch, Blog, etc.)

So kannst du jede Information selbst überprüfen.

' + : '

Every answer includes verifiable source attributions:

  • Sources are displayed as numbered references in the text
  • Click a source reference to visit the original page
  • The reliability of each source is evaluated
  • You can filter source types (news, academic, blog, etc.)

This allows you to verify any information yourself.

', + category: 'features', + order: 3, + language: isDE ? 'de' : 'en', + tags: ['sources', 'references', 'attribution', 'verification'], + }, + { + id: 'faq-collections', + question: isDE ? 'Was sind Sammlungen?' : 'What are collections?', + answer: isDE + ? '

Sammlungen helfen dir, deine Recherchen zu organisieren:

  • Erstelle thematische Sammlungen für verschiedene Projekte
  • Speichere Fragen und Antworten in Sammlungen
  • Teile Sammlungen mit anderen Nutzern
  • Exportiere Sammlungen als Dokument

Alle deine Recherchen werden automatisch im Verlauf gespeichert.

' + : '

Collections help you organize your research:

  • Create thematic collections for different projects
  • Save questions and answers to collections
  • Share collections with other users
  • Export collections as a document

All your research is automatically saved in the history.

', + category: 'features', + order: 4, + language: isDE ? 'de' : 'en', + tags: ['collections', 'organize', 'save', 'share'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Daten geschützt?' : 'How is my data protected?', + answer: isDE + ? '

Deine Recherchen sind privat und sicher:

  • Suchanfragen werden nicht mit Dritten geteilt
  • Dein Rechercheverlauf ist nur für dich sichtbar
  • Die Websuche erfolgt über unseren eigenen Suchdienst, nicht über Google
  • Du kannst deinen Verlauf jederzeit löschen
' + : '

Your research is private and secure:

  • Search queries are not shared with third parties
  • Your research history is visible only to you
  • Web search is performed through our own search service, not through Google
  • You can delete your history at any time
', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + tags: ['privacy', 'security', 'data', 'history'], + }, + ], + features: [ + { + id: 'feature-research', + title: isDE ? 'KI-Recherche' : 'AI Research', + description: isDE + ? 'Stelle Fragen und erhalte gründlich recherchierte Antworten mit Quellenangaben.' + : 'Ask questions and get thoroughly researched answers with source attributions.', + icon: '🔍', + category: 'core', + highlights: isDE + ? ['Websuche-Integration', 'Strukturierte Antworten', 'Quellenangaben'] + : ['Web search integration', 'Structured answers', 'Source attribution'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-sources', + title: isDE ? 'Quellenangaben' : 'Source Attribution', + description: isDE + ? 'Jede Antwort enthält verifizierbare Quellenangaben mit Zuverlässigkeitsbewertung.' + : 'Every answer includes verifiable source attributions with reliability ratings.', + icon: '📚', + category: 'core', + highlights: isDE + ? ['Nummerierte Referenzen', 'Direkte Links', 'Zuverlässigkeitsbewertung'] + : ['Numbered references', 'Direct links', 'Reliability ratings'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-collections', + title: isDE ? 'Sammlungen' : 'Collections', + description: isDE + ? 'Organisiere deine Recherchen in thematischen Sammlungen zum Teilen und Exportieren.' + : 'Organize your research into thematic collections for sharing and exporting.', + icon: '📂', + category: 'core', + highlights: isDE + ? ['Thematische Ordnung', 'Teilen & Export', 'Automatischer Verlauf'] + : ['Thematic organization', 'Share & export', 'Automatic history'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-depth', + title: isDE ? 'Mehrere Recherchetiefen' : 'Multiple Depth Levels', + description: isDE + ? 'Wähle zwischen schnellen Antworten und tiefgehenden Expertenrecherchen.' + : 'Choose between quick answers and in-depth expert research.', + icon: '📊', + category: 'advanced', + highlights: isDE + ? ['4 Tiefenstufen', 'Akademische Quellen', 'Anpassbare Gründlichkeit'] + : ['4 depth levels', 'Academic sources', 'Adjustable thoroughness'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + 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 Questions.

' + : '

Our support team is here to help you with any questions about 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/questions/apps/web/src/routes/(app)/help/+page.svelte b/apps/questions/apps/web/src/routes/(app)/help/+page.svelte new file mode 100644 index 000000000..84a656ff0 --- /dev/null +++ b/apps/questions/apps/web/src/routes/(app)/help/+page.svelte @@ -0,0 +1,32 @@ + + + + {translations.title} | Questions + + + goto('/')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/> diff --git a/apps/skilltree/apps/web/package.json b/apps/skilltree/apps/web/package.json index faa0c4214..2bc322283 100644 --- a/apps/skilltree/apps/web/package.json +++ b/apps/skilltree/apps/web/package.json @@ -40,6 +40,8 @@ "@manacore/shared-branding": "workspace:*", "@manacore/shared-error-tracking": "workspace:*", "@manacore/shared-i18n": "workspace:*", + "@manacore/shared-help-types": "workspace:*", + "@manacore/shared-help-ui": "workspace:*", "@manacore/shared-icons": "workspace:*", "@manacore/shared-app-onboarding": "workspace:*", "@manacore/shared-tailwind": "workspace:*", diff --git a/apps/skilltree/apps/web/src/lib/content/help/index.ts b/apps/skilltree/apps/web/src/lib/content/help/index.ts new file mode 100644 index 000000000..217cf72ef --- /dev/null +++ b/apps/skilltree/apps/web/src/lib/content/help/index.ts @@ -0,0 +1,146 @@ +/** + * Help content for SkillTree app + */ + +import type { HelpContent } from '@manacore/shared-help-types'; + +export function getSkillTreeHelpContent(locale: string): HelpContent { + const isDE = locale === 'de'; + + return { + faq: [ + { + id: 'faq-xp', + question: isDE ? 'Wie funktioniert das XP-System?' : 'How does the XP system work?', + answer: isDE + ? '

SkillTree verwendet ein RPG-ähnliches Erfahrungspunkte-System:

  • Du sammelst XP (Erfahrungspunkte) für jede protokollierte Aktivität
  • Die XP-Menge hängt von Dauer und Intensität der Aktivität ab
  • Wenn du genug XP gesammelt hast, steigst du ein Level auf
  • Höhere Level erfordern mehr XP — genau wie in einem RPG

Dein Gesamtlevel zeigt deinen Fortschritt über alle Skill-Bereiche hinweg.

' + : '

SkillTree uses an RPG-style experience points system:

  • You earn XP (experience points) for every logged activity
  • The amount of XP depends on the duration and intensity of the activity
  • When you collect enough XP, you level up
  • Higher levels require more XP — just like in an RPG

Your total level shows your progress across all skill branches.

', + category: 'features', + order: 1, + language: isDE ? 'de' : 'en', + tags: ['xp', 'experience', 'level', 'rpg', 'points'], + }, + { + id: 'faq-branches', + question: isDE ? 'Was sind Skill-Bereiche?' : 'What are skill branches?', + answer: isDE + ? '

Skill-Bereiche sind die 6 Hauptkategorien deiner persönlichen Entwicklung:

  • Wissen — Lernen, Lesen, Kurse
  • Fitness — Sport, Bewegung, Gesundheit
  • Kreativität — Kunst, Musik, Schreiben
  • Sozial — Kommunikation, Networking, Teamarbeit
  • Technik — Programmieren, Tools, Technologie
  • Achtsamkeit — Meditation, Reflexion, Wohlbefinden

Jeder Bereich hat seinen eigenen Fortschrittsbaum und Level.

' + : '

Skill branches are the 6 main categories of your personal development:

  • Knowledge — Learning, reading, courses
  • Fitness — Sports, exercise, health
  • Creativity — Art, music, writing
  • Social — Communication, networking, teamwork
  • Tech — Programming, tools, technology
  • Mindfulness — Meditation, reflection, well-being

Each branch has its own progress tree and level.

', + category: 'features', + order: 2, + language: isDE ? 'de' : 'en', + tags: ['branches', 'categories', 'skills', 'types'], + }, + { + id: 'faq-logging', + question: isDE ? 'Wie protokolliere ich Aktivitäten?' : 'How do I log activities?', + answer: isDE + ? '

Aktivitäten protokollieren ist schnell und einfach:

  1. Tippe auf Aktivität loggen
  2. Wähle den Skill-Bereich aus
  3. Beschreibe kurz, was du gemacht hast
  4. Gib die Dauer an
  5. Die XP werden automatisch berechnet und gutgeschrieben

Du kannst auch vergangene Aktivitäten nachträglich eintragen.

' + : '

Logging activities is quick and easy:

  1. Tap Log Activity
  2. Select the skill branch
  3. Briefly describe what you did
  4. Enter the duration
  5. XP is automatically calculated and credited

You can also log past activities retroactively.

', + category: 'features', + order: 3, + language: isDE ? 'de' : 'en', + tags: ['logging', 'activities', 'tracking', 'record'], + }, + { + id: 'faq-achievements', + question: isDE ? 'Wie funktionieren Erfolge?' : 'How do achievements work?', + answer: isDE + ? '

Erfolge sind besondere Meilensteine, die du freischalten kannst:

  • Streak-Erfolge — Protokolliere Aktivitäten an aufeinanderfolgenden Tagen
  • Level-Erfolge — Erreiche bestimmte Level in Skill-Bereichen
  • Vielseitigkeit — Sei in mehreren Bereichen aktiv
  • Spezial-Erfolge — Besondere Herausforderungen und Meilensteine

Freigeschaltete Erfolge werden in deinem Profil angezeigt.

' + : '

Achievements are special milestones you can unlock:

  • Streak achievements — Log activities on consecutive days
  • Level achievements — Reach certain levels in skill branches
  • Versatility — Be active across multiple branches
  • Special achievements — Unique challenges and milestones

Unlocked achievements are displayed on your profile.

', + category: 'features', + order: 4, + language: isDE ? 'de' : 'en', + tags: ['achievements', 'milestones', 'badges', 'streaks'], + }, + { + id: 'faq-privacy', + question: isDE ? 'Wie werden meine Daten geschützt?' : 'How is my data protected?', + answer: isDE + ? '

SkillTree ist offline-first und speichert deine Daten lokal:

  • Alle Daten werden in IndexedDB direkt auf deinem Gerät gespeichert
  • Es werden keine Daten an Server gesendet
  • Die App funktioniert vollständig ohne Internetverbindung
  • Deine Fortschritte, Aktivitäten und Erfolge verlassen nie dein Gerät

Du hast die volle Kontrolle über deine Daten — sie gehören dir allein.

' + : '

SkillTree is offline-first and stores your data locally:

  • All data is stored in IndexedDB directly on your device
  • No data is sent to servers
  • The app works completely without an internet connection
  • Your progress, activities, and achievements never leave your device

You have full control over your data — it belongs to you alone.

', + category: 'privacy', + order: 5, + language: isDE ? 'de' : 'en', + tags: ['privacy', 'offline', 'indexeddb', 'local', 'data'], + }, + ], + features: [ + { + id: 'feature-branches', + title: isDE ? 'Skill-Bereiche (6 Typen)' : 'Skill Branches (6 Types)', + description: isDE + ? 'Verfolge deinen Fortschritt in 6 Lebensbereichen: Wissen, Fitness, Kreativität, Sozial, Technik und Achtsamkeit.' + : 'Track your progress across 6 life areas: Knowledge, Fitness, Creativity, Social, Tech, and Mindfulness.', + icon: '🌳', + category: 'core', + highlights: isDE + ? ['6 Lebensbereiche', 'Individueller Fortschritt', 'Visueller Skill-Baum'] + : ['6 life areas', 'Individual progress', 'Visual skill tree'], + content: '', + order: 1, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-xp', + title: isDE ? 'XP-Levelsystem' : 'XP Leveling', + description: isDE + ? 'Sammle Erfahrungspunkte und steige Level auf — gamifizierte persönliche Entwicklung im RPG-Stil.' + : 'Earn experience points and level up — gamified personal development in RPG style.', + icon: '⭐', + category: 'core', + highlights: isDE + ? ['RPG-Levelsystem', 'Automatische XP-Berechnung', 'Gesamtlevel'] + : ['RPG level system', 'Automatic XP calculation', 'Total level'], + content: '', + order: 2, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-logging', + title: isDE ? 'Aktivitäten-Protokoll' : 'Activity Logging', + description: isDE + ? 'Protokolliere Aktivitäten schnell und einfach, um XP zu sammeln und deinen Fortschritt zu verfolgen.' + : 'Log activities quickly and easily to earn XP and track your progress.', + icon: '📝', + category: 'core', + highlights: isDE + ? ['Schnelle Eingabe', 'Rückwirkende Einträge', 'Automatische XP'] + : ['Quick entry', 'Retroactive logging', 'Automatic XP'], + content: '', + order: 3, + language: isDE ? 'de' : 'en', + }, + { + id: 'feature-achievements', + title: isDE ? 'Erfolge' : 'Achievements', + description: isDE + ? 'Schalte Erfolge frei für Streaks, Level-Meilensteine und besondere Herausforderungen.' + : 'Unlock achievements for streaks, level milestones, and special challenges.', + icon: '🏆', + category: 'advanced', + highlights: isDE + ? ['Streak-Belohnungen', 'Level-Meilensteine', 'Spezial-Herausforderungen'] + : ['Streak rewards', 'Level milestones', 'Special challenges'], + content: '', + order: 4, + language: isDE ? 'de' : 'en', + }, + ], + 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 SkillTree.

' + : '

Our support team is here to help you with any questions about SkillTree.

', + 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/skilltree/apps/web/src/routes/help/+page.svelte b/apps/skilltree/apps/web/src/routes/help/+page.svelte new file mode 100644 index 000000000..39ab71c4c --- /dev/null +++ b/apps/skilltree/apps/web/src/routes/help/+page.svelte @@ -0,0 +1,32 @@ + + + + {translations.title} | SkillTree + + + goto('/')} + showGettingStarted={false} + showChangelog={false} + defaultSection="faq" +/>