This page lists files in the current directory. You can view content, get download/execute commands for Wget, Curl, or PowerShell, or filter the list using wildcards (e.g., `*.sh`).
wget 'https://lists2.roe3.org/FreshRSS/docs/fr/contributing.md'
## Rejoignez-nous sur les listes de mailing
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.
[Rejoignez mailing@freshrss.org](https://freshrss.org/mailman/listinfo/mailing).
* Le deuxième mailing s’adresse principalement aux développeurs.
[Rejoignez dev@freshrss.org](https://freshrss.org/mailman/listinfo/dev)
## Signaler un bug
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é,
[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 ?
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
* 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`)
## Corriger un bogue
Voulez-vous corriger un bogue ? Pour maintenir une grande coordination entre
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.
Par exemple, `783-contributing-file` pour réparer
[ticket #783](https://github.com/FreshRSS/FreshRSS/issues/783).
4. Ajoutez vos modifications à votre fork et
[ouvrez une demande de pull request](https://help.github.com/articles/using-pull-requests/).
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) ».
## Soumettre une idée
Vous avez de bonnes idées, oui ! Ne soyez pas timide et ouvrez [un nouveau
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.
## Contribuer à l’internationalisation (i18n)
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 !
## Contribuer à la documentation
Il ne vous aura pas échappé que la documentation est encore un peu vide… il
y a énormément de choses à faire ! Si vous souhaitez aider à écrire quelques
pages, rendez-vous dans les principaux dépôts [fichier docs](https://github.com/FreshRSS/FreshRSS/tree/edge/docs) !
wget 'https://lists2.roe3.org/FreshRSS/docs/fr/index.md'

FreshRSS est un agrégateur et lecteur de flux RSS. Il permet de regrouper
l’actualité de plusieurs sites différents dans un endroit unique pour que
vous puissiez la lire sans devoir aller de site en site.
FreshRSS a été conçu comme un agrégateur puissant et propose des tas de
fonctionnalités :
* Agrégation des flux RSS et Atom.
* Utilisez les favoris pour marquer les articles qui vous ont plu ou que
vous souhaitez lire plus tard.
* Le système de filtrage et de recherche permettent de cibler exactement les
articles que vous souhaitez lire.
* Les statistiques permettent de savoir en un coup d’œil quels sont les
sites qui publient le plus, ou à l’inverse, le moins.
* Importation / exportation des flux au format OPML.
* Multi-thèmes pour changer l’habillage de FreshRSS.
* API Google Reader pour pouvoir y brancher des applications Android.
* « *Responsive design* » : l’application s’adapte aux petits écrans pour
emporter FreshRSS dans votre poche.
* Auto-hébergeable : le code source est libre (AGPL3) et vous pouvez donc
l’héberger sur votre propre serveur.
* Multi-utilisateurs pour héberger plusieurs personnes sur une même installation.
* Et bien d’autres !
Cette documentation est divisée en plusieurs parties :
* La [documentation utilisateurs](./users/02_First_steps.md) pour découvrir
les fonctionnalités de FreshRSS.
* La [documentation administrateurs](../en/admins/01_Index.html) (en
anglais) pour l’installation et la maintenance de FreshRSS.
* La [documentation développeurs](./developers/01_First_steps.md) pour
savoir comment contribuer et mieux comprendre le code source de FreshRSS.
* Le [guide de contribution](./contributing.md) pour nous aider à développer FreshRSS.
wget 'https://lists2.roe3.org/FreshRSS/docs/fr/internationalization.md'
# Gestion de la traduction
Grâce à nos contributeurs, FreshRSS est traduit dans [plus de 20 langues](./users/05_Configuration.md#language).
Cette section expliquera les bases de l’internationalisation dans FreshRSS, de la traduction de l’application dans votre propre langue à la réalisation d’un changement spécifique.
## Aperçu
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.
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
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 ;
* `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 »).
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
retourner un tableau PHP contenant les traductions. Extrait du fichier
`app/i18n/fr/gen.php` :
```php
<?php
return array(
'action' => array(
'actualize' => 'Actualiser',
'back_to_rss_feeds' => '← Retour à vos flux RSS',
'cancel' => 'Annuler',
'create' => 'Créer',
'disable' => 'Désactiver',
),
'freshrss' => array(
'_' => 'FreshRSS',
'about' => 'À propos de FreshRSS',
),
);
```
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 :
```html
<p>
<a href="<?= _url('index', 'index') ?>">
<?= _t('gen.action.back_to_rss_feeds') ?>
</a>
</p>
```
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
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
`_t('gen.freshrss')` suffit.