326 lines
10 KiB
JSON
326 lines
10 KiB
JSON
{
|
|
"nav": {
|
|
"dashboard": "Dashboard",
|
|
"medications": "Medications",
|
|
"planner": "Planner",
|
|
"settings": "Settings",
|
|
"schedule": "Schedule"
|
|
},
|
|
"header": {
|
|
"eyebrow": {
|
|
"overview": "MedAssist-ng · Overview",
|
|
"inventory": "MedAssist-ng · Inventory",
|
|
"planner": "MedAssist-ng · Planner",
|
|
"settings": "MedAssist-ng · Configuration",
|
|
"schedule": "MedAssist-ng · Schedule"
|
|
}
|
|
},
|
|
"dashboard": {
|
|
"reorder": {
|
|
"title": "Reorder Reminder",
|
|
"badge": "Stock watch",
|
|
"noMeds": "No medications configured yet.",
|
|
"allGood": "All good, enough stock.",
|
|
"lowWarning": "Enough stock for now, but {{count}} medication is running low.",
|
|
"lowWarning_other": "Enough stock for now, but {{count}} medications are running low.",
|
|
"sendReminder": "🔔 Send Reminder Now"
|
|
},
|
|
"overview": {
|
|
"title": "Medication Overview",
|
|
"badge": "Stock"
|
|
},
|
|
"schedules": {
|
|
"title": "Upcoming Schedules",
|
|
"1month": "1 month",
|
|
"3months": "3 months",
|
|
"6months": "6 months",
|
|
"allTaken": "All taken",
|
|
"showPastDays": "Show past days",
|
|
"hidePastDays": "Hide past days",
|
|
"pastDaysCount": "{{count}} day",
|
|
"pastDaysCount_other": "{{count}} days",
|
|
"missedDoses": "{{count}} missed dose",
|
|
"missedDoses_other": "{{count}} missed doses"
|
|
},
|
|
"reminders": {
|
|
"active": "Automatic reminders active",
|
|
"allStockOk": "All stock OK",
|
|
"allOk": "All OK",
|
|
"lastReminder": "Last reminder",
|
|
"nextIn": "Next",
|
|
"inDays": "in {{days}} days",
|
|
"noRemindersNeeded": "no reminders needed",
|
|
"needReorder": "{{count}} med needs reorder",
|
|
"needReorder_other": "{{count}} meds need reorder",
|
|
"lowWarning": "{{count}} medication running low",
|
|
"lowWarning_other": "{{count}} medications running low",
|
|
"waitingFirstCheck": "waiting for first check",
|
|
"typeStock": "Stock",
|
|
"typeIntake": "Intake",
|
|
"channelEmail": "Email",
|
|
"channelPush": "Push",
|
|
"channelBoth": "Email + Push"
|
|
}
|
|
},
|
|
"table": {
|
|
"name": "Name",
|
|
"pills": "Pills",
|
|
"days": "Days",
|
|
"currentPills": "Current pills",
|
|
"fullBlisters": "Full blisters",
|
|
"openBlister": "Open blister",
|
|
"daysLeft": "Days left",
|
|
"status": "Stock",
|
|
"runsOut": "Runs out",
|
|
"autoRemind": "Auto-remind",
|
|
"expiry": "Expiry"
|
|
},
|
|
"medications": {
|
|
"list": {
|
|
"title": "Medication list",
|
|
"entries": "{{count}} entries",
|
|
"entries_one": "{{count}} entry",
|
|
"entries_other": "{{count}} entries"
|
|
},
|
|
"details": {
|
|
"packs": "Packs",
|
|
"blisters": "Blisters per pack",
|
|
"pillsPerBlister": "Pills per blister",
|
|
"loose": "Loose",
|
|
"total": "Total"
|
|
}
|
|
},
|
|
"form": {
|
|
"editEntry": "Edit entry",
|
|
"newEntry": "New entry",
|
|
"badge": "Packs + loose pills",
|
|
"commercialName": "Commercial Name",
|
|
"genericName": "Generic Name",
|
|
"takenBy": "Taken by",
|
|
"packs": "Packs",
|
|
"blistersPerPack": "Blisters per pack",
|
|
"pillsPerBlister": "Pills per blister",
|
|
"loosePills": "Loose pills",
|
|
"pillWeight": "Pill weight (mg)",
|
|
"total": "Total (pills)",
|
|
"expiryDate": "Expiry Date",
|
|
"notes": "Notes",
|
|
"medicationImage": "Medication Image",
|
|
"removeImage": "Remove Image",
|
|
"placeholders": {
|
|
"commercial": "e.g. Ozempic",
|
|
"generic": "e.g. Semaglutide (optional)",
|
|
"takenBy": "e.g. John, Sarah (optional)",
|
|
"weight": "e.g. 240",
|
|
"notes": "e.g. Take with food, avoid alcohol... (optional)"
|
|
},
|
|
"blisters": {
|
|
"title": "Intake schedule",
|
|
"remind": "Remind",
|
|
"remindTooltip": "Receive a notification 15 minutes before each scheduled intake",
|
|
"addIntake": "Intake",
|
|
"usage": "Usage (pills)",
|
|
"everyDays": "Every (days)",
|
|
"every": "every",
|
|
"from": "from",
|
|
"startDate": "Date",
|
|
"startTime": "Time"
|
|
}
|
|
},
|
|
"planner": {
|
|
"title": "Demand Calculator",
|
|
"badge": "Plan your supply",
|
|
"from": "From",
|
|
"until": "Until",
|
|
"calculate": "Calculate",
|
|
"calculating": "Calculating...",
|
|
"sendEmail": "📧 Send via Email",
|
|
"table": {
|
|
"medication": "Medication",
|
|
"usage": "Usage",
|
|
"blistersNeeded": "Blisters needed",
|
|
"blisters": "Blisters",
|
|
"available": "Available"
|
|
}
|
|
},
|
|
"settings": {
|
|
"loading": "Loading settings...",
|
|
"language": {
|
|
"title": "Language",
|
|
"select": "Select language"
|
|
},
|
|
"notifications": {
|
|
"title": "Notifications",
|
|
"channels": "Channels",
|
|
"email": "Email",
|
|
"push": "Push",
|
|
"stockReminders": "Stock Reminders",
|
|
"intakeReminders": "Intake Reminders",
|
|
"enableHint": "Enable at least one channel below to receive notifications."
|
|
},
|
|
"email": {
|
|
"recipient": "Recipient",
|
|
"notConfigured": "Not configured"
|
|
},
|
|
"push": {
|
|
"url": "URL",
|
|
"supports": "Supports ntfy, Discord, Telegram, Slack"
|
|
},
|
|
"schedule": {
|
|
"title": "Reminder Schedule",
|
|
"stockCheck": "Stock check",
|
|
"dailyAt6": "Daily at 6:00 AM",
|
|
"intakeCheck": "Intake check",
|
|
"15minBefore": "15 min before scheduled time",
|
|
"nextCheck": "Next stock check",
|
|
"lastSent": "Last sent",
|
|
"envHint": "These values can be configured via REMINDER_HOUR and REMINDER_MINUTES_BEFORE in .env"
|
|
},
|
|
"stock": {
|
|
"title": "Stock",
|
|
"threshold": "Reminder Threshold",
|
|
"remindWhen": "Remind when supply drops below",
|
|
"repeatDaily": "Repeat daily",
|
|
"repeatTooltip": "When enabled, sends reminders every day while stock is low. Otherwise, only notifies once per medication until restocked.",
|
|
"display": "Display",
|
|
"lowStockDays": "Low Stock (days)",
|
|
"lowStockTooltip": "Yellow warning color threshold",
|
|
"highStockDays": "High Stock (days)",
|
|
"highStockTooltip": "Green with star threshold"
|
|
},
|
|
"saveSettings": "Save Settings"
|
|
},
|
|
"modal": {
|
|
"for": "for",
|
|
"at": "at",
|
|
"stockInfo": "Current Stock",
|
|
"packageDetails": "Package Details",
|
|
"currentStock": "Pills",
|
|
"packs": "Packs",
|
|
"blistersPerPack": "Blisters/Pack",
|
|
"pillsPerBlister": "Pills/Blister",
|
|
"loosePills": "Loose Pills",
|
|
"pillWeight": "Pill Weight",
|
|
"expiryDate": "Expiry Date",
|
|
"intakeSchedule": "Intake Schedule",
|
|
"coverageStatus": "Coverage Status",
|
|
"daysLeft": "Days Left",
|
|
"runsOut": "Runs Out",
|
|
"notes": "Notes",
|
|
"exportCalendar": "Export to Calendar",
|
|
"exportTooltip": "Export schedule to calendar",
|
|
"editMedication": "Edit Medication",
|
|
"userMedications": "{{name}}'s Medications",
|
|
"noMedsForUser": "No medications found for {{name}}"
|
|
},
|
|
"status": {
|
|
"outOfStock": "Empty",
|
|
"lowStock": "Low",
|
|
"normal": "Normal",
|
|
"highStock": "High",
|
|
"noSchedule": "No Schedule",
|
|
"enough": "Enough",
|
|
"noPillsLeft": "⚠ No pills left",
|
|
"stockOk": "✓ Stock OK"
|
|
},
|
|
"tooltips": {
|
|
"intakeReminders": "Intake reminders enabled",
|
|
"hasNotes": "Has notes",
|
|
"lightMode": "Switch to light mode",
|
|
"darkMode": "Switch to dark mode"
|
|
},
|
|
"dose": {
|
|
"takenBy": "taken by",
|
|
"markAsTaken": "Mark as taken"
|
|
},
|
|
"auth": {
|
|
"login": "Login",
|
|
"logout": "Logout",
|
|
"register": "Create Account",
|
|
"createAdmin": "Create Admin Account",
|
|
"profile": "Profile",
|
|
"username": "Username",
|
|
"password": "Password",
|
|
"email": "Email",
|
|
"confirmPassword": "Confirm Password",
|
|
"currentPassword": "Current Password",
|
|
"newPassword": "New Password",
|
|
"changePassword": "Change Password",
|
|
"forgotPassword": "Forgot password?",
|
|
"sendResetLink": "Send Reset Link",
|
|
"resetPassword": "Reset Password",
|
|
"backToLogin": "Back to Login",
|
|
"createAccount": "Create account",
|
|
"alreadyHaveAccount": "Already have an account? Login",
|
|
"firstUserInfo": "This will be the administrator account.",
|
|
"usernameHint": "Letters, numbers, underscores, and hyphens only",
|
|
"emailHint": "For password recovery",
|
|
"passwordMismatch": "Passwords do not match",
|
|
"checkEmail": "Check your email",
|
|
"resetEmailSent": "If an account with this email exists, we've sent a password reset link.",
|
|
"passwordReset": "Password Reset",
|
|
"passwordResetSuccess": "Your password has been reset. Redirecting to login...",
|
|
"profileUpdated": "Profile updated successfully",
|
|
"rememberMe": "Remember me",
|
|
"localAccount": "Local Account",
|
|
"updatePassword": "Update Password",
|
|
"fillAllFields": "Please fill in all password fields",
|
|
"signOut": "Sign Out",
|
|
"uploadAvatar": "Upload avatar",
|
|
"removeAvatar": "Remove avatar",
|
|
"avatarUpdated": "Avatar updated",
|
|
"avatarRemoved": "Avatar removed",
|
|
"loginWithSSO": "Login with {{provider}}",
|
|
"or": "or"
|
|
},
|
|
"common": {
|
|
"loading": "Loading...",
|
|
"sending": "Sending...",
|
|
"saving": "Saving...",
|
|
"saved": "Saved ✓",
|
|
"save": "Save",
|
|
"cancel": "Cancel",
|
|
"close": "Close",
|
|
"edit": "Edit",
|
|
"delete": "Delete",
|
|
"remove": "Remove",
|
|
"reset": "Reset",
|
|
"test": "Test",
|
|
"undo": "Undo",
|
|
"expand": "Click to expand",
|
|
"collapse": "Click to collapse",
|
|
"optional": "optional",
|
|
"pill": "pill",
|
|
"pills": "pills",
|
|
"of": "of",
|
|
"loose": "loose",
|
|
"none": "None",
|
|
"day": "day",
|
|
"days": "days",
|
|
"blister": "blister",
|
|
"blisters": "blisters",
|
|
"fullBlister": "full blister",
|
|
"fullBlisters": "full blisters",
|
|
"inBlister": "in 1 blister",
|
|
"total": "total"
|
|
},
|
|
"share": {
|
|
"button": "Share",
|
|
"title": "Share Schedule",
|
|
"description": "Generate a secret link to share the medication schedule for a specific person. Anyone with this link can view the schedule. When the person marks a dose as taken, it will also be marked as taken in your app.",
|
|
"selectPerson": "Select person",
|
|
"selectPeriod": "Select time period",
|
|
"generateLink": "Generate Link",
|
|
"generating": "Generating...",
|
|
"generateAnother": "Generate another link",
|
|
"linkGenerated": "Share link generated!",
|
|
"copyLink": "Copy Link",
|
|
"copied": "Copied to clipboard!",
|
|
"noPeople": "No medications with 'Taken by' assigned. Add a person to a medication first.",
|
|
"scheduleFor": "Schedule for",
|
|
"period": "Period",
|
|
"noSchedule": "No scheduled doses found.",
|
|
"generatedBy": "Generated by"
|
|
}
|
|
}
|