mirror of
https://github.com/temetro/temetro.git
synced 2026-07-26 11:58:14 +00:00
a07966ca4d
- sidebar + auth logo now invert to black in light mode (dark unchanged), same trick the docs site uses — no second asset needed - prescriptions page: search by patient, file number, medication, prescriber or status, with no-match / empty states Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
912 lines
33 KiB
JSON
912 lines
33 KiB
JSON
{
|
|
"common": {
|
|
"appName": "temetro",
|
|
"email": "Email",
|
|
"password": "Password",
|
|
"signIn": "Sign in",
|
|
"signUp": "Sign up",
|
|
"backToSignIn": "Back to sign in"
|
|
},
|
|
"auth": {
|
|
"login": {
|
|
"title": "Welcome back",
|
|
"subtitle": "Sign in to your clinician account",
|
|
"tabEmail": "Email",
|
|
"tabUsername": "Username",
|
|
"emailLabel": "Email",
|
|
"emailPlaceholder": "you@clinic.org",
|
|
"usernameLabel": "Username",
|
|
"usernamePlaceholder": "jdoe",
|
|
"passwordLabel": "Password",
|
|
"forgotPassword": "Forgot your password?",
|
|
"submit": "Sign in",
|
|
"submitting": "Signing in…",
|
|
"noAccount": "Don't have an account?",
|
|
"signUpLink": "Sign up",
|
|
"error": "Could not sign in. Check your email and password and try again.",
|
|
"errorTitle": "Sign in failed",
|
|
"welcomeBack": "Welcome back"
|
|
},
|
|
"signup": {
|
|
"title": "Create your account",
|
|
"subtitle": "Start using temetro in your clinic",
|
|
"nameLabel": "Full name",
|
|
"namePlaceholder": "Dr. Jane Okafor",
|
|
"emailLabel": "Email",
|
|
"emailPlaceholder": "you@clinic.org",
|
|
"passwordLabel": "Password",
|
|
"confirmPasswordLabel": "Confirm password",
|
|
"passwordHint": "Must be at least {{count}} characters long.",
|
|
"passwordTooShort": "Password must be at least {{count}} characters.",
|
|
"passwordMismatch": "Passwords do not match.",
|
|
"submit": "Create account",
|
|
"submitting": "Creating account…",
|
|
"haveAccount": "Already have an account?",
|
|
"signInLink": "Sign in",
|
|
"error": "Could not create your account.",
|
|
"errorTitle": "Sign up failed",
|
|
"created": "Account created",
|
|
"createdHint": "Set up your clinic to get started."
|
|
},
|
|
"verifyEmail": {
|
|
"title": "Check your inbox",
|
|
"subtitle": "We sent a verification link to {{email}}. Open it to activate your account.",
|
|
"subtitleNoEmail": "Open the verification link we emailed you to activate your account.",
|
|
"continue": "I've verified — continue",
|
|
"resend": "Resend email",
|
|
"resending": "Sending…",
|
|
"resent": "Verification email sent. Check your inbox.",
|
|
"resendError": "Could not resend the verification email."
|
|
},
|
|
"forgotPassword": {
|
|
"title": "Reset your password",
|
|
"subtitle": "We'll email you a link to reset your password",
|
|
"emailLabel": "Email",
|
|
"emailPlaceholder": "you@clinic.org",
|
|
"submit": "Send reset link",
|
|
"submitting": "Sending…",
|
|
"sent": "If an account exists for {{email}}, a reset link is on its way. Check your inbox.",
|
|
"error": "Could not send the reset email.",
|
|
"failedToastTitle": "Couldn't send reset link",
|
|
"sentToastTitle": "Reset link sent",
|
|
"sentToastBody": "Check your inbox for the link."
|
|
},
|
|
"resetPassword": {
|
|
"title": "Set a new password",
|
|
"subtitle": "Choose a new password for your account",
|
|
"passwordLabel": "New password",
|
|
"confirmLabel": "Confirm new password",
|
|
"passwordHint": "At least {{count}} characters.",
|
|
"submit": "Reset password",
|
|
"submitting": "Saving…",
|
|
"done": "Your password has been reset. Redirecting you to sign in…",
|
|
"invalidToken": "This reset link is invalid or has expired.",
|
|
"tooShort": "Password must be at least {{count}} characters.",
|
|
"mismatch": "Passwords do not match.",
|
|
"error": "Could not reset your password.",
|
|
"failedToastTitle": "Couldn't reset password",
|
|
"successToastTitle": "Password updated",
|
|
"successToastBody": "Redirecting you to sign in…"
|
|
},
|
|
"acceptInvite": {
|
|
"notFoundTitle": "Invitation not found",
|
|
"notFoundBody": "This invitation link is missing or invalid.",
|
|
"invitedTitle": "You've been invited",
|
|
"invitedSubtitle": "Sign in with the email this invitation was sent to, then return to this link to accept.",
|
|
"signIn": "Sign in",
|
|
"createAccount": "Create an account",
|
|
"reopenPrefix": "After signing in, reopen",
|
|
"reopenLink": "this invitation link",
|
|
"acceptTitle": "Accept your invitation",
|
|
"acceptSubtitle": "Join the clinic you were invited to on temetro.",
|
|
"accept": "Accept invitation",
|
|
"accepting": "Joining…",
|
|
"error": "This invitation is invalid or has expired."
|
|
},
|
|
"onboarding": {
|
|
"title": "Set up your clinic",
|
|
"subtitle": "Create your clinic to start organizing patient records"
|
|
}
|
|
},
|
|
"nav": {
|
|
"newChat": "New chat",
|
|
"patients": "Patients",
|
|
"appointments": "Appointments",
|
|
"prescriptions": "Prescriptions",
|
|
"analysis": "Analysis",
|
|
"notes": "Notes",
|
|
"messages": "Messages",
|
|
"tasks": "Tasks",
|
|
"activity": "Activity",
|
|
"settings": "Settings",
|
|
"notifications": "Notifications",
|
|
"notificationsEmpty": "You're all caught up.",
|
|
"quickNav": "Quick nav",
|
|
"commandGroup": "Go to",
|
|
"commandPlaceholder": "Search pages…",
|
|
"commandEmpty": "No results.",
|
|
"commandNavigate": "Navigate",
|
|
"commandOpen": "Open",
|
|
"commandClose": "Close"
|
|
},
|
|
"userMenu": {
|
|
"defaultName": "Clinician",
|
|
"selectClinic": "Select clinic",
|
|
"settings": "Settings",
|
|
"docs": "Docs & GitHub",
|
|
"theme": "Theme",
|
|
"dark": "Dark",
|
|
"light": "Light",
|
|
"search": "Search",
|
|
"noClinic": "No clinic selected",
|
|
"clinicCount_one": "{{count}} clinic",
|
|
"clinicCount_other": "{{count}} clinics",
|
|
"switchClinic": "Switch clinic",
|
|
"createClinic": "Create clinic",
|
|
"logout": "Log out",
|
|
"createDialogTitle": "Create clinic",
|
|
"createDialogDescription": "Add a new clinic and switch to it.",
|
|
"signOutFailed": "Sign out failed",
|
|
"tryAgain": "Please try again.",
|
|
"signedOut": "Signed out"
|
|
},
|
|
"clinic": {
|
|
"create": "Create clinic",
|
|
"creating": "Creating clinic…",
|
|
"nameLabel": "Clinic name",
|
|
"namePlaceholder": "North Side Family Practice",
|
|
"slugLabel": "Clinic URL slug",
|
|
"slugPlaceholder": "north-side-family-practice",
|
|
"slugHint": "Used in links and invitations. Lowercase letters, numbers and dashes.",
|
|
"createError": "Could not create the clinic.",
|
|
"createFailedTitle": "Couldn't create clinic",
|
|
"createdTitle": "Clinic created",
|
|
"createdBody": "{{name}} is ready."
|
|
},
|
|
"patients": {
|
|
"title": "Patients",
|
|
"searchPlaceholder": "Search name or MRN",
|
|
"add": "Add patient",
|
|
"loading": "Loading patients…",
|
|
"empty": "No patients found.",
|
|
"loadError": "Failed to load patients.",
|
|
"columns": {
|
|
"name": "Name",
|
|
"mrn": "MRN",
|
|
"ageSex": "Age · Sex",
|
|
"status": "Status",
|
|
"lastSeen": "Last seen",
|
|
"allergies": "Allergies"
|
|
},
|
|
"status": {
|
|
"active": "Active",
|
|
"inpatient": "Inpatient",
|
|
"discharged": "Discharged"
|
|
},
|
|
"detail": {
|
|
"notFound": "Patient not found",
|
|
"loading": "Loading patient…",
|
|
"noPatientForFile": "No patient found for file #{{number}}."
|
|
},
|
|
"transfer": {
|
|
"action": "Transfer",
|
|
"title": "Transfer patient",
|
|
"description": "Reassign {{name}} to another clinician. They become this patient's primary provider.",
|
|
"providerLabel": "New primary provider",
|
|
"choose": "Choose a provider…",
|
|
"cancel": "Cancel",
|
|
"confirm": "Transfer patient",
|
|
"transferring": "Transferring…",
|
|
"successTitle": "Patient transferred",
|
|
"successBody": "{{name}} is now with {{provider}}.",
|
|
"errorTitle": "Couldn't transfer patient",
|
|
"error": "Please try again."
|
|
}
|
|
},
|
|
"appointments": {
|
|
"title": "Appointments & Schedule",
|
|
"subtitle": "Today's clinic schedule and what's coming up.",
|
|
"searchPlaceholder": "Search patient, type, provider",
|
|
"calendar": "Calendar",
|
|
"add": "Add",
|
|
"noMatches": "No matching appointments.",
|
|
"today": "Today",
|
|
"nothingToday": "Nothing scheduled today.",
|
|
"addFailedTitle": "Couldn't add appointment",
|
|
"addFailedBody": "Please try again.",
|
|
"kpi": {
|
|
"today": "Today",
|
|
"thisWeek": "This week",
|
|
"checkedIn": "Checked in",
|
|
"completed": "Completed"
|
|
},
|
|
"status": {
|
|
"confirmed": "Confirmed",
|
|
"checked-in": "Checked in",
|
|
"completed": "Completed",
|
|
"cancelled": "Cancelled"
|
|
},
|
|
"dialog": {
|
|
"title": "New appointment",
|
|
"description": "Search for a patient by name or file number, then set the slot.",
|
|
"patient": "Patient",
|
|
"fileNumber": "File #{{number}}",
|
|
"change": "Change",
|
|
"searchPlaceholder": "Search name or file number",
|
|
"noPatients": "No patients found.",
|
|
"date": "Date",
|
|
"time": "Time",
|
|
"type": "Type",
|
|
"provider": "Provider",
|
|
"providerPlaceholder": "e.g. Dr. Okafor",
|
|
"cancel": "Cancel",
|
|
"submit": "Add appointment",
|
|
"pickPatientTitle": "Pick a patient",
|
|
"pickPatientBody": "Search and select a patient first.",
|
|
"addedTitle": "Appointment added"
|
|
},
|
|
"calendarDialog": {
|
|
"today": "Today",
|
|
"appointmentCount_one": "{{count}} appointment",
|
|
"appointmentCount_other": "{{count}} appointments",
|
|
"none": "No appointments on this day."
|
|
}
|
|
},
|
|
"prescriptions": {
|
|
"title": "Prescriptions",
|
|
"subtitle": "Medications prescribed across the clinic.",
|
|
"new": "New prescription",
|
|
"recent": "Recent prescriptions",
|
|
"recentDescription": "Most recent first",
|
|
"searchPlaceholder": "Search patient, medication, prescriber",
|
|
"noMatches": "No prescriptions match your search.",
|
|
"emptyList": "No prescriptions yet.",
|
|
"addFailedTitle": "Couldn't add prescription",
|
|
"addFailedBody": "Please try again.",
|
|
"kpi": {
|
|
"active": "Active",
|
|
"completed": "Completed",
|
|
"expired": "Expired"
|
|
},
|
|
"status": {
|
|
"active": "Active",
|
|
"completed": "Completed",
|
|
"expired": "Expired"
|
|
},
|
|
"detail": {
|
|
"fallbackTitle": "Prescription",
|
|
"fileNumber": "File #{{number}}",
|
|
"medication": "Medication",
|
|
"dose": "Dose",
|
|
"frequency": "Frequency",
|
|
"duration": "Duration",
|
|
"prescriber": "Prescriber",
|
|
"date": "Date",
|
|
"status": "Status",
|
|
"notes": "Notes"
|
|
},
|
|
"dialog": {
|
|
"title": "New prescription",
|
|
"description": "Search for a patient by name or file number, then set the medication.",
|
|
"patient": "Patient",
|
|
"fileNumber": "File #{{number}}",
|
|
"change": "Change",
|
|
"searchPlaceholder": "Search name or file number",
|
|
"noPatients": "No patients found.",
|
|
"medication": "Medication",
|
|
"medicationPlaceholder": "e.g. Amoxicillin",
|
|
"dose": "Dose",
|
|
"dosePlaceholder": "e.g. 500 mg",
|
|
"frequency": "Frequency",
|
|
"duration": "Duration",
|
|
"durationOtherPlaceholder": "e.g. 21 days",
|
|
"notes": "Notes",
|
|
"notesPlaceholder": "Instructions, e.g. take with food in the morning",
|
|
"interactionTitle": "Possible interaction",
|
|
"cancel": "Cancel",
|
|
"submit": "Add prescription",
|
|
"pickPatientTitle": "Pick a patient",
|
|
"pickPatientBody": "Search and select a patient first.",
|
|
"needMedTitle": "Add a medication",
|
|
"needMedBody": "Enter the medication name.",
|
|
"needDurationTitle": "Add a duration",
|
|
"needDurationBody": "Enter the custom duration.",
|
|
"addedTitle": "Prescription added"
|
|
}
|
|
},
|
|
"tasks": {
|
|
"title": "Tasks",
|
|
"subtitle": "Care-team to-dos. Click a task to see its details.",
|
|
"new": "New task",
|
|
"empty": "No tasks here.",
|
|
"markDone": "Mark as done",
|
|
"markNotDone": "Mark as not done",
|
|
"filters": {
|
|
"all": "All",
|
|
"open": "Open",
|
|
"done": "Done"
|
|
},
|
|
"priority": {
|
|
"high": "High",
|
|
"medium": "Medium",
|
|
"low": "Low"
|
|
},
|
|
"dialog": {
|
|
"title": "New task",
|
|
"description": "Assign a follow-up to the care team.",
|
|
"subject": "Subject",
|
|
"subjectPlaceholder": "e.g. Review lab results",
|
|
"details": "Details — what needs to be done",
|
|
"detailsPlaceholder": "Describe what needs to happen, any context, links…",
|
|
"assignee": "Assignee",
|
|
"assigneeSelf": "Myself",
|
|
"assigneeOther": "Other",
|
|
"department": "Department",
|
|
"due": "Due",
|
|
"duePlaceholder": "e.g. Today",
|
|
"priorityLabel": "Priority",
|
|
"cancel": "Cancel",
|
|
"add": "Add task"
|
|
},
|
|
"list": {
|
|
"forDept": "For {{dept}}",
|
|
"personal": "Personal",
|
|
"byCreator": "by {{name}}"
|
|
},
|
|
"detail": {
|
|
"fallbackTitle": "Task",
|
|
"priorityBadge": "{{priority}} priority",
|
|
"status": "Status",
|
|
"completed": "Completed",
|
|
"open": "Open",
|
|
"assignedTo": "Assigned to",
|
|
"createdBy": "Created by",
|
|
"deptTeam": "{{dept}} team",
|
|
"personal": "Personal task",
|
|
"due": "Due",
|
|
"patient": "Patient",
|
|
"details": "Details",
|
|
"reopen": "Reopen task",
|
|
"complete": "Mark complete"
|
|
},
|
|
"toast": {
|
|
"needSubjectTitle": "Add a subject",
|
|
"needSubjectBody": "Describe the task first.",
|
|
"addedTitle": "Task added",
|
|
"addFailedTitle": "Couldn't add task",
|
|
"addFailedBody": "Please try again.",
|
|
"updateFailedTitle": "Couldn't update task",
|
|
"updateFailedBody": "Please try again."
|
|
}
|
|
},
|
|
"messages": {
|
|
"inbox": "Inbox",
|
|
"unread": "Unread · {{count}}",
|
|
"newMessage": "New message",
|
|
"searchPlaceholder": "Search conversations",
|
|
"noMatches": "No conversations match your search.",
|
|
"noUnread": "No unread messages.",
|
|
"noConversations": "No conversations yet.",
|
|
"you": "You: ",
|
|
"directMessage": "Direct message",
|
|
"peopleCount": "{{count}} people",
|
|
"messagePlaceholder": "Message {{name}}…",
|
|
"send": "Send",
|
|
"emptyTitle": "No conversation selected",
|
|
"emptyDescription": "Choose a conversation from the inbox, or start a new one.",
|
|
"compose": {
|
|
"title": "New message",
|
|
"description": "Start a conversation with a member of your clinic.",
|
|
"searchPlaceholder": "Search people",
|
|
"noMatches": "No people match your search.",
|
|
"noMembers": "No other clinic members yet. Invite colleagues from Settings → Care team."
|
|
},
|
|
"startFailedTitle": "Couldn't start conversation",
|
|
"startFailedBody": "Please try again."
|
|
},
|
|
"analysis": {
|
|
"title": "Analysis",
|
|
"subtitle": "Clinic performance at a glance, computed from your clinic's data.",
|
|
"patientVolume": {
|
|
"title": "Patient volume",
|
|
"description": "New, active and total patients",
|
|
"total": "Total patients",
|
|
"newThisMonth": "New this month",
|
|
"active": "Active patients"
|
|
},
|
|
"appointments": {
|
|
"title": "Appointments & schedule",
|
|
"description": "Bookings, attendance and what's coming up",
|
|
"thisWeek": "This week",
|
|
"upcoming": "Upcoming",
|
|
"completed": "Completed",
|
|
"cancelled": "Cancelled"
|
|
},
|
|
"prescriptions": {
|
|
"title": "Prescriptions",
|
|
"description": "Medications prescribed",
|
|
"total": "Total issued",
|
|
"active": "Active"
|
|
},
|
|
"tasks": {
|
|
"title": "Tasks",
|
|
"description": "Care-team workload",
|
|
"open": "Open",
|
|
"completed": "Completed"
|
|
},
|
|
"charts": {
|
|
"title": "Trends",
|
|
"subtitle": "Tap a card for the full breakdown.",
|
|
"viewDetails": "Tap for details",
|
|
"patientGrowthTitle": "New patients",
|
|
"patientGrowthDescription": "New patients per month over the last 6 months",
|
|
"weeklyAppointmentsTitle": "Appointments this week",
|
|
"weeklyAppointmentsDescription": "Bookings per day for the current week",
|
|
"empty": "No data yet"
|
|
}
|
|
},
|
|
"activity": {
|
|
"title": "Activity",
|
|
"subtitle": "An audit log of record changes across the clinic.",
|
|
"changesToday": "Changes today",
|
|
"thisWeek": "This week",
|
|
"totalRecorded": "Total recorded",
|
|
"empty": "No activity yet. Changes to patients, notes, appointments, prescriptions and tasks will appear here.",
|
|
"detail": {
|
|
"title": "Activity detail",
|
|
"person": "Performed by",
|
|
"record": "Record type",
|
|
"patient": "Patient",
|
|
"reference": "Reference",
|
|
"time": "Time",
|
|
"close": "Close",
|
|
"entityTypes": {
|
|
"patient": "Patient",
|
|
"note": "Note",
|
|
"appointment": "Appointment",
|
|
"prescription": "Prescription",
|
|
"task": "Task"
|
|
}
|
|
}
|
|
},
|
|
"notes": {
|
|
"title": "Notes",
|
|
"subtitle": "Clinical notes. Click a note to open it.",
|
|
"new": "New note",
|
|
"editNote": "Edit note",
|
|
"loading": "Loading…",
|
|
"emptyTitle": "No notes yet",
|
|
"emptyDescription": "Create a note to start writing.",
|
|
"untitled": "Untitled note",
|
|
"updated": "Updated {{date}}",
|
|
"tryAgain": "Please try again.",
|
|
"loadFailed": "Couldn't load notes",
|
|
"saved": "Note saved",
|
|
"saveFailed": "Couldn't save note",
|
|
"deleted": "Note deleted",
|
|
"deleteFailed": "Couldn't delete note",
|
|
"editor": {
|
|
"placeholder": "Write your note…",
|
|
"titlePlaceholder": "Note title",
|
|
"delete": "Delete note",
|
|
"save": "Save",
|
|
"saving": "Saving…",
|
|
"bold": "Bold",
|
|
"italic": "Italic",
|
|
"underline": "Underline",
|
|
"heading1": "Heading 1",
|
|
"heading2": "Heading 2",
|
|
"bulletList": "Bullet list",
|
|
"numberedList": "Numbered list",
|
|
"undo": "Undo",
|
|
"redo": "Redo",
|
|
"confirmTitle": "Delete this note?",
|
|
"confirmDescription": "\"{{name}}\" will be permanently deleted. This can't be undone.",
|
|
"confirmLabel": "Delete note"
|
|
}
|
|
},
|
|
"chat": {
|
|
"heading": "Which patient would you like to look up?",
|
|
"input": {
|
|
"placeholder": "Look up a patient — try /patient 10293",
|
|
"message": "Message",
|
|
"addPatient": "Add patient",
|
|
"clinical": "Clinical",
|
|
"attachFile": "Attach file",
|
|
"attachFiles": "Attach files",
|
|
"removeFile": "Remove {{name}}",
|
|
"dictate": "Dictate",
|
|
"send": "Send",
|
|
"stop": "Stop",
|
|
"accessLevel": "Access level",
|
|
"responseMode": "Response mode",
|
|
"specialty": "Specialty",
|
|
"facility": "Facility",
|
|
"timeRange": "Time range",
|
|
"access": {
|
|
"standard": "Standard access",
|
|
"breakGlass": "Break-glass (emergency)",
|
|
"readOnly": "Read-only"
|
|
},
|
|
"response": {
|
|
"concise": "Concise",
|
|
"detailed": "Detailed",
|
|
"comprehensive": "Comprehensive"
|
|
},
|
|
"specialtyOptions": {
|
|
"internalMedicine": "Internal Medicine",
|
|
"cardiology": "Cardiology",
|
|
"pediatrics": "Pediatrics",
|
|
"emergency": "Emergency",
|
|
"all": "All specialties"
|
|
},
|
|
"facilityOptions": {
|
|
"mainHospital": "Main Hospital",
|
|
"northClinic": "North Clinic",
|
|
"telehealth": "Telehealth"
|
|
},
|
|
"timeOptions": {
|
|
"30d": "Last 30 days",
|
|
"12m": "Last 12 months",
|
|
"5y": "Last 5 years",
|
|
"all": "All time"
|
|
}
|
|
}
|
|
},
|
|
"patientCard": {
|
|
"notFound": "No patient found for file #{{number}}.",
|
|
"overview": "Overview",
|
|
"edit": "Edit",
|
|
"sex": { "F": "Female", "M": "Male" },
|
|
"summary": {
|
|
"fullName": "Full name",
|
|
"mrn": "MRN",
|
|
"age": "Age",
|
|
"sex": "Sex",
|
|
"primaryCare": "Primary care",
|
|
"status": "Status",
|
|
"lastSeen": "Last seen",
|
|
"allergies": "Allergies",
|
|
"activeMeds": "Active meds",
|
|
"openProblems": "Open problems",
|
|
"none": "None",
|
|
"editRecord": "Edit record"
|
|
},
|
|
"vitals": {
|
|
"title": "Vitals",
|
|
"taken": "Taken {{at}}",
|
|
"bp": "BP",
|
|
"hr": "HR",
|
|
"temp": "Temp",
|
|
"spo2": "SpO₂"
|
|
},
|
|
"labs": {
|
|
"title": "Labs",
|
|
"asOf": "As of {{at}}",
|
|
"empty": "No labs on file."
|
|
},
|
|
"medications": {
|
|
"title": "Medications",
|
|
"active": "{{count}} active",
|
|
"empty": "No active medications."
|
|
},
|
|
"problems": {
|
|
"title": "Problems",
|
|
"active": "{{count}} active",
|
|
"empty": "No active problems.",
|
|
"since": "since {{date}}"
|
|
},
|
|
"allergies": {
|
|
"title": "Allergies & alerts",
|
|
"sectionLabel": "Allergies",
|
|
"none": "No known allergies."
|
|
},
|
|
"visits": {
|
|
"title": "Recent visits",
|
|
"recent": "{{count}} recent",
|
|
"empty": "No visits yet."
|
|
},
|
|
"trend": {
|
|
"empty": "No trend data yet.",
|
|
"last": "{{label}} · last {{count}}",
|
|
"lastReadings": "{{label}} · last {{count}} readings",
|
|
"latest": "Latest",
|
|
"min": "Min",
|
|
"max": "Max"
|
|
},
|
|
"labFlag": {
|
|
"normal": "Normal",
|
|
"low": "Low",
|
|
"high": "High",
|
|
"critical": "Critical"
|
|
},
|
|
"severity": {
|
|
"mild": "Mild",
|
|
"moderate": "Moderate",
|
|
"severe": "Severe"
|
|
}
|
|
},
|
|
"patientForm": {
|
|
"editTitle": "Edit record",
|
|
"createTitle": "Add patient",
|
|
"editDescription": "Update {{name}}'s chart and add new data.",
|
|
"createDescription": "Create a new chart. A file number has been generated for you.",
|
|
"fileNumber": "File number",
|
|
"regenerate": "Regenerate file number",
|
|
"fullName": "Full name",
|
|
"fullNamePlaceholder": "e.g. Jordan Pierce",
|
|
"age": "Age",
|
|
"sex": "Sex",
|
|
"status": "Status",
|
|
"primaryCare": "Primary care",
|
|
"primaryCarePlaceholder": "e.g. Dr. Lena Ortiz",
|
|
"primaryCareUnassigned": "Unassigned",
|
|
"currentVitals": "Current vitals",
|
|
"bp": "Blood pressure",
|
|
"hr": "Heart rate",
|
|
"temp": "Temperature",
|
|
"spo2": "Oxygen saturation",
|
|
"allergies": "Allergies",
|
|
"medications": "Medications",
|
|
"problems": "Problems",
|
|
"labs": "Labs",
|
|
"visits": "Visits",
|
|
"add": "Add",
|
|
"removeRow": "Remove {{label}} row",
|
|
"pickDate": "Pick a date",
|
|
"substance": "Substance",
|
|
"reaction": "Reaction",
|
|
"severityAria": "Severity",
|
|
"medNameAria": "Medication name",
|
|
"medName": "Name",
|
|
"dose": "Dose",
|
|
"frequency": "Frequency",
|
|
"problemAria": "Problem",
|
|
"diagnosis": "Diagnosis",
|
|
"sinceAria": "Since",
|
|
"labNameAria": "Lab name",
|
|
"test": "Test",
|
|
"valueAria": "Value",
|
|
"value": "Value",
|
|
"flagAria": "Flag",
|
|
"visitTypeAria": "Visit type",
|
|
"visitType": "Type",
|
|
"visitDateAria": "Visit date",
|
|
"visitDate": "Date",
|
|
"providerAria": "Provider",
|
|
"provider": "Provider",
|
|
"summaryAria": "Summary",
|
|
"summary": "Summary",
|
|
"cancel": "Cancel",
|
|
"saving": "Saving…",
|
|
"saveChanges": "Save changes",
|
|
"savePatient": "Save patient",
|
|
"saveError": "Could not save the patient.",
|
|
"updatedTitle": "Record updated",
|
|
"updatedBody": "{{name}}'s chart was saved.",
|
|
"addedTitle": "Patient added",
|
|
"addedBody": "{{name}} ({{fileNumber}}).",
|
|
"saveFailedTitle": "Couldn't save patient"
|
|
},
|
|
"settings": {
|
|
"tabs": {
|
|
"profile": "Profile",
|
|
"records": "Records",
|
|
"signing": "Signing",
|
|
"careTeam": "Care team",
|
|
"developers": "Developers"
|
|
},
|
|
"empty": "Nothing here yet.",
|
|
"copy": "Copy",
|
|
"copied": "Copied",
|
|
"records": {
|
|
"description": "How patient records are sourced, stored, and displayed",
|
|
"comingSoon": "Coming soon",
|
|
"connected": "Connected",
|
|
"sourcesTitle": "Data sources",
|
|
"sourcesDescription": "Where the patient records shown in temetro come from",
|
|
"clinicDb": "Clinic database",
|
|
"clinicDbDesc": "Patient records are stored in your clinic's own database and scoped to this clinic.",
|
|
"patientStorage": "Patient-owned storage",
|
|
"patientStorageDesc": "Read and write records directly on the patient's device once the companion app ships.",
|
|
"importExportTitle": "Import & export",
|
|
"importExportDescription": "Move records in and out of temetro",
|
|
"export": "Export records",
|
|
"exportDesc": "Download every patient record in this clinic as a single archive.",
|
|
"import": "Import an existing database",
|
|
"importDesc": "Connect an existing patient database and browse it in the same card UI.",
|
|
"retentionTitle": "Retention",
|
|
"retentionDescription": "How long records are kept",
|
|
"retentionBody": "Records are kept for as long as your clinic exists. Deleting a patient permanently removes their chart from the clinic database, and the activity log keeps an audit trail of every change — who made it and when."
|
|
},
|
|
"developers": {
|
|
"description": "Access tokens for the temetro API",
|
|
"comingSoon": "Coming soon",
|
|
"apiTitle": "API access",
|
|
"apiDescription": "Build on the same REST API the temetro app uses",
|
|
"baseUrlLabel": "API base URL",
|
|
"baseUrlDescription": "All endpoints live under this origin (e.g. /api/patients)",
|
|
"authLabel": "Authentication",
|
|
"authDescription": "Requests authenticate with your temetro session cookie. Scoped personal access tokens for server-to-server use are planned.",
|
|
"tokensTitle": "Personal access tokens",
|
|
"tokensDescription": "Long-lived tokens for scripts and integrations",
|
|
"noTokens": "No tokens yet.",
|
|
"generateToken": "Generate token",
|
|
"resourcesTitle": "Resources",
|
|
"resourcesDescription": "Where to learn more",
|
|
"resourcesBody": "The API reference — covering patients, appointments, prescriptions, tasks, messaging, activity and analytics — lives in the project documentation under docs/api. temetro is open source, so the route handlers in backend/src/routes are the authoritative spec."
|
|
},
|
|
"profile": {
|
|
"sectionTitle": "Clinician profile",
|
|
"clinicianIdLabel": "Clinician ID",
|
|
"clinicianIdDescription": "Your unique clinician identifier, used when signing records",
|
|
"handleLabel": "Handle",
|
|
"handleDescription": "Used in your public profile and the patient portal",
|
|
"avatar": "Avatar",
|
|
"displayName": "Display name",
|
|
"specialty": "Specialty",
|
|
"selectSpecialty": "Select specialty",
|
|
"clinic": "Clinic / practice",
|
|
"clinicPlaceholder": "e.g. Main Hospital",
|
|
"contactEmail": "Contact email",
|
|
"contactEmailPlaceholder": "clinician@example.org",
|
|
"professionalLinks": "Professional links",
|
|
"professionalLinksHint": "Registry or institutional profiles used to verify your identity. They are never shown to patients.",
|
|
"addLink": "Add link",
|
|
"patientNotifications": "Patient notifications",
|
|
"patientNotificationsDescription": "Emails sent to patients about their records, results, and pending approvals",
|
|
"accountNotifications": "Account notifications",
|
|
"accountNotificationsDescription": "Notifications sent to you about your patients and the care team",
|
|
"features": "Features",
|
|
"featuresDescription": "Manage alpha & beta features for your account",
|
|
"dangerZone": "Danger Zone",
|
|
"dangerZoneDescription": "Irreversible actions for your account",
|
|
"deleteAccount": "Delete account",
|
|
"deleteAccountDescription": "Permanently delete your temetro account and any locally stored signing keys. This action cannot be undone.",
|
|
"delete": "Delete",
|
|
"unsavedChanges": "You have unsaved changes",
|
|
"saveChanges": "Save changes",
|
|
"saving": "Saving…",
|
|
"savedTitle": "Settings saved",
|
|
"savedBody": "Your preferences are up to date.",
|
|
"saveFailedTitle": "Couldn't save settings",
|
|
"saveFailedBody": "Please try again.",
|
|
"deleteDialog": {
|
|
"title": "Delete your account?",
|
|
"description": "This permanently deletes your account, removes you from your clinics, and cannot be undone.",
|
|
"passwordLabel": "Confirm your password",
|
|
"passwordPlaceholder": "Your password",
|
|
"cancel": "Cancel",
|
|
"confirm": "Delete account",
|
|
"deleting": "Deleting…",
|
|
"failed": "Couldn't delete the account. Check your password and try again."
|
|
},
|
|
"notif": {
|
|
"newLab": "New lab result",
|
|
"newLabDesc": "Sent when a new lab result is available on a patient's chart",
|
|
"recordUpdated": "Record updated",
|
|
"recordUpdatedDesc": "Sent when a patient's record is updated by a member of the care team",
|
|
"approvalRequested": "Approval requested",
|
|
"approvalRequestedDesc": "Sent when a signed change is awaiting the patient's approval",
|
|
"changeApproved": "Change approved",
|
|
"changeApprovedDesc": "Sent when a patient approves a pending change to their record",
|
|
"newMessage": "New message",
|
|
"newMessageDesc": "Sent when a patient or another clinician sends a message",
|
|
"visitScheduled": "Visit scheduled",
|
|
"visitScheduledDesc": "Sent when an upcoming visit is added to a patient's record",
|
|
"pendingApprovals": "Pending approvals",
|
|
"pendingApprovalsDesc": "Notify me when a patient approves or rejects a pending change",
|
|
"recordsShared": "Records shared with me",
|
|
"recordsSharedDesc": "Notify me when a patient shares a record with me",
|
|
"patientStorage": "Patient-owned storage (beta)",
|
|
"patientStorageDesc": "Write records to the patient's own device instead of your database",
|
|
"requireSigned": "Require signed records",
|
|
"requireSignedDesc": "Require a signature on every change you make to a patient record"
|
|
}
|
|
},
|
|
"careTeam": {
|
|
"title": "Care team",
|
|
"description": "Staff with access to this clinic",
|
|
"loadError": "Could not load the care team.",
|
|
"loading": "Loading care team…",
|
|
"you": "(you)",
|
|
"clickHint": "Tip: click a team member to see their permissions and manage their role.",
|
|
"addMember": "Add team member",
|
|
"removeMember": "Remove member",
|
|
"employee": {
|
|
"title": "Team member",
|
|
"description": "View this member's access, change their role, or remove them.",
|
|
"permissions": "Permissions",
|
|
"noAccess": "No access",
|
|
"changeRole": "Change role",
|
|
"save": "Save",
|
|
"saving": "Saving…",
|
|
"remove": "Remove employee",
|
|
"close": "Close",
|
|
"roleUpdatedTitle": "Role updated",
|
|
"roleUpdatedBody": "{{name}} is now {{role}}.",
|
|
"roleFailedTitle": "Couldn't update role",
|
|
"roleFailedBody": "Please try again.",
|
|
"resources": {
|
|
"patient": "Patients",
|
|
"appointment": "Appointments",
|
|
"prescription": "Prescriptions",
|
|
"task": "Tasks"
|
|
},
|
|
"actions": {
|
|
"read": "View",
|
|
"write": "Edit",
|
|
"delete": "Delete"
|
|
}
|
|
},
|
|
"remove": {
|
|
"title": "Remove team member?",
|
|
"description": "{{name}} will lose access to this clinic. This can't be undone.",
|
|
"thisMember": "This member",
|
|
"cancel": "Cancel",
|
|
"confirm": "Remove",
|
|
"removing": "Removing…",
|
|
"removedTitle": "Member removed",
|
|
"removedBody": "{{name}} no longer has access.",
|
|
"failedTitle": "Couldn't remove member",
|
|
"failedBody": "Please try again."
|
|
},
|
|
"add": {
|
|
"title": "Add team member",
|
|
"step1Description": "Who are you adding, and what can they do?",
|
|
"step2Description": "Set the username and password they'll sign in with.",
|
|
"nameLabel": "Full name",
|
|
"namePlaceholder": "Jane Okafor",
|
|
"nameRequired": "Enter the person's name.",
|
|
"roleLabel": "Role",
|
|
"usernameLabel": "Username",
|
|
"usernamePlaceholder": "jokafor",
|
|
"usernameHint": "Letters, numbers, dots and underscores — no spaces.",
|
|
"usernameTooShort": "Username must be at least {{count}} characters.",
|
|
"usernameInvalid": "Username can't contain spaces. Use letters, numbers, dots or underscores.",
|
|
"passwordLabel": "Password",
|
|
"passwordHint": "Must be at least {{count}} characters long.",
|
|
"passwordTooShort": "Password must be at least {{count}} characters.",
|
|
"back": "Back",
|
|
"cancel": "Cancel",
|
|
"next": "Next",
|
|
"create": "Create account",
|
|
"creating": "Creating…",
|
|
"createdTitle": "Account created",
|
|
"createdBody": "{{name}} can now sign in with the username {{username}}.",
|
|
"error": "Could not create the account.",
|
|
"errorTitle": "Could not add member"
|
|
}
|
|
},
|
|
"signing": {
|
|
"keyTitle": "Signing key",
|
|
"active": "Active",
|
|
"keyDescription": "Every change you make to a patient record is signed with this key, so patients can verify it came from you before approving it.",
|
|
"rotateKey": "Rotate key",
|
|
"createdAt": "Created May 28, 2026",
|
|
"identityTitle": "Signing identity",
|
|
"identityDescription": "The public key patients use to verify your signatures",
|
|
"fingerprintLabel": "Public key fingerprint",
|
|
"fingerprintDescription": "Share or publish this fingerprint so patients can trust your changes",
|
|
"signedRecordsTitle": "Signed records",
|
|
"signedRecordsDescription": "Changes you've signed that are waiting on the patient's approval",
|
|
"noPending": "No pending signatures",
|
|
"comingSoon": "Coming soon",
|
|
"howItWorksTitle": "How signing works",
|
|
"howItWorksDescription": "The flow behind patient-approved records",
|
|
"steps": {
|
|
"sign": "You sign every change",
|
|
"signDesc": "Each edit you make to a patient record is signed with your private key before it's written.",
|
|
"approve": "The patient approves it",
|
|
"approveDesc": "Signed changes stay pending until the patient accepts them in the companion app.",
|
|
"verify": "Anyone can verify",
|
|
"verifyDesc": "Your public key fingerprint lets patients and other clinics verify a change really came from you."
|
|
},
|
|
"backupTitle": "Backup key",
|
|
"backupDescription": "Recover your signing identity if you lose this device",
|
|
"backupLabel": "Recovery phrase",
|
|
"backupDesc": "Export an encrypted backup of your signing key to restore it on a new device."
|
|
}
|
|
}
|
|
}
|