chore: Translate pdf into french

This commit is contained in:
kbe
2025-09-06 21:35:50 +02:00
parent 2aae7fe8ea
commit f1750cb887

View File

@@ -2,10 +2,10 @@ require "prawn"
require "prawn/qrcode"
require "rqrcode"
# PDF ticket generator service using Prawn
# Service de génération de billets PDF utilisant Prawn
#
# Generates simple, compact PDF tickets with QR codes for event entry validation
# Clean, minimalist design that fits on a single page
# Génère des billets PDF simples et compacts avec codes QR pour la validation d'entrée
# Design propre et minimaliste qui tient sur une seule page
class TicketPdfGenerator
# Suppress Prawn's internationalization warning for built-in fonts
Prawn::Fonts::AFM.hide_m17n_warning = true
@@ -41,34 +41,34 @@ class TicketPdfGenerator
# Customer name
pdf.indent 10 do
pdf.text "Ticket Holder:", style: :bold
pdf.text "Titulaire du billet :", style: :bold
pdf.text "#{ticket.first_name} #{ticket.last_name}"
end
pdf.move_down 8
# Ticket details
pdf.indent 10 do
pdf.text "Ticket Type:", style: :bold
pdf.text "Type de billet :", style: :bold
pdf.text ticket.ticket_type.name
end
pdf.move_down 8
pdf.indent 10 do
pdf.text "Price:", style: :bold
pdf.text "#{ticket.price_euros}"
pdf.text "Prix :", style: :bold
pdf.text "#{ticket.price_euros}"
end
pdf.move_down 8
pdf.indent 10 do
pdf.text "Date & Time:", style: :bold
pdf.text ticket.event.start_time.strftime("%B %d, %Y at %I:%M %p")
pdf.text "Date et heure :", style: :bold
pdf.text ticket.event.start_time.strftime("%d %B %Y à %H:%M")
end
pdf.move_down 20
# Venue information
# Informations sur le lieu
pdf.fill_color "374151"
pdf.font "Helvetica", style: :bold, size: 14
pdf.text "Venue Information"
pdf.text "Informations sur le lieu"
pdf.move_down 8
pdf.font "Helvetica", size: 11
@@ -76,10 +76,10 @@ class TicketPdfGenerator
pdf.text ticket.event.venue_address
pdf.move_down 20
# QR Code
# Code QR
pdf.fill_color "000000"
pdf.font "Helvetica", style: :bold, size: 14
pdf.text "QR Code", align: :center
pdf.text "Code QR", align: :center
pdf.move_down 10
# Ensure all required data is present before generating QR code
@@ -116,7 +116,7 @@ class TicketPdfGenerator
# Ticket ID
pdf.font "Helvetica", size: 8
pdf.fill_color "6B7280"
pdf.text "Ticket ID: #{ticket.id}", align: :center
pdf.text "ID du billet : #{ticket.id}", align: :center
# Footer
pdf.move_down 30
@@ -126,17 +126,17 @@ class TicketPdfGenerator
pdf.font "Helvetica", size: 8
pdf.fill_color "6B7280"
pdf.text "This ticket is valid for one entry only.", align: :center
pdf.text "Present this ticket at the venue entrance.", align: :center
pdf.text "Ce billet est valable pour une seule entrée.", align: :center
pdf.text "Présentez ce billet à l'entrée du lieu.", align: :center
pdf.move_down 5
pdf.text "Generated on #{Time.current.strftime('%B %d, %Y at %I:%M %p')}", align: :center
pdf.text "Généré le #{Time.current.strftime('%d %B %Y à %H:%M')}", align: :center
end.render
end
private
def create_simple_header(pdf)
# Brand name
# Nom de la marque
pdf.fill_color "6366F1"
pdf.font "Helvetica", style: :bold, size: 24
pdf.text "AperoNight", align: :center
@@ -155,7 +155,7 @@ class TicketPdfGenerator
end
def create_ticket_info(pdf)
# Event name - prominent
# Nom de l'événement - proéminent
pdf.fill_color "1F2937"
pdf.font "Helvetica", style: :bold, size: 18
pdf.text ticket.event.name, align: :center
@@ -173,7 +173,7 @@ class TicketPdfGenerator
# Right column
pdf.bounding_box([pdf.bounds.width / 2 + 20, pdf.cursor], width: pdf.bounds.width / 2 - 20, height: 120) do
create_info_item(pdf, "Type", ticket.ticket_type.name)
create_info_item(pdf, "Prix", "#{sprintf('%.2f', ticket.price_euros)} EUR")
create_info_item(pdf, "Prix", "#{sprintf('%.2f', ticket.price_euros)} ")
create_info_item(pdf, "Titulaire", "#{ticket.first_name} #{ticket.last_name}")
end
end