summaryrefslogtreecommitdiff
path: root/docs/fr/developers
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/developers
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/developers')
-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
6 files changed, 170 insertions, 170 deletions
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.