PHPIndex

This page lists files in the current directory. You can view content, get download/execute commands for Wget, Curl, or PowerShell, or filter the list using wildcards (e.g., `*.sh`).

admin.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/fr/admin.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'auth' => array(
		'allow_anonymous' => 'Autoriser la lecture anonyme des articles de l’utilisateur par défaut (%s)',
		'allow_anonymous_refresh' => 'Autoriser le rafraîchissement anonyme des flux',
		'api_enabled' => 'Autoriser l’accès par <abbr>API</abbr> <small>(nécessaire pour les applis mobiles)</small>',
		'form' => 'Formulaire (traditionnel, requiert JavaScript)',
		'http' => 'HTTP (pour utilisateurs avancés avec HTTPS)',
		'none' => 'Aucune (dangereux)',
		'title' => 'Authentification',
		'token' => 'Jeton d’identification maître',
		'token_help' => 'Permet d’accéder à toutes les sorties RSS de l’utilisateur et au rafraîchissement des flux sans besoin de s’authentifier :',
		'type' => 'Méthode d’authentification',
		'unsafe_autologin' => 'Autoriser les connexions automatiques non-sûres au format : ',
	),
	'check_install' => array(
		'cache' => array(
			'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/cache</em>. Le serveur HTTP doit être capable d’écrire dedans',
			'ok' => 'Les droits sur le répertoire de cache sont bons.',
		),
		'categories' => array(
			'nok' => 'La table category est mal configurée.',
			'ok' => 'La table category est bien configurée.',
		),
		'connection' => array(
			'nok' => 'La connexion à la base de données est impossible.',
			'ok' => 'La connexion à la base de données est bonne.',
		),
		'ctype' => array(
			'nok' => 'Impossible de trouver une librairie pour la vérification des types de caractères (php-ctype).',
			'ok' => 'Vous disposez de la librairie pour la vérification des types de caractères (ctype).',
		),
		'curl' => array(
			'nok' => 'Impossible de trouver la librairie cURL (paquet php-curl).',
			'ok' => 'Vous disposez de la librairie cURL.',
		),
		'data' => array(
			'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data</em>. Le serveur HTTP doit être capable d’écrire dedans',
			'ok' => 'Les droits sur le répertoire de data sont bons.',
		),
		'database' => 'Installation de la base de données',
		'dom' => array(
			'nok' => 'Impossible de trouver une librairie pour parcourir le DOM (paquet php-xml).',
			'ok' => 'Vous disposez de la librairie pour parcourir le DOM.',
		),
		'entries' => array(
			'nok' => 'La table entry est mal configurée.',
			'ok' => 'La table entry est bien configurée.',
		),
		'favicons' => array(
			'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/favicons</em>. Le serveur HTTP doit être capable d’écrire dedans',
			'ok' => 'Les droits sur le répertoire des favicons sont bons.',
		),
		'feeds' => array(
			'nok' => 'La table feed est mal configurée.',
			'ok' => 'La table feed est bien configurée.',
		),
		'fileinfo' => array(
			'nok' => 'Impossible de trouver la librairie PHP fileinfo (paquet fileinfo).',
			'ok' => 'Vous disposez de la librairie fileinfo.',
		),
		'files' => 'Installation des fichiers',
		'json' => array(
			'nok' => 'Vous ne disposez pas de l’extension recommandée JSON (paquet php-json).',
			'ok' => 'Vous disposez de l’extension recommandée JSON.',
		),
		'mbstring' => array(
			'nok' => 'Impossible de trouver la librairie recommandée mbstring pour Unicode.',
			'ok' => 'Vouz disposez de la librairie recommandée mbstring pour Unicode.',
		),
		'pcre' => array(
			'nok' => 'Impossible de trouver une librairie pour les expressions régulières (php-pcre).',
			'ok' => 'Vous disposez de la librairie pour les expressions régulières (PCRE).',
		),
		'pdo' => array(
			'nok' => 'Vous ne disposez pas de PDO ou d’un des drivers supportés (pdo_mysql, pdo_sqlite, pdo_pgsql).',
			'ok' => 'Vous disposez de PDO et d’au moins un des drivers supportés (pdo_mysql, pdo_sqlite, pdo_pgsql).',
		),
		'php' => array(
			'_' => 'Installation de PHP',
			'nok' => 'Votre version de PHP est la %s mais FreshRSS requiert au moins la version %s.',
			'ok' => 'Votre version de PHP est la %s, qui est compatible avec FreshRSS.',
		),
		'tables' => array(
			'nok' => 'Impossible de trouver une ou plusieurs tables en base de données.',
			'ok' => 'Les tables sont bien présentes en base de données.',
		),
		'title' => 'Vérification de l’installation',
		'tokens' => array(
			'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/tokens</em>. Le serveur HTTP doit être capable d’écrire dedans',
			'ok' => 'Les droits sur le répertoire des tokens sont bons.',
		),
		'users' => array(
			'nok' => 'Veuillez vérifier les droits sur le répertoire <em>./data/users</em>. Le serveur HTTP doit être capable d’écrire dedans',
			'ok' => 'Les droits sur le répertoire des utilisateurs sont bons.',
		),
		'zip' => array(
			'nok' => 'Vous ne disposez pas de l’extension ZIP (paquet php-zip).',
			'ok' => 'Vous disposez de l’extension ZIP.',
		),
	),
	'extensions' => array(
		'author' => 'Auteur',
		'community' => 'Extensions utilisateur disponibles',
		'description' => 'Description',	// IGNORE
		'disabled' => 'Désactivée',
		'empty_list' => 'Aucune extension installée',
		'enabled' => 'Activée',
		'latest' => 'Installée',
		'name' => 'Nom',
		'no_configure_view' => 'Cette extension n’a pas à être configurée',
		'system' => array(
			'_' => 'Extensions système',
			'no_rights' => 'Extensions système (contrôlées par l’administrateur)',
		),
		'title' => 'Extensions',	// IGNORE
		'update' => 'Mise à jour disponible',
		'user' => 'Extensions utilisateur',
		'version' => 'Version',	// IGNORE
	),
	'stats' => array(
		'_' => 'Statistiques',
		'all_feeds' => 'Tous les flux',
		'category' => 'Catégorie',
		'entry_count' => 'Nombre d’articles',
		'entry_per_category' => 'Articles par catégorie',
		'entry_per_day' => 'Nombre d’articles par jour (30 derniers jours)',
		'entry_per_day_of_week' => 'Par jour de la semaine (moyenne : %.2f messages)',
		'entry_per_hour' => 'Par heure (moyenne : %.2f messages)',
		'entry_per_month' => 'Par mois (moyenne : %.2f messages)',
		'entry_repartition' => 'Répartition des articles',
		'feed' => 'Flux',
		'feed_per_category' => 'Flux par catégorie',
		'idle' => 'Flux inactifs',
		'main' => 'Statistiques principales',
		'main_stream' => 'Flux principal',
		'no_idle' => 'Il n’y a aucun flux inactif !',
		'number_entries' => '%d articles',	// IGNORE
		'percent_of_total' => '% du total',
		'repartition' => 'Répartition des articles',
		'status_favorites' => 'favoris',
		'status_read' => 'lus',
		'status_total' => 'total',
		'status_unread' => 'non lus',
		'title' => 'Statistiques',
		'top_feed' => 'Les dix plus gros flux',
	),
	'system' => array(
		'_' => 'Configuration du système',
		'auto-update-url' => 'URL du service de mise à jour',
		'base-url' => array(
			'_' => 'URL de la racine',
			'recommendation' => 'Recommandation automatique : <kbd>%s</kbd>',
		),
		'cookie-duration' => array(
			'help' => 'en secondes',
			'number' => 'Durée avant expiration de la session',
		),
		'force_email_validation' => 'Forcer la validation des adresses email',
		'instance-name' => 'Nom de l’instance',
		'max-categories' => 'Limite de catégories par utilisateur',
		'max-feeds' => 'Limite de flux par utilisateur',
		'registration' => array(
			'number' => 'Nombre max de comptes',
			'select' => array(
				'label' => 'Formulaire d’inscription',
				'option' => array(
					'noform' => 'Désactivé : Pas de formulaire d’inscription',
					'nolimit' => 'Activé : Pas de limite au nombre d’utilisateurs',
					'setaccountsnumber' => 'Nombre d’utilisateurs limités',
				),
			),
			'status' => array(
				'disabled' => 'Formulaire désactivé',
				'enabled' => 'Formulaire activé',
			),
			'title' => 'Formulaire d’inscription utilisateur',
		),
		'sensitive-parameter' => 'Paramètre sensible. Éditez manuellement <kbd>./data/config.php</kbd>',
		'tos' => array(
			'disabled' => 'non renseigné',
			'enabled' => '<a href="./?a=tos">activées</a>',
			'help' => 'Comment <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">activer les conditions d’utilisation</a>',
		),
		'websub' => array(
			'help' => 'À propos de <a href="https://freshrss.github.io/FreshRSS/fr/users/08_PubSubHubbub.html" target="_blank">WebSub</a>',
		),
	),
	'update' => array(
		'_' => 'Système de mise à jour',
		'apply' => 'Appliquer la mise à jour',
		'changelog' => 'Journal des modifications',
		'check' => 'Vérifier les mises à jour',
		'copiedFromURL' => 'update.php copié depuis %s vers ./data',
		'current_version' => 'Votre version actuelle',
		'last' => 'Dernière vérification',
		'loading' => 'Mise à jour en cours…',
		'none' => 'Aucune mise à jour à appliquer',
		'releaseChannel' => array(
			'_' => 'Canal de publication',
			'edge' => 'Publication continue (“edge”)',
			'latest' => 'Publication stable (“latest”)',
		),
		'title' => 'Système de mise à jour',
		'viaGit' => 'Mise à jour via git et GitHub.com démarrée',
	),
	'user' => array(
		'admin' => 'Administrateur',
		'article_count' => 'Articles',	// IGNORE
		'back_to_manage' => '← Revenir à la liste des utilisateurs',
		'create' => 'Créer un nouvel utilisateur',
		'database_size' => 'Volumétrie',
		'email' => 'adresse électronique',
		'enabled' => 'Actif',
		'feed_count' => 'Flux',
		'is_admin' => 'Admin',
		'language' => 'Langue',
		'last_user_activity' => 'Dernière activité utilisateur',
		'list' => 'Liste des utilisateurs',
		'number' => '%d compte a déjà été créé',
		'numbers' => '%d comptes ont déjà été créés',
		'password_form' => 'Mot de passe<br /><small>(pour connexion par formulaire)</small>',
		'password_format' => '7 caractères minimum',
		'title' => 'Gestion des utilisateurs',
		'username' => 'Nom d’utilisateur',
	),
);
conf.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/fr/conf.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'archiving' => array(
		'_' => 'Archivage',
		'exception' => 'Exception de nettoyage',
		'help' => 'D’autres options sont disponibles dans la configuration individuelle des flux.',
		'keep_favourites' => 'Ne jamais supprimer les articles favoris',
		'keep_labels' => 'Ne jamais supprimer les articles étiquetés',
		'keep_max' => 'Nombre maximum d’articles à conserver par flux',
		'keep_min_by_feed' => 'Nombre minimum d’articles à conserver par flux',
		'keep_period' => 'Âge maximum des articles à conserver',
		'keep_unreads' => 'Ne jamais supprimer les articles non lus',
		'maintenance' => 'Maintenance',	// IGNORE
		'optimize' => 'Optimiser la base de données',
		'optimize_help' => 'À faire de temps en temps pour réduire la taille de la BDD',
		'policy' => 'Politique de nettoyage',
		'policy_warning' => 'Si aucune politique de nettoyage n’est sélectionnée, tous les articles seront conservés.',
		'purge_now' => 'Purger maintenant',
		'title' => 'Archivage',
		'ttl' => 'Ne pas automatiquement rafraîchir plus souvent que',
	),
	'display' => array(
		'_' => 'Affichage',
		'darkMode' => array(
			'_' => 'Mode sombre automatique',
			'auto' => 'Auto',	// IGNORE
			'help' => 'Seulement pour les thèmes compatibles',
			'no' => 'Non',
		),
		'icon' => array(
			'bottom_line' => 'Ligne du bas',
			'display_authors' => 'Auteurs',
			'entry' => 'Icônes d’article',
			'publication_date' => 'Date de publication',
			'related_tags' => 'Tags de l’article',
			'sharing' => 'Partage',
			'summary' => 'Résumé',
			'top_line' => 'Ligne du haut',
		),
		'language' => 'Langue',
		'notif_html5' => array(
			'seconds' => 'secondes (0 signifie aucun timeout)',
			'timeout' => 'Temps d’affichage de la notification HTML5',
		),
		'show_nav_buttons' => 'Afficher les boutons de navigation',
		'theme' => array(
			'_' => 'Thème',
			'deprecated' => array(
				'_' => 'Obsolète',
				'description' => 'Ce thème est obsolète et sera supprimé dans une <a href="https://freshrss.github.io/FreshRSS/fr/users/05_Configuration.html#th%C3%A8me" target="_blank">future version de FreshRSS</a>',
			),
		),
		'theme_not_available' => 'Le thème <em>%s</em> n’est plus disponible. Veuillez choisir un autre thème.',
		'thumbnail' => array(
			'label' => 'Miniature',
			'landscape' => 'Paysage',
			'none' => 'Sans',
			'portrait' => 'Portrait',	// IGNORE
			'square' => 'Carrée',
		),
		'timezone' => 'Fuseau horaire',
		'title' => 'Affichage',
		'website' => array(
			'full' => 'Icône et nom',
			'icon' => 'Icône seulement',
			'label' => 'Site Web',
			'name' => 'Nom seulement',
			'none' => 'Aucun',
		),
		'width' => array(
			'content' => 'Largeur du contenu',
			'large' => 'Large',	// IGNORE
			'medium' => 'Moyenne',
			'no_limit' => 'Pas de limite',
			'thin' => 'Fine',
		),
	),
	'logs' => array(
		'loglist' => array(
			'level' => 'Niveau de sévérité',
			'message' => 'Message de journal',
			'timestamp' => 'Horodatage',
		),
		'pagination' => array(
			'first' => 'Début',
			'last' => 'Fin',
			'next' => 'Suivant',
			'previous' => 'Précédent',
		),
	),
	'profile' => array(
		'_' => 'Gestion du profil',
		'api' => 'Gestion de l’API',
		'delete' => array(
			'_' => 'Suppression du compte',
			'warn' => 'Le compte et toutes les données associées vont être supprimées.',
		),
		'email' => 'adresse électronique',
		'password_api' => 'Mot de passe API<br /><small>(ex. : pour applis mobiles)</small>',
		'password_form' => 'Mot de passe<br /><small>(pour connexion par formulaire)</small>',
		'password_format' => '7 caractères minimum',
		'title' => 'Profil',
	),
	'query' => array(
		'_' => 'Filtres utilisateurs',
		'deprecated' => 'Ce filtre n’est plus valide. La catégorie ou le flux concerné a été supprimé.',
		'description' => 'Description',	// IGNORE
		'filter' => array(
			'_' => 'Filtres appliqués :',
			'categories' => 'Afficher par catégorie',
			'feeds' => 'Afficher par flux',
			'order' => 'Tri par date',
			'search' => 'Expression',	// IGNORE
			'shareOpml' => 'Active le partage par OPML des catégories et flux correspondants',
			'shareRss' => 'Active le partage par HTML &amp; RSS',
			'state' => 'État',
			'tags' => 'Afficher par étiquette',
			'type' => 'Type',	// IGNORE
		),
		'get_all' => 'Afficher tous les articles',
		'get_all_labels' => 'Afficher les articles avec une étiquette',
		'get_category' => 'Afficher la catégorie <em>%s<em>',
		'get_favorite' => 'Afficher les articles favoris',
		'get_feed' => 'Afficher le flux <em>%s</em>',
		'get_important' => 'Afficher les articles des flux importants',
		'get_label' => 'Afficher les articles avec l’étiquette “%s”',
		'help' => 'Voir la <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation pour les filtres utilisateurs et repartage par HTML / RSS / OPML</a>.',
		'image_url' => 'URL de l’image',
		'name' => 'Nom',
		'no_filter' => 'Aucun filtre appliqué',
		'number' => 'Filtre n°%d',
		'order_asc' => 'Afficher les articles les plus anciens en premier',
		'order_desc' => 'Afficher les articles les plus récents en premier',
		'search' => 'Recherche de « %s »',
		'share' => array(
			'_' => 'Partager ce filtre par lien',
			'greader' => 'Lien partageable au format JSON GReader',
			'help' => 'Donner ce lien pour partager le contenu du filtre avec d’autres personnes',
			'html' => 'Lien partageable de la page HTML',
			'opml' => 'Lien partageable de la liste des flux au format OPML',
			'rss' => 'Lien partageable du flux RSS',
		),
		'state_0' => 'Afficher tous les articles',
		'state_1' => 'Afficher les articles lus',
		'state_2' => 'Afficher les articles non lus',
		'state_3' => 'Afficher tous les articles',
		'state_4' => 'Afficher les articles favoris',
		'state_5' => 'Afficher les articles lus et favoris',
		'state_6' => 'Afficher les articles non lus et favoris',
		'state_7' => 'Afficher les articles favoris',
		'state_8' => 'Afficher les articles non favoris',
		'state_9' => 'Afficher les articles lus et non favoris',
		'state_10' => 'Afficher les articles non lus et non favoris',
		'state_11' => 'Afficher les articles non favoris',
		'state_12' => 'Afficher tous les articles',
		'state_13' => 'Afficher les articles lus',
		'state_14' => 'Afficher les articles non lus',
		'state_15' => 'Afficher tous les articles',
		'title' => 'Filtres utilisateurs',
	),
	'reading' => array(
		'_' => 'Lecture',
		'after_onread' => 'Après « Marquer tout comme lu »,',
		'always_show_favorites' => 'Afficher par défaut tous les articles dans les favoris',
		'article' => array(
			'authors_date' => array(
				'_' => 'Auteurs et date',
				'both' => 'En en-tête et en pied d’article',
				'footer' => 'En pied d’article',
				'header' => 'En en-tête',
				'none' => 'Caché',
			),
			'feed_name' => array(
				'above_title' => 'Au-dessus du titre',
				'none' => 'Caché',
				'with_authors' => 'Sur la ligne « Auteurs et date »',
			),
			'feed_title' => 'Titre du flux',
			'icons' => array(
				'_' => 'Position des icônes d’article<br /><small>(Vue lecture seulement)</small>',
				'above_title' => 'Au dessus du titre',
				'with_authors' => 'Sur la ligne auteur et date',
			),
			'tags' => array(
				'_' => 'Tags',	// IGNORE
				'both' => 'En en-tête et en pied d’article',
				'footer' => 'En pied d’article',
				'header' => 'En en-tête',
				'none' => 'Caché',
			),
			'tags_max' => array(
				'_' => 'Nombre maximum de tags affichés',
				'help' => '0 pour afficher tous les tags sans menu déroulant',
			),
		),
		'articles_per_page' => 'Nombre d’articles par page',
		'auto_load_more' => 'Charger les articles suivants en bas de page',
		'auto_remove_article' => 'Cacher les articles après lecture',
		'confirm_enabled' => 'Afficher une confirmation lors des actions « Marquer tout comme lu »',
		'display_articles_unfolded' => 'Afficher les articles dépliés par défaut',
		'display_categories_unfolded' => 'Catégories à déplier',
		'headline' => array(
			'articles' => 'Articles : ouverture/fermeture',
			'articles_header_footer' => 'Articles : en-tête / pied d’article',
			'categories' => 'Navigation de gauche : catégories',
			'mark_as_read' => 'Marquer les articles comme lus',
			'misc' => 'Divers',
			'view' => 'Vue',
		),
		'hide_read_feeds' => 'Cacher les catégories & flux sans article non-lu (ne fonctionne pas avec la configuration « Afficher tous les articles »)',
		'img_with_lazyload' => 'Utiliser le mode <em>chargement différé</em> pour les images',
		'jump_next' => 'sauter au prochain voisin non lu (flux ou catégorie)',
		'mark_updated_article_unread' => 'Marquer les articles mis à jour comme non-lus',
		'number_divided_when_reader' => 'Divisé par 2 dans la vue de lecture.',
		'read' => array(
			'article_open_on_website' => 'lorsque l’article est ouvert sur le site d’origine',
			'article_viewed' => 'lorsque l’article est affiché',
			'focus' => 'lorsque l’article est sélectionné (sauf pour les flux importants)',
			'keep_max_n_unread' => 'Nombre maximum d’articles conservés non lus',
			'scroll' => 'au défilement de la page (sauf pour les flux importants)',
			'upon_gone' => 'lorsqu’il n’est plus dans le flux d’actualités en amont',
			'upon_reception' => 'dès la réception du nouvel article',
			'when' => 'Marquer un article comme lu…',
			'when_same_title' => 'si un même titre existe déjà dans les <i>n</i> articles plus récents',
		),
		'show' => array(
			'_' => 'Articles à afficher',
			'active_category' => 'La catégorie active',
			'adaptive' => 'Adapter l’affichage',
			'all_articles' => 'Afficher tous les articles',
			'all_categories' => 'Toutes les catégories',
			'no_category' => 'Aucune catégorie',
			'remember_categories' => 'Se souvenir des catégories dépliées',
			'unread' => 'Afficher les non lus',
		),
		'show_fav_unread_help' => 'S’applique aussi aux étiquettes',
		'sides_close_article' => 'Cliquer hors de la zone de texte ferme l’article',
		'sort' => array(
			'_' => 'Ordre de tri',
			'newer_first' => 'Plus récents en premier',
			'older_first' => 'Plus anciens en premier',
		),
		'star' => array(
			'when' => 'Marquer un article comme favori…',
		),
		'sticky_post' => 'Aligner l’article en haut quand il est ouvert',
		'title' => 'Lecture',
		'view' => array(
			'default' => 'Vue par défaut',
			'global' => 'Vue globale',
			'normal' => 'Vue normale',
			'reader' => 'Vue lecture',
		),
	),
	'sharing' => array(
		'_' => 'Partage',
		'add' => 'Ajouter une méthode de partage',
		'deprecated' => 'Ce service est obsolète et sera supprimé dans une <a href="https://freshrss.github.io/FreshRSS/en/users/08_sharing_services.html" title="Voir la documentation" target="_blank">prochaine version de FreshRSS</a>.',
		'diaspora' => 'Diaspora*',	// IGNORE
		'email' => 'Courriel',
		'facebook' => 'Facebook',	// IGNORE
		'more_information' => 'Plus d’informations',
		'print' => 'Imprimer',
		'raindrop' => 'Raindrop.io',	// IGNORE
		'remove' => 'Supprimer la méthode de partage',
		'shaarli' => 'Shaarli',	// IGNORE
		'share_name' => 'Nom du partage à afficher',
		'share_url' => 'URL du partage à utiliser',
		'title' => 'Partage',
		'twitter' => 'Twitter',	// IGNORE
		'wallabag' => 'wallabag',	// IGNORE
	),
	'shortcut' => array(
		'_' => 'Raccourcis',
		'article_action' => 'Actions associées à l’article courant',
		'auto_share' => 'Partager',
		'auto_share_help' => 'S’il n’y a qu’un mode de partage, celui-ci est utilisé automatiquement. Sinon ils sont accessibles par leur numéro.',
		'close_dropdown' => 'Fermer les menus',
		'collapse_article' => 'Refermer',
		'first_article' => 'Passer au premier article',
		'focus_search' => 'Accéder à la recherche',
		'global_view' => 'Basculer vers la vue globale',
		'help' => 'Afficher la documentation',
		'javascript' => 'Le JavaScript doit être activé pour pouvoir profiter des raccourcis.',
		'last_article' => 'Passer au dernier article',
		'load_more' => 'Charger plus d’articles',
		'mark_favorite' => 'Basculer l’indicateur de favori',
		'mark_read' => 'Basculer l’indicateur de lecture',
		'navigation' => 'Navigation',	// IGNORE
		'navigation_help' => 'Avec le modificateur <kbd>⇧ Maj</kbd>, les raccourcis de navigation s’appliquent aux flux.<br/>Avec le modificateur <kbd>Alt ⎇</kbd>, les raccourcis de navigation s’appliquent aux catégories.',
		'navigation_no_mod_help' => 'Les raccourcis suivant ne supportent pas les modificateurs.',
		'next_article' => 'Passer à l’article suivant',
		'next_unread_article' => 'Passer à l’article non lu suivant',
		'non_standard' => 'Certains raccourcis (<kbd>%s</kbd>) peuvent ne pas fonctionner.',
		'normal_view' => 'Basculer vers la vue normale',
		'other_action' => 'Autres actions',
		'previous_article' => 'Passer à l’article précédent',
		'reading_view' => 'Basculer vers la vue lecture',
		'rss_view' => 'Ouvrir en tant que flux RSS ',
		'see_on_website' => 'Voir sur le site d’origine',
		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> pour marquer les articles précédents comme lus<br />+ <kbd>⇧ Maj</kbd> pour marquer tous les articles comme lus',
		'skip_next_article' => 'Passer au suivant sans ouvrir',
		'skip_previous_article' => 'Passer au précédent sans ouvrir',
		'title' => 'Raccourcis',
		'toggle_media' => 'Lire/arrêter le média',
		'user_filter' => 'Accéder aux filtres utilisateur',
		'user_filter_help' => 'S’il n’y a qu’un filtre utilisateur, celui-ci est utilisé automatiquement. Sinon ils sont accessibles par leur numéro.',
		'views' => 'Vues',
	),
	'user' => array(
		'articles_and_size' => '%s articles (%s)',	// IGNORE
		'current' => 'Utilisateur actuel',
		'is_admin' => 'est administrateur',
		'users' => 'Utilisateurs',
	),
);
feedback.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/fr/feedback.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'access' => array(
		'denied' => 'Vous n’avez pas le droit d’accéder à cette page !',
		'not_found' => 'La page que vous cherchez n’existe pas !',
	),
	'admin' => array(
		'optimization_complete' => 'Optimisation terminée.',
	),
	'api' => array(
		'password' => array(
			'failed' => 'Votre mot de passe n’a pas pu être mis à jour',
			'updated' => 'Votre mot de passe a été mis à jour',
		),
	),
	'auth' => array(
		'login' => array(
			'invalid' => 'L’identifiant est invalide',
			'success' => 'Vous êtes désormais connecté',
		),
		'logout' => array(
			'success' => 'Vous avez été déconnecté',
		),
	),
	'conf' => array(
		'error' => 'Une erreur est survenue durant la sauvegarde de la configuration',
		'query_created' => 'Le filtre <em>%s</em> a bien été créé.',
		'shortcuts_updated' => 'Les raccourcis ont été mis à jour.',
		'updated' => 'La configuration a été mise à jour',
	),
	'extensions' => array(
		'already_enabled' => '%s est déjà activée',
		'cannot_remove' => '%s ne peut pas être supprimée',
		'disable' => array(
			'ko' => '%s ne peut pas être désactivée. <a href="%s">Consulter les logs de FreshRSS</a> pour plus de détails.',
			'ok' => '%s est désormais désactivée',
		),
		'enable' => array(
			'ko' => '%s ne peut pas être activée. <a href="%s">Consulter les logs de FreshRSS</a> pour plus de détails.',
			'ok' => '%s est désormais activée',
		),
		'no_access' => 'Vous n’avez aucun accès sur %s',
		'not_enabled' => '%s n’est pas encore activée',
		'not_found' => '%s n’existe pas',
		'removed' => '%s a été supprimée',
	),
	'import_export' => array(
		'export_no_zip_extension' => 'L’extension ZIP n’est pas présente sur votre serveur. Veuillez essayer d’exporter les fichiers un par un.',
		'feeds_imported' => 'Vos flux ont été importés.	Si vous avez fini vos importations, vous pouvez cliquer le bouton <i>Actualiser flux</i>.',
		'feeds_imported_with_errors' => 'Vos flux ont été importés mais des erreurs sont survenues.	Si vous avez fini vos importations, vous pouvez cliquer le bouton <i>Actualiser flux</i>.',
		'file_cannot_be_uploaded' => 'Le fichier ne peut pas être téléchargé !',
		'no_zip_extension' => 'L’extension ZIP n’est pas présente sur votre serveur.',
		'zip_error' => 'Une erreur est survenue durant le traitement du fichier ZIP.',
	),
	'profile' => array(
		'error' => 'Votre profil n’a pas pu être mis à jour',
		'updated' => 'Votre profil a été mis à jour',
	),
	'sub' => array(
		'actualize' => 'Actualiser',
		'articles' => array(
			'marked_read' => 'Les articles sélectionnés ont été marqués comme lus.',
			'marked_unread' => 'Les articles sélectionnés ont été marqués comme non-lus.',
		),
		'category' => array(
			'created' => 'La catégorie %s a été créée.',
			'deleted' => 'La catégorie a été supprimée.',
			'emptied' => 'La catégorie a été vidée.',
			'error' => 'La catégorie n’a pas pu être modifiée',
			'name_exists' => 'Une catégorie possède déjà ce nom.',
			'no_id' => 'Vous devez préciser l’id de la catégorie.',
			'no_name' => 'Vous devez préciser un nom pour la catégorie.',
			'not_delete_default' => 'Vous ne pouvez pas supprimer la catégorie par défaut !',
			'not_exist' => 'Cette catégorie n’existe pas !',
			'over_max' => 'Vous avez atteint votre limite de catégories (%d)',
			'updated' => 'La catégorie a été mise à jour.',
		),
		'feed' => array(
			'actualized' => '<em>%s</em> a été mis à jour.',
			'actualizeds' => 'Les flux ont été mis à jour.',
			'added' => 'Le flux <em>%s</em> a bien été ajouté.',
			'already_subscribed' => 'Vous êtes déjà abonné à <em>%s</em>',
			'cache_cleared' => 'Le cache de <em>%s</em> a été vidée.',
			'deleted' => 'Le flux a été supprimé.',
			'error' => 'Une erreur est survenue',
			'internal_problem' => 'Le flux ne peut pas être ajouté. <a href="%s">Consulter les logs de FreshRSS</a> pour plus de détails. Vous pouvez essayer de forcer l’ajout par addition de <code>#force_feed</code> à l’URL.',
			'invalid_url' => 'L’url <em>%s</em> est invalide.',
			'n_actualized' => '%d flux ont été mis à jour.',
			'n_entries_deleted' => '%d articles ont été supprimés.',
			'no_refresh' => 'Il n’y a aucun flux à actualiser…',
			'not_added' => '<em>%s</em> n’a pas pu être ajouté.',
			'not_found' => 'Le flux n’a pas pu être trouvé.',
			'over_max' => 'Vous avez atteint votre limite de flux (%d)',
			'reloaded' => '<em>%s</em> a été rechargé.',
			'selector_preview' => array(
				'http_error' => 'Échec lors du chargement du contenu du site web.',
				'no_entries' => 'Il n’y a pas d’articles dans ce flux. Vous devez avoir au moins un article pour générer une prévisualisation.',
				'no_feed' => 'Erreur interne (le flux n’a pas pu être trouvé).',
				'no_result' => 'Le sélecteur n’a produit aucune concordance. Dans ces circonstances, le texte original du flux sera affiché.',
				'selector_empty' => 'Le sélecteur est vide. Vous devez en définir un pour générer une prévisualisation.',
			),
			'updated' => 'Le flux a été mis à jour',
		),
		'purge_completed' => 'Purge effectuée (%d articles supprimés).',
	),
	'tag' => array(
		'created' => 'L’étiquette <em>%s</em> a été créée.',
		'error' => 'L’étiquette n’a pas pu être modifiée',
		'name_exists' => 'L’étiquette existe déjà!',
		'renamed' => 'L’étiquette <em>%s</em> a été renommée en <em>%s</em>.',
		'updated' => 'L’étiquette a été mise à jour.',
	),
	'update' => array(
		'can_apply' => 'FreshRSS va maintenant être mis à jour vers la <strong>version %s</strong>.',
		'error' => 'La mise à jour a rencontré un problème : %s',
		'file_is_nok' => 'Nouvelle <strong>version %s</strong> disponible, mais veuillez vérifier les droits sur le répertoire <em>%s</em>. Le serveur HTTP doit être capable d’écrire dedans',
		'finished' => 'La mise à jour est terminée !',
		'none' => 'Aucune mise à jour à appliquer',
		'server_not_found' => 'Le serveur de mise à jour n’a pas été trouvé. [%s]',
	),
	'user' => array(
		'created' => array(
			'_' => 'L’utilisateur %s a été créé.',
			'error' => 'L’utilisateur %s ne peut pas être créé.',
		),
		'deleted' => array(
			'_' => 'L’utilisateur %s a été supprimé.',
			'error' => 'L’utilisateur %s ne peut pas être supprimé.',
		),
		'updated' => array(
			'_' => 'L’utilisateur %s a été mis à jour',
			'error' => 'L’utilisateur %s n’a pas été mis à jour',
		),
	),
);
gen.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/fr/gen.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'action' => array(
		'actualize' => 'Actualiser flux',
		'add' => 'Ajouter',
		'back' => '← Retour',
		'back_to_rss_feeds' => '← Retour à vos flux RSS',
		'cancel' => 'Annuler',
		'create' => 'Créer',
		'delete_muted_feeds' => 'Supprimer les flux désactivés',
		'demote' => 'Rétrograder',
		'disable' => 'Désactiver',
		'empty' => 'Vider',
		'enable' => 'Activer',
		'export' => 'Exporter',
		'filter' => 'Filtrer',
		'import' => 'Importer',
		'load_default_shortcuts' => 'Utiliser les raccourcis par défaut',
		'manage' => 'Gérer',
		'mark_read' => 'Marquer comme lu',
		'menu' => array(
			'open' => 'Ouvrir le menu',
		),
		'nav_buttons' => array(
			'next' => 'Article suivant',
			'prev' => 'Article précédent',
			'up' => 'Aller en haut',
		),
		'open_url' => 'Ouvrir l’URL',
		'promote' => 'Promouvoir',
		'purge' => 'Purger',
		'refresh_opml' => 'Rafraîchir OPML',
		'remove' => 'Supprimer',
		'rename' => 'Renommer',
		'see_website' => 'Voir le site',
		'submit' => 'Valider',
		'truncate' => 'Supprimer tous les articles',
		'update' => 'Mettre à jour',
	),
	'auth' => array(
		'accept_tos' => 'Accepter les <a href="%s">Conditions Générales d’Utilisation</a>.',
		'email' => 'Adresse courriel',
		'keep_logged_in' => 'Rester connecté <small>(%s jours)</small>',
		'login' => 'Connexion',
		'logout' => 'Déconnexion',
		'password' => array(
			'_' => 'Mot de passe',
			'format' => '<small>7 caractères minimum</small>',
		),
		'registration' => array(
			'_' => 'Nouveau compte',
			'ask' => 'Créer un compte ?',
			'title' => 'Création de compte',
		),
		'username' => array(
			'_' => 'Nom d’utilisateur',
			'format' => '<small>16 caractères alphanumériques maximum</small>',
		),
	),
	'date' => array(
		'Apr' => '\\a\\v\\r\\i\\l',
		'Aug' => '\\a\\o\\û\\t',
		'Dec' => '\\d\\é\\c\\e\\m\\b\\r\\e',
		'Feb' => '\\f\\é\\v\\r\\i\\e\\r',
		'Jan' => '\\j\\a\\n\\v\\i\\e\\r',
		'Jul' => '\\j\\u\\i\\l\\l\\e\\t',
		'Jun' => '\\j\\u\\i\\n',
		'Mar' => '\\m\\a\\r\\s',
		'May' => '\\m\\a\\i',
		'Nov' => '\\n\\o\\v\\e\\m\\b\\r\\e',
		'Oct' => '\\o\\c\\t\\o\\b\\r\\e',
		'Sep' => '\\s\\e\\p\\t\\e\\m\\b\\r\\e',
		'apr' => 'avr.',
		'april' => 'avril',
		'aug' => 'août',
		'august' => 'août',
		'before_yesterday' => 'À partir d’avant-hier',
		'dec' => 'déc.',
		'december' => 'décembre',
		'feb' => 'fév.',
		'february' => 'février',
		'format_date' => 'j %s Y',	// IGNORE
		'format_date_hour' => 'j %s Y \\à H\\:i',	// IGNORE
		'fri' => 'ven.',
		'jan' => 'jan.',
		'january' => 'janvier',
		'jul' => 'jui.',
		'july' => 'juillet',
		'jun' => 'juin',
		'june' => 'juin',
		'last_2_year' => 'Depuis deux ans',
		'last_3_month' => 'Depuis les trois derniers mois',
		'last_3_year' => 'Depuis trois ans',
		'last_5_year' => 'Depuis cinq ans',
		'last_6_month' => 'Depuis les six derniers mois',
		'last_month' => 'Depuis le mois dernier',
		'last_week' => 'Depuis la semaine dernière',
		'last_year' => 'Depuis l’année dernière',
		'mar' => 'mars',
		'march' => 'mars',
		'may' => 'mai',
		'may_' => 'mai',
		'mon' => 'lun.',
		'month' => 'mois',
		'nov' => 'nov.',
		'november' => 'novembre',
		'oct' => 'oct.',
		'october' => 'octobre',
		'sat' => 'sam.',
		'sep' => 'sep.',
		'september' => 'septembre',
		'sun' => 'dim.',
		'thu' => 'jeu.',
		'today' => 'Aujourd’hui',
		'tue' => 'mar.',
		'wed' => 'mer.',
		'yesterday' => 'Hier',
	),
	'dir' => 'ltr',	// IGNORE
	'freshrss' => array(
		'_' => 'FreshRSS',	// IGNORE
		'about' => 'À propos de FreshRSS',
	),
	'js' => array(
		'category_empty' => 'Catégorie vide',
		'confirm_action' => 'Êtes-vous sûr(e) de vouloir continuer ? Cette action ne peut être annulée !',
		'confirm_action_feed_cat' => 'Êtes-vous sûr(e) de vouloir continuer ? Vous perdrez les favoris et les filtres associés. Cette action ne peut être annulée !',
		'feedback' => array(
			'body_new_articles' => 'Il y a %%d nouveaux articles à lire sur FreshRSS.',
			'body_unread_articles' => '(non lus : %%d)',
			'request_failed' => 'Une requête a échoué, cela peut être dû à des problèmes de connexion à Internet.',
			'title_new_articles' => 'FreshRSS : nouveaux articles !',
		),
		'labels_empty' => 'Pas d’étiquettes',	// DIRTY
		'new_article' => 'Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.',
		'should_be_activated' => 'Le JavaScript doit être activé.',
	),
	'lang' => array(
		'cs' => 'Čeština',	// IGNORE
		'de' => 'Deutsch',	// IGNORE
		'el' => 'Ελληνικά',	// IGNORE
		'en' => 'English',	// IGNORE
		'en-us' => 'English (United States)',	// IGNORE
		'es' => 'Español',	// IGNORE
		'fa' => 'فارسی',	// IGNORE
		'fr' => 'Français',	// IGNORE
		'he' => 'עברית',	// IGNORE
		'hu' => 'Magyar',	// IGNORE
		'id' => 'Bahasa Indonesia',	// IGNORE
		'it' => 'Italiano',	// IGNORE
		'ja' => '日本語',	// IGNORE
		'ko' => '한국어',	// IGNORE
		'lv' => 'Latviešu',	// IGNORE
		'nl' => 'Nederlands',	// IGNORE
		'oc' => 'Occitan',	// IGNORE
		'pl' => 'Polski',	// IGNORE
		'pt-br' => 'Português (Brasil)',	// IGNORE
		'ru' => 'Русский',	// IGNORE
		'sk' => 'Slovenčina',	// IGNORE
		'tr' => 'Türkçe',	// IGNORE
		'zh-cn' => '简体中文',	// IGNORE
		'zh-tw' => '正體中文',	// IGNORE
	),
	'menu' => array(
		'about' => 'À propos',
		'account' => 'Compte',
		'admin' => 'Administration',	// IGNORE
		'archiving' => 'Archivage',
		'authentication' => 'Authentification',
		'check_install' => 'Vérification de l’installation',
		'configuration' => 'Configuration',	// IGNORE
		'display' => 'Affichage',
		'extensions' => 'Extensions',	// IGNORE
		'logs' => 'Logs',	// IGNORE
		'queries' => 'Filtres utilisateurs',
		'reading' => 'Lecture',
		'search' => 'Rechercher des mots ou des #tags',
		'search_help' => 'Voir <a href="https://freshrss.github.io/FreshRSS/fr/users/03_Main_view.html#gr%C3%A2ce-au-champ-de-recherche" target="_blank">la documentation pour la syntaxe des recherches avancées</a>',
		'sharing' => 'Partage',
		'shortcuts' => 'Raccourcis',
		'stats' => 'Statistiques',
		'system' => 'Configuration du système',
		'update' => 'Mise à jour',
		'user_management' => 'Gestion des utilisateurs',
		'user_profile' => 'Profil',
	),
	'period' => array(
		'days' => 'jours',
		'hours' => 'heures',
		'months' => 'mois',
		'weeks' => 'semaines',
		'years' => 'années',
	),
	'share' => array(
		'Known' => 'Sites basés sur Known',
		'archiveIS' => 'archive.is',	// IGNORE
		'archiveORG' => 'archive.org',	// IGNORE
		'archivePH' => 'archive.ph',	// IGNORE
		'buffer' => 'Buffer',	// IGNORE
		'clipboard' => 'Presse-papier',
		'diaspora' => 'Diaspora*',	// IGNORE
		'email' => 'Courriel',
		'email-webmail-firefox-fix' => 'Courriel (pour Webmail avec Firefox)',
		'facebook' => 'Facebook',	// IGNORE
		'gnusocial' => 'GNU social',	// IGNORE
		'jdh' => 'Journal du hacker',	// IGNORE
		'lemmy' => 'Lemmy',	// IGNORE
		'linkding' => 'Linkding',	// IGNORE
		'linkedin' => 'LinkedIn',	// IGNORE
		'mastodon' => 'Mastodon',	// IGNORE
		'movim' => 'Movim',	// IGNORE
		'omnivore' => 'Omnivore',	// IGNORE
		'pinboard' => 'Pinboard',	// IGNORE
		'pinterest' => 'Pinterest',	// IGNORE
		'pocket' => 'Pocket',	// IGNORE
		'print' => 'Imprimer',
		'raindrop' => 'Raindrop.io',	// IGNORE
		'reddit' => 'Reddit',	// IGNORE
		'shaarli' => 'Shaarli',	// IGNORE
		'twitter' => 'Twitter',	// IGNORE
		'wallabag' => 'wallabag v1',	// IGNORE
		'wallabagv2' => 'wallabag v2',	// IGNORE
		'web-sharing-api' => 'Partage standard',
		'whatsapp' => 'Whatsapp',	// IGNORE
		'xing' => 'Xing',	// IGNORE
	),
	'short' => array(
		'attention' => 'Attention !',
		'blank_to_disable' => 'Laissez vide pour désactiver',
		'by_author' => 'Par :',
		'by_default' => 'Par défaut',
		'damn' => 'Arf !',
		'default_category' => 'Sans catégorie',
		'no' => 'Non',
		'not_applicable' => 'Non disponible',
		'ok' => 'Ok !',
		'or' => 'ou',
		'yes' => 'Oui',
	),
	'stream' => array(
		'load_more' => 'Charger plus d’articles',
		'mark_all_read' => 'Tout marquer comme lu',
		'nothing_to_load' => 'Fin des articles',
	),
);
install.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/fr/install.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'action' => array(
		'finish' => 'Terminer l’installation',
		'fix_errors_before' => 'Veuillez corriger les erreurs avant de passer à l’étape suivante.',
		'keep_install' => 'Garder l’ancienne configuration',
		'next_step' => 'Passer à l’étape suivante',
		'reinstall' => 'Réinstaller FreshRSS',
	),
	'auth' => array(
		'form' => 'Formulaire (traditionnel, requiert JavaScript)',
		'http' => 'HTTP (pour utilisateurs avancés avec HTTPS)',
		'none' => 'Aucune (dangereux)',
		'password_form' => 'Mot de passe<br /><small>(pour connexion par formulaire)</small>',
		'password_format' => '7 caractères minimum',
		'type' => 'Méthode d’authentification',
	),
	'bdd' => array(
		'_' => 'Base de données',
		'conf' => array(
			'_' => 'Configuration de la base de données',
			'ko' => 'Vérifiez les informations d’accès à la base de données.',
			'ok' => 'La configuration de la base de données a été enregistrée.',
		),
		'host' => 'Hôte',
		'password' => 'Mot de passe pour base de données',
		'prefix' => 'Préfixe des tables',
		'type' => 'Type de base de données',
		'username' => 'Nom d’utilisateur pour base de données',
	),
	'check' => array(
		'_' => 'Vérifications',
		'already_installed' => 'FreshRSS semble avoir déjà été installé !',
		'cache' => array(
			'nok' => 'Veuillez vérifier les droits de l’utilisateur <em>%2$s</em> sur le répertoire <em>%1$s</em>. Le serveur HTTP doit être capable d’écrire dedans.',
			'ok' => 'Les droits sur le répertoire de cache sont bons.',
		),
		'ctype' => array(
			'nok' => 'Impossible de trouver une librairie pour la vérification des types de caractères (php-ctype).',
			'ok' => 'Vous disposez de la librairie pour la vérification des types de caractères (ctype).',
		),
		'curl' => array(
			'nok' => 'Vous ne disposez pas de cURL (paquet php-curl).',
			'ok' => 'Vous disposez de cURL.',
		),
		'data' => array(
			'nok' => 'Veuillez vérifier les droits de l’utilisateur <em>%2$s</em> sur le répertoire <em>%1$s</em>. Le serveur HTTP doit être capable d’écrire dedans.',
			'ok' => 'Les droits sur le répertoire de data sont bons.',
		),
		'dom' => array(
			'nok' => 'Impossible de trouver une librairie pour parcourir le DOM.',
			'ok' => 'Vous disposez de la librairie pour parcourir le DOM.',
		),
		'favicons' => array(
			'nok' => 'Veuillez vérifier les droits de l’utilisateur <em>%2$s</em> sur le répertoire <em>%1$s</em>. Le serveur HTTP doit être capable d’écrire dedans.',
			'ok' => 'Les droits sur le répertoire des favicons sont bons.',
		),
		'fileinfo' => array(
			'nok' => 'Vous ne disposez pas de PHP fileinfo (paquet fileinfo).',
			'ok' => 'Vous disposez de fileinfo.',
		),
		'json' => array(
			'nok' => 'Vous ne disposez pas de l’extension recommandée JSON (paquet php-json).',
			'ok' => 'Vous disposez de l’extension recommandée JSON.',
		),
		'mbstring' => array(
			'nok' => 'Impossible de trouver la librairie recommandée mbstring pour Unicode.',
			'ok' => 'Vouz disposez de la librairie recommandée mbstring pour Unicode.',
		),
		'pcre' => array(
			'nok' => 'Impossible de trouver une librairie pour les expressions régulières (php-pcre).',
			'ok' => 'Vous disposez de la librairie pour les expressions régulières (PCRE).',
		),
		'pdo' => array(
			'nok' => 'Vous ne disposez pas de PDO ou d’un des drivers supportés (pdo_mysql, pdo_sqlite, pdo_pgsql).',
			'ok' => 'Vous disposez de PDO et d’au moins un des drivers supportés (pdo_mysql, pdo_sqlite, pdo_pgsql).',
		),
		'php' => array(
			'nok' => 'Votre version de PHP est la %s mais FreshRSS requiert au moins la version %s.',
			'ok' => 'Votre version de PHP est la %s, qui est compatible avec FreshRSS.',
		),
		'reload' => 'Revérifier',
		'tmp' => array(
			'nok' => 'Veuillez vérifier les droits de l’utilisateur <em>%2$s</em> sur le répertoire <em>%1$s</em>. Le serveur HTTP doit être capable d’écrire dedans.',
			'ok' => 'Les droits sur le répertoire temporaire sont bons.',
		),
		'unknown_process_username' => 'inconnu',
		'users' => array(
			'nok' => 'Veuillez vérifier les droits de l’utilisateur <em>%2$s</em> sur le répertoire <em>%1$s</em>. Le serveur HTTP doit être capable d’écrire dedans.',
			'ok' => 'Les droits sur le répertoire des utilisateurs sont bons.',
		),
		'xml' => array(
			'nok' => 'Impossible de trouver une librairie requise pour XML.',
			'ok' => 'Vouz disposez de la librairie requise pour XML.',
		),
	),
	'conf' => array(
		'_' => 'Configuration générale',
		'ok' => 'La configuration générale a été enregistrée.',
	),
	'congratulations' => 'Félicitations !',
	'default_user' => array(
		'_' => 'Nom de l’utilisateur par défaut',
		'max_char' => '16 caractères alphanumériques maximum',
	),
	'fix_errors_before' => 'Veuillez corriger les erreurs avant de passer à l’étape suivante.',
	'javascript_is_better' => 'FreshRSS est plus agréable à utiliser avec JavaScript activé',
	'js' => array(
		'confirm_reinstall' => 'Réinstaller FreshRSS vous fera perdre la configuration précédente. Êtes-vous sûr de vouloir continuer ?',
	),
	'language' => array(
		'_' => 'Langue',
		'choose' => 'Choisissez la langue pour FreshRSS',
		'defined' => 'La langue a bien été définie.',
	),
	'missing_applied_migrations' => 'Quelque chose s’est mal passé, vous devriez créer le fichier <em>%s</em> à la main.',
	'ok' => 'L’installation s’est bien passée.',
	'session' => array(
		'nok' => 'Le serveur Web semble mal configuré pour les cookies nécessaires aux sessions PHP!',
	),
	'step' => 'étape %d',
	'steps' => 'Étapes',
	'this_is_the_end' => 'This is the end',	// IGNORE
	'title' => 'Installation · FreshRSS',	// IGNORE
);
sub.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/fr/sub.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'api' => array(
		'documentation' => 'Copier l’URL suivante dans l’outil qui utilisera l’API.',
		'title' => 'API',	// IGNORE
	),
	'bookmarklet' => array(
		'documentation' => 'Glisser ce bouton dans la barre des favoris ou cliquer droit dessus et choisir « Enregistrer ce lien ». Ensuite, cliquer sur le bouton « S’abonner » sur les pages auxquelles vous voulez vous abonner.',
		'label' => 'S’abonner',
		'title' => 'Bookmarklet',	// IGNORE
	),
	'category' => array(
		'_' => 'Catégorie',
		'add' => 'Ajouter catégorie',
		'archiving' => 'Archivage',
		'dynamic_opml' => array(
			'_' => 'OPML dynamique',
			'help' => 'Fournir l’URL d’un <a href="http://opml.org/" target="_blank">fichier OPML</a> qui donnera dynamiquement la liste des flux de cette catégorie',
		),
		'empty' => 'Catégorie vide',
		'expand' => 'Développer la catégorie',
		'information' => 'Informations',
		'open' => 'Ouvrir la catégorie',
		'opml_url' => 'URL de l’OPML',
		'position' => 'Position d’affichage',
		'position_help' => 'Pour contrôler l’ordre de tri des catégories',
		'title' => 'Titre',
	),
	'feed' => array(
		'accept_cookies' => 'Autoriser les cookies',
		'accept_cookies_help' => 'Accepte les cookies du flux (stocké en mémoire seulement le temps de la requête)',
		'add' => 'Ajouter un flux RSS',
		'advanced' => 'Avancé',
		'archiving' => 'Archivage',
		'auth' => array(
			'configuration' => 'Identification',
			'help' => 'La connexion permet d’accéder aux flux protégés par une authentification HTTP.',
			'http' => 'Authentification HTTP',
			'password' => 'Mot de passe HTTP',
			'username' => 'Identifiant HTTP',
		),
		'clear_cache' => 'Toujours vider le cache',
		'content_action' => array(
			'_' => 'Action à effectuer pour la réception du contenu des articles',
			'append' => 'Ajouter après le contenu existant',
			'prepend' => 'Ajouter avant le contenu existant',
			'replace' => 'Remplacer le contenu existant',
		),
		'css_cookie' => 'Utiliser des cookies pour la réception du contenu des articles',
		'css_cookie_help' => 'Exemple : <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',
		'css_help' => 'Permet de récupérer les flux tronqués (attention, demande plus de temps !)',
		'css_path' => 'Sélecteur CSS des articles sur le site d’origine',
		'css_path_filter' => array(
			'_' => 'Sélecteur CSS des éléments à supprimer',
			'help' => 'Un sélecteur CSS peut être une liste comme : <kbd>.footer, .aside</kbd>',
		),
		'description' => 'Description',	// IGNORE
		'empty' => 'Ce flux est vide. Veuillez vérifier qu’il est toujours maintenu.',
		'error' => 'Ce flux a rencontré un problème. Veuillez vérifier qu’il est toujours accessible puis actualisez-le.',
		'export-as-opml' => array(
			'download' => 'Télécharger',
			'help' => 'Fichier XML (données partielles. <a href="https://freshrss.github.io/FreshRSS/en/developers/OPML.html" target="_blank">Voir documentation</a>)',
			'label' => 'Exporter en OPML',
		),
		'filteractions' => array(
			'_' => 'Filtres d’action',
			'help' => 'Écrivez une recherche par ligne. Voir la <a href="https://freshrss.github.io/FreshRSS/fr/users/03_Main_view.html#gr%C3%A2ce-au-champ-de-recherche" target="_blank">documentation des opérateurs</a>.',
		),
		'information' => 'Informations',
		'keep_min' => 'Nombre minimum d’articles à conserver',
		'kind' => array(
			'_' => 'Type de source de flux',
			'html_xpath' => array(
				'_' => 'HTML + XPath (Moissonnage du Web)',
				'feed_title' => array(
					'_' => 'titre de flux',
					'help' => 'Exemple : <code>//title</code> ou un texte statique : <code>"Mon flux personnalisé"</code>',
				),
				'help' => '<dfn><a href="https://www.w3.org/TR/xpath-10/" target="_blank">XPath 1.0</a></dfn> est un langage de requête pour les utilisateurs avancés, supporté par FreshRSS pour le moissonnage du Web (Web scraping).',
				'item' => array(
					'_' => 'trouver les <strong>articles</strong><br /><small>(c’est le plus important)</small>',
					'help' => 'Exemple : <code>//div[@class="article"]</code>',
				),
				'item_author' => array(
					'_' => 'auteur de l’article',
					'help' => 'Peut aussi être une chaîne de texte statique. Exemple : <code>"Anonyme"</code>',
				),
				'item_categories' => 'catégories (tags) de l’article',
				'item_content' => array(
					'_' => 'contenu de l’article',
					'help' => 'Exemple pour prendre l’article complet : <code>.</code>',
				),
				'item_thumbnail' => array(
					'_' => 'miniature de l’article',
					'help' => 'Exemple : <code>descendant::img/@src</code>',
				),
				'item_timeFormat' => array(
					'_' => 'Format personnalisé pour interpréter la date',
					'help' => 'Optionnel. Un format supporté par <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> comme <code>d-m-Y H:i:s</code>',
				),
				'item_timestamp' => array(
					'_' => 'date de l’article',
					'help' => 'Le résultat sera passé à la fonction <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
				),
				'item_title' => array(
					'_' => 'titre de l’article',
					'help' => 'Utiliser en particulier l’<a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">axe XPath</a> <code>descendant::</code> comme <code>descendant::h2</code>',
				),
				'item_uid' => array(
					'_' => 'identifiant unique de l’article',
					'help' => 'Optionnel. Exemple : <code>descendant::div/@data-uri</code>',
				),
				'item_uri' => array(
					'_' => 'lien (URL) de l’article',
					'help' => 'Exemple : <code>descendant::a/@href</code>',
				),
				'relative' => 'XPath (relatif à l’article) pour :',
				'xpath' => 'XPath pour :',
			),
			'json_dotnotation' => array(
				'_' => 'JSON (notation point)',
				'feed_title' => array(
					'_' => 'titre de flux',
					'help' => 'Exemple : <code>meta.title</code> ou un texte statique : <code>"Mon flux personnalisé"</code>',
				),
				'help' => 'La notation point pour JSON utilise le point comme séparateur objet, et des crochets pour un tableau : (ex : <code>data.items[0].title</code>)',
				'item' => array(
					'_' => 'trouver les <strong>articles</strong><br /><small>(c’est le plus important)</small>',
					'help' => 'Chemin vers le tableau contenant les articles, par exemple <code>newsItems</code>',
				),
				'item_author' => 'auteur de l’article',
				'item_categories' => 'catégories (tags) de l’article',
				'item_content' => array(
					'_' => 'contenu de l’article',
					'help' => 'Chemin JSON pour le contenu, par exemple <code>content</code>',
				),
				'item_thumbnail' => array(
					'_' => 'miniature de l’article',
					'help' => 'Exemple : <code>image</code>',
				),
				'item_timeFormat' => array(
					'_' => 'Format personnalisé pour interpréter la date',
					'help' => 'Optionnel. Un format supporté par <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> comme <code>d-m-Y H:i:s</code>',
				),
				'item_timestamp' => array(
					'_' => 'date de l’article',
					'help' => 'Le résultat sera passé à la fonction <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
				),
				'item_title' => 'titre de l’article',
				'item_uid' => 'identifiant unique de l’article',
				'item_uri' => array(
					'_' => 'lien (URL) de l’article',
					'help' => 'Exemple : <code>permalink</code>',
				),
				'json' => 'notation point pour :',
				'relative' => 'notation point relative à l’article pour :',
			),
			'jsonfeed' => 'JSON Feed',	// IGNORE
			'rss' => 'RSS / Atom (par défaut)',
			'xml_xpath' => 'XML + XPath',	// IGNORE
		),
		'maintenance' => array(
			'clear_cache' => 'Vider le cache',
			'clear_cache_help' => 'Supprime le cache de ce flux.',
			'reload_articles' => 'Recharger les articles',
			'reload_articles_help' => 'Recharge cette quantité d’articles et récupère le contenu complet si un sélecteur est défini.',
			'title' => 'Maintenance',	// IGNORE
		),
		'max_http_redir' => 'Maximum de redirections HTTP',
		'max_http_redir_help' => 'Mettre à 0 ou vide pour désactiver, -1 pour un nombre illimité de redirections',
		'method' => array(
			'_' => 'Méthode HTTP',
		),
		'method_help' => 'Les données POST supportent automatiquement <code>application/x-www-form-urlencoded</code> et <code>application/json</code>',
		'method_postparams' => 'Données pour POST',
		'moved_category_deleted' => 'Lors de la suppression d’une catégorie, ses flux seront automatiquement classés dans <em>%s</em>.',
		'mute' => array(
			'_' => 'désactivé',
			'state_is_muted' => 'Ce flux est désactivé',
		),
		'no_selected' => 'Aucun flux sélectionné.',
		'number_entries' => '%d articles',	// IGNORE
		'open_feed' => 'Ouvrir le flux %s',
		'priority' => array(
			'_' => 'Visibilité',
			'archived' => 'Ne pas afficher (archivé)',
			'category' => 'Afficher dans sa catégorie',
			'important' => 'Afficher dans les flux importants',
			'main_stream' => 'Afficher dans les flux principaux',
		),
		'proxy' => 'Utiliser un proxy pour télécharger ce flux',
		'proxy_help' => 'Sélectionner un protocole (ex : SOCKS5) et entrer l’adresse du proxy (ex. : <kbd>127.0.0.1:1080</kbd> ou <kbd>utilisateur:mot-de-passe@127.0.0.1:1080</kbd>)',
		'selector_preview' => array(
			'show_raw' => 'Afficher le code source',
			'show_rendered' => 'Afficher le contenu',
		),
		'show' => array(
			'all' => 'Montrer tous les flux',
			'error' => 'Montrer seulement les flux en erreur',
		),
		'showing' => array(
			'error' => 'Montre seulement les flux en erreur',
		),
		'ssl_verify' => 'Vérification sécurité SSL',
		'stats' => 'Statistiques',
		'think_to_add' => 'Vous pouvez ajouter des flux.',
		'timeout' => 'Délai d’attente en secondes',
		'title' => 'Titre',
		'title_add' => 'Ajouter un flux RSS',
		'ttl' => 'Ne pas automatiquement rafraîchir plus souvent que',
		'url' => 'URL du flux',
		'useragent' => 'Sélectionner l’agent utilisateur pour télécharger ce flux',
		'useragent_help' => 'Exemple : <kbd>Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0)</kbd>',
		'validator' => 'Vérifier la validité du flux',
		'website' => 'URL du site',
		'websub' => 'Notifications instantanée par WebSub',
	),
	'import_export' => array(
		'export' => 'Exporter',
		'export_labelled' => 'Exporter les articles étiquetés',
		'export_opml' => 'Exporter la liste des flux (OPML)',
		'export_starred' => 'Exporter les favoris',
		'feed_list' => 'Liste des articles de %s',
		'file_to_import' => 'Fichier à importer<br />(OPML, JSON ou ZIP)',
		'file_to_import_no_zip' => 'Fichier à importer<br />(OPML ou JSON)',
		'import' => 'Importer',
		'starred_list' => 'Liste des articles favoris',
		'title' => 'Importer / exporter',
	),
	'menu' => array(
		'add' => 'Ajouter un flux/une catégorie',
		'import_export' => 'Importer / exporter',
		'label_management' => 'Gestion des étiquettes',
		'stats' => array(
			'idle' => 'Flux inactifs',
			'main' => 'Statistiques principales',
			'repartition' => 'Répartition des articles',
		),
		'subscription_management' => 'Gestion des abonnements',
		'subscription_tools' => 'Outils d’abonnement',
	),
	'tag' => array(
		'auto_label' => 'Ajoute l’étiquette aux nouveaux articles',
		'name' => 'Nom',
		'new_name' => 'Nouveau nom',
		'old_name' => 'Ancien nom',
	),
	'title' => array(
		'_' => 'Gestion des abonnements',
		'add' => 'Ajouter un flux/une catégorie',
		'add_category' => 'Ajouter une catégorie',
		'add_dynamic_opml' => 'Ajouter un OPML dynamique',
		'add_feed' => 'Ajouter un flux',
		'add_label' => 'Ajouter une étiquette',
		'delete_label' => 'Supprimer une étiquette',
		'feed_management' => 'Gestion des flux RSS',
		'rename_label' => 'Renommer une étiquette',
		'subscription_tools' => 'Outils d’abonnement',
	),
);
user.php
wget 'https://lists2.roe3.org/FreshRSS/app/i18n/fr/user.php'
View Content
<?php

