International design
The same number means different things in different places. A design system for a device that ships across borders has to make the ambiguity impossible rather than unlikely.
Overview
Internationalisation is usually a translation problem. In clinical software the translation is the easy half. The hard half is that units, name order, date order and decimal separators all vary, and every one of them can change what a number means without changing a single character of the interface.
Most of the rules live on other pages — ISO dates on Date & time picker, units on Key–value pair, expansion budgets on Voice & tone. This page is what those rules are for, plus the two things nothing else covers: locale-dependent units and script direction.
Structural
Direction, order and formatting come from the platform's logical properties, not from hand-written left and right. RTL works because the code never assumed otherwise.
Explicit
Units, zones and formats are stated, never inferred from a locale. A value that changes meaning when the interface language changes is a defect.
Clinically reviewed
Clinical terminology is translated by someone who reads both the language and the medicine. A linguistically correct mistranslation is still a mistranslation.
Units are the real hazard
Measurement units vary by country in ways that alter magnitude by orders of magnitude — glucose in mg/dL or mmol/L, troponin in ng/L or ng/mL, weight in kg or lb. Switching the interface language must never silently convert or reinterpret a stored value. Unit is a property of the measurement, chosen per deployment and displayed alongside every value; language is a property of the reader. They are configured separately and neither follows the other.
One measurement, two conventions, a thousandfold apart. Both are correct; a value shown without its unit is neither.
- Store canonical, display configured. One unit on the wire, per-deployment display units, conversion at the boundary and never in the middle.
- Reference ranges convert with the value, always together. A converted value beside an unconverted range is worse than either alone.
- Converted values are marked as converted where the source used a different unit, so a clinician can trace back.
- Never round during conversion beyond the precision of the original.
Right-to-left
RTL works by construction here: every spacing and layout token uses logical properties
(margin-inline-start, not margin-left), so the interface mirrors
without per-locale overrides — see Typography.
Chrome mirrors; clinical data does not. An ECG is read left to right in every country, calibrated against paper that runs left to right, and the convention is part of how clinicians are trained. Mirroring a trace in an RTL layout would invert the direction of time. The same applies to trend charts and any time axis: the container flips, the plot does not, and the axis labels stay in reading order for the data rather than the page.
| Mirrors in RTL | Never mirrors |
|---|---|
| Navigation, layout regions, side panels | ECG traces and any time axis |
| Text alignment, list markers, breadcrumb order | Trend charts and their direction of travel |
| Icons with a direction of travel — back, forward | Anatomical images and lead diagrams |
| Progress fill direction | Numbers, identifiers, ISO dates |
Names
- Never assume given-then-family. The system stores name parts separately and marks which is the family name, rather than splitting a single string on a space.
- Family name in capitals in identity displays, which is what makes the order unambiguous regardless of convention — see Patient header.
- Preserve diacritics and non-Latin scripts exactly. Stripping accents to fit a legacy field creates a different patient.
- Where a transliteration exists, show both, and never let a search on one fail to find the other.
- No character-set restrictions on name fields beyond what the record system genuinely enforces, and say so if it does.
Language
- Interface language and record language are different things. A clinician may read the UI in one language while the notes are in another; the system never translates stored clinical text.
- Never switch language mid-task. A change takes effect at a safe boundary, never while a form is open or an alarm is unacknowledged.
- Governed strings are reviewed, not just translated — see Voice & tone. The negative-result caveat means the same thing in every language or it means nothing.
- Clinical abbreviations do not translate uniformly. STEMI, ECG and MRN have different local conventions; the deployment decides, and the choice is recorded.
- Locale never changes a threshold. Alarm limits, reference ranges and decision points are clinical configuration, not regional formatting.
Do's and don'ts
Thin-space separator and an explicit unit. Unambiguous in every locale the product ships to.
A full stop as thousands separator, no unit. Read in another country this is one and a quarter of something unstated.
In an RTL layout the panel flips; the trace does not. Time still runs left to right, as it does on paper everywhere.
The whole layout mirrored, trace included. Time now runs backwards and the ST segment appears before the QRS.
Family name capitalised, so the order is unambiguous whichever convention the reader expects.
Ambiguous name order and an ambiguous date. Two readings of the name, two readings of the date, one patient.
Accessibility
langis set correctly on the document and on any element in a different language, so screen readers switch pronunciation rather than reading French as English.diris set on the root, never simulated with per-element alignment.- Fonts cover the deployed scripts. A missing glyph renders as a box, and a box in a patient name is a wrong-patient risk — see Typography.
- Never rely on italics for emphasis; many scripts have no italic form.
- Test at 35 % expansion in the actual layout, not by eye. Status chips and table headers break first.
Outcomes of use
What this contributes to, in the terms of Usability & context of use.
- Effectiveness — a value read in Vienna means what it meant in the lab that produced it. Unit and format ambiguity is the failure mode here.
- Efficiency — no mental conversion, and no cross-checking a number against a range in a different unit.
- Satisfaction — clinicians reading a second or third language are not additionally taxed by an interface that assumed one.
Clinical safety notes
Trace these in your risk file (ISO 14971) and usability engineering file (IEC 62366-1).
- Locale never changes a unit, a threshold or a reference range. Mitigates: an order-of-magnitude misreading from a silent conversion.
- Values and their ranges convert together. Mitigates: a converted result compared against an unconverted range.
- Traces and time axes never mirror. Mitigates: time reversed in an RTL layout, inverting the reading of a waveform.
- Name parts stored separately, family name capitalised. Mitigates: wrong-patient identification from ambiguous name order.
- Diacritics and scripts preserved exactly. Mitigates: a stripped name matching a different patient.
- Language never switches mid-task. Mitigates: an interface changing under a clinician with an alarm unacknowledged.
- Governed strings reviewed clinically in each language. Mitigates: a safety caveat that is linguistically correct and clinically wrong.
Related
- Voice & tone — expansion budget and governed strings.
- Typography — scripts, logical properties, italics.
- Key–value pair — units bound to values.
- Date & time picker — zones and ISO format.