mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
31f6ec1f47
* feat(vacay): read-only calendar shares on the server (#444, #667) * feat(vacay): shared calendars card and ring overlay on desktop * feat(vacay): share sheet and calendar rings on mobile * test(vacay): cover the calendar share flows * docs(vacay): document read-only calendar sharing
519 lines
33 KiB
TypeScript
519 lines
33 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
||
|
||
const settings: TranslationStrings = {
|
||
'settings.title': 'Configuració',
|
||
'settings.subtitle': 'Configura els teus paràmetres personals',
|
||
'settings.tabs.display': 'Pantalla',
|
||
'settings.tabs.map': 'Mapa',
|
||
'settings.tabs.notifications': 'Notificacions',
|
||
'settings.tabs.integrations': 'Integracions',
|
||
'settings.tabs.account': 'Compte',
|
||
'settings.tabs.offline': 'Fora de línia',
|
||
'settings.tabs.about': 'Quant a',
|
||
'settings.map': 'Mapa',
|
||
'settings.mapTemplate': 'Plantilla del mapa',
|
||
'settings.mapTemplatePlaceholder.select': 'Selecciona una plantilla...',
|
||
'settings.mapDefaultHint': 'Deixa-ho buit per a OpenStreetMap (per defecte)',
|
||
'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
|
||
'settings.mapHint': "Plantilla d'URL per als mosaics del mapa",
|
||
'settings.mapProvider': 'Proveïdor de mapa',
|
||
'settings.mapProviderHint': 'Afecta els mapes de Trip Planner i Journey. Atles sempre utilitza Leaflet.',
|
||
'settings.mapLeafletSubtitle': 'Clàssic 2D, qualsevol mosaic raster',
|
||
'settings.mapMapboxSubtitle': 'Mosaics vectorials, edificis 3D i terreny',
|
||
'settings.mapExperimental': 'Experimental',
|
||
'settings.mapMapboxToken': "Token d'accés de Mapbox",
|
||
'settings.mapMapboxTokenHint': 'Token públic (pk.*) de',
|
||
'settings.mapMapboxTokenLink': "mapbox.com → Tokens d'accés",
|
||
'settings.mapStyle': 'Estil de mapa',
|
||
'settings.mapStylePlaceholder': 'Selecciona un estil de Mapbox',
|
||
'settings.mapStyleHint': 'Predefinit o la teva pròpia URL mapbox://styles/USUARI/ID',
|
||
'settings.map3dBuildings': 'Edificis 3D i terreny',
|
||
'settings.map3dHint':
|
||
"Inclinació + extrusions 3D reals d'edificis — funciona amb tots els estils, incloent-hi satèl·lit.",
|
||
'settings.mapHighQuality': "Mode d'alta qualitat",
|
||
'settings.mapHighQualityHint': 'Antialiàsia + projecció global per a vores més nítides i una vista realista del món.',
|
||
'settings.mapHighQualityWarning': 'Pot afectar el rendiment en dispositius menys potents.',
|
||
'settings.mapTipLabel': 'Consell:',
|
||
'settings.mapTip':
|
||
'Clic dret i arrossegar per girar/inclinar el mapa. Clic central per afegir un lloc (el clic dret està reservat per a la rotació).',
|
||
'settings.saveMap': 'Desa el mapa',
|
||
'settings.apiKeys': 'Claus API',
|
||
'settings.mapsKey': 'Clau API de Google Maps',
|
||
'settings.mapsKeyHint': 'Necessària per cercar llocs. Obtén-la a console.cloud.google.com',
|
||
'settings.weatherKey': "Clau API d'OpenWeatherMap",
|
||
'settings.weatherKeyHint': 'Per a dades meteorològiques. Gratuïta a openweathermap.org/api',
|
||
'settings.keyPlaceholder': 'Introdueix la clau...',
|
||
'settings.configured': 'Configurat',
|
||
'settings.saveKeys': 'Desa les claus',
|
||
'settings.display': 'Visualització',
|
||
'settings.colorMode': 'Mode de color',
|
||
'settings.light': 'Clar',
|
||
'settings.dark': 'Fosc',
|
||
'settings.auto': 'Automàtic',
|
||
'settings.language': 'Idioma',
|
||
'settings.temperature': 'Unitat de temperatura',
|
||
'settings.timeFormat': "Format d'hora",
|
||
'settings.blurBookingCodes': 'Difumina els codis de reserva',
|
||
'settings.optimizeFromAccommodation': "Optimitza la ruta des de l'allotjament",
|
||
'settings.optimizeFromAccommodationHint':
|
||
"En optimitzar un dia, comença la ruta a l'hotel on despertes i acaba-la en aquell on et registres aquella nit.",
|
||
'settings.notifications': 'Notificacions',
|
||
'settings.notifyTripInvite': 'Invitacions de viatge',
|
||
'settings.notifyBookingChange': 'Canvis en reserves',
|
||
'settings.notifyTripReminder': 'Recordatoris de viatge',
|
||
'settings.notifyTodoDue': 'Tasca propera',
|
||
'settings.notifyVacayInvite': 'Invitacions de fusió Vacay',
|
||
'settings.notifyVacayShare': 'Comparticions de calendari Vacay',
|
||
'settings.notifyPhotosShared': 'Fotos compartides (Immich)',
|
||
'settings.notifyCollabMessage': 'Missatges de xat (Col·laboració)',
|
||
'settings.notifyPackingTagged': "Llista d'equipatge: assignacions",
|
||
'settings.notifyWebhook': 'Notificacions webhook',
|
||
'settings.notificationsDisabled':
|
||
'Les notificacions no estan configurades. Demana a un administrador que activi les notificacions per correu o webhook.',
|
||
'settings.notificationsActive': 'Canal actiu',
|
||
'settings.notificationsManagedByAdmin': "Els esdeveniments de notificació són configurats per l'administrador.",
|
||
'settings.on': 'Activat',
|
||
'settings.off': 'Desactivat',
|
||
'settings.mcp.title': 'Configuració MCP',
|
||
'settings.mcp.endpoint': 'Endpoint MCP',
|
||
'settings.mcp.clientConfig': 'Configuració del client',
|
||
'settings.mcp.clientConfigHint':
|
||
"Substitueix <your_token> amb un token de la llista de sota. Potser hauràs d'ajustar la ruta de npx segons el teu sistema (p. ex. C:\\PROGRA~1\\nodejs\\npx.cmd a Windows).",
|
||
'settings.mcp.clientConfigHintOAuth':
|
||
"Substitueix <your_client_id> i <your_client_secret> amb les credencials del client OAuth 2.1 que vas crear a dalt. mcp-remote obrirà el navegador per completar l'autorització la primera vegada que et connectis. Potser hauràs d'ajustar la ruta de npx segons el teu sistema (p. ex. C:\\PROGRA~1\\nodejs\\npx.cmd a Windows).",
|
||
'settings.mcp.copy': 'Copia',
|
||
'settings.mcp.copied': 'Copiat!',
|
||
'settings.mcp.apiTokens': 'Tokens API',
|
||
'settings.mcp.createToken': 'Crea un token nou',
|
||
'settings.mcp.noTokens': "Sense tokens encara. Crea'n un per connectar clients MCP.",
|
||
'settings.mcp.tokenCreatedAt': 'Creat',
|
||
'settings.mcp.tokenUsedAt': 'Utilitzat',
|
||
'settings.mcp.deleteTokenTitle': 'Elimina el token',
|
||
'settings.mcp.deleteTokenMessage':
|
||
"Aquest token deixarà de funcionar immediatament. Qualsevol client MCP que el faci servir perdrà l'accés.",
|
||
'settings.mcp.modal.createTitle': 'Crea un token API',
|
||
'settings.mcp.modal.tokenName': 'Nom del token',
|
||
'settings.mcp.modal.tokenNamePlaceholder': 'p. ex. Claude Desktop, Portàtil de treball',
|
||
'settings.mcp.modal.creating': 'Creant…',
|
||
'settings.mcp.modal.create': 'Crea el token',
|
||
'settings.mcp.modal.createdTitle': 'Token creat',
|
||
'settings.mcp.modal.createdWarning':
|
||
"Aquest token només es mostrarà un cop. Copia'l i desa'l ara — no es podrà recuperar.",
|
||
'settings.mcp.modal.done': 'A punt',
|
||
'settings.mcp.toast.created': 'Token creat',
|
||
'settings.mcp.toast.createError': 'Error en crear el token',
|
||
'settings.mcp.toast.deleted': 'Token eliminat',
|
||
'settings.mcp.toast.deleteError': 'Error en eliminar el token',
|
||
'settings.mcp.apiTokensDeprecated':
|
||
"Els tokens API estan obsolets i s'eliminaran en una versió futura. Utilitza els clients OAuth 2.1 en el seu lloc.",
|
||
'settings.oauth.clients': 'Clients OAuth 2.1',
|
||
'settings.oauth.clientsHint':
|
||
'Registra clients OAuth 2.1 perquè les aplicacions MCP de tercers (Claude Web, Cursor, etc.) es puguin connectar sense tokens estàtics.',
|
||
'settings.oauth.createClient': 'Client nou',
|
||
'settings.oauth.noClients': 'No hi ha clients OAuth registrats.',
|
||
'settings.oauth.clientId': 'ID de client',
|
||
'settings.oauth.clientSecret': 'Secret de client',
|
||
'settings.oauth.deleteClient': 'Elimina el client',
|
||
'settings.oauth.deleteClientMessage':
|
||
"Aquest client i totes les sessions actives s'eliminaran permanentment. Qualsevol aplicació que l'utilitzi perdrà l'accés immediatament.",
|
||
'settings.oauth.rotateSecret': 'Renova el secret',
|
||
'settings.oauth.rotateSecretMessage':
|
||
"Es generarà un secret de client nou i totes les sessions existents s'invalidaran immediatament. Actualitza la teva aplicació abans de tancar aquest diàleg.",
|
||
'settings.oauth.rotateSecretConfirm': 'Renova',
|
||
'settings.oauth.rotateSecretConfirming': 'Renovant…',
|
||
'settings.oauth.rotateSecretDoneTitle': 'Secret nou generat',
|
||
'settings.oauth.rotateSecretDoneWarning':
|
||
"Aquest secret només es mostra un cop. Copia'l ara i actualitza la teva aplicació — totes les sessions anteriors han estat invalidades.",
|
||
'settings.oauth.activeSessions': 'Sessions OAuth actives',
|
||
'settings.oauth.sessionScopes': 'Àmbits',
|
||
'settings.oauth.sessionExpires': 'Caduca',
|
||
'settings.oauth.revoke': 'Revoca',
|
||
'settings.oauth.revokeSession': 'Revoca la sessió',
|
||
'settings.oauth.revokeSessionMessage': "Això revocarà immediatament l'accés d'aquesta sessió OAuth.",
|
||
'settings.oauth.modal.createTitle': 'Registra un client OAuth',
|
||
'settings.oauth.modal.presets': 'Configuracions ràpides',
|
||
'settings.oauth.modal.clientName': "Nom de l'aplicació",
|
||
'settings.oauth.modal.clientNamePlaceholder': 'p. ex. Claude Web, La meva app MCP',
|
||
'settings.oauth.modal.redirectUris': 'URIs de redirecció',
|
||
'settings.oauth.modal.redirectUrisPlaceholder': 'https://your-app.com/callback\nhttps://your-app.com/auth',
|
||
'settings.oauth.modal.redirectUrisHint':
|
||
'Un URI per línia. HTTPS obligatori (localhost exempt). Coincidència exacta.',
|
||
'settings.oauth.modal.scopes': 'Àmbits permesos',
|
||
'settings.oauth.modal.scopesHint':
|
||
'list_trips i get_trip_summary sempre estan disponibles — sense àmbit requerit. Permeten a la IA descobrir els IDs de viatge necessaris.',
|
||
'settings.oauth.modal.selectAll': 'Selecciona-ho tot',
|
||
'settings.oauth.modal.deselectAll': 'Deselecciona-ho tot',
|
||
'settings.oauth.modal.creating': 'Registrant…',
|
||
'settings.oauth.modal.create': 'Registra el client',
|
||
'settings.oauth.modal.createdTitle': 'Client registrat',
|
||
'settings.oauth.modal.createdWarning':
|
||
"El secret del client només es mostra un cop. Copia'l ara — no es pot recuperar.",
|
||
'settings.oauth.toast.createError': 'Error en registrar el client OAuth',
|
||
'settings.oauth.toast.deleted': 'Client OAuth eliminat',
|
||
'settings.oauth.toast.deleteError': 'Error en eliminar el client OAuth',
|
||
'settings.oauth.toast.revoked': 'Sessió revocada',
|
||
'settings.oauth.toast.revokeError': 'Error en revocar la sessió',
|
||
'settings.oauth.toast.rotateError': 'Error en renovar el secret del client',
|
||
'settings.oauth.modal.machineClient': 'Client de màquina (sense inici de sessió al navegador)',
|
||
'settings.oauth.modal.machineClientHint':
|
||
"Utilitza el grant client_credentials — sense URIs de redirecció. El token s'emet directament via client_id + client_secret i actua com tu dins dels àmbits seleccionats.",
|
||
'settings.oauth.modal.machineClientUsage':
|
||
"Obtenir token: POST /oauth/token amb grant_type=client_credentials, client_id i client_secret. Sense navegador, sense token d'actualització.",
|
||
'settings.oauth.badge.machine': 'màquina',
|
||
'settings.account': 'Compte',
|
||
'settings.about': 'Quant a',
|
||
'settings.about.reportBug': "Informa d'un error",
|
||
'settings.about.reportBugHint': 'Has trobat un problema? Comunica-nos-ho',
|
||
'settings.about.featureRequest': 'Sol·licita una funció',
|
||
'settings.about.featureRequestHint': 'Suggereix una funció nova',
|
||
'settings.about.wikiHint': 'Documentació i guies',
|
||
'settings.about.supporters.badge': 'Patrocinadors Mensuals',
|
||
'settings.about.supporters.title': 'Companyia de viatge per a TREK',
|
||
'settings.about.supporters.subtitle':
|
||
'Mentre planifiques la teva pròxima ruta, aquestes persones ajuden a planificar el futur de TREK. La seva aportació mensual va directa al desenvolupament i a les hores reals invertides — perquè TREK continuï sent Open Source.',
|
||
'settings.about.supporters.since': 'patrocinador des de {date}',
|
||
'settings.about.supporters.tierEmpty': 'Sigues el primer',
|
||
'settings.about.supporter.tier.noReturnTicket': 'No Return Ticket',
|
||
'settings.about.supporter.tier.lostLuggageVip': 'Lost Luggage VIP',
|
||
'settings.about.supporter.tier.businessClassDreamer': 'Business Class Dreamer',
|
||
'settings.about.supporter.tier.budgetTraveller': 'Budget Traveller',
|
||
'settings.about.supporter.tier.hostelBunkmate': 'Hostel Bunkmate',
|
||
'settings.about.description':
|
||
"TREK és un planificador de viatges autoallotjat que t'ajuda a organitzar els teus viatges des de la primera idea fins al darrer record. Planificació diària, pressupost, llistes d'equipatge, fotos i molt més — tot en un sol lloc, al teu propi servidor.",
|
||
'settings.about.madeWith': 'Fet amb',
|
||
'settings.about.madeBy': 'per Maurice i una creixent comunitat de codi obert.',
|
||
'settings.username': 'Usuari',
|
||
'settings.email': 'Correu',
|
||
'settings.role': 'Rol',
|
||
'settings.roleAdmin': 'Administrador',
|
||
'settings.oidcLinked': 'Vinculat amb',
|
||
'settings.changePassword': 'Canvia la contrasenya',
|
||
'settings.mustChangePassword':
|
||
'Has de canviar la teva contrasenya abans de continuar. Estableix una contrasenya nova a continuació.',
|
||
'settings.currentPassword': 'Contrasenya actual',
|
||
'settings.newPassword': 'Contrasenya nova',
|
||
'settings.confirmPassword': 'Confirma la contrasenya nova',
|
||
'settings.updatePassword': 'Actualitza la contrasenya',
|
||
'settings.passwordRequired': 'Introdueix la contrasenya actual i la nova',
|
||
'settings.passwordTooShort': 'La contrasenya ha de tenir almenys 8 caràcters',
|
||
'settings.passwordMismatch': 'Les contrasenyes no coincideixen',
|
||
'settings.passwordChanged': 'Contrasenya canviada correctament',
|
||
'settings.deleteAccount': 'Elimina el compte',
|
||
'settings.deleteAccountTitle': 'Vols eliminar el teu compte?',
|
||
'settings.deleteAccountWarning':
|
||
"El teu compte i tots els teus viatges, llocs i fitxers s'eliminaran permanentment. Aquesta acció no es pot desfer.",
|
||
'settings.deleteAccountConfirm': 'Elimina permanentment',
|
||
'settings.deleteBlockedTitle': 'No és possible eliminar-lo',
|
||
'settings.deleteBlockedMessage':
|
||
"Ets l'únic administrador. Ascendeix un altre usuari a administrador abans d'eliminar el teu compte.",
|
||
'settings.roleUser': 'Usuari',
|
||
'settings.saveProfile': 'Desa el perfil',
|
||
'settings.mfa.title': 'Autenticació de dos factors (2FA)',
|
||
'settings.mfa.description':
|
||
"Afegeix un segon pas en iniciar la sessió. Utilitza una app d'autenticació (Google Authenticator, Authy, etc.).",
|
||
'settings.mfa.requiredByPolicy':
|
||
"El teu administrador exigeix autenticació de dos factors. Configura una app d'autenticació a sota abans de continuar.",
|
||
'settings.mfa.backupTitle': 'Codis de reserva',
|
||
'settings.mfa.backupDescription': "Utilitza aquests codis d'un sol ús si perds l'accés a la teva app autenticadora.",
|
||
'settings.mfa.backupWarning': "Desa'ls ara. Cada codi només es pot utilitzar un cop.",
|
||
'settings.mfa.backupCopy': 'Copia els codis',
|
||
'settings.mfa.backupDownload': 'Baixa el TXT',
|
||
'settings.mfa.backupPrint': 'Imprimeix / PDF',
|
||
'settings.mfa.backupCopied': 'Codis de reserva copiats',
|
||
'settings.mfa.enabled': '2FA està activat al teu compte.',
|
||
'settings.mfa.disabled': '2FA no està activat.',
|
||
'settings.mfa.setup': "Configura l'autenticador",
|
||
'settings.mfa.scanQr': 'Escaneja aquest codi QR amb la teva app o introdueix la clau manualment.',
|
||
'settings.mfa.secretLabel': 'Clau secreta (entrada manual)',
|
||
'settings.mfa.codePlaceholder': 'Codi de 6 dígits',
|
||
'settings.mfa.enable': 'Activa el 2FA',
|
||
'settings.mfa.cancelSetup': 'Cancel·la',
|
||
'settings.mfa.disableTitle': 'Desactiva el 2FA',
|
||
'settings.mfa.disableHint': 'Introdueix la teva contrasenya i un codi actual del teu autenticador.',
|
||
'settings.mfa.disable': 'Desactiva el 2FA',
|
||
'settings.mfa.toastEnabled': 'Autenticació de dos factors activada',
|
||
'settings.mfa.toastDisabled': 'Autenticació de dos factors desactivada',
|
||
'settings.mfa.demoBlocked': 'No disponible en mode de demostració',
|
||
'settings.toast.mapSaved': 'Configuració del mapa desada',
|
||
'settings.toast.keysSaved': 'Claus API desades',
|
||
'settings.toast.displaySaved': 'Configuració de visualització desada',
|
||
'settings.toast.profileSaved': 'Perfil desat',
|
||
'settings.uploadAvatar': 'Puja una foto de perfil',
|
||
'settings.removeAvatar': 'Elimina la foto de perfil',
|
||
'settings.avatarUploaded': 'Foto de perfil actualitzada',
|
||
'settings.avatarRemoved': 'Foto de perfil eliminada',
|
||
'settings.avatarError': 'La pujada ha fallat',
|
||
'settings.bookingLabels': 'Etiquetes de rutes de reserves',
|
||
'settings.bookingLabelsHint': "Mostra noms d'estacions / aeroports al mapa. Desactivat, només es mostra la icona.",
|
||
'settings.currentPasswordRequired': 'La contrasenya actual és obligatòria',
|
||
'settings.passwordWeak': 'La contrasenya ha de contenir majúscules, minúscules, números i un caràcter especial',
|
||
'settings.notifyVersionAvailable': 'Versió nova disponible',
|
||
'settings.notificationPreferences.noChannels':
|
||
'No hi ha canals de notificació configurats. Demana a un administrador que configuri notificacions per correu o webhook.',
|
||
'settings.webhookUrl.label': 'URL del webhook',
|
||
'settings.webhookUrl.placeholder': 'https://discord.com/api/webhooks/...',
|
||
'settings.webhookUrl.hint':
|
||
'Introdueix la teva URL de webhook de Discord, Slack o personalitzada per rebre notificacions.',
|
||
'settings.webhookUrl.saved': 'URL del webhook desada',
|
||
'settings.webhookUrl.test': 'Prova',
|
||
'settings.webhookUrl.testSuccess': 'Webhook de prova enviat correctament',
|
||
'settings.webhookUrl.testFailed': 'Error en enviar el webhook de prova',
|
||
'settings.ntfyUrl.topicLabel': 'Tema de Ntfy',
|
||
'settings.ntfyUrl.topicPlaceholder': 'my-trek-alerts',
|
||
'settings.ntfyUrl.serverLabel': 'URL del servidor Ntfy (opcional)',
|
||
'settings.ntfyUrl.serverPlaceholder': 'https://ntfy.sh',
|
||
'settings.ntfyUrl.hint':
|
||
'Introdueix el teu tema de Ntfy per rebre notificacions push. Deixa el servidor en blanc per utilitzar el predeterminat configurat pel teu administrador.',
|
||
'settings.ntfyUrl.tokenLabel': "Token d'accés (opcional)",
|
||
'settings.ntfyUrl.tokenHint': 'Requerit per a temes protegits amb contrasenya.',
|
||
'settings.ntfyUrl.saved': 'Configuració de Ntfy desada',
|
||
'settings.ntfyUrl.test': 'Prova',
|
||
'settings.ntfyUrl.testSuccess': 'Notificació de prova de Ntfy enviada correctament',
|
||
'settings.ntfyUrl.testFailed': 'Error en la notificació de prova de Ntfy',
|
||
'settings.ntfyUrl.tokenCleared': "Token d'accés eliminat",
|
||
'settings.notificationPreferences.inapp': "A l'aplicació",
|
||
'settings.notificationPreferences.webhook': 'Webhook',
|
||
'settings.notificationPreferences.email': 'Correu electrònic',
|
||
'settings.notificationPreferences.ntfy': 'Ntfy',
|
||
'settings.passkey.title': 'Passkeys',
|
||
'settings.passkey.description':
|
||
'Inicia la sessió més ràpidament i amb protecció contra el phishing utilitzant una passkey: la teva empremta, la teva cara, el teu PIN o una clau de seguretat física. La teva contrasenya continua disponible com a alternativa.',
|
||
'settings.passkey.notConfigured':
|
||
'Les passkeys estan habilitades, però encara no estan del tot configurades en aquest servidor. Demana al teu administrador que defineixi el domini de WebAuthn.',
|
||
'settings.passkey.add': 'Afegeix una passkey',
|
||
'settings.passkey.addTitle': 'Afegeix una passkey',
|
||
'settings.passkey.passwordPrompt':
|
||
'Confirma la teva contrasenya actual i després segueix les indicacions del teu dispositiu.',
|
||
'settings.passkey.passwordRequired': 'Es requereix la teva contrasenya actual.',
|
||
'settings.passkey.namePlaceholder': 'Nom (opcional, p. ex. "iPhone")',
|
||
'settings.passkey.addedToast': 'Passkey afegida',
|
||
'settings.passkey.added': 'Afegida',
|
||
'settings.passkey.addError': "No s'ha pogut afegir la passkey",
|
||
'settings.passkey.cancelled': 'Configuració de la passkey cancel·lada',
|
||
'settings.passkey.deleted': 'Passkey eliminada',
|
||
'settings.passkey.deleteConfirm': 'Vols eliminar aquesta passkey? Confirma-ho amb la teva contrasenya.',
|
||
'settings.passkey.rename': 'Canvia el nom',
|
||
'settings.passkey.defaultName': 'Passkey',
|
||
'settings.passkey.synced': 'Sincronitzada',
|
||
'settings.passkey.deviceBound': 'Aquest dispositiu',
|
||
'settings.passkey.lastUsed': 'Últim ús',
|
||
'settings.passkey.neverUsed': 'Mai utilitzada',
|
||
'settings.mapPoiPill': 'Explora llocs al mapa',
|
||
'settings.mapPoiPillHint':
|
||
"Mostra una píndola de categories al mapa del viatge per trobar restaurants, allotjaments i més a prop, des d'OpenStreetMap.",
|
||
|
||
'settings.mapMapLibreSubtitle': "Tessel·les vectorials d'OpenFreeMap, sense token",
|
||
'settings.mapOpenFreeMapStylePlaceholder': "Selecciona un estil d'OpenFreeMap",
|
||
'settings.mapOpenFreeMapStyleHint':
|
||
"URL d'estil o predefinit d'OpenFreeMap. Els estils d'OpenFreeMap funcionen sense token.",
|
||
'settings.distance': 'Unitat de distància',
|
||
'settings.aiAlwaysRetry': 'Reintentar sempre les importacions de reserves com a IA',
|
||
'settings.aiAlwaysRetryHint':
|
||
'Quan el lector estàndard no pugui llegir un fitxer, reintenta-ho automàticament amb IA.',
|
||
'settings.currency': 'Divisa',
|
||
'settings.currencyHint': 'Tots els imports de Despeses es converteixen i es mostren en aquesta divisa.',
|
||
'settings.airtrail.title': 'AirTrail',
|
||
'settings.airtrail.hint': "Connecta't a la teva instància d'AirTrail per importar vols automàticament.",
|
||
'settings.airtrail.url': 'URL de la instància',
|
||
'settings.airtrail.apiKey': "Clau de l'API",
|
||
'settings.airtrail.apiKeyPlaceholder': "Clau d'API Bearer",
|
||
'settings.airtrail.apiKeyHint': "Generada a AirTrail sota Ajustos → Seguretat. S'emmagatzema xifrada.",
|
||
'settings.airtrail.allowInsecureTls': 'Permetre certificats autodirigits',
|
||
'settings.airtrail.allowInsecureTlsHint': 'Activa-ho només per a una instància de confiança a la teva pròpia xarxa.',
|
||
'settings.airtrail.writeBack': 'Sincronitzar els canvis cap a AirTrail',
|
||
'settings.airtrail.writeBackHint': "Sincronitza les modificacions fetes aquí de tornada al teu compte d'AirTrail.",
|
||
'settings.airtrail.connected': 'Connectat',
|
||
'settings.airtrail.notConnected': 'No connectat',
|
||
'settings.airtrail.toast.saved': 'Connexió amb AirTrail desada',
|
||
'settings.airtrail.toast.saveError': "No s'ha pogut desar la connexió",
|
||
'settings.airtrail.test.button': 'Provar connexió',
|
||
'settings.airtrail.test.success': "Connectat — S'han trobat {count} vol(s)",
|
||
'settings.airtrail.test.failed': 'La connexió ha fallat',
|
||
'settings.aiParsing.title': 'Anàlisi per IA',
|
||
'settings.aiParsing.hint':
|
||
"Configura els proveïdors de serveis d'IA per extreure detalls de la reserva dels documents.",
|
||
'settings.aiParsing.provider': 'Proveïdor',
|
||
'settings.aiParsing.providerLocal': 'Local (Ollama)',
|
||
'settings.aiParsing.providerOpenai': 'OpenAI',
|
||
'settings.aiParsing.providerAnthropic': 'Anthropic',
|
||
'settings.aiParsing.model': 'Model',
|
||
'settings.aiParsing.baseUrl': 'URL base',
|
||
'settings.aiParsing.baseUrlHint':
|
||
"On s'executa el model — un servidor local d'Ollama o un punt final compatible amb OpenAI.",
|
||
'settings.aiParsing.apiKey': "Clau de l'API",
|
||
'settings.aiParsing.apiKeyHint': "S'emmagatzema xifrada. Deixa-ho en blanc per mantenir la clau actual.",
|
||
'settings.aiParsing.multimodal': 'Enviar documents com a imatges',
|
||
'settings.aiParsing.multimodalHint':
|
||
'Per a models amb capacitats de visió — envia el PDF original en comptes del text extret.',
|
||
'settings.aiParsing.toast.saved': "Ajustos d'IA desats",
|
||
'settings.aiParsing.toast.saveError': "No s'han pogut desar els ajustos d'IA",
|
||
'settings.tabs.appearance': 'Aparença',
|
||
'settings.appearance.theme': 'Tema',
|
||
'settings.appearance.scheme': 'Esquema de colors',
|
||
'settings.appearance.scheme.default': 'Per defecte',
|
||
'settings.appearance.scheme.highContrast': 'Alt contrast',
|
||
'settings.appearance.scheme.indigo': 'Anil',
|
||
'settings.appearance.scheme.teal': 'Xarxet',
|
||
'settings.appearance.scheme.rose': 'Rosa',
|
||
'settings.appearance.scheme.amber': 'Ambre',
|
||
'settings.appearance.scheme.violet': 'Violeta',
|
||
'settings.appearance.scheme.custom': 'Personalitzat',
|
||
'settings.appearance.customAccent': "Color d'accent personalitzat",
|
||
'settings.appearance.contrastOk': 'Bon contrast',
|
||
'settings.appearance.contrastLow': 'Contrast baix',
|
||
'settings.appearance.readability': 'Llegibilitat',
|
||
'settings.appearance.transparency': 'Transparència',
|
||
'settings.appearance.transparencyHint':
|
||
"Superfícies translúcides d'aspecte vidriós. Desactiva-ho per a fons sòlids amb més contrast.",
|
||
'settings.appearance.reduceMotion': 'Reduir el moviment',
|
||
'settings.appearance.reduceMotionHint': 'Minimitza animacions i transicions.',
|
||
'settings.appearance.density': 'Densitat',
|
||
'settings.appearance.comfortable': 'Còmode',
|
||
'settings.appearance.compact': 'Compacte',
|
||
'settings.appearance.textSize': 'Mida del text',
|
||
'settings.appearance.advancedTextSizes': 'Mides de text avançades',
|
||
'settings.appearance.hideAdvanced': 'Amagar opcions avançades',
|
||
'settings.appearance.tier.title': 'Títols',
|
||
'settings.appearance.tier.subtitle': 'Subtítols',
|
||
'settings.appearance.tier.body': 'Cos',
|
||
'settings.appearance.tier.caption': 'Subtítols de foto / peus',
|
||
'settings.appearance.dashboardWidgets': 'Ginys del tauler',
|
||
'settings.appearance.dashboardWidgetsHint':
|
||
"Mostra o amaga els ginys del tauler de forma independent en l'escriptori i el mòbil.",
|
||
'settings.appearance.desktop': 'Escriptori',
|
||
'settings.appearance.mobile': 'Mòbil',
|
||
'settings.appearance.widget.sidebar': 'Barra lateral dreta',
|
||
'settings.appearance.widget.currency': 'Divisa',
|
||
'settings.appearance.widget.collections': 'Col·leccions',
|
||
'settings.appearance.widget.timezones': 'Zones horàries',
|
||
'settings.appearance.widget.upcomingReservations': 'Properes reserves',
|
||
'settings.appearance.widget.atlas': 'Atles / països',
|
||
'settings.appearance.widget.tripsTotal': 'Total de viatges',
|
||
'settings.appearance.widget.daysTraveled': 'Dies viatjats',
|
||
'settings.appearance.widget.distanceFlown': 'Distància volada',
|
||
'settings.appearance.reset': 'Restablir valors per defecte',
|
||
'settings.appearance.group.belowHero': 'Sota la capçalera principal',
|
||
'settings.appearance.group.bottomOfPage': 'Al peu de la pàgina',
|
||
'settings.appearance.sidebarHint': 'Tota la columna dreta. Si es desactiva, el tauler es centra.',
|
||
'settings.appearance.densityHint':
|
||
"La densitat compacta redueix l'espaiat i el farcit per a un disseny més atapeït on hi cap més contingut.",
|
||
'settings.appearance.textSizeAll': 'Tot',
|
||
'settings.appearance.perSize': 'Ajustar cada mida per separat',
|
||
'settings.appearance.size.large': 'Gran',
|
||
'settings.appearance.size.medium': 'Mitjana',
|
||
'settings.appearance.size.normal': 'Normal',
|
||
'settings.appearance.size.small': 'Petita',
|
||
'settings.appearance.preview.large': 'Títol gran',
|
||
'settings.appearance.preview.medium': 'Subtítol mitjà',
|
||
'settings.appearance.preview.normal': 'Text de cos normal',
|
||
'settings.appearance.preview.small': 'Peu de text / adreça petita',
|
||
'settings.appearance.example.large': 'Capçaleres, números grans',
|
||
'settings.appearance.example.medium': 'Subcapçaleres',
|
||
'settings.appearance.example.normal': 'Noms de llocs, descripcions',
|
||
'settings.appearance.example.small': 'Adreces, etiquetes',
|
||
'settings.appearance.experimental': 'Experimental',
|
||
'settings.appearance.mobileNav': 'Barra de navegació inferior',
|
||
'settings.appearance.mobileNav.hint':
|
||
'Tria quins elements apareixen a la barra i quins queden sota «Més». El tauler sempre queda primer.',
|
||
'settings.appearance.mobileNav.inBar': 'A la barra',
|
||
'settings.appearance.mobileNav.underMore': 'Sota «Més»',
|
||
'settings.appearance.mobileNav.moreEmpty': 'Encara no hi ha res — tot cap a la barra.',
|
||
'settings.appearance.mobileNav.pinned': 'Fixat',
|
||
'settings.appearance.mobileNav.toMore': 'Mou-ho sota «Més»',
|
||
'settings.appearance.mobileNav.toBar': 'Mou-ho a la barra',
|
||
'settings.appearance.dashOrder': 'Ordre del tauler',
|
||
'settings.appearance.dashOrder.hint':
|
||
'Reordena com s’apilen la llista de viatges i els ginys al tauler del mòbil. El viatge destacat sempre es manté a dalt.',
|
||
'settings.appearance.dashOrder.trips': 'Viatges',
|
||
'settings.appearance.dashOrder.hidden': 'Ocult',
|
||
'settings.general.languageRegion': 'Idioma i regió',
|
||
'settings.general.travelMap': 'Viatge i mapa',
|
||
'settings.offline.cache.title': 'Memòria cau fora de línia',
|
||
'settings.offline.mode.title': 'Mode fora de línia',
|
||
'settings.offline.mode.force': 'Forçar mode fora de línia',
|
||
'settings.offline.mode.forceHint':
|
||
'Treballa només amb dades de la memòria cau i posa en cua els teus canvis. Desactiva-ho per tornar-te a connectar i sincronitzar.',
|
||
'settings.offline.mode.active':
|
||
'El mode fora de línia està activat — els teus canvis estan a la cua i es sincronitzaran quan el desactivis.',
|
||
'settings.offline.prepare.title': "Preparar per a l'ús fora de línia",
|
||
'settings.offline.prepare.hint':
|
||
'Descarrega tot el que necessitis — dades del viatge, documents i tessel·les de mapes — abans de perdre la connexió.',
|
||
'settings.offline.prepare.button': 'Descarregar per a ús fora de línia',
|
||
'settings.offline.prepare.running': 'Descarregant…',
|
||
'settings.offline.prepare.done': "Llest per a l'ús fora de línia",
|
||
'settings.offline.prepare.phase.trips': 'Dades del viatge',
|
||
'settings.offline.prepare.phase.files': 'Documents',
|
||
'settings.offline.prepare.phase.tiles': 'Tessel·les de mapes',
|
||
'settings.offline.resync': 'Sincronitzar ara',
|
||
'settings.offline.resyncing': 'Sincronitzant…',
|
||
'settings.offline.storage.title': 'Què desar fora de línia',
|
||
'settings.offline.storage.tiles': 'Desar tessel·les de mapes fora de línia',
|
||
'settings.offline.storage.tilesHint':
|
||
'Les tessel·les de mapes són les que utilitzen més emmagatzematge. Desactiva-ho per mantenir només les dades del viatge i els documents fora de línia.',
|
||
'settings.offline.storage.tripsTitle': 'Viatges',
|
||
'settings.offline.storage.tripOn': 'Desat fora de línia',
|
||
'settings.offline.storage.tripOff': 'No desat',
|
||
'settings.offline.clear': 'Netejar memòria cau',
|
||
'settings.offline.clearConfirm':
|
||
'Vols netejar totes les dades de viatge fora de línia? Pots tornar a sincronitzar en qualsevol moment mentre estiguis connectat.',
|
||
'settings.offline.stats.trips': 'Viatges a la memòria cau',
|
||
'settings.offline.stats.pending': 'Canvis pendents',
|
||
'settings.offline.stats.failed': 'Canvis fallits',
|
||
'settings.offline.stats.conflicts': 'Conflictes',
|
||
'settings.offline.empty': "Encara no hi ha cap viatge a la memòria cau. Connecta't a internet per sincronitzar.",
|
||
'settings.offline.loading': 'Carregant…',
|
||
'settings.offline.conflicts.title': 'Conflictes de sincronització',
|
||
'settings.offline.conflicts.hint':
|
||
'Els canvis que has fet fora de línia entren en conflicte amb canvis més recents al servidor. Tria quina versió vols conservar.',
|
||
'settings.offline.conflicts.keepMine': 'Mantenir la meva',
|
||
'settings.offline.conflicts.keepServer': 'Mantenir la seva',
|
||
'settings.offline.conflicts.mine': 'La teva versió',
|
||
'settings.offline.conflicts.server': 'Versió del servidor',
|
||
'settings.offline.conflicts.item': 'Canvi a “{name}”',
|
||
'settings.offline.conflicts.strategyTitle': 'Quan es produeix un conflicte',
|
||
'settings.offline.conflicts.strategy.ask': "Pregunta'm cada vegada",
|
||
'settings.offline.conflicts.strategy.mine': 'Mantingues sempre la meva versió',
|
||
'settings.offline.conflicts.strategy.server': 'Mantingues sempre la versió del servidor',
|
||
'settings.offline.banner.offline': 'Fora de línia',
|
||
'settings.offline.banner.forced': 'Mode fora de línia',
|
||
'settings.offline.banner.queued': 'Fora de línia · {count} a la cua',
|
||
'settings.offline.banner.syncing': 'Sincronitzant {count}…',
|
||
'settings.offline.banner.failed': 'Error en sincronitzar: {count}',
|
||
'settings.offline.banner.conflicts': 'Conflictes: {count}',
|
||
'settings.plugins.oauth.connected': 'Connectat',
|
||
'settings.plugins.oauth.notConnected': 'No connectat',
|
||
'settings.plugins.oauth.connect': 'Connecta',
|
||
'settings.plugins.oauth.disconnect': 'Desconnecta',
|
||
'settings.tabs.plugins': 'Connectors',
|
||
'settings.plugins.title': 'Configuració dels connectors',
|
||
'settings.plugins.subtitle':
|
||
'La teva configuració personal per als connectors que fas servir (claus API, preferències).',
|
||
'settings.plugins.empty': 'No hi ha cap connector actiu.',
|
||
'settings.plugins.saved': 'Configuració desada',
|
||
'settings.pluginActivity.title': 'Activitat dels connectors',
|
||
'settings.pluginActivity.description': 'Cada acció que un connector ha fet en nom teu, les més recents primer.',
|
||
'settings.pluginActivity.empty': 'Encara no hi ha activitat de connectors.',
|
||
'settings.pluginActivity.refresh': 'Actualitza',
|
||
'settings.pluginActivity.columns.plugin': 'Connector',
|
||
'settings.pluginActivity.columns.action': 'Acció',
|
||
'settings.pluginActivity.columns.resource': 'Recurs',
|
||
'settings.pluginActivity.columns.when': 'Quan',
|
||
'settings.pluginActivity.columns.status': 'Resultat',
|
||
'settings.notificationPreferences.notConfigured':
|
||
"Encara no s'ha configurat — configura-ho als ajustos del connector",
|
||
'settings.plugins.actions': 'Accions',
|
||
'settings.plugins.actions.confirm': 'Vols executar aquesta acció?',
|
||
'settings.notificationPreferences.sendTest': 'Envia una prova',
|
||
'settings.notificationPreferences.configure': 'Configura',
|
||
'settings.notificationPreferences.testSuccess': 'Notificació de prova enviada.',
|
||
'settings.notificationPreferences.testFailed': 'La prova ha fallat.',
|
||
'settings.notificationPreferences.pluginConfigured':
|
||
'Configurat. Gestiona les credencials a la configuració del connector.',
|
||
'settings.currencyTrip': 'Divisa del viatge',
|
||
'settings.alwaysShowRoutes': 'Mostra sempre les rutes de reserva',
|
||
'settings.alwaysShowRoutesHint':
|
||
'Dibuixa automàticament al mapa la ruta de cada vol, tren i altra reserva — no cal activar-la una per una.',
|
||
};
|
||
|
||
export default settings;
|