/** * English message catalogue. * * Typed as `Messages` (the shape of `de.ts`), so a missing, extra or misspelt key * fails type checking instead of silently rendering German text in the English UI. * * LEGAL PAGES — deliberate decisions, see also the note rendered on the pages: * · The German Impressum / Datenschutzhinweise remain the legally binding version. * The English text is a courtesy translation for comprehension only, and says so. * · German legal terms that name a REGULATED status are NOT translated into a * foreign-law category. "Freiberufler" stays "Freiberufler" with a plain-language * gloss; translating it as "freelancer", "sole trader" or "independent contractor" * would assert a status under a different legal system that was never claimed. * · Statute references (§ 5 DDG, § 18 (2) MStV, § 38 BDSG, § 27a UStG, Art. … DSGVO) * keep their German short names, with an explanatory gloss on first use. DSGVO is * rendered as "GDPR" because it is the same instrument, not a national analogue. * · Placeholders in square brackets stay placeholders in both languages. */ import type { Messages } from './de' export const en: Messages = { meta: { title: 'Blut24 — find, order and trace blood units across Germany', description: 'Blut24 connects supplying and receiving hospitals: scan a unit, see available stock ' + 'across Germany, order and export. With FEFO expiry control, DGTI delivery notes and a ' + 'scanner app. Free of charge for hospitals.', ogTitle: 'Blut24 — the blood unit platform for hospitals', ogDescription: 'See available stock across Germany, trace every unit by its number, avoid expiry. ' + 'Free of charge for hospitals.', confirmTitle: 'Confirm registration — Blut24', imprintTitle: 'Imprint — Blut24', privacyTitle: 'Privacy — Blut24', }, app: { skipToContent: 'Skip to content', }, nav: { how: 'How it works', features: 'Features', benefit: 'Your benefit', couriers: 'Courier services', couriersLong: 'For courier services', mobileApp: 'App', scannerApp: 'Scanner app', registration: 'Registration', imprint: 'Imprint', privacy: 'Privacy', product: 'Product', legal: 'Legal', home: 'Back to home page', }, header: { brandHome: 'Blut24 – back to the home page', mainNav: 'Main navigation', mainNavMobile: 'Main navigation, mobile', openMenu: 'Open menu', closeMenu: 'Close menu', register: 'Register free of charge', languageGroup: 'Choose language', switchToGerman: 'Diese Seite auf Deutsch anzeigen', switchToEnglish: 'Show this page in English', german: 'DE', english: 'EN', }, hero: { eyebrow: 'Blood unit platform', titleLead: 'Find blood units across Germany —', titleAccent: 'instead of letting them expire.', lead: 'Blut24 connects supplying and receiving hospitals. Scan a unit, see what other hospitals ' + 'have available, order in a few clicks — with per-unit traceability and FEFO expiry ' + 'control.', ctaRegister: 'Register your hospital free of charge', ctaHow: 'How it works', // Deliberately short — they sit on ONE row from sm: upwards. See the German note. points: [ 'Free of charge', 'Runs in your browser', '1,581 hospital sites on record', ], }, proof: { srTitle: 'What Blut24 changes for your hospital', freeTitle: 'Blut24 is free of charge for hospitals', freeText: 'We charge hospitals nothing for registering or for using the platform. Medical courier ' + 'services take part free of charge as well.', value: [ { title: 'See expiry before it happens', text: 'Stock is sorted by remaining shelf life (FEFO). Units approaching their expiry date ' + 'move to the top — while they can still be passed on.', }, { title: 'One query instead of a round of phone calls', text: 'You see the available stock of participating hospitals directly by product type, ' + 'blood group and rhesus formula — without calling one hospital after another.', }, { title: 'One workflow instead of four systems', text: 'Scanning, stock, ordering and the DGTI delivery note interlock. No retyping between ' + 'fax, spreadsheet and laboratory system.', }, ], assurances: [ 'Free of charge for hospitals', 'Processed exclusively on servers located in Germany', 'No patient data — blood unit data only', ], }, how: { eyebrow: 'Workflow', title: 'Four steps to the unit you need', lead: 'From the scan to the delivery note, everything stays in one system. No second portal, ' + 'no spreadsheet, no re-entering data.', stepPrefix: 'Step', steps: [ { title: 'Scan', text: 'Capture the unit with a handheld scanner or the app. Unit number, blood group, ' + 'product code and expiry date are read from the Eurocode — no typing.', }, { title: 'See stock across Germany', text: 'You immediately see which units are available at other participating hospitals — ' + 'by product type, blood group and rhesus formula.', }, { title: 'Order', text: 'Use the order matrix to choose quantities per blood group. The supplying hospital ' + 'confirms, and transport is handed to a medical courier service.', }, { title: 'Fully automated exchange', text: 'If the other side also uses Blut24, the order, the delivery note and the unit data ' + 'stay entirely inside the system — nothing has to be retyped, faxed or captured ' + 'again. Everything remains possible towards the outside as well: import and export ' + 'DGTI delivery notes, print the order as a PDF or send it by e-mail — for hospitals ' + 'that have not joined yet.', }, ], }, features: { eyebrow: 'Features', title: 'Everything a blood bank needs day to day', lead: 'Built along the workflows of blood banking and transfusion medicine — not as an add-on ' + 'module, but as one continuous path from the unit to the document.', items: [ { title: 'Matrix ordering', text: 'Order the way the request form works: blood groups in the columns, product types in ' + 'the rows, quantity straight into the cell. One form instead of many single items.', }, { title: 'Traceability for every unit', text: 'Every unit is uniquely identified by its 16-digit unit number. Origin, storage ' + 'location, recipient and every status change stay traceable.', }, { title: 'FEFO expiry control', text: 'First Expired, First Out: units with the nearest expiry date are proposed first. ' + 'You see expiring stock before it is too late.', }, { title: 'DGTI delivery note — import and export', text: 'Read and generate delivery notes in DGTI format. Units arrive in stock with all ' + 'their attributes, without capturing them one by one.', }, { title: 'No media break', text: 'Scanning, stock, ordering, delivery note and dispatch in one workflow. No transfer ' + 'between fax, spreadsheet and laboratory system.', }, { title: 'Mobile scanner app', text: 'An Android app for the cold room: book units in and out, and record picking and ' + 'handover right at the shelf.', }, { title: 'Exports and e-mail dispatch', text: 'Export stock, orders and documents as PDF or CSV and send them straight from the ' + 'system — to colleagues, the courier service or the archive.', }, { title: 'Data minimisation per hospital', text: 'You see your own units in full, with number, expiry date and storage location. Other ' + 'hospitals only ever see available quantities — never your unit data.', }, ], }, benefit: { eyebrow: 'Your benefit', title: 'More units reach the place where they are needed', lead: 'Blood products are scarce and short-lived. Blut24 makes expiring stock visible while it ' + 'can still be passed on — turning an imminent write-off into a delivery to a hospital ' + 'that needs the unit today.', points: [ { title: 'Early warning instead of a write-off.', text: 'Units approaching their expiry date are automatically sorted to the front (FEFO) and ' + 'highlighted in the expiry monitor — you act while acting still helps.', }, { title: 'Pass it on instead of discarding it.', text: 'Instead of discarding a unit, you offer it across Germany — anonymised, as an ' + 'available quantity only. Another hospital covers its demand with it.', }, { title: 'The material value stays in the house.', text: 'Worked example: if 10 red cell concentrates are discarded per month, at an assumed ' + 'material value of €120 per unit that adds up to roughly €14,400 a year — value that ' + 'stays with you when the unit is passed on instead.', aside: '(Worked example based on our own assumption — Blut24 does not quote prices.)', }, ], shelfLife: [ { label: 'Red cell concentrate', value: 'up to 42 days' }, { label: 'Platelet concentrate', value: '4 to 5 days' }, { label: 'Fresh frozen plasma', value: 'up to 36 months' }, ], monitor: { title: 'Expiry monitor', sample: 'Example view', stock: '53 units in your own stock', units: ' units', buckets: ['in 0–3 days', 'in 4–7 days', 'in 8–14 days', 'later than 14 days'], privacy: 'From this view other hospitals see only the available quantity per product type — never ' + 'unit numbers, storage locations or expiry dates.', }, }, courier: { eyebrow: 'For courier services', title: 'Medical courier services for blood transports', lead: 'Blut24 is aimed at medical courier services that carry blood and blood unit transports ' + 'between hospitals. Jobs arrive directly on the smartphone, you confirm pick-up and ' + 'delivery in the app, and both hospitals receive the same document. Taking part is free ' + 'of charge — you gain additional runs without investing in software of your own.', cta: 'Register as a courier service', note: 'Please note: Blut24 arranges goods transports of blood products between facilities only.', items: [ { title: 'Jobs straight to the smartphone', text: 'New transport jobs reach your drivers immediately in the Blut24 app — with the ' + 'collecting hospital, the destination hospital, the time window and the number of ' + 'units. No phone call-backs, no fax, no paperwork in the vehicle.', }, { title: 'Confirm pick-up and delivery in the app', text: 'At hand-over and at delivery the unit numbers are scanned and the transfer is ' + 'confirmed directly in the app. Every change of responsibility is recorded with a ' + 'timestamp — traceable for you and for both hospitals.', }, { title: 'Connected to new clients at no cost', text: 'Taking part is free of charge for courier services. You become visible as a ' + 'transport partner to the connected hospitals and can accept additional runs without ' + 'operating a system of your own or paying any fees.', }, ], }, mobile: { eyebrow: 'Scanner app', title: 'The blood bank in your coat pocket', lead: 'The Blut24 app brings scanning and booking to where the units are. No slips of paper, no ' + 'walk back to the workstation.', capabilities: [ 'Scan unit numbers and Eurocodes with the camera', 'Book units in and out right at the fridge', 'Sign off picking and handover', 'Works on standard Android devices', ], iosPending: 'In preparation', releaseHint: 'Installation from an unknown source has to be allowed once on the device.', downloadPending: 'The download link will be published here once the app is released.', versionLabel: (version: string) => `Version ${version}`, dateLabel: (date: string) => `as of ${date}`, phone: { kicker: 'Blut24 scanner', title: 'Capture unit', unitNo: 'Unit number', product: 'Product', expiry: 'Expires', location: 'Storage location', locationValue: 'Cold room 2 · Shelf B', book: 'Book in', }, }, android: { downloadLabel: 'Download the Blut24 Android app as an APK', pendingLabel: 'Blut24 Android app — download in preparation', kickerLive: 'Direct download', kickerPending: 'In preparation', title: 'Android APK', }, matrix: { eyebrow: 'Stock matrix', title: 'Availability by blood group', live: 'live', caption: 'Example stock overview: your own units and the units available across Germany, per product ' + 'type and blood group.', product: 'Product', rows: [ { label: 'RCC Rh pos.', hint: 'Red cell concentrate' }, { label: 'RCC Rh neg.', hint: 'Red cell concentrate' }, { label: 'PC', hint: 'Platelet concentrate' }, { label: 'FFP', hint: 'Fresh frozen plasma' }, ], ownStock: 'Own stock', ownStockHint: 'with unit number', nationwide: 'Across Germany', nationwideHint: 'quantities only', unit: 'Unit', unitDetail: 'RCC A CcD.ee · expires in 12 days · cold room 2', }, registration: { eyebrow: 'Registration', title: 'Register free of charge', lead: 'Blut24 is free of charge for hospitals — registering and using it costs your facility ' + 'nothing. We check every registration against your facility’s e-mail domain, so that ' + 'stock is only ever visible to authorised hospitals.', steps: [ { title: 'Fill in the form', text: 'Choose your facility, enter contact details — two minutes.' }, { title: 'Confirm your e-mail', text: 'You receive a confirmation link at your work address.' }, { title: 'Receive access', text: 'We set up your tenant and send the login details.' }, ], privacyNote: 'We store only the details from this form. No patient data, no disclosure to third ' + 'parties, processing in Germany.', cardTitle: 'Who is registering?', cardLead: 'Choose your role — the form opens with the matching preselection.', // Two roles. Whether a hospital supplies, receives or does both is not asked here but // at the first sign-in to Blut24. Length and order are coupled to `audienceMeta` in // SectionRegistration.vue — and to de.ts. audiences: [ { title: 'Hospital', text: 'Supply units, obtain them or both — you choose that at your first sign-in.', }, { title: 'Medical courier service', text: 'Drives blood transports between facilities.' }, ], cta: 'Start registration', ctaFree: 'Free of charge — we charge hospitals nothing for registering or for using Blut24.', timeNote: 'About two minutes. Find your hospital via the search — address and site data are filled ' + 'in for you.', }, dialog: { eyebrow: 'Registration', title: 'Register with Blut24 free of charge', // Names BOTH audiences — see the note on the German key. freeTitle: 'Free of charge for hospitals and courier services', freeText: 'Registering and using Blut24 costs your hospital nothing. Taking part is free of charge ' + 'for medical courier services as well.', close: 'Close registration', }, form: { step1: '1. I am registering as', step2: '2. Your facility', step3: '3. Your contact details', // Index-coupled to `typeIds` in RegistrationForm.vue: ['klinik', 'kurierdienst']. // Length and order must stay identical there and in de.ts. types: [ { title: 'Hospital', text: 'Whether you supply units, obtain them or both — you choose that at your first ' + 'sign-in to Blut24. At least one role is required.', }, { title: 'Medical courier service', text: 'You carry blood and blood unit transports between hospitals.', }, ], clinicSearch: 'Search for your hospital', clinicPlaceholder: 'Enter a name, town or postcode', clinicListLabel: 'Hospitals found', clinicHelp: 'Data source: Bundes-Klinik-Atlas with 1,581 sites. Enter at least two characters.', clinicNoDomainOption: 'no domain on record', clinicDomainsOne: 'Domain on record:', clinicDomainsMany: 'Domains on record:', clinicNoDomain: 'No domain on record — your registration will be reviewed manually.', company: 'Company', street: 'Street and house number', plz: 'Postcode', city: 'Town', fullName: 'First and last name', email: 'Work e-mail address', emailHelp: 'Must belong to your facility’s domain. Private addresses (GMX, Web.de, Gmail …) are ' + 'not accepted.', phone: 'Phone', phoneHelp: 'For queries, optional.', note: 'Comment', notePlaceholder: 'Department, preferred start date, questions …', honeypot: 'Website (please leave empty)', consentBefore: 'I have read the ', consentLink: 'privacy notice', consentAfter: ' and agree that my details may be stored in order to process my registration.', submit: 'Submit registration', submitting: 'Sending …', submitNote: 'You will receive an e-mail with a confirmation link. We set up access only after that.', submitFree: 'Registration is free of charge.', domainPickerTitle: (domain: string, count: number) => `Sites for the domain “${domain}” (${count})`, domainPickerLead: 'Hospital groups share one e-mail domain. Please choose your own site.', doneTitle: 'Please confirm your e-mail address', doneText: 'Thank you. If the details are valid, you will shortly receive an e-mail with a ' + 'confirmation link. Please check your spam folder as well.', doneManual: 'Your details cannot be matched automatically against a directory on record. After you ' + 'confirm, we will review them manually and get back to you within one working day.', doneClose: 'Close window', errors: { type: 'Please choose what you would like to register as.', stoid: 'Please choose your hospital from the suggestion list.', orgName: 'Please enter the name of your company.', street: 'Please enter the street and house number.', plz: 'Please enter a valid 5-digit German postcode.', city: 'Please enter the town.', contactName: 'Please enter your first and last name.', emailRequired: 'Please enter your work e-mail address.', emailInvalid: 'This e-mail address is not valid.', emailFreemail: 'Please use your work e-mail address ' + '(no private providers such as GMX, Web.de, Gmail or T-Online).', acceptTerms: 'Please confirm the privacy notice.', domainMismatch: (domain: string, clinic: string) => `The domain “${domain}” does not belong to “${clinic}”.`, submitFailed: 'The registration could not be saved.', sendFailed: 'The registration could not be sent. Please try again.', }, notices: { testDomain: (domain: string) => `Test domain “${domain}” — registration is possible for any site. ` + 'It is activated automatically and marked internally as a test registration.', domainMatches: (domain: string) => `The domain “${domain}” matches the selected site.`, noDomainOnRecord: 'No domain is on record for this site — we will review your registration ' + 'manually.', oneMatch: 'We found a matching site for your e-mail domain.', manyMatches: (domain: string, count: number) => `“${domain}” covers ${count} sites. Please choose your own.`, }, }, confirm: { loadingTitle: 'Checking your confirmation …', loadingText: 'One moment please.', successTitle: 'Thank you — registration confirmed', alreadyTitle: 'Already confirmed', registeredAs: (type: string) => ` is registered with Blut24 as a ${type}.`, credentialsSent: 'We have just sent your login details by e-mail. Please change the password after your ' + 'first sign-in.', manualPending: 'We will now review your details manually and set up your access afterwards. You will hear ' + 'from us within one working day.', accessPending: 'We are setting up your access now and will send your login details in a separate e-mail.', errorTitle: 'Confirmation not possible', noToken: 'No confirmation link was supplied. Please open the link from our e-mail.', failed: 'The confirmation link could not be processed.', failedRetry: 'The confirmation link could not be processed. Please try again later.', registerAgain: 'Register again', retry: 'Try again', }, footer: { tagline: 'The platform for blood units and blood products: see stock across Germany, trace units and ' + 'avoid expiry. Free of charge for hospitals.', iosNote: 'An iOS version is in preparation.', copyright: (year: number) => `© ${year} Blut24`, }, legal: { noticeTitle: 'English translation — the German version is the binding one', noticeText: 'This page is a courtesy translation provided for comprehension. Blut24 is operated from ' + 'Germany and these are German legal documents; in case of any difference in meaning, the ' + 'German version alone is authoritative. German legal terms and statute references are ' + 'kept in German, because no foreign-law term carries exactly the same meaning.', switchToGerman: 'Read the binding German version', }, imprint: { title: 'Imprint', s1: 'Information pursuant to § 5 DDG (German Digital Services Act)', operator: ['Younes Kalakhi', 'IT Beratung & Dienstleistung', 'Haustädterstr. 2', '35633 Lahnau', 'Germany'], contactHeading: 'Contact', phone: 'Phone: +49 (0)6441 566709-0', fax: 'Fax: +49 (0)6441 566709-1', email: 'E-mail: [insert e-mail address]', legalFormHeading: 'Legal status', legalFormText: '“Freiberufler” under German law — the term is left in German on purpose, because it ' + 'denotes a specific German-law status for independent professional practice and has no ' + 'exact equivalent in other jurisdictions. There is no entry in the German commercial ' + 'register (Handelsregister).', taxHeading: 'Tax information', taxNumber: 'Tax number: 28095643876', vat: 'No VAT identification number pursuant to § 27a of the German VAT Act (UStG) has been issued.', editorialHeading: 'Responsible for editorial content (§ 18 (2) MStV)', editorial: ['Younes Kalakhi', 'Haustädterstr. 2, 35633 Lahnau, Germany'], insuranceHeading: 'Professional indemnity insurance', insuranceText: 'Professional indemnity insurance is in place.', disputeHeading: 'Dispute resolution', disputeIntro: 'The European Commission provides a platform for online dispute resolution (ODR):', disputeText: 'We are neither willing nor obliged to take part in dispute resolution proceedings before a ' + 'consumer arbitration board. Blut24 is aimed exclusively at healthcare facilities and not ' + 'at consumers.', liabilityHeading: 'Liability for content and links', liabilityText: 'The content of these pages was compiled with the greatest care. We cannot, however, ' + 'guarantee that it is accurate, complete or up to date. The respective provider is always ' + 'responsible for the content of external pages we link to.', sourceHeading: 'Data source of the hospital directory', sourceText: 'The hospital sites used in the registration form come from the transparency register of ' + 'the Bundes-Klinik-Atlas (as of 30 June 2026). The data is used solely so that you can ' + 'select your own facility.', }, privacy: { title: 'Privacy notice', s1: '1. Controller', controller: ['Younes Kalakhi', 'IT Beratung & Dienstleistung', 'Haustädterstr. 2', '35633 Lahnau', 'Germany'], phone: 'Phone: +49 (0)6441 566709-0', fax: 'Fax: +49 (0)6441 566709-1', email: 'E-mail: [insert e-mail address]', dpoNote: 'No data protection officer has been appointed; there is no obligation to appoint one under ' + '§ 38 BDSG (German Federal Data Protection Act). For data protection enquiries please ' + 'use the address above.', s2: '2. What data we process', dataItems: [ { label: 'Registration data:', text: ' type of facility, the hospital site you selected or your company details, first ' + 'and last name, work e-mail address, phone number (optional) and your comment.', }, { label: 'Technical data for abuse prevention:', text: ' IP address and browser identification at the time of registration, plus the ' + 'timestamp of the confirmation.', }, { label: 'Server log data:', text: ' access data generated when the site is called up.', }, ], noPatientLabel: 'No patient data.', noPatientText: ' No health or patient data whatsoever is collected via this website.', s3: '3. Purposes and legal bases', purposes: [ 'Processing your registration and setting up access — Art. 6 (1) (b) GDPR (steps prior to ' + 'entering into a contract).', 'Confirming the e-mail address in a double opt-in procedure and checking whether the e-mail ' + 'domain belongs to the facility given — Art. 6 (1) (f) GDPR (legitimate interest in ' + 'preventing abusive registrations).', 'Operating and securing the website — Art. 6 (1) (f) GDPR.', ], s4: '4. Hospital directory', s4Text: 'The hospital selection list comes from the publicly available transparency register of the ' + 'Bundes-Klinik-Atlas. It contains information about facilities only, no personal data. The ' + 'search runs entirely on our own server; no search terms are transmitted to third parties.', s5: '5. No external services, no trackers', s5Text: 'This website loads no fonts, scripts, maps or images from third parties. Neither analytics ' + 'nor marketing cookies are set. No profiling takes place.', s5Cookie: 'The only cookie set is a strictly necessary one (“b24_lang”) that stores the display ' + 'language you chose. It contains no identifier and is not used for any analysis.', s6: '6. Recipients', s6Text: 'Your data is transmitted to our hosting and e-mail provider [provider] as a processor ' + '(Art. 28 GDPR). Servers and data storage are located in Germany. No transfer to third ' + 'countries takes place.', s7: '7. Retention period', s7Text: 'Unconfirmed registrations are deleted no later than 30 days after they arrive. Confirmed ' + 'registrations are stored for the duration of the business relationship and beyond that ' + 'within the statutory retention periods.', s8: '8. Your rights', s8Text: 'You have the right of access (Art. 15), rectification (Art. 16), erasure (Art. 17), ' + 'restriction of processing (Art. 18), data portability (Art. 20) and the right to object ' + 'to processing (Art. 21 GDPR). Please contact [e-mail address] to exercise them. You may ' + 'also lodge a complaint with a data protection supervisory authority.', s9: '9. Whether the details are required', s9Text: 'The fields marked with an asterisk are required in order to process your registration. ' + 'Without them we cannot set up access.', }, }