Files
TREK/shared/src/i18n/ca/collection.ts
T
Maurice 2c06c9904b feat(collections): a list as a file, so it can leave the instance (#2198)
Sharing a list works between people on the same TREK. This is the other
case: giving one to somebody who runs their own, or keeping a copy. Export
sits beside Edit and Share in the list header and downloads the open list;
Import sits beside New list in the rail, reads a file, shows what is in it
and makes a new list of it. Desktop only, which the route already decides.

What travels is what somebody wrote down: the list's name, colour and
description, its labels, and each place with its address, coordinates,
notes, status, contact details, category name and labels. A file is dull
JSON on purpose, so it can be read and edited by a person.

What does not travel is everything that only means something on the instance
it came from. Ids of every kind, since the receiver issues its own and a
category crosses over by name. Star ratings and members, because a rating is
an opinion somebody gave the people on that list. Provenance into trips,
which points at rows the receiver cannot see. And an image path under
/uploads, which resolves on the sender's server: only an absolute https URL
survives.

A file is a stranger's JSON and is read as one. It is parsed in the browser
that chose it and never uploaded; the parsed list goes through the same
contract on both sides; and a link that is not http(s) arrives as nothing
rather than as an anchor. Strict where it must refuse, forgiving where it
can drop: a file that does not say what it is never reaches the importer,
while one unreadable place inside it is skipped and counted, and one bad
field on a good place costs that field alone.

An import is always a new list. Importing into an existing one would mean
deciding what happens to a place that is already there, and every answer to
that is a merge nobody asked for.
2026-09-11 14:58:34 +02:00

200 lines
10 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { TranslationStrings } from '../types';
const collection: TranslationStrings = {
'collections.saveNToList': 'Desa {count} a una llista',
'collections.addedNToList': 'Desat {count} a {name}',
'collections.noOwnLists': 'Encara no tens cap llista',
'collections.saveToListHint': "Els duplicats s'ometen automàticament",
'collections.role.label': 'Rol',
'collections.role.viewer': 'Lector',
'collections.role.editor': 'Editor',
'collections.role.admin': 'Administrador',
'collections.picker.allLists': 'Totes les llistes',
'collections.select': 'Triar',
'collections.selectAll': 'Seleccionar-ho tot',
'collections.deselectAll': 'Deseleccionar-ho tot',
'collections.moveToList': 'Moure a la llista',
'collections.duplicateToList': 'Duplicar a la llista',
'collections.moveToListTitle': 'Mou {count} a una altra llista',
'collections.duplicateToListTitle': 'Duplica {count} a una altra llista',
'collections.noOtherLists': 'Encara no hi ha cap altra llista',
'collections.movedCount': "S'han mogut {count} llocs",
'collections.duplicatedCount': "S'han duplicat {count} llocs",
'collections.placeCount': '{count} llocs',
'collections.category': 'Categoria',
'collections.noCategory': 'Sense categoria',
'collections.editListTitle': 'Editar llista',
'collections.coverImage': 'Imatge de portada',
'collections.addCover': 'Afegir portada',
'collections.changeCover': 'Canviar portada',
'collections.description': 'Descripció',
'collections.descriptionPlaceholder': 'Afegeix una descripció…',
'collections.links': 'Enllaços',
'collections.linkLabel': 'Etiqueta',
'collections.addLink': 'Afegir enllaç',
'collections.addDetails': 'Afegir detalls',
'collections.addPlace': 'Afegir un lloc',
'collections.addPlaceSearch': 'Cercar un lloc…',
'collections.addPlaceHint': 'Cerca per afegir un lloc a aquesta llista',
'collections.importFromTrip': 'Importa des d’un viatge',
'collections.importTitle': 'Importa des d’un viatge',
'collections.importDoneTitle': 'Importació acabada',
'collections.importPickTripHint': 'Tria un viatge i porta’n els llocs a {name}.',
'collections.importNoTrips': 'Encara no hi ha viatges',
'collections.importPlacesCount': '{count} llocs',
'collections.importSearchPlaces': 'Cerca llocs…',
'collections.importOnlyNew': 'Només nous',
'collections.importSelectAll': 'Selecciona-ho tot',
'collections.importClearSelection': 'Esborra la selecció',
'collections.importAlreadySaved': 'Ja desat',
'collections.importUnscheduled': 'Sense dia',
'collections.importOnDay': 'Dia {count}',
'collections.importSelectedCount': '{count} seleccionats',
'collections.importAction': 'Importa {count}',
'collections.importEmptyTrip': 'Aquest viatge encara no té llocs',
'collections.importNothingNew': 'Tot aquest viatge ja és en aquesta llista',
'collections.importDone': 'S’han afegit {count} llocs',
'collections.importDoneSkipped': '{count} ja hi eren i s’han deixat igual',
'collections.importDoneClean': 'Ara són tots a {name}',
'collections.sort.default': 'Predeterminat',
'collections.sort.nameAsc': 'Nom (A–Z)',
'collections.coordinates': 'Coordenades',
'collections.showList': 'Mostra la llista',
'collections.expandMap': 'Ampliar el mapa',
'collections.hero.mine': 'La meva col·lecció',
'collections.hero.shared': 'Compartit amb tu',
'collections.hero.all': 'La teva biblioteca',
'collections.title': 'Col·leccions',
'collections.subtitle': 'Els teus llocs desats, organitzats en llistes',
'collections.newList': 'Nova llista',
'collections.create': 'Crear',
'collections.editList': 'Canviar el nom',
'collections.listMenu': 'Opcions de la llista',
'collections.deleteList': 'Eliminar llista',
'collections.deleteListConfirm':
'Això eliminarà permanentment la llista i tots els llocs desats que conté. Aquesta acció no es pot desfer.',
'collections.listName': 'Nom de la llista',
'collections.listNamePlaceholder': 'p. ex. Tòquio 2025',
'collections.listColor': 'Color',
'collections.allSaved': 'Tot el desat',
'collections.shared': 'Compartit',
'collections.empty.title': 'Encara no hi ha llocs',
'collections.empty.text': 'Desa llocs des de qualsevol viatge per crear aquesta llista.',
'collections.empty.noMatchTitle': 'Cap coincidència',
'collections.empty.noMatchText': 'Cap lloc desat coincideix amb el filtre o la cerca.',
'collections.empty.firstTitle': 'Comença la teva primera col·lecció',
'collections.empty.firstText': 'Crea una llista per desar els llocs que vulguis recordar de diferents viatges.',
'collections.view.grid': 'Quadrícula',
'collections.view.list': 'Llista',
'collections.view.map': 'Mapa',
'collections.status.idea': 'Idea',
'collections.status.want': 'Hi vull anar',
'collections.status.visited': 'Visitat',
'collections.status.filterAll': 'Tot',
'collections.status.cycleHint': 'toca per canviar',
'collections.markVisited': 'Marca com a visitat',
'collections.markVisitedAll': 'Visitat pertot',
'collections.markVisitedSelection': 'Marca com a visitat a les teves llistes',
'collections.markVisitedNone': 'Cap d\'aquests llocs no és desat en cap llista',
'collections.markedVisited': 'Marcat com a visitat',
'collections.markedVisitedTrip': '{count} llocs marcats com a visitats',
'collections.copyToTrip': 'Copiar al viatge',
'collections.copyToTripTitle': 'Copiar al viatge',
'collections.copyN': 'Copia {count} al viatge',
'collections.copyToTripSearch': 'Cercar viatges',
'collections.searchLists': 'Cerca llistes',
'collections.copyToTripConfirm': 'Copiar',
'collections.noTrips': 'Encara no hi ha viatges',
'collections.alreadyInTrip': 'Ja es troba en aquest viatge',
'collections.copied': 'Copiat al viatge',
'collections.copiedCount': "S'han copiat {count} llocs",
'collections.skippedDuplicates': "S'han omès {count} duplicats",
'collections.copyNothing': 'Res a copiar',
'collections.removeFromList': 'Eliminar de la llista',
'collections.removeFromListConfirm': 'Vols eliminar aquest lloc de la llista?',
'collections.removeFromCollection': 'Eliminar de la col·lecció',
'collections.saved': 'Desat a {name}',
'collections.savedUndo': 'Desfer',
'collections.viewInCollection': 'Veure',
'collections.duplicateWarning': 'Aquest lloc ja és a la llista',
'collections.search': 'Cercar llocs',
'collections.selectMode': 'Seleccionar',
'collections.selectedCount': '{count} seleccionats',
'collections.pickList': 'Desar a la llista',
'collections.pickListPlaceholder': 'Tria una llista',
'collections.addedToList': 'Afegit a {name}',
'collections.removedFromList': 'Eliminat de {name}',
'collections.inLists': 'A les teves llistes',
'collections.otherLists': 'Afegir a una llista',
'collections.noListsYet': 'Crea una llista primer per poder desar llocs.',
'collections.removedFromAll': 'Eliminat de la col·lecció',
'collections.picker.title': 'Llocs desats',
'collections.picker.showMore': "Mostra'n {count} més",
'collections.picker.search': 'Cerca entre els teus llocs desats',
'collections.picker.empty': 'No hi ha llocs desats per afegir',
'collections.picker.hint': 'Tria un lloc de les teves col·leccions',
'collections.picker.use': 'Utilitza',
// Export / import a list as a file (#2198)
'collections.file.export': 'Exporta',
'collections.file.exportTitle': 'Baixa aquesta llista com a fitxer',
'collections.file.importButton': 'Importa una llista des d’un fitxer',
'collections.file.importTitle': 'Importa una llista',
'collections.file.choose': 'Tria un fitxer de llista',
'collections.file.confirm': 'Importa',
'collections.file.change': 'Canvia',
'collections.file.labelCount': '{count} etiquetes',
'collections.file.hint':
'Els llocs arriben com una llista nova teva. Les valoracions, els membres i les fotos pujades es queden enrere.',
'collections.file.done': '{count} llocs importats',
'collections.file.doneSkipped': '{count} llocs importats, {skipped} omesos',
'collections.file.errorTooLarge': 'Aquest fitxer és massa gran per ser una llista.',
'collections.file.errorUnreadable': 'No s’ha pogut llegir aquest fitxer.',
'collections.file.errorNotACollection': 'Això no és un fitxer de llista del TREK.',
'collections.share.title': 'Compartir llista',
'collections.share.titleNamed': 'Compartir «{name}»',
'collections.share.button': 'Compartir',
'collections.share.members': 'Membres',
'collections.share.owner': 'Propietari',
'collections.share.you': 'tu',
'collections.share.pending': 'invitació pendent',
'collections.share.accepted': 'acceptada',
'collections.share.invite': 'Convida algú',
'collections.share.inviteUser': 'Selecciona un usuari',
'collections.share.sendInvite': 'Envia la invitació',
'collections.share.inviteHint': 'Les persones convidades poden veure i editar aquesta llista.',
'collections.share.noUsers': 'No hi ha usuaris disponibles per convidar.',
'collections.share.memberHint': 'Només el propietari de la llista pot convidar o eliminar persones.',
'collections.share.cancel': 'Cancellar',
'collections.share.leave': 'Sortir de la llista',
'collections.share.leaveConfirm':
"Vols sortir d'aquesta llista compartida? En perdre el accés, t'hauran de tornar a convidar.",
'collections.share.left': 'Has sortit de la llista',
'collections.share.remove': 'Eliminar',
'collections.invites.title': 'Invitacions',
'collections.invites.from': 'de',
'collections.invites.accept': 'Acceptar',
'collections.invites.decline': 'Rebutjar',
'collections.invites.received': 'Tens una nova invitació a una llista',
'collections.invite.sent': 'Invitació enviada',
'collections.invite.error': "No s'ha pogut enviar la invitació",
'collections.invite.accepted': 'Invitació acceptada',
'collections.invite.declined': 'Invitació rebutjada',
'collections.widget.title': 'Col·leccions',
'collections.widget.empty': 'Encara no hi ha llocs desats',
'collections.widget.savedCount': '{count} desats',
'collections.labels.title': 'Etiquetes',
'collections.labels.manage': 'Gestionar etiquetes',
'collections.labels.add': 'Afegir etiqueta',
'collections.labels.name': "Nom de l'etiqueta",
'collections.labels.namePlaceholder': 'p. ex. Berlín',
'collections.labels.assign': 'Assignar etiqueta',
'collections.labels.assignN': 'Afegir etiquetes a {count} llocs',
'collections.labels.assignedCount': "S'han etiquetat {count} llocs",
'collections.labels.empty': 'Encara no hi ha etiquetes',
'collections.labels.emptyHint': 'Crea primer una etiqueta per agrupar llocs en aquesta llista.',
};
export default collection;