feat: add local photo zip download for logged-in users and swipe navigation to maximized gallery

This commit is contained in:
2026-06-07 21:42:00 +02:00
parent 864d45714c
commit a185bbaf27
10 changed files with 301 additions and 11 deletions
+6 -1
View File
@@ -36,7 +36,9 @@
"unsaved_changes_stay": "Blive",
"unsaved_changes_save_leave": "Gem og afslut",
"unsaved_changes_discard": "Afvis",
"unsaved_changes_leave": "Forladt"
"unsaved_changes_leave": "Forladt",
"previous": "Forrige",
"next": "Næste"
},
"nav": {
"dashboard": "Dashboard",
@@ -445,6 +447,9 @@
"ai_summary_error_forbidden": "Kun skipperen må generere AI-opsummeringer.",
"ai_summary_offline": "AI-opsummeringen kræver en internetforbindelse. Du er i øjeblikket offline.",
"photos_title": "Fotobilag",
"export_photos_zip": "Download fotos (ZIP)",
"exporting_photos_zip": "Opretter ZIP...",
"no_photos_to_download": "Ingen fotos fundet i denne logbog.",
"photo_caption_label": "Billedbeskrivelse / Etiket (valgfrit)",
"photo_caption_placeholder": "f.eks. sætte sejl tæt på havneindsejlingen",
"photo_btn": "Tag/upload et billede",
+6 -1
View File
@@ -36,7 +36,9 @@
"unsaved_changes_stay": "Bleiben",
"unsaved_changes_save_leave": "Speichern & verlassen",
"unsaved_changes_discard": "Verwerfen",
"unsaved_changes_leave": "Verlassen"
"unsaved_changes_leave": "Verlassen",
"previous": "Zurück",
"next": "Weiter"
},
"nav": {
"dashboard": "Dashboard",
@@ -445,6 +447,9 @@
"ai_summary_error_forbidden": "Nur der Skipper darf KI-Zusammenfassungen generieren.",
"ai_summary_offline": "Die KI-Zusammenfassung erfordert eine Internetverbindung. Du bist derzeit offline.",
"photos_title": "Foto-Anhänge",
"export_photos_zip": "Fotos herunterladen (ZIP)",
"exporting_photos_zip": "ZIP wird erstellt...",
"no_photos_to_download": "Keine Fotos in diesem Logbuch vorhanden.",
"photo_caption_label": "Foto-Beschreibung / Label (Optional)",
"photo_caption_placeholder": "z.B. Segel setzen nahe Hafeneinfahrt",
"photo_btn": "Foto aufnehmen / Hochladen",
+6 -1
View File
@@ -36,7 +36,9 @@
"unsaved_changes_stay": "Stay",
"unsaved_changes_save_leave": "Save & leave",
"unsaved_changes_discard": "Discard",
"unsaved_changes_leave": "Leave"
"unsaved_changes_leave": "Leave",
"previous": "Previous",
"next": "Next"
},
"nav": {
"dashboard": "Dashboard",
@@ -445,6 +447,9 @@
"ai_summary_error_forbidden": "Only the skipper may generate AI summaries.",
"ai_summary_offline": "AI summary generation requires an internet connection. You are currently offline.",
"photos_title": "Photo Attachments",
"export_photos_zip": "Download Photos (ZIP)",
"exporting_photos_zip": "Creating ZIP...",
"no_photos_to_download": "No photos found in this logbook.",
"photo_caption_label": "Photo Caption / Label (Optional)",
"photo_caption_placeholder": "e.g. Setting sails near harbor entrance",
"photo_btn": "Take Photo / Upload",
+6 -1
View File
@@ -36,7 +36,9 @@
"unsaved_changes_stay": "Quedarse",
"unsaved_changes_save_leave": "Guardar y salir",
"unsaved_changes_discard": "Descartar",
"unsaved_changes_leave": "Abandonado"
"unsaved_changes_leave": "Abandonado",
"previous": "Anterior",
"next": "Siguiente"
},
"nav": {
"dashboard": "Panel de control",
@@ -445,6 +447,9 @@
"ai_summary_error_forbidden": "Solo el capitán puede generar resúmenes de IA.",
"ai_summary_offline": "El resumen generado por IA requiere una conexión a Internet. Actualmente no tienes conexión.",
"photos_title": "Archivos adjuntos con fotos",
"export_photos_zip": "Descargar fotos (ZIP)",
"exporting_photos_zip": "Creando archivo ZIP...",
"no_photos_to_download": "No hay fotos disponibles en este cuaderno de bitácora.",
"photo_caption_label": "Descripción de la foto / Etiqueta (opcional)",
"photo_caption_placeholder": "p. ej., izar las velas cerca de la entrada del puerto",
"photo_btn": "Hacer una foto / Subir una foto",
+6 -1
View File
@@ -36,7 +36,9 @@
"unsaved_changes_stay": "Rester",
"unsaved_changes_save_leave": "Enregistrer et quitter",
"unsaved_changes_discard": "Rejeter",
"unsaved_changes_leave": "Quitter"
"unsaved_changes_leave": "Quitter",
"previous": "Précédent",
"next": "Suivant"
},
"nav": {
"dashboard": "Tableau de bord",
@@ -445,6 +447,9 @@
"ai_summary_error_forbidden": "Seul le skipper est autorisé à générer des résumés basés sur l'IA.",
"ai_summary_offline": "Le résumé généré par l'IA nécessite une connexion Internet. Tu es actuellement hors ligne.",
"photos_title": "Pièces jointes (photos)",
"export_photos_zip": "Télécharger les photos (ZIP)",
"exporting_photos_zip": "Création du fichier ZIP...",
"no_photos_to_download": "Aucune photo disponible dans ce journal.",
"photo_caption_label": "Description de la photo / Étiquette (facultatif)",
"photo_caption_placeholder": "par exemple, hisser les voiles près de l'entrée du port",
"photo_btn": "Prendre une photo / Télécharger une photo",
+6 -1
View File
@@ -36,7 +36,9 @@
"unsaved_changes_stay": "Bli",
"unsaved_changes_save_leave": "Lagre og avslutt",
"unsaved_changes_discard": "Avvis",
"unsaved_changes_leave": "Forlatt"
"unsaved_changes_leave": "Forlatt",
"previous": "Forrige",
"next": "Neste"
},
"nav": {
"dashboard": "Dashbord",
@@ -445,6 +447,9 @@
"ai_summary_error_forbidden": "Bare skipperen har lov til å generere AI-sammendrag.",
"ai_summary_offline": "AI-sammendraget krever en internettforbindelse. Du er for øyeblikket frakoblet.",
"photos_title": "Bildevedlegg",
"export_photos_zip": "Last ned bilder (ZIP)",
"exporting_photos_zip": "Oppretter ZIP...",
"no_photos_to_download": "Ingen bilder i denne loggboken.",
"photo_caption_label": "Bildetekst / Etikett (valgfritt)",
"photo_caption_placeholder": "f.eks. sette seil nær havneinnløpet",
"photo_btn": "Ta bilde / Last opp",
+6 -1
View File
@@ -36,7 +36,9 @@
"unsaved_changes_stay": "Stanna kvar",
"unsaved_changes_save_leave": "Spara och avsluta",
"unsaved_changes_discard": "Avvisa",
"unsaved_changes_leave": "Lämna"
"unsaved_changes_leave": "Lämna",
"previous": "Föregående",
"next": "Nästa"
},
"nav": {
"dashboard": "Instrumentpanelen",
@@ -445,6 +447,9 @@
"ai_summary_error_forbidden": "Endast skepparen får skapa AI-sammanfattningar.",
"ai_summary_offline": "AI-sammanfattningen kräver en internetanslutning. Du är för närvarande offline.",
"photos_title": "Bilagor med bilder",
"export_photos_zip": "Ladda ner bilder (ZIP)",
"exporting_photos_zip": "Skapar ZIP...",
"no_photos_to_download": "Inga bilder i denna loggbok.",
"photo_caption_label": "Bildbeskrivning / Etikett (valfritt)",
"photo_caption_placeholder": "t.ex. sätta segel nära hamninloppet",
"photo_btn": "Ta en bild / Ladda upp",