release: v0.19.0

Release v0.19.0. See the `## [0.19.0] — 2026-09-29` section of
[CHANGELOG.md](https://github.com/ralksta/immich-folio/blob/dev/CHANGELOG.md)
for the full list.

Highlights: client proofing links (#683), custom content pages (#738),
asset picker search (#740), concurrent-edit detection (#742), env-locked
settings (#739), an accessibility baseline (#741), three security fixes
with advisories (#737, #755, #759), and a pre-release quality pass
(#780–#797).

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: ralksta <ralksta@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Ralf <rohlenbo79@gmail.com>
Co-authored-by: Paul Thies <110185070+ImScheinox@users.noreply.github.com>
Co-authored-by: lancetm714 <108419425+lancetm714@users.noreply.github.com>
Co-authored-by: Lance Martin <lancetaylor95@gmail.com>
This commit is contained in:
Ralksta
2026-09-29 22:50:30 +02:00
committed by GitHub
parent 5f251923f0
commit ad8b09700b
297 changed files with 19398 additions and 1800 deletions

View File

@@ -19,6 +19,8 @@ export const nl: Dictionary = {
map: 'Kaart',
journal: 'Journal',
skipToContent: 'Naar de inhoud',
mainNavAria: 'Hoofdnavigatie',
heroNavAria: 'Onderdelen',
openMenu: 'Menu openen',
closeMenu: 'Menu sluiten',
},
@@ -44,12 +46,15 @@ export const nl: Dictionary = {
nextEntryAria: (title: string) => `Volgend verhaal: ${title}`,
entryNavAria: 'Navigatie tussen journalverhalen',
loadingGallery: 'Galerij laden',
gallery: 'Galerie',
loadingPhotos: 'Foto’s laden',
downloadAlbum: 'Album downloaden',
},
home: {
enter: 'Binnenkomen',
pauseSlideshow: 'Diavoorstelling pauzeren',
playSlideshow: 'Diavoorstelling afspelen',
},
error: {
@@ -58,8 +63,6 @@ export const nl: Dictionary = {
errorTitle: 'Er is iets misgegaan',
errorText:
'Deze pagina kon niet worden geladen. Meestal is dat tijdelijk — probeer het zo nog eens.',
siteErrorText:
'Deze site kon niet worden geladen. Meestal is dat tijdelijk — probeer het zo nog eens.',
tryAgain: 'Opnieuw proberen',
reference: (digest: string) => `Referentie: ${digest}`,
},
@@ -71,6 +74,7 @@ export const nl: Dictionary = {
immichUnavailable:
'De fotobibliotheek is op dit moment niet bereikbaar. Probeer het zo opnieuw.',
back: 'Terug naar de galerij',
limitReached: 'Het downloadlimiet voor deze link is bereikt.',
},
theme: {
@@ -82,11 +86,18 @@ export const nl: Dictionary = {
password: {
subtitle: 'Deze galerij is met een wachtwoord beveiligd.',
siteSubtitle: 'Deze site is met een wachtwoord beveiligd.',
pageSubtitle: 'Deze pagina is met een wachtwoord beveiligd.',
journalSubtitle: 'Dit journalverhaal is met een wachtwoord beveiligd.',
protectedPage: 'Beveiligde pagina',
placeholder: 'Voer het wachtwoord in',
submit: 'Binnenkomen',
verifying: 'Controleren…',
incorrect: 'Onjuist wachtwoord. Probeer het opnieuw.',
failed: 'Het wachtwoord kon niet worden gecontroleerd. Probeer het later opnieuw.',
tooManyAttempts: (seconds: number | null) =>
seconds
? `Te veel pogingen. Probeer het over ${seconds} ${seconds === 1 ? 'seconde' : 'seconden'} opnieuw.`
: 'Te veel pogingen. Probeer het later opnieuw.',
},
about: {
@@ -104,6 +115,9 @@ export const nl: Dictionary = {
loading: 'Kaart laden…',
loadFailed: (status: number) => `Kaartgegevens konden niet worden geladen (${status})`,
initFailed: 'De kaart kon niet worden gestart',
zoomIn: 'Inzoomen',
zoomOut: 'Uitzoomen',
leafletTitle: 'Een JavaScript-bibliotheek voor interactieve kaarten',
},
subpage: {
@@ -130,6 +144,7 @@ export const nl: Dictionary = {
lightbox: {
viewer: 'Fotoviewer',
position: (n: number, total: number) => `Foto ${n} van ${total}`,
openPhoto: (n: number) => `Foto ${n} bekijken`,
close: 'Sluiten',
closeTitle: 'Sluiten (Esc)',
@@ -182,6 +197,7 @@ export const nl: Dictionary = {
saved: 'Opgeslagen',
favorite: 'Favoriet',
showAll: 'Alles tonen',
filterEmpty: "Geen foto's geselecteerd.",
selected: (n: number) => `❤️ ${n} geselecteerd`,
shareExport: 'Delen & exporteren',
modalTitle: (n: number) => `❤️ Selectie (${n})`,
@@ -206,6 +222,31 @@ export const nl: Dictionary = {
`Hallo,\n\nHier is mijn fotoselectie:\n\n${list}\n\nDeellink: ${url}\n\nMet vriendelijke groet,`,
},
proofSession: {
greeting: (name: string) => `Selectie voor ${name}`,
intro:
'Tik op het hartje bij de foto’s die je wilt. Je selectie wordt meteen opgeslagen — je kunt met deze link altijd terugkomen.',
saving: 'Opslaan…',
saved: 'Selectie opgeslagen',
saveFailed:
'Je selectie kon niet worden opgeslagen. Controleer je verbinding en probeer het opnieuw.',
review: 'Bekijken & versturen',
modalTitle: (n: number) => `Jouw selectie (${n})`,
empty: 'Nog geen foto’s geselecteerd.',
submit: 'Selectie versturen',
submitting: 'Versturen…',
confirmSubmit: (n: number) =>
`${plural(n, 'foto', 'foto’s')} versturen? Daarna kun je de selectie niet meer wijzigen.`,
submitted: 'Bedankt — je selectie is verstuurd.',
locked: 'Deze selectie is verstuurd en kan niet meer worden gewijzigd.',
validUntil: (date: string) => `Deze link is geldig tot ${date}.`,
expiredTitle: 'Deze link is verlopen',
expiredText: 'Vraag je fotograaf om een nieuwe link.',
downloadSelection: 'Selectie downloaden (.zip)',
downloadAll: 'Alle foto’s downloaden (.zip)',
downloadsLeft: (n: number) => `Nog ${plural(n, 'download', 'downloads')}`,
},
legal: {
navLabel: 'Colofon',
title: 'Colofon',