Files
oikos/public/locales/en.json
T
Ulas 2c36fa0307 feat(tasks): add optional "none" priority level for tasks without urgency
New tasks default to "none" priority instead of "medium". Tasks with no
priority hide the badge in list and dashboard views, reducing visual noise
for routine items. Includes DB migration v4 and i18n keys (de, en, it).

Closes #15
2026-04-04 22:13:51 +02:00

544 lines
18 KiB
JSON

{
"common": {
"save": "Save",
"cancel": "Cancel",
"delete": "Delete",
"edit": "Edit",
"close": "Close",
"create": "Create",
"add": "Add",
"back": "Back",
"next": "Next",
"loading": "Loading…",
"saving": "Saving…",
"required": "This field is required.",
"error": "Error",
"allFieldsRequired": "Please fill in all fields.",
"today": "Today",
"tomorrow": "Tomorrow",
"skipToContent": "Skip to content",
"reload": "Reload",
"errorOccurred": "Something went wrong.",
"unexpectedError": "An unexpected error occurred.",
"errorGeneric": "An error occurred.",
"updateAvailable": "Update available - reload the page to get the latest version.",
"titleRequired": "Title is required",
"nameRequired": "Name is required",
"contentRequired": "Content is required",
"all": "All",
"unknownError": "Unknown error"
},
"nav": {
"dashboard": "Overview",
"tasks": "Tasks",
"calendar": "Calendar",
"meals": "Meals",
"shopping": "Shopping",
"notes": "Board",
"contacts": "Contacts",
"budget": "Budget",
"settings": "Settings",
"main": "Main navigation",
"navigation": "Navigation",
"quickActions": "Quick actions"
},
"dashboard": {
"title": "Overview",
"greetingMorning": "Good morning, {{name}}",
"greetingDay": "Good afternoon, {{name}}",
"greetingEvening": "Good evening, {{name}}",
"allDone": "All done",
"noEvents": "No events",
"noPinnedNotes": "No pinned notes",
"todayMeals": "Today's meals",
"allLink": "All",
"weekLink": "Week",
"urgentTasksChip": "{{count}} urgent task",
"urgentTasksChipPlural": "{{count}} urgent tasks",
"eventsChip": "{{count}} event today",
"eventsChipPlural": "{{count}} events today",
"todayMealChip": "Today: {{title}}",
"loadError": "Dashboard could not be fully loaded.",
"weatherRefresh": "Refresh weather",
"weatherRefreshTitle": "Refresh",
"weatherFeelsLike": "Feels like {{temp}}° · {{humidity}}% · Wind {{wind}} km/h",
"fabTaskLabel": "Add task",
"fabCalendarLabel": "Add event",
"fabShoppingLabel": "Add shopping",
"fabNoteLabel": "Add note",
"fabTask": "Task",
"fabCalendar": "Event",
"fabShopping": "Shopping",
"fabNote": "Note",
"overdue": "Overdue",
"dueSoon": "Due today",
"dueTomorrow": "Due tomorrow",
"allDay": "All day",
"shoppingMore": "+{{count}} more"
},
"tasks": {
"title": "Tasks",
"newTask": "New Task",
"editTask": "Edit Task",
"emptyTitle": "No tasks - all done?",
"emptyDescription": "Create new tasks with the + button.",
"titleLabel": "Title *",
"titlePlaceholder": "What needs to be done?",
"descriptionLabel": "Note",
"descriptionPlaceholder": "Optional details…",
"priorityLabel": "Priority",
"categoryLabel": "Category",
"dueDateLabel": "Due date",
"dueTimeLabel": "Time",
"assignedLabel": "Assigned to",
"assignedNobody": "- Nobody -",
"statusLabel": "Status",
"priorityUrgent": "Urgent",
"priorityHigh": "High",
"priorityMedium": "Medium",
"priorityLow": "Low",
"priorityNone": "None",
"statusOpen": "Open",
"statusInProgress": "In Progress",
"statusDone": "Done",
"categoryHousehold": "Household",
"categorySchool": "School",
"categoryShopping": "Shopping",
"categoryRepair": "Repair",
"categoryHealth": "Health",
"categoryFinance": "Finance",
"categoryLeisure": "Leisure",
"categoryMisc": "Miscellaneous",
"overdue": "Overdue",
"overdueDay": "{{count}}d overdue",
"dueToday": "Due today",
"dueTomorrow": "Due tomorrow",
"groupOverdue": "Overdue",
"groupToday": "Today",
"groupThisWeek": "This week",
"groupNextWeek": "Next week",
"groupLater": "Later",
"groupNoDate": "No date",
"markDone": "Mark {{title}} as done",
"editButton": "Edit task",
"swipeOpen": "Reopen",
"swipeDone": "Done",
"swipeEdit": "Edit",
"subtaskAdd": "+ Add subtask",
"subtaskToggle": "Show subtasks",
"subtaskMarkDone": "Mark {{title}} as done",
"deleteConfirm": "Delete task and all subtasks?",
"savedToast": "Task saved.",
"createdToast": "Task created.",
"deletedToast": "Task deleted.",
"loadError": "Task could not be loaded.",
"subtaskPrompt": "Subtask:",
"kanbanOpen": "Open",
"kanbanInProgress": "In Progress",
"kanbanDone": "Done",
"recurring": "Recurring",
"listView": "List view",
"kanbanView": "Kanban view"
},
"shopping": {
"title": "Shopping",
"noLists": "No lists",
"noListsDescription": "Create a list with the + button.",
"emptyList": "The list is empty",
"emptyListDescription": "Add items using the input field above.",
"newListPrompt": "Name for the new list:",
"newListButton": "Create new list",
"renameListPrompt": "New list name:",
"deleteListConfirm": "Delete list \"{{name}}\" and all items?",
"deletedListToast": "List deleted.",
"itemsRemovedToast": "{{count}} items removed.",
"clearChecked": "Remove checked ({{count}})",
"itemNamePlaceholder": "Add item…",
"itemQtyPlaceholder": "Quantity",
"itemNameLabel": "Item name",
"itemQtyLabel": "Quantity",
"categoryLabel": "Category",
"addItemLabel": "Add item",
"renameListLabel": "Rename list",
"deleteListLabel": "Delete list",
"swipeBack": "Undo",
"swipeCheck": "Check off",
"swipeDelete": "Delete",
"markDoneLabel": "Check off {{name}}",
"markUndoneLabel": "Uncheck {{name}}",
"deleteItemLabel": "Delete {{name}}",
"listsLoadError": "Lists could not be loaded.",
"itemsLoadError": "Items could not be loaded.",
"catFruitVeg": "Fruit & Vegetables",
"catBakery": "Bakery",
"catDairy": "Dairy",
"catMeatFish": "Meat & Fish",
"catFrozen": "Frozen",
"catDrinks": "Drinks",
"catHousehold": "Household",
"catDrugstore": "Drugstore",
"catMisc": "Miscellaneous"
},
"meals": {
"title": "Meal Plan",
"noMealPlanned": "No meal planned",
"addMeal": "Add {{type}}",
"editMeal": "Edit meal",
"addMealTitle": "Add meal",
"deleteMeal": "Delete meal",
"transferToShoppingList": "Add ingredients to shopping list",
"today": "Today",
"prevWeek": "Previous week",
"nextWeek": "Next week",
"loadError": "Meal plan could not be loaded.",
"typeBreakfast": "Breakfast",
"typeLunch": "Lunch",
"typeDinner": "Dinner",
"typeSnack": "Snack",
"dayMo": "Mon",
"dayDi": "Tue",
"dayMi": "Wed",
"dayDo": "Thu",
"dayFr": "Fri",
"daySa": "Sat",
"daySo": "Sun",
"dateLabel": "Date",
"mealTypeLabel": "Meal",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Spaghetti Bolognese",
"notesLabel": "Notes",
"notesPlaceholder": "Optional…",
"ingredientsLabel": "Ingredients",
"addIngredient": "Add ingredient",
"ingredientNamePlaceholder": "Ingredient",
"ingredientQtyPlaceholder": "Quantity",
"removeIngredient": "Remove ingredient",
"transferLabel": "Transfer ingredients to shopping list",
"transferNow": "Transfer now",
"noShoppingLists": "No shopping lists available",
"transferSuccess": "{{count}} ingredient transferred",
"transferSuccessPlural": "{{count}} ingredients transferred",
"transferAlreadyDone": "All ingredients already transferred",
"ingredientCount": "{{count}} ingredient",
"ingredientCountPlural": "{{count}} ingredients",
"titleRequired": "Title is required",
"loadingIndicator": "Loading…"
},
"calendar": {
"title": "Calendar",
"newEvent": "New Event",
"editEvent": "Edit Event",
"addEvent": "Add event",
"deleteEvent": "Delete event",
"noEvents": "No events in the selected period.",
"today": "Today",
"back": "Back",
"forward": "Forward",
"viewMonth": "Month",
"viewWeek": "Week",
"viewDay": "Day",
"viewAgenda": "Agenda",
"allDay": "All day",
"allDayShort": "all day",
"moreEvents": "+{{count}} more",
"weekNumberLabel": "W{{week}} · {{month}} {{year}}",
"agendaFrom": "From {{date}}",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Dentist",
"allDayToggle": "All day",
"startDateLabel": "Start date",
"startTimeLabel": "Start time",
"endDateLabel": "End date",
"endTimeLabel": "End time",
"fromLabel": "From",
"toLabel": "To",
"locationLabel": "Location",
"locationPlaceholder": "Optional",
"assignedLabel": "Assigned to",
"assignedNobody": "- Nobody -",
"colorLabel": "Color",
"descriptionLabel": "Description",
"descriptionPlaceholder": "Optional…",
"popupEdit": "Edit",
"deleteConfirm": "Really delete \"{{title}}\"?",
"createdToast": "Event created",
"savedToast": "Event saved",
"deletedToast": "Event deleted",
"loadError": "Events could not be loaded.",
"saveError": "Error saving",
"deleteError": "Error deleting",
"titleRequired": "Title is required",
"monthJanuary": "January",
"monthFebruary": "February",
"monthMarch": "March",
"monthApril": "April",
"monthMay": "May",
"monthJune": "June",
"monthJuly": "July",
"monthAugust": "August",
"monthSeptember": "September",
"monthOctober": "October",
"monthNovember": "November",
"monthDecember": "December",
"dayShortSunday": "Sun",
"dayShortMonday": "Mon",
"dayShortTuesday": "Tue",
"dayShortWednesday": "Wed",
"dayShortThursday": "Thu",
"dayShortFriday": "Fri",
"dayShortSaturday": "Sat",
"dayLongSunday": "Sunday",
"dayLongMonday": "Monday",
"dayLongTuesday": "Tuesday",
"dayLongWednesday": "Wednesday",
"dayLongThursday": "Thursday",
"dayLongFriday": "Friday",
"dayLongSaturday": "Saturday",
"timeSuffix": "",
"colorLabel": "Color {{color}}"
},
"notes": {
"title": "Board",
"newNote": "New Note",
"editNote": "Edit Note",
"addNoteLabel": "New Note",
"searchPlaceholder": "Search notes…",
"emptyTitle": "No notes yet",
"emptyDescription": "Create a new note with the + button.",
"noResultsTitle": "No results",
"noResultsDescription": "No note contains \"{{query}}\".",
"titleLabel": "Title (optional)",
"titlePlaceholder": "No title",
"contentLabel": "Content",
"contentMarkdownHint": "(Markdown formatting supported)",
"contentPlaceholder": "Enter note…",
"colorLabel": "Color",
"pinnedLabel": "Pin (appears on dashboard)",
"pinAction": "Pin",
"unpinAction": "Unpin",
"deleteLabel": "Delete note",
"deleteConfirm": "Really delete this note?",
"createdToast": "Note created",
"savedToast": "Note saved",
"deletedToast": "Note deleted",
"loadError": "Notes could not be loaded.",
"formatBold": "Bold (Ctrl+B)",
"formatItalic": "Italic (Ctrl+I)",
"formatUnderline": "Underline (Ctrl+U)",
"formatStrikethrough": "Strikethrough",
"formatHeading": "Heading",
"formatList": "Bullet list",
"formatOrderedList": "Numbered list",
"formatChecklist": "Checklist",
"formatLink": "Link",
"formatCode": "Code",
"formatQuote": "Quote",
"formatDivider": "Divider"
},
"contacts": {
"title": "Contacts",
"newContact": "New Contact",
"editContact": "Edit Contact",
"addButton": "New",
"newContactLabel": "New Contact",
"searchPlaceholder": "Search by name, phone or email…",
"importButton": "Import",
"importLabel": "Import contact from vCard",
"importTooltip": "Import vCard",
"emptyTitle": "No contacts yet",
"emptyDescription": "Add new contacts with the + button.",
"filterAll": "All",
"nameLabel": "Name *",
"namePlaceholder": "Full name",
"categoryLabel": "Category",
"phoneLabel": "Phone",
"phonePlaceholder": "+1 …",
"emailLabel": "Email",
"emailPlaceholder": "name@example.com",
"addressLabel": "Address",
"addressPlaceholder": "Street, ZIP City",
"notesLabel": "Notes",
"notesPlaceholder": "Optional…",
"callLabel": "Call",
"emailActionLabel": "Email",
"mapsLabel": "Open in Maps",
"exportLabel": "Export as vCard",
"exportTooltip": "Export vCard",
"deleteLabel": "Delete contact",
"deleteConfirm": "Really delete this contact?",
"deletePersonConfirm": "Really delete \"{{name}}\"?",
"savedToast": "Contact saved",
"updatedToast": "Contact updated",
"deletedToast": "Contact deleted",
"importedToast": "{{name}} imported.",
"importError": "Import failed: {{error}}",
"vcardNoName": "vCard does not contain a name.",
"catDoctor": "Doctor",
"catSchool": "School/Childcare",
"catAuthority": "Authority",
"catInsurance": "Insurance",
"catCraftsman": "Tradesperson",
"catEmergency": "Emergency",
"catMisc": "Miscellaneous",
"categoryDoctor": "Doctor",
"categorySchool": "School/Daycare",
"categoryAuthority": "Authority",
"categoryInsurance": "Insurance",
"categoryCraftsman": "Tradesperson",
"categoryEmergency": "Emergency",
"categoryOther": "Other"
},
"budget": {
"title": "Budget",
"newEntry": "New Entry",
"editEntry": "Edit Entry",
"addEntryLabel": "Add entry",
"newEntryFabLabel": "New Entry",
"currentMonth": "Current",
"prevMonth": "Previous month",
"nextMonth": "Next month",
"income": "Income",
"expenses": "Expenses",
"balance": "Balance",
"byCategory": "By category",
"transactions": "Transactions",
"emptyTitle": "No entries this month",
"emptyDescription": "Add budget entries with the + button.",
"csvExport": "CSV",
"typeExpense": "Expense",
"typeIncome": "Income",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Supermarket",
"amountLabel": "Amount (€) *",
"amountPlaceholder": "0.00",
"categoryLabel": "Category",
"dateLabel": "Date *",
"recurringLabel": "Recurring",
"deleteLabel": "Delete entry",
"deleteConfirm": "Really delete this entry?",
"deletePersonConfirm": "Really delete \"{{title}}\"?",
"addedToast": "Entry added",
"savedToast": "Entry saved",
"deletedToast": "Entry deleted",
"loadError": "Budget could not be loaded.",
"trendNeutral": "- same as {{month}}",
"validAmountRequired": "Please enter a valid amount",
"dateRequired": "Date is required",
"catFood": "Groceries",
"catRent": "Rent",
"catInsurance": "Insurance",
"catMobility": "Transport",
"catLeisure": "Leisure",
"catClothing": "Clothing",
"catHealth": "Health",
"catEducation": "Education",
"catMisc": "Miscellaneous",
"loadingIndicator": "Loading…"
},
"settings": {
"title": "Settings",
"sectionDesign": "Appearance",
"sectionAccount": "My Account",
"sectionCalendarSync": "Calendar Sync",
"sectionFamily": "Family Members",
"cardAppearance": "Display",
"themeSystem": "System",
"themeSysLabel": "Use system setting",
"themeLight": "Light",
"themeLightLabel": "Light mode",
"themeDark": "Dark",
"themeDarkLabel": "Dark mode",
"changePassword": "Change password",
"currentPasswordLabel": "Current password",
"newPasswordLabel": "New password",
"confirmPasswordLabel": "Confirm new password",
"savePassword": "Save password",
"passwordMismatch": "Passwords do not match.",
"passwordSavedToast": "Password changed successfully.",
"googleCalendar": "Google Calendar",
"appleCalendar": "Apple Calendar (iCloud)",
"syncNow": "Sync now",
"disconnect": "Disconnect",
"connectGoogle": "Connect with Google",
"connected": "Connected",
"connectedLastSync": "Connected · Last: {{date}}",
"notConnected": "Not connected",
"notConfigured": "Not configured (missing .env variables)",
"configured": "Configured (via .env)",
"configuredLastSync": "Configured (via .env) · Last: {{date}}",
"syncSuccess": "{{provider}} synced.",
"disconnectedToast": "{{provider}} disconnected.",
"googleOnlyAdmin": "Only admin can connect Google Calendar.",
"appleOnlyAdmin": "Only admin can connect Apple Calendar.",
"caldavUrlLabel": "CalDAV Server URL",
"caldavUrlPlaceholder": "https://caldav.icloud.com",
"appleIdLabel": "Apple ID (email)",
"applePasswordLabel": "App-specific password",
"applePasswordHint": "Create password at <strong>appleid.apple.com → Security</strong>.",
"appleConnectBtn": "Connect & test",
"appleConnecting": "Connecting…",
"appleConnectedToast": "Apple Calendar connected.",
"syncSuccessGoogle": "Calendar sync with Google connected successfully.",
"syncSuccessApple": "Calendar sync with Apple connected successfully.",
"syncErrorGoogle": "Connection to Google failed. Please try again.",
"syncErrorApple": "Connection to Apple failed. Please try again.",
"addMember": "+ Add member",
"newMemberTitle": "New Family Member",
"usernameLabel": "Username",
"displayNameLabel": "Display name",
"memberPasswordLabel": "Password",
"colorLabel": "Color",
"roleLabel": "Role",
"roleMember": "Member",
"roleAdmin": "Admin",
"createMember": "Create",
"cancelAddMember": "Cancel",
"memberAddedToast": "{{name}} added.",
"deleteMemberConfirm": "Really delete {{name}}?",
"memberDeletedToast": "{{name}} deleted.",
"deleteMemberLabel": "Delete",
"logout": "Log out",
"synchronizing": "Syncing…",
"googleDisconnectConfirm": "Disconnect Google Calendar?",
"appleDisconnectConfirm": "Disconnect Apple Calendar?",
"localeSystem": "System",
"localeLabel": "Language",
"languageTitle": "Language"
},
"login": {
"tagline": "Family planning. Secure. Privacy-friendly. Open source.",
"usernameLabel": "Username",
"usernamePlaceholder": "username",
"passwordLabel": "Password",
"passwordPlaceholder": "••••••••",
"loginButton": "Log in",
"loggingIn": "Logging in…",
"tooManyAttempts": "Too many attempts. Please wait a moment.",
"invalidCredentials": "Invalid credentials."
},
"install": {
"title": "Install Oikos",
"subtitle": "Add to home screen",
"iosTip1": "Tap ",
"iosTip2": " → \"Add to Home Screen\"",
"installButton": "Install",
"dismissLabel": "Close"
},
"modal": {
"closeLabel": "Close"
}
}