diff options
| author | 2022-01-08 21:58:55 +0100 | |
|---|---|---|
| committer | 2022-01-08 21:58:55 +0100 | |
| commit | 1acd3ab09be1b65bfd6122ee351490c3b5527bb8 (patch) | |
| tree | f11de558e7a09522a45d1c155d9707ecda6bf1eb /docs/fr | |
| parent | 916df412f5b6f7fb9bcfb705a3c8c23e35304410 (diff) | |
Use typographic quotes (#4133)
* Use typographic quotes
* A few fixes
* Fix
* Fix not saved
* Implement feedback
* Detail
* Revert spoken English fixes
Left for a future dedicated discussion
* More reverts
* Final reverts
* Final minor
Diffstat (limited to 'docs/fr')
| -rw-r--r-- | docs/fr/contributing.md | 32 | ||||
| -rw-r--r-- | docs/fr/developers/01_First_steps.md | 66 | ||||
| -rw-r--r-- | docs/fr/developers/02_Github.md | 46 | ||||
| -rw-r--r-- | docs/fr/developers/03_Backend/04_Changing_source_code.md | 2 | ||||
| -rw-r--r-- | docs/fr/developers/03_Backend/05_Extensions.md | 174 | ||||
| -rw-r--r-- | docs/fr/developers/03_Running_tests.md | 6 | ||||
| -rw-r--r-- | docs/fr/developers/05_Release_new_version.md | 46 | ||||
| -rw-r--r-- | docs/fr/users/01_Installation.md | 2 | ||||
| -rw-r--r-- | docs/fr/users/02_First_steps.md | 22 | ||||
| -rw-r--r-- | docs/fr/users/05_Configuration.md | 80 | ||||
| -rw-r--r-- | docs/fr/users/06_Fever_API.md | 32 | ||||
| -rw-r--r-- | docs/fr/users/06_Mobile_access.md | 4 | ||||
| -rw-r--r-- | docs/fr/users/07_Frequently_Asked_Questions.md | 62 |
13 files changed, 287 insertions, 287 deletions
diff --git a/docs/fr/contributing.md b/docs/fr/contributing.md index 966393849..c1742d62b 100644 --- a/docs/fr/contributing.md +++ b/docs/fr/contributing.md @@ -1,12 +1,12 @@ ## Rejoignez-nous sur les listes de mailing -S'il vous manque des informations, n'hésitez pas à fouiller un peu la +S’il vous manque des informations, n’hésitez pas à fouiller un peu la documentation ou venir nous poser directement vos questions sur [la mailing list des développeurs](https://freshrss.org/mailman/listinfo/dev). -* Le premier mailing est destiné à l'information générique, il doit être adapté aux utilisateurs. +* Le premier mailing est destiné à l’information générique, il doit être adapté aux utilisateurs. [Rejoignez mailing@freshrss.org](https://freshrss.org/mailman/listinfo/mailing). -* Le deuxième mailing s'adresse principalement aux développeurs. +* Le deuxième mailing s’adresse principalement aux développeurs. [Rejoignez dev@freshrss.org](https://freshrss.org/mailman/listinfo/dev) ## Signaler un bug @@ -15,23 +15,23 @@ Avez-vous trouvé un bogue ? Ne paniquez pas, voici quelques étapes pour le signaler facilement : 1. Cherche sur [le bug tracker](https://github.com/FreshRSS/FreshRSS/issues) - (n'oubliez pas d'utiliser la barre de recherche). -2. Si vous constatez un bogue similaire, n'hésitez pas à poster un - commentaire pour ajouter de l'importance au ticket correspondant. -3. Si vous ne l'avez pas trouvé, + (n’oubliez pas d’utiliser la barre de recherche). +2. Si vous constatez un bogue similaire, n’hésitez pas à poster un + commentaire pour ajouter de l’importance au ticket correspondant. +3. Si vous ne l’avez pas trouvé, [ouvrez un nouveau ticket](https://github.com/FreshRSS/FreshRSS/issues/new). Si vous devez créer un nouveau ticket, essayez de garder les conseils suivants : * Donnez un titre explicite au ticket pour le retrouver plus facilement plus tard. -* Soyez aussi exhaustif que possible dans la description : qu'avez-vous fait ? +* Soyez aussi exhaustif que possible dans la description : qu’avez-vous fait ? Quel est le bogue ? Quelles sont les étapes pour reproduire le bogue ? Nous avons aussi besoin de quelques informations : * Votre version de FreshRSS (sur la page A propos) ou le fichier `constants.php`) -* Votre configuration de serveur : type d'hébergement, version PHP +* Votre configuration de serveur : type d’hébergement, version PHP * Quelle base de données : SQLite, MySQL, MariaDB, PostgreSQL ? Quelle version ? * Si possible, les logs associés (logs PHP et logs FreshRSS sous `data/users/your_user/log.txt`) @@ -43,7 +43,7 @@ les collaborateurs, vous devrez suivre ces indications : 1. Assurez-vous que le bogue est associé à un ticket et indiquez que vous allez travailler sur le bogue. 2. [Fork du répertoire de projet](https://help.github.com/articles/fork-a-repo/). 3. [Créez une nouvelle branche](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/). - Le nom de la branche doit être clair, et idéalement préfixé par l'identifiant du ticket correspondant. + Le nom de la branche doit être clair, et idéalement préfixé par l’identifiant du ticket correspondant. Par exemple, `783-contributing-file` pour réparer [ticket #783](https://github.com/FreshRSS/FreshRSS/issues/783). 4. Ajoutez vos modifications à votre fork et @@ -52,7 +52,7 @@ les collaborateurs, vous devrez suivre ces indications : Si vous devez écrire du code, veuillez suivre [nos recommandations de style de codage](developers/01_First_steps.md). -**Conseil :** si vous cherchez des bugs faciles à corriger, jetez un coup d'oeil à la vignette "[good first issue](https://github.com/FreshRSS/FreshRSS/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)". +**Conseil :** si vous cherchez des bugs faciles à corriger, jetez un coup d’oeil à la vignette « [good first issue](https://github.com/FreshRSS/FreshRSS/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) ». ## Soumettre une idée @@ -61,17 +61,17 @@ ticket](https://github.com/FreshRSS/FreshRSS/issues/new) sur notre tracker bogue pour nous demander si nous pouvons le mettre en œuvre. Les plus grandes idées viennent souvent des suggestions les plus timides ! -Si votre idée est bonne, nous y jetterons un coup d'oeil. +Si votre idée est bonne, nous y jetterons un coup d’oeil. -## Contribuer à l'internationalisation (i18n) +## Contribuer à l’internationalisation (i18n) -Si vous voulez améliorer l'internationalisation, ouvrez d'abord un nouveau +Si vous voulez améliorer l’internationalisation, ouvrez d’abord un nouveau ticket et suivez les conseils de la section *Fixer un bogue*. Les traductions sont disponibles dans les sous-répertoires de `./app/i18n/`. -Nous travaillons sur une meilleure façon de gérer l'internationalisation -mais n'hésitez pas à nous suggérer des idées ! +Nous travaillons sur une meilleure façon de gérer l’internationalisation +mais n’hésitez pas à nous suggérer des idées ! ## Contribuer à la documentation diff --git a/docs/fr/developers/01_First_steps.md b/docs/fr/developers/01_First_steps.md index 59b475ffa..6c02b5058 100644 --- a/docs/fr/developers/01_First_steps.md +++ b/docs/fr/developers/01_First_steps.md @@ -3,38 +3,38 @@ ## Configurer son environnement (Docker) FreshRSS est construit en PHP et utilise le framework Minz. Les -dépendancessont directement incluses dans le code source, donc vous n'avez -pas besoin d'utiliser Composer. +dépendancessont directement incluses dans le code source, donc vous n’avez +pas besoin d’utiliser Composer. Il existe plusieurs façons de configurer votre environnement dedéveloppement. La méthode la plus simple et la plus supportée est basée -surDocker. C'est la solution qui est documentée ci-dessous. Si vous avez -déjà unenvironnement PHP fonctionnel, vous n'en avez probablement pas +surDocker. C’est la solution qui est documentée ci-dessous. Si vous avez +déjà unenvironnement PHP fonctionnel, vous n’en avez probablement pas besoin. Nous supposons ici que vous utilisez une distribution GNU/Linux, capable -d'exécuter Docker. Sinon, vous devrez adapter les commandes en conséquence. +d’exécuter Docker. Sinon, vous devrez adapter les commandes en conséquence. Les commandes qui suivent doivent être exécutées dans une console. Ils commencent par `$` quand les commandes doivent être exécutées en tant -qu'utilisateur normal, et par `#` quand elles doivent être exécutées en tant -qu'utilisateur root. Vous n'avez pas besoin de taper ces caractères. Un -chemin d'accès peut être indiqué devant ces caractères pour vous aider à +qu’utilisateur normal, et par `#` quand elles doivent être exécutées en tant +qu’utilisateur root. Vous n’avez pas besoin de taper ces caractères. Un +chemin d’accès peut être indiqué devant ces caractères pour vous aider à identifier où ils doivent être exécutés. Par exemple, `app$ echo 'Hello World'` indique que vous devez exécuter la commande `echo` dans le répertoire `app/`. -Tout d'abord, vous devez installer +Tout d’abord, vous devez installer [Docker](https://docs.docker.com/install/linux/docker-ce/ubuntu/). -Une fois que c'est fait, clonez le dépôt de code de la manière suivante : +Une fois que c’est fait, clonez le dépôt de code de la manière suivante : ```sh git clone https://github.com/FreshRSS/FreshRSS.git cd FreshRSS ``` -Notez que, pour contribuer, vous devrez d'abord « forker » ce dépôt de code +Notez que, pour contribuer, vous devrez d’abord « forker » ce dépôt de code (ou dépôt de code référent) et cloner votre « fork » à la place de ce dépôt. Adaptez les commandes en conséquence. @@ -44,12 +44,12 @@ Ensuite, la seule commande que vous devez connaître est la suivante : make start ``` -Cela peut prendre un certain temps pour que Docker télécharge l'image +Cela peut prendre un certain temps pour que Docker télécharge l’image utilisée. Dans le cas où la commande échoue pour un problème de droit, il faudra soit ajouter votre utilisateur au groupe `docker`, soit relancer la commande en la préfixant par `sudo`. -**Vous pouvez maintenant accéder à FreshRSS à [http://localhost:8080](http://localhost:8080).** Suivez simplement le processus d'installation et sélectionnez la base de données SQLite. +**Vous pouvez maintenant accéder à FreshRSS à [http://localhost:8080](http://localhost:8080).** Suivez simplement le processus d’installation et sélectionnez la base de données SQLite. Vous pouvez arrêter les conteneurs en tapant <kbd>Control</kbd> + <kbd>c</kbd> ou avec la commande suivante, dans un autre terminal: @@ -60,9 +60,9 @@ make stop Si la configuration vous intéresse, les commandes `make' sont définies dans le fichier [`Makefile`](/Makefile). -Si vous avez besoin d'utiliser une image Docker identifiée par un tag +Si vous avez besoin d’utiliser une image Docker identifiée par un tag différent (par défaut `alpine`), vous pouvez surcharger de la manière -suivante la variable d'environnement `TAG` au moment de l'exécution de la +suivante la variable d’environnement `TAG` au moment de l’exécution de la commande : ```sh @@ -72,7 +72,7 @@ TAG=arm make start Vous pouvez trouver la liste complète des tags disponibles [sur le hub Docker](https://hub.docker.com/r/freshrss/freshrss/tags). -Si vous voulez construire l'image Docker, vous pouvez lancer la commande +Si vous voulez construire l’image Docker, vous pouvez lancer la commande suivante : ```sh @@ -81,7 +81,7 @@ make build TAG=arm make build ``` -La valeur de la variable `TAG` peut contenir n'importe quelle valeur (par +La valeur de la variable `TAG` peut contenir n’importe quelle valeur (par exemple `local`). Vous pouvez cibler une architecture spécifique en ajoutant `-alpine` ou `-arm` à la fin du tag (par exemple `local-arm`). @@ -92,13 +92,13 @@ exemple `local`). Vous pouvez cibler une architecture spécifique en ajoutant ## Extensions Si vous souhaitez créer votre propre extension FreshRSS, consultez la -[documentation de l'extension](03_Backend/05_Extensions.md). +[documentation de l’extension](03_Backend/05_Extensions.md). ## Style de codage Si vous désirez contribuer au code, il est important de respecter le style de codage suivant. Le code actuel ne le respecte pas entièrement mais il est -de notre devoir à tous de le changer dès que l'occasion se présente. +de notre devoir à tous de le changer dès que l’occasion se présente. Aucune nouvelle contribution ne respectant pas ces règles ne sera acceptée tant que les corrections nécessaires ne sont pas appliquées. @@ -107,11 +107,11 @@ tant que les corrections nécessaires ne sont pas appliquées. #### Indentation -L'indentation du code doit être faite impérativement avec des tabulations. +L’indentation du code doit être faite impérativement avec des tabulations. #### Alignement -Une fois l'indentation faite, il peut être nécessaire de faire un alignement +Une fois l’indentation faite, il peut être nécessaire de faire un alignement pour simplifier la lecture. Dans ce cas, il faut utiliser les espaces. ```php @@ -129,9 +129,9 @@ Il est possible de vérifier la présence de caractères blancs en fin de ligne grâce à Git avec la commande suivante : ```sh -# commande à lancer avant l'ajout des fichiers dans l'index +# commande à lancer avant l’ajout des fichiers dans l’index git diff --check -# commande à lancer après l'ajout des fichiers dans l'index mais avant le commit +# commande à lancer après l’ajout des fichiers dans l’index mais avant le commit git diff --check --cached ``` @@ -141,11 +141,11 @@ Chaque fichier doit se terminer par une ligne vide. #### Le cas de la virgule, du point et du point-virgule -Il n'y a pas d'espace avant ces caractères, il y en a un après. +Il n’y a pas d’espace avant ces caractères, il y en a un après. #### Le cas des opérateurs -Chaque opérateur est entouré d'espaces. +Chaque opérateur est entouré d’espaces. ```php if ($a == 10) { @@ -157,9 +157,9 @@ echo $a ? 1 : 0; #### Le cas des parenthèses -Il n'y a pas d'espaces entre des parenthèses. Il n'y a pas d'espaces avant -une parenthèse ouvrante sauf si elle est précédée d'un mot-clé. Il n'y a pas -d'espaces après une parenthèse fermante sauf si elle est suivie d'une +Il n’y a pas d’espaces entre des parenthèses. Il n’y a pas d’espaces avant +une parenthèse ouvrante sauf si elle est précédée d’un mot-clé. Il n’y a pas +d’espaces après une parenthèse fermante sauf si elle est suivie d’une accolade ouvrante. ```php @@ -177,7 +177,7 @@ if ((int)$a == 10) { Ce cas se présente le plus souvent en Javascript. Quand on a des fonctions chainées, des fonctions anonymes ainsi que des fonctions de rappels, il est très facile de se perdre. Dans ce cas là, on ajoute une indentation -supplémentaire pour toute l'instruction et on revient au même niveau pour +supplémentaire pour toute l’instruction et on revient au même niveau pour une instruction de même niveau. ```javascript @@ -198,7 +198,7 @@ shortcut.add("shift+" + shortcuts.mark_read, function () { ### Longueur des lignes Les lignes ne doivent pas dépasser 80 caractères. Il est cependant autorisé -exceptionnellement de dépasser cette limite s'il n'est pas possible de la +exceptionnellement de dépasser cette limite s’il n’est pas possible de la respecter mais en aucun cas, les lignes ne doivent dépasser les 100 caractères. @@ -214,7 +214,7 @@ function ma_fonction($param_1, $param_2, ### Nommage -L'ensemble des éléments du code (fonctions, classes, méthodes et variables) +L’ensemble des éléments du code (fonctions, classes, méthodes et variables) doivent être nommés de manière à décrire leur usage de façon concise. #### Fonctions et variables @@ -278,8 +278,8 @@ fermante. #### Tableaux -Lors de l'écriture de tableaux sur plusieurs lignes, tous les éléments -doivent être suivis d'une virgule (même le dernier). +Lors de l’écriture de tableaux sur plusieurs lignes, tous les éléments +doivent être suivis d’une virgule (même le dernier). ```php $variable = [ diff --git a/docs/fr/developers/02_Github.md b/docs/fr/developers/02_Github.md index 569f1760f..0f1aaeb0d 100644 --- a/docs/fr/developers/02_Github.md +++ b/docs/fr/developers/02_Github.md @@ -3,12 +3,12 @@ Malgré le soin apporté à FreshRSS, il se peut que des bugs apparaissent encore. Le projet est jeune et le développement dynamique, aussi celui-ci pourra être corrigé rapidement. Il se peut aussi que vous ayez en tête une -fonctionnalité qui n'existe pas encore. Que celle-ci vous paraisse idiote, +fonctionnalité qui n’existe pas encore. Que celle-ci vous paraisse idiote, farfelue, inutile ou trop spécifique, il ne faut surtout pas hésiter à nous -la proposer ! Très souvent des "idées en l'air" ont trouvé une oreille +la proposer ! Très souvent des « idées en l’air » ont trouvé une oreille attentive. Ce sont les regards externes qui font le plus évoluer le projet. -Si vous êtes convaincus qu'il faut vous faire entendre, voici la marche à +Si vous êtes convaincus qu’il faut vous faire entendre, voici la marche à suivre. ## Sur GitHub @@ -16,25 +16,25 @@ suivre. GitHub est la plate-forme à privilégier pour vos demandes. En effet, cela nous permet de pouvoir discuter à plusieurs sur un problème ou une suggestion et de faire émerger, souvent, des idées nouvelles. Ne négligeons -pas cet aspect "social" ! +pas cet aspect « social » ! 1. [Rendez-vous sur le gestionnaire de tickets de bugs](https://github.com/FreshRSS/FreshRSS/issues) -2. Commencez par rechercher si une demande similaire n'a pas déjà été - faite. Si oui, n'hésitez pas à ajouter votre voix à la demande. +2. Commencez par rechercher si une demande similaire n’a pas déjà été + faite. Si oui, n’hésitez pas à ajouter votre voix à la demande. 3. Si votre demande est nouvelle, [ouvrez un nouveau ticket de bug](https://github.com/FreshRSS/FreshRSS/issues/new) -4. Rédigez enfin votre demande. Si vous maitrisez l'anglais, c'est la - langue à privilégier car cela permet d'ouvrir la discussion à un plus - grand nombre de personnes. Sinon, ce n'est pas grave, continuez en +4. Rédigez enfin votre demande. Si vous maitrisez l’anglais, c’est la + langue à privilégier car cela permet d’ouvrir la discussion à un plus + grand nombre de personnes. Sinon, ce n’est pas grave, continuez en français :) 5. Merci de bien vouloir suivre les quelques conseils donnés plus bas pour faciliter la prise en compte de votre ticket. ## De façon informelle -Tout le monde n'aime pas ou n'utilise pas GitHub pour des raisons aussi -diverses que légitimes. C'est pourquoi vous pouvez aussi nous contacter de +Tout le monde n’aime pas ou n’utilise pas GitHub pour des raisons aussi +diverses que légitimes. C’est pourquoi vous pouvez aussi nous contacter de façon plus informelle. * Sur [notre chat @@ -42,7 +42,7 @@ façon plus informelle. * Sur [les listes de diffusion](https://freshrss.org/announce-of-the-mailing-lists.html) * À des évènements / rencontres autour du Logiciel Libre -* Autour d'une bière dans un bar +* Autour d’une bière dans un bar * Etc. ## Conseils @@ -51,19 +51,19 @@ Voici quelques conseils pour bien présenter votre remontée de bug ou votre suggestion : -* **Faites attention à l'orthographe.** même si ce n'est pas toujours +* **Faites attention à l’orthographe.** même si ce n’est pas toujours facile, faites votre maximum. ;) -* **Donnez un titre explicite à votre demande**, quitte à ce qu'il soit un +* **Donnez un titre explicite à votre demande**, quitte à ce qu’il soit un peu long. Cela nous aide non seulement à comprendre votre demande, mais aussi à retrouver votre ticket plus tard. -* **Une demande = un ticket.** Vous pouvez avoir des tas d'idées mais vous +* **Une demande = un ticket.** Vous pouvez avoir des tas d’idées mais vous avez peur de spammer le gestionnaire de bugs : ça ne fait rien. Il vaut mieux avoir un peu trop de tickets que trop de demandes dans un seul. On - s'occupera de fermer et regrouper les demandes qui le peuvent. + s’occupera de fermer et regrouper les demandes qui le peuvent. * Si vous remontez un bug, pensez à nous **fournir les logs de FreshRSS** - (accessibles dans les dossier ''data/log/'' de FreshRSS) **et PHP** - (l'emplacement peut varier selon les distributions, mais pensez à chercher - dans ''/var/log/httpd'' ou ''/var/log/apache''). + (accessibles dans les dossier `data/log/` de FreshRSS) **et PHP** + (l’emplacement peut varier selon les distributions, mais pensez à chercher + dans `/var/log/httpd` ou `/var/log/apache`). * Si vous ne trouvez pas les fichiers de logs, précisez-le dans votre ticket afin que nous sachions que vous avez déjà cherché. * Tous les bugs ne nécessitent pas les logs, mais si vous doutez, mieux vaut @@ -86,12 +86,12 @@ le bug. ### Quels résultats ai-je obtenus ? -Le bug : ce que vous voyez qui n'aurez pas dû se passer. Ici vous pouvez +Le bug : ce que vous voyez qui n’aurez pas dû se passer. Ici vous pouvez fournir les logs. ### Quel était le résultat attendu ? -Afin que nous comprenions bien où est le problème... au moins selon vous :p +Afin que nous comprenions bien où est le problème… au moins selon vous :p ### Quelle est ma situation ? @@ -151,7 +151,7 @@ git checkout -b mon-branch-developpement git add app/actualize_script.php # Commitez le changement et écrivez un message de commit approprié. git commit -# Vérifiez deux fois que tout a l'air d'aller bien +# Vérifiez deux fois que tout a l’air d’aller bien git show # Poussez les changements sur ton fork git push @@ -169,5 +169,5 @@ première ligne. Par exemple : Si nécessaire, une ligne blanche et une explication plus longue peuvent le suivre. -Pour d'autres conseils, voir +Pour d’autres conseils, voir [ici](https://chris.beams.io/posts/git-commit/). diff --git a/docs/fr/developers/03_Backend/04_Changing_source_code.md b/docs/fr/developers/03_Backend/04_Changing_source_code.md index 734d40569..3bcbada97 100644 --- a/docs/fr/developers/03_Backend/04_Changing_source_code.md +++ b/docs/fr/developers/03_Backend/04_Changing_source_code.md @@ -8,7 +8,7 @@ > **À FAIRE** -## Gestion de l'authentification +## Gestion de l’authentification > **À FAIRE** diff --git a/docs/fr/developers/03_Backend/05_Extensions.md b/docs/fr/developers/03_Backend/05_Extensions.md index 98c2b9f7e..a8cfd40cd 100644 --- a/docs/fr/developers/03_Backend/05_Extensions.md +++ b/docs/fr/developers/03_Backend/05_Extensions.md @@ -1,9 +1,9 @@ -# Écriture d'extensions pour FreshRSS +# Écriture d’extensions pour FreshRSS ## Présentation de FreshRSS FreshRSS est un agrégateur de flux RSS / Atom écrit en PHP depuis octobre -2012. Le site officiel est situé à l'adresse +2012. Le site officiel est situé à l’adresse [freshrss.org](https://freshrss.org) et son dépot Git est hébergé par Github : [github.com/FreshRSS/FreshRSS](https://github.com/FreshRSS/FreshRSS). @@ -13,25 +13,25 @@ FreshRSS est limité dans ses possibilités techniques par différents facteurs : * La disponibilité des développeurs principaux ; -* La volonté d'intégrer certains changements ; +* La volonté d’intégrer certains changements ; * Le niveau de « hack » nécessaire pour intégrer des fonctionnalités à la marge. Si la première limitation peut, en théorie, être levée par la participation de nouveaux contributeurs au projet, elle est en réalité conditionnée par la -volonté des contributeurs à s'intéresser au code source du projet en +volonté des contributeurs à s’intéresser au code source du projet en entier. Afin de lever les deux autres limitations quant à elles, il faudra la plupart du temps passer par un « à-coté » souvent synonyme de « fork ». -Une autre solution consiste à passer par un système d'extensions. En -permettant à des utilisateurs d'écrire leur propre extension sans avoir à -s'intéresser au cœur même du logiciel de base, on permet : +Une autre solution consiste à passer par un système d’extensions. En +permettant à des utilisateurs d’écrire leur propre extension sans avoir à +s’intéresser au cœur même du logiciel de base, on permet : 1. De réduire la quantité de code source à assimiler pour un nouveau contributeur ; -2. De permettre d'intégrer des nouveautés de façon non-officielles ; -3. De se passer des développeurs principaux pour d'éventuelles améliorations +2. De permettre d’intégrer des nouveautés de façon non-officielles ; +3. De se passer des développeurs principaux pour d’éventuelles améliorations sans passer par la case « fork ». -Note : il est tout à fait imaginable que les fonctionnalités d'une extension +Note : il est tout à fait imaginable que les fonctionnalités d’une extension puissent par la suite être intégrées dans le code initial de FreshRSS de façon officielle. Cela permet de proposer un « proof of concept » assez facilement. @@ -42,45 +42,45 @@ facilement. Cette fiche technique devrait renvoyer vers la documentation officielle de FreshRSS et de Minz (le framework PHP sur lequel repose -FreshRSS). Malheureusement cette documentation n'existe pas encore. Voici -donc en quelques mots les principaux éléments à connaître. Il n'est pas -nécessaire de lire l'ensemble des chapitres de cette section si vous n'avez -pas à utiliser une fonctionnalité dans votre extension (si vous n'avez pas -besoin de traduire votre extension, pas besoin d'en savoir plus sur le +FreshRSS). Malheureusement cette documentation n’existe pas encore. Voici +donc en quelques mots les principaux éléments à connaître. Il n’est pas +nécessaire de lire l’ensemble des chapitres de cette section si vous n’avez +pas à utiliser une fonctionnalité dans votre extension (si vous n’avez pas +besoin de traduire votre extension, pas besoin d’en savoir plus sur le module `Minz_Translate` par exemple). ### Architecture MVC -Minz repose et impose une architecture MVC pour les projets l'utilisant. On +Minz repose et impose une architecture MVC pour les projets l’utilisant. On distingue dans cette architecture trois composants principaux : -* Le Modèle : c'est l'objet de base que l'on va manipuler. Dans FreshRSS, +* Le Modèle : c’est l’objet de base que l’on va manipuler. Dans FreshRSS, les catégories, les flux et les articles sont des modèles. La partie du code qui permet de les manipuler en base de données fait aussi partie du modèle mais est séparée du modèle de base : on parle de DAO (pour « Data Access Object »). Les modèles sont stockés dans un répertoire `Models`. -* La Vue : c'est ce qui représente ce que verra l'utilisateur. La vue est - donc simplement du code HTML que l'on mixe avec du PHP pour afficher les +* La Vue : c’est ce qui représente ce que verra l’utilisateur. La vue est + donc simplement du code HTML que l’on mixe avec du PHP pour afficher les informations dynamiques. Les vues sont stockées dans un répertoire `views`. -* Le Contrôleur : c'est ce qui permet de lier modèles et vues entre +* Le Contrôleur : c’est ce qui permet de lier modèles et vues entre eux. Typiquement, un contrôleur va charger des modèles à partir de la base - de données (une liste d'articles par exemple) pour les « passer » à une - vue afin qu'elle les affiche. Les contrôleurs sont stockés dans un + de données (une liste d’articles par exemple) pour les « passer » à une + vue afin qu’elle les affiche. Les contrôleurs sont stockés dans un répertoire `Controllers`. ### Routage Afin de lier une URL à un contrôleur, on doit passer par une phase dite de « routage ». Dans FreshRSS, cela est particulièrement simple car il suffit -d'indiquer le nom du contrôleur à charger dans l'URL à l'aide d'un paramètre `c`. -Par exemple, l'adresse <http://exemple.com?c=hello> va exécuter le code +d’indiquer le nom du contrôleur à charger dans l’URL à l’aide d’un paramètre `c`. +Par exemple, l’adresse <http://exemple.com?c=hello> va exécuter le code contenu dans le contrôleur `hello`. -Une notion qui n'a pas encore été évoquée est le système d'« actions ». Une +Une notion qui n’a pas encore été évoquée est le système d'« actions ». Une action est exécutée *sur* un contrôleur. Concrètement, un contrôleur va être représenté par une classe et ses actions par des méthodes. Pour exécuter une -action, il est nécessaire d'indiquer un paramètre `a` dans l'URL. +action, il est nécessaire d’indiquer un paramètre `a` dans l’URL. Exemple de code : @@ -100,12 +100,12 @@ class FreshRSS_hello_Controller extends FreshRSS_ActionController { ?> ``` -Si l'on charge l'adresse <http://exemple.com?c=hello&a=world>, l'action +Si l’on charge l’adresse <http://exemple.com?c=hello&a=world>, l’action `world` va donc être exécutée sur le contrôleur `hello`. -Note : si `c` ou `a` n'est pas précisée, la valeur par défaut de chacune de -ces variables est `index`. Ainsi l'adresse <http://exemple.com?c=hello> va -exécuter l'action `index` du contrôleur `hello`. +Note : si `c` ou `a` n’est pas précisée, la valeur par défaut de chacune de +ces variables est `index`. Ainsi l’adresse <http://exemple.com?c=hello> va +exécuter l’action `index` du contrôleur `hello`. Plus loin, sera utilisée la convention `hello/world` pour évoquer un couple contrôleur/action. @@ -131,7 +131,7 @@ La variable `$this->a_variable` a été passée précédemment par le contrôleu Il est souvent nécessaire de profiter des paramètres passés par GET ou par POST. Dans Minz, ces paramètres sont accessibles de façon indistincts à -l'aide de la classe `Minz_Request`. Exemple de code : +l’aide de la classe `Minz_Request`. Exemple de code : ```php <?php @@ -140,7 +140,7 @@ $default_value = 'foo'; $param = Minz_Request::param('bar', $default_value); // Affichera la valeur du paramètre `bar` (passé via GET ou POST) -// ou "foo" si le paramètre n'existe pas. +// ou "foo" si le paramètre n’existe pas. echo $param; // Force la valeur du paramètre `bar` @@ -153,25 +153,25 @@ echo Minz_Request::param('bar'); ?> ``` -La méthode `Minz_Request::isPost()` peut être utile pour n'exécuter un -morceau de code que s'il s'agit d'une requête POST. +La méthode `Minz_Request::isPost()` peut être utile pour n’exécuter un +morceau de code que s’il s’agit d’une requête POST. -Note : il est préférable de n'utiliser `Minz_Request` que dans les +Note : il est préférable de n’utiliser `Minz_Request` que dans les contrôleurs. Il est probable que vous rencontriez cette méthode dans les -vues de FreshRSS, voire dans les modèles, mais sachez qu'il ne s'agit -**pas** d'une bonne pratique. +vues de FreshRSS, voire dans les modèles, mais sachez qu’il ne s’agit +**pas** d’une bonne pratique. ### Accéder aux paramètres de session -L'accès aux paramètres de session est étrangement similaire aux paramètres -GET / POST mais passe par la classe `Minz_Session` cette fois-ci ! Il n'y a -pas d'exemple ici car vous pouvez reprendre le précédent en changeant tous +L’accès aux paramètres de session est étrangement similaire aux paramètres +GET / POST mais passe par la classe `Minz_Session` cette fois-ci ! Il n’y a +pas d’exemple ici car vous pouvez reprendre le précédent en changeant tous les `Minz_Request` par des `Minz_Session`. ### Gestion des URL Pour profiter pleinement du système de routage de Minz, il est fortement -déconseillé d'écrire les URL en dur dans votre code. Par exemple, la vue +déconseillé d’écrire les URL en dur dans votre code. Par exemple, la vue suivante doit être évitée : ```html @@ -180,11 +180,11 @@ suivante doit être évitée : </p> ``` -Si un jour il est décidé d'utiliser un système d'« url rewriting » pour +Si un jour il est décidé d’utiliser un système d'« url rewriting » pour avoir des adresses au format <http://exemple.com/controller/action>, toutes les adresses précédentes deviendraient ineffectives ! -Préférez donc l'utilisation de la classe `Minz_Url` et de sa méthode +Préférez donc l’utilisation de la classe `Minz_Url` et de sa méthode `display()`. `Minz_Url::display()` prend en paramètre un tableau de la forme suivante : @@ -206,7 +206,7 @@ echo Minz_Url::display($url_array); ``` Comme cela peut devenir un peu pénible à utiliser à la longue, surtout dans -les vues, il est préférable d'utiliser le raccourci `_url()` : +les vues, il est préférable d’utiliser le raccourci `_url()` : ```php <?php @@ -224,8 +224,8 @@ utilisée dans les contrôleurs. ### Redirections Il est souvent nécessaire de rediriger un utilisateur vers une autre -page. Pour cela, la classe `Minz_Request` dispose d'une autre méthode utile -: `forward()`. Cette méthode prend en argument le même format d'URL que +page. Pour cela, la classe `Minz_Request` dispose d’une autre méthode utile +: `forward()`. Cette méthode prend en argument le même format d’URL que celui vu juste avant. Exemple de code : @@ -238,8 +238,8 @@ $url_array = [ 'a' => 'world', ]; -// Indique à Minz de rediriger l'utilisateur vers la page hello/world. -// Notez qu'il s'agit d'une redirection au sens Minz du terme, pas d'une redirection que le navigateur va avoir à gérer (code HTTP 301 ou 302) +// Indique à Minz de rediriger l’utilisateur vers la page hello/world. +// Notez qu’il s’agit d’une redirection au sens Minz du terme, pas d’une redirection que le navigateur va avoir à gérer (code HTTP 301 ou 302) // Le code qui suit forward() va ainsi être exécuté ! Minz_Request::forward($url_array); @@ -251,12 +251,12 @@ Minz_Request::forward($url_array, true); ``` Il est très fréquent de vouloir effectuer une redirection tout en affichant -un message à l'utilisateur pour lui indiquer comment s'est déroulée l'action -effectuée juste avant (validation d'un formulaire par exemple). Un tel +un message à l’utilisateur pour lui indiquer comment s’est déroulée l’action +effectuée juste avant (validation d’un formulaire par exemple). Un tel message est passé par une variable de session `notification` (note : nous parlerons plutôt de « feedback » désormais pour éviter la confusion avec une notification qui peut survenir à tout moment). Pour faciliter ce genre -d'action très fréquente, il existe deux raccourcis qui effectuent tout deux +d’action très fréquente, il existe deux raccourcis qui effectuent tout deux une redirection type 302 en affectant un message de feedback : ```php @@ -266,8 +266,8 @@ $url_array = [ 'c' => 'hello', 'a' => 'world', ]; -$feedback_good = 'Tout s\'est bien passé !'; -$feedback_bad = 'Oups, quelque chose n\'a pas marché.'; +$feedback_good = 'Tout s’est bien passé !'; +$feedback_bad = 'Oups, quelque chose n’a pas marché.'; Minz_Request::good($feedback_good, $url_array); @@ -280,32 +280,32 @@ Minz_Request::bad($feedback_bad, $url_array); ### Gestion de la traduction -Il est fréquent (et c'est un euphémisme) de vouloir afficher des phrases à -l'utilisateur. Dans l'exemple précédent par exemple, nous affichions un -feedback à l'utilisateur en fonction du résultat d'une validation de +Il est fréquent (et c’est un euphémisme) de vouloir afficher des phrases à +l’utilisateur. Dans l’exemple précédent par exemple, nous affichions un +feedback à l’utilisateur en fonction du résultat d’une validation de formulaire. Le problème est que FreshRSS possède des utilisateurs de différentes nationalités. Il est donc nécessaire de pouvoir gérer -différentes langues pour ne pas rester cantonné à l'Anglais ou au Français. +différentes langues pour ne pas rester cantonné à l’Anglais ou au Français. La solution consiste à utiliser la classe `Minz_Translate` qui permet de traduire dynamiquement FreshRSS (ou toute application basée sur Minz). Avant -d'utiliser ce module, il est nécessaire de savoir où trouver les chaînes de +d’utiliser ce module, il est nécessaire de savoir où trouver les chaînes de caractères à traduire. Chaque langue possède son propre sous-répertoire dans un répertoire parent nommé `i18n`. Par exemple, les fichiers de langue en Français sont situés dans `i18n/fr/`. Il existe sept fichiers différents : -* `admin.php` pour tout ce qui est relatif à l'administration de FreshRSS ; -* `conf.php` pour l'aspect configuration ; +* `admin.php` pour tout ce qui est relatif à l’administration de FreshRSS ; +* `conf.php` pour l’aspect configuration ; * `feedback.php` contient les traductions des messages de feedback ; * `gen.php` stocke ce qui est global à FreshRSS (gen pour « general ») ; * `index.php` pour la page principale qui liste les flux et la page « À propos » ; -* `install.php` contient les phrases relatives à l'installation de FreshRSS ; -* `sub.php` pour l'aspect gestion des abonnements (sub pour « subscription »). +* `install.php` contient les phrases relatives à l’installation de FreshRSS ; +* `sub.php` pour l’aspect gestion des abonnements (sub pour « subscription »). Cette organisation permet de ne pas avoir un unique énorme fichier de traduction. -Les fichiers de traduction sont assez simples : il s'agit seulement de +Les fichiers de traduction sont assez simples : il s’agit seulement de retourner un tableau PHP contenant les traductions. Extrait du fichier `app/i18n/fr/gen.php` : @@ -329,7 +329,7 @@ return array( ?> ``` -Pour accéder à ces traductions, `Minz_Translate` va nous aider à l'aide de +Pour accéder à ces traductions, `Minz_Translate` va nous aider à l’aide de sa méthode `Minz_Translate::t()`. Comme cela peut être un peu long à taper, il a été introduit un raccourci qui **doit** être utilisé en toutes circonstances : `_t()`. Exemple de code : @@ -342,20 +342,20 @@ circonstances : `_t()`. Exemple de code : </p> ``` -La chaîne à passer à la fonction `_t()` consiste en une série d'identifiants +La chaîne à passer à la fonction `_t()` consiste en une série d’identifiants séparés par des points. Le premier identifiant indique de quel fichier on veut extraire la traduction (dans notre cas présent, de `gen.php`), tandis que les suivantes indiquent des entrées de tableaux. Ainsi `action` est une entrée du tableau principal et `back_to_rss_feeds` est une entrée du tableau -`action`. Cela permet d'organiser encore un peu plus nos fichiers de +`action`. Cela permet d’organiser encore un peu plus nos fichiers de traduction. Il existe un petit cas particulier qui permet parfois de se simplifier la -vie : le cas de l'identifiant `_`. Celui-ci doit nécessairement être présent -en bout de chaîne et permet de donner une valeur à l'identifiant de niveau -supérieur. C'est assez dur à expliquer mais très simple à comprendre. Dans -l'exemple donné plus haut, un `_` est associé à la valeur `FreshRSS` : cela -signifie qu'il n'y a pas besoin d'écrire `_t('gen.freshrss._')` mais +vie : le cas de l’identifiant `_`. Celui-ci doit nécessairement être présent +en bout de chaîne et permet de donner une valeur à l’identifiant de niveau +supérieur. C’est assez dur à expliquer mais très simple à comprendre. Dans +l’exemple donné plus haut, un `_` est associé à la valeur `FreshRSS` : cela +signifie qu’il n’y a pas besoin d’écrire `_t('gen.freshrss._')` mais `_t('gen.freshrss')` suffit. ### Gestion de la configuration @@ -364,14 +364,14 @@ signifie qu'il n'y a pas besoin d'écrire `_t('gen.freshrss._')` mais Nous y voilà ! Nous avons abordé les fonctionnalités les plus utiles de Minz et qui permettent de faire tourner FreshRSS correctement et il est plus que -temps d'aborder les extensions en elles-même. +temps d’aborder les extensions en elles-même. -Une extension permet donc d'ajouter des fonctionnalités facilement à +Une extension permet donc d’ajouter des fonctionnalités facilement à FreshRSS sans avoir à toucher au cœur du projet directement. ### Travailler dans Docker -Quand on travaille sur une extension, c'est toujours plus facile de la travailler directement dans son environnement. Avec Docker, on peut exploiter l'option ```volume``` quand on démarre le conteneur. Heureusement, on peut l'utiliser sans avoir de connaissances particulières de Docker en utilisant la règle du Makefile : +Quand on travaille sur une extension, c’est toujours plus facile de la travailler directement dans son environnement. Avec Docker, on peut exploiter l’option ```volume``` quand on démarre le conteneur. Heureusement, on peut l’utiliser sans avoir de connaissances particulières de Docker en utilisant la règle du Makefile : ```sh make start extensions="/chemin/complet/de/l/extension/1 /chemin/complet/de/l/extension/2" ``` @@ -379,18 +379,18 @@ make start extensions="/chemin/complet/de/l/extension/1 /chemin/complet/de/l/ext ### Les fichiers et répertoires de base La première chose à noter est que **toutes** les extensions **doivent** se -situer dans le répertoire `extensions`, à la base de l'arborescence de +situer dans le répertoire `extensions`, à la base de l’arborescence de FreshRSS. Une extension est un répertoire contenant un ensemble de fichiers -et sous-répertoires obligatoires ou facultatifs. La convention veut que l'on -précède le nom du répertoire principal par un « x » pour indiquer qu'il ne -s'agit pas d'une extension incluse par défaut dans FreshRSS. +et sous-répertoires obligatoires ou facultatifs. La convention veut que l’on +précède le nom du répertoire principal par un « x » pour indiquer qu’il ne +s’agit pas d’une extension incluse par défaut dans FreshRSS. -Le répertoire principal d'une extension doit comporter au moins deux +Le répertoire principal d’une extension doit comporter au moins deux fichiers **obligatoire** : -* Un fichier `metadata.json` qui contient une description de l'extension. Ce +* Un fichier `metadata.json` qui contient une description de l’extension. Ce fichier est écrit en JSON ; -* Un fichier `extension.php` contenant le point d'entrée de l'extension. +* Un fichier `extension.php` contenant le point d’entrée de l’extension. Please note that there is a not a required link between the directory name of the extension and the name of the class inside `extension.php`, but you @@ -434,14 +434,14 @@ important elements. It must contain a valid JSON array containing the following entries: * `name` : le nom de votre extension ; -* `author` : votre nom, éventuellement votre adresse mail mais il n'y a pas +* `author` : votre nom, éventuellement votre adresse mail mais il n’y a pas de format spécifique à adopter ; * `description` : une description de votre extension ; -* `version` : le numéro de version actuel de l'extension ; -* `entrypoint` : indique le point d'entrée de votre extension. Il doit +* `version` : le numéro de version actuel de l’extension ; +* `entrypoint` : indique le point d’entrée de votre extension. Il doit correspondre au nom de la classe contenue dans le fichier `extension.php` - sans le suffixe `Extension` (donc si le point d'entrée est `HelloWorld`, - votre classe s'appellera `HelloWorldExtension`) ; + sans le suffixe `Extension` (donc si le point d’entrée est `HelloWorld`, + votre classe s’appellera `HelloWorldExtension`) ; * `type` : définit le type de votre extension. Il existe deux types : `system` et `user`. Nous étudierons cette différence juste après. @@ -524,7 +524,7 @@ The following events are available: * `check_url_before_add` (`function($url) -> Url | null`): will be executed every time a URL is added. The URL itself will be passed as - parameter. This way a website known to have feeds which doesn't advertise + parameter. This way a website known to have feeds which doesn’t advertise it in the header can still be automatically supported. * `entry_before_display` (`function($entry) -> Entry | null`): will be executed every time an entry is rendered. The entry itself (instance of diff --git a/docs/fr/developers/03_Running_tests.md b/docs/fr/developers/03_Running_tests.md index 6b465008a..424b5a7a7 100644 --- a/docs/fr/developers/03_Running_tests.md +++ b/docs/fr/developers/03_Running_tests.md @@ -1,7 +1,7 @@ # Running tests FreshRSS is tested with [PHPUnit](https://phpunit.de/). No code should be -merged in `edge` if the tests don't pass. +merged in `edge` if the tests don’t pass. ## Locally @@ -17,7 +17,7 @@ verification fails, the file is deleted. In this case, you should [open an issue on GitHub](https://github.com/FreshRSS/FreshRSS/issues/new) to let maintainers know about the problem. -Then, it executes PHPUnit in a Docker container. If you don't use Docker, +Then, it executes PHPUnit in a Docker container. If you don’t use Docker, you can run the command directly with: ```sh @@ -28,6 +28,6 @@ NO_DOCKER=true make test Les tests sont lancés automatiquement dès que vous ouvrez une « pull request » sur GitHub. Ceux-ci sont lancés grace aux « [GitHub Actions](https://github.com/FreshRSS/FreshRSS/actions) ». -Cette action est nécessaire pour s'assurer qu'aucune régression ne soit introduite dans le code. Nous n'accepterons aucune PR si les tests ne sont pas valides, nous vous demanderons donc de corriger tout ce qui doit l'être avant de commencer à relire votre code. +Cette action est nécessaire pour s’assurer qu’aucune régression ne soit introduite dans le code. Nous n’accepterons aucune PR si les tests ne sont pas valides, nous vous demanderons donc de corriger tout ce qui doit l’être avant de commencer à relire votre code. Si cela vous intéresse, vous pouvez étudier [le fichier de configuration](https://github.com/FreshRSS/FreshRSS/blob/edge/.github/workflows/tests.yml). diff --git a/docs/fr/developers/05_Release_new_version.md b/docs/fr/developers/05_Release_new_version.md index 0bdad8b4e..54c78137a 100644 --- a/docs/fr/developers/05_Release_new_version.md +++ b/docs/fr/developers/05_Release_new_version.md @@ -1,13 +1,13 @@ # Préparer la sortie -Afin d'avoir le plus de retour possible avant une sortie, il est préférable -de l'annoncer sur GitHub en créant un ticket dédié ([voir les +Afin d’avoir le plus de retour possible avant une sortie, il est préférable +de l’annoncer sur GitHub en créant un ticket dédié ([voir les exemples](https://github.com/FreshRSS/FreshRSS/search?utf8=%E2%9C%93&q=Call+for+testing&type=Issues)). -Ceci est à faire **au moins une semaine à l'avance**. +Ceci est à faire **au moins une semaine à l’avance**. -Il est aussi recommandé de faire l'annonce sur mailing@freshrss.org. +Il est aussi recommandé de faire l’annonce sur mailing@freshrss.org. -## S'assurer de l'état de dev +## S’assurer de l’état de dev Avant de sortir une nouvelle version de FreshRSS, il faut vous assurer que le code est stable et ne présente pas de bugs majeurs. Idéalement, il @@ -33,7 +33,7 @@ $ git push && git push --tags ## Mise à jour de update.freshrss.org -Il est important de mettre à jour update.freshrss.org puisqu'il s'agit du +Il est important de mettre à jour update.freshrss.org puisqu’il s’agit du service par défaut gérant les mises à jour automatiques de FreshRSS. Le dépot gérant le code se trouve sur GitHub : @@ -48,10 +48,10 @@ script ne doit pas inclure de code spécifique à une version particulière !) et `update_util.php` contenant une liste de fonctions utiles à tous les scripts. -Afin d'écrire un nouveau script, il est préférable de copier / coller celui +Afin d’écrire un nouveau script, il est préférable de copier / coller celui de la dernière version ou de partir de `update_to_dev.php`. La première -chose à faire est de définir l'URL à partir de laquelle sera téléchargée le -package FreshRSS (`PACKAGE_URL`). L'URL est de la forme +chose à faire est de définir l’URL à partir de laquelle sera téléchargée le +package FreshRSS (`PACKAGE_URL`). L’URL est de la forme `https://codeload.github.com/FreshRSS/FreshRSS/zip/x.y.z`. Il existe ensuite 5 fonctions à remplir : @@ -60,18 +60,18 @@ Il existe ensuite 5 fonctions à remplir : données, de vérifier sa structure, de télécharger le package FreshRSS, de le déployer et de tout nettoyer. Cette fonction est pré-remplie mais des ajustements peuvent être faits si besoin est (ex. réorganisation de la - structure de `./data`). Elle retourne `true` si aucun problème n'est + structure de `./data`). Elle retourne `true` si aucun problème n’est survenu ou une chaîne de caractères indiquant un soucis ; -* `need_info_update()` retourne `true` si l'utilisateur doit intervenir +* `need_info_update()` retourne `true` si l’utilisateur doit intervenir durant la mise à jour ou `false` sinon ; -* `ask_info_update()` affiche un formulaire à l'utilisateur si +* `ask_info_update()` affiche un formulaire à l’utilisateur si `need_info_update()` a retourné `true` ; * `save_info_update()` est chargée de sauvegarder les informations - renseignées par l'utilisateur (issues du formulaire de + renseignées par l’utilisateur (issues du formulaire de `ask_info_update()`) ; * `do_post_update()` est exécutée à la fin de la mise à jour et prend en compte le code de la nouvelle version (ex. si la nouvelle version modifie - l'objet `Minz_Configuration`, vous bénéficierez de ces améliorations). + l’objet `Minz_Configuration`, vous bénéficierez de ces améliorations). ## Mise à jour du fichier de versions @@ -87,7 +87,7 @@ return array( // STABLE '0.8.0' => '1.0.0', '0.8.1' => '1.0.0', - '1.0.0' => '1.0.1', // doesn't exist (yet) + '1.0.0' => '1.0.1', // doesn’t exist (yet) // DEV '1.1.2-dev' => 'dev', '1.1.3-dev' => 'dev', @@ -100,11 +100,11 @@ Et voici comment fonctionne cette table : * à gauche se trouve la version N, à droite la version N+1 ; * les versions `x.y.z-dev` sont **toutes** mises à jour vers `edge` ; * les versions stables sont mises à jour vers des versions stables ; -* il est possible de sauter plusieurs versions d'un coup à condition que les +* il est possible de sauter plusieurs versions d’un coup à condition que les scripts de mise à jour le prennent en charge ; -* il est conseillé d'indiquer la correspondance de la version courante vers - sa potentielle future version en précisant que cette version n'existe pas - encore. Tant que le script correspondant n'existera pas, rien ne se +* il est conseillé d’indiquer la correspondance de la version courante vers + sa potentielle future version en précisant que cette version n’existe pas + encore. Tant que le script correspondant n’existera pas, rien ne se passera. Il est **très fortement** indiqué de garder ce fichier rangé selon les @@ -114,7 +114,7 @@ numéros de versions en séparant les versions stables et de dev. Avant de mettre à jour update.freshrss.org, il est préférable de tester avec dev.update.freshrss.org qui correspond à la pré-production. Mettez donc à -jour dev.update.freshrss.org et changez l'URL `FRESHRSS_UPDATE_WEBSITE` de +jour dev.update.freshrss.org et changez l’URL `FRESHRSS_UPDATE_WEBSITE` de votre instance FreshRSS. Lancez la mise à jour et vérifiez que celle-ci se déroule correctement. @@ -131,12 +131,12 @@ update.freshrss.org : ## Annoncer publiquement la sortie -Lorsque tout fonctionne, il est temps d'annoncer la sortie au monde entier ! +Lorsque tout fonctionne, il est temps d’annoncer la sortie au monde entier ! * sur GitHub en créant [une nouvelle release](https://github.com/FreshRSS/FreshRSS/releases/new) ; * sur le blog de freshrss.org au minimum pour les versions stables (écrire - l'article sur + l’article sur [FreshRSS/freshrss.org](https://github.com/FreshRSS/freshrss.org)). * sur Twitter (compte [@FreshRSS](https://twitter.com/FreshRSS)) ; * et sur mailing@freshrss.org ; @@ -152,5 +152,5 @@ $ vim CHANGELOG.md $ git add CHANGELOG.md && git commit && git push ``` -Pensez aussi à mettre à jour update.freshrss.org pour qu'il prenne en compte +Pensez aussi à mettre à jour update.freshrss.org pour qu’il prenne en compte la version de développement actuelle. diff --git a/docs/fr/users/01_Installation.md b/docs/fr/users/01_Installation.md index 090a8fec3..1fdb9b4fe 100644 --- a/docs/fr/users/01_Installation.md +++ b/docs/fr/users/01_Installation.md @@ -119,7 +119,7 @@ server { fastcgi_split_path_info ^(.+\.php)(/.*)$; # Par défaut la variable PATH_INFO n’est pas définie sous PHP-FPM # or l’API FreshRSS greader.php en a besoin. Si vous avez un “Bad Request”, vérifiez bien cette dernière ! - # REMARQUE : l'utilisation de la variable $path_info est requis. Pour plus de détails, voir : + # REMARQUE : l’utilisation de la variable $path_info est requis. Pour plus de détails, voir : # https://trac.nginx.org/nginx/ticket/321 set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; diff --git a/docs/fr/users/02_First_steps.md b/docs/fr/users/02_First_steps.md index 9a791bb7b..a54f8afa1 100644 --- a/docs/fr/users/02_First_steps.md +++ b/docs/fr/users/02_First_steps.md @@ -1,39 +1,39 @@ -Découvrir un nouveau logiciel n'est pas toujours facile. Si nous avons voulu -FreshRSS le plus intuitif possible, vous aurez peut-être besoin d'un coup de +Découvrir un nouveau logiciel n’est pas toujours facile. Si nous avons voulu +FreshRSS le plus intuitif possible, vous aurez peut-être besoin d’un coup de main pour le maîtriser. -Cette section se propose de vous aider dans la prise en main de l'outil. Il -ne s'agit que de liens menant vers les autres pages de la documentation mais +Cette section se propose de vous aider dans la prise en main de l’outil. Il +ne s’agit que de liens menant vers les autres pages de la documentation mais ordonnées dans un ordre spécifique aux nouveaux arrivants. -[Après l'installation](../../en/admins/03_Installation.md), la première -chose à faire est d'ajouter un ou plusieurs sites à suivre. Pour cela -plusieurs choix s'offrent à vous : +[Après l’installation](../../en/admins/03_Installation.md), la première +chose à faire est d’ajouter un ou plusieurs sites à suivre. Pour cela +plusieurs choix s’offrent à vous : 1. [Ajouter un flux manuellement](04_Subscriptions.md#ajouter-un-flux) 2. [Importer un fichier OPML ou JSON](04_Subscriptions.md#import-et-export) 3. [Utiliser le bookmark dédié](04_Subscriptions.md#utiliser-le-bookmark) Une fois que vous avez ajouté vos flux à FreshRSS, il est temps de les -lire. Pour cela, trois modes de lecture s'offrent à vous : +lire. Pour cela, trois modes de lecture s’offrent à vous : 1. [La vue normale](03_Main_view.md#la-vue-normale) qui permet de voir et de lire rapidement les nouveaux articles 2. [La vue globale](03_Main_view.md#la-vue-globale) est destinée à vous - offrir un panorama de l'état de vos flux + offrir un panorama de l’état de vos flux 3. [La vue lecture](03_Main_view.md#la-vue-lecture) est pensée pour vous offrir un meilleur confort de lecture Bien, vous maitrisez maintenant la vue que vous préférez ? Il est temps de vous offrir un peu plus de confort de lecture. FreshRSS est grandement -configurable et c'est à vous de trouver la configuration qui vous conviendra +configurable et c’est à vous de trouver la configuration qui vous conviendra le plus. Voici tout de même quelques pistes pour améliorer votre quotidien sur FreshRSS : * [Rangez vos flux dans des catégories](04_Subscriptions.md#organisation_des_flux) * [Configurez votre page - d'accueil](05_Configuration.md#personnaliser-la-vue) + d’accueil](05_Configuration.md#personnaliser-la-vue) * [Configurez vos options de lecture](05_Configuration.md#options-de-lecture) * [Mettez à jour vos flux](03_Main_view.md#rafraichir-les-flux) diff --git a/docs/fr/users/05_Configuration.md b/docs/fr/users/05_Configuration.md index f205aa81d..88478a280 100644 --- a/docs/fr/users/05_Configuration.md +++ b/docs/fr/users/05_Configuration.md @@ -3,15 +3,15 @@ ## Langue -À l'heure actuelle, FreshRSS est disponible en 13 langues. Après validation -de ce choix, l'interface sera affichée dans la langue choisie, même si -certaines parties de l'interface peuvent ne pas encore avoir été +À l’heure actuelle, FreshRSS est disponible en 13 langues. Après validation +de ce choix, l’interface sera affichée dans la langue choisie, même si +certaines parties de l’interface peuvent ne pas encore avoir été traduites. Si vous voulez aider à la traduction, regardez comment vous pouvez [contribuer au projet](../contributing.md#contribute-to-internationalization-i18n). -Il y a des parties de FreshRSS qui ne sont pas traduites et qui n'ont pas -vocation à l'être. Pour le moment, les logs visibles dans l'application +Il y a des parties de FreshRSS qui ne sont pas traduites et qui n’ont pas +vocation à l’être. Pour le moment, les logs visibles dans l’application ainsi que celle générées par le script de mise à jour automatique en font partie. @@ -20,7 +20,7 @@ pt-br, ru, tr, zh-cn. ## Thème -Les goûts et les couleurs, ça ne se discute pas. C'est pourquoi FreshRSS +Les goûts et les couleurs, ça ne se discute pas. C’est pourquoi FreshRSS propose huit thèmes officiels : * *Blue Lagoon* par **Mister aiR** @@ -35,44 +35,44 @@ propose huit thèmes officiels : Si aucun de ceux proposés ne convient, il est toujours possible de [créer son propre thème](../developers/04_Frontend/02_Design.md). -Pour sélectionner un thème, il suffit de faire défiler les thèmes jusqu'à -l'apparition du thème choisi. Après validation, le thème sera appliqué à -l'interface. +Pour sélectionner un thème, il suffit de faire défiler les thèmes jusqu’à +l’apparition du thème choisi. Après validation, le thème sera appliqué à +l’interface. ## Largeur du contenu -Il y en a qui préfère des lignes de texte courtes, d'autres qui préfèrent -maximiser l'espace disponible sur l'écran. Pour satisfaire le maximum de +Il y en a qui préfère des lignes de texte courtes, d’autres qui préfèrent +maximiser l’espace disponible sur l’écran. Pour satisfaire le maximum de personne, il est possible de choisir la largeur du contenu affiché. Il y a quatre réglages disponibles : -* **Fine** qui affiche le contenu jusqu'à 550 pixels -* **Moyenne** qui affiche le contenu jusqu'à 800 pixels -* **Large** qui affiche le contenu jusqu'à 1000 pixels +* **Fine** qui affiche le contenu jusqu’à 550 pixels +* **Moyenne** qui affiche le contenu jusqu’à 800 pixels +* **Large** qui affiche le contenu jusqu’à 1000 pixels * **Pas de limite** qui affiche le contenu sur 100% de la place disponible -## Icônes d'article +## Icônes d’article -Veuillez noter que cette section n'affecte que la vue normale. +Veuillez noter que cette section n’affecte que la vue normale.  +d’article](../img/users/configuration.article.icons.png) Chaque article est rendu avec un en-tête (ligne supérieure) et un pied de page (ligne inférieure). Dans cette section, vous pouvez choisir ce qui sera affiché dans ceux-ci. Si vous désactivez tous les éléments de la ligne supérieure, vous pourrez -toujours les voir, puisqu'il contient le nom du flux et le titre de -l'article. Mais si vous faites le même chose pour la ligne inférieure, elle +toujours les voir, puisqu’il contient le nom du flux et le titre de +l’article. Mais si vous faites le même chose pour la ligne inférieure, elle sera vide. -## Temps d'affichage de la notification HTML5 +## Temps d’affichage de la notification HTML5 -Après la mise à jour automatique des flux, FreshRSS utilise l'API de -notification de HTML5 pour avertir de l'arrivée de nouveaux articles. +Après la mise à jour automatique des flux, FreshRSS utilise l’API de +notification de HTML5 pour avertir de l’arrivée de nouveaux articles. -Il est possible de régler la durée d'affichage de cette notification. Par +Il est possible de régler la durée d’affichage de cette notification. Par défaut, la valeur est 0. ## Show the navigation button @@ -83,7 +83,7 @@ browsing on mobile. The drawback is that they eat up some precious space.  -If you don't use those buttons because you never browse on mobile or because +If you don’t use those buttons because you never browse on mobile or because you browse with gestures, you can disable them from the interface. # Reading @@ -127,7 +127,7 @@ To ease the use of the application, FreshRSS comes with a lot of predefined keyboard shortcuts. They allow actions to improve the user experience with a keyboard. -Of course, if you're not satisfied with the key mapping, you can change you +Of course, if you’re not satisfied with the key mapping, you can change you configuration to fit your needs. There are 4 types of shortcuts: @@ -140,15 +140,15 @@ There are 4 types of shortcuts: 1. Other actions: they allow other interactions with the application, like opening the user queries menu or accessing the documentation. -It's worth noting that the share article action has two levels. Once you +It’s worth noting that the share article action has two levels. Once you press the shortcut, a menu containing all the share options opens. To choose one share option, you need to select it by its number. When there is -only one option, it's selected automatically though. +only one option, it’s selected automatically though. The same process applies to the user queries. Be aware that there is no validation on the selected shortcuts. This means -that if you assign a shortcut to more than one action, you'll end up with +that if you assign a shortcut to more than one action, you’ll end up with some unexpected behavior. # User queries @@ -183,8 +183,8 @@ AuthType Basic Require user marie ``` -Plus d'informations dans [la documentation -d'Apache.](http://httpd.apache.org/docs/trunk/howto/auth.html#gettingitworking) +Plus d’informations dans [la documentation +d’Apache.](http://httpd.apache.org/docs/trunk/howto/auth.html#gettingitworking) # Gestion des flux @@ -206,28 +206,28 @@ d'Apache.](http://httpd.apache.org/docs/trunk/howto/auth.html#gettingitworking) La question revient régulièrement, je vais essayer de clarifier ici comment on peut récupérer un flux RSS tronqué avec FreshRSS. Sachez avant tout que -la manière de s'y prendre n'est absolument pas "user friendly", mais elle +la manière de s’y prendre n’est absolument pas "user friendly", mais elle fonctionne. :) Sachez aussi que par cette manière vous générez beaucoup plus de trafic vers -les sites d'origines et qu'ils peuvent vous bloquer par conséquent. Les +les sites d’origines et qu’ils peuvent vous bloquer par conséquent. Les performances de FreshRSS sont aussi moins bonnes car vous devez alors aller -chercher le contenu des articles un par un. C'est donc une fonctionnalité à +chercher le contenu des articles un par un. C’est donc une fonctionnalité à utiliser avec parcimonie ! -Ce que j'entends par "Chemin CSS des articles sur le site d’origine" +Ce que j’entends par "Chemin CSS des articles sur le site d’origine" correspond en fait au "chemin" constitué par les IDs et les classes (en html, correspond aux attributs id et class) pour récupérer uniquement la -partie intéressante qui correspond à l'article. L'idéal est que ce chemin +partie intéressante qui correspond à l’article. L’idéal est que ce chemin commence par un id (qui est unique pour la page). #### Exemple : Rue89 -Pour trouver ce chemin, il faut se rendre à l'adresse d'un des articles tronqués. -Il faut alors chercher le "bloc" HTML correspondant au contenu de l'article +Pour trouver ce chemin, il faut se rendre à l’adresse d’un des articles tronqués. +Il faut alors chercher le "bloc" HTML correspondant au contenu de l’article (dans le code source !) -On trouve ici que le bloc qui englobe uniquement le contenu de l'article est ```<div class="content clearfix">```. On ne va garder que la classe `.content` ici. Néanmoins, comme je le disais plus haut, il est préférable de commencer le chemin avec un id. Si on remonte au bloc parent, il s'agit du bloc ```<div id="article">``` et c'est parfait ! Le chemin sera donc ```#article .content```. +On trouve ici que le bloc qui englobe uniquement le contenu de l’article est ```<div class="content clearfix">```. On ne va garder que la classe `.content` ici. Néanmoins, comme je le disais plus haut, il est préférable de commencer le chemin avec un id. Si on remonte au bloc parent, il s’agit du bloc ```<div id="article">``` et c’est parfait ! Le chemin sera donc ```#article .content```. #### Liste de correspondances site → chemin css @@ -236,10 +236,10 @@ On trouve ici que le bloc qui englobe uniquement le contenu de l'article est ``` * Lesnumériques : ```article#body div.text.clearfix``` * Phoronix : ```#main .content``` -### Récupérer un flux tronqué à l'aide d'outils externes +### Récupérer un flux tronqué à l’aide d’outils externes Des outils complémentaires peuvent être utilisés pour récupérer le contenu -complet d'un article, comme : +complet d’un article, comme : * [RSS-Bridge](https://github.com/RSS-Bridge/rss-bridge) * [Full-Text RSS](https://bitbucket.org/fivefilters/full-text-rss) diff --git a/docs/fr/users/06_Fever_API.md b/docs/fr/users/06_Fever_API.md index 6e655ad75..d9fdaf05d 100644 --- a/docs/fr/users/06_Fever_API.md +++ b/docs/fr/users/06_Fever_API.md @@ -5,8 +5,8 @@ pour une autre possibilité et des généralités sur l’accès par API. ## Clients compatibles GReader -De nombreux clients RSS prennent en charge l'API Fever, mais ils semblent -comprendre l'API Fever un peu différemment. Si votre client préféré ne +De nombreux clients RSS prennent en charge l’API Fever, mais ils semblent +comprendre l’API Fever un peu différemment. Si votre client préféré ne fonctionne pas correctement avec cette API, veuiller créer un ticket et nous y jetterons un oeil. Mais nous ne pouvons le faire que pour les clients gratuits. @@ -14,11 +14,11 @@ gratuits. ### Utilisation et authentification Avant de pouvoir commencer à utiliser cette API, vvous devez activer et -configurer l'accès à l'API, qui est [documenté +configurer l’accès à l’API, qui est [documenté ici](https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html), et -réinitialisez ensuite le mot de passe API de l'utilisateur. +réinitialisez ensuite le mot de passe API de l’utilisateur. -Connectez ensuite votre application mobile en utilisant l'adresse de l'API +Connectez ensuite votre application mobile en utilisant l’adresse de l’API (e.g. `https://freshrss.example.net/api/fever.php`). ## Clients compatibles Fever @@ -41,22 +41,22 @@ Les fonctionnalités suivantes sont implémentées : * récupération des favicons * marquage des entrées comme lues * marquage des entrées comme favoris -* marquage d'un flux comme lu -* marquage d'une catégorie comme lue +* marquage d’un flux comme lu +* marquage d’une catégorie comme lue * support des extensions grace au hook `entry_before_display` Les fonctionnalités suivantes ne sont pas implémentées : -* « Hot Links » car il n'y a encore rien dans FreshRSS qui soit similaire ou +* « Hot Links » car il n’y a encore rien dans FreshRSS qui soit similaire ou qui puisse être utilisé pour le simuler. ## Tester et déboguer -Si l'API ne fonctionne pas comme attendu dans votre lecteur, il est possible +Si l’API ne fonctionne pas comme attendu dans votre lecteur, il est possible de la tester manuellement avec un outil tel que [Postman](https://www.getpostman.com/). -Envoyer une requête POST à l'adresse +Envoyer une requête POST à l’adresse <https://freshrss.example.net/api/fever.php?api> devrait vous renvoyer le résultat suivant : ```json @@ -69,7 +69,7 @@ Super, la configuration de base fonctionne ! Maintenant essayons de faire un appel authentifié. Fever utilise un paramètre `api_key` qui contient le résultat de la fonction de hachage MD5 -de la valeur `"$username:$apiPassword"`. En considérant que l'utilisateur +de la valeur `"$username:$apiPassword"`. En considérant que l’utilisateur est `kevin` et que son mot de passe est `freshrss`, voici la commande à lancer pour calculer la valeur du paramètre `api_key` : @@ -78,7 +78,7 @@ api_key=`echo -n "kevin:freshrss" | md5sum | cut -d' ' -f1` ``` Ajoutez un contenu sous forme de `form-data`à votre requête POST ainsi que -le paramètre `api_key` contenant la valeur calculée à l'étape précédente : +le paramètre `api_key` contenant la valeur calculée à l’étape précédente : ```sh curl -s -F "api_key=$api_key" 'https://freshrss.exemple.net/api/fever.php?api' @@ -93,12 +93,12 @@ Vous devriez obtenir le résultat suivant : } ``` Parfait, maintenant vous êtes autentifié et vous pouvez commencer à tester -les fonctions avancées. Pour cela, il suffit de changer l'adresse en lui +les fonctions avancées. Pour cela, il suffit de changer l’adresse en lui ajoutant les paramètres nécessaires à la réalisation des actions -supportées. Pour plus d'information, veuillez vous référer à la +supportées. Pour plus d’information, veuillez vous référer à la [documentation officielle de Fever](https://feedafever.com/api). -Voici quelques exemples simples d'appels réalisables : +Voici quelques exemples simples d’appels réalisables : * <https://freshrss.example.net/api/fever.php?api&items> * <https://freshrss.example.net/api/fever.php?api&feeds> @@ -123,7 +123,7 @@ fichier `fever.api` pour déterminer la cause des problèmes rencontrés : file_put_contents(__DIR__ . '/fever.log', $_SERVER['HTTP_USER_AGENT'] . ': ' . json_encode($_REQUEST) . PHP_EOL, FILE_APPEND); ``` -Utilisez ensuite votre client RSS pour interroger l'API et vérifier le +Utilisez ensuite votre client RSS pour interroger l’API et vérifier le fichier `fever.log`. ## Remerciements diff --git a/docs/fr/users/06_Mobile_access.md b/docs/fr/users/06_Mobile_access.md index 32aa921d9..8bd0ebd8d 100644 --- a/docs/fr/users/06_Mobile_access.md +++ b/docs/fr/users/06_Mobile_access.md @@ -49,8 +49,8 @@ possibilité. # Clients compatibles -1. Sur la même page de l'API FreshRSS, notez l'adresse donnée sous "Votre adresse API", comme `https://freshrss.example.net/api/greader.php` - * Saisissez l'adresse de l'API dans le client sélectionné puis votre nom d'utilisateur et votre mot de passe spécialement créé pour l'API. +1. Sur la même page de l’API FreshRSS, notez l’adresse donnée sous "Votre adresse API", comme `https://freshrss.example.net/api/greader.php` + * Saisissez l’adresse de l’API dans le client sélectionné puis votre nom d’utilisateur et votre mot de passe spécialement créé pour l’API. 2. Vous pouvez maintenant tester sur une application mobile: * Android diff --git a/docs/fr/users/07_Frequently_Asked_Questions.md b/docs/fr/users/07_Frequently_Asked_Questions.md index c831d8c49..b787f3619 100644 --- a/docs/fr/users/07_Frequently_Asked_Questions.md +++ b/docs/fr/users/07_Frequently_Asked_Questions.md @@ -1,28 +1,28 @@ -Il est possible que nous n'ayons pas répondu à toutes vos questions dans les -parties précédentes. La FAQ regroupe certaines interrogations qui n'ont pas +Il est possible que nous n’ayons pas répondu à toutes vos questions dans les +parties précédentes. La FAQ regroupe certaines interrogations qui n’ont pas trouvé leur réponse ailleurs. -## C'est quoi ce `/i` à la fin de l'URL ? +## C’est quoi ce `/i` à la fin de l’URL ? -Bien entendu, le ```/i``` n'est pas là pour faire joli ! Il s'agit d'une +Bien entendu, le ```/i``` n’est pas là pour faire joli ! Il s’agit d’une question de performances et de praticité : * Cela permet de servir les icônes, images, styles, scripts sans cookie. Sans cela, ces fichiers seraient souvent re-téléchargés, en particulier lorsque le formulaire de connexion est utilisé. De plus, les requêtes vers ces ressources seraient plus lourdes. -* La racine publique ```./p/``` peut être servie sans restriction d'accès +* La racine publique ```./p/``` peut être servie sans restriction d’accès HTTP (qui peut avantageusement être mise en place dans ```./p/i/```). -* Cela permet d'éviter des problèmes pour des fichiers qui doivent être +* Cela permet d’éviter des problèmes pour des fichiers qui doivent être publics pour bien fonctionner, comme ```favicon.ico```, ```robots.txt```, etc. -* Cela permet aussi d'avoir un logo FreshRSS plutôt qu'une page blanche pour - accueillir l'utilisateur par exemple dans le cas de la restriction d'accès - HTTP ou lors de l'attente du chargement plus lourd du reste de - l'interface. +* Cela permet aussi d’avoir un logo FreshRSS plutôt qu’une page blanche pour + accueillir l’utilisateur par exemple dans le cas de la restriction d’accès + HTTP ou lors de l’attente du chargement plus lourd du reste de + l’interface. ## Pourquoi le ```robots.txt``` se trouve dans un sous-répertoire ? -Afin d'améliorer la sécurité, FreshRSS est découpé en deux parties : une +Afin d’améliorer la sécurité, FreshRSS est découpé en deux parties : une partie publique (le répertoire ```./p```) et une partie privée (tout le reste !). Le ```robots.txt``` se trouve donc dans le sous-répertoire ```./p```. @@ -35,57 +35,57 @@ partie publique ne soit accessible par un navigateur web. De cette manière ```robots.txt``` se trouve bien à la racine du site : <https://demo.freshrss.org/robots.txt> -L'explication est la même pour les fichiers ```favicon.ico``` et +L’explication est la même pour les fichiers ```favicon.ico``` et ```.htaccess```. -## Pourquoi j'ai des erreurs quand j'essaye d'enregistrer un flux ? +## Pourquoi j’ai des erreurs quand j’essaye d’enregistrer un flux ? Il peut y avoir différentes origines à ce problème. Le flux peut avoir une syntaxe invalide, il peut ne pas être reconnu par la bibliothèque SimplePie, -l'hébergement peut avoir des problèmes, FreshRSS peut être boggué. Il faut +l’hébergement peut avoir des problèmes, FreshRSS peut être boggué. Il faut dans un premier temps déterminer la cause du problème.Voici la liste des étapes à suivre pour la déterminer : -1. __Vérifier la validité du flux__ grâce à l'[outil en ligne du +1. __Vérifier la validité du flux__ grâce à l’[outil en ligne du W3C](https://validator.w3.org/feed/ "Validateur en ligne de flux RSS et Atom"). Si ça ne fonctionne pas, nous ne pouvons rien faire. -1. __Vérifier la reconnaissance par SimplePie__ grâce à l'[outil en ligne de +1. __Vérifier la reconnaissance par SimplePie__ grâce à l’[outil en ligne de SimplePie](https://simplepie.org/demo/ "Démo officielle de SimplePie"). Si ça ne fonctionne pas, nous ne pouvons rien faire. -1. __Vérifier l'intégration dans FreshRSS__ grâce à la +1. __Vérifier l’intégration dans FreshRSS__ grâce à la [démo](https://demo.freshrss.org "Démo officielle de FreshRSS"). Si ça ne fonctionne pas, il faut [créer un ticket sur Github](https://github.com/FreshRSS/FreshRSS/issues/new "Créer un ticket - pour FreshRSS") pour que l'on puisse regarder ce qui se passe. Si ça - fonctionne, il y a probablement un problème avec l'hébergement. + pour FreshRSS") pour que l’on puisse regarder ce qui se passe. Si ça + fonctionne, il y a probablement un problème avec l’hébergement. ## Comment changer un mot de passe oublié ? Depuis la version [1.10.0](https://github.com/FreshRSS/FreshRSS/releases/tag/1.10.0), -l'administrateur peut modifier le mot de passe d'un utilisateur depuis -l'interface. Cette interface est disponible dans le menu ```Administration → -Gestion des utilisateurs```. Il suffit de sélectionner l'utilisateur, de +l’administrateur peut modifier le mot de passe d’un utilisateur depuis +l’interface. Cette interface est disponible dans le menu ```Administration → +Gestion des utilisateurs```. Il suffit de sélectionner l’utilisateur, de saisir un mot de passe et de valider. Depuis la version [1.8.0](https://github.com/FreshRSS/FreshRSS/releases/tag/1.8.0), -l'administrateur peut modifier le mot de passe d'un utilisateur depuis un +l’administrateur peut modifier le mot de passe d’un utilisateur depuis un terminal. Il est bon de noter que celui-ci doit avoir un accès à PHP en -ligne de commande. Pour cela, il suffit d'ouvrir son terminal et de saisir +ligne de commande. Pour cela, il suffit d’ouvrir son terminal et de saisir la commande suivante : ```sh ./cli/update_user.php --user <username> --password <password> ``` -Pour plus d'information à ce sujet, il existe la [documentation +Pour plus d’information à ce sujet, il existe la [documentation dédiée](../../cli/README.md). ## Gérer les permissions sous SELinux Certaines distributions Linux comme Fedora ou RedHat Enterprise Linux (RHEL) activent par défaut le système SELinux. Celui-ci permet de gérer des -permissions au niveau des processus. Lors de l'installation de FreshRSS, -l'étape 2 procède à la vérification des droits sur certains répertoires, il +permissions au niveau des processus. Lors de l’installation de FreshRSS, +l’étape 2 procède à la vérification des droits sur certains répertoires, il faut donc exécuter la commande suivante en tant que root: ```sh semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/FreshRSS/data(/.*)?' @@ -94,10 +94,10 @@ restorecon -Rv /usr/share/FreshRSS/data ## Pourquoi y a-t-il une page blanche lorsque je configure les options de partage ? -Le mot `sharing` dans l'URL est un mot déclencheur pour certaines règles des +Le mot `sharing` dans l’URL est un mot déclencheur pour certaines règles des bloqueurs de publicités. À partir de la version 1.16, `sharing` a été -remplacé par `integration` dans l'URL posant problème tout en conservant -exactement la même dénomination à travers l'application. +remplacé par `integration` dans l’URL posant problème tout en conservant +exactement la même dénomination à travers l’application. Si vous utilisez une version antérieure à 1.16, vous pouvez désactiver votre bloqueur de publicité pour FreshRSS ou vous pouvez ajouter une règle pour @@ -105,7 +105,7 @@ permettre la consultation de la page de configuration « partage ». Exemples avec _uBlock_ : -* Ajoutez votre instance FreshRSS à la liste blanche de en l'ajoutant dans +* Ajoutez votre instance FreshRSS à la liste blanche de en l’ajoutant dans _uBlock > Ouvrir le tableau de bord > Liste blanche_. *-* Autorisez votre instance FreshRSS à appeler la page de configuration `sharing` en ajoutant la règle `*sharing,domain=~votredomaine.com` dans |
