# Support for the French language.
# This file is part of REMIND.
# REMIND is Copyright (C) 1992-2025 by Dianne Skoll
# This file is derived from a translation by Laurent Duperval

TRANSLATE "LANGID" "fr"

SET $Sunday "dimanche"
SET $Monday "lundi"
SET $Tuesday "mardi"
SET $Wednesday "mercredi"
SET $Thursday "jeudi"
SET $Friday "vendredi"
SET $Saturday "samedi"

SET $January "janvier"
SET $February "février"
SET $March "mars"
SET $April "avril"
SET $May "mai"
SET $June "juin"
SET $July "juillet"
SET $August "août"
SET $September "septembre"
SET $October "octobre"
SET $November "novembre"
SET $December "décembre"

SET $Today "aujourd'hui"
SET $Tomorrow "demain"

TRANSLATE "yesterday" "hier"
TRANSLATE "are" "sont"
TRANSLATE "were" "étaient"
TRANSLATE "done" "accomplie"

SET $On "le"
SET $At "à"
SET $Now "maintenant"
SET $Minute "minute"
SET $Hour "heure"
SET $Is "est"
SET $Was "était"
SET $And "et"
SET $Hplu "s"
SET $Mplu "s"
SET $Ago "il y a"
SET $Fromnow "dans"

# Banner
BANNER Rappels pour %w, %d%s %m, %y%o:

# Ordinal for a day (English would be "st", "nd", "rd", "th")
FSET - subst_ordinal(d) iif(d == 1, "er", "")
FSET - ordx(n) n + iif(n == 1, "er", "e")

# "%d hours", "%d minutes", or "%d hours and %d minutes"
FSET - subst_tdiff(hdiff, mdiff) iif(hdiff==0&&mdiff==0, $Now, \
                                      hdiff==0,            mdiff + plural(mdiff, " minute"), \
                                      mdiff==0,            hdiff + plural(hdiff, " heure"), \
                                      hdiff + plural(hdiff, " heure") + " et " + mdiff + plural(mdiff, " minute"))
FSET - subst_1(alt, date, time) iif(time == now(), "maintenant", \
                                  time > now(), "dans " + subst_tdiff((time-now())/60, (time-now())%60), \
                                  "il y a " + subst_tdiff ((now()-time)/60, (now()-time)%60))

FSET - subst_bx(alt, date, time) iif(date >= today(), "dans " + (date-today()) + " jours", "il y a " + (today()-date) + " jours")
FSET - subst_j_alt(date) wkday(date) + ", " + day(date) + subst_ordinal(day(date)) + " " + mon(date) + ", " + year(date)
FSET - subst_jx(alt, date, time) iif(alt, subst_j_alt(date), $On + " " + subst_j_alt(date))

FSET - subst_k_alt(date) wkday(date) + ", " + day(date) + subst_ordinal(day(date)) + " " + mon(date)
FSET - subst_kx(alt, date, time) iif(alt, subst_k_alt(date), $On + " " + subst_k_alt(date))


