@adminiumjs/app-clinic 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/customer/assets/App-DdIi94eM.js +1 -0
  2. package/customer/assets/embed-D9WnNWH8.js +1 -0
  3. package/customer/assets/icons-D7ArAIOl.js +1 -0
  4. package/customer/assets/index-CQI0fglh.css +1 -0
  5. package/customer/assets/index-re5HI07A.js +2 -0
  6. package/customer/assets/react-Ck9fDrdd.js +9 -0
  7. package/customer/assets/store-D7cmlyqr.js +1 -0
  8. package/customer/assets/surface-nav-6BkCPZCf.js +1 -0
  9. package/customer/assets/urlSync-DEafH1yc.js +1 -0
  10. package/customer/favicon.svg +18 -0
  11. package/customer/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
  12. package/customer/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  13. package/customer/fonts/manrope-latin-ext-wght-normal.woff2 +0 -0
  14. package/customer/fonts/manrope-latin-wght-normal.woff2 +0 -0
  15. package/customer/index.html +20 -0
  16. package/customer/surface.json +45 -0
  17. package/manifest.json +501 -0
  18. package/package.json +11 -0
  19. package/staff/assets/App-ijJtS1to.js +1 -0
  20. package/staff/assets/calendar-B59f3S_A.js +1 -0
  21. package/staff/assets/embed-D9WnNWH8.js +1 -0
  22. package/staff/assets/icons-BU1Aax3i.js +1 -0
  23. package/staff/assets/index-CqPaHjl7.js +8 -0
  24. package/staff/assets/index-DXzmd8KH.css +1 -0
  25. package/staff/assets/react-3MWIyadV.js +9 -0
  26. package/staff/assets/registry-EirlpZlW.js +1 -0
  27. package/staff/assets/store-D_4Keuh8.js +1 -0
  28. package/staff/assets/surface-nav-6BkCPZCf.js +1 -0
  29. package/staff/assets/urlSync-DqVGf0-x.js +1 -0
  30. package/staff/favicon.svg +18 -0
  31. package/staff/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
  32. package/staff/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  33. package/staff/fonts/manrope-latin-ext-wght-normal.woff2 +0 -0
  34. package/staff/fonts/manrope-latin-wght-normal.woff2 +0 -0
  35. package/staff/index.html +20 -0
  36. package/staff/surface.json +107 -0