/******************************************************************************/
/* Each entry of that file can be associated with a comment to indicate its   */
/* state. When there is no comment, it means the entry is fully translated.   */
/* The recognized comments are (comment matching is case-insensitive):        */
/*   + TODO: the entry has never been translated.                             */
/*   + DIRTY: the entry has been translated but needs to be updated.          */
/*   + IGNORE: the entry does not need to be translated.                      */
/* When a comment is not recognized, it is discarded.                         */
/******************************************************************************/

return array(
	'email' => array(
		'feedback' => array(
			'invalid' => 'L’adresse électronique est invalide.',
			'required' => 'L’adresse électronique est requise.',
		),
		'validation' => array(
			'change_email' => 'Vous pouvez changer votre adresse électronique <a href="%s">dans votre profil</a>.',
			'email_sent_to' => 'Nous venons d’envoyer un email à <strong>%s</strong>, veuillez suivre ses indications pour valider votre adresse.',
			'feedback' => array(
				'email_failed' => 'Nous n’avons pas pu vous envoyer d’email à cause d’une mauvaise configuration du serveur.',
				'email_sent' => 'Un email a été envoyé à votre adresse.',
				'error' => 'L’adresse électronique n’a pas pu être validée.',
				'ok' => 'L’adresse électronique a été validée.',
				'unnecessary' => 'L’adresse électronique a déjà été validée.',
				'wrong_token' => 'L’adresse électronique n’a pas pu être validée à cause d’un mauvais token.',
			),
			'need_to' => 'Vous devez valider votre adresse électronique avant de pouvoir utiliser %s.',
			'resend_email' => 'Renvoyer l’email',
			'title' => 'Validation de l’adresse électronique',
		),
	),
	'mailer' => array(
		'email_need_validation' => array(
			'body' => 'Vous venez de vous inscrire sur %s mais vous devez encore valider votre adresse électronique. Pour cela, veuillez cliquer sur ce lien :',
			'title' => 'Vous devez valider votre compte',
			'welcome' => 'Bienvenue %s,',
		),
	),
	'password' => array(
		'invalid' => 'Le mot de passe est invalide.',
	),
	'tos' => array(
		'feedback' => array(
			'invalid' => 'Vous devez accepter les conditions générales d’utilisation pour pouvoir vous inscrire.',
		),
	),
	'username' => array(
		'invalid' => 'Le nom d’utilisateur est invalide.',
		'taken' => 'Le nom d’utilisateur %s est pris.',
	),
);