TRANSLATE "Missing ']'" "']' manquant"
TRANSLATE "Missing quote" "Apostrophe manquant"
TRANSLATE "Expression too complex" "Expression trop complexe"
TRANSLATE "Missing ')'" "')' manquante"
TRANSLATE "Undefined function" "Fonction non-définie"
TRANSLATE "Illegal character" "Caractère illégal"
TRANSLATE "Expecting binary operator" "Opérateur binaire attendu"
TRANSLATE "Out of memory" "Manque de mémoire"
TRANSLATE "Ill-formed number" "Nombre mal formé"
TRANSLATE "Can't coerce" "Impossible de convertir"
TRANSLATE "Type mismatch" "Types non-équivalents"
TRANSLATE "Date overflow" "Débordement de date"
TRANSLATE "Division by zero" "Division par zéro"
TRANSLATE "Undefined variable" "Variable non définie"
TRANSLATE "Unexpected end of line" "Fin de ligne non attendue"
TRANSLATE "Unexpected end of file" "Fin de fichier non attendue"
TRANSLATE "I/O error" "Erreur I/O"
TRANSLATE "Internal error" "Erreur interne"
TRANSLATE "Bad date specification" "Mauvaise date spécifiée"
TRANSLATE "Not enough arguments" "Pas assez d'arguments"
TRANSLATE "Too many arguments" "Trop d'arguments"
TRANSLATE "Ill-formed time" "Heure mal formée"
TRANSLATE "Number too high" "Nombre trop élevé"
TRANSLATE "Number too low" "Nombre trop bas"
TRANSLATE "Can't open file" "Impossible d'ouvrir le fichier"
TRANSLATE "INCLUDE nested too deeply (max. 9)" "Trop d'INCLUDE imbriqués"
TRANSLATE "Parse error" "Erreur d'analyse"
TRANSLATE "Can't compute trigger" "Impossible de calculer le déclenchement"
TRANSLATE "Too many nested IFs" "Trop de IF imbriqués"
TRANSLATE "ELSE with no matching IF" "ELSE sans IF correspondant"
TRANSLATE "ENDIF with no matching IF" "ENDIF sans IF correspondant"
TRANSLATE "Can't OMIT every weekday" "Impossible d'omettre (OMIT) tous les jours"
TRANSLATE "Extraneous token(s) on line" "Elément(s) étranger(s) sur la ligne"
TRANSLATE "POP-OMIT-CONTEXT without matching PUSH-OMIT-CONTEXT" "POP-OMIT-CONTEXT sans PUSH-OMIT-CONTEXT correspondant"
TRANSLATE "RUN disabled" "RUN déactivé"
TRANSLATE "Domain error" "Erreur de domaine"
TRANSLATE "Invalid identifier" "Identificateur invalide"
TRANSLATE "Too many recursive function calls" "Trop d'appels de fonctions récursives"
TRANSLATE "Cannot modify system variable" "Impossible de modifier une variable système"
TRANSLATE "C library function can't represent date/time" "Fonction de la librairie C ne peut représenter la date/l'heure"
TRANSLATE "Attempt to redefine built-in function" "Tentative de redéfinition d'une fonction intrinsèque"
TRANSLATE "Can't nest function definition in expression" "Impossible d'imbriquer une définition de fonction dans une expression"
TRANSLATE "Must fully specify date to use repeat factor" "Pour utiliser le facteur de répétition la date doit être spécifiée au complet"
TRANSLATE "Year specified twice" "Année spécifiée deux fois"
TRANSLATE "Month specified twice" "Mois spécifié deux fois"
TRANSLATE "Day specified twice" "Jour spécifié deux fois"
TRANSLATE "Unknown token" "Elément inconnu"
TRANSLATE "Must specify month in OMIT command" "Mois doit être spécifiés dans commande OMIT"
TRANSLATE "Too many full OMITs (max. 1000)" "Trop de OMITs complets"
TRANSLATE "Warning: PUSH-OMIT-CONTEXT without matching POP-OMIT-CONTEXT" "Attention: PUSH-OMIT-CONTEXT sans POP-OMIT-CONTEXT correspondant"
TRANSLATE "Error reading" "Erreur à la lecture du fichier"
TRANSLATE "Expecting end-of-line" "Fin de ligne attendue"
TRANSLATE "Invalid Hebrew date" "Date hébreuse invalide"
TRANSLATE "iif(): odd number of arguments required" "IIF demande nombre d'arguments impair"
TRANSLATE "Warning: Missing ENDIF" "Attention: ENDIF manquant"
TRANSLATE "Expecting comma" "Virgule attendue"
TRANSLATE "Weekday specified twice" "Jour de la semaine spécifié deux fois"
TRANSLATE "Only use one of BEFORE, AFTER or SKIP" "Utiliser un seul parmi BEFORE, AFTER ou SKIP"
TRANSLATE "Can't nest MSG, MSF, RUN, etc. in expression" "Impossible d'imbriquer MSG, MSF, RUN, etc. dans une expression"
TRANSLATE "Repeat value specified twice" "Valeur de répétition spécifiée deux fois"
TRANSLATE "Delta value specified twice" "Valeur delta spécifiée deux fois"
TRANSLATE "Back value specified twice" "Valeur de retour spécifiée deux fois"
TRANSLATE "ONCE keyword used twice. (Hah.)" "Mot-clé ONCE utilisé deux fois. (Hah.)"
TRANSLATE "Expecting time after AT" "Heure attendue après AT"
TRANSLATE "THROUGH/UNTIL keyword used twice" "Mot-clé THROUGH/UNTIL utilisé deux fois"
TRANSLATE "Incomplete date specification" "Spécification de date incomplète"
TRANSLATE "FROM/SCANFROM keyword used twice" "Mot-clé FROM/SCANFROM utilisé deux fois"
TRANSLATE "Variable" "Variable"
TRANSLATE "Value" "Valeur"
TRANSLATE "*UNDEFINED*" "*NON-DEFINI*"
TRANSLATE "Entering UserFN" "Entrée dans UserFN"
TRANSLATE "Leaving UserFN" "Sortie de UserFN"
TRANSLATE "Expired" "Expiré"
TRANSLATE "fork() failed - can't do queued reminders" "fork() échoué - impossible de faire les appels en queue"
TRANSLATE "Can't access file" "Impossible d'accéder au fichier"
TRANSLATE "Illegal system date: Year is less than %d" "Date système illégale: Année est inférieure à %d"
TRANSLATE "Unknown debug flag '%c'" "Option de déverminage inconnue '%c'"
TRANSLATE "Unknown option '%c'" "Option inconnue '%c'"
TRANSLATE "Unknown user '%s'" "Usager inconnu '%s'"
TRANSLATE "Could not change gid to %d" "Impossible de changer gid pour %d"
TRANSLATE "Could not change uid to %d" "Impossible de changer uid pour %d"
TRANSLATE "Out of memory for environment" "Manque de mémoire pour environnement"
TRANSLATE "Missing '=' sign" "Signe '=' manquant"
TRANSLATE "Missing variable name" "Nom de variable absent"
TRANSLATE "Missing expression" "Expression absente"
TRANSLATE "%d reminder(s) queued for later today." "%d rappel(s) en file pour aujourd'hui."
TRANSLATE "Expecting number" "Nombre attendu"
TRANSLATE "Undefined WARN function" "Fonction illégale après WARN"
TRANSLATE "Can't convert between time zones" "Impossible de convertir entre les fuseaux horaires"
TRANSLATE "No files matching *.rem" "Aucun fichier correspondant à *.rem"
TRANSLATE "String too long" "Chaîne trop longue"
TRANSLATE "Time specified twice" "Heure spécifiée deux fois"
TRANSLATE "Cannot specify DURATION without specifying AT" "Impossible de spécifier DURATION sans spécifier AT"
TRANSLATE "Expecting weekday name" "Nom du jour de la semaine attendu"
TRANSLATE "Duplicate argument name" "Nom de l'argument en double"
TRANSLATE "Expression evaluation is disabled" "L'évaluation de l'expression est désactivée"
TRANSLATE "Time limit for expression evaluation exceeded" "Délai d'évaluation de l'expression dépassé"
TRANSLATE "here" "ici"
TRANSLATE "did you mean" "voulais-vous dire"
