Files
team-tryouts/app/translations/fr/LC_MESSAGES/messages.po
T
GGThedandClaude Opus 5 09453199b8 refactor(csp): migrer dix gabarits vers les comportements declaratifs
OPS-010, suite. 76 gestionnaires en ligne -> 52, dans 5 gabarits au lieu de
15. Le cliquet de tests/test_csp.py est abaisse en consequence.

Six motifs recurrents, generalises dans main.js plutot que traites un a un
  data-action        clic, resolu par un ecouteur delegue
  data-change        changement -- attribut distinct du clic, sans quoi un
                     <select> declencherait son gestionnaire des le clic
                     qui l'ouvre
  data-confirm       confirmation avant un envoi destructeur, en
                     remplacement de onsubmit="return confirm(...)". Le
                     texte reste dans le markup, donc traduisible.
  data-navigate      navigation sur selection, {value} etant encode
  remove-element     suppression d'un ancetre designe par data-remove
  history-back       retour arriere

registerActions()
  Les fonctions propres a une page vivent dans son bloc de script et ne
  peuvent donc pas figurer dans la table globale. Chaque page declare les
  siennes, l'ecouteur delegue reste unique.

Cas particulier, coach_availability
  Le gestionnaire y etait construit dans une chaine JavaScript, au moment
  de generer la grille de creneaux. Le markup portait deja data-day et
  data-time : toggleSlot lit desormais ses arguments depuis l'element, ce
  qui supprime a la fois l'attribut en ligne et la concatenation.

Gabarits migres : my_teams, register, users, view_user, one_on_one,
coach_availability, profile, team_matches, notes, contracts.

Restent, par ordre decroissant : match_form 13, calendar 11, teams 11,
evaluate_player 9, view_tryout 8.

Syntaxe JavaScript de chaque bloc modifie verifiee par node --check.

A noter : la traduction de ces dix gabarits reste a faire. Seules les deux
chaines devenues visibles dans le markup au cours de cette migration -- les
messages de confirmation de suppression -- sont balisees et traduites.

192 tests.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-08-07 20:51:07 -04:00

328 lines
8.9 KiB
Gettext

