Files
TREK/shared/src/i18n/sv/collection.ts
T
Maurice 80bb06c84f feat(collections): export and import a list as GPX
A list could leave the instance as a TREK file, which only another TREK
reads. Export now asks for a format, and GPX is the second one: the
places as waypoints, for OsmAnd, Organic Maps, a Garmin or gpx.studio.
Import takes a GPX in the same dialog as a list file. Asked for in
discussion #2301.

The GPX is written from the very list file the JSON export returns, so
what may leave the instance is still decided in one place. Name,
description and address, notes, website and category go into GPX's own
elements, where every app shows them. Labels, status, phone and the
rest travel in a TREK extension namespace, so a GPX made by TREK comes
back as the same list. A place without coordinates cannot be a
waypoint; it is left out and the export says how many were.

A GPX is read on the server, sent as text, with the XML library the
trip importer already uses. A document with a DOCTYPE is refused before
parsing, which closes both external entities and entity expansion. Size
is capped like the list file, and the element count is capped before a
tree is built. The reader only turns the GPX into a list file: the
browser previews it and imports it through the existing route, so one
contract, one transaction and one skipped counter cover both formats.
Waypoints and named route points become places; tracks and unnamed
route points are counted in the preview and not imported.

The two list-file routes get a body ceiling of twice the file limit.
The global 100 kB cap refused most real favourites files, and it
already refused list files well under the megabyte the contract allows.
2026-09-19 21:01:45 +02:00

222 lines
11 KiB
TypeScript

