aboutsummaryrefslogtreecommitdiff
path: root/docs/fr
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2022-01-08 21:58:55 +0100
committerGravatar GitHub <noreply@github.com> 2022-01-08 21:58:55 +0100
commit1acd3ab09be1b65bfd6122ee351490c3b5527bb8 (patch)
treef11de558e7a09522a45d1c155d9707ecda6bf1eb /docs/fr
parent916df412f5b6f7fb9bcfb705a3c8c23e35304410 (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.md32
-rw-r--r--docs/fr/developers/01_First_steps.md66
-rw-r--r--docs/fr/developers/02_Github.md46
-rw-r--r--docs/fr/developers/03_Backend/04_Changing_source_code.md2
-rw-r--r--docs/fr/developers/03_Backend/05_Extensions.md174
-rw-r--r--docs/fr/developers/03_Running_tests.md6
-rw-r--r--docs/fr/developers/05_Release_new_version.md46
-rw-r--r--docs/fr/users/01_Installation.md2
-rw-r--r--docs/fr/users/02_First_steps.md22
-rw-r--r--docs/fr/users/05_Configuration.md80
-rw-r--r--docs/fr/users/06_Fever_API.md32
-rw-r--r--docs/fr/users/06_Mobile_access.md4
-rw-r--r--docs/fr/users/07_Frequently_Asked_Questions.md62
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.
![Configuration des icônes
-d'article](../img/users/configuration.article.icons.png)
+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.
![navigation button
configuration](../img/users/configuration.navigation.button.png)
-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