#let language = "english" // Options: "français", "deutsch", "english" // Dictionnaire des traductions #let translations = ( français: ( sender: "ÉMETTEUR", recipient: "DESTINATAIRE", invoice: "FACTURE", invoice_number: "Facture N° :", date: "Date :", description: "Description", amount: "Montant (CHF)", total: "Total :", vat_notice: "TVA non applicable - Prestation d'un particulier", payment_terms: "Cette facture est payable dans les 30 jours suivant sa réception.", banking_info: "COORDONNÉES BANCAIRES", bank: "Banque :", account_holder: "Titulaire :", ), deutsch: ( sender: "ABSENDER", recipient: "EMPFÄNGER", invoice: "RECHNUNG", invoice_number: "Rechnungs-Nr.:", date: "Datum:", description: "Beschreibung", amount: "Betrag (CHF)", total: "Gesamtbetrag:", vat_notice: "MwSt. nicht anwendbar - Dienstleistung einer Privatperson", payment_terms: "Diese Rechnung ist innerhalb von 30 Tagen nach Erhalt zu bezahlen.", banking_info: "BANKVERBINDUNG", bank: "Bank:", account_holder: "Kontoinhaber:", ), english: ( sender: "FROM", recipient: "TO", invoice: "INVOICE", invoice_number: "Invoice No.:", date: "Date:", description: "Description", amount: "Amount (CHF)", total: "Total:", vat_notice: "VAT not applicable - Service provided by an individual", payment_terms: "This invoice is payable within 30 days of receipt.", banking_info: "BANKING DETAILS", bank: "Bank:", account_holder: "Account holder:", ), ) // Sélection du dictionnaire en fonction de la langue #let t = translations.at(language, default: translations.français) #set page( margin: 2cm, numbering: none, ) #set text(font: "Arial", size: 11pt) #grid( columns: (1fr, 1fr), row-gutter: 0.5cm, // Informations de l'émetteur align(left)[ #text(weight: "bold", size: 14pt)[#t.sender] #v(0.2cm) Szymczak Robin //Nom Prénom #v(0.1cm) 1 rue de l'ale //Adresse #v(0.1cm) 1003 Lausanne, Suisse #v(0.1cm) Tél: +41 77 471 11 34 #v(0.1cm) Email: robin\@cheapmo.ch ], // Informations du destinataire align(right)[ #text(weight: "bold", size: 14pt)[#t.recipient] #v(0.2cm) [Nom de l'Association] //nom du destinataire #v(0.1cm) [Adresse de l'Association] //adresse #v(0.1cm) [Code postal] [Ville], Allemagne ], ) #v(1cm) // Titre et informations de la facture #align(center)[ #text(weight: "bold", size: 18pt)[#t.invoice] #v(0.3cm) #t.invoice_number #[NUMÉRO/ANNÉE] - #t.date #[JJ/MM/AAAA] ] #v(1cm) // Tableau des prestations #table( columns: (auto, 1fr), inset: 10pt, align: (left, right), table.header( //fill: rgb(245, 245, 245), [*#t.description*], [*#t.amount*], ), [[Description de la prestation ou du service]], [50.00], [[*#t.total*]], [*50.00 CHF*], ) #v(1cm) // Informations complémentaires #align(left)[ #t.vat_notice #v(0.3cm) #t.payment_terms ] #v(1cm) // Coordonnées bancaires #rect( width: 100%, inset: 10pt, fill: rgb(249, 249, 249), )[ #text(weight: "bold", size: 13pt)[#t.banking_info] #v(0.2cm) #t.bank [Nom de votre banque] #v(0.1cm) IBAN: [Votre IBAN] #v(0.1cm) BIC/SWIFT: [Code BIC/SWIFT] #v(0.1cm) #t.account_holder [Votre nom] ]