diff --git a/resources/lang/fr/aircraft.php b/resources/lang/fr/aircraft.php
new file mode 100644
index 00000000..3b3236b3
--- /dev/null
+++ b/resources/lang/fr/aircraft.php
@@ -0,0 +1,12 @@
+ [
+ 'active' => 'Actif',
+ 'maintenance' => 'Maintenance',
+ 'stored' => 'Stocké',
+ 'retired' => 'Retiré',
+ 'scrapped' => 'A la casse',
+ 'written' => 'Désenregitré',
+ ],
+];
diff --git a/resources/lang/fr/airports.php b/resources/lang/fr/airports.php
new file mode 100644
index 00000000..790e6e9d
--- /dev/null
+++ b/resources/lang/fr/airports.php
@@ -0,0 +1,9 @@
+ 'Identification',
+ 'home' => 'Aéroport Initial',
+ 'current' => 'Aéroport Actuel',
+ 'departure' => 'Aéroport Départ',
+ 'arrival' => 'Aéroport Arrivée',
+];
diff --git a/resources/lang/fr/auth.php b/resources/lang/fr/auth.php
new file mode 100644
index 00000000..0fd07007
--- /dev/null
+++ b/resources/lang/fr/auth.php
@@ -0,0 +1,24 @@
+ 'Les informations identification ne correspondent pas.',
+ 'throttle' => 'Trop de tentatives de connexion. Veuillez réessayer dans quelque minutes.',
+ 'password' => 'Mot de Passe',
+ 'createaccount' => 'Créer un Compte',
+ 'forgotpassword' => 'Mot de Passe Oublié',
+ 'fullname' => 'Nom Complet',
+ 'emailaddress' => 'Adresse Email',
+ 'fillcaptcha' => 'Remplissez le captcha',
+ 'tocaccept' => 'Lors de votre inscription,vous acceptez les Termes et Conditions.',
+ 'register' => 'Inscription',
+ 'registrationpending' => 'Inscription en attente',
+ 'pendingmessage' => 'Votre enregistrement et en attente. Veuillez vérifier vos emails!',
+ 'registrationsubmitted' => 'Votre Enregistrement à été transmis',
+ 'registrationconfirmation' => 'Confirmation inscription',
+ 'confirmationmessage' => 'Votre demande a été transmise. Elle nécessite une approbation par un administrateur. Apès examun de votre demande, vous recevrez un courriel de confirmation.',
+ 'registrationdenied' => 'Inscription rejetée',
+ 'deniedmessage' => 'votre inscription à été rejetée.Veuillez contacter un administrateur.',
+ 'accountsuspended' => 'Accompte Suspendu',
+ 'suspendedmessage' => 'Votre compte a été suspendu. Veuillez contacter un administrateur.',
+ 'transferhours' => 'Heures de Transfert',
+];
diff --git a/resources/lang/fr/common.php b/resources/lang/fr/common.php
new file mode 100644
index 00000000..ac642094
--- /dev/null
+++ b/resources/lang/fr/common.php
@@ -0,0 +1,62 @@
+ 'Tableau de bord',
+ 'administration' => 'Administration',
+ 'flight' => 'Vols',
+ 'livemap' => 'Live Map',
+ 'pilot' => 'Pilote|Pilotes',
+ 'pirep' => 'Pilote|PIREPS',
+ 'newestpilots' => 'Nouveaux Pilotes',
+ 'profile' => 'Profil',
+ 'email' => 'Email',
+ 'pilot_id' => 'Pilote ID',
+ 'register' => 'Inscription',
+ 'login' => 'Connexion',
+ 'logout' => 'Déconnxion',
+ 'timezone' => 'Timezone',
+ 'country' => 'Pays',
+ 'download' => 'Téléchargements',
+ 'from' => 'Depuis',
+ 'to' => 'Vers',
+ 'state' => 'Etat',
+ 'status' => 'Statut',
+ 'departure' => 'Départ',
+ 'arrival' => 'Arrivée',
+ 'aircraft' => 'Avion',
+ 'airline' => 'Compagnie',
+ 'subfleet' => 'Sous-Flotte',
+ 'distance' => 'Distance',
+ 'fuel' => 'Carburant',
+ 'metar' => 'METAR',
+ 'hour' => 'Heure|Heures',
+ 'minute' => 'Heure|Minutes',
+ 'note' => 'Notes',
+ 'field' => 'Champs',
+ 'name' => 'Nom',
+ 'value' => 'Valeur|Valeurs',
+ 'remark' => 'Remarque|Remarques',
+ 'find' => 'Trouver',
+ 'reset' => 'Réinitaliser',
+ 'submit' => 'Soumettre',
+ 'edit' => 'Editer',
+ 'close' => 'Fermer',
+ 'whoops' => 'Whoops',
+ 'hello' => 'Bonjour',
+ 'regards' => 'Salutations',
+ 'rightsreserved' => 'Tous droits réservés',
+ 'active' => 'Actif',
+ 'inactive' => 'Inactif',
+ 'yes' => 'Oui',
+ 'no' => 'Non',
+ 'or' => 'ou',
+ 'days' => [
+ 'mon' => 'Lundi',
+ 'tues' => 'Mardi',
+ 'wed' => 'Mercredi',
+ 'thurs' => 'Jeudi',
+ 'fri' => 'Vendredi',
+ 'sat' => 'Samedi',
+ 'sun' => 'Dimanche',
+ ],
+];
diff --git a/resources/lang/fr/dashboard.php b/resources/lang/fr/dashboard.php
new file mode 100644
index 00000000..aef8c149
--- /dev/null
+++ b/resources/lang/fr/dashboard.php
@@ -0,0 +1,11 @@
+ 'Total Heures',
+ 'yourbalance' => 'Votre Solde',
+ 'yourlastreport' => 'Votre dernier Rapport',
+ 'noreportsyet' => 'Pas encore de Rapport.',
+ 'fileonenow' => 'Déposez Votre Rapport.',
+ 'weatherat' => 'Météo :ICAO',
+ 'recentreports' => 'Rapports Récents',
+];
diff --git a/resources/lang/fr/downloads.php b/resources/lang/fr/downloads.php
new file mode 100644
index 00000000..5ddda32a
--- /dev/null
+++ b/resources/lang/fr/downloads.php
@@ -0,0 +1,5 @@
+ 'Aucun téléchargement!',
+];
diff --git a/resources/lang/fr/email.php b/resources/lang/fr/email.php
new file mode 100644
index 00000000..1eb54532
--- /dev/null
+++ b/resources/lang/fr/email.php
@@ -0,0 +1,5 @@
+ 'Si vous avez des difficultés à cliquer sur le bouton ":actiontext", copiez et collez cette URL ci-dessous dans votre navigateur web:',
+];
diff --git a/resources/lang/fr/errors.php b/resources/lang/fr/errors.php
new file mode 100644
index 00000000..ddeb6f67
--- /dev/null
+++ b/resources/lang/fr/errors.php
@@ -0,0 +1,16 @@
+ [
+ 'title' => 'Accès Non Autorisé',
+ 'message' => 'Embarrassant, pas autorisé à accéder ou à exécuter cette fonction. Cliquez sur ici pour revenir à la page accueil.',
+ ],
+ 404 => [
+ 'title' => 'Page Non Trouvée',
+ 'message' => 'Embarrassant, la page demandée existe pas. Cliquez sur ici pour revenir à la page accueil.',
+ ],
+ 503 => [
+ 'title' => 'Erreur Interne',
+ 'message' => 'Une Erreur est Produite',
+ ],
+];
diff --git a/resources/lang/fr/expenses.php b/resources/lang/fr/expenses.php
new file mode 100644
index 00000000..75e8d35c
--- /dev/null
+++ b/resources/lang/fr/expenses.php
@@ -0,0 +1,9 @@
+ [
+ 'flight' => 'Vol',
+ 'daily' => 'Quotidien',
+ 'monthly' => 'Mensuel',
+ ],
+];
diff --git a/resources/lang/fr/flights.php b/resources/lang/fr/flights.php
new file mode 100644
index 00000000..41c0ca9b
--- /dev/null
+++ b/resources/lang/fr/flights.php
@@ -0,0 +1,42 @@
+ 'Numéro de Vol',
+ 'flighttime' => 'Temps de Vol',
+ 'flighttype' => 'Type de Vol',
+ 'flighthours' => 'Heures de Vol',
+ 'code' => 'Code',
+ 'callsign' => 'Callsign',
+ 'route' => 'Route',
+ 'mybid' => 'Mes enchères',
+ 'search' => 'rechercher',
+ 'addremovebid' => 'Ajouter/Retirer Enchère',
+ 'bidremoved' => 'Votre enchère a été supprimée',
+ 'bidadded' => 'Votre enchère a été ajoutée',
+ 'dep' => 'Dép',
+ 'arr' => 'Arr',
+ 'level' => 'Niveau',
+ 'alternateairport' => 'Aéroport Alternatif',
+ 'inbound' => 'vols Entrants',
+ 'outbound' => 'Vols Sortants',
+ 'none' => 'Pas de Vol Trouvé',
+ 'departuretime' => 'Heure de Départ',
+ 'arrivaltime' => 'Heure Arrivée',
+ 'type' => [
+ 'pass_scheduled' => 'Passager (Prévu)',
+ 'pass_addtl' => 'Passager (Additionnel)',
+ 'charter_pass_only' => 'Passager (Charter)',
+ 'charter_special' => 'Passager (Charter Spécial)',
+ 'cargo_scheduled' => 'Cargo (Prévu)',
+ 'addtl_cargo_mail' => 'Cargo (Additionnel)',
+ 'charter_cargo' => 'Cargo (Charter)',
+ 'mail_service' => 'Service Postal',
+ 'special_vip' => 'Vol VIP',
+ 'ambulance' => 'Ambulance',
+ 'training_flight' => 'Entrainement',
+ 'military' => 'Militaire',
+ 'positioning' => 'Repositionement',
+ 'technical_test' => 'Test Technique',
+ 'technical_stop' => 'Arrêt Technique',
+ ],
+];
diff --git a/resources/lang/fr/home.php b/resources/lang/fr/home.php
new file mode 100644
index 00000000..0b9a97b3
--- /dev/null
+++ b/resources/lang/fr/home.php
@@ -0,0 +1,8 @@
+ [
+ 'title' => 'Bienvenue!',
+ 'message' => 'Bienvenue à :appname',
+ ],
+];
diff --git a/resources/lang/fr/installer.php b/resources/lang/fr/installer.php
new file mode 100644
index 00000000..88316c9b
--- /dev/null
+++ b/resources/lang/fr/installer.php
@@ -0,0 +1,245 @@
+ 'phpVMS Installateur',
+ 'next' => 'Etape suivante',
+ 'back' => 'Etape Précédente',
+ 'finish' => 'Installation',
+ 'forms' => [
+ 'errorTitle' => 'Les erreurs suivantes se sont produites:',
+ ],
+
+ /*
+ *
+ * Home page translations.
+ *
+ */
+ 'welcome' => [
+ 'templateTitle' => 'Bienvenue',
+ 'title' => 'phpVMS Installateur',
+ 'message' => 'Assistant installation.',
+ 'next' => 'Vérifier les exigences',
+ ],
+
+ /*
+ *
+ * Requirements page translations.
+ *
+ */
+ 'requirements' => [
+ 'templateTitle' => 'Step 1 | Exigences du serveur',
+ 'title' => 'Exigences du serveur',
+ 'next' => 'Vérifier les permissions',
+ ],
+
+ /*
+ *
+ * Permissions page translations.
+ *
+ */
+ 'permissions' => [
+ 'templateTitle' => 'Step 2 | Permissions',
+ 'title' => 'Permissions',
+ 'next' => 'Configurer environnement',
+ ],
+
+ /*
+ *
+ * Environment page translations.
+ *
+ */
+ 'environment' => [
+ 'menu' => [
+ 'templateTitle' => 'Step 3 | Paramétrage environnement',
+ 'title' => 'Paramétrage environnement',
+ 'desc' => 'Veuillez choisir comment vous voulez configurer le fichier .env
application.',
+ 'wizard-button' => 'Configuration assistant de formulaire',
+ 'classic-button' => 'Éditeur de texte classique',
+ ],
+ 'wizard' => [
+ 'templateTitle' => 'Step 3 | Paramètres environnement | Assistant guide',
+ 'title' => 'Guide .env
Assistant',
+ 'tabs' => [
+ 'environment' => 'Environnement',
+ 'database' => 'Database',
+ 'application' => 'Application',
+ ],
+ 'form' => [
+ 'name_required' => 'Un nom environnement est requis.',
+ 'app_name_label' => 'App Nom',
+ 'app_name_placeholder' => 'App Nom',
+ 'app_environment_label' => 'App Environnement',
+ 'app_environment_label_local' => 'Local',
+ 'app_environment_label_developement' => 'Développement',
+ 'app_environment_label_qa' => 'Qa',
+ 'app_environment_label_production' => 'Production',
+ 'app_environment_label_other' => 'Autre',
+ 'app_environment_placeholder_other' => 'Entrez votre environnement...',
+ 'app_debug_label' => 'App Debug',
+ 'app_debug_label_true' => 'True',
+ 'app_debug_label_false' => 'False',
+ 'app_log_level_label' => 'App Log Level',
+ 'app_log_level_label_debug' => 'debug',
+ 'app_log_level_label_info' => 'info',
+ 'app_log_level_label_notice' => 'notice',
+ 'app_log_level_label_warning' => 'warning',
+ 'app_log_level_label_error' => 'error',
+ 'app_log_level_label_critical' => 'critical',
+ 'app_log_level_label_alert' => 'alert',
+ 'app_log_level_label_emergency' => 'emergency',
+ 'app_url_label' => 'App Url',
+ 'app_url_placeholder' => 'App Url',
+ 'db_connection_label' => 'Connexion à la base de données',
+ 'db_connection_label_mysql' => 'mysql',
+ 'db_connection_label_sqlite' => 'sqlite',
+ 'db_connection_label_pgsql' => 'pgsql',
+ 'db_connection_label_sqlsrv' => 'sqlsrv',
+ 'db_host_label' => 'Database Host',
+ 'db_host_placeholder' => 'Database Host',
+ 'db_port_label' => 'Database Port',
+ 'db_port_placeholder' => 'Database Port',
+ 'db_name_label' => 'Database Name',
+ 'db_name_placeholder' => 'Database Name',
+ 'db_username_label' => 'Database User Name',
+ 'db_username_placeholder' => 'Database User Name',
+ 'db_password_label' => 'Database Password',
+ 'db_password_placeholder' => 'Database Password',
+
+ 'app_tabs' => [
+ 'more_info' => 'More Info',
+ 'broadcasting_title' => 'Broadcasting, Caching, Session, & Queue',
+ 'broadcasting_label' => 'Broadcast Driver',
+ 'broadcasting_placeholder' => 'Broadcast Driver',
+ 'cache_label' => 'Cache Driver',
+ 'cache_placeholder' => 'Cache Driver',
+ 'session_label' => 'Session Driver',
+ 'session_placeholder' => 'Session Driver',
+ 'queue_label' => 'Queue Driver',
+ 'queue_placeholder' => 'Queue Driver',
+ 'redis_label' => 'Redis Driver',
+ 'redis_host' => 'Redis Host',
+ 'redis_password' => 'Redis Password',
+ 'redis_port' => 'Redis Port',
+
+ 'mail_label' => 'Mail',
+ 'mail_driver_label' => 'Mail Driver',
+ 'mail_driver_placeholder' => 'Mail Driver',
+ 'mail_host_label' => 'Mail Host',
+ 'mail_host_placeholder' => 'Mail Host',
+ 'mail_port_label' => 'Mail Port',
+ 'mail_port_placeholder' => 'Mail Port',
+ 'mail_username_label' => 'Mail Username',
+ 'mail_username_placeholder' => 'Mail Username',
+ 'mail_password_label' => 'Mail Password',
+ 'mail_password_placeholder' => 'Mail Password',
+ 'mail_encryption_label' => 'Mail Encryption',
+ 'mail_encryption_placeholder' => 'Mail Encryption',
+
+ 'pusher_label' => 'Pusher',
+ 'pusher_app_id_label' => 'Pusher App Id',
+ 'pusher_app_id_palceholder' => 'Pusher App Id',
+ 'pusher_app_key_label' => 'Pusher App Key',
+ 'pusher_app_key_palceholder' => 'Pusher App Key',
+ 'pusher_app_secret_label' => 'Pusher App Secret',
+ 'pusher_app_secret_palceholder' => 'Pusher App Secret',
+ ],
+ 'buttons' => [
+ 'setup_database' => 'Configuration de la base de données',
+ 'setup_application' => 'Configuration application',
+ 'install' => 'Installation',
+ ],
+ ],
+ ],
+ 'classic' => [
+ 'templateTitle' => 'Step 3 | Paramètres environnement | Éditeur classique',
+ 'title' => 'Éditeur environnement classique',
+ 'save' => 'Savegarde .env',
+ 'back' => 'Utiliser assistant de formulaire',
+ 'install' => 'Savegarder et Installer',
+ ],
+ 'success' => 'Les paramètres de votre fichier .env ont été enregistrés.',
+ 'errors' => 'Impossible enregistrer le fichier .env, veuillez le créer manuellement.',
+ ],
+
+ 'install' => 'Installation',
+
+ /*
+ *
+ * Installed Log translations.
+ *
+ */
+ 'installed' => [
+ 'success_log_message' => 'Laravel Installer a été installé avec succès sur ',
+ ],
+
+ /*
+ *
+ * Final page translations.
+ *
+ */
+ 'final' => [
+ 'title' => 'Installation terminée',
+ 'templateTitle' => 'Installation terminée',
+ 'finished' => 'Cette application a été installée avec succès.',
+ 'migration' => 'Migration & Sortie de la console amorçage:',
+ 'console' => 'Sortie de la console application:',
+ 'log' => 'Entrée du journal installation :',
+ 'env' => 'Final .env File:',
+ 'exit' => 'Cliquez ici pour sortir',
+ ],
+
+ /*
+ *
+ * Update specific translations
+ *
+ */
+ 'updater' => [
+ /*
+ *
+ * Shared translations.
+ *
+ */
+ 'title' => 'Laravel Updater',
+
+ /*
+ *
+ * Welcome page translations for update feature.
+ *
+ */
+ 'welcome' => [
+ 'title' => 'Bienvenue dans assistant de mise à jour',
+ 'message' => 'Bienvenue dans assistant de mise à jour.',
+ ],
+
+ /*
+ *
+ * Welcome page translations for update feature.
+ *
+ */
+ 'overview' => [
+ 'title' => 'Vue ensemble',
+ 'message' => 'Il y a 1 mise à jour.|Il y a :number de mises à jour.',
+ 'install_updates' => 'Installer les mises à jour',
+ ],
+
+ /*
+ *
+ * Final page translations.
+ *
+ */
+ 'final' => [
+ 'title' => 'Terminé',
+ 'finished' => 'La base de données application a été mise à jour avec succès.',
+ 'exit' => 'Cliquez ici pour quitter',
+ ],
+
+ 'log' => [
+ 'success_message' => 'Laravel Installer a été mis à jour avec succès sur ',
+ ],
+ ],
+];
diff --git a/resources/lang/fr/pagination.php b/resources/lang/fr/pagination.php
new file mode 100644
index 00000000..736d5ed2
--- /dev/null
+++ b/resources/lang/fr/pagination.php
@@ -0,0 +1,18 @@
+ '« Précédent',
+ 'next' => 'Suivant »',
+
+];
diff --git a/resources/lang/fr/passwords.php b/resources/lang/fr/passwords.php
new file mode 100644
index 00000000..4854b4ed
--- /dev/null
+++ b/resources/lang/fr/passwords.php
@@ -0,0 +1,21 @@
+ 'Les mots de passe doivent comporter au moins six caractères et correspondre à la confirmation.',
+ 'reset' => 'Votre mot de passe a été réinitialisé!',
+ 'sent' => 'Nous vous avons envoyé par e-mail le lien de réinitialisation de votre mot de passe.!',
+ 'token' => 'Ce jeton de réinitialisation de mot de passe est invalide.',
+ 'user' => "Nous ne trouvons pas d'utilisateur avec cette adresse e-mail.",
+ 'confirm' => 'Confirmez votre mot de passe',
+];
diff --git a/resources/lang/fr/pireps.php b/resources/lang/fr/pireps.php
new file mode 100644
index 00000000..f69ac237
--- /dev/null
+++ b/resources/lang/fr/pireps.php
@@ -0,0 +1,72 @@
+ 'Nouveau Rapport de vol',
+ 'editflightreport' => 'Editer le Rapport de vol',
+ 'savepirep' => 'Sauvegarder le PIREP',
+ 'submitpirep' => 'Soumettre PIREP',
+ 'fileflightreport' => 'Remplir un Nouveau Rapport',
+ 'filenewpirep' => 'Remplir un Nouveau PIREP',
+ 'newpirep' => 'Nouveau PIREP',
+ 'pilotreport' => 'Rapports Pilote',
+ 'arrived' => 'Arrivé',
+ 'source' => 'Source',
+ 'flightlog' => 'Carnet de vol',
+ 'filedroute' => 'Route Déposée',
+ 'filedon' => 'Déposé le',
+ 'fare' => 'Tarifs',
+ 'class' => 'Classe',
+ 'count' => 'Nombre',
+ 'flighttime' => 'Temps de vol',
+ 'flightlevel' => 'Niveau de vol',
+ 'fieldsreadonly' => 'Une fois que le PIREP a été soumis,lecture seuleuniquement',
+ 'flightinformations' => 'Information de vol',
+ 'flightident' => 'Numéro de vol/Code/Leg',
+ 'block_fuel' => 'Carburant on Block',
+ 'fuel_used' => 'Carburant utilisé',
+ 'codeoptional' => 'Code (optionnel)',
+ 'legoptional' => 'Etape (optionnel)',
+ 'deparrinformations' => 'Informations Départ/Arriivée',
+ 'aircraftinformations' => 'Information Avion',
+ 'dateflown' => 'Date du vol',
+ 'deletepirep' => 'Supprimer PIREP',
+ 'submitted' => 'Soumis',
+ 'source_types' => [
+ 'manual' => 'Manuel',
+ 'acars' => 'ACARS',
+ ],
+ 'state' => [
+ 'accepted' => 'Accepté',
+ 'pending' => 'En attente de validation',
+ 'rejected' => 'Rejeté',
+ 'in_progress' => 'En Cours',
+ 'cancelled' => 'Annulé',
+ 'deleted' => 'Supprimé',
+ 'draft' => 'Projet',
+ 'paused' => 'Pause',
+ ],
+ 'status' => [
+ 'initialized' => 'Initié',
+ 'scheduled' => 'Prévu',
+ 'boarding' => 'Embarquement',
+ 'ready_start' => 'Prêt pour le démarrage',
+ 'push_tow' => 'Refoulement/Remorquage',
+ 'departed' => 'Parti',
+ 'ready_deice' => 'Prêt pour le dégivrage',
+ 'deicing' => 'Dégivrage en cours',
+ 'ground_ret' => 'Retour au sol',
+ 'taxi' => 'Taxi',
+ 'takeoff' => 'Décollage',
+ 'initial_clb' => 'Montée initiale',
+ 'enroute' => 'Enroute',
+ 'diverted' => 'Dérouté',
+ 'approach' => 'Approche',
+ 'final_appr' => 'Approche Finale',
+ 'landing' => 'Atterrissage',
+ 'landed' => 'Atterrit',
+ 'arrived' => 'Arrivé',
+ 'cancelled' => 'Annulé',
+ 'emerg_decent' => 'Descente en urgence',
+ 'paused' => 'En pause',
+ ],
+];
diff --git a/resources/lang/fr/profile.php b/resources/lang/fr/profile.php
new file mode 100644
index 00000000..20a35540
--- /dev/null
+++ b/resources/lang/fr/profile.php
@@ -0,0 +1,20 @@
+ 'This avatar will be resized to :width x :height pixels',
+ 'newapikey' => 'Nouvelle clé API ',
+ 'your-profile' => 'Mon Profil',
+ 'your-awards' => 'Mes Récompenses',
+ 'apikey' => 'Clé API',
+ 'apikey-show' => 'Voir Clé',
+ 'dontshare' => 'Ne pas partager!',
+ 'changepassword' => 'Changer le mot de passe',
+ 'newpassword' => 'Nouveau mot de passe',
+ 'avatar' => 'Avatar',
+ 'updateprofile' => 'Mettre à jour le Profil',
+ 'editprofile' => 'Editer le Profil',
+ 'edityourprofile' => 'Editer mon Profil',
+ 'transferhours' => 'Heures de Transfert',
+ 'opt-in' => 'Opt-In',
+ 'opt-in-descrip' => 'Oui, recevoir les courriels non administratifs.',
+];
diff --git a/resources/lang/fr/toc.php b/resources/lang/fr/toc.php
new file mode 100644
index 00000000..5440ee7e
--- /dev/null
+++ b/resources/lang/fr/toc.php
@@ -0,0 +1,5 @@
+ 'Termes et Conditions',
+];
diff --git a/resources/lang/fr/user.php b/resources/lang/fr/user.php
new file mode 100644
index 00000000..d0e92497
--- /dev/null
+++ b/resources/lang/fr/user.php
@@ -0,0 +1,13 @@
+ 'Localisation',
+ 'state' => [
+ 'pending' => 'En attente',
+ 'active' => 'Actif',
+ 'rejected' => 'Rejeté',
+ 'on_leave' => 'En congé',
+ 'suspended' => 'Suspendu',
+ 'deleted' => 'Supprimé',
+ ],
+];
diff --git a/resources/lang/fr/validation.php b/resources/lang/fr/validation.php
new file mode 100644
index 00000000..d4e7da2a
--- /dev/null
+++ b/resources/lang/fr/validation.php
@@ -0,0 +1,119 @@
+ 'The :attribute must be accepted.',
+ 'active_url' => 'The :attribute is not a valid URL.',
+ 'after' => 'The :attribute must be a date after :date.',
+ 'alpha' => 'The :attribute may only contain letters.',
+ 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
+ 'alpha_num' => 'The :attribute may only contain letters and numbers.',
+ 'array' => 'The :attribute must be an array.',
+ 'before' => 'The :attribute must be a date before :date.',
+ 'between' => [
+ 'numeric' => 'The :attribute must be between :min and :max.',
+ 'file' => 'The :attribute must be between :min and :max kilobytes.',
+ 'string' => 'The :attribute must be between :min and :max characters.',
+ 'array' => 'The :attribute must have between :min and :max items.',
+ ],
+ 'boolean' => 'The :attribute field must be true or false.',
+ 'confirmed' => 'The :attribute confirmation does not match.',
+ 'date' => 'The :attribute is not a valid date.',
+ 'date_format' => 'The :attribute does not match the format :format.',
+ 'different' => 'The :attribute and :other must be different.',
+ 'digits' => 'The :attribute must be :digits digits.',
+ 'digits_between' => 'The :attribute must be between :min and :max digits.',
+ 'dimensions' => 'The :attribute has invalid image dimensions.',
+ 'distinct' => 'The :attribute field has a duplicate value.',
+ 'email' => 'The :attribute must be a valid email address.',
+ 'exists' => 'The selected :attribute is invalid.',
+ 'file' => 'The :attribute must be a file.',
+ 'filled' => 'The ":attribute" is required.',
+ 'image' => 'The :attribute must be an image.',
+ 'in' => 'The selected :attribute is invalid.',
+ 'in_array' => 'The :attribute field does not exist in :other.',
+ 'integer' => 'The :attribute must be an integer.',
+ 'ip' => 'The :attribute must be a valid IP address.',
+ 'json' => 'The :attribute must be a valid JSON string.',
+ 'max' => [
+ 'numeric' => 'The :attribute may not be greater than :max.',
+ 'file' => 'The :attribute may not be greater than :max kilobytes.',
+ 'string' => 'The :attribute may not be greater than :max characters.',
+ 'array' => 'The :attribute may not have more than :max items.',
+ ],
+ 'mimes' => 'The :attribute must be a file of type: :values.',
+ 'min' => [
+ 'numeric' => 'The :attribute must be at least :min.',
+ 'file' => 'The :attribute must be at least :min kilobytes.',
+ 'string' => 'The :attribute must be at least :min characters.',
+ 'array' => 'The :attribute must have at least :min items.',
+ ],
+ 'not_in' => 'The selected :attribute is invalid.',
+ 'numeric' => 'The :attribute must be a number.',
+ 'present' => 'The :attribute field must be present.',
+ 'regex' => 'The :attribute format is invalid.',
+ 'required' => 'The ":attribute" field is required.',
+ 'required_if' => 'The :attribute field is required when :other is :value.',
+ 'required_unless' => 'The :attribute field is required unless :other is in :values.',
+ 'required_with' => 'The :attribute field is required when :values is present.',
+ 'required_with_all' => 'The :attribute field is required when :values is present.',
+ 'required_without' => 'The :attribute field is required when :values is not present.',
+ 'required_without_all' => 'The :attribute field is required when none of :values are present.',
+ 'same' => 'The :attribute and :other must match.',
+ 'size' => [
+ 'numeric' => 'The :attribute must be :size.',
+ 'file' => 'The :attribute must be :size kilobytes.',
+ 'string' => 'The :attribute must be :size characters.',
+ 'array' => 'The :attribute must contain :size items.',
+ ],
+ 'string' => 'The :attribute must be a string.',
+ 'timezone' => 'The :attribute must be a valid zone.',
+ 'unique' => 'The :attribute has already been taken.',
+ 'url' => 'The :attribute format is invalid.',
+
+ /*
+ * Custom Validation Language Lines
+ */
+
+ 'custom' => [
+ 'airline_id' => [
+ 'required' => 'Une Compagnie est requise',
+ 'exists' => 'Cette compagnie existe pas',
+ ],
+ 'aircraft_id' => [
+ 'required' => 'Un Avion est requis',
+ 'exists' => 'Cet Avion existe pas',
+ ],
+ 'arr_airport_id' => [
+ 'required' => 'Un Aéroprt arrivée est requis',
+ ],
+ 'dpt_airport_id' => [
+ 'required' => 'Un Aéroprt de départ est requis',
+ ],
+ 'flight_time' => [
+ 'required' => 'Le temps de vol, en minutes, est requis',
+ 'integer' => 'Le temps de vol, en minutes, est requis',
+ ],
+ 'planned_flight_time' => [
+ 'required' => 'Le temps de vol, en minutes, est requis',
+ 'integer' => 'Le temps de vol, en minutes, est requis',
+ ],
+ 'source_name' => [
+ 'required' => 'La source de PIREP est requise',
+ ],
+ 'g-recaptcha-response' => [
+ 'required' => 'Veuillez vérifier que vous êtes pas un robot.',
+ 'captcha' => 'Erreur Captcha ! Essayez à nouveau plus tard ou contactez un administrateur du site.',
+ ],
+ ],
+
+ /*
+ * Custom Validation Attributes
+ */
+
+ 'attributes' => [],
+
+];
diff --git a/resources/lang/fr/widgets.php b/resources/lang/fr/widgets.php
new file mode 100644
index 00000000..5db41e80
--- /dev/null
+++ b/resources/lang/fr/widgets.php
@@ -0,0 +1,34 @@
+ [
+ 'news' => 'News',
+ 'nonewsfound' => 'pas de News Trouvé',
+ ],
+
+ 'livemap' => [
+ 'groundspeed' => 'Vitesse Sol',
+ 'altitude' => 'Altitude',
+ 'heading' => 'Cap',
+ 'distance' => 'Distance',
+ 'noflights' => 'Aucun vol en cours.',
+ 'gs' => 'GS',
+ ],
+
+ 'weather' => [
+ 'nometar' => 'METAR/TAF les données ont pas pu être récupérées',
+ 'conditions' => 'Conditions',
+ 'visibility' => 'visibilité',
+ 'temp' => 'Temperature',
+ 'humidity' => 'humidité',
+ 'dewpoint' => 'point de rosée',
+ 'barometer' => 'Barometre',
+ 'clouds' => 'Nuages',
+ 'wind' => 'Vent',
+ 'remarks' => 'Remarques',
+ 'guststo' => 'Rafales de vent jusqu à',
+ 'updated' => 'Actualisé',
+ 'hrago' => 'heure précédente|heures précédentes',
+ 'minago' => 'minute précédente|minutes précédentes',
+ ],
+];