Files
ms1inscription-v5/tools/gen_bib_v4_traductions_sql.py

115 lines
6.6 KiB
Python

# -*- coding: utf-8 -*-
"""Génère sql/MSIN-4379-bib_v4-traductions.sql depuis le brouillon Excel (terminologie séquences)."""
def esc(s):
if s is None:
return ''
s = str(s).replace('\r\n', '\n').replace('\r', '\n')
s = s.replace('\\', '\\\\').replace("'", "''").replace('\n', '\\n')
return s
# clef, texte_fr, aide_fr, texte_en, aide_en
ROWS = [
("bib_v4_assign_title",
"Assignation de dossard",
"Définissez les séquences de dossards et assignez les numéros aux participants inscrits.",
"Bib assignment",
"Define bib sequences and assign numbers to registered participants."),
("bib_v4_gestion_title",
"Gestion de l'épreuve",
"Bloc réservé à la gestion des quantités et paramètres — à venir.",
"Event management",
"Reserved for quantities and settings — coming soon."),
("bib_v4_gestion_placeholder",
"Quantités et paramètres — à venir.",
"",
"Quantities and settings — coming soon.",
""),
("bib_v4_col_start", "Début", "Premier numéro de la séquence.", "Start", "First number in the sequence."),
("bib_v4_col_end", "Fin", "Dernier numéro de la séquence.", "End", "Last number in the sequence."),
("bib_v4_col_ok", "OK", "Enregistrer cette séquence.", "OK", "Save this sequence."),
("bib_v4_col_del", "Suppr.", "Supprimer la séquence.", "Del.", "Delete this sequence."),
("bib_v4_col_last", "Dernier", "Dernier dossard assigné dans la séquence.", "Last", "Last bib assigned in the sequence."),
("bib_v4_col_used", "Utilisé", "Nombre de dossards déjà assignés.", "Used", "Number of bibs already assigned."),
("bib_v4_col_avail", "Dispo", "Dossards encore disponibles dans la séquence.", "Avail.", "Bibs still available in the sequence."),
("bib_v4_add", "+ Ajouter",
"Ajoute une nouvelle séquence de dossards pour cette épreuve.\n\nIndiquez le numéro de début et de fin, puis cliquez OK.",
"+ Add",
"Adds a new bib sequence for this race.\n\nEnter start and end numbers, then click OK."),
("bib_v4_tip_add", "Ajouter une séquence de dossards", "", "Add a bib sequence", ""),
("bib_v4_assign_seq", "Assigner par séquence",
"Mode batch : choisissez une ou plusieurs séquences de dossards et l'ordre d'assignation, puis GO pour assigner tous les participants sans dossard.\n\nUtilisez Simuler pour prévisualiser sans modifier la base.",
"Assign by sequence",
"Batch mode: select one or more bib sequences and the assignment order, then GO to assign all participants without a bib.\n\nUse Simulate to preview without saving."),
("bib_v4_assign_seq_cancel", "Annuler", "", "Cancel", ""),
("bib_v4_tip_assign_seq", "Assignation groupée par séquences", "", "Batch assign by sequences", ""),
("bib_v4_reset", "Réinitialiser",
"Retire les dossards déjà assignés pour les séquences sélectionnées.\n\nAttention : vérifiez l'impact avant de confirmer.",
"Reset",
"Removes assigned bibs for the selected sequences.\n\nWarning: check the impact before confirming."),
("bib_v4_tip_reset", "Retirer les dossards assignés", "", "Remove assigned bibs", ""),
("bib_v4_auto", "Assignation automatique",
"Active l'assignation automatique à chaque nouvelle inscription dans les séquences choisies.",
"Automatic assignment",
"Automatically assigns a bib on each new registration using the selected sequences."),
("bib_v4_auto_config", "Auto — configurer",
"Modifie les séquences utilisées pour l'assignation automatique.",
"Auto — configure",
"Change the sequences used for automatic assignment."),
("bib_v4_tip_auto", "Dossard assigné automatiquement à l'inscription", "", "Auto-assign bib on registration", ""),
("bib_v4_auto_badge", "Auto actif", "L'assignation automatique est activée pour cette épreuve.", "Auto on", "Automatic assignment is enabled for this race."),
("bib_v4_auto_select_hint", "Sélectionnez au moins une séquence.",
"Cochez les séquences à utiliser pour l'assignation auto, puis cliquez Accepter.",
"Select at least one sequence.",
"Check the sequences to use for auto assignment, then click Accept."),
("bib_v4_auto_accept", "Accepter", "Enregistre la configuration d'assignation automatique.", "Accept", "Saves the automatic assignment configuration."),
("bib_v4_auto_cancel", "Annuler", "Quitte le mode édition sans enregistrer.", "Cancel", "Exits edit mode without saving."),
("bib_v4_auto_disable", "Désactiver l'auto",
"Désactive l'assignation automatique. Les séquences de dossards restent en place.",
"Disable auto",
"Disables automatic assignment. Bib sequences are kept."),
("bib_v4_batch_order", "Ordre d'assignation",
"Critère pour trier les participants avant d'attribuer les dossards (nom, date d'inscription, équipe, etc.).",
"Assignment order",
"Sort order for participants before assigning bibs (name, registration date, team, etc.)."),
("bib_v4_batch_info", "Sélectionnez les séquences puis GO.",
"Le résumé (disponibles / à assigner / manquants) s'affiche ici après simulation ou GO.",
"Select sequences then click GO.",
"Summary (available / to assign / missing) appears here after simulate or GO."),
("bib_v4_batch_simulate", "Simuler",
"Affiche qui recevrait quel dossard sans modifier la base de données.",
"Simulate",
"Shows who would receive which bib without changing the database."),
("bib_v4_batch_go", "GO", "Lance l'assignation batch pour de vrai.", "GO", "Runs the batch assignment for real."),
]
PRG = 'compte.php'
lines = [
"-- MSIN-4379 — Traductions écran dossards v4 (table info)",
"-- Terminologie : séquences de dossards (pas « plages »).",
"-- info_prg = compte.php uniquement.",
"-- Exécuter sur la BD client (inscription).",
"",
"DELETE FROM info",
"WHERE info_clef LIKE 'bib_v4_%'",
" AND info_prg IN ('compte.php', 'ajax_bib_range.php');",
"",
]
for clef, txt_fr, aide_fr, txt_en, aide_en in ROWS:
for lang, txt, aide in (('fr', txt_fr, aide_fr), ('en', txt_en, aide_en)):
lines.append(
"INSERT INTO info (info_clef, info_langue, info_texte, info_aide, info_prg, "
"info_description, info_trie, info_actif, info_option1, info_option2, info_option3, info_creation) "
"VALUES ("
f"'{esc(clef)}', '{lang}', '{esc(txt)}', '{esc(aide)}', '{PRG}', "
"'', 0, 1, '', '', '', NOW());"
)
out = r"c:\dev_v4\ms1inscription4\sql\MSIN-4379-bib_v4-traductions.sql"
with open(out, 'w', encoding='utf-8') as f:
f.write('\n'.join(lines) + '\n')
print(f"Written: {out}")
print(f"INSERT rows: {len(ROWS) * 2}")