Files
fs a101b0c3ec Stadionzeitung, Veranstaltungen, News-Artikel, Lightbox und Anzeigen-Verteilung
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
2026-07-31 14:55:27 +02:00

3 lines
8.4 KiB
JavaScript

(()=>{var e={pluralize(a){return a===1?0:1}};e.strings={addBulkFilesFailed:{0:"No s'ha pogut afegir %{smart_count} arxiu a causa d'un error intern",1:"No s'han pogut afegir %{smart_count} arxius a causa d'errors interns"},addedNumFiles:"S'ha afegit %{numFiles} arxiu(s)",addingMoreFiles:"Afegint m\xE9s arxius",additionalRestrictionsFailed:"No s'han complert %{count} restriccions addicionals",addMore:"Afegir m\xE9s",addMoreFiles:"Afegir m\xE9s arxius",allFilesFromFolderNamed:"Tots els arxius de la carpeta %{name}",allowAccessDescription:"Per prendre fotos o gravar v\xEDdeos amb la teva c\xE0mera, si us plau permet l'acc\xE9s a la c\xE0mera per a aquest lloc.",allowAccessTitle:"Si us plau, permet l'acc\xE9s a la teva c\xE0mera",allowAudioAccessDescription:"Per gravar \xE0udio, si us plau permet l'acc\xE9s al micr\xF2fon per a aquest lloc.",allowAudioAccessTitle:"Si us plau, permet l'acc\xE9s al teu micr\xF2fon",aspectRatioLandscape:"Retallar horitzontal (16:9)",aspectRatioPortrait:"Retallar vertical (9:16)",aspectRatioSquare:"Retallar quadrat",authAborted:"Autenticaci\xF3 cancel\xB7lada",authenticateWith:"Connecta amb %{pluginName}",authenticateWithTitle:"Si us plau, autentica't amb %{pluginName} per a seleccionar arxius",back:"Enrere",browse:"Navegar",browseFiles:"Navegar pels arxius",browseFolders:"Navegar per carpetes",cancel:"Cancel\xB7lar",cancelUpload:"Cancel\xB7lar pujada",chooseFiles:"Seleccionar arxius",closeModal:"Tanca finestra",companionError:"Error en la connexi\xF3 amb Companion",companionUnauthorizeHint:"Per desautoritzar el teu compte de %{provider}, si us plau ves a %{url}",complete:"Completat",compressedX:"S'ha estalviat %{size} comprimint imatges",compressingImages:"Comprimint imatges...",connectedToInternet:"Connectat a Internet",copyLink:"Copia l'enlla\xE7",copyLinkToClipboardFallback:"Copia la seg\xFCent URL",copyLinkToClipboardSuccess:"Enlla\xE7 copiat al portapapers",creatingAssembly:"Preparant c\xE0rrega...",creatingAssemblyFailed:"No s'ha pogut crear un Assembly",dashboardTitle:"Carregador d'arxius",dashboardWindowTitle:"Finestra per a carregar arxius (Prem l'escape per tancar)",dataUploadedOfTotal:"%{complete} de %{total}",discardRecordedFile:"Descarta l'arxiu gravat",done:"Fet",dropHereOr:"Deixa els arxius aqu\xED o %{browse}",dropHint:"Deixa els teus arxius aqu\xED",dropPasteBoth:"Deixa arxius aqu\xED, %{browseFiles} o %{browseFolders}",dropPasteFiles:"Deixa arxius aqu\xED o %{browseFiles}",dropPasteFolders:"Deixa arxius aqu\xED o %{browseFolders}",dropPasteImportBoth:"Deixa arxius aqu\xED, %{browseFiles}, %{browseFolders} o importa des de:",dropPasteImportFiles:"Deixa arxius aqu\xED, %{browseFiles} o importa des de:",dropPasteImportFolders:"Deixa arxius aqu\xED, %{browseFolders} o importa des de:",editFile:"Edita l'arxiu",editFileWithFilename:"Edita l'arxiu %{file}",editing:"Editant %{file}",emptyFolderAdded:"No s'han afegit arxius des de la carpeta buida",encoding:"Codificant...",enterCorrectUrl:"URL incorrecta: Si us plau, assegura't d'ingressar un enlla\xE7 directe a un arxiu",enterTextToSearch:"Ingresa text per buscar imatges",enterUrlToImport:"Ingresa la URL per importar un arxiu",error:"Error",exceedsSize:"%{file} excedeix la mida m\xE0xima permesa de %{size}",failedToFetch:"Companion no ha pogut recuperar aquesta URL, si us plau assegura't que sigui correcta",failedToUpload:"No s'ha pogut carregar %{file}",fileSource:"Font d'arxiu: %{name}",filesUploadedOfTotal:{0:"%{complete} de %{smart_count} arxiu pujat",1:"%{complete} de %{smart_count} arxius pujats"},filter:"Filtrar",finishEditingFile:"Finalitzar edici\xF3 d'arxiu",flipHorizontal:"Girar horitzontalment",folderAdded:{0:"S'ha afegit %{smart_count} arxiu des de %{folder}",1:"S'han afegit %{smart_count} arxius des de %{folder}"},folderAlreadyAdded:`La carpeta "%{folder}" ja s'ha afegit`,generatingThumbnails:"Generant miniatures...",import:"Importar",importFiles:"Importar arxius des de:",importFrom:"Importar des de %{name}",inferiorSize:"Aquest arxiu \xE9s m\xE9s petit que la mida permesa de %{size}",loading:"Carregant...",logOut:"Tancar sessi\xF3",micDisabled:"L'acc\xE9s al micr\xF2fon va ser denegat per l'usuari",missingRequiredMetaField:"Falten camps de metadades obligatoris",missingRequiredMetaFieldOnFile:"Falten camps de metadades obligatoris a %{fileName}",missingRequiredMetaFields:{0:"Falta el camp de metadades obligatori: %{fields}.",1:"Falten els camps de metadades obligatoris: %{fields}."},myDevice:"El meu dispositiu",noAudioDescription:"Per gravar \xE0udio, si us plau connecta un micr\xF2fon o un altre dispositiu d'entrada d'\xE0udio",noAudioTitle:"Micr\xF2fon no disponible",noCameraDescription:"Per prendre fotos o gravar v\xEDdeo, si us plau connecta un dispositiu de c\xE0mera",noCameraTitle:"C\xE0mera no disponible",noDuplicates:"No es pot afegir l'arxiu duplicat '%{fileName}', ja existeix",noFilesFound:"No tens arxius o carpetes aqu\xED",noInternetConnection:"Sense connexi\xF3 a Internet",noMoreFilesAllowed:"No es poden afegir m\xE9s arxius",noSearchResults:"Lamentablement, no hi ha resultats per a aquesta cerca",openFolderNamed:"Obrir carpeta %{name}",pause:"Pausar",paused:"En pausa",pauseUpload:"Pausar pujada",pluginNameAudio:"\xC0udio",pluginNameBox:"Box",pluginNameCamera:"C\xE0mera",pluginNameDropbox:"Dropbox",pluginNameFacebook:"Facebook",pluginNameGoogleDrive:"Google Drive",pluginNameInstagram:"Instagram",pluginNameOneDrive:"OneDrive",pluginNameZoom:"Zoom",poweredBy:"Desenvolupat per %{uppy}",processingXFiles:{0:"Processant %{smart_count} arxiu",1:"Processant %{smart_count} arxius"},recording:"Enregistrament",recordingLength:"Durada de l'enregistrament %{recording_length}",recordingStoppedMaxSize:"L'enregistrament s'ha aturat perqu\xE8 la mida de l'arxiu est\xE0 a punt de superar el l\xEDmit",recordVideoBtn:"Enregistrar v\xEDdeo",recoveredAllFiles:"S'han restaurat tots els arxius. Ara pots reprendre la pujada.",recoveredXFiles:{0:"No vam poder recuperar completament 1 arxiu. Si us plau, torna a seleccionar-lo i reprengues la pujada.",1:"No vam poder recuperar completament %{smart_count} arxius. Si us plau, torna a seleccionar-los i reprengues la pujada."},removeFile:"Eliminar arxiu",reSelect:"Tornar a seleccionar",resetFilter:"Restablir filtre",resetSearch:"Restablir cerca",resume:"Reprendre",resumeUpload:"Reprendre pujada",retry:"Tornar a intentar",retryUpload:"Tornar a intentar pujada",revert:"Revertir",rotate:"Rotar",save:"Desar",saveChanges:"Desar canvis",search:"Cercar",searchImages:"Cercar imatges",selectX:{0:"Seleccionar %{smart_count}",1:"Seleccionar %{smart_count}"},sessionRestored:"Sessi\xF3 restaurada",showErrorDetails:"Mostrar detalls de l'error",signInWithGoogle:"Iniciar sessi\xF3 amb Google",smile:"\xA1Somriu!",startAudioRecording:"Iniciar enregistrament d'\xE0udio",startCapturing:"Iniciar captura de pantalla",startRecording:"Iniciar enregistrament de v\xEDdeo",stopAudioRecording:"Aturar enregistrament d'\xE0udio",stopCapturing:"Aturar captura de pantalla",stopRecording:"Aturar enregistrament de v\xEDdeo",streamActive:"Transmissi\xF3 activa",streamPassive:"Transmissi\xF3 passiva",submitRecordedFile:"Enviar arxiu enregistrat",takePicture:"Fer una foto",takePictureBtn:"Capturar foto",timedOut:"La pujada s'ha aturat durant %{seconds} segons, avortant.",upload:"Pujar",uploadComplete:"Pujada completa",uploadFailed:"Error en la pujada",uploading:"Pujant",uploadingXFiles:{0:"Pujant %{smart_count} arxiu",1:"Pujant %{smart_count} arxius"},uploadPaused:"Pujada en pausa",uploadStalled:"La pujada no ha realitzat cap progr\xE9s durant %{seconds} segons. Pots intentar-ho de nou.",uploadXFiles:{0:"Pujar %{smart_count} arxiu",1:"Pujar %{smart_count} arxius"},uploadXNewFiles:{0:"Pujar +%{smart_count} arxiu",1:"Pujar +%{smart_count} arxius"},xFilesSelected:{0:"%{smart_count} arxiu seleccionat",1:"%{smart_count} arxius seleccionats"},xMoreFilesAdded:{0:"S'ha afegit %{smart_count} arxiu m\xE9s",1:"S'han afegit %{smart_count} arxius m\xE9s"},xTimeLeft:"%{time} restant",youCanOnlyUploadFileTypes:"Nom\xE9s pots pujar: %{types}",youCanOnlyUploadX:{0:"Nom\xE9s pots pujar %{smart_count} arxiu",1:"Nom\xE9s pots pujar %{smart_count} arxius"},youHaveToAtLeastSelectX:{0:"Has de seleccionar com a m\xEDnim %{smart_count} arxiu",1:"Has de seleccionar com a m\xEDnim %{smart_count} arxius"},zoomIn:"Apropar",zoomOut:"Allunyar",selectFileNamed:"Selecciona arxiu %{name}",unselectFileNamed:"Desselecciona arxiu %{name}"};typeof Uppy<"u"&&(globalThis.Uppy.locales.ca_ES=e);var r=e;})();
//# sourceMappingURL=ca_ES.min.js.map