@@ -0,0 +1,8 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/App-ijJtS1to.js","assets/icons-BU1Aax3i.js","assets/store-D_4Keuh8.js","assets/calendar-B59f3S_A.js","assets/embed-D9WnNWH8.js","assets/react-3MWIyadV.js","assets/registry-EirlpZlW.js"])))=>i.map(i=>d[i]);
2
+ import{a as S}from"./icons-BU1Aax3i.js";import{r as oe}from"./react-3MWIyadV.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))i(n);new MutationObserver(n=>{for(const a of n)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function o(n){const a={};return n.integrity&&(a.integrity=n.integrity),n.referrerPolicy&&(a.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?a.credentials="include":n.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(n){if(n.ep)return;n.ep=!0;const a=o(n);fetch(n.href,a)}})();const ie="modulepreload",se=function(e){return"/apps/clinic/staff/"+e},U={},b=function(t,o,i){let n=Promise.resolve();if(o&&o.length>0){let g=function(p){return Promise.all(p.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),l=s?.nonce||s?.getAttribute("nonce");n=g(o.map(p=>{if(p=se(p),p in U)return;U[p]=!0;const u=p.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${f}`))return;const y=document.createElement("link");if(y.rel=u?"stylesheet":ie,u||(y.as="script"),y.crossOrigin="",y.href=p,l&&y.setAttribute("nonce",l),document.head.appendChild(y),u)return new Promise((h,c)=>{y.addEventListener("load",h),y.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${p}`)))})}))}function a(s){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=s,window.dispatchEvent(l),!l.defaultPrevented)throw s}return n.then(s=>{for(const l of s||[])l.status==="rejected"&&a(l.reason);return t().catch(a)})};var O={exports:{}},P={};var K;function re(){if(K)return P;K=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function o(i,n,a){var s=null;if(a!==void 0&&(s=""+a),n.key!==void 0&&(s=""+n.key),"key"in n){a={};for(var l in n)l!=="key"&&(a[l]=n[l])}else a=n;return n=a.ref,{$$typeof:e,type:i,key:s,ref:n!==void 0?n:null,props:a}}return P.Fragment=t,P.jsx=o,P.jsxs=o,P}var $;function de(){return $||($=1,O.exports=re()),O.exports}var I=de(),ce=oe();const E={"en-US":{tag:"en-US",native:"English (US)",dir:"ltr"},"de-DE":{tag:"de-DE",native:"Deutsch",dir:"ltr"},"fr-FR":{tag:"fr-FR",native:"Français",dir:"ltr"},"cs-CZ":{tag:"cs-CZ",native:"Čeština",dir:"ltr"},"da-DK":{tag:"da-DK",native:"Dansk",dir:"ltr"},"zh-CN":{tag:"zh-CN",native:"简体中文",dir:"ltr"},"zh-TW":{tag:"zh-TW",native:"繁體中文",dir:"ltr"},"ar-EG":{tag:"ar-EG",native:"العربية (مصر)",dir:"rtl"}},R=Object.keys(E),N="en-US";function M(e){return typeof e=="string"&&e in E}function le(e){return E[e].dir}function ue(e){for(const t of e){if(M(t))return t;const o=t.toLowerCase();if(o.startsWith("zh"))return/hant|tw|hk|mo/.test(o)?"zh-TW":"zh-CN";const i=o.split("-")[0],n=R.find(a=>a.toLowerCase().split("-")[0]===i);if(n)return n}return N}const me={"chrome.brand":"Rowan Health","chrome.brand.desk":"Clinic desk","chrome.brand.site":"Neighbourhood practice","chrome.skipToContent":"Skip to content","chrome.menu.open":"Open the menu","chrome.menu.close":"Close the menu","chrome.search.label":"Search patients by name","chrome.search.placeholder":"Search patients…","chrome.search.empty":"Nobody matches “{query}”.","chrome.search.patients":"Patients","chrome.nav.daysheet":"Day sheet","chrome.nav.waiting":"Waiting room","chrome.nav.patients":"Patients","chrome.nav.accounts":"Accounts","chrome.nav.recalls":"Recalls","chrome.nav.settings":"Practice settings","chrome.nav.book":"Book","chrome.nav.myvisits":"My visits","chrome.nav.findus":"Find us","chrome.dock.title":"Demo controls","chrome.dock.persona":"Persona","chrome.dock.patient":"Patient","chrome.dock.clinic":"Clinic","chrome.dock.clock":"Clock","chrome.dock.advance":"+15 min","chrome.dock.advance.label":"Move the demo clock on fifteen minutes","chrome.dock.theme":"Theme","chrome.dock.theme.light":"Switch to the light theme","chrome.dock.theme.dark":"Switch to the dark theme","chrome.dock.language":"Language","chrome.dock.reset":"Reset the demo","chrome.dock.collapse":"Hide the demo controls","chrome.dock.expand":"Show the demo controls","chrome.utc.notice":"Dates shown in UTC","chrome.utc.why":"This connection has no timezone set in Adminium, so dates render in UTC instead of the business's zone.","chrome.zone.notice":"Dates shown in {zone}","chrome.zone.why":"This zone came from the server running Adminium, not from anyone here. Confirm it on the connection (Connections → this database) if it is the business's zone.","chrome.footer.copy":"© 2026 Rowan Health. A demo clinic desk shipped with Adminium.","chrome.footer.chip":"adminium.dev/demo/clinic-desk","chrome.action.open":"Open","chrome.action.cancel":"Cancel","chrome.action.close":"Close","chrome.action.back":"Back","chrome.action.done":"Done","chrome.action.confirm":"Confirm","chrome.action.keep":"Keep it","chrome.action.pay":"Pay","chrome.action.more":"More actions","chrome.mins":"{count} min|{count} min","chrome.hrs":"{count} hr|{count} hr","chrome.days":"{count} day|{count} days","chrome.years":"{count} year old|{count} years old","chrome.rel.today":"Today","chrome.rel.yesterday":"Yesterday","chrome.rel.tomorrow":"Tomorrow","chrome.rel.daysAgo":"{count} day ago|{count} days ago","chrome.rel.inDays":"in {count} day|in {count} days","chrome.status.booked":"Booked","chrome.status.checked_in":"Checked in","chrome.status.roomed":"Roomed","chrome.status.with_clinician":"With clinician","chrome.status.ready":"Ready to go","chrome.status.done":"Seen","chrome.status.no_show":"Did not arrive","chrome.status.cancelled":"Cancelled","chrome.status.late":"Late cancellation","chrome.toast.dismiss":"Dismiss","chrome.toast.booked":"Booked. Your reference is {ref}.","chrome.toast.paid":"Thank you — {amount} paid.","chrome.toast.atdesk":"Noted. You can settle it when you arrive.","chrome.toast.calendar":"In a real practice this would drop the visit into your calendar.","chrome.toast.checkedIn":"{name} is checked in.","chrome.toast.advanced":"{name}: {status}.","chrome.toast.left":"{name} has left.","chrome.toast.noShow":"{name} marked as did not arrive.","chrome.toast.cancelled":"{ref} cancelled.","chrome.toast.lateCancelled":"{ref} cancelled inside 24 hours.","chrome.toast.payment":"{amount} taken from {name}.","chrome.toast.prefilled":"Day sheet ready for {name}.","chrome.toast.reschedule":"Pick a new time for {name}.","chrome.toast.clock":"The clock now reads {time}.","chrome.toast.reset":"Demo reset to Tuesday, 09:20.","chrome.toast.closureAdded":"Recorded: the practice is shut on {date}."},he={"en-US":me,"de-DE":{"chrome.brand":"Rowan Health","chrome.brand.desk":"Praxisempfang","chrome.brand.site":"Praxis im Viertel","chrome.skipToContent":"Zum Inhalt springen","chrome.menu.open":"Menü öffnen","chrome.menu.close":"Menü schließen","chrome.search.label":"Patienten nach Namen suchen","chrome.search.placeholder":"Patienten suchen…","chrome.search.empty":"Zu „{query}“ passt niemand.","chrome.search.patients":"Patienten","chrome.nav.daysheet":"Tagesliste","chrome.nav.waiting":"Wartezimmer","chrome.nav.patients":"Patienten","chrome.nav.accounts":"Konten","chrome.nav.recalls":"Kontrolltermine","chrome.nav.settings":"Praxiseinstellungen","chrome.nav.book":"Termin buchen","chrome.nav.myvisits":"Meine Termine","chrome.nav.findus":"Anfahrt","chrome.dock.title":"Demo-Steuerung","chrome.dock.persona":"Rolle","chrome.dock.patient":"Patient","chrome.dock.clinic":"Praxis","chrome.dock.clock":"Uhr","chrome.dock.advance":"+15 Min.","chrome.dock.advance.label":"Die Demo-Uhr um fünfzehn Minuten vorstellen","chrome.dock.theme":"Design","chrome.dock.theme.light":"Zum hellen Design wechseln","chrome.dock.theme.dark":"Zum dunklen Design wechseln","chrome.dock.language":"Sprache","chrome.dock.reset":"Demo zurücksetzen","chrome.dock.collapse":"Demo-Steuerung ausblenden","chrome.dock.expand":"Demo-Steuerung einblenden","chrome.utc.notice":"Datumsangaben in UTC","chrome.utc.why":"Für diese Verbindung ist in Adminium keine Zeitzone hinterlegt; Datumsangaben erscheinen daher in UTC statt in der Zeitzone des Unternehmens.","chrome.zone.notice":"Datumsangaben in {zone}","chrome.zone.why":"Diese Zeitzone stammt vom Server, auf dem Adminium läuft, und wurde hier von niemandem gewählt. Bestätigen Sie sie an der Verbindung (Verbindungen → diese Datenbank), wenn es die Zeitzone des Unternehmens ist.","chrome.footer.copy":"© 2026 Rowan Health. Ein Demo-Praxisempfang, der mit Adminium ausgeliefert wird.","chrome.footer.chip":"adminium.dev/demo/clinic-desk","chrome.action.open":"Öffnen","chrome.action.cancel":"Abbrechen","chrome.action.close":"Schließen","chrome.action.back":"Zurück","chrome.action.done":"Fertig","chrome.action.confirm":"Bestätigen","chrome.action.keep":"Behalten","chrome.action.pay":"Bezahlen","chrome.action.more":"Weitere Aktionen","chrome.mins":"{count} Min.|{count} Min.","chrome.hrs":"{count} Std.|{count} Std.","chrome.days":"{count} Tag|{count} Tage","chrome.years":"{count} Jahr|{count} Jahre","chrome.rel.today":"Heute","chrome.rel.yesterday":"Gestern","chrome.rel.tomorrow":"Morgen","chrome.rel.daysAgo":"vor {count} Tag|vor {count} Tagen","chrome.rel.inDays":"in {count} Tag|in {count} Tagen","chrome.status.booked":"Gebucht","chrome.status.checked_in":"Angemeldet","chrome.status.roomed":"Im Zimmer","chrome.status.with_clinician":"In Behandlung","chrome.status.ready":"Kann gehen","chrome.status.done":"Abgeschlossen","chrome.status.no_show":"Nicht erschienen","chrome.status.cancelled":"Abgesagt","chrome.status.late":"Kurzfristig abgesagt","chrome.toast.dismiss":"Ausblenden","chrome.toast.booked":"Gebucht. Ihre Referenz ist {ref}.","chrome.toast.paid":"Vielen Dank — {amount} bezahlt.","chrome.toast.atdesk":"Vermerkt. Sie können bei Ihrer Ankunft bezahlen.","chrome.toast.calendar":"In einer echten Praxis würde der Termin jetzt in Ihrem Kalender landen.","chrome.toast.checkedIn":"{name} ist angemeldet.","chrome.toast.advanced":"{name}: {status}.","chrome.toast.left":"{name} hat die Praxis verlassen.","chrome.toast.noShow":"{name} als nicht erschienen vermerkt.","chrome.toast.cancelled":"{ref} wurde abgesagt.","chrome.toast.lateCancelled":"{ref} innerhalb von 24 Stunden abgesagt.","chrome.toast.payment":"{amount} von {name} eingenommen.","chrome.toast.prefilled":"Tagesliste für {name} bereit.","chrome.toast.reschedule":"Neue Uhrzeit für {name} auswählen.","chrome.toast.clock":"Die Uhr zeigt jetzt {time}.","chrome.toast.reset":"Demo auf Dienstag, 09:20 Uhr zurückgesetzt.","chrome.toast.closureAdded":"Eingetragen: Die Praxis ist am {date} geschlossen."},"fr-FR":{"chrome.brand":"Rowan Health","chrome.brand.desk":"Accueil du cabinet","chrome.brand.site":"Cabinet de proximité","chrome.skipToContent":"Aller au contenu","chrome.menu.open":"Ouvrir le menu","chrome.menu.close":"Fermer le menu","chrome.search.label":"Rechercher un patient par son nom","chrome.search.placeholder":"Rechercher un patient…","chrome.search.empty":"Personne ne correspond à « {query} ».","chrome.search.patients":"Patients","chrome.nav.daysheet":"Feuille du jour","chrome.nav.waiting":"Salle d’attente","chrome.nav.patients":"Patients","chrome.nav.accounts":"Comptes","chrome.nav.recalls":"Rappels","chrome.nav.settings":"Réglages du cabinet","chrome.nav.book":"Prendre rendez-vous","chrome.nav.myvisits":"Mes rendez-vous","chrome.nav.findus":"Nous trouver","chrome.dock.title":"Commandes de la démo","chrome.dock.persona":"Rôle","chrome.dock.patient":"Patient","chrome.dock.clinic":"Cabinet","chrome.dock.clock":"Horloge","chrome.dock.advance":"+15 min","chrome.dock.advance.label":"Avancer l’horloge de la démo de quinze minutes","chrome.dock.theme":"Thème","chrome.dock.theme.light":"Passer au thème clair","chrome.dock.theme.dark":"Passer au thème sombre","chrome.dock.language":"Langue","chrome.dock.reset":"Réinitialiser la démo","chrome.dock.collapse":"Masquer les commandes de la démo","chrome.dock.expand":"Afficher les commandes de la démo","chrome.utc.notice":"Dates affichées en UTC","chrome.utc.why":"Aucun fuseau horaire n'est défini pour cette connexion dans Adminium ; les dates s'affichent donc en UTC plutôt que dans le fuseau de l'entreprise.","chrome.zone.notice":"Dates affichées en {zone}","chrome.zone.why":"Ce fuseau vient du serveur qui exécute Adminium ; personne ne l'a choisi ici. Confirmez-le sur la connexion (Connexions → cette base de données) s'il s'agit du fuseau de l'entreprise.","chrome.footer.copy":"© 2026 Rowan Health. Un accueil de cabinet en démonstration, livré avec Adminium.","chrome.footer.chip":"adminium.dev/demo/clinic-desk","chrome.action.open":"Ouvrir","chrome.action.cancel":"Annuler","chrome.action.close":"Fermer","chrome.action.back":"Retour","chrome.action.done":"Terminé","chrome.action.confirm":"Confirmer","chrome.action.keep":"Conserver","chrome.action.pay":"Payer","chrome.action.more":"Autres actions","chrome.mins":"{count} min|{count} min","chrome.hrs":"{count} h|{count} h","chrome.days":"{count} jour|{count} jours","chrome.years":"{count} an|{count} ans","chrome.rel.today":"Aujourd’hui","chrome.rel.yesterday":"Hier","chrome.rel.tomorrow":"Demain","chrome.rel.daysAgo":"il y a {count} jour|il y a {count} jours","chrome.rel.inDays":"dans {count} jour|dans {count} jours","chrome.status.booked":"Réservé","chrome.status.checked_in":"Enregistré","chrome.status.roomed":"En salle","chrome.status.with_clinician":"En consultation","chrome.status.ready":"Peut partir","chrome.status.done":"Terminé","chrome.status.no_show":"Absence","chrome.status.cancelled":"Annulé","chrome.status.late":"Annulation tardive","chrome.toast.dismiss":"Fermer","chrome.toast.booked":"C’est réservé. Votre référence est {ref}.","chrome.toast.paid":"Merci — {amount} réglé.","chrome.toast.atdesk":"C’est noté. Vous pourrez régler à votre arrivée.","chrome.toast.calendar":"Dans un vrai cabinet, le rendez-vous serait ajouté à votre agenda.","chrome.toast.checkedIn":"Arrivée de {name} enregistrée.","chrome.toast.advanced":"{name} : {status}.","chrome.toast.left":"{name} a quitté le cabinet.","chrome.toast.noShow":"Absence de {name} enregistrée.","chrome.toast.cancelled":"{ref} a été annulé.","chrome.toast.lateCancelled":"{ref} annulé à moins de 24 heures.","chrome.toast.payment":"{amount} encaissé auprès de {name}.","chrome.toast.prefilled":"Feuille du jour prête pour {name}.","chrome.toast.reschedule":"Choisissez un nouvel horaire pour {name}.","chrome.toast.clock":"L’horloge indique maintenant {time}.","chrome.toast.reset":"Démo réinitialisée à mardi, 09:20.","chrome.toast.closureAdded":"Enregistré : le cabinet est fermé le {date}."},"cs-CZ":{"chrome.brand":"Rowan Health","chrome.brand.desk":"Recepce ordinace","chrome.brand.site":"Ordinace v sousedství","chrome.skipToContent":"Přejít k obsahu","chrome.menu.open":"Otevřít nabídku","chrome.menu.close":"Zavřít nabídku","chrome.search.label":"Hledat pacienty podle jména","chrome.search.placeholder":"Hledat pacienty…","chrome.search.empty":"Výrazu „{query}“ neodpovídá nikdo.","chrome.search.patients":"Pacienti","chrome.nav.daysheet":"Denní přehled","chrome.nav.waiting":"Čekárna","chrome.nav.patients":"Pacienti","chrome.nav.accounts":"Účty","chrome.nav.recalls":"Kontroly","chrome.nav.settings":"Nastavení ordinace","chrome.nav.book":"Objednat se","chrome.nav.myvisits":"Moje návštěvy","chrome.nav.findus":"Kde nás najdete","chrome.dock.title":"Ovládání ukázky","chrome.dock.persona":"Role","chrome.dock.patient":"Pacient","chrome.dock.clinic":"Ordinace","chrome.dock.clock":"Hodiny","chrome.dock.advance":"+15 min","chrome.dock.advance.label":"Posunout hodiny ukázky o patnáct minut","chrome.dock.theme":"Motiv","chrome.dock.theme.light":"Přepnout na světlý motiv","chrome.dock.theme.dark":"Přepnout na tmavý motiv","chrome.dock.language":"Jazyk","chrome.dock.reset":"Resetovat ukázku","chrome.dock.collapse":"Skrýt ovládání ukázky","chrome.dock.expand":"Zobrazit ovládání ukázky","chrome.utc.notice":"Data se zobrazují v UTC","chrome.utc.why":"Toto připojení nemá v Adminiu nastavené časové pásmo, data se proto zobrazují v UTC místo v pásmu firmy.","chrome.zone.notice":"Data se zobrazují v {zone}","chrome.zone.why":"Toto pásmo pochází ze serveru, na kterém běží Adminium, nikdo je zde nezvolil. Pokud jde o pásmo firmy, potvrďte je u připojení (Připojení → tato databáze).","chrome.footer.copy":"© 2026 Rowan Health. Ukázková recepce ordinace dodávaná s Adminium.","chrome.footer.chip":"adminium.dev/demo/clinic-desk","chrome.action.open":"Otevřít","chrome.action.cancel":"Zrušit","chrome.action.close":"Zavřít","chrome.action.back":"Zpět","chrome.action.done":"Hotovo","chrome.action.confirm":"Potvrdit","chrome.action.keep":"Ponechat","chrome.action.pay":"Zaplatit","chrome.action.more":"Další akce","chrome.mins":"{count} min|{count} min|{count} min","chrome.hrs":"{count} hod.|{count} hod.|{count} hod.","chrome.days":"{count} den|{count} dny|{count} dní","chrome.years":"{count} rok|{count} roky|{count} let","chrome.rel.today":"Dnes","chrome.rel.yesterday":"Včera","chrome.rel.tomorrow":"Zítra","chrome.rel.daysAgo":"před {count} dnem|před {count} dny|před {count} dny","chrome.rel.inDays":"za {count} den|za {count} dny|za {count} dní","chrome.status.booked":"Objednáno","chrome.status.checked_in":"Ohlášeno","chrome.status.roomed":"V ordinaci","chrome.status.with_clinician":"U lékaře","chrome.status.ready":"Může odejít","chrome.status.done":"Vyřízeno","chrome.status.no_show":"Nedostavil(a) se","chrome.status.cancelled":"Zrušeno","chrome.status.late":"Pozdní zrušení","chrome.toast.dismiss":"Zavřít","chrome.toast.booked":"Objednáno. Vaše referenční číslo je {ref}.","chrome.toast.paid":"Děkujeme — {amount} zaplaceno.","chrome.toast.atdesk":"Poznamenáno. Zaplatit můžete při příchodu.","chrome.toast.calendar":"Ve skutečné ordinaci by se návštěva teď přidala do vašeho kalendáře.","chrome.toast.checkedIn":"{name} je ohlášen(a).","chrome.toast.advanced":"{name}: {status}.","chrome.toast.left":"{name} už odešel(a).","chrome.toast.noShow":"{name} se nedostavil(a).","chrome.toast.cancelled":"{ref} zrušeno.","chrome.toast.lateCancelled":"{ref} zrušeno méně než 24 hodin předem.","chrome.toast.payment":"Od {name} přijato {amount}.","chrome.toast.prefilled":"Denní přehled pro {name} je připraven.","chrome.toast.reschedule":"Vyberte pro {name} nový čas.","chrome.toast.clock":"Hodiny nyní ukazují {time}.","chrome.toast.reset":"Ukázka resetována na úterý, 9:20.","chrome.toast.closureAdded":"Uloženo: {date} má ordinace zavřeno."},"da-DK":{"chrome.brand":"Rowan Health","chrome.brand.desk":"Klinikreception","chrome.brand.site":"Klinik i nabolaget","chrome.skipToContent":"Gå til indhold","chrome.menu.open":"Åbn menuen","chrome.menu.close":"Luk menuen","chrome.search.label":"Søg efter patienter på navn","chrome.search.placeholder":"Søg efter patienter…","chrome.search.empty":"Ingen passer på »{query}«.","chrome.search.patients":"Patienter","chrome.nav.daysheet":"Dagsoversigt","chrome.nav.waiting":"Venteværelse","chrome.nav.patients":"Patienter","chrome.nav.accounts":"Konti","chrome.nav.recalls":"Indkaldelser","chrome.nav.settings":"Klinikkens indstillinger","chrome.nav.book":"Book tid","chrome.nav.myvisits":"Mine besøg","chrome.nav.findus":"Find os","chrome.dock.title":"Demo-kontroller","chrome.dock.persona":"Rolle","chrome.dock.patient":"Patient","chrome.dock.clinic":"Klinik","chrome.dock.clock":"Ur","chrome.dock.advance":"+15 min","chrome.dock.advance.label":"Ryk demo-uret femten minutter frem","chrome.dock.theme":"Tema","chrome.dock.theme.light":"Skift til lyst tema","chrome.dock.theme.dark":"Skift til mørkt tema","chrome.dock.language":"Sprog","chrome.dock.reset":"Nulstil demoen","chrome.dock.collapse":"Skjul demo-kontrollerne","chrome.dock.expand":"Vis demo-kontrollerne","chrome.utc.notice":"Datoer vises i UTC","chrome.utc.why":"Denne forbindelse har ingen tidszone angivet i Adminium, så datoer vises i UTC i stedet for virksomhedens tidszone.","chrome.zone.notice":"Datoer vises i {zone}","chrome.zone.why":"Denne tidszone kom fra serveren, der kører Adminium — ingen her har valgt den. Bekræft den på forbindelsen (Forbindelser → denne database), hvis det er virksomhedens tidszone.","chrome.footer.copy":"© 2026 Rowan Health. En demo-klinikreception, der følger med Adminium.","chrome.footer.chip":"adminium.dev/demo/clinic-desk","chrome.action.open":"Åbn","chrome.action.cancel":"Annuller","chrome.action.close":"Luk","chrome.action.back":"Tilbage","chrome.action.done":"Færdig","chrome.action.confirm":"Bekræft","chrome.action.keep":"Behold den","chrome.action.pay":"Betal","chrome.action.more":"Flere handlinger","chrome.mins":"{count} min|{count} min","chrome.hrs":"{count} t|{count} t","chrome.days":"{count} dag|{count} dage","chrome.years":"{count} år|{count} år","chrome.rel.today":"I dag","chrome.rel.yesterday":"I går","chrome.rel.tomorrow":"I morgen","chrome.rel.daysAgo":"for {count} dag siden|for {count} dage siden","chrome.rel.inDays":"om {count} dag|om {count} dage","chrome.status.booked":"Booket","chrome.status.checked_in":"Meldt ankommet","chrome.status.roomed":"Vist ind","chrome.status.with_clinician":"Hos behandleren","chrome.status.ready":"Klar til at gå","chrome.status.done":"Afsluttet","chrome.status.no_show":"Udeblevet","chrome.status.cancelled":"Aflyst","chrome.status.late":"Sent afbud","chrome.toast.dismiss":"Luk","chrome.toast.booked":"Booket. Din reference er {ref}.","chrome.toast.paid":"Tak — {amount} betalt.","chrome.toast.atdesk":"Noteret. Du kan betale, når du ankommer.","chrome.toast.calendar":"I en rigtig klinik ville besøget nu blive lagt i din kalender.","chrome.toast.checkedIn":"{name} er meldt ankommet.","chrome.toast.advanced":"{name}: {status}.","chrome.toast.left":"{name} er gået.","chrome.toast.noShow":"{name} er registreret som udeblevet.","chrome.toast.cancelled":"{ref} er aflyst.","chrome.toast.lateCancelled":"{ref} aflyst inden for 24 timer.","chrome.toast.payment":"{amount} modtaget fra {name}.","chrome.toast.prefilled":"Dagsoversigten er klar til {name}.","chrome.toast.reschedule":"Vælg et nyt tidspunkt til {name}.","chrome.toast.clock":"Uret viser nu {time}.","chrome.toast.reset":"Demoen er nulstillet til tirsdag kl. 09.20.","chrome.toast.closureAdded":"Registreret: klinikken holder lukket den {date}."},"zh-CN":{"chrome.brand":"Rowan Health","chrome.brand.desk":"诊所前台","chrome.brand.site":"社区诊所","chrome.skipToContent":"跳到主要内容","chrome.menu.open":"打开菜单","chrome.menu.close":"关闭菜单","chrome.search.label":"按姓名搜索患者","chrome.search.placeholder":"搜索患者…","chrome.search.empty":"没有人符合“{query}”。","chrome.search.patients":"患者","chrome.nav.daysheet":"今日日程","chrome.nav.waiting":"候诊区","chrome.nav.patients":"患者","chrome.nav.accounts":"账户","chrome.nav.recalls":"复诊提醒","chrome.nav.settings":"诊所设置","chrome.nav.book":"预约","chrome.nav.myvisits":"我的就诊","chrome.nav.findus":"到院路线","chrome.dock.title":"演示控制","chrome.dock.persona":"身份","chrome.dock.patient":"患者","chrome.dock.clinic":"诊所","chrome.dock.clock":"时钟","chrome.dock.advance":"+15 分钟","chrome.dock.advance.label":"把演示时钟拨快十五分钟","chrome.dock.theme":"主题","chrome.dock.theme.light":"切换到浅色主题","chrome.dock.theme.dark":"切换到深色主题","chrome.dock.language":"语言","chrome.dock.reset":"重置演示","chrome.dock.collapse":"隐藏演示控制","chrome.dock.expand":"显示演示控制","chrome.utc.notice":"日期以 UTC 显示","chrome.utc.why":"此连接在 Adminium 中未设置时区,日期因此以 UTC 显示,而非商家所在时区。","chrome.zone.notice":"日期以 {zone} 显示","chrome.zone.why":"此时区来自运行 Adminium 的服务器,并非有人在此选择。若它确实是该商家的时区,请在连接上确认(连接 → 此数据库)。","chrome.footer.copy":"© 2026 Rowan Health。随 Adminium 一同提供的诊所前台演示。","chrome.footer.chip":"adminium.dev/demo/clinic-desk","chrome.action.open":"打开","chrome.action.cancel":"取消","chrome.action.close":"关闭","chrome.action.back":"返回","chrome.action.done":"完成","chrome.action.confirm":"确认","chrome.action.keep":"保留","chrome.action.pay":"支付","chrome.action.more":"更多操作","chrome.mins":"{count} 分钟","chrome.hrs":"{count} 小时","chrome.days":"{count} 天","chrome.years":"{count} 岁","chrome.rel.today":"今天","chrome.rel.yesterday":"昨天","chrome.rel.tomorrow":"明天","chrome.rel.daysAgo":"{count} 天前","chrome.rel.inDays":"{count} 天后","chrome.status.booked":"已预约","chrome.status.checked_in":"已报到","chrome.status.roomed":"已入诊室","chrome.status.with_clinician":"就诊中","chrome.status.ready":"可以离开","chrome.status.done":"已完成","chrome.status.no_show":"未到诊","chrome.status.cancelled":"已取消","chrome.status.late":"临时取消","chrome.toast.dismiss":"关闭","chrome.toast.booked":"已预约。您的预约编号是 {ref}。","chrome.toast.paid":"谢谢,已支付 {amount}。","chrome.toast.atdesk":"已记下。您可以到院时再付。","chrome.toast.calendar":"在真实的诊所里,这次就诊会被加入您的日历。","chrome.toast.checkedIn":"{name} 已报到。","chrome.toast.advanced":"{name}:{status}。","chrome.toast.left":"{name} 已离开。","chrome.toast.noShow":"{name} 已标记为未到诊。","chrome.toast.cancelled":"{ref} 已取消。","chrome.toast.lateCancelled":"{ref} 在 24 小时内取消。","chrome.toast.payment":"已向 {name} 收取 {amount}。","chrome.toast.prefilled":"{name} 的今日日程已就绪。","chrome.toast.reschedule":"为 {name} 选择新的时间。","chrome.toast.clock":"时钟现在显示 {time}。","chrome.toast.reset":"演示已重置为周二 09:20。","chrome.toast.closureAdded":"已记录:{date} 诊所休诊。"},"zh-TW":{"chrome.brand":"Rowan Health","chrome.brand.desk":"診所櫃台","chrome.brand.site":"社區診所","chrome.skipToContent":"跳至主要內容","chrome.menu.open":"開啟選單","chrome.menu.close":"關閉選單","chrome.search.label":"依姓名搜尋病患","chrome.search.placeholder":"搜尋病患…","chrome.search.empty":"找不到符合「{query}」的人。","chrome.search.patients":"病患","chrome.nav.daysheet":"今日行程","chrome.nav.waiting":"候診區","chrome.nav.patients":"病患","chrome.nav.accounts":"帳戶","chrome.nav.recalls":"回診提醒","chrome.nav.settings":"診所設定","chrome.nav.book":"預約","chrome.nav.myvisits":"我的就診","chrome.nav.findus":"如何前往","chrome.dock.title":"示範控制","chrome.dock.persona":"身分","chrome.dock.patient":"病患","chrome.dock.clinic":"診所","chrome.dock.clock":"時鐘","chrome.dock.advance":"+15 分鐘","chrome.dock.advance.label":"將示範時鐘往前調十五分鐘","chrome.dock.theme":"佈景主題","chrome.dock.theme.light":"切換為淺色佈景主題","chrome.dock.theme.dark":"切換為深色佈景主題","chrome.dock.language":"語言","chrome.dock.reset":"重設示範","chrome.dock.collapse":"隱藏示範控制","chrome.dock.expand":"顯示示範控制","chrome.utc.notice":"日期以 UTC 顯示","chrome.utc.why":"此連線在 Adminium 中未設定時區,日期因此以 UTC 顯示,而非商家所在時區。","chrome.zone.notice":"日期以 {zone} 顯示","chrome.zone.why":"此時區來自執行 Adminium 的伺服器,並非有人在此選擇。若它確實是該商家的時區,請在連線上確認(連線 → 此資料庫)。","chrome.footer.copy":"© 2026 Rowan Health。隨 Adminium 一同提供的診所櫃台示範。","chrome.footer.chip":"adminium.dev/demo/clinic-desk","chrome.action.open":"開啟","chrome.action.cancel":"取消","chrome.action.close":"關閉","chrome.action.back":"返回","chrome.action.done":"完成","chrome.action.confirm":"確認","chrome.action.keep":"保留","chrome.action.pay":"付款","chrome.action.more":"更多操作","chrome.mins":"{count} 分鐘","chrome.hrs":"{count} 小時","chrome.days":"{count} 天","chrome.years":"{count} 歲","chrome.rel.today":"今天","chrome.rel.yesterday":"昨天","chrome.rel.tomorrow":"明天","chrome.rel.daysAgo":"{count} 天前","chrome.rel.inDays":"{count} 天後","chrome.status.booked":"已預約","chrome.status.checked_in":"已報到","chrome.status.roomed":"已進診間","chrome.status.with_clinician":"看診中","chrome.status.ready":"可以離開","chrome.status.done":"已看診","chrome.status.no_show":"未到診","chrome.status.cancelled":"已取消","chrome.status.late":"臨時取消","chrome.toast.dismiss":"關閉","chrome.toast.booked":"已預約。您的預約編號是 {ref}。","chrome.toast.paid":"謝謝,已付款 {amount}。","chrome.toast.atdesk":"已記下。您可以到診時再付款。","chrome.toast.calendar":"在真實的診所裡,這次就診會加入您的行事曆。","chrome.toast.checkedIn":"{name} 已報到。","chrome.toast.advanced":"{name}:{status}。","chrome.toast.left":"{name} 已離開。","chrome.toast.noShow":"{name} 已標記為未到診。","chrome.toast.cancelled":"{ref} 已取消。","chrome.toast.lateCancelled":"{ref} 在 24 小時內取消。","chrome.toast.payment":"已向 {name} 收取 {amount}。","chrome.toast.prefilled":"{name} 的今日行程已就緒。","chrome.toast.reschedule":"為 {name} 選擇新的時間。","chrome.toast.clock":"時鐘現在顯示 {time}。","chrome.toast.reset":"示範已重設為週二 09:20。","chrome.toast.closureAdded":"已記錄:{date} 診所休診。"},"ar-EG":{"chrome.brand":"Rowan Health","chrome.brand.desk":"استقبال العيادة","chrome.brand.site":"عيادة الحي","chrome.skipToContent":"انتقل إلى المحتوى","chrome.menu.open":"افتح القائمة","chrome.menu.close":"أغلق القائمة","chrome.search.label":"ابحث عن المرضى بالاسم","chrome.search.placeholder":"ابحث عن مريض…","chrome.search.empty":"لا يوجد أحد يطابق «{query}».","chrome.search.patients":"المرضى","chrome.nav.daysheet":"جدول اليوم","chrome.nav.waiting":"غرفة الانتظار","chrome.nav.patients":"المرضى","chrome.nav.accounts":"الحسابات","chrome.nav.recalls":"المتابعات","chrome.nav.settings":"إعدادات العيادة","chrome.nav.book":"احجز موعدًا","chrome.nav.myvisits":"زياراتي","chrome.nav.findus":"مكان العيادة","chrome.dock.title":"أدوات العرض التجريبي","chrome.dock.persona":"الدور","chrome.dock.patient":"مريض","chrome.dock.clinic":"العيادة","chrome.dock.clock":"الساعة","chrome.dock.advance":"+15 دقيقة","chrome.dock.advance.label":"قدِّم ساعة العرض خمس عشرة دقيقة","chrome.dock.theme":"المظهر","chrome.dock.theme.light":"التبديل إلى المظهر الفاتح","chrome.dock.theme.dark":"التبديل إلى المظهر الداكن","chrome.dock.language":"اللغة","chrome.dock.reset":"إعادة ضبط العرض","chrome.dock.collapse":"إخفاء أدوات العرض","chrome.dock.expand":"إظهار أدوات العرض","chrome.utc.notice":"التواريخ معروضة بتوقيت UTC","chrome.utc.why":"لا توجد منطقة زمنية محدّدة لهذا الاتصال في Adminium، لذا تُعرض التواريخ بتوقيت UTC بدلاً من المنطقة الزمنية للنشاط التجاري.","chrome.zone.notice":"التواريخ معروضة بتوقيت {zone}","chrome.zone.why":"جاءت هذه المنطقة الزمنية من الخادم الذي يشغّل Adminium ، ولم يخترها أحد هنا. أكّدها على الاتصال (الاتصالات → هذه قاعدة البيانات) إذا كانت منطقة النشاط التجاري.","chrome.footer.copy":"© 2026 Rowan Health. استقبال عيادة تجريبي يأتي مع Adminium.","chrome.footer.chip":"adminium.dev/demo/clinic-desk","chrome.action.open":"فتح","chrome.action.cancel":"إلغاء","chrome.action.close":"إغلاق","chrome.action.back":"رجوع","chrome.action.done":"تم","chrome.action.confirm":"تأكيد","chrome.action.keep":"احتفظ به","chrome.action.pay":"ادفع","chrome.action.more":"إجراءات أخرى","chrome.mins":"{count} دقيقة|دقيقة واحدة|دقيقتان|{count} دقائق|{count} دقيقة|{count} دقيقة","chrome.hrs":"{count} ساعة|ساعة واحدة|ساعتان|{count} ساعات|{count} ساعة|{count} ساعة","chrome.days":"{count} يوم|يوم واحد|يومان|{count} أيام|{count} يومًا|{count} يوم","chrome.years":"{count} سنة|سنة واحدة|سنتان|{count} سنوات|{count} سنة|{count} سنة","chrome.rel.today":"اليوم","chrome.rel.yesterday":"أمس","chrome.rel.tomorrow":"غدًا","chrome.rel.daysAgo":"منذ {count} يوم|منذ يوم واحد|منذ يومين|منذ {count} أيام|منذ {count} يومًا|منذ {count} يوم","chrome.rel.inDays":"بعد {count} يوم|بعد يوم واحد|بعد يومين|بعد {count} أيام|بعد {count} يومًا|بعد {count} يوم","chrome.status.booked":"محجوز","chrome.status.checked_in":"تم التسجيل","chrome.status.roomed":"في الغرفة","chrome.status.with_clinician":"مع الطبيب","chrome.status.ready":"جاهز للمغادرة","chrome.status.done":"انتهت الزيارة","chrome.status.no_show":"لم يحضر","chrome.status.cancelled":"ملغى","chrome.status.late":"إلغاء متأخر","chrome.toast.dismiss":"إغلاق","chrome.toast.booked":"تم الحجز. رقم حجزك هو {ref}.","chrome.toast.paid":"شكرًا لك — تم دفع {amount}.","chrome.toast.atdesk":"تم التسجيل. يمكنك الدفع عند وصولك.","chrome.toast.calendar":"في عيادة حقيقية، كانت الزيارة ستُضاف إلى تقويمك.","chrome.toast.checkedIn":"تم تسجيل حضور {name}.","chrome.toast.advanced":"{name}: {status}.","chrome.toast.left":"تم تسجيل مغادرة {name}.","chrome.toast.noShow":"تم تسجيل {name} كمتغيّب.","chrome.toast.cancelled":"تم إلغاء {ref}.","chrome.toast.lateCancelled":"تم إلغاء {ref} خلال أقل من 24 ساعة.","chrome.toast.payment":"تم تحصيل {amount} من {name}.","chrome.toast.prefilled":"جدول اليوم جاهز لـ {name}.","chrome.toast.reschedule":"اختر موعدًا جديدًا لـ {name}.","chrome.toast.clock":"الساعة الآن {time}.","chrome.toast.reset":"تمت إعادة ضبط العرض إلى الثلاثاء، 09:20.","chrome.toast.closureAdded":"تم التسجيل: العيادة مغلقة في {date}."}},pe={"find.title":"Find a time","find.sub":"Tell us what the visit is for, pick who you would like to see, and take a time that suits you.","find.step.reason":"What is the visit for?","find.step.clinician":"Who would you like to see?","find.step.day":"Which day?","find.step.slot":"Open times on {date}","find.any":"Anyone","find.any.role":"Whoever is open first","find.length":"{length} appointment","find.feeLine":"{fee} · {length}","find.closed":"Closed","find.weekend":"The practice is shut at the weekend, so Saturday and Sunday are not offered.","find.pastNote":"It is {time}, so this morning's earlier times have gone.","find.longer":"A longer visit needs a longer gap, so fewer times are open for it.","find.count":"{count} open time|{count} open times","find.taken":"Taken","find.gone":"Gone","find.slotLabel":"{time} with {clinician}","find.empty.title":"Nothing left on {date}","find.empty.body":"The next day with room is {next}.","find.empty.action":"Try {date}","find.empty.none":"There is no room in the next month for that combination. Try another clinician.","find.continue":"Continue","find.chosen":"{time} with {clinician}, {date}","details.title":"Your details","details.sub":"Two minutes and you are done.","details.been":"Have you been here before?","details.returning":"Yes, I am registered","details.first":"No, this is my first visit","details.lookup.title":"Find your record","details.mobile":"Mobile number","details.dob":"Date of birth","details.lookup.action":"Find me","details.lookup.hint":"Demo: tap to fill in {mobile} · {dob}","details.lookup.found":"Welcome back, {name}.","details.lookup.miss":"We could not find that. Check the number and the date, or book this as a first visit.","details.first.title":"About you","details.name":"Full name","details.email":"Email","details.reason":"What is the visit for?","details.reason.hint":"One line is plenty.","details.counter":"{count} of 240","details.desknote":"Anything the desk should know?","details.desknote.hint":"Optional, and it goes to the front desk — parking, access, an interpreter, running late.","details.summary":"Your visit","details.summary.clinician":"Clinician","details.summary.date":"Date","details.summary.time":"Time","details.summary.length":"Length","details.summary.fee":"Visit fee","details.summary.payline":"Payable at the desk, or here now.","details.confirm":"Confirm the booking","details.blocked":"Add your details and we can confirm it.","details.back":"Change the time","confirm.title":"You are booked in","confirm.sub":"Keep the reference below. This is a demo, so no real text is sent.","confirm.ref":"Reference","confirm.clinician":"Clinician","confirm.when":"When","confirm.where":"Where","confirm.calendar":"Add to calendar","confirm.payNow":"Pay now","confirm.payDesk":"Pay at the desk","confirm.paid":"Paid. Nothing to settle when you arrive.","confirm.deskChosen":"You have chosen to settle it at the desk.","confirm.cancelLine":"You can change or cancel this at no charge until 24 hours before your appointment.","confirm.myvisits":"See my visits","myvisits.title":"My visits","myvisits.sub":"Look yourself up and we will show you what is booked.","myvisits.lookup":"Find your visits","myvisits.upcoming":"Upcoming","myvisits.past":"Past visits","myvisits.none":"Nothing booked at the moment.","myvisits.nonePast":"No past visits on your record.","myvisits.reschedule":"Reschedule","myvisits.cancel":"Cancel","myvisits.owes":"{amount} still to settle","myvisits.settled":"Settled","myvisits.book":"Book another visit","myvisits.switch":"Not you? Look someone else up","myvisits.with":"with {clinician}","cancel.title":"Cancel {ref}?","cancel.body":"This is {when} with {clinician}.","cancel.late.title":"This is inside 24 hours","cancel.late.body":"Cancelling now counts as a late cancellation and stays on your record. If you can still make it, keep the time.","cancel.confirm":"Cancel the visit","card.title":"Pay {amount}","card.demo":"This is a demo. No real card is charged.","card.number":"Card number","card.expiry":"Expiry","card.cvc":"CVC","card.name":"Name on the card","card.pay":"Pay {amount}","card.cancel":"Not now","daysheet.title":"Day sheet","daysheet.sub":"{count} visit today, {seen} already seen|{count} visits today, {seen} already seen","daysheet.prev":"The day before","daysheet.next":"The day after","daysheet.today":"Today","daysheet.break":"Lunch","daysheet.now":"Now","daysheet.closed":"The practice is shut on {date}.","daysheet.empty":"Nothing booked.","daysheet.scrollHint":"Swipe across for the other clinicians.","daysheet.prefill":"Booking {name} in for {reason}.","daysheet.prefill.clear":"Clear","daysheet.openVisit":"Open {name} at {time}","panel.title":"Visit {ref}","panel.patient":"Patient","panel.reason":"Reason for the visit","panel.desknote":"For the desk","panel.when":"When","panel.status":"Where they are","panel.checkIn":"They've arrived","panel.advance":"Move to {status}","panel.noShow":"Mark no-show","panel.cancel":"Cancel the visit","panel.openPatient":"Open the patient","panel.close":"Close the panel","waiting.title":"Waiting room","waiting.sub":"Who is in the building right now.","waiting.col.checked_in":"Checked in","waiting.col.roomed":"Roomed","waiting.col.with_clinician":"With clinician","waiting.col.ready":"Ready to go","waiting.empty":"Nobody here yet.","waiting.chip":"waiting {count} min|waiting {count} min","waiting.advance":"Move to {status}","waiting.finish":"They've left","waiting.late.title":"Hasn't arrived","waiting.late.sub":"More than 15 minutes past their time.","waiting.late.none":"Everyone due so far is here.","waiting.late.chip":"{count} min late|{count} min late","waiting.late.arrived":"They've arrived","waiting.late.noShow":"Mark no-show","patients.title":"Patients","patients.sub":"{count} person on the list|{count} people on the list","patients.search":"Search by name","patients.age":"Age","patients.last":"Last visit","patients.never":"No visits yet","patients.allergies":"Allergies","patients.empty":"Nobody matches that.","patients.open":"Open {name}","patient.back":"All patients","patient.dob":"Date of birth","patient.mobile":"Mobile","patient.history":"Visit history","patient.upcoming":"Upcoming","patient.none":"Nothing booked.","patient.noHistory":"No visits yet.","patient.outstanding":"Outstanding","patient.settled":"Nothing outstanding.","patient.recall":"Due back","patient.recall.none":"No recall set.","patient.honest":"Records live in your Adminium dashboard — this is the desk.","accounts.title":"Accounts","accounts.sub":"What has been taken, and what is still open.","accounts.kpi.taken":"Taken today","accounts.kpi.outstanding":"Outstanding","accounts.kpi.noshow":"No-shows this week","accounts.fees":"What a visit costs","accounts.fees.sub":"The fee follows the length of the visit.","accounts.open":"Still to settle","accounts.open.sub":"Oldest first, because the oldest is the one worth a call.","accounts.open.none":"Everything is settled.","accounts.col.patient":"Patient","accounts.col.visit":"Visit","accounts.col.since":"Raised","accounts.col.amount":"Balance","accounts.record":"Record a payment","accounts.partial":"Part paid","pay.title":"Record a payment","pay.for":"{name} · {amount} outstanding","pay.amount":"Amount","pay.method":"How","pay.method.card":"Card","pay.method.cash":"Cash","pay.method.transfer":"Transfer","pay.full":"Take the whole {amount}","pay.take":"Take the payment","pay.overpay":"That is more than the {amount} outstanding.","pay.nonpositive":"Enter an amount above zero.","recalls.title":"Recalls","recalls.sub":"People who should be seen again.","recalls.overdue":"Overdue","recalls.due":"Due this month","recalls.none":"Nobody is due back this month.","recalls.from":"After {reason} on {date}","recalls.every":"Seen again in {count} week|Seen again in {count} weeks","recalls.dueOn":"Due {date}","recalls.late":"{count} day overdue|{count} days overdue","recalls.book":"Book them in","notfound.title":"That page is not here","notfound.body":"Opening hours, the map and how to reach us live on the main site. This demo covers the booking side and the desk.","notfound.action":"Back to the day sheet","notfound.actionPatient":"Back to booking","settings.title":"Practice settings","settings.sub":"The days this practice does not work, and where each of them came from.","settings.closed.title":"Days the practice is shut","settings.closed.count":"{count} day recorded|{count} days recorded","settings.closed.empty":"Nothing is recorded. The practice opens Monday to Friday.","settings.closed.whole":"Whole practice","settings.closed.own":"Entered here","settings.closed.remove":"Remove {reason} on {date}","settings.add.title":"Record a closing day","settings.add.date":"Date","settings.add.reason":"Reason","settings.add.reasonHint":"In the practice's own words — a training day, a refit, a funeral.","settings.add.who":"Who is away","settings.add.everyone":"The whole practice","settings.add.submit":"Record it","settings.add.needed":"Give the day a date and a reason.","settings.add.duplicate":"That day is already recorded. Remove it first to change the reason.","daysheet.closedFor":"The practice is shut on {date} — {reason}.","daysheet.away":"Away — {reason}","find.closedFor":"Closed — {reason}","addon.host.title":"Add-ons","addon.host.sub":"Where else this practice's closing days can come from.","addon.host.reads":"An add-on here reads no patient record. It supplies days; the diary stays in this practice.","addon.host.on":"Switch on","addon.host.off":"Switch off","addon.host.isOn":"On","addon.host.fromAddOn":"From {name}","addon.host.dayFrom":"This day came from {name}.","addon.host.dormant":"{count} saved day is not being applied.|{count} saved days are not being applied.","addon.host.dormantHow":"Nothing was deleted. Switch it back on to apply them again, or record the ones you need above.","addon.host.none":"This build carries no add-ons.","addon.host.slotEmpty":"Nothing is switched on here, so the list above is everything this practice holds.","addon.host.notAffiliated":"Adminium is not affiliated with this company."},ye={"en-US":pe,"de-DE":{"find.title":"Termin finden","find.sub":"Sagen Sie uns, worum es geht, wählen Sie, wen Sie sehen möchten, und nehmen Sie eine Zeit, die Ihnen passt.","find.step.reason":"Worum geht es bei dem Besuch?","find.step.clinician":"Wen möchten Sie sehen?","find.step.day":"Welcher Tag?","find.step.slot":"Offene Zeiten am {date}","find.any":"Egal wer","find.any.role":"Wer als Erstes Zeit hat","find.length":"Termin über {length}","find.feeLine":"{fee} · {length}","find.closed":"Geschlossen","find.weekend":"Am Wochenende ist die Praxis geschlossen, Samstag und Sonntag werden daher nicht angeboten.","find.pastNote":"Es ist {time}, die früheren Zeiten heute Vormittag sind daher vorbei.","find.longer":"Ein längerer Besuch braucht eine längere Lücke, deshalb sind dafür weniger Zeiten offen.","find.count":"{count} offene Zeit|{count} offene Zeiten","find.taken":"Vergeben","find.gone":"Vorbei","find.slotLabel":"{time} bei {clinician}","find.empty.title":"Am {date} ist nichts mehr offen","find.empty.body":"Der nächste Tag mit Platz ist {next}.","find.empty.action":"{date} versuchen","find.empty.none":"Im nächsten Monat ist für diese Kombination kein Platz. Versuchen Sie es mit jemand anderem.","find.continue":"Weiter","find.chosen":"{time} bei {clinician}, {date}","details.title":"Ihre Angaben","details.sub":"Zwei Minuten, dann ist es erledigt.","details.been":"Waren Sie schon einmal bei uns?","details.returning":"Ja, ich bin registriert","details.first":"Nein, das ist mein erster Besuch","details.lookup.title":"Ihren Eintrag finden","details.mobile":"Mobilnummer","details.dob":"Geburtsdatum","details.lookup.action":"Mich finden","details.lookup.hint":"Demo: tippen, um {mobile} · {dob} einzutragen","details.lookup.found":"Willkommen zurück, {name}.","details.lookup.miss":"Das konnten wir nicht finden. Prüfen Sie Nummer und Datum, oder buchen Sie es als ersten Besuch.","details.first.title":"Über Sie","details.name":"Vollständiger Name","details.email":"E-Mail","details.reason":"Worum geht es bei dem Besuch?","details.reason.hint":"Eine Zeile genügt.","details.counter":"{count} von 240","details.desknote":"Sollte der Empfang etwas wissen?","details.desknote.hint":"Optional, und es geht an den Empfang — Parken, Zugang, Dolmetschen, Verspätung.","details.summary":"Ihr Besuch","details.summary.clinician":"Behandler","details.summary.date":"Datum","details.summary.time":"Uhrzeit","details.summary.length":"Dauer","details.summary.fee":"Gebühr für den Besuch","details.summary.payline":"Zahlbar am Empfang oder gleich hier.","details.confirm":"Buchung bestätigen","details.blocked":"Ergänzen Sie Ihre Angaben, dann können wir bestätigen.","details.back":"Zeit ändern","confirm.title":"Sie sind eingetragen","confirm.sub":"Notieren Sie sich die Referenz unten. Dies ist eine Demo, es wird keine echte SMS verschickt.","confirm.ref":"Referenz","confirm.clinician":"Behandler","confirm.when":"Wann","confirm.where":"Wo","confirm.calendar":"Zum Kalender hinzufügen","confirm.payNow":"Jetzt zahlen","confirm.payDesk":"Am Empfang zahlen","confirm.paid":"Bezahlt. Bei Ihrer Ankunft ist nichts mehr offen.","confirm.deskChosen":"Sie haben sich entschieden, am Empfang zu zahlen.","confirm.cancelLine":"Bis 24 Stunden vor Ihrem Termin können Sie ihn ohne Gebühr ändern oder absagen.","confirm.myvisits":"Meine Besuche ansehen","myvisits.title":"Meine Besuche","myvisits.sub":"Suchen Sie Ihren Eintrag, dann zeigen wir Ihnen, was gebucht ist.","myvisits.lookup":"Ihre Besuche finden","myvisits.upcoming":"Anstehend","myvisits.past":"Frühere Besuche","myvisits.none":"Zurzeit ist nichts gebucht.","myvisits.nonePast":"Keine früheren Besuche in Ihrem Eintrag.","myvisits.reschedule":"Verlegen","myvisits.cancel":"Absagen","myvisits.owes":"{amount} noch offen","myvisits.settled":"Beglichen","myvisits.book":"Weiteren Besuch buchen","myvisits.switch":"Nicht Sie? Jemand anderen suchen","myvisits.with":"bei {clinician}","cancel.title":"{ref} absagen?","cancel.body":"Das ist {when} bei {clinician}.","cancel.late.title":"Das ist innerhalb von 24 Stunden","cancel.late.body":"Eine Absage jetzt gilt als späte Absage und bleibt in Ihrem Eintrag vermerkt. Wenn Sie es doch schaffen, behalten Sie die Zeit.","cancel.confirm":"Besuch absagen","card.title":"{amount} zahlen","card.demo":"Dies ist eine Demo. Es wird keine echte Karte belastet.","card.number":"Kartennummer","card.expiry":"Gültig bis","card.cvc":"CVC","card.name":"Name auf der Karte","card.pay":"{amount} zahlen","card.cancel":"Jetzt nicht","daysheet.title":"Tagesübersicht","daysheet.sub":"{count} Besuch heute, davon {seen} erledigt|{count} Besuche heute, davon {seen} erledigt","daysheet.prev":"Der Tag davor","daysheet.next":"Der Tag danach","daysheet.today":"Heute","daysheet.break":"Mittag","daysheet.now":"Jetzt","daysheet.closed":"Am {date} ist die Praxis geschlossen.","daysheet.empty":"Nichts gebucht.","daysheet.scrollHint":"Wischen Sie zur Seite für die anderen Behandler.","daysheet.prefill":"{name} wird für {reason} eingetragen.","daysheet.prefill.clear":"Leeren","daysheet.openVisit":"{name} um {time} öffnen","panel.title":"Besuch {ref}","panel.patient":"Patient","panel.reason":"Grund für den Besuch","panel.desknote":"Für den Empfang","panel.when":"Wann","panel.status":"Wo sie gerade sind","panel.checkIn":"Ist eingetroffen","panel.advance":"Weiter zu {status}","panel.noShow":"Als nicht erschienen markieren","panel.cancel":"Besuch absagen","panel.openPatient":"Patient öffnen","panel.close":"Ansicht schließen","waiting.title":"Wartezimmer","waiting.sub":"Wer gerade im Haus ist.","waiting.col.checked_in":"Angemeldet","waiting.col.roomed":"Im Zimmer","waiting.col.with_clinician":"Beim Behandler","waiting.col.ready":"Kann gehen","waiting.empty":"Noch niemand da.","waiting.chip":"wartet {count} Min|wartet {count} Min","waiting.advance":"Weiter zu {status}","waiting.finish":"Ist gegangen","waiting.late.title":"Nicht eingetroffen","waiting.late.sub":"Mehr als 15 Minuten über der Zeit.","waiting.late.none":"Alle, die bisher dran waren, sind da.","waiting.late.chip":"{count} Min zu spät|{count} Min zu spät","waiting.late.arrived":"Ist eingetroffen","waiting.late.noShow":"Als nicht erschienen markieren","patients.title":"Patienten","patients.sub":"{count} Person auf der Liste|{count} Personen auf der Liste","patients.search":"Nach Namen suchen","patients.age":"Alter","patients.last":"Letzter Besuch","patients.never":"Noch keine Besuche","patients.allergies":"Allergien","patients.empty":"Dazu passt niemand.","patients.open":"{name} öffnen","patient.back":"Alle Patienten","patient.dob":"Geburtsdatum","patient.mobile":"Mobil","patient.history":"Besuchsverlauf","patient.upcoming":"Anstehend","patient.none":"Nichts gebucht.","patient.noHistory":"Noch keine Besuche.","patient.outstanding":"Offen","patient.settled":"Nichts offen.","patient.recall":"Wieder fällig","patient.recall.none":"Keine Wiedereinbestellung hinterlegt.","patient.honest":"Akten liegen in Ihrem Adminium-Dashboard — hier ist der Empfang.","accounts.title":"Konten","accounts.sub":"Was eingenommen wurde und was noch offen ist.","accounts.kpi.taken":"Heute eingenommen","accounts.kpi.outstanding":"Offen","accounts.kpi.noshow":"Nicht erschienen diese Woche","accounts.fees":"Was ein Besuch kostet","accounts.fees.sub":"Die Gebühr richtet sich nach der Dauer des Besuchs.","accounts.open":"Noch zu begleichen","accounts.open.sub":"Älteste zuerst, denn der älteste Posten ist den Anruf wert.","accounts.open.none":"Alles beglichen.","accounts.col.patient":"Patient","accounts.col.visit":"Besuch","accounts.col.since":"Erstellt","accounts.col.amount":"Saldo","accounts.record":"Zahlung erfassen","accounts.partial":"Teilweise bezahlt","pay.title":"Zahlung erfassen","pay.for":"{name} · {amount} offen","pay.amount":"Betrag","pay.method":"Wie","pay.method.card":"Karte","pay.method.cash":"Bar","pay.method.transfer":"Überweisung","pay.full":"Die vollen {amount} nehmen","pay.take":"Zahlung annehmen","pay.overpay":"Das ist mehr als die offenen {amount}.","pay.nonpositive":"Geben Sie einen Betrag über null ein.","recalls.title":"Wiedereinbestellungen","recalls.sub":"Personen, die wieder gesehen werden sollten.","recalls.overdue":"Überfällig","recalls.due":"Diesen Monat fällig","recalls.none":"Diesen Monat ist niemand wieder fällig.","recalls.from":"Nach {reason} am {date}","recalls.every":"Wieder gesehen in {count} Woche|Wieder gesehen in {count} Wochen","recalls.dueOn":"Fällig am {date}","recalls.late":"{count} Tag überfällig|{count} Tage überfällig","recalls.book":"Termin eintragen","notfound.title":"Diese Seite gibt es hier nicht","notfound.body":"Öffnungszeiten, Anfahrt und Kontakt finden Sie auf der Hauptseite. Diese Demo zeigt die Buchung und den Empfang.","notfound.action":"Zurück zur Tagesübersicht","notfound.actionPatient":"Zurück zur Buchung","settings.title":"Praxiseinstellungen","settings.sub":"Die Tage, an denen diese Praxis nicht arbeitet, und woher jeder davon stammt.","settings.closed.title":"Tage, an denen die Praxis geschlossen ist","settings.closed.count":"{count} Tag erfasst|{count} Tage erfasst","settings.closed.empty":"Nichts erfasst. Die Praxis öffnet von Montag bis Freitag.","settings.closed.whole":"Ganze Praxis","settings.closed.own":"Hier eingetragen","settings.closed.remove":"{reason} am {date} entfernen","settings.add.title":"Einen Schließtag eintragen","settings.add.date":"Datum","settings.add.reason":"Grund","settings.add.reasonHint":"In den eigenen Worten der Praxis — ein Fortbildungstag, ein Umbau, eine Beerdigung.","settings.add.who":"Wer ist abwesend","settings.add.everyone":"Die ganze Praxis","settings.add.submit":"Eintragen","settings.add.needed":"Geben Sie dem Tag ein Datum und einen Grund.","settings.add.duplicate":"Dieser Tag ist bereits erfasst. Entfernen Sie ihn zuerst, um den Grund zu ändern.","daysheet.closedFor":"Am {date} ist die Praxis geschlossen — {reason}.","daysheet.away":"Abwesend — {reason}","find.closedFor":"Geschlossen — {reason}","addon.host.title":"Erweiterungen","addon.host.sub":"Woher die Schließtage dieser Praxis sonst noch kommen können.","addon.host.reads":"Eine Erweiterung liest hier keine Patientenakte. Sie liefert Tage; der Terminkalender bleibt in dieser Praxis.","addon.host.on":"Einschalten","addon.host.off":"Ausschalten","addon.host.isOn":"Ein","addon.host.fromAddOn":"Von {name}","addon.host.dayFrom":"Dieser Tag stammt von {name}.","addon.host.dormant":"{count} gespeicherter Tag wird nicht angewendet.|{count} gespeicherte Tage werden nicht angewendet.","addon.host.dormantHow":"Nichts wurde gelöscht. Schalten Sie sie wieder ein, um die Tage erneut anzuwenden, oder tragen Sie die benötigten oben ein.","addon.host.none":"Dieser Build enthält keine Erweiterungen.","addon.host.slotEmpty":"Hier ist nichts eingeschaltet, die Liste oben ist also alles, was diese Praxis hat.","addon.host.notAffiliated":"Adminium steht in keiner Verbindung zu diesem Unternehmen."},"fr-FR":{"find.title":"Trouver un créneau","find.sub":"Dites-nous l’objet de la visite, choisissez la personne que vous souhaitez voir et prenez l’horaire qui vous convient.","find.step.reason":"Quel est l’objet de la visite ?","find.step.clinician":"Qui souhaitez-vous voir ?","find.step.day":"Quel jour ?","find.step.slot":"Créneaux disponibles le {date}","find.any":"Peu importe","find.any.role":"La première personne disponible","find.length":"Rendez-vous de {length}","find.feeLine":"{fee} · {length}","find.closed":"Fermé","find.weekend":"Le cabinet est fermé le week-end : samedi et dimanche ne sont donc pas proposés.","find.pastNote":"Il est {time} : les créneaux du début de matinée sont passés.","find.longer":"Une visite plus longue demande un créneau plus long, il y a donc moins d’horaires disponibles.","find.count":"{count} créneau disponible|{count} créneaux disponibles","find.taken":"Pris","find.gone":"Passé","find.slotLabel":"{time} avec {clinician}","find.empty.title":"Plus rien le {date}","find.empty.body":"Le prochain jour avec de la place est {next}.","find.empty.action":"Essayer {date}","find.empty.none":"Il n’y a pas de place le mois prochain pour cette combinaison. Essayez avec quelqu’un d’autre.","find.continue":"Continuer","find.chosen":"{time} avec {clinician}, {date}","details.title":"Vos coordonnées","details.sub":"Deux minutes et c’est fait.","details.been":"Êtes-vous déjà venu chez nous ?","details.returning":"Oui, je suis inscrit","details.first":"Non, c’est ma première visite","details.lookup.title":"Retrouver votre fiche","details.mobile":"Numéro de portable","details.dob":"Date de naissance","details.lookup.action":"Me retrouver","details.lookup.hint":"Démo : appuyez pour remplir {mobile} · {dob}","details.lookup.found":"Content de vous revoir, {name}.","details.lookup.miss":"Nous n’avons rien trouvé. Vérifiez le numéro et la date, ou réservez comme première visite.","details.first.title":"À propos de vous","details.name":"Nom complet","details.email":"E-mail","details.reason":"Quel est l’objet de la visite ?","details.reason.hint":"Une ligne suffit.","details.counter":"{count} sur 240","details.desknote":"L’accueil doit-il savoir quelque chose ?","details.desknote.hint":"Facultatif, et cela va à l’accueil — stationnement, accès, interprète, retard.","details.summary":"Votre visite","details.summary.clinician":"Praticien","details.summary.date":"Date","details.summary.time":"Heure","details.summary.length":"Durée","details.summary.fee":"Tarif de la visite","details.summary.payline":"À régler à l’accueil, ou ici tout de suite.","details.confirm":"Confirmer le rendez-vous","details.blocked":"Ajoutez vos coordonnées et nous pourrons confirmer.","details.back":"Changer d’horaire","confirm.title":"C’est réservé","confirm.sub":"Notez la référence ci-dessous. Ceci est une démo, aucun SMS réel n’est envoyé.","confirm.ref":"Référence","confirm.clinician":"Praticien","confirm.when":"Quand","confirm.where":"Où","confirm.calendar":"Ajouter à l’agenda","confirm.payNow":"Payer maintenant","confirm.payDesk":"Payer à l’accueil","confirm.paid":"Payé. Rien à régler à votre arrivée.","confirm.deskChosen":"Vous avez choisi de régler à l’accueil.","confirm.cancelLine":"Vous pouvez modifier ou annuler sans frais jusqu’à 24 heures avant votre rendez-vous.","confirm.myvisits":"Voir mes visites","myvisits.title":"Mes visites","myvisits.sub":"Retrouvez votre fiche et nous vous montrerons ce qui est réservé.","myvisits.lookup":"Retrouver vos visites","myvisits.upcoming":"À venir","myvisits.past":"Visites passées","myvisits.none":"Rien de réservé pour le moment.","myvisits.nonePast":"Aucune visite passée sur votre fiche.","myvisits.reschedule":"Déplacer","myvisits.cancel":"Annuler","myvisits.owes":"{amount} encore à régler","myvisits.settled":"Réglé","myvisits.book":"Réserver une autre visite","myvisits.switch":"Ce n’est pas vous ? Chercher quelqu’un d’autre","myvisits.with":"avec {clinician}","cancel.title":"Annuler {ref} ?","cancel.body":"Il s’agit de {when} avec {clinician}.","cancel.late.title":"C’est dans les 24 heures","cancel.late.body":"Annuler maintenant compte comme une annulation tardive et reste sur votre fiche. Si vous pouvez encore venir, gardez le créneau.","cancel.confirm":"Annuler la visite","card.title":"Payer {amount}","card.demo":"Ceci est une démo. Aucune carte réelle n’est débitée.","card.number":"Numéro de carte","card.expiry":"Expiration","card.cvc":"CVC","card.name":"Nom sur la carte","card.pay":"Payer {amount}","card.cancel":"Pas maintenant","daysheet.title":"Feuille du jour","daysheet.sub":"{count} visite aujourd’hui, {seen} déjà vue|{count} visites aujourd’hui, {seen} déjà vues","daysheet.prev":"La veille","daysheet.next":"Le lendemain","daysheet.today":"Aujourd’hui","daysheet.break":"Déjeuner","daysheet.now":"Maintenant","daysheet.closed":"Le cabinet est fermé le {date}.","daysheet.empty":"Rien de réservé.","daysheet.scrollHint":"Balayez sur le côté pour les autres praticiens.","daysheet.prefill":"Inscription de {name} pour {reason}.","daysheet.prefill.clear":"Effacer","daysheet.openVisit":"Ouvrir {name} à {time}","panel.title":"Visite {ref}","panel.patient":"Patient","panel.reason":"Motif de la visite","panel.desknote":"Pour l’accueil","panel.when":"Quand","panel.status":"Où elle en est","panel.checkIn":"La personne est arrivée","panel.advance":"Passer à {status}","panel.noShow":"Marquer comme absent","panel.cancel":"Annuler la visite","panel.openPatient":"Ouvrir le patient","panel.close":"Fermer le panneau","waiting.title":"Salle d’attente","waiting.sub":"Qui est dans les locaux en ce moment.","waiting.col.checked_in":"Enregistré","waiting.col.roomed":"En salle","waiting.col.with_clinician":"Avec le praticien","waiting.col.ready":"Peut partir","waiting.empty":"Personne pour l’instant.","waiting.chip":"attend depuis {count} min|attend depuis {count} min","waiting.advance":"Passer à {status}","waiting.finish":"La personne est partie","waiting.late.title":"N’est pas arrivé","waiting.late.sub":"Plus de 15 minutes après l’heure prévue.","waiting.late.none":"Toutes les personnes attendues jusqu’ici sont là.","waiting.late.chip":"{count} min de retard|{count} min de retard","waiting.late.arrived":"La personne est arrivée","waiting.late.noShow":"Marquer comme absent","patients.title":"Patients","patients.sub":"{count} personne sur la liste|{count} personnes sur la liste","patients.search":"Rechercher par nom","patients.age":"Âge","patients.last":"Dernière visite","patients.never":"Aucune visite","patients.allergies":"Allergies","patients.empty":"Personne ne correspond.","patients.open":"Ouvrir {name}","patient.back":"Tous les patients","patient.dob":"Date de naissance","patient.mobile":"Portable","patient.history":"Historique des visites","patient.upcoming":"À venir","patient.none":"Rien de réservé.","patient.noHistory":"Aucune visite.","patient.outstanding":"Reste à régler","patient.settled":"Rien à régler.","patient.recall":"À revoir le","patient.recall.none":"Aucun rappel.","patient.honest":"Les dossiers vivent dans votre tableau de bord Adminium — ici, c’est l’accueil.","accounts.title":"Comptes","accounts.sub":"Ce qui a été encaissé, et ce qui reste ouvert.","accounts.kpi.taken":"Encaissé aujourd’hui","accounts.kpi.outstanding":"Reste dû","accounts.kpi.noshow":"Absences cette semaine","accounts.fees":"Ce que coûte une visite","accounts.fees.sub":"Le tarif suit la durée de la visite.","accounts.open":"Reste à régler","accounts.open.sub":"Les plus anciens d’abord : c’est celui-là qui mérite un appel.","accounts.open.none":"Tout est réglé.","accounts.col.patient":"Patient","accounts.col.visit":"Visite","accounts.col.since":"Émis le","accounts.col.amount":"Solde","accounts.record":"Enregistrer un paiement","accounts.partial":"Partiellement réglé","pay.title":"Enregistrer un paiement","pay.for":"{name} · {amount} restant dû","pay.amount":"Montant","pay.method":"Comment","pay.method.card":"Carte","pay.method.cash":"Espèces","pay.method.transfer":"Virement","pay.full":"Encaisser la totalité ({amount})","pay.take":"Encaisser le paiement","pay.overpay":"C’est plus que les {amount} restant dus.","pay.nonpositive":"Saisissez un montant supérieur à zéro.","recalls.title":"Rappels","recalls.sub":"Les personnes à revoir.","recalls.overdue":"En retard","recalls.due":"À revoir ce mois-ci","recalls.none":"Personne à revoir ce mois-ci.","recalls.from":"Après {reason} le {date}","recalls.every":"À revoir dans {count} semaine|À revoir dans {count} semaines","recalls.dueOn":"À revoir le {date}","recalls.late":"{count} jour de retard|{count} jours de retard","recalls.book":"Leur donner un rendez-vous","notfound.title":"Cette page n’existe pas","notfound.body":"Les horaires, l’adresse et les moyens de nous joindre sont sur le site principal. Cette démo couvre la réservation et l’accueil.","notfound.action":"Retour à la feuille du jour","notfound.actionPatient":"Retour à la réservation","settings.title":"Réglages du cabinet","settings.sub":"Les jours où ce cabinet ne travaille pas, et d'où vient chacun d'eux.","settings.closed.title":"Jours de fermeture du cabinet","settings.closed.count":"{count} jour enregistré|{count} jours enregistrés","settings.closed.empty":"Rien n'est enregistré. Le cabinet ouvre du lundi au vendredi.","settings.closed.whole":"Tout le cabinet","settings.closed.own":"Saisi ici","settings.closed.remove":"Supprimer {reason} le {date}","settings.add.title":"Enregistrer un jour de fermeture","settings.add.date":"Date","settings.add.reason":"Motif","settings.add.reasonHint":"Dans les mots du cabinet — une journée de formation, des travaux, des obsèques.","settings.add.who":"Qui est absent","settings.add.everyone":"Tout le cabinet","settings.add.submit":"Enregistrer","settings.add.needed":"Donnez une date et un motif à ce jour.","settings.add.duplicate":"Ce jour est déjà enregistré. Supprimez-le d'abord pour en changer le motif.","daysheet.closedFor":"Le cabinet est fermé le {date} — {reason}.","daysheet.away":"Absent — {reason}","find.closedFor":"Fermé — {reason}","addon.host.title":"Modules","addon.host.sub":"D'où peuvent venir, par ailleurs, les jours de fermeture de ce cabinet.","addon.host.reads":"Un module ne lit ici aucun dossier de patient. Il fournit des jours ; l'agenda reste dans ce cabinet.","addon.host.on":"Activer","addon.host.off":"Désactiver","addon.host.isOn":"Activé","addon.host.fromAddOn":"De {name}","addon.host.dayFrom":"Ce jour vient de {name}.","addon.host.dormant":"{count} jour enregistré n'est pas appliqué.|{count} jours enregistrés ne sont pas appliqués.","addon.host.dormantHow":"Rien n'a été supprimé. Réactivez-le pour les appliquer de nouveau, ou saisissez ci-dessus ceux dont vous avez besoin.","addon.host.none":"Cette version ne contient aucun module.","addon.host.slotEmpty":"Rien n'est activé ici : la liste ci-dessus est donc tout ce que détient ce cabinet.","addon.host.notAffiliated":"Adminium n'est pas affilié à cette société."},"cs-CZ":{"find.title":"Najít termín","find.sub":"Řekněte nám, o co jde, vyberte si, koho chcete navštívit, a zvolte čas, který vám vyhovuje.","find.step.reason":"Čeho se návštěva týká?","find.step.clinician":"Koho chcete navštívit?","find.step.day":"Který den?","find.step.slot":"Dostupné časy dne {date}","find.any":"Kdokoli","find.any.role":"Kdo bude dřív dostupný","find.length":"Návštěva na {length}","find.feeLine":"{fee} · {length}","find.closed":"Zavřeno","find.weekend":"O víkendu má ordinace zavřeno, sobota a neděle se proto nenabízejí.","find.pastNote":"Je {time}, dřívější dopolední časy už jsou pryč.","find.longer":"Delší návštěva potřebuje delší mezeru, proto je pro ni dostupných méně časů.","find.count":"{count} dostupný čas|{count} dostupné časy|{count} dostupných časů","find.taken":"Obsazeno","find.gone":"Pryč","find.slotLabel":"{time} u {clinician}","find.empty.title":"{date} už nic nezbývá","find.empty.body":"Nejbližší den s místem je {next}.","find.empty.action":"Zkusit {date}","find.empty.none":"Pro tuto kombinaci není v příštím měsíci místo. Zkuste někoho jiného.","find.continue":"Pokračovat","find.chosen":"{time} u {clinician}, {date}","details.title":"Vaše údaje","details.sub":"Dvě minuty a je hotovo.","details.been":"Byli jste u nás už dřív?","details.returning":"Ano, jsem registrovaný","details.first":"Ne, jsem tu poprvé","details.lookup.title":"Najít váš záznam","details.mobile":"Číslo mobilu","details.dob":"Datum narození","details.lookup.action":"Najít mě","details.lookup.hint":"Ukázka: klepnutím vyplníte {mobile} · {dob}","details.lookup.found":"Vítejte zpět, {name}.","details.lookup.miss":"Nic jsme nenašli. Zkontrolujte číslo a datum, nebo se objednejte jako nový pacient.","details.first.title":"O vás","details.name":"Celé jméno","details.email":"E-mail","details.reason":"Čeho se návštěva týká?","details.reason.hint":"Stačí jeden řádek.","details.counter":"{count} z 240","details.desknote":"Má recepce něco vědět?","details.desknote.hint":"Nepovinné, míří to na recepci — parkování, přístup, tlumočník, zpoždění.","details.summary":"Vaše návštěva","details.summary.clinician":"Ošetřující","details.summary.date":"Datum","details.summary.time":"Čas","details.summary.length":"Délka","details.summary.fee":"Cena návštěvy","details.summary.payline":"Zaplatíte na recepci, nebo rovnou tady.","details.confirm":"Potvrdit rezervaci","details.blocked":"Doplňte údaje a můžeme to potvrdit.","details.back":"Změnit čas","confirm.title":"Máte rezervováno","confirm.sub":"Poznamenejte si číslo rezervace níže. Toto je ukázka, žádná skutečná SMS se neodesílá.","confirm.ref":"Číslo rezervace","confirm.clinician":"Ošetřující","confirm.when":"Kdy","confirm.where":"Kde","confirm.calendar":"Přidat do kalendáře","confirm.payNow":"Zaplatit teď","confirm.payDesk":"Zaplatit na recepci","confirm.paid":"Zaplaceno. Při příchodu už nic nedoplácíte.","confirm.deskChosen":"Zvolili jste platbu na recepci.","confirm.cancelLine":"Do 24 hodin před termínem můžete rezervaci změnit nebo zrušit bez poplatku.","confirm.myvisits":"Zobrazit moje návštěvy","myvisits.title":"Moje návštěvy","myvisits.sub":"Vyhledejte se a ukážeme vám, co máte rezervované.","myvisits.lookup":"Najít vaše návštěvy","myvisits.upcoming":"Nadcházející","myvisits.past":"Uplynulé návštěvy","myvisits.none":"Momentálně nic rezervovaného.","myvisits.nonePast":"Ve vašem záznamu nejsou žádné uplynulé návštěvy.","myvisits.reschedule":"Přeobjednat","myvisits.cancel":"Zrušit","myvisits.owes":"{amount} zbývá doplatit","myvisits.settled":"Vyrovnáno","myvisits.book":"Rezervovat další návštěvu","myvisits.switch":"Nejste to vy? Vyhledat někoho jiného","myvisits.with":"u {clinician}","cancel.title":"Zrušit {ref}?","cancel.body":"Jde o {when} u {clinician}.","cancel.late.title":"Zbývá méně než 24 hodin","cancel.late.body":"Zrušení teď se počítá jako pozdní a zůstane ve vašem záznamu. Pokud to ještě stihnete, termín si nechte.","cancel.confirm":"Zrušit návštěvu","card.title":"Zaplatit {amount}","card.demo":"Toto je ukázka. Žádná skutečná karta se nestrhává.","card.number":"Číslo karty","card.expiry":"Platnost do","card.cvc":"CVC","card.name":"Jméno na kartě","card.pay":"Zaplatit {amount}","card.cancel":"Teď ne","daysheet.title":"Denní přehled","daysheet.sub":"{count} návštěva dnes, z toho {seen} hotových|{count} návštěvy dnes, z toho {seen} hotových|{count} návštěv dnes, z toho {seen} hotových","daysheet.prev":"Předchozí den","daysheet.next":"Následující den","daysheet.today":"Dnes","daysheet.break":"Oběd","daysheet.now":"Teď","daysheet.closed":"{date} má ordinace zavřeno.","daysheet.empty":"Nic rezervovaného.","daysheet.scrollHint":"Přejeďte do strany na další ošetřující.","daysheet.prefill":"{name} se zapisuje na {reason}.","daysheet.prefill.clear":"Vymazat","daysheet.openVisit":"Otevřít {name} v {time}","panel.title":"Návštěva {ref}","panel.patient":"Pacient","panel.reason":"Důvod návštěvy","panel.desknote":"Pro recepci","panel.when":"Kdy","panel.status":"Kde právě je","panel.checkIn":"Dorazili","panel.advance":"Posunout na {status}","panel.noShow":"Označit jako nedostavení","panel.cancel":"Zrušit návštěvu","panel.openPatient":"Otevřít pacienta","panel.close":"Zavřít panel","waiting.title":"Čekárna","waiting.sub":"Kdo je právě v budově.","waiting.col.checked_in":"Přihlášeni","waiting.col.roomed":"V ordinaci","waiting.col.with_clinician":"U ošetřujícího","waiting.col.ready":"Může jít","waiting.empty":"Zatím tu nikdo není.","waiting.chip":"čeká {count} min|čeká {count} min|čeká {count} min","waiting.advance":"Posunout na {status}","waiting.finish":"Odešli","waiting.late.title":"Nedorazili","waiting.late.sub":"Více než 15 minut po svém čase.","waiting.late.none":"Všichni, kdo měli dorazit, jsou tu.","waiting.late.chip":"{count} min zpoždění|{count} min zpoždění|{count} min zpoždění","waiting.late.arrived":"Dorazili","waiting.late.noShow":"Označit jako nedostavení","patients.title":"Pacienti","patients.sub":"{count} osoba v seznamu|{count} osoby v seznamu|{count} osob v seznamu","patients.search":"Hledat podle jména","patients.age":"Věk","patients.last":"Poslední návštěva","patients.never":"Zatím žádné návštěvy","patients.allergies":"Alergie","patients.empty":"Tomu nikdo neodpovídá.","patients.open":"Otevřít {name}","patient.back":"Všichni pacienti","patient.dob":"Datum narození","patient.mobile":"Mobil","patient.history":"Historie návštěv","patient.upcoming":"Nadcházející","patient.none":"Nic rezervovaného.","patient.noHistory":"Zatím žádné návštěvy.","patient.outstanding":"Nedoplatek","patient.settled":"Žádný nedoplatek.","patient.recall":"Znovu na řadě","patient.recall.none":"Žádné pozvání na kontrolu.","patient.honest":"Záznamy žijí ve vašem dashboardu Adminium — tohle je recepce.","accounts.title":"Účty","accounts.sub":"Co se vybralo a co je stále otevřené.","accounts.kpi.taken":"Vybráno dnes","accounts.kpi.outstanding":"Nedoplatky","accounts.kpi.noshow":"Nedostavení tento týden","accounts.fees":"Kolik návštěva stojí","accounts.fees.sub":"Cena se řídí délkou návštěvy.","accounts.open":"Zbývá vyrovnat","accounts.open.sub":"Nejstarší nahoře, protože právě ten nejstarší stojí za telefonát.","accounts.open.none":"Vše je vyrovnané.","accounts.col.patient":"Pacient","accounts.col.visit":"Návštěva","accounts.col.since":"Vystaveno","accounts.col.amount":"Zůstatek","accounts.record":"Zaznamenat platbu","accounts.partial":"Částečně zaplaceno","pay.title":"Zaznamenat platbu","pay.for":"{name} · {amount} k doplacení","pay.amount":"Částka","pay.method":"Jak","pay.method.card":"Kartou","pay.method.cash":"Hotově","pay.method.transfer":"Převodem","pay.full":"Vzít celých {amount}","pay.take":"Přijmout platbu","pay.overpay":"To je víc než {amount}, které zbývají.","pay.nonpositive":"Zadejte částku větší než nula.","recalls.title":"Kontroly","recalls.sub":"Lidé, které je potřeba znovu vidět.","recalls.overdue":"Po termínu","recalls.due":"Tento měsíc","recalls.none":"Tento měsíc není na řadě nikdo.","recalls.from":"Po {reason} dne {date}","recalls.every":"Znovu za {count} týden|Znovu za {count} týdny|Znovu za {count} týdnů","recalls.dueOn":"Termín {date}","recalls.late":"{count} den po termínu|{count} dny po termínu|{count} dní po termínu","recalls.book":"Objednat je","notfound.title":"Tahle stránka tu není","notfound.body":"Otevírací doba, mapa a spojení na nás jsou na hlavním webu. Tahle ukázka pokrývá rezervace a recepci.","notfound.action":"Zpět na denní přehled","notfound.actionPatient":"Zpět na rezervaci","settings.title":"Nastavení ordinace","settings.sub":"Dny, kdy tato ordinace nepracuje, a odkud každý z nich pochází.","settings.closed.title":"Dny, kdy má ordinace zavřeno","settings.closed.count":"{count} zapsaný den|{count} zapsané dny|{count} zapsaných dnů","settings.closed.empty":"Nic není zapsáno. Ordinace má otevřeno od pondělí do pátku.","settings.closed.whole":"Celá ordinace","settings.closed.own":"Zapsáno zde","settings.closed.remove":"Odstranit {reason} dne {date}","settings.add.title":"Zapsat den zavření","settings.add.date":"Datum","settings.add.reason":"Důvod","settings.add.reasonHint":"Vlastními slovy ordinace — školení, rekonstrukce, pohřeb.","settings.add.who":"Kdo chybí","settings.add.everyone":"Celá ordinace","settings.add.submit":"Zapsat","settings.add.needed":"Zadejte datum a důvod.","settings.add.duplicate":"Tento den je již zapsán. Nejprve jej odstraňte, chcete-li změnit důvod.","daysheet.closedFor":"{date} má ordinace zavřeno — {reason}.","daysheet.away":"Nepřítomen — {reason}","find.closedFor":"Zavřeno — {reason}","addon.host.title":"Doplňky","addon.host.sub":"Odkud ještě mohou pocházet dny zavření této ordinace.","addon.host.reads":"Doplněk zde nečte žádnou kartu pacienta. Dodává dny; diář zůstává v této ordinaci.","addon.host.on":"Zapnout","addon.host.off":"Vypnout","addon.host.isOn":"Zapnuto","addon.host.fromAddOn":"Zdroj: {name}","addon.host.dayFrom":"Tento den dodal doplněk {name}.","addon.host.dormant":"{count} uložený den se nepoužívá.|{count} uložené dny se nepoužívají.|{count} uložených dnů se nepoužívá.","addon.host.dormantHow":"Nic nebylo smazáno. Zapněte doplněk znovu a dny se opět použijí, nebo si potřebné zapište výše.","addon.host.none":"Toto sestavení neobsahuje žádné doplňky.","addon.host.slotEmpty":"Nic zde není zapnuto, takže seznam výše je vše, co tato ordinace má.","addon.host.notAffiliated":"Adminium není nijak spojeno s touto společností."},"da-DK":{"find.title":"Find en tid","find.sub":"Fortæl os, hvad besøget handler om, vælg hvem du gerne vil se, og tag en tid, der passer dig.","find.step.reason":"Hvad handler besøget om?","find.step.clinician":"Hvem vil du gerne se?","find.step.day":"Hvilken dag?","find.step.slot":"Ledige tider den {date}","find.any":"Hvem som helst","find.any.role":"Den, der kan først","find.length":"Besøg på {length}","find.feeLine":"{fee} · {length}","find.closed":"Lukket","find.weekend":"Klinikken holder lukket i weekenden, så lørdag og søndag tilbydes ikke.","find.pastNote":"Klokken er {time}, så formiddagens tidligere tider er væk.","find.longer":"Et længere besøg kræver et længere hul, så der er færre tider at tage.","find.count":"{count} ledig tid|{count} ledige tider","find.taken":"Optaget","find.gone":"Væk","find.slotLabel":"{time} hos {clinician}","find.empty.title":"Der er ikke mere den {date}","find.empty.body":"Den næste dag med plads er {next}.","find.empty.action":"Prøv {date}","find.empty.none":"Der er ikke plads den næste måned til den kombination. Prøv en anden behandler.","find.continue":"Fortsæt","find.chosen":"{time} hos {clinician}, {date}","details.title":"Dine oplysninger","details.sub":"To minutter, så er du færdig.","details.been":"Har du været her før?","details.returning":"Ja, jeg er oprettet","details.first":"Nej, det er mit første besøg","details.lookup.title":"Find dine oplysninger","details.mobile":"Mobilnummer","details.dob":"Fødselsdato","details.lookup.action":"Find mig","details.lookup.hint":"Demo: tryk for at udfylde {mobile} · {dob}","details.lookup.found":"Velkommen tilbage, {name}.","details.lookup.miss":"Det kunne vi ikke finde. Tjek nummeret og datoen, eller book det som et første besøg.","details.first.title":"Om dig","details.name":"Fulde navn","details.email":"E-mail","details.reason":"Hvad handler besøget om?","details.reason.hint":"En linje er rigeligt.","details.counter":"{count} af 240","details.desknote":"Er der noget, receptionen skal vide?","details.desknote.hint":"Valgfrit, og det går til receptionen — parkering, adgang, tolk, forsinkelse.","details.summary":"Dit besøg","details.summary.clinician":"Behandler","details.summary.date":"Dato","details.summary.time":"Tidspunkt","details.summary.length":"Varighed","details.summary.fee":"Pris for besøget","details.summary.payline":"Betales i receptionen — eller her med det samme.","details.confirm":"Bekræft bookingen","details.blocked":"Tilføj dine oplysninger, så kan vi bekræfte.","details.back":"Skift tidspunkt","confirm.title":"Du er booket ind","confirm.sub":"Notér referencen nedenfor. Dette er en demo, der sendes ingen rigtig sms.","confirm.ref":"Reference","confirm.clinician":"Behandler","confirm.when":"Hvornår","confirm.where":"Hvor","confirm.calendar":"Læg i kalenderen","confirm.payNow":"Betal nu","confirm.payDesk":"Betal i receptionen","confirm.paid":"Betalt. Der er intet at afregne, når du kommer.","confirm.deskChosen":"Du har valgt at betale i receptionen.","confirm.cancelLine":"Du kan ændre eller aflyse uden gebyr indtil 24 timer før din tid.","confirm.myvisits":"Se mine besøg","myvisits.title":"Mine besøg","myvisits.sub":"Slå dig selv op, så viser vi, hvad der er booket.","myvisits.lookup":"Find dine besøg","myvisits.upcoming":"Kommende","myvisits.past":"Tidligere besøg","myvisits.none":"Der er ikke booket noget lige nu.","myvisits.nonePast":"Ingen tidligere besøg registreret.","myvisits.reschedule":"Flyt","myvisits.cancel":"Aflys","myvisits.owes":"{amount} mangler at blive betalt","myvisits.settled":"Betalt","myvisits.book":"Book et besøg mere","myvisits.switch":"Ikke dig? Slå en anden op","myvisits.with":"hos {clinician}","cancel.title":"Aflys {ref}?","cancel.body":"Det er {when} hos {clinician}.","cancel.late.title":"Der er under 24 timer til","cancel.late.body":"Aflyser du nu, tæller det som en sen aflysning og bliver stående på dine oplysninger. Kan du stadig nå det, så behold tiden.","cancel.confirm":"Aflys besøget","card.title":"Betal {amount}","card.demo":"Dette er en demo. Der trækkes ikke på et rigtigt kort.","card.number":"Kortnummer","card.expiry":"Udløb","card.cvc":"CVC","card.name":"Navn på kortet","card.pay":"Betal {amount}","card.cancel":"Ikke nu","daysheet.title":"Dagens liste","daysheet.sub":"{count} besøg i dag, {seen} allerede set|{count} besøg i dag, {seen} allerede set","daysheet.prev":"Dagen før","daysheet.next":"Dagen efter","daysheet.today":"I dag","daysheet.break":"Frokost","daysheet.now":"Nu","daysheet.closed":"Klinikken holder lukket den {date}.","daysheet.empty":"Intet booket.","daysheet.scrollHint":"Stryg til siden for de andre behandlere.","daysheet.prefill":"{name} bookes ind til {reason}.","daysheet.prefill.clear":"Ryd","daysheet.openVisit":"Åbn {name} kl. {time}","panel.title":"Besøg {ref}","panel.patient":"Patient","panel.reason":"Årsag til besøget","panel.desknote":"Til receptionen","panel.when":"Hvornår","panel.status":"Hvor de er","panel.checkIn":"De er kommet","panel.advance":"Ryk til {status}","panel.noShow":"Marker som udeblevet","panel.cancel":"Aflys besøget","panel.openPatient":"Åbn patienten","panel.close":"Luk panelet","waiting.title":"Venteværelse","waiting.sub":"Hvem der er i huset lige nu.","waiting.col.checked_in":"Meldt ankomst","waiting.col.roomed":"I lokalet","waiting.col.with_clinician":"Hos behandleren","waiting.col.ready":"Klar til at gå","waiting.empty":"Ingen er her endnu.","waiting.chip":"venter {count} min|venter {count} min","waiting.advance":"Ryk til {status}","waiting.finish":"De er gået","waiting.late.title":"Er ikke kommet","waiting.late.sub":"Mere end 15 minutter over tiden.","waiting.late.none":"Alle, der er ventet indtil nu, er her.","waiting.late.chip":"{count} min forsinket|{count} min forsinket","waiting.late.arrived":"De er kommet","waiting.late.noShow":"Marker som udeblevet","patients.title":"Patienter","patients.sub":"{count} person på listen|{count} personer på listen","patients.search":"Søg på navn","patients.age":"Alder","patients.last":"Seneste besøg","patients.never":"Ingen besøg endnu","patients.allergies":"Allergier","patients.empty":"Ingen passer på det.","patients.open":"Åbn {name}","patient.back":"Alle patienter","patient.dob":"Fødselsdato","patient.mobile":"Mobil","patient.history":"Besøgshistorik","patient.upcoming":"Kommende","patient.none":"Intet booket.","patient.noHistory":"Ingen besøg endnu.","patient.outstanding":"Udestående","patient.settled":"Intet udestående.","patient.recall":"Skal ses igen","patient.recall.none":"Ingen indkaldelse sat op.","patient.honest":"Oplysningerne bor i dit Adminium-dashboard — her er receptionen.","accounts.title":"Konti","accounts.sub":"Hvad der er taget ind, og hvad der stadig er åbent.","accounts.kpi.taken":"Taget ind i dag","accounts.kpi.outstanding":"Udestående","accounts.kpi.noshow":"Udeblivelser i denne uge","accounts.fees":"Hvad et besøg koster","accounts.fees.sub":"Prisen følger besøgets længde.","accounts.open":"Mangler at blive betalt","accounts.open.sub":"Ældste først, for det er den ældste, der er et opkald værd.","accounts.open.none":"Alt er betalt.","accounts.col.patient":"Patient","accounts.col.visit":"Besøg","accounts.col.since":"Oprettet","accounts.col.amount":"Saldo","accounts.record":"Registrer en betaling","accounts.partial":"Delvist betalt","pay.title":"Registrer en betaling","pay.for":"{name} · {amount} udestående","pay.amount":"Beløb","pay.method":"Hvordan","pay.method.card":"Kort","pay.method.cash":"Kontant","pay.method.transfer":"Overførsel","pay.full":"Tag hele {amount}","pay.take":"Tag betalingen","pay.overpay":"Det er mere end de {amount}, der er udestående.","pay.nonpositive":"Indtast et beløb over nul.","recalls.title":"Indkaldelser","recalls.sub":"Folk, der skal ses igen.","recalls.overdue":"Overskredet","recalls.due":"Skal ses denne måned","recalls.none":"Ingen skal ses igen denne måned.","recalls.from":"Efter {reason} den {date}","recalls.every":"Ses igen om {count} uge|Ses igen om {count} uger","recalls.dueOn":"Skal ses {date}","recalls.late":"{count} dag over tiden|{count} dage over tiden","recalls.book":"Book dem ind","notfound.title":"Den side findes ikke her","notfound.body":"Åbningstider, kort og kontakt ligger på hovedsiden. Denne demo dækker booking og receptionen.","notfound.action":"Tilbage til dagens liste","notfound.actionPatient":"Tilbage til booking","settings.title":"Klinikkens indstillinger","settings.sub":"De dage, hvor klinikken ikke arbejder, og hvor hver af dem kommer fra.","settings.closed.title":"Dage hvor klinikken holder lukket","settings.closed.count":"{count} dag registreret|{count} dage registreret","settings.closed.empty":"Intet er registreret. Klinikken har åbent mandag til fredag.","settings.closed.whole":"Hele klinikken","settings.closed.own":"Indtastet her","settings.closed.remove":"Fjern {reason} den {date}","settings.add.title":"Registrer en lukkedag","settings.add.date":"Dato","settings.add.reason":"Årsag","settings.add.reasonHint":"Med klinikkens egne ord — en kursusdag, en ombygning, en begravelse.","settings.add.who":"Hvem er væk","settings.add.everyone":"Hele klinikken","settings.add.submit":"Registrer","settings.add.needed":"Giv dagen en dato og en årsag.","settings.add.duplicate":"Den dag er allerede registreret. Fjern den først for at ændre årsagen.","daysheet.closedFor":"Klinikken holder lukket den {date} — {reason}.","daysheet.away":"Fraværende — {reason}","find.closedFor":"Lukket — {reason}","addon.host.title":"Tilføjelser","addon.host.sub":"Hvor klinikkens lukkedage ellers kan komme fra.","addon.host.reads":"En tilføjelse læser ingen patientjournal her. Den leverer dage; kalenderen bliver i klinikken.","addon.host.on":"Slå til","addon.host.off":"Slå fra","addon.host.isOn":"Til","addon.host.fromAddOn":"Fra {name}","addon.host.dayFrom":"Denne dag kom fra {name}.","addon.host.dormant":"{count} gemt dag bruges ikke.|{count} gemte dage bruges ikke.","addon.host.dormantHow":"Intet blev slettet. Slå den til igen for at bruge dagene, eller registrer dem, I har brug for, ovenfor.","addon.host.none":"Denne udgave indeholder ingen tilføjelser.","addon.host.slotEmpty":"Intet er slået til her, så listen ovenfor er alt, hvad klinikken har.","addon.host.notAffiliated":"Adminium er ikke tilknyttet dette firma."},"zh-CN":{"find.title":"选择就诊时间","find.sub":"告诉我们此次就诊的事由,选择您想见的医护人员,再挑一个方便的时间。","find.step.reason":"此次就诊是为了什么?","find.step.clinician":"您想见谁?","find.step.day":"哪一天?","find.step.slot":"{date} 的可约时间","find.any":"都可以","find.any.role":"谁先有时间就找谁","find.length":"{length} 的就诊","find.feeLine":"{fee} · {length}","find.closed":"休诊","find.weekend":"周末诊所休诊,因此不提供周六和周日。","find.pastNote":"现在是 {time},今天上午较早的时间已经过了。","find.longer":"较长的就诊需要更长的空档,所以可约的时间会少一些。","find.count":"{count} 个可约时间","find.taken":"已约满","find.gone":"已过","find.slotLabel":"{time} 由 {clinician} 接诊","find.empty.title":"{date} 已经约满","find.empty.body":"下一个还有名额的日子是 {next}。","find.empty.action":"试试 {date}","find.empty.none":"下个月这个组合都没有名额了,换一位医护人员试试。","find.continue":"继续","find.chosen":"{date} {time},{clinician}","details.title":"您的信息","details.sub":"两分钟就好。","details.been":"您以前来过吗?","details.returning":"来过,我已登记","details.first":"没有,这是我第一次就诊","details.lookup.title":"找到您的记录","details.mobile":"手机号码","details.dob":"出生日期","details.lookup.action":"找到我","details.lookup.hint":"演示:点一下即可填入 {mobile} · {dob}","details.lookup.found":"{name},欢迎回来。","details.lookup.miss":"没有找到。请核对号码和日期,或按首次就诊预约。","details.first.title":"关于您","details.name":"姓名","details.email":"电子邮箱","details.reason":"此次就诊是为了什么?","details.reason.hint":"一行就够了。","details.counter":"{count} / 240","details.desknote":"有什么要告诉前台的吗?","details.desknote.hint":"选填,内容会送到前台——停车、通行、翻译、可能迟到。","details.summary":"您的就诊","details.summary.clinician":"医护人员","details.summary.date":"日期","details.summary.time":"时间","details.summary.length":"时长","details.summary.fee":"就诊费用","details.summary.payline":"可在前台支付,也可以现在就付。","details.confirm":"确认预约","details.blocked":"填好信息,我们就能确认。","details.back":"换个时间","confirm.title":"已为您约好","confirm.sub":"请记下下方的编号。这是演示,不会真的发送短信。","confirm.ref":"编号","confirm.clinician":"医护人员","confirm.when":"时间","confirm.where":"地点","confirm.calendar":"加入日历","confirm.payNow":"现在支付","confirm.payDesk":"到前台支付","confirm.paid":"已支付,到诊时无需再结。","confirm.deskChosen":"您选择到前台结账。","confirm.cancelLine":"在就诊前 24 小时之前,您可以更改或取消,我们不收取任何费用。","confirm.myvisits":"查看我的就诊","myvisits.title":"我的就诊","myvisits.sub":"查一下您自己,我们会显示已经约好的内容。","myvisits.lookup":"查找您的就诊","myvisits.upcoming":"即将到来","myvisits.past":"过往就诊","myvisits.none":"目前没有预约。","myvisits.nonePast":"记录里没有过往就诊。","myvisits.reschedule":"改期","myvisits.cancel":"取消","myvisits.owes":"还需结清 {amount}","myvisits.settled":"已结清","myvisits.book":"再约一次","myvisits.switch":"不是您?换个人查","myvisits.with":"由 {clinician} 接诊","cancel.title":"取消 {ref}?","cancel.body":"这是 {when},由 {clinician} 接诊。","cancel.late.title":"距离就诊不到 24 小时","cancel.late.body":"现在取消算作临时取消,会留在您的记录里。如果还赶得上,就把时间留着吧。","cancel.confirm":"取消这次就诊","card.title":"支付 {amount}","card.demo":"这是演示,不会扣真实银行卡。","card.number":"卡号","card.expiry":"有效期","card.cvc":"安全码","card.name":"持卡人姓名","card.pay":"支付 {amount}","card.cancel":"暂时不用","daysheet.title":"当日一览","daysheet.sub":"今天 {count} 次就诊,已看 {seen} 位","daysheet.prev":"前一天","daysheet.next":"后一天","daysheet.today":"今天","daysheet.break":"午休","daysheet.now":"现在","daysheet.closed":"{date} 诊所休诊。","daysheet.empty":"没有预约。","daysheet.scrollHint":"向旁边滑动可查看其他医护人员。","daysheet.prefill":"正在为 {name} 预约{reason}。","daysheet.prefill.clear":"清除","daysheet.openVisit":"打开 {time} 的 {name}","panel.title":"就诊 {ref}","panel.patient":"患者","panel.reason":"就诊事由","panel.desknote":"给前台的话","panel.when":"时间","panel.status":"目前在哪一步","panel.checkIn":"人已到","panel.advance":"推进到{status}","panel.noShow":"标记为未到","panel.cancel":"取消这次就诊","panel.openPatient":"打开患者","panel.close":"关闭面板","waiting.title":"候诊区","waiting.sub":"现在在院内的人。","waiting.col.checked_in":"已签到","waiting.col.roomed":"已进诊室","waiting.col.with_clinician":"正在就诊","waiting.col.ready":"可以离开","waiting.empty":"还没有人到。","waiting.chip":"已等 {count} 分钟","waiting.advance":"推进到{status}","waiting.finish":"已离开","waiting.late.title":"尚未到达","waiting.late.sub":"已超过预约时间 15 分钟以上。","waiting.late.none":"到目前为止该来的都来了。","waiting.late.chip":"迟到 {count} 分钟","waiting.late.arrived":"人已到","waiting.late.noShow":"标记为未到","patients.title":"患者","patients.sub":"名单上有 {count} 人","patients.search":"按姓名搜索","patients.age":"年龄","patients.last":"最近一次就诊","patients.never":"还没有就诊记录","patients.allergies":"过敏","patients.empty":"没有匹配的人。","patients.open":"打开 {name}","patient.back":"全部患者","patient.dob":"出生日期","patient.mobile":"手机","patient.history":"就诊记录","patient.upcoming":"即将到来","patient.none":"没有预约。","patient.noHistory":"还没有就诊记录。","patient.outstanding":"未结清","patient.settled":"没有未结清的款项。","patient.recall":"应再次就诊","patient.recall.none":"未设置复诊提醒。","patient.honest":"资料保存在您的 Adminium 仪表板里——这里是前台。","accounts.title":"账目","accounts.sub":"已经收到的,以及还没结清的。","accounts.kpi.taken":"今日收款","accounts.kpi.outstanding":"未结清","accounts.kpi.noshow":"本周未到","accounts.fees":"一次就诊的费用","accounts.fees.sub":"费用按就诊时长计算。","accounts.open":"还需结清","accounts.open.sub":"最早的排在前面,因为最早的那笔最值得打个电话。","accounts.open.none":"全部已结清。","accounts.col.patient":"患者","accounts.col.visit":"就诊","accounts.col.since":"记账日","accounts.col.amount":"余额","accounts.record":"登记一笔收款","accounts.partial":"部分已付","pay.title":"登记一笔收款","pay.for":"{name} · 未结清 {amount}","pay.amount":"金额","pay.method":"方式","pay.method.card":"刷卡","pay.method.cash":"现金","pay.method.transfer":"转账","pay.full":"全额收取 {amount}","pay.take":"确认收款","pay.overpay":"这超过了未结清的 {amount}。","pay.nonpositive":"请输入大于零的金额。","recalls.title":"复诊提醒","recalls.sub":"需要再来一次的人。","recalls.overdue":"已逾期","recalls.due":"本月到期","recalls.none":"本月没有人需要复诊。","recalls.from":"在 {date} 的{reason}之后","recalls.every":"{count} 周后再看一次","recalls.dueOn":"{date} 到期","recalls.late":"已逾期 {count} 天","recalls.book":"帮他们预约","notfound.title":"这个页面不在这里","notfound.body":"门诊时间、地图和联系方式都在主站上。本演示涵盖预约和前台两部分。","notfound.action":"返回当日一览","notfound.actionPatient":"返回预约","settings.title":"诊所设置","settings.sub":"本诊所不接诊的日期,以及每一天的来源。","settings.closed.title":"诊所休诊的日期","settings.closed.count":"已记录 {count} 天","settings.closed.empty":"尚未记录任何日期。诊所周一至周五开诊。","settings.closed.whole":"整个诊所","settings.closed.own":"本处录入","settings.closed.remove":"删除 {date} 的{reason}","settings.add.title":"记录一个休诊日","settings.add.date":"日期","settings.add.reason":"原因","settings.add.reasonHint":"用诊所自己的话写 — 培训日、装修、丧假。","settings.add.who":"谁不在","settings.add.everyone":"整个诊所","settings.add.submit":"记录","settings.add.needed":"请填写日期和原因。","settings.add.duplicate":"该日期已记录。若要修改原因,请先删除它。","daysheet.closedFor":"{date} 诊所休诊 — {reason}。","daysheet.away":"缺席 — {reason}","find.closedFor":"休诊 — {reason}","addon.host.title":"扩展","addon.host.sub":"本诊所的休诊日还可以来自哪里。","addon.host.reads":"此处的扩展不读取任何病历。它只提供日期;诊疗记录留在本诊所。","addon.host.on":"开启","addon.host.off":"关闭","addon.host.isOn":"已开启","addon.host.fromAddOn":"来自 {name}","addon.host.dayFrom":"这一天来自 {name}。","addon.host.dormant":"已保存的 {count} 天未生效。","addon.host.dormantHow":"没有删除任何内容。重新开启即可再次生效,或在上方录入所需的日期。","addon.host.none":"此版本不含任何扩展。","addon.host.slotEmpty":"此处未开启任何扩展,上面的列表就是本诊所记录的全部。","addon.host.notAffiliated":"Adminium 与该公司没有关联。"},"zh-TW":{"find.title":"預約看診時間","find.sub":"告訴我們這次看診的原因,選擇想看的醫療人員,再挑一個方便的時間。","find.step.reason":"這次看診是為了什麼?","find.step.clinician":"您想看哪一位?","find.step.day":"哪一天?","find.step.slot":"{date} 可預約的時段","find.any":"都可以","find.any.role":"誰先有時間就看誰","find.length":"{length} 的看診","find.feeLine":"{fee} · {length}","find.closed":"休診","find.weekend":"診所週末休診,因此不提供週六與週日。","find.pastNote":"現在是 {time},今天上午較早的時段已經過了。","find.longer":"看診時間較長就需要較長的空檔,因此可預約的時段比較少。","find.count":"{count} 個可預約時段","find.taken":"已額滿","find.gone":"已過","find.slotLabel":"{time} 由 {clinician} 看診","find.empty.title":"{date} 已經沒有時段","find.empty.body":"下一個還有名額的日子是 {next}。","find.empty.action":"試試 {date}","find.empty.none":"下個月這個組合已經沒有名額,請改選其他醫療人員。","find.continue":"繼續","find.chosen":"{date} {time},{clinician}","details.title":"您的資料","details.sub":"兩分鐘就完成。","details.been":"您以前來過嗎?","details.returning":"來過,我已經建檔","details.first":"沒有,這是我第一次看診","details.lookup.title":"找出您的資料","details.mobile":"手機號碼","details.dob":"出生日期","details.lookup.action":"找到我","details.lookup.hint":"示範:點一下即可填入 {mobile} · {dob}","details.lookup.found":"{name},歡迎回來。","details.lookup.miss":"找不到這筆資料。請核對號碼與日期,或以初診預約。","details.first.title":"關於您","details.name":"姓名","details.email":"電子郵件","details.reason":"這次看診是為了什麼?","details.reason.hint":"一行就夠了。","details.counter":"{count} / 240","details.desknote":"有什麼要讓櫃檯知道的嗎?","details.desknote.hint":"選填,內容會送到櫃檯——停車、無障礙、口譯、可能遲到。","details.summary":"您的看診","details.summary.clinician":"醫療人員","details.summary.date":"日期","details.summary.time":"時間","details.summary.length":"時長","details.summary.fee":"看診費用","details.summary.payline":"可以在櫃檯付款,也可以現在就付。","details.confirm":"確認預約","details.blocked":"填好資料,我們就能確認。","details.back":"換個時間","confirm.title":"已經為您預約好","confirm.sub":"請記下下方的編號。這是示範,不會真的發送簡訊。","confirm.ref":"編號","confirm.clinician":"醫療人員","confirm.when":"時間","confirm.where":"地點","confirm.calendar":"加入行事曆","confirm.payNow":"現在付款","confirm.payDesk":"到櫃檯付款","confirm.paid":"已付款,到診時不需再結。","confirm.deskChosen":"您選擇到櫃檯結帳。","confirm.cancelLine":"在看診前 24 小時之前,您都可以更改或取消,我們不會收取任何費用。","confirm.myvisits":"查看我的看診","myvisits.title":"我的看診","myvisits.sub":"查一下您自己,我們就會顯示已經預約的內容。","myvisits.lookup":"查詢您的看診","myvisits.upcoming":"即將到來","myvisits.past":"過去的看診","myvisits.none":"目前沒有預約。","myvisits.nonePast":"資料上沒有過去的看診。","myvisits.reschedule":"改期","myvisits.cancel":"取消","myvisits.owes":"還有 {amount} 待結清","myvisits.settled":"已結清","myvisits.book":"再預約一次","myvisits.switch":"不是您?換個人查詢","myvisits.with":"由 {clinician} 看診","cancel.title":"取消 {ref}?","cancel.body":"這是 {when},由 {clinician} 看診。","cancel.late.title":"距離看診不到 24 小時","cancel.late.body":"現在取消會算成臨時取消,並且會留在您的資料上。如果還趕得上,就把時段留著吧。","cancel.confirm":"取消這次看診","card.title":"付款 {amount}","card.demo":"這是示範,不會扣真實的卡片。","card.number":"卡號","card.expiry":"有效期限","card.cvc":"安全碼","card.name":"持卡人姓名","card.pay":"付款 {amount}","card.cancel":"現在不用","daysheet.title":"今日看診表","daysheet.sub":"今天 {count} 位看診,已看 {seen} 位","daysheet.prev":"前一天","daysheet.next":"後一天","daysheet.today":"今天","daysheet.break":"午休","daysheet.now":"現在","daysheet.closed":"{date} 診所休診。","daysheet.empty":"沒有預約。","daysheet.scrollHint":"往旁邊滑可以看其他醫療人員。","daysheet.prefill":"正在為 {name} 預約{reason}。","daysheet.prefill.clear":"清除","daysheet.openVisit":"開啟 {time} 的 {name}","panel.title":"看診 {ref}","panel.patient":"病人","panel.reason":"看診原因","panel.desknote":"給櫃檯的話","panel.when":"時間","panel.status":"目前到哪一步","panel.checkIn":"人已到","panel.advance":"推進到{status}","panel.noShow":"標記為未到","panel.cancel":"取消這次看診","panel.openPatient":"開啟病人","panel.close":"關閉面板","waiting.title":"候診區","waiting.sub":"現在在診所裡的人。","waiting.col.checked_in":"已報到","waiting.col.roomed":"已進診間","waiting.col.with_clinician":"看診中","waiting.col.ready":"可以離開","waiting.empty":"還沒有人到。","waiting.chip":"已等 {count} 分鐘","waiting.advance":"推進到{status}","waiting.finish":"已離開","waiting.late.title":"尚未到診","waiting.late.sub":"已超過預約時間 15 分鐘以上。","waiting.late.none":"到目前為止該來的都到了。","waiting.late.chip":"遲到 {count} 分鐘","waiting.late.arrived":"人已到","waiting.late.noShow":"標記為未到","patients.title":"病人","patients.sub":"名單上有 {count} 人","patients.search":"以姓名搜尋","patients.age":"年齡","patients.last":"最近一次看診","patients.never":"還沒有看診紀錄","patients.allergies":"過敏","patients.empty":"沒有符合的人。","patients.open":"開啟 {name}","patient.back":"全部病人","patient.dob":"出生日期","patient.mobile":"手機","patient.history":"看診紀錄","patient.upcoming":"即將到來","patient.none":"沒有預約。","patient.noHistory":"還沒有看診紀錄。","patient.outstanding":"未結清","patient.settled":"沒有未結清的款項。","patient.recall":"應回診","patient.recall.none":"沒有設定回診提醒。","patient.honest":"資料放在您的 Adminium 儀表板裡——這裡是櫃檯。","accounts.title":"帳務","accounts.sub":"已經收到的,以及還沒結清的。","accounts.kpi.taken":"今天收到","accounts.kpi.outstanding":"未結清","accounts.kpi.noshow":"本週未到","accounts.fees":"一次看診的費用","accounts.fees.sub":"費用依看診時間長短計算。","accounts.open":"還要結清","accounts.open.sub":"最早的排最前面,因為最早的那筆最值得打通電話。","accounts.open.none":"全部都結清了。","accounts.col.patient":"病人","accounts.col.visit":"看診","accounts.col.since":"入帳日","accounts.col.amount":"餘額","accounts.record":"登錄一筆收款","accounts.partial":"部分已付","pay.title":"登錄一筆收款","pay.for":"{name} · 未結清 {amount}","pay.amount":"金額","pay.method":"方式","pay.method.card":"刷卡","pay.method.cash":"現金","pay.method.transfer":"轉帳","pay.full":"全額收取 {amount}","pay.take":"確認收款","pay.overpay":"這超過未結清的 {amount}。","pay.nonpositive":"請輸入大於零的金額。","recalls.title":"回診提醒","recalls.sub":"需要再看一次的人。","recalls.overdue":"已逾期","recalls.due":"本月到期","recalls.none":"這個月沒有人需要回診。","recalls.from":"在 {date} 的{reason}之後","recalls.every":"{count} 週後再看一次","recalls.dueOn":"{date} 到期","recalls.late":"已逾期 {count} 天","recalls.book":"幫他們預約","notfound.title":"這個頁面不在這裡","notfound.body":"門診時間、地圖與聯絡方式都在主網站上。這個示範涵蓋預約與櫃檯兩部分。","notfound.action":"回到今日看診表","notfound.actionPatient":"回到預約","settings.title":"診所設定","settings.sub":"本診所不看診的日期,以及每一天的來源。","settings.closed.title":"診所休診的日期","settings.closed.count":"已記錄 {count} 天","settings.closed.empty":"尚未記錄任何日期。診所週一至週五看診。","settings.closed.whole":"整間診所","settings.closed.own":"此處輸入","settings.closed.remove":"刪除 {date} 的{reason}","settings.add.title":"記錄一個休診日","settings.add.date":"日期","settings.add.reason":"原因","settings.add.reasonHint":"用診所自己的話寫 — 進修日、整修、喪假。","settings.add.who":"誰不在","settings.add.everyone":"整間診所","settings.add.submit":"記錄","settings.add.needed":"請填寫日期與原因。","settings.add.duplicate":"該日期已記錄。若要修改原因,請先刪除它。","daysheet.closedFor":"{date} 診所休診 — {reason}。","daysheet.away":"缺席 — {reason}","find.closedFor":"休診 — {reason}","addon.host.title":"擴充","addon.host.sub":"本診所的休診日還可能來自哪裡。","addon.host.reads":"此處的擴充不會讀取任何病歷。它只提供日期;看診紀錄留在本診所。","addon.host.on":"開啟","addon.host.off":"關閉","addon.host.isOn":"已開啟","addon.host.fromAddOn":"來自 {name}","addon.host.dayFrom":"這一天來自 {name}。","addon.host.dormant":"已儲存的 {count} 天未生效。","addon.host.dormantHow":"沒有刪除任何內容。重新開啟即可再次生效,或在上方輸入所需的日期。","addon.host.none":"此版本不含任何擴充。","addon.host.slotEmpty":"此處未開啟任何擴充,上面的清單就是本診所記錄的全部。","addon.host.notAffiliated":"Adminium 與該公司沒有關聯。"},"ar-EG":{"find.title":"اختر موعدًا","find.sub":"قل لنا سبب الزيارة، واختر من تودّ رؤيته، ثم خذ الوقت الذي يناسبك.","find.step.reason":"ما سبب الزيارة؟","find.step.clinician":"من تودّ أن تراه؟","find.step.day":"أي يوم؟","find.step.slot":"المواعيد المتاحة في {date}","find.any":"أي شخص","find.any.role":"أول من يتوفر","find.length":"زيارة مدتها {length}","find.feeLine":"{fee} · {length}","find.closed":"مغلق","find.weekend":"العيادة مغلقة في نهاية الأسبوع، لذلك لا نعرض السبت والأحد.","find.pastNote":"الساعة الآن {time}، لذلك مضت مواعيد الصباح الأولى.","find.longer":"الزيارة الأطول تحتاج فجوة أطول، لذلك المواعيد المتاحة لها أقل.","find.count":"{count} مواعيد متاحة|{count} موعد متاح|{count} موعدان متاحان|{count} مواعيد متاحة|{count} موعدًا متاحًا|{count} موعد متاح","find.taken":"محجوز","find.gone":"فات","find.slotLabel":"{time} مع {clinician}","find.empty.title":"لم يتبقَّ شيء في {date}","find.empty.body":"أقرب يوم فيه متسع هو {next}.","find.empty.action":"جرّب {date}","find.empty.none":"لا يوجد متسع في الشهر القادم لهذا الاختيار. جرّب شخصًا آخر.","find.continue":"متابعة","find.chosen":"{time} مع {clinician}، {date}","details.title":"بياناتك","details.sub":"دقيقتان وتنتهي.","details.been":"هل زرتنا من قبل؟","details.returning":"نعم، أنا مسجّل","details.first":"لا، هذه زيارتي الأولى","details.lookup.title":"ابحث عن بياناتك","details.mobile":"رقم الموبايل","details.dob":"تاريخ الميلاد","details.lookup.action":"ابحث عني","details.lookup.hint":"عرض توضيحي: اضغط لملء {mobile} · {dob}","details.lookup.found":"أهلًا بعودتك يا {name}.","details.lookup.miss":"لم نجد ذلك. راجع الرقم والتاريخ، أو احجز كزيارة أولى.","details.first.title":"عنك","details.name":"الاسم بالكامل","details.email":"البريد الإلكتروني","details.reason":"ما سبب الزيارة؟","details.reason.hint":"سطر واحد يكفي.","details.counter":"{count} من 240","details.desknote":"هل هناك ما يجب أن يعرفه مكتب الاستقبال؟","details.desknote.hint":"اختياري، ويصل إلى مكتب الاستقبال — موقف السيارات، سهولة الوصول، مترجم، تأخّر.","details.summary":"زيارتك","details.summary.clinician":"المعالِج","details.summary.date":"التاريخ","details.summary.time":"الوقت","details.summary.length":"المدة","details.summary.fee":"رسوم الزيارة","details.summary.payline":"تُدفع عند مكتب الاستقبال، أو الآن من هنا.","details.confirm":"أكّد الحجز","details.blocked":"أضف بياناتك حتى نتمكن من التأكيد.","details.back":"غيّر الوقت","confirm.title":"تم حجز موعدك","confirm.sub":"احتفظ بالرقم المرجعي أدناه. هذا عرض توضيحي، ولا تُرسل رسالة نصية حقيقية.","confirm.ref":"الرقم المرجعي","confirm.clinician":"المعالِج","confirm.when":"متى","confirm.where":"أين","confirm.calendar":"أضف إلى التقويم","confirm.payNow":"ادفع الآن","confirm.payDesk":"ادفع عند الاستقبال","confirm.paid":"تم الدفع. لا شيء لتسويته عند وصولك.","confirm.deskChosen":"اخترت التسوية عند مكتب الاستقبال.","confirm.cancelLine":"يمكنك تغيير الموعد أو إلغاءه دون رسوم حتى 24 ساعة قبل موعدك.","confirm.myvisits":"اعرض زياراتي","myvisits.title":"زياراتي","myvisits.sub":"ابحث عن نفسك وسنعرض لك ما هو محجوز.","myvisits.lookup":"ابحث عن زياراتك","myvisits.upcoming":"القادمة","myvisits.past":"الزيارات السابقة","myvisits.none":"لا يوجد حجز حاليًا.","myvisits.nonePast":"لا توجد زيارات سابقة في سجلك.","myvisits.reschedule":"غيّر الموعد","myvisits.cancel":"إلغاء","myvisits.owes":"{amount} ما زالت مستحقة","myvisits.settled":"تمت التسوية","myvisits.book":"احجز زيارة أخرى","myvisits.switch":"لست أنت؟ ابحث عن شخص آخر","myvisits.with":"مع {clinician}","cancel.title":"إلغاء {ref}؟","cancel.body":"هذا {when} مع {clinician}.","cancel.late.title":"بقي أقل من 24 ساعة","cancel.late.body":"الإلغاء الآن يُحتسب إلغاءً متأخرًا ويبقى في سجلك. إذا كنت ما زلت تستطيع الحضور، احتفظ بالموعد.","cancel.confirm":"ألغِ الزيارة","card.title":"ادفع {amount}","card.demo":"هذا عرض توضيحي. لا يتم خصم أي مبلغ من بطاقة حقيقية.","card.number":"رقم البطاقة","card.expiry":"تاريخ الانتهاء","card.cvc":"رمز التحقق","card.name":"الاسم على البطاقة","card.pay":"ادفع {amount}","card.cancel":"ليس الآن","daysheet.title":"جدول اليوم","daysheet.sub":"{count} زيارات اليوم، انتهت {seen} منها|{count} زيارة اليوم، انتهت {seen} منها|{count} زيارتان اليوم، انتهت {seen} منهما|{count} زيارات اليوم، انتهت {seen} منها|{count} زيارةً اليوم، انتهت {seen} منها|{count} زيارة اليوم، انتهت {seen} منها","daysheet.prev":"اليوم السابق","daysheet.next":"اليوم التالي","daysheet.today":"اليوم","daysheet.break":"الغداء","daysheet.now":"الآن","daysheet.closed":"العيادة مغلقة في {date}.","daysheet.empty":"لا يوجد حجز.","daysheet.scrollHint":"اسحب جانبًا لرؤية بقية المعالِجين.","daysheet.prefill":"جارٍ حجز {name} من أجل {reason}.","daysheet.prefill.clear":"مسح","daysheet.openVisit":"افتح {name} في {time}","panel.title":"زيارة {ref}","panel.patient":"المريض","panel.reason":"سبب الزيارة","panel.desknote":"لمكتب الاستقبال","panel.when":"متى","panel.status":"أين هم الآن","panel.checkIn":"لقد وصل","panel.advance":"انقل إلى {status}","panel.noShow":"سجّل عدم الحضور","panel.cancel":"ألغِ الزيارة","panel.openPatient":"افتح بيانات المريض","panel.close":"أغلق اللوحة","waiting.title":"غرفة الانتظار","waiting.sub":"من الموجود في العيادة الآن.","waiting.col.checked_in":"سجّل حضوره","waiting.col.roomed":"في الغرفة","waiting.col.with_clinician":"مع المعالِج","waiting.col.ready":"جاهز للانصراف","waiting.empty":"لا أحد هنا بعد.","waiting.chip":"ينتظر منذ {count} دقيقة|ينتظر منذ {count} دقيقة|ينتظر منذ {count} دقيقتين|ينتظر منذ {count} دقائق|ينتظر منذ {count} دقيقة|ينتظر منذ {count} دقيقة","waiting.advance":"انقل إلى {status}","waiting.finish":"غادر","waiting.late.title":"لم يصل","waiting.late.sub":"مرّ أكثر من 15 دقيقة على موعده.","waiting.late.none":"كل من حان موعده حتى الآن موجود.","waiting.late.chip":"متأخر {count} دقيقة|متأخر {count} دقيقة|متأخر {count} دقيقتين|متأخر {count} دقائق|متأخر {count} دقيقة|متأخر {count} دقيقة","waiting.late.arrived":"لقد وصل","waiting.late.noShow":"سجّل عدم الحضور","patients.title":"المرضى","patients.sub":"{count} أشخاص في القائمة|{count} شخص في القائمة|{count} شخصان في القائمة|{count} أشخاص في القائمة|{count} شخصًا في القائمة|{count} شخص في القائمة","patients.search":"ابحث بالاسم","patients.age":"العمر","patients.last":"آخر زيارة","patients.never":"لا زيارات بعد","patients.allergies":"الحساسية","patients.empty":"لا أحد يطابق ذلك.","patients.open":"افتح {name}","patient.back":"كل المرضى","patient.dob":"تاريخ الميلاد","patient.mobile":"الموبايل","patient.history":"سجل الزيارات","patient.upcoming":"القادمة","patient.none":"لا يوجد حجز.","patient.noHistory":"لا زيارات بعد.","patient.outstanding":"المستحق","patient.settled":"لا يوجد مستحق.","patient.recall":"موعد العودة","patient.recall.none":"لا يوجد موعد عودة.","patient.honest":"السجلات موجودة في لوحة Adminium الخاصة بك — هنا مكتب الاستقبال.","accounts.title":"الحسابات","accounts.sub":"ما تم تحصيله، وما لا يزال مفتوحًا.","accounts.kpi.taken":"المحصّل اليوم","accounts.kpi.outstanding":"المستحق","accounts.kpi.noshow":"حالات عدم الحضور هذا الأسبوع","accounts.fees":"كم تكلّف الزيارة","accounts.fees.sub":"الرسوم تتبع مدة الزيارة.","accounts.open":"ما زال للتسوية","accounts.open.sub":"الأقدم أولًا، لأن الأقدم هو الذي يستحق مكالمة.","accounts.open.none":"كل شيء تمت تسويته.","accounts.col.patient":"المريض","accounts.col.visit":"الزيارة","accounts.col.since":"تاريخ القيد","accounts.col.amount":"الرصيد","accounts.record":"سجّل دفعة","accounts.partial":"مدفوع جزئيًا","pay.title":"سجّل دفعة","pay.for":"{name} · {amount} مستحقة","pay.amount":"المبلغ","pay.method":"الطريقة","pay.method.card":"بطاقة","pay.method.cash":"نقدًا","pay.method.transfer":"تحويل","pay.full":"خذ المبلغ كاملًا {amount}","pay.take":"استلم الدفعة","pay.overpay":"هذا أكثر من {amount} المستحقة.","pay.nonpositive":"أدخل مبلغًا أكبر من صفر.","recalls.title":"مواعيد المتابعة","recalls.sub":"أشخاص ينبغي رؤيتهم مرة أخرى.","recalls.overdue":"متأخر","recalls.due":"مستحق هذا الشهر","recalls.none":"لا أحد مستحق للعودة هذا الشهر.","recalls.from":"بعد {reason} في {date}","recalls.every":"يُرى مرة أخرى بعد {count} أسابيع|يُرى مرة أخرى بعد {count} أسبوع|يُرى مرة أخرى بعد {count} أسبوعين|يُرى مرة أخرى بعد {count} أسابيع|يُرى مرة أخرى بعد {count} أسبوعًا|يُرى مرة أخرى بعد {count} أسبوع","recalls.dueOn":"مستحق في {date}","recalls.late":"متأخر {count} أيام|متأخر {count} يوم|متأخر {count} يومين|متأخر {count} أيام|متأخر {count} يومًا|متأخر {count} يوم","recalls.book":"احجز لهم موعدًا","notfound.title":"هذه الصفحة غير موجودة","notfound.body":"مواعيد العمل والخريطة وطرق الوصول إلينا موجودة على الموقع الرئيسي. هذا العرض التوضيحي يغطي الحجز ومكتب الاستقبال.","notfound.action":"العودة إلى جدول اليوم","notfound.actionPatient":"العودة إلى الحجز","settings.title":"إعدادات العيادة","settings.sub":"الأيام التي لا تعمل فيها هذه العيادة، ومصدر كل يوم منها.","settings.closed.title":"أيام إغلاق العيادة","settings.closed.count":"{count} يوم مسجل|{count} يوم مسجل|{count} يومان مسجلان|{count} أيام مسجلة|{count} يومًا مسجلًا|{count} يوم مسجل","settings.closed.empty":"لا يوجد شيء مسجل. تفتح العيادة من الاثنين إلى الجمعة.","settings.closed.whole":"العيادة كلها","settings.closed.own":"أُدخل هنا","settings.closed.remove":"إزالة {reason} في {date}","settings.add.title":"تسجيل يوم إغلاق","settings.add.date":"التاريخ","settings.add.reason":"السبب","settings.add.reasonHint":"بكلمات العيادة نفسها — يوم تدريب، أعمال تجديد، جنازة.","settings.add.who":"من الغائب","settings.add.everyone":"العيادة كلها","settings.add.submit":"سجّله","settings.add.needed":"أعطِ اليوم تاريخًا وسببًا.","settings.add.duplicate":"هذا اليوم مسجل بالفعل. أزِله أولًا لتغيير السبب.","daysheet.closedFor":"العيادة مغلقة في {date} — {reason}.","daysheet.away":"غائب — {reason}","find.closedFor":"مغلق — {reason}","addon.host.title":"الإضافات","addon.host.sub":"من أين أيضًا يمكن أن تأتي أيام إغلاق هذه العيادة.","addon.host.reads":"الإضافة هنا لا تقرأ أي سجل مريض. إنها تزود بالأيام؛ وتبقى المواعيد داخل هذه العيادة.","addon.host.on":"تشغيل","addon.host.off":"إيقاف","addon.host.isOn":"قيد التشغيل","addon.host.fromAddOn":"من {name}","addon.host.dayFrom":"هذا اليوم جاء من {name}.","addon.host.dormant":"{count} يوم محفوظ غير مطبق.|{count} يوم محفوظ غير مطبق.|{count} يومان محفوظان غير مطبقين.|{count} أيام محفوظة غير مطبقة.|{count} يومًا محفوظًا غير مطبق.|{count} يوم محفوظ غير مطبق.","addon.host.dormantHow":"لم يُحذف شيء. أعد التشغيل لتطبيقها من جديد، أو سجّل ما تحتاجه أعلاه.","addon.host.none":"هذه النسخة لا تحتوي على أي إضافات.","addon.host.slotEmpty":"لا شيء مشغّل هنا، لذا فالقائمة أعلاه هي كل ما تحتفظ به هذه العيادة.","addon.host.notAffiliated":"Adminium ليست تابعة لهذه الشركة."}},ge={"data.role.gp":"GP","data.role.physio":"Physiotherapist","data.role.nurse":"Practice nurse","data.role.desk":"Front desk","data.type.routine":"Routine check","data.type.routine.blurb":"A short look at something already on your record.","data.type.newpatient":"New patient","data.type.newpatient.blurb":"Your first visit with us. We leave more time for it.","data.type.physio":"Physiotherapy","data.type.physio.blurb":"A full session with Nadia.","data.type.nurse":"Nurse","data.type.nurse.blurb":"Dressings and vaccinations.","data.reason.annual":"Annual check","data.reason.review":"Follow-up review","data.reason.bp":"Blood pressure check","data.reason.register":"New patient registration","data.reason.dressing":"Dressing change","data.reason.stitches":"Stitches out","data.reason.flu":"Flu vaccination","data.reason.travel":"Travel vaccination","data.reason.child":"Child check","data.reason.ear":"Ear check","data.reason.knee":"Knee follow-up","data.reason.back":"Back follow-up","data.reason.shoulder":"Shoulder follow-up","data.reason.wrist":"Wrist follow-up","data.reason.ankle":"Ankle follow-up","data.allergy.latex":"Latex","data.allergy.peanuts":"Peanuts","data.allergy.dressings":"Adhesive dressings","data.allergy.shellfish":"Shellfish","data.allergy.stings":"Bee stings","data.desknote.early":"Coming straight from work, so may be a few minutes early.","data.desknote.wheelchair":"Uses a wheelchair. Please keep the ground-floor room.","data.desknote.parent":"Her father is bringing her."},fe={"en-US":ge,"de-DE":{"data.role.gp":"Hausarzt","data.role.physio":"Physiotherapeut","data.role.nurse":"Pflegefachkraft","data.role.desk":"Empfang","data.type.routine":"Routinekontrolle","data.type.routine.blurb":"Ein kurzer Blick auf etwas, das bei uns schon vermerkt ist.","data.type.newpatient":"Neupatient","data.type.newpatient.blurb":"Ihr erster Besuch bei uns. Dafür nehmen wir uns mehr Zeit.","data.type.physio":"Physiotherapie","data.type.physio.blurb":"Eine volle Sitzung bei Nadia.","data.type.nurse":"Pflege","data.type.nurse.blurb":"Verbandwechsel und Impfungen.","data.reason.annual":"Jährliche Kontrolle","data.reason.review":"Nachkontrolle","data.reason.bp":"Blutdruckkontrolle","data.reason.register":"Neuanmeldung","data.reason.dressing":"Verbandwechsel","data.reason.stitches":"Fäden ziehen","data.reason.flu":"Grippeimpfung","data.reason.travel":"Reiseimpfung","data.reason.child":"Kindervorsorge","data.reason.ear":"Ohrenkontrolle","data.reason.knee":"Nachkontrolle Knie","data.reason.back":"Nachkontrolle Rücken","data.reason.shoulder":"Nachkontrolle Schulter","data.reason.wrist":"Nachkontrolle Handgelenk","data.reason.ankle":"Nachkontrolle Sprunggelenk","data.allergy.latex":"Latex","data.allergy.peanuts":"Erdnüsse","data.allergy.dressings":"Pflaster","data.allergy.shellfish":"Meeresfrüchte","data.allergy.stings":"Bienenstiche","data.desknote.early":"Kommt direkt von der Arbeit und ist vielleicht ein paar Minuten früher da.","data.desknote.wheelchair":"Nutzt einen Rollstuhl. Bitte den Raum im Erdgeschoss reservieren.","data.desknote.parent":"Ihr Vater bringt sie."},"fr-FR":{"data.role.gp":"Médecin généraliste","data.role.physio":"Kinésithérapeute","data.role.nurse":"Infirmière","data.role.desk":"Accueil","data.type.routine":"Contrôle de routine","data.type.routine.blurb":"Un point rapide sur un élément déjà noté dans votre dossier.","data.type.newpatient":"Nouveau patient","data.type.newpatient.blurb":"Votre première visite chez nous. Nous prévoyons plus de temps.","data.type.physio":"Kinésithérapie","data.type.physio.blurb":"Une séance complète avec Nadia.","data.type.nurse":"Soins infirmiers","data.type.nurse.blurb":"Pansements et vaccinations.","data.reason.annual":"Bilan annuel","data.reason.review":"Visite de suivi","data.reason.bp":"Contrôle de la tension","data.reason.register":"Inscription d’un nouveau patient","data.reason.dressing":"Changement de pansement","data.reason.stitches":"Retrait des points","data.reason.flu":"Vaccination contre la grippe","data.reason.travel":"Vaccination voyage","data.reason.child":"Contrôle de l’enfant","data.reason.ear":"Contrôle de l’oreille","data.reason.knee":"Suivi du genou","data.reason.back":"Suivi du dos","data.reason.shoulder":"Suivi de l’épaule","data.reason.wrist":"Suivi du poignet","data.reason.ankle":"Suivi de la cheville","data.allergy.latex":"Latex","data.allergy.peanuts":"Arachides","data.allergy.dressings":"Pansements adhésifs","data.allergy.shellfish":"Crustacés","data.allergy.stings":"Piqûres d’abeille","data.desknote.early":"Vient directement du travail et arrivera peut-être quelques minutes en avance.","data.desknote.wheelchair":"Se déplace en fauteuil roulant. Merci de conserver la salle du rez-de-chaussée.","data.desknote.parent":"C’est son père qui l’accompagne."},"cs-CZ":{"data.role.gp":"Praktický lékař","data.role.physio":"Fyzioterapeut","data.role.nurse":"Zdravotní sestra","data.role.desk":"Recepce","data.type.routine":"Běžná kontrola","data.type.routine.blurb":"Krátká kontrola něčeho, co už u vás máme zaznamenané.","data.type.newpatient":"Nový pacient","data.type.newpatient.blurb":"Vaše první návštěva u nás. Vyhradíme si na ni víc času.","data.type.physio":"Fyzioterapie","data.type.physio.blurb":"Celé sezení, které vede Nadia.","data.type.nurse":"Sestra","data.type.nurse.blurb":"Převazy a očkování.","data.reason.annual":"Roční kontrola","data.reason.review":"Kontrolní návštěva","data.reason.bp":"Měření tlaku","data.reason.register":"Registrace nového pacienta","data.reason.dressing":"Převaz","data.reason.stitches":"Vyndání stehů","data.reason.flu":"Očkování proti chřipce","data.reason.travel":"Cestovní očkování","data.reason.child":"Dětská prohlídka","data.reason.ear":"Kontrola ucha","data.reason.knee":"Kontrola kolena","data.reason.back":"Kontrola zad","data.reason.shoulder":"Kontrola ramene","data.reason.wrist":"Kontrola zápěstí","data.reason.ankle":"Kontrola kotníku","data.allergy.latex":"Latex","data.allergy.peanuts":"Arašídy","data.allergy.dressings":"Náplasti","data.allergy.shellfish":"Korýši","data.allergy.stings":"Včelí bodnutí","data.desknote.early":"Přijde rovnou z práce, takže může dorazit o pár minut dřív.","data.desknote.wheelchair":"Používá invalidní vozík. Ponechte prosím ordinaci v přízemí.","data.desknote.parent":"Přivede ji její otec."},"da-DK":{"data.role.gp":"Praktiserende læge","data.role.physio":"Fysioterapeut","data.role.nurse":"Praksissygeplejerske","data.role.desk":"Reception","data.type.routine":"Rutinekontrol","data.type.routine.blurb":"Et kort kig på noget, der allerede står i din journal.","data.type.newpatient":"Ny patient","data.type.newpatient.blurb":"Dit første besøg hos os. Vi sætter mere tid af til det.","data.type.physio":"Fysioterapi","data.type.physio.blurb":"En hel session hos Nadia.","data.type.nurse":"Sygeplejerske","data.type.nurse.blurb":"Forbindingsskift og vaccinationer.","data.reason.annual":"Årlig kontrol","data.reason.review":"Opfølgning","data.reason.bp":"Blodtrykskontrol","data.reason.register":"Tilmelding som ny patient","data.reason.dressing":"Forbindingsskift","data.reason.stitches":"Fjernelse af sting","data.reason.flu":"Influenzavaccination","data.reason.travel":"Rejsevaccination","data.reason.child":"Børneundersøgelse","data.reason.ear":"Ørekontrol","data.reason.knee":"Opfølgning på knæ","data.reason.back":"Opfølgning på ryg","data.reason.shoulder":"Opfølgning på skulder","data.reason.wrist":"Opfølgning på håndled","data.reason.ankle":"Opfølgning på ankel","data.allergy.latex":"Latex","data.allergy.peanuts":"Jordnødder","data.allergy.dressings":"Plaster","data.allergy.shellfish":"Skaldyr","data.allergy.stings":"Bistik","data.desknote.early":"Kommer direkte fra arbejde og er måske et par minutter tidligt på den.","data.desknote.wheelchair":"Bruger kørestol. Behold venligst rummet i stueetagen.","data.desknote.parent":"Hendes far følger hende."},"zh-CN":{"data.role.gp":"全科医生","data.role.physio":"物理治疗师","data.role.nurse":"诊所护士","data.role.desk":"前台","data.type.routine":"常规检查","data.type.routine.blurb":"针对您记录中已有事项的一次简短复查。","data.type.newpatient":"初诊","data.type.newpatient.blurb":"您第一次来我们这里就诊,我们会多留一些时间。","data.type.physio":"物理治疗","data.type.physio.blurb":"与 Nadia 的一次完整疗程。","data.type.nurse":"护理","data.type.nurse.blurb":"换药与疫苗接种。","data.reason.annual":"年度检查","data.reason.review":"复诊","data.reason.bp":"血压测量","data.reason.register":"新患者登记","data.reason.dressing":"换药","data.reason.stitches":"拆线","data.reason.flu":"流感疫苗接种","data.reason.travel":"旅行疫苗接种","data.reason.child":"儿童检查","data.reason.ear":"耳部检查","data.reason.knee":"膝盖复诊","data.reason.back":"腰背复诊","data.reason.shoulder":"肩部复诊","data.reason.wrist":"手腕复诊","data.reason.ankle":"脚踝复诊","data.allergy.latex":"乳胶","data.allergy.peanuts":"花生","data.allergy.dressings":"医用胶布","data.allergy.shellfish":"甲壳类海鲜","data.allergy.stings":"蜂蜇","data.desknote.early":"直接从公司过来,可能会早到几分钟。","data.desknote.wheelchair":"使用轮椅,请保留一楼的诊室。","data.desknote.parent":"由她父亲陪同前来。"},"zh-TW":{"data.role.gp":"家庭醫師","data.role.physio":"物理治療師","data.role.nurse":"診所護理師","data.role.desk":"櫃台","data.type.routine":"例行檢查","data.type.routine.blurb":"針對您資料中既有事項的簡短複查。","data.type.newpatient":"初診","data.type.newpatient.blurb":"您首次來院看診,我們會預留較長的時間。","data.type.physio":"物理治療","data.type.physio.blurb":"與 Nadia 的完整一次療程。","data.type.nurse":"護理","data.type.nurse.blurb":"傷口換藥與疫苗接種。","data.reason.annual":"年度健檢","data.reason.review":"回診追蹤","data.reason.bp":"血壓量測","data.reason.register":"新病患登記","data.reason.dressing":"換藥","data.reason.stitches":"拆線","data.reason.flu":"流感疫苗接種","data.reason.travel":"旅遊疫苗接種","data.reason.child":"兒童健檢","data.reason.ear":"耳部檢查","data.reason.knee":"膝蓋回診","data.reason.back":"背部回診","data.reason.shoulder":"肩部回診","data.reason.wrist":"手腕回診","data.reason.ankle":"腳踝回診","data.allergy.latex":"乳膠","data.allergy.peanuts":"花生","data.allergy.dressings":"醫用膠布","data.allergy.shellfish":"帶殼海鮮","data.allergy.stings":"蜂螫","data.desknote.early":"直接從公司過來,可能會提早幾分鐘到。","data.desknote.wheelchair":"使用輪椅,請保留一樓的診間。","data.desknote.parent":"她的父親會陪她一起來。"},"ar-EG":{"data.role.gp":"طبيب عام","data.role.physio":"أخصائي علاج طبيعي","data.role.nurse":"ممرضة العيادة","data.role.desk":"مكتب الاستقبال","data.type.routine":"فحص دوري","data.type.routine.blurb":"نظرة سريعة على شيء مسجّل عندنا بالفعل.","data.type.newpatient":"مريض جديد","data.type.newpatient.blurb":"زيارتك الأولى معنا، ونخصّص لها وقتًا أطول.","data.type.physio":"علاج طبيعي","data.type.physio.blurb":"جلسة كاملة مع Nadia.","data.type.nurse":"تمريض","data.type.nurse.blurb":"تغيير الضمادات والتطعيمات.","data.reason.annual":"فحص سنوي","data.reason.review":"زيارة متابعة","data.reason.bp":"قياس ضغط الدم","data.reason.register":"تسجيل مريض جديد","data.reason.dressing":"تغيير ضمادة","data.reason.stitches":"إزالة الغرز","data.reason.flu":"تطعيم الإنفلونزا","data.reason.travel":"تطعيم السفر","data.reason.child":"فحص الأطفال","data.reason.ear":"فحص الأذن","data.reason.knee":"متابعة الركبة","data.reason.back":"متابعة الظهر","data.reason.shoulder":"متابعة الكتف","data.reason.wrist":"متابعة الرسغ","data.reason.ankle":"متابعة الكاحل","data.allergy.latex":"اللاتكس","data.allergy.peanuts":"الفول السوداني","data.allergy.dressings":"الضمادات اللاصقة","data.allergy.shellfish":"المحار","data.allergy.stings":"لسع النحل","data.desknote.early":"قادم من العمل مباشرة، وقد يصل قبل الموعد بدقائق.","data.desknote.wheelchair":"يستخدم كرسيًا متحركًا. من فضلك احتفظ بالغرفة في الدور الأرضي.","data.desknote.parent":"والدها هو من سيُحضرها."}},ke=[he,ye,fe],j=Object.fromEntries(R.map(e=>[e,Object.assign({},...ke.map(t=>t[e]??{}))])),ve=new Set;function it(e,t){const o=t["en-US"];if(o===void 0)throw new Error(`add-on "${e}" registered no en-US strings`);const i=Object.keys(o);for(const n of R){const a=t[n];if(a===void 0)throw new Error(`add-on "${e}" is missing the ${n} locale entirely`);for(const s of i){const l=a[s];if(typeof l!="string"||l.trim()==="")throw new Error(`add-on "${e}" is missing ${n} for "${s}"`)}}for(const n of i)if(j["en-US"][n]!==void 0)throw new Error(`add-on "${e}" would overwrite the existing message key "${n}"`);for(const n of R)Object.assign(j[n],t[n]);ve.add(e)}const be=(e,t,o)=>{let i=j[N][e]??e;if(o!==void 0&&i.includes("|")){const a=i.split("|");i=o===1?a[0]:a[a.length-1]}const n=o===void 0?t:{count:o,...t};return n?i.replace(/\{(\w+)\}/g,(a,s)=>s in n?String(n[s]):a):i},we=(e,t=V)=>new Intl.NumberFormat(N,{style:"currency",currency:t,maximumFractionDigits:0}).format(e);let V="USD";function ze(e){typeof e=="string"&&e.length===3&&(V=e)}const Ae=()=>V;let _=null;function Se(e,t){_={zone:e,source:t}}function st(){if(_===null)return null;const{zone:e,source:t}=_;return t==="host"||t==="fallback"?{zone:e,source:t}:null}let Y=N,W=be,Q=we;function rt(e,t,o,i){Y=e,W=t,Q=o}const dt=()=>Y,ct=(e,t,o)=>W(e,t,o),lt=(e,t)=>Q(e,t);function ut(e,t){const o=W(e,void 0,void 0);return o===e?t:o}const X="clinic-desk-locale",Ne={"en-US":["one","other"],"de-DE":["one","other"],"fr-FR":["one","other"],"da-DK":["one","other"],"cs-CZ":["one","few","other"],"zh-CN":["other"],"zh-TW":["other"],"ar-EG":["zero","one","two","few","many","other"]},ee=S.createContext(null);let x=null,L=null;function De(e){M(e)&&(x=e,L?.(e))}function Pe(){if(x!==null)return x;try{const e=localStorage.getItem(X);if(M(e))return e}catch{}return ue(navigator.languages??[navigator.language])}function te({children:e}){const[t,o]=S.useState(Pe),i=le(t);S.useEffect(()=>(L=o,()=>{L=null}),[]),S.useEffect(()=>{const s=document.documentElement;s.setAttribute("lang",E[t].tag),s.setAttribute("dir",i)},[t,i]);const n=S.useCallback(s=>{o(s);try{localStorage.setItem(X,s)}catch{}},[]),a=S.useMemo(()=>{const s=j[t],l=j[N],g=new Intl.PluralRules(t),p=new Intl.NumberFormat(t),u=(h,c,r)=>{let d=s[h]??l[h]??h;if(r!==void 0&&d.includes("|")){const k=d.split("|"),D=Ne[t].indexOf(g.select(r));d=k[D===-1?k.length-1:Math.min(D,k.length-1)]}const m=r===void 0?c:{count:r,...c};return m?d.replace(/\{(\w+)\}/g,(k,v)=>v in m?String(m[v]):k):d};return{locale:t,dir:i,setLocale:n,t:(h,c,r)=>u(h,c,r),tAddOn:(h,c)=>u(h,c),money:(h,c=Ae())=>new Intl.NumberFormat(t,{style:"currency",currency:c,maximumFractionDigits:0}).format(h),number:(h,c)=>c?new Intl.NumberFormat(t,c).format(h):p.format(h),date:(h,c)=>new Intl.DateTimeFormat(t,c).format(h)}},[t,i,n]);return I.jsx(ee.Provider,{value:a,children:e})}function Te(){const e=S.useContext(ee);if(e===null)throw new Error("useI18n must be used inside <I18nProvider>");return e}const Re=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_LOCALE:N,I18nProvider:te,LOCALES:E,LOCALE_TAGS:R,setHostLocale:De,useI18n:Te},Symbol.toStringTag,{value:"Module"})),je={date:"2026-07-28",minutes:560},mt="12 Rowan Lane, Ashbourne Green",ht={mobile:"07700 900405",dob:"1968-07-30"},Ee=[{id:"routine",label:"data.type.routine",blurb:"data.type.routine.blurb",minutes:15,fee:45,tint:"#0369a1"},{id:"newpatient",label:"data.type.newpatient",blurb:"data.type.newpatient.blurb",minutes:30,fee:80,tint:"#7c3aed"},{id:"physio",label:"data.type.physio",blurb:"data.type.physio.blurb",minutes:45,fee:60,tint:"#0d9488"},{id:"nurse",label:"data.type.nurse",blurb:"data.type.nurse.blurb",minutes:15,fee:25,tint:"#b25e09"}],Ce=[{id:"amara",name:"Dr Amara Osei",ini:"AO",role:"data.role.gp",tint:"#0369a1",offers:["routine","newpatient"]},{id:"piotr",name:"Dr Piotr Nowak",ini:"PN",role:"data.role.gp",tint:"#7c3aed",offers:["routine","newpatient"]},{id:"nadia",name:"Nadia Haddad",ini:"NH",role:"data.role.physio",tint:"#0d9488",offers:["physio"]},{id:"tom",name:"Tom Villasenor",ini:"TV",role:"data.role.nurse",tint:"#b25e09",offers:["nurse"]}],pt={name:"Marisol Enriquez",ini:"ME",tint:"#0369a1"},Ie=[{id:"mira",name:"Mira Ashworth",ini:"MA",dob:"1987-03-14",mobile:"07700 900401",allergies:"data.allergy.latex"},{id:"dev",name:"Dev Ramchandani",ini:"DR",dob:"1992-11-02",mobile:"07700 900402",allergies:null},{id:"hazel",name:"Hazel Boone",ini:"HB",dob:"1942-01-19",mobile:"07700 900403",allergies:null},{id:"otis",name:"Otis Delacroix",ini:"OD",dob:"2020-05-08",mobile:"07700 900404",allergies:"data.allergy.peanuts"},{id:"june",name:"June Kowalczyk",ini:"JK",dob:"1968-07-30",mobile:"07700 900405",allergies:null},{id:"felix",name:"Felix Nwachukwu",ini:"FN",dob:"1979-09-22",mobile:"07700 900406",allergies:null},{id:"sana",name:"Sana Rehman",ini:"SR",dob:"2001-02-11",mobile:"07700 900407",allergies:null},{id:"bram",name:"Bram Vandenberg",ini:"BV",dob:"1955-12-05",mobile:"07700 900408",allergies:"data.allergy.dressings"},{id:"ines",name:"Ines Moreau",ini:"IM",dob:"1996-06-17",mobile:"07700 900409",allergies:null},{id:"teo",name:"Teo Marchetti",ini:"TM",dob:"2013-08-25",mobile:"07700 900410",allergies:null},{id:"willa",name:"Willa Okafor",ini:"WO",dob:"1983-04-03",mobile:"07700 900411",allergies:null},{id:"arjun",name:"Arjun Bhatt",ini:"AB",dob:"1974-10-29",mobile:"07700 900412",allergies:null},{id:"nell",name:"Nell Fitzgerald",ini:"NF",dob:"1949-02-27",mobile:"07700 900413",allergies:"data.allergy.shellfish"},{id:"kofi",name:"Kofi Mensah",ini:"KM",dob:"1990-12-13",mobile:"07700 900414",allergies:null},{id:"lyra",name:"Lyra Petrov",ini:"LP",dob:"2016-03-30",mobile:"07700 900415",allergies:"data.allergy.peanuts"},{id:"hana",name:"Hana Sorensen",ini:"HS",dob:"1965-05-21",mobile:"07700 900416",allergies:null},{id:"milo",name:"Milo Ferreira",ini:"MF",dob:"2008-11-07",mobile:"07700 900417",allergies:null},{id:"rosa",name:"Rosa Iglesias",ini:"RI",dob:"1971-01-08",mobile:"07700 900418",allergies:null},{id:"yusuf",name:"Yusuf Demir",ini:"YD",dob:"1986-08-16",mobile:"07700 900419",allergies:null},{id:"edith",name:"Edith Blackwood",ini:"EB",dob:"1946-06-04",mobile:"07700 900420",allergies:"data.allergy.latex"},{id:"noor",name:"Noor Al-Sayed",ini:"NA",dob:"1998-09-09",mobile:"07700 900421",allergies:null},{id:"gus",name:"Gus Lindqvist",ini:"GL",dob:"1961-04-15",mobile:"07700 900422",allergies:null},{id:"priya",name:"Priya Anand",ini:"PA",dob:"1994-02-23",mobile:"07700 900423",allergies:null},{id:"tam",name:"Tam Nguyen",ini:"TN",dob:"1977-07-12",mobile:"07700 900424",allergies:null},{id:"iris",name:"Iris Vaughan",ini:"IV",dob:"2011-10-01",mobile:"07700 900425",allergies:"data.allergy.stings"},{id:"omar",name:"Omar Haddadi",ini:"OH",dob:"1959-03-06",mobile:"07700 900426",allergies:null},{id:"betty",name:"Betty Ochoa",ini:"BO",dob:"1952-08-19",mobile:"07700 900427",allergies:null},{id:"jonah",name:"Jonah Kessler",ini:"JK",dob:"2004-05-27",mobile:"07700 900428",allergies:null},{id:"clem",name:"Clem Aubrey",ini:"CA",dob:"1981-12-30",mobile:"07700 900429",allergies:null},{id:"saoirse",name:"Saoirse Byrne",ini:"SB",dob:"1969-11-11",mobile:"07700 900430",allergies:null}],He=[{id:"RH-3981",patient:"hazel",clinician:"amara",type:"routine",date:"2026-06-02",start:540,status:"done",checkedInAt:532,reason:"data.reason.bp",deskNote:null,recallWeeks:6},{id:"RH-3982",patient:"teo",clinician:"tom",type:"nurse",date:"2026-06-09",start:630,status:"done",checkedInAt:624,reason:"data.reason.travel",deskNote:null,recallWeeks:null},{id:"RH-3983",patient:"milo",clinician:"nadia",type:"physio",date:"2026-06-11",start:840,status:"done",checkedInAt:833,reason:"data.reason.wrist",deskNote:null,recallWeeks:null},{id:"RH-3984",patient:"yusuf",clinician:"piotr",type:"routine",date:"2026-06-16",start:675,status:"done",checkedInAt:668,reason:"data.reason.annual",deskNote:null,recallWeeks:6},{id:"RH-3985",patient:"edith",clinician:"amara",type:"routine",date:"2026-06-18",start:585,status:"done",checkedInAt:575,reason:"data.reason.review",deskNote:null,recallWeeks:null},{id:"RH-3986",patient:"saoirse",clinician:"tom",type:"nurse",date:"2026-06-23",start:900,status:"done",checkedInAt:894,reason:"data.reason.dressing",deskNote:null,recallWeeks:null},{id:"RH-3987",patient:"bram",clinician:"piotr",type:"routine",date:"2026-06-25",start:600,status:"done",checkedInAt:590,reason:"data.reason.bp",deskNote:null,recallWeeks:5},{id:"RH-3988",patient:"hana",clinician:"nadia",type:"physio",date:"2026-06-30",start:555,status:"done",checkedInAt:548,reason:"data.reason.shoulder",deskNote:null,recallWeeks:3},{id:"RH-3989",patient:"june",clinician:"amara",type:"routine",date:"2026-07-01",start:855,status:"done",checkedInAt:847,reason:"data.reason.annual",deskNote:null,recallWeeks:4},{id:"RH-3990",patient:"ines",clinician:"piotr",type:"newpatient",date:"2026-07-02",start:540,status:"done",checkedInAt:528,reason:"data.reason.register",deskNote:null,recallWeeks:null},{id:"RH-3991",patient:"otis",clinician:"tom",type:"nurse",date:"2026-07-07",start:660,status:"done",checkedInAt:651,reason:"data.reason.child",deskNote:null,recallWeeks:null},{id:"RH-3992",patient:"arjun",clinician:"nadia",type:"physio",date:"2026-07-10",start:795,status:"done",checkedInAt:788,reason:"data.reason.knee",deskNote:null,recallWeeks:null},{id:"RH-3993",patient:"felix",clinician:"amara",type:"routine",date:"2026-07-14",start:960,status:"done",checkedInAt:951,reason:"data.reason.review",deskNote:null,recallWeeks:null},{id:"RH-3994",patient:"betty",clinician:"tom",type:"nurse",date:"2026-07-15",start:570,status:"done",checkedInAt:561,reason:"data.reason.dressing",deskNote:null,recallWeeks:null},{id:"RH-3995",patient:"nell",clinician:"piotr",type:"routine",date:"2026-07-16",start:645,status:"done",checkedInAt:634,reason:"data.reason.bp",deskNote:null,recallWeeks:null},{id:"RH-3996",patient:"willa",clinician:"amara",type:"routine",date:"2026-07-17",start:555,status:"done",checkedInAt:549,reason:"data.reason.ear",deskNote:null,recallWeeks:null},{id:"RH-3997",patient:"kofi",clinician:"nadia",type:"physio",date:"2026-07-20",start:675,status:"done",checkedInAt:667,reason:"data.reason.back",deskNote:null,recallWeeks:null},{id:"RH-3998",patient:"priya",clinician:"piotr",type:"routine",date:"2026-07-22",start:915,status:"cancelled",checkedInAt:null,reason:"data.reason.review",deskNote:null,recallWeeks:null},{id:"RH-3999",patient:"gus",clinician:"amara",type:"routine",date:"2026-07-27",start:570,status:"no_show",checkedInAt:null,reason:"data.reason.bp",deskNote:null,recallWeeks:null},{id:"RH-4000",patient:"iris",clinician:"tom",type:"nurse",date:"2026-07-27",start:870,status:"no_show",checkedInAt:null,reason:"data.reason.stitches",deskNote:null,recallWeeks:null},{id:"RH-4001",patient:"mira",clinician:"amara",type:"routine",date:"2026-07-28",start:510,status:"done",checkedInAt:505,reason:"data.reason.bp",deskNote:null,recallWeeks:null},{id:"RH-4002",patient:"dev",clinician:"amara",type:"routine",date:"2026-07-28",start:525,status:"done",checkedInAt:520,reason:"data.reason.review",deskNote:null,recallWeeks:null},{id:"RH-4003",patient:"sana",clinician:"amara",type:"newpatient",date:"2026-07-28",start:540,status:"with_clinician",checkedInAt:513,reason:"data.reason.register",deskNote:"data.desknote.early",recallWeeks:null},{id:"RH-4004",patient:"june",clinician:"amara",type:"routine",date:"2026-07-28",start:585,status:"booked",checkedInAt:null,reason:"data.reason.annual",deskNote:null,recallWeeks:null},{id:"RH-4005",patient:"jonah",clinician:"amara",type:"newpatient",date:"2026-07-28",start:630,status:"booked",checkedInAt:null,reason:"data.reason.register",deskNote:null,recallWeeks:null},{id:"RH-4006",patient:"omar",clinician:"amara",type:"routine",date:"2026-07-28",start:840,status:"booked",checkedInAt:null,reason:"data.reason.bp",deskNote:"data.desknote.wheelchair",recallWeeks:null},{id:"RH-4007",patient:"kofi",clinician:"piotr",type:"routine",date:"2026-07-28",start:525,status:"done",checkedInAt:518,reason:"data.reason.review",deskNote:null,recallWeeks:null},{id:"RH-4008",patient:"felix",clinician:"piotr",type:"routine",date:"2026-07-28",start:540,status:"booked",checkedInAt:null,reason:"data.reason.annual",deskNote:null,recallWeeks:null},{id:"RH-4009",patient:"noor",clinician:"piotr",type:"newpatient",date:"2026-07-28",start:570,status:"checked_in",checkedInAt:554,reason:"data.reason.register",deskNote:null,recallWeeks:null},{id:"RH-4010",patient:"nell",clinician:"piotr",type:"routine",date:"2026-07-28",start:660,status:"booked",checkedInAt:null,reason:"data.reason.annual",deskNote:null,recallWeeks:null},{id:"RH-4011",patient:"rosa",clinician:"piotr",type:"routine",date:"2026-07-28",start:960,status:"booked",checkedInAt:null,reason:"data.reason.review",deskNote:null,recallWeeks:null},{id:"RH-4012",patient:"arjun",clinician:"nadia",type:"physio",date:"2026-07-28",start:555,status:"checked_in",checkedInAt:538,reason:"data.reason.knee",deskNote:null,recallWeeks:null},{id:"RH-4013",patient:"hana",clinician:"nadia",type:"physio",date:"2026-07-28",start:615,status:"booked",checkedInAt:null,reason:"data.reason.shoulder",deskNote:null,recallWeeks:null},{id:"RH-4014",patient:"gus",clinician:"nadia",type:"physio",date:"2026-07-28",start:675,status:"booked",checkedInAt:null,reason:"data.reason.back",deskNote:null,recallWeeks:null},{id:"RH-4015",patient:"tam",clinician:"nadia",type:"physio",date:"2026-07-28",start:795,status:"booked",checkedInAt:null,reason:"data.reason.ankle",deskNote:null,recallWeeks:null},{id:"RH-4016",patient:"betty",clinician:"tom",type:"nurse",date:"2026-07-28",start:525,status:"roomed",checkedInAt:526,reason:"data.reason.dressing",deskNote:null,recallWeeks:null},{id:"RH-4017",patient:"teo",clinician:"tom",type:"nurse",date:"2026-07-28",start:555,status:"booked",checkedInAt:null,reason:"data.reason.flu",deskNote:null,recallWeeks:null},{id:"RH-4018",patient:"lyra",clinician:"tom",type:"nurse",date:"2026-07-28",start:600,status:"booked",checkedInAt:null,reason:"data.reason.child",deskNote:"data.desknote.parent",recallWeeks:null},{id:"RH-4019",patient:"iris",clinician:"tom",type:"nurse",date:"2026-07-28",start:690,status:"booked",checkedInAt:null,reason:"data.reason.stitches",deskNote:null,recallWeeks:null},{id:"RH-4020",patient:"june",clinician:"amara",type:"routine",date:"2026-08-11",start:600,status:"booked",checkedInAt:null,reason:"data.reason.review",deskNote:null,recallWeeks:null}],yt=4021,Oe=[{id:"c-3981",appt:"RH-3981",patient:"hazel",amount:45,raised:"2026-06-02"},{id:"c-3982",appt:"RH-3982",patient:"teo",amount:25,raised:"2026-06-09"},{id:"c-3983",appt:"RH-3983",patient:"milo",amount:60,raised:"2026-06-11"},{id:"c-3984",appt:"RH-3984",patient:"yusuf",amount:45,raised:"2026-06-16"},{id:"c-3985",appt:"RH-3985",patient:"edith",amount:45,raised:"2026-06-18"},{id:"c-3986",appt:"RH-3986",patient:"saoirse",amount:25,raised:"2026-06-23"},{id:"c-3987",appt:"RH-3987",patient:"bram",amount:45,raised:"2026-06-25"},{id:"c-3988",appt:"RH-3988",patient:"hana",amount:60,raised:"2026-06-30"},{id:"c-3989",appt:"RH-3989",patient:"june",amount:45,raised:"2026-07-01"},{id:"c-3990",appt:"RH-3990",patient:"ines",amount:80,raised:"2026-07-02"},{id:"c-3991",appt:"RH-3991",patient:"otis",amount:25,raised:"2026-07-07"},{id:"c-3992",appt:"RH-3992",patient:"arjun",amount:60,raised:"2026-07-10"},{id:"c-3993",appt:"RH-3993",patient:"felix",amount:45,raised:"2026-07-14"},{id:"c-3994",appt:"RH-3994",patient:"betty",amount:25,raised:"2026-07-15"},{id:"c-3995",appt:"RH-3995",patient:"nell",amount:45,raised:"2026-07-16"},{id:"c-3996",appt:"RH-3996",patient:"willa",amount:45,raised:"2026-07-17"},{id:"c-3997",appt:"RH-3997",patient:"kofi",amount:60,raised:"2026-07-20"},{id:"c-4001",appt:"RH-4001",patient:"mira",amount:45,raised:"2026-07-28"},{id:"c-4002",appt:"RH-4002",patient:"dev",amount:45,raised:"2026-07-28"},{id:"c-4007",appt:"RH-4007",patient:"kofi",amount:45,raised:"2026-07-28"}],_e=[{id:"p-01",charge:"c-3981",amount:45,method:"card",date:"2026-06-02"},{id:"p-02",charge:"c-3982",amount:25,method:"cash",date:"2026-06-09"},{id:"p-03",charge:"c-3983",amount:60,method:"card",date:"2026-06-11"},{id:"p-04",charge:"c-3984",amount:45,method:"card",date:"2026-06-16"},{id:"p-05",charge:"c-3986",amount:25,method:"cash",date:"2026-06-23"},{id:"p-06",charge:"c-3987",amount:45,method:"transfer",date:"2026-06-25"},{id:"p-07",charge:"c-3988",amount:60,method:"card",date:"2026-06-30"},{id:"p-08",charge:"c-3990",amount:80,method:"card",date:"2026-07-02"},{id:"p-09",charge:"c-3991",amount:25,method:"cash",date:"2026-07-07"},{id:"p-10",charge:"c-3992",amount:60,method:"card",date:"2026-07-10"},{id:"p-11",charge:"c-3993",amount:45,method:"card",date:"2026-07-14"},{id:"p-12",charge:"c-3996",amount:20,method:"cash",date:"2026-07-21"},{id:"p-13",charge:"c-4001",amount:45,method:"card",date:"2026-07-28"},{id:"p-14",charge:"c-4002",amount:45,method:"cash",date:"2026-07-28"},{id:"p-15",charge:"c-4007",amount:45,method:"card",date:"2026-07-28"}],xe=[],H={now:()=>({...je}),visitTypes:()=>Ee.map(e=>({...e})),clinicians:()=>Ce.map(e=>({...e,offers:[...e.offers]})),patients:()=>Ie.map(e=>({...e})),appointments:()=>He.map(e=>({...e})),charges:()=>Oe.map(e=>({...e})),payments:()=>_e.map(e=>({...e})),closures:()=>xe.map(e=>({...e}))};let w=H,z=!1;const gt={now:()=>(z=!0,w.now()),visitTypes:()=>(z=!0,w.visitTypes()),clinicians:()=>(z=!0,w.clinicians()),patients:()=>(z=!0,w.patients()),appointments:()=>(z=!0,w.appointments()),charges:()=>(z=!0,w.charges()),payments:()=>(z=!0,w.payments()),closures:()=>(z=!0,w.closures())};function Le(e){if(z)throw new Error("setDataSource() called after the store already read — import App dynamically, after the snapshot resolves.");w=e}function q(e,t){return new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date(e))}function G(e,t){const o=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",minute:"2-digit",hour12:!1}).formatToParts(new Date(e)),i=Number(o.find(a=>a.type==="hour")?.value??"0"),n=Number(o.find(a=>a.type==="minute")?.value??"0");return i%24*60+n}const B="staff",ft=!1;function Be(e,t){const o=e.endsWith("/")?e:`${e}/`,i=o.split("/").filter(f=>f!=="");if(i.length!==3||i[0]!=="apps")return o;const[,n,a]=i,s=t.split("/").filter(f=>f!==""),[l,g,p,u]=s;return l==="apps"&&g===n&&p===a?o:s.length>=4&&l==="apps"&&g===n&&u===a&&p!==void 0&&p!=="staff"&&p!=="customer"?`/apps/${n}/${p}/${a}/`:l!=="apps"?"/":o}async function Fe(e={}){if(!(e.hostedStaff??B==="staff"))return null;const o=e.base??Be("/apps/clinic/staff/",e.pathname??window.location.pathname),i=e.fetchImpl??fetch;try{const n=await i(`${o}surface-config.json`,{cache:"no-store"});if(!n.ok)return null;const a=await n.json();if(a===null||typeof a!="object")return null;const s=a.connectionId;return typeof s=="string"&&s!==""?s:null}catch{return null}}const Me={"Routine check":"routine","New patient":"newpatient",Physiotherapy:"physio",Nurse:"nurse"},Ve={gp:"data.role.gp",physiotherapist:"data.role.physio",nurse:"data.role.nurse"},We={gp:["routine","newpatient"],physiotherapist:["physio"],nurse:["nurse"]};let ne=null;function Ze(){return ne}const Ue={visitTypes:["id","name","minutes","fee","color"],clinicians:["id","name","initials","role","color"],appointments:["clinician_id","visit_type_id","starts_at","minutes"],closures:["clinician_id","on_date","reason"]};async function C(e,t,o,i){const n=[],a=Math.max(1,Math.min(o,500));for(let s=0;s<i;s+=a){const l=await e.list(t,{limit:a,offset:s});if(n.push(...l.data),l.data.length<a)return n}return console.warn(`[adminium] ${t}: stopped at ${String(i)} rows — the rest were not read.`),n}async function Ke(e){try{await e.assertRefs(Ue);const t=await e.config(),o=t.timezone,i=r=>t.refs[r]?.limit??100,[n,a,s,l]=await Promise.all([C(e,"visitTypes",i("visitTypes"),5e4),C(e,"clinicians",i("clinicians"),5e4),C(e,"appointments",i("appointments"),5e4),C(e,"closures",i("closures"),5e4)]),g=new Map,p=[];for(const r of n){const d=Me[r.name];d!==void 0&&(g.set(r.id,d),p.push({id:d,label:r.name,blurb:`data.type.${d}.blurb`,minutes:r.minutes,fee:Number(r.fee),tint:r.color}))}const u=new Map,f=a.map(r=>{const d=r.initials.toLowerCase();return u.set(r.id,d),{id:d,name:r.name,ini:r.initials,role:Ve[r.role],tint:r.color,offers:We[r.role]}}),y=[];for(const r of s){const d=u.get(r.clinician_id),m=g.get(r.visit_type_id);d===void 0||m===void 0||y.push({id:`db-${String(y.length)}`,patient:"",clinician:d,type:m,date:q(r.starts_at,o),start:G(r.starts_at,o),status:"booked",checkedInAt:null,reason:"",deskNote:null,recallWeeks:null})}const h=[];for(const r of l){const d=r.clinician_id===null?null:u.get(r.clinician_id);d!==void 0&&h.push({date:r.on_date.slice(0,10),reason:r.reason,clinician:d,from:null})}const c=new Date().toISOString();return{currency:t.currency,timezone:o,timezoneSource:t.timezoneSource??null,visitTypes:p,clinicians:f,appointments:y,closures:h,now:{date:q(c,o),minutes:G(c,o)}}}catch(t){return ne=t instanceof Error?t:new Error(String(t)),console.warn("[adminium] could not load a snapshot:",t),null}}function $e(e){return{now:()=>({...e.now}),visitTypes:()=>e.visitTypes.map(t=>({...t})),clinicians:()=>e.clinicians.map(t=>({...t,offers:[...t.offers]})),appointments:()=>e.appointments.map(t=>({...t})),closures:()=>e.closures.map(t=>({...t})),patients:()=>H.patients(),charges:()=>H.charges(),payments:()=>H.payments()}}const qe="x-adminium-csrf",Ge=200;function J(e,t){return e!==void 0?"operator":t.timezone===null||t.timezone===void 0?null:t.timezoneSource==="operator"||t.timezoneSource==="host"?t.timezoneSource:null}class A extends Error{status;code;constructor(t,o,i){super(t),this.name="SessionPortError",this.status=o,this.code=i}}function Je(e){const t=e.fetchImpl??globalThis.fetch.bind(globalThis);let o=null,i=e.connectionId??null,n=e.timezone??null,a=e.timezone===void 0?null:"operator",s=e.currency??null,l=[];async function g(y,h){const c=(h?.method??"GET").toUpperCase()!=="GET",r=await t(y,{credentials:"same-origin",...h,headers:{accept:"application/json",...h?.body!==void 0?{"content-type":"application/json"}:{},...c&&o!==null?{[qe]:o}:{},...h?.headers}});let d=null;try{d=await r.json()}catch{}if(!r.ok){const m=d;throw new A(m?.error?.message??`Request failed with status ${String(r.status)}.`,r.status,m?.error?.code??"INTERNAL")}return d}async function p(){o=(await g("/api/v1/bootstrap")).data?.csrfToken??null;const c=(await g("/api/v1/connections")).connections??[],r=c.filter(m=>m.disabled!==!0);if(l=c.filter(m=>m.disabled===!0).map(m=>m.name??m.id),i!==null){const m=c.find(k=>k.id===i);if(m!==void 0){if(m.disabled===!0)throw new A(`the connection this app is pinned to (${m.name??m.id}) is paused in Adminium — resume it in Connections, or point this app at another one`,412,"CONNECTION_PAUSED");n=e.timezone??m.timezone??null,a=J(e.timezone,m),s=e.currency??m.currency??null}return i}if(r.length===0)throw c.length>0?new A(c.length===1?`the connection this app reads (${c[0]?.name??c[0]?.id??"unnamed"}) is paused in Adminium — resume it in Connections`:`all ${String(c.length)} connections are paused in Adminium — resume the one that holds this app's data`,412,"CONNECTION_PAUSED"):new A("no source connection is configured — connect this app's database in Adminium first",412,"NO_CONNECTION");if(r.length>1&&e.connectionId===void 0)throw new A(`${String(r.length)} connections are serving in Adminium — pause the ones this app does not read, or pass connectionId to say which one holds it`,409,"AMBIGUOUS_CONNECTION");const d=r[0];return n=e.timezone??d.timezone??null,a=J(e.timezone,d),s=e.currency??d.currency??null,i=d.id,i}function u(){if(l.length===0)return"";const y=l.join(", ");return l.length===1?`
3
+
4
+ ${y} is paused in Adminium. If that is this app's database, resume it in Connections — this app read a different one.`:`
5
+
6
+ ${String(l.length)} connections are paused in Adminium (${y}). If this app's database is one of them, resume it in Connections — this app read a different one.`}return{port:{async config(){return await p(),n===null?(n="UTC",a="fallback",console.warn("[adminium] this connection has no timezone; dates render in UTC. Set one on the connection in Adminium so they render in the business's zone.")):a==="host"&&console.info(`[adminium] dates render in ${n}, the zone of the server running Adminium. Confirm it on the connection (Connections → this database) if it is this business's zone.`),{side:"staff",timezone:n,timezoneSource:a,currency:s,refs:{}}},async assertRefs(y){const h=await p(),c=await g(`/api/v1/connections/${encodeURIComponent(h)}/schema`),r=new Map((c.model?.tables??[]).map(m=>[m.name,new Set((m.columns??[]).map(k=>k.name))])),d=[];for(const[m,k]of Object.entries(y)){const v=e.tableOfRef[m];if(v===void 0){d.push(`${m}: no table mapping`);continue}const D=r.get(v);if(D===void 0){d.push(`${m}: table "${v}" is absent`);continue}const Z=k.filter(ae=>!D.has(ae));Z.length>0&&d.push(`${v}: missing ${Z.join(", ")}`)}if(d.length>0)throw new A(`this database does not match what this app reads —
7
+ ${d.join(`
8
+ `)}${u()}`,412,"SCHEMA_MISMATCH")},async list(y,{limit:h,offset:c}){const r=await p(),d=e.tableOfRef[y];if(d===void 0)throw new A(`unknown ref "${y}"`,400,"UNKNOWN_REF");const m=Math.min(h,Ge),k=`limit=${String(m)}&offset=${String(c)}`;return{data:(await g(`/api/v1/data/${encodeURIComponent(r)}/${encodeURIComponent(d)}?${k}`)).data??[]}}},async mutate(y,h,c){if(o===null)throw new A("call config() before mutate() — the CSRF token is captured there",500,"CSRF_TOKEN_MISSING");return g(y,{method:h,...c===void 0?{}:{body:JSON.stringify(c)}})}}}function Ye(e){return Je(e)}const Qe={visitTypes:"visit_types",clinicians:"clinicians",appointments:"appointments",closures:"closures"},F=document.getElementById("root");if(!F)throw new Error("Missing #root — check index.html");const T="Clinic Desk";function Xe(e){switch(e){case"AMBIGUOUS_CONNECTION":return`${T} does not know which database to read`;case"CONNECTION_PAUSED":return`${T}'s database is paused`;case"NO_CONNECTION":return`${T} is not connected`;case"NO_BACKEND":return`${T} has no backend configured`;default:return`${T} could not load its data`}}function et(e,t,o){const i=Xe(o);console.error(`[adminium] ${i}: ${t}`),e.innerHTML="";const n=document.createElement("div");n.setAttribute("role","alert"),n.style.cssText="max-width:34rem;margin:12vh auto;padding:1.5rem;font:400 15px/1.6 system-ui,sans-serif;border:1px solid #d4d4d8;border-radius:12px;color:#18181b;background:#fff";const a=document.createElement("h1");a.textContent=i,a.style.cssText="margin:0 0 .5rem;font-size:1.05rem;font-weight:600";const s=document.createElement("p");s.textContent=t,s.style.cssText="margin:0;color:#52525b;white-space:pre-wrap",n.append(a,s),e.append(n)}function tt(e){const t=e?.code;return typeof t=="string"?t:null}async function nt(){{const o=await Fe(),i=Ye({tableOfRef:Qe,connectionId:o??void 0}).port,n=i===null?"This build has no backend configured. A hosted customer surface needs a key bound to it in Studio (or baked VITE_ vars); a standalone build needs VITE_ADMINIUM_API_BASE_URL and VITE_ADMINIUM_PUBLISHABLE_KEY.":null,a=n===null&&i!==null?await Ke(i):null;if(a===null){const s=n===null?Ze():null;et(F,s!==null?s.message:n??"Could not load data from Adminium. The server may be unreachable, the key may be wrong, or this clinic's tables may not match what it reads.",n===null?tt(s):"NO_BACKEND");return}ze(a.currency),Se(a.timezone,a.timezoneSource),Le($e(a)),console.info(`[adminium] connected: ${String(a.visitTypes.length)} visit types, ${String(a.clinicians.length)} clinicians, ${String(a.appointments.length)} appointments`)}const{default:e}=await b(async()=>{const{default:o}=await import("./App-ijJtS1to.js");return{default:o}},__vite__mapDeps([0,1,2,3,4,5]));{const{useStore:o}=await b(async()=>{const{useStore:n}=await import("./store-D_4Keuh8.js").then(a=>a.a2);return{useStore:n}},__vite__mapDeps([2,1,3])),{demoAddOns:i}=await b(async()=>{const{demoAddOns:n}=await import("./registry-EirlpZlW.js");return{demoAddOns:n}},__vite__mapDeps([6,1,3,5]));o.getState().registerAddOns(i())}const t="clinic";{const{useStore:o}=await b(async()=>{const{useStore:i}=await import("./store-D_4Keuh8.js").then(n=>n.a2);return{useStore:i}},__vite__mapDeps([2,1,3]));o.getState().setPersona(t)}{const{useStore:o}=await b(async()=>{const{useStore:u}=await import("./store-D_4Keuh8.js").then(f=>f.a2);return{useStore:u}},__vite__mapDeps([2,1,3])),{attachUrlSync:i}=await b(async()=>{const{attachUrlSync:u}=await import("./urlSync-DqVGf0-x.js");return{attachUrlSync:u}},[]),{connectToHost:n}=await b(async()=>{const{connectToHost:u}=await import("./embed-D9WnNWH8.js");return{connectToHost:u}},[]),{SURFACE_NAV:a,APP_KEY:s}=await b(async()=>{const{SURFACE_NAV:u,APP_KEY:f}=await import("./surface-nav-6BkCPZCf.js");return{SURFACE_NAV:u,APP_KEY:f}},[]),{setHostLocale:l}=await b(async()=>{const{setHostLocale:u}=await Promise.resolve().then(()=>Re);return{setHostLocale:u}},void 0);let g=null;const p=i({nav:a,side:B,go:u=>o.getState().go(u),current:()=>o.getState().view,onPath:u=>g?.navigated(u)});g=await n(s,B,p.path(),{onTheme:u=>o.getState().setHostTheme(u),onLocale:l,onPath:u=>p.applyPath(u)}),o.subscribe(p.reflect)}ce.createRoot(F).render(I.jsx(S.StrictMode,{children:I.jsx(te,{children:I.jsx(e,{})})}))}nt();export{mt as A,ft as D,yt as N,pt as S,ut as a,ct as b,gt as c,ht as d,I as j,dt as l,lt as m,it as r,rt as s,st as t,Te as u};