feature: localization's first implmentation done. all frontend hardcoded text is now localized.
This commit is contained in:
@@ -7,7 +7,30 @@
|
||||
"continue": "Continue",
|
||||
"back": "Back",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel"
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"edit": "Edit",
|
||||
"next": "Next",
|
||||
"dismiss": "Dismiss",
|
||||
"or": "Or",
|
||||
"and": "and",
|
||||
"close": "Close",
|
||||
"redirecting": "Redirecting…",
|
||||
"readOnlyAccess": "Read-only access for this organization.",
|
||||
"errorGeneric": "Something went wrong",
|
||||
"loadingEllipsis": "Loading...",
|
||||
"search": "Search",
|
||||
"action": "Action",
|
||||
"status": "Status",
|
||||
"name": "Name",
|
||||
"email": "Email",
|
||||
"date": "Date",
|
||||
"organization": "Organization",
|
||||
"backToApp": "← Back to app",
|
||||
"copied": "Copied",
|
||||
"copyLink": "Copy link",
|
||||
"none": "None",
|
||||
"preview": "Preview"
|
||||
},
|
||||
"language": {
|
||||
"label": "Language",
|
||||
@@ -67,7 +90,47 @@
|
||||
"signedIn": "Signed in",
|
||||
"switchOrganization": "Switch organization",
|
||||
"subscriptions": "Subscriptions",
|
||||
"account": "Account"
|
||||
"account": "Account",
|
||||
"emailPlaceholder": "you@example.com",
|
||||
"passwordPlaceholder": "••••••••",
|
||||
"namePlaceholder": "John Doe",
|
||||
"termsIntro": "By signing up, you agree to our",
|
||||
"errorRegistrationFailed": "Registration failed",
|
||||
"errorLoginFailed": "Login failed",
|
||||
"errorCreateOrganization": "Failed to create organization",
|
||||
"acceptInviteTitle": "Accept invitation",
|
||||
"loadingInvitation": "Loading invitation...",
|
||||
"invalidInvitationLink": "Invalid invitation link",
|
||||
"invitationAlreadyAccepted": "This invitation is already accepted. You can log in now.",
|
||||
"errorLoadInvitation": "Could not load invitation",
|
||||
"organizationLabel": "Organization:",
|
||||
"emailLabel": "Email:",
|
||||
"nameRequired": "Name is required",
|
||||
"passwordMinLength8": "Password must be at least 8 characters",
|
||||
"passwordsDoNotMatch": "Passwords do not match",
|
||||
"labelName": "Name",
|
||||
"labelCreatePassword": "Create password",
|
||||
"labelConfirmPassword": "Confirm password",
|
||||
"activateAccount": "Activate account",
|
||||
"invitationAcceptedRedirect": "Invitation Accepted. Redirecting to login...",
|
||||
"errorAcceptInvitation": "Could not accept invitation",
|
||||
"alreadyHaveAccess": "Already have access?",
|
||||
"goToLogin": "Go to login",
|
||||
"acceptOrganizationTitle": "Accept organization invitation",
|
||||
"alreadyHaveAccount": "Already have an account?",
|
||||
"invitedBy": "Invited by:",
|
||||
"ownerEmail": "Owner email",
|
||||
"activateOrganization": "Activate organization",
|
||||
"organizationAcceptedRedirect": "Invitation accepted. Redirecting to login...",
|
||||
"stepAccount": "Account",
|
||||
"stepOrganization": "Organization",
|
||||
"organizationName": "Organization name",
|
||||
"organizationNamePlaceholder": "Sunshine Dental Clinic",
|
||||
"organizationEmail": "Organization email",
|
||||
"organizationEmailPlaceholder": "contact@sunshineclinic.com",
|
||||
"organizationType": "Organization type",
|
||||
"dentalClinic": "Dental Clinic",
|
||||
"dentalLab": "Dental Lab"
|
||||
},
|
||||
"landing": {
|
||||
"heroTitle": "Connect Dental Clinics & Labs",
|
||||
@@ -106,5 +169,398 @@
|
||||
"organizationEmailInvalid": "Please enter a valid organization email",
|
||||
"organizationTypeRequired": "Please select organization type",
|
||||
"passwordsDoNotMatch": "Passwords don't match"
|
||||
},
|
||||
"today": {
|
||||
"welcomeBack": "Welcome back!!",
|
||||
"noSubscriptionNotice": "This organization does not have an active subscription yet.",
|
||||
"choosePlanLink": "Choose a plan",
|
||||
"noSubscriptionCta": "to start the purchase process.",
|
||||
"cardTodaysAppointments": "Today's Appointments",
|
||||
"cardActivePatients": "Active Patients",
|
||||
"cardNewLabCase": "New Lab Case",
|
||||
"cardTodayInvoices": "Today invoices"
|
||||
},
|
||||
"staff": {
|
||||
"redirecting": "Redirecting…",
|
||||
"title": "Staff Management",
|
||||
"subtitle": "Invite teammates, set tab access, and stay within your plan seat limit.",
|
||||
"inviteMember": "Invite member",
|
||||
"seatsLabel": "Seats:",
|
||||
"unlimitedPlan": "(unlimited plan)",
|
||||
"seatLimitReached": "Plan seat limit reached for this organization.",
|
||||
"noActivePlan": "No active plan selected for this organization. Choose a subscription plan to invite members.",
|
||||
"invitedPending": "Invitation is pending until they open the link, set a password, and log in.",
|
||||
"invitedAccepted": "Invitation was accepted immediately.",
|
||||
"inviteLinkHeading": "Invite link",
|
||||
"shareLinkHint": "Share this link manually via SMS or email. A new link is generated if the previous one expired or was lost.",
|
||||
"loadingTeam": "Loading team…",
|
||||
"tableName": "Name",
|
||||
"tableEmail": "Email",
|
||||
"tableRole": "Role",
|
||||
"tableStatus": "Status",
|
||||
"tableAccess": "Access",
|
||||
"tableAction": "Action",
|
||||
"roleOwner": "Owner",
|
||||
"roleStaff": "Staff",
|
||||
"statusActive": "Active",
|
||||
"statusPending": "Pending",
|
||||
"statusDisabled": "Disabled",
|
||||
"statusExpired": "Expired",
|
||||
"allFeatures": "All features",
|
||||
"inviteModalTitle": "Invite team member",
|
||||
"stepOf": "Step {step} of 2",
|
||||
"permissionView": "View",
|
||||
"permissionEdit": "Edit",
|
||||
"labelEmail": "Email",
|
||||
"labelDisplayName": "Display name",
|
||||
"tabAccess": "Tab access",
|
||||
"sendInvite": "Send invite",
|
||||
"skipForNow": "Skip for now",
|
||||
"enableModalTitle": "Enable team member",
|
||||
"enableConfirm": "Enable {name} ({email})?",
|
||||
"enableBullet1": "They can sign in to this organization again with their existing account.",
|
||||
"enableBullet2": "No new invitation is sent and no data was removed while they were disabled.",
|
||||
"enableBullet3": "Enabling uses one seat on your plan.",
|
||||
"noSeatsAvailable": "No seats are available. Disable another member or upgrade your plan before enabling this person.",
|
||||
"enableMemberButton": "Enable member",
|
||||
"disableModalTitle": "Disable team member",
|
||||
"disableConfirm": "Disable {name} ({email})?",
|
||||
"disableBullet1": "They will not be able to sign in to this organization.",
|
||||
"disableBullet2": "No data will be removed.",
|
||||
"disableBullet3": "Disabling frees one seat on your plan so you can invite someone else.",
|
||||
"disableMemberButton": "Disable member",
|
||||
"editModalTitle": "Edit member",
|
||||
"loadingWorkingHours": "Loading working hours…",
|
||||
"errorLoadStaff": "Failed to load staff.",
|
||||
"errorCopyInvite": "Could not copy invitation link.",
|
||||
"errorSendInvite": "Failed to send invitation.",
|
||||
"errorLoadWorkingHours": "Failed to load working hours.",
|
||||
"successMemberUpdated": "Member updated.",
|
||||
"errorUpdateMember": "Failed to update member.",
|
||||
"errorDeleteNotImplemented": "Delete is not implemented yet.",
|
||||
"successMemberDisabled": "{name} was disabled. A seat is now available.",
|
||||
"errorDisableMember": "Failed to disable member.",
|
||||
"successMemberEnabled": "{name} was enabled and can sign in again.",
|
||||
"errorEnableMember": "Failed to enable member.",
|
||||
"successInvited": "{name} ({email}) was invited.",
|
||||
"copyInviteLink": "Copy invitation link",
|
||||
"copyInviteLinkTitle": "Copy invitation link (generates a new link if needed)",
|
||||
"enableMemberAria": "Enable member",
|
||||
"enableMemberTitle": "Enable member (uses a seat)",
|
||||
"disableMemberAria": "Disable member",
|
||||
"disableMemberTitle": "Disable member (frees a seat)",
|
||||
"editMemberAria": "Edit member",
|
||||
"deleteMemberAria": "Delete member",
|
||||
"deleteMemberTitle": "Delete member (not implemented)",
|
||||
"features": {
|
||||
"featureToday": "Today",
|
||||
"featureStaff": "Staff",
|
||||
"featureOrganizations": "Organizations",
|
||||
"featureClinics": "Clinics",
|
||||
"featureLabs": "Labs",
|
||||
"featurePatients": "Patients",
|
||||
"featureAppointment": "Appointment",
|
||||
"featureTreatment": "Treatment",
|
||||
"featureBilling": "Billing",
|
||||
"featureReports": "Reports",
|
||||
"noTabAccess": "No tab access",
|
||||
"readOnlySuffix": "(Read only)"
|
||||
},
|
||||
"workingHours": {
|
||||
"recommendedTitle": "Working hours recommended",
|
||||
"recommendedBody": "Staff with treatment edit access appear as provider columns in Appointments. Set their weekly hours so the schedule grid shows the right bookable times.",
|
||||
"intro": "Set weekly working hours for this provider. The appointments grid uses these hours to show bookable time slots.",
|
||||
"workingDay": "Working day",
|
||||
"start": "Start",
|
||||
"end": "End",
|
||||
"removeShift": "Remove shift",
|
||||
"addShift": "Add shift",
|
||||
"autoRepeatWeekly": "Repeat these hours at the start of each week (copy forward on Monday)",
|
||||
"weekdayMon": "Mon",
|
||||
"weekdayTue": "Tue",
|
||||
"weekdayWed": "Wed",
|
||||
"weekdayThu": "Thu",
|
||||
"weekdayFri": "Fri",
|
||||
"weekdaySat": "Sat",
|
||||
"weekdaySun": "Sun",
|
||||
"validationNeedsShift": "{day} needs at least one shift or should be marked off.",
|
||||
"validationEndAfterStart": "{day} shift end time must be after start time.",
|
||||
"validationOverlap": "{day} shifts cannot overlap."
|
||||
}
|
||||
},
|
||||
"patients": {
|
||||
"title": "Patients",
|
||||
"newPatient": "New Patient",
|
||||
"errorLoadPatients": "Failed to load patients.",
|
||||
"successPatientSaved": "Patient {firstName} {lastName} was saved successfully.",
|
||||
"errorSavePatient": "Failed to save patient.",
|
||||
"firstName": "First name",
|
||||
"lastName": "Last name",
|
||||
"phone": "Phone",
|
||||
"savePatient": "Save Patient",
|
||||
"dialogTitle": "New patient",
|
||||
"searchPlaceholder": "Search patients by name, phone, email",
|
||||
"loadingPatients": "Loading patients...",
|
||||
"noResults": "No patients found for this search.",
|
||||
"noContact": "No contact",
|
||||
"selectPatient": "Select a patient to view details.",
|
||||
"phoneLabel": "Phone:",
|
||||
"emailLabel": "Email:",
|
||||
"statusLabel": "Status:",
|
||||
"statusActive": "Active",
|
||||
"statusInactive": "Inactive",
|
||||
"emptyValue": "-"
|
||||
},
|
||||
"appointments": {
|
||||
"title": "Appointments",
|
||||
"subtitle": "Search a patient, pick a date, then click a time slot under a provider to book.",
|
||||
"loadingSchedule": "Loading schedule…",
|
||||
"infoPastViewOnly": "Past appointments are view-only.",
|
||||
"infoSelectPatient": "Select a patient before booking.",
|
||||
"errorOutsideHours": "This appointment falls outside the provider's current working hours and cannot be edited.",
|
||||
"successUpdated": "Appointment updated.",
|
||||
"successSaved": "Appointment saved.",
|
||||
"errorUpdate": "Could not update appointment.",
|
||||
"errorSave": "Could not save appointment.",
|
||||
"confirmRemove": "Remove this appointment?",
|
||||
"successRemoved": "Appointment removed.",
|
||||
"errorDelete": "Could not delete appointment.",
|
||||
"errorLoadSchedule": "Failed to load schedule.",
|
||||
"successPatientSaved": "Patient {firstName} {lastName} was saved.",
|
||||
"searchPlaceholder": "Search existing patients",
|
||||
"searching": "Searching…",
|
||||
"searchHint": "Type to search patients by name, phone, or email.",
|
||||
"noPermissionAdd": "You do not have permission to add patients.",
|
||||
"editTitle": "Edit appointment",
|
||||
"newTitle": "New appointment",
|
||||
"providerLabel": "Provider:",
|
||||
"patientLabel": "Patient",
|
||||
"startLabel": "Start",
|
||||
"endLabel": "End",
|
||||
"purposeLabel": "Purpose",
|
||||
"errorSelectPatient": "Select a patient first.",
|
||||
"errorEndAfterStart": "End time must be after start time.",
|
||||
"errorPastSchedule": "Cannot schedule in the past.",
|
||||
"errorPastViewOnly": "Past appointments are view-only.",
|
||||
"errorMissingDetails": "Missing appointment details.",
|
||||
"noProviders": "No providers available. Add staff with treatment edit access to see columns here.",
|
||||
"noWorkingHours": "No working hours are configured for this day. Set provider working hours in Staff management.",
|
||||
"noHoursSet": "No hours set",
|
||||
"offToday": "Off today",
|
||||
"slotOffToday": "Provider is off today",
|
||||
"slotHoursNotConfigured": "Working hours not configured",
|
||||
"slotOutsideHours": "Outside working hours",
|
||||
"slotCannotCreate": "You cannot create appointments",
|
||||
"slotBookAt": "Book {time}",
|
||||
"outsideHoursBlocked": "Outside working hours — editing blocked",
|
||||
"overlappingChoose": "{count} overlapping — click to choose",
|
||||
"overlapping": "{count} overlapping",
|
||||
"legend": "Legend",
|
||||
"overlappingTitle": "Overlapping appointments ({count})",
|
||||
"purposeConsultation": "Consultation",
|
||||
"purposeFilling": "Filling",
|
||||
"purposeEndo": "Endo",
|
||||
"purposeVisit": "Visit",
|
||||
"purposeHygiene": "Hygiene"
|
||||
},
|
||||
"treatment": {
|
||||
"loading": "Loading…",
|
||||
"noPermissionTitle": "Treatment workspace",
|
||||
"noPermissionBody": "You do not have permission to view the Treatment tab for this organization.",
|
||||
"title": "Treatment",
|
||||
"subtitleEdit": "Document cases for your appointments, save drafts, and send work to linked organizations.",
|
||||
"subtitleReadOnly": "View-only access — you can review appointments and treatment history but cannot edit.",
|
||||
"pastDayNotice": "Past days are view-only. You can review appointments and history, but treatment cases cannot be added or changed.",
|
||||
"selectedPatient": "Selected patient",
|
||||
"purposeLabel": "Purpose:",
|
||||
"loadingAppointments": "Loading appointments…",
|
||||
"selectDayWithAppointment": "Select a day with at least one appointment.",
|
||||
"confirmDiscard": "You have unsaved changes. Discard them and continue?",
|
||||
"successDraftSaved": "Treatment draft saved.",
|
||||
"errorChooseOrg": "Choose at least one active organization to send this case.",
|
||||
"successCaseSent": "Case sent to selected organizations.",
|
||||
"successFilesUploaded": "{count} file(s) uploaded successfully.",
|
||||
"errorLoadAppointments": "Failed to load appointments.",
|
||||
"errorLoadOrgs": "Failed to load linked organizations.",
|
||||
"errorLoadHistory": "Failed to load treatment history.",
|
||||
"errorLoadDraft": "Failed to load treatment draft.",
|
||||
"errorUpload": "Failed to upload attachments.",
|
||||
"errorSaveDraft": "Failed to save treatment draft.",
|
||||
"errorSendCase": "Failed to send case.",
|
||||
"errorCaseMustSave": "Case must be saved before sending.",
|
||||
"draftTitle": "Draft · {patientName}",
|
||||
"hiddenMessage": "Appointments are hidden.",
|
||||
"showAppointments": "Show appointments",
|
||||
"appointmentsTitle": "My appointments",
|
||||
"hideAppointments": "Hide appointments",
|
||||
"emptyDay": "No appointments assigned to you on this day.",
|
||||
"casesTitle": "Treatment cases",
|
||||
"casesSubtitle": "Each case has its own teeth, notes, attachments, and destinations for send.",
|
||||
"addCase": "Add case",
|
||||
"caseLabel": "Case {n}",
|
||||
"comments": "Comments",
|
||||
"commentsPlaceholder": "Write clinical notes for this case…",
|
||||
"treatmentType": "Treatment type",
|
||||
"typeConsultation": "consultation",
|
||||
"typeFilling": "filling",
|
||||
"typeEndo": "endo",
|
||||
"typeVisit": "visit",
|
||||
"typeHygiene": "hygiene",
|
||||
"attachments": "Attachments",
|
||||
"attachFiles": "Attach files for this treatment case",
|
||||
"chooseFiles": "Choose files",
|
||||
"sendToOrgs": "Send this case to linked organizations",
|
||||
"searchOrgsPlaceholder": "Search active organizations...",
|
||||
"recent": "Recent:",
|
||||
"noOrgMatch": "No active organization matches your search.",
|
||||
"sendThisCase": "Send this case",
|
||||
"saveDraft": "Save treatment draft",
|
||||
"unsavedChanges": "Unsaved changes",
|
||||
"draftSaved": "Draft saved",
|
||||
"sendSavesFirst": "Sending is per case and saves first automatically.",
|
||||
"historyTitle": "Previous treatments",
|
||||
"historySubtitle": "Completed treatments for this patient. Each case is listed separately.",
|
||||
"loadingHistory": "Loading history…",
|
||||
"historyEmpty": "No prior treatments for this patient.",
|
||||
"statusLabel": "Status:",
|
||||
"historyCaseLabel": "Case {n} · {type}",
|
||||
"teethLabel": "Teeth:",
|
||||
"teethNone": "None selected",
|
||||
"reviewDetails": "Review details",
|
||||
"previewTitle": "Treatment preview",
|
||||
"previewDraft": "Preview current draft",
|
||||
"selectAppointment": "Select an appointment to preview its draft.",
|
||||
"caseCount": "{n} case(s)",
|
||||
"attachmentCount": "{n} attachment(s)",
|
||||
"caseSummary": "Case {n}: {type}",
|
||||
"teethPrefix": "· Teeth",
|
||||
"moreCases": "+ {n} more case(s)",
|
||||
"previewDialogTitle": "Treatment preview",
|
||||
"previewDialogSubtitle": "Review cases, attachments, and send destinations.",
|
||||
"noCases": "No cases in this treatment.",
|
||||
"typeLabel": "Type:",
|
||||
"commentsLabel": "Comments:",
|
||||
"commentsEmpty": "Comments: —",
|
||||
"attachFilesShort": "Attach files",
|
||||
"sendCase": "Send this case",
|
||||
"sendToLinkedOrgs": "Send to linked organizations",
|
||||
"noActiveOrgs": "No active linked organizations.",
|
||||
"confirmSend": "Confirm send",
|
||||
"toothChartTitle": "FDI tooth chart",
|
||||
"toothChartHint": "Tap teeth to multi-select. Applies to the active case.",
|
||||
"selectedLabel": "Selected:",
|
||||
"selectedEmpty": "—",
|
||||
"upperArch": "Upper arch",
|
||||
"lowerArch": "Lower arch",
|
||||
"toothAria": "FDI tooth {fdi}",
|
||||
"toothSelectedSuffix": ", selected",
|
||||
"sentToAt": "Sent to {orgName} at {datetime}",
|
||||
"fallbackOrgName": "organization"
|
||||
},
|
||||
"organizations": {
|
||||
"loadingOrganization": "Loading organization...",
|
||||
"subtitle": "Search organizations, send connection requests to existing accounts, or invitation links when they are not on DyoLink yet.",
|
||||
"invitationHistory": "Invitation History",
|
||||
"searchPlaceholder": "Search {counterpart} by name, email, or phone...",
|
||||
"backToList": "Back to list",
|
||||
"tableOrganization": "Organization",
|
||||
"tableOwnerEmail": "Owner email",
|
||||
"tableDate": "Date",
|
||||
"tableStatus": "Status",
|
||||
"tableAction": "Action",
|
||||
"emptyConnections": "No connections yet. Search to send a connection request or an invitation link.",
|
||||
"statusInvitationPending": "Invitation pending",
|
||||
"statusConnectionPending": "Connection request pending",
|
||||
"statusConnected": "Connected",
|
||||
"statusDeclined": "Connection request declined",
|
||||
"statusFound": "Found",
|
||||
"statusToday": "Today",
|
||||
"acceptRequest": "Accept connection request",
|
||||
"declineRequest": "Decline connection request",
|
||||
"removeConnection": "Remove connection",
|
||||
"sendRequest": "Send connection request",
|
||||
"noDirectoryResults": "No organization found in directory search.",
|
||||
"hideInvitationFields": "Hide invitation fields",
|
||||
"sendInvitationLink": "Send invitation link",
|
||||
"counterpartNameLabel": "{counterpart} name",
|
||||
"ownerEmailLabel": "Owner email",
|
||||
"sendInvitation": "Send invitation",
|
||||
"successConnectionSent": "{counterpart} connection request sent.",
|
||||
"successInviteCreated": "Invitation link created for {email}",
|
||||
"successLinkCopied": "Invitation link copied to clipboard.",
|
||||
"successAccepted": "Connection request accepted.",
|
||||
"successDeclined": "Connection request declined.",
|
||||
"successRemoved": "Connection removed.",
|
||||
"historyTitle": "Invitation History",
|
||||
"loadingHistory": "Loading invitation history...",
|
||||
"historyEmpty": "No invitations yet.",
|
||||
"tableInvitationLink": "Invitation link",
|
||||
"statusPending": "Invitation pending",
|
||||
"statusAccepted": "Invitation accepted",
|
||||
"statusRejected": "Invitation rejected",
|
||||
"statusExpired": "Invitation expired",
|
||||
"copyInvitationLink": "Copy invitation link",
|
||||
"copyInvitationLinkTitle": "Copy invitation link (generates a new link if needed)",
|
||||
"selectorTitle": "Organizations",
|
||||
"selectorSubtitleWithCreate": "Select an organization to continue, or create a new one.",
|
||||
"selectorSubtitleSelectOnly": "Select an organization to continue.",
|
||||
"createOrganization": "Create Organization",
|
||||
"createAndContinue": "Create and Continue",
|
||||
"emptyCanCreate": "No organizations found. Create your first one to continue.",
|
||||
"emptyAskOwner": "No organizations found. Ask an organization owner to invite you.",
|
||||
"continueArrow": "Continue →",
|
||||
"planLabel": "Plan: {name} • {maxUsers} users",
|
||||
"counterpartClinic": "Clinic",
|
||||
"counterpartLab": "Lab"
|
||||
},
|
||||
"settings": {
|
||||
"accountTitle": "Account",
|
||||
"accountSubtitle": "Profile and security settings for your login.",
|
||||
"accountPlaceholder": "Password change and profile editing will be wired here next (e.g. invite flow, reset password).",
|
||||
"subscriptionsTitle": "Subscriptions",
|
||||
"subscriptionsSubtitle": "Your DyoLink workspace plan and seats for {orgName}. Clinic and lab income tracking stays under the sidebar Billing tab.",
|
||||
"noSubscriptionNotice": "This organization has no active subscription. Select a plan below to start the purchase process.",
|
||||
"currentPlan": "Current plan",
|
||||
"planPrice": "Plan price",
|
||||
"seatsUsed": "Seats used",
|
||||
"seatsRemaining": "Seats remaining",
|
||||
"daysRemaining": "Days remaining",
|
||||
"unlimited": "Unlimited",
|
||||
"unlimitedSeats": "Unlimited seats",
|
||||
"seatsCount": "{n} seats",
|
||||
"pricePerMonth": "${price} / month",
|
||||
"noActiveSubscription": "No active subscription for this organization.",
|
||||
"trialEnded": "Trial period has ended. Choose a plan when checkout is available.",
|
||||
"trialEndsIn": "Trial ends in {days} day(s).",
|
||||
"seatsLow": "Seat usage is high for this organization.",
|
||||
"choosePlanIntro": "Choose a plan to continue. Purchase integration is not active yet, so this currently prepares the selection step only.",
|
||||
"planSolo": "Solo",
|
||||
"planSmall": "Small",
|
||||
"planMedium": "Medium",
|
||||
"planLarge": "Large",
|
||||
"planEnterprise": "Enterprise",
|
||||
"startPurchase": "Start purchase process",
|
||||
"purchaseNotice": "Purchase flow will be enabled soon. {plan} is selected and ready for checkout setup."
|
||||
},
|
||||
"schedule": {
|
||||
"defaultLabel": "Schedule date",
|
||||
"previousDay": "Previous day",
|
||||
"nextDay": "Next day",
|
||||
"chooseDate": "Choose schedule date",
|
||||
"year": "Year",
|
||||
"month": "Month",
|
||||
"day": "Day",
|
||||
"monthJanuary": "January",
|
||||
"monthFebruary": "February",
|
||||
"monthMarch": "March",
|
||||
"monthApril": "April",
|
||||
"monthMay": "May",
|
||||
"monthJune": "June",
|
||||
"monthJuly": "July",
|
||||
"monthAugust": "August",
|
||||
"monthSeptember": "September",
|
||||
"monthOctober": "October",
|
||||
"monthNovember": "November",
|
||||
"monthDecember": "December"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,110 +1,566 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "DyoLink",
|
||||
"loading": "Loading...",
|
||||
"loadingApp": "Loading app...",
|
||||
"loadingWorkspace": "Loading workspace...",
|
||||
"continue": "Continue",
|
||||
"back": "Back",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel"
|
||||
"loading": "در حال بارگذاری...",
|
||||
"loadingApp": "در حال بارگذاری برنامه...",
|
||||
"loadingWorkspace": "در حال بارگذاری فضای کاری...",
|
||||
"continue": "ادامه",
|
||||
"back": "بازگشت",
|
||||
"save": "ذخیره",
|
||||
"cancel": "لغو",
|
||||
"delete": "حذف",
|
||||
"edit": "ویرایش",
|
||||
"next": "بعدی",
|
||||
"dismiss": "رد کردن",
|
||||
"or": "یا",
|
||||
"and": "و",
|
||||
"close": "بستن",
|
||||
"redirecting": "در حال انتقال...",
|
||||
"readOnlyAccess": "دسترسی فقط خواندنی برای این سازمان.",
|
||||
"errorGeneric": "خطایی رخ داده است",
|
||||
"loadingEllipsis": "در حال بارگذاری...",
|
||||
"search": "جستجو",
|
||||
"action": "عملیات",
|
||||
"status": "وضعیت",
|
||||
"name": "نام",
|
||||
"email": "ایمیل",
|
||||
"date": "تاریخ",
|
||||
"organization": "سازمان",
|
||||
"backToApp": "← بازگشت به برنامه",
|
||||
"copied": "کپی شد",
|
||||
"copyLink": "کپی لینک",
|
||||
"none": "هیچکدام",
|
||||
"preview": "پیشنمایش"
|
||||
},
|
||||
"language": {
|
||||
"label": "Language",
|
||||
"selectLanguage": "Select language",
|
||||
"en": "English",
|
||||
"fa": "Persian",
|
||||
"nl": "Dutch"
|
||||
"label": "زبان",
|
||||
"selectLanguage": "انتخاب زبان",
|
||||
"en": "انگلیسی",
|
||||
"fa": "فارسی",
|
||||
"nl": "هلندی"
|
||||
},
|
||||
"theme": {
|
||||
"switchToLight": "Switch to light mode",
|
||||
"switchToDark": "Switch to dark mode",
|
||||
"lightMode": "Light mode",
|
||||
"darkMode": "Dark mode"
|
||||
"switchToLight": "تغییر به حالت روشن",
|
||||
"switchToDark": "تغییر به حالت تیره",
|
||||
"lightMode": "حالت روشن",
|
||||
"darkMode": "حالت تیره"
|
||||
},
|
||||
"nav": {
|
||||
"dashboard": "Dashboard",
|
||||
"staff": "Staff",
|
||||
"patients": "Patients",
|
||||
"appointment": "Appointment",
|
||||
"treatment": "Treatment",
|
||||
"billing": "Billing",
|
||||
"reports": "Reports",
|
||||
"clinics": "Clinics",
|
||||
"labs": "Labs"
|
||||
"dashboard": "داشبورد",
|
||||
"staff": "کارکنان",
|
||||
"patients": "بیماران",
|
||||
"appointment": "نوبتها",
|
||||
"treatment": "درمان",
|
||||
"billing": "صورتحساب",
|
||||
"reports": "گزارشها",
|
||||
"clinics": "کلینیکها",
|
||||
"labs": "لابراتوارها"
|
||||
},
|
||||
"auth": {
|
||||
"login": "Login",
|
||||
"signIn": "Sign in",
|
||||
"signOut": "Log out",
|
||||
"register": "Register",
|
||||
"startTrial": "Start Trial",
|
||||
"startFreeTrial": "Start Free Trial",
|
||||
"dashboard": "Dashboard",
|
||||
"signInTitle": "Sign in to your account",
|
||||
"signInPrompt": "Or {link}",
|
||||
"startTrialLink": "start your free trial",
|
||||
"registerTitle": "Start your 30-day free trial",
|
||||
"registerPrompt": "Already have an account?",
|
||||
"signInLink": "Sign in",
|
||||
"email": "Email address",
|
||||
"password": "Password",
|
||||
"confirmPassword": "Confirm password",
|
||||
"fullName": "Full name",
|
||||
"rememberMe": "Remember me",
|
||||
"forgotPassword": "Forgot your password?",
|
||||
"invalidCredentials": "Invalid email or password",
|
||||
"loginFailed": "Login failed",
|
||||
"registrationFailed": "Registration failed. Please try again.",
|
||||
"startMyFreeTrial": "Start my free trial",
|
||||
"trialIncludes": "Your trial includes:",
|
||||
"trialTeamMembers": "Up to 5 team members",
|
||||
"trialFullAccess": "Full access to all features",
|
||||
"trialNoCard": "30 days free, no credit card required",
|
||||
"termsAgreement": "By signing up, you agree to our {terms} and {privacy}",
|
||||
"termsOfService": "Terms of Service",
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
"signedIn": "Signed in",
|
||||
"switchOrganization": "Switch organization",
|
||||
"subscriptions": "Subscriptions",
|
||||
"account": "Account"
|
||||
"login": "ورود",
|
||||
"signIn": "ورود به حساب",
|
||||
"signOut": "خروج",
|
||||
"register": "ثبتنام",
|
||||
"startTrial": "شروع دوره آزمایشی",
|
||||
"startFreeTrial": "شروع دوره آزمایشی رایگان",
|
||||
"dashboard": "داشبورد",
|
||||
"signInTitle": "به حساب کاربری خود وارد شوید",
|
||||
"signInPrompt": "یا {link}",
|
||||
"startTrialLink": "دوره آزمایشی رایگان خود را شروع کنید",
|
||||
"registerTitle": "دوره آزمایشی رایگان ۳۰ روزه خود را آغاز کنید",
|
||||
"registerPrompt": "از قبل حساب کاربری دارید؟",
|
||||
"signInLink": "وارد شوید",
|
||||
"email": "آدرس ایمیل",
|
||||
"password": "رمز عبور",
|
||||
"confirmPassword": "تأیید رمز عبور",
|
||||
"fullName": "نام و نام خانوادگی",
|
||||
"rememberMe": "مرا به خاطر بسپار",
|
||||
"forgotPassword": "رمز عبور خود را فراموش کردهاید؟",
|
||||
"invalidCredentials": "ایمیل یا رمز عبور نامعتبر است",
|
||||
"loginFailed": "ورود ناموفق بود",
|
||||
"registrationFailed": "ثبتنام ناموفق بود. لطفاً دوباره تلاش کنید.",
|
||||
"startMyFreeTrial": "دوره آزمایشی رایگان من را شروع کن",
|
||||
"trialIncludes": "دوره آزمایشی شما شامل موارد زیر است:",
|
||||
"trialTeamMembers": "تا ۵ عضو تیم",
|
||||
"trialFullAccess": "دسترسی کامل به تمام امکانات",
|
||||
"trialNoCard": "۳۰ روز رایگان، بدون نیاز به کارت اعتباری",
|
||||
"termsAgreement": "با ثبتنام، شما با {terms} و {privacy} ما موافقت میکنید",
|
||||
"termsOfService": "شرایط استفاده از خدمات",
|
||||
"privacyPolicy": "سیاست حفظ حریم خصوصی",
|
||||
"signedIn": "وارد شدهاید",
|
||||
"switchOrganization": "تغییر سازمان",
|
||||
"subscriptions": "اشتراکها",
|
||||
"account": "حساب کاربری",
|
||||
"emailPlaceholder": "you@example.com",
|
||||
"passwordPlaceholder": "••••••••",
|
||||
"namePlaceholder": "John Doe",
|
||||
"termsIntro": "با ثبتنام، شما با",
|
||||
"errorRegistrationFailed": "ثبتنام ناموفق بود",
|
||||
"errorLoginFailed": "ورود ناموفق بود",
|
||||
"errorCreateOrganization": "ایجاد سازمان ناموفق بود",
|
||||
"acceptInviteTitle": "پذیرش دعوتنامه",
|
||||
"loadingInvitation": "در حال بارگذاری دعوتنامه...",
|
||||
"invalidInvitationLink": "لینک دعوتنامه نامعتبر است",
|
||||
"invitationAlreadyAccepted": "این دعوتنامه قبلاً پذیرفته شده است. اکنون میتوانید وارد شوید.",
|
||||
"errorLoadInvitation": "بارگذاری دعوتنامه امکانپذیر نبود",
|
||||
"organizationLabel": "سازمان:",
|
||||
"emailLabel": "ایمیل:",
|
||||
"nameRequired": "نام الزامی است",
|
||||
"passwordMinLength8": "رمز عبور باید حداقل ۸ کاراکتر باشد",
|
||||
"passwordsDoNotMatch": "رمزهای عبور مطابقت ندارند",
|
||||
"labelName": "نام",
|
||||
"labelCreatePassword": "ایجاد رمز عبور",
|
||||
"labelConfirmPassword": "تأیید رمز عبور",
|
||||
"activateAccount": "فعالسازی حساب",
|
||||
"invitationAcceptedRedirect": "دعوتنامه پذیرفته شد. در حال انتقال به صفحه ورود...",
|
||||
"errorAcceptInvitation": "پذیرش دعوتنامه امکانپذیر نبود",
|
||||
"alreadyHaveAccess": "از قبل دسترسی دارید؟",
|
||||
"goToLogin": "رفتن به ورود",
|
||||
"acceptOrganizationTitle": "پذیرش دعوتنامه سازمان",
|
||||
"alreadyHaveAccount": "از قبل حساب کاربری دارید؟",
|
||||
"invitedBy": "دعوتکننده:",
|
||||
"ownerEmail": "ایمیل مالک",
|
||||
"activateOrganization": "فعالسازی سازمان",
|
||||
"organizationAcceptedRedirect": "دعوتنامه پذیرفته شد. در حال انتقال به صفحه ورود...",
|
||||
"stepAccount": "حساب",
|
||||
"stepOrganization": "سازمان",
|
||||
"organizationName": "نام سازمان",
|
||||
"organizationNamePlaceholder": "کلینیک دندانپزشکی خورشید",
|
||||
"organizationEmail": "ایمیل سازمان",
|
||||
"organizationEmailPlaceholder": "contact@sunshineclinic.com",
|
||||
"organizationType": "نوع سازمان",
|
||||
"dentalClinic": "کلینیک دندانپزشکی",
|
||||
"dentalLab": "لابراتوار دندانپزشکی"
|
||||
},
|
||||
"landing": {
|
||||
"heroTitle": "Connect Dental Clinics & Labs",
|
||||
"heroHighlight": "Seamlessly",
|
||||
"heroSubtitle": "Streamline communication between dental professionals. Start with a 30-day free trial, no credit card required.",
|
||||
"featureClinicsTitle": "For Clinics",
|
||||
"featureClinicsDescription": "Manage patients, appointments, and send cases to labs instantly.",
|
||||
"featureLabsTitle": "For Labs",
|
||||
"featureLabsDescription": "Receive cases, track progress, and communicate with clinics.",
|
||||
"featureTeamTitle": "Team Management",
|
||||
"featureTeamDescription": "Add up to 5 team members during trial. Scale as you grow.",
|
||||
"featureTrialTitle": "30-Day Trial",
|
||||
"featureTrialDescription": "Full access to all features. No credit card required.",
|
||||
"featureRealtimeTitle": "Real-time Updates",
|
||||
"featureRealtimeDescription": "Get instant notifications on case status changes.",
|
||||
"featureSecurityTitle": "Secure & Compliant",
|
||||
"featureSecurityDescription": "HIPAA-compliant with enterprise-grade security.",
|
||||
"footerCopyright": "© 2026 DyoLink. All rights reserved.",
|
||||
"termsAndConditions": "Terms & Conditions"
|
||||
"heroTitle": "اتصال کلینیکها و لابراتوارهای دندانپزشکی",
|
||||
"heroHighlight": "بهصورت یکپارچه",
|
||||
"heroSubtitle": "ارتباط بین متخصصان دندانپزشکی را ساده و سریع کنید. با یک دوره آزمایشی رایگان ۳۰ روزه، بدون نیاز به کارت اعتباری، شروع کنید.",
|
||||
"featureClinicsTitle": "برای کلینیکها",
|
||||
"featureClinicsDescription": "بیماران و نوبتها را مدیریت کنید و پروندهها را فوراً به لابراتوارها ارسال کنید.",
|
||||
"featureLabsTitle": "برای لابراتوارها",
|
||||
"featureLabsDescription": "پروندهها را دریافت کنید، روند پیشرفت را پیگیری کنید و با کلینیکها در ارتباط باشید.",
|
||||
"featureTeamTitle": "مدیریت تیم",
|
||||
"featureTeamDescription": "در طول دوره آزمایشی تا ۵ عضو تیم اضافه کنید. همگام با رشد خود مقیاسپذیر باشید.",
|
||||
"featureTrialTitle": "دوره آزمایشی ۳۰ روزه",
|
||||
"featureTrialDescription": "دسترسی کامل به تمامی امکانات. بدون نیاز به کارت اعتباری.",
|
||||
"featureRealtimeTitle": "بهروزرسانیهای لحظهای",
|
||||
"featureRealtimeDescription": "اعلانهای فوری درباره تغییر وضعیت پروندهها دریافت کنید.",
|
||||
"featureSecurityTitle": "امن و منطبق با استانداردها",
|
||||
"featureSecurityDescription": "منطبق با HIPAA و دارای امنیت در سطح سازمانی.",
|
||||
"footerCopyright": "© ۲۰۲۶ DyoLink. تمامی حقوق محفوظ است.",
|
||||
"termsAndConditions": "شرایط و ضوابط"
|
||||
},
|
||||
"accountMenu": {
|
||||
"noActiveSubscription": "No active subscription — review Subscriptions",
|
||||
"trialEnded": "Trial ended — review Subscriptions",
|
||||
"trialEndingSoon": "Trial ending soon — review Subscriptions",
|
||||
"seatsLow": "Seats running low — review Subscriptions",
|
||||
"reviewSubscriptions": "Review Subscriptions"
|
||||
"noActiveSubscription": "اشتراک فعالی وجود ندارد — اشتراکها را بررسی کنید",
|
||||
"trialEnded": "دوره آزمایشی به پایان رسیده است — اشتراکها را بررسی کنید",
|
||||
"trialEndingSoon": "دوره آزمایشی بهزودی به پایان میرسد — اشتراکها را بررسی کنید",
|
||||
"seatsLow": "ظرفیت کاربران رو به اتمام است — اشتراکها را بررسی کنید",
|
||||
"reviewSubscriptions": "بررسی اشتراکها"
|
||||
},
|
||||
"validation": {
|
||||
"emailInvalid": "Please enter a valid email address",
|
||||
"passwordRequired": "Password is required",
|
||||
"nameMinLength": "Name must be at least 2 characters",
|
||||
"passwordMinLength": "Password must be at least 8 characters",
|
||||
"passwordUppercase": "Password must contain at least one uppercase letter",
|
||||
"passwordNumber": "Password must contain at least one number",
|
||||
"organizationNameMinLength": "Organization name must be at least 2 characters",
|
||||
"organizationEmailInvalid": "Please enter a valid organization email",
|
||||
"organizationTypeRequired": "Please select organization type",
|
||||
"passwordsDoNotMatch": "Passwords don't match"
|
||||
"emailInvalid": "لطفاً یک آدرس ایمیل معتبر وارد کنید",
|
||||
"passwordRequired": "رمز عبور الزامی است",
|
||||
"nameMinLength": "نام باید حداقل ۲ کاراکتر باشد",
|
||||
"passwordMinLength": "رمز عبور باید حداقل ۸ کاراکتر باشد",
|
||||
"passwordUppercase": "رمز عبور باید حداقل شامل یک حرف بزرگ باشد",
|
||||
"passwordNumber": "رمز عبور باید حداقل شامل یک عدد باشد",
|
||||
"organizationNameMinLength": "نام سازمان باید حداقل ۲ کاراکتر باشد",
|
||||
"organizationEmailInvalid": "لطفاً یک ایمیل سازمانی معتبر وارد کنید",
|
||||
"organizationTypeRequired": "لطفاً نوع سازمان را انتخاب کنید",
|
||||
"passwordsDoNotMatch": "رمزهای عبور مطابقت ندارند"
|
||||
},
|
||||
"today": {
|
||||
"welcomeBack": "خوش آمدید!!",
|
||||
"noSubscriptionNotice": "این سازمان هنوز اشتراک فعالی ندارد.",
|
||||
"choosePlanLink": "انتخاب طرح",
|
||||
"noSubscriptionCta": "برای شروع فرآیند خرید.",
|
||||
"cardTodaysAppointments": "نوبتهای امروز",
|
||||
"cardActivePatients": "بیماران فعال",
|
||||
"cardNewLabCase": "پرونده جدید لابراتوار",
|
||||
"cardTodayInvoices": "صورتحسابهای امروز"
|
||||
},
|
||||
"staff": {
|
||||
"redirecting": "در حال انتقال...",
|
||||
"title": "مدیریت کارکنان",
|
||||
"subtitle": "از همکاران خود دعوت کنید، دسترسی به برگهها را تنظیم کنید و در محدوده طرح خود باقی بمانید.",
|
||||
"inviteMember": "دعوت از عضو",
|
||||
"seatsLabel": "مجوزها:",
|
||||
"unlimitedPlan": "(طرح نامحدود)",
|
||||
"seatLimitReached": "ظرفیت مجوزهای طرح برای این سازمان تکمیل شده است.",
|
||||
"noActivePlan": "هیچ طرح فعالی برای این سازمان انتخاب نشده است. برای دعوت از اعضا، یک طرح اشتراک انتخاب کنید.",
|
||||
"invitedPending": "دعوتنامه تا زمانی که لینک را باز کنند، رمز عبور تنظیم کنند و وارد شوند، در حالت انتظار است.",
|
||||
"invitedAccepted": "دعوتنامه بلافاصله پذیرفته شد.",
|
||||
"inviteLinkHeading": "لینک دعوت",
|
||||
"shareLinkHint": "این لینک را به صورت دستی از طریق پیامک یا ایمیل به اشتراک بگذارید. در صورت منقضی شدن یا گم شدن لینک قبلی، لینک جدیدی تولید میشود.",
|
||||
"loadingTeam": "در حال بارگذاری تیم...",
|
||||
"tableName": "نام",
|
||||
"tableEmail": "ایمیل",
|
||||
"tableRole": "نقش",
|
||||
"tableStatus": "وضعیت",
|
||||
"tableAccess": "دسترسی",
|
||||
"tableAction": "عملیات",
|
||||
"roleOwner": "مالک",
|
||||
"roleStaff": "کارمند",
|
||||
"statusActive": "فعال",
|
||||
"statusPending": "در انتظار",
|
||||
"statusDisabled": "غیرفعال",
|
||||
"statusExpired": "منقضی شده",
|
||||
"allFeatures": "همه امکانات",
|
||||
"inviteModalTitle": "دعوت از عضو تیم",
|
||||
"stepOf": "مرحله {step} از ۲",
|
||||
"permissionView": "نمایش",
|
||||
"permissionEdit": "ویرایش",
|
||||
"labelEmail": "ایمیل",
|
||||
"labelDisplayName": "نام نمایشی",
|
||||
"tabAccess": "دسترسی به برگهها",
|
||||
"sendInvite": "ارسال دعوتنامه",
|
||||
"skipForNow": "فعلاً رد کردن",
|
||||
"enableModalTitle": "فعالسازی عضو تیم",
|
||||
"enableConfirm": "{name} ({email}) فعال شود؟",
|
||||
"enableBullet1": "آنها میتوانند دوباره با حساب موجود خود وارد این سازمان شوند.",
|
||||
"enableBullet2": "هیچ دعوتنامه جدیدی ارسال نمیشود و در زمان غیرفعال بودن هیچ دادهای حذف نشده است.",
|
||||
"enableBullet3": "فعالسازی از یک مجوز در طرح شما استفاده میکند.",
|
||||
"noSeatsAvailable": "هیچ مجوزی در دسترس نیست. قبل از فعالسازی این شخص، عضو دیگری را غیرفعال کنید یا طرح خود را ارتقا دهید.",
|
||||
"enableMemberButton": "فعالسازی عضو",
|
||||
"disableModalTitle": "غیرفعالسازی عضو تیم",
|
||||
"disableConfirm": "{name} ({email}) غیرفعال شود؟",
|
||||
"disableBullet1": "آنها نمیتوانند وارد این سازمان شوند.",
|
||||
"disableBullet2": "هیچ دادهای حذف نمیشود.",
|
||||
"disableBullet3": "غیرفعالسازی یک مجوز در طرح شما را آزاد میکند تا بتوانید شخص دیگری را دعوت کنید.",
|
||||
"disableMemberButton": "غیرفعالسازی عضو",
|
||||
"editModalTitle": "ویرایش عضو",
|
||||
"loadingWorkingHours": "در حال بارگذاری ساعات کاری...",
|
||||
"errorLoadStaff": "بارگذاری کارکنان ناموفق بود.",
|
||||
"errorCopyInvite": "کپی لینک دعوتنامه امکانپذیر نبود.",
|
||||
"errorSendInvite": "ارسال دعوتنامه ناموفق بود.",
|
||||
"errorLoadWorkingHours": "بارگذاری ساعات کاری ناموفق بود.",
|
||||
"successMemberUpdated": "عضو بهروزرسانی شد.",
|
||||
"errorUpdateMember": "بهروزرسانی عضو ناموفق بود.",
|
||||
"errorDeleteNotImplemented": "حذف هنوز پیادهسازی نشده است.",
|
||||
"successMemberDisabled": "{name} غیرفعال شد. یک مجوز در دسترس قرار گرفت.",
|
||||
"errorDisableMember": "غیرفعالسازی عضو ناموفق بود.",
|
||||
"successMemberEnabled": "{name} فعال شد و میتواند دوباره وارد شود.",
|
||||
"errorEnableMember": "فعالسازی عضو ناموفق بود.",
|
||||
"successInvited": "{name} ({email}) دعوت شد.",
|
||||
"copyInviteLink": "کپی لینک دعوتنامه",
|
||||
"copyInviteLinkTitle": "کپی لینک دعوتنامه (در صورت نیاز لینک جدیدی تولید میکند)",
|
||||
"enableMemberAria": "فعالسازی عضو",
|
||||
"enableMemberTitle": "فعالسازی عضو (از یک مجوز استفاده میکند)",
|
||||
"disableMemberAria": "غیرفعالسازی عضو",
|
||||
"disableMemberTitle": "غیرفعالسازی عضو (یک مجوز را آزاد میکند)",
|
||||
"editMemberAria": "ویرایش عضو",
|
||||
"deleteMemberAria": "حذف عضو",
|
||||
"deleteMemberTitle": "حذف عضو (پیادهسازی نشده)",
|
||||
"features": {
|
||||
"featureToday": "امروز",
|
||||
"featureStaff": "کارکنان",
|
||||
"featureOrganizations": "سازمانها",
|
||||
"featureClinics": "کلینیکها",
|
||||
"featureLabs": "لابراتوارها",
|
||||
"featurePatients": "بیماران",
|
||||
"featureAppointment": "نوبتها",
|
||||
"featureTreatment": "درمان",
|
||||
"featureBilling": "صورتحساب",
|
||||
"featureReports": "گزارشها",
|
||||
"noTabAccess": "دسترسی به برگهها وجود ندارد",
|
||||
"readOnlySuffix": "(فقط خواندنی)"
|
||||
},
|
||||
"workingHours": {
|
||||
"recommendedTitle": "ساعات کاری توصیه میشود",
|
||||
"recommendedBody": "کارکنانی که دسترسی ویرایش درمان دارند، به عنوان ستونهای ارائهدهنده در نوبتها ظاهر میشوند. ساعات هفتگی آنها را تنظیم کنید تا جدول زمانبندی زمانهای قابل رزرو صحیح را نشان دهد.",
|
||||
"intro": "ساعات کاری هفتگی این ارائهدهنده را تنظیم کنید. جدول نوبتها از این ساعات برای نمایش زمانهای قابل رزرو استفاده میکند.",
|
||||
"workingDay": "روز کاری",
|
||||
"start": "شروع",
|
||||
"end": "پایان",
|
||||
"removeShift": "حذف شیفت",
|
||||
"addShift": "افزودن شیفت",
|
||||
"autoRepeatWeekly": "این ساعات را در ابتدای هر هفته تکرار کنید (کپی به جلو در روز دوشنبه)",
|
||||
"weekdayMon": "دوشنبه",
|
||||
"weekdayTue": "سهشنبه",
|
||||
"weekdayWed": "چهارشنبه",
|
||||
"weekdayThu": "پنجشنبه",
|
||||
"weekdayFri": "جمعه",
|
||||
"weekdaySat": "شنبه",
|
||||
"weekdaySun": "یکشنبه",
|
||||
"validationNeedsShift": "{day} حداقل به یک شیفت نیاز دارد یا باید به عنوان تعطیل علامتگذاری شود.",
|
||||
"validationEndAfterStart": "زمان پایان شیفت {day} باید بعد از زمان شروع باشد.",
|
||||
"validationOverlap": "شیفتهای {day} نمیتوانند همپوشانی داشته باشند."
|
||||
}
|
||||
},
|
||||
"patients": {
|
||||
"title": "بیماران",
|
||||
"newPatient": "بیمار جدید",
|
||||
"errorLoadPatients": "بارگذاری بیماران ناموفق بود.",
|
||||
"successPatientSaved": "بیمار {firstName} {lastName} با موفقیت ذخیره شد.",
|
||||
"errorSavePatient": "ذخیره بیمار ناموفق بود.",
|
||||
"firstName": "نام",
|
||||
"lastName": "نام خانوادگی",
|
||||
"phone": "تلفن",
|
||||
"savePatient": "ذخیره بیمار",
|
||||
"dialogTitle": "بیمار جدید",
|
||||
"searchPlaceholder": "جستجوی بیماران بر اساس نام، تلفن، ایمیل",
|
||||
"loadingPatients": "در حال بارگذاری بیماران...",
|
||||
"noResults": "هیچ بیماری برای این جستجو یافت نشد.",
|
||||
"noContact": "بدون اطلاعات تماس",
|
||||
"selectPatient": "برای مشاهده جزئیات، یک بیمار را انتخاب کنید.",
|
||||
"phoneLabel": "تلفن:",
|
||||
"emailLabel": "ایمیل:",
|
||||
"statusLabel": "وضعیت:",
|
||||
"statusActive": "فعال",
|
||||
"statusInactive": "غیرفعال",
|
||||
"emptyValue": "-"
|
||||
},
|
||||
"appointments": {
|
||||
"title": "نوبتها",
|
||||
"subtitle": "یک بیمار را جستجو کنید، تاریخ را انتخاب کنید، سپس روی یک زمان در زیر ارائهدهنده کلیک کنید تا رزرو کنید.",
|
||||
"loadingSchedule": "در حال بارگذاری برنامه...",
|
||||
"infoPastViewOnly": "نوبتهای گذشته فقط قابل مشاهده هستند.",
|
||||
"infoSelectPatient": "قبل از رزرو، یک بیمار را انتخاب کنید.",
|
||||
"errorOutsideHours": "این نوبت خارج از ساعات کاری فعلی ارائهدهنده است و قابل ویرایش نیست.",
|
||||
"successUpdated": "نوبت بهروزرسانی شد.",
|
||||
"successSaved": "نوبت ذخیره شد.",
|
||||
"errorUpdate": "بهروزرسانی نوبت امکانپذیر نبود.",
|
||||
"errorSave": "ذخیره نوبت امکانپذیر نبود.",
|
||||
"confirmRemove": "این نوبت حذف شود؟",
|
||||
"successRemoved": "نوبت حذف شد.",
|
||||
"errorDelete": "حذف نوبت امکانپذیر نبود.",
|
||||
"errorLoadSchedule": "بارگذاری برنامه ناموفق بود.",
|
||||
"successPatientSaved": "بیمار {firstName} {lastName} ذخیره شد.",
|
||||
"searchPlaceholder": "جستجوی بیماران موجود",
|
||||
"searching": "در حال جستجو...",
|
||||
"searchHint": "برای جستجوی بیماران بر اساس نام، تلفن یا ایمیل، تایپ کنید.",
|
||||
"noPermissionAdd": "شما مجوز اضافه کردن بیمار را ندارید.",
|
||||
"editTitle": "ویرایش نوبت",
|
||||
"newTitle": "نوبت جدید",
|
||||
"providerLabel": "ارائهدهنده:",
|
||||
"patientLabel": "بیمار",
|
||||
"startLabel": "شروع",
|
||||
"endLabel": "پایان",
|
||||
"purposeLabel": "هدف",
|
||||
"errorSelectPatient": "ابتدا یک بیمار را انتخاب کنید.",
|
||||
"errorEndAfterStart": "زمان پایان باید بعد از زمان شروع باشد.",
|
||||
"errorPastSchedule": "نمیتوان در گذشته زمانبندی کرد.",
|
||||
"errorPastViewOnly": "نوبتهای گذشته فقط قابل مشاهده هستند.",
|
||||
"errorMissingDetails": "جزئیات نوبت وجود ندارد.",
|
||||
"noProviders": "هیچ ارائهدهندهای در دسترس نیست. برای مشاهده ستونها در اینجا، کارکنانی با دسترسی ویرایش درمان اضافه کنید.",
|
||||
"noWorkingHours": "ساعات کاری برای این روز پیکربندی نشده است. ساعات کاری ارائهدهنده را در مدیریت کارکنان تنظیم کنید.",
|
||||
"noHoursSet": "ساعتی تنظیم نشده",
|
||||
"offToday": "امروز تعطیل است",
|
||||
"slotOffToday": "ارائهدهنده امروز تعطیل است",
|
||||
"slotHoursNotConfigured": "ساعات کاری پیکربندی نشده است",
|
||||
"slotOutsideHours": "خارج از ساعات کاری",
|
||||
"slotCannotCreate": "شما نمیتوانید نوبت ایجاد کنید",
|
||||
"slotBookAt": "رزرو {time}",
|
||||
"outsideHoursBlocked": "خارج از ساعات کاری — ویرایش مسدود شده است",
|
||||
"overlappingChoose": "{count} همپوشانی — برای انتخاب کلیک کنید",
|
||||
"overlapping": "{count} همپوشانی",
|
||||
"legend": "راهنما",
|
||||
"overlappingTitle": "نوبتهای همپوشانی ({count})",
|
||||
"purposeConsultation": "مشاوره",
|
||||
"purposeFilling": "پر کردن",
|
||||
"purposeEndo": "درمان ریشه",
|
||||
"purposeVisit": "ویزیت",
|
||||
"purposeHygiene": "بهداشت"
|
||||
},
|
||||
"treatment": {
|
||||
"loading": "در حال بارگذاری...",
|
||||
"noPermissionTitle": "فضای کاری درمان",
|
||||
"noPermissionBody": "شما مجوز مشاهده برگه درمان برای این سازمان را ندارید.",
|
||||
"title": "درمان",
|
||||
"subtitleEdit": "پروندههای نوبتهای خود را مستند کنید، پیشنویسها را ذخیره کنید و کار را به سازمانهای مرتبط ارسال کنید.",
|
||||
"subtitleReadOnly": "دسترسی فقط خواندنی — میتوانید نوبتها و تاریخچه درمان را بررسی کنید اما نمیتوانید ویرایش کنید.",
|
||||
"pastDayNotice": "روزهای گذشته فقط قابل مشاهده هستند. میتوانید نوبتها و تاریخچه را بررسی کنید، اما پروندههای درمانی قابل اضافه یا تغییر نیستند.",
|
||||
"selectedPatient": "بیمار انتخاب شده",
|
||||
"purposeLabel": "هدف:",
|
||||
"loadingAppointments": "در حال بارگذاری نوبتها...",
|
||||
"selectDayWithAppointment": "روزی را انتخاب کنید که حداقل یک نوبت داشته باشد.",
|
||||
"confirmDiscard": "تغییرات ذخیرهنشده دارید. آنها را کنار بگذارید و ادامه دهید؟",
|
||||
"successDraftSaved": "پیشنویس درمان ذخیره شد.",
|
||||
"errorChooseOrg": "حداقل یک سازمان فعال را برای ارسال این پرونده انتخاب کنید.",
|
||||
"successCaseSent": "پرونده به سازمانهای انتخاب شده ارسال شد.",
|
||||
"successFilesUploaded": "{count} فایل با موفقیت بارگذاری شد.",
|
||||
"errorLoadAppointments": "بارگذاری نوبتها ناموفق بود.",
|
||||
"errorLoadOrgs": "بارگذاری سازمانهای مرتبط ناموفق بود.",
|
||||
"errorLoadHistory": "بارگذاری تاریخچه درمان ناموفق بود.",
|
||||
"errorLoadDraft": "بارگذاری پیشنویس درمان ناموفق بود.",
|
||||
"errorUpload": "بارگذاری پیوستها ناموفق بود.",
|
||||
"errorSaveDraft": "ذخیره پیشنویس درمان ناموفق بود.",
|
||||
"errorSendCase": "ارسال پرونده ناموفق بود.",
|
||||
"errorCaseMustSave": "پرونده باید قبل از ارسال ذخیره شود.",
|
||||
"draftTitle": "پیشنویس · {patientName}",
|
||||
"hiddenMessage": "نوبتها پنهان هستند.",
|
||||
"showAppointments": "نمایش نوبتها",
|
||||
"appointmentsTitle": "نوبتهای من",
|
||||
"hideAppointments": "پنهان کردن نوبتها",
|
||||
"emptyDay": "هیچ نوبتی به شما در این روز اختصاص داده نشده است.",
|
||||
"casesTitle": "پروندههای درمانی",
|
||||
"casesSubtitle": "هر پرونده دارای دندانها، یادداشتها، پیوستها و مقصدهای ارسال خود است.",
|
||||
"addCase": "افزودن پرونده",
|
||||
"caseLabel": "پرونده {n}",
|
||||
"comments": "نظرات",
|
||||
"commentsPlaceholder": "یادداشتهای بالینی این پرونده را بنویسید...",
|
||||
"treatmentType": "نوع درمان",
|
||||
"typeConsultation": "مشاوره",
|
||||
"typeFilling": "پر کردن",
|
||||
"typeEndo": "درمان ریشه",
|
||||
"typeVisit": "ویزیت",
|
||||
"typeHygiene": "بهداشت",
|
||||
"attachments": "پیوستها",
|
||||
"attachFiles": "فایلها را برای این پرونده درمانی پیوست کنید",
|
||||
"chooseFiles": "انتخاب فایلها",
|
||||
"sendToOrgs": "ارسال این پرونده به سازمانهای مرتبط",
|
||||
"searchOrgsPlaceholder": "جستجوی سازمانهای فعال...",
|
||||
"recent": "اخیر:",
|
||||
"noOrgMatch": "هیچ سازمان فعالی با جستجوی شما مطابقت ندارد.",
|
||||
"sendThisCase": "ارسال این پرونده",
|
||||
"saveDraft": "ذخیره پیشنویس درمان",
|
||||
"unsavedChanges": "تغییرات ذخیرهنشده",
|
||||
"draftSaved": "پیشنویس ذخیره شد",
|
||||
"sendSavesFirst": "ارسال برای هر پرونده به صورت جداگانه است و ابتدا به طور خودکار ذخیره میکند.",
|
||||
"historyTitle": "درمانهای قبلی",
|
||||
"historySubtitle": "درمانهای تکمیل شده برای این بیمار. هر پرونده به طور جداگانه فهرست شده است.",
|
||||
"loadingHistory": "در حال بارگذاری تاریخچه...",
|
||||
"historyEmpty": "هیچ درمان قبلی برای این بیمار وجود ندارد.",
|
||||
"statusLabel": "وضعیت:",
|
||||
"historyCaseLabel": "پرونده {n} · {type}",
|
||||
"teethLabel": "دندانها:",
|
||||
"teethNone": "هیچکدام انتخاب نشده",
|
||||
"reviewDetails": "بررسی جزئیات",
|
||||
"previewTitle": "پیشنمایش درمان",
|
||||
"previewDraft": "پیشنمایش پیشنویس فعلی",
|
||||
"selectAppointment": "یک نوبت را برای پیشنمایش پیشنویس آن انتخاب کنید.",
|
||||
"caseCount": "{n} پرونده",
|
||||
"attachmentCount": "{n} پیوست",
|
||||
"caseSummary": "پرونده {n}: {type}",
|
||||
"teethPrefix": "· دندانها",
|
||||
"moreCases": "+ {n} پرونده دیگر",
|
||||
"previewDialogTitle": "پیشنمایش درمان",
|
||||
"previewDialogSubtitle": "بررسی پروندهها، پیوستها و مقصدهای ارسال.",
|
||||
"noCases": "هیچ پروندهای در این درمان وجود ندارد.",
|
||||
"typeLabel": "نوع:",
|
||||
"commentsLabel": "نظرات:",
|
||||
"commentsEmpty": "نظرات: —",
|
||||
"attachFilesShort": "پیوست فایلها",
|
||||
"sendCase": "ارسال این پرونده",
|
||||
"sendToLinkedOrgs": "ارسال به سازمانهای مرتبط",
|
||||
"noActiveOrgs": "هیچ سازمان مرتبط فعالی وجود ندارد.",
|
||||
"confirmSend": "تأیید ارسال",
|
||||
"toothChartTitle": "نمودار دندانها FDI",
|
||||
"toothChartHint": "برای انتخاب چندگانه روی دندانها ضربه بزنید. برای پرونده فعال اعمال میشود.",
|
||||
"selectedLabel": "انتخاب شده:",
|
||||
"selectedEmpty": "—",
|
||||
"upperArch": "قوس بالا",
|
||||
"lowerArch": "قوس پایین",
|
||||
"toothAria": "دندان FDI {fdi}",
|
||||
"toothSelectedSuffix": "، انتخاب شده",
|
||||
"sentToAt": "ارسال به {orgName} در {datetime}",
|
||||
"fallbackOrgName": "سازمان"
|
||||
},
|
||||
"organizations": {
|
||||
"loadingOrganization": "در حال بارگذاری سازمان...",
|
||||
"subtitle": "سازمانها را جستجو کنید، درخواست اتصال به حسابهای موجود ارسال کنید، یا اگر هنوز در DyoLink نیستند، لینک دعوت ارسال کنید.",
|
||||
"invitationHistory": "تاریخچه دعوتنامهها",
|
||||
"searchPlaceholder": "جستجوی {counterpart} بر اساس نام، ایمیل یا تلفن...",
|
||||
"backToList": "بازگشت به لیست",
|
||||
"tableOrganization": "سازمان",
|
||||
"tableOwnerEmail": "ایمیل مالک",
|
||||
"tableDate": "تاریخ",
|
||||
"tableStatus": "وضعیت",
|
||||
"tableAction": "عملیات",
|
||||
"emptyConnections": "هنوز هیچ اتصالی وجود ندارد. برای ارسال درخواست اتصال یا لینک دعوت، جستجو کنید.",
|
||||
"statusInvitationPending": "دعوتنامه در انتظار",
|
||||
"statusConnectionPending": "درخواست اتصال در انتظار",
|
||||
"statusConnected": "متصل",
|
||||
"statusDeclined": "درخواست اتصال رد شد",
|
||||
"statusFound": "یافت شد",
|
||||
"statusToday": "امروز",
|
||||
"acceptRequest": "پذیرش درخواست اتصال",
|
||||
"declineRequest": "رد درخواست اتصال",
|
||||
"removeConnection": "قطع اتصال",
|
||||
"sendRequest": "ارسال درخواست اتصال",
|
||||
"noDirectoryResults": "هیچ سازمانی در جستجوی دایرکتوری یافت نشد.",
|
||||
"hideInvitationFields": "پنهان کردن فیلدهای دعوت",
|
||||
"sendInvitationLink": "ارسال لینک دعوت",
|
||||
"counterpartNameLabel": "نام {counterpart}",
|
||||
"ownerEmailLabel": "ایمیل مالک",
|
||||
"sendInvitation": "ارسال دعوتنامه",
|
||||
"successConnectionSent": "درخواست اتصال {counterpart} ارسال شد.",
|
||||
"successInviteCreated": "لینک دعوت برای {email} ایجاد شد",
|
||||
"successLinkCopied": "لینک دعوت در کلیپبورد کپی شد.",
|
||||
"successAccepted": "درخواست اتصال پذیرفته شد.",
|
||||
"successDeclined": "درخواست اتصال رد شد.",
|
||||
"successRemoved": "اتصال قطع شد.",
|
||||
"historyTitle": "تاریخچه دعوتنامهها",
|
||||
"loadingHistory": "در حال بارگذاری تاریخچه دعوتنامهها...",
|
||||
"historyEmpty": "هنوز هیچ دعوتنامهای وجود ندارد.",
|
||||
"tableInvitationLink": "لینک دعوت",
|
||||
"statusPending": "دعوتنامه در انتظار",
|
||||
"statusAccepted": "دعوتنامه پذیرفته شد",
|
||||
"statusRejected": "دعوتنامه رد شد",
|
||||
"statusExpired": "دعوتنامه منقضی شد",
|
||||
"copyInvitationLink": "کپی لینک دعوتنامه",
|
||||
"copyInvitationLinkTitle": "کپی لینک دعوتنامه (در صورت نیاز لینک جدیدی تولید میکند)",
|
||||
"selectorTitle": "سازمانها",
|
||||
"selectorSubtitleWithCreate": "یک سازمان را برای ادامه انتخاب کنید، یا یک سازمان جدید ایجاد کنید.",
|
||||
"selectorSubtitleSelectOnly": "یک سازمان را برای ادامه انتخاب کنید.",
|
||||
"createOrganization": "ایجاد سازمان",
|
||||
"createAndContinue": "ایجاد و ادامه",
|
||||
"emptyCanCreate": "هیچ سازمانی یافت نشد. اولین سازمان خود را ایجاد کنید تا ادامه دهید.",
|
||||
"emptyAskOwner": "هیچ سازمانی یافت نشد. از مالک سازمان بخواهید تا شما را دعوت کند.",
|
||||
"continueArrow": "ادامه →",
|
||||
"planLabel": "طرح: {name} • {maxUsers} کاربر",
|
||||
"counterpartClinic": "کلینیک",
|
||||
"counterpartLab": "لابراتوار"
|
||||
},
|
||||
"settings": {
|
||||
"accountTitle": "حساب کاربری",
|
||||
"accountSubtitle": "تنظیمات پروفایل و امنیت برای ورود شما.",
|
||||
"accountPlaceholder": "تغییر رمز عبور و ویرایش پروفایل در مرحله بعدی در اینجا قرار میگیرند (مثلاً فرآیند دعوت، بازنشانی رمز عبور).",
|
||||
"subscriptionsTitle": "اشتراکها",
|
||||
"subscriptionsSubtitle": "طرح و مجوزهای فضای کاری DyoLink شما برای {orgName}. پیگیری درآمد کلینیک و لابراتوار در برگه صورتحساب در نوار کناری قرار دارد.",
|
||||
"noSubscriptionNotice": "این سازمان اشتراک فعالی ندارد. برای شروع فرآیند خرید، یک طرح زیر را انتخاب کنید.",
|
||||
"currentPlan": "طرح فعلی",
|
||||
"planPrice": "قیمت طرح",
|
||||
"seatsUsed": "مجوزهای استفاده شده",
|
||||
"seatsRemaining": "مجوزهای باقیمانده",
|
||||
"daysRemaining": "روزهای باقیمانده",
|
||||
"unlimited": "نامحدود",
|
||||
"unlimitedSeats": "مجوزهای نامحدود",
|
||||
"seatsCount": "{n} مجوز",
|
||||
"pricePerMonth": "${price} / ماه",
|
||||
"noActiveSubscription": "هیچ اشتراک فعالی برای این سازمان وجود ندارد.",
|
||||
"trialEnded": "دوره آزمایشی به پایان رسیده است. زمانی که تسویه حساب در دسترس قرار گرفت، یک طرح انتخاب کنید.",
|
||||
"trialEndsIn": "دوره آزمایشی در {days} روز به پایان میرسد.",
|
||||
"seatsLow": "استفاده از مجوزها برای این سازمان بالا است.",
|
||||
"choosePlanIntro": "یک طرح را برای ادامه انتخاب کنید. یکپارچهسازی خرید هنوز فعال نیست، بنابراین این مرحله فقط مرحله انتخاب را آماده میکند.",
|
||||
"planSolo": "انفرادی",
|
||||
"planSmall": "کوچک",
|
||||
"planMedium": "متوسط",
|
||||
"planLarge": "بزرگ",
|
||||
"planEnterprise": "سازمانی",
|
||||
"startPurchase": "شروع فرآیند خرید",
|
||||
"purchaseNotice": "جریان خرید به زودی فعال میشود. {plan} انتخاب شده و برای راهاندازی تسویه حساب آماده است."
|
||||
},
|
||||
"schedule": {
|
||||
"defaultLabel": "تاریخ برنامه",
|
||||
"previousDay": "روز قبل",
|
||||
"nextDay": "روز بعد",
|
||||
"chooseDate": "انتخاب تاریخ برنامه",
|
||||
"year": "سال",
|
||||
"month": "ماه",
|
||||
"day": "روز",
|
||||
"monthJanuary": "ژانویه",
|
||||
"monthFebruary": "فوریه",
|
||||
"monthMarch": "مارس",
|
||||
"monthApril": "آوریل",
|
||||
"monthMay": "مه",
|
||||
"monthJune": "ژوئن",
|
||||
"monthJuly": "ژوئیه",
|
||||
"monthAugust": "اوت",
|
||||
"monthSeptember": "سپتامبر",
|
||||
"monthOctober": "اکتبر",
|
||||
"monthNovember": "نوامبر",
|
||||
"monthDecember": "دسامبر"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,110 +1,566 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "DyoLink",
|
||||
"loading": "Loading...",
|
||||
"loadingApp": "Loading app...",
|
||||
"loadingWorkspace": "Loading workspace...",
|
||||
"continue": "Continue",
|
||||
"back": "Back",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel"
|
||||
"loading": "Laden...",
|
||||
"loadingApp": "Applicatie laden...",
|
||||
"loadingWorkspace": "Werkruimte laden...",
|
||||
"continue": "Doorgaan",
|
||||
"back": "Terug",
|
||||
"save": "Opslaan",
|
||||
"cancel": "Annuleren",
|
||||
"delete": "Verwijderen",
|
||||
"edit": "Bewerken",
|
||||
"next": "Volgende",
|
||||
"dismiss": "Afwijzen",
|
||||
"or": "Of",
|
||||
"and": "en",
|
||||
"close": "Sluiten",
|
||||
"redirecting": "Bezig met doorsturen...",
|
||||
"readOnlyAccess": "Alleen-lezen toegang voor deze organisatie.",
|
||||
"errorGeneric": "Er is iets misgegaan",
|
||||
"loadingEllipsis": "Laden...",
|
||||
"search": "Zoeken",
|
||||
"action": "Actie",
|
||||
"status": "Status",
|
||||
"name": "Naam",
|
||||
"email": "E-mail",
|
||||
"date": "Datum",
|
||||
"organization": "Organisatie",
|
||||
"backToApp": "← Terug naar app",
|
||||
"copied": "Gekopieerd",
|
||||
"copyLink": "Link kopiëren",
|
||||
"none": "Geen",
|
||||
"preview": "Voorbeeld"
|
||||
},
|
||||
"language": {
|
||||
"label": "Language",
|
||||
"selectLanguage": "Select language",
|
||||
"en": "English",
|
||||
"fa": "Persian",
|
||||
"nl": "Dutch"
|
||||
"label": "Taal",
|
||||
"selectLanguage": "Selecteer taal",
|
||||
"en": "Engels",
|
||||
"fa": "Perzisch",
|
||||
"nl": "Nederlands"
|
||||
},
|
||||
"theme": {
|
||||
"switchToLight": "Switch to light mode",
|
||||
"switchToDark": "Switch to dark mode",
|
||||
"lightMode": "Light mode",
|
||||
"darkMode": "Dark mode"
|
||||
"switchToLight": "Overschakelen naar lichte modus",
|
||||
"switchToDark": "Overschakelen naar donkere modus",
|
||||
"lightMode": "Lichte modus",
|
||||
"darkMode": "Donkere modus"
|
||||
},
|
||||
"nav": {
|
||||
"dashboard": "Dashboard",
|
||||
"staff": "Staff",
|
||||
"patients": "Patients",
|
||||
"appointment": "Appointment",
|
||||
"treatment": "Treatment",
|
||||
"billing": "Billing",
|
||||
"reports": "Reports",
|
||||
"clinics": "Clinics",
|
||||
"labs": "Labs"
|
||||
"staff": "Medewerkers",
|
||||
"patients": "Patiënten",
|
||||
"appointment": "Afspraak",
|
||||
"treatment": "Behandeling",
|
||||
"billing": "Facturatie",
|
||||
"reports": "Rapporten",
|
||||
"clinics": "Klinieken",
|
||||
"labs": "Laboratoria"
|
||||
},
|
||||
"auth": {
|
||||
"login": "Login",
|
||||
"signIn": "Sign in",
|
||||
"signOut": "Log out",
|
||||
"register": "Register",
|
||||
"startTrial": "Start Trial",
|
||||
"startFreeTrial": "Start Free Trial",
|
||||
"login": "Inloggen",
|
||||
"signIn": "Aanmelden",
|
||||
"signOut": "Uitloggen",
|
||||
"register": "Registreren",
|
||||
"startTrial": "Proefperiode starten",
|
||||
"startFreeTrial": "Gratis proefperiode starten",
|
||||
"dashboard": "Dashboard",
|
||||
"signInTitle": "Sign in to your account",
|
||||
"signInPrompt": "Or {link}",
|
||||
"startTrialLink": "start your free trial",
|
||||
"registerTitle": "Start your 30-day free trial",
|
||||
"registerPrompt": "Already have an account?",
|
||||
"signInLink": "Sign in",
|
||||
"email": "Email address",
|
||||
"password": "Password",
|
||||
"confirmPassword": "Confirm password",
|
||||
"fullName": "Full name",
|
||||
"rememberMe": "Remember me",
|
||||
"forgotPassword": "Forgot your password?",
|
||||
"invalidCredentials": "Invalid email or password",
|
||||
"loginFailed": "Login failed",
|
||||
"registrationFailed": "Registration failed. Please try again.",
|
||||
"startMyFreeTrial": "Start my free trial",
|
||||
"trialIncludes": "Your trial includes:",
|
||||
"trialTeamMembers": "Up to 5 team members",
|
||||
"trialFullAccess": "Full access to all features",
|
||||
"trialNoCard": "30 days free, no credit card required",
|
||||
"termsAgreement": "By signing up, you agree to our {terms} and {privacy}",
|
||||
"termsOfService": "Terms of Service",
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
"signedIn": "Signed in",
|
||||
"switchOrganization": "Switch organization",
|
||||
"subscriptions": "Subscriptions",
|
||||
"account": "Account"
|
||||
"signInTitle": "Meld u aan bij uw account",
|
||||
"signInPrompt": "Of {link}",
|
||||
"startTrialLink": "start uw gratis proefperiode",
|
||||
"registerTitle": "Start uw gratis proefperiode van 30 dagen",
|
||||
"registerPrompt": "Heeft u al een account?",
|
||||
"signInLink": "Aanmelden",
|
||||
"email": "E-mailadres",
|
||||
"password": "Wachtwoord",
|
||||
"confirmPassword": "Bevestig wachtwoord",
|
||||
"fullName": "Volledige naam",
|
||||
"rememberMe": "Onthoud mij",
|
||||
"forgotPassword": "Wachtwoord vergeten?",
|
||||
"invalidCredentials": "Ongeldig e-mailadres of wachtwoord",
|
||||
"loginFailed": "Inloggen mislukt",
|
||||
"registrationFailed": "Registratie mislukt. Probeer het opnieuw.",
|
||||
"startMyFreeTrial": "Start mijn gratis proefperiode",
|
||||
"trialIncludes": "Uw proefperiode omvat:",
|
||||
"trialTeamMembers": "Tot 5 teamleden",
|
||||
"trialFullAccess": "Volledige toegang tot alle functies",
|
||||
"trialNoCard": "30 dagen gratis, geen creditcard vereist",
|
||||
"termsAgreement": "Door u aan te melden gaat u akkoord met onze {terms} en {privacy}",
|
||||
"termsOfService": "Servicevoorwaarden",
|
||||
"privacyPolicy": "Privacybeleid",
|
||||
"signedIn": "Aangemeld",
|
||||
"switchOrganization": "Organisatie wisselen",
|
||||
"subscriptions": "Abonnementen",
|
||||
"account": "Account",
|
||||
"emailPlaceholder": "you@example.com",
|
||||
"passwordPlaceholder": "••••••••",
|
||||
"namePlaceholder": "John Doe",
|
||||
"termsIntro": "Door u te registreren gaat u akkoord met onze",
|
||||
"errorRegistrationFailed": "Registratie mislukt",
|
||||
"errorLoginFailed": "Inloggen mislukt",
|
||||
"errorCreateOrganization": "Organisatie aanmaken mislukt",
|
||||
"acceptInviteTitle": "Uitnodiging accepteren",
|
||||
"loadingInvitation": "Uitnodiging laden...",
|
||||
"invalidInvitationLink": "Ongeldige uitnodigingslink",
|
||||
"invitationAlreadyAccepted": "Deze uitnodiging is al geaccepteerd. U kunt nu inloggen.",
|
||||
"errorLoadInvitation": "Kon uitnodiging niet laden",
|
||||
"organizationLabel": "Organisatie:",
|
||||
"emailLabel": "E-mail:",
|
||||
"nameRequired": "Naam is verplicht",
|
||||
"passwordMinLength8": "Wachtwoord moet minimaal 8 tekens bevatten",
|
||||
"passwordsDoNotMatch": "Wachtwoorden komen niet overeen",
|
||||
"labelName": "Naam",
|
||||
"labelCreatePassword": "Wachtwoord aanmaken",
|
||||
"labelConfirmPassword": "Bevestig wachtwoord",
|
||||
"activateAccount": "Account activeren",
|
||||
"invitationAcceptedRedirect": "Uitnodiging geaccepteerd. Doorsturen naar inloggen...",
|
||||
"errorAcceptInvitation": "Kon uitnodiging niet accepteren",
|
||||
"alreadyHaveAccess": "Heeft u al toegang?",
|
||||
"goToLogin": "Ga naar inloggen",
|
||||
"acceptOrganizationTitle": "Organisatie-uitnodiging accepteren",
|
||||
"alreadyHaveAccount": "Heeft u al een account?",
|
||||
"invitedBy": "Uitgenodigd door:",
|
||||
"ownerEmail": "E-mail eigenaar",
|
||||
"activateOrganization": "Organisatie activeren",
|
||||
"organizationAcceptedRedirect": "Uitnodiging geaccepteerd. Doorsturen naar inloggen...",
|
||||
"stepAccount": "Account",
|
||||
"stepOrganization": "Organisatie",
|
||||
"organizationName": "Organisatienaam",
|
||||
"organizationNamePlaceholder": "Sunshine Tandartspraktijk",
|
||||
"organizationEmail": "Organisatie e-mail",
|
||||
"organizationEmailPlaceholder": "contact@sunshineclinic.com",
|
||||
"organizationType": "Organisatietype",
|
||||
"dentalClinic": "Tandartspraktijk",
|
||||
"dentalLab": "Tandtechnisch Laboratorium"
|
||||
},
|
||||
"landing": {
|
||||
"heroTitle": "Connect Dental Clinics & Labs",
|
||||
"heroHighlight": "Seamlessly",
|
||||
"heroSubtitle": "Streamline communication between dental professionals. Start with a 30-day free trial, no credit card required.",
|
||||
"featureClinicsTitle": "For Clinics",
|
||||
"featureClinicsDescription": "Manage patients, appointments, and send cases to labs instantly.",
|
||||
"featureLabsTitle": "For Labs",
|
||||
"featureLabsDescription": "Receive cases, track progress, and communicate with clinics.",
|
||||
"featureTeamTitle": "Team Management",
|
||||
"featureTeamDescription": "Add up to 5 team members during trial. Scale as you grow.",
|
||||
"featureTrialTitle": "30-Day Trial",
|
||||
"featureTrialDescription": "Full access to all features. No credit card required.",
|
||||
"featureRealtimeTitle": "Real-time Updates",
|
||||
"featureRealtimeDescription": "Get instant notifications on case status changes.",
|
||||
"featureSecurityTitle": "Secure & Compliant",
|
||||
"featureSecurityDescription": "HIPAA-compliant with enterprise-grade security.",
|
||||
"footerCopyright": "© 2026 DyoLink. All rights reserved.",
|
||||
"termsAndConditions": "Terms & Conditions"
|
||||
"heroTitle": "Verbind Tandheelkundige Klinieken & Laboratoria",
|
||||
"heroHighlight": "Naadloos",
|
||||
"heroSubtitle": "Stroomlijn de communicatie tussen tandheelkundige professionals. Start met een gratis proefperiode van 30 dagen, zonder creditcard.",
|
||||
"featureClinicsTitle": "Voor Klinieken",
|
||||
"featureClinicsDescription": "Beheer patiënten, afspraken en stuur casussen direct naar laboratoria.",
|
||||
"featureLabsTitle": "Voor Laboratoria",
|
||||
"featureLabsDescription": "Ontvang casussen, volg de voortgang en communiceer met klinieken.",
|
||||
"featureTeamTitle": "Teambeheer",
|
||||
"featureTeamDescription": "Voeg tijdens de proefperiode maximaal 5 teamleden toe. Schaal mee met uw groei.",
|
||||
"featureTrialTitle": "Proefperiode van 30 dagen",
|
||||
"featureTrialDescription": "Volledige toegang tot alle functies. Geen creditcard vereist.",
|
||||
"featureRealtimeTitle": "Realtime Updates",
|
||||
"featureRealtimeDescription": "Ontvang direct meldingen bij statuswijzigingen van casussen.",
|
||||
"featureSecurityTitle": "Veilig & Conform",
|
||||
"featureSecurityDescription": "HIPAA-conform met beveiliging op ondernemingsniveau.",
|
||||
"footerCopyright": "© 2026 DyoLink. Alle rechten voorbehouden.",
|
||||
"termsAndConditions": "Algemene Voorwaarden"
|
||||
},
|
||||
"accountMenu": {
|
||||
"noActiveSubscription": "No active subscription — review Subscriptions",
|
||||
"trialEnded": "Trial ended — review Subscriptions",
|
||||
"trialEndingSoon": "Trial ending soon — review Subscriptions",
|
||||
"seatsLow": "Seats running low — review Subscriptions",
|
||||
"reviewSubscriptions": "Review Subscriptions"
|
||||
"noActiveSubscription": "Geen actief abonnement — bekijk Abonnementen",
|
||||
"trialEnded": "Proefperiode beëindigd — bekijk Abonnementen",
|
||||
"trialEndingSoon": "Proefperiode eindigt binnenkort — bekijk Abonnementen",
|
||||
"seatsLow": "Aantal beschikbare plaatsen raakt op — bekijk Abonnementen",
|
||||
"reviewSubscriptions": "Abonnementen bekijken"
|
||||
},
|
||||
"validation": {
|
||||
"emailInvalid": "Please enter a valid email address",
|
||||
"passwordRequired": "Password is required",
|
||||
"nameMinLength": "Name must be at least 2 characters",
|
||||
"passwordMinLength": "Password must be at least 8 characters",
|
||||
"passwordUppercase": "Password must contain at least one uppercase letter",
|
||||
"passwordNumber": "Password must contain at least one number",
|
||||
"organizationNameMinLength": "Organization name must be at least 2 characters",
|
||||
"organizationEmailInvalid": "Please enter a valid organization email",
|
||||
"organizationTypeRequired": "Please select organization type",
|
||||
"passwordsDoNotMatch": "Passwords don't match"
|
||||
"emailInvalid": "Voer een geldig e-mailadres in",
|
||||
"passwordRequired": "Wachtwoord is verplicht",
|
||||
"nameMinLength": "Naam moet minimaal 2 tekens bevatten",
|
||||
"passwordMinLength": "Wachtwoord moet minimaal 8 tekens bevatten",
|
||||
"passwordUppercase": "Wachtwoord moet minimaal één hoofdletter bevatten",
|
||||
"passwordNumber": "Wachtwoord moet minimaal één cijfer bevatten",
|
||||
"organizationNameMinLength": "Organisatienaam moet minimaal 2 tekens bevatten",
|
||||
"organizationEmailInvalid": "Voer een geldig organisatie-e-mailadres in",
|
||||
"organizationTypeRequired": "Selecteer een organisatietype",
|
||||
"passwordsDoNotMatch": "Wachtwoorden komen niet overeen"
|
||||
},
|
||||
"today": {
|
||||
"welcomeBack": "Welkom terug!!",
|
||||
"noSubscriptionNotice": "Deze organisatie heeft nog geen actief abonnement.",
|
||||
"choosePlanLink": "Kies een abonnement",
|
||||
"noSubscriptionCta": "om het aankoopproces te starten.",
|
||||
"cardTodaysAppointments": "Afspraken van vandaag",
|
||||
"cardActivePatients": "Actieve patiënten",
|
||||
"cardNewLabCase": "Nieuwe laboratoriumcase",
|
||||
"cardTodayInvoices": "Facturen van vandaag"
|
||||
},
|
||||
"staff": {
|
||||
"redirecting": "Bezig met doorsturen...",
|
||||
"title": "Medewerkersbeheer",
|
||||
"subtitle": "Nodig teamleden uit, stel tabbladtoegang in en blijf binnen het limiet van uw abonnementsplaatsen.",
|
||||
"inviteMember": "Lid uitnodigen",
|
||||
"seatsLabel": "Plaatsen:",
|
||||
"unlimitedPlan": "(onbeperkt abonnement)",
|
||||
"seatLimitReached": "Plaatslimiet van het abonnement voor deze organisatie is bereikt.",
|
||||
"noActivePlan": "Geen actief abonnement geselecteerd voor deze organisatie. Kies een abonnementsplan om leden uit te nodigen.",
|
||||
"invitedPending": "Uitnodiging is in afwachting totdat ze de link openen, een wachtwoord instellen en inloggen.",
|
||||
"invitedAccepted": "Uitnodiging is onmiddellijk geaccepteerd.",
|
||||
"inviteLinkHeading": "Uitnodigingslink",
|
||||
"shareLinkHint": "Deel deze link handmatig via SMS of e-mail. Er wordt een nieuwe link gegenereerd als de vorige is verlopen of verloren is gegaan.",
|
||||
"loadingTeam": "Team laden...",
|
||||
"tableName": "Naam",
|
||||
"tableEmail": "E-mail",
|
||||
"tableRole": "Rol",
|
||||
"tableStatus": "Status",
|
||||
"tableAccess": "Toegang",
|
||||
"tableAction": "Actie",
|
||||
"roleOwner": "Eigenaar",
|
||||
"roleStaff": "Medewerker",
|
||||
"statusActive": "Actief",
|
||||
"statusPending": "In afwachting",
|
||||
"statusDisabled": "Uitgeschakeld",
|
||||
"statusExpired": "Verlopen",
|
||||
"allFeatures": "Alle functies",
|
||||
"inviteModalTitle": "Teamlid uitnodigen",
|
||||
"stepOf": "Stap {step} van 2",
|
||||
"permissionView": "Bekijken",
|
||||
"permissionEdit": "Bewerken",
|
||||
"labelEmail": "E-mail",
|
||||
"labelDisplayName": "Weergavenaam",
|
||||
"tabAccess": "Tabbladtoegang",
|
||||
"sendInvite": "Uitnodiging verzenden",
|
||||
"skipForNow": "Nu overslaan",
|
||||
"enableModalTitle": "Teamlid inschakelen",
|
||||
"enableConfirm": "{name} ({email}) inschakelen?",
|
||||
"enableBullet1": "Ze kunnen opnieuw inloggen op deze organisatie met hun bestaande account.",
|
||||
"enableBullet2": "Er wordt geen nieuwe uitnodiging verzonden en er zijn geen gegevens verwijderd terwijl ze waren uitgeschakeld.",
|
||||
"enableBullet3": "Inschakelen gebruikt één plaats in uw abonnement.",
|
||||
"noSeatsAvailable": "Geen plaatsen beschikbaar. Schakel een ander lid uit of upgrade uw abonnement voordat u deze persoon inschakelt.",
|
||||
"enableMemberButton": "Lid inschakelen",
|
||||
"disableModalTitle": "Teamlid uitschakelen",
|
||||
"disableConfirm": "{name} ({email}) uitschakelen?",
|
||||
"disableBullet1": "Ze kunnen niet inloggen op deze organisatie.",
|
||||
"disableBullet2": "Er worden geen gegevens verwijderd.",
|
||||
"disableBullet3": "Uitschakelen maakt één plaats vrij in uw abonnement, zodat u iemand anders kunt uitnodigen.",
|
||||
"disableMemberButton": "Lid uitschakelen",
|
||||
"editModalTitle": "Lid bewerken",
|
||||
"loadingWorkingHours": "Werktijden laden...",
|
||||
"errorLoadStaff": "Medewerkers laden mislukt.",
|
||||
"errorCopyInvite": "Kon uitnodigingslink niet kopiëren.",
|
||||
"errorSendInvite": "Uitnodiging verzenden mislukt.",
|
||||
"errorLoadWorkingHours": "Werktijden laden mislukt.",
|
||||
"successMemberUpdated": "Lid bijgewerkt.",
|
||||
"errorUpdateMember": "Lid bijwerken mislukt.",
|
||||
"errorDeleteNotImplemented": "Verwijderen is nog niet geïmplementeerd.",
|
||||
"successMemberDisabled": "{name} is uitgeschakeld. Er is nu een plaats beschikbaar.",
|
||||
"errorDisableMember": "Lid uitschakelen mislukt.",
|
||||
"successMemberEnabled": "{name} is ingeschakeld en kan opnieuw inloggen.",
|
||||
"errorEnableMember": "Lid inschakelen mislukt.",
|
||||
"successInvited": "{name} ({email}) is uitgenodigd.",
|
||||
"copyInviteLink": "Uitnodigingslink kopiëren",
|
||||
"copyInviteLinkTitle": "Uitnodigingslink kopiëren (genereert indien nodig een nieuwe link)",
|
||||
"enableMemberAria": "Lid inschakelen",
|
||||
"enableMemberTitle": "Lid inschakelen (gebruikt een plaats)",
|
||||
"disableMemberAria": "Lid uitschakelen",
|
||||
"disableMemberTitle": "Lid uitschakelen (maakt een plaats vrij)",
|
||||
"editMemberAria": "Lid bewerken",
|
||||
"deleteMemberAria": "Lid verwijderen",
|
||||
"deleteMemberTitle": "Lid verwijderen (niet geïmplementeerd)",
|
||||
"features": {
|
||||
"featureToday": "Vandaag",
|
||||
"featureStaff": "Medewerkers",
|
||||
"featureOrganizations": "Organisaties",
|
||||
"featureClinics": "Klinieken",
|
||||
"featureLabs": "Laboratoria",
|
||||
"featurePatients": "Patiënten",
|
||||
"featureAppointment": "Afspraak",
|
||||
"featureTreatment": "Behandeling",
|
||||
"featureBilling": "Facturatie",
|
||||
"featureReports": "Rapporten",
|
||||
"noTabAccess": "Geen tabbladtoegang",
|
||||
"readOnlySuffix": "(Alleen lezen)"
|
||||
},
|
||||
"workingHours": {
|
||||
"recommendedTitle": "Werktijden aanbevolen",
|
||||
"recommendedBody": "Medewerkers met bewerkingsrechten voor behandelingen verschijnen als aanbiederkolommen in Afspraken. Stel hun wekelijkse uren in, zodat het rooster de juiste boekbare tijden weergeeft.",
|
||||
"intro": "Stel wekelijkse werktijden in voor deze aanbieder. Het afsprakenrooster gebruikt deze uren om boekbare tijdsloten weer te geven.",
|
||||
"workingDay": "Werkdag",
|
||||
"start": "Start",
|
||||
"end": "Einde",
|
||||
"removeShift": "Dienst verwijderen",
|
||||
"addShift": "Dienst toevoegen",
|
||||
"autoRepeatWeekly": "Deze uren wekelijks herhalen aan het begin van elke week (kopieer door op maandag)",
|
||||
"weekdayMon": "Ma",
|
||||
"weekdayTue": "Di",
|
||||
"weekdayWed": "Wo",
|
||||
"weekdayThu": "Do",
|
||||
"weekdayFri": "Vr",
|
||||
"weekdaySat": "Za",
|
||||
"weekdaySun": "Zo",
|
||||
"validationNeedsShift": "{day} heeft minstens één dienst nodig of moet worden gemarkeerd als vrij.",
|
||||
"validationEndAfterStart": "Eindtijd van dienst op {day} moet na de starttijd liggen.",
|
||||
"validationOverlap": "Diensten op {day} mogen niet overlappen."
|
||||
}
|
||||
},
|
||||
"patients": {
|
||||
"title": "Patiënten",
|
||||
"newPatient": "Nieuwe patiënt",
|
||||
"errorLoadPatients": "Patiënten laden mislukt.",
|
||||
"successPatientSaved": "Patiënt {firstName} {lastName} is succesvol opgeslagen.",
|
||||
"errorSavePatient": "Patiënt opslaan mislukt.",
|
||||
"firstName": "Voornaam",
|
||||
"lastName": "Achternaam",
|
||||
"phone": "Telefoon",
|
||||
"savePatient": "Patiënt opslaan",
|
||||
"dialogTitle": "Nieuwe patiënt",
|
||||
"searchPlaceholder": "Zoek patiënten op naam, telefoon, e-mail",
|
||||
"loadingPatients": "Patiënten laden...",
|
||||
"noResults": "Geen patiënten gevonden voor deze zoekopdracht.",
|
||||
"noContact": "Geen contact",
|
||||
"selectPatient": "Selecteer een patiënt om details te bekijken.",
|
||||
"phoneLabel": "Telefoon:",
|
||||
"emailLabel": "E-mail:",
|
||||
"statusLabel": "Status:",
|
||||
"statusActive": "Actief",
|
||||
"statusInactive": "Inactief",
|
||||
"emptyValue": "-"
|
||||
},
|
||||
"appointments": {
|
||||
"title": "Afspraken",
|
||||
"subtitle": "Zoek een patiënt, kies een datum en klik vervolgens op een tijdslot onder een aanbieder om te boeken.",
|
||||
"loadingSchedule": "Rooster laden...",
|
||||
"infoPastViewOnly": "Afspraken uit het verleden zijn alleen-lezen.",
|
||||
"infoSelectPatient": "Selecteer een patiënt voor het boeken.",
|
||||
"errorOutsideHours": "Deze afspraak valt buiten de huidige werktijden van de aanbieder en kan niet worden bewerkt.",
|
||||
"successUpdated": "Afspraak bijgewerkt.",
|
||||
"successSaved": "Afspraak opgeslagen.",
|
||||
"errorUpdate": "Kon afspraak niet bijwerken.",
|
||||
"errorSave": "Kon afspraak niet opslaan.",
|
||||
"confirmRemove": "Deze afspraak verwijderen?",
|
||||
"successRemoved": "Afspraak verwijderd.",
|
||||
"errorDelete": "Kon afspraak niet verwijderen.",
|
||||
"errorLoadSchedule": "Rooster laden mislukt.",
|
||||
"successPatientSaved": "Patiënt {firstName} {lastName} is opgeslagen.",
|
||||
"searchPlaceholder": "Bestaande patiënten zoeken",
|
||||
"searching": "Zoeken...",
|
||||
"searchHint": "Typ om te zoeken naar patiënten op naam, telefoon of e-mail.",
|
||||
"noPermissionAdd": "U heeft geen toestemming om patiënten toe te voegen.",
|
||||
"editTitle": "Afspraak bewerken",
|
||||
"newTitle": "Nieuwe afspraak",
|
||||
"providerLabel": "Aanbieder:",
|
||||
"patientLabel": "Patiënt",
|
||||
"startLabel": "Start",
|
||||
"endLabel": "Einde",
|
||||
"purposeLabel": "Doel",
|
||||
"errorSelectPatient": "Selecteer eerst een patiënt.",
|
||||
"errorEndAfterStart": "Eindtijd moet na de starttijd liggen.",
|
||||
"errorPastSchedule": "Kan niet in het verleden plannen.",
|
||||
"errorPastViewOnly": "Afspraken uit het verleden zijn alleen-lezen.",
|
||||
"errorMissingDetails": "Ontbrekende afspraakgegevens.",
|
||||
"noProviders": "Geen aanbieders beschikbaar. Voeg medewerkers met bewerkingsrechten voor behandelingen toe om hier kolommen te zien.",
|
||||
"noWorkingHours": "Er zijn geen werktijden geconfigureerd voor deze dag. Stel werktijden van de aanbieder in bij Medewerkersbeheer.",
|
||||
"noHoursSet": "Geen uren ingesteld",
|
||||
"offToday": "Vandaag vrij",
|
||||
"slotOffToday": "Aanbieder is vandaag vrij",
|
||||
"slotHoursNotConfigured": "Werktijden niet geconfigureerd",
|
||||
"slotOutsideHours": "Buiten werktijden",
|
||||
"slotCannotCreate": "U kunt geen afspraken maken",
|
||||
"slotBookAt": "Boeken om {time}",
|
||||
"outsideHoursBlocked": "Buiten werktijden — bewerken geblokkeerd",
|
||||
"overlappingChoose": "{count} overlappend — klik om te kiezen",
|
||||
"overlapping": "{count} overlappend",
|
||||
"legend": "Legenda",
|
||||
"overlappingTitle": "Overlappende afspraken ({count})",
|
||||
"purposeConsultation": "Consult",
|
||||
"purposeFilling": "Vulling",
|
||||
"purposeEndo": "Endo",
|
||||
"purposeVisit": "Bezoek",
|
||||
"purposeHygiene": "Hygiëne"
|
||||
},
|
||||
"treatment": {
|
||||
"loading": "Laden...",
|
||||
"noPermissionTitle": "Behandelwerkruimte",
|
||||
"noPermissionBody": "U heeft geen toestemming om het tabblad Behandeling voor deze organisatie te bekijken.",
|
||||
"title": "Behandeling",
|
||||
"subtitleEdit": "Documenteer casussen voor uw afspraken, sla concepten op en stuur werk naar gekoppelde organisaties.",
|
||||
"subtitleReadOnly": "Alleen-lezen toegang — u kunt afspraken en behandelgeschiedenis bekijken, maar niet bewerken.",
|
||||
"pastDayNotice": "Dagen in het verleden zijn alleen-lezen. U kunt afspraken en geschiedenis bekijken, maar behandelcasussen kunnen niet worden toegevoegd of gewijzigd.",
|
||||
"selectedPatient": "Geselecteerde patiënt",
|
||||
"purposeLabel": "Doel:",
|
||||
"loadingAppointments": "Afspraken laden...",
|
||||
"selectDayWithAppointment": "Selecteer een dag met ten minste één afspraak.",
|
||||
"confirmDiscard": "U heeft niet-opgeslagen wijzigingen. Wilt u deze negeren en doorgaan?",
|
||||
"successDraftSaved": "Behandelconcept opgeslagen.",
|
||||
"errorChooseOrg": "Kies ten minste één actieve organisatie om deze case te verzenden.",
|
||||
"successCaseSent": "Case verzonden naar geselecteerde organisaties.",
|
||||
"successFilesUploaded": "{count} bestand(en) succesvol geüpload.",
|
||||
"errorLoadAppointments": "Afspraken laden mislukt.",
|
||||
"errorLoadOrgs": "Gekoppelde organisaties laden mislukt.",
|
||||
"errorLoadHistory": "Behandelgeschiedenis laden mislukt.",
|
||||
"errorLoadDraft": "Behandelconcept laden mislukt.",
|
||||
"errorUpload": "Bijlagen uploaden mislukt.",
|
||||
"errorSaveDraft": "Behandelconcept opslaan mislukt.",
|
||||
"errorSendCase": "Case verzenden mislukt.",
|
||||
"errorCaseMustSave": "Case moet worden opgeslagen voor verzending.",
|
||||
"draftTitle": "Concept · {patientName}",
|
||||
"hiddenMessage": "Afspraken zijn verborgen.",
|
||||
"showAppointments": "Afspraken tonen",
|
||||
"appointmentsTitle": "Mijn afspraken",
|
||||
"hideAppointments": "Afspraken verbergen",
|
||||
"emptyDay": "Geen afspraken aan u toegewezen op deze dag.",
|
||||
"casesTitle": "Behandelcasussen",
|
||||
"casesSubtitle": "Elke case heeft zijn eigen tanden, notities, bijlagen en verzendbestemmingen.",
|
||||
"addCase": "Case toevoegen",
|
||||
"caseLabel": "Case {n}",
|
||||
"comments": "Opmerkingen",
|
||||
"commentsPlaceholder": "Schrijf klinische notities voor deze case...",
|
||||
"treatmentType": "Behandeltype",
|
||||
"typeConsultation": "consult",
|
||||
"typeFilling": "vulling",
|
||||
"typeEndo": "endo",
|
||||
"typeVisit": "bezoek",
|
||||
"typeHygiene": "hygiëne",
|
||||
"attachments": "Bijlagen",
|
||||
"attachFiles": "Voeg bestanden toe voor deze behandelscase",
|
||||
"chooseFiles": "Kies bestanden",
|
||||
"sendToOrgs": "Verzend deze case naar gekoppelde organisaties",
|
||||
"searchOrgsPlaceholder": "Zoek actieve organisaties...",
|
||||
"recent": "Recent:",
|
||||
"noOrgMatch": "Geen actieve organisatie komt overeen met uw zoekopdracht.",
|
||||
"sendThisCase": "Verzend deze case",
|
||||
"saveDraft": "Behandelconcept opslaan",
|
||||
"unsavedChanges": "Niet-opgeslagen wijzigingen",
|
||||
"draftSaved": "Concept opgeslagen",
|
||||
"sendSavesFirst": "Verzenden is per case en slaat eerst automatisch op.",
|
||||
"historyTitle": "Eerdere behandelingen",
|
||||
"historySubtitle": "Voltooide behandelingen voor deze patiënt. Elke case wordt afzonderlijk weergegeven.",
|
||||
"loadingHistory": "Geschiedenis laden...",
|
||||
"historyEmpty": "Geen eerdere behandelingen voor deze patiënt.",
|
||||
"statusLabel": "Status:",
|
||||
"historyCaseLabel": "Case {n} · {type}",
|
||||
"teethLabel": "Tanden:",
|
||||
"teethNone": "Geen geselecteerd",
|
||||
"reviewDetails": "Details bekijken",
|
||||
"previewTitle": "Behandelvoorbeeld",
|
||||
"previewDraft": "Bekijk huidig concept",
|
||||
"selectAppointment": "Selecteer een afspraak om het concept te bekijken.",
|
||||
"caseCount": "{n} case(s)",
|
||||
"attachmentCount": "{n} bijlage(n)",
|
||||
"caseSummary": "Case {n}: {type}",
|
||||
"teethPrefix": "· Tanden",
|
||||
"moreCases": "+ {n} meer case(s)",
|
||||
"previewDialogTitle": "Behandelvoorbeeld",
|
||||
"previewDialogSubtitle": "Bekijk casussen, bijlagen en verzendbestemmingen.",
|
||||
"noCases": "Geen casussen in deze behandeling.",
|
||||
"typeLabel": "Type:",
|
||||
"commentsLabel": "Opmerkingen:",
|
||||
"commentsEmpty": "Opmerkingen: —",
|
||||
"attachFilesShort": "Bestanden bijvoegen",
|
||||
"sendCase": "Verzend deze case",
|
||||
"sendToLinkedOrgs": "Verzenden naar gekoppelde organisaties",
|
||||
"noActiveOrgs": "Geen actieve gekoppelde organisaties.",
|
||||
"confirmSend": "Bevestig verzending",
|
||||
"toothChartTitle": "FDI-tanddiagram",
|
||||
"toothChartHint": "Tik op tanden om meerdere te selecteren. Geldt voor de actieve case.",
|
||||
"selectedLabel": "Geselecteerd:",
|
||||
"selectedEmpty": "—",
|
||||
"upperArch": "Bovenboog",
|
||||
"lowerArch": "Onderboog",
|
||||
"toothAria": "FDI-tand {fdi}",
|
||||
"toothSelectedSuffix": ", geselecteerd",
|
||||
"sentToAt": "Verzonden naar {orgName} op {datetime}",
|
||||
"fallbackOrgName": "organisatie"
|
||||
},
|
||||
"organizations": {
|
||||
"loadingOrganization": "Organisatie laden...",
|
||||
"subtitle": "Zoek organisaties, stuur verbindingsverzoeken naar bestaande accounts, of uitnodigingslinks wanneer ze nog niet op DyoLink staan.",
|
||||
"invitationHistory": "Uitnodigingsgeschiedenis",
|
||||
"searchPlaceholder": "Zoek {counterpart} op naam, e-mail of telefoon...",
|
||||
"backToList": "Terug naar lijst",
|
||||
"tableOrganization": "Organisatie",
|
||||
"tableOwnerEmail": "E-mail eigenaar",
|
||||
"tableDate": "Datum",
|
||||
"tableStatus": "Status",
|
||||
"tableAction": "Actie",
|
||||
"emptyConnections": "Nog geen verbindingen. Zoek om een verbindingsverzoek of een uitnodigingslink te verzenden.",
|
||||
"statusInvitationPending": "Uitnodiging in afwachting",
|
||||
"statusConnectionPending": "Verbindingsverzoek in afwachting",
|
||||
"statusConnected": "Verbonden",
|
||||
"statusDeclined": "Verbindingsverzoek afgewezen",
|
||||
"statusFound": "Gevonden",
|
||||
"statusToday": "Vandaag",
|
||||
"acceptRequest": "Verbindingsverzoek accepteren",
|
||||
"declineRequest": "Verbindingsverzoek afwijzen",
|
||||
"removeConnection": "Verbinding verwijderen",
|
||||
"sendRequest": "Verbindingsverzoek verzenden",
|
||||
"noDirectoryResults": "Geen organisatie gevonden in directoryzoekopdracht.",
|
||||
"hideInvitationFields": "Uitnodigingsvelden verbergen",
|
||||
"sendInvitationLink": "Uitnodigingslink verzenden",
|
||||
"counterpartNameLabel": "Naam {counterpart}",
|
||||
"ownerEmailLabel": "E-mail eigenaar",
|
||||
"sendInvitation": "Uitnodiging verzenden",
|
||||
"successConnectionSent": "Verbindingsverzoek voor {counterpart} verzonden.",
|
||||
"successInviteCreated": "Uitnodigingslink aangemaakt voor {email}",
|
||||
"successLinkCopied": "Uitnodigingslink gekopieerd naar klembord.",
|
||||
"successAccepted": "Verbindingsverzoek geaccepteerd.",
|
||||
"successDeclined": "Verbindingsverzoek afgewezen.",
|
||||
"successRemoved": "Verbinding verwijderd.",
|
||||
"historyTitle": "Uitnodigingsgeschiedenis",
|
||||
"loadingHistory": "Uitnodigingsgeschiedenis laden...",
|
||||
"historyEmpty": "Nog geen uitnodigingen.",
|
||||
"tableInvitationLink": "Uitnodigingslink",
|
||||
"statusPending": "Uitnodiging in afwachting",
|
||||
"statusAccepted": "Uitnodiging geaccepteerd",
|
||||
"statusRejected": "Uitnodiging afgewezen",
|
||||
"statusExpired": "Uitnodiging verlopen",
|
||||
"copyInvitationLink": "Uitnodigingslink kopiëren",
|
||||
"copyInvitationLinkTitle": "Uitnodigingslink kopiëren (genereert indien nodig een nieuwe link)",
|
||||
"selectorTitle": "Organisaties",
|
||||
"selectorSubtitleWithCreate": "Selecteer een organisatie om door te gaan, of maak een nieuwe aan.",
|
||||
"selectorSubtitleSelectOnly": "Selecteer een organisatie om door te gaan.",
|
||||
"createOrganization": "Organisatie aanmaken",
|
||||
"createAndContinue": "Aanmaken en doorgaan",
|
||||
"emptyCanCreate": "Geen organisaties gevonden. Maak uw eerste organisatie aan om door te gaan.",
|
||||
"emptyAskOwner": "Geen organisaties gevonden. Vraag een organisatie-eigenaar om u uit te nodigen.",
|
||||
"continueArrow": "Doorgaan →",
|
||||
"planLabel": "Plan: {name} • {maxUsers} gebruikers",
|
||||
"counterpartClinic": "Kliniek",
|
||||
"counterpartLab": "Laboratorium"
|
||||
},
|
||||
"settings": {
|
||||
"accountTitle": "Account",
|
||||
"accountSubtitle": "Profiel- en beveiligingsinstellingen voor uw login.",
|
||||
"accountPlaceholder": "Wachtwoordwijziging en profielbewerking worden hierna hier aangesloten (bijv. uitnodigingsflow, wachtwoord herstellen).",
|
||||
"subscriptionsTitle": "Abonnementen",
|
||||
"subscriptionsSubtitle": "Uw DyoLink-werkruimteplan en plaatsen voor {orgName}. Kliniek- en laboratoriuminkomsten blijven onder het tabblad Facturatie in de zijbalk.",
|
||||
"noSubscriptionNotice": "Deze organisatie heeft geen actief abonnement. Selecteer hieronder een abonnement om het aankoopproces te starten.",
|
||||
"currentPlan": "Huidig abonnement",
|
||||
"planPrice": "Abonnementsprijs",
|
||||
"seatsUsed": "Plaatsen gebruikt",
|
||||
"seatsRemaining": "Plaatsen over",
|
||||
"daysRemaining": "Dagen over",
|
||||
"unlimited": "Onbeperkt",
|
||||
"unlimitedSeats": "Onbeperkte plaatsen",
|
||||
"seatsCount": "{n} plaatsen",
|
||||
"pricePerMonth": "${price} / maand",
|
||||
"noActiveSubscription": "Geen actief abonnement voor deze organisatie.",
|
||||
"trialEnded": "Proefperiode is beëindigd. Kies een abonnement wanneer afrekenen beschikbaar is.",
|
||||
"trialEndsIn": "Proefperiode eindigt over {days} dag(en).",
|
||||
"seatsLow": "Plaatsgebruik is hoog voor deze organisatie.",
|
||||
"choosePlanIntro": "Kies een abonnement om door te gaan. Aankoopintegratie is nog niet actief, dus dit bereidt momenteel alleen de selectiestap voor.",
|
||||
"planSolo": "Solo",
|
||||
"planSmall": "Klein",
|
||||
"planMedium": "Middel",
|
||||
"planLarge": "Groot",
|
||||
"planEnterprise": "Onderneming",
|
||||
"startPurchase": "Aankoopproces starten",
|
||||
"purchaseNotice": "Aankoopstroom wordt binnenkort ingeschakeld. {plan} is geselecteerd en klaar voor afrekenconfiguratie."
|
||||
},
|
||||
"schedule": {
|
||||
"defaultLabel": "Roosterdatum",
|
||||
"previousDay": "Vorige dag",
|
||||
"nextDay": "Volgende dag",
|
||||
"chooseDate": "Kies roosterdatum",
|
||||
"year": "Jaar",
|
||||
"month": "Maand",
|
||||
"day": "Dag",
|
||||
"monthJanuary": "Januari",
|
||||
"monthFebruary": "Februari",
|
||||
"monthMarch": "Maart",
|
||||
"monthApril": "April",
|
||||
"monthMay": "Mei",
|
||||
"monthJune": "Juni",
|
||||
"monthJuly": "Juli",
|
||||
"monthAugust": "Augustus",
|
||||
"monthSeptember": "September",
|
||||
"monthOctober": "Oktober",
|
||||
"monthNovember": "November",
|
||||
"monthDecember": "December"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user