22ec13e559
* Adding flexible reminder options to birthdays * Fix database migration merge conflict * Truncate calendar popup descriptions * Log app version on backend startup * Add host-mounted data and backup folders * feat: add housekeeping module * fix: align housekeeping UI and add task creation * refactor: rebuild housekeeping experience * feat: support multiple housekeeping staff * feat: integrate housekeeping visits with calendar * feat: refine housekeeping visits and payments * feat: add housekeeping staff visit logs * feat: add housekeeping receipts and document folders * feat: localize housekeeping folders and chores * feat: refine housekeeping tabs and document folders * fix: sync housekeeping tab active state * feat: use configured app name in onboarding and manifest
1463 lines
59 KiB
JSON
1463 lines
59 KiB
JSON
{
|
||
"common": {
|
||
"save": "Guardar",
|
||
"cancel": "Cancelar",
|
||
"delete": "Eliminar",
|
||
"edit": "Editar",
|
||
"close": "Cerrar",
|
||
"create": "Crear",
|
||
"add": "Añadir",
|
||
"back": "Atrás",
|
||
"next": "Siguiente",
|
||
"loading": "Cargando…",
|
||
"saving": "Guardando…",
|
||
"required": "Este campo es obligatorio.",
|
||
"error": "Error",
|
||
"allFieldsRequired": "Por favor, rellena todos los campos.",
|
||
"today": "Hoy",
|
||
"tomorrow": "Mañana",
|
||
"skipToContent": "Saltar al contenido",
|
||
"reload": "Recargar",
|
||
"errorOccurred": "Algo ha salido mal.",
|
||
"unexpectedError": "Se ha producido un error inesperado.",
|
||
"errorGeneric": "Se ha producido un error.",
|
||
"updateAvailable": "Actualización disponible - recarga la página para obtener la última versión.",
|
||
"titleRequired": "El título es obligatorio",
|
||
"nameRequired": "El nombre es obligatorio",
|
||
"contentRequired": "El contenido es obligatorio",
|
||
"all": "Todo",
|
||
"unknownError": "Error desconocido",
|
||
"confirm": "Confirmar",
|
||
"undo": "Deshacer",
|
||
"reset": "Restaurar original",
|
||
"errorOffline": "Sin conexión a internet. Por favor, revisa tu red.",
|
||
"errorForbidden": "Acceso denegado. Por favor, inicia sesión de nuevo.",
|
||
"errorNotFound": "No se encontró el registro.",
|
||
"errorServer": "Error del servidor. Por favor, inténtalo más tarde.",
|
||
"errorTimeout": "La conexión tardó demasiado. Por favor, inténtalo de nuevo."
|
||
},
|
||
"nav": {
|
||
"dashboard": "Inicio",
|
||
"tasks": "Tareas",
|
||
"calendar": "Calendario",
|
||
"meals": "Comidas",
|
||
"shopping": "Compras",
|
||
"notes": "Notas",
|
||
"contacts": "Contactos",
|
||
"birthdays": "Cumpleaños",
|
||
"budget": "Presupuesto",
|
||
"settings": "Ajustes",
|
||
"main": "Navegación principal",
|
||
"navigation": "Navegación",
|
||
"quickActions": "Acciones rápidas",
|
||
"recipes": "Recetas",
|
||
"more": "Más",
|
||
"documents": "Documentos",
|
||
"kitchen": "Cocina",
|
||
"search": "Buscar",
|
||
"housekeeping": "Limpieza"
|
||
},
|
||
"dashboard": {
|
||
"title": "Inicio",
|
||
"greetingMorning": "Buenos días, {{name}}",
|
||
"greetingDay": "Buenas tardes, {{name}}",
|
||
"greetingEvening": "Buenas noches, {{name}}",
|
||
"allDone": "Todo listo",
|
||
"noEvents": "Sin eventos",
|
||
"noPinnedNotes": "Sin notas fijadas",
|
||
"todayMeals": "Comidas de hoy",
|
||
"allLink": "Todo",
|
||
"weekLink": "Semana",
|
||
"urgentTasksChip": "{{count}} tarea por vencer",
|
||
"urgentTasksChipPlural": "{{count}} tareas por vencer",
|
||
"eventsChip": "{{count}} evento hoy",
|
||
"eventsChipPlural": "{{count}} eventos hoy",
|
||
"todayMealChip": "Hoy: {{title}}",
|
||
"loadError": "No se pudo cargar el panel completamente.",
|
||
"weatherRefresh": "Actualizar tiempo",
|
||
"weatherRefreshTitle": "Actualizar",
|
||
"weatherUpdated": "Tiempo actualizado",
|
||
"weatherFeelsLike": "Sensación {{temp}}° · {{humidity}}% · Viento {{wind}} {{windUnit}}",
|
||
"fabTaskLabel": "Añadir tarea",
|
||
"fabCalendarLabel": "Añadir evento",
|
||
"fabShoppingLabel": "Añadir compra",
|
||
"fabNoteLabel": "Añadir nota",
|
||
"fabTask": "Tarea",
|
||
"fabCalendar": "Evento",
|
||
"fabShopping": "Compra",
|
||
"fabNote": "Nota",
|
||
"overdue": "Vencida",
|
||
"dueSoon": "Vence hoy",
|
||
"dueToday": "Vence hoy",
|
||
"dueTomorrow": "Vence mañana",
|
||
"allDay": "Todo el día",
|
||
"shoppingMore": "+{{count}} más",
|
||
"weather": "Clima",
|
||
"familyMembers": "Miembros de la familia",
|
||
"participantsAdded": "participantes añadidos",
|
||
"upcomingBirthdays": "Próximos cumpleaños",
|
||
"noBirthdays": "Aún no hay cumpleaños",
|
||
"daysLeft": "{{count}} días",
|
||
"budgetOverview": "Resumen del presupuesto",
|
||
"monthlyIncome": "Ingresos",
|
||
"monthlyExpenses": "Gastos",
|
||
"monthlyBalance": "Saldo",
|
||
"savingsRate": "Tasa de ahorro",
|
||
"topExpense": "Mayor gasto",
|
||
"budgetEntries": "Movimientos",
|
||
"noBudgetData": "No hay datos de presupuesto este mes.",
|
||
"customize": "Personalizar",
|
||
"customizeTitle": "Personalizar widgets",
|
||
"customizeReset": "Restablecer",
|
||
"customizeSaved": "Panel guardado",
|
||
"customizeMoveUp": "Subir",
|
||
"customizeMoveDown": "Bajar",
|
||
"overdueTasksChip": "{{count}} tarea vencida",
|
||
"overdueTasksChipPlural": "{{count}} tareas vencidas",
|
||
"customizeManage": "Widgets",
|
||
"customizeExit": "Salir de personalización",
|
||
"customizeDrag": "Arrastrar widget",
|
||
"customizeSize": "Tamaño",
|
||
"customizeSizeFor": "Tamaño de {{widget}}",
|
||
"customizeHide": "Ocultar {{widget}}",
|
||
"widgetSizeTiny": "Pequeño (1×1)",
|
||
"widgetSizeNarrow": "Estrecho (2×1)",
|
||
"widgetSizeStandard": "Estándar (2×2)",
|
||
"widgetSizeLarge": "Grande (3×2)",
|
||
"widgetSizeFull": "Completo (4×2)"
|
||
},
|
||
"tasks": {
|
||
"title": "Tareas",
|
||
"newTask": "Nueva tarea",
|
||
"editTask": "Editar tarea",
|
||
"emptyTitle": "Sin tareas - ¿todo hecho?",
|
||
"emptyDescription": "Crea nuevas tareas con el botón +.",
|
||
"titleLabel": "Título *",
|
||
"titlePlaceholder": "¿Qué hay que hacer?",
|
||
"descriptionLabel": "Nota",
|
||
"descriptionPlaceholder": "Detalles opcionales…",
|
||
"priorityLabel": "Prioridad",
|
||
"categoryLabel": "Categoría",
|
||
"dueDateLabel": "Fecha límite",
|
||
"dueTimeLabel": "Hora",
|
||
"assignedLabel": "Asignado a",
|
||
"assignedNobody": "- Nadie -",
|
||
"statusLabel": "Estado",
|
||
"priorityUrgent": "Urgente",
|
||
"priorityHigh": "Alta",
|
||
"priorityMedium": "Media",
|
||
"priorityLow": "Baja",
|
||
"priorityNone": "Ninguna",
|
||
"statusOpen": "Abierta",
|
||
"statusInProgress": "En progreso",
|
||
"statusDone": "Completada",
|
||
"categoryHousehold": "Hogar",
|
||
"categorySchool": "Escuela",
|
||
"categoryShopping": "Compras",
|
||
"categoryRepair": "Reparación",
|
||
"categoryHealth": "Salud",
|
||
"categoryFinance": "Finanzas",
|
||
"categoryLeisure": "Ocio",
|
||
"categoryMisc": "Otros",
|
||
"overdue": "Vencida",
|
||
"overdueDay": "{{count}}d de retraso",
|
||
"dueToday": "Vence hoy",
|
||
"dueTomorrow": "Vence mañana",
|
||
"groupOverdue": "Vencidas",
|
||
"groupToday": "Hoy",
|
||
"groupThisWeek": "Esta semana",
|
||
"groupNextWeek": "Próxima semana",
|
||
"groupLater": "Más tarde",
|
||
"groupNoDate": "Sin fecha",
|
||
"markDone": "Marcar {{title}} como completada",
|
||
"markOpen": "Marcar {{title}} como pendiente",
|
||
"editButton": "Editar tarea",
|
||
"swipeOpen": "Abrir",
|
||
"swipeDone": "Completar",
|
||
"swipeEdit": "Editar",
|
||
"subtaskAdd": "+ Añadir subtarea",
|
||
"subtaskToggle": "Mostrar subtareas",
|
||
"subtaskMarkDone": "Marcar {{title}} como completada",
|
||
"deleteConfirm": "¿Eliminar tarea y todas sus subtareas?",
|
||
"savedToast": "Tarea guardada.",
|
||
"createdToast": "Tarea creada.",
|
||
"deletedToast": "Tarea eliminada.",
|
||
"loadError": "No se pudo cargar la tarea.",
|
||
"subtaskPrompt": "Subtarea:",
|
||
"kanbanOpen": "Abierta",
|
||
"kanbanInProgress": "En progreso",
|
||
"kanbanDone": "Completada",
|
||
"kanbanMoveToInProgress": "Mover a en progreso",
|
||
"kanbanMoveToDone": "Marcar como completada",
|
||
"kanbanMoveToOpen": "Reabrir",
|
||
"recurring": "Recurrente",
|
||
"listView": "Vista de lista",
|
||
"kanbanView": "Vista Kanban",
|
||
"filterBtn": "Filtrar",
|
||
"filterClearAll": "Borrar todos los filtros",
|
||
"filterGroupPerson": "Persona",
|
||
"filterGroupPriority": "Prioridad",
|
||
"filterGroupStatus": "Estado",
|
||
"swipedDoneToast": "Marcado como hecho.",
|
||
"swipedOpenToast": "Marcado como abierto.",
|
||
"statusArchived": "Archivado",
|
||
"archiveButton": "Archivar tarea",
|
||
"archivedToast": "Tarea archivada.",
|
||
"kanbanArchived": "Archivado",
|
||
"reminderNeedsDueDate": "Establece una fecha de vencimiento para activar los recordatorios de tareas.",
|
||
"emptyAction": "Crear tarea",
|
||
"navLabelOverdue": "Tareas, {{count}} vencidas",
|
||
"bulkArchive": "Archive",
|
||
"bulkArchived": "Tasks archived.",
|
||
"bulkDelete": "Delete",
|
||
"bulkDeleteConfirm": "Delete {{count}} tasks permanently?",
|
||
"bulkDeleted": "Tasks deleted.",
|
||
"bulkMarkDone": "Mark done",
|
||
"bulkMarkOpen": "Mark open",
|
||
"bulkSelect": "Bulk select",
|
||
"bulkSelectedCount": "{{count}} selected",
|
||
"bulkStatusChanged": "Status changed.",
|
||
"selectTask": "Select task"
|
||
},
|
||
"shopping": {
|
||
"title": "Compras",
|
||
"noLists": "Sin listas",
|
||
"noListsDescription": "Crea una lista con el botón +.",
|
||
"emptyList": "La lista está vacía",
|
||
"emptyListDescription": "Añade artículos en el campo de arriba.",
|
||
"newListPrompt": "Nombre de la nueva lista:",
|
||
"newListButton": "Crear nueva lista",
|
||
"renameListPrompt": "Nuevo nombre de lista:",
|
||
"deleteListConfirm": "¿Eliminar lista «{{name}}» y todos sus artículos?",
|
||
"deletedListToast": "Lista eliminada.",
|
||
"itemDeletedToast": "«{{name}}» eliminado.",
|
||
"itemsRemovedToast": "{{count}} artículos eliminados.",
|
||
"clearChecked": "Eliminar marcados ({{count}})",
|
||
"itemNamePlaceholder": "Añadir artículo…",
|
||
"itemQtyPlaceholder": "Cantidad",
|
||
"itemNameLabel": "Nombre del artículo",
|
||
"itemQtyLabel": "Cantidad",
|
||
"categoryLabel": "Categoría",
|
||
"addItemLabel": "Añadir artículo",
|
||
"renameListLabel": "Renombrar lista",
|
||
"deleteListLabel": "Eliminar lista",
|
||
"swipeBack": "Atrás",
|
||
"swipeCheck": "Marcar",
|
||
"swipeDelete": "Eliminar",
|
||
"markDoneLabel": "Marcar {{name}}",
|
||
"markUndoneLabel": "Desmarcar {{name}}",
|
||
"deleteItemLabel": "Eliminar {{name}}",
|
||
"listsLoadError": "No se pudieron cargar las listas.",
|
||
"itemsLoadError": "No se pudieron cargar los artículos.",
|
||
"catFruitVeg": "Frutas y verduras",
|
||
"catBakery": "Panadería",
|
||
"catDairy": "Lácteos",
|
||
"catMeatFish": "Carne y pescado",
|
||
"catFrozen": "Congelados",
|
||
"catDrinks": "Bebidas",
|
||
"catHousehold": "Hogar",
|
||
"catDrugstore": "Droguería",
|
||
"catMisc": "Otros",
|
||
"emptyAction": "Agregar artículo"
|
||
},
|
||
"meals": {
|
||
"title": "Plan de comidas",
|
||
"noMealPlanned": "Sin comida planificada",
|
||
"addMeal": "Añadir {{type}}",
|
||
"editMeal": "Editar comida",
|
||
"addMealTitle": "Añadir comida",
|
||
"deleteMeal": "Eliminar comida",
|
||
"transferToShoppingList": "Ingredientes a la lista de compras",
|
||
"today": "Hoy",
|
||
"prevWeek": "Semana anterior",
|
||
"nextWeek": "Semana siguiente",
|
||
"loadError": "No se pudo cargar el plan de comidas.",
|
||
"typeBreakfast": "Desayuno",
|
||
"typeLunch": "Almuerzo",
|
||
"typeDinner": "Cena",
|
||
"typeSnack": "Merienda",
|
||
"dayMo": "Lu",
|
||
"dayDi": "Ma",
|
||
"dayMi": "Mi",
|
||
"dayDo": "Ju",
|
||
"dayFr": "Vi",
|
||
"daySa": "Sá",
|
||
"daySo": "Do",
|
||
"dateLabel": "Fecha",
|
||
"mealTypeLabel": "Comida",
|
||
"titleLabel": "Título *",
|
||
"titlePlaceholder": "Ej. Espagueti a la boloñesa",
|
||
"notesLabel": "Notas",
|
||
"notesPlaceholder": "Opcional…",
|
||
"ingredientsLabel": "Ingredientes",
|
||
"addIngredient": "Añadir ingrediente",
|
||
"ingredientNamePlaceholder": "Ingrediente",
|
||
"ingredientQtyPlaceholder": "Cantidad",
|
||
"ingredientCategoryLabel": "Categoría",
|
||
"ingredientCategoryDefault": "Varios",
|
||
"removeIngredient": "Eliminar ingrediente",
|
||
"transferLabel": "Transferir ingredientes a la lista de compras",
|
||
"transferNow": "Transferir ahora",
|
||
"noShoppingLists": "No hay listas de compras",
|
||
"transferSuccess": "{{count}} ingrediente transferido",
|
||
"transferSuccessPlural": "{{count}} ingredientes transferidos",
|
||
"transferAlreadyDone": "Todos los ingredientes ya han sido transferidos",
|
||
"ingredientCount": "{{count}} ingrediente",
|
||
"ingredientCountPlural": "{{count}} ingredientes",
|
||
"titleRequired": "El título es obligatorio",
|
||
"loadingIndicator": "Cargando…",
|
||
"recipeUrlLabel": "Enlace a la receta (opcional)",
|
||
"recipeUrlPlaceholder": "https://…",
|
||
"openRecipe": "Abrir receta",
|
||
"savedRecipeLabel": "Saved recipe",
|
||
"savedRecipePlaceholder": "Select recipe",
|
||
"saveAsRecipe": "Save as recipe",
|
||
"recipeScaleLabel": "Scale ingredients",
|
||
"deletedToast": "Meal deleted"
|
||
},
|
||
"calendar": {
|
||
"title": "Calendario",
|
||
"newEvent": "Nuevo evento",
|
||
"editEvent": "Editar evento",
|
||
"addEvent": "Añadir evento",
|
||
"deleteEvent": "Eliminar evento",
|
||
"noEvents": "Sin eventos en el período seleccionado.",
|
||
"today": "Hoy",
|
||
"back": "Atrás",
|
||
"forward": "Siguiente",
|
||
"viewMonth": "Mes",
|
||
"viewWeek": "Semana",
|
||
"viewDay": "Día",
|
||
"viewAgenda": "Agenda",
|
||
"allDay": "Todo el día",
|
||
"allDayShort": "todo el día",
|
||
"moreEvents": "+{{count}} más",
|
||
"weekNumberLabel": "Sem. {{week}} · {{month}} {{year}}",
|
||
"agendaFrom": "Desde {{date}}",
|
||
"titleLabel": "Título *",
|
||
"titlePlaceholder": "Ej. Dentista",
|
||
"allDayToggle": "Todo el día",
|
||
"startDateLabel": "Fecha de inicio",
|
||
"startTimeLabel": "Hora de inicio",
|
||
"endDateLabel": "Fecha de fin",
|
||
"endTimeLabel": "Hora de fin",
|
||
"fromLabel": "De",
|
||
"toLabel": "A",
|
||
"locationLabel": "Lugar",
|
||
"locationPlaceholder": "Opcional",
|
||
"assignedLabel": "Asignado a",
|
||
"assignedNobody": "- Nadie -",
|
||
"colorLabel": "Color {{color}}",
|
||
"descriptionLabel": "Descripción",
|
||
"descriptionPlaceholder": "Opcional…",
|
||
"popupEdit": "Editar",
|
||
"deleteConfirm": "¿Eliminar «{{title}}»?",
|
||
"createdToast": "Evento creado",
|
||
"savedToast": "Evento guardado",
|
||
"deletedToast": "Evento eliminado",
|
||
"loadError": "No se pudieron cargar los eventos.",
|
||
"saveError": "Error al guardar",
|
||
"deleteError": "Error al eliminar",
|
||
"titleRequired": "El título es obligatorio",
|
||
"monthJanuary": "Enero",
|
||
"monthFebruary": "Febrero",
|
||
"monthMarch": "Marzo",
|
||
"monthApril": "Abril",
|
||
"monthMay": "Mayo",
|
||
"monthJune": "Junio",
|
||
"monthJuly": "Julio",
|
||
"monthAugust": "Agosto",
|
||
"monthSeptember": "Septiembre",
|
||
"monthOctober": "Octubre",
|
||
"monthNovember": "Noviembre",
|
||
"monthDecember": "Diciembre",
|
||
"dayShortSunday": "Do",
|
||
"dayShortMonday": "Lu",
|
||
"dayShortTuesday": "Ma",
|
||
"dayShortWednesday": "Mi",
|
||
"dayShortThursday": "Ju",
|
||
"dayShortFriday": "Vi",
|
||
"dayShortSaturday": "Sá",
|
||
"dayLongSunday": "Domingo",
|
||
"dayLongMonday": "Lunes",
|
||
"dayLongTuesday": "Martes",
|
||
"dayLongWednesday": "Miércoles",
|
||
"dayLongThursday": "Jueves",
|
||
"dayLongFriday": "Viernes",
|
||
"dayLongSaturday": "Sábado",
|
||
"timeSuffix": "",
|
||
"ics": {
|
||
"reset": "Restaurar original",
|
||
"resetToast": "Cambios restablecidos."
|
||
},
|
||
"iconLabel": "Icon",
|
||
"iconSearchPlaceholder": "Buscar icono...",
|
||
"iconSearchEmpty": "No se encontró ningún icono.",
|
||
"iconCategoryGeneral": "General",
|
||
"iconCategoryHealth": "Salud y Deporte",
|
||
"iconCategoryTransport": "Movilidad y Viaje",
|
||
"iconCategoryWork": "Trabajo y Educación",
|
||
"iconCategoryFood": "Comida y Bebida",
|
||
"iconCategoryShopping": "Compras y Finanzas",
|
||
"iconCategoryLeisure": "Ocio y Entretenimiento",
|
||
"iconCategoryFamily": "Familia y Mascotas",
|
||
"iconCategoryHome": "Hogar y Casa",
|
||
"iconCategoryNature": "Naturaleza y Otros",
|
||
"iconCalendar": "Calendario",
|
||
"iconAlarm": "Alarma",
|
||
"iconClock": "Reloj",
|
||
"iconBell": "Recordatorio",
|
||
"iconLocation": "Ubicación",
|
||
"iconStar": "Favorito",
|
||
"iconFlag": "Bandera",
|
||
"iconTarget": "Meta",
|
||
"iconFlame": "Importante",
|
||
"iconTooth": "Dentista",
|
||
"iconHospital": "Hospital",
|
||
"iconDoctor": "Médico",
|
||
"iconVaccine": "Vacuna",
|
||
"iconMedicine": "Medicamento",
|
||
"iconBandage": "Vendaje",
|
||
"iconHealth": "Salud",
|
||
"iconActivity": "Actividad",
|
||
"iconHaircut": "Peluquería",
|
||
"iconSports": "Deporte",
|
||
"iconTrophy": "Competición",
|
||
"iconCar": "Coche",
|
||
"iconBus": "Autobús",
|
||
"iconTrain": "Tren",
|
||
"iconPlane": "Viaje",
|
||
"iconFlight": "Vuelo",
|
||
"iconFuel": "Repostar",
|
||
"iconNavigation": "Navegación",
|
||
"iconWork": "Trabajo",
|
||
"iconLaptop": "Portátil",
|
||
"iconPresentation": "Presentación",
|
||
"iconSchool": "Escuela",
|
||
"iconEducation": "Educación",
|
||
"iconReading": "Lectura",
|
||
"iconStudy": "Estudio",
|
||
"iconCalculator": "Calculadora",
|
||
"iconMeal": "Comida",
|
||
"iconCooking": "Cocinar",
|
||
"iconCoffee": "Café",
|
||
"iconCake": "Cumpleaños",
|
||
"iconPizza": "Pizza",
|
||
"iconWine": "Vino",
|
||
"iconBeer": "Bar",
|
||
"iconShopping": "Compras",
|
||
"iconGroceries": "Supermercado",
|
||
"iconGift": "Regalo",
|
||
"iconCard": "Tarjeta",
|
||
"iconWallet": "Cartera",
|
||
"iconSavings": "Ahorro",
|
||
"iconBank": "Banco",
|
||
"iconMusic": "Música",
|
||
"iconMovie": "Película",
|
||
"iconTicket": "Entrada",
|
||
"iconGame": "Juego",
|
||
"iconPhoto": "Foto",
|
||
"iconParty": "Fiesta",
|
||
"iconFamily": "Familia",
|
||
"iconBaby": "Bebé",
|
||
"iconDog": "Perro",
|
||
"iconCat": "Gato",
|
||
"iconPet": "Mascota",
|
||
"iconHome": "Hogar",
|
||
"iconBuilding": "Edificio",
|
||
"iconRepair": "Reparación",
|
||
"iconMaintenance": "Mantenimiento",
|
||
"iconDecoration": "Decoración",
|
||
"iconFurniture": "Muebles",
|
||
"iconLaundry": "Lavandería",
|
||
"iconLeaf": "Naturaleza",
|
||
"iconTree": "Árbol",
|
||
"iconFlower": "Flor",
|
||
"iconSun": "Día",
|
||
"iconMoon": "Noche",
|
||
"iconWeather": "Clima",
|
||
"invalidDate": "Use a valid date in the selected date format.",
|
||
"attachmentLabel": "Attachment",
|
||
"attachmentHint": "Attach a local image, PDF, or document. Images will be shown in the event popup.",
|
||
"attachmentFallback": "Attachment",
|
||
"attachmentReadError": "The attachment could not be read.",
|
||
"attachmentTooLarge": "Attachment may be at most 5 MB.",
|
||
"colorBlue": "Azul",
|
||
"colorCoral": "Coral",
|
||
"colorCyan": "Cian",
|
||
"colorGray": "Gris",
|
||
"colorGreen": "Verde",
|
||
"colorOrange": "Naranja",
|
||
"colorPurple": "Morado",
|
||
"colorRed": "Rojo",
|
||
"colorSkyBlue": "Azul cielo",
|
||
"colorYellow": "Amarillo",
|
||
"iconCleaning": "Limpieza",
|
||
"caldavTargetHint": "Choose a CalDAV calendar to sync this event.",
|
||
"caldavTargetLabel": "Sync to CalDAV",
|
||
"caldavTargetLocal": "Store locally only",
|
||
"attachmentDocumentName": "{{title}} - {{name}}",
|
||
"attachmentDocumentDescription": "Archivo adjunto subido para el evento de calendario \"{{title}}\"."
|
||
},
|
||
"notes": {
|
||
"title": "Notas",
|
||
"newNote": "Nueva nota",
|
||
"editNote": "Editar nota",
|
||
"addNoteLabel": "Nueva nota",
|
||
"searchPlaceholder": "Buscar notas…",
|
||
"emptyTitle": "Sin notas todavía",
|
||
"emptyDescription": "Crea una nueva nota con el botón +.",
|
||
"noResultsTitle": "Sin resultados",
|
||
"noResultsDescription": "Ninguna nota contiene «{{query}}».",
|
||
"titleLabel": "Título (opcional)",
|
||
"titlePlaceholder": "Sin título",
|
||
"contentLabel": "Contenido",
|
||
"contentMarkdownHint": "(se admite formato Markdown)",
|
||
"contentPlaceholder": "Escribe una nota…",
|
||
"colorLabel": "Color",
|
||
"pinnedLabel": "Fijar (aparece en el panel)",
|
||
"pinAction": "Fijar",
|
||
"unpinAction": "Desfijar",
|
||
"deleteLabel": "Eliminar nota",
|
||
"deleteConfirm": "¿Eliminar nota?",
|
||
"createdToast": "Nota creada",
|
||
"savedToast": "Nota guardada",
|
||
"deletedToast": "Nota eliminada",
|
||
"loadError": "No se pudieron cargar las notas.",
|
||
"formatBold": "Negrita (Ctrl+B)",
|
||
"formatItalic": "Cursiva (Ctrl+I)",
|
||
"formatUnderline": "Subrayado (Ctrl+U)",
|
||
"formatStrikethrough": "Tachado",
|
||
"formatHeading": "Encabezado",
|
||
"formatList": "Lista",
|
||
"formatOrderedList": "Lista numerada",
|
||
"formatChecklist": "Lista de verificación",
|
||
"formatLink": "Enlace",
|
||
"formatCode": "Código",
|
||
"formatQuote": "Cita",
|
||
"formatDivider": "Separador",
|
||
"emptyAction": "Crear nota",
|
||
"colorAmber": "Ámbar",
|
||
"colorBlue": "Azul",
|
||
"colorGreen": "Verde",
|
||
"colorOrange": "Naranja",
|
||
"colorPurple": "Morado",
|
||
"colorTeal": "Verde azulado",
|
||
"colorWhite": "Blanco",
|
||
"colorYellow": "Amarillo"
|
||
},
|
||
"contacts": {
|
||
"title": "Contactos",
|
||
"newContact": "Nuevo contacto",
|
||
"editContact": "Editar contacto",
|
||
"addButton": "Nuevo",
|
||
"newContactLabel": "Nuevo contacto",
|
||
"searchPlaceholder": "Buscar nombre, teléfono o email…",
|
||
"importButton": "Importar",
|
||
"importLabel": "Importar contacto desde vCard",
|
||
"importTooltip": "Importar vCard",
|
||
"emptyTitle": "Sin contactos todavía",
|
||
"emptyDescription": "Añade nuevos contactos con el botón +.",
|
||
"filterAll": "Todos",
|
||
"nameLabel": "Nombre *",
|
||
"namePlaceholder": "Nombre completo",
|
||
"categoryLabel": "Categoría",
|
||
"phoneLabel": "Teléfono",
|
||
"phonePlaceholder": "+34 …",
|
||
"emailLabel": "Email",
|
||
"emailPlaceholder": "nombre@ejemplo.es",
|
||
"addressLabel": "Dirección",
|
||
"addressPlaceholder": "Calle, código postal, ciudad",
|
||
"notesLabel": "Notas",
|
||
"notesPlaceholder": "Opcional…",
|
||
"callLabel": "Llamar",
|
||
"emailActionLabel": "Email",
|
||
"mapsLabel": "Abrir en Maps",
|
||
"exportLabel": "Exportar como vCard",
|
||
"exportTooltip": "Exportar vCard",
|
||
"deleteLabel": "Eliminar contacto",
|
||
"deleteConfirm": "¿Eliminar contacto?",
|
||
"deletePersonConfirm": "¿Eliminar «{{name}}»?",
|
||
"savedToast": "Contacto guardado",
|
||
"updatedToast": "Contacto actualizado",
|
||
"deletedToast": "Contacto eliminado",
|
||
"importedToast": "{{name}} importado.",
|
||
"importError": "Error al importar: {{error}}",
|
||
"vcardNoName": "La vCard no contiene nombre.",
|
||
"catDoctor": "Médico",
|
||
"catSchool": "Escuela/Guardería",
|
||
"catAuthority": "Administración",
|
||
"catInsurance": "Seguro",
|
||
"catCraftsman": "Artesano",
|
||
"catEmergency": "Emergencia",
|
||
"catMisc": "Otros",
|
||
"categoryDoctor": "Médico",
|
||
"categorySchool": "Escuela/Guardería",
|
||
"categoryAuthority": "Administración",
|
||
"categoryInsurance": "Seguro",
|
||
"categoryCraftsman": "Artesano",
|
||
"categoryEmergency": "Emergencia",
|
||
"categoryOther": "Otros",
|
||
"emptyAction": "Agregar contacto"
|
||
},
|
||
"budget": {
|
||
"title": "Presupuesto",
|
||
"newEntry": "Nueva entrada",
|
||
"editEntry": "Editar entrada",
|
||
"addEntryLabel": "Añadir entrada",
|
||
"newEntryFabLabel": "Nueva entrada",
|
||
"currentMonth": "Este mes",
|
||
"prevMonth": "Mes anterior",
|
||
"nextMonth": "Mes siguiente",
|
||
"income": "Ingresos",
|
||
"expenses": "Gastos",
|
||
"balance": "Saldo",
|
||
"byCategory": "Por categoría",
|
||
"transactions": "Transacciones",
|
||
"emptyTitle": "Sin entradas este mes",
|
||
"emptyDescription": "Añade entradas de presupuesto con el botón +.",
|
||
"csvExport": "CSV",
|
||
"typeExpense": "Gasto",
|
||
"typeIncome": "Ingreso",
|
||
"titleLabel": "Título *",
|
||
"titlePlaceholder": "Ej. Supermercado",
|
||
"amountLabel": "Importe *",
|
||
"amountPlaceholder": "0,00",
|
||
"categoryLabel": "Categoría",
|
||
"dateLabel": "Fecha *",
|
||
"recurringLabel": "Recurrente",
|
||
"deleteLabel": "Eliminar entrada",
|
||
"deleteConfirm": "¿Eliminar entrada?",
|
||
"deletePersonConfirm": "¿Eliminar «{{title}}»?",
|
||
"addedToast": "Entrada añadida",
|
||
"savedToast": "Entrada guardada",
|
||
"deletedToast": "Entrada eliminada",
|
||
"loadError": "No se pudo cargar el presupuesto.",
|
||
"trendNeutral": "- como {{month}}",
|
||
"validAmountRequired": "Introduce un importe válido",
|
||
"dateRequired": "La fecha es obligatoria",
|
||
"catFood": "Alimentación",
|
||
"catRent": "Alquiler",
|
||
"catInsurance": "Seguro",
|
||
"catMobility": "Movilidad",
|
||
"catLeisure": "Ocio y entretenimiento",
|
||
"catClothing": "Ropa",
|
||
"catHealth": "Salud",
|
||
"catEducation": "Educación",
|
||
"catMisc": "Otros",
|
||
"catEarnedIncome": "Ingresos del Trabajo",
|
||
"catInvestmentIncome": "Ingresos de Inversión",
|
||
"catTransferGiftIncome": "Transferencias y Regalos",
|
||
"catGovernmentBenefits": "Prestaciones Sociales",
|
||
"catOtherIncome": "Otros Ingresos",
|
||
"loadingIndicator": "Cargando…",
|
||
"subcategoryLabel": "Subcategoría",
|
||
"catHousing": "Vivienda / Casa",
|
||
"catTransport": "Transporte",
|
||
"catPersonalHealth": "Cuidado personal / Salud",
|
||
"catShoppingClothing": "Compras y ropa",
|
||
"catFinancialOther": "Servicios financieros y otros",
|
||
"subcatRentMortgage": "Alquiler / Hipoteca",
|
||
"subcatCondominium": "Comunidad",
|
||
"subcatUtilities": "Luz / Agua / Gas",
|
||
"subcatInternetTvPhone": "Internet / TV / Teléfono",
|
||
"subcatRenovationMaintenance": "Reforma / Mantenimiento",
|
||
"subcatCleaning": "Limpieza",
|
||
"subcatGroceries": "Supermercado",
|
||
"subcatRestaurantsBars": "Restaurantes / Bares",
|
||
"subcatSnacksFastFood": "Snacks / Comida rápida",
|
||
"subcatBakery": "Panadería",
|
||
"subcatFuel": "Combustible",
|
||
"subcatParkingTolls": "Aparcamiento / Peajes",
|
||
"subcatPublicTransport": "Transporte público",
|
||
"subcatAppsTaxi": "Apps / Taxi",
|
||
"subcatMaintenanceInsurance": "Mantenimiento / Seguro",
|
||
"subcatPharmacy": "Farmacia",
|
||
"subcatHealthInsurance": "Seguro médico",
|
||
"subcatGymSports": "Gimnasio / Deportes",
|
||
"subcatBeautyCosmetics": "Belleza / Cosmética",
|
||
"subcatTravel": "Viajes",
|
||
"subcatStreaming": "Streaming",
|
||
"subcatEvents": "Eventos",
|
||
"subcatHobbies": "Aficiones",
|
||
"subcatClothesShoes": "Ropa / Calzado",
|
||
"subcatElectronics": "Electrónica",
|
||
"subcatGifts": "Regalos",
|
||
"subcatCoursesCollege": "Cursos / Universidad",
|
||
"subcatSchoolSupplies": "Material escolar",
|
||
"subcatLanguages": "Idiomas",
|
||
"subcatLoansInterest": "Préstamos / Intereses",
|
||
"subcatBankFees": "Comisiones bancarias",
|
||
"subcatInsuranceOther": "Seguros",
|
||
"subcatInvestments": "Inversiones",
|
||
"subcatTaxes": "Impuestos",
|
||
"metaLoadError": "No se pudieron cargar las categorías del presupuesto.",
|
||
"addCategory": "+ categoría",
|
||
"addSubcategory": "+ subcategoría",
|
||
"newCategoryPrompt": "Nombre de la nueva categoría:",
|
||
"newSubcategoryPrompt": "Nombre de la nueva subcategoría:",
|
||
"categoryAddedToast": "Categoría añadida.",
|
||
"subcategoryAddedToast": "Subcategoría añadida.",
|
||
"emptyAction": "Agregar entrada",
|
||
"loansTitle": "Préstamos",
|
||
"loansSummary": "{{count}} activos · {{amount}} restantes",
|
||
"newLoan": "Nuevo préstamo",
|
||
"createLoan": "Crear préstamo",
|
||
"editLoan": "Editar préstamo",
|
||
"deleteLoan": "Eliminar préstamo",
|
||
"deleteLoanConfirm": "¿Eliminar el préstamo \"{{title}}\"? También se eliminarán los pagos ya registrados en el presupuesto.",
|
||
"deleteLoanPaymentConfirm": "¿Eliminar este pago del préstamo?",
|
||
"loanRemainingAmount": "Restante",
|
||
"loanRemainingInstallments": "Cuotas restantes",
|
||
"loanPaidAmount": "Pagado",
|
||
"loansEmpty": "No hay préstamos activos.",
|
||
"loanInstallmentMeta": "{{paid}} de {{total}} cuotas pagadas",
|
||
"loanRemainingOf": "de {{total}}",
|
||
"loanNextDue": "Siguiente: {{month}}",
|
||
"loanPaidStatus": "Pagado",
|
||
"markLoanPaid": "Marcar pagado",
|
||
"loanBorrowerLabel": "Persona *",
|
||
"loanBorrowerPlaceholder": "Ej. Lais",
|
||
"loanTitleLabel": "Título del préstamo",
|
||
"loanTitlePlaceholder": "Ej. Préstamo personal",
|
||
"loanAmountLabel": "Importe total *",
|
||
"loanInstallmentsLabel": "Cuotas *",
|
||
"loanStartMonthLabel": "Primer mes de vencimiento *",
|
||
"loanNotesLabel": "Notas",
|
||
"loanBorrowerRequired": "La persona es obligatoria",
|
||
"loanInstallmentsRequired": "Introduce el número de cuotas",
|
||
"loanStartMonthRequired": "Introduce el primer mes de vencimiento",
|
||
"loanAddedToast": "Préstamo añadido",
|
||
"loanSavedToast": "Préstamo guardado",
|
||
"loanDeletedToast": "Préstamo eliminado",
|
||
"loanPaymentAddedToast": "Pago registrado",
|
||
"loanPaymentTitle": "Pago del préstamo: {{borrower}}",
|
||
"typeLoan": "Préstamo",
|
||
"tabsLabel": "Secciones del presupuesto",
|
||
"budgetTab": "Presupuesto",
|
||
"loansTab": "Préstamos",
|
||
"filteredTransactions": "Transacciones filtradas",
|
||
"clearLoanFilter": "Limpiar filtro",
|
||
"loanFilterActive": "Préstamo: {{title}}",
|
||
"filterLoanTransactions": "Mostrar transacciones de este préstamo",
|
||
"loansEmptyDescription": "Crea un préstamo con el botón + y elige Préstamo.",
|
||
"newCategoryTitle": "Nueva categoría",
|
||
"newCategoryPlaceholder": "Nombre de la categoría",
|
||
"newSubcategoryTitle": "Nueva subcategoría",
|
||
"newSubcategoryPlaceholder": "Nombre de la subcategoría",
|
||
"loanStatusFilterLabel": "Filtro de estado de préstamos",
|
||
"loanStatusActive": "Activos",
|
||
"loanStatusPaid": "Pagados",
|
||
"loanStatusAll": "Todos",
|
||
"loanTransactions": "Transacciones del préstamo",
|
||
"loanInstallmentNumber": "Cuota {{number}} de {{total}}",
|
||
"loanReportTitle": "Informe del préstamo",
|
||
"loanNoTransactions": "Aún no hay pagos registrados."
|
||
},
|
||
"settings": {
|
||
"title": "Ajustes",
|
||
"tabGeneral": "General",
|
||
"tabMeals": "Comidas",
|
||
"tabBudget": "Presupuesto",
|
||
"tabShopping": "Compras",
|
||
"tabCalendar": "Calendario",
|
||
"tabFamily": "Gestión familiar",
|
||
"tabApiTokens": "API Tokens",
|
||
"tabAccount": "Cuenta",
|
||
"tabsAriaLabel": "Secciones de configuración",
|
||
"sectionDesign": "Diseño",
|
||
"sectionAppName": "Nombre de la aplicación",
|
||
"sectionShopping": "Compras",
|
||
"shoppingCategoriesLabel": "Categorías de compra",
|
||
"shoppingCategoriesHint": "Añade, renombra, elimina u ordena las categorías.",
|
||
"shoppingCategoryPlaceholder": "Nueva categoría…",
|
||
"shoppingCategoryRenameHint": "Haz clic para renombrar",
|
||
"shoppingCategoryRenamePrompt": "Nuevo nombre de categoría:",
|
||
"shoppingCategoryMoveUp": "Subir categoría",
|
||
"shoppingCategoryMoveDown": "Bajar categoría",
|
||
"shoppingCategoryDelete": "Eliminar categoría",
|
||
"shoppingCategoryDeleteConfirm": "¿Eliminar categoría «{{name}}»? Los artículos existentes se asignarán a la siguiente categoría.",
|
||
"shoppingCategoryAdded": "Categoría añadida.",
|
||
"shoppingCategoryRenamed": "Categoría renombrada.",
|
||
"shoppingCategoryDeleted": "Categoría eliminada.",
|
||
"sectionAccount": "Mi cuenta",
|
||
"sectionCalendarSync": "Sincronización de calendario",
|
||
"sectionFamily": "Miembros de la familia",
|
||
"cardAppearance": "Apariencia",
|
||
"appNameTitle": "Nombre de la app",
|
||
"appNameLabel": "Nombre de la aplicación",
|
||
"appNameHint": "Este nombre aparece en la barra lateral, el título del navegador y la pantalla de inicio de sesión.",
|
||
"appNamePlaceholder": "Oikos",
|
||
"appNameSavedToast": "Nombre de la aplicación guardado.",
|
||
"sectionDate": "Fecha",
|
||
"dateFormatTitle": "Formato de fecha",
|
||
"dateFormatLabel": "Formato de fecha preferido",
|
||
"dateFormatHint": "Elige cómo se muestran las fechas en toda la app.",
|
||
"dateFormatSavedToast": "Formato de fecha guardado.",
|
||
"timeFormatLabel": "Formato de hora",
|
||
"timeFormatHours": "horas",
|
||
"timeFormatSavedToast": "Formato de hora guardado.",
|
||
"themeSystem": "Sistema",
|
||
"themeSysLabel": "Usar configuración del sistema",
|
||
"themeLight": "Claro",
|
||
"themeLightLabel": "Tema claro",
|
||
"themeDark": "Oscuro",
|
||
"themeDarkLabel": "Tema oscuro",
|
||
"changePassword": "Cambiar contraseña",
|
||
"currentPasswordLabel": "Contraseña actual",
|
||
"newPasswordLabel": "Nueva contraseña",
|
||
"confirmPasswordLabel": "Confirmar nueva contraseña",
|
||
"savePassword": "Guardar contraseña",
|
||
"passwordMismatch": "Las contraseñas no coinciden.",
|
||
"passwordSavedToast": "Contraseña cambiada correctamente.",
|
||
"googleCalendar": "Google Calendar",
|
||
"appleCalendar": "Apple Calendar (iCloud)",
|
||
"syncNow": "Sincronizar ahora",
|
||
"disconnect": "Desconectar",
|
||
"connectGoogle": "Conectar con Google",
|
||
"connected": "Conectado",
|
||
"connectedLastSync": "Conectado · Última: {{date}}",
|
||
"notConnected": "No conectado",
|
||
"notConfigured": "No configurado (faltan variables .env)",
|
||
"configured": "Configurado (via .env)",
|
||
"configuredLastSync": "Configurado (via .env) · Última: {{date}}",
|
||
"syncSuccess": "{{provider}} sincronizado.",
|
||
"disconnectedToast": "{{provider}} desconectado.",
|
||
"googleOnlyAdmin": "Solo el administrador puede conectar Google Calendar.",
|
||
"appleOnlyAdmin": "Solo el administrador puede conectar Apple Calendar.",
|
||
"caldavUrlLabel": "URL del servidor CalDAV",
|
||
"caldavUrlPlaceholder": "https://caldav.icloud.com",
|
||
"appleIdLabel": "Apple ID (email)",
|
||
"applePasswordLabel": "Contraseña específica de app",
|
||
"applePasswordHint": "Crea la contraseña en <strong>appleid.apple.com → Seguridad</strong>.",
|
||
"appleConnectBtn": "Conectar y probar",
|
||
"appleConnecting": "Conectando…",
|
||
"appleConnectedToast": "Apple Calendar conectado.",
|
||
"syncSuccessGoogle": "Sincronización de calendario con Google conectada correctamente.",
|
||
"syncSuccessApple": "Sincronización de calendario con Apple conectada correctamente.",
|
||
"syncErrorGoogle": "Error al conectar con Google. Por favor, inténtalo de nuevo.",
|
||
"syncErrorApple": "Error al conectar con Apple. Por favor, inténtalo de nuevo.",
|
||
"addMember": "+ Añadir miembro",
|
||
"newMemberTitle": "Nuevo miembro de la familia",
|
||
"usernameLabel": "Nombre de usuario",
|
||
"displayNameLabel": "Nombre para mostrar",
|
||
"memberPasswordLabel": "Contraseña",
|
||
"colorLabel": "Color",
|
||
"profilePictureTitle": "Foto de perfil",
|
||
"profilePictureLabel": "Subir foto",
|
||
"profilePictureHint": "PNG, JPEG o WebP. Las imágenes grandes se redimensionan antes de subirlas.",
|
||
"profilePictureRemove": "Eliminar foto",
|
||
"profilePictureTypeError": "Usa una imagen PNG, JPEG o WebP.",
|
||
"profilePictureFileTooLarge": "El archivo de imagen es demasiado grande.",
|
||
"profilePictureTooLarge": "La foto sigue siendo demasiado grande después de redimensionarla.",
|
||
"profilePictureReadError": "No se pudo leer la imagen seleccionada.",
|
||
"profileSavedToast": "Perfil actualizado.",
|
||
"editMemberLabel": "Editar",
|
||
"editMemberTitle": "Editar miembro de la familia",
|
||
"saveMember": "Guardar miembro",
|
||
"memberUpdatedToast": "{{name}} actualizado.",
|
||
"familyRoleLabel": "Rol familiar",
|
||
"familyRoleDad": "Papá",
|
||
"familyRoleMom": "Mamá",
|
||
"familyRoleParent": "Progenitor",
|
||
"familyRoleChild": "Hijo/a",
|
||
"familyRoleGrandparent": "Abuelo/a",
|
||
"familyRoleRelative": "Familiar",
|
||
"familyRoleOther": "Miembro de la familia",
|
||
"systemAdminLabel": "Administrador del sistema",
|
||
"systemAdminHint": "Los administradores del sistema pueden gestionar ajustes, integraciones, tokens de API y cuentas familiares.",
|
||
"systemAdminBadge": "Admin del sistema",
|
||
"roleLabel": "Rol",
|
||
"roleMember": "Miembro",
|
||
"roleAdmin": "Administrador",
|
||
"createMember": "Crear",
|
||
"cancelAddMember": "Cancelar",
|
||
"memberAddedToast": "{{name}} añadido.",
|
||
"deleteMemberConfirm": "¿Eliminar a {{name}}?",
|
||
"memberDeletedToast": "{{name}} eliminado.",
|
||
"deleteMemberLabel": "Eliminar",
|
||
"logout": "Cerrar sesión",
|
||
"synchronizing": "Sincronizando…",
|
||
"googleDisconnectConfirm": "¿Desconectar Google Calendar?",
|
||
"appleDisconnectConfirm": "¿Desconectar Apple Calendar?",
|
||
"localeSystem": "Sistema",
|
||
"localeLabel": "Idioma",
|
||
"languageTitle": "Idioma",
|
||
"sectionMeals": "Plan de comidas",
|
||
"mealTypesLabel": "Comidas visibles",
|
||
"mealTypesHint": "Solo se mostrarán los tipos de comida seleccionados.",
|
||
"mealTypesSaved": "Ajustes del plan de comidas guardados.",
|
||
"mealTypesMinOne": "Al menos un tipo de comida debe estar activo.",
|
||
"sectionBudget": "Presupuesto",
|
||
"currencyLabel": "Moneda",
|
||
"currencyHint": "Establece la moneda para toda la sección de presupuesto.",
|
||
"currencySaved": "Moneda guardada.",
|
||
"apiTokensTitle": "API Tokens",
|
||
"apiTokensCardTitle": "Access Tokens",
|
||
"apiTokensHint": "Create API tokens for external integrations. The full token is shown only once after creation.",
|
||
"apiTokenNameLabel": "Token name",
|
||
"apiTokenExpiresLabel": "Expiration date",
|
||
"apiTokenExpiresHint": "Leave empty to create a token without expiration.",
|
||
"apiTokenCreatedLabel": "New API token",
|
||
"apiTokenCreatedHint": "Store this token securely. It cannot be shown again.",
|
||
"apiTokenCreate": "Create token",
|
||
"apiTokenInvalidExpiration": "Please enter a valid expiration date.",
|
||
"apiTokenCreatedToast": "API token created.",
|
||
"apiTokenRevokedToast": "API token revoked.",
|
||
"apiTokenRevokeConfirm": "Revoke API token \"{{name}}\"?",
|
||
"apiTokenRevoke": "Revoke token",
|
||
"apiTokenRevoked": "Revoked",
|
||
"apiTokenExpired": "Expired",
|
||
"apiTokenActive": "Active",
|
||
"apiTokenPrefix": "Prefix",
|
||
"apiTokenExpires": "Expires",
|
||
"apiTokenNeverExpires": "No expiration",
|
||
"apiTokenLastUsed": "Last used",
|
||
"apiTokenNeverUsed": "Never used",
|
||
"ics": {
|
||
"title": "Suscripciones ICS",
|
||
"add": "Añadir suscripción",
|
||
"addedToast": "Suscripción añadida.",
|
||
"deletedToast": "Suscripción eliminada.",
|
||
"syncedToast": "Suscripción sincronizada.",
|
||
"confirm_delete": "¿Realmente deseas eliminar esta suscripción? Todos los eventos asociados también se eliminarán.",
|
||
"empty": "Aún no hay suscripciones.",
|
||
"form": {
|
||
"name": "Nombre",
|
||
"url": "URL ICS",
|
||
"color": "Color",
|
||
"shared": "Visible para todos"
|
||
},
|
||
"actions": {
|
||
"submit": "Añadir",
|
||
"save": "Guardar",
|
||
"cancel": "Cancelar",
|
||
"delete": "Eliminar",
|
||
"edit": "Editar",
|
||
"sync": "Sincronizar ahora"
|
||
},
|
||
"status": {
|
||
"lastSync": "Última sincronización:",
|
||
"never": "Aún no sincronizado",
|
||
"syncing": "Sincronizando...",
|
||
"syncError": "Error de sincronización"
|
||
},
|
||
"badges": {
|
||
"private": "Privado",
|
||
"shared": "Compartido"
|
||
},
|
||
"updatedToast": "Suscripción actualizada."
|
||
},
|
||
"memberPhoneLabel": "Número de teléfono (opcional)",
|
||
"memberEmailLabel": "Correo electrónico (opcional)",
|
||
"memberBirthDateLabel": "Fecha de nacimiento (opcional)",
|
||
"memberContactBirthdayHint": "Este miembro se sincroniza automáticamente con Contactos y Cumpleaños.",
|
||
"memberBirthDateInvalid": "Usa una fecha de nacimiento válida en el formato seleccionado.",
|
||
"memberPhoneMeta": "Teléfono: {{value}}",
|
||
"memberBirthdayMeta": "Cumpleaños: {{date}}",
|
||
"tabBackup": "Gestión de copias",
|
||
"sectionBackup": "Gestión de copias",
|
||
"backupDownloadTitle": "Descargar copia de la base de datos",
|
||
"backupDownloadHint": "Crea una copia SQLite consistente de todos los datos de la aplicación.",
|
||
"backupDownloadButton": "Descargar copia",
|
||
"backupRestoreTitle": "Restaurar copia de la base de datos",
|
||
"backupRestoreHint": "La restauración reemplaza la base de datos actual. Descarga una copia reciente antes de continuar.",
|
||
"backupDropzoneTitle": "Suelta un archivo de copia aquí o haz clic para seleccionarlo",
|
||
"backupDropzoneHint": "Archivos SQLite: .db, .sqlite o .sqlite3",
|
||
"backupRestoreButton": "Restaurar copia",
|
||
"backupRestoreConfirm": "Restaurar esta copia reemplazará la base de datos actual para todos. ¿Continuar?",
|
||
"backupRestoring": "Restaurando...",
|
||
"backupRestoredToast": "Base de datos restaurada. Recargando...",
|
||
"backupCliTitle": "Restauración por CLI / Docker Compose",
|
||
"backupCliHint": "For operational restores, stop the app, mount the backup in a temporary container and replace the database file.",
|
||
"backupCliBackupHint": "También puedes crear una copia directamente con Docker Compose:",
|
||
"tabSync": "Synchronization",
|
||
"sectionContactSync": "Contact Synchronization",
|
||
"cardavTitle": "CardDAV Contacts",
|
||
"cardavDescription": "Connect multiple CardDAV accounts (iCloud, Nextcloud, Radicale, etc.) and sync your contacts.",
|
||
"cardavAddAccount": "Add CardDAV Account",
|
||
"cardavEmptyState": "No CardDAV accounts connected yet. Add your first account to sync contacts.",
|
||
"cardavNameLabel": "Account name",
|
||
"cardavNamePlaceholder": "e.g. iCloud, Nextcloud",
|
||
"cardavUrlLabel": "CardDAV Server URL",
|
||
"cardavUrlPlaceholder": "https://contacts.icloud.com",
|
||
"cardavUrlHint": "The base URL of your CardDAV server",
|
||
"cardavUsernameLabel": "Username",
|
||
"cardavPasswordLabel": "Password",
|
||
"cardavPasswordHint": "For iCloud: Use app-specific password from appleid.apple.com",
|
||
"cardavAccountAdded": "CardDAV account added successfully",
|
||
"cardavAccountDeleted": "CardDAV account removed",
|
||
"cardavSyncSuccess": "CardDAV sync successful",
|
||
"cardavSyncFailed": "CardDAV sync failed",
|
||
"cardavConnectionFailed": "Connection to CardDAV server failed",
|
||
"cardavAddressbooksToggle": "Show/hide addressbooks",
|
||
"cardavRefreshAddressbooks": "Refresh addressbooks",
|
||
"addressbookEnabled": "Addressbook enabled",
|
||
"addressbookDisabled": "Addressbook disabled",
|
||
"addressbooksRefreshed": "Addressbooks refreshed",
|
||
"deleteCardDAVAccountConfirm": "Really delete CardDAV account? All synced contacts will remain but lose their CardDAV link.",
|
||
"sectionHousekeeping": "Housekeeping",
|
||
"housekeepingPaymentsTitle": "Payment tasks",
|
||
"housekeepingPaymentTasksLabel": "Create a payment task on each housekeeper check-in",
|
||
"housekeepingPaymentTasksHint": "When enabled, each check-in creates a task for paying the staff member. Completing that task marks the visit payment as paid.",
|
||
"housekeepingPaymentTasksSaved": "Housekeeping payment setting saved.",
|
||
"backupSchedulerDisabled": "Disabled",
|
||
"backupSchedulerEnabled": "Enabled",
|
||
"backupSchedulerHint": "Scheduled backups are created automatically and old backups are rotated.",
|
||
"backupSchedulerKeep": "Retention",
|
||
"backupSchedulerKeepCount": "{{count}} backups",
|
||
"backupSchedulerLastBackup": "Last backup",
|
||
"backupSchedulerLastFail": "{{date}} (failed)",
|
||
"backupSchedulerLastSuccess": "{{date}} (successful)",
|
||
"backupSchedulerNever": "No backup created yet",
|
||
"backupSchedulerSchedule": "Schedule",
|
||
"backupSchedulerStatus": "Status",
|
||
"backupSchedulerTitle": "Automatic Backups",
|
||
"backupSchedulerTrigger": "Create backup now",
|
||
"backupSchedulerTriggeredToast": "Backup created successfully.",
|
||
"backupSchedulerTriggering": "Creating backup...",
|
||
"breadcrumbLabel": "Pfad",
|
||
"caldavAccountAdded": "CalDAV account added successfully",
|
||
"caldavAccountDeleted": "CalDAV account removed",
|
||
"caldavAddAccount": "Add CalDAV Account",
|
||
"caldavCalendarsToggle": "Show/hide calendars",
|
||
"caldavConnectionFailed": "Connection to CalDAV server failed",
|
||
"caldavDescription": "Connect multiple CalDAV accounts (iCloud, Nextcloud, Radicale, Baikal, etc.) and choose which calendars to sync.",
|
||
"caldavEmptyState": "No CalDAV accounts connected yet. Add your first account to get started.",
|
||
"caldavNameLabel": "Account Name",
|
||
"caldavNamePlaceholder": "e.g. My Radicale, iCloud, Nextcloud",
|
||
"caldavPasswordHint": "For iCloud: Use app-specific password from appleid.apple.com",
|
||
"caldavPasswordLabel": "Password",
|
||
"caldavRefreshCalendars": "Refresh calendars",
|
||
"caldavSyncFailed": "CalDAV sync failed",
|
||
"caldavSyncSuccess": "CalDAV sync successful",
|
||
"caldavTitle": "CalDAV Calendars",
|
||
"caldavUrlHint": "The base URL of your CalDAV server",
|
||
"caldavUsernameLabel": "Username",
|
||
"calendarDisabled": "Calendar disabled",
|
||
"calendarEnabled": "Calendar enabled",
|
||
"calendarsRefreshed": "Calendars refreshed",
|
||
"deleteAccountConfirm": "Really delete CalDAV account? All synced calendars will be removed.",
|
||
"emptyStateAddFirst": "Füge dein erstes Konto hinzu",
|
||
"emptyStateNoAccounts": "Noch keine Konten verbunden",
|
||
"helpTooltipCalDAV": "CalDAV ermöglicht die Synchronisation von Kalendern mit iCloud, Nextcloud und anderen CalDAV-Servern.",
|
||
"helpTooltipCardDAV": "CardDAV ermöglicht die Synchronisation von Kontakten mit iCloud, Nextcloud und anderen CardDAV-Servern.",
|
||
"lastSync": "Last synced",
|
||
"modulesHint": "Disabled modules disappear from the navigation. Data is preserved and reappears once a module is re-enabled.",
|
||
"modulesSaved": "Module visibility saved.",
|
||
"modulesTitle": "Active modules",
|
||
"navigationLabel": "Einstellungsnavigation",
|
||
"sectionAdmin": "Administration",
|
||
"sectionCloudServices": "Cloud-Dienste",
|
||
"sectionModules": "Modules",
|
||
"sectionModulesNav": "Module",
|
||
"sectionOpenStandards": "CalDAV & CardDAV",
|
||
"sectionPersonal": "Persönlich",
|
||
"sectionSync": "Synchronisation",
|
||
"statusError": "Fehler",
|
||
"statusNeverSynced": "Noch nie synchronisiert",
|
||
"statusSynced": "Synchronisiert",
|
||
"statusSyncing": "Synchronisiert…",
|
||
"syncedAgo": "vor {{time}}",
|
||
"tabSyncCalendar": "Kalender",
|
||
"tabSyncContacts": "Kontakte"
|
||
},
|
||
"login": {
|
||
"tagline": "Planificación familiar. Segura. Privada. Código abierto.",
|
||
"usernameLabel": "Nombre de usuario",
|
||
"usernamePlaceholder": "usuario",
|
||
"passwordLabel": "Contraseña",
|
||
"passwordPlaceholder": "••••••••",
|
||
"loginButton": "Iniciar sesión",
|
||
"loggingIn": "Iniciando sesión…",
|
||
"tooManyAttempts": "Demasiados intentos. Por favor, espera un momento.",
|
||
"invalidCredentials": "Credenciales incorrectas.",
|
||
"version": "v{{version}}"
|
||
},
|
||
"install": {
|
||
"title": "Instalar Oikos",
|
||
"subtitle": "Añadir a la pantalla de inicio",
|
||
"iosTip1": "Toca ",
|
||
"iosTip2": " → «Añadir a pantalla de inicio»",
|
||
"installButton": "Instalar",
|
||
"dismissLabel": "Cerrar"
|
||
},
|
||
"modal": {
|
||
"closeLabel": "Cerrar",
|
||
"overlayLabel": "Fondo del cuadro de diálogo modal",
|
||
"unsavedChanges": "¿Descartar cambios?",
|
||
"discardChanges": "Descartar"
|
||
},
|
||
"rrule": {
|
||
"freqNone": "Sin repetición",
|
||
"freqDaily": "Diariamente",
|
||
"freqWeekly": "Semanalmente",
|
||
"freqMonthly": "Mensualmente",
|
||
"dayMo": "Lu",
|
||
"dayTu": "Ma",
|
||
"dayWe": "Mi",
|
||
"dayTh": "Ju",
|
||
"dayFr": "Vi",
|
||
"daySa": "Sá",
|
||
"daySu": "Do",
|
||
"labelRepeat": "Repetición",
|
||
"labelEvery": "Cada",
|
||
"labelOnDays": "En estos días",
|
||
"labelUntil": "Termina el (opcional)",
|
||
"unitDay": "día",
|
||
"unitDays": "días",
|
||
"unitWeek": "semana",
|
||
"unitWeeks": "semanas",
|
||
"unitMonth": "mes",
|
||
"unitMonths": "meses"
|
||
},
|
||
"recipes": {
|
||
"title": "Recetas",
|
||
"addRecipe": "Agregar receta",
|
||
"editRecipe": "Editar receta",
|
||
"emptyTitle": "Sin recetas aún",
|
||
"emptyDescription": "Guarda tus recetas favoritas y reutilízalas en la planificación de comidas.",
|
||
"titleLabel": "Título *",
|
||
"titlePlaceholder": "ej. Pasta a la Carbonara",
|
||
"notesLabel": "Notas",
|
||
"notesPlaceholder": "Opcional...",
|
||
"urlLabel": "Enlace de receta",
|
||
"urlPlaceholder": "https://...",
|
||
"ingredientsLabel": "Ingredientes",
|
||
"addToMeals": "Agregar al plan de comidas",
|
||
"openLink": "Abrir enlace de receta",
|
||
"deleteConfirm": "¿Eliminar receta \"{{title}}\"?",
|
||
"created": "Receta guardada.",
|
||
"updated": "Receta actualizada.",
|
||
"deleted": "Receta eliminada.",
|
||
"titleRequired": "El título es obligatorio",
|
||
"duplicate": "Duplicar",
|
||
"duplicated": "Receta duplicada.",
|
||
"copySuffix": "copia",
|
||
"emptyAction": "Crear receta"
|
||
},
|
||
"search": {
|
||
"title": "Búsqueda",
|
||
"open": "Abrir búsqueda",
|
||
"placeholder": "Buscar…",
|
||
"noResults": "No se encontraron resultados."
|
||
},
|
||
"birthdays": {
|
||
"title": "Cumpleaños",
|
||
"addButton": "Añadir cumpleaños",
|
||
"searchPlaceholder": "Buscar cumpleaños…",
|
||
"upcomingTitle": "Próximos cumpleaños",
|
||
"upcomingHint": "Las próximas celebraciones, ya sincronizadas con el calendario.",
|
||
"peopleTitle": "Personas",
|
||
"peopleHint": "Busca, revisa y edita todos los cumpleaños guardados.",
|
||
"emptyTitle": "Todavía no hay cumpleaños",
|
||
"emptyDescription": "Añade un cumpleaños para mantenerlo visible en el calendario y en los recordatorios.",
|
||
"newTitle": "Nuevo cumpleaños",
|
||
"editTitle": "Editar cumpleaños",
|
||
"nameLabel": "Nombre",
|
||
"birthDateLabel": "Fecha de nacimiento",
|
||
"photoLabel": "Foto de perfil",
|
||
"removePhoto": "Eliminar foto",
|
||
"notesLabel": "Notas",
|
||
"notesPlaceholder": "Ideas de regalo, tarta favorita, notas familiares…",
|
||
"calendarHint": "Cada cumpleaños se añade automáticamente al calendario y al sistema de recordatorios.",
|
||
"requiredFields": "El nombre y la fecha de nacimiento son obligatorios.",
|
||
"createdToast": "Cumpleaños guardado.",
|
||
"updatedToast": "Cumpleaños actualizado.",
|
||
"deletedToast": "Cumpleaños eliminado.",
|
||
"deleteConfirm": "¿Eliminar el cumpleaños de \"{{name}}\"?",
|
||
"ageNoteToday": "Cumple {{age}} años hoy.",
|
||
"ageNoteTomorrow": "Cumple {{age}} años mañana.",
|
||
"ageNoteDays": "Cumplirá {{age}} años en {{days}} días.",
|
||
"photoOptional": "Opcional: puedes guardar sin foto de perfil."
|
||
},
|
||
"reminders": {
|
||
"sectionTitle": "Recordatorio",
|
||
"enableLabel": "Establecer recordatorio",
|
||
"offsetLabel": "Recordar",
|
||
"offsetNone": "Ninguno",
|
||
"offsetAtTime": "A la hora de inicio",
|
||
"offset15min": "15 minutos antes",
|
||
"offset1hour": "1 hora antes",
|
||
"offset1day": "1 día antes",
|
||
"dateLabel": "Fecha",
|
||
"timeLabel": "Hora",
|
||
"toastTitle": "Recordatorio",
|
||
"dismiss": "Descartar",
|
||
"pendingBadgeTitle": "{{count}} recordatorio pendiente",
|
||
"pendingBadgeTitlePlural": "{{count}} recordatorios pendientes",
|
||
"notificationPermission": "Notificaciones del navegador",
|
||
"notificationEnable": "Activar notificaciones",
|
||
"notificationEnabled": "Notificaciones activas",
|
||
"notificationDenied": "Notificaciones bloqueadas",
|
||
"notificationHint": "Recibe notificaciones incluso cuando la aplicación está abierta.",
|
||
"offset2days": "2 days before",
|
||
"offset1week": "1 week before",
|
||
"offset2weeks": "2 weeks before",
|
||
"offsetCustom": "Custom...",
|
||
"customAmountLabel": "Number",
|
||
"customUnitLabel": "Unit",
|
||
"customMinutes": "Minutes",
|
||
"customHours": "Hours",
|
||
"customDays": "Days",
|
||
"customWeeks": "Weeks"
|
||
},
|
||
"onboarding": {
|
||
"step1Title": "Bienvenido a {{name}}",
|
||
"step1Body": "Your personal family planner. Tasks, calendar, shopping and more – all in one place.",
|
||
"step2Title": "Navegación y módulos",
|
||
"step2Body": "En la parte inferior accedes directamente al Panel y el Calendario. Con el botón ··· abres más módulos como Cocina, Notas y Contactos.",
|
||
"step3Title": "Empieza rápido",
|
||
"step3Body": "Con el botón + creas nuevas entradas en cualquier lugar. Desliza elementos de la lista a la izquierda o derecha para acciones rápidas.",
|
||
"next": "Next",
|
||
"done": "Get started",
|
||
"skip": "Skip"
|
||
},
|
||
"offline": {
|
||
"banner": "Offline – reconnecting…"
|
||
},
|
||
"emptyHint": {
|
||
"recipes": "Crea recetas y vincúlalas con tu planificador de comidas.",
|
||
"birthdays": "Registra cumpleaños — recibirás un recordatorio a tiempo.",
|
||
"budget": "Crea categorías y registra ingresos y gastos.",
|
||
"calendar": "Conecta Google Calendar en Ajustes → Integraciones para sincronización automática.",
|
||
"contacts": "Agrega contactos importantes — médico, escuela, emergencia — para acceso rápido.",
|
||
"meals": "Planifica comidas para la semana y vincula recetas.",
|
||
"notes": "Pulsa + para una nueva nota. Las notas se buscan en texto completo.",
|
||
"shopping": "Agrega artículos y desliza para marcar o eliminar.",
|
||
"tasks": "Pulsa + para crear tu primera tarea. Desliza una tarjeta a la izquierda para eliminar."
|
||
},
|
||
"documents": {
|
||
"title": "Documentos",
|
||
"addButton": "Agregar documento",
|
||
"searchPlaceholder": "Buscar documentos...",
|
||
"gridView": "Vista de cuadrícula",
|
||
"listView": "Vista de lista",
|
||
"viewToggle": "Vista de documentos",
|
||
"allCategories": "Todas las categorías",
|
||
"emptyTitle": "Aún no hay documentos",
|
||
"emptyDescription": "Sube documentos familiares y controla quién puede ver cada archivo.",
|
||
"newTitle": "Nuevo documento",
|
||
"editTitle": "Configuración del documento",
|
||
"nameLabel": "Nombre",
|
||
"descriptionLabel": "Descripción",
|
||
"categoryLabel": "Categoría",
|
||
"fileLabel": "Archivo",
|
||
"fileHint": "PDF, imágenes, texto y archivos Office de hasta 5 MB.",
|
||
"visibilityLabel": "Visibilidad",
|
||
"statusLabel": "Estado",
|
||
"allowedMembersLabel": "Miembros permitidos",
|
||
"uploadAction": "Subir",
|
||
"downloadAction": "Descargar",
|
||
"editAction": "Configuración",
|
||
"archiveAction": "Archivar",
|
||
"restoreAction": "Restaurar",
|
||
"savedToast": "Documento guardado.",
|
||
"uploadedToast": "Documento subido.",
|
||
"archivedToast": "Documento archivado.",
|
||
"restoredToast": "Documento restaurado.",
|
||
"deletedToast": "Documento eliminado.",
|
||
"deleteConfirm": "¿Eliminar documento \"{{name}}\"?",
|
||
"fileRequired": "Selecciona un archivo para subir.",
|
||
"fileTooLarge": "El archivo puede tener como máximo 5 MB.",
|
||
"fileReadError": "No se pudo leer el archivo.",
|
||
"statusActive": "Activo",
|
||
"statusArchived": "Archivado",
|
||
"visibility": {
|
||
"family": "Toda la familia",
|
||
"restricted": "Miembros seleccionados",
|
||
"private": "Solo yo"
|
||
},
|
||
"category": {
|
||
"medical": "Médico",
|
||
"school": "Escuela",
|
||
"identity": "Identidad",
|
||
"insurance": "Seguro",
|
||
"finance": "Finanzas",
|
||
"home": "Hogar",
|
||
"vehicle": "Vehículo",
|
||
"legal": "Legal",
|
||
"travel": "Viajes",
|
||
"pets": "Mascotas",
|
||
"warranty": "Garantía",
|
||
"taxes": "Impuestos",
|
||
"work": "Trabajo",
|
||
"other": "Otros"
|
||
},
|
||
"dropzoneTitle": "Suelta el archivo aquí o haz clic para elegir",
|
||
"dropzoneHint": "Arrastra un archivo a esta área o usa el selector de archivos.",
|
||
"selectedFileLabel": "Seleccionado: {{name}}",
|
||
"addFolderButton": "Add folder",
|
||
"allFolders": "All folders",
|
||
"folderLabel": "Folder",
|
||
"noFolder": "No folder",
|
||
"newFolderTitle": "New folder",
|
||
"folderNameLabel": "Folder name",
|
||
"createFolderAction": "Create folder",
|
||
"folderCreatedToast": "Folder created.",
|
||
"housekeepingFolder": "Limpieza",
|
||
"calendarItemsFolder": "Elementos del calendario",
|
||
"folderBrowserTitle": "Explorar carpetas"
|
||
},
|
||
"shortcuts": {
|
||
"goKitchen": "Cocina",
|
||
"goCal": "Calendario",
|
||
"goDash": "Panel",
|
||
"goNotes": "Notas",
|
||
"goShop": "Lista de compras",
|
||
"goTasks": "Tareas",
|
||
"help": "Atajos de teclado",
|
||
"new": "Crear nueva entrada",
|
||
"search": "Abrir búsqueda"
|
||
},
|
||
"housekeeping": {
|
||
"title": "Área de limpieza",
|
||
"bottomNav": "Navegación de limpieza",
|
||
"home": "Inicio",
|
||
"tasks": "Tareas",
|
||
"report": "Reportar",
|
||
"notCheckedIn": "Sin entrada",
|
||
"checkedInAt": "Entrada a las",
|
||
"monthTotal": "Mes actual · {{count}} jornadas",
|
||
"dailyRate": "Tarifa diaria",
|
||
"extras": "Extras",
|
||
"checkIn": "Entrada",
|
||
"checkOut": "Salida",
|
||
"quickSupply": "Falta producto",
|
||
"supplyName": "Producto",
|
||
"supplyPlaceholder": "¿Qué falta?",
|
||
"checkedInToast": "Entrada registrada.",
|
||
"checkedOutToast": "Salida registrada.",
|
||
"supplyAddedToast": "Añadido a la lista de compras.",
|
||
"overdue": "Atrasada",
|
||
"dueToday": "Hoy",
|
||
"ok": "OK",
|
||
"noTasks": "No hay tareas de limpieza.",
|
||
"everyDays": "Cada {{days}} días",
|
||
"completeTask": "Completar {{name}}",
|
||
"taskDoneToast": "Tarea completada.",
|
||
"reportTitle": "Reportar problema",
|
||
"problemDescription": "Descripción del problema",
|
||
"problemPlaceholder": "Ejemplo: bombilla fundida",
|
||
"addPhoto": "Agregar foto",
|
||
"sendReport": "Enviar reporte",
|
||
"reportSentToast": "Problema reportado.",
|
||
"recentReports": "Reportes recientes",
|
||
"addTask": "Agregar tarea",
|
||
"taskName": "Tarea",
|
||
"taskNamePlaceholder": "Ejemplo: limpiar baños",
|
||
"taskArea": "Área",
|
||
"taskAreaPlaceholder": "Ejemplo: baño",
|
||
"taskFrequency": "Frecuencia",
|
||
"createTask": "Crear tarea",
|
||
"taskCreatedToast": "Tarea de limpieza creada.",
|
||
"dashboard": "Panel",
|
||
"reports": "Reports",
|
||
"visitsThisMonth": "Visitas del mes",
|
||
"lastVisit": "Última visita",
|
||
"pendingChores": "Tareas pendientes",
|
||
"finishedChores": "Tareas completadas",
|
||
"payments": "Pagos",
|
||
"pendingPayments": "Pagos pendientes",
|
||
"monthlyPayments": "Pagos mensuales",
|
||
"noPaymentData": "Aún no hay datos de pago.",
|
||
"noVisits": "Sin visitas todavía",
|
||
"noWorkerTitle": "Sin perfil de limpieza",
|
||
"noWorkerHint": "Crea el perfil para definir contactos, tarifa y calendario de pago.",
|
||
"taskTemplates": "Tareas sugeridas",
|
||
"addCustomTask": "Agregar tarea personalizada",
|
||
"noReports": "Aún no hay reportes.",
|
||
"profileTitle": "Perfil de limpieza",
|
||
"profilePicture": "Foto de perfil",
|
||
"workerName": "Nombre",
|
||
"workerUsername": "Usuario",
|
||
"workerPhone": "Teléfono",
|
||
"workerEmail": "Email",
|
||
"workerBirthDate": "Cumpleaños",
|
||
"paymentSchedule": "Calendario de pago",
|
||
"scheduleDaily": "Cada visita",
|
||
"scheduleTwiceMonthly": "Dos veces al mes",
|
||
"scheduleMonthly": "Mensual",
|
||
"profileColor": "Color de perfil",
|
||
"workerNotes": "Notas",
|
||
"workerSavedToast": "Perfil guardado.",
|
||
"staff": "Personal",
|
||
"staffTitle": "Personal de limpieza",
|
||
"addWorker": "Agregar persona",
|
||
"editWorker": "Editar persona",
|
||
"noWorkers": "No hay personal de limpieza registrado.",
|
||
"moreWorkers": "+{{count}} más",
|
||
"checkInDisabled": "Agrega una persona antes de registrar entrada.",
|
||
"calendarColor": "Color de calendario",
|
||
"visitRecordedAt": "Visit recorded at",
|
||
"checkedInToday": "Recorded today",
|
||
"visitReports": "Staff visit reports",
|
||
"noVisitReports": "No staff visits recorded this month.",
|
||
"openVisitReport": "Open visit report",
|
||
"visitReportDetails": "Visit report",
|
||
"paymentPaid": "Paid",
|
||
"paymentPending": "Pending",
|
||
"totalPayment": "Total payment",
|
||
"paymentStatus": "Payment status",
|
||
"paymentTask": "Payment task",
|
||
"calendarEvent": "Calendar event",
|
||
"notAvailable": "Not available",
|
||
"calendarVisitTitle": "Housekeeping: {{name}}",
|
||
"paymentTaskTitle": "Pay {{name}} for housekeeping",
|
||
"paymentTaskDescription": "Housekeeping visit on {{date}}. Amount due: {{amount}}.",
|
||
"staffLogTitle": "{{name}} visits",
|
||
"staffLogHint": "Edit visit dates, amounts, and linked records.",
|
||
"filterMonth": "Month",
|
||
"editVisit": "Edit visit",
|
||
"deleteVisit": "Delete visit",
|
||
"deleteVisitConfirm": "Delete this visit? The linked calendar event and payment task will also be removed.",
|
||
"visitDeletedToast": "Visit deleted.",
|
||
"visitSavedToast": "Visit updated.",
|
||
"visitDate": "Visit date",
|
||
"markPaid": "Mark paid",
|
||
"visitPaidToast": "Payment marked as paid.",
|
||
"receiptUploadTitle": "Upload payment receipt",
|
||
"receiptUploadHint": "Attach a payment receipt. It will appear in Documents.",
|
||
"receiptDocumentName": "Receipt - {{name}} - {{date}}",
|
||
"receiptDocumentDescription": "Payment receipt for {{name}} housekeeping visit on {{date}}.",
|
||
"taskTemplateData": {
|
||
"cleanBathrooms": {
|
||
"name": "Limpiar baños",
|
||
"area": "Baños"
|
||
},
|
||
"mopKitchenFloor": {
|
||
"name": "Fregar el suelo de la cocina",
|
||
"area": "Cocina"
|
||
},
|
||
"dustLivingRoom": {
|
||
"name": "Quitar el polvo de la sala",
|
||
"area": "Sala"
|
||
},
|
||
"changeBedLinens": {
|
||
"name": "Cambiar la ropa de cama",
|
||
"area": "Dormitorios"
|
||
},
|
||
"cleanRefrigerator": {
|
||
"name": "Limpiar el refrigerador",
|
||
"area": "Cocina"
|
||
},
|
||
"cleanWindows": {
|
||
"name": "Limpiar ventanas",
|
||
"area": "Toda la casa"
|
||
},
|
||
"deepCleanOven": {
|
||
"name": "Limpieza profunda del horno",
|
||
"area": "Cocina"
|
||
},
|
||
"washOutdoor": {
|
||
"name": "Lavar balcón/patio",
|
||
"area": "Exterior"
|
||
}
|
||
}
|
||
},
|
||
"userMultiSelect": {
|
||
"moreUsers": "weitere",
|
||
"nobody": "- Niemand -"
|
||
}
|
||
}
|