Files
TREK/shared/src/i18n/sv/admin.ts
T
Maurice a4c0a79956 feat(plugins): redesign the admin plugins page — search, filters, cleaner cards
The panel was cramped and hard to scan. Rebuilt it as a proper management
surface:

- A segmented Installed/Discover switch with counts, and a real toolbar:
  search, filter by type, filter by status (active/off/update/error), and
  sort (name/recent/updates first).
- An "N updates available · Update all" bar.
- Installed rows are tidied up: a single health dot on the icon tile
  instead of a wall of badges, and capability chips underneath that show
  what each plugin can actually reach at a glance (reads your trips,
  dashboard widget, the hosts it talks to) — the reach is now visible
  without opening anything. Update, toggle and a ⋯ menu (restart, errors,
  source, uninstall) sit on the right.
- The registry browser is now an App-Store-style card grid: screenshot
  with the plugin's icon chip, a reviewed badge, consistent heights.
- The detail dialog gained "What it can access", "Connects to" and a
  details grid (version, size, requires, reviewed).

To feed the capability chips, the installed list now returns each plugin's
declared permissions and capabilities. New copy is in all 22 locales.
2026-07-04 19:11:23 +02:00

489 lines
33 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 admin: TranslationStrings = {
'admin.notifications.title': 'Meddelanden',
'admin.notifications.hint': 'Välj en meddelandekanal. Endast en kan vara aktiv åt gången.',
'admin.notifications.none': 'Avaktiverad',
'admin.notifications.email': 'E-post (SMTP)',
'admin.notifications.webhook': 'Webhook',
'admin.notifications.ntfy': 'Ntfy',
'admin.ntfy.hint':
'Låt användarna ställa in sina egna ntfy-ämnen för push-meddelanden. Ange standardservern nedan för att förifyllda användarinställningarna.',
'admin.notifications.save': 'Spara inställningarna för aviseringar',
'admin.notifications.saved': 'Meddelandeinställningarna har sparats',
'admin.notifications.testWebhook': 'Skicka testwebhook',
'admin.notifications.testWebhookSuccess': 'Testwebhook har skickats utan problem',
'admin.notifications.testWebhookFailed': 'Test av webhook misslyckades',
'admin.notifications.testNtfy': 'Skicka test ntfy',
'admin.notifications.testNtfySuccess': 'Test ntfy skickades utan problem',
'admin.notifications.testNtfyFailed': 'Test ntfy misslyckades',
'admin.notifications.emailPanel.title': 'E-post (SMTP)',
'admin.notifications.webhookPanel.title': 'Webhook',
'admin.notifications.inappPanel.title': 'I-App',
'admin.notifications.inappPanel.hint': 'Meddelanden i appen är alltid aktiva och kan inte inaktiveras generellt.',
'admin.notifications.adminWebhookPanel.title': 'Webhook för administratörer',
'admin.notifications.adminWebhookPanel.hint':
'Denna webhook används uteslutande för administratörsmeddelanden (t.ex. versionsvarningar). Den är separat från användarspecifika webhooks och aktiveras alltid när den är inställd.',
'admin.notifications.adminWebhookPanel.saved': 'Admin webhook URL sparad',
'admin.notifications.adminWebhookPanel.testSuccess': 'Test webhook har skickats utan problem',
'admin.notifications.adminWebhookPanel.testFailed': 'Test webhook misslyckades',
'admin.notifications.adminWebhookPanel.alwaysOnHint': 'Webhook för administratör aktiveras alltid när en URL konfigureras',
'admin.notifications.adminNtfyPanel.title': 'Admin Ntfy',
'admin.notifications.adminNtfyPanel.hint':
'Detta ntfy-ämne används uteslutande för administratörsmeddelanden (t.ex. versionsvarningar). Det är separat från ämnena för enskilda användare och aktiveras alltid när det är konfigurerat.',
'admin.notifications.adminNtfyPanel.serverLabel': 'Ntfy Server URL',
'admin.notifications.adminNtfyPanel.serverHint':
'Används även som standardserver för ntfy-meddelanden till användare. Lämna fältet tomt för att använda ntfy.sh som standard. Användare kan ändra detta i sina egna inställningar.',
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
'admin.notifications.adminNtfyPanel.topicLabel': 'Admin Ämne',
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
'admin.notifications.adminNtfyPanel.tokenLabel': 'Åtkomsttoken (valfritt)',
'admin.notifications.adminNtfyPanel.tokenCleared': 'Administratörens åtkomsttoken har raderats',
'admin.notifications.adminNtfyPanel.saved': 'Admin ntfy inställningar sparade',
'admin.notifications.adminNtfyPanel.test': 'Skicka test ntfy',
'admin.notifications.adminNtfyPanel.testSuccess': 'Test ntfy skickat utan problem',
'admin.notifications.adminNtfyPanel.testFailed': 'Test ntfy misslyckades',
'admin.notifications.adminNtfyPanel.alwaysOnHint': 'Admin ntfy utlöses alltid när ett ämne konfigureras',
'admin.notifications.adminNotificationsHint':
'Ställ in vilka kanaler som ska skicka meddelanden som endast är avsedda för administratörer (t.ex. versionsvarningar).',
'admin.notifications.tripReminders.title': 'Påminnelser inför resan',
'admin.notifications.tripReminders.hint':
'Skicka en påminnelse innan resan börjar (kräver att påminnelsedagar har angetts för resan).',
'admin.notifications.tripReminders.enabled': 'Resepåminnelser aktiverade',
'admin.notifications.tripReminders.disabled': 'Resepåminnelser inaktiverade',
'admin.smtp.title': 'E-post och aviseringar',
'admin.smtp.hint': 'SMTP inställningar för att skicka e-postmeddelanden.',
'admin.smtp.testButton': 'Skicka ett testmejl',
'admin.webhook.hint': 'Låt användarna ställa in sina egna webhook-URL:er för aviseringar (Discord, Slack m.fl.).',
'admin.smtp.testSuccess': 'Test e-postmeddelandet har skickats',
'admin.smtp.testFailed': 'Test e-postmeddelandet misslyckades',
'admin.title': 'Administration',
'admin.subtitle': 'Användarhantering och systeminställningar',
'admin.tabs.users': 'Användare',
'admin.tabs.categories': 'Kategorier',
'admin.tabs.backup': 'Säkerhetskopia',
'admin.tabs.notifications': 'Meddelanden',
'admin.tabs.audit': 'Revision',
'admin.stats.users': 'Användare',
'admin.stats.trips': 'Resor',
'admin.stats.places': 'Platser',
'admin.stats.photos': 'Foton',
'admin.stats.files': 'Filer',
'admin.table.user': 'Användare',
'admin.table.email': 'E-post',
'admin.table.role': 'Roll',
'admin.table.created': 'Skapad',
'admin.table.lastLogin': 'Senast inloggad',
'admin.table.actions': 'Åtgärder',
'admin.you': '(Du)',
'admin.editUser': 'Redigera anvädnare',
'admin.newPassword': 'Nytt lösenord',
'admin.newPasswordHint': 'Lämna fältet tomt för att behålla det nuvarande lösenordet',
'admin.deleteUser': 'Ta bort användare "{name}"? Alla resor kommer att raderas permanent.',
'admin.deleteUserTitle': 'Ta bort användare',
'admin.newPasswordPlaceholder': 'Ange nytt lösenord…',
'admin.toast.loadError': 'Det gick inte att ladda administratörsdata',
'admin.toast.userUpdated': 'Användaren har uppdaterats',
'admin.toast.updateError': 'Uppdateringen misslyckades',
'admin.toast.userDeleted': 'Användaren har raderats',
'admin.toast.deleteError': 'Det gick inte att ta bort',
'admin.toast.cannotDeleteSelf': 'Det går inte att radera sitt eget konto',
'admin.toast.userCreated': 'Användare skapad',
'admin.toast.createError': 'Det gick inte att skapa användaren',
'admin.toast.fieldsRequired': 'Användarnamn, e-postadress och lösenord krävs',
'admin.createUser': 'Skapa användare',
'admin.invite.title': 'Inbjudningslänkar',
'admin.invite.subtitle': 'Skapa engångslänkar för registrering',
'admin.invite.create': 'Skapa länk',
'admin.invite.createAndCopy': 'Skapa och kopiera',
'admin.invite.empty': 'Inga inbjudningslänkar har skapats ännu',
'admin.invite.maxUses': 'Max. antal användningar',
'admin.invite.expiry': 'Gäller till',
'admin.invite.uses': 'använd',
'admin.invite.expiresAt': 'utgår',
'admin.invite.createdBy': 'av',
'admin.invite.active': 'Aktiv',
'admin.invite.expired': 'Utgått',
'admin.invite.usedUp': 'Förbrukad',
'admin.invite.copied': 'Inbjudningslänken har kopierats till urklipp',
'admin.invite.copyLink': 'Kopiera länken',
'admin.invite.deleted': 'Inbjudningslänken har tagits bort',
'admin.invite.createError': 'Det gick inte att skapa en inbjudningslänk',
'admin.invite.deleteError': 'Det gick inte att ta bort inbjudningslänken',
'admin.tabs.settings': 'Inställningar',
'admin.allowRegistration': 'Tillåt registrering',
'admin.allowRegistrationHint': 'Nya användare kan registrera sig själva',
'admin.authMethods': 'Autentiseringsmetoder',
'admin.passwordLogin': 'Inloggning med lösenord',
'admin.passwordLoginHint': 'Låt användarna logga in med e-postadress och lösenord',
'admin.passwordRegistration': 'Lösenordsregistrering',
'admin.passwordRegistrationHint': 'Låt nya användare registrera sig med e-postadress och lösenord',
'admin.oidcLogin': 'SSO Inloggning',
'admin.oidcLoginHint': 'Låt användarna logga in med SSO',
'admin.oidcRegistration': 'SSO Automatisk konfigurering',
'admin.oidcRegistrationHint': 'Skapa konton automatiskt för nya SSO-användare',
'admin.envOverrideHint':
'Inställningarna för inloggning med lösenord styrs av miljövariabeln OIDC_ONLY och kan inte ändras här.',
'admin.lockoutWarning': 'Minst en inloggningsmetod måste vara aktiverad',
'admin.requireMfa': 'Kräv tvåfaktorsautentisering (2FA)',
'admin.requireMfaHint': 'Användare som inte har tvåfaktorsautentisering måste slutföra inställningarna under inställningar innan de använder appen.',
'admin.apiKeys': 'API Nycklar',
'admin.apiKeysHint': 'Valfritt. Aktiverar utökade platsuppgifter, såsom foton och väderinformation.',
'admin.mapsKey': 'Google Maps API Nyckel',
'admin.mapsKeyHint': 'Krävs för att söka efter platser. Hämta på console.cloud.google.com',
'admin.mapsKeyHintLong':
'Utan en API-nyckel används OpenStreetMap för platssökning. Med en Google API-nyckel kan även foton, betyg och öppettider hämtas. Skaffa en på console.cloud.google.com.',
'admin.recommended': 'Rekommenderat',
'admin.weatherKey': 'OpenWeatherMap API Nyckel',
'admin.weatherKeyHint': 'För väderdata. Gratis på openweathermap.org',
'admin.validateKey': 'Test',
'admin.keyValid': 'Ansluten',
'admin.keyInvalid': 'Felaktig',
'admin.keySaved': 'API nycklar sparade',
'admin.oidcTitle': 'Enkel inloggning (OIDC)',
'admin.oidcSubtitle': 'Tillåt inloggning via externa tjänster som Google, Apple, Authentik eller Keycloak.',
'admin.oidcDisplayName': 'Visningsnamn',
'admin.oidcIssuer': 'Utfärdarens URL',
'admin.oidcIssuerHint': 'OpenID Connect Utfärdarens URL hos leverantören. t.ex. https://accounts.google.com',
'admin.oidcSaved': 'OIDC konfigurationen har sparats',
'admin.oidcOnlyMode': 'Inaktivera lösenordsautentisering',
'admin.oidcOnlyModeHint':
'När funktionen är aktiverad är endast SSO-inloggning tillåten. Lösenordsbaserad inloggning och registrering blockeras.',
'admin.fileTypes': 'Tillåtna filtyper',
'admin.fileTypesHint': 'Ställ in vilka filtyper användarna kan ladda upp.',
'admin.fileTypesFormat': 'Filändelser separerade med kommatecken (t.ex. jpg, png, pdf, doc). Använd * för att tillåta alla filtyper.',
'admin.fileTypesSaved': 'Inställningar för filtyper har sparats',
'admin.placesPhotos.title': 'Plats Foton',
'admin.placesPhotos.subtitle':
'Hämta bilder från Google Places API. Inaktivera för att spara API-kvoten. Wikimedia-bilder påverkas inte.',
'admin.placesAutocomplete.title': 'Automatisk komplettering av plats',
'admin.placesAutocomplete.subtitle': 'Använd Google Places API för sökförslag. Inaktivera funktionen för att spara på API-kvoten.',
'admin.placesDetails.title': 'Platsinformation',
'admin.placesDetails.subtitle':
'Hämta detaljerad information om platsen (öppettider, betyg, webbplats) från Google Places API. Inaktivera funktionen för att spara på API-kvoten.',
'admin.bagTracking.title': 'Spårning av väskor',
'admin.bagTracking.subtitle': 'Aktivera vikt- och väskfördelning för packningsartiklar',
'admin.collab.chat.title': 'Chatt',
'admin.collab.chat.subtitle': 'Realtidsmeddelanden för samarbete kring resor',
'admin.collab.notes.title': 'Noteringar',
'admin.collab.notes.subtitle': 'Delade noteringar och dokument',
'admin.collab.polls.title': 'Omröstningar',
'admin.collab.polls.subtitle': 'Grupp omröstningar',
'admin.collab.whatsnext.title': "Vad händer härnäst?",
'admin.collab.whatsnext.subtitle': 'Förslag på aktiviteter och nästa steg',
'admin.tabs.config': 'Anpassning',
'admin.tabs.defaults': 'Användarinställningar',
'admin.defaultSettings.title': 'Standardinställningar för användare',
'admin.defaultSettings.description':
'Ange standardvärden som gäller för hela instansen. Användare som inte har ändrat en inställning kommer att se dessa värden. Deras egna ändringar har alltid företräde.',
'admin.defaultSettings.saved': 'Standard sparad',
'admin.defaultSettings.reset': 'Återställ till inbyggda standardinställningar',
'admin.defaultSettings.resetToBuiltIn': 'återställ',
'admin.defaultSettings.mapProvider': 'Kartmotor',
'admin.defaultSettings.mapProviderHint':
'Standardkartan för alla användare på denna instans. Varje användare kan fortfarande ändra inställningarna i sina egna inställningar.',
'admin.defaultSettings.providerLeaflet': 'Standard (gratis)',
'admin.defaultSettings.providerMapbox': 'Mapbox (3D)',
'admin.defaultSettings.providerMapLibre': 'MapLibre (OpenFreeMap)',
'admin.defaultSettings.mapboxToken': 'Delat Mapbox-token',
'admin.defaultSettings.mapboxTokenHint':
'Används för alla användare som inte har angett sin egen token – på så sätt får hela instansen tillgång till Mapbox utan att nyckeln behöver delas ut individuellt. Lagras i krypterad form.',
'admin.defaultSettings.mapboxStyle': 'Kartstil',
'admin.defaultSettings.mapboxStylePlaceholder': 'Välj en stil…',
'admin.defaultSettings.mapbox3d': '3D-byggnader och terräng',
'admin.defaultSettings.mapboxQuality': 'Högkvalitetsläge',
'admin.tabs.templates': 'Packningsmallar',
'admin.packingTemplates.title': 'Packningsmallar',
'admin.packingTemplates.subtitle': 'Skapa återanvändbara packlistor för dina resor',
'admin.packingTemplates.create': 'Ny mall',
'admin.packingTemplates.namePlaceholder': 'Mallnamn (t.ex. Strandsemester)',
'admin.packingTemplates.empty': 'Inga mallar har skapats ännu',
'admin.packingTemplates.items': 'föremål',
'admin.packingTemplates.categories': 'kategorier',
'admin.packingTemplates.itemName': 'Föremålsnamn',
'admin.packingTemplates.itemCategory': 'Kategori',
'admin.packingTemplates.categoryName': 'Kategorinamn (t.ex. Kläder)',
'admin.packingTemplates.addCategory': 'Lägg till kategori',
'admin.packingTemplates.created': 'Mall skapad',
'admin.packingTemplates.deleted': 'Mallen har tagits bort',
'admin.packingTemplates.loadError': 'Det gick inte att ladda mallarna',
'admin.packingTemplates.createError': 'Det gick inte att skapa mallen',
'admin.packingTemplates.deleteError': 'Det gick inte att ta bort mallen',
'admin.packingTemplates.saveError': 'Det gick inte att spara',
'admin.tabs.addons': 'Tillägg',
'admin.tabs.plugins': 'Plugins',
'admin.plugins.rescan': 'Skanna om',
'admin.plugins.rescanned': 'Plugin-mappen har skannats om',
'admin.plugins.browse': 'Bläddra bland plugins',
'admin.plugins.installed': 'Installerat',
'admin.plugins.install': 'Installera',
'admin.plugins.registryEmpty': 'Inga plugins tillgängliga i registret ännu.',
'admin.plugins.actionError': 'Åtgärden misslyckades',
'admin.plugins.activate': 'Aktivera',
'admin.plugins.activated': 'Pluginet har aktiverats',
'admin.plugins.deactivate': 'Inaktivera',
'admin.plugins.deactivated': 'Pluginet har inaktiverats',
'admin.plugins.viewErrors': 'Visa felloggen',
'admin.plugins.errorLog': 'Fellogg',
'admin.plugins.noErrors': 'Inga fel loggade.',
'admin.plugins.uninstalled': 'Pluginet har avinstallerats',
'admin.plugins.uninstallTitle': 'Avinstallera pluginet?',
'admin.plugins.uninstallBody': 'Detta stoppar pluginet, tar bort dess kod och raderar alla dess data. Detta kan inte ångras.',
'admin.plugins.status.starting': 'Startar…',
'admin.plugins.type.widget': 'Widget',
'admin.plugins.type.page': 'Sida',
'admin.plugins.type.integration': 'Integration',
'admin.plugins.reviewed': 'Granskad',
'admin.plugins.unreviewed': 'Ej granskad',
'admin.plugins.updated': 'Pluginet har uppdaterats',
'admin.plugins.updateTo': 'Uppdatera → v{version}',
'admin.plugins.enabledToggle': 'Aktivera plugin',
'plugins.notFound': 'Pluginet hittades inte',
'admin.plugins.title': 'Plugins',
'admin.plugins.subtitle': 'Installera och hantera tredjepartsplugins på din instans.',
'admin.plugins.disabledTitle': 'Plugins är inaktiverade',
'admin.plugins.disabledBody': 'Plugin-körmiljön är avstängd (TREK_PLUGINS_ENABLED). Inga plugins kan köras förrän en administratör aktiverar den i serverkonfigurationen.',
'admin.plugins.empty': 'Inga plugins installerade ännu.',
'admin.plugins.loadError': 'Kunde inte läsa in plugins.',
'admin.plugins.scaffoldNote': 'Installation och aktivering av plugins kommer i en senare uppdatering. Denna panel visar för närvarande endast installerade plugins.',
'admin.plugins.status.active': 'Aktivt',
'admin.plugins.status.inactive': 'Inaktivt',
'admin.plugins.status.disabled': 'Avstängt',
'admin.plugins.status.error': 'Fel',
'admin.plugins.status.incompatible': 'Inkompatibelt',
'admin.plugins.details': 'Detaljer',
'admin.plugins.detailError': 'Kunde inte läsa in plugin-detaljerna.',
'admin.plugins.permissionsTitle': 'Behörigheter',
'admin.plugins.noPermissions': 'Detta plugin begär inga särskilda behörigheter.',
'admin.plugins.egressNote': 'Kan ansluta till: {hosts}',
'admin.plugins.setupTitle': 'Konfiguration',
'admin.plugins.noSetup': 'Fungerar direkt – inget behöver konfigureras.',
'admin.plugins.scope.instance': 'Hela instansen',
'admin.plugins.scope.user': 'Per användare',
'admin.plugins.fieldRequired': 'Obligatoriskt',
'admin.plugins.sourceRepo': 'Källkodsarkiv',
'admin.plugins.homepage': 'Webbplats',
'admin.plugins.requiresTrek': 'Kräver TREK {version}+',
'admin.plugins.reviewedOn': 'Granskad {date}',
'admin.plugins.perm.db:own': 'Lagra sina egna data i en isolerad databas',
'admin.plugins.perm.db:read:trips': 'Läsa resor som den aktiva användaren har åtkomst till',
'admin.plugins.perm.db:read:users': 'Läsa grundläggande profilinformation (namn, avatar – aldrig inloggningsuppgifter)',
'admin.plugins.perm.ws:broadcast:trip': 'Skicka realtidsuppdateringar till resans medlemmar',
'admin.plugins.perm.ws:broadcast:user': 'Skicka realtidsuppdateringar till enskilda användare',
'admin.plugins.perm.hook:photo-provider': 'Tillhandahålla foton till Minnen',
'admin.plugins.perm.hook:calendar-source': 'Tillhandahålla händelser till kalendern',
'admin.plugins.perm.http:outbound': 'Göra utgående anrop till sina deklarerade värdar',
'admin.plugins.updateConsentTitle': 'Den här uppdateringen kräver nya behörigheter',
'admin.plugins.updateConsentBody':
'{name} v{version} begär behörigheter som du ännu inte har beviljat. Den nya versionen är installerad men förblir avstängd tills du godkänner den.',
'admin.plugins.updateNewPermissions': 'Nyligen begärda behörigheter',
'admin.plugins.updateNewEgress': 'Nya utgående anslutningar',
'admin.plugins.updateApprove': 'Godkänn och aktivera',
'admin.plugins.updateLater': 'Låt vara avstängd tills vidare',
'admin.plugins.updateKeptOff': 'Uppdateringen är installerad — förblir avstängd tills du godkänner de nya behörigheterna',
'admin.plugins.reviewedMeaning':
'”Granskad” betyder att en TREK-underhållare har skannat pluginet efter skadlig kod i varje version — inte efter kvalitet eller om det fungerar. Det är ingen garanti för att ett plugin är ofarligt.',
'admin.plugins.security.title': 'Så här isoleras plugins — och gränserna för det',
'admin.plugins.security.isolationTitle': 'Varje plugin körs inkapslat',
'admin.plugins.security.isolationBody':
'Ett plugin körs som en egen låst process som bara kan läsa sina egna filer. Det kan inte läsa din databas, din inloggningshemlighet eller din krypteringsnyckel, kan inte starta andra program och kan inte skriva filer någonstans. Dess gränssnitt körs i en förseglad webbläsarram som inte kan läsa din sessionscookie eller röra TREK-sidan runt omkring.',
'admin.plugins.security.permsTitle': 'Vad behörigheterna betyder',
'admin.plugins.security.permsBody':
'Behörigheterna som visas innan du installerar är en hård gräns som TREK upprätthåller medan pluginet körs — det kan bokstavligen inte göra något som inte står på listan. Men de talar om vad ett plugin kan göra, inte vad det faktiskt gör. Ett plugin som får läsa dina resor och nå en server kan skicka dina resor till den servern, så läs behörigheterna och de utgående värdarna, inte bara beskrivningen.',
'admin.plugins.security.limitsTitle': 'Vad vi inte kan lova',
'admin.plugins.security.limitsBody':
'Isoleringen är en stark mjukvarugräns, men inte en absolut. Ett plugin agerar med exakt de rättigheter du godkänner, så inom dessa rättigheter kan det bete sig annorlunda än vad beskrivningen antyder, och det kan skicka data som det legitimt innehar till de värdar det har deklarerat. TREK läser eller bedömer inte vad ett plugins kod faktiskt gör.',
'admin.plugins.security.worstTitle': 'Värsta tänkbara fall',
'admin.plugins.security.worstBody':
'Ett fientligt plugin som du aktiverar kan missbruka de data och anslutningar du har gett det — till exempel läcka de resor det får läsa. Det kan inte stjäla lösenord, förfalska en administratörsinloggning, köra kommandon på din server eller nå data som du inte har beviljat. Skadan håller sig inom det du har godkänt, och att stänga av pluginet stoppar det.',
'admin.plugins.security.reviewedTitle': 'Vad ”Granskad” betyder',
'admin.plugins.security.reviewedBody':
'Ett granskat plugin har manuellt skannats efter skadlig kod av en TREK-underhållare i varje version — kontrollerat för fientlig kod, inte för om det fungerar bra. Det är inget löfte om att pluginet är ofarligt.',
'admin.plugins.security.trustTitle': 'Sammanfattningsvis',
'admin.plugins.security.trustBody':
'Att installera ett plugin är som att installera vilken tredjepartsapp som helst: lägg bara till kod från upphovspersoner du litar på, och granska det själv först om du är osäker. TREK tar inget ansvar för tredjepartsplugins.',
'admin.plugins.runtimeOn': 'Körmiljö på',
'admin.plugins.tabDiscover': 'Upptäck',
'admin.plugins.searchPlaceholder': 'Sök plugins…',
'admin.plugins.filterType': 'Typ',
'admin.plugins.filterStatus': 'Status',
'admin.plugins.sortBy': 'Sortera',
'admin.plugins.allTypes': 'Alla typer',
'admin.plugins.allStatuses': 'Alla',
'admin.plugins.stateOff': 'Av',
'admin.plugins.filterUpdate': 'Uppdatering tillgänglig',
'admin.plugins.sortName': 'Namn',
'admin.plugins.sortRecent': 'Nyligen uppdaterade',
'admin.plugins.sortUpdates': 'Uppdateringar först',
'admin.plugins.updatesAvailable': '{count} uppdateringar tillgängliga för dina plugins.',
'admin.plugins.updateAll': 'Uppdatera alla',
'admin.plugins.noMatchInstalled': 'Inga installerade plugins matchar din sökning.',
'admin.plugins.noMatchRegistry': 'Inga plugins i registret matchar din sökning.',
'admin.plugins.restart': 'Starta om',
'admin.plugins.restarted': 'Pluginet har startats om',
'admin.plugins.cap.readsTrips': 'Läser dina resor',
'admin.plugins.cap.readsUsers': 'Läser grundläggande profiler',
'admin.plugins.cap.widget': 'Dashboard-widget',
'admin.plugins.cap.heroWidget': 'Boardingkort-widget',
'admin.plugins.cap.realtime': 'Realtidsuppdateringar',
'admin.plugins.cap.photos': 'Tillhandahåller foton',
'admin.plugins.cap.calendar': 'Tillhandahåller kalenderhändelser',
'admin.plugins.accessTitle': 'Vad det har åtkomst till',
'admin.plugins.connectsTitle': 'Ansluter till',
'admin.plugins.detailsTitle': 'Detaljer',
'admin.plugins.noAccess': 'Behöver ingen särskild åtkomst.',
'admin.plugins.metaVersion': 'Version',
'admin.plugins.metaSize': 'Storlek',
'admin.plugins.metaRequires': 'Kräver',
'admin.plugins.metaReviewed': 'Granskad',
'admin.addons.title': 'Tillägg',
'admin.addons.subtitle': 'Aktivera eller inaktivera funktioner för att anpassa din TREK-upplevelse.',
'admin.addons.catalog.packing.name': 'Listor',
'admin.addons.catalog.packing.description': 'Packlistor och saker att göra inför dina resor',
'admin.addons.catalog.budget.name': 'Budget',
'admin.addons.catalog.budget.description': 'Håll koll på utgifterna och planera din resebudget',
'admin.addons.catalog.documents.name': 'Dokument',
'admin.addons.catalog.documents.description': 'Spara och hantera resedokument',
'admin.addons.catalog.vacay.name': 'Vacay',
'admin.addons.catalog.vacay.description': 'Personlig semesterplanerare med kalendervy',
'admin.addons.catalog.atlas.name': 'Atlas',
'admin.addons.catalog.atlas.description': 'Världskarta med besökta länder och resestatistik',
'admin.addons.catalog.collab.name': 'Samarbete',
'admin.addons.catalog.collab.description': 'Noteringar, omröstningar och chatt i realtid för resplanering',
'admin.addons.catalog.memories.name': 'Foton (Immich)',
'admin.addons.catalog.memories.description': 'Dela resefoton via din Immich-instans',
'admin.addons.catalog.mcp.name': 'MCP',
'admin.addons.catalog.mcp.description': 'Modellkontextprotokoll för integration av AI-assistenter',
'admin.addons.subtitleBefore': 'Aktivera eller inaktivera funktioner för att anpassa din ',
'admin.addons.subtitleAfter': ' erfarenhet.',
'admin.addons.enabled': 'Aktiverad',
'admin.addons.disabled': 'Inaktiverad',
'admin.addons.type.trip': 'Resa',
'admin.addons.type.global': 'Global',
'admin.addons.type.integration': 'Integration',
'admin.addons.tripHint': 'Finns som en flik i varje resa',
'admin.addons.globalHint': 'Finns som en fristående sektion i huvudnavigeringen',
'admin.addons.integrationHint': 'Backend-tjänster och API-integrationer utan egen sida',
'admin.addons.toast.updated': 'Tillägget har uppdaterats',
'admin.addons.toast.error': 'Det gick inte att uppdatera tillägget',
'admin.addons.noAddons': 'Inga tillägg tillgängliga',
'admin.weather.title': 'Väderdata',
'admin.weather.badge': 'Sedan den 24 mars 2026',
'admin.weather.description':
'TREK använder Open-Meteo som källa för väderdata. Open-Meteo är en kostnadsfri vädertjänst med öppen källkod – ingen API-nyckel krävs.',
'admin.weather.forecast': '16-dagarsprognos',
'admin.weather.forecastDesc': 'Tidigare 5 dagar (OpenWeatherMap)',
'admin.weather.climate': 'Historiska klimatdata',
'admin.weather.climateDesc': 'Genomsnitt för de senaste 85 åren avseende dagar bortom den 16-dagarsprognosen',
'admin.weather.requests': '10 000 förfrågningar per dag',
'admin.weather.requestsDesc': 'Gratis, ingen API-nyckel krävs',
'admin.weather.locationHint':
'Väderuppgifterna baseras på den plats med koordinater som anges först för varje dag. Om ingen plats har angetts för en dag används en valfri plats från platslistan som referens.',
'admin.tabs.mcpTokens': 'MCP Åtkomst',
'admin.mcpTokens.title': 'MCP Åtkomst',
'admin.mcpTokens.subtitle': 'Hantera OAuth-sessioner och API-token för alla användare',
'admin.mcpTokens.sectionTitle': 'API Token',
'admin.mcpTokens.owner': 'Ägare',
'admin.mcpTokens.tokenName': 'Token namn',
'admin.mcpTokens.created': 'Skapad',
'admin.mcpTokens.lastUsed': 'Senast använd',
'admin.mcpTokens.never': 'Aldrig',
'admin.mcpTokens.empty': 'Inga MCP-tokens har skapats ännu',
'admin.mcpTokens.deleteTitle': 'Ta bort token',
'admin.mcpTokens.deleteMessage':
'Detta kommer att återkalla token omedelbart. Användaren kommer att förlora sin MCP-åtkomst via detta token.',
'admin.mcpTokens.deleteSuccess': 'Token har tagits bort',
'admin.mcpTokens.deleteError': 'Det gick inte att ta bort token',
'admin.mcpTokens.loadError': 'Det gick inte att ladda tokens',
'admin.oauthSessions.sectionTitle': 'OAuth Sessioner',
'admin.oauthSessions.clientName': 'Klient',
'admin.oauthSessions.owner': 'Ägare',
'admin.oauthSessions.scopes': 'Tillämpningsområden',
'admin.oauthSessions.created': 'Skapad',
'admin.oauthSessions.empty': 'Inga aktiva OAuth-sessioner',
'admin.oauthSessions.revokeTitle': 'Återkalla Session',
'admin.oauthSessions.revokeMessage':
'Detta kommer att återkalla OAuth-sessionen omedelbart. Klienten kommer att förlora åtkomsten till MCP.',
'admin.oauthSessions.revokeSuccess': 'Session återkallad',
'admin.oauthSessions.revokeError': 'Kunde inte återkalla session',
'admin.oauthSessions.loadError': 'Kunde inte ladda OAuth sessions',
'admin.tabs.github': 'GitHub',
'admin.audit.subtitle': 'Säkerhetsrelaterade händelser och administrativa händelser (säkerhetskopieringar, användare, MFA, inställningar).',
'admin.audit.empty': 'Inga revisionsposter ännu.',
'admin.audit.refresh': 'Uppdatera',
'admin.audit.loadMore': 'Ladda fler',
'admin.audit.showing': '{count} laddad · {total} totalt',
'admin.audit.col.time': 'Tid',
'admin.audit.col.user': 'Användare',
'admin.audit.col.action': 'Åtgärd',
'admin.audit.col.resource': 'Resurs',
'admin.audit.col.ip': 'IP',
'admin.audit.col.details': 'Detaljer',
'admin.github.title': 'Versionshistorik',
'admin.github.subtitle': 'Senaste uppdateringarna från {repo}',
'admin.github.latest': 'Senaste',
'admin.github.prerelease': 'Förhandsutgåva',
'admin.github.showDetails': 'Visa detaljer',
'admin.github.hideDetails': 'Göm detaljer',
'admin.github.loadMore': 'Ladda fler',
'admin.github.loading': 'Laddar...',
'admin.github.error': 'Det gick inte att ladda utgåvorna',
'admin.github.by': 'av',
'admin.github.support': 'Hjälper mig att fortsätta bygga TREK',
'admin.update.available': 'Uppdatering tillgänglig',
'admin.update.text': 'TREK {version} finns tillgängligt. Du kör {current}.',
'admin.update.button': 'Visa på GitHub',
'admin.update.install': 'Installera uppdatering',
'admin.update.confirmTitle': 'Ska uppdateringen installeras?',
'admin.update.confirmText':
'TREK kommer att uppdateras från {current} till {version}. Servern startas om automatiskt därefter.',
'admin.update.dataInfo': 'Alla dina data (resor, användare, API-nycklar, uppladdningar, Vacay, Atlas, budgetar) kommer att bevaras.',
'admin.update.warning': 'Appen kommer att vara tillfälligt otillgänglig under omstarten.',
'admin.update.confirm': 'Uppdatera nu',
'admin.update.installing': 'Uppdaterar…',
'admin.update.success': 'Uppdateringen är installerad! Servern startas om…',
'admin.update.failed': 'Uppdateringen misslyckades',
'admin.update.backupHint': 'Vi rekommenderar att du gör en säkerhetskopia innan du uppdaterar.',
'admin.update.backupLink': 'Gå till Säkerhetskopiering',
'admin.update.howTo': 'Så här uppdaterar du',
'admin.update.dockerText':
'Din TREK-instans körs i Docker. För att uppdatera till {version} kör du följande kommandon på din server:',
'admin.update.nonDockerText':
'Denna TREK-instans körs inte i Docker. För att uppdatera till {version}, kör installations- eller uppdateringsmetod du använde på nytt — till exempel, i Proxmox Community Scripts kör du uppdateringen från LXC-konsolen:',
'admin.update.wikiLink': 'Öppna uppdateringsguiden',
'admin.update.reloadHint': 'Vänligen uppdatera sidan om några sekunder.',
'admin.tabs.permissions': 'Behörigheter',
'admin.addons.catalog.journey.name': 'Journey',
'admin.addons.catalog.journey.description':
'Resespårning och resedagbok med incheckningar, foton och dagliga inlägg',
'admin.addons.catalog.collections.name': 'Samlingar',
'admin.addons.catalog.collections.description':
'Personligt platsbibliotek — spara platser mellan resor i namngivna listor, kopiera till valfri resa, dela med andra',
'admin.passkey.title': 'Inloggningsnyckel',
'admin.passkey.cardHint': 'Låter användare att logga in med inloggningsnyckel (WebAuthn). Avstängt som standard.',
'admin.passkey.login': 'Aktivera inloggningsnyckel',
'admin.passkey.loginHint': 'Visa alternativet ”Logga in med en inloggningsnyckel och låt användarna registrera inloggningsnycklar i sina inställningar.',
'admin.passkey.notConfigured':
'Det finns ännu ingen WebAuthn-domän för denna distribution. Ange APP_URL eller Relying Party ID nedan – inloggningsnycklar förblir dolda tills dess.',
'admin.passkey.rpId': 'Relying Party ID (domain)',
'admin.passkey.rpIdHint':
'De rena domän inloggningsnycklarna är kopplade till t.ex. trek.example.org. Lämna fältet tomt om du vill att nyckeln ska härledas från APP_URL. Om du ändrar detta senare blir befintliga nycklar ogiltiga.',
'admin.passkey.origins': 'Allowed origins',
'admin.passkey.originsHint':
'Fullständiga ursprungsadresser separerade med kommatecken, t.ex. https://trek.example.org. Lämna fältet tomt för att använda APP_URL.',
'admin.passkey.reset': 'Återställ inloggningsnycklar',
'admin.passkey.resetHint':
"Ta bort alla den här användarens inloggningsnycklar (t.ex. om enheten har försvunnit). Användaren kan fortfarande logga in med sitt lösenord.",
'admin.passkey.resetConfirm': 'Ta bort alla åtkomstnycklar för {name}?',
'admin.passkey.resetDone': 'Tog bort {count} inloggningsnycklar',
'admin.group.users': 'Users',
'admin.group.config': 'Configuration',
'admin.group.integration': 'Integrations',
'admin.group.maintenance': 'Maintenance',
'admin.invite.tripLabel': 'Lägg till i resa (valfritt)',
'admin.invite.tripNone': 'Ingen resa',
'admin.invite.tripHint': 'Den nya användaren läggs automatiskt till i den här resan när de registrerar sig via länken.',
'admin.invite.boundTo': 'läggs till i {trip}',
};
export default admin;