import type { Locale } from '../i18n/types'; import type { ObligationStatus, RiskClass, Role } from './types'; /** Anzeige-Labels und Textbausteine der Dokument-Generatoren je Sprache. */ export interface DocStrings { readonly risk: Readonly>; readonly role: Readonly>; readonly status: Readonly>; readonly disclaimer: string; readonly meta: { readonly system: string; readonly purpose: string; readonly vendor: string; readonly owner: string; readonly role: string; readonly riskClass: string; readonly createdAt: string; readonly contentPack: string; readonly company: string; readonly contact: string; readonly contactPerson: string; }; readonly report: { readonly title: string; readonly result: string; readonly reasons: string; readonly gpai: string; readonly gpaiText: string; readonly art64: string; readonly art64Text: string; }; readonly plan: { readonly title: string; readonly none: string; readonly obligations: string; readonly details: string; readonly colObligation: string; readonly colLegal: string; readonly colDeadline: string; readonly colStatus: string; }; readonly inventory: { readonly title: string; readonly asOf: string; readonly count: string; readonly colSystem: string; readonly colPurpose: string; readonly colRole: string; readonly colRisk: string; readonly colOwner: string; }; readonly todo: string; } const DE: DocStrings = { risk: { 'out-of-scope': 'Nicht anwendbar (keine KI i. S. d. Art. 3 Nr. 1)', prohibited: 'VERBOTEN (Art. 5)', high: 'Hochrisiko', limited: 'Begrenztes Risiko (Transparenzpflichten)', minimal: 'Minimales Risiko', }, role: { provider: 'Anbieter (Provider)', deployer: 'Betreiber (Deployer)', importer: 'Einführer (Importer)', distributor: 'Händler (Distributor)', }, status: { open: 'Offen', 'in-progress': 'In Umsetzung', done: 'Erledigt', 'not-applicable': 'Nicht anwendbar', }, disclaimer: '> **Hinweis:** Dieses Dokument wurde mit dem AI-Act-Kompass erstellt und ist eine strukturierte Arbeitshilfe — **keine Rechtsberatung**. Die rechtliche Bewertung im Einzelfall obliegt dem Unternehmen bzw. seiner Rechtsberatung.', meta: { system: 'KI-System', purpose: 'Zweckbestimmung', vendor: 'Hersteller/Anbieter', owner: 'Verantwortlich (intern)', role: 'Rolle des Unternehmens', riskClass: 'Risikoklasse', createdAt: 'Erstellt am', contentPack: 'Content-Pack', company: 'Unternehmen', contact: 'Kontakt', contactPerson: 'Ansprechpartner', }, report: { title: 'Risikoklassifizierung nach EU AI Act', result: 'Ergebnis', reasons: 'Begründung', gpai: 'GPAI', gpaiText: 'Für dieses System sind zusätzlich GPAI-Modellpflichten (Art. 53 ff.) relevant.', art64: 'Dokumentationspflicht Art. 6 Abs. 4', art64Text: 'Die Inanspruchnahme der Ausnahme nach Art. 6 Abs. 3 wurde dokumentiert. Diese Einschätzung ist auf Verlangen der Marktüberwachung vorzulegen.', }, plan: { title: 'Maßnahmenplan EU AI Act', none: 'Für dieses System bestehen keine umsetzbaren Pflichten (verboten oder außerhalb des Anwendungsbereichs).', obligations: 'Pflichten', details: 'Details', colObligation: 'Pflicht', colLegal: 'Rechtsgrundlage', colDeadline: 'Frist', colStatus: 'Status', }, inventory: { title: 'KI-Inventar (AI Asset Register)', asOf: 'Stand', count: 'Registrierte KI-Systeme', colSystem: 'System', colPurpose: 'Zweck', colRole: 'Rolle', colRisk: 'Risikoklasse', colOwner: 'Verantwortlich', }, todo: '_[AUSFÜLLEN]_', }; const EN: DocStrings = { risk: { 'out-of-scope': 'Not applicable (not AI within the meaning of Art. 3(1))', prohibited: 'PROHIBITED (Art. 5)', high: 'High-risk', limited: 'Limited risk (transparency obligations)', minimal: 'Minimal risk', }, role: { provider: 'Provider', deployer: 'Deployer', importer: 'Importer', distributor: 'Distributor', }, status: { open: 'Open', 'in-progress': 'In progress', done: 'Done', 'not-applicable': 'Not applicable', }, disclaimer: '> **Note:** This document was created with AI-Act-Kompass and is a structured working aid — **not legal advice**. The legal assessment of the individual case remains with the company and its legal counsel.', meta: { system: 'AI system', purpose: 'Intended purpose', vendor: 'Manufacturer/provider', owner: 'Responsible (internal)', role: 'Company role', riskClass: 'Risk class', createdAt: 'Created on', contentPack: 'Content pack', company: 'Company', contact: 'Contact', contactPerson: 'Contact person', }, report: { title: 'Risk classification under the EU AI Act', result: 'Result', reasons: 'Reasoning', gpai: 'GPAI', gpaiText: 'GPAI model obligations (Art. 53 et seq.) are additionally relevant for this system.', art64: 'Documentation duty Art. 6(4)', art64Text: 'The reliance on the exception under Art. 6(3) has been documented. This assessment must be provided to market surveillance authorities upon request.', }, plan: { title: 'EU AI Act action plan', none: 'There are no implementable obligations for this system (prohibited or out of scope).', obligations: 'Obligations', details: 'Details', colObligation: 'Obligation', colLegal: 'Legal basis', colDeadline: 'Deadline', colStatus: 'Status', }, inventory: { title: 'AI inventory (AI asset register)', asOf: 'As of', count: 'Registered AI systems', colSystem: 'System', colPurpose: 'Purpose', colRole: 'Role', colRisk: 'Risk class', colOwner: 'Responsible', }, todo: '_[TO BE COMPLETED]_', }; const FR: DocStrings = { risk: { 'out-of-scope': 'Non applicable (pas une IA au sens de l’art. 3, point 1)', prohibited: 'INTERDIT (art. 5)', high: 'Haut risque', limited: 'Risque limité (obligations de transparence)', minimal: 'Risque minimal', }, role: { provider: 'Fournisseur', deployer: 'Déployeur', importer: 'Importateur', distributor: 'Distributeur', }, status: { open: 'Ouvert', 'in-progress': 'En cours', done: 'Terminé', 'not-applicable': 'Non applicable', }, disclaimer: '> **Remarque :** Ce document a été créé avec AI-Act-Kompass et constitue une aide de travail structurée — il **ne constitue pas un conseil juridique**. L’appréciation juridique du cas d’espèce incombe à l’entreprise et à son conseil juridique.', meta: { system: 'Système d’IA', purpose: 'Destination', vendor: 'Fabricant/fournisseur', owner: 'Responsable (interne)', role: 'Rôle de l’entreprise', riskClass: 'Classe de risque', createdAt: 'Créé le', contentPack: 'Pack de contenu', company: 'Entreprise', contact: 'Contact', contactPerson: 'Interlocuteur', }, report: { title: 'Classification des risques selon le règlement européen sur l’IA', result: 'Résultat', reasons: 'Motifs', gpai: 'GPAI', gpaiText: 'Les obligations relatives aux modèles GPAI (art. 53 et suivants) sont en outre pertinentes pour ce système.', art64: 'Obligation de documentation art. 6, par. 4', art64Text: 'Le recours à l’exception prévue à l’art. 6, par. 3 a été documenté. Cette évaluation doit être présentée aux autorités de surveillance du marché sur demande.', }, plan: { title: 'Plan d’action — règlement européen sur l’IA', none: 'Aucune obligation applicable n’existe pour ce système (interdit ou hors champ d’application).', obligations: 'Obligations', details: 'Détails', colObligation: 'Obligation', colLegal: 'Base juridique', colDeadline: 'Échéance', colStatus: 'Statut', }, inventory: { title: 'Inventaire des IA (registre des actifs IA)', asOf: 'État au', count: 'Systèmes d’IA enregistrés', colSystem: 'Système', colPurpose: 'Finalité', colRole: 'Rôle', colRisk: 'Classe de risque', colOwner: 'Responsable', }, todo: '_[À COMPLÉTER]_', }; const IT: DocStrings = { risk: { 'out-of-scope': 'Non applicabile (non è IA ai sensi dell’art. 3, punto 1)', prohibited: 'VIETATO (art. 5)', high: 'Alto rischio', limited: 'Rischio limitato (obblighi di trasparenza)', minimal: 'Rischio minimo', }, role: { provider: 'Fornitore', deployer: 'Deployer', importer: 'Importatore', distributor: 'Distributore', }, status: { open: 'Aperto', 'in-progress': 'In corso', done: 'Completato', 'not-applicable': 'Non applicabile', }, disclaimer: '> **Nota:** Questo documento è stato creato con AI-Act-Kompass ed è uno strumento di lavoro strutturato — **non costituisce consulenza legale**. La valutazione giuridica del singolo caso spetta all’azienda e alla sua consulenza legale.', meta: { system: 'Sistema di IA', purpose: 'Finalità prevista', vendor: 'Produttore/fornitore', owner: 'Responsabile (interno)', role: 'Ruolo dell’azienda', riskClass: 'Classe di rischio', createdAt: 'Creato il', contentPack: 'Content pack', company: 'Azienda', contact: 'Contatto', contactPerson: 'Referente', }, report: { title: 'Classificazione del rischio ai sensi del regolamento UE sull’IA', result: 'Risultato', reasons: 'Motivazione', gpai: 'GPAI', gpaiText: 'Per questo sistema sono inoltre rilevanti gli obblighi relativi ai modelli GPAI (art. 53 e segg.).', art64: 'Obbligo di documentazione art. 6, par. 4', art64Text: 'Il ricorso all’eccezione di cui all’art. 6, par. 3 è stato documentato. Questa valutazione deve essere presentata alle autorità di vigilanza del mercato su richiesta.', }, plan: { title: 'Piano d’azione — regolamento UE sull’IA', none: 'Per questo sistema non esistono obblighi attuabili (vietato o al di fuori dell’ambito di applicazione).', obligations: 'Obblighi', details: 'Dettagli', colObligation: 'Obbligo', colLegal: 'Base giuridica', colDeadline: 'Scadenza', colStatus: 'Stato', }, inventory: { title: 'Inventario IA (registro degli asset IA)', asOf: 'Aggiornato al', count: 'Sistemi di IA registrati', colSystem: 'Sistema', colPurpose: 'Finalità', colRole: 'Ruolo', colRisk: 'Classe di rischio', colOwner: 'Responsabile', }, todo: '_[DA COMPLETARE]_', }; const ES: DocStrings = { risk: { 'out-of-scope': 'No aplicable (no es IA en el sentido del art. 3, punto 1)', prohibited: 'PROHIBIDO (art. 5)', high: 'Alto riesgo', limited: 'Riesgo limitado (obligaciones de transparencia)', minimal: 'Riesgo mínimo', }, role: { provider: 'Proveedor', deployer: 'Responsable del despliegue', importer: 'Importador', distributor: 'Distribuidor', }, status: { open: 'Abierto', 'in-progress': 'En curso', done: 'Completado', 'not-applicable': 'No aplicable', }, disclaimer: '> **Nota:** Este documento se ha creado con AI-Act-Kompass y es una ayuda de trabajo estructurada — **no constituye asesoramiento jurídico**. La valoración jurídica del caso concreto corresponde a la empresa y a su asesoría jurídica.', meta: { system: 'Sistema de IA', purpose: 'Finalidad prevista', vendor: 'Fabricante/proveedor', owner: 'Responsable (interno)', role: 'Rol de la empresa', riskClass: 'Clase de riesgo', createdAt: 'Creado el', contentPack: 'Paquete de contenido', company: 'Empresa', contact: 'Contacto', contactPerson: 'Persona de contacto', }, report: { title: 'Clasificación de riesgo según el Reglamento de IA de la UE', result: 'Resultado', reasons: 'Justificación', gpai: 'GPAI', gpaiText: 'Para este sistema son además relevantes las obligaciones relativas a los modelos GPAI (art. 53 y ss.).', art64: 'Obligación de documentación art. 6, apdo. 4', art64Text: 'El recurso a la excepción del art. 6, apdo. 3 ha sido documentado. Esta evaluación debe presentarse a las autoridades de vigilancia del mercado previa solicitud.', }, plan: { title: 'Plan de medidas — Reglamento de IA de la UE', none: 'No existen obligaciones aplicables para este sistema (prohibido o fuera del ámbito de aplicación).', obligations: 'Obligaciones', details: 'Detalles', colObligation: 'Obligación', colLegal: 'Base jurídica', colDeadline: 'Plazo', colStatus: 'Estado', }, inventory: { title: 'Inventario de IA (registro de activos de IA)', asOf: 'A fecha de', count: 'Sistemas de IA registrados', colSystem: 'Sistema', colPurpose: 'Finalidad', colRole: 'Rol', colRisk: 'Clase de riesgo', colOwner: 'Responsable', }, todo: '_[POR COMPLETAR]_', }; const PL: DocStrings = { risk: { 'out-of-scope': 'Nie ma zastosowania (nie jest AI w rozumieniu art. 3 pkt 1)', prohibited: 'ZAKAZANE (art. 5)', high: 'Wysokie ryzyko', limited: 'Ograniczone ryzyko (obowiązki przejrzystości)', minimal: 'Minimalne ryzyko', }, role: { provider: 'Dostawca', deployer: 'Podmiot stosujący', importer: 'Importer', distributor: 'Dystrybutor', }, status: { open: 'Otwarte', 'in-progress': 'W trakcie realizacji', done: 'Zakończone', 'not-applicable': 'Nie dotyczy', }, disclaimer: '> **Uwaga:** Ten dokument został utworzony za pomocą AI-Act-Kompass i stanowi ustrukturyzowaną pomoc roboczą — **nie stanowi porady prawnej**. Ocena prawna konkretnego przypadku należy do przedsiębiorstwa i jego doradców prawnych.', meta: { system: 'System AI', purpose: 'Przeznaczenie', vendor: 'Producent/dostawca', owner: 'Odpowiedzialny (wewnętrznie)', role: 'Rola przedsiębiorstwa', riskClass: 'Klasa ryzyka', createdAt: 'Utworzono dnia', contentPack: 'Pakiet treści', company: 'Przedsiębiorstwo', contact: 'Kontakt', contactPerson: 'Osoba kontaktowa', }, report: { title: 'Klasyfikacja ryzyka zgodnie z unijnym aktem w sprawie AI', result: 'Wynik', reasons: 'Uzasadnienie', gpai: 'GPAI', gpaiText: 'Dla tego systemu istotne są dodatkowo obowiązki dotyczące modeli GPAI (art. 53 i nast.).', art64: 'Obowiązek dokumentacyjny art. 6 ust. 4', art64Text: 'Skorzystanie z wyjątku przewidzianego w art. 6 ust. 3 zostało udokumentowane. Ocenę tę należy przedłożyć organom nadzoru rynku na żądanie.', }, plan: { title: 'Plan działań — unijny akt w sprawie AI', none: 'Dla tego systemu nie istnieją obowiązki możliwe do realizacji (zakazany lub poza zakresem stosowania).', obligations: 'Obowiązki', details: 'Szczegóły', colObligation: 'Obowiązek', colLegal: 'Podstawa prawna', colDeadline: 'Termin', colStatus: 'Status', }, inventory: { title: 'Inwentarz AI (rejestr zasobów AI)', asOf: 'Stan na', count: 'Zarejestrowane systemy AI', colSystem: 'System', colPurpose: 'Cel', colRole: 'Rola', colRisk: 'Klasa ryzyka', colOwner: 'Odpowiedzialny', }, todo: '_[DO UZUPEŁNIENIA]_', }; const CS: DocStrings = { risk: { 'out-of-scope': 'Nepoužije se (není AI ve smyslu čl. 3 bodu 1)', prohibited: 'ZAKÁZÁNO (čl. 5)', high: 'Vysoké riziko', limited: 'Omezené riziko (povinnosti transparentnosti)', minimal: 'Minimální riziko', }, role: { provider: 'Poskytovatel', deployer: 'Zavádějící subjekt', importer: 'Dovozce', distributor: 'Distributor', }, status: { open: 'Otevřeno', 'in-progress': 'Probíhá', done: 'Dokončeno', 'not-applicable': 'Nepoužije se', }, disclaimer: '> **Upozornění:** Tento dokument byl vytvořen pomocí AI-Act-Kompass a je strukturovanou pracovní pomůckou — **nepředstavuje právní poradenství**. Právní posouzení konkrétního případu přísluší podniku a jeho právním poradcům.', meta: { system: 'Systém AI', purpose: 'Určený účel', vendor: 'Výrobce/poskytovatel', owner: 'Odpovědná osoba (interní)', role: 'Role podniku', riskClass: 'Riziková třída', createdAt: 'Vytvořeno dne', contentPack: 'Balíček obsahu', company: 'Podnik', contact: 'Kontakt', contactPerson: 'Kontaktní osoba', }, report: { title: 'Klasifikace rizika podle aktu EU o AI', result: 'Výsledek', reasons: 'Odůvodnění', gpai: 'GPAI', gpaiText: 'Pro tento systém jsou navíc relevantní povinnosti týkající se modelů GPAI (čl. 53 a násl.).', art64: 'Dokumentační povinnost čl. 6 odst. 4', art64Text: 'Využití výjimky podle čl. 6 odst. 3 bylo zdokumentováno. Toto posouzení je nutno na žádost předložit orgánům dozoru nad trhem.', }, plan: { title: 'Akční plán — akt EU o AI', none: 'Pro tento systém neexistují žádné proveditelné povinnosti (zakázán nebo mimo oblast působnosti).', obligations: 'Povinnosti', details: 'Podrobnosti', colObligation: 'Povinnost', colLegal: 'Právní základ', colDeadline: 'Lhůta', colStatus: 'Stav', }, inventory: { title: 'Inventář AI (registr aktiv AI)', asOf: 'Stav ke dni', count: 'Registrované systémy AI', colSystem: 'Systém', colPurpose: 'Účel', colRole: 'Role', colRisk: 'Riziková třída', colOwner: 'Odpovědná osoba', }, todo: '_[DOPLNIT]_', }; const SK: DocStrings = { risk: { 'out-of-scope': 'Neuplatňuje sa (nie je AI v zmysle čl. 3 bodu 1)', prohibited: 'ZAKÁZANÉ (čl. 5)', high: 'Vysoké riziko', limited: 'Obmedzené riziko (povinnosti transparentnosti)', minimal: 'Minimálne riziko', }, role: { provider: 'Poskytovateľ', deployer: 'Nasadzujúci subjekt', importer: 'Dovozca', distributor: 'Distribútor', }, status: { open: 'Otvorené', 'in-progress': 'Prebieha', done: 'Dokončené', 'not-applicable': 'Neuplatňuje sa', }, disclaimer: '> **Upozornenie:** Tento dokument bol vytvorený pomocou AI-Act-Kompass a je štruktúrovanou pracovnou pomôckou — **nepredstavuje právne poradenstvo**. Právne posúdenie konkrétneho prípadu prislúcha podniku a jeho právnym poradcom.', meta: { system: 'Systém AI', purpose: 'Zamýšľaný účel', vendor: 'Výrobca/poskytovateľ', owner: 'Zodpovedná osoba (interná)', role: 'Rola podniku', riskClass: 'Riziková trieda', createdAt: 'Vytvorené dňa', contentPack: 'Balík obsahu', company: 'Podnik', contact: 'Kontakt', contactPerson: 'Kontaktná osoba', }, report: { title: 'Klasifikácia rizika podľa aktu EÚ o AI', result: 'Výsledok', reasons: 'Odôvodnenie', gpai: 'GPAI', gpaiText: 'Pre tento systém sú navyše relevantné povinnosti týkajúce sa modelov GPAI (čl. 53 a nasl.).', art64: 'Dokumentačná povinnosť čl. 6 ods. 4', art64Text: 'Využitie výnimky podľa čl. 6 ods. 3 bolo zdokumentované. Toto posúdenie treba na požiadanie predložiť orgánom dohľadu nad trhom.', }, plan: { title: 'Akčný plán — akt EÚ o AI', none: 'Pre tento systém neexistujú žiadne vykonateľné povinnosti (zakázaný alebo mimo rozsahu pôsobnosti).', obligations: 'Povinnosti', details: 'Podrobnosti', colObligation: 'Povinnosť', colLegal: 'Právny základ', colDeadline: 'Lehota', colStatus: 'Stav', }, inventory: { title: 'Inventár AI (register aktív AI)', asOf: 'Stav k', count: 'Registrované systémy AI', colSystem: 'Systém', colPurpose: 'Účel', colRole: 'Rola', colRisk: 'Riziková trieda', colOwner: 'Zodpovedná osoba', }, todo: '_[DOPLNIŤ]_', }; const RO: DocStrings = { risk: { 'out-of-scope': 'Nu se aplică (nu este IA în sensul art. 3 pct. 1)', prohibited: 'INTERZIS (art. 5)', high: 'Risc ridicat', limited: 'Risc limitat (obligații de transparență)', minimal: 'Risc minim', }, role: { provider: 'Furnizor', deployer: 'Implementator', importer: 'Importator', distributor: 'Distribuitor', }, status: { open: 'Deschis', 'in-progress': 'În curs', done: 'Finalizat', 'not-applicable': 'Nu se aplică', }, disclaimer: '> **Notă:** Acest document a fost creat cu AI-Act-Kompass și este un instrument de lucru structurat — **nu constituie consultanță juridică**. Evaluarea juridică a cazului concret revine întreprinderii și consilierilor săi juridici.', meta: { system: 'Sistem de IA', purpose: 'Scop preconizat', vendor: 'Producător/furnizor', owner: 'Responsabil (intern)', role: 'Rolul întreprinderii', riskClass: 'Clasa de risc', createdAt: 'Creat la', contentPack: 'Pachet de conținut', company: 'Întreprindere', contact: 'Contact', contactPerson: 'Persoană de contact', }, report: { title: 'Clasificarea riscului conform Regulamentului UE privind IA', result: 'Rezultat', reasons: 'Motivare', gpai: 'GPAI', gpaiText: 'Pentru acest sistem sunt în plus relevante obligațiile privind modelele GPAI (art. 53 și urm.).', art64: 'Obligația de documentare art. 6 alin. (4)', art64Text: 'Recurgerea la excepția prevăzută la art. 6 alin. (3) a fost documentată. Această evaluare trebuie prezentată autorităților de supraveghere a pieței, la cerere.', }, plan: { title: 'Plan de măsuri — Regulamentul UE privind IA', none: 'Pentru acest sistem nu există obligații aplicabile (interzis sau în afara domeniului de aplicare).', obligations: 'Obligații', details: 'Detalii', colObligation: 'Obligație', colLegal: 'Temei juridic', colDeadline: 'Termen', colStatus: 'Stare', }, inventory: { title: 'Inventar IA (registru de active IA)', asOf: 'La data de', count: 'Sisteme de IA înregistrate', colSystem: 'Sistem', colPurpose: 'Scop', colRole: 'Rol', colRisk: 'Clasa de risc', colOwner: 'Responsabil', }, todo: '_[DE COMPLETAT]_', }; /** * Liefert die Dokument-Strings für die gewünschte Sprache. * Vollständig lokalisiert für alle unterstützten Sprachen * (de/en/fr/it/es/pl/cs/sk/ro). */ export function docStrings(locale: Locale): DocStrings { const DICTS = { de: DE, en: EN, fr: FR, it: IT, es: ES, pl: PL, cs: CS, sk: SK, ro: RO } as const; return DICTS[locale]; } /** * Formatiert ein ISO-Datum landesüblich * (DE/PL/CS/SK/RO: TT.MM.JJJJ, FR/IT/ES: TT/MM/JJJJ, EN: ISO). */ export function formatDocDate(iso: string, locale: Locale): string { if (locale === 'en') return iso; const [y, m, d] = iso.split('-'); if (!d || !m || !y) return iso; const dotLocales: readonly Locale[] = ['de', 'pl', 'cs', 'sk', 'ro']; return dotLocales.includes(locale) ? `${d}.${m}.${y}` : `${d}/${m}/${y}`; }