Stadionzeitung: Live-Seiten (Tabellen, Ergebnisse, Vorschau, Termine, News, Kontakt, Historie, Sportheim, Partner, Momente, Impressum), automatisches Cover, Swipe-Viewer mit Vollbildmodus und die Druckfassung als Falt-Heft. Anzeigen kommen jetzt aus dem Bestand und werden gleichmäßig verteilt, nie mehr als zwei hintereinander (vorher vier Blöcke à fünf). Die Doppelseiten-Regel rechnet das Skript selbst, statt sie von Hand zu prüfen. Veranstaltungen: Bereich /veranstaltungen mit Detailseite pro Fest, Lebenszyklus über das Datum (Ankündigung vor dem Fest, Rückblick danach), Galerie mit Lightbox. veranstaltungen.json ist dritte Termin-Quelle, damit ein Fest nie doppelt gepflegt wird. News-Artikel als dritte dynamische Prefix-Route, gemeinsamer detail-head. Behobene Fehler: - Wappen-Kontexte setzten Zeilen-Layout auf .crest statt auf die Zeile; das Wappen wurde zum Grid, Vereinsname und Tore rutschten darunter zusammen (Ergebnis-Rückblick, Vorschau, Cover). - --header-h (60px) unterschätzt die Kopfleiste um 32px (Logo 72px + 20px Versatz): neues abgeleitetes --header-space, sonst klebten Zurück-Links unter dem Logo. - base_url in der Produktions-Config ohne www, während .htaccess auf www umleitet; preflight prüft das jetzt. - .lightbox brauchte display:none mit (0,2,0), sonst lag das Overlay offen. Neue Werkzeuge: bin/anzeige-add.php (Anzeigen-Bestand), bin/veranstaltung-bilder.php (Plakate und Galerien, Alt-Texte folgen der Quelldatei), bin/qr.php (Druck-QR mit Warnung, wenn base_url nicht auf die echte Domain zeigt). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NzeVVgMCrzCDJAKeLEdKr7
3 lines
6.9 KiB
JavaScript
3 lines
6.9 KiB
JavaScript
(()=>{var t={pluralize(n){return n===1?0:1}};t.strings={addMore:"Th\xEAm",addMoreFiles:"Th\xEAm t\u1EADp tin",addingMoreFiles:"\u0110ang th\xEAm c\xE1c t\u1EADp tin",allowAccessDescription:"\u0110\u1EC3 ch\u1EE5p \u1EA3nh ho\u1EB7c quay video b\u1EB1ng camera, vui l\xF2ng cho ph\xE9p trang web truy c\u1EADp camera.",allowAccessTitle:"Vui l\xF2ng cho ph\xE9p truy c\u1EADp camera",authenticateWith:"K\u1EBFt n\u1ED1i \u0111\u1EBFn %{pluginName}",authenticateWithTitle:"X\xE1c th\u1EF1c v\u1EDBi %{pluginName} \u0111\u1EC3 ch\u1ECDn t\u1EADp tin",back:"Quay l\u1EA1i",browse:"ch\u1ECDn",browseFiles:"ch\u1ECDn",cancel:"Hu\u1EF7",cancelUpload:"Hu\u1EF7 t\u1EA3i l\xEAn",chooseFiles:"Ch\u1ECDn t\u1EADp tin",closeModal:"\u0110\xF3ng c\u1EEDa s\u1ED5",companionError:"K\u1EBFt n\u1ED1i th\u1EA5t b\u1EA1i",companionUnauthorizeHint:"\u0110\u1EC3 hu\u1EF7 u\u1EF7 quy\u1EC1n t\xE0i kho\u1EA3n %{provider}, truy c\u1EADp %{url}",complete:"Xong",connectedToInternet:"\u0110\xE3 k\u1EBFt n\u1ED1i Internet",copyLink:"Sao ch\xE9p li\xEAn k\u1EBFt",copyLinkToClipboardFallback:"Sao ch\xE9p li\xEAn k\u1EBFt d\u01B0\u1EDBi",copyLinkToClipboardSuccess:"\u0110\xE3 ch\xE9p li\xEAn k\u1EBFt v\xE0o b\u1ED9 nh\u1EDB t\u1EA1m",creatingAssembly:"\u0110ang chu\u1EA9n b\u1ECB t\u1EA3i l\xEAn...",creatingAssemblyFailed:"Transloadit: Kh\xF4ng th\u1EC3 t\u1EA1o nh\xF3m",dashboardTitle:"Tr\xECnh \u0111\u0103ng t\u1EA3i t\u1EADp tin",dashboardWindowTitle:"C\u1EEDa s\u1ED5 t\u1EA3i l\xEAn (\u1EA4n ESC \u0111\u1EC3 \u0111\xF3ng)",dataUploadedOfTotal:"%{complete} trong s\u1ED1 %{total}",done:"Xong",dropHereOr:"Th\u1EA3 t\u1EADp tin ho\u1EB7c %{browse}",dropHint:"Th\u1EA3 t\u1EADp tin v\xE0o \u0111\xE2y",dropPasteBoth:"Th\u1EA3 t\u1EADp tin v\xE0o \u0111\xE2y, d\xE1n ho\u1EB7c %{browse}",dropPasteFiles:"Th\u1EA3 t\u1EADp tin v\xE0o \u0111\xE2y, d\xE1n ho\u1EB7c %{browse}",dropPasteFolders:"Th\u1EA3 t\u1EADp tin v\xE0o \u0111\xE2y, d\xE1n ho\u1EB7c %{browse}",dropPasteImportBoth:"Th\u1EA3 t\u1EADp tin v\xE0o \u0111\xE2y, d\xE1n, %{browse} ho\u1EB7c nh\u1EADp t\u1EEB",dropPasteImportFiles:"Th\u1EA3 t\u1EADp tin v\xE0o \u0111\xE2y, d\xE1n, %{browse} ho\u1EB7c nh\u1EADp t\u1EEB",dropPasteImportFolders:"Th\u1EA3 t\u1EADp tin v\xE0o \u0111\xE2y, d\xE1n, %{browse} ho\u1EB7c nh\u1EADp t\u1EEB",editFile:"S\u1EEDa t\u1EADp tin",editing:"\u0110ang s\u1EEDa %{file}",emptyFolderAdded:"Kh\xF4ng c\xF3 t\u1EADp tin n\xE0o \u0111\u01B0\u1EE3c th\xEAm t\u1EEB th\u01B0 m\u1EE5c tr\u1ED1ng",encoding:"\u0110ang encode...",enterCorrectUrl:"URL sai: \u0110\u1EA3m b\u1EA3o r\u1EB1ng b\u1EA1n \u0111ang nh\u1EADp m\u1ED9t li\xEAn k\u1EBFt tr\u1EF1c ti\u1EBFp \u0111\u1EBFn m\u1ED9t t\u1EADp tin",enterUrlToImport:"Nh\u1EADp URL \u0111\u1EC3 nh\u1EADp t\u1EADp tin",exceedsSize:"T\u1EADp tin n\xE0y v\u01B0\u1EE3t qu\xE1 k\xEDch th\u01B0\u1EDBc t\u1ED1i \u0111a cho ph\xE9p c\u1EE7a %{size}",failedToFetch:"Th\u1EA5t b\u1EA1i khi l\u1EA5y t\u1EEB URL, h\xE3y s\u1EEDa l\u1EA1i cho \u0111\xFAng",failedToUpload:"T\u1EA3i l\xEAn %{file} th\u1EA5t b\u1EA1i",fileSource:"Ngu\u1ED3n t\u1EADp tin: %{name}",filesUploadedOfTotal:{0:"%{complete} trong s\u1ED1 %{smart_count} t\u1EADp tin \u0111\xE3 \u0111\u01B0\u1EE3c t\u1EA3i l\xEAn",1:"%{complete} trong s\u1ED1 %{smart_count} t\u1EADp tin \u0111\xE3 \u0111\u01B0\u1EE3c t\u1EA3i l\xEAn",2:"%{complete} trong s\u1ED1 %{smart_count} t\u1EADp tin \u0111\xE3 \u0111\u01B0\u1EE3c t\u1EA3i l\xEAn"},filter:"B\u1ED9 l\u1ECDc",finishEditingFile:"Ho\xE0n t\u1EA5t ch\u1EC9nh s\u1EEDa t\u1EADp tin",folderAdded:{0:"\u0110\xE3 th\xEAm %{smart_count} t\u1EADp tin t\u1EEB %{folder}",1:"\u0110\xE3 th\xEAm %{smart_count} t\u1EADp tin t\u1EEB %{folder}",2:"\u0110\xE3 th\xEAm %{smart_count} t\u1EADp tin t\u1EEB %{folder}"},generatingThumbnails:"\u0110ang t\u1EA1o \u1EA3nh thu nh\u1ECF...",import:"Nh\u1EADp",importFrom:"Nh\u1EADp t\u1EEB %{name}",loading:"\u0110ang t\u1EA3i...",logOut:"\u0110\u0103ng xu\u1EA5t",myDevice:"Thi\u1EBFt b\u1ECB c\u1EE7a t\xF4i",noFilesFound:"Kh\xF4ng c\xF3 t\u1EADp tin ho\u1EB7c th\u01B0 m\u1EE5c n\xE0o",noInternetConnection:"Kh\xF4ng c\xF3 k\u1EBFt n\u1ED1i Internet",openFolderNamed:"M\u1EDF th\u01B0 m\u1EE5c %{name}",pause:"T\u1EA1m d\u1EEBng",pauseUpload:"T\u1EA1m d\u1EEBng t\u1EA3i l\xEAn",paused:"\u0110\xE3 t\u1EA1m d\u1EEBng",poweredBy:"Cung c\u1EA5p b\u1EDFi %{uppy}",processingXFiles:{0:"\u0110ang x\u1EED l\xED %{smart_count} t\u1EADp tin",1:"\u0110ang x\u1EED l\xED %{smart_count} t\u1EADp tin",2:"\u0110ang x\u1EED l\xED %{smart_count} t\u1EADp tin"},recordingLength:"Th\u1EDDi l\u01B0\u1EE3ng ghi %{recording_length}",removeFile:"B\u1ECF t\u1EADp tin",resetFilter:"\u0110\u1EB7t l\u1EA1i b\u1ED9 l\u1ECDc",resume:"Ti\u1EBFp t\u1EE5c",resumeUpload:"Ti\u1EBFp t\u1EE5c t\u1EA3i l\xEAn",retry:"Th\u1EED l\u1EA1i",retryUpload:"T\u1EA3i l\xEAn l\u1EA1i",saveChanges:"L\u01B0u c\xE1c thay \u0111\u1ED5i",selectFileNamed:"Ch\u1ECDn t\u1EADp tin %{name}",selectX:{0:"Ch\u1ECDn %{smart_count}",1:"Ch\u1ECDn %{smart_count}",2:"Ch\u1ECDn %{smart_count}"},smile:"C\u01B0\u1EDDi l\xEAn!",startRecording:"B\u1EAFt \u0111\u1EA7u thu h\xECnh",stopRecording:"D\u1EEBng thu h\xECnh",takePicture:"Ch\u1EE5p \u1EA3nh",timedOut:"T\u1EA3i l\xEAn b\u1ECB \u0111\xECnh tr\u1EC7 %{seconds} gi\xE2y, \u0111ang hu\u1EF7.",unselectFileNamed:"B\u1ECF ch\u1ECDn t\u1EADp tin %{name}",upload:"T\u1EA3i l\xEAn",uploadComplete:"T\u1EA3i l\xEAn ho\xE0n t\u1EA5t",uploadFailed:"T\u1EA3i l\xEAn th\u1EA5t b\u1EA1i",uploadPaused:"\u0110\xE3 t\u1EA1m d\u1EEBng t\u1EA3i l\xEAn",uploadXFiles:{0:"T\u1EA3i l\xEAn %{smart_count} t\u1EADp tin",1:"T\u1EA3i l\xEAn %{smart_count} t\u1EADp tin",2:"T\u1EA3i l\xEAn %{smart_count} t\u1EADp tin"},uploadXNewFiles:{0:"T\u1EA3i l\xEAn +%{smart_count} t\u1EADp tin",1:"T\u1EA3i l\xEAn +%{smart_count} t\u1EADp tin",2:"T\u1EA3i l\xEAn +%{smart_count} t\u1EADp tin"},uploading:"Uploading",uploadingXFiles:{0:"\u0110ang t\u1EA3i l\xEAn %{smart_count} t\u1EADp tin",1:"\u0110ang t\u1EA3i l\xEAn %{smart_count} t\u1EADp tin",2:"\u0110ang t\u1EA3i l\xEAn %{smart_count} t\u1EADp tin"},xFilesSelected:{0:"\u0110\xE3 ch\u1ECDn %{smart_count} t\u1EADp tin",1:"\u0110\xE3 ch\u1ECDn %{smart_count} t\u1EADp tin",2:"\u0110\xE3 ch\u1ECDn %{smart_count} t\u1EADp tin"},xMoreFilesAdded:{0:"\u0110\xE3 th\xEAm %{smart_count} t\u1EADp tin",1:"\u0110\xE3 th\xEAm %{smart_count} t\u1EADp tin",2:"\u0110\xE3 th\xEAm %{smart_count} t\u1EADp tin"},xTimeLeft:"%{time} left",youCanOnlyUploadFileTypes:"Ch\u1EC9 c\xF3 th\u1EC3 t\u1EA3i l\xEAn: %{types}",youCanOnlyUploadX:{0:"Ch\u1EC9 c\xF3 th\u1EC3 t\u1EA3i l\xEAn %{smart_count} t\u1EADp tin",1:"Ch\u1EC9 c\xF3 th\u1EC3 t\u1EA3i l\xEAn %{smart_count} t\u1EADp tin",2:"Ch\u1EC9 c\xF3 th\u1EC3 t\u1EA3i l\xEAn %{smart_count} t\u1EADp tin"},youHaveToAtLeastSelectX:{0:"Ch\u1ECDn \xEDt nh\u1EA5t %{smart_count} t\u1EADp tin",1:"Ch\u1ECDn \xEDt nh\u1EA5t %{smart_count} t\u1EADp tin",2:"Ch\u1ECDn \xEDt nh\u1EA5t %{smart_count} t\u1EADp tin"}};typeof Uppy<"u"&&(globalThis.Uppy.locales.vi_VN=t);var i=t;})();
|
|
//# sourceMappingURL=vi_VN.min.js.map
|