854de92be5
Run Tests on Branches / Detect Changes (push) Successful in 12s
Run Tests on Branches / Backend Tests (push) Has been skipped
Run Tests on Branches / Frontend Tests (push) Successful in 1m37s
Run Tests on Branches / Frontend Mobile Tests (push) Successful in 1m52s
Run Tests on Branches / Parapharmacy API Tests (push) Has been skipped
Run Tests on Branches / PIP Platform Tests (push) Has been skipped
- Mobile: Replace hardcoded Spanish in map.tsx with t() calls - Mobile: Add notification bell to parapharmacy product detail screen - Mobile: Add map/product i18n keys to es.js and ca.js locales - Web: Add useTranslation to ProductView.jsx, replace all hardcoded strings - Web: Add 24 productView.* translation keys to es.js and ca.js locales - Fix 'Disponible en X farmacias' to respect language setting
236 lines
10 KiB
JavaScript
236 lines
10 KiB
JavaScript
const es = {
|
|
// Tab bar
|
|
'nav.home': 'Inicio',
|
|
'nav.search': 'Buscar',
|
|
'nav.scan': 'Escanear',
|
|
'nav.alerts': 'Avisos',
|
|
'nav.profile': 'Perfil',
|
|
|
|
// Stack screens
|
|
'stack.medicine': 'Medicamento',
|
|
'stack.pharmacy': 'Farmacia',
|
|
'stack.scanner': 'Escanear',
|
|
'stack.login': 'Iniciar Sesión',
|
|
'stack.register': 'Registrarse',
|
|
|
|
// Login / Register
|
|
'login.tab.login': 'Iniciar Sesión',
|
|
'login.tab.register': 'Crear Cuenta',
|
|
'login.title.login': 'Bienvenido de nuevo',
|
|
'login.title.register': 'Crea tu cuenta',
|
|
'login.subtitle.login': 'Inicia sesión para gestionar tu perfil y notificaciones.',
|
|
'login.subtitle.register': 'Guarda tu dirección y recibe notificaciones cuando lleguen medicamentos.',
|
|
'login.username': 'Usuario',
|
|
'login.password': 'Contraseña',
|
|
'login.confirmPassword': 'Confirmar contraseña',
|
|
'login.hint.username': '3-32 caracteres para el usuario',
|
|
'login.hint.password': 'Mínimo 8 caracteres para la contraseña',
|
|
'login.biometric': 'Iniciar con biometría',
|
|
'login.link.toLogin': '¿Ya tienes cuenta? Inicia sesión',
|
|
'login.link.toRegister': '¿No tienes cuenta? Regístrate',
|
|
'login.alert.error': 'Error',
|
|
'login.alert.fillFields': 'Por favor completa todos los campos',
|
|
'login.alert.passwordLength': 'La contraseña debe tener al menos 8 caracteres',
|
|
'login.alert.passwordMismatch': 'Las contraseñas no coinciden',
|
|
'login.alert.success': 'Éxito',
|
|
'login.alert.accountCreated': 'Cuenta creada correctamente',
|
|
'login.alert.ok': 'OK',
|
|
'login.alert.createError': 'No se pudo crear la cuenta',
|
|
'login.alert.wrongCredentials': 'Credenciales incorrectas',
|
|
'login.alert.noBiometrics': 'No hay credenciales biométricas guardadas',
|
|
'login.alert.biometricFailed': 'Autenticación biométrica fallida',
|
|
'login.alert.biometricError': 'Error en la autenticación biométrica',
|
|
|
|
// Home
|
|
'home.description': 'Encuentra tus medicamentos en farmacias cercanas',
|
|
'home.searchMedicine': 'Buscar Medicamento',
|
|
'home.scanTSI': 'Escanear TSI',
|
|
|
|
// Search
|
|
'search.placeholder': 'Buscar medicamentos...',
|
|
'search.suggestions': 'Sugerencias',
|
|
'search.recentSearches': 'Búsquedas recientes',
|
|
'search.loading': 'Buscando...',
|
|
'search.noResults': 'No se encontraron resultados',
|
|
'search.resultsFound': 'resultados encontrados',
|
|
'search.parapharmacy': 'Parafarmacia',
|
|
'search.error': 'Error al buscar medicamentos',
|
|
|
|
// Map
|
|
'map.loadingPharmacies': 'Cargando farmacias...',
|
|
'map.pharmaciesOnMap': '{{count}} farmacias en el mapa',
|
|
|
|
// Scanner
|
|
'scanner.title': 'Escanear TSI',
|
|
'scanner.description': 'Escanea el código de barras de tu tarjeta sanitaria para encontrar tus medicamentos',
|
|
'scanner.startScan': 'Iniciar escaneo',
|
|
'scanner.or': 'o',
|
|
'scanner.uploadPhoto': 'Subir foto del dispositivo',
|
|
'scanner.uploadDescription': 'Toma o selecciona una foto del dispositivo sanitario',
|
|
'scanner.takePhoto': 'Tomar foto',
|
|
'scanner.gallery': 'Galería',
|
|
'scanner.photoSelected': 'Foto seleccionada correctamente',
|
|
'scanner.manualEntry': 'Introducir número manualmente',
|
|
'scanner.manualDescription': 'Escribe el número de tu tarjeta sanitaria',
|
|
'scanner.manualPlaceholder': 'Introduce el número de tarjeta',
|
|
'scanner.cameraPermission': 'Permiso de cámara requerido',
|
|
'scanner.cameraPermissionDesc': 'Necesitamos acceso a la cámara para tomar fotos del dispositivo.',
|
|
'scanner.galleryPermission': 'Permiso requerido',
|
|
'scanner.galleryPermissionDesc': 'Necesitamos acceso a la galería para seleccionar fotos.',
|
|
'scanner.fieldRequired': 'Campo requerido',
|
|
'scanner.fieldRequiredDesc': 'Por favor, introduce el número de la tarjeta.',
|
|
|
|
// Alerts
|
|
'alerts.title': 'Notificaciones Guardadas',
|
|
'alerts.description': 'Recibe avisos cuando medicamentos sin stock se repongan',
|
|
'alerts.loading': 'Cargando notificaciones...',
|
|
'alerts.loginRequired': 'Inicia sesión para continuar',
|
|
'alerts.loginDescription': 'Necesitas estar autenticado para ver tus notificaciones',
|
|
'alerts.loginBtn': 'Iniciar Sesión',
|
|
'alerts.empty': 'Sin notificaciones',
|
|
'alerts.emptyDescription': 'Toca la campana en una farmacia sin stock para recibir notificaciones cuando se reponga.',
|
|
'alerts.retry': 'Reintentar',
|
|
'alerts.delete': 'Eliminar notificación',
|
|
'alerts.deleteConfirm': '¿Eliminar la notificación de',
|
|
'alerts.cancel': 'Cancelar',
|
|
'alerts.confirmDelete': 'Eliminar',
|
|
'alerts.deleteError': 'No se pudo eliminar',
|
|
'alerts.loadError': 'No se pudieron cargar las notificaciones',
|
|
'alerts.pharmacy': 'Farmacia',
|
|
'alerts.anyPharmacy': 'Cualquier farmacia',
|
|
|
|
// Profile
|
|
'profile.title': 'Perfil',
|
|
'profile.loginTitle': 'Inicia Sesión',
|
|
'profile.loginDescription': 'Inicia sesión para acceder a tu perfil, notificaciones y más',
|
|
'profile.loginBtn': 'Iniciar Sesión',
|
|
'profile.personalData': 'Datos personales',
|
|
'profile.firstName': 'Nombre',
|
|
'profile.lastName': 'Apellidos',
|
|
'profile.appearance': 'Apariencia',
|
|
'profile.config': 'Configuración',
|
|
'profile.myAddresses': 'Mis Direcciones',
|
|
'profile.admin': 'Panel Admin',
|
|
'profile.recentSearches': 'Búsquedas recientes',
|
|
'profile.logout': 'Cerrar Sesión',
|
|
'profile.logoutConfirm': '¿Estás seguro que deseas cerrar sesión?',
|
|
'profile.logoutTitle': 'Cerrar Sesión',
|
|
'profile.logoutCancel': 'Cancelar',
|
|
'profile.logoutConfirmBtn': 'Cerrar Sesión',
|
|
'profile.changeAvatar': 'Cambiar Avatar',
|
|
'profile.presetAvatar': 'Prediseñado',
|
|
'profile.colors': 'Colores',
|
|
'profile.upload': 'Subir',
|
|
'profile.takePhoto': 'Tomar foto',
|
|
'profile.takePhotoDesc': 'Usa la cámara de tu dispositivo',
|
|
'profile.chooseGallery': 'Elegir de galería',
|
|
'profile.chooseGalleryDesc': 'Selecciona una imagen existente',
|
|
'profile.configTitle': 'Configuración',
|
|
'profile.firstNameLabel': 'Nombre',
|
|
'profile.firstNamePlaceholder': 'Tu nombre',
|
|
'profile.lastNameLabel': 'Apellidos',
|
|
'profile.lastNamePlaceholder': 'Tus apellidos',
|
|
'profile.email': 'Correo electrónico',
|
|
'profile.city': 'Ciudad',
|
|
'profile.cityPlaceholder': 'Tu ciudad',
|
|
'profile.address': 'Dirección',
|
|
'profile.addressPlaceholder': 'Calle Mayor 1, Madrid',
|
|
'profile.cancel': 'Cancelar',
|
|
'profile.save': 'Guardar',
|
|
'profile.profileSaved': 'Perfil guardado.',
|
|
'profile.saveError': 'Error al guardar',
|
|
'profile.addressRequired': 'La dirección es obligatoria',
|
|
'profile.addressesTitle': 'Mis Direcciones',
|
|
'profile.addressLabel': 'Dirección',
|
|
'profile.addressOptional': 'Etiqueta (opcional)',
|
|
'profile.addressLabelPlaceholder': 'Casa, Trabajo...',
|
|
'profile.defaultAddress': 'Dirección predeterminada',
|
|
'profile.update': 'Actualizar',
|
|
'profile.add': 'Añadir',
|
|
'profile.mainAddress': 'Principal',
|
|
'profile.setDefault': 'Marcar como predeterminada',
|
|
'profile.addAddress': 'Añadir dirección',
|
|
'profile.cameraPermission': 'Permiso requerido',
|
|
'profile.cameraPermissionDesc': 'Necesitamos permiso para acceder a la cámara.',
|
|
'profile.themeSystem': 'Sistema',
|
|
'profile.themeLight': 'Claro',
|
|
'profile.themeDark': 'Oscuro',
|
|
'profile.language': 'Idioma',
|
|
'profile.languageTitle': 'Idioma de la aplicación',
|
|
'profile.languageCatalan': 'Català',
|
|
'profile.languageSpanish': 'Castellano',
|
|
|
|
// Medicine detail
|
|
'medicine.loading': 'Cargando medicamento...',
|
|
'medicine.notFound': 'Medicamento no encontrado',
|
|
'medicine.activeIngredient': 'Principio activo',
|
|
'medicine.laboratory': 'Laboratorio',
|
|
'medicine.form': 'Forma farmacéutica',
|
|
'medicine.dosage': 'Dosificación',
|
|
'medicine.price': 'Precio',
|
|
'medicine.notAvailable': 'No disponible',
|
|
'medicine.registration': 'Registro',
|
|
'medicine.mapSoon': 'Mapa próximamente…',
|
|
'medicine.pharmacies': 'Farmacias',
|
|
'medicine.locating': 'Localizando…',
|
|
'medicine.distanceReset': 'Distancia · Reset',
|
|
'medicine.sortByDistance': 'Ordenar por distancia',
|
|
'medicine.retry': 'Reintentar',
|
|
'medicine.noPharmacies': 'No hay farmacias disponibles',
|
|
'medicine.checkPrice': 'Consultar precio',
|
|
'medicine.howToGet': 'Cómo llegar',
|
|
'medicine.locationDenied': 'Permiso de ubicación denegado',
|
|
'medicine.locationError': 'No se pudo obtener tu ubicación',
|
|
|
|
// Pharmacy detail
|
|
'pharmacy.loading': 'Cargando farmacia...',
|
|
'pharmacy.notFound': 'Farmacia no encontrada',
|
|
'pharmacy.call': 'Llamar',
|
|
'pharmacy.howToGet': 'Cómo llegar',
|
|
'pharmacy.medications': 'Medicamentos',
|
|
'pharmacy.noMedications': 'No hay medicamentos disponibles',
|
|
'pharmacy.reg': 'Reg: ',
|
|
'pharmacy.stock': 'Stock: ',
|
|
'pharmacy.notificationsActive': 'Notificaciones activas',
|
|
'pharmacy.notifyWhenAvailable': 'Notificarme cuando haya stock',
|
|
|
|
// Product detail
|
|
'product.loading': 'Cargando producto...',
|
|
'product.notFound': 'Producto no encontrado',
|
|
'product.noImage': 'Sin imagen',
|
|
'product.parapharmacy': 'Parafarmacia',
|
|
'product.cimaDetails': 'Detalles CIMA',
|
|
'product.activeIngredient': 'Principio activo',
|
|
'product.dosage': 'Dosificación',
|
|
'product.form': 'Forma farmacéutica',
|
|
'product.dispensation': 'Tipo de dispensación',
|
|
'product.commercialized': 'Comercializado',
|
|
'product.yes': 'Sí',
|
|
'product.no': 'No',
|
|
'product.productInfo': 'Información del producto',
|
|
'product.price': 'Precio',
|
|
'product.previousPrice': 'Precio anterior',
|
|
'product.category': 'Categoría',
|
|
'product.brand': 'Marca',
|
|
'product.source': 'Fuente',
|
|
'product.images': 'Imágenes',
|
|
'product.availableInPharmacies': 'Disponible en {{count}} farmacia(s)',
|
|
'product.notifyWhenAvailable': 'Notificarme cuando haya stock',
|
|
'product.notificationsActive': 'Notificaciones activas',
|
|
|
|
// Components
|
|
'medicineCard.noPrice': 'Sin precio',
|
|
'stockBadge.outOfStock': 'Sin stock',
|
|
'stockBadge.lowStock': 'Bajo',
|
|
'stockBadge.inStock': 'Disponible',
|
|
'loadingSpinner.loading': 'Cargando...',
|
|
'barcodeScanner.permissionRequired': 'Permiso de cámara requerido',
|
|
'barcodeScanner.permissionDesc': 'Necesitamos acceso a la cámara para escanear códigos de barras',
|
|
'barcodeScanner.grantPermission': 'Conceder permiso',
|
|
'barcodeScanner.cancel': 'Cancelar',
|
|
'barcodeScanner.scanningHint': 'Apunta la cámara al código de barras del medicamento',
|
|
'barcodeScanner.scanAgain': 'Escanear de nuevo',
|
|
};
|
|
|
|
export default es;
|