{ "Dashboard": { "title": "Dashboard" }, "HabitList": { "myTasks": "My Tasks", "myHabits": "My Habits", "addTaskButton": "Add Task", "addHabitButton": "Add Habit", "searchTasksPlaceholder": "Search tasks...", "searchHabitsPlaceholder": "Search habits...", "sortByLabel": "Sort by:", "sortByName": "Name", "sortByCoinReward": "Coin Reward", "sortByDueDate": "Due Date", "sortByFrequency": "Frequency", "toggleSortOrderAriaLabel": "Toggle sort order", "noTasksFoundMessage": "No tasks found matching your search.", "noHabitsFoundMessage": "No habits found matching your search.", "emptyStateTasksTitle": "No tasks yet", "emptyStateHabitsTitle": "No habits yet", "emptyStateTasksDescription": "Create your first task to start tracking your progress", "emptyStateHabitsDescription": "Create your first habit to start tracking your progress", "archivedSectionTitle": "Archived", "deleteTaskDialogTitle": "Delete Task", "deleteHabitDialogTitle": "Delete Habit", "deleteTaskDialogMessage": "Are you sure you want to delete this task? This action cannot be undone.", "deleteHabitDialogMessage": "Are you sure you want to delete this habit? This action cannot be undone.", "deleteButton": "Delete" }, "DailyOverview": { "addTaskButtonLabel": "Add Task", "addHabitButtonLabel": "Add Habit", "todaysOverviewTitle": "Today's Overview", "dailyTasksTitle": "Daily Tasks", "noTasksDueTodayMessage": "No tasks due today. Add some tasks to get started!", "dailyHabitsTitle": "Daily Habits", "noHabitsDueTodayMessage": "No habits due today. Add some habits to get started!", "wishlistGoalsTitle": "Wishlist Goals", "redeemableBadgeLabel": "{count}/{total} Redeemable", "noWishlistItemsMessage": "No wishlist items yet. Add some goals to work towards!", "readyToRedeemMessage": "Ready to redeem!", "coinsToGoMessage": "{amount} coins to go", "showLessButton": "Show less", "showAllButton": "Show all", "viewButton": "View", "deleteTaskDialogTitle": "Delete Task", "deleteHabitDialogTitle": "Delete Habit", "confirmDeleteDialogMessage": "Are you sure you want to delete \"{name}\"? This action cannot be undone.", "deleteButton": "Delete", "overdueTooltip": "Overdue" }, "HabitContextMenuItems": { "startPomodoro": "Start Pomodoro", "moveToToday": "Move to Today", "moveToTomorrow": "Move to Tomorrow", "unpin": "Unpin", "pin": "Pin", "edit": "Edit", "archive": "Archive", "unarchive": "Unarchive", "delete": "Delete" }, "HabitStreak": { "dailyCompletionStreakTitle": "Daily Completion Streak", "tooltipHabitsLabel": "habits", "tooltipTasksLabel": "tasks", "tooltipCompletedLabel": "Completed" }, "CoinBalance": { "coinBalanceTitle": "Coin Balance" }, "AddEditHabitModal": { "editTaskTitle": "Edit Task", "editHabitTitle": "Edit Habit", "addNewTaskTitle": "Add New Task", "addNewHabitTitle": "Add New Habit", "nameLabel": "Name *", "descriptionLabel": "Description", "whenLabel": "When *", "completeLabel": "Complete", "timesSuffix": "times", "rewardLabel": "Reward", "coinsSuffix": "coins", "drawingLabel": "Drawing", "addDrawing": "Add Drawing", "editDrawing": "Edit Drawing", "shareLabel": "Share", "saveChangesButton": "Save Changes", "addTaskButton": "Add Task", "addHabitButton": "Add Habit" }, "ConfirmDialog": { "confirmButton": "Confirm", "cancelButton": "Cancel" }, "AddEditWishlistItemModal": { "editTitle": "Edit Reward", "addTitle": "Add New Reward", "nameLabel": "Name *", "descriptionLabel": "Description", "costLabel": "Cost", "coinsSuffix": "coins", "redeemableLabel": "Redeemable", "timesSuffix": "times", "errorNameRequired": "Name is required", "errorCoinCostMin": "Coin cost must be at least 1", "errorTargetCompletionsMin": "Target completions must be at least 1", "errorInvalidUrl": "Please enter a valid URL", "linkLabel": "Link", "drawingLabel": "Drawing", "addDrawing": "Add Drawing", "editDrawing": "Edit Drawing", "shareLabel": "Share", "saveButton": "Save Changes", "addButton": "Add Reward" }, "Navigation": { "dashboard": "Dashboard", "tasks": "Tasks", "habits": "Habits", "calendar": "Calendar", "wishlist": "Wishlist", "coins": "Coins" }, "TodayEarnedCoins": { "todaySuffix": "today" }, "WishlistItem": { "usesLeftSingular": "use left", "usesLeftPlural": "uses left", "coinsSuffix": "coins", "redeem": "Redeem", "redeemedDone": "Done", "redeemedExclamation": "Redeemed!", "editButton": "Edit", "archiveButton": "Archive", "unarchiveButton": "Unarchive", "deleteButton": "Delete" }, "WishlistManager": { "title": "My Wishlist", "addRewardButton": "Add Reward", "emptyStateTitle": "Your wishlist is empty", "emptyStateDescription": "Add rewards that you'd like to earn with your coins", "archivedSectionTitle": "Archived", "popupBlockedTitle": "Popup Blocked", "popupBlockedDescription": "Please allow popups to open the link", "deleteDialogTitle": "Delete Reward", "deleteDialogMessage": "Are you sure you want to delete this reward? This action cannot be undone.", "deleteButton": "Delete" }, "UserSelectModal": { "addUserButton": "Add User", "createNewUserTitle": "Create New User", "selectUserTitle": "Select User", "signInSuccessTitle": "Signed in successfully", "signInSuccessDescription": "Welcome back, {username}!", "errorInvalidPassword": "invalid password", "deleteUserConfirmation": "Are you sure you want to delete user {username}? This action cannot be undone.", "confirmDeleteButtonText": "Delete", "deletingButtonText": "Deleting...", "deleteUserSuccessTitle": "User Deleted", "deleteUserSuccessDescription": "User {username} has been successfully deleted.", "deleteUserErrorTitle": "Deletion Failed", "genericError": "An unexpected error occurred.", "networkError": "A network error occurred. Please try again.", "deleteUserTooltip": "Delete user", "editUserTooltip": "Edit user" }, "CoinsManager": { "title": "Coins Management", "currentBalanceLabel": "Current Balance", "coinsSuffix": "coins", "addCoinsButton": "Add Coins", "removeCoinsButton": "Remove Coins", "statisticsTitle": "Statistics", "totalEarnedLabel": "Total Earned", "totalSpentLabel": "Total Spent", "totalTransactionsLabel": "Total Transactions", "todaysEarnedLabel": "Today's Earned", "todaysSpentLabel": "Today's Spent", "todaysTransactionsLabel": "Today's Transactions", "transactionHistoryTitle": "Transaction History", "showLabel": "Show:", "entriesSuffix": "entries", "showingEntries": "Showing {from} to {to} of {total} entries", "noTransactionsTitle": "No transactions yet", "noTransactionsDescription": "Your transaction history will appear here once you start earning or spending coins", "pageLabel": "Page", "ofLabel": "of", "transactionTypeHabitCompletion": "Habit Completion", "transactionTypeTaskCompletion": "Task Completion", "transactionTypeHabitUndo": "Habit Undo", "transactionTypeTaskUndo": "Task Undo", "transactionTypeWishRedemption": "Wish Redemption", "transactionTypeManualAdjustment": "Manual Adjustment", "transactionTypeCoinReset": "Coin Reset", "transactionTypeInitialBalance": "Initial Balance" }, "NotificationBell": { "errorUpdateTimestamp": "Failed to update notification read timestamp:" }, "PomodoroTimer": { "focusLabel1": "Stay Focused", "focusLabel2": "You Got This", "focusLabel3": "Keep Going", "focusLabel4": "Crush It", "focusLabel5": "Make It Happen", "focusLabel6": "Stay Strong", "focusLabel7": "Push Through", "focusLabel8": "One Step at a Time", "focusLabel9": "You Can Do It", "focusLabel10": "Focus and Conquer", "breakLabel1": "Take a Break", "breakLabel2": "Relax and Recharge", "breakLabel3": "Breathe Deeply", "breakLabel4": "Stretch It Out", "breakLabel5": "Refresh Yourself", "breakLabel6": "You Deserve This", "breakLabel7": "Recharge Your Energy", "breakLabel8": "Step Away for a Bit", "breakLabel9": "Clear Your Mind", "breakLabel10": "Rest and Rejuvenate", "focusType": "Focus", "breakType": "Break", "pauseButton": "Pause", "startButton": "Start", "resetButton": "Reset", "skipButton": "Skip", "wakeLockNotSupported": "Browser does not support wakelock", "wakeLockInUse": "Wake lock already in use", "wakeLockRequestError": "Error requesting wake lock:", "wakeLockReleaseError": "Error releasing wake lock:" }, "HabitCalendar": { "title": "Habit Calendar", "calendarCardTitle": "Calendar", "selectDatePrompt": "Select a date", "tasksSectionTitle": "Tasks", "habitsSectionTitle": "Habits", "errorCompletingPastHabit": "Error completing past habit:" }, "NotificationDropdown": { "notLoggedIn": "Not logged in.", "userCompletedItem": "{username} completed {itemName}.", "userRedeemedItem": "{username} redeemed {itemName}.", "activityRelatedToItem": "Activity related to {itemName} by {username}.", "defaultUsername": "Someone", "defaultItemName": "a shared item", "notificationsTitle": "Notifications", "notificationsTooltip": "Shows completions or redemptions by other users for habits or wishlist that you shared with them (you must be admin)", "noNotificationsYet": "No notifications yet." }, "AboutModal": { "dialogArisLabel": "about", "changelogButton": "Changelog", "createdByPrefix": "Created with ❤️ by", "starOnGitHubButton": "Star on GitHub" }, "PermissionSelector": { "permissionsTitle": "Permissions", "adminAccessLabel": "Admin Access", "adminAccessDescription": "Admins have full permission to all data for all users", "resourceHabitTask": "Habit / Task", "resourceWishlist": "Wishlist", "resourceCoins": "Coins", "permissionWrite": "Write", "permissionInteract": "Interact" }, "UserForm": { "toastUserUpdatedTitle": "User updated", "toastUserUpdatedDescription": "Successfully updated user {username}", "toastUserCreatedTitle": "User created", "toastUserCreatedDescription": "Successfully created user {username}", "actionUpdate": "update", "actionCreate": "create", "errorFailedUserAction": "Failed to {action} user", "errorTitle": "Error", "errorFileSizeLimit": "File size must be less than 5MB", "toastAvatarUploadedTitle": "Avatar uploaded", "toastAvatarUploadedDescription": "Successfully uploaded avatar", "errorFailedAvatarUpload": "Failed to upload avatar", "changeAvatarButton": "Change Avatar", "uploadAvatarButton": "Upload Avatar", "usernameLabel": "Username", "usernamePlaceholder": "Username", "newPasswordLabel": "New Password", "passwordLabel": "Password", "passwordPlaceholderEdit": "Leave blank to keep current", "passwordPlaceholderCreate": "Enter password", "demoPasswordDisabledMessage": "Password is automatically disabled in demo instance", "disablePasswordLabel": "Disable password", "cancelButton": "Cancel", "saveChangesButton": "Save Changes", "createUserButton": "Create User", "deleteAccountButton": "Delete Account", "toastDemoDeleteDisabled": "Deletion is disabled in demo instance", "toastCannotDeleteSelf": "You cannot delete your own account", "confirmDeleteUser": "Are you sure you want to delete user {username}?", "toastUserDeletedTitle": "User deleted", "toastUserDeletedDescription": "User {username} has been deleted successfully", "toastDeleteUserFailed": "Failed to delete user: {error}", "deletingButtonText": "Deleting...", "areYouSure": "Are you sure?", "deleteUserConfirmation": "Are you sure you want to delete user {username}?", "cancel": "Cancel", "confirmDeleteButtonText": "Delete" }, "ViewToggle": { "habitsLabel": "Habits", "tasksLabel": "Tasks" }, "HabitItem": { "overdue": "Overdue", "whenLabel": "When: {frequency}", "coinsPerCompletion": "{count} coins per completion", "completedStatus": "Completed", "completedStatusCount": "Completed ({completed}/{target})", "completedStatusCountMobile": "{completed}/{target}", "completeButton": "Complete", "completeButtonCount": "Complete ({completed}/{target})", "completeButtonCountMobile": "{completed}/{target}", "undoButton": "Undo", "editButton": "Edit" }, "TransactionNoteEditor": { "noteTooLongTitle": "Note too long", "noteTooLongDescription": "Notes must be less than 200 characters", "errorSavingNoteTitle": "Error saving note", "errorDeletingNoteTitle": "Error deleting note", "pleaseTryAgainDescription": "Please try again", "addNotePlaceholder": "Add a note...", "saveNoteTitle": "Save note", "cancelButtonTitle": "Cancel", "deleteNoteTitle": "Delete note", "editNoteAriaLabel": "Edit note" }, "Profile": { "guestUsername": "Guest", "editProfileButton": "Edit profile", "signOutSuccessTitle": "Signed out successfully", "signOutSuccessDescription": "You have been logged out of your account", "signOutErrorTitle": "Sign Out Error", "signOutErrorDescription": "Failed to sign out", "switchUserButton": "Switch user", "settingsLink": "Settings", "aboutButton": "About", "themeLabel": "Theme", "editProfileModalTitle": "Edit Profile" }, "PasswordEntryForm": { "notYouButton": "Not you?", "passwordLabel": "Password", "passwordPlaceholder": "Enter password", "loginErrorToastTitle": "Error", "loginFailedErrorToastDescription": "Login failed", "cancelButton": "Cancel", "loginButton": "Login" }, "CompletionCountBadge": { "countCompleted": "{completedCount}/{totalCount} completed" }, "SettingsPage": { "title": "Settings", "uiSettingsTitle": "UI Settings", "numberFormattingLabel": "Number Formatting", "numberFormattingDescription": "Format large numbers (e.g., 1K, 1M, 1B)", "numberGroupingLabel": "Number Grouping", "numberGroupingDescription": "Use thousand separators (e.g., 1,000 vs 1000)", "systemSettingsTitle": "System Settings", "timezoneLabel": "Timezone", "timezoneDescription": "Select your timezone for accurate date tracking", "weekStartDayLabel": "Week Start Day", "weekStartDayDescription": "Select your preferred first day of the week", "weekdays": { "sunday": "Sunday", "monday": "Monday", "tuesday": "Tuesday", "wednesday": "Wednesday", "thursday": "Thursday", "friday": "Friday", "saturday": "Saturday" }, "autoBackupLabel": "Auto Backup", "autoBackupTooltip": "When enabled, the application data (habits, coins, settings, etc.) will be automatically backed up daily around 2 AM server time. Backups are stored as ZIP files in the `backups/` directory at the project root. Only the last 7 backups are kept; older ones are automatically deleted.", "autoBackupDescription": "Automatically back up data daily", "languageLabel": "Language", "languageDescription": "Choose your preferred display language for the application.", "languageChangedTitle": "Language Changed", "languageChangedDescription": "Please refresh the page to see the changes", "languageDisabledInDemoTooltip": "Changing the language is disabled in the demo version." }, "Common": { "authenticationRequiredTitle": "Authentication Required", "authenticationRequiredDescription": "Please sign in to continue.", "permissionDeniedTitle": "Permission Denied", "permissionDeniedDescription": "You don't have {action} permission for {resource}s.", "undoButton": "Undo", "redoButton": "Redo", "errorTitle": "Error" }, "useHabits": { "alreadyCompletedTitle": "Already completed", "alreadyCompletedDescription": "You've already completed this habit today.", "completedTitle": "Completed!", "earnedCoinsDescription": "You earned {coinReward} coins.", "progressTitle": "Progress!", "progressDescription": "You've completed {count}/{target} times today.", "completionUndoneTitle": "Completion undone", "completionUndoneDescription": "You have {count}/{target} completions today.", "noCompletionsToUndoTitle": "No completions to undo", "noCompletionsToUndoDescription": "This habit hasn't been completed today.", "alreadyCompletedPastDateTitle": "Already completed", "alreadyCompletedPastDateDescription": "This habit was already completed on {dateKey}.", "earnedCoinsPastDateDescription": "You earned {coinReward} coins for {dateKey}.", "progressPastDateDescription": "You've completed {count}/{target} times on {dateKey}." }, "useWishlist": { "redemptionLimitReachedTitle": "Redemption limit reached", "redemptionLimitReachedDescription": "You've reached the maximum redemptions for \"{itemName}\".", "rewardRedeemedTitle": "🎉 Reward Redeemed!", "rewardRedeemedDescription": "You've redeemed \"{itemName}\" for {itemCoinCost} coins.", "notEnoughCoinsTitle": "Not enough coins", "notEnoughCoinsDescription": "You need {coinsNeeded} more coins to redeem this reward." }, "useCoins": { "addedCoinsDescription": "Added {amount} coins", "invalidAmountTitle": "Invalid amount", "invalidAmountDescription": "Please enter a valid positive number", "successTitle": "Success", "transactionNotFoundDescription": "Transaction not found", "maxAmountExceededDescription": "The amount cannot exceed {max}.", "transactionNotFoundDescription": "Transaction not found", "maxAmountExceededDescription": "The amount cannot exceed {max}." }, "Warning": { "areYouSure": "Are you sure?", "cancel": "Cancel" } }