536 lines
30 KiB
JavaScript
536 lines
30 KiB
JavaScript
const ca = {
|
||
// BottomNav
|
||
'nav.home': 'Inici',
|
||
'nav.search': 'Cercar',
|
||
'nav.scan': 'Escanejar',
|
||
'nav.alerts': 'Alertes',
|
||
'nav.profile': 'Usuari',
|
||
|
||
// HomeView
|
||
'home.description': 'Trobeu els vostres medicaments a farmàcies properes',
|
||
'home.searchMedicine': 'Cercar Medicament',
|
||
'home.scanTSI': 'Escanejar TSI',
|
||
|
||
// SearchBar
|
||
'search.placeholder': 'Escriviu el nom del medicament',
|
||
'search.clear': 'Netejar cerca',
|
||
|
||
// SearchView
|
||
'search.suggestions': 'Suggeriments',
|
||
'search.recentResults': 'Resultats Recents',
|
||
'search.findNearby': 'Cerca a prop teu',
|
||
'search.resultsFound': 'resultats trobats',
|
||
'search.parapharmacy': 'Parafarmàcia',
|
||
'search.activeIngredient': 'Principi Actiu',
|
||
'search.dosage': 'Dosificació',
|
||
'search.form': 'Forma',
|
||
'search.backToSearch': '← Tornar a la cerca',
|
||
'search.sortByDistance': '📍 Ordenar per distància',
|
||
'search.sortBySavedLocation': '📍 Ordenar per ubicació desada',
|
||
'search.sortedByDistance': '📍 Ordenat per distància · Restablir',
|
||
'search.locating': '📍 Localitzant…',
|
||
'search.usingSavedAddress': 'Usant la vostra adreça desada',
|
||
'search.usingRecentLocation': 'Usant ubicació recent',
|
||
'search.retry': 'Tornar a provar',
|
||
'search.locationDenied': 'Permís d\'ubicació denegat. Permeteu l\'accés a la ubicació al vostre navegador.',
|
||
'search.locationUnavailable': 'Ubicació no disponible. Verifiqueu que el GPS estigui activat.',
|
||
'search.locationTimeout': 'L\'ubicació ha trigat massa. Torneu-ho a provar o verifiqueu la vostra connexió.',
|
||
'search.locationError': 'No s\'ha pogut obtenir la vostra ubicació',
|
||
'search.searching': 'Cercant...',
|
||
|
||
// MedicineResults
|
||
'medicine.noResults': 'No s\'han trobat medicaments per a',
|
||
'medicine.principioActivo': 'Principi Actiu:',
|
||
'medicine.dosis': 'Dosificació:',
|
||
'medicine.forma': 'Forma:',
|
||
'medicine.viewPharmacies': 'Veure farmàcies →',
|
||
'medicine.loginForNotifications': 'Inicieu sessió per activar notificacions',
|
||
'medicine.disableNotifications': 'Desactivar notificacions per a aquest medicament',
|
||
'medicine.enableNotifications': 'Notificar-me quan estigui disponible',
|
||
'medicine.notificationsActivated': 'Notificacions activades — clic per desactivar',
|
||
'medicine.notifyWhenAvailable': 'Notificar-me quan aquest medicament estigui a una farmàcia',
|
||
'medicine.subscriptionError': 'No s\'ha pogut actualitzar la subscripció',
|
||
|
||
// PharmacyList
|
||
'pharmacy.loading': 'Carregant farmàcies...',
|
||
'pharmacy.notFound': 'No s\'han trobat farmàcies amb aquest medicament',
|
||
'pharmacy.availableAt': 'Disponible a',
|
||
'pharmacy.pharmacy': 'farmàcia',
|
||
'pharmacy.pharmacies': 'farmàcies',
|
||
'pharmacy.howToGet': 'Com arribar',
|
||
'pharmacy.inStock': '✓ En Estoc',
|
||
'pharmacy.lowStock': '⚠ Estoc Baix',
|
||
'pharmacy.outOfStock': '✗ Sense Estoc',
|
||
'pharmacy.loginForNotifications': 'Inicieu sessió per activar notificacions',
|
||
'pharmacy.disableNotificationsPharmacy': 'Desactivar notificacions per a aquesta farmàcia',
|
||
'pharmacy.notifyWhenArrives': 'Notificar-me quan arribi a aquesta farmàcia',
|
||
'pharmacy.notificationsActivatedPharmacy': 'Notificacions activades per a aquesta farmàcia — clic per desactivar',
|
||
'pharmacy.notificationsRequired': 'Les notificacions requereixen iOS 16.4+ i aquest lloc instal·lat com a app (Compartir → Afegir a Pantalla d\'Inici).',
|
||
'pharmacy.openNow': 'Obert · Tanca a les {{time}}',
|
||
'pharmacy.closedAllDay': 'Tancat',
|
||
'pharmacy.opensAt': 'Tancat · Obre a les {{time}}',
|
||
'pharmacy.opensTomorrow': 'Tancat · Obre demà a les {{time}}',
|
||
'pharmacy.opensDay': 'Tancat · Obre el {{day}} a les {{time}}',
|
||
'pharmacy.alwaysOpen': 'Obert 24h',
|
||
'pharmacy.filterOpenNow': 'Mostrar només obertes ara',
|
||
'pharmacy.filterOpenNowActive': 'Només obertes ara',
|
||
'pharmacy.badge24h': '24h',
|
||
'pharmacy.noHours': 'Sense horari disponible',
|
||
'pharmacy.filterNoResults': 'Cap farmàcia oberta ara. Desactiva el filtre per veure-les totes.',
|
||
|
||
// ProductResults
|
||
'product.sinReceta': 'Sense Recepta',
|
||
'product.parapharmacy': 'Parafarmàcia',
|
||
'product.dermocosmetica': 'Dermocosmètica',
|
||
'product.formulasLacteas': 'Fórmules Làctees',
|
||
'product.vitamins': 'Vitamines',
|
||
'product.analgesics': 'Analgèsics',
|
||
'product.noResults': 'No s\'han trobat productes',
|
||
'product.brand': 'Marca:',
|
||
'product.price': 'Preu:',
|
||
'product.activeIngredient': 'Principi Actiu:',
|
||
'product.dosage': 'Dosificació:',
|
||
'product.viewDetails': 'Veure detalls →',
|
||
|
||
// ProductView (detail)
|
||
'productView.loading': 'Carregant...',
|
||
'productView.back': 'Tornar',
|
||
'productView.notFound': 'Producte no trobat',
|
||
'productView.parapharmacy': 'Parafarmàcia',
|
||
'productView.activeIngredient': 'Principi actiu',
|
||
'productView.dosage': 'Dosificació',
|
||
'productView.form': 'Forma farmacèutica',
|
||
'productView.prescription': 'Prescripció',
|
||
'productView.commercialized': 'Comercialitzat',
|
||
'productView.yes': 'Sí',
|
||
'productView.no': 'No',
|
||
'productView.price': 'Preu',
|
||
'productView.previousPrice': 'Preu anterior',
|
||
'productView.category': 'Categoria',
|
||
'productView.brand': 'Marca',
|
||
'productView.source': 'Font',
|
||
'productView.loadingPharmacies': 'Carregant farmàcies...',
|
||
'productView.availableInPharmacies': 'Disponible a {{count}} farmàcia/es',
|
||
'productView.locating': '📍 Localitzant…',
|
||
'productView.sortedByDistance': '📍 Ordenat per distància · Restablir',
|
||
'productView.sortByDistance': '📍 Ordenar per distància',
|
||
'productView.usingLocation': 'Usant la vostra ubicació',
|
||
'productView.retry': 'Tornar a provar',
|
||
'productView.productNotFound': 'Producte no trobat',
|
||
|
||
// LoginModal
|
||
'login.login': 'Iniciar sessió',
|
||
'login.register': 'Crear compte',
|
||
'login.welcomeBack': 'Benvingut de nou',
|
||
'login.createAccount': 'Crea el teu compte',
|
||
'login.registerDescription': 'Desa la teva adreça i rep notificacions quan arribin medicaments.',
|
||
'login.loginDescription': 'Inicia sessió per gestionar el teu perfil i notificacions.',
|
||
'login.username': 'Usuari',
|
||
'login.usernameHint': '3–32 caràcters: lletres, dígits o guió baix.',
|
||
'login.password': 'Contrasenya',
|
||
'login.passwordHint': 'Almenys 8 caràcters.',
|
||
'login.cancel': 'Cancel·lar',
|
||
'login.creating': 'Creant…',
|
||
'login.loggingIn': 'Iniciant sessió…',
|
||
'login.createAccountBtn': 'Crear compte',
|
||
'login.loginBtn': 'Iniciar sessió',
|
||
'login.passwordError': 'La contrasenya ha de tenir almenys 8 caràcters',
|
||
'login.registerError': 'No s\'ha pogut crear el compte',
|
||
'login.loginError': 'Error d\'inici de sessió',
|
||
'login.networkError': 'Error de xarxa — torneu-ho a provar',
|
||
|
||
// AlertsView
|
||
'alerts.title': 'Les Meves Alertes',
|
||
'alerts.subtitle': 'Mantingueu-vos al dia amb els vostres medicaments.',
|
||
'alerts.loading': 'Carregant alertes...',
|
||
'alerts.loginRequired': 'Si us plau, inicieu sessió per veure les vostres alertes.',
|
||
'alerts.loadError': 'No s\'han pogut carregar les alertes.',
|
||
'alerts.availability': 'Disponibilitat',
|
||
'alerts.noSubscriptions': 'No teniu subscripcions de disponibilitat.',
|
||
'alerts.notifyWhenAvailable': 'Notificar-me quan estigui disponible',
|
||
'alerts.deleteError': 'No s\'ha pogut eliminar l\'alerta de disponibilitat.',
|
||
'alerts.pharmacy': 'Farmàcia',
|
||
|
||
// ScannerView
|
||
'scanner.title': 'Escanejar TSI',
|
||
'scanner.description': 'Escanegeu el codi de barres de la vostra targeta sanitària per veure les vostres receptes actives',
|
||
'scanner.openCamera': 'Obrir càmera',
|
||
'scanner.orUploadPhoto': 'O pugeu una foto de la vostra TSI',
|
||
'scanner.takePhoto': 'Fer foto',
|
||
'scanner.uploadFromGallery': 'Pujar de galeria',
|
||
'scanner.scanImage': 'Escanejar imatge',
|
||
'scanner.discard': 'Descartar',
|
||
'scanner.enterCIP': 'O introduïu el codi CIP manualment',
|
||
'scanner.cipPlaceholder': 'Codi CIP de 16 dígits',
|
||
'scanner.search': 'Cercar',
|
||
'scanner.scanning': 'Apunteu al codi de barres',
|
||
'scanner.openingCamera': 'Obrint càmera…',
|
||
'scanner.processingImage': 'Processant imatge…',
|
||
'scanner.tsiScanned': 'TSI Escanejada',
|
||
'scanner.activePrescriptions': 'Receptes Actives',
|
||
'scanner.tapToFind': 'Toqueu un medicament per veure disponibilitat a farmàcies properes.',
|
||
'scanner.loadingPrescriptions': 'Carregant receptes…',
|
||
'scanner.noPrescriptions': 'No s\'han trobat receptes actives per a aquesta targeta.',
|
||
'scanner.scanAnother': 'Escanejar una altra targeta',
|
||
'scanner.tryAgain': 'Tornar a provar',
|
||
'scanner.scannerUnavailable': 'L\'escàner no està disponible en aquest dispositiu.',
|
||
'scanner.cameraPermissionDenied': 'Permís de càmera denegat. Activeu-lo a la configuració o introduïu el codi CIP manualment.',
|
||
'scanner.invalidBarcode': 'Codi de barres invàlid. Torneu-ho a provar o introduïu el CIP manualment.',
|
||
'scanner.cameraNotAvailable': 'Càmera no disponible en aquest navegador.',
|
||
'scanner.invalidCIP': 'Format CIP invàlid. Ha de tenir 16 caràcters alfanumèrics.',
|
||
'scanner.enterCIPError': 'Introduïu un codi CIP.',
|
||
'scanner.cameraPermissionWeb': 'Permís de càmera denegat. Permeteu l\'accés i torneu-ho a provar.',
|
||
'scanner.noCamera': 'No s\'ha detectat cap càmera. Introduïu el codi CIP manualment.',
|
||
'scanner.imageReadError': 'No s\'ha pogut llegir la imatge. Proveu amb una altra foto.',
|
||
'scanner.invalidCIPDetected': 'CIP detectat no té format vàlid. Introduïu el codi manualment.',
|
||
'scanner.scanError': 'Error en escanejar:',
|
||
'scanner.unknownError': 'Error desconegut',
|
||
'scanner.cameraError': 'Error de càmera:',
|
||
'scanner.imageProcessError': 'Error en processar la imatge:',
|
||
|
||
// ProfileView
|
||
'profile.name': 'Nom',
|
||
'profile.lastName': 'Cognoms',
|
||
'profile.config': 'Configuració',
|
||
'profile.myAddresses': 'Les Meves Adreces',
|
||
'profile.theme': 'Tema',
|
||
'profile.themeAuto': 'Automàtic',
|
||
'profile.themeLight': 'Clar',
|
||
'profile.themeDark': 'Fosc',
|
||
'profile.admin': 'Panell d\'Administració',
|
||
'profile.logout': 'Tancar Sessió',
|
||
'profile.uploadingPhoto': 'Pujant foto...',
|
||
'profile.recentSearches': 'Les vostres cerques recents:',
|
||
'profile.delete': 'Eliminar',
|
||
'profile.changeAvatar': 'Canviar Avatar',
|
||
'profile.presetAvatar': 'Predissenyat',
|
||
'profile.colors': 'Colors',
|
||
'profile.upload': 'Pujar',
|
||
'profile.chooseFromGallery': 'Trieu de galeria',
|
||
'profile.selectExistingImage': 'Seleccioneu una imatge existent',
|
||
'profile.imageTooBig': 'La imatge no pot superar els 5 MB',
|
||
'profile.imageSaveError': 'Error en desar la imatge. Proveu amb una altra foto.',
|
||
'profile.imageConnectionError': 'Error de connexió en desar la imatge.',
|
||
'profile.imageProcessError': 'Error en processar la imatge.',
|
||
'profile.configTitle': 'Configuració',
|
||
'profile.firstName': 'Nom',
|
||
'profile.firstNamePlaceholder': 'El vostre nom',
|
||
'profile.lastNamePlaceholder': 'Els vostres cognoms',
|
||
'profile.email': 'Correu electrònic',
|
||
'profile.emailPlaceholder': 'el_vostre@email.com',
|
||
'profile.city': 'Ciutat',
|
||
'profile.cityPlaceholder': 'La vostra ciutat',
|
||
'profile.address': 'Adreça',
|
||
'profile.addressPlaceholder': 'Carrer Major 1, Barcelona',
|
||
'profile.cancel': 'Cancel·lar',
|
||
'profile.saving': 'Desant...',
|
||
'profile.save': 'Desar',
|
||
'profile.profileSaved': 'Perfil desat.',
|
||
'profile.saveError': 'Error en desar',
|
||
'profile.addressesTitle': 'Les Meves Adreces',
|
||
'profile.addressLabel': 'Adreça',
|
||
'profile.addressOptional': 'Etiqueta (opcional)',
|
||
'profile.addressLabelPlaceholder': 'Ex: Casa, Treball, Segona residència',
|
||
'profile.defaultAddress': 'Adreça predeterminada',
|
||
'profile.add': 'Afegir',
|
||
'profile.update': 'Actualitzar',
|
||
'profile.loadingAddresses': 'Carregant adreces...',
|
||
'profile.mainAddress': 'Adreça principal',
|
||
'profile.default': 'Predeterminada',
|
||
'profile.setDefault': 'Establir com a predeterminada',
|
||
'profile.addMore': 'Afegir més',
|
||
'profile.addressRequired': 'L\'adreça és obligatòria',
|
||
'profile.addressSaveError': 'Error en desar l\'adreça',
|
||
'profile.themeTitle': 'Tema de visualització',
|
||
'profile.themeDescription': 'Trieu com es veu l\'aplicació. En mode automàtic, s\'adapta al tema del vostre dispositiu.',
|
||
'profile.themeAutoDesc': 'Seguir sistema',
|
||
'profile.themeLightDesc': 'Sempre clar',
|
||
'profile.themeDarkDesc': 'Sempre fosc',
|
||
'profile.language': 'Idioma',
|
||
'profile.languageTitle': 'Idioma de l\'aplicació',
|
||
'profile.languageCatalan': 'Català',
|
||
'profile.languageSpanish': 'Castellà',
|
||
|
||
// ForgotPasswordModal
|
||
'forgot.title': 'Problemes per accedir?',
|
||
'forgot.subtitle': 'Tria què necessites recuperar',
|
||
'forgot.password': 'He oblidat la meva contrasenya',
|
||
'forgot.passwordDesc': 'T\'enviarem un enllaç per crear-ne una de nova',
|
||
'forgot.username': 'He oblidat el meu usuari',
|
||
'forgot.usernameDesc': 'T\'enviarem el teu nom d\'usuari',
|
||
'forgot.resetTitle': 'Restablir contrasenya',
|
||
'forgot.resetDesc': 'Introdueix el teu correu electrònic i t\'enviarem un enllaç per crear una nova contrasenya.',
|
||
'forgot.usernameTitle': 'Recuperar usuari',
|
||
'forgot.usernameDesc2': 'Introdueix el teu correu electrònic i t\'enviarem el teu nom d\'usuari.',
|
||
'forgot.email': 'Correu electrònic',
|
||
'forgot.emailPlaceholder': 'el_teu@email.com',
|
||
'forgot.send': 'Enviar',
|
||
'forgot.sending': 'Enviant...',
|
||
'forgot.cancel': 'Cancel·lar',
|
||
'forgot.back': 'Tornar',
|
||
'forgot.backToLogin': 'Tornar a iniciar sessió',
|
||
'forgot.sentTitle': 'Correu enviat',
|
||
'forgot.sentText': 'Si l\'adreça de correu existeix a la nostra base de dades, rebràs un missatge en uns minuts. Revisa la teva safata d\'entrada.',
|
||
'forgot.close': 'Tancar',
|
||
'forgot.error': 'Error en processar la sol·licitud',
|
||
'forgot.forgotPassword': 'Has oblidat la contrasenya?',
|
||
'forgot.forgotUsername': 'Has oblidat l\'usuari?',
|
||
|
||
// ResetPasswordView
|
||
'reset.title': 'Crear nova contrasenya',
|
||
'reset.subtitle': 'Introdueix la teva nova contrasenya',
|
||
'reset.newPassword': 'Nova contrasenya',
|
||
'reset.confirmPassword': 'Confirmar contrasenya',
|
||
'reset.saveBtn': 'Canviar contrasenya',
|
||
'reset.saving': 'Desant...',
|
||
'reset.passwordsDontMatch': 'Les contrasenyes no coincideixen',
|
||
'reset.successTitle': 'Contrasenya actualitzada',
|
||
'reset.successText': 'La teva contrasenya s\'ha actualitzat correctament. Ja pots iniciar sessió amb la teva nova contrasenya.',
|
||
'reset.goToLogin': 'Anar a iniciar sessió',
|
||
'reset.error': 'Error en restablir la contrasenya',
|
||
'reset.invalidToken': 'Enllaç invàlid o caducat. Sol·licita un nou restabliment de contrasenya.',
|
||
|
||
// SavedNotifications
|
||
'savedNotifications.title': '🔔 Notificacions Desades',
|
||
'savedNotifications.close': 'Tancar',
|
||
'savedNotifications.loading': 'Carregant…',
|
||
'savedNotifications.empty': 'Encara no hi ha notificacions desades. Toqueu la campana 🔕 a una farmàcia sense estoc per rebre notificacions quan es reposi.',
|
||
'savedNotifications.anyPharmacy': 'Qualsevol farmàcia',
|
||
'savedNotifications.delete': 'Eliminar notificació',
|
||
'savedNotifications.loadError': 'No s\'han pogut carregar les notificacions desades',
|
||
'savedNotifications.deleteError': 'No s\'ha pogut eliminar la notificació',
|
||
|
||
// ErrorBoundary
|
||
'error.title': 'Alguna cosa ha fallat',
|
||
'error.description': 'Ha ocorregut un error inesperat. Si us plau, recarregueu la pàgina.',
|
||
'error.reload': 'Recarregar',
|
||
|
||
// AdminView
|
||
'admin.title': '⚙️ Panell d\'Administració',
|
||
'admin.authRequired': 'Autenticació requerida',
|
||
'admin.managePharmacies': 'Gestioneu farmàcies i medicaments',
|
||
'admin.logout': 'Tancar sessió',
|
||
'admin.checkingAuth': 'Comprovant autenticació...',
|
||
'admin.pharmacies': '🏥 Farmàcies',
|
||
'admin.medicines': '💊 Medicaments',
|
||
'admin.linkMedicine': '🔗 Vincular Medicament a Farmàcia',
|
||
'admin.linkProduct': '🍎 Vincular Producte a Farmàcia',
|
||
|
||
// LoginForm
|
||
'admin.login.title': '🔐 Accés Administració',
|
||
'admin.login.description': 'Introduïu les vostres credencials per accedir al panell d\'administració',
|
||
'admin.login.username': 'Usuari',
|
||
'admin.login.usernamePlaceholder': 'Introduïu usuari',
|
||
'admin.login.password': 'Contrasenya',
|
||
'admin.login.passwordPlaceholder': 'Introduïu contrasenya',
|
||
'admin.login.loggingIn': 'Iniciant sessió...',
|
||
'admin.login.loginBtn': 'Iniciar sessió',
|
||
'admin.login.defaultCredentials': 'Credencials per defecte:',
|
||
'admin.login.changePasswordWarning': '⚠️ Canvieu la contrasenya per defecte després del primer inici de sessió!',
|
||
'admin.login.failed': 'Error d\'inici de sessió',
|
||
'admin.login.invalidCredentials': 'Usuari o contrasenya invàlids',
|
||
|
||
// PharmacyManagement
|
||
'admin.pharmacy.title': 'Gestionar Farmàcies',
|
||
'admin.pharmacy.addNew': '+ Afegir Nova Farmàcia',
|
||
'admin.pharmacy.edit': 'Editar Farmàcia',
|
||
'admin.pharmacy.add': 'Afegir Nova Farmàcia',
|
||
'admin.pharmacy.name': 'Nom *',
|
||
'admin.pharmacy.address': 'Adreça *',
|
||
'admin.pharmacy.phone': 'Telèfon',
|
||
'admin.pharmacy.latitude': 'Latitud',
|
||
'admin.pharmacy.longitude': 'Longitud',
|
||
'admin.pharmacy.openingHours': 'Horari d\'obertura',
|
||
'admin.pharmacy.closed': 'Tancat',
|
||
'admin.pharmacy.opensAt': 'obre a les',
|
||
'admin.pharmacy.closesAt': 'tanca a les',
|
||
'admin.pharmacy.saving': 'Desant...',
|
||
'admin.pharmacy.update': 'Actualitzar',
|
||
'admin.pharmacy.create': 'Afegir',
|
||
'admin.pharmacy.cancel': 'Cancel·lar',
|
||
'admin.pharmacy.loading': 'Carregant farmàcies...',
|
||
'admin.pharmacy.showing': 'Mostrant',
|
||
'admin.pharmacy.of': 'de',
|
||
'admin.pharmacy.withinRadio': '(dins del radi)',
|
||
'admin.pharmacy.empty': 'Encara no hi ha farmàcies. Importeu des de webhook o afegiu-ne una manualment.',
|
||
'admin.pharmacy.noResults': 'No hi ha farmàcies en aquest radi amb coordenades. Amplieu el radi, cerqueu una altra ciutat o desactiveu el filtre de regió.',
|
||
'admin.pharmacy.editBtn': 'Editar',
|
||
'admin.pharmacy.deleteBtn': 'Eliminar',
|
||
'admin.pharmacy.deleteConfirm': 'Esteu segur que voleu eliminar aquesta farmàcia?',
|
||
'admin.pharmacy.updated': 'Farmàcia actualitzada!',
|
||
'admin.pharmacy.created': 'Farmàcia afegida!',
|
||
'admin.pharmacy.deleted': 'Farmàcia eliminada!',
|
||
'admin.pharmacy.loadError': 'Error en carregar farmàcies',
|
||
'admin.pharmacy.updateError': 'Error en actualitzar farmàcia',
|
||
'admin.pharmacy.createError': 'Error en crear farmàcia',
|
||
'admin.pharmacy.deleteError': 'Error en eliminar farmàcia',
|
||
'admin.pharmacy.citySearch': 'Ciutat, regió i importació',
|
||
'admin.pharmacy.searchCity': 'Cercar ciutat',
|
||
'admin.pharmacy.chooseOne': 'Trieu-ne una',
|
||
'admin.pharmacy.openDataUrl': 'URL de dades obertes',
|
||
'admin.pharmacy.cityPlaceholder': 'Ex: Rubí, Madrid, València…',
|
||
'admin.pharmacy.searching': 'Cercant…',
|
||
'admin.pharmacy.areaPreset': 'Preset d\'àrea',
|
||
'admin.pharmacy.customCoordinates': 'Coordenades personalitzades',
|
||
'admin.pharmacy.areaExample': 'Exemple: Àrea de Rubí (1,5 km)',
|
||
'admin.pharmacy.enterCity': 'Introduïu una ciutat o lloc.',
|
||
'admin.pharmacy.setCoordinates': 'Establiu latitud, longitud i radi (useu Cercar ciutat o un preset).',
|
||
'admin.pharmacy.dataSource': 'Font de dades',
|
||
'admin.pharmacy.webhookLegacy': 'n8n webhook (heretat)',
|
||
'admin.pharmacy.openDataJson': 'URL de dades obertes JSON',
|
||
'admin.pharmacy.jsonUrl': 'URL JSON',
|
||
'admin.pharmacy.importing': 'Important…',
|
||
'admin.pharmacy.importWebhook': 'Importar des de webhook',
|
||
'admin.pharmacy.importUrl': 'Importar des d\'URL',
|
||
'admin.pharmacy.importFrom': 'Importar des de',
|
||
'admin.pharmacy.showWithinRadio': 'Mostrar només farmàcies dins del radi',
|
||
'admin.pharmacy.sessionExpired': 'Sessió expirada o no heu iniciat sessió. Inicieu sessió de nou al panell Admin i torneu-ho a provar.',
|
||
'admin.pharmacy.apiNotFound': 'L\'app no ha pogut connectar amb l\'API (404). Useu http://localhost:3000 amb frontend i backend actius.',
|
||
'admin.pharmacy.geocodificationNotFound': 'Servei de geocodificació no trobat. Actualitzeu el backend i reinicieu-lo.',
|
||
'admin.pharmacy.searchFailed': 'Cerca fallida (HTTP',
|
||
'admin.pharmacy.alwaysOpen': '24 hores (oberta tot el dia)',
|
||
'admin.pharmacy.confirmDisable24h': 'Desactivar 24h? Es descartaran els horaris actuals.',
|
||
'admin.pharmacy.dayClosed': 'Marqueu un dia com a Tancat si la farmàcia no obre aquest dia.',
|
||
'admin.pharmacy.saveError': 'Error en desar farmàcia',
|
||
'admin.pharmacy.radius': 'Radi (m)',
|
||
|
||
// MedicineManagement
|
||
'admin.medicine.title': 'Cercar Medicaments (API CIMA)',
|
||
'admin.medicine.description': 'Els medicaments s\'obtenen directament de la',
|
||
'admin.medicine.cimaApi': 'API de CIMA',
|
||
'admin.medicine.cimaDescription': '(Agència Espanyola de Medicaments i Productes Sanitaris).',
|
||
'admin.medicine.linkDescription': 'Cerqueu medicaments per vincular-los a farmàcies a la pestanya "Link Medicine".',
|
||
'admin.medicine.search': 'Cercar medicaments',
|
||
'admin.medicine.searchPlaceholder': 'Escriviu el nom d\'un medicament...',
|
||
'admin.medicine.searching': 'Cercant a API CIMA...',
|
||
'admin.medicine.found': 'S\'han trobat',
|
||
'admin.medicine.medications': 'medicaments',
|
||
'admin.medicine.activeIngredient': 'Principi Actiu:',
|
||
'admin.medicine.dosage': 'Dosificació:',
|
||
'admin.medicine.form': 'Forma:',
|
||
'admin.medicine.laboratory': 'Laboratori:',
|
||
'admin.medicine.registrationNumber': 'Nº Registre:',
|
||
'admin.medicine.generic': 'Genèric',
|
||
'admin.medicine.brand': 'Marca',
|
||
'admin.medicine.noResults': 'No s\'han trobat medicaments amb aquest nom.',
|
||
'admin.medicine.loadError': 'Error en cercar medicaments a l\'API CIMA',
|
||
|
||
// PharmacyMedicineLink
|
||
'admin.linkMedicine.title': 'Vincular Medicament a Farmàcia',
|
||
'admin.linkMedicine.pharmacy': 'Farmàcia *',
|
||
'admin.linkMedicine.searchPharmacy': 'Cercar entre',
|
||
'admin.linkMedicine.pharmacies': 'farmàcies per nom o adreça…',
|
||
'admin.linkMedicine.loadingPharmacies': 'Carregant farmàcies…',
|
||
'admin.linkMedicine.noPharmacies': 'No hi ha farmàcies que coincideixin amb',
|
||
'admin.linkMedicine.changePharmacy': 'Canviar farmàcia',
|
||
'admin.linkMedicine.medicine': 'Cercar Medicament (API CIMA) *',
|
||
'admin.linkMedicine.searchMedicine': 'Escriviu per cercar medicaments a CIMA...',
|
||
'admin.linkMedicine.searching': 'Cercant...',
|
||
'admin.linkMedicine.activeIngredient': 'Principi actiu:',
|
||
'admin.linkMedicine.dosage': 'Dosificació:',
|
||
'admin.linkMedicine.registrationNumber': 'Nº Registre:',
|
||
'admin.linkMedicine.changeMedicine': 'Canviar medicament',
|
||
'admin.linkMedicine.price': 'Preu (€)',
|
||
'admin.linkMedicine.stock': 'Estoc',
|
||
'admin.linkMedicine.linkBtn': 'Vincular Medicament',
|
||
'admin.linkMedicine.reset': 'Restablir',
|
||
'admin.linkMedicine.medicationsIn': 'Medicaments a',
|
||
'admin.linkMedicine.loading': 'Carregant...',
|
||
'admin.linkMedicine.empty': 'Encara no hi ha medicaments vinculats a aquesta farmàcia.',
|
||
'admin.linkMedicine.priceLabel': 'Preu:',
|
||
'admin.linkMedicine.undefined': 'No definit',
|
||
'admin.linkMedicine.newPrice': 'Introduïu nou preu:',
|
||
'admin.linkMedicine.newStock': 'Introduïu nou estoc:',
|
||
'admin.linkMedicine.update': 'Actualitzar',
|
||
'admin.linkMedicine.delete': 'Eliminar',
|
||
'admin.linkMedicine.selectMedicineFirst': 'Si us plau, seleccioneu un medicament primer',
|
||
'admin.linkMedicine.linkSuccess': 'Medicament vinculat a la farmàcia correctament!',
|
||
'admin.linkMedicine.linkError': 'Error en vincular medicament a farmàcia',
|
||
'admin.linkMedicine.updateSuccess': 'Actualitzat correctament!',
|
||
'admin.linkMedicine.updateError': 'Error en actualitzar',
|
||
'admin.linkMedicine.deleteConfirm': 'Eliminar aquest medicament de la farmàcia?',
|
||
'admin.linkMedicine.deleteSuccess': 'Medicament eliminat de la farmàcia!',
|
||
'admin.linkMedicine.deleteError': 'Error en eliminar medicament',
|
||
|
||
// PharmacyProductLink
|
||
'admin.linkProduct.title': 'Vincular Producte a Farmàcia',
|
||
'admin.linkProduct.pharmacy': 'Farmàcia *',
|
||
'admin.linkProduct.searchPharmacy': 'Cercar entre',
|
||
'admin.linkProduct.pharmacies': 'farmàcies per nom o adreça…',
|
||
'admin.linkProduct.loadingPharmacies': 'Carregant farmàcies…',
|
||
'admin.linkProduct.noPharmacies': 'No hi ha farmàcies que coincideixin amb',
|
||
'admin.linkProduct.changePharmacy': 'Canviar farmàcia',
|
||
'admin.linkProduct.product': 'Cercar Producte (CIMA / Parafarmàcia) *',
|
||
'admin.linkProduct.searchProduct': 'Escriviu per cercar medicaments o productes de parafarmàcia...',
|
||
'admin.linkProduct.searching': 'Cercant...',
|
||
'admin.linkProduct.brand': 'Marca:',
|
||
'admin.linkProduct.price': 'Preu:',
|
||
'admin.linkProduct.changeProduct': 'Canviar producte',
|
||
'admin.linkProduct.priceInput': 'Preu (€)',
|
||
'admin.linkProduct.stock': 'Estoc',
|
||
'admin.linkProduct.linkBtn': 'Vincular Producte',
|
||
'admin.linkProduct.reset': 'Restablir',
|
||
'admin.linkProduct.productsIn': 'Productes a',
|
||
'admin.linkProduct.loading': 'Carregant...',
|
||
'admin.linkProduct.empty': 'Encara no hi ha productes vinculats a aquesta farmàcia.',
|
||
'admin.linkProduct.priceLabel': 'Preu:',
|
||
'admin.linkProduct.undefined': 'No definit',
|
||
'admin.linkProduct.newPrice': 'Introduïu nou preu:',
|
||
'admin.linkProduct.newStock': 'Introduïu nou estoc:',
|
||
'admin.linkProduct.update': 'Actualitzar',
|
||
'admin.linkProduct.delete': 'Eliminar',
|
||
'admin.linkProduct.selectProductFirst': 'Si us plau, seleccioneu un producte primer',
|
||
'admin.linkProduct.linkSuccess': 'Producte vinculat a la farmàcia correctament!',
|
||
'admin.linkProduct.linkError': 'Error en vincular producte a farmàcia',
|
||
'admin.linkProduct.updateSuccess': 'Actualitzat correctament!',
|
||
'admin.linkProduct.updateError': 'Error en actualitzar',
|
||
'admin.linkProduct.deleteConfirm': 'Eliminar aquest producte de la farmàcia?',
|
||
'admin.linkProduct.deleteSuccess': 'Producte eliminat de la farmàcia!',
|
||
'admin.linkProduct.deleteError': 'Error en eliminar producte',
|
||
|
||
// Cookie Banner
|
||
'cookie_banner.title': 'Utilitzem cookies i dades personals',
|
||
'cookie_banner.description': 'Utilitzem cookies i tecnologies similars per millorar la teva experiència, analitzar l\'ús de l\'aplicació i, si ho permetes, escanejar la teva targeta sanitària per buscar les teves receptes.',
|
||
'cookie_banner.category.essential': 'Essencials',
|
||
'cookie_banner.category.essential_desc': 'Necessàries per al funcionament de l\'aplicació. No es poden desactivar.',
|
||
'cookie_banner.category.analytics': 'Analítica',
|
||
'cookie_banner.category.analytics_desc': 'Ens ajuden a entendre com s\'usa l\'aplicació per millorar-la.',
|
||
'cookie_banner.category.preferences': 'Preferències',
|
||
'cookie_banner.category.preferences_desc': 'Recordar el teu idioma, tema i cerques guardades.',
|
||
'cookie_banner.category.health_data': 'Dades de salut',
|
||
'cookie_banner.category.health_data_desc': 'Escaneig de targeta sanitària (TSI) per buscar receptes i medicaments.',
|
||
'cookie_banner.accept_all': 'Acceptar tot',
|
||
'cookie_banner.reject_optional': 'Rebutjar opcionals',
|
||
'cookie_banner.save': 'Desar',
|
||
'cookie_banner.more_info': 'Més informació',
|
||
// Health Consent Modal
|
||
'health_consent.title': 'Consentiment per a dades de salut',
|
||
'health_consent.description': 'Per escanejar la teva targeta sanitària (TSI), necessitem extreure el teu codi CIP i accedir a les teves receptes del sistema sanitari. Aquesta informació s\'usa únicament per buscar-te els medicaments de les teves receptes.',
|
||
'health_consent.accept': 'Acceptar i escanejar',
|
||
'health_consent.cancel': 'Cancel·lar',
|
||
// Privacy View
|
||
'privacy.title': 'Política de Privacitat',
|
||
'privacy.last_updated': 'Última actualització: 26/08/2026',
|
||
'privacy.section.controller.title': 'Responsable del Tractament',
|
||
'privacy.section.controller.content': 'Hacecalor S.L. és la responsable del tractament de les teves dades personals.',
|
||
'privacy.section.data_collected.title': 'Dades Recollides',
|
||
'privacy.section.data_collected.content': 'Recollim les següents dades:\n• Dades de perfil: nom d\'usuari, email, nom, cognoms, ciutat, avatar\n• Adreces: adreça física amb coordenades geogràfiques\n• Ubicació: ubicació en temps real per ordenar farmàcies per distància\n• Historial de cerques: medicaments i ubicacions buscats\n• Dades de salut: codi CIP de la teva targeta sanitària i receptes associades\n• Tokens de notificacions: per enviar-te avisos de disponibilitat de medicaments\n• Dades de sessió: identificador de sessió per mantenir-te connectat',
|
||
'privacy.section.purpose.title': 'Finalitat del Tractament',
|
||
'privacy.section.purpose.content': 'Les teves dades s\'utilitzen per:\n• Buscar medicaments i farmàcies properes\n• Gestionar el teu compte i preferències\n• Enviar-te notificacions de disponibilitat de medicaments\n• Escanejar la teva targeta sanitària per trobar les teves receptes\n• Millorar l\'aplicació mitjançant l\'anàlisi d\'ús',
|
||
'privacy.section.legal_basis.title': 'Base Legal',
|
||
'privacy.section.legal_basis.content': 'El tractament es basa en:\n• Consentiment explícit: dades de salut (targeta sanitària) i anàlisi d\'ús\n• Execució de contracte: gestió del teu compte i serveis sol·licitats\n• Interès legítim: seguretat de l\'aplicació i prevenció de frau',
|
||
'privacy.section.external_services.title': 'Serveis Externs',
|
||
'privacy.section.external_services.content': 'Utilitzem els següents serveis externs:\n• CIMA (Agència Espanyola de Medicaments): base de dades de medicaments\n• Grafana Faro: anàlisi d\'ús i rendiment de l\'aplicació\n• Nominatim/OpenStreetMap: geolocalització de farmàcies\n• N8N: automatització de processos interns\n• Proveïdor d\'email: enviament d\'emails de recuperació de contrasenya',
|
||
'privacy.section.retention.title': 'Conservació de Dades',
|
||
'privacy.section.retention.content': '• Sessones: 24 hores\n• Compte d\'usuari: fins que sol·licitis la seva eliminació\n• Registres de consentiment: 3 anys\n• Historial de cerques: 6 mesos\n• Dades d\'ubicació: s\'eliminen en tancar la sessió',
|
||
'privacy.section.rights.title': 'Els Teus Drets',
|
||
'privacy.section.rights.content': 'Tens dret a:\n• Accedir a les teves dades personals\n• Rectificar dades inexactes\n• Sol·licitar l\'eliminació de les teves dades\n• Portabilitat de dades\n• Oposar-te al tractament\n• Retirar el teu consentiment en qualsevol moment\n\nPer exercir aquests drets, contacta amb nosaltres a l\'adreça indicada a continuació.',
|
||
'privacy.section.contact.title': 'Contacte',
|
||
'privacy.section.contact.content': 'Per exercir els teus drets o consultar sobre el tractament de les teves dades, contacta amb Hacecalor S.L. a través de l\'adreça de email de suport de l\'aplicació.',
|
||
'privacy.section.cookies.title': 'Política de Cookies',
|
||
'privacy.section.cookies.content': 'Utilitzem les següents categories de cookies:\n• Essencials: necessàries per al funcionament de l\'app (sessió, autenticació)\n• Analítica: per mesurar l\'ús i rendiment de l\'app\n• Preferències: per recordar el teu idioma, tema i configuració\n• Dades de salut: per a l\'escaneig de targeta sanitària i receptes\n\nPots gestionar les teves preferències de cookies en qualsevol moment des de la configuració de l\'aplicació.',
|
||
'nav.privacy': 'Política de privacitat',
|
||
};
|
||
|
||
export default ca;
|