From 6b6157d7866dfae014b12c5f70a5b1905994c442 Mon Sep 17 00:00:00 2001 From: th Date: Sun, 19 Apr 2026 22:32:06 +0200 Subject: [PATCH] bak --- src/App.vue | 50 ++-- src/components/AssetSidebar.vue | 137 ++++----- src/components/CanvasStage.vue | 40 ++- src/components/DocumentSettings.vue | 35 +-- src/components/ExportDialog.vue | 33 ++- src/components/FullscreenPreview.vue | 7 +- src/components/PropertiesPanel.vue | 9 +- src/components/Timeline.vue | 422 +++++++++++++++++++++++---- src/components/WelcomeDialog.vue | 33 ++- src/components/ui/DialogsHost.vue | 176 +++++++++++ src/components/ui/Modal.vue | 3 +- src/components/ui/dialogs.ts | 71 +++++ src/components/ui/index.ts | 3 + src/devtools/TestOverlay.vue | 23 +- src/devtools/tests.ts | 4 +- src/i18n/index.ts | 44 +++ src/i18n/messages.ts | 232 +++++++++++++++ src/lib/exportPlayer.ts | 16 +- src/lib/projectFile.ts | 14 +- src/lib/projectStore.ts | 2 +- src/lib/serverExport.ts | 8 +- src/lib/videoExport.ts | 2 +- todo | 13 +- 23 files changed, 1140 insertions(+), 237 deletions(-) create mode 100644 src/components/ui/DialogsHost.vue create mode 100644 src/components/ui/dialogs.ts create mode 100644 src/i18n/index.ts create mode 100644 src/i18n/messages.ts diff --git a/src/App.vue b/src/App.vue index 37441c1..d2c17f2 100644 --- a/src/App.vue +++ b/src/App.vue @@ -24,7 +24,8 @@ import PropertiesPanel from './components/PropertiesPanel.vue' import Timeline from './components/Timeline.vue' import WelcomeDialog from './components/WelcomeDialog.vue' import TestOverlay from './devtools/TestOverlay.vue' -import { IconButton, Toast } from './components/ui' +import { confirmDialog, DialogsHost, IconButton, promptDialog, Toast } from './components/ui' +import { t } from './i18n' import { useHistory } from './composables/useHistory' import { usePlaybackLoop } from './composables/usePlaybackLoop' import { @@ -140,8 +141,13 @@ async function saveProject() { const scene = JSON.parse(JSON.stringify(store.scene)) let name = currentProjectName.value if (!name) { - const suggested = `Projekt ${new Date().toLocaleDateString()}` - const entered = prompt('Projektname?', suggested) + const suggested = t('app.saveDialog.defaultName', { date: new Date().toLocaleDateString() }) + const entered = await promptDialog({ + title: t('app.saveDialog.title'), + message: t('app.saveDialog.message'), + defaultValue: suggested, + confirmLabel: t('app.saveDialog.confirm'), + }) if (entered === null) return name = entered.trim() || suggested } @@ -152,7 +158,7 @@ async function saveProject() { currentProjectId.value = rec.id currentProjectName.value = rec.name setLastOpenedId(rec.id) - showSavedToast(`"${rec.name}" gespeichert`) + showSavedToast(t('app.savedToast', { name: rec.name })) } function exportProjectFile() { @@ -167,9 +173,12 @@ async function importFromFile() { if (!file) return const hasContent = store.scene.layers.length > 0 || store.scene.assets.length > 0 if (hasContent) { - const ok = confirm( - 'Aktuelles Projekt wird durch die geladene Datei ersetzt. Ungespeicherte Änderungen gehen verloren. Fortfahren?', - ) + const ok = await confirmDialog({ + title: t('app.replaceDialog.title'), + message: t('app.replaceDialog.message'), + confirmLabel: t('app.replaceDialog.confirm'), + variant: 'danger', + }) if (!ok) return } try { @@ -285,7 +294,7 @@ onBeforeUnmount(() => { icon-weight="bold" size="md" :disabled="!history.canUndo.value" - title="Rückgängig (Ctrl+Z)" + :title="t('app.undo')" @click="history.undo" /> { icon-weight="bold" size="md" :disabled="!history.canRedo.value" - title="Wiederholen (Ctrl+Shift+Z)" + :title="t('app.redo')" @click="history.redo" />
@@ -301,7 +310,7 @@ onBeforeUnmount(() => { :icon="PhSkipBack" icon-weight="fill" size="md" - title="Zum Anfang" + :title="t('app.jumpToStart')" @click="rewind" /> { icon-weight="fill" size="md" variant="primary" - :title="store.playing ? 'Pause (Space)' : 'Play (Space)'" + :title="store.playing ? t('app.pause') : t('app.play')" @click="store.togglePlay()" /> {{ store.playhead.toFixed(2) }}s / {{ store.scene.duration }}s @@ -325,18 +334,18 @@ onBeforeUnmount(() => { {{ currentProjectName }} - - - - @@ -345,7 +354,7 @@ onBeforeUnmount(() => {