mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-22 23:01:48 +00:00
706548c45d
* feat(i18n): add spanish translation support * refactor(i18n): refine spanish copy for es-es * refactor(i18n): translate addon titles to spanish
1062 lines
50 KiB
JavaScript
1062 lines
50 KiB
JavaScript
const es = {
|
|
// Common
|
|
'common.save': 'Guardar',
|
|
'common.cancel': 'Cancelar',
|
|
'common.delete': 'Eliminar',
|
|
'common.edit': 'Editar',
|
|
'common.add': 'Añadir',
|
|
'common.loading': 'Cargando...',
|
|
'common.error': 'Error',
|
|
'common.back': 'Atrás',
|
|
'common.all': 'Todo',
|
|
'common.close': 'Cerrar',
|
|
'common.open': 'Abrir',
|
|
'common.upload': 'Subir',
|
|
'common.search': 'Buscar',
|
|
'common.confirm': 'Confirmar',
|
|
'common.ok': 'Aceptar',
|
|
'common.yes': 'Sí',
|
|
'common.no': 'No',
|
|
'common.or': 'o',
|
|
'common.none': 'Ninguno',
|
|
'common.date': 'Fecha',
|
|
'common.rename': 'Renombrar',
|
|
'common.name': 'Nombre',
|
|
'common.email': 'Correo',
|
|
'common.password': 'Contraseña',
|
|
'common.saving': 'Guardando...',
|
|
'common.update': 'Actualizar',
|
|
'common.change': 'Cambiar',
|
|
'common.uploading': 'Subiendo…',
|
|
'common.backToPlanning': 'Volver a la planificación',
|
|
'common.reset': 'Restablecer',
|
|
|
|
// Navbar
|
|
'nav.trip': 'Viaje',
|
|
'nav.share': 'Compartir',
|
|
'nav.settings': 'Ajustes',
|
|
'nav.admin': 'Administración',
|
|
'nav.logout': 'Cerrar sesión',
|
|
'nav.lightMode': 'Modo claro',
|
|
'nav.darkMode': 'Modo oscuro',
|
|
'nav.autoMode': 'Modo automático',
|
|
'nav.administrator': 'Administrador',
|
|
'nav.myTrips': 'Mis viajes',
|
|
|
|
// Dashboard
|
|
'dashboard.title': 'Mis viajes',
|
|
'dashboard.subtitle.loading': 'Cargando viajes...',
|
|
'dashboard.subtitle.trips': '{count} viajes ({archived} archivados)',
|
|
'dashboard.subtitle.empty': 'Empieza tu primer viaje',
|
|
'dashboard.subtitle.activeOne': '{count} viaje activo',
|
|
'dashboard.subtitle.activeMany': '{count} viajes activos',
|
|
'dashboard.subtitle.archivedSuffix': ' · {count} archivados',
|
|
'dashboard.newTrip': 'Nuevo viaje',
|
|
'dashboard.currency': 'Divisa',
|
|
'dashboard.timezone': 'Zonas horarias',
|
|
'dashboard.localTime': 'Hora local',
|
|
'dashboard.emptyTitle': 'Aún no hay viajes',
|
|
'dashboard.emptyText': 'Crea tu primer viaje y empieza a planificar',
|
|
'dashboard.emptyButton': 'Crear primer viaje',
|
|
'dashboard.nextTrip': 'Próximo viaje',
|
|
'dashboard.shared': 'Compartido',
|
|
'dashboard.sharedBy': 'Compartido por {name}',
|
|
'dashboard.days': 'Días',
|
|
'dashboard.places': 'Lugares',
|
|
'dashboard.archive': 'Archivar',
|
|
'dashboard.restore': 'Restaurar',
|
|
'dashboard.archived': 'Archivado',
|
|
'dashboard.status.ongoing': 'En curso',
|
|
'dashboard.status.today': 'Hoy',
|
|
'dashboard.status.tomorrow': 'Mañana',
|
|
'dashboard.status.past': 'Pasado',
|
|
'dashboard.status.daysLeft': 'Quedan {count} días',
|
|
'dashboard.toast.loadError': 'No se pudieron cargar los viajes',
|
|
'dashboard.toast.created': '¡Viaje creado correctamente!',
|
|
'dashboard.toast.createError': 'No se pudo crear el viaje',
|
|
'dashboard.toast.updated': '¡Viaje actualizado!',
|
|
'dashboard.toast.updateError': 'No se pudo actualizar el viaje',
|
|
'dashboard.toast.deleted': 'Viaje eliminado',
|
|
'dashboard.toast.deleteError': 'No se pudo eliminar el viaje',
|
|
'dashboard.toast.archived': 'Viaje archivado',
|
|
'dashboard.toast.archiveError': 'No se pudo archivar el viaje',
|
|
'dashboard.toast.restored': 'Viaje restaurado',
|
|
'dashboard.toast.restoreError': 'No se pudo restaurar el viaje',
|
|
'dashboard.confirm.delete': '¿Eliminar el viaje "{title}"? Todos los lugares y planes se borrarán permanentemente.',
|
|
'dashboard.editTrip': 'Editar viaje',
|
|
'dashboard.createTrip': 'Crear nuevo viaje',
|
|
'dashboard.tripTitle': 'Título',
|
|
'dashboard.tripTitlePlaceholder': 'p. ej. Verano en Japón',
|
|
'dashboard.tripDescription': 'Descripción',
|
|
'dashboard.tripDescriptionPlaceholder': '¿De qué trata este viaje?',
|
|
'dashboard.startDate': 'Fecha de inicio',
|
|
'dashboard.endDate': 'Fecha de fin',
|
|
'dashboard.noDateHint': 'Sin fecha definida: se crearán 7 días por defecto. Puedes cambiarlo cuando quieras.',
|
|
'dashboard.coverImage': 'Imagen de portada',
|
|
'dashboard.addCoverImage': 'Añadir imagen de portada',
|
|
'dashboard.coverSaved': 'Imagen de portada guardada',
|
|
'dashboard.coverUploadError': 'Error al subir la imagen',
|
|
'dashboard.coverRemoveError': 'Error al eliminar la imagen',
|
|
'dashboard.titleRequired': 'El título es obligatorio',
|
|
'dashboard.endDateError': 'La fecha de fin debe ser posterior a la de inicio',
|
|
|
|
// Settings
|
|
'settings.title': 'Ajustes',
|
|
'settings.subtitle': 'Configura tus ajustes personales',
|
|
'settings.map': 'Mapa',
|
|
'settings.mapTemplate': 'Plantilla del mapa',
|
|
'settings.mapTemplatePlaceholder.select': 'Seleccionar plantilla...',
|
|
'settings.mapDefaultHint': 'Déjalo vacío para OpenStreetMap (por defecto)',
|
|
'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
|
|
'settings.mapHint': 'Plantilla de URL para los mosaicos del mapa',
|
|
'settings.latitude': 'Latitud',
|
|
'settings.longitude': 'Longitud',
|
|
'settings.saveMap': 'Guardar mapa',
|
|
'settings.apiKeys': 'Claves API',
|
|
'settings.mapsKey': 'Clave API de Google Maps',
|
|
'settings.mapsKeyHint': 'Necesaria para buscar lugares. Consíguela en console.cloud.google.com',
|
|
'settings.weatherKey': 'Clave API de OpenWeatherMap',
|
|
'settings.weatherKeyHint': 'Para datos meteorológicos. Gratis en openweathermap.org/api',
|
|
'settings.keyPlaceholder': 'Introduce la clave...',
|
|
'settings.configured': 'Configurado',
|
|
'settings.saveKeys': 'Guardar claves',
|
|
'settings.display': 'Visualización',
|
|
'settings.colorMode': 'Modo de color',
|
|
'settings.light': 'Claro',
|
|
'settings.dark': 'Oscuro',
|
|
'settings.auto': 'Automático',
|
|
'settings.language': 'Idioma',
|
|
'settings.temperature': 'Unidad de temperatura',
|
|
'settings.timeFormat': 'Formato de hora',
|
|
'settings.routeCalculation': 'Cálculo de ruta',
|
|
'settings.on': 'Activado',
|
|
'settings.off': 'Desactivado',
|
|
'settings.account': 'Cuenta',
|
|
'settings.username': 'Usuario',
|
|
'settings.email': 'Correo',
|
|
'settings.role': 'Rol',
|
|
'settings.roleAdmin': 'Administrador',
|
|
'settings.oidcLinked': 'Vinculado con',
|
|
'settings.changePassword': 'Cambiar contraseña',
|
|
'settings.currentPassword': 'Contraseña actual',
|
|
'settings.newPassword': 'Nueva contraseña',
|
|
'settings.confirmPassword': 'Confirmar nueva contraseña',
|
|
'settings.updatePassword': 'Actualizar contraseña',
|
|
'settings.passwordRequired': 'Introduce la contraseña actual y la nueva',
|
|
'settings.passwordTooShort': 'La contraseña debe tener al menos 8 caracteres',
|
|
'settings.passwordMismatch': 'Las contraseñas no coinciden',
|
|
'settings.passwordChanged': 'Contraseña cambiada correctamente',
|
|
'settings.deleteAccount': 'Eliminar cuenta',
|
|
'settings.deleteAccountTitle': '¿Eliminar tu cuenta?',
|
|
'settings.deleteAccountWarning': 'Tu cuenta y todos tus viajes, lugares y archivos se eliminarán permanentemente. Esta acción no se puede deshacer.',
|
|
'settings.deleteAccountConfirm': 'Eliminar permanentemente',
|
|
'settings.deleteBlockedTitle': 'No es posible eliminarla',
|
|
'settings.deleteBlockedMessage': 'Eres el único administrador. Asciende a otro usuario a administrador antes de eliminar tu cuenta.',
|
|
'settings.roleUser': 'Usuario',
|
|
'settings.saveProfile': 'Guardar perfil',
|
|
'settings.toast.mapSaved': 'Ajustes del mapa guardados',
|
|
'settings.toast.keysSaved': 'Claves API guardadas',
|
|
'settings.toast.displaySaved': 'Ajustes de visualización guardados',
|
|
'settings.toast.profileSaved': 'Perfil guardado',
|
|
'settings.uploadAvatar': 'Subir foto de perfil',
|
|
'settings.removeAvatar': 'Eliminar foto de perfil',
|
|
'settings.avatarUploaded': 'Foto de perfil actualizada',
|
|
'settings.avatarRemoved': 'Foto de perfil eliminada',
|
|
'settings.avatarError': 'Falló la subida',
|
|
|
|
// Login
|
|
'login.error': 'Inicio de sesión fallido. Revisa tus credenciales.',
|
|
'login.tagline': 'Tus viajes.\nTu plan.',
|
|
'login.description': 'Planifica viajes en colaboración con mapas interactivos, presupuestos y sincronización en tiempo real.',
|
|
'login.features.maps': 'Mapas interactivos',
|
|
'login.features.mapsDesc': 'Google Places, rutas y agrupación',
|
|
'login.features.realtime': 'Sincronización en tiempo real',
|
|
'login.features.realtimeDesc': 'Planificad juntos mediante WebSocket',
|
|
'login.features.budget': 'Control de presupuesto',
|
|
'login.features.budgetDesc': 'Categorías, gráficos y costes por persona',
|
|
'login.features.collab': 'Colaboración',
|
|
'login.features.collabDesc': 'Multiusuario con viajes compartidos',
|
|
'login.features.packing': 'Listas de equipaje',
|
|
'login.features.packingDesc': 'Categorías, progreso y sugerencias',
|
|
'login.features.bookings': 'Reservas',
|
|
'login.features.bookingsDesc': 'Vuelos, hoteles, restaurantes y más',
|
|
'login.features.files': 'Documentos',
|
|
'login.features.filesDesc': 'Sube y gestiona documentos',
|
|
'login.features.routes': 'Rutas inteligentes',
|
|
'login.features.routesDesc': 'Optimización automática y exportación a Google Maps',
|
|
'login.selfHosted': 'Autoalojado · Código abierto · Tus datos siguen siendo tuyos',
|
|
'login.title': 'Iniciar sesión',
|
|
'login.subtitle': 'Bienvenido de nuevo',
|
|
'login.signingIn': 'Iniciando sesión…',
|
|
'login.signIn': 'Entrar',
|
|
'login.createAdmin': 'Crear cuenta de administrador',
|
|
'login.createAdminHint': 'Configura la primera cuenta administradora de NOMAD.',
|
|
'login.createAccount': 'Crear cuenta',
|
|
'login.createAccountHint': 'Crea una cuenta nueva.',
|
|
'login.creating': 'Creando…',
|
|
'login.noAccount': '¿No tienes cuenta?',
|
|
'login.hasAccount': '¿Ya tienes cuenta?',
|
|
'login.register': 'Registrarse',
|
|
'login.emailPlaceholder': 'tu@correo.com',
|
|
'login.username': 'Usuario',
|
|
'login.oidc.registrationDisabled': 'El registro está desactivado. Contacta con tu administrador.',
|
|
'login.oidc.noEmail': 'No se recibió ningún correo del proveedor.',
|
|
'login.oidc.tokenFailed': 'La autenticación falló.',
|
|
'login.oidc.invalidState': 'Sesión no válida. Inténtalo de nuevo.',
|
|
'login.demoFailed': 'Falló el acceso a la demo',
|
|
'login.oidcSignIn': 'Entrar con {name}',
|
|
'login.demoHint': 'Prueba la demo: no necesitas registrarte',
|
|
|
|
// Register
|
|
'register.passwordMismatch': 'Las contraseñas no coinciden',
|
|
'register.passwordTooShort': 'La contraseña debe tener al menos 6 caracteres',
|
|
'register.failed': 'Falló el registro',
|
|
'register.getStarted': 'Empezar',
|
|
'register.subtitle': 'Crea una cuenta y empieza a planificar tus viajes.',
|
|
'register.feature1': 'Planes de viaje ilimitados',
|
|
'register.feature2': 'Vista de mapa interactiva',
|
|
'register.feature3': 'Gestiona lugares y categorías',
|
|
'register.feature4': 'Haz seguimiento de las reservas',
|
|
'register.feature5': 'Crea listas de equipaje',
|
|
'register.feature6': 'Guarda fotos y archivos',
|
|
'register.createAccount': 'Crear cuenta',
|
|
'register.startPlanning': 'Empieza a planificar tu viaje',
|
|
'register.minChars': 'Mín. 6 caracteres',
|
|
'register.confirmPassword': 'Confirmar contraseña',
|
|
'register.repeatPassword': 'Repetir contraseña',
|
|
'register.registering': 'Registrando...',
|
|
'register.register': 'Registrarse',
|
|
'register.hasAccount': '¿Ya tienes cuenta?',
|
|
'register.signIn': 'Iniciar sesión',
|
|
|
|
// Admin
|
|
'admin.title': 'Administración',
|
|
'admin.subtitle': 'Gestión de usuarios y ajustes del sistema',
|
|
'admin.tabs.users': 'Usuarios',
|
|
'admin.tabs.categories': 'Categorías',
|
|
'admin.tabs.backup': 'Copia de seguridad',
|
|
'admin.stats.users': 'Usuarios',
|
|
'admin.stats.trips': 'Viajes',
|
|
'admin.stats.places': 'Lugares',
|
|
'admin.stats.photos': 'Fotos',
|
|
'admin.stats.files': 'Archivos',
|
|
'admin.table.user': 'Usuario',
|
|
'admin.table.email': 'Correo',
|
|
'admin.table.role': 'Rol',
|
|
'admin.table.created': 'Creado',
|
|
'admin.table.lastLogin': 'Último acceso',
|
|
'admin.table.actions': 'Acciones',
|
|
'admin.you': '(Tú)',
|
|
'admin.editUser': 'Editar usuario',
|
|
'admin.newPassword': 'Nueva contraseña',
|
|
'admin.newPasswordHint': 'Déjalo vacío para mantener la contraseña actual',
|
|
'admin.deleteUser': '¿Eliminar al usuario "{name}"? Todos sus viajes se borrarán permanentemente.',
|
|
'admin.deleteUserTitle': 'Eliminar usuario',
|
|
'admin.newPasswordPlaceholder': 'Introduce una nueva contraseña…',
|
|
'admin.toast.loadError': 'No se pudieron cargar los datos de administración',
|
|
'admin.toast.userUpdated': 'Usuario actualizado',
|
|
'admin.toast.updateError': 'No se pudo actualizar',
|
|
'admin.toast.userDeleted': 'Usuario eliminado',
|
|
'admin.toast.deleteError': 'No se pudo eliminar',
|
|
'admin.toast.cannotDeleteSelf': 'No puedes eliminar tu propia cuenta',
|
|
'admin.toast.userCreated': 'Usuario creado',
|
|
'admin.toast.createError': 'No se pudo crear el usuario',
|
|
'admin.toast.fieldsRequired': 'Usuario, correo y contraseña son obligatorios',
|
|
'admin.createUser': 'Crear usuario',
|
|
'admin.tabs.settings': 'Ajustes',
|
|
'admin.allowRegistration': 'Permitir el registro',
|
|
'admin.allowRegistrationHint': 'Los nuevos usuarios pueden registrarse por sí mismos',
|
|
'admin.apiKeys': 'Claves API',
|
|
'admin.apiKeysHint': 'Opcional. Activa datos ampliados de lugares, como fotos y previsión del tiempo.',
|
|
'admin.mapsKey': 'Clave API de Google Maps',
|
|
'admin.mapsKeyHint': 'Obligatoria para buscar lugares. Consíguela en console.cloud.google.com',
|
|
'admin.mapsKeyHintLong': 'Sin una clave API, la búsqueda de lugares usa OpenStreetMap. Con una clave de Google también se pueden cargar fotos, valoraciones y horarios de apertura. Consíguela en console.cloud.google.com.',
|
|
'admin.recommended': 'Recomendado',
|
|
'admin.weatherKey': 'Clave API de OpenWeatherMap',
|
|
'admin.weatherKeyHint': 'Para datos meteorológicos. Gratis en openweathermap.org',
|
|
'admin.validateKey': 'Probar',
|
|
'admin.keyValid': 'Conectado',
|
|
'admin.keyInvalid': 'No válida',
|
|
'admin.keySaved': 'Claves API guardadas',
|
|
'admin.oidcTitle': 'Inicio de sesión único (OIDC)',
|
|
'admin.oidcSubtitle': 'Permite iniciar sesión mediante proveedores externos como Google, Apple, Authentik o Keycloak.',
|
|
'admin.oidcDisplayName': 'Nombre visible',
|
|
'admin.oidcIssuer': 'URL del emisor',
|
|
'admin.oidcIssuerHint': 'La URL Issuer de OpenID Connect del proveedor. Ej.: https://accounts.google.com',
|
|
'admin.oidcSaved': 'Configuración OIDC guardada',
|
|
|
|
// File Types
|
|
'admin.fileTypes': 'Tipos de archivo permitidos',
|
|
'admin.fileTypesHint': 'Configura qué tipos de archivo pueden subir los usuarios.',
|
|
'admin.fileTypesFormat': 'Extensiones separadas por comas (p. ej. jpg,png,pdf,doc). Usa * para permitir todos los tipos.',
|
|
'admin.fileTypesSaved': 'Ajustes de tipos de archivo guardados',
|
|
|
|
// Addons
|
|
'admin.tabs.addons': 'Complementos',
|
|
'admin.addons.title': 'Complementos',
|
|
'admin.addons.subtitle': 'Activa o desactiva funciones para personalizar tu experiencia en NOMAD.',
|
|
'admin.addons.subtitleBefore': 'Activa o desactiva funciones para personalizar tu experiencia en ',
|
|
'admin.addons.subtitleAfter': '.',
|
|
'admin.addons.enabled': 'Activo',
|
|
'admin.addons.disabled': 'Desactivado',
|
|
'admin.addons.type.trip': 'Viaje',
|
|
'admin.addons.type.global': 'Global',
|
|
'admin.addons.tripHint': 'Disponible como pestaña dentro de cada viaje',
|
|
'admin.addons.globalHint': 'Disponible como sección independiente en la navegación principal',
|
|
'admin.addons.toast.updated': 'Complemento actualizado',
|
|
'admin.addons.toast.error': 'No se pudo actualizar el complemento',
|
|
'admin.addons.noAddons': 'No hay complementos disponibles',
|
|
'admin.weather.title': 'Datos meteorológicos',
|
|
'admin.weather.badge': 'Desde el 24 de marzo de 2026',
|
|
'admin.weather.description': 'NOMAD utiliza Open-Meteo como fuente de datos meteorológicos. Open-Meteo es un servicio meteorológico gratuito y de código abierto: no requiere clave API.',
|
|
'admin.weather.forecast': 'Pronóstico de 16 días',
|
|
'admin.weather.forecastDesc': 'Antes eran 5 días (OpenWeatherMap)',
|
|
'admin.weather.climate': 'Datos climáticos históricos',
|
|
'admin.weather.climateDesc': 'Promedios de los últimos 85 años para fechas posteriores al pronóstico de 16 días',
|
|
'admin.weather.requests': '10.000 solicitudes / día',
|
|
'admin.weather.requestsDesc': 'Gratis, sin necesidad de clave API',
|
|
'admin.weather.locationHint': 'El tiempo se basa en el primer lugar con coordenadas de cada día. Si no hay ningún lugar asignado a un día, se usa como referencia cualquier lugar de la lista.',
|
|
|
|
// GitHub
|
|
'admin.tabs.github': 'GitHub',
|
|
'admin.github.title': 'Historial de versiones',
|
|
'admin.github.subtitle': 'Últimas novedades de {repo}',
|
|
'admin.github.latest': 'Última',
|
|
'admin.github.prerelease': 'Prelanzamiento',
|
|
'admin.github.showDetails': 'Mostrar detalles',
|
|
'admin.github.hideDetails': 'Ocultar detalles',
|
|
'admin.github.loadMore': 'Cargar más',
|
|
'admin.github.loading': 'Cargando...',
|
|
'admin.github.error': 'No se pudieron cargar las versiones',
|
|
'admin.github.by': 'por',
|
|
'admin.update.available': 'Actualización disponible',
|
|
'admin.update.text': 'NOMAD {version} está disponible. Estás usando {current}.',
|
|
'admin.update.button': 'Ver en GitHub',
|
|
'admin.update.install': 'Instalar actualización',
|
|
'admin.update.confirmTitle': '¿Instalar actualización?',
|
|
'admin.update.confirmText': 'NOMAD se actualizará de {current} a {version}. Después, el servidor se reiniciará automáticamente.',
|
|
'admin.update.dataInfo': 'Todos tus datos (viajes, usuarios, claves API, subidas, Vacay, Atlas, presupuestos) se conservarán.',
|
|
'admin.update.warning': 'La app estará brevemente no disponible durante el reinicio.',
|
|
'admin.update.confirm': 'Actualizar ahora',
|
|
'admin.update.installing': 'Actualizando…',
|
|
'admin.update.success': '¡Actualización instalada! El servidor se está reiniciando…',
|
|
'admin.update.failed': 'La actualización falló',
|
|
'admin.update.backupHint': 'Recomendamos crear una copia de seguridad antes de actualizar.',
|
|
'admin.update.backupLink': 'Ir a Copia de seguridad',
|
|
'admin.update.howTo': 'Cómo actualizar',
|
|
'admin.update.dockerText': 'Tu instancia de NOMAD se ejecuta en Docker. Para actualizar a {version}, ejecuta los siguientes comandos en tu servidor:',
|
|
'admin.update.reloadHint': 'Recarga la página en unos segundos.',
|
|
|
|
// Vacay addon
|
|
'vacay.subtitle': 'Planifica y gestiona días de vacaciones',
|
|
'vacay.settings': 'Ajustes',
|
|
'vacay.year': 'Año',
|
|
'vacay.addYear': 'Añadir año',
|
|
'vacay.removeYear': 'Eliminar año',
|
|
'vacay.removeYearConfirm': '¿Eliminar {year}?',
|
|
'vacay.removeYearHint': 'Todas las vacaciones y festivos de empresa de este año se borrarán permanentemente.',
|
|
'vacay.remove': 'Eliminar',
|
|
'vacay.persons': 'Personas',
|
|
'vacay.noPersons': 'No se han añadido personas',
|
|
'vacay.addPerson': 'Añadir persona',
|
|
'vacay.editPerson': 'Editar persona',
|
|
'vacay.removePerson': 'Eliminar persona',
|
|
'vacay.removePersonConfirm': '¿Eliminar a {name}?',
|
|
'vacay.removePersonHint': 'Todas las vacaciones de esta persona se borrarán permanentemente.',
|
|
'vacay.personName': 'Nombre',
|
|
'vacay.personNamePlaceholder': 'Introduce un nombre',
|
|
'vacay.color': 'Color',
|
|
'vacay.add': 'Añadir',
|
|
'vacay.legend': 'Leyenda',
|
|
'vacay.publicHoliday': 'Festivo',
|
|
'vacay.companyHoliday': 'Festivo de empresa',
|
|
'vacay.weekend': 'Fin de semana',
|
|
'vacay.modeVacation': 'Vacaciones',
|
|
'vacay.modeCompany': 'Festivo de empresa',
|
|
'vacay.entitlement': 'Derecho',
|
|
'vacay.entitlementDays': 'Días',
|
|
'vacay.used': 'Usados',
|
|
'vacay.remaining': 'Restantes',
|
|
'vacay.carriedOver': 'de {year}',
|
|
'vacay.blockWeekends': 'Bloquear fines de semana',
|
|
'vacay.blockWeekendsHint': 'Impide marcar vacaciones en sábados y domingos',
|
|
'vacay.publicHolidays': 'Festivos',
|
|
'vacay.publicHolidaysHint': 'Marcar festivos en el calendario',
|
|
'vacay.selectCountry': 'Seleccionar país',
|
|
'vacay.selectRegion': 'Seleccionar región (opcional)',
|
|
'vacay.companyHolidays': 'Festivos de empresa',
|
|
'vacay.companyHolidaysHint': 'Permitir marcar días festivos comunes de la empresa',
|
|
'vacay.companyHolidaysNoDeduct': 'Los festivos de empresa no descuentan días de vacaciones.',
|
|
'vacay.carryOver': 'Arrastrar saldo',
|
|
'vacay.carryOverHint': 'Trasladar automáticamente los días restantes al año siguiente',
|
|
'vacay.sharing': 'Compartir',
|
|
'vacay.sharingHint': 'Comparte tu calendario de vacaciones con otros usuarios de NOMAD',
|
|
'vacay.owner': 'Propietario',
|
|
'vacay.shareEmailPlaceholder': 'Correo electrónico del usuario de NOMAD',
|
|
'vacay.shareSuccess': 'Plan compartido correctamente',
|
|
'vacay.shareError': 'No se pudo compartir el plan',
|
|
'vacay.dissolve': 'Deshacer fusión',
|
|
'vacay.dissolveHint': 'Separar de nuevo los calendarios. Tus entradas se conservarán.',
|
|
'vacay.dissolveAction': 'Disolver',
|
|
'vacay.dissolved': 'Calendario separado',
|
|
'vacay.fusedWith': 'Fusionado con',
|
|
'vacay.you': 'tú',
|
|
'vacay.noData': 'Sin datos',
|
|
'vacay.changeColor': 'Cambiar color',
|
|
'vacay.inviteUser': 'Invitar usuario',
|
|
'vacay.inviteHint': 'Invita a otro usuario de NOMAD a compartir un calendario combinado de vacaciones.',
|
|
'vacay.selectUser': 'Seleccionar usuario',
|
|
'vacay.sendInvite': 'Enviar invitación',
|
|
'vacay.inviteSent': 'Invitación enviada',
|
|
'vacay.inviteError': 'No se pudo enviar la invitación',
|
|
'vacay.pending': 'pendiente',
|
|
'vacay.noUsersAvailable': 'No hay usuarios disponibles',
|
|
'vacay.accept': 'Aceptar',
|
|
'vacay.decline': 'Rechazar',
|
|
'vacay.acceptFusion': 'Aceptar y fusionar',
|
|
'vacay.inviteTitle': 'Solicitud de fusión',
|
|
'vacay.inviteWantsToFuse': 'quiere compartir un calendario de vacaciones contigo.',
|
|
'vacay.fuseInfo1': 'Ambos veréis todas las entradas de vacaciones en un único calendario compartido.',
|
|
'vacay.fuseInfo2': 'Ambas partes pueden crear y editar entradas mutuamente.',
|
|
'vacay.fuseInfo3': 'Ambas partes pueden borrar entradas y cambiar el número de días de vacaciones disponibles.',
|
|
'vacay.fuseInfo4': 'Ajustes como festivos y festivos de empresa se comparten.',
|
|
'vacay.fuseInfo5': 'La fusión puede disolverse en cualquier momento por cualquiera de las partes. Tus entradas se conservarán.',
|
|
|
|
// Atlas addon
|
|
'atlas.subtitle': 'Tu huella viajera por el mundo',
|
|
'atlas.countries': 'Países',
|
|
'atlas.trips': 'Viajes',
|
|
'atlas.places': 'Lugares',
|
|
'atlas.days': 'Días',
|
|
'atlas.visitedCountries': 'Países visitados',
|
|
'atlas.cities': 'Ciudades',
|
|
'atlas.noData': 'Aún no hay datos de viaje',
|
|
'atlas.noDataHint': 'Crea un viaje y añade lugares para ver tu mapa del mundo',
|
|
'atlas.lastTrip': 'Último viaje',
|
|
'atlas.nextTrip': 'Próximo viaje',
|
|
'atlas.daysLeft': 'días restantes',
|
|
'atlas.streak': 'Racha',
|
|
'atlas.year': 'año',
|
|
'atlas.years': 'años',
|
|
'atlas.yearInRow': 'año seguido',
|
|
'atlas.yearsInRow': 'años seguidos',
|
|
'atlas.tripIn': 'viaje en',
|
|
'atlas.tripsIn': 'viajes en',
|
|
'atlas.since': 'desde',
|
|
'atlas.europe': 'Europa',
|
|
'atlas.asia': 'Asia',
|
|
'atlas.northAmerica': 'América del Norte',
|
|
'atlas.southAmerica': 'América del Sur',
|
|
'atlas.africa': 'África',
|
|
'atlas.oceania': 'Oceanía',
|
|
'atlas.other': 'Otros',
|
|
'atlas.firstVisit': 'Primer viaje',
|
|
'atlas.lastVisitLabel': 'Último viaje',
|
|
'atlas.tripSingular': 'Viaje',
|
|
'atlas.tripPlural': 'Viajes',
|
|
'atlas.placeVisited': 'Lugar visitado',
|
|
'atlas.placesVisited': 'Lugares visitados',
|
|
|
|
// Trip Planner
|
|
'trip.tabs.plan': 'Plan',
|
|
'trip.tabs.reservations': 'Reservas',
|
|
'trip.tabs.reservationsShort': 'Reservas',
|
|
'trip.tabs.packing': 'Lista de equipaje',
|
|
'trip.tabs.packingShort': 'Equipaje',
|
|
'trip.tabs.budget': 'Presupuesto',
|
|
'trip.tabs.memories': 'Recuerdos',
|
|
'trip.tabs.files': 'Archivos',
|
|
'trip.loading': 'Cargando viaje...',
|
|
'trip.mobilePlan': 'Plan',
|
|
'trip.mobilePlaces': 'Lugares',
|
|
'trip.toast.placeUpdated': 'Lugar actualizado',
|
|
'trip.toast.placeAdded': 'Lugar añadido',
|
|
'trip.toast.placeDeleted': 'Lugar eliminado',
|
|
'trip.toast.selectDay': 'Selecciona primero un día',
|
|
'trip.toast.assignedToDay': 'Lugar asignado al día',
|
|
'trip.toast.reorderError': 'No se pudo reordenar',
|
|
'trip.toast.reservationUpdated': 'Reserva actualizada',
|
|
'trip.toast.reservationAdded': 'Reserva añadida',
|
|
'trip.toast.deleted': 'Eliminado',
|
|
'trip.confirm.deletePlace': '¿Seguro que quieres eliminar este lugar?',
|
|
|
|
// Day Plan Sidebar
|
|
'dayplan.emptyDay': 'No hay lugares planificados para este día',
|
|
'dayplan.addNote': 'Añadir nota',
|
|
'dayplan.editNote': 'Editar nota',
|
|
'dayplan.noteAdd': 'Añadir nota',
|
|
'dayplan.noteEdit': 'Editar nota',
|
|
'dayplan.noteTitle': 'Nota',
|
|
'dayplan.noteSubtitle': 'Nota diaria',
|
|
'dayplan.totalCost': 'Coste total',
|
|
'dayplan.days': 'Días',
|
|
'dayplan.dayN': 'Día {n}',
|
|
'dayplan.calculating': 'Calculando...',
|
|
'dayplan.route': 'Ruta',
|
|
'dayplan.optimize': 'Optimizar',
|
|
'dayplan.optimized': 'Ruta optimizada',
|
|
'dayplan.routeError': 'No se pudo calcular la ruta',
|
|
'dayplan.toast.needTwoPlaces': 'Se necesitan al menos dos lugares para optimizar la ruta',
|
|
'dayplan.toast.routeOptimized': 'Ruta optimizada',
|
|
'dayplan.toast.noGeoPlaces': 'No se encontraron lugares con coordenadas para calcular la ruta',
|
|
'dayplan.confirmed': 'Confirmado',
|
|
'dayplan.pendingRes': 'Pendiente',
|
|
'dayplan.pdf': 'PDF',
|
|
'dayplan.pdfTooltip': 'Exportar plan diario como PDF',
|
|
'dayplan.pdfError': 'No se pudo exportar el PDF',
|
|
|
|
// Places Sidebar
|
|
'places.addPlace': 'Añadir lugar/actividad',
|
|
'places.assignToDay': '¿A qué día añadirlo?',
|
|
'places.all': 'Todo',
|
|
'places.unplanned': 'Sin planificar',
|
|
'places.search': 'Buscar lugares...',
|
|
'places.allCategories': 'Todas las categorías',
|
|
'places.count': '{count} lugares',
|
|
'places.countSingular': '1 lugar',
|
|
'places.allPlanned': 'Todos los lugares están planificados',
|
|
'places.noneFound': 'No se encontraron lugares',
|
|
'places.editPlace': 'Editar lugar',
|
|
'places.formName': 'Nombre',
|
|
'places.formNamePlaceholder': 'p. ej. Torre Eiffel',
|
|
'places.formDescription': 'Descripción',
|
|
'places.formDescriptionPlaceholder': 'Descripción breve...',
|
|
'places.formAddress': 'Dirección',
|
|
'places.formAddressPlaceholder': 'Calle, ciudad, país',
|
|
'places.formLat': 'Latitud (p. ej. 48.8566)',
|
|
'places.formLng': 'Longitud (p. ej. 2.3522)',
|
|
'places.formCategory': 'Categoría',
|
|
'places.noCategory': 'Sin categoría',
|
|
'places.categoryNamePlaceholder': 'Nombre de la categoría',
|
|
'places.formTime': 'Hora',
|
|
'places.startTime': 'Inicio',
|
|
'places.endTime': 'Fin',
|
|
'places.endTimeBeforeStart': 'La hora de fin es anterior a la de inicio',
|
|
'places.timeCollision': 'Solapamiento horario con:',
|
|
'places.formWebsite': 'Página web',
|
|
'places.formNotesPlaceholder': 'Notas personales...',
|
|
'places.formReservation': 'Reserva',
|
|
'places.reservationNotesPlaceholder': 'Notas de reserva, número de confirmación...',
|
|
'places.mapsSearchPlaceholder': 'Buscar lugares...',
|
|
'places.mapsSearchError': 'La búsqueda de lugares falló.',
|
|
'places.osmHint': 'Usando búsqueda con OpenStreetMap (sin fotos, horarios ni valoraciones). Añade una clave API de Google en Ajustes para obtener todos los detalles.',
|
|
'places.osmActive': 'Búsqueda mediante OpenStreetMap (sin fotos, valoraciones ni horarios). Añade una clave API de Google en Ajustes para datos ampliados.',
|
|
'places.categoryCreateError': 'No se pudo crear la categoría',
|
|
'places.nameRequired': 'Introduce un nombre',
|
|
'places.saveError': 'No se pudo guardar',
|
|
|
|
// Place Inspector
|
|
'inspector.opened': 'Abierto',
|
|
'inspector.closed': 'Cerrado',
|
|
'inspector.openingHours': 'Horario de apertura',
|
|
'inspector.showHours': 'Mostrar horario',
|
|
'inspector.files': 'Archivos',
|
|
'inspector.filesCount': '{count} archivos',
|
|
'inspector.removeFromDay': 'Quitar del día',
|
|
'inspector.addToDay': 'Añadir al día',
|
|
'inspector.confirmedRes': 'Reserva confirmada',
|
|
'inspector.pendingRes': 'Reserva pendiente',
|
|
'inspector.google': 'Abrir en Google Maps',
|
|
'inspector.website': 'Abrir la web',
|
|
'inspector.addRes': 'Reserva',
|
|
'inspector.editRes': 'Editar reserva',
|
|
'inspector.participants': 'Participantes',
|
|
|
|
// Reservations
|
|
'reservations.title': 'Reservas',
|
|
'reservations.empty': 'Aún no hay reservas',
|
|
'reservations.emptyHint': 'Añade reservas de vuelos, hoteles y más',
|
|
'reservations.add': 'Añadir reserva',
|
|
'reservations.addManual': 'Reserva manual',
|
|
'reservations.placeHint': 'Consejo: es mejor crear las reservas directamente desde un lugar para vincularlas con el plan del día.',
|
|
'reservations.confirmed': 'Confirmada',
|
|
'reservations.pending': 'Pendiente',
|
|
'reservations.summary': '{confirmed} confirmadas, {pending} pendientes',
|
|
'reservations.fromPlan': 'Del plan',
|
|
'reservations.showFiles': 'Mostrar archivos',
|
|
'reservations.editTitle': 'Editar reserva',
|
|
'reservations.status': 'Estado',
|
|
'reservations.datetime': 'Fecha y hora',
|
|
'reservations.startTime': 'Hora de inicio',
|
|
'reservations.endTime': 'Hora de fin',
|
|
'reservations.date': 'Fecha',
|
|
'reservations.time': 'Hora',
|
|
'reservations.timeAlt': 'Hora (alternativa, p. ej. 19:30)',
|
|
'reservations.notes': 'Notas',
|
|
'reservations.notesPlaceholder': 'Notas adicionales...',
|
|
'reservations.type.flight': 'Vuelo',
|
|
'reservations.type.hotel': 'Hotel',
|
|
'reservations.type.restaurant': 'Restaurante',
|
|
'reservations.type.train': 'Tren',
|
|
'reservations.type.car': 'Coche de alquiler',
|
|
'reservations.type.cruise': 'Crucero',
|
|
'reservations.type.event': 'Evento',
|
|
'reservations.type.tour': 'Tour',
|
|
'reservations.type.other': 'Otro',
|
|
'reservations.confirm.delete': '¿Seguro que quieres eliminar la reserva "{name}"?',
|
|
'reservations.toast.updated': 'Reserva actualizada',
|
|
'reservations.toast.removed': 'Reserva eliminada',
|
|
'reservations.toast.fileUploaded': 'Archivo subido',
|
|
'reservations.toast.uploadError': 'No se pudo subir',
|
|
'reservations.newTitle': 'Nueva reserva',
|
|
'reservations.bookingType': 'Tipo de reserva',
|
|
'reservations.titleLabel': 'Título',
|
|
'reservations.titlePlaceholder': 'p. ej. Lufthansa LH123, Hotel Adlon, ...',
|
|
'reservations.locationAddress': 'Ubicación / dirección',
|
|
'reservations.locationPlaceholder': 'Dirección, aeropuerto, hotel...',
|
|
'reservations.confirmationCode': 'Código de reserva',
|
|
'reservations.confirmationPlaceholder': 'p. ej. ABC12345',
|
|
'reservations.day': 'Día',
|
|
'reservations.noDay': 'Sin día',
|
|
'reservations.place': 'Lugar',
|
|
'reservations.noPlace': 'Sin lugar',
|
|
'reservations.pendingSave': 'se guardará…',
|
|
'reservations.uploading': 'Subiendo...',
|
|
'reservations.attachFile': 'Adjuntar archivo',
|
|
'reservations.toast.saveError': 'No se pudo guardar',
|
|
'reservations.toast.updateError': 'No se pudo actualizar',
|
|
'reservations.toast.deleteError': 'No se pudo eliminar',
|
|
'reservations.confirm.remove': '¿Eliminar la reserva de "{name}"?',
|
|
'reservations.linkAssignment': 'Vincular a una asignación del día',
|
|
'reservations.pickAssignment': 'Selecciona una asignación de tu plan...',
|
|
'reservations.noAssignment': 'Sin vínculo (independiente)',
|
|
|
|
// Budget
|
|
'budget.title': 'Presupuesto',
|
|
'budget.emptyTitle': 'Aún no se ha creado ningún presupuesto',
|
|
'budget.emptyText': 'Crea categorías y entradas para planificar el presupuesto de tu viaje',
|
|
'budget.emptyPlaceholder': 'Introduce el nombre de la categoría...',
|
|
'budget.createCategory': 'Crear categoría',
|
|
'budget.category': 'Categoría',
|
|
'budget.categoryName': 'Nombre de la categoría',
|
|
'budget.table.name': 'Nombre',
|
|
'budget.table.total': 'Total',
|
|
'budget.table.persons': 'Personas',
|
|
'budget.table.days': 'Días',
|
|
'budget.table.perPerson': 'Por persona',
|
|
'budget.table.perDay': 'Por día',
|
|
'budget.table.perPersonDay': 'Por pers. / día',
|
|
'budget.table.note': 'Nota',
|
|
'budget.newEntry': 'Nueva entrada',
|
|
'budget.defaultEntry': 'Nueva entrada',
|
|
'budget.defaultCategory': 'Nueva categoría',
|
|
'budget.total': 'Total',
|
|
'budget.totalBudget': 'Presupuesto total',
|
|
'budget.byCategory': 'Por categoría',
|
|
'budget.editTooltip': 'Haz clic para editar',
|
|
'budget.confirm.deleteCategory': '¿Seguro que quieres eliminar la categoría "{name}" con {count} entradas?',
|
|
'budget.deleteCategory': 'Eliminar categoría',
|
|
'budget.perPerson': 'Por persona',
|
|
'budget.paid': 'Pagado',
|
|
'budget.open': 'Abrir',
|
|
'budget.noMembers': 'No hay miembros asignados',
|
|
|
|
// Files
|
|
'files.title': 'Archivos',
|
|
'files.count': '{count} archivos',
|
|
'files.countSingular': '1 archivo',
|
|
'files.uploaded': '{count} archivos subidos',
|
|
'files.uploadError': 'La subida falló',
|
|
'files.dropzone': 'Arrastra aquí los archivos',
|
|
'files.dropzoneHint': 'o haz clic para explorar',
|
|
'files.allowedTypes': 'Imágenes, PDF, DOC, DOCX, XLS, XLSX, TXT, CSV · Máx. 50 MB',
|
|
'files.uploading': 'Subiendo...',
|
|
'files.filterAll': 'Todo',
|
|
'files.filterPdf': 'PDF',
|
|
'files.filterImages': 'Imágenes',
|
|
'files.filterDocs': 'Documentos',
|
|
'files.filterCollab': 'Notas de colaboración',
|
|
'files.sourceCollab': 'Desde notas de colaboración',
|
|
'files.empty': 'Aún no hay archivos',
|
|
'files.emptyHint': 'Sube archivos para adjuntarlos a tu viaje',
|
|
'files.openTab': 'Abrir en una pestaña nueva',
|
|
'files.confirm.delete': '¿Seguro que quieres eliminar este archivo?',
|
|
'files.toast.deleted': 'Archivo eliminado',
|
|
'files.toast.deleteError': 'No se pudo eliminar el archivo',
|
|
'files.sourcePlan': 'Plan diario',
|
|
'files.sourceBooking': 'Reserva',
|
|
'files.attach': 'Adjuntar',
|
|
'files.pasteHint': 'También puedes pegar imágenes desde el portapapeles (Ctrl+V)',
|
|
|
|
// Packing
|
|
'packing.title': 'Lista de equipaje',
|
|
'packing.empty': 'La lista de equipaje está vacía',
|
|
'packing.progress': '{packed} de {total} preparados ({percent}%)',
|
|
'packing.clearChecked': 'Eliminar {count} marcados',
|
|
'packing.clearCheckedShort': 'Eliminar {count}',
|
|
'packing.suggestions': 'Sugerencias',
|
|
'packing.suggestionsTitle': 'Añadir sugerencias',
|
|
'packing.allSuggested': 'Todas las sugerencias añadidas',
|
|
'packing.allPacked': '¡Todo preparado!',
|
|
'packing.addPlaceholder': 'Añadir nuevo elemento...',
|
|
'packing.categoryPlaceholder': 'Categoría...',
|
|
'packing.filterAll': 'Todo',
|
|
'packing.filterOpen': 'Pendientes',
|
|
'packing.filterDone': 'Hecho',
|
|
'packing.emptyTitle': 'La lista de equipaje está vacía',
|
|
'packing.emptyHint': 'Añade elementos o usa las sugerencias',
|
|
'packing.emptyFiltered': 'Ningún elemento coincide con este filtro',
|
|
'packing.menuRename': 'Renombrar',
|
|
'packing.menuCheckAll': 'Marcar todo',
|
|
'packing.menuUncheckAll': 'Desmarcar todo',
|
|
'packing.menuDeleteCat': 'Eliminar categoría',
|
|
'packing.changeCategory': 'Cambiar categoría',
|
|
'packing.confirm.clearChecked': '¿Seguro que quieres eliminar {count} elementos marcados?',
|
|
'packing.confirm.deleteCat': '¿Seguro que quieres eliminar la categoría "{name}" con {count} elementos?',
|
|
'packing.defaultCategory': 'Otros',
|
|
'packing.toast.saveError': 'No se pudo guardar',
|
|
'packing.toast.deleteError': 'No se pudo eliminar',
|
|
'packing.toast.renameError': 'No se pudo renombrar',
|
|
'packing.toast.addError': 'No se pudo añadir',
|
|
|
|
// Packing suggestions
|
|
'packing.suggestions.items': [
|
|
{ name: 'Pasaporte', category: 'Documentos' },
|
|
{ name: 'Documento de identidad', category: 'Documentos' },
|
|
{ name: 'Seguro de viaje', category: 'Documentos' },
|
|
{ name: 'Billetes de vuelo', category: 'Documentos' },
|
|
{ name: 'Tarjeta de crédito', category: 'Finanzas' },
|
|
{ name: 'Efectivo', category: 'Finanzas' },
|
|
{ name: 'Visado', category: 'Documentos' },
|
|
{ name: 'Camisetas', category: 'Ropa' },
|
|
{ name: 'Pantalones', category: 'Ropa' },
|
|
{ name: 'Ropa interior', category: 'Ropa' },
|
|
{ name: 'Calcetines', category: 'Ropa' },
|
|
{ name: 'Chaqueta', category: 'Ropa' },
|
|
{ name: 'Pijama', category: 'Ropa' },
|
|
{ name: 'Ropa de baño', category: 'Ropa' },
|
|
{ name: 'Impermeable', category: 'Ropa' },
|
|
{ name: 'Zapatos cómodos', category: 'Ropa' },
|
|
{ name: 'Cepillo de dientes', category: 'Aseo' },
|
|
{ name: 'Pasta de dientes', category: 'Aseo' },
|
|
{ name: 'Champú', category: 'Aseo' },
|
|
{ name: 'Desodorante', category: 'Aseo' },
|
|
{ name: 'Protector solar', category: 'Aseo' },
|
|
{ name: 'Maquinilla de afeitar', category: 'Aseo' },
|
|
{ name: 'Cargador', category: 'Electrónica' },
|
|
{ name: 'Batería externa', category: 'Electrónica' },
|
|
{ name: 'Auriculares', category: 'Electrónica' },
|
|
{ name: 'Adaptador de viaje', category: 'Electrónica' },
|
|
{ name: 'Cámara', category: 'Electrónica' },
|
|
{ name: 'Analgésicos', category: 'Salud' },
|
|
{ name: 'Tiritas', category: 'Salud' },
|
|
{ name: 'Desinfectante', category: 'Salud' },
|
|
],
|
|
|
|
// Members / Sharing
|
|
'members.shareTrip': 'Compartir viaje',
|
|
'members.inviteUser': 'Invitar usuario',
|
|
'members.selectUser': 'Seleccionar usuario…',
|
|
'members.invite': 'Invitar',
|
|
'members.allHaveAccess': 'Todos los usuarios ya tienen acceso.',
|
|
'members.access': 'Acceso',
|
|
'members.person': 'persona',
|
|
'members.persons': 'personas',
|
|
'members.you': 'tú',
|
|
'members.owner': 'Propietario',
|
|
'members.leaveTrip': 'Abandonar viaje',
|
|
'members.removeAccess': 'Quitar acceso',
|
|
'members.confirmLeave': '¿Abandonar el viaje? Perderás el acceso.',
|
|
'members.confirmRemove': '¿Quitar el acceso de este usuario?',
|
|
'members.loadError': 'No se pudieron cargar los miembros',
|
|
'members.added': 'añadido',
|
|
'members.addError': 'No se pudo añadir',
|
|
'members.removed': 'Miembro eliminado',
|
|
'members.removeError': 'No se pudo eliminar',
|
|
|
|
// Categories (Admin)
|
|
'categories.title': 'Categorías',
|
|
'categories.subtitle': 'Gestiona categorías para lugares',
|
|
'categories.new': 'Nueva categoría',
|
|
'categories.empty': 'Aún no hay categorías',
|
|
'categories.namePlaceholder': 'Nombre de la categoría',
|
|
'categories.icon': 'Icono',
|
|
'categories.color': 'Color',
|
|
'categories.customColor': 'Elegir color personalizado',
|
|
'categories.preview': 'Vista previa',
|
|
'categories.defaultName': 'Categoría',
|
|
'categories.update': 'Actualizar',
|
|
'categories.create': 'Crear',
|
|
'categories.confirm.delete': '¿Eliminar la categoría? Los lugares de esta categoría no se eliminarán.',
|
|
'categories.toast.loadError': 'No se pudieron cargar las categorías',
|
|
'categories.toast.nameRequired': 'Introduce un nombre',
|
|
'categories.toast.updated': 'Categoría actualizada',
|
|
'categories.toast.created': 'Categoría creada',
|
|
'categories.toast.saveError': 'No se pudo guardar',
|
|
'categories.toast.deleted': 'Categoría eliminada',
|
|
'categories.toast.deleteError': 'No se pudo eliminar',
|
|
|
|
// Backup (Admin)
|
|
'backup.title': 'Copia de seguridad de datos',
|
|
'backup.subtitle': 'Base de datos y todos los archivos subidos',
|
|
'backup.refresh': 'Actualizar',
|
|
'backup.upload': 'Subir copia de seguridad',
|
|
'backup.uploading': 'Subiendo…',
|
|
'backup.create': 'Crear copia',
|
|
'backup.creating': 'Creando…',
|
|
'backup.empty': 'Aún no hay copias',
|
|
'backup.createFirst': 'Crear la primera copia',
|
|
'backup.download': 'Descargar',
|
|
'backup.restore': 'Restaurar',
|
|
'backup.confirm.restore': '¿Restaurar la copia "{name}"?\n\nTodos los datos actuales serán reemplazados por la copia.',
|
|
'backup.confirm.uploadRestore': '¿Subir y restaurar el archivo de copia "{name}"?\n\nTodos los datos actuales se sobrescribirán.',
|
|
'backup.confirm.delete': '¿Eliminar la copia "{name}"?',
|
|
'backup.toast.loadError': 'No se pudieron cargar las copias',
|
|
'backup.toast.created': 'Copia de seguridad creada correctamente',
|
|
'backup.toast.createError': 'No se pudo crear la copia',
|
|
'backup.toast.restored': 'Copia restaurada. La página se recargará…',
|
|
'backup.toast.restoreError': 'No se pudo restaurar',
|
|
'backup.toast.uploadError': 'No se pudo subir',
|
|
'backup.toast.deleted': 'Copia eliminada',
|
|
'backup.toast.deleteError': 'No se pudo eliminar',
|
|
'backup.toast.downloadError': 'La descarga falló',
|
|
'backup.toast.settingsSaved': 'Ajustes de copia automática guardados',
|
|
'backup.toast.settingsError': 'No se pudieron guardar los ajustes',
|
|
'backup.auto.title': 'Copia automática',
|
|
'backup.auto.subtitle': 'Copia de seguridad automática según una programación',
|
|
'backup.auto.enable': 'Activar copia automática',
|
|
'backup.auto.enableHint': 'Se crearán copias automáticamente según la frecuencia elegida',
|
|
'backup.auto.interval': 'Intervalo',
|
|
'backup.auto.keepLabel': 'Eliminar copias antiguas después de',
|
|
'backup.interval.hourly': 'Cada hora',
|
|
'backup.interval.daily': 'Diaria',
|
|
'backup.interval.weekly': 'Semanal',
|
|
'backup.interval.monthly': 'Mensual',
|
|
'backup.keep.1day': '1 día',
|
|
'backup.keep.3days': '3 días',
|
|
'backup.keep.7days': '7 días',
|
|
'backup.keep.14days': '14 días',
|
|
'backup.keep.30days': '30 días',
|
|
'backup.keep.forever': 'Conservar para siempre',
|
|
|
|
// Photos
|
|
'photos.allDays': 'Todos los días',
|
|
'photos.title': 'Recuerdos',
|
|
'photos.noPhotos': 'Aún no hay fotos',
|
|
'photos.uploadHint': 'Sube y organiza las fotos compartidas de este viaje',
|
|
'photos.clickToSelect': 'o haz clic para seleccionar',
|
|
'photos.dropHere': 'Suelta aquí las fotos...',
|
|
'photos.dropTitle': 'Suelta aquí las fotos',
|
|
'photos.fileHint': 'JPG, PNG, GIF, WebP · máx. 10 MB · hasta 30 fotos',
|
|
'photos.selectedCount': '{count} foto(s) seleccionada(s)',
|
|
'photos.sharedAlbum': '{count} recuerdos en este álbum compartido',
|
|
'photos.sharedAlbumFor': '{count} recuerdos en {trip}',
|
|
'photos.allPlaces': 'Todos los lugares',
|
|
'photos.view.grid': 'Cuadrícula',
|
|
'photos.view.day': 'Por día',
|
|
'photos.view.place': 'Por lugar',
|
|
'photos.stats.total': 'Fotos',
|
|
'photos.stats.days': 'Días',
|
|
'photos.stats.places': 'Lugares',
|
|
'photos.stats.latest': 'Última subida',
|
|
'photos.sectionCount': '{count} foto(s)',
|
|
'photos.ungrouped': 'Sin clasificar',
|
|
'photos.featured': 'Recuerdo destacado',
|
|
'photos.coverFallback': 'Portada del álbum compartido',
|
|
'photos.coverHint': 'Una imagen destacada para este álbum de viaje',
|
|
'photos.mapTitle': 'Mapa de recuerdos',
|
|
'photos.mapHint': 'Explora los lugares vinculados en el mismo mapa que usamos en el plan',
|
|
'photos.mapEmpty': 'Vincula tus fotos a lugares para verlas ubicadas en el mapa.',
|
|
'photos.linkDay': 'Vincular día',
|
|
'photos.noDay': 'Sin día',
|
|
'photos.linkPlace': 'Vincular lugar',
|
|
'photos.noPlace': 'Sin lugar',
|
|
'photos.captionLabel': 'Pie de foto (para todas)',
|
|
'photos.captionPlaceholder': 'Pie de foto opcional...',
|
|
'photos.addCaption': 'Añadir un pie de foto...',
|
|
'photos.uploadN': 'Subida de {n} foto(s)',
|
|
'admin.addons.catalog.memories.name': 'Recuerdos',
|
|
'admin.addons.catalog.memories.description': 'Álbumes de fotos compartidos para cada viaje',
|
|
'admin.addons.catalog.packing.name': 'Equipaje',
|
|
'admin.addons.catalog.packing.description': 'Prepara tu equipaje con listas de comprobación para cada viaje',
|
|
'admin.addons.catalog.budget.name': 'Presupuesto',
|
|
'admin.addons.catalog.budget.description': 'Controla los gastos y planifica el presupuesto del viaje',
|
|
'admin.addons.catalog.documents.name': 'Documentos',
|
|
'admin.addons.catalog.documents.description': 'Guarda y gestiona la documentación del viaje',
|
|
'admin.addons.catalog.vacay.name': 'Vacaciones',
|
|
'admin.addons.catalog.vacay.description': 'Planificador personal de vacaciones con vista de calendario',
|
|
'admin.addons.catalog.atlas.name': 'Atlas',
|
|
'admin.addons.catalog.atlas.description': 'Mapa del mundo con los países visitados y estadísticas de viaje',
|
|
'admin.addons.catalog.collab.name': 'Colaboración',
|
|
'admin.addons.catalog.collab.description': 'Notas, encuestas y chat en tiempo real para organizar el viaje',
|
|
|
|
// Backup restore modal
|
|
'backup.restoreConfirmTitle': '¿Restaurar copia?',
|
|
'backup.restoreWarning': 'Todos los datos actuales (viajes, lugares, usuarios, subidas) serán reemplazados permanentemente por la copia. Esta acción no se puede deshacer.',
|
|
'backup.restoreTip': 'Consejo: crea una copia del estado actual antes de restaurar.',
|
|
'backup.restoreConfirm': 'Sí, restaurar',
|
|
|
|
// PDF
|
|
'pdf.travelPlan': 'Plan de viaje',
|
|
'pdf.planned': 'Planificado',
|
|
'pdf.costLabel': 'Coste EUR',
|
|
'pdf.preview': 'Vista previa PDF',
|
|
'pdf.saveAsPdf': 'Guardar como PDF',
|
|
|
|
// Planner
|
|
'planner.places': 'Lugares',
|
|
'planner.bookings': 'Reservas',
|
|
'planner.packingList': 'Lista de equipaje',
|
|
'planner.documents': 'Documentos',
|
|
'planner.dayPlan': 'Plan por días',
|
|
'planner.reservations': 'Reservas',
|
|
'planner.minTwoPlaces': 'Se necesitan al menos 2 lugares con coordenadas',
|
|
'planner.noGeoPlaces': 'No hay lugares con coordenadas disponibles',
|
|
'planner.routeCalculated': 'Ruta calculada',
|
|
'planner.routeCalcFailed': 'No se pudo calcular la ruta',
|
|
'planner.routeError': 'Error al calcular la ruta',
|
|
'planner.routeOptimized': 'Ruta optimizada',
|
|
'planner.reservationUpdated': 'Reserva actualizada',
|
|
'planner.reservationAdded': 'Reserva añadida',
|
|
'planner.confirmDeleteReservation': '¿Eliminar reserva?',
|
|
'planner.reservationDeleted': 'Reserva eliminada',
|
|
'planner.days': 'Días',
|
|
'planner.allPlaces': 'Todos los lugares',
|
|
'planner.totalPlaces': '{n} lugares en total',
|
|
'planner.noDaysPlanned': 'Aún no hay días planificados',
|
|
'planner.editTrip': 'Editar viaje →',
|
|
'planner.placeOne': '1 lugar',
|
|
'planner.placeN': '{n} lugares',
|
|
'planner.addNote': 'Añadir nota',
|
|
'planner.noEntries': 'No hay entradas para este día',
|
|
'planner.addPlace': 'Añadir lugar/actividad',
|
|
'planner.addPlaceShort': '+ Añadir lugar/actividad',
|
|
'planner.resPending': 'Reserva pendiente · ',
|
|
'planner.resConfirmed': 'Reserva confirmada · ',
|
|
'planner.notePlaceholder': 'Nota…',
|
|
'planner.noteTimePlaceholder': 'Hora (opcional)',
|
|
'planner.noteExamplePlaceholder': 'p. ej. S3 a las 14:30 desde la estación central, ferry desde el muelle 7, pausa para comer…',
|
|
'planner.totalCost': 'Coste total',
|
|
'planner.searchPlaces': 'Buscar lugares…',
|
|
'planner.allCategories': 'Todas las categorías',
|
|
'planner.noPlacesFound': 'No se encontraron lugares',
|
|
'planner.addFirstPlace': 'Añadir el primer lugar',
|
|
'planner.noReservations': 'Sin reservas',
|
|
'planner.addFirstReservation': 'Añadir la primera reserva',
|
|
'planner.new': 'Nuevo',
|
|
'planner.addToDay': '+ Día',
|
|
'planner.calculating': 'Calculando…',
|
|
'planner.route': 'Ruta',
|
|
'planner.optimize': 'Optimizar',
|
|
'planner.openGoogleMaps': 'Abrir en Google Maps',
|
|
'planner.selectDayHint': 'Selecciona un día de la lista izquierda para ver su plan',
|
|
'planner.noPlacesForDay': 'Aún no hay lugares para este día',
|
|
'planner.addPlacesLink': 'Añadir lugares →',
|
|
'planner.minTotal': 'min en total',
|
|
'planner.noReservation': 'Sin reserva',
|
|
'planner.removeFromDay': 'Quitar del día',
|
|
'planner.addToThisDay': 'Añadir al día',
|
|
'planner.overview': 'Vista general',
|
|
'planner.noDays': 'No hay días todavía',
|
|
'planner.editTripToAddDays': 'Edita el viaje para añadir días',
|
|
'planner.dayCount': '{n} días',
|
|
'planner.clickToUnlock': 'Haz clic para desbloquear',
|
|
'planner.keepPosition': 'Mantener posición durante la optimización de ruta',
|
|
'planner.dayDetails': 'Detalles del día',
|
|
'planner.dayN': 'Día {n}',
|
|
'planner.notes': 'Notas',
|
|
'planner.addDayNote': 'Añadir notas para este día...',
|
|
|
|
// Dashboard Stats
|
|
'stats.countries': 'Países',
|
|
'stats.cities': 'Ciudades',
|
|
'stats.trips': 'Viajes',
|
|
'stats.places': 'Lugares',
|
|
'stats.worldProgress': 'Progreso mundial',
|
|
'stats.visited': 'visitados',
|
|
'stats.remaining': 'restantes',
|
|
'stats.visitedCountries': 'Países visitados',
|
|
|
|
// Day Detail Panel
|
|
'day.precipProb': 'Probabilidad de lluvia',
|
|
'day.precipitation': 'Precipitación',
|
|
'day.wind': 'Viento',
|
|
'day.sunrise': 'Amanecer',
|
|
'day.sunset': 'Atardecer',
|
|
'day.hourlyForecast': 'Pronóstico por horas',
|
|
'day.climateHint': 'Promedios históricos: el pronóstico real está disponible dentro de los 16 días previos a la fecha.',
|
|
'day.noWeather': 'No hay datos meteorológicos disponibles. Añade un lugar con coordenadas.',
|
|
'day.overview': 'Resumen diario',
|
|
'day.accommodation': 'Alojamiento',
|
|
'day.addAccommodation': 'Añadir alojamiento',
|
|
'day.hotelDayRange': 'Aplicar a los días',
|
|
'day.noPlacesForHotel': 'Añade primero lugares al viaje',
|
|
'day.allDays': 'Todos',
|
|
'day.checkIn': 'Check-in',
|
|
'day.checkOut': 'Check-out',
|
|
'day.confirmation': 'Confirmación',
|
|
'day.editAccommodation': 'Editar alojamiento',
|
|
'day.reservations': 'Reservas',
|
|
|
|
// Collab Addon
|
|
'collab.tabs.chat': 'Mensajes',
|
|
'collab.tabs.notes': 'Notas',
|
|
'collab.tabs.polls': 'Encuestas',
|
|
'collab.whatsNext.title': 'Qué viene ahora',
|
|
'collab.whatsNext.today': 'Hoy',
|
|
'collab.whatsNext.tomorrow': 'Mañana',
|
|
'collab.whatsNext.empty': 'No hay actividades próximas',
|
|
'collab.whatsNext.until': 'hasta',
|
|
'collab.whatsNext.emptyHint': 'Las actividades con hora aparecerán aquí',
|
|
'collab.chat.send': 'Enviar',
|
|
'collab.chat.placeholder': 'Escribe un mensaje...',
|
|
'collab.chat.empty': 'Empieza la conversación',
|
|
'collab.chat.emptyHint': 'Los mensajes se comparten con todos los miembros del viaje',
|
|
'collab.chat.emptyDesc': 'Comparte ideas, planes y novedades con tu grupo de viaje',
|
|
'collab.chat.today': 'Hoy',
|
|
'collab.chat.yesterday': 'Ayer',
|
|
'collab.chat.deletedMessage': 'eliminó un mensaje',
|
|
'collab.chat.loadMore': 'Cargar mensajes anteriores',
|
|
'collab.chat.justNow': 'justo ahora',
|
|
'collab.chat.minutesAgo': 'hace {n} min',
|
|
'collab.chat.hoursAgo': 'hace {n} h',
|
|
'collab.notes.title': 'Notas',
|
|
'collab.notes.new': 'Nueva nota',
|
|
'collab.notes.empty': 'Aún no hay notas',
|
|
'collab.notes.emptyHint': 'Empieza a capturar ideas y planes',
|
|
'collab.notes.all': 'Todas',
|
|
'collab.notes.titlePlaceholder': 'Título de la nota',
|
|
'collab.notes.contentPlaceholder': 'Escribe algo...',
|
|
'collab.notes.categoryPlaceholder': 'Categoría',
|
|
'collab.notes.newCategory': 'Nueva categoría...',
|
|
'collab.notes.category': 'Categoría',
|
|
'collab.notes.noCategory': 'Sin categoría',
|
|
'collab.notes.color': 'Color',
|
|
'collab.notes.save': 'Guardar',
|
|
'collab.notes.cancel': 'Cancelar',
|
|
'collab.notes.edit': 'Editar',
|
|
'collab.notes.delete': 'Eliminar',
|
|
'collab.notes.pin': 'Fijar',
|
|
'collab.notes.unpin': 'Desfijar',
|
|
'collab.notes.daysAgo': 'hace {n} d',
|
|
'collab.notes.categorySettings': 'Gestionar categorías',
|
|
'collab.notes.create': 'Crear',
|
|
'collab.notes.website': 'Sitio web',
|
|
'collab.notes.websitePlaceholder': 'https://...',
|
|
'collab.notes.attachFiles': 'Adjuntar archivos',
|
|
'collab.notes.noCategoriesYet': 'Aún no hay categorías',
|
|
'collab.notes.emptyDesc': 'Crea una nota para empezar',
|
|
'collab.polls.title': 'Encuestas',
|
|
'collab.polls.new': 'Nueva encuesta',
|
|
'collab.polls.empty': 'Aún no hay encuestas',
|
|
'collab.polls.emptyHint': 'Pregunta al grupo y votad juntos',
|
|
'collab.polls.question': 'Pregunta',
|
|
'collab.polls.questionPlaceholder': '¿Qué deberíamos hacer?',
|
|
'collab.polls.addOption': '+ Añadir opción',
|
|
'collab.polls.optionPlaceholder': 'Opción {n}',
|
|
'collab.polls.create': 'Crear encuesta',
|
|
'collab.polls.close': 'Cerrar',
|
|
'collab.polls.closed': 'Cerrada',
|
|
'collab.polls.votes': '{n} votos',
|
|
'collab.polls.vote': '{n} voto',
|
|
'collab.polls.multipleChoice': 'Selección múltiple',
|
|
'collab.polls.multiChoice': 'Selección múltiple',
|
|
'collab.polls.deadline': 'Fecha límite',
|
|
'collab.polls.option': 'Opción',
|
|
'collab.polls.options': 'Opciones',
|
|
'collab.polls.delete': 'Eliminar',
|
|
'collab.polls.closedSection': 'Cerradas',
|
|
}
|
|
|
|
export default es
|