# French translations for team-tryouts.
# Copyright (C) 2026 UdeS Esports
# This file is distributed under the same license as the team-tryouts
# project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2026.
#
msgid ""
msgstr ""
"Project-Id-Version: team-tryouts VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-08-07 20:50-0400\n"
"PO-Revision-Date: 2026-08-07 20:22-0400\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: UdeS Esports\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: app/routes/auth.py:141
#, python-format
msgid ""
"Account is locked due to too many failed attempts. Please try again in %(remaining)s "
"minute(s)."
msgstr ""
"Compte verrouillé après trop de tentatives échouées. Réessayez dans %(remaining)s "
"minute(s)."
#: app/routes/auth.py:151
msgid "This account has been deactivated."
msgstr "Ce compte a été désactivé."
#: app/routes/auth.py:179
#, python-format
msgid "Welcome back, %(username)s!"
msgstr "Bon retour, %(username)s !"
#: app/routes/auth.py:192
#, python-format
msgid ""
"Account locked after %(attempts)s failed attempts. Please try again in %(minutes)s "
"minutes."
msgstr ""
"Compte verrouillé après %(attempts)s tentatives échouées. Réessayez dans %(minutes)s "
"minutes."
#: app/routes/auth.py:201
#, python-format
msgid "Login unsuccessful. %(remaining)s attempt(s) remaining before lockout."
msgstr "Échec de la connexion. Il reste %(remaining)s tentative(s) avant le verrouillage."
#: app/routes/auth.py:208
msgid "Login unsuccessful. Please check username and password."
msgstr "Échec de la connexion. Vérifiez le nom d'utilisateur et le mot de passe."
#: app/routes/auth.py:239
msgid "Incorrect CAPTCHA answer. Please try again."
msgstr "Réponse au CAPTCHA incorrecte. Veuillez réessayer."
#: app/routes/auth.py:281
msgid "Username already exists."
msgstr "Ce nom d'utilisateur est déjà pris."
#: app/routes/auth.py:293
msgid "Email already registered."
msgstr "Cette adresse courriel est déjà enregistrée."
#: app/routes/auth.py:339
msgid "Your account has been created! You can now log in."
msgstr "Votre compte a été créé. Vous pouvez maintenant vous connecter."
#: app/routes/auth.py:365
msgid "Discord OAuth2 is not configured."
msgstr "La connexion Discord n'est pas configurée."
#: app/routes/auth.py:405
msgid ""
"Discord authorization could not be verified. Please start the connection again from "
"this page."
msgstr ""
"L'autorisation Discord n'a pas pu être vérifiée. Relancez la connexion depuis cette "
"page."
#: app/routes/auth.py:413
msgid "Discord authorization failed. No code received."
msgstr "L'autorisation Discord a échoué : aucun code reçu."
#: app/routes/auth.py:437
msgid "Failed to connect to Discord. Please try again."
msgstr "Impossible de joindre Discord. Veuillez réessayer."
#: app/routes/auth.py:441
msgid "Failed to obtain Discord access token."
msgstr "Impossible d'obtenir le jeton d'accès Discord."
#: app/routes/auth.py:456
msgid "Failed to fetch Discord user profile."
msgstr "Impossible de récupérer le profil Discord."
#: app/routes/auth.py:503
msgid "Discord account connected! Your profile has been pre-filled."
msgstr "Compte Discord connecté. Votre profil a été pré-rempli."
#: app/routes/auth.py:521
msgid "You have been logged out."
msgstr "Vous avez été déconnecté."
#: app/templates/errors/400.html:2
msgid "400 Bad Request"
msgstr "400 Requête incorrecte"
#: app/templates/errors/400.html:3
msgid "Bad Request"
msgstr "Requête incorrecte"
#: app/templates/errors/400.html:9
msgid "400 — Bad Request"
msgstr "400 — Requête incorrecte"
#: app/templates/errors/400.html:10
msgid ""
"The request could not be understood by the server. Please check your input and try "
"again."
msgstr "Le serveur n'a pas pu interpréter la requête. Vérifiez votre saisie et réessayez."
#: app/templates/errors/400.html:12 app/templates/errors/403.html:12
#: app/templates/errors/429.html:12
msgid "Go Back"
msgstr "Retour"
#: app/templates/errors/403.html:2
msgid "403 Forbidden"
msgstr "403 Accès refusé"
#: app/templates/errors/403.html:3
msgid "Access Denied"
msgstr "Accès refusé"
#: app/templates/errors/403.html:9
msgid "403 — Forbidden"
msgstr "403 — Accès refusé"
#: app/templates/errors/403.html:10
msgid ""
"You do not have permission to access this resource. If you believe this is an error, "
"please contact an administrator."
msgstr ""
"Vous n'avez pas les droits d'accès à cette ressource. Si vous pensez qu'il s'agit "
"d'une erreur, contactez un administrateur."
#: app/templates/errors/404.html:2
msgid "404 Not Found"
msgstr "404 Page introuvable"
#: app/templates/errors/404.html:3
msgid "Page Not Found"
msgstr "Page introuvable"
#: app/templates/errors/404.html:9
msgid "404 — Not Found"
msgstr "404 — Page introuvable"
#: app/templates/errors/404.html:10
msgid "The page you are looking for does not exist. It may have been moved or deleted."
msgstr "La page demandée n'existe pas. Elle a peut-être été déplacée ou supprimée."
#: app/templates/errors/404.html:12
msgid "Return Home"
msgstr "Retour à l'accueil"
#: app/templates/errors/429.html:2
msgid "429 Too Many Requests"
msgstr "429 Trop de requêtes"
#: app/templates/errors/429.html:3
msgid "Rate Limit Exceeded"
msgstr "Limite de requêtes atteinte"
#: app/templates/errors/429.html:9
msgid "429 — Too Many Requests"
msgstr "429 — Trop de requêtes"
#: app/templates/errors/429.html:10
msgid "You have sent too many requests in a short period. Please wait a moment and try again."
msgstr ""
"Vous avez envoyé trop de requêtes en peu de temps. Patientez un instant puis "
"réessayez."
#: app/templates/errors/500.html:2
msgid "500 Server Error"
msgstr "500 Erreur du serveur"
#: app/templates/errors/500.html:3
msgid "Internal Server Error"
msgstr "Erreur interne du serveur"
#: app/templates/errors/500.html:9
msgid "500 — Internal Server Error"
msgstr "500 — Erreur interne du serveur"
#: app/templates/errors/500.html:10
msgid ""
"Something went wrong on our end. The error has been logged and will be investigated. "
"Please try again later."
msgstr ""
"Une erreur est survenue de notre côté. Elle a été journalisée et sera examinée. "
"Veuillez réessayer dans un instant."
#: app/templates/errors/500.html:12
msgid "Try Again"
msgstr "Réessayer"
#: app/templates/layouts/_language_switcher.html:10
msgid "Language"
msgstr "Langue"
#: app/templates/layouts/base.html:33 app/templates/layouts/base.html:133
msgid "Dashboard"
msgstr "Tableau de bord"
#: app/templates/layouts/base.html:39
msgid "Tryouts"
msgstr "Sélections"
#: app/templates/layouts/base.html:45
msgid "Calendar"
msgstr "Calendrier"
#: app/templates/layouts/base.html:52
msgid "Evaluations"
msgstr "Évaluations"
#: app/templates/layouts/base.html:60
msgid "My Team(s)"
msgstr "Mon ou mes équipes"
#: app/templates/layouts/base.html:67
msgid "Manage Teams"
msgstr "Gestion des équipes"
#: app/templates/layouts/base.html:75
msgid "Manage Users"
msgstr "Gestion des utilisateurs"
#: app/templates/layouts/base.html:83
msgid "My Notes"
msgstr "Mes notes"
#: app/templates/layouts/base.html:91
msgid "Availability"
msgstr "Disponibilités"
#: app/templates/layouts/base.html:97
msgid "Notes & One on One"
msgstr "Notes et rencontres individuelles"
#: app/templates/layouts/base.html:104
msgid "Contracts"
msgstr "Contrats"
#: app/templates/layouts/base.html:111
msgid "My Profile"
msgstr "Mon profil"
#: app/templates/layouts/base.html:117
msgid "Logout"
msgstr "Déconnexion"
#: app/templates/layouts/base.html:137
msgid "Toggle dark mode"
msgstr "Basculer le mode sombre"
#: app/templates/layouts/base.html:149 app/templates/layouts/base.html:168
msgid "Dismiss"
msgstr "Fermer"
#: app/templates/layouts/base.html:178
msgid "Team Tryout Management System"
msgstr "Système de gestion des sélections d'équipe"
#: app/templates/layouts/macros.html:116
msgid "Close"
msgstr "Fermer"
#: app/templates/pages/login.html:2
msgid "Login"
msgstr "Connexion"
#: app/templates/pages/login.html:7
msgid "Username"
msgstr "Nom d'utilisateur"
#: app/templates/pages/login.html:8
msgid "Enter your username"
msgstr "Saisissez votre nom d'utilisateur"
#: app/templates/pages/login.html:11
msgid "Password"
msgstr "Mot de passe"
#: app/templates/pages/login.html:12
msgid "Enter your password"
msgstr "Saisissez votre mot de passe"
#: app/templates/pages/login.html:14
msgid "Sign In"
msgstr "Se connecter"
#: app/templates/pages/login.html:15
msgid "Don't have an account?"
msgstr "Vous n'avez pas de compte ?"
#: app/templates/pages/login.html:15
msgid "Register here"
msgstr "Inscrivez-vous ici"
#: app/templates/pages/team_matches.html:100
msgid "Delete this match?"
msgstr "Supprimer ce match ?"
#: app/templates/pages/users.html:53
#, python-format
msgid "Delete %(name)s? This cannot be undone."
msgstr "Supprimer %(name)s ? Cette action est irréversible."