Translate the video toggle and guard loops without one

The pause and play labels were missing from the kant_t dictionary, so
English and Turkish pages showed them in German. video.js now skips a
data-video-loop without its toggle instead of throwing and leaving every
later video still, and the design panel puts size and spacing first for
the video block.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
kantarciandClaude Opus 5.5 committed 2026-11-05 07:46:22 +01:00
1 parent 76613b9f8e
commit 1b25100dec
4 files changed
+14 -2

No files matched your search

+5 -1
View File
@@ -10,7 +10,11 @@
**Nicht geprüft:** Safari und echtes iOS-Gerät, H.264 im Testbrowser (Playwright-Chromium spielt nur WebM), Lighthouse mit Video, Upload auf dem Hosting (PHP-Limits).
**Nächster Schritt:** Release, dann auf kant-it.de hochladen und in der Hero-Sektion als Hintergrundvideo wählen.
**Durchsicht vor dem Release (05.11.2026):** CSP (`default-src 'self'` deckt die Videos), Sicherung, Website-Paket, Auslieferung mit Range und Schema-Migration passen. Nachgebessert: „Video“, „Video anhalten“ und „Video abspielen“ fehlten im Wörterbuch von `kant_t` – auf `/en/`- und türkischen Seiten stand der Knopf deutsch; jetzt Englisch und Türkisch (Französisch fällt wie sonst auf Englisch zurück). `video.js` überspringt ein `data-video-loop` ohne Knopf (etwa aus „Eigenes HTML“), statt mit einem Fehler alle folgenden Videos stehen zu lassen. Im Design-Panel stehen beim Video Größe und Abstand vorn statt der Textgruppe.
**Geprüft:** PHPUnit 686/686 grün unter PHP 8.4 (auch `UpdaterTest`) und 8.2 (dort nur die bekannte Warnung in `UpdaterTest::testTrackedEnvironmentFromAnOlderTagCannotReplaceInstallationSettings`); php-cs-fixer ohne Befund, `lint:twig`, `npm test` 41/41, `test:editor` grün, `test:browser` gegen 8080 grün (die zwei bekannten Kontrastbefunde auf `/grundlagen`, Inhalt). Lokale `var/cms.db` auf `Version20261104000100` migriert.
**Nächster Schritt:** Release 1.37.0, dann auf kant-it.de hochladen und in der Hero-Sektion als Hintergrundvideo wählen.
## Sicherheitsupdate symfony/mime, Release 1.36.2 (03.11.2026)
+1 -1
View File
@@ -513,7 +513,7 @@ export function createDesignPanel({ schema, onChange, onSavePreset, getBlock, ge
});
panel.append(searchLabel, search, found);
const priority = ['image', 'gallery', 'logos'].includes(block.type) ? ['image', 'size', 'spacing'] : isContainer(block) ? ['layout', 'size', 'spacing', 'background'] : ['spacer', 'divider', 'embed'].includes(block.type) ? ['size', 'spacing'] : ['text', 'size', 'spacing'];
const priority = ['image', 'gallery', 'logos'].includes(block.type) ? ['image', 'size', 'spacing'] : isContainer(block) ? ['layout', 'size', 'spacing', 'background'] : ['spacer', 'divider', 'embed', 'video'].includes(block.type) ? ['size', 'spacing'] : ['text', 'size', 'spacing'];
const orderedGroups = [...new Set([...priority, ...Object.keys(GROUPS)])];
for (const group of orderedGroups) {
const groupLabel = GROUPS[group];
+2
View File
@@ -12,6 +12,8 @@ const saving = navigator.connection?.saveData === true;
for (const video of document.querySelectorAll('[data-video-loop]')) {
const toggle = video.parentElement.querySelector(':scope > .video-toggle');
// Ein data-video-loop aus „Eigenes HTML“ hat keinen Knopf; ohne ihn bleibt es beim Standbild.
if (!toggle) continue;
let wanted = !reduced.matches && !saving;
let visible = false;
const paint = () => {
+6
View File
@@ -31,6 +31,9 @@ final class LanguageExtension extends AbstractExtension
'Bildergalerie' => 'Image gallery',
'Bild' => 'Image',
'vergrößern' => 'enlarge',
'Video' => 'Video',
'Video anhalten' => 'Pause video',
'Video abspielen' => 'Play video',
'Ansehen' => 'View',
'Weiterlesen' => 'Read more',
'Weitere Beiträge' => 'More posts',
@@ -131,6 +134,9 @@ final class LanguageExtension extends AbstractExtension
'Bildergalerie' => 'Resim galerisi',
'Bild' => 'Resim',
'vergrößern' => 'büyüt',
'Video' => 'Video',
'Video anhalten' => 'Videoyu durdur',
'Video abspielen' => 'Videoyu oynat',
'Ansehen' => 'İncele',
'Weitere Beiträge' => 'Diğer yazılar',
'Vorheriger Beitrag' => 'Önceki yazı',