import type { TranslationStrings } from '../types';
const collection: TranslationStrings = {
'collections.saveNToList': 'Spara {count} i en lista',
'collections.addedNToList': 'Sparade {count} i {name}',
'collections.noOwnLists': 'Du har inga listor än',
'collections.saveToListHint': 'Dubbletter hoppas över automatiskt',
'collections.role.label': 'Roll',
'collections.role.viewer': 'Läsare',
'collections.role.editor': 'Redigerare',
'collections.role.admin': 'Admin',
'collections.picker.allLists': 'Alla listor',
'collections.select': 'Välj',
'collections.selectAll': 'Välj alla',
'collections.deselectAll': 'Avmarkera alla',
'collections.moveToList': 'Flytta till lista',
'collections.duplicateToList': 'Duplicera till lista',
'collections.moveToListTitle': 'Flytta {count} till annan lista',
'collections.duplicateToListTitle': 'Duplicera {count} till annan lista',
'collections.noOtherLists': 'Inga andra listor än',
'collections.movedCount': 'Flyttade {count} platser',
'collections.duplicatedCount': 'Duplicerade {count} platser',
'collections.placeCount': '{count} platser',
'collections.category': 'Kategori',
'collections.noCategory': 'Ingen kategori',
'collections.editListTitle': 'Redigera lista',
'collections.coverImage': 'Omslagsbild',
'collections.addCover': 'Lägg till omslag',
'collections.changeCover': 'Byt omslag',
'collections.description': 'Beskrivning',
'collections.descriptionPlaceholder': 'Lägg till en beskrivning…',
'collections.links': 'Länkar',
'collections.linkLabel': 'Etikett',
'collections.addLink': 'Lägg till länk',
'collections.addDetails': 'Lägg till detaljer',
'collections.addPlace': 'Lägg till en plats',
'collections.addPlaceSearch': 'Sök efter en plats…',
'collections.addPlaceHint': 'Sök för att lägga till en plats i listan',
'collections.importFromTrip': 'Importera från en resa',
'collections.importTitle': 'Importera från en resa',
'collections.importDoneTitle': 'Importen är klar',
'collections.importPickTripHint': 'Välj en resa och ta med dess platser till {name}.',
'collections.importNoTrips': 'Inga resor än',
'collections.importPlacesCount': '{count} platser',
'collections.importSearchPlaces': 'Sök platser…',
'collections.importOnlyNew': 'Bara nya',
'collections.importSelectAll': 'Markera alla',
'collections.importClearSelection': 'Rensa markering',
'collections.importAlreadySaved': 'Redan sparad',
'collections.importUnscheduled': 'Utan dag',
'collections.importOnDay': 'Dag {count}',
'collections.importSelectedCount': '{count} markerade',
'collections.importAction': 'Importera {count}',
'collections.importEmptyTrip': 'Den här resan har inga platser än',
'collections.importNothingNew': 'Allt från den här resan finns redan i listan',
'collections.importDone': '{count} platser tillagda',
'collections.importDoneSkipped': '{count} fanns redan i listan och lämnades som de var',
'collections.importDoneClean': 'Nu finns de alla i {name}',
'collections.sort.default': 'Standard',
'collections.sort.nameAsc': 'Namn (A–Ö)',
'collections.coordinates': 'Koordinater',
'collections.showList': 'Visa lista',
'collections.expandMap': 'Förstora karta',
'collections.hero.mine': 'Min samling',
'collections.hero.shared': 'Delad med dig',
'collections.hero.all': 'Ditt bibliotek',
'collections.title': 'Samlingar',
'collections.subtitle': 'Dina sparade platser, organiserade i listor',
'collections.newList': 'Ny lista',
'collections.create': 'Skapa',
'collections.editList': 'Byt namn',
'collections.listMenu': 'Listalternativ',
'collections.deleteList': 'Ta bort lista',
'collections.deleteListConfirm': 'Detta tar bort listan och alla sparade platser permanent. Detta kan inte ångras.',
'collections.listName': 'Listnamn',
'collections.listNamePlaceholder': 't.ex. Tokyo 2025',
'collections.listColor': 'Färg',
'collections.allSaved': 'Alla sparade',
'collections.shared': 'Delad',
'collections.empty.title': 'Inga platser ännu',
'collections.empty.text': 'Spara platser från valfri resa för att bygga upp den här listan.',
'collections.empty.noMatchTitle': 'Inga träffar',
'collections.empty.noMatchText': 'Inga sparade platser matchar ditt filter eller din sökning.',
'collections.empty.firstTitle': 'Skapa din första samling',
'collections.empty.firstText': 'Skapa en lista för att spara platser du vill minnas mellan resor.',
'collections.view.grid': 'Rutnät',
'collections.view.list': 'Lista',
'collections.view.map': 'Karta',
'collections.status.idea': 'Idé',
'collections.status.want': 'Vill besöka',
'collections.status.visited': 'Besökt',
'collections.status.filterAll': 'Alla',
'collections.status.cycleHint': 'tryck för att ändra',
'collections.markVisited': 'Markera som besökt',
'collections.markVisitedAll': 'Besökt överallt',
'collections.markVisitedSelection': 'Markera som besökt i dina listor',
'collections.markVisitedNone': 'Ingen av dessa platser finns i en lista',
'collections.markedVisited': 'Markerad som besökt',
'collections.markedVisitedTrip': '{count} platser markerade som besökta',
'collections.copyToTrip': 'Kopiera till resa',
'collections.copyToTripTitle': 'Kopiera till resa',
'collections.copyN': 'Kopiera {count} till resa',
'collections.copyToTripSearch': 'Sök resor',
'collections.searchLists': 'Sök listor',
'collections.copyToTripConfirm': 'Kopiera',
'collections.noTrips': 'Inga resor ännu',
'collections.alreadyInTrip': 'Redan i den här resan',
'collections.copied': 'Kopierad till resa',
'collections.copiedCount': '{count} platser kopierade',
'collections.skippedDuplicates': '{count} dubbletter hoppades över',
'collections.copyNothing': 'Inget att kopiera',
'collections.removeFromList': 'Ta bort från lista',
'collections.removeFromListConfirm': 'Ta bort den här platsen från listan?',
'collections.removeFromCollection': 'Ta bort från samling',
'collections.saved': 'Sparad i {name}',
'collections.savedUndo': 'Ångra',
'collections.viewInCollection': 'Visa',
'collections.duplicateWarning': 'Den här platsen finns redan i listan',
'collections.search': 'Sök platser',
'collections.selectMode': 'Välj',
'collections.selectedCount': '{count} valda',
'collections.pickList': 'Spara i lista',
'collections.pickListPlaceholder': 'Välj en lista',
'collections.addedToList': 'Tillagd i {name}',
'collections.removedFromList': 'Borttagen från {name}',
'collections.inLists': 'I dina listor',
'collections.otherLists': 'Lägg till i en lista',
'collections.noListsYet': 'Skapa en lista först för att spara platser.',
'collections.removedFromAll': 'Borttagen från samlingen',
'collections.picker.title': 'Sparade platser',
'collections.picker.showMore': 'Visa {count} till',
'collections.picker.search': 'Sök bland dina sparade platser',
'collections.picker.empty': 'Inga sparade platser att lägga till',
'collections.picker.hint': 'Välj en plats från dina samlingar',
'collections.picker.use': 'Använd',
// Export / import a list as a file (#2198)
'collections.file.export': 'Exportera',
'collections.file.exportTitle': 'Ladda ner den här listan som en fil',
'collections.file.importButton': 'Importera en lista från en fil',
'collections.file.importTitle': 'Importera lista',
'collections.file.choose': 'Välj en listfil',
'collections.file.confirm': 'Importera',
'collections.file.change': 'Byt',
'collections.file.labelCount': '{count} etiketter',
'collections.file.hint':
'Platserna kommer in som en ny egen lista. Betyg, medlemmar och uppladdade foton följer inte med.',
'collections.file.done': '{count} platser importerade',
'collections.file.doneSkipped': '{count} platser importerade, {skipped} överhoppade',
'collections.file.errorTooLarge': 'Filen är för stor för att vara en lista.',
'collections.file.errorUnreadable': 'Filen gick inte att läsa.',
'collections.file.errorNotACollection': 'Det här är ingen TREK-listfil.',
'collections.file.formatTrek': 'TREK-lista',
'collections.file.formatTrekHint': 'För en annan TREK, med etiketter och status',
'collections.file.formatGpxHint': 'Vägpunkter för OsmAnd, Organic Maps, Garmin och andra kartappar',
'collections.file.gpxOmitted': '{count} platser utan koordinater kom inte med i GPX-filen',
'collections.file.gpxNothing':
'Ingen av de här platserna har koordinater, så det finns inget att lägga i en GPX-fil.',
'collections.file.reading': 'Läser filen…',
'collections.file.gpxSkipped': '{count} vägpunkter utan användbara koordinater lämnas utanför.',
'collections.file.gpxTrack': 'Filen innehåller också {count} spårpunkter. Spår importeras inte, bara vägpunkter.',
'collections.file.gpxEmpty': 'Den här GPX-filen har inga vägpunkter, så det finns inget att importera.',
'collections.file.errorNotGpx': 'Det här är ingen GPX-fil.',
'collections.file.errorTooManyPlaces':
'Filen har fler än {count} platser. Dela upp den och importera delarna en i taget.',
'collections.share.title': 'Dela lista',
'collections.share.titleNamed': 'Dela ”{name}”',
'collections.share.button': 'Dela',
'collections.share.members': 'Medlemmar',
'collections.share.owner': 'Ägare',
'collections.share.you': 'du',
'collections.share.pending': 'väntande inbjudan',
'collections.share.accepted': 'accepterad',
'collections.share.invite': 'Bjud in någon',
'collections.share.inviteUser': 'Välj användare',
'collections.share.sendInvite': 'Skicka inbjudan',
'collections.share.inviteHint': 'Inbjudna personer kan visa och redigera den här listan.',
'collections.share.noUsers': 'Inga användare tillgängliga att bjuda in.',
'collections.share.memberHint': 'Endast listans ägare kan bjuda in eller ta bort personer.',
'collections.share.cancel': 'Avbryt',
'collections.share.leave': 'Lämna lista',
'collections.share.leaveConfirm': 'Lämna den här delade listan? Du förlorar åtkomsten tills du blir inbjuden igen.',
'collections.share.left': 'Du lämnade listan',
'collections.share.remove': 'Ta bort',
'collections.invites.title': 'Inbjudningar',
'collections.invites.from': 'från',
'collections.invites.accept': 'Acceptera',
'collections.invites.decline': 'Avböj',
'collections.invites.received': 'Du har en ny listinbjudan',
'collections.invite.sent': 'Inbjudan skickad',
'collections.invite.error': 'Det gick inte att skicka inbjudan',
'collections.invite.accepted': 'Inbjudan accepterad',
'collections.invite.declined': 'Inbjudan avböjd',
'collections.widget.title': 'Samlingar',
'collections.widget.empty': 'Inga sparade platser ännu',
'collections.widget.savedCount': '{count} sparade',
'collections.labels.title': 'Etiketter',
'collections.labels.manage': 'Hantera etiketter',
'collections.labels.add': 'Lägg till etikett',
'collections.labels.name': 'Etikettnamn',
'collections.labels.namePlaceholder': 't.ex. Berlin',
'collections.labels.assign': 'Tilldela etikett',
'collections.labels.assignN': 'Lägg till etiketter på {count} platser',
'collections.labels.assignedCount': 'Etiketterade {count} platser',
'collections.labels.empty': 'Inga etiketter ännu',
'collections.labels.emptyHint': 'Skapa en etikett först för att gruppera platser i den här listan.',
};
export default collection;