diff --git a/ipfilter/lang/fr b/ipfilter/lang/fr
new file mode 100644
index 000000000..e69de29bb
diff --git a/ipfilter/lang/fr.auto b/ipfilter/lang/fr.auto
new file mode 100644
index 000000000..f3b3d43ae
--- /dev/null
+++ b/ipfilter/lang/fr.auto
@@ -0,0 +1,303 @@
+index_title=Pare-feu IPFilter
+index_ecmd=La commande de pare-feu IPFilter $1 est introuvable sur votre système. Il n'est peut-être pas installé ou la configuration du module est incorrecte.
+index_version=Version IPFilter $1
+index_apply=Appliquer la configuration
+index_applydesc=Cliquez sur ce bouton pour activer la configuration du pare-feu répertoriée ci-dessus. Toutes les règles de pare-feu actuellement en vigueur seront vidées et remplacées
+index_applydesc2=Cliquez sur ce bouton pour activer la configuration de pare-feu répertoriée ci-dessus sur tous les serveurs du cluster. Toutes les règles de pare-feu actuellement en vigueur seront vidées et remplacées
+index_unapply=Revenir à la configuration
+index_unapplydesc=Cliquez sur ce bouton pour réinitialiser la configuration répertoriée ci-dessus sur celle qui est actuellement active.
Avertissement - toutes les règles inactives, les commentaires sur les règles et les noms d'hôtes seront perdus.
+index_boot=Activer au démarrage
+index_bootdesc=Modifiez cette option pour contrôler si votre pare-feu est activé au démarrage ou non.
+index_setup=Aucun pare-feu IPFilter n'a encore été configuré sur votre système. Webmin peut en configurer un pour vous, à stocker dans le fichier $1, avec les paramètres initiaux en fonction de votre sélection de type de pare-feu ci-dessous.
+index_rsetup=La configuration du pare-feu IPFilter sur votre système est sur le point d'être réinitialisée. Webmin va configurer de nouvelles règles par défaut, à stocker dans le fichier $1, avec les paramètres initiaux en fonction de votre sélection de type de pare-feu ci-dessous.
+index_auto0=Autoriser tout le trafic
+index_auto1=Faire la traduction d'adresses réseau sur une interface externe:
+index_auto2=Bloquer toutes les connexions entrantes sur l'interface externe:
+index_auto3=Bloquer tout sauf SSH et IDENT sur l'interface externe:
+index_auto4=Bloquer tout sauf SSH, IDENT, ping et les ports hauts sur l'interface:
+index_auto=Configurer le pare-feu
+index_atboot=Activer le pare-feu au démarrage?
+index_count1=Paquets
+index_count2=Les données
+index_reset=Réinitialiser le pare-feu
+index_resetdesc=Cliquez sur ce bouton pour effacer toutes les règles de pare-feu existantes et définir de nouvelles règles pour une configuration initiale de base.
+index_return=index du module
+index_existing=Webmin a détecté $1 règles de pare-feu IPfilter en cours d'utilisation, qui ne sont pas enregistrées dans le fichier de sauvegarde $2. Ces règles ont probablement été configurées à partir d'un script que ce module ne sait ni lire ni modifier.
Si vous souhaitez utiliser ce module pour gérer votre pare-feu IPtables, cliquez sur le bouton ci-dessous pour convertir les règles existantes en fichier de sauvegarde, puis désactivez votre script de pare-feu existant.
+index_saveex=Enregistrer les règles de pare-feu
+index_headerex=Configuration de pare-feu existante
+index_dir=Direction
+index_active=Actif?
+index_action=action
+index_desc=État
+index_cmt=Commentaire
+index_move=Bouge toi
+index_radd=Ajouter
+index_add=Ajoutez une nouvelle règle de pare-feu.
+index_add2=Ajouter une règle de pare-feu
+index_add3=Ajouter un mappage NAT
+index_add4=Ajouter une redirection NAT
+index_delete=Supprimer sélectionnée
+index_cluster=Serveurs de cluster
+index_clusterdesc=Cliquez sur ce bouton pour configurer des serveurs Webmin supplémentaires sur lesquels la configuration du pare-feu sera automatiquement copiée.
+index_natnone=Aucune règle de traduction d'adresse réseau n'a encore été définie.
+index_nataction=Mode NAT
+index_natfrom=Paquets pour correspondre
+index_natto=Traduction
+dir_in=Entrant
+dir_out=Sortant
+action_pass=Passer
+action_block=Bloquer
+action_skip=Sauter
+action_log=Journal
+action_count=Compter
+action_auth=Autoriser
+action_preauth=Preauth
+action_call=Fonction d'appel
+action_map=Cartographie
+action_rdr=Réorienter
+action_bimap=Cartographie bidirectionnelle
+action_map-block=Cartographie des blocs
+laction_pass=Passe le paquet
+laction_block=Bloquer le paquet, avec le code ICMP
+laction_log=Paquet de journal, au niveau
+laction_count=Compteur de mise à jour
+laction_skip=Ignorer les règles suivantes
+laction_auth=Autorisation de l'espace utilisateur
+laction_preauth=Vérifier l'autorisation précédente
+laction_call=Fonction du noyau d'appel
+edit_title1=Créer une règle
+edit_title2=Modifier la règle
+edit_header1=Action de règle
+edit_none=
+edit_rst=Réinitialisation TCP
+edit_return_dest=Fausse adresse source ICMP
+edit_cmt=Commentaire de règle
+edit_active=Règle active?
+edit_active1=Oui
+edit_active0=Non (commenté)
+edit_action=Action à entreprendre
+edit_log_body=Corps de journal
+edit_log_first=Consigner uniquement le premier paquet
+edit_log_orblock=Bloquer si la journalisation échoue
+edit_log_level=Niveau de journalisation
+edit_fac=avec facilité
+edit_callnow=Appelle maintenant
+edit_header2=Source et destination
+edit_all=Paquets pour correspondre
+edit_all1=Tous les paquets
+edit_all0=Correspondance de la source et de la destination ci-dessous.
+edit_from=Source du paquet
+edit_to=Destination des paquets
+edit_any=N'importe quelle adresse
+edit_thishost=Ce serveur
+edit_host=Nom d'hôte ou adresse
+edit_mask=masque de réseau
+edit_nummask=longueur du préfixe
+edit_opt=(optionnel)
+edit_portfrom=Ports source
+edit_portto=Ports de destination
+edit_anyport=Tout port
+edit_portcomp=Le port est $1 $2
+edit_portrange=Le port est entre $1 et $2
+edit_portrangenot=Le port n'est pas compris entre $1 et $2
+edit_header3=Autres conditions pour correspondre
+edit_proto=Protocole
+edit_protoany=
+edit_prototcpudp=
+edit_tos=Type de service
+edit_ttl=Temps de vivre
+edit_tosany=Correspond à tout
+edit_dir=Direction des paquets
+edit_header4=Actions de règle
+edit_quick=Ne vérifiez pas les autres règles si celle-ci correspond
+edit_tag=Tag avec ID
+edit_on=Sur l'interface
+edit_dupto=Paquet en double sur l'interface
+edit_duptoip=vers l'IP de destination
+edit_olog=Consigner également le paquet au niveau
+edit_oifc=Autre ..
+edit_fastroute=Envoyer sur l'interface
+edit_fastrouteip=vers l'IP de destination
+edit_replyto=Répondre sur l'interface
+edit_anyiface=
+edit_keep=Conserver l'historique du paquet
+edit_keepstate=État de débit
+edit_keepfrags=Fragmentation
+edit_flags=Drapeaux TCP
+edit_flagsany=Tout
+edit_flags2=hors de
+edit_icmp=Type ICMP
+edit_icmpany=
+edit_icmpcode=et code
+edit_codeany=
+save_err=Impossible d'enregistrer la règle
+save_ehostfrom=Nom d'hôte source manquant ou non valide
+save_ehostto=Nom d'hôte de destination manquant ou non valide
+save_emaskfrom=Masque de réseau source manquant ou invalide
+save_emaskto=Masque de réseau de destination manquant ou invalide
+save_enummaskfrom=Longueur de préfixe source numérique manquante ou non valide
+save_enummaskto=Longueur de préfixe de destination numérique manquante ou non valide
+save_ecall=Fonction manquante ou invalide à appeler
+save_eskip=Nombre de règles manquantes ou non valides
+save_eportnumfrom=Numéro de port source manquant ou invalide
+save_eportnumto=Numéro de port de destination manquant ou invalide
+save_eportstartfrom=Début de plage de ports source manquant ou non valide
+save_eportstartto=Début de plage de ports de destination manquant ou non valide
+save_eportendfrom=Fin de plage de ports source manquante ou non valide
+save_eportendto=Fin de plage de ports de destination manquante ou non valide
+save_etos=Numéro de service décimal ou hexadécimal manquant ou non valide
+save_ettl=Nombre décimal ou hexadécimal manquant ou invalide
+save_eon=Interface manquante ou invalide
+save_eflags1=Premier ensemble d'indicateurs TCP manquant ou non valide
+save_eflags2=Deuxième ensemble d'indicateurs TCP non valide
+save_eicmp=Un type ICMP ne peut être sélectionné que pour le protocole ICMP
+save_etag=Numéro d'identification d'étiquette manquant ou invalide
+save_edupto=Interface manquante ou non valide pour le paquet en double
+save_eduptoip=Adresse IP non valide pour le paquet en double
+save_eto=Interface manquante ou invalide pour envoyer sur
+save_etoip=Adresse IP non valide pour l'envoi
+save_ereplyto=Interface manquante ou non valide pour répondre
+save_ereplytoip=Adresse IP non valide pour répondre
+apply_err=Impossible d'appliquer la configuration
+apply_remote=Erreur de $1 : $2
+unapply_err=Impossible de rétablir la configuration
+unapply_ein=Échec d'obtention des règles d'entrée
+unapply_eout=Impossible d'obtenir les règles de sortie
+desc_if=Si $1
+desc_and=et
+desc_always=Toujours
+desc_proto=le protocole est $1
+desc_on=l'interface est $1
+desc_from_thishost=la source est cet hôte
+desc_to_thishost=la destination est cet hôte
+desc_fromto_thishost=la destination est cet hôte
+desc_from=la source est $1
+desc_to=la destination est $1
+desc_fromto=la destination est $1
+desc_portcomp_from=port source $1 $2
+desc_portcomp_fromto=port de destination $1 $2
+desc_portcomp_to=port de destination $1 $2
+desc_portrange_from=le port source se situe entre $1 et $2
+desc_portrange_fromto=le port de destination se situe entre $1 et $2
+desc_portrange_to=le port de destination se situe entre $1 et $2
+desc_portrangenot_from=le port source n'est pas compris entre $1 et $2
+desc_portrangenot_fromto=le port de destination n'est pas compris entre $1 et $2
+desc_portrangenot_to=le port de destination n'est pas compris entre $1 et $2
+desc_where=où $1
+desc_all=pour tous les paquets
+desc_natfrom=du réseau $1 masque de réseau $2
+desc_natfromh=de l'hôte $1
+desc_natto=adresse $1 masque de réseau $2
+desc_nattoh=hôte $1
+desc_natrange=plage de $1 à $2
+desc_touc=À $1
+desc_tolc=à $1
+desc_rdr=Adresses IP $1 port $2
+desc_dport1=le port est $1
+desc_dport2=le port est entre $1 et $2
+desc_nattoiface=adresse d'interface
+log_create_rule=Règle $1 créée
+log_delete_rule=Règle $1 supprimée
+log_modify_rule=Règle $1 modifiée
+log_move_rule=Règle $1 déplacée
+log_create_rule_l=Règle $1 créée $2
+log_delete_rule_l=Règle $1 supprimée $2
+log_modify_rule_l=Règle $1 modifiée $2
+log_move_rule_l=Règle $1 déplacée $2
+log_create_nat=Règle NAT $1 créée
+log_delete_nat=Règle NAT $1 supprimée
+log_modify_nat=Règle NAT $1 modifiée
+log_move_nat=Règle NAT $1 déplacée
+log_create_nat_l=$1 règle NAT créée $2 $3
+log_delete_nat_l=Règle NAT $1 supprimée $2 $3
+log_modify_nat_l=Règle NAT $1 modifiée $2 $3
+log_move_nat_l=Règle NAT $1 déplacée $2 $3
+log_apply=Configuration de pare-feu appliquée
+log_bootup=Pare-feu activé au démarrage
+log_bootdown=Pare-feu désactivé au démarrage
+log_convert=Règles de pare-feu actives converties
+log_setup=Configuration initiale du pare-feu effectuée
+log_unapply=Configuration du pare-feu inversée
+log_delsel=Règles $1 supprimées
+log_delselnat=Règles NAT $1 supprimées
+log_add_host=Serveur de cluster ajouté $1
+log_add_group=Serveurs de cluster ajoutés du groupe $1
+log_delete_host=Serveur de cluster supprimé $1
+log_delete_group=Suppression des serveurs de cluster $1
+cluster_title=Serveurs de pare-feu en cluster
+cluster_none=Aucun serveur n'a encore été ajouté au cluster de pare-feu.
+cluster_host=Nom d'hôte
+cluster_desc=La description
+cluster_os=Système opérateur
+cluster_add=Ajouter un serveur
+cluster_gadd=Ajouter des serveurs dans le groupe
+cluster_need=Vous devez ajouter des serveurs avec un identifiant et un mot de passe dans le module Webmin Servers Index avant de pouvoir les gérer ici.
+cluster_return=serveurs de cluster
+cluster_delete=Enlever la sélection
+add_title=Ajouter des serveurs
+add_msg=Ajout de $1 ..
+add_gmsg=Ajout de serveurs dans le groupe $1 ..
+add_err=Échec de l'ajout du serveur
+add_gerr=Échec de l'ajout du groupe
+add_echeck=Le serveur $1 ne dispose pas du module de pare-feu IPFilter
+add_emissing=Le serveur $1 ne contient pas la commande de pare-feu $2
+add_ok=$1 ajouté, avec $2 règles de pare-feu actives.
+nat_title1=Créer une règle NAT
+nat_title2=Modifier la règle NAT
+nat_action=Mode NAT
+nat_header1=Type de règle
+nat_header2=Options de correspondance de paquets
+nat_iface=Interface pour effectuer NAT sur
+nat_frommode=Paquets pour correspondre
+nat_frommode0=Avec IP et masque de réseau $1
+nat_frommode1=Conditions correspondantes ci-dessous ..
+nat_header3=Options de traduction de paquets
+nat_tomode=Traduire en
+nat_tomode0=IP et masque de réseau $1
+nat_tomode1=Plage IP $1 à $2
+nat_tomode2=Adresse de l'interface
+nat_portmap=Cartographie des ports
+nat_portmap0=Défaut
+nat_portmap1=Pour le protocole $1 ($2 pour les ports $3 à $4)
+nat_proxy=Utiliser un proxy d'application
+nat_proxy0=Pas de proxy
+nat_proxy1=Proxy du port $1 au port $2 avec le protocole $3
+nat_header4=Autres options
+nat_proto=Exécuter NAT uniquement sur le protocole
+nat_frag=Paquets fragmentés NAT
+nat_clampmss=Forcer la taille maximale du paquet à
+nat_bytes=octets
+nat_oproxy=Utiliser un proxy d'application
+nat_oproxy1=Du port $1 au port $2 avec le protocole $3
+nat_err=Impossible d'enregistrer la règle NAT
+nat_efromip=Adresse IP correspondante manquante ou non valide
+nat_efrommask=Masque de réseau ou CIDR correspondant manquant ou non valide
+nat_etoip=Adresse IP traduite manquante ou invalide
+nat_etomask=Masque de réseau ou CIDR traduit manquant ou invalide
+nat_eiface=Interface manquante ou invalide pour NAT
+nat_eportmapfrom=Port de départ manquant ou non valide pour le mappage
+nat_eportmapto=Port de fin manquant ou non valide pour le mappage
+nat_eproxyport=Port source manquant ou non valide pour le proxy d'application
+nat_eoproxyname=Port de destination manquant ou non valide pour l'option de proxy d'application
+nat_eoproxyport=Port source manquant ou non valide pour l'option de proxy d'application
+nat_eproxyname=Port de destination manquant ou non valide pour le proxy d'application
+nat_emss=Taille maximale de paquet manquante ou invalide
+nat_emapblock1=Lorsque vous utilisez le mode Block Mapping, seuls un IP et un masque de réseau peuvent être utilisés pour sélectionner les paquets à faire correspondre
+nat_emapblock2=Lorsque vous utilisez le mode Block Mapping, seuls un IP et un masque de réseau peuvent être utilisés pour la traduction
+nat_header5=Paquets à rediriger
+nat_redir=IP et masque de réseau pour les paquets
+nat_dports=Port d'origine
+nat_dports0=Port unique $1
+nat_dports1=Ports de $1 à $2
+nat_header6=Destination pour la redirection
+nat_rdrip=Adresses IP de destination
+nat_rdrport=Le port de destination
+nat_rdrproto=Protocole de redirection
+nat_robin=Faire un mappage à tour de rôle vers les adresses IP de destination
+nat_edport=Port d'origine manquant ou invalide
+nat_edport1=Port d'origine démarrant manquant ou invalide
+nat_edport2=Port d'origine de fin manquant ou invalide
+net_erdrip='$1' n'est pas une adresse IP de destination valide
+nat_erdrips=Aucune adresse IP de destination saisie
+nat_erdrport=Port de destination manquant ou non valide
+boot_esmf=Le service SMF $1 n'existe pas ou n'est pas dans un état connu