Files
oikos/public/locales/es.json
T
Ulas 61e663ef72 feat: add categorized settings tabs (#30)
Six tabs (General, Meals, Budget, Shopping, Calendar, Account) replace
the flat single-page layout. Active tab persists via sessionStorage.
Calendar tab auto-activates on OAuth redirect. Tab bar is sticky.
All labels translated in de/en/es/it/sv.
2026-04-06 14:33:49 +02:00

591 lines
22 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"
},
"nav": {
"dashboard": "Inicio",
"tasks": "Tareas",
"calendar": "Calendario",
"meals": "Comidas",
"shopping": "Compras",
"notes": "Notas",
"contacts": "Contactos",
"budget": "Presupuesto",
"settings": "Ajustes",
"main": "Navegación principal",
"navigation": "Navegación",
"quickActions": "Acciones rápidas"
},
"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 urgente",
"urgentTasksChipPlural": "{{count}} tareas urgentes",
"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}} km/h",
"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",
"dueTomorrow": "Vence mañana",
"allDay": "Todo el día",
"shoppingMore": "+{{count}} más"
},
"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",
"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"
},
"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"
},
"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",
"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"
},
"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": ""
},
"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"
},
"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"
},
"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",
"catClothing": "Ropa",
"catHealth": "Salud",
"catEducation": "Educación",
"catMisc": "Otros",
"loadingIndicator": "Cargando…"
},
"settings": {
"title": "Ajustes",
"tabGeneral": "General",
"tabMeals": "Comidas",
"tabBudget": "Presupuesto",
"tabShopping": "Compras",
"tabCalendar": "Calendario",
"tabAccount": "Cuenta",
"tabsAriaLabel": "Secciones de configuración",
"sectionDesign": "Diseño",
"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",
"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",
"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."
},
"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."
},
"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"
},
"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"
}
}