mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
b842d74a5d
* feat(collections): preview which of a trip's places a list already holds The bulk import endpoint has been there since the select-mode copy, but nothing calls it and it only reports duplicates after the fact. A dialog needs the verdict up front, so /:id/importable/:tripId returns the trip's places with the duplicate check the import itself applies, plus whether any day holds the place. * feat(collections): import a whole trip's places into a list Two steps: pick a trip, then tick its places. Places already on the list are greyed out and unpickable, and the ones no day holds start selected — those are the plans a trip left behind, which is the reason to import at all. Sorted so a mostly-saved trip reads as the two that are left rather than a wall of grey. * feat(collections): reach the trip import from the filter row and an empty list * i18n(collections): translate the trip import into all locales * fix(collections): stop the label dialog's buttons wrapping mid-word Three actions in a max-w-sm footer wrapped into two lines each. The assign button also painted white text on the accent, which disappears on a light one. * docs(collections): document the trip import
188 lines
9.2 KiB
TypeScript
188 lines
9.2 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
||
|
||
const collection: TranslationStrings = {
|
||
'collections.saveNToList': '{count} in eine Liste speichern',
|
||
'collections.addedNToList': '{count} in {name} gespeichert',
|
||
'collections.noOwnLists': 'Du hast noch keine Listen',
|
||
'collections.saveToListHint': 'Duplikate werden automatisch übersprungen',
|
||
'collections.role.label': 'Rolle',
|
||
'collections.role.viewer': 'Betrachter',
|
||
'collections.role.editor': 'Bearbeiter',
|
||
'collections.role.admin': 'Admin',
|
||
'collections.picker.allLists': 'Alle Listen',
|
||
'collections.select': 'Auswählen',
|
||
'collections.selectAll': 'Alle auswählen',
|
||
'collections.deselectAll': 'Auswahl aufheben',
|
||
'collections.moveToList': 'In Liste verschieben',
|
||
'collections.duplicateToList': 'In Liste duplizieren',
|
||
'collections.moveToListTitle': '{count} in andere Liste verschieben',
|
||
'collections.duplicateToListTitle': '{count} in andere Liste duplizieren',
|
||
'collections.noOtherLists': 'Noch keine anderen Listen',
|
||
'collections.movedCount': '{count} Orte verschoben',
|
||
'collections.duplicatedCount': '{count} Orte dupliziert',
|
||
'collections.placeCount': '{count} Orte',
|
||
'collections.category': 'Kategorie',
|
||
'collections.noCategory': 'Keine Kategorie',
|
||
'collections.editListTitle': 'Liste bearbeiten',
|
||
'collections.coverImage': 'Titelbild',
|
||
'collections.addCover': 'Titelbild hinzufügen',
|
||
'collections.changeCover': 'Titelbild ändern',
|
||
'collections.description': 'Beschreibung',
|
||
'collections.descriptionPlaceholder': 'Beschreibung hinzufügen…',
|
||
'collections.links': 'Links',
|
||
'collections.linkLabel': 'Bezeichnung',
|
||
'collections.addLink': 'Link hinzufügen',
|
||
'collections.addDetails': 'Details hinzufügen',
|
||
'collections.addPlace': 'Ort hinzufügen',
|
||
'collections.addPlaceSearch': 'Nach einem Ort suchen…',
|
||
'collections.addPlaceHint': 'Suchen, um einen Ort zur Liste hinzuzufügen',
|
||
'collections.importFromTrip': 'Aus einer Reise übernehmen',
|
||
'collections.importTitle': 'Aus einer Reise übernehmen',
|
||
'collections.importDoneTitle': 'Übernahme abgeschlossen',
|
||
'collections.importPickTripHint': 'Wähle eine Reise und übernimm ihre Orte in {name}.',
|
||
'collections.importNoTrips': 'Noch keine Reisen',
|
||
'collections.importPlacesCount': '{count} Orte',
|
||
'collections.importSearchPlaces': 'Orte durchsuchen…',
|
||
'collections.importOnlyNew': 'Nur neue',
|
||
'collections.importSelectAll': 'Alle auswählen',
|
||
'collections.importClearSelection': 'Auswahl aufheben',
|
||
'collections.importAlreadySaved': 'Schon gespeichert',
|
||
'collections.importUnscheduled': 'Ohne Tag',
|
||
'collections.importOnDay': 'Tag {count}',
|
||
'collections.importSelectedCount': '{count} ausgewählt',
|
||
'collections.importAction': '{count} übernehmen',
|
||
'collections.importEmptyTrip': 'Diese Reise hat noch keine Orte',
|
||
'collections.importNothingNew': 'Alles aus dieser Reise steht schon auf der Liste',
|
||
'collections.importDone': '{count} Orte hinzugefügt',
|
||
'collections.importDoneSkipped': '{count} standen schon auf der Liste und blieben unverändert',
|
||
'collections.importDoneClean': 'Sie stehen jetzt alle in {name}',
|
||
'collections.sort.default': 'Standard',
|
||
'collections.sort.nameAsc': 'Name (A–Z)',
|
||
'collections.coordinates': 'Koordinaten',
|
||
'collections.showList': 'Liste zeigen',
|
||
'collections.expandMap': 'Karte vergrößern',
|
||
'collections.hero.mine': 'Meine Sammlung',
|
||
'collections.hero.shared': 'Mit dir geteilt',
|
||
'collections.hero.all': 'Deine Bibliothek',
|
||
'collections.title': 'Sammlungen',
|
||
'collections.subtitle': 'Deine gespeicherten Orte, in Listen organisiert',
|
||
|
||
'collections.newList': 'Neue Liste',
|
||
'collections.create': 'Erstellen',
|
||
'collections.editList': 'Umbenennen',
|
||
'collections.listMenu': 'Listenoptionen',
|
||
'collections.deleteList': 'Liste löschen',
|
||
'collections.deleteListConfirm':
|
||
'Dies löscht die Liste und alle gespeicherten Orte endgültig. Das kann nicht rückgängig gemacht werden.',
|
||
'collections.listName': 'Listenname',
|
||
'collections.listNamePlaceholder': 'z. B. Tokio 2025',
|
||
'collections.listColor': 'Farbe',
|
||
'collections.allSaved': 'Alle gespeicherten',
|
||
'collections.shared': 'Geteilt',
|
||
|
||
'collections.empty.title': 'Noch keine Orte',
|
||
'collections.empty.text': 'Speichere Orte aus jeder Reise, um diese Liste aufzubauen.',
|
||
'collections.empty.noMatchTitle': 'Keine Treffer',
|
||
'collections.empty.noMatchText': 'Keine gespeicherten Orte passen zu deinem Filter oder deiner Suche.',
|
||
'collections.empty.firstTitle': 'Starte deine erste Sammlung',
|
||
'collections.empty.firstText':
|
||
'Erstelle eine Liste, um Orte zu speichern, die du dir über Reisen hinweg merken willst.',
|
||
|
||
'collections.view.grid': 'Raster',
|
||
'collections.view.list': 'Liste',
|
||
'collections.view.map': 'Karte',
|
||
|
||
'collections.status.idea': 'Idee',
|
||
'collections.status.want': 'Will hin',
|
||
'collections.status.visited': 'Besucht',
|
||
'collections.status.filterAll': 'Alle',
|
||
'collections.status.cycleHint': 'tippen zum Ändern',
|
||
|
||
'collections.copyToTrip': 'In Reise kopieren',
|
||
'collections.copyToTripTitle': 'In Reise kopieren',
|
||
'collections.copyN': '{count} in Reise kopieren',
|
||
'collections.copyToTripSearch': 'Reisen suchen',
|
||
'collections.searchLists': 'Listen suchen',
|
||
'collections.copyToTripConfirm': 'Kopieren',
|
||
'collections.noTrips': 'Noch keine Reisen',
|
||
'collections.alreadyInTrip': 'Bereits in dieser Reise',
|
||
'collections.copied': 'In Reise kopiert',
|
||
'collections.copiedCount': '{count} Orte kopiert',
|
||
'collections.skippedDuplicates': '{count} Duplikate übersprungen',
|
||
'collections.copyNothing': 'Nichts zu kopieren',
|
||
'collections.removeFromList': 'Aus Liste entfernen',
|
||
'collections.removeFromListConfirm': 'Diesen Ort aus der Liste entfernen?',
|
||
'collections.removeFromCollection': 'Aus Sammlung entfernen',
|
||
|
||
'collections.saved': 'In {name} gespeichert',
|
||
'collections.savedUndo': 'Rückgängig',
|
||
'collections.viewInCollection': 'Ansehen',
|
||
'collections.duplicateWarning': 'Dieser Ort ist bereits in der Liste',
|
||
|
||
'collections.search': 'Orte suchen',
|
||
'collections.selectMode': 'Auswählen',
|
||
'collections.selectedCount': '{count} ausgewählt',
|
||
|
||
'collections.pickList': 'In Liste speichern',
|
||
'collections.pickListPlaceholder': 'Liste wählen',
|
||
'collections.addedToList': 'Zu {name} hinzugefügt',
|
||
'collections.removedFromList': 'Aus {name} entfernt',
|
||
'collections.inLists': 'In deinen Listen',
|
||
'collections.otherLists': 'Zu einer Liste hinzufügen',
|
||
'collections.noListsYet': 'Erstelle zuerst eine Liste, um Orte zu speichern.',
|
||
'collections.removedFromAll': 'Aus Sammlung entfernt',
|
||
'collections.picker.title': 'Gespeicherte Orte',
|
||
'collections.picker.showMore': '{count} weitere anzeigen',
|
||
'collections.picker.search': 'Gespeicherte Orte durchsuchen',
|
||
'collections.picker.empty': 'Keine gespeicherten Orte zum Hinzufügen',
|
||
'collections.picker.hint': 'Wähle einen Ort aus deinen Sammlungen',
|
||
'collections.picker.use': 'Übernehmen',
|
||
|
||
'collections.share.title': 'Liste teilen',
|
||
'collections.share.titleNamed': '„{name}“ teilen',
|
||
'collections.share.button': 'Teilen',
|
||
'collections.share.members': 'Mitglieder',
|
||
'collections.share.owner': 'Besitzer',
|
||
'collections.share.you': 'du',
|
||
'collections.share.pending': 'ausstehende Einladung',
|
||
'collections.share.accepted': 'angenommen',
|
||
'collections.share.invite': 'Jemanden einladen',
|
||
'collections.share.inviteUser': 'Benutzer wählen',
|
||
'collections.share.sendInvite': 'Einladung senden',
|
||
'collections.share.inviteHint': 'Eingeladene Personen können diese Liste ansehen und bearbeiten.',
|
||
'collections.share.noUsers': 'Keine Benutzer zum Einladen verfügbar.',
|
||
'collections.share.memberHint': 'Nur der Listenbesitzer kann Personen einladen oder entfernen.',
|
||
'collections.share.cancel': 'Abbrechen',
|
||
'collections.share.leave': 'Liste verlassen',
|
||
'collections.share.leaveConfirm':
|
||
'Diese geteilte Liste verlassen? Du verlierst den Zugriff, bis du erneut eingeladen wirst.',
|
||
'collections.share.left': 'Du hast die Liste verlassen',
|
||
'collections.share.remove': 'Entfernen',
|
||
|
||
'collections.invites.title': 'Einladungen',
|
||
'collections.invites.from': 'von',
|
||
'collections.invites.accept': 'Annehmen',
|
||
'collections.invites.decline': 'Ablehnen',
|
||
'collections.invites.received': 'Du hast eine neue Listeneinladung',
|
||
'collections.invite.sent': 'Einladung gesendet',
|
||
'collections.invite.error': 'Einladung konnte nicht gesendet werden',
|
||
'collections.invite.accepted': 'Einladung angenommen',
|
||
'collections.invite.declined': 'Einladung abgelehnt',
|
||
|
||
'collections.widget.title': 'Sammlungen',
|
||
'collections.widget.empty': 'Noch keine gespeicherten Orte',
|
||
'collections.widget.savedCount': '{count} gespeichert',
|
||
'collections.labels.title': 'Labels',
|
||
'collections.labels.manage': 'Labels verwalten',
|
||
'collections.labels.add': 'Label hinzufügen',
|
||
'collections.labels.name': 'Labelname',
|
||
'collections.labels.namePlaceholder': 'z. B. Berlin',
|
||
'collections.labels.assign': 'Label zuweisen',
|
||
'collections.labels.assignN': 'Labels zu {count} Orten hinzufügen',
|
||
'collections.labels.assignedCount': '{count} Orte gelabelt',
|
||
'collections.labels.empty': 'Noch keine Labels',
|
||
'collections.labels.emptyHint': 'Erstelle zuerst ein Label, um Orte in dieser Liste zu gruppieren.',
|
||
};
|
||
|
||
export default collection;
|