Add a French translation of the README and the docs (#3166)

* Add a French translation of the README and the docs

* Put a documentation link in the README header
This commit is contained in:
Soxoj
2026-09-15 19:58:45 +03:00
committed by GitHub
parent c2655911fc
commit 5bf33eae8a
25 changed files with 7992 additions and 12 deletions
+2 -1
View File
@@ -141,11 +141,12 @@ If the second command reports `[+]` for the fake username, the check is a false
## Editing documentation
The docs under `docs/source/` use Sphinx (reStructuredText) with a Simplified Chinese translation in `docs/source/locale/zh_CN/`. **If you edit any `.rst` file, refresh the translation catalogs so the Chinese build does not silently fall back to English on the changed strings:**
The docs under `docs/source/` use Sphinx (reStructuredText) with Simplified Chinese and French translations under `docs/source/locale/`. **If you edit any `.rst` file, refresh the translation catalogs so the translated builds do not silently fall back to English on the changed strings:**
```bash
cd docs
make intl-update LANG=zh_CN
make intl-update LANG=fr
```
This regenerates the `.po` files — new strings appear with empty `msgstr ""` and changed ones get a `#, fuzzy` marker. Translating them is optional for a PR (a maintainer or translator can fill them in later), but committing the regenerated `.po` files is **not** optional — otherwise the next person who runs `intl-update` gets a noisy diff for changes that aren't theirs. Full workflow, CJK-specific gotchas, and how to add a new language: [development guide](docs/source/development.rst), section *Translations*.
+430
View File
@@ -0,0 +1,430 @@
# Maigret
<div align="center">
<div>
<a href="https://pypi.org/project/maigret/">
<img alt="Version PyPI de Maigret" src="https://img.shields.io/pypi/v/maigret?style=flat-square" />
</a>
<a href="https://pepy.tech/project/maigret">
<img alt="Téléchargements totaux" src="https://static.pepy.tech/badge/maigret" />
<img alt="Téléchargements par mois" src="https://static.pepy.tech/badge/maigret/month" />
</a>
</div>
<div>
<a href="https://github.com/soxoj/maigret">
<img alt="Nombre de vues du projet Maigret" src="https://komarev.com/ghpvc/?username=maigret&color=brightgreen&label=views&style=flat-square" />
</a>
<a href="https://github.com/soxoj/maigret">
<img alt="Version minimale de Python requise : 3.10+" src="https://img.shields.io/badge/Python-3.10%2B-brightgreen?style=flat-square" />
</a>
<a href="https://github.com/soxoj/maigret/blob/main/LICENSE">
<img alt="Licence de Maigret" src="https://img.shields.io/github/license/soxoj/maigret?style=flat-square" />
</a>
<a href="https://maigret.readthedocs.io/">
<img alt="Documentation de Maigret" src="https://img.shields.io/readthedocs/maigret?style=flat-square&label=docs" />
</a>
</div>
<br>
<div>
<img src="https://raw.githubusercontent.com/soxoj/maigret/main/static/maigret.png" height="300" alt="Logo de Maigret"/>
</div>
<br>
<div>
<a href="https://codewiki.google/github.com/soxoj/maigret">
<img alt="Interroger Code Wiki à propos de Maigret" src="https://img.shields.io/badge/Code_Wiki-ask_about_repo-yellow?logo=googlegemini" />
</a>
<a href="https://deepwiki.com/soxoj/maigret">
<img alt="Interroger DeepWiki à propos de Maigret" src="https://img.shields.io/badge/DeepWiki-ask_about_repo-yellow" />
</a>
</div>
<br>
<div>
<a href="README.md">English</a> · <a href="README.zh-CN.md">简体中文</a> · <b>Français</b>
</div>
<br>
<div>
📖 <a href="https://maigret.readthedocs.io/"><b>Documentation</b></a>
</div>
<br>
</div>
**Maigret** rassemble un dossier sur une personne **à partir d'un simple nom d'utilisateur** : il recherche ses comptes sur un très grand nombre de sites et collecte toutes les informations disponibles sur les pages web. Aucune clé d'API n'est nécessaire. **[Profilage par IA (démo)](#ai-analysis)**.
## Sponsors
<p align="center">
<img width="300" alt="Emplacement de sponsoring principal" src="https://github.com/user-attachments/assets/9ee53377-c817-4a57-90ca-4baa2303bcae" />
</p>
<hr>
<br>
<p align="center">
<a href="https://www.rapidproxy.io/?ref=soxoj">
<img src="https://github.com/user-attachments/assets/4ed589d1-37cb-4a40-9273-bff4d6f1a514" width="500" alt="RapidProxy">
</a>
</p>
<p>
<a href="https://www.rapidproxy.io/?ref=soxoj"><b>RapidProxy</b></a> fournit des proxys résidentiels performants pour le scraping de Twitter, l'automatisation avec Selenium et l'extraction de données web. Plus de 90 millions d'IP · rotation intelligente · anti-blocage · trafic sans expiration. <br>
<b>Offre spéciale</b> : essai gratuit, formules à partir de 0,65 $/Go. Utilisez le code <b>RAPID10</b> pour 10 % de réduction.
</p>
<p align="center">
<a href="https://mangoproxy.com/?utm_source=soxoj&utm_medium=partner&utm_campaign=soxoj_github">
<img src="https://github.com/user-attachments/assets/146b6b95-06ae-4fda-bff2-d94946cf7c2e" width="300" alt="MangoProxy">
</a>
</p>
<p>
<a href="https://mangoproxy.com/?utm_source=soxoj&utm_medium=partner&utm_campaign=soxoj_github"><b>MangoProxy</b></a> est un service de proxys résidentiels, ISP, mobiles et de datacenter, conçu pour les usages professionnels où la stabilité, la vitesse et l'anonymat comptent. <br>
<b>Code promo</b> : SOXOJ - 8 % de réduction sur les proxys ISP statiques
</p>
<p align="center">
<a href="https://www.thordata.com/?ls=dmt&lk=dmt">
<img src="https://github.com/user-attachments/assets/6d92bda0-c953-49b5-ab7e-73b0e67f17e2" width="350" alt="Thordata">
</a>
</p>
<p>
<a href="https://www.thordata.com/?ls=dmt&lk=dmt"><b>Thordata</b></a> fournit des proxys résidentiels fiables pour la recherche OSINT, la recherche de noms d'utilisateur et la collecte de données publiques.
Accédez à <b>plus de 100 millions d'IP résidentielles réelles</b> dans <b>plus de 195 pays</b>, avec des <b>connexions simultanées illimitées</b>, 99,99 % de disponibilité, des connexions stables, des sessions rotatives ou persistantes et un taux de réussite élevé.
<br>
<b>Offre spéciale :</b> 3 jours d'essai gratuit + <b>10 % de réduction</b> avec le code <b>SOXOJ10</b>.
</p>
## Sommaire
- [En une minute](#one-minute)
- [Principales fonctionnalités](#main-features)
- [Démo](#demo)
- [Installation](#installation)
- [Utilisation](#usage)
- [Contribuer](#contributing)
- [Usage commercial](#commercial-use)
- [À propos](#about)
<a id="one-minute"></a>
## En une minute
Assurez-vous d'avoir Python 3.10 ou une version supérieure.
```bash
pip install maigret
maigret VOTRE_NOM_DUTILISATEUR
```
Rien à installer ? Essayez le [bot Telegram communautaire](https://maigret.app/readme-en) ou un [shell cloud](#cloud-shells).
Vous préférez une interface web ? Voir [comment la lancer](#web-interface).
À lire aussi : [Démarrage rapide](https://maigret.readthedocs.io/en/latest/quick-start.html).
<a id="main-features"></a>
## Principales fonctionnalités
- Prend en charge plus de 3 000 sites ([voir la liste complète](https://github.com/soxoj/maigret/blob/main/sites.md)). Une exécution par défaut vérifie les 500 sites les mieux classés par trafic ; passez `-a` pour tout parcourir, ou `--tags` pour restreindre par catégorie ou par pays.
- Intégrable dans vos projets Python : importez `maigret` et lancez des recherches depuis votre code (voir l'[utilisation en tant que bibliothèque](https://maigret.readthedocs.io/en/latest/library-usage.html)).
- [Extrait](https://github.com/soxoj/socid_extractor) toutes les informations disponibles sur le titulaire du compte depuis les pages de profil et les API des sites, y compris les liens vers d'autres comptes.
- Effectue une recherche récursive à partir des noms d'utilisateur et des identifiants découverts.
- Permet de filtrer par tags (catégories de sites, pays).
- Détecte et contourne partiellement les blocages, la censure et les CAPTCHA.
- Récupère à chaque exécution (une fois toutes les 24 heures) une [base de sites mise à jour automatiquement](https://maigret.readthedocs.io/en/latest/settings.html#database-auto-update) depuis GitHub, et se rabat sur la base embarquée en cas de coupure réseau.
- Fonctionne avec les sites Tor et I2P, et sait vérifier des domaines.
- Embarque une [interface web](#web-interface) pour parcourir les résultats sous forme de graphe et télécharger les rapports dans tous les formats depuis une seule page.
- Propose un [mode d'analyse par IA](#ai-analysis) facultatif (`--ai`), qui transforme les résultats bruts en une courte synthèse d'enquête via une API compatible OpenAI.
Pour la liste complète des fonctionnalités, voir la [documentation des fonctionnalités](https://maigret.readthedocs.io/en/latest/features.html).
### Ils utilisent Maigret
Des outils professionnels d'OSINT et d'analyse des réseaux sociaux construits sur Maigret :
<a href="https://github.com/SocialLinks-IO/sociallinks-api"><img height="60" alt="Social Links API" src="https://github.com/user-attachments/assets/789747b2-d7a0-4d4e-8868-ffc4427df660"></a>
<a href="https://sociallinks.io/products/sl-crimewall"><img height="60" alt="Social Links Crimewall" src="https://github.com/user-attachments/assets/0b18f06c-2f38-477b-b946-1be1a632a9d1"></a>
<a href="https://usersearch.ai/"><img height="60" alt="UserSearch" src="https://github.com/user-attachments/assets/66daa213-cf7d-40cf-9267-42f97cf77580"></a>
<a id="demo"></a>
## Démo
### Vidéo
<a href="https://asciinema.org/a/Ao0y7N0TTxpS0pisoprQJdylZ">
<img src="https://asciinema.org/a/Ao0y7N0TTxpS0pisoprQJdylZ.svg" alt="asciicast" width="600">
</a>
### Rapports
[Rapport PDF](https://raw.githubusercontent.com/soxoj/maigret/main/static/report_alexaimephotographycars.pdf), [rapport HTML](https://htmlpreview.github.io/?https://raw.githubusercontent.com/soxoj/maigret/main/static/report_alexaimephotographycars.html)
![Capture d'écran d'un rapport HTML](https://raw.githubusercontent.com/soxoj/maigret/main/static/report_alexaimephotography_html_screenshot.png)
![Capture d'écran d'un rapport XMind 8](https://raw.githubusercontent.com/soxoj/maigret/main/static/report_alexaimephotography_xmind_screenshot.png)
[Sortie console complète](https://raw.githubusercontent.com/soxoj/maigret/main/static/recursive_search.md)
<a id="installation"></a>
## Installation
Vous avez déjà suivi les étapes [En une minute](#one-minute) ? C'est tout bon. Voici les autres méthodes possibles.
Vous ne voulez rien installer ? Utilisez le [bot Telegram communautaire](https://maigret.app/readme-en).
### Windows
Téléchargez `maigret_standalone.exe` depuis les [Releases](https://github.com/soxoj/maigret/releases). Deux façons de le lancer :
- **Double-cliquez dessus** : Maigret demandera un nom d'utilisateur, lancera une recherche par défaut et attendra à la fin pour que les liens des rapports restent visibles.
- **Lancez-le depuis un terminal** : ouvrez l'invite de commandes (`Win+R`, tapez `cmd`, Entrée) ou PowerShell pour passer d'autres options :
```cmd
cd %USERPROFILE%\Downloads
maigret_standalone.exe NOMDUTILISATEUR
maigret_standalone.exe NOMDUTILISATEUR --html :: enregistre aussi un rapport HTML
maigret_standalone.exe --help :: liste toutes les options
```
Guide vidéo : https://youtu.be/qIgwTZOmMmM.
<a id="cloud-shells"></a>
### Shells cloud
Lancez Maigret dans le navigateur via un shell cloud ou un notebook Jupyter :
<a href="https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/soxoj/maigret&tutorial=cloudshell-tutorial.md"><img src="https://user-images.githubusercontent.com/27065646/92304704-8d146d80-ef80-11ea-8c29-0deaabb1c702.png" alt="Ouvrir dans Cloud Shell" height="50"></a>
<a href="https://repl.it/github/soxoj/maigret"><img src="https://replit.com/badge/github/soxoj/maigret" alt="Exécuter sur Replit" height="50"></a>
<a href="https://colab.research.google.com/gist/soxoj/879b51bc3b2f8b695abb054090645000/maigret-collab.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Ouvrir dans Colab" height="45"></a>
<a href="https://mybinder.org/v2/gist/soxoj/9d65c2f4d3bec5dd25949197ea73cf3a/HEAD"><img src="https://mybinder.org/badge_logo.svg" alt="Ouvrir dans Binder" height="45"></a>
### Snap (Linux)
<a href="https://snapcraft.io/maigret"><img src="https://snapcraft.io/static/images/badges/en/snap-store-black.svg" alt="Télécharger depuis le Snap Store" height="50"></a>
```bash
sudo snap install maigret
# utilisation
maigret nomdutilisateur
```
Disponible pour amd64 et arm64, sans Python. Le snap est strictement confiné et peut écrire dans votre répertoire personnel : lancez-le donc depuis celui-ci. Pour les clés USB, connectez l'interface une fois avec `sudo snap connect maigret:removable-media`.
### Installation locale (pip)
```bash
# installation depuis PyPI
pip3 install maigret
# utilisation
maigret nomdutilisateur
```
### Depuis les sources
```bash
# ou clonez le dépôt et installez à la main
git clone https://github.com/soxoj/maigret && cd maigret
# construction et installation
pip3 install .
# utilisation
maigret nomdutilisateur
```
### Docker
Deux variantes d'image sont publiées :
- `soxoj/maigret:latest` — mode ligne de commande (par défaut)
- `soxoj/maigret:web` — lance automatiquement l'[interface web](#web-interface)
```bash
# image officielle (CLI)
docker pull soxoj/maigret
# utilisation en CLI
docker run -v /mydir:/app/reports soxoj/maigret:latest nomdutilisateur --html
# interface web (ouvrir http://localhost:5000)
docker run -p 5000:5000 soxoj/maigret:web
# interface web sur un autre port
docker run -e PORT=8080 -p 8080:8080 soxoj/maigret:web
# construction manuelle
docker build -t maigret . # image CLI (cible par défaut)
docker build --target web -t maigret-web . # image de l'interface web
```
### Dépannage
Des erreurs de compilation ? Voir le [guide de dépannage](https://maigret.readthedocs.io/en/latest/installation.html#troubleshooting).
Les rapports PDF (`--pdf`) sont une extension facultative : installez-les avec `pip install 'maigret[pdf]'`. Ils ont besoin de bibliothèques graphiques système sous Linux et macOS ; voir la [section sur les rapports PDF](https://maigret.readthedocs.io/en/latest/installation.html#optional-pdf-reports-maigret-pdf) pour les étapes propres à chaque système.
<a id="usage"></a>
## Utilisation
### Exemples
```bash
# générer des rapports HTML, PDF et XMind
maigret user --html
maigret user --pdf
maigret user --xmind # XML hérité, avec un manifeste pour les lecteurs XMind 2022+
# exports exploitables par une machine
maigret user --json ndjson # JSON délimité par des sauts de ligne (aussi : --json simple)
maigret user --csv
maigret user --txt
maigret user --graph # graphe D3 interactif (HTML)
maigret user --neo4j # script Cypher pour Neo4j (base de données orientée graphe)
# rechercher sur les sites marqués des tags photo et dating
maigret user --tags photo,dating
# rechercher sur les sites marqués du tag us
maigret user --tags us
# mettre en évidence les sites dont la page mentionne aussi certains mots-clés
maigret user --keywords python rust
# les sites correspondants apparaissent avec « [++] » en vert vif
# rechercher trois noms d'utilisateur sur tous les sites disponibles
maigret user1 user2 user3 -a
# synthèse d'enquête assistée par IA (nécessite OPENAI_API_KEY)
maigret user --ai
```
`--neo4j` écrit un script `*_neo4j.cypher` du graphe des résultats ; importez-le avec `cypher-shell -u neo4j -p <mot_de_passe> < report_user_neo4j.cypher` ou collez-le dans le Neo4j Browser. Les réimports sont idempotents. Voir la [documentation de l'export Neo4j](https://maigret.readthedocs.io/en/latest/command-line-options.html#neo4j-export).
Lancez `maigret --help` pour toutes les options. Documentation : [options de ligne de commande](https://maigret.readthedocs.io/en/latest/command-line-options.html), [autres exemples](https://maigret.readthedocs.io/en/latest/usage-examples.html). Vous tombez sur des 403 ou des dépassements de délai ? Voir [TROUBLESHOOTING.md](TROUBLESHOOTING.md).
<a id="web-interface"></a>
### Interface web
Maigret embarque une interface web avec un graphe des résultats et des rapports téléchargeables.
Vous ne voulez pas l'héberger vous-même ? Déployez l'image Docker publiée `soxoj/maigret:web` en un clic :
<a href="https://render.com/deploy?repo=https://github.com/soxoj/maigret&path=utils/render.yaml"><img src="https://render.com/images/deploy-to-render-button.svg" alt="Déployer sur Render" height="40"></a>
Fonctionne sur l'offre gratuite de Render (mise en veille après 15 minutes d'inactivité, redémarrage à la requête suivante). Aucune authentification n'est configurée sur l'instance : toute personne disposant de l'URL peut l'utiliser.
<details>
<summary>Captures d'écran de l'interface web</summary>
![Interface web : comment la démarrer](https://raw.githubusercontent.com/soxoj/maigret/main/static/web_interface_screenshot_start.png)
![Interface web : les résultats](https://raw.githubusercontent.com/soxoj/maigret/main/static/web_interface_screenshot.png)
</details>
```console
maigret --web 5000
```
Ouvrez http://127.0.0.1:5000, saisissez un nom d'utilisateur et consultez les résultats.
### Bibliothèque Python
**Maigret peut être intégré à vos propres projets Python.** La ligne de commande n'est qu'une fine couche au-dessus d'une fonction asynchrone que vous pouvez appeler directement : construisez vos propres chaînes de traitement, alimentez vos outils avec les résultats, ou faites tourner Maigret au sein d'un workflow OSINT plus large.
Voir le [guide d'utilisation en tant que bibliothèque](https://maigret.readthedocs.io/en/latest/library-usage.html) pour un exemple complet, les usages asynchrones et le filtrage des sites par tag.
### Options utiles en ligne de commande
- `--parse URL` — analyse une page de profil, en extrait les identifiants et noms d'utilisateur, puis s'en sert pour lancer une recherche récursive.
- `--permute` — génère les variantes probables d'un nom d'utilisateur à partir de deux entrées ou plus (par exemple `john doe``johndoe`, `j.doe`, etc.) et les recherche toutes.
- `--self-check [--auto-disable]` — vérifie les paires `usernameClaimed` / `usernameUnclaimed` sur les sites réels, pour les mainteneurs qui auditent la base.
- `--ai` / `--ai-model` — lance l'[analyse par IA](#ai-analysis) sur les résultats et diffuse une courte synthèse d'enquête dans le terminal.
<a id="ai-analysis"></a>
### Analyse par IA
[![asciicast](https://asciinema.org/a/979404.svg)](https://asciinema.org/a/979404)
`--ai` rassemble les résultats de la recherche, construit un rapport Markdown interne et l'envoie à un point d'entrée de complétion de conversation compatible OpenAI, afin de produire une courte synthèse d'enquête neutre (nom réel probable, localisation, profession, centres d'intérêt, langues, indice de confiance, pistes à creuser). La progression site par site est masquée et la réponse du modèle est diffusée sur la sortie standard.
```bash
export OPENAI_API_KEY=sk-...
maigret user --ai
# choisir un autre modèle
maigret user --ai --ai-model gpt-4o-mini
```
La clé peut aussi être définie via `openai_api_key` dans `settings.json`. Le point d'entrée vaut par défaut `https://api.openai.com/v1`, mais `openai_api_base_url` dans `settings.json` peut désigner n'importe quelle API compatible OpenAI (Azure OpenAI, OpenRouter, un serveur local, etc.). Voir la [documentation des paramètres](https://maigret.readthedocs.io/en/latest/settings.html) pour la liste complète des options.
### Tor / I2P / proxys
Maigret peut faire passer ses vérifications par un proxy, par Tor ou par I2P, ce qui est utile pour les sites `.onion` et `.i2p` et pour contourner les WAF qui bloquent les IP de datacenter.
```bash
# n'importe quel proxy HTTP/SOCKS
maigret user --proxy socks5://127.0.0.1:1080
# Tor (passerelle par défaut socks5://127.0.0.1:9050)
maigret user --tor-proxy socks5://127.0.0.1:9050
# I2P (passerelle par défaut http://127.0.0.1:4444)
maigret user --i2p-proxy http://127.0.0.1:4444
```
Démarrez votre démon Tor ou I2P avant de lancer la commande : Maigret ne gère pas ces passerelles.
### Contournement de Cloudflare
> **Expérimental.** Le webgate Cloudflare est en cours de développement actif ; le schéma de configuration, le comportement en ligne de commande et l'ensemble des sites routés peuvent changer sans garantie de compatibilité ascendante.
Une partie des sites de la base exigent un vrai navigateur pour résoudre un défi JavaScript. Maigret peut déléguer ces vérifications à une instance locale de [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr) :
```bash
docker run -d -p 8191:8191 --name flaresolverr ghcr.io/flaresolverr/flaresolverr:latest
maigret --cloudflare-bypass <nomdutilisateur>
```
Le contournement est facultatif (`--cloudflare-bypass`, ou `cloudflare_bypass.enabled` dans `settings.json`) et ne se déclenche que pour les sites dont le champ `protection` correspond. Voir la [documentation de la fonctionnalité](https://maigret.readthedocs.io/en/latest/features.html#cloudflare-bypass) pour les options de backend et la configuration.
<a id="contributing"></a>
## Contribuer
Ajoutez ou corrigez des sites de façon chirurgicale dans `data.json` (sans `json.load` / `json.dump`), puis lancez `./utils/update_site_data.py` pour regénérer `sites.md` et les métadonnées de la base, et ouvrez une pull request. Pour plus de détails, voir le [guide CONTRIBUTING](https://github.com/soxoj/maigret/blob/main/CONTRIBUTING.md) et la [documentation de développement](https://maigret.readthedocs.io/en/latest/development.html). Historique des versions : [CHANGELOG.md](CHANGELOG.md).
<a id="commercial-use"></a>
## Usage commercial
Maigret est open source, sous licence MIT, et son usage commercial est libre et sans restriction. Mais les vérifications de sites se cassent avec le temps et demandent une maintenance active.
Pour un usage commercial sérieux, avec une **base de sites mise à jour quotidiennement** ou une **API de vérification de noms d'utilisateur**, écrivez-nous : 📧 [maigret@soxoj.com](mailto:maigret@soxoj.com)
- Base de sites privée — plus de 5 000 sites, mise à jour chaque jour (distincte de la base open source publique)
- API de vérification de noms d'utilisateur — pour intégrer Maigret à votre produit
<a id="about"></a>
## À propos
### Avertissement
**À usage éducatif et légal uniquement.** Il vous appartient de respecter toutes les lois applicables dans votre juridiction (RGPD, CCPA, etc.). Les auteurs déclinent toute responsabilité en cas d'usage abusif.
### Retours
[Ouvrir une issue](https://github.com/soxoj/maigret/issues) · [GitHub Discussions](https://github.com/soxoj/maigret/discussions) · [Telegram](https://t.me/soxoj)
### Classification SOWEL
Techniques OSINT utilisées :
- [SOTL-2.2. Search For Accounts On Other Platforms](https://sowel.soxoj.com/other-platform-accounts)
- [SOTL-6.1. Check Logins Reuse To Find Another Account](https://sowel.soxoj.com/logins-reuse)
- [SOTL-6.2. Check Nicknames Reuse To Find Another Account](https://sowel.soxoj.com/nicknames-reuse)
### Licence
MIT © [Maigret](https://github.com/soxoj/maigret)
+8 -1
View File
@@ -20,6 +20,9 @@
<a href="https://github.com/soxoj/maigret/blob/main/LICENSE">
<img alt="License badge for Maigret" src="https://img.shields.io/github/license/soxoj/maigret?style=flat-square" />
</a>
<a href="https://maigret.readthedocs.io/">
<img alt="Maigret documentation" src="https://img.shields.io/readthedocs/maigret?style=flat-square&label=docs" />
</a>
</div>
<br>
<div>
@@ -36,7 +39,11 @@
</div>
<br>
<div>
<b>English</b> · <a href="README.zh-CN.md">简体中文</a>
<b>English</b> · <a href="README.zh-CN.md">简体中文</a> · <a href="README.fr.md">Français</a>
</div>
<br>
<div>
📖 <a href="https://maigret.readthedocs.io/"><b>Documentation</b></a>
</div>
<br>
</div>
+8 -1
View File
@@ -20,6 +20,9 @@
<a href="https://github.com/soxoj/maigret/blob/main/LICENSE">
<img alt="Maigret 的开源许可证" src="https://img.shields.io/github/license/soxoj/maigret?style=flat-square" />
</a>
<a href="https://maigret.readthedocs.io/">
<img alt="Maigret 文档" src="https://img.shields.io/readthedocs/maigret?style=flat-square&label=docs" />
</a>
</div>
<br>
<div>
@@ -36,7 +39,11 @@
</div>
<br>
<div>
<a href="README.md">English</a> · <b>简体中文</b>
<a href="README.md">English</a> · <b>简体中文</b> · <a href="README.fr.md">Français</a>
</div>
<br>
<div>
📖 <a href="https://maigret.readthedocs.io/"><b>文档</b></a>
</div>
<br>
</div>
+5 -4
View File
@@ -12,7 +12,7 @@ BUILDDIR = build
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile gettext intl-update html-zh_CN
.PHONY: help Makefile gettext intl-update html-zh_CN html-fr
# Translation pipeline
#
@@ -20,7 +20,8 @@ help:
# 2. `make intl-update LANG=zh_CN` syncs the .po files for that language
# against the new .pot files (new strings get empty msgstrs, removed
# strings get commented out, changed strings get a `fuzzy` marker).
# 3. `make html-zh_CN` builds a local Simplified Chinese HTML preview.
# 3. `make html-zh_CN` (or `make html-<code>`) builds a local HTML preview
# in that language.
#
# To bootstrap a new language, run `make intl-update LANG=<code>`.
LANG ?= zh_CN
@@ -31,8 +32,8 @@ gettext:
intl-update: gettext
sphinx-intl update -p "$(BUILDDIR)/gettext" -l $(LANG) -d "$(SOURCEDIR)/locale"
html-zh_CN:
$(SPHINXBUILD) -b html -D language=zh_CN $(SPHINXOPTS) "$(SOURCEDIR)" "$(BUILDDIR)/html_zh_CN"
html-%:
$(SPHINXBUILD) -b html -D language=$* $(SPHINXOPTS) "$(SOURCEDIR)" "$(BUILDDIR)/html_$*"
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+1 -1
View File
@@ -450,7 +450,7 @@ Translations
The docs are translated via Sphinx's standard gettext workflow. English ``.rst`` files
are the source of truth; translations live as ``.po`` catalogs under
``docs/source/locale/<lang>/LC_MESSAGES/`` (currently only ``zh_CN``).
``docs/source/locale/<lang>/LC_MESSAGES/`` (currently ``zh_CN`` and ``fr``).
After editing any English ``.rst`` file, refresh the catalogs so existing
translations stay aligned with the new strings:
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+583
View File
@@ -0,0 +1,583 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/faq.rst:4 0da8c66733d348fc9b00ba5a1a76aa73
msgid "FAQ"
msgstr "FAQ"
#: ../../source/faq.rst:6 2ae724d004154176be5080383d04f54a
msgid ""
"Short answers to the questions users most often type into the docs "
"search. For deeper coverage each section links to the relevant page."
msgstr ""
"Réponses courtes aux questions que les utilisateurs tapent le plus "
"souvent dans la recherche de la documentation. Chaque section renvoie "
"vers la page correspondante pour plus de détails."
#: ../../source/faq.rst:10 9bb042d046f640119b891ab1c0435f0e
msgid "Can I search by email address?"
msgstr "Puis-je faire une recherche par adresse e-mail ?"
#: ../../source/faq.rst:12 92d82ec421f54914a366fff12bb10ba6
msgid ""
"**No.** Maigret only takes a username (or one of the :doc:`supported "
"identifier types <supported-identifier-types>`) as input — searching by "
"an email or mail address is out of scope. Looking up a mail address "
"requires different techniques (probing password-reset flows, registration"
" endpoints) and is the job of a separate class of tool."
msgstr ""
"**Non.** Maigret n'accepte en entrée qu'un nom d'utilisateur (ou l'un des"
" :doc:`types d'identifiants pris en charge <supported-identifier-types>`)"
" : la recherche par adresse e-mail sort de son périmètre. Retrouver une "
"adresse e-mail demande d'autres techniques (sonder les procédures de "
"réinitialisation de mot de passe, les points d'entrée d'inscription) et "
"relève d'une autre catégorie d'outils."
#: ../../source/faq.rst:19 3ddb8801c7294968ba06946911e0f4bc
msgid "Recommended open-source tools for email lookup:"
msgstr "Outils open source recommandés pour la recherche par e-mail :"
#: ../../source/faq.rst:21 ef0949e641b547239bf0abc2c39a5724
msgid "`mailcat <https://github.com/sharsil/mailcat>`_"
msgstr "`mailcat <https://github.com/sharsil/mailcat>`_"
#: ../../source/faq.rst:22 99b07239fa61487ab55e3bebfb8076f8
msgid "`holehe <https://github.com/megadose/holehe>`_"
msgstr "`holehe <https://github.com/megadose/holehe>`_"
#: ../../source/faq.rst:23 769abcb0d6814c859f9af00831f80620
msgid "`user-scanner <https://github.com/kaifcodec/user-scanner>`_"
msgstr "`user-scanner <https://github.com/kaifcodec/user-scanner>`_"
#: ../../source/faq.rst:25 c35794d9d73d469e97539a39527812cb
msgid "Online services:"
msgstr "Services en ligne :"
#: ../../source/faq.rst:27 189251bc33624e62b4a28aadbb2bcb50
msgid "`Noimosiny <https://noimosiny.com>`_"
msgstr "`Noimosiny <https://noimosiny.com>`_"
#: ../../source/faq.rst:28 401a10ff8ce74ceabb38fdb9fe8d0c56
msgid "`OSINT Industries <https://osint.industries>`_"
msgstr "`OSINT Industries <https://osint.industries>`_"
#: ../../source/faq.rst:29 3decfb5f127c47578076cd716cbc53c9
msgid "`Epieos <https://epieos.com>`_"
msgstr "`Epieos <https://epieos.com>`_"
#: ../../source/faq.rst:31 2a1148f2c20c48f19b3347ab344be010
msgid ""
"Note: if Maigret has already found an account for a username, it often "
"extracts the linked email from the profile page automatically — see :ref"
":`extracting-information-from-pages`."
msgstr ""
"À noter : si Maigret a déjà trouvé un compte pour un nom d'utilisateur, "
"il extrait souvent automatiquement l'e-mail associé depuis la page de "
"profil, voir :ref:`extracting-information-from-pages`."
#: ../../source/faq.rst:36 9bddb16d5c3d47d6b1825415599861dc
msgid "Can I configure a proxy / SOCKS / Tor / I2P?"
msgstr "Puis-je configurer un proxy / SOCKS / Tor / I2P ?"
#: ../../source/faq.rst:38 663009588299428985b0006fa0471a1a
msgid "**Yes.** Three flags cover three distinct goals:"
msgstr "**Oui.** Trois options couvrent trois objectifs distincts :"
#: ../../source/faq.rst:40 0a8ae8051ff64cc39c439eed7deb24b2
msgid ""
"``--proxy URL`` — route **every** check through the given HTTP or SOCKS "
"proxy (also the right flag for routing the whole run through Tor with "
"``socks5://127.0.0.1:9050``, a residential proxy, or a corporate "
"gateway)."
msgstr ""
"``--proxy URL`` — faire passer **toutes** les vérifications par le proxy "
"HTTP ou SOCKS indiqué (c'est aussi la bonne option pour faire passer "
"toute la recherche par Tor avec ``socks5://127.0.0.1:9050``, par un proxy"
" résidentiel ou par une passerelle d'entreprise)."
#: ../../source/faq.rst:44 5660a1a875684394be59c898612b05e0
msgid ""
"``--tor-proxy URL`` — used **only** for ``.onion`` sites in the database."
" Clearweb sites still go via your direct connection (or ``--proxy`` if "
"set)."
msgstr ""
"``--tor-proxy URL`` — utilisé **uniquement** pour les sites ``.onion`` de"
" la base. Les sites du web classique continuent de passer par votre "
"connexion directe (ou par ``--proxy`` s'il est défini)."
#: ../../source/faq.rst:47 aae64ef1456b4567acededd84132be89
msgid "``--i2p-proxy URL`` — same idea, only for ``.i2p`` hosts."
msgstr "``--i2p-proxy URL`` — même principe, uniquement pour les hôtes ``.i2p``."
#: ../../source/faq.rst:49 b324f9d45ec04859b5170140d8d2539c
msgid ""
"The most common confusion is ``--proxy`` vs ``--tor-proxy``: ``--proxy`` "
"is \"everything through this gateway\", ``--tor-proxy`` is \"only onion "
"sites through Tor\"."
msgstr ""
"La confusion la plus fréquente oppose ``--proxy`` à ``--tor-proxy`` : "
"``--proxy`` veut dire « tout passe par cette passerelle », ``--tor-"
"proxy`` veut dire « seuls les sites onion passent par Tor »."
#: ../../source/faq.rst:53 77baa5cf834548c4a18b1c3966a9132c
msgid ""
"Full walkthrough (Tor Browser vs system ``tor`` port numbers, Tails OS, "
"timeout / retry tuning): :doc:`tor-and-proxies`."
msgstr ""
"Explication complète (ports de Tor Browser et du ``tor`` système, Tails "
"OS, réglage des délais et des nouvelles tentatives) : :doc:`tor-and-"
"proxies`."
#: ../../source/faq.rst:56 145e05d0d19040a3bf5327d301ca9354
msgid ""
"If your goal is actually \"bypass WAF blocks / fix 403 errors\", see the "
"*Sites fail / timeout / 403* section below — a residential proxy almost "
"always outperforms Tor or a VPN for that."
msgstr ""
"Si votre objectif est en réalité de « contourner les blocages des WAF / "
"corriger les erreurs 403 », voir la section *Des sites échouent, expirent"
" ou renvoient 403* ci-dessous : pour cela, un proxy résidentiel fait "
"presque toujours mieux que Tor ou un VPN."
#: ../../source/faq.rst:61 04d8647301cc429c995b8d9dcd3d4932
msgid "Can I use a VPN with Maigret?"
msgstr "Puis-je utiliser un VPN avec Maigret ?"
#: ../../source/faq.rst:63 4f7ea8f6001b480ea0221702a1ca960c
msgid ""
"**Yes**, but ``--proxy`` is usually a better choice. A VPN works "
"transparently at the OS level — Maigret needs no special configuration to"
" use one. However:"
msgstr ""
"**Oui**, mais ``--proxy`` est généralement un meilleur choix. Un VPN agit"
" de façon transparente au niveau du système : Maigret n'a besoin d'aucune"
" configuration particulière pour en profiter. Cependant :"
#: ../../source/faq.rst:67 8976ab8ffdc045e2862d0dcb88a1015c
msgid ""
"``--proxy`` is per-process: it does not affect other apps and does not "
"leak when toggled."
msgstr ""
"``--proxy`` s'applique au seul processus : il n'affecte pas les autres "
"applications et ne fuit pas lorsqu'on l'active ou le désactive."
#: ../../source/faq.rst:69 bfb80e29a9b94b4bbd870de2e2ae8a34
msgid ""
"``--proxy`` makes the egress IP visible in logs, which is useful when "
"diagnosing why a batch of sites returned ``UNKNOWN``."
msgstr ""
"``--proxy`` rend l'IP de sortie visible dans les journaux, ce qui aide à "
"comprendre pourquoi un lot de sites a renvoyé ``UNKNOWN``."
#: ../../source/faq.rst:71 a1aaf0415a744afe89ffa0bb1c010d9a
msgid ""
"``--proxy`` accepts a different value per run, so you can rotate between "
"residential and datacenter exits without touching system network "
"settings."
msgstr ""
"``--proxy`` accepte une valeur différente à chaque exécution : vous "
"pouvez donc alterner entre sorties résidentielles et sorties de "
"datacenter sans toucher à la configuration réseau du système."
#: ../../source/faq.rst:75 c564d9c3962a402daa5caabc0fc7a561
msgid ""
"If a lot of sites are returning 403, the cause is almost certainly that "
"the VPN exit IP is on a WAF blocklist (Cloudflare, DDoS-Guard, Akamai all"
" blanket-block common VPN ranges). A residential proxy via ``--proxy`` is"
" the usual fix — see the `\"Lots of sites fail / timeout / return 403\" "
"section <https://github.com/soxoj/maigret/blob/main/TROUBLESHOOTING.md"
"#lots-of-sites-fail--timeout--return-403>`_ in TROUBLESHOOTING.md."
msgstr ""
"Si beaucoup de sites renvoient 403, la cause est presque certainement que"
" l'IP de sortie du VPN figure sur une liste de blocage de WAF "
"(Cloudflare, DDoS-Guard et Akamai bloquent en bloc les plages VPN "
"courantes). Un proxy résidentiel via ``--proxy`` est le remède habituel, "
"voir la `section « Lots of sites fail / timeout / return 403 » "
"<https://github.com/soxoj/maigret/blob/main/TROUBLESHOOTING.md#lots-of-"
"sites-fail--timeout--return-403>`_ de TROUBLESHOOTING.md."
#: ../../source/faq.rst:84 4ebf5be9a3504afd89108f38c4640260
msgid "Does Maigret check domains via DNS?"
msgstr "Maigret vérifie-t-il les domaines via DNS ?"
#: ../../source/faq.rst:86 6328b1f58f644ee6a94453221739d4e0
#, python-brace-format
msgid ""
"**Yes, experimentally.** With ``--with-domains`` Maigret resolves a small"
" set of ``{username}.<tld>`` patterns through DNS (A-records) in parallel"
" with the normal HTTP checks. The current set is ``.ddns.net``, ``.com``,"
" ``.pro``, ``.me``, ``.biz``, ``.email``, ``.guru`` — 7 entries in the "
"database with ``protocol: dns``."
msgstr ""
"**Oui, à titre expérimental.** Avec ``--with-domains``, Maigret résout "
"par DNS (enregistrements A) un petit ensemble de motifs "
"``{username}.<tld>``, en parallèle des vérifications HTTP habituelles. "
"L'ensemble actuel est ``.ddns.net``, ``.com``, ``.pro``, ``.me``, "
"``.biz``, ``.email``, ``.guru``, soit 7 entrées de la base avec "
"``protocol: dns``."
#: ../../source/faq.rst:96 78e55c6575b94ea9896e0cbb0dc5c27c
msgid ""
"The flag is marked **experimental**: DNS-only checks can flag parking "
"domains and catch-all wildcards as if the username were registered, so "
"treat hits as a lead rather than confirmation."
msgstr ""
"L'option est marquée **expérimentale** : une vérification purement DNS "
"peut signaler des domaines parqués ou des jokers attrape-tout comme si le"
" nom d'utilisateur était enregistré. Traitez donc un résultat comme une "
"piste, pas comme une confirmation."
#: ../../source/faq.rst:100 95168070d79f4ac8a01d23aa343cbd49
msgid ""
"If your task is wider DNS reconnaissance — subdomain enumeration, WHOIS "
"history, typo-squatting — Maigret is the wrong tool. Established "
"alternatives:"
msgstr ""
"Si votre tâche relève d'une reconnaissance DNS plus large (énumération de"
" sous-domaines, historique WHOIS, typosquattage), Maigret n'est pas le "
"bon outil. Les alternatives établies :"
#: ../../source/faq.rst:104 816dba62a5ec4c19b8a7410d8ba8bde1
msgid ""
"`dnstwist <https://github.com/elceef/dnstwist>`_ — typo-squatting and "
"look-alike domains."
msgstr ""
"`dnstwist <https://github.com/elceef/dnstwist>`_ — typosquattage et "
"domaines ressemblants."
#: ../../source/faq.rst:106 cdab0a3e38f64e27b731f643d90d1545
msgid ""
"`amass <https://github.com/owasp-amass/amass>`_ / `subfinder "
"<https://github.com/projectdiscovery/subfinder>`_ — subdomain "
"enumeration."
msgstr ""
"`amass <https://github.com/owasp-amass/amass>`_ / `subfinder "
"<https://github.com/projectdiscovery/subfinder>`_ — énumération de sous-"
"domaines."
#: ../../source/faq.rst:109 2a76a0bbf0c148c48e97f81d73f4cd18
msgid ""
"`theHarvester <https://github.com/laramies/theHarvester>`_ — email / host"
" / subdomain harvesting by domain."
msgstr ""
"`theHarvester <https://github.com/laramies/theHarvester>`_ — collecte "
"d'e-mails, d'hôtes et de sous-domaines à partir d'un domaine."
#: ../../source/faq.rst:113 44b36009952b48edb97d8a5c377a0a25
msgid "Is there a Maigret Telegram bot?"
msgstr "Existe-t-il un bot Telegram pour Maigret ?"
#: ../../source/faq.rst:115 7c1712f69ba543e6805e36ed15fb2b9e
msgid ""
"**Yes.** A community-maintained bot lets you run Maigret without "
"installing anything locally:"
msgstr ""
"**Oui.** Un bot maintenu par la communauté permet d'utiliser Maigret sans"
" rien installer en local :"
#: ../../source/faq.rst:118 e9be390bcfa74adf9a6bd84a0e98af79
msgid ""
"Working instance: `maigret.app/docs-en <https://maigret.app/docs-en>`_ "
"(redirect — the hosted bot may move between providers)."
msgstr ""
"Instance en service : `maigret.app/docs-en <https://maigret.app/docs-"
"en>`_ (redirection, car le bot hébergé peut changer d'hébergeur)."
#: ../../source/faq.rst:121 0e5a05c6e2a348c78b2ad7476f8e670d
msgid ""
"Source code: `github.com/soxoj/maigret-tg-bot <https://github.com/soxoj"
"/maigret-tg-bot>`_."
msgstr ""
"Code source : `github.com/soxoj/maigret-tg-bot <https://github.com/soxoj"
"/maigret-tg-bot>`_."
#: ../../source/faq.rst:124 3be3d00b7aff4ec6b627dfadf1bdc3c4
msgid ""
"On the question of *searching Telegram itself*: Maigret checks whether a "
"``t.me/<user>`` page exists as part of the normal run, but it does not "
"parse channels, posts, members, or message contents. For Telegram content"
" OSINT you need a dedicated tool."
msgstr ""
"Quant à la recherche *dans Telegram lui-même* : Maigret vérifie "
"l'existence d'une page ``t.me/<user>`` dans le cadre d'une recherche "
"normale, mais il n'analyse ni les canaux, ni les publications, ni les "
"membres, ni le contenu des messages. Pour de l'OSINT sur les contenus "
"Telegram, il vous faut un outil dédié."
#: ../../source/faq.rst:130 f922999a761a46c2a029255e30a1cdd6
msgid "Where is the web interface?"
msgstr "Où est l'interface web ?"
#: ../../source/faq.rst:136 1fa865f76f26450c922ccf0e8f90a4ac
msgid ""
"Then open http://127.0.0.1:5000. Screenshots and a full walkthrough are "
"in :ref:`web-interface`."
msgstr ""
"Ouvrez ensuite http://127.0.0.1:5000. Des captures d'écran et une "
"présentation complète se trouvent dans :ref:`web-interface`."
#: ../../source/faq.rst:140 3e436d461dec4cce96cf7b54f7f6e159
msgid "Sites fail / timeout / return 403 — connection failures"
msgstr "Des sites échouent, expirent ou renvoient 403 : les échecs de connexion"
#: ../../source/faq.rst:142 dabfefba32e84ab8a1f393f9d51b3ca5
msgid ""
"This is the most common report and is almost always caused by anti-bot "
"protection (Cloudflare, DDoS-Guard, Akamai) or a slow link, not by a bug "
"in Maigret. Quick tweaks, in order:"
msgstr ""
"C'est le problème le plus souvent signalé, et il vient presque toujours "
"d'une protection anti-bot (Cloudflare, DDoS-Guard, Akamai) ou d'une "
"liaison lente, pas d'un bug de Maigret. Les réglages rapides, dans "
"l'ordre :"
#: ../../source/faq.rst:146 30f82061263c4f1abb1e6048ab945631
msgid ""
"``--timeout 60`` — the default 30 s is tight for slow networks and for "
"Tor."
msgstr ""
"``--timeout 60`` — les 30 s par défaut sont justes pour les réseaux lents"
" et pour Tor."
#: ../../source/faq.rst:148 ed82c79d4ddf48feae90c1d03f7c1799
msgid "``--retries 2`` — covers transient failures."
msgstr "``--retries 2`` — couvre les échecs passagers."
#: ../../source/faq.rst:149 217b6eb8e9c64fffb996f1473a9613ff
msgid "``-n 20`` — lower concurrency reduces WAF rate-limiting."
msgstr ""
"``-n 20`` — une concurrence plus basse réduit la limitation de débit par "
"les WAF."
#: ../../source/faq.rst:150 aa11f1f1dae64d6bb96546179f7de99c
msgid ""
"``--proxy http://user:pass@residential-proxy:port`` — datacenter IPs "
"(AWS, GCP, DigitalOcean) and most VPN ranges are blanket-blocked; "
"residential / mobile exits usually fix the bulk of 403s."
msgstr ""
"``--proxy http://user:pass@residential-proxy:port`` — les IP de "
"datacenter (AWS, GCP, DigitalOcean) et la plupart des plages VPN sont "
"bloquées en bloc ; des sorties résidentielles ou mobiles règlent en "
"général l'essentiel des 403."
#: ../../source/faq.rst:154 56ef75bcc49c42e2ae7247820d1df35b
msgid ""
"The full troubleshooting matrix (per-error recipes for 403, timeout, SSL,"
" captcha, ``UNKNOWN`` floods) lives in `TROUBLESHOOTING.md "
"<https://github.com/soxoj/maigret/blob/main/TROUBLESHOOTING.md>`_."
msgstr ""
"La matrice de dépannage complète (recettes par type d'erreur pour les "
"403, les dépassements de délai, le SSL, les captchas et les vagues de "
"``UNKNOWN``) se trouve dans `TROUBLESHOOTING.md "
"<https://github.com/soxoj/maigret/blob/main/TROUBLESHOOTING.md>`_."
#: ../../source/faq.rst:160 98f6bcb928354d92bcdf560d15eeb4f0
msgid "How do I generate a PDF report?"
msgstr "Comment générer un rapport PDF ?"
#: ../../source/faq.rst:162 0b427429d75b4b1890dc20ec93d411e1
msgid ""
"PDF support is an optional extra because it pulls heavy graphics "
"dependencies:"
msgstr ""
"Le support du PDF est une extension facultative, car il entraîne de "
"lourdes dépendances graphiques :"
#: ../../source/faq.rst:170 5d96d3cc456c4b74a49c80adecc86d08
msgid ""
"On Linux / macOS you also need system libraries (Pango, Cairo, GDK-"
"PixBuf). Per-OS install steps are in the *Optional: PDF reports* section "
"of :doc:`installation`."
msgstr ""
"Sous Linux et macOS, il vous faut également des bibliothèques système "
"(Pango, Cairo, GDK-PixBuf). Les étapes d'installation par système "
"d'exploitation figurent dans la section *Optional: PDF reports* de "
":doc:`installation`."
#: ../../source/faq.rst:174 01f17b6d73e24c8aa9a03417fadbac0f
msgid ""
"For other report formats (``--html``, ``--md``, ``--json``, ``--csv``, "
"``--txt``, ``--xmind``), see :doc:`command-line-options`."
msgstr ""
"Pour les autres formats de rapport (``--html``, ``--md``, ``--json``, "
"``--csv``, ``--txt``, ``--xmind``), voir :doc:`command-line-options`."
#: ../../source/faq.rst:178 bdc2c81bf7b749e7b0eacf79b433a1df
msgid "``maigret: command not found``"
msgstr "``maigret: command not found``"
#: ../../source/faq.rst:180 93679e6cba864a0c84689ccffcda8ed7
msgid ""
"The install succeeded but your shell can't find the ``maigret`` launcher "
"(you may see ``-bash: maigret: command not found`` or a *not recognized* "
"message on Windows). The package is installed — only the entry-point "
"script is not on your ``PATH``. Fixes, in order of laziness:"
msgstr ""
"L'installation a réussi, mais votre shell ne trouve pas le lanceur "
"``maigret`` (vous verrez peut-être ``-bash: maigret: command not found``,"
" ou un message *not recognized* sous Windows). Le paquet est bien "
"installé : c'est seulement le script de point d'entrée qui n'est pas dans"
" votre ``PATH``. Les solutions, de la plus paresseuse à la moins "
"paresseuse :"
#: ../../source/faq.rst:185 83f7492c96894886af3bf56b83e75fcc
msgid "Run it as a module instead — this always works if the package imported:"
msgstr ""
"Lancez-le comme un module : cela fonctionne toujours si le paquet a pu "
"être importé."
#: ../../source/faq.rst:191 9b8678954f2e47759e3e8c0edc7d8f59
msgid ""
"``pip install --user`` puts the script in a per-user ``bin`` / "
"``Scripts`` directory that is often not on ``PATH``. The cleanest fix is "
"to install into an isolated environment that manages ``PATH`` for you:"
msgstr ""
"``pip install --user`` place le script dans un répertoire ``bin`` / "
"``Scripts`` propre à l'utilisateur, souvent absent du ``PATH``. La "
"solution la plus propre est d'installer dans un environnement isolé qui "
"gère le ``PATH`` pour vous :"
#: ../../source/faq.rst:199 194c5f44b5db4f10a8d009981d85a845
msgid ""
"On Windows, reopen the terminal after installing (``PATH`` is only read "
"at startup), or use the standalone ``maigret_standalone.exe`` — see "
":doc:`installation`."
msgstr ""
"Sous Windows, rouvrez le terminal après l'installation (le ``PATH`` n'est"
" lu qu'au démarrage), ou utilisez l'exécutable autonome "
"``maigret_standalone.exe``, voir :doc:`installation`."
#: ../../source/faq.rst:204 59342aea53064f56abcfd0fa7d228334
msgid "``error: metadata-generation-failed``"
msgstr "``error: metadata-generation-failed``"
#: ../../source/faq.rst:206 71790a70caa44957bf8f8a0cac42a2d2
msgid ""
"This comes from **pip**, not Maigret: pip could not build one of the "
"dependencies. Almost always the build toolchain is stale or a native "
"dependency is missing its system libraries. Try, in order:"
msgstr ""
"Cette erreur vient de **pip**, pas de Maigret : pip n'a pas réussi à "
"construire l'une des dépendances. Presque toujours, la chaîne de "
"compilation est trop ancienne, ou une dépendance native n'a pas ses "
"bibliothèques système. Essayez, dans l'ordre :"
#: ../../source/faq.rst:210 224b4f76b6ae4ce1aa9525cb3c3aad22
msgid "Upgrade the toolchain and retry:"
msgstr "Mettez à jour la chaîne d'outils et réessayez :"
#: ../../source/faq.rst:216 391579687d664158825de7fed4002bb0
msgid ""
"Use a supported interpreter (Python 3.103.12). Bleeding-edge or end-of-"
"life versions frequently have no prebuilt wheels, forcing a source build "
"that then fails."
msgstr ""
"Utilisez un interpréteur pris en charge (Python 3.10 à 3.12). Les "
"versions toutes fraîches ou en fin de vie n'ont souvent pas de wheels "
"précompilées, ce qui force une compilation depuis les sources, laquelle "
"échoue ensuite."
#: ../../source/faq.rst:219 2b28b6f59b8543e693478f9c37a4dd27
msgid ""
"If the failing package is a native one (``lxml``, ``reportlab``, "
"``_renderPM``, or an error mentioning ``ft2build.h`` / ``cairo``), you "
"need system build dependencies — see the *Troubleshooting* section of "
":doc:`installation`, or skip the compilers entirely and use Docker."
msgstr ""
"Si le paquet en échec est un paquet natif (``lxml``, ``reportlab``, "
"``_renderPM``, ou une erreur mentionnant ``ft2build.h`` / ``cairo``), il "
"vous faut les dépendances de compilation système : voir la section "
"*Troubleshooting* de :doc:`installation`, ou évitez complètement les "
"compilateurs en passant par Docker."
#: ../../source/faq.rst:225 eeea5be67b82440ca1189998429dc76d
msgid "``Too many errors of type \"...\"``"
msgstr "``Too many errors of type \"...\"``"
#: ../../source/faq.rst:227 d032a122036d453a9e756bb0c0dabc3b
msgid ""
"This is Maigret's **end-of-run summary**, not a crash — the run finished."
" It means a large share of sites failed the *same* way, so the fix "
"depends on the class printed in the quotes:"
msgstr ""
"C'est le **résumé de fin d'exécution** de Maigret, pas un plantage : la "
"recherche est allée à son terme. Cela signifie qu'une grande partie des "
"sites a échoué de la *même* façon ; le remède dépend donc de la catégorie"
" affichée entre guillemets :"
#: ../../source/faq.rst:231 bb55ffce4a3049d0b871229316d14d4b
msgid ""
"``Connecting failure`` — check your internet connection; if only a subset"
" of sites fails, lower parallelism with ``-n 10``."
msgstr ""
"``Connecting failure`` — vérifiez votre connexion internet ; si seule une"
" partie des sites échoue, baissez le parallélisme avec ``-n 10``."
#: ../../source/faq.rst:233 380f20253ca34c9ea8a7cde8c550cc36
msgid ""
"``Connecting failure (DNS)`` — DNS resolution failed for most sites. Try "
"``--dns-resolver threaded`` (often fixes Windows / VPN / corporate "
"networks); failing that, check your VPN / firewall and consider a public "
"resolver (``1.1.1.1`` or ``8.8.8.8``)."
msgstr ""
"``Connecting failure (DNS)`` — la résolution DNS a échoué pour la plupart"
" des sites. Essayez ``--dns-resolver threaded`` (cela règle souvent le "
"problème sous Windows, en VPN ou en réseau d'entreprise) ; sinon, "
"vérifiez votre VPN et votre pare-feu, et envisagez un résolveur public "
"(``1.1.1.1`` ou ``8.8.8.8``)."
#: ../../source/faq.rst:237 ed15f78ec1904519aab1309de90d0577
msgid "``Request timeout`` — raise ``--timeout`` or switch ISP / network."
msgstr ""
"``Request timeout`` — augmentez ``--timeout``, ou changez de fournisseur "
"d'accès ou de réseau."
#: ../../source/faq.rst:238 61df6881f45c4f64b728fed6c7719305
msgid "``Captcha`` — switch to another IP address, or supply service cookies."
msgstr "``Captcha`` — changez d'adresse IP, ou fournissez les cookies du service."
#: ../../source/faq.rst:239 2b68df5a17fd41d49b8d3f267e7bd99a
msgid ""
"``Bot protection`` / ``Access denied`` — switch IP; a residential "
"``--proxy`` or ``--cloudflare-bypass`` is the usual fix."
msgstr ""
"``Bot protection`` / ``Access denied`` — changez d'IP ; un ``--proxy`` "
"résidentiel ou ``--cloudflare-bypass`` est le remède habituel."
#: ../../source/faq.rst:241 153c51e51cca49968ba213f00de0fc00
msgid ""
"``Webgate unavailable`` — ``--cloudflare-bypass`` is on but no solver is "
"reachable; start FlareSolverr, or drop the flag to skip protected sites."
msgstr ""
"``Webgate unavailable`` — ``--cloudflare-bypass`` est actif, mais aucun "
"solveur n'est joignable ; démarrez FlareSolverr, ou retirez l'option pour"
" ignorer les sites protégés."
#: ../../source/faq.rst:244 fbfd239ae2544d29a6c3d5608e6537fb
msgid ""
"If most of your run is one of the last three, see the *Sites fail / "
"timeout / return 403* section above and the full `TROUBLESHOOTING.md "
"<https://github.com/soxoj/maigret/blob/main/TROUBLESHOOTING.md>`_."
msgstr ""
"Si l'essentiel de votre recherche tombe dans l'une des trois dernières "
"catégories, voir la section *Des sites échouent, expirent ou renvoient "
"403* ci-dessus, ainsi que le `TROUBLESHOOTING.md "
"<https://github.com/soxoj/maigret/blob/main/TROUBLESHOOTING.md>`_ "
"complet."
@@ -0,0 +1,658 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/features.rst:4 479e20927d724f059ad1ea5f902dc956
msgid "Features"
msgstr "Fonctionnalités"
#: ../../source/features.rst:6 6484d057341e4a168c97de336c5c2344
msgid "This is the list of Maigret features."
msgstr "Voici la liste des fonctionnalités de Maigret."
#: ../../source/features.rst:11 f61e2f47116d4b94972b0efaa6096fc6
msgid "Web Interface"
msgstr "Interface web"
#: ../../source/features.rst:13 294bbc18f2664c50a47136d1ead36ed5
msgid ""
"You can run Maigret with a web interface, where you can view the graph "
"with results and download reports of all formats on a single page."
msgstr ""
"Vous pouvez lancer Maigret avec une interface web, où vous pouvez "
"consulter le graphe des résultats et télécharger les rapports dans tous "
"les formats depuis une seule page."
#: ../../source/features.rst:16 60894afb27eb4a15b7da47e20f0101fb
msgid "Web interface: how to start"
msgstr "Interface web : comment la démarrer"
#: ../../source/features.rst:20 7fe46da3e65c422da7c757cbfdaf93b2
msgid "Web interface: results"
msgstr "Interface web : les résultats"
#: ../../source/features.rst:24 5e5351615ca64b27b939f0609d1ad1f1
msgid "Instructions:"
msgstr "Marche à suivre :"
#: ../../source/features.rst:26 22af91e9e7ff4a84a9a800944ef29413
msgid "Run Maigret with the ``--web`` flag and specify the port number."
msgstr "Lancez Maigret avec l'option ``--web`` en précisant le numéro de port."
#: ../../source/features.rst:32 c3440b2e4fa84098944e08f34c7b1ed3
msgid ""
"Open http://127.0.0.1:5000 in your browser and enter one or more "
"usernames to make a search."
msgstr ""
"Ouvrez http://127.0.0.1:5000 dans votre navigateur et saisissez un ou "
"plusieurs noms d'utilisateur pour lancer une recherche."
#: ../../source/features.rst:34 3dfd160b980f415da57058945a2f3919
msgid ""
"Wait a bit for the search to complete and view the graph with results, "
"the table with all accounts found, and download reports of all formats."
msgstr ""
"Patientez le temps que la recherche se termine, puis consultez le graphe "
"des résultats, le tableau de tous les comptes trouvés, et téléchargez les"
" rapports dans tous les formats."
#: ../../source/features.rst:39 50b6b82cf6c24d07a586fcb3d7d3997a
msgid "Telegram bot"
msgstr "Bot Telegram"
#: ../../source/features.rst:41 3c3166f22118428ca282adc1f4c4ff5b
msgid ""
"A community-maintained Telegram bot lets you run Maigret without "
"installing anything locally."
msgstr ""
"Un bot Telegram maintenu par la communauté permet d'utiliser Maigret sans"
" rien installer en local."
#: ../../source/features.rst:44 c8962593353244ccace601c7b80eb8df
msgid ""
"Working instance: `maigret.app/docs-en <https://maigret.app/docs-en>`_ "
"(redirect — the hosted bot may move between providers)."
msgstr ""
"Instance en service : `maigret.app/docs-en <https://maigret.app/docs-"
"en>`_ (redirection, car le bot hébergé peut changer d'hébergeur)."
#: ../../source/features.rst:47 342c0c7bd4d14f23a8708a07a480eda1
msgid ""
"Source code: `github.com/soxoj/maigret-tg-bot <https://github.com/soxoj"
"/maigret-tg-bot>`_."
msgstr ""
"Code source : `github.com/soxoj/maigret-tg-bot <https://github.com/soxoj"
"/maigret-tg-bot>`_."
#: ../../source/features.rst:51 ad736673a67c4c0da5d8055546b1595e
msgid "Personal info gathering"
msgstr "Collecte d'informations personnelles"
#: ../../source/features.rst:53 8018434bf9d44a7b8cc2d64329d90b8f
msgid ""
"Maigret does the `parsing of accounts webpages and extraction <https"
"://socid-extractor.readthedocs.io/en/latest/how-extraction-works.html>`_ "
"of personal info, links to other profiles, etc. Extracted info displayed "
"as an additional result in CLI output and as tables in HTML and PDF "
"reports. Also, Maigret use found ids and usernames from links to start a "
"recursive search."
msgstr ""
"Maigret effectue l'`analyse des pages de comptes et l'extraction <https"
"://socid-extractor.readthedocs.io/en/latest/how-extraction-works.html>`_ "
"des informations personnelles, des liens vers d'autres profils, etc. Les "
"informations extraites apparaissent comme résultat complémentaire dans la"
" sortie en ligne de commande, et sous forme de tableaux dans les rapports"
" HTML et PDF. Maigret utilise également les identifiants et noms "
"d'utilisateur trouvés dans les liens pour lancer une recherche récursive."
#: ../../source/features.rst:57 e816605686c14c2f86c08b9bb8a854e5
msgid "Enabled by default, can be disabled with ``--no extracting``."
msgstr "Activée par défaut, désactivable avec ``--no extracting``."
#: ../../source/features.rst:83 5f7a75cb1e534a1795713c3ca5fa3fc9
msgid "Recursive search"
msgstr "Recherche récursive"
#: ../../source/features.rst:85 b90df80adc2c4a9594cea049beb5db42
msgid ""
"Maigret has the ability to scan account pages for :ref:`common "
"identifiers <supported-identifier-types>` and usernames found in links. "
"When people include links to their other social media accounts, Maigret "
"can automatically detect and initiate new searches for those profiles. "
"Any information discovered through this process will be shown in both the"
" command-line interface output and generated reports."
msgstr ""
"Maigret est capable d'examiner les pages de comptes à la recherche "
"d':ref:`identifiants courants <supported-identifier-types>` et de noms "
"d'utilisateur présents dans les liens. Lorsque les gens incluent des "
"liens vers leurs autres comptes de réseaux sociaux, Maigret peut les "
"détecter automatiquement et lancer de nouvelles recherches sur ces "
"profils. Tout ce qui est découvert par ce biais apparaît à la fois dans "
"la sortie en ligne de commande et dans les rapports générés."
#: ../../source/features.rst:89 59c6a0ba733049eb8de9bdb518b0117f
msgid "Enabled by default, can be disabled with ``--no-recursion``."
msgstr "Activée par défaut, désactivable avec ``--no-recursion``."
#: ../../source/features.rst:122 f8537054424d4a019b8ae620c86104b4
msgid "Username permutations"
msgstr "Permutations de noms d'utilisateur"
#: ../../source/features.rst:124 aac4ccb303bb44849ae6ee621213e3d7
msgid ""
"Maigret can generate permutations of usernames. Just pass a few usernames"
" in the CLI and use ``--permute`` flag. Thanks to `@balestek "
"<https://github.com/balestek>`_ for the idea and implementation."
msgstr ""
"Maigret peut générer des permutations de noms d'utilisateur. Il suffit de"
" passer plusieurs noms d'utilisateur en ligne de commande et d'ajouter "
"l'option ``--permute``. Merci à `@balestek "
"<https://github.com/balestek>`_ pour l'idée et son implémentation."
#: ../../source/features.rst:149 209c9ad7230c4ac0970cf290fb49a3b4
msgid "Reports"
msgstr "Rapports"
#: ../../source/features.rst:151 b2b750c8109e49a8aef8ddf3609918d0
msgid ""
"Maigret currently supports HTML, PDF, TXT, CSV, XMind 8 mindmap, JSON, "
"and Markdown reports, plus graph exports: an interactive HTML graph "
"(``--graph``) and a Neo4j Cypher script (``--neo4j``) for loading the "
"results into a graph database."
msgstr ""
"Maigret prend actuellement en charge les rapports HTML, PDF, TXT, CSV, "
"carte mentale XMind 8, JSON et Markdown, ainsi que les exports de graphe "
": un graphe HTML interactif (``--graph``) et un script Cypher pour Neo4j "
"(``--neo4j``), qui charge les résultats dans une base de données orientée"
" graphe."
#: ../../source/features.rst:156 349b1030217b42fc8fc21bdbcc9a3d17
msgid "HTML/PDF reports contain:"
msgstr "Les rapports HTML et PDF contiennent :"
#: ../../source/features.rst:158 05417aab0c9340598c4663b376980288
msgid "profile photo"
msgstr "la photo de profil"
#: ../../source/features.rst:159 3bbd0fbc731a4c508f6f8bcfd5efdbbd
msgid "all the gathered personal info"
msgstr "toutes les informations personnelles collectées"
#: ../../source/features.rst:160 78847ee3e4984c3fb4388095808ee499
msgid ""
"additional information about supposed personal data (full name, gender, "
"location), resulting from statistics of all found accounts"
msgstr ""
"des informations complémentaires sur les données personnelles supposées "
"(nom complet, genre, localisation), déduites des statistiques de "
"l'ensemble des comptes trouvés"
#: ../../source/features.rst:162 3d7d6cb2d82d484a8a6450b4ed1e0c72
msgid ""
"Also, there is a short text report in the CLI output after the end of a "
"searching phase."
msgstr ""
"Un court rapport textuel est également affiché en ligne de commande à la "
"fin de la phase de recherche."
#: ../../source/features.rst:164 83fbef94d39847329f2ceae1d19f8d30
msgid ""
"The ``--neo4j`` flag serialises the same graph that ``--graph`` builds "
"into an idempotent ``.cypher`` script, importable with ``cypher-shell`` "
"or the Neo4j Browser. See :ref:`neo4j-export` for the schema and import "
"instructions."
msgstr ""
"L'option ``--neo4j`` sérialise le graphe construit par ``--graph`` dans "
"un script ``.cypher`` idempotent, importable avec ``cypher-shell`` ou le "
"Neo4j Browser. Voir :ref:`neo4j-export` pour le schéma et les "
"instructions d'import."
#: ../../source/features.rst:169 b13d136ad3054aaf82f50ccaf2c3c2d7
msgid "XMind 8 mindmaps are incompatible with XMind 2022!"
msgstr "Les cartes mentales XMind 8 sont incompatibles avec XMind 2022 !"
#: ../../source/features.rst:172 3de1b6a6ce0349548af48f2e049f1ec9
msgid "AI analysis"
msgstr "Analyse par IA"
#: ../../source/features.rst:174 94e92083aacb4e0bab22f0b03b7bbecc
msgid ""
"Maigret can produce a short, human-readable investigation summary on top "
"of the raw search results using the ``--ai`` flag. It builds the internal"
" Markdown report, sends it to an OpenAI-compatible chat completion "
"endpoint, and streams the model's reply directly to the terminal."
msgstr ""
"Avec l'option ``--ai``, Maigret peut produire une courte synthèse "
"d'enquête lisible, en plus des résultats bruts de la recherche. Il "
"construit le rapport Markdown interne, l'envoie à un point d'entrée de "
"complétion de conversation compatible OpenAI, et diffuse la réponse du "
"modèle directement dans le terminal."
#: ../../source/features.rst:185 2e295078a99c4e349478af255afdf1e5
msgid ""
"The summary uses a fixed format with the most likely real name, location,"
" occupation, interests, languages, main website, username variants, "
"number of platforms, active years, a confidence rating, and a short list "
"of follow-up leads. While ``--ai`` is active, per-site progress and the "
"short text report are suppressed so the streamed summary is the main "
"output."
msgstr ""
"La synthèse suit un format fixe : nom réel le plus probable, "
"localisation, profession, centres d'intérêt, langues, site web principal,"
" variantes de nom d'utilisateur, nombre de plateformes, années "
"d'activité, un indice de confiance et une courte liste de pistes à "
"creuser. Tant que ``--ai`` est actif, la progression site par site et le "
"court rapport textuel sont masqués, afin que la synthèse diffusée reste "
"la sortie principale."
#: ../../source/features.rst:192 5efa4c4e80864b3aab242f0fb06faa11
msgid ""
"The endpoint, model, and API key are configured via ``settings.json`` "
"(``openai_api_key``, ``openai_model``, ``openai_api_base_url``) or the "
"``OPENAI_API_KEY`` environment variable. Any OpenAI-compatible API can be"
" used (Azure OpenAI, OpenRouter, a local server, …). See :ref:`ai-"
"analysis` and :ref:`settings` for details."
msgstr ""
"Le point d'entrée, le modèle et la clé d'API se configurent via "
"``settings.json`` (``openai_api_key``, ``openai_model``, "
"``openai_api_base_url``) ou via la variable d'environnement "
"``OPENAI_API_KEY``. N'importe quelle API compatible OpenAI convient "
"(Azure OpenAI, OpenRouter, un serveur local, etc.). Voir :ref:`ai-"
"analysis` et :ref:`settings` pour les détails."
#: ../../source/features.rst:199 fd0a6689621246be8249f3506802dbd3
msgid "Tags"
msgstr "Tags"
#: ../../source/features.rst:201 d4b844a709234973b8d25c1cdc7c5e6e
msgid ""
"The Maigret sites database very big (and will be bigger), and it is maybe"
" an overhead to run a search for all the sites. Also, it is often hard to"
" understand, what sites more interesting for us in the case of a certain "
"person."
msgstr ""
"La base de sites de Maigret est très grande (et continuera de grandir) : "
"lancer une recherche sur tous les sites est parfois excessif. De plus, il"
" est souvent difficile de savoir quels sites nous intéressent vraiment "
"dans le cas d'une personne donnée."
#: ../../source/features.rst:204 0e1d4cf2b29f45e99f8eba51c6a55990
msgid ""
"Tags markup allows selecting a subset of sites by interests (photo, "
"messaging, finance, etc.) or by country. Tags of found accounts grouped "
"and displayed in the reports."
msgstr ""
"Le balisage par tags permet de sélectionner un sous-ensemble de sites par"
" centre d'intérêt (photo, messagerie, finance, etc.) ou par pays. Les "
"tags des comptes trouvés sont regroupés et affichés dans les rapports."
#: ../../source/features.rst:206 ea8c630e68174ea99427d3e75a9b8dbc
msgid "See full description :doc:`in the Tags Wiki page <tags>`."
msgstr "Voir la description complète :doc:`sur la page Tags <tags>`."
#: ../../source/features.rst:209 a5ac0a8df67f40f2838b46116c6702f2
msgid "Censorship and captcha detection"
msgstr "Détection de la censure et des captchas"
#: ../../source/features.rst:211 832f8e2b8a804d81a93f71ac8f662ff2
#, python-format
msgid ""
"Maigret can detect common errors such as censorship stub pages, "
"CloudFlare captcha pages, and others. If you get more them 3% errors of a"
" certain type in a session, you've got a warning message in the CLI "
"output with recommendations to improve performance and avoid problems."
msgstr ""
"Maigret sait repérer les erreurs courantes : pages de blocage liées à la "
"censure, pages de captcha CloudFlare, et d'autres encore. Si plus de 3 % "
"des résultats d'une session relèvent d'un même type d'erreur, un "
"avertissement s'affiche en ligne de commande, avec des recommandations "
"pour améliorer les performances et éviter les problèmes."
#: ../../source/features.rst:215 f802bac3b7da45088d444fa30278700e
msgid "Retries"
msgstr "Nouvelles tentatives"
#: ../../source/features.rst:217 883e29ba66584ce5989807e91f2b9d36
msgid ""
"Maigret will do retries of the requests with temporary errors got "
"(connection failures, proxy errors, etc.)."
msgstr ""
"Maigret réessaie les requêtes ayant rencontré une erreur temporaire "
"(échec de connexion, erreur de proxy, etc.)."
#: ../../source/features.rst:219 d620f8f374f5495fb6f86697f474d306
msgid "One attempt by default, can be changed with option ``--retries N``."
msgstr "Une tentative par défaut, modifiable avec l'option ``--retries N``."
#: ../../source/features.rst:222 992f53992514497b8ea244dd679cc29a
msgid "Database self-check"
msgstr "Auto-vérification de la base"
#: ../../source/features.rst:224 056b798c883845179a9a7645849c4e99
msgid ""
"Maigret includes a self-check mode (``--self-check``) that validates "
"every site in the database by looking up its known-claimed and known-"
"unclaimed usernames and verifying that the detection results match "
"expectations."
msgstr ""
"Maigret dispose d'un mode d'auto-vérification (``--self-check``) qui "
"valide chaque site de la base : il recherche les noms d'utilisateur "
"connus comme existants et comme inexistants, puis vérifie que les "
"résultats de détection correspondent aux attentes."
#: ../../source/features.rst:228 5198351c6e054d71bd7e4713ba07af29
msgid ""
"The self-check is **error-resilient**: if an individual site check raises"
" an unexpected exception (e.g. a network error or a parsing failure), the"
" error is caught, logged, and recorded as an issue — the remaining sites "
"continue to be checked without interruption. This means the process "
"always runs to completion, even when checking hundreds of sites with ``-a"
" --self-check``."
msgstr ""
"L'auto-vérification est **résistante aux erreurs** : si la vérification "
"d'un site déclenche une exception inattendue (erreur réseau, échec "
"d'analyse, etc.), l'erreur est capturée, journalisée et enregistrée comme"
" un problème, et les sites restants continuent d'être vérifiés sans "
"interruption. Le processus va donc toujours jusqu'au bout, même en "
"vérifiant des centaines de sites avec ``-a --self-check``."
#: ../../source/features.rst:234 9607ee58ae894d45bffdce32b4afeeb3
msgid ""
"Use ``--auto-disable`` together with ``--self-check`` to automatically "
"disable sites that fail checks. Without it, issues are only reported. Use"
" ``--diagnose`` to print detailed per-site diagnosis including the check "
"type, specific issues, and recommendations."
msgstr ""
"Utilisez ``--auto-disable`` avec ``--self-check`` pour désactiver "
"automatiquement les sites qui échouent. Sans cette option, les problèmes "
"sont seulement signalés. Utilisez ``--diagnose`` pour afficher un "
"diagnostic détaillé par site, comprenant le type de vérification, les "
"problèmes précis et des recommandations."
#: ../../source/features.rst:251 17167ef126684ef08e1204c050c09b04
msgid "Archives and mirrors checking"
msgstr "Vérification des archives et des miroirs"
#: ../../source/features.rst:253 b18f2af770cb45368a948821d4df5c38
msgid ""
"The Maigret database contains not only the original websites, but also "
"mirrors, archives, and aggregators. For example:"
msgstr ""
"La base de Maigret contient non seulement les sites d'origine, mais aussi"
" des miroirs, des archives et des agrégateurs. Par exemple :"
#: ../../source/features.rst:255 b0a8dbb769a144b792207968d13013bf
msgid "`Picuki <https://www.picuki.com/>`_, Instagram mirror"
msgstr "`Picuki <https://www.picuki.com/>`_, un miroir d'Instagram"
#: ../../source/features.rst:256 e4fcdf7b43894ea18390e499271ab2c8
msgid ""
"(no longer available) `Reddit BigData search <https://camas.github.io"
"/reddit-search/>`_"
msgstr ""
"(n'est plus disponible) `la recherche Reddit BigData "
"<https://camas.github.io/reddit-search/>`_"
#: ../../source/features.rst:257 b3f099e32909431eb66efb0c15cc4f01
msgid "(no longer available) `Twitter shadowban <https://shadowban.eu/>`_ checker"
msgstr ""
"(n'est plus disponible) le vérificateur de `shadowban Twitter "
"<https://shadowban.eu/>`_"
#: ../../source/features.rst:259 c1b8bf1cd73845479a486bbdfc3b7eeb
msgid ""
"It allows getting additional info about the person and checking the "
"existence of the account even if the main site is unavailable (bot "
"protection, captcha, etc.)"
msgstr ""
"Cela permet d'obtenir des informations supplémentaires sur la personne et"
" de vérifier l'existence du compte même lorsque le site principal est "
"inaccessible (protection anti-bot, captcha, etc.)"
#: ../../source/features.rst:264 b67a0daf798149dbb527019cc0eb419a
msgid "Cloudflare webgate bypass"
msgstr "Contournement du webgate Cloudflare"
#: ../../source/features.rst:268 7546a25ae1f04cb3a2de678c604965b7
msgid ""
"**Experimental feature.** The Cloudflare webgate is under active "
"development. The configuration schema, CLI flag behaviour, and the set of"
" sites that route through it may change without backwards-compatibility "
"guarantees. Expect rough edges (CF rate limits, occasional solver "
"failures) and report issues so they can be ironed out."
msgstr ""
"**Fonctionnalité expérimentale.** Le webgate Cloudflare est en cours de "
"développement actif. Le schéma de configuration, le comportement de "
"l'option en ligne de commande et l'ensemble des sites qui y sont routés "
"peuvent changer sans garantie de compatibilité ascendante. Attendez-vous "
"à quelques aspérités (limites de débit CF, échecs occasionnels du "
"solveur) et signalez les problèmes pour qu'ils puissent être corrigés."
#: ../../source/features.rst:274 e13b5e80e27d4347918380b7c974d318
msgid ""
"Some sites sit behind a full Cloudflare JavaScript challenge or a CF "
"firewall hard block — these are tagged ``protection: "
"[\"cf_js_challenge\"]`` or ``protection: [\"cf_firewall\"]`` in the "
"database and are normally kept disabled because neither aiohttp nor "
"curl_cffi can solve the JS challenge on their own."
msgstr ""
"Certains sites sont protégés par un défi JavaScript Cloudflare complet ou"
" par un blocage ferme du pare-feu CF : ils portent ``protection: "
"[\"cf_js_challenge\"]`` ou ``protection: [\"cf_firewall\"]`` dans la base"
" et sont normalement désactivés, car ni aiohttp ni curl_cffi ne savent "
"résoudre seuls le défi JavaScript."
#: ../../source/features.rst:279 e14e98d42ed44fb9845f4a2f6bca7059
msgid ""
"Maigret can offload these checks to a local Chrome-based solver. Two "
"backends are supported, configured in ``settings.json`` under "
"``cloudflare_bypass.modules`` (the first reachable module wins; "
"subsequent ones are tried as a fallback chain):"
msgstr ""
"Maigret peut déléguer ces vérifications à un solveur local basé sur "
"Chrome. Deux backends sont pris en charge, configurés dans "
"``settings.json`` sous ``cloudflare_bypass.modules`` (le premier module "
"joignable l'emporte ; les suivants forment une chaîne de repli) :"
#: ../../source/features.rst:284 53658267d63d4ee0975d88a63ab246cd
msgid ""
"**FlareSolverr** (recommended). Runs a real Chrome instance and exposes a"
" JSON API. The upstream HTTP status, headers and final URL are preserved,"
" so ``checkType: status_code`` and ``checkType: response_url`` keep "
"working through the bypass."
msgstr ""
"**FlareSolverr** (recommandé). Fait tourner une véritable instance de "
"Chrome et expose une API JSON. Le statut HTTP en amont, les en-têtes et "
"l'URL finale sont préservés : les vérifications ``checkType: "
"status_code`` et ``checkType: response_url`` continuent donc de "
"fonctionner à travers le contournement."
#: ../../source/features.rst:293 8f2f975ca31940aeb6430c09a7e5f3ab
msgid ""
"**CloudflareBypassForScraping** (legacy fallback). Returns rendered HTML "
"only, so the upstream status code is lost — ``checkType: message`` keeps "
"working but ``status_code`` checks misfire (treated as 200 on success)."
msgstr ""
"**CloudflareBypassForScraping** (repli hérité). Ne renvoie que du HTML "
"rendu : le code de statut en amont est perdu. Les vérifications "
"``checkType: message`` continuent de fonctionner, mais celles de type "
"``status_code`` se déclenchent à tort (un succès est traité comme un "
"200)."
#: ../../source/features.rst:297 649fdad8fc8d4fffa0e9066e394f2747
msgid "Activate the bypass either with the CLI flag::"
msgstr "Activez le contournement soit avec l'option de ligne de commande ::"
#: ../../source/features.rst:301 f2df085e2974481bbe96d03c1dd54c46
msgid ""
"or by setting ``cloudflare_bypass.enabled`` to ``true`` in "
"``settings.json``. The web UI (``python -m maigret.web.app``) reads the "
"same setting — there is no separate toggle in the form, so flipping "
"``enabled`` is what activates the bypass for browser-driven runs."
msgstr ""
"soit en mettant ``cloudflare_bypass.enabled`` à ``true`` dans "
"``settings.json``. L'interface web (``python -m maigret.web.app``) lit le"
" même paramètre : il n'y a pas d'interrupteur distinct dans le "
"formulaire, c'est donc bien ``enabled`` qui active le contournement pour "
"les recherches lancées depuis le navigateur."
#: ../../source/features.rst:306 30203a1de79a4ec38594f56133db3bb4
msgid ""
"The bypass only fires for sites whose ``protection`` field intersects "
"``cloudflare_bypass.trigger_protection`` (default ``[\"cf_js_challenge\","
" \"cf_firewall\", \"webgate\"]``); all other sites use the normal aiohttp"
" / curl_cffi path."
msgstr ""
"Le contournement ne se déclenche que pour les sites dont le champ "
"``protection`` recoupe ``cloudflare_bypass.trigger_protection`` (par "
"défaut ``[\"cf_js_challenge\", \"cf_firewall\", \"webgate\"]``) ; tous "
"les autres sites empruntent le chemin habituel, aiohttp / curl_cffi."
#: ../../source/features.rst:311 b0cee78cdffd468a8422bb75dad37cc0
msgid ""
"If all configured modules are unreachable, affected sites get an UNKNOWN "
"status with an actionable error pointing at the first module's URL — the "
"fix is almost always to start the FlareSolverr container."
msgstr ""
"Si aucun des modules configurés n'est joignable, les sites concernés "
"reçoivent le statut UNKNOWN, accompagné d'une erreur explicite pointant "
"vers l'URL du premier module : le remède consiste presque toujours à "
"démarrer le conteneur FlareSolverr."
#: ../../source/features.rst:315 1f7ba21a5e8a4ce8b9239dffb4619306
msgid ""
"FlareSolverr session reuse is automatic: Maigret pins a single ``session:"
" <session_prefix>-<pid>`` per run, so cf_clearance cookies are shared "
"between checks of the same domain (510× faster on subsequent requests to"
" that host)."
msgstr ""
"La réutilisation des sessions FlareSolverr est automatique : Maigret fixe"
" une seule ``session: <session_prefix>-<pid>`` par exécution, si bien que"
" les cookies cf_clearance sont partagés entre les vérifications d'un même"
" domaine (5 à 10 fois plus rapide pour les requêtes suivantes vers cet "
"hôte)."
#: ../../source/features.rst:321 f9215d5c4d494d8ebb416dd81a6f7bb3
msgid "Activation"
msgstr "Activation"
#: ../../source/features.rst:322 caa751fc5dee4a57af2b85cfa91eb239
msgid ""
"The activation mechanism helps make requests to sites requiring "
"additional authentication like cookies, JWT tokens, or custom headers."
msgstr ""
"Le mécanisme d'activation permet d'interroger les sites qui exigent une "
"authentification supplémentaire : cookies, jetons JWT ou en-têtes "
"personnalisés."
#: ../../source/features.rst:324 2c80373446a74fa3aa0f8b7929a142ed
msgid "It works by implementing a custom function that:"
msgstr "Il repose sur une fonction dédiée qui :"
#: ../../source/features.rst:326 3520e93d4f284550a37046b054d4681b
msgid "Makes a specialized HTTP request to a specific website endpoint"
msgstr "Envoie une requête HTTP spécifique à un point d'entrée précis du site"
#: ../../source/features.rst:327 ac6abe41f22d47f38e582e12b9bb7f57
msgid "Processes the response"
msgstr "Traite la réponse"
#: ../../source/features.rst:328 fe331ebd523d4f6bbe86eff5eb387b65
msgid "Updates the headers/cookies for that site in the local Maigret database"
msgstr ""
"Met à jour les en-têtes et les cookies de ce site dans la base locale de "
"Maigret"
#: ../../source/features.rst:330 11b64bdd8d4442fbb48dbb61aa169ff1
msgid ""
"Since activation only triggers after encountering specific errors, a "
"retry (or another Maigret run) is needed to obtain a valid response with "
"the updated authentication."
msgstr ""
"Comme l'activation ne se déclenche qu'après certaines erreurs, il faut "
"une nouvelle tentative (ou une nouvelle exécution de Maigret) pour "
"obtenir une réponse valide avec l'authentification mise à jour."
#: ../../source/features.rst:332 d3aab7ded9564938bbfd7edd7beef961
msgid ""
"The activation mechanism is enabled by default, and cannot be disabled at"
" the moment."
msgstr ""
"Le mécanisme d'activation est activé par défaut et ne peut pas être "
"désactivé pour l'instant."
#: ../../source/features.rst:334 e1fb739f230343648a9269e9156d8f1b
msgid "See for more details in Development section :ref:`activation-mechanism`."
msgstr ""
"Plus de détails dans la section Développement : :ref:`activation-"
"mechanism`."
#: ../../source/features.rst:339 1562cfeb06714cdb8ef1a326975aa934
msgid "Extraction of information from account pages"
msgstr "Extraction d'informations depuis les pages de comptes"
#: ../../source/features.rst:341 c2fe7d33ae3b4e5f9407da29a74ec0a0
msgid ""
"Maigret can parse URLs and content of web pages by URLs to extract info "
"about account owner and other meta information."
msgstr ""
"Maigret peut analyser des URL et le contenu des pages web correspondantes"
" pour en extraire des informations sur le titulaire du compte, ainsi que "
"d'autres métadonnées."
#: ../../source/features.rst:343 662b33d4252b4479a952d390a29d66a5
msgid ""
"You must specify the URL with the option ``--parse``, it's can be a link "
"to an account or an online document. List of supported sites `see here "
"<https://github.com/soxoj/socid-extractor#sites>`_."
msgstr ""
"Vous devez indiquer l'URL avec l'option ``--parse`` ; ce peut être un "
"lien vers un compte ou vers un document en ligne. La liste des sites pris"
" en charge est `consultable ici <https://github.com/soxoj/socid-"
"extractor#sites>`_."
#: ../../source/features.rst:345 8c959114771d4786b7ab897d2c5adb9d
msgid ""
"After the end of the parsing phase, Maigret will start the search phase "
"by :doc:`supported identifiers <supported-identifier-types>` found "
"(usernames, ids, etc.)."
msgstr ""
"Une fois la phase d'analyse terminée, Maigret lance la phase de recherche"
" à partir des :doc:`identifiants pris en charge <supported-identifier-"
"types>` qu'il a trouvés (noms d'utilisateur, identifiants, etc.)."
#: ../../source/features.rst:373 ef504f888bbc4e16ba26424238ba6b5a
msgid "Simple API"
msgstr "Une API simple"
#: ../../source/features.rst:375 323a72fa184646b893b6db3ab5bdb0e6
msgid ""
"Maigret can be easily integrated with the use of Python package `maigret "
"<https://pypi.org/project/maigret/>`_."
msgstr ""
"Maigret s'intègre facilement grâce au paquet Python `maigret "
"<https://pypi.org/project/maigret/>`_."
#: ../../source/features.rst:377 6c84748652ae44458942673e05b2e7b3
msgid ""
"Example: the community `Telegram bot <https://github.com/soxoj/maigret-"
"tg-bot>`_"
msgstr ""
"Exemple : le `bot Telegram <https://github.com/soxoj/maigret-tg-bot>`_ "
"communautaire"
+136
View File
@@ -0,0 +1,136 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/index.rst:37
msgid "Sections"
msgstr "Sections"
#: ../../source/index.rst:54
msgid "Advanced usage"
msgstr "Utilisation avancée"
#: ../../source/index.rst:62
msgid "Use cases"
msgstr "Cas d'usage"
#: ../../source/index.rst:4 fad01d7dff7f42f68a16deaa3fd906e4
msgid "Welcome to the Maigret docs!"
msgstr "Bienvenue dans la documentation de Maigret !"
#: ../../source/index.rst:6 900b077c3fb44cbe92ad5c2b8be261a9
msgid ""
"**Maigret** is an easy-to-use and powerful OSINT tool for collecting a "
"dossier on a person by a username (alias) only."
msgstr ""
"**Maigret** est un outil OSINT puissant et simple d'utilisation qui "
"rassemble un dossier sur une personne à partir d'un simple nom "
"d'utilisateur (alias)."
#: ../../source/index.rst:8 55318f1d11ad471e9b6b39ca59512f7c
msgid ""
"This is achieved by checking for accounts on a huge number of sites and "
"gathering all the available information from web pages."
msgstr ""
"Pour cela, il recherche des comptes sur un très grand nombre de sites et "
"collecte toutes les informations disponibles sur les pages web."
#: ../../source/index.rst:10 9794f69651da48878e7d8d0ce2cea9f3
msgid ""
"The project's main goal — give to OSINT researchers and pentesters a "
"**universal tool** to get maximum information about a person of interest "
"by a username and integrate it with other tools in automatization "
"pipelines."
msgstr ""
"L'objectif principal du projet est de donner aux chercheurs OSINT et aux "
"pentesteurs un **outil universel** pour obtenir un maximum d'informations"
" sur une personne d'intérêt à partir d'un nom d'utilisateur, et pour "
"l'intégrer à d'autres outils dans des chaînes d'automatisation."
#: ../../source/index.rst:14 720aeb80d8a24cb9b674429476305f4f
msgid ""
"**This tool is intended for educational and lawful purposes only.** The "
"developers do not endorse or encourage any illegal activities or misuse "
"of this tool. Regulations regarding the collection and use of personal "
"data vary by country and region, including but not limited to GDPR in the"
" EU, CCPA in the USA, and similar laws worldwide."
msgstr ""
"**Cet outil est destiné à un usage éducatif et légal uniquement.** Les "
"développeurs n'approuvent ni n'encouragent aucune activité illégale ou "
"aucun usage abusif de cet outil. La réglementation sur la collecte et "
"l'utilisation des données personnelles varie selon les pays et les "
"régions, notamment le RGPD dans l'Union européenne, le CCPA aux États-"
"Unis et des lois similaires partout dans le monde."
#: ../../source/index.rst:19 d4f32a286e3c4c7a898ab0b82dc633d1
msgid ""
"It is your sole responsibility to ensure that your use of this tool "
"complies with all applicable laws and regulations in your jurisdiction. "
"Any illegal use of this tool is strictly prohibited, and you are fully "
"accountable for your actions."
msgstr ""
"Il vous appartient de vous assurer que votre utilisation de cet outil "
"respecte l'ensemble des lois et réglementations en vigueur dans votre "
"juridiction. Toute utilisation illégale de cet outil est strictement "
"interdite et vous êtes seul responsable de vos actes."
#: ../../source/index.rst:23 4fa98ee9737e41538fa3347940b4fdac
msgid ""
"The authors and developers of this tool bear no responsibility for any "
"misuse or unlawful activities conducted by its users."
msgstr ""
"Les auteurs et les développeurs de cet outil déclinent toute "
"responsabilité en cas d'usage abusif ou d'activité illégale de la part de"
" ses utilisateurs."
#: ../../source/index.rst:27 9a0991e8625d4602969c0714dc9ecc48
msgid "You may be interested in:"
msgstr "Cela pourrait vous intéresser :"
#: ../../source/index.rst:28 37d9aa336989400696700609c83cf4ee
msgid ":doc:`Quick start <quick-start>`"
msgstr ":doc:`Démarrage rapide <quick-start>`"
#: ../../source/index.rst:29 ec10922b61ac4fcda95dcdf834b2a91a
msgid ":doc:`Usage examples <usage-examples>`"
msgstr ":doc:`Exemples d'utilisation <usage-examples>`"
#: ../../source/index.rst:30 566754f6b68949b3a912c31f86c09691
msgid ":doc:`FAQ <faq>`"
msgstr ":doc:`FAQ <faq>`"
#: ../../source/index.rst:31 65182c75c2e74e3184bd9a0ef18a91e7
msgid ":doc:`Command line options <command-line-options>`"
msgstr ":doc:`Options de ligne de commande <command-line-options>`"
#: ../../source/index.rst:32 d9ca5fb8c2994a62ab07c8d7cc468eb8
msgid ":doc:`Features list <features>`"
msgstr ":doc:`Liste des fonctionnalités <features>`"
#: ../../source/index.rst:33 4f370d1bdd7a43fbb67896a61d1869f2
msgid ":doc:`Library usage <library-usage>`"
msgstr ":doc:`Utilisation en tant que bibliothèque <library-usage>`"
#: ../../source/index.rst:34 9f5ac354804b47fdbdc079cc529e527b
msgid ":doc:`Tor, I2P, and proxies <tor-and-proxies>`"
msgstr ":doc:`Tor, I2P et proxys <tor-and-proxies>`"
#: ../../source/index.rst:35 2ee7f1fe29a64905a8ef4b91d635bcb0
msgid "`Run it online without installing <https://maigret.app/docs-en>`_"
msgstr "`Lancez-le en ligne, sans rien installer <https://maigret.app/docs-en>`_"
@@ -0,0 +1,571 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/installation.rst:4 06a66d93711c44e098e3199117c071a0
msgid "Installation"
msgstr "Installation"
#: ../../source/installation.rst:6 1f3e8df4b1594961a5b2017919d2ece1
msgid ""
"Maigret can be installed using pip, Docker, or simply can be launched "
"from the cloned repo. Also, it is available online via the `community "
"Telegram bot <https://maigret.app/docs-en>`_, source code of a bot is "
"`available on GitHub <https://github.com/soxoj/maigret-tg-bot>`_."
msgstr ""
"Maigret s'installe avec pip ou Docker, ou peut simplement être lancé "
"depuis le dépôt cloné. Il est également accessible en ligne via le `bot "
"Telegram communautaire <https://maigret.app/docs-en>`_, dont le code "
"source est `disponible sur GitHub <https://github.com/soxoj/maigret-tg-"
"bot>`_."
#: ../../source/installation.rst:11 b7a88c45e72c47eeb2f162626ef22c76
msgid "Windows Standalone EXE-binaries"
msgstr "Binaires EXE autonomes pour Windows"
#: ../../source/installation.rst:13 c2809428072744c588eacec66d8bcdd0
msgid ""
"A standalone ``maigret_standalone.exe`` for Windows is published in the "
"`Releases section <https://github.com/soxoj/maigret/releases>`_ of the "
"GitHub repository. A fresh build is produced automatically after each "
"commit to the **main** and **dev** branches."
msgstr ""
"Un ``maigret_standalone.exe`` autonome pour Windows est publié dans la "
"`section Releases <https://github.com/soxoj/maigret/releases>`_ du dépôt "
"GitHub. Une nouvelle version est construite automatiquement après chaque "
"commit sur les branches **main** et **dev**."
#: ../../source/installation.rst:18 e30c98267c014253bc76467286f392e6
msgid "There are two ways to launch the EXE:"
msgstr "Il y a deux façons de lancer l'EXE :"
#: ../../source/installation.rst:20 c4a5b9064afd4e1fabf88db60e4b9bdf
msgid ""
"**Double-click it from Explorer.** Maigret will prompt you for a "
"username, run a default search, and pause at the end so the printed "
"report links remain on screen until you press Enter."
msgstr ""
"**Double-cliquez dessus depuis l'Explorateur.** Maigret vous demandera un"
" nom d'utilisateur, lancera une recherche par défaut et marquera une "
"pause à la fin, afin que les liens des rapports affichés restent à "
"l'écran jusqu'à ce que vous appuyiez sur Entrée."
#: ../../source/installation.rst:23 e5f7ec1cf9304f6eae6c22cd2b5618ff
msgid "**Run it from a terminal** for full control over options:"
msgstr "**Lancez-le depuis un terminal** pour maîtriser toutes les options :"
#: ../../source/installation.rst:25 dbdee53d7f3b43dcaed861971bc41d8e
msgid "Press ``Win+R``, type ``cmd``, and hit Enter (or use PowerShell)."
msgstr ""
"Appuyez sur ``Win+R``, tapez ``cmd`` et appuyez sur Entrée (ou utilisez "
"PowerShell)."
#: ../../source/installation.rst:26 a8729a58fb004d1ab4ce2fc46aecbcc0
msgid ""
"Change to the folder where you saved the file, e.g. ``cd "
"%USERPROFILE%\\Downloads``."
msgstr ""
"Placez-vous dans le dossier où vous avez enregistré le fichier, par "
"exemple ``cd %USERPROFILE%\\Downloads``."
#: ../../source/installation.rst:28 eb986c4f79ee4fd09db66e3ee2a8553b
msgid "Run it with at least one username:"
msgstr "Lancez-le avec au moins un nom d'utilisateur :"
#: ../../source/installation.rst:37 5af6dbd07f1c415486c2886d222b84a5
msgid "Reports are written next to the EXE in a ``reports\\`` subfolder."
msgstr ""
"Les rapports sont écrits à côté de l'EXE, dans un sous-dossier "
"``reports\\``."
#: ../../source/installation.rst:39 54a2539fd6154a4fbd391f335ab1b37e
msgid "Video guide on how to run it: https://youtu.be/qIgwTZOmMmM."
msgstr "Guide vidéo pour le lancer : https://youtu.be/qIgwTZOmMmM."
#: ../../source/installation.rst:42 94d7a2c0f5d548d39505a7603c7d2b85
msgid "Code signing"
msgstr "Signature du code"
#: ../../source/installation.rst:44 1ab5c3b634424b88bef4ff2ed94037e9
msgid ""
"Windows binaries are built on GitHub Actions from this repository. The "
"project has applied to the `SignPath Foundation <https://signpath.org/>`_"
" for a free code signing certificate; once issued, released Windows "
"binaries will be signed as part of the same automated build."
msgstr ""
"Les binaires Windows sont construits par GitHub Actions depuis ce dépôt. "
"Le projet a déposé une demande de certificat de signature de code gratuit"
" auprès de la `SignPath Foundation <https://signpath.org/>`_ ; une fois "
"le certificat délivré, les binaires Windows publiés seront signés dans le"
" cadre de la même construction automatisée."
#: ../../source/installation.rst:51 856db4923f7a434ea6697835d01204cf
msgid "Cloud Shells and Jupyter notebooks"
msgstr "Shells cloud et notebooks Jupyter"
#: ../../source/installation.rst:53 a41bfce77f3f4edf9fc072968525b594
msgid ""
"In case you don't want to install Maigret locally, you can use cloud "
"shells and Jupyter notebooks. Press one of the buttons below and follow "
"the instructions to launch it in your browser."
msgstr ""
"Si vous ne souhaitez pas installer Maigret en local, vous pouvez passer "
"par un shell cloud ou un notebook Jupyter. Cliquez sur l'un des boutons "
"ci-dessous et suivez les instructions pour le lancer dans votre "
"navigateur."
#: ../../source/installation.rst:58 b58b319427fe45c3a4c39224369ad653
msgid "Open in Cloud Shell"
msgstr "Ouvrir dans Cloud Shell"
#: ../../source/installation.rst:62 ef3ca92574364f68a70558ebb085e6d3
msgid "Run on Replit"
msgstr "Exécuter sur Replit"
#: ../../source/installation.rst:67 6e04705fe7be4601911d0882d3da201d
msgid "Open In Colab"
msgstr "Ouvrir dans Colab"
#: ../../source/installation.rst:72 0b998ed69a2d4831b6c64bd98a83fdfe
msgid "Open In Binder"
msgstr "Ouvrir dans Binder"
#: ../../source/installation.rst:79 1f97c5338f344107b23874e0ff130513
msgid ""
"Cloud Shell: "
"https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/soxoj/maigret&tutorial=README.md"
msgstr ""
"Cloud Shell : "
"https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/soxoj/maigret&tutorial=README.md"
#: ../../source/installation.rst:81 0997baf81bf34042b29f8ae53ba80296
msgid "Replit: https://repl.it/github/soxoj/maigret"
msgstr "Replit : https://repl.it/github/soxoj/maigret"
#: ../../source/installation.rst:83 86c39f5e02f441e69c36261eeed262f1
msgid ""
"Google Colab: "
"https://colab.research.google.com/gist/soxoj/879b51bc3b2f8b695abb054090645000"
"/maigret-collab.ipynb"
msgstr ""
"Google Colab : "
"https://colab.research.google.com/gist/soxoj/879b51bc3b2f8b695abb054090645000"
"/maigret-collab.ipynb"
#: ../../source/installation.rst:85 d2f5724223e84c4d95f4ab49a8ce0d9e
msgid ""
"Binder: "
"https://mybinder.org/v2/gist/soxoj/9d65c2f4d3bec5dd25949197ea73cf3a/HEAD"
msgstr ""
"Binder : "
"https://mybinder.org/v2/gist/soxoj/9d65c2f4d3bec5dd25949197ea73cf3a/HEAD"
#: ../../source/installation.rst:88 89ed6a6dd30c4182aaf4f2fa3e9c7a4f
msgid "Snap (Linux)"
msgstr "Snap (Linux)"
#: ../../source/installation.rst:90 92125d486460422f8b24cea270654837
msgid ""
"Maigret is on the `Snap Store <https://snapcraft.io/maigret>`_ for amd64 "
"and arm64. It needs neither Python nor pip:"
msgstr ""
"Maigret est sur le `Snap Store <https://snapcraft.io/maigret>`_ pour "
"amd64 et arm64. Il ne nécessite ni Python ni pip :"
#: ../../source/installation.rst:95 9dce1ae260ec48888b7ff6ef434552eb
msgid "Get it from the Snap Store"
msgstr "Télécharger depuis le Snap Store"
#: ../../source/installation.rst:107 9bed91bd19c04740a85961e314059b77
msgid ""
"The snap is strictly confined: it can read and write your home directory "
"and very little else. Run it from a directory under ``$HOME`` and reports"
" land in ``./reports`` as usual. Running it from somewhere it cannot see,"
" ``/tmp`` for instance, fails before the search starts."
msgstr ""
"Le snap est strictement confiné : il peut lire et écrire dans votre "
"répertoire personnel, et presque rien d'autre. Lancez-le depuis un "
"répertoire situé sous ``$HOME`` et les rapports atterriront dans "
"``./reports`` comme d'habitude. Le lancer depuis un endroit qu'il ne voit"
" pas, ``/tmp`` par exemple, échoue avant même le début de la recherche."
#: ../../source/installation.rst:112 ace0141ecf294c5f8d14e138b89b5ba7
msgid ""
"Access to USB drives and other removable media is not connected by "
"default:"
msgstr ""
"L'accès aux clés USB et autres supports amovibles n'est pas connecté par "
"défaut :"
#: ../../source/installation.rst:118 0828b539d0f34b6aaacf3d43288a613a
msgid ""
"Updates arrive on their own through snapd, so the bundled site database "
"and the code both stay current without any action."
msgstr ""
"Les mises à jour arrivent d'elles-mêmes via snapd : la base de sites "
"embarquée et le code restent donc à jour sans aucune intervention."
#: ../../source/installation.rst:122 1ec82465d26b4120b3d3d4fcbb19dee0
msgid "Local installation from PyPi"
msgstr "Installation locale depuis PyPI"
#: ../../source/installation.rst:124 12173ce540f5403388ccc280f250cabd
msgid ""
"Maigret ships with a bundled site database. After installation from PyPI "
"(or any other method), it can **automatically fetch a newer compatible "
"database from GitHub** when you run it—see :ref:`database-auto-update` in"
" :doc:`settings`."
msgstr ""
"Maigret est livré avec une base de sites embarquée. Après une "
"installation depuis PyPI (ou par toute autre méthode), il peut "
"**récupérer automatiquement depuis GitHub une base plus récente et "
"compatible** lors de son exécution, voir :ref:`database-auto-update` dans"
" :doc:`settings`."
#: ../../source/installation.rst:127 919ab3e4873d4aff96827d2db9de1cb6
msgid "Python 3.10 or higher and pip is required, **Python 3.11 is recommended.**"
msgstr ""
"Python 3.10 ou supérieur et pip sont requis, **Python 3.11 est "
"recommandé.**"
#: ../../source/installation.rst:137 1103ac355d6640da9b52fbb153170e1f
msgid ""
"PDF report support is shipped as an **optional extra** because it relies "
"on system-level graphics libraries that pip cannot install for you. If "
"you plan to use ``--pdf``, install Maigret with the ``pdf`` extra:"
msgstr ""
"La prise en charge des rapports PDF est fournie comme **extra "
"facultatif**, car elle repose sur des bibliothèques graphiques système "
"que pip ne peut pas installer à votre place. Si vous comptez utiliser "
"``--pdf``, installez Maigret avec l'extra ``pdf`` :"
#: ../../source/installation.rst:145 e97dcce05ad04b538bdc67ee648fe977
msgid ""
"See :ref:`pdf-extra` below for the full background on why PDF support is "
"optional and how to fix the most common build errors."
msgstr ""
"Voir :ref:`pdf-extra` plus bas pour comprendre en détail pourquoi le PDF "
"est facultatif et comment corriger les erreurs de compilation les plus "
"courantes."
#: ../../source/installation.rst:149 65b089af5d28448a9ee0ad1dc8d9a0a2
msgid "Isolated installation with pipx"
msgstr "Installation isolée avec pipx"
#: ../../source/installation.rst:151 276b036bb3c64ba9917e07a42ee7a5e5
msgid ""
"``pip3 install maigret`` drops Maigret and its dependencies into "
"whichever Python environment happens to be active. If that is the system "
"Python, the install can collide with packages your distribution manages, "
"and on recent Debian, Ubuntu and Fedora pip refuses outright with "
"``error: externally-managed-environment``."
msgstr ""
"``pip3 install maigret`` installe Maigret et ses dépendances dans "
"l'environnement Python actif, quel qu'il soit. Si c'est le Python du "
"système, l'installation peut entrer en conflit avec des paquets gérés par"
" votre distribution ; sur les versions récentes de Debian, Ubuntu et "
"Fedora, pip refuse d'ailleurs catégoriquement, avec ``error: externally-"
"managed-environment``."
#: ../../source/installation.rst:157 078d4e27d6f74638a16d696510d4dc70
msgid ""
"`pipx <https://pipx.pypa.io>`_ avoids all of that. It gives Maigret its "
"own virtual environment, puts only the ``maigret`` command on your "
"``PATH``, and keeps the dependencies away from everything else on the "
"machine:"
msgstr ""
"`pipx <https://pipx.pypa.io>`_ évite tout cela. Il donne à Maigret son "
"propre environnement virtuel, ne place que la commande ``maigret`` dans "
"votre ``PATH`` et tient ses dépendances à l'écart du reste de la machine "
":"
#: ../../source/installation.rst:168 9317bc2f43ad4f458e577bb555a1d242
msgid "The ``pdf`` extra works the same way:"
msgstr "L'extra ``pdf`` fonctionne de la même façon :"
#: ../../source/installation.rst:174 1c98ca1719c0422fbd032def184d62c0
msgid "Upgrading and removing are one command each:"
msgstr "La mise à jour et la désinstallation tiennent chacune en une commande :"
#: ../../source/installation.rst:182 bfff887fdbf84278989660d995b1d905
msgid ""
"If you already use `uv <https://docs.astral.sh/uv/>`_, ``uv tool install "
"maigret`` does the same job."
msgstr ""
"Si vous utilisez déjà `uv <https://docs.astral.sh/uv/>`_, ``uv tool "
"install maigret`` fait le même travail."
#: ../../source/installation.rst:186 71e910c286c24fa49484357d20120531
msgid "Development version (GitHub)"
msgstr "Version de développement (GitHub)"
#: ../../source/installation.rst:204 2cc8141fb061418bbb9232680bf0e13f
msgid "Docker"
msgstr "Docker"
#: ../../source/installation.rst:218 97a9de8e485947b1bd8ac653b104c859
msgid "Troubleshooting"
msgstr "Dépannage"
#: ../../source/installation.rst:220 522571e237844c87aae52c6e86c584eb
msgid ""
"If you encounter build errors during installation such as ``cannot find "
"ft2build.h`` or errors related to ``reportlab`` / ``_renderPM``, you need"
" to install system-level dependencies required to compile native "
"extensions."
msgstr ""
"Si vous rencontrez des erreurs de compilation pendant l'installation, du "
"type ``cannot find ft2build.h``, ou des erreurs liées à ``reportlab`` / "
"``_renderPM``, vous devez installer les dépendances système nécessaires à"
" la compilation des extensions natives."
#: ../../source/installation.rst:224 0ee73bf0a7c9417b8c7a9847fe20e853
msgid "**Debian/Ubuntu/Kali:**"
msgstr "**Debian/Ubuntu/Kali :**"
#: ../../source/installation.rst:230 9e36d358b98f45a1961561607fc4162a
msgid "**Fedora/RHEL/CentOS:**"
msgstr "**Fedora/RHEL/CentOS :**"
#: ../../source/installation.rst:236 ../../source/installation.rst:321
#: c36e50a1c5b24578a4962ae622b47e8e d5a516382529413e8be81b95cb0be1a9
msgid "**Arch Linux:**"
msgstr "**Arch Linux :**"
#: ../../source/installation.rst:242 ../../source/installation.rst:335
#: 666c0f5d202e41c3bd86cb77c223926c beb188bcaf4c42508de02f870c4f704f
msgid "**macOS (Homebrew):**"
msgstr "**macOS (Homebrew) :**"
#: ../../source/installation.rst:248 9e78be48570447adb214c02a9b625213
msgid "After installing the system dependencies, retry the maigret installation."
msgstr ""
"Une fois les dépendances système installées, relancez l'installation de "
"Maigret."
#: ../../source/installation.rst:250 bd967f67b9784fdfa617dc6e53f3b789
msgid ""
"If you continue to have issues, consider using Docker instead, which "
"includes all necessary dependencies."
msgstr ""
"Si le problème persiste, envisagez plutôt Docker, qui embarque toutes les"
" dépendances nécessaires."
#: ../../source/installation.rst:256 3ecbbfd49e9348139ee72e10512df817
msgid "Optional: PDF reports (``maigret[pdf]``)"
msgstr "Facultatif : les rapports PDF (``maigret[pdf]``)"
#: ../../source/installation.rst:258 fc50376c42d942509ae889b0ada51093
msgid "The ``--pdf`` report format is shipped as an optional extra. To enable it:"
msgstr ""
"Le format de rapport ``--pdf`` est fourni comme extra facultatif. Pour "
"l'activer :"
#: ../../source/installation.rst:264 c49adf2626ba433295a740db9484d06e
msgid ""
"If PDF support is not installed and you pass ``--pdf``, Maigret prints a "
"warning and continues without crashing — every other output format "
"(``--html``, ``--json``, ``--csv``, ``--txt``, ``--xmind``, ``--graph``) "
"keeps working."
msgstr ""
"Si la prise en charge du PDF n'est pas installée et que vous passez "
"``--pdf``, Maigret affiche un avertissement et continue sans planter : "
"tous les autres formats de sortie (``--html``, ``--json``, ``--csv``, "
"``--txt``, ``--xmind``, ``--graph``) continuent de fonctionner."
#: ../../source/installation.rst:270 a7010a5e92e84074ab24613ff6740fea
msgid "Why is PDF optional?"
msgstr "Pourquoi le PDF est-il facultatif ?"
#: ../../source/installation.rst:272 f2d8cf8c6aac4147a14eca93d6f0fd87
msgid ""
"Maigret renders PDFs by converting an HTML template, and that conversion "
"pipeline ultimately depends on the ``cairo`` graphics library through a "
"chain of Python packages roughly shaped like::"
msgstr ""
"Maigret produit ses PDF en convertissant un modèle HTML, et cette chaîne "
"de conversion dépend au bout du compte de la bibliothèque graphique "
"``cairo``, via une succession de paquets Python à peu près comme ceci ::"
#: ../../source/installation.rst:278 8567fbe97a6c47fab6fab0eebaaf8838
msgid ""
"The bottom of that chain is a C library — ``libcairo2`` — that has to "
"exist on the host *before* pip can build the Python bindings. The Python "
"binding package (``pycairo``) currently ships **only Windows wheels** on "
"PyPI; on Linux and macOS pip falls back to building from source, and the "
"build fails the moment ``pkg-config`` cannot find ``cairo``. The error "
"looks like::"
msgstr ""
"Au bas de cette chaîne se trouve une bibliothèque C, ``libcairo2``, qui "
"doit être présente sur la machine *avant* que pip ne puisse construire "
"les liaisons Python. Le paquet de liaison Python (``pycairo``) ne publie "
"actuellement **que des wheels Windows** sur PyPI ; sous Linux et macOS, "
"pip se rabat donc sur une compilation depuis les sources, qui échoue dès "
"que ``pkg-config`` ne trouve pas ``cairo``. L'erreur ressemble à ceci ::"
#: ../../source/installation.rst:288 62199bb508f74bc3813f257546f83759
msgid ""
"Pulling this whole chain for every Maigret install just so the much "
"smaller group of users who actually want PDFs can have them is a poor "
"trade — so ``xhtml2pdf`` is gated behind the ``pdf`` extra."
msgstr ""
"Imposer toute cette chaîne à chaque installation de Maigret, uniquement "
"pour que le groupe bien plus restreint d'utilisateurs qui veulent "
"vraiment des PDF puisse en avoir, serait un mauvais compromis : "
"``xhtml2pdf`` est donc placé derrière l'extra ``pdf``."
#: ../../source/installation.rst:292 a4126865ad10432ab9cf6b2d33e26480
msgid ""
"Two more packages — ``arabic-reshaper`` and ``python-bidi`` — are bundled"
" into the same extra. Maigret core never imports them; they are only used"
" by ``xhtml2pdf`` to shape Arabic glyphs and lay out right-to-left text "
"in PDFs. ``python-bidi`` v0.5+ is also a Rust binding, so on niche "
"platforms without a published wheel it would otherwise pull in a Cargo "
"build for users who never asked for PDF support."
msgstr ""
"Deux autres paquets, ``arabic-reshaper`` et ``python-bidi``, sont réunis "
"dans le même extra. Le cœur de Maigret ne les importe jamais ; ils ne "
"servent qu'à ``xhtml2pdf``, pour façonner les glyphes arabes et mettre en"
" page le texte de droite à gauche dans les PDF. ``python-bidi`` v0.5+ est"
" en outre une liaison Rust : sur les plateformes de niche sans wheel "
"publiée, il déclencherait une compilation Cargo chez des utilisateurs qui"
" n'ont jamais demandé le PDF."
#: ../../source/installation.rst:300 d9c3f909c29441c283b07779c370e608
msgid "Installing the system prerequisites"
msgstr "Installer les prérequis système"
#: ../../source/installation.rst:302 4e207f5b27854c2d8b1dcedea0289a20
msgid ""
"Install the cairo headers, ``pkg-config``, and a working C toolchain "
"*before* running ``pip install 'maigret[pdf]'``."
msgstr ""
"Installez les en-têtes de cairo, ``pkg-config`` et une chaîne de "
"compilation C fonctionnelle *avant* de lancer ``pip install "
"'maigret[pdf]'``."
#: ../../source/installation.rst:305 ab52341b4c6f4a62b58624da37566ec2
msgid "**Debian / Ubuntu / Linux Mint / Kali:**"
msgstr "**Debian / Ubuntu / Linux Mint / Kali :**"
#: ../../source/installation.rst:314 dad4389c52bc4db7984b188d2525ed5d
msgid "**Fedora / RHEL / CentOS:**"
msgstr "**Fedora / RHEL / CentOS :**"
#: ../../source/installation.rst:328 f3a52a0a27c14654b3f15601a8dcdbfe
msgid "**Alpine Linux:**"
msgstr "**Alpine Linux :**"
#: ../../source/installation.rst:343 bd33aa76918847e7af4087328369d212
msgid "**Windows:**"
msgstr "**Windows :**"
#: ../../source/installation.rst:345 a3d64de62d56499fa54e306c20e8c052
msgid ""
"No system packages are needed — ``pycairo`` ships prebuilt wheels for "
"Windows. Just run:"
msgstr ""
"Aucun paquet système n'est nécessaire : ``pycairo`` publie des wheels "
"précompilées pour Windows. Lancez simplement :"
#: ../../source/installation.rst:352 b905ed5326634b5ba7624b27b6c99499
msgid "**Google Cloud Shell / Colab / Replit / generic CI:**"
msgstr "**Google Cloud Shell / Colab / Replit / CI générique :**"
#: ../../source/installation.rst:354 0b9a480210c44561a1c2954d9650dacf
msgid ""
"These environments behave like Debian/Ubuntu — install the same "
"``libcairo2-dev pkg-config python3-dev build-essential`` triple before "
"``pip install 'maigret[pdf]'``. If you do not control the base image and "
"cannot ``apt install``, skip the extra and use ``--html`` reports "
"instead; HTML reports contain the same data and open in any browser."
msgstr ""
"Ces environnements se comportent comme Debian/Ubuntu : installez le même "
"trio ``libcairo2-dev pkg-config python3-dev build-essential`` avant ``pip"
" install 'maigret[pdf]'``. Si vous ne maîtrisez pas l'image de base et ne"
" pouvez pas faire ``apt install``, laissez tomber l'extra et utilisez les"
" rapports ``--html`` : ils contiennent les mêmes données et s'ouvrent "
"dans n'importe quel navigateur."
#: ../../source/installation.rst:361 294ca985b3a9483985b2b65888a845bf
msgid "``maigret: command not found`` after install"
msgstr "``maigret: command not found`` après l'installation"
#: ../../source/installation.rst:363 80541d64922147d98cecd810f48a6d12
msgid "If pip prints warnings like::"
msgstr "Si pip affiche des avertissements du type ::"
#: ../../source/installation.rst:368 c241b60227bf46188300c27f8abbe41c
msgid ""
"…and ``maigret --version`` then fails with ``command not found``, your "
"``--user`` install put the entry-point script in a directory the shell "
"does not search. Add it to ``PATH``:"
msgstr ""
"…et que ``maigret --version`` échoue ensuite avec ``command not found``, "
"c'est que votre installation ``--user`` a placé le script de point "
"d'entrée dans un répertoire que le shell ne parcourt pas. Ajoutez-le au "
"``PATH`` :"
#: ../../source/installation.rst:377 de778c1f45e34d23900fd1945882fe9d
msgid ""
"Or install into a virtual environment, where the entry point lands in the"
" venv's ``bin/`` automatically:"
msgstr ""
"Ou installez dans un environnement virtuel, où le point d'entrée atterrit"
" automatiquement dans le ``bin/`` du venv :"
#: ../../source/installation.rst:387 0360ba072a0b44589d39d7066b682e68
msgid "Optional: Cloudflare bypass solver"
msgstr "Facultatif : le solveur de contournement Cloudflare"
#: ../../source/installation.rst:391 80057a95b58b4a8db8f45bbd2830826f
msgid ""
"**Experimental.** The Cloudflare webgate is under active development; the"
" configuration schema and CLI behaviour may change without backwards-"
"compatibility guarantees."
msgstr ""
"**Expérimental.** Le webgate Cloudflare est en cours de développement "
"actif ; le schéma de configuration et le comportement en ligne de "
"commande peuvent changer sans garantie de compatibilité ascendante."
#: ../../source/installation.rst:395 079b60030ede488eaf4b51a68abd3af7
msgid ""
"Sites tagged ``cf_js_challenge`` / ``cf_firewall`` need a real browser to"
" pass their JavaScript challenge. To check those sites you can run a "
"local `FlareSolverr <https://github.com/FlareSolverr/FlareSolverr>`_ "
"instance — Maigret will route protected checks to it when ``--cloudflare-"
"bypass`` is set:"
msgstr ""
"Les sites marqués ``cf_js_challenge`` / ``cf_firewall`` exigent un vrai "
"navigateur pour passer leur défi JavaScript. Pour vérifier ces sites, "
"vous pouvez lancer une instance locale de `FlareSolverr "
"<https://github.com/FlareSolverr/FlareSolverr>`_ : Maigret y redirigera "
"les vérifications protégées lorsque ``--cloudflare-bypass`` est activé :"
#: ../../source/installation.rst:404 cd5f65e9e39049988fbdd7e9a488db44
msgid ""
"This is **optional** — Maigret runs without it; only sites whose "
"``protection`` field intersects "
"``settings.cloudflare_bypass.trigger_protection`` require the solver. See"
" :ref:`cloudflare-bypass` for details."
msgstr ""
"C'est **facultatif** : Maigret fonctionne sans. Seuls les sites dont le "
"champ ``protection`` recoupe "
"``settings.cloudflare_bypass.trigger_protection`` ont besoin du solveur. "
"Voir :ref:`cloudflare-bypass` pour les détails."
@@ -0,0 +1,142 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/library-usage.rst:4 912ee46973c845bb83e2007caf60807d
msgid "Library usage"
msgstr "Utilisation en tant que bibliothèque"
#: ../../source/library-usage.rst:6 1dc5af2d1bc94caf898ae0dfba28ab99
msgid ""
"Maigret's CLI is a thin wrapper around an async Python API. You can embed"
" Maigret in your own tools, pipelines, and OSINT workflows — no need to "
"shell out."
msgstr ""
"L'interface en ligne de commande de Maigret n'est qu'une fine couche au-"
"dessus d'une API Python asynchrone. Vous pouvez intégrer Maigret à vos "
"propres outils, pipelines et workflows OSINT, sans passer par un appel "
"système."
#: ../../source/library-usage.rst:8 689a5527381f4eb2986c9928ea5063cd
msgid ""
"This page covers the common patterns. For the full argument list of the "
"underlying function, see ``maigret.checking.maigret`` in the source."
msgstr ""
"Cette page couvre les usages courants. Pour la liste complète des "
"arguments de la fonction sous-jacente, voir ``maigret.checking.maigret`` "
"dans le code source."
#: ../../source/library-usage.rst:11 9fc2fae4f56f467c98d82f2eb5cae83f
msgid "Installation"
msgstr "Installation"
#: ../../source/library-usage.rst:18 3593c7ee3c024bb3932f00ce062d2918
msgid "Minimal example"
msgstr "Exemple minimal"
#: ../../source/library-usage.rst:20 163725f129db46428386562d5e60daf3
msgid "A working end-to-end search against the top 500 sites:"
msgstr "Une recherche complète et fonctionnelle sur les 500 premiers sites :"
#: ../../source/library-usage.rst:52 1b8d59523b644de2826a34890bb83005
msgid "Key points:"
msgstr "Points importants :"
#: ../../source/library-usage.rst:54 9febe61ea25341fe89f67792bce0dd7b
msgid ""
"``maigret_search`` is an ``async`` function — wrap it with "
"``asyncio.run(...)`` or ``await`` it from inside your own event loop."
msgstr ""
"``maigret_search`` est une fonction ``async`` : encapsulez-la dans "
"``asyncio.run(...)`` ou faites ``await`` depuis votre propre boucle "
"d'événements."
#: ../../source/library-usage.rst:55 94cba639a3fd48d59f757a97923bbcce
msgid ""
"``is_parsing_enabled=True`` turns on ``socid_extractor`` so "
"``result[\"ids_data\"]`` is populated with profile fields (bio, linked "
"accounts, uids, etc.). See its `Library usage <https://socid-"
"extractor.readthedocs.io/en/latest/library-usage.html>`_ page for calling"
" it directly, and `Maigret integration <https://socid-"
"extractor.readthedocs.io/en/latest/maigret-integration.html>`_ for how "
"the two projects fit together."
msgstr ""
"``is_parsing_enabled=True`` active ``socid_extractor``, si bien que "
"``result[\"ids_data\"]`` est rempli avec les champs du profil "
"(biographie, comptes liés, uids, etc.). Voir sa page `Library usage "
"<https://socid-extractor.readthedocs.io/en/latest/library-usage.html>`_ "
"pour l'appeler directement, et `Maigret integration <https://socid-"
"extractor.readthedocs.io/en/latest/maigret-integration.html>`_ pour "
"comprendre comment les deux projets s'articulent."
#: ../../source/library-usage.rst:56 9d8f67adc20e46818a07c55a1e8d0d1c
msgid ""
"Each entry in the returned dict has a ``\"status\"`` object with "
"``is_found()``, plus ``url_user``, ``http_status``, ``rank``, "
"``ids_data``, and more."
msgstr ""
"Chaque entrée du dictionnaire renvoyé contient un objet ``\"status\"`` "
"avec ``is_found()``, ainsi que ``url_user``, ``http_status``, ``rank``, "
"``ids_data``, et d'autres champs."
#: ../../source/library-usage.rst:59 cf296c815a41463dba25bdac37e1ea1f
msgid "Filtering sites"
msgstr "Filtrer les sites"
#: ../../source/library-usage.rst:61 4f08358e924546e78d3120153934da7f
msgid "``ranked_sites_dict`` accepts the same filters as the CLI:"
msgstr "``ranked_sites_dict`` accepte les mêmes filtres que la ligne de commande :"
#: ../../source/library-usage.rst:78 7bf2776ae3014fe581e9b36eacd7f9eb
msgid "Running inside an existing event loop"
msgstr "Exécution dans une boucle d'événements existante"
#: ../../source/library-usage.rst:80 10de59061386431aa4d2f569c60eff6b
msgid ""
"If your application already runs an asyncio loop (FastAPI, aiohttp "
"server, a Discord bot, etc.), ``await`` ``maigret_search`` directly "
"instead of calling ``asyncio.run``:"
msgstr ""
"Si votre application fait déjà tourner une boucle asyncio (FastAPI, un "
"serveur aiohttp, un bot Discord, etc.), faites directement ``await`` sur "
"``maigret_search`` au lieu d'appeler ``asyncio.run`` :"
#: ../../source/library-usage.rst:98 70183995fad54862aa732fc4a9790811
msgid "Routing through a proxy"
msgstr "Passer par un proxy"
#: ../../source/library-usage.rst:100 c960cc0b366f4d05a2a658b63825ad93
msgid ""
"The same proxy / Tor / I2P flags the CLI exposes are plain keyword "
"arguments:"
msgstr ""
"Les options proxy / Tor / I2P de la ligne de commande sont de simples "
"arguments nommés :"
#: ../../source/library-usage.rst:115 b29d27764029441fa483a633e5da903b
msgid "Full function signature"
msgstr "Signature complète de la fonction"
#: ../../source/library-usage.rst:139 cae3576edbd84cf89e8857094185c1b0
msgid ""
"See :doc:`command-line-options` for a description of each option — the "
"semantics match the CLI flags one-to-one."
msgstr ""
"Voir :doc:`command-line-options` pour la description de chaque option : "
"la sémantique correspond exactement aux options de la ligne de commande."
@@ -0,0 +1,131 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/philosophy.rst:4 9419a206dfa64d9f9bf6375368d36521
msgid "Philosophy"
msgstr "Philosophie"
#: ../../source/philosophy.rst:6 50632721642b477ab022ab1b137949d4
msgid ""
"*The Commissioner Jules Maigret is a fictional French police detective, "
"created by Georges Simenon. His investigation method is based on "
"understanding the personality of different people and their "
"interactions.*"
msgstr ""
"*Le commissaire Jules Maigret est un policier de fiction français, créé "
"par Georges Simenon. Sa méthode d'enquête repose sur la compréhension de "
"la personnalité des gens et de leurs interactions.*"
#: ../../source/philosophy.rst:10 cfee4a15fc074a97aaa20c8a272c7087
msgid "TL;DR: Username => Dossier"
msgstr "En bref : un nom d'utilisateur => un dossier"
#: ../../source/philosophy.rst:12 8d4120f7e65d4cf0bf1ec2f1394234bb
msgid ""
"Maigret is designed to gather all the available information about person "
"by his username."
msgstr ""
"Maigret est conçu pour rassembler toutes les informations disponibles sur"
" une personne à partir de son nom d'utilisateur."
#: ../../source/philosophy.rst:14 3d6c38de4f3d46b29532fd470a6eac0c
msgid ""
"What kind of information is this? First, links to person accounts. "
"Secondly, all the machine-extractable pieces of info, such as: other "
"usernames, full name, URLs to people's images, birthday, location "
"(country, city, etc.), gender."
msgstr ""
"De quelles informations s'agit-il ? D'abord, des liens vers les comptes "
"de la personne. Ensuite, tous les éléments extractibles automatiquement, "
"tels que : d'autres noms d'utilisateur, le nom complet, les URL des "
"photos, la date de naissance, la localisation (pays, ville, etc.) et le "
"genre."
#: ../../source/philosophy.rst:18 8d2202a1c40341d7ba45ddd5d1aa8b9f
msgid ""
"All this information forms some dossier, but it also useful for other "
"tools and analytical purposes. Each collected piece of data has a label "
"of a certain format (for example, ``follower_count`` for the number of "
"subscribers or ``created_at`` for account creation time) so that it can "
"be parsed and analyzed by various systems and stored in databases."
msgstr ""
"Toutes ces informations forment un dossier, mais elles sont aussi utiles "
"à d'autres outils et à des fins analytiques. Chaque donnée collectée "
"porte une étiquette d'un format précis (par exemple ``follower_count`` "
"pour le nombre d'abonnés ou ``created_at`` pour la date de création du "
"compte), afin de pouvoir être analysée par différents systèmes et stockée"
" dans des bases de données."
#: ../../source/philosophy.rst:24 1ae72284813b436aa617c2ec0b2221c9
msgid "Origins"
msgstr "Origines"
#: ../../source/philosophy.rst:26 99f6cd04767e447ab5438cc079c92739
msgid ""
"Maigret started from studying what OSINT investigators actually use in "
"practice — and from the realization that many popular tools do not "
"deliver real investigative value. The original research behind this "
"observation is summarized in the article `What's wrong with namecheckers "
"<https://soxoj.medium.com/whats-wrong-with-namecheckers-981e5cba600e>`_. "
"For a broader landscape of username-checking tools, see the curated "
"`OSINT namecheckers list <https://github.com/soxoj/osint-namecheckers-"
"list>`_."
msgstr ""
"Maigret est né de l'étude de ce que les enquêteurs OSINT utilisent "
"réellement sur le terrain, et du constat que beaucoup d'outils populaires"
" n'apportent pas de véritable valeur d'enquête. La recherche à l'origine "
"de ce constat est résumée dans l'article `What's wrong with namecheckers "
"<https://soxoj.medium.com/whats-wrong-with-namecheckers-981e5cba600e>`_. "
"Pour un panorama plus large des outils de vérification de noms "
"d'utilisateur, voir la `liste d'outils OSINT namecheckers "
"<https://github.com/soxoj/osint-namecheckers-list>`_."
#: ../../source/philosophy.rst:33 74d74e5ae95b48ad82039fd1c87d75f0
msgid "Two ideas grew out of that research:"
msgstr "Deux idées sont nées de cette recherche :"
#: ../../source/philosophy.rst:35 b76d9b534a7947b0a821d62c550fd835
msgid ""
"`socid-extractor <https://github.com/soxoj/socid-extractor>`_ "
"(`documentation <https://socid-extractor.readthedocs.io/>`_) — a library "
"focused on pulling structured identity data (user IDs, full names, linked"
" accounts, bios, timestamps, etc.) out of account pages and public API "
"responses, so that finding an account is not the end of the pipeline."
msgstr ""
"`socid-extractor <https://github.com/soxoj/socid-extractor>`_ "
"(`documentation <https://socid-extractor.readthedocs.io/>`_) — une "
"bibliothèque dédiée à l'extraction de données d'identité structurées "
"(identifiants d'utilisateur, noms complets, comptes liés, biographies, "
"horodatages, etc.) depuis les pages de comptes et les réponses d'API "
"publiques, pour que trouver un compte ne soit pas la fin de la chaîne."
#: ../../source/philosophy.rst:39 7c7af688ca7b4d78a78f6dafc5d1e959
msgid ""
"**Maigret** itself — which started as a fork of `Sherlock "
"<https://github.com/sherlock-project/sherlock>`_ but has long since "
"outgrown the original project in coverage, extraction depth, and check "
"reliability. Today Maigret is used as a component by major OSINT vendors "
"in their commercial products."
msgstr ""
"**Maigret** lui-même, qui a commencé comme un fork de `Sherlock "
"<https://github.com/sherlock-project/sherlock>`_ mais a depuis longtemps "
"dépassé le projet d'origine en couverture, en profondeur d'extraction et "
"en fiabilité des vérifications. Aujourd'hui, Maigret est utilisé comme "
"composant par de grands éditeurs OSINT dans leurs produits commerciaux."
@@ -0,0 +1,54 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/privacy.rst:4 3ea365e65eb64603a69b0bab4828d720
msgid "Privacy"
msgstr "Confidentialité"
#: ../../source/privacy.rst:6 7245b4e2ae184a61aea5a951d22c1a08
msgid ""
"Maigret runs entirely on your machine. It has no telemetry, no analytics "
"and no update pings, and it sends nothing to the project maintainers."
msgstr ""
"Maigret s'exécute entièrement sur votre machine. Il n'y a ni télémétrie, "
"ni statistiques d'usage, ni vérification de mise à jour, et rien n'est "
"envoyé aux mainteneurs du projet."
#: ../../source/privacy.rst:9 eac51965e9034c3da052c5809dce3215
msgid ""
"The usernames you search for are sent to the websites being checked, "
"because that is how the check works: Maigret requests public profile URLs"
" the same way a browser would. Reports are written to local files only."
msgstr ""
"Les noms d'utilisateur que vous recherchez sont envoyés aux sites "
"vérifiés, car c'est ainsi que fonctionne la vérification : Maigret "
"demande les URL des profils publics exactement comme le ferait un "
"navigateur. Les rapports sont écrits uniquement dans des fichiers locaux."
#: ../../source/privacy.rst:13 a1b4b0ea5592439396e88743155ce39d
msgid ""
"One feature is opt-in and involves a third party: the AI analysis of a "
"report is sent to the OpenAI API, and only if you supply your own API "
"key. Without a key the feature is inactive."
msgstr ""
"Une seule fonctionnalité fait intervenir un tiers, et elle est "
"facultative : l'analyse d'un rapport par IA est envoyée à l'API d'OpenAI,"
" et uniquement si vous fournissez votre propre clé d'API. Sans clé, la "
"fonctionnalité reste inactive."
@@ -0,0 +1,60 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/quick-start.rst:4 03d07f6e7c524cac827c0528846e6f0b
msgid "Quick start"
msgstr "Démarrage rapide"
#: ../../source/quick-start.rst:6 009c3ff4ff9f4c95a6ac4812c50fb91b
msgid ""
"After :doc:`installing Maigret <installation>`, you can begin searching "
"by providing one or more usernames to look up:"
msgstr ""
"Une fois :doc:`Maigret installé <installation>`, vous pouvez lancer une "
"recherche en fournissant un ou plusieurs noms d'utilisateur :"
#: ../../source/quick-start.rst:8 06ab1e6636264f909fde1256f92e87d0
msgid "``maigret username1 username2 ...``"
msgstr "``maigret nomdutilisateur1 nomdutilisateur2 ...``"
#: ../../source/quick-start.rst:10 303ee7d0f61848bfa82a56ae5677b3f8
msgid ""
"Maigret will search for accounts with the specified usernames across a "
"vast number of websites. It will provide you with a list of URLs to any "
"discovered accounts, along with relevant information extracted from those"
" profiles."
msgstr ""
"Maigret recherche les comptes correspondant aux noms d'utilisateur "
"indiqués sur un très grand nombre de sites. Il vous renvoie la liste des "
"URL des comptes trouvés, accompagnée des informations pertinentes "
"extraites de ces profils."
#: ../../source/quick-start.rst:14 be975e1e40c04e8d85e6db9c24148640
msgid ""
"Don't want to install anything? Run Maigret in your browser via the "
"`Telegram bot <https://maigret.app/docs-en>`_ — same engine, no setup."
msgstr ""
"Vous ne voulez rien installer ? Lancez Maigret dans votre navigateur via "
"le `bot Telegram <https://maigret.app/docs-en>`_ : le même moteur, sans "
"aucune configuration."
#: ../../source/quick-start.rst:17 b0e7682f1d984b1b93a62a16712b62d5
msgid "Maigret search results screenshot"
msgstr "Capture d'écran des résultats de recherche de Maigret"
@@ -0,0 +1,326 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/release-process.rst:4 17a339e706284f4a85c691897df85738
msgid "Release process"
msgstr "Processus de publication"
#: ../../source/release-process.rst:6 aefbb5a49b9341f68f5086531f4363de
msgid ""
"This page describes how a Maigret release is cut, what each git tag in "
"the repository means, and which automation reacts to what. It is written "
"for maintainers and for downstream packagers who need to know which ref "
"to build from."
msgstr ""
"Cette page décrit comment une version de Maigret est publiée, ce que "
"signifie chaque tag git du dépôt et quelle automatisation réagit à quoi. "
"Elle s'adresse aux mainteneurs et aux empaqueteurs en aval, qui doivent "
"savoir depuis quelle référence construire."
#: ../../source/release-process.rst:12 1e74bb38a83f4bf2bcb877afebcf6256
msgid "Where the version lives"
msgstr "Où se trouve le numéro de version"
#: ../../source/release-process.rst:14 b6576061e660449893640bc12d1697e5
msgid "The version is stored in two files and both have to be changed together:"
msgstr ""
"La version est stockée dans deux fichiers, qui doivent être modifiés "
"ensemble :"
#: ../../source/release-process.rst:16 bdc5ce0a756048588fc6bd4fc5babe57
msgid "``pyproject.toml``, the ``version`` field under ``[tool.poetry]``"
msgstr "``pyproject.toml``, le champ ``version`` sous ``[tool.poetry]``"
#: ../../source/release-process.rst:17 cef162954f8e4b84bc1a036aba630ad8
msgid "``maigret/__version__.py``, the ``__version__`` string"
msgstr "``maigret/__version__.py``, la chaîne ``__version__``"
#: ../../source/release-process.rst:19 237e5c1ed8cf4a2a9b443fe1f4b1281e
msgid ""
"``maigret/__version__.py`` is what the snap packaging reads through "
"``craftctl set version``, and ``pyproject.toml`` is what ends up in the "
"PyPI metadata. A mismatch between them produces a package that reports "
"one version and is published as another."
msgstr ""
"``maigret/__version__.py`` est ce que lit l'empaquetage snap via "
"``craftctl set version``, et ``pyproject.toml`` est ce qui se retrouve "
"dans les métadonnées PyPI. Une divergence entre les deux produit un "
"paquet qui annonce une version et qui est publié sous une autre."
#: ../../source/release-process.rst:25 a92d26566ec94a2f940411d2aaf8dbf4
msgid "Cutting a release"
msgstr "Préparer une version"
#: ../../source/release-process.rst:27 f34e7a60d13d4d379930f58cee1bf22b
msgid ""
"Branch off ``main``. The branch is normally named after the version, for "
"example ``0.6.5``."
msgstr ""
"Créez une branche à partir de ``main``. Elle porte normalement le nom de "
"la version, par exemple ``0.6.5``."
#: ../../source/release-process.rst:29 025928a1d2054936a551727ac52e5a34
msgid "Bump the two version files on that branch."
msgstr "Incrémentez les deux fichiers de version sur cette branche."
#: ../../source/release-process.rst:30 b576ce4c678a4c62ae94596beba1db7c
msgid ""
"Open a pull request for the bump, so the change is reviewed like any "
"other."
msgstr ""
"Ouvrez une pull request pour cette montée de version, afin qu'elle soit "
"relue comme n'importe quel autre changement."
#: ../../source/release-process.rst:32 ad1c5257714046a1b132082636dcbd73
msgid ""
"The release branch is where the tag will live. It is deliberately "
"separate from ``main``: the tag has to point at a commit whose version "
"files already say the new number, and ``main`` only receives that commit "
"after the release is out."
msgstr ""
"C'est sur la branche de version que vivra le tag. Elle est volontairement"
" distincte de ``main`` : le tag doit pointer sur un commit dont les "
"fichiers de version annoncent déjà le nouveau numéro, et ``main`` ne "
"reçoit ce commit qu'une fois la version publiée."
#: ../../source/release-process.rst:37 9b0fd23d4f83496aa2b3b0339aa9b63b
msgid "Publishing"
msgstr "Publication"
#: ../../source/release-process.rst:39 cd1ba051900c45f68ad00bc86f881d50
msgid ""
"Create a GitHub Release whose tag is ``vX.Y.Z`` and whose target is the "
"release branch. Publishing it is the event that starts everything else, "
"so the release notes should be finished before you publish rather than "
"after."
msgstr ""
"Créez une GitHub Release dont le tag est ``vX.Y.Z`` et dont la cible est "
"la branche de version. C'est sa publication qui déclenche tout le reste, "
"donc les notes de version doivent être terminées avant de publier, pas "
"après."
#: ../../source/release-process.rst:43 564a58b206c14bc8a6ad3b7404fa9fff
msgid "Two workflows listen for ``release: types: [published]``:"
msgstr "Deux workflows écoutent ``release: types: [published]`` :"
#: ../../source/release-process.rst:45 ea4d208e7f084977a98696fbff688f94
msgid ""
"``python-publish.yml`` builds the source distribution and the wheel and "
"uploads them to PyPI through trusted publishing."
msgstr ""
"``python-publish.yml`` construit la distribution source et la wheel, puis"
" les téléverse sur PyPI via le trusted publishing."
#: ../../source/release-process.rst:47 af70ac77d9864f228f7ca81e486f3876
msgid ""
"``pyinstaller.yml`` builds ``maigret_standalone.exe`` under Wine and "
"attaches it to the release. The binary appears a few minutes after the "
"release itself, because PyInstaller is slow under Wine."
msgstr ""
"``pyinstaller.yml`` construit ``maigret_standalone.exe`` sous Wine et "
"l'attache à la release. Le binaire apparaît quelques minutes après la "
"release elle-même, car PyInstaller est lent sous Wine."
#: ../../source/release-process.rst:51 dcbf2f54af9d498d9ab76133fe766e0f
msgid ""
"Both check out ``refs/tags/vX.Y.Z``, so both build the released code "
"rather than the current head of a branch."
msgstr ""
"Les deux font un checkout de ``refs/tags/vX.Y.Z`` : ils construisent donc"
" le code publié, et non la tête actuelle d'une branche."
#: ../../source/release-process.rst:55 795f5e6ef9c54986aafe1e91e65752e7
msgid ""
"The ``pypi`` environment has no protection rules, so publishing any "
"release sends a package straight to PyPI with no human gate. Publishing a"
" test release from a branch whose version is not yet on PyPI will publish"
" that version for real."
msgstr ""
"L'environnement ``pypi`` n'a aucune règle de protection : publier une "
"release quelconque envoie le paquet directement sur PyPI, sans validation"
" humaine. Publier une release de test depuis une branche dont la version "
"n'est pas encore sur PyPI publiera cette version pour de bon."
#: ../../source/release-process.rst:61 5ddb2c3d69154ecbb85d3409d3322111
msgid "After the release"
msgstr "Après la publication"
#: ../../source/release-process.rst:63 517ac4e667aa440c80cd998100432260
msgid ""
"Merge the release branch into ``main``. In practice this happens a couple"
" of minutes after the release is published."
msgstr ""
"Fusionnez la branche de version dans ``main``. En pratique, cela se fait "
"quelques minutes après la publication."
#: ../../source/release-process.rst:66 07b11fd6ec564244a88153832522526f
msgid ""
"The push to ``main`` is a separate trigger and starts the routine "
"automation: the nightly Windows build, the Docker Hub images, the site "
"database refresh and the test suite."
msgstr ""
"Le push sur ``main`` est un déclencheur distinct, qui lance "
"l'automatisation de routine : la construction nocturne pour Windows, les "
"images Docker Hub, le rafraîchissement de la base de sites et la suite de"
" tests."
#: ../../source/release-process.rst:70 daa606217c2a4fad89b8dc9a1cbe017f
msgid ""
"Because the release branch is merged with a squash, the commit that lands"
" on ``main`` is not the commit the tag points at. This means ``vX.Y.Z`` "
"is not an ancestor of ``main``. It is expected, and it is why a packager "
"should build from the tag rather than looking for it in the branch "
"history."
msgstr ""
"Comme la branche de version est fusionnée en squash, le commit qui arrive"
" sur ``main`` n'est pas celui sur lequel pointe le tag. Autrement dit, "
"``vX.Y.Z`` n'est pas un ancêtre de ``main``. C'est attendu, et c'est la "
"raison pour laquelle un empaqueteur doit construire depuis le tag plutôt "
"que de le chercher dans l'historique de la branche."
#: ../../source/release-process.rst:76 1fc5ebf8ebde4634917f70b5e6a06681
msgid "Tags in this repository"
msgstr "Les tags de ce dépôt"
#: ../../source/release-process.rst:78 b3d0729bb2b2432fac9969ed9600c617
msgid ""
"**Release tags**, ``vX.Y.Z``. Immutable, one per release, pointing at the"
" tip of a release branch. These are the only tags a packager should build"
" from."
msgstr ""
"**Tags de version**, ``vX.Y.Z``. Immuables, un par version, pointant sur "
"la tête d'une branche de version. Ce sont les seuls tags depuis lesquels "
"un empaqueteur doit construire."
#: ../../source/release-process.rst:81 6328e93333ab4c8e8204cf15a6f9b3f0
msgid ""
"**Nightly tags**, ``nightly-main`` and ``nightly-dev``. Moving tags. "
"Every push to the matching branch rebuilds the Windows binary and force-"
"updates the tag to the built commit, so the tag always matches the "
"attached ``.exe``. The releases behind them are marked as prereleases so "
"they never take the \"latest\" marker from a real release. Never pin "
"anything to these: the ref is stable but its content is not."
msgstr ""
"**Tags nocturnes**, ``nightly-main`` et ``nightly-dev``. Des tags "
"mobiles. Chaque push sur la branche correspondante reconstruit le binaire"
" Windows et force la mise à jour du tag vers le commit construit, de "
"sorte que le tag corresponde toujours au ``.exe`` attaché. Les releases "
"associées sont marquées comme préversions, afin de ne jamais prendre le "
"marqueur « latest » d'une vraie version. N'épinglez jamais quoi que ce "
"soit dessus : la référence est stable, mais son contenu ne l'est pas."
#: ../../source/release-process.rst:88 7403364086e84a208f960ad875e398b6
msgid ""
"**Legacy tags**, ``main``, ``dev``, ``test`` and ``dev-564`` through "
"``dev-571``. Left over from an earlier version of the Windows build, "
"which used the branch name directly as the tag name. Nothing creates or "
"updates them any more. Two of them still carry GitHub releases with a "
"Windows binary attached, built in April 2026, so anything downloaded from"
" them is old."
msgstr ""
"**Tags hérités**, ``main``, ``dev``, ``test`` et ``dev-564`` à "
"``dev-571``. Reliquats d'une ancienne version de la construction Windows,"
" qui utilisait directement le nom de la branche comme nom de tag. Plus "
"rien ne les crée ni ne les met à jour. Deux d'entre eux portent encore "
"des releases GitHub avec un binaire Windows attaché, construit en avril "
"2026 : tout ce qui en est téléchargé est donc ancien."
#: ../../source/release-process.rst:95 499996b2bb6e49f2841c32bb58528637
msgid ""
"A tag named ``main`` shadows the branch of the same name. ``git rev-parse"
" main`` warns that the refname is ambiguous and answers with the tag, so "
"``git show main:some/file`` reads from the tag's commit and not from the "
"branch head. Tools that resolve a bare ref hit this too: a remote build "
"that is told to build ``main`` may build the tag. Use ``refs/heads/main``"
" explicitly, or clone with ``--no-tags``. The site data workflow works "
"around it with a ``git tag -d main`` step before it touches any ref."
msgstr ""
"Un tag nommé ``main`` masque la branche du même nom. ``git rev-parse "
"main`` avertit que la référence est ambiguë et répond avec le tag, si "
"bien que ``git show main:un/fichier`` lit le commit du tag et non la tête"
" de la branche. Les outils qui résolvent une référence nue tombent dans "
"le même piège : une construction distante à laquelle on demande ``main`` "
"risque de construire le tag. Utilisez explicitement ``refs/heads/main``, "
"ou clonez avec ``--no-tags``. Le workflow des données de sites contourne "
"le problème avec une étape ``git tag -d main`` avant de toucher à la "
"moindre référence."
#: ../../source/release-process.rst:104 24e401ea5e3c47e686b40255ab6cedaf
msgid "Where the artifacts end up"
msgstr "Où atterrissent les artefacts"
#: ../../source/release-process.rst:106 181b3e7dbf0f41799e28eb956e8f3e66
msgid "Published automatically on release:"
msgstr "Publiés automatiquement à chaque release :"
#: ../../source/release-process.rst:108 ad0c797d160441e199fecf92ff51f677
msgid "**PyPI**, the source distribution and the wheel."
msgstr "**PyPI**, la distribution source et la wheel."
#: ../../source/release-process.rst:109 f83b2aa49f584014ab6a2516b60ce11b
msgid "**GitHub release assets**, the Windows ``maigret_standalone.exe``."
msgstr ""
"**Les assets de la release GitHub**, le ``maigret_standalone.exe`` pour "
"Windows."
#: ../../source/release-process.rst:111 27c81092af374faa8a7bdd3eec745e1b
msgid "Published automatically on every push to ``main``:"
msgstr "Publiés automatiquement à chaque push sur ``main`` :"
#: ../../source/release-process.rst:113 b4f0d324b8794cf4a27fc500fa138912
msgid "**Docker Hub**, the CLI and web images."
msgstr "**Docker Hub**, les images CLI et web."
#: ../../source/release-process.rst:115 d7a8efffcb2844a0b8eed26caf6da766
msgid "Published by hand:"
msgstr "Publiés à la main :"
#: ../../source/release-process.rst:117 e45ef970948044078020146a411921ee
msgid ""
"**Snap**, built with ``snapcraft`` and uploaded to the ``latest/stable`` "
"channel for amd64 and arm64. Uploading a revision does not touch the "
"store listing: the summary, the description and the icon change only when"
" ``snapcraft upload-metadata <snap-file>`` is run, so run it whenever "
"those fields change in ``snap/snapcraft.yaml``, or the store keeps "
"serving the old text."
msgstr ""
"**Snap**, construit avec ``snapcraft`` et téléversé sur le canal "
"``latest/stable`` pour amd64 et arm64. Téléverser une révision ne touche "
"pas à la fiche du store : le résumé, la description et l'icône ne "
"changent que lorsque ``snapcraft upload-metadata <fichier-snap>`` est "
"exécuté. Lancez-le donc dès que ces champs changent dans "
"``snap/snapcraft.yaml``, sinon le store continue de servir l'ancien "
"texte."
#: ../../source/release-process.rst:124 edcc5592473f4eb5bbf9f9fab4d50848
msgid "Maintained downstream, outside this repository:"
msgstr "Maintenus en aval, en dehors de ce dépôt :"
#: ../../source/release-process.rst:126 da25d33954774695b15ca4ea695982ba
msgid ""
"The AUR, Homebrew core, MacPorts and nixpkgs normally follow a new "
"release within a day or two without being asked."
msgstr ""
"AUR, Homebrew core, MacPorts et nixpkgs suivent normalement une nouvelle "
"version en un jour ou deux, sans qu'on ait à le demander."
#: ../../source/release-process.rst:128 edbbf6cb578d4be9acbbfb2d7a000193
msgid "BlackArch is updated through a pull request to the BlackArch repository."
msgstr "BlackArch est mis à jour via une pull request sur le dépôt BlackArch."
@@ -0,0 +1,569 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/settings.rst:4 712aa27723a44c47a41b5ec1c1c6f9a4
msgid "Settings"
msgstr "Paramètres"
#: ../../source/settings.rst:7 c5ccdfd8a85f4cbdac40dabb3e2b82a2
msgid "The settings system is under development and may be subject to change."
msgstr "Le système de paramètres est en cours de développement et peut évoluer."
#: ../../source/settings.rst:9 1699072abb98497c98cb9f53aec2cbb4
msgid ""
"Options are also configurable through settings files. See `settings JSON "
"file "
"<https://github.com/soxoj/maigret/blob/main/maigret/resources/settings.json>`_"
" for the list of currently supported options."
msgstr ""
"Les options sont également configurables via des fichiers de paramètres. "
"Voir le `fichier JSON de paramètres "
"<https://github.com/soxoj/maigret/blob/main/maigret/resources/settings.json>`_"
" pour la liste des options actuellement prises en charge."
#: ../../source/settings.rst:13 c6cbc3056c9343738eda818a9f364130
msgid ""
"After start Maigret tries to load configuration from the following "
"sources in exactly the same order:"
msgstr ""
"Au démarrage, Maigret tente de charger sa configuration depuis les "
"sources suivantes, exactement dans cet ordre :"
#: ../../source/settings.rst:29 7a538929815f498187ca348a85567bea
msgid ""
"Missing any of these files is not an error. If the next settings file "
"contains already known option, this option will be rewritten. So it is "
"possible to make custom configuration for different users and "
"directories."
msgstr ""
"L'absence de l'un de ces fichiers n'est pas une erreur. Si le fichier de "
"paramètres suivant contient une option déjà connue, cette option est "
"écrasée. Il est donc possible d'avoir une configuration différente selon "
"les utilisateurs et les répertoires."
#: ../../source/settings.rst:37 a4f24518d9984c04b0e8a8b2fee23b6a
msgid "Database auto-update"
msgstr "Mise à jour automatique de la base"
#: ../../source/settings.rst:39 402f5cc3c5634bc6863e5b69bcf977d6
msgid ""
"Maigret ships with a bundled site database, but it gets outdated between "
"releases. To keep the database current, Maigret automatically checks for "
"updates on startup."
msgstr ""
"Maigret est livré avec une base de sites embarquée, mais celle-ci se "
"périme entre deux versions. Pour la garder à jour, Maigret vérifie "
"automatiquement au démarrage si une mise à jour est disponible."
#: ../../source/settings.rst:41 669b989f8d8d4ed38786d6595015e2ec
msgid "**How it works:**"
msgstr "**Comment cela fonctionne :**"
#: ../../source/settings.rst:43 38c301861c6747e7a5324bfc4fe1c32d
msgid ""
"On startup, Maigret checks if more than 24 hours have passed since the "
"last update check."
msgstr ""
"Au démarrage, Maigret regarde si plus de 24 heures se sont écoulées "
"depuis la dernière vérification."
#: ../../source/settings.rst:44 514089cd2e0e4c9e8b143fe28da78667
msgid ""
"If so, it fetches a lightweight metadata file (~200 bytes) from GitHub to"
" see if a newer database is available."
msgstr ""
"Si c'est le cas, il récupère depuis GitHub un fichier de métadonnées "
"léger (environ 200 octets) pour savoir si une base plus récente est "
"disponible."
#: ../../source/settings.rst:45 cd91691de90d491fb891524cedf55218
msgid ""
"If a newer, compatible database exists, Maigret downloads it to "
"``~/.maigret/data.json`` and uses it instead of the bundled copy."
msgstr ""
"S'il existe une base plus récente et compatible, Maigret la télécharge "
"dans ``~/.maigret/data.json`` et l'utilise à la place de la copie "
"embarquée."
#: ../../source/settings.rst:46 837e88ded4ad42e4b3d3a70dd57e81f2
msgid ""
"If the download fails or the new database is incompatible with your "
"Maigret version, the bundled database is used as a fallback."
msgstr ""
"Si le téléchargement échoue ou si la nouvelle base est incompatible avec "
"votre version de Maigret, la base embarquée sert de solution de repli."
#: ../../source/settings.rst:48 13f6ae56504342d9be93259b0fa33003
msgid ""
"The downloaded database has **higher priority** than the bundled one — it"
" replaces, not overlays."
msgstr ""
"La base téléchargée a une **priorité supérieure** à la base embarquée : "
"elle la remplace, elle ne se superpose pas à elle."
#: ../../source/settings.rst:50 b3f4963f12094f9e8546f5d595197bb6
msgid "**Status messages** are printed only when an action occurs:"
msgstr "**Les messages d'état** ne sont affichés que lorsqu'une action a lieu :"
#: ../../source/settings.rst:59 42e5b4887cde4660a2f0542c07dcedf7
msgid "**Forcing an update:**"
msgstr "**Forcer une mise à jour :**"
#: ../../source/settings.rst:61 89faa3328804430cbf93746ada4a4d88
msgid ""
"Use the ``--force-update`` flag to check for updates immediately, "
"ignoring the check interval:"
msgstr ""
"Utilisez l'option ``--force-update`` pour vérifier immédiatement les "
"mises à jour, sans tenir compte de l'intervalle de vérification :"
#: ../../source/settings.rst:67 220037a894014d9dbd366fb2a99e6119
msgid ""
"The update happens at startup, then the search continues normally with "
"the freshly downloaded database."
msgstr ""
"La mise à jour a lieu au démarrage, puis la recherche se poursuit "
"normalement avec la base fraîchement téléchargée."
#: ../../source/settings.rst:69 0cdb36848da640d7b692f7977f1725a1
msgid "**Disabling auto-update:**"
msgstr "**Désactiver la mise à jour automatique :**"
#: ../../source/settings.rst:71 6db5793be50e4c90a24734da0cec98ee
msgid "Use the ``--no-autoupdate`` flag to skip the update check entirely:"
msgstr ""
"Utilisez l'option ``--no-autoupdate`` pour ignorer complètement la "
"vérification :"
#: ../../source/settings.rst:77 17cfc74f62cf46c7bc54a75f1cca8802
msgid "Or set it permanently in ``~/.maigret/settings.json``:"
msgstr "Ou définissez-la de façon permanente dans ``~/.maigret/settings.json`` :"
#: ../../source/settings.rst:85 18273bd5be604dd5ad97821b35719b1b
msgid ""
"This is recommended for **Docker containers**, **CI pipelines**, and "
"**air-gapped environments**."
msgstr ""
"C'est recommandé pour les **conteneurs Docker**, les **pipelines "
"d'intégration continue** et les **environnements isolés du réseau**."
#: ../../source/settings.rst:87 0faa9c4c7e424e399b9f835443034182
msgid "**Configuration options** (in ``settings.json``):"
msgstr "**Options de configuration** (dans ``settings.json``) :"
#: ../../source/settings.rst:93 ../../source/settings.rst:266
#: 054564c056d1494597e89a3b742ed39e 98e3efc70a3447bc94d733611d6e6975
msgid "Setting"
msgstr "Paramètre"
#: ../../source/settings.rst:94 ../../source/settings.rst:267
#: 7e337b8f63fe4f32be13ca02bb5ace44 e25fa57cf77e4ab889a5bf5a992825f9
msgid "Default"
msgstr "Valeur par défaut"
#: ../../source/settings.rst:95 ../../source/settings.rst:207
#: ../../source/settings.rst:268 1eef0cc76a07448095ccd2b997421ef9
#: 787e234e02fd4f7a99cbe355d077843d e77ed8266a944fcaa3f90d87537d3095
msgid "Description"
msgstr "Description"
#: ../../source/settings.rst:96 06d5a75f72a345fba5c82712a61e59a1
msgid "``no_autoupdate``"
msgstr "``no_autoupdate``"
#: ../../source/settings.rst:97 f17a17726d7f4ee8ae5d59efe7d4dca8
msgid "``false``"
msgstr "``false``"
#: ../../source/settings.rst:98 95e7c7537f0144dcb59cdb9a2eab5b6f
msgid "Disable auto-update entirely"
msgstr "Désactive entièrement la mise à jour automatique"
#: ../../source/settings.rst:99 83fcbad2d96647989c7c711cf5305975
msgid "``autoupdate_check_interval_hours``"
msgstr "``autoupdate_check_interval_hours``"
#: ../../source/settings.rst:100 cdf137d498454401827eb2036818e001
msgid "``24``"
msgstr "``24``"
#: ../../source/settings.rst:101 6c2b200410174d0e934b4c975d0bee3e
msgid "How often to check for updates (in hours)"
msgstr "Fréquence de vérification des mises à jour (en heures)"
#: ../../source/settings.rst:102 5005644bf3194dcbb9af0cfaf0f046c8
msgid "``db_update_meta_url``"
msgstr "``db_update_meta_url``"
#: ../../source/settings.rst:103 29ba9a1f3730400bb470873a1621dc7b
msgid "GitHub raw URL"
msgstr "URL brute GitHub"
#: ../../source/settings.rst:104 0fdbf51eb2a54f9bb9016db8680409d2
msgid "URL of the metadata file (for custom mirrors)"
msgstr "URL du fichier de métadonnées (pour un miroir personnalisé)"
#: ../../source/settings.rst:106 84cd7381bc154facaad49be53c844b1b
msgid ""
"**Using a custom database** with ``--db`` always skips auto-update — you "
"are explicitly choosing your data source."
msgstr ""
"**Utiliser une base personnalisée** avec ``--db`` désactive toujours la "
"mise à jour automatique : vous choisissez explicitement votre source de "
"données."
#: ../../source/settings.rst:111 0e60ce383c304cd79a73b9ba9900aa90
msgid "Activation token cache"
msgstr "Cache des jetons d'activation"
#: ../../source/settings.rst:113 88fccff8940b44f689a41f95715e0c15
msgid ""
"A handful of sites reject anonymous requests until a short-lived token is"
" obtained: Twitter needs a guest token, Vimeo a JWT, Weibo and Wikimapia "
"a session cookie, OnlyFans a signed header pair, ProtonMail a bearer "
"token. Maigret mints these during a run, the first time such a site "
"answers with a challenge instead of a profile page."
msgstr ""
"Quelques sites rejettent les requêtes anonymes tant qu'un jeton de courte"
" durée n'a pas été obtenu : Twitter demande un jeton invité, Vimeo un "
"JWT, Weibo et Wikimapia un cookie de session, OnlyFans une paire d'en-"
"têtes signés, ProtonMail un jeton bearer. Maigret les génère en cours "
"d'exécution, la première fois qu'un tel site répond par un défi plutôt "
"que par une page de profil."
#: ../../source/settings.rst:115 2a4f0dcd05724ed49fcffb57e8e6a8e2
msgid "Minted values are cached in:"
msgstr "Les valeurs générées sont mises en cache dans :"
#: ../../source/settings.rst:121 714de8be43ad497d9418deb973aae4f0
msgid ""
"so the next run starts with a warm token and skips the extra round trip. "
"The file is created with ``0600`` permissions because these tokens are "
"session credentials — treat it as one, and do not attach it to a bug "
"report."
msgstr ""
"de sorte que l'exécution suivante démarre avec un jeton déjà chaud et "
"évite un aller-retour supplémentaire. Le fichier est créé avec les "
"permissions ``0600``, car ces jetons sont des identifiants de session : "
"traitez-le comme tel et ne le joignez pas à un rapport de bug."
#: ../../source/settings.rst:123 270653671f0449f2ad474d0e10f5af8a
msgid ""
"**What is stored:** only the header values that differ from what the site"
" database shipped. Storing the whole header set would pin the shipped "
"values, so a later database update could never change them again."
msgstr ""
"**Ce qui est stocké :** uniquement les valeurs d'en-tête qui diffèrent de"
" celles fournies par la base de sites. Stocker l'ensemble des en-têtes "
"figerait les valeurs livrées, et une mise à jour ultérieure de la base ne"
" pourrait plus jamais les modifier."
#: ../../source/settings.rst:125 98960ee7d2374592994f81ea5ccdca2d
msgid ""
"**Safe to delete:** yes. The next run mints whatever it needs again; the "
"only cost is one extra request per affected site."
msgstr ""
"**Peut-on le supprimer sans risque :** oui. L'exécution suivante regénère"
" ce dont elle a besoin ; cela ne coûte qu'une requête supplémentaire par "
"site concerné."
#: ../../source/settings.rst:127 ac64c5f1e78c45c2a293c37c9876b7e7
msgid ""
"**Why it is not kept in the site database:** the database is package "
"data. It is versioned, checksum-verified and replaced wholesale by :ref"
":`database-auto-update`, and on a system-wide install (distribution "
"package, snap, ``/nix/store``) its directory is not writable at all. "
"Tokens are per-user state with a different lifetime, so they live in a "
"separate file."
msgstr ""
"**Pourquoi il n'est pas conservé dans la base de sites :** la base fait "
"partie des données du paquet. Elle est versionnée, vérifiée par somme de "
"contrôle et remplacée intégralement par la :ref:`database-auto-update` ; "
"de plus, lors d'une installation à l'échelle du système (paquet de "
"distribution, snap, ``/nix/store``), son répertoire n'est pas du tout "
"accessible en écriture. Les jetons, eux, sont un état propre à "
"l'utilisateur, avec une durée de vie différente : ils vivent donc dans un"
" fichier séparé."
#: ../../source/settings.rst:130 ebb029ea82714466a8b97d847050b429
msgid "Cloudflare webgate"
msgstr "Webgate Cloudflare"
#: ../../source/settings.rst:134 202f1602b947481783614809cdbc065e
msgid ""
"**Experimental.** The ``cloudflare_bypass`` block is under active "
"development; field names, defaults, and the trigger-protection routing "
"rules may change without backwards-compatibility guarantees."
msgstr ""
"**Expérimental.** Le bloc ``cloudflare_bypass`` est en cours de "
"développement actif ; les noms de champs, les valeurs par défaut et les "
"règles de routage par protection déclenchante peuvent changer sans "
"garantie de compatibilité ascendante."
#: ../../source/settings.rst:138 cb36b917c00e40fb8d3ba14fc8a395fe
msgid ""
"The ``cloudflare_bypass`` block in ``settings.json`` configures the "
"optional bypass described in :ref:`cloudflare-bypass`. The same block is "
"honoured by the CLI, the Python API, and the web UI (``python -m "
"maigret.web.app``); set ``enabled: true`` once and every entry point "
"routes cf-protected sites through the solver."
msgstr ""
"Le bloc ``cloudflare_bypass`` de ``settings.json`` configure le "
"contournement facultatif décrit dans :ref:`cloudflare-bypass`. Ce même "
"bloc est pris en compte par la ligne de commande, l'API Python et "
"l'interface web (``python -m maigret.web.app``) : définissez ``enabled: "
"true`` une fois et tous les points d'entrée feront passer les sites "
"protégés par Cloudflare via le solveur."
#: ../../source/settings.rst:144 3b75de84595f42028bfffc394e04e301
msgid ""
"**Minimal FlareSolverr setup.** Start the solver in Docker, then drop the"
" following snippet into ``~/.maigret/settings.json`` (or any path listed "
"in :ref:`settings`):"
msgstr ""
"**Configuration FlareSolverr minimale.** Démarrez le solveur dans Docker,"
" puis déposez l'extrait suivant dans ``~/.maigret/settings.json`` (ou "
"dans l'un des chemins listés dans :ref:`settings`) :"
#: ../../source/settings.rst:169 3d652af4ea5a4865a6e16540c63c8ac9
msgid ""
"That is enough — ``session_prefix`` and ``trigger_protection`` fall back "
"to sensible defaults (``\"maigret\"`` and ``[\"cf_js_challenge\", "
"\"cf_firewall\", \"webgate\"]`` respectively). On the next run, Maigret "
"logs ``Cloudflare webgate active: ...`` and routes matching sites through"
" the solver."
msgstr ""
"Cela suffit : ``session_prefix`` et ``trigger_protection`` reprennent des"
" valeurs par défaut raisonnables (respectivement ``\"maigret\"`` et "
"``[\"cf_js_challenge\", \"cf_firewall\", \"webgate\"]``). À l'exécution "
"suivante, Maigret journalise ``Cloudflare webgate active: ...`` et fait "
"passer les sites correspondants par le solveur."
#: ../../source/settings.rst:175 2097863779d344e1ae247dc569b4b68f
msgid "Default value (full schema with every supported field):"
msgstr "Valeur par défaut (schéma complet, avec tous les champs pris en charge) :"
#: ../../source/settings.rst:200 06eb5435ed3146a6971008b016481164
msgid "**Fields.**"
msgstr "**Champs.**"
#: ../../source/settings.rst:206 07846b8d0d0a45ba804c0ec91d6e180b
msgid "Field"
msgstr "Champ"
#: ../../source/settings.rst:208 02494ad45b71492a9e303b7d8f6c52dc
msgid "``enabled``"
msgstr "``enabled``"
#: ../../source/settings.rst:209 e1811ab924fa4ac0a7b2635c203141a2
msgid ""
"When ``true``, the bypass is active for every run; when ``false`` (the "
"default), it activates only on ``--cloudflare-bypass``."
msgstr ""
"Lorsqu'il vaut ``true``, le contournement est actif à chaque exécution ; "
"lorsqu'il vaut ``false`` (par défaut), il ne s'active qu'avec "
"``--cloudflare-bypass``."
#: ../../source/settings.rst:211 9ea31bd9dff64928906a771fff1a2379
msgid "``trigger_protection``"
msgstr "``trigger_protection``"
#: ../../source/settings.rst:212 ca70603566b84654ad457beed9aa9d0f
msgid ""
"List of ``site.protection`` values that route a check through the "
"webgate. Sites whose protection is empty or doesn't intersect this list "
"use the default (aiohttp / curl_cffi) checker."
msgstr ""
"Liste des valeurs de ``site.protection`` qui font passer une vérification"
" par le webgate. Les sites dont la protection est vide, ou ne recoupe pas"
" cette liste, utilisent le vérificateur par défaut (aiohttp / curl_cffi)."
#: ../../source/settings.rst:215 3bfd5c6ea6404a489dded9f36f7c89f2
msgid "``session_prefix``"
msgstr "``session_prefix``"
#: ../../source/settings.rst:216 fff9872f0a094dd6998b4b6967874ec7
msgid ""
"Prefix for the FlareSolverr ``session`` field. Maigret appends the "
"process PID so concurrent runs don't collide. Reusing a session caches "
"cf_clearance between checks of the same domain."
msgstr ""
"Préfixe du champ ``session`` de FlareSolverr. Maigret y ajoute le PID du "
"processus pour que des exécutions concurrentes n'entrent pas en "
"collision. Réutiliser une session met en cache le cf_clearance entre les "
"vérifications d'un même domaine."
#: ../../source/settings.rst:219 9df6df011a394313b225a818cc62c8b9
msgid "``modules``"
msgstr "``modules``"
#: ../../source/settings.rst:220 a9fe0c319fb246e9998bebc72113fd48
msgid ""
"Ordered list of backend modules. The first reachable module handles the "
"check; later ones serve as a fallback chain."
msgstr ""
"Liste ordonnée des modules de backend. Le premier module joignable traite"
" la vérification ; les suivants forment une chaîne de repli."
#: ../../source/settings.rst:223 c06ae16380b24123b94106c7e1167569
msgid "**Module methods.**"
msgstr "**Méthodes des modules.**"
#: ../../source/settings.rst:225 3d04b828e60845028a7f0481de8f0542
msgid ""
"``json_api`` — FlareSolverr-compatible POST endpoint at ``url``. "
"Preserves real upstream HTTP status, headers and final URL. Optional "
"``max_timeout_ms`` (default ``60000``) is the per-request budget the "
"solver is allowed to spend on the JS challenge."
msgstr ""
"``json_api`` — point d'entrée POST compatible FlareSolverr à l'adresse "
"``url``. Préserve le vrai statut HTTP en amont, les en-têtes et l'URL "
"finale. Le champ facultatif ``max_timeout_ms`` (``60000`` par défaut) est"
" le budget par requête que le solveur peut consacrer au défi JavaScript."
#: ../../source/settings.rst:229 1420b85d982147069d53596ac7f48bce
#, python-brace-format
msgid ""
"``url_rewrite`` — legacy CloudflareBypassForScraping endpoint. The "
"``url`` must contain a ``{url}`` placeholder; the original probe URL is "
"URL-encoded and substituted in. Returns rendered HTML only — ``checkType:"
" status_code`` and ``response_url`` checks misfire under this method "
"(treated as a synthetic HTTP 200 on success)."
msgstr ""
"``url_rewrite`` — ancien point d'entrée CloudflareBypassForScraping. "
"L'``url`` doit contenir un emplacement ``{url}`` ; l'URL de sonde "
"d'origine y est insérée après encodage. Ne renvoie que du HTML rendu : "
"les vérifications ``checkType: status_code`` et ``response_url`` se "
"déclenchent donc à tort avec cette méthode (un succès est traité comme un"
" HTTP 200 synthétique)."
#: ../../source/settings.rst:235 1b9745c5d3af407a9288281aee2fe95e
msgid "**Optional ``proxy`` field (``json_api`` only).**"
msgstr "**Champ facultatif ``proxy`` (``json_api`` uniquement).**"
#: ../../source/settings.rst:237 b6c0c59d51a94d08ba4d073fdd37b32e
msgid ""
"A module may carry a ``proxy`` entry that the solver routes the upstream "
"request through. Useful when a site enforces ``ip_reputation`` rules that"
" block the solver host. Two forms are accepted:"
msgstr ""
"Un module peut porter une entrée ``proxy``, par laquelle le solveur fait "
"passer la requête en amont. C'est utile quand un site applique des règles"
" d'``ip_reputation`` qui bloquent la machine du solveur. Deux formes sont"
" acceptées :"
#: ../../source/settings.rst:251 0ac86ff3f5044119a00dbdf68a58a185
msgid ""
"Only ``url``/``username``/``password`` are forwarded; other keys are "
"dropped. Cloudflare ``Error 1015 / 1020`` responses indicate the IP is "
"rate-limited or banned — switch the proxy rather than retrying. .. _ai-"
"analysis-settings:"
msgstr ""
"Seuls ``url``/``username``/``password`` sont transmis ; les autres clés "
"sont ignorées. Une réponse Cloudflare ``Error 1015 / 1020`` signale que "
"l'IP est limitée en débit ou bannie : changez de proxy plutôt que de "
"réessayer. .. _ai-analysis-settings:"
#: ../../source/settings.rst:257 a1e518dd3b5947d39bd7987a5cc798a5
msgid "AI analysis"
msgstr "Analyse par IA"
#: ../../source/settings.rst:259 e19f1fb9a5cc4be5a6b9e128953afeb9
msgid ""
"The ``--ai`` flag (see :ref:`ai-analysis`) talks to an OpenAI-compatible "
"chat completion API. Three settings control how that request is made:"
msgstr ""
"L'option ``--ai`` (voir :ref:`ai-analysis`) interroge une API de "
"complétion de conversation compatible OpenAI. Trois paramètres contrôlent"
" la façon dont cette requête est faite :"
#: ../../source/settings.rst:269 31b8625625904e5483c9f9639ab2bca1
msgid "``openai_api_key``"
msgstr "``openai_api_key``"
#: ../../source/settings.rst:270 2863d798e677471fab8d2b8f48ffbc5a
msgid "``\"\"`` (empty)"
msgstr "``\"\"`` (vide)"
#: ../../source/settings.rst:271 26e54b9ec8054552b525569a0a11a5e0
msgid ""
"API key. If empty, Maigret falls back to the ``OPENAI_API_KEY`` "
"environment variable."
msgstr ""
"Clé d'API. Si elle est vide, Maigret se rabat sur la variable "
"d'environnement ``OPENAI_API_KEY``."
#: ../../source/settings.rst:273 ceb65e8a17544b47b0b6efe6d7209ca0
msgid "``openai_model``"
msgstr "``openai_model``"
#: ../../source/settings.rst:274 81861a14dba74c349adac984cb651b9f
msgid "``gpt-4o``"
msgstr "``gpt-4o``"
#: ../../source/settings.rst:275 6131b48ea228457d9ae08a4fd376b145
msgid "Default model name. Overridable per-run with ``--ai-model``."
msgstr ""
"Nom du modèle par défaut. Remplaçable à chaque exécution avec ``--ai-"
"model``."
#: ../../source/settings.rst:276 c852e9ea39044dde86a4654d01d1f875
msgid "``openai_api_base_url``"
msgstr "``openai_api_base_url``"
#: ../../source/settings.rst:277 5be258415c7a4149817299b196894f5d
msgid "``https://api.openai.com/v1``"
msgstr "``https://api.openai.com/v1``"
#: ../../source/settings.rst:278 1369709baf5e4a4687c0a7cd466d5000
msgid ""
"Base URL of the chat completion API. Point this at any OpenAI-compatible "
"service (Azure OpenAI, OpenRouter, a local server, …) to use it instead "
"of OpenAI directly."
msgstr ""
"URL de base de l'API de complétion de conversation. Pointez-la vers "
"n'importe quel service compatible OpenAI (Azure OpenAI, OpenRouter, un "
"serveur local, etc.) pour l'utiliser à la place d'OpenAI."
#: ../../source/settings.rst:282 63d2dbcdd40a40f085fffa6529ec3bcf
msgid "Example ``~/.maigret/settings.json`` snippet using a non-OpenAI endpoint:"
msgstr ""
"Exemple d'extrait de ``~/.maigret/settings.json`` utilisant un point "
"d'entrée autre qu'OpenAI :"
#: ../../source/settings.rst:293 71073712475a480e91641719e3bb8f01
msgid ""
"The key resolution order is ``settings.openai_api_key`` → "
"``OPENAI_API_KEY`` environment variable; the first non-empty value wins."
msgstr ""
"L'ordre de résolution de la clé est ``settings.openai_api_key`` → "
"variable d'environnement ``OPENAI_API_KEY`` ; la première valeur non vide"
" l'emporte."
#: ../../source/settings.rst:298 f39019712ea04850b9f4cfb253e2ed9e
msgid ""
"``--ai`` sends the full internal Markdown report (which contains the "
"gathered profile data) to the configured endpoint. Only use providers and"
" accounts you trust with that data."
msgstr ""
"``--ai`` envoie au point d'entrée configuré l'intégralité du rapport "
"Markdown interne, qui contient les données de profil collectées. "
"N'utilisez donc que des fournisseurs et des comptes auxquels vous confiez"
" ces données."
@@ -0,0 +1,151 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/supported-identifier-types.rst:4
#: 4e3ddb50a05a41aa8214a14b15d3adc2
msgid "Supported identifier types"
msgstr "Types d'identifiants pris en charge"
#: ../../source/supported-identifier-types.rst:6
#: e9df9fe1a98a46fd8df7aece5a7aee6d
msgid ""
"Maigret can search against not only ordinary usernames, but also through "
"certain common identifiers. There is a list of all currently supported "
"identifiers."
msgstr ""
"Maigret peut effectuer des recherches non seulement sur des noms "
"d'utilisateur ordinaires, mais aussi sur certains identifiants courants. "
"Voici la liste de tous les identifiants actuellement pris en charge."
#: ../../source/supported-identifier-types.rst:8
#: f49a3ce4a041444e87b581bc53fbd426
msgid ""
"**gaia_id** - Google inner numeric user identifier, in former times was "
"placed in a Google Plus account URL."
msgstr ""
"**gaia_id** - identifiant numérique interne d'un utilisateur Google, "
"autrefois présent dans l'URL d'un compte Google Plus."
#: ../../source/supported-identifier-types.rst:9
#: e7a2c873d0d545729a3a56a7a7eceb88
msgid "**steam_id** - Steam inner numeric user identifier."
msgstr "**steam_id** - identifiant numérique interne d'un utilisateur Steam."
#: ../../source/supported-identifier-types.rst:10
#: cb153f404b2b4d7091352146268d2338
msgid "**wikimapia_uid** - Wikimapia.org inner numeric user identifier."
msgstr ""
"**wikimapia_uid** - identifiant numérique interne d'un utilisateur "
"Wikimapia.org."
#: ../../source/supported-identifier-types.rst:11
#: fdd65b9f7a4f43079409417deb8061d4
msgid "**uidme_uguid** - uID.me inner numeric user identifier."
msgstr "**uidme_uguid** - identifiant numérique interne d'un utilisateur uID.me."
#: ../../source/supported-identifier-types.rst:12
#: 09f3da88f83149ed966de82bb2fb6fc9
msgid ""
"**yandex_public_id** - Yandex sites inner letter user identifier. See "
"also: `YaSeeker <https://github.com/HowToFind-bot/YaSeeker>`_."
msgstr ""
"**yandex_public_id** - identifiant alphabétique interne d'un utilisateur "
"des sites Yandex. Voir aussi : `YaSeeker <https://github.com/HowToFind-"
"bot/YaSeeker>`_."
#: ../../source/supported-identifier-types.rst:13
#: 7c1bb033f4ce4410b1e785545fe3f596
msgid "**vk_id** - VK.com inner numeric user identifier."
msgstr "**vk_id** - identifiant numérique interne d'un utilisateur VK.com."
#: ../../source/supported-identifier-types.rst:14
#: e9fa70fec80d43c6ae5469e23015687b
msgid "**ok_id** - OK.ru inner numeric user identifier."
msgstr "**ok_id** - identifiant numérique interne d'un utilisateur OK.ru."
#: ../../source/supported-identifier-types.rst:15
#: 33a528dbf2b448878889bc9be31d2cbe
msgid "**yelp_userid** - Yelp inner user identifier."
msgstr "**yelp_userid** - identifiant interne d'un utilisateur Yelp."
#: ../../source/supported-identifier-types.rst:16
#: f508891fe0a6448c83ed1f5239265b72
msgid ""
"**qq_id** - QQ (Tencent) numeric account number, also used as the Qzone "
"profile id."
msgstr ""
"**qq_id** - numéro de compte QQ (Tencent), également utilisé comme "
"identifiant de profil Qzone."
#: ../../source/supported-identifier-types.rst:17
#: cab2098d1f2e444a8050027f792d61cb
#, python-brace-format
msgid ""
"**bilibili_id** - Bilibili numeric user id (the ``mid`` in a "
"``space.bilibili.com/{mid}`` profile URL)."
msgstr ""
"**bilibili_id** - identifiant numérique d'un utilisateur Bilibili (le "
"``mid`` dans l'URL de profil ``space.bilibili.com/{mid}``)."
#: ../../source/supported-identifier-types.rst:20
#: d71124dfbca84622aa08ac9b8d3de901
msgid "Example"
msgstr "Exemple"
#: ../../source/supported-identifier-types.rst:22
#: cd630b1843694f8f81ad45c30a60de23
msgid ""
"Pass the identifier as the target and select its type with ``--id-type``."
" For example, to look up the QQ number ``10001``:"
msgstr ""
"Passez l'identifiant comme cible et précisez son type avec ``--id-type``."
" Par exemple, pour rechercher le numéro QQ ``10001`` :"
#: ../../source/supported-identifier-types.rst:28
#: 9f2559fbc479410a8add02b958af9dfd
msgid ""
"Maigret resolves the account via the Qzone portrait API and, when found, "
"extracts the nickname and avatar. Any site whose ``type`` does not match "
"the given ``--id-type`` is skipped, so a plain ``maigret 10001`` (default"
" ``username``) will not query QQ."
msgstr ""
"Maigret résout le compte via l'API des portraits Qzone et, s'il le "
"trouve, en extrait le pseudonyme et l'avatar. Tout site dont le ``type`` "
"ne correspond pas au ``--id-type`` fourni est ignoré : un simple "
"``maigret 10001`` (``username`` par défaut) n'interrogera donc pas QQ."
#: ../../source/supported-identifier-types.rst:30
#: 3fe42649f19140f99c779b2a13da004e
msgid ""
"Or, to look up the Bilibili user id ``2`` (the ``mid`` from "
"``space.bilibili.com/2``):"
msgstr ""
"Ou, pour rechercher l'identifiant d'utilisateur Bilibili ``2`` (le "
"``mid`` de ``space.bilibili.com/2``) :"
#: ../../source/supported-identifier-types.rst:36
#: 7b504dd341e7488eb77881a83c9a55a5
msgid ""
"Maigret resolves the account via the Bilibili user-card API and, when "
"found, extracts the nickname, avatar, signature and follower count."
msgstr ""
"Maigret résout le compte via l'API de fiche utilisateur de Bilibili et, "
"s'il le trouve, en extrait le pseudonyme, l'avatar, la signature et le "
"nombre d'abonnés."
+185
View File
@@ -0,0 +1,185 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/tags.rst:4 d0898894c3044d8bb72beefefba4506b
msgid "Tags"
msgstr "Tags"
#: ../../source/tags.rst:6 6ca5a94c373f4ffaa82b41e62d2b0351
msgid ""
"The use of tags allows you to select a subset of the sites from big "
"Maigret DB for search."
msgstr ""
"Les tags permettent de sélectionner, pour une recherche, un sous-ensemble"
" de sites dans la grande base de Maigret."
#: ../../source/tags.rst:9 0bf981113d014f9c948857e5b9cf6c12
msgid "Tags markup is still not stable."
msgstr "Le balisage par tags n'est pas encore stabilisé."
#: ../../source/tags.rst:11 307d8a38b7d24f3aaca7e9f6d50f9f89
msgid "There are several types of tags:"
msgstr "Il existe plusieurs types de tags :"
#: ../../source/tags.rst:13 804c2388c8d44b5da2f728db804e108e
msgid ""
"**Country codes**: ``us``, ``jp``, ``br``... (`ISO 3166-1 alpha-2 "
"<https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2>`_). A country tag "
"means that having an account on the site implies a connection to that "
"country — either origin or residence. The goal is attribution, not "
"perfect accuracy."
msgstr ""
"**Codes pays** : ``us``, ``jp``, ``br``... (`ISO 3166-1 alpha-2 "
"<https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2>`_). Un tag pays "
"signifie qu'avoir un compte sur le site implique un lien avec ce pays, "
"par origine ou par résidence. Le but est l'attribution, pas une "
"exactitude parfaite."
#: ../../source/tags.rst:15 6d1b4db6ab784ccc9f97bd39eb839aa7
msgid ""
"**Global sites** (GitHub, YouTube, Reddit, Medium, etc.) get **no country"
" tag** — an account there says nothing about where a person is from."
msgstr ""
"**Les sites mondiaux** (GitHub, YouTube, Reddit, Medium, etc.) ne "
"reçoivent **aucun tag pays** : y avoir un compte ne dit rien de l'origine"
" d'une personne."
#: ../../source/tags.rst:16 6fa52a5c2b9140e88e8da02992263d89
msgid ""
"**Regional/local sites** where an account implies a specific country "
"**must** have a country tag: ``VK`` → ``ru``, ``Naver`` → ``kr``, "
"``Zhihu`` → ``cn``."
msgstr ""
"**Les sites régionaux ou locaux**, où un compte implique un pays précis, "
"**doivent** porter un tag pays : ``VK`` → ``ru``, ``Naver`` → ``kr``, "
"``Zhihu`` → ``cn``."
#: ../../source/tags.rst:17 79797bb380154145a63a54699e0dec22
msgid ""
"Multiple country tags are allowed when a service is used predominantly in"
" a few countries (e.g. ``Xing`` → ``de``, ``eu``)."
msgstr ""
"Plusieurs tags pays sont admis lorsqu'un service est majoritairement "
"utilisé dans quelques pays (par exemple ``Xing`` → ``de``, ``eu``)."
#: ../../source/tags.rst:18 f3b5028f93c8463ba11c209f07a11af0
msgid ""
"Do **not** assign country tags based on traffic statistics alone — a site"
" popular in India by traffic is not \"Indian\" if it is used globally."
msgstr ""
"N'attribuez **pas** de tag pays sur la seule base des statistiques de "
"trafic : un site populaire en Inde en volume de trafic n'est pas « indien"
" » s'il est utilisé dans le monde entier."
#: ../../source/tags.rst:20 b7bf1e92c0434b75be439d4aaf02c4e6
msgid ""
"**Site engines**. Most of them are forum engines now: ``uCoz``, "
"``vBulletin``, ``XenForo`` et al. Full list of engines stored in the "
"Maigret database."
msgstr ""
"**Moteurs de sites**. La plupart sont aujourd'hui des moteurs de forum : "
"``uCoz``, ``vBulletin``, ``XenForo`` et consorts. La liste complète des "
"moteurs est stockée dans la base de Maigret."
#: ../../source/tags.rst:22 2e0e7a897ea647f9b0c21c11323c9e0a
msgid ""
"**Sites' subject/type and interests of its users**. Full list of "
"\"standard\" tags is `present in the source code "
"<https://github.com/soxoj/maigret/blob/main/maigret/sites.py#L13>`_ only "
"for a moment."
msgstr ""
"**Thématique ou type de site, et centres d'intérêt de ses utilisateurs**."
" La liste complète des tags « standard » n'est pour l'instant `présente "
"que dans le code source "
"<https://github.com/soxoj/maigret/blob/main/maigret/sites.py#L13>`_."
#: ../../source/tags.rst:25 cc5161c0bd4246b69140fad2513e9abc
msgid "Usage"
msgstr "Utilisation"
#: ../../source/tags.rst:26 b5a35114e48f4be19013c720f9a0e7c3
msgid ""
"``--tags us,jp`` -- search on US and Japanese sites (actually marked as "
"such in the Maigret database)"
msgstr ""
"``--tags us,jp`` -- rechercher sur les sites américains et japonais (ceux"
" qui sont effectivement marqués comme tels dans la base de Maigret)"
#: ../../source/tags.rst:28 e110dee84ee54cf28f7209fc15c22fba
msgid "``--tags coding`` -- search on sites related to software development."
msgstr ""
"``--tags coding`` -- rechercher sur les sites liés au développement "
"logiciel."
#: ../../source/tags.rst:30 83d737e40edc4e8ab8225029c4a151e0
msgid "``--tags ucoz`` -- search on uCoz sites only (mostly CIS countries)"
msgstr ""
"``--tags ucoz`` -- rechercher uniquement sur les sites uCoz "
"(principalement dans les pays de la CEI)"
#: ../../source/tags.rst:33 6da443326d5c41eaaa009020d0f5750a
msgid "Blacklisting (excluding) tags"
msgstr "Exclure des tags"
#: ../../source/tags.rst:34 8f43b8871bfb445abe634af4b31416d9
msgid ""
"You can exclude sites with certain tags from the search using "
"``--exclude-tags``:"
msgstr ""
"Vous pouvez exclure de la recherche les sites portant certains tags avec "
"``--exclude-tags`` :"
#: ../../source/tags.rst:36 b988c1bff07d4b55b98971506ca4d460
msgid ""
"``--exclude-tags porn,dating`` -- skip all sites tagged with ``porn`` or "
"``dating``."
msgstr ""
"``--exclude-tags porn,dating`` -- ignorer tous les sites marqués ``porn``"
" ou ``dating``."
#: ../../source/tags.rst:38 81f4ce2351c34ab48895b996506d1bde
msgid "``--exclude-tags ru`` -- skip all Russian sites."
msgstr "``--exclude-tags ru`` -- ignorer tous les sites russes."
#: ../../source/tags.rst:40 1d37e3fb745843c4b656a01548e5dde1
msgid ""
"You can combine ``--tags`` and ``--exclude-tags`` to fine-tune your "
"search:"
msgstr ""
"Vous pouvez combiner ``--tags`` et ``--exclude-tags`` pour affiner la "
"recherche :"
#: ../../source/tags.rst:42 54fd1187559b4fb68daca202196ba853
msgid ""
"``--tags forum --exclude-tags ru`` -- search on forum sites, but skip "
"Russian ones."
msgstr ""
"``--tags forum --exclude-tags ru`` -- rechercher sur les forums, mais en "
"ignorant les forums russes."
#: ../../source/tags.rst:44 641c53fa9db44ab5bf6575600be686ce
msgid ""
"In the web interface, the tag cloud supports three states per tag: click "
"once to **include** (green), click again to **exclude** "
"(dark/strikethrough), and click once more to return to **neutral** (red)."
msgstr ""
"Dans l'interface web, le nuage de tags propose trois états par tag : un "
"clic pour **inclure** (vert), un deuxième pour **exclure** "
"(sombre/barré), et un troisième pour revenir à l'état **neutre** (rouge)."
@@ -0,0 +1,356 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/tor-and-proxies.rst:4 fa6f7546f68f4faaa3ec42a09f34b4d0
msgid "Tor, I2P, and proxies"
msgstr "Tor, I2P et proxys"
#: ../../source/tor-and-proxies.rst:6 171191cfd184493b9a244848468f6b79
msgid ""
"Maigret can route checks through an HTTP/SOCKS proxy, the Tor network, or"
" I2P. Three CLI flags cover three distinct goals — knowing which one you "
"need is the most common stumbling block."
msgstr ""
"Maigret peut faire passer ses vérifications par un proxy HTTP/SOCKS, par "
"le réseau Tor ou par I2P. Trois options de ligne de commande couvrent "
"trois objectifs distincts, et savoir laquelle il vous faut est le point "
"de confusion le plus fréquent."
#: ../../source/tor-and-proxies.rst:9 e71e2266acee47639dba1726d2f105b6
msgid "``--proxy`` vs ``--tor-proxy`` (and ``--i2p-proxy``)"
msgstr "``--proxy`` ou ``--tor-proxy`` (et ``--i2p-proxy``)"
#: ../../source/tor-and-proxies.rst:11 1b6c77669e314f4781ff5266c321fef0
msgid ""
"The most-asked question (see `issue #544 "
"<https://github.com/soxoj/maigret/issues/544>`_):"
msgstr ""
"La question la plus posée (voir l'`issue #544 "
"<https://github.com/soxoj/maigret/issues/544>`_) :"
#: ../../source/tor-and-proxies.rst:13 98ea5fc1c82a41f9a37b009f0aa4e143
msgid ""
"**You want every check to go through Tor** (e.g. you're on Tails OS, or "
"behind a country-level block, or your IP is rate-limited). → Use "
"``--proxy``, pointing at your Tor SOCKS port:"
msgstr ""
"**Vous voulez que toutes les vérifications passent par Tor** (par exemple"
" sous Tails OS, derrière un blocage national, ou parce que votre IP est "
"soumise à une limitation de débit). → Utilisez ``--proxy`` en le pointant"
" sur votre port SOCKS Tor :"
#: ../../source/tor-and-proxies.rst:19 d0830f7ce17e43c28b7d4508bc43a58f
msgid ""
"**You want to reach ``.onion`` sites in the Maigret database**, while the"
" rest of the run still uses your normal connection. → Use ``--tor-"
"proxy``:"
msgstr ""
"**Vous voulez atteindre les sites ``.onion`` de la base de Maigret**, "
"tandis que le reste de la recherche continue d'utiliser votre connexion "
"habituelle. → Utilisez ``--tor-proxy`` :"
#: ../../source/tor-and-proxies.rst:25 6a0a1236378540c38daa0fce6bd37467
msgid ""
"``--tor-proxy`` is **only** consulted for sites whose ``url`` is a "
"``.onion`` host. For every other site Maigret uses your direct connection"
" (or ``--proxy`` if set). Without ``--tor-proxy``, ``.onion`` sites are "
"silently skipped."
msgstr ""
"``--tor-proxy`` n'est consulté **que** pour les sites dont l'``url`` est "
"un hôte ``.onion``. Pour tous les autres sites, Maigret utilise votre "
"connexion directe (ou ``--proxy`` s'il est défini). Sans ``--tor-proxy``,"
" les sites ``.onion`` sont silencieusement ignorés."
#: ../../source/tor-and-proxies.rst:27 045ad9aabb5041d4a691e23e24da4f1c
msgid ""
"The same split applies to ``--i2p-proxy``: it is consulted only for "
"``.i2p`` hosts, never for clearweb sites."
msgstr ""
"Le même partage vaut pour ``--i2p-proxy`` : il n'est consulté que pour "
"les hôtes ``.i2p``, jamais pour les sites du web classique."
#: ../../source/tor-and-proxies.rst:29 6251510d9e294f96a2009752e4ecab50
msgid ""
"Defaults: ``--tor-proxy`` defaults to ``socks5://127.0.0.1:9050`` and "
"``--i2p-proxy`` to ``http://127.0.0.1:4444``. ``--proxy`` has no default."
" Maigret does **not** launch ``tor`` or an I2P router for you — start the"
" daemon first."
msgstr ""
"Valeurs par défaut : ``--tor-proxy`` vaut ``socks5://127.0.0.1:9050`` et "
"``--i2p-proxy`` vaut ``http://127.0.0.1:4444``. ``--proxy`` n'a pas de "
"valeur par défaut. Maigret ne lance **pas** ``tor`` ni de routeur I2P à "
"votre place : démarrez le démon d'abord."
#: ../../source/tor-and-proxies.rst:32 12112483f3d34d5e85f17f090d3904e8
msgid "Tor Browser vs system ``tor``: port numbers"
msgstr "Tor Browser ou ``tor`` système : les numéros de port"
#: ../../source/tor-and-proxies.rst:34 b90ae276b41d47769726848e88af3694
msgid "The SOCKS port differs by Tor installation:"
msgstr "Le port SOCKS dépend de l'installation de Tor :"
#: ../../source/tor-and-proxies.rst:36 fdaa66c468b447cbb88ef4984f8c4831
msgid ""
"**System ``tor`` daemon** (``apt install tor``, ``brew install tor``, "
"Tails) listens on ``9050``."
msgstr ""
"**Le démon ``tor`` système** (``apt install tor``, ``brew install tor``, "
"Tails) écoute sur ``9050``."
#: ../../source/tor-and-proxies.rst:37 66adcfa24d5f40088b638e3f29102dc6
msgid "**Tor Browser bundle** ships its own ``tor`` listening on ``9150``."
msgstr ""
"**Le Tor Browser Bundle** embarque son propre ``tor``, qui écoute sur "
"``9150``."
#: ../../source/tor-and-proxies.rst:39 38d89ff5ac4849c6b130e35e7de91671
msgid "If a connection refuses, try the other port:"
msgstr "Si la connexion est refusée, essayez l'autre port :"
#: ../../source/tor-and-proxies.rst:50 1ad8da514e5e44bfacb06c73b2f577ce
msgid "A note on results over Tor"
msgstr "Une remarque sur les résultats via Tor"
#: ../../source/tor-and-proxies.rst:52 561fa718451d47a78eefe40558e75b0b
msgid ""
"Most public WAFs (Cloudflare, DDoS-Guard, AWS WAF, Akamai) block Tor exit"
" nodes by default — usually more aggressively than they block datacenter "
"IPs. A Tor run typically produces **more UNKNOWNs and fewer CLAIMEDs** "
"than the same run from a residential connection. This is not a bug in "
"Maigret; it is the cost of anonymity."
msgstr ""
"La plupart des WAF publics (Cloudflare, DDoS-Guard, AWS WAF, Akamai) "
"bloquent les nœuds de sortie Tor par défaut, en général plus "
"agressivement que les IP de datacenter. Une recherche via Tor produit "
"donc typiquement **plus de UNKNOWN et moins de CLAIMED** que la même "
"recherche depuis une connexion résidentielle. Ce n'est pas un bug de "
"Maigret, c'est le prix de l'anonymat."
#: ../../source/tor-and-proxies.rst:54 f87daa4aeb08476ca863155f04b8dfc7
msgid "Recommended flags for a Tor run:"
msgstr "Options recommandées pour une recherche via Tor :"
#: ../../source/tor-and-proxies.rst:60 74e517aacedc483c98933ce39b49f875
msgid ""
"``--timeout 60`` — Tor circuits add 13 seconds per request; the default "
"30 s causes spurious timeouts."
msgstr ""
"``--timeout 60`` — les circuits Tor ajoutent 1 à 3 secondes par requête ;"
" les 30 s par défaut provoquent de faux dépassements de délai."
#: ../../source/tor-and-proxies.rst:61 69b6401b67104be98e8919fec581bfee
msgid ""
"``--retries 2`` — retries cover transient circuit failures, which are "
"common on Tor."
msgstr ""
"``--retries 2`` — les nouvelles tentatives couvrent les défaillances "
"passagères de circuit, fréquentes sur Tor."
#: ../../source/tor-and-proxies.rst:62 3cc986f733604f85a76a529455340dd3
msgid ""
"Optional ``-n 20`` — lowering concurrency (default 100) reduces the "
"chance of exits rate-limiting you."
msgstr ""
"Éventuellement ``-n 20`` — baisser la concurrence (100 par défaut) réduit"
" le risque de se faire limiter par les nœuds de sortie."
#: ../../source/tor-and-proxies.rst:64 21bf124edd304df0aedfbb6f3b19e6f7
msgid ""
"If you mainly need to bypass WAFs (rather than to remain anonymous), a "
"residential proxy will usually outperform Tor by a wide margin. See the "
"**\"Lots of sites fail / timeout / return 403\"** section in "
"`TROUBLESHOOTING.md "
"<https://github.com/soxoj/maigret/blob/main/TROUBLESHOOTING.md>`_."
msgstr ""
"Si votre objectif est surtout de contourner les WAF (et non de rester "
"anonyme), un proxy résidentiel fera en général bien mieux que Tor. Voir "
"la section **« Lots of sites fail / timeout / return 403 »** dans "
"`TROUBLESHOOTING.md "
"<https://github.com/soxoj/maigret/blob/main/TROUBLESHOOTING.md>`_."
#: ../../source/tor-and-proxies.rst:67 a6bb212ed1bf46a98733fc79cd456ded
msgid "Running on Tails OS"
msgstr "Utilisation sous Tails OS"
#: ../../source/tor-and-proxies.rst:69 c9fcdae23de34d1bafbbb43de5107a6e
msgid ""
"Tails forces every outbound connection through Tor at the network layer. "
"Maigret needs no special configuration to comply — pointing ``--proxy`` "
"at the Tails Tor daemon is enough:"
msgstr ""
"Tails force toutes les connexions sortantes à passer par Tor, au niveau "
"réseau. Maigret n'a besoin d'aucune configuration particulière pour s'y "
"conformer : pointer ``--proxy`` sur le démon Tor de Tails suffit :"
#: ../../source/tor-and-proxies.rst:75 0abaf5f98caf4efa9afe2fa2ba92fff6
msgid "Things that are **not** needed:"
msgstr "Ce qui n'est **pas** nécessaire :"
#: ../../source/tor-and-proxies.rst:77 9e6309b4249443609a2e011b8d8550ac
msgid ""
"``torsocks maigret …`` and ``torify maigret …`` — these wrap libc socket "
"calls, but Maigret's HTTP client (``aiohttp`` / ``curl_cffi``) bypasses "
"libc for network I/O, so the wrapper has no effect. Use ``--proxy`` "
"instead."
msgstr ""
"``torsocks maigret …`` et ``torify maigret …`` — ces commandes "
"enveloppent les appels de sockets de la libc, mais le client HTTP de "
"Maigret (``aiohttp`` / ``curl_cffi``) contourne la libc pour ses entrées-"
"sorties réseau : l'enveloppe n'a donc aucun effet. Utilisez ``--proxy`` à"
" la place."
#: ../../source/tor-and-proxies.rst:78 4621d1bb50734600a8b2a3d438452508
msgid ""
"``--tor-proxy`` — on Tails, *everything* must go via Tor (the OS enforces"
" this), so the niche \"only .onion via Tor\" mode that ``--tor-proxy`` "
"provides does not apply."
msgstr ""
"``--tor-proxy`` — sous Tails, *tout* doit passer par Tor (le système "
"l'impose), donc le mode de niche « uniquement les .onion via Tor » "
"qu'offre ``--tor-proxy`` ne s'applique pas."
#: ../../source/tor-and-proxies.rst:81 0c3703841ff84c038c799ef8626734e1
msgid "Installation over Tor on Tails"
msgstr "Installation via Tor sous Tails"
#: ../../source/tor-and-proxies.rst:83 fa45ad606e2846afabbe8ccce89ba9b3
msgid ""
"``pip`` itself does not know about Tor; on Tails you need ``torsocks`` to"
" wrap it:"
msgstr ""
"``pip`` lui-même ne connaît rien à Tor ; sous Tails, il faut l'envelopper"
" avec ``torsocks`` :"
#: ../../source/tor-and-proxies.rst:89 c4d8e21e134949c78c785038627b1f0a
msgid ""
"After install, the binary lands in ``~/.local/bin/maigret``. If "
"``maigret: command not found``, either add ``~/.local/bin`` to ``PATH`` "
"or invoke it as ``python3 -m maigret <username>``."
msgstr ""
"Après l'installation, le binaire se trouve dans ``~/.local/bin/maigret``."
" Si vous obtenez ``maigret: command not found``, ajoutez ``~/.local/bin``"
" au ``PATH`` ou lancez-le avec ``python3 -m maigret <nomdutilisateur>``."
#: ../../source/tor-and-proxies.rst:92 32d9f33c67b04ae9b554f2eb53526da9
msgid "Persisting Maigret across Tails sessions"
msgstr "Conserver Maigret d'une session Tails à l'autre"
#: ../../source/tor-and-proxies.rst:94 374910a59f7e44898db86c0b2dc6f743
msgid ""
"Tails wipes ``~/.local/`` on reboot unless you configure the Persistent "
"Storage to keep it. This is Tails configuration, not Maigret "
"configuration — see the official Tails docs:"
msgstr ""
"Tails efface ``~/.local/`` à chaque redémarrage, sauf si vous configurez "
"le stockage persistant pour le conserver. Cela relève de la configuration"
" de Tails, pas de celle de Maigret : voir la documentation officielle de "
"Tails."
#: ../../source/tor-and-proxies.rst:96 b55d4cc6ea5f451b905f0d8316bccdaa
msgid ""
"`Persistent Storage on Tails "
"<https://tails.boum.org/doc/persistent_storage/>`_"
msgstr ""
"`Le stockage persistant sur Tails "
"<https://tails.boum.org/doc/persistent_storage/>`_"
#: ../../source/tor-and-proxies.rst:97 2d87c620f5694824bfa6688c2de9422b
msgid ""
"`Configuring Persistent Storage features "
"<https://tails.boum.org/doc/persistent_storage/configure/>`_"
msgstr ""
"`Configurer les fonctionnalités du stockage persistant "
"<https://tails.boum.org/doc/persistent_storage/configure/>`_"
#: ../../source/tor-and-proxies.rst:99 3c11ded4586246b99b7a399f0d52cf58
msgid ""
"A step-by-step recipe contributed by a user (persisting "
"``~/.local/lib/python3.9`` and ``~/.local/bin`` and patching ``.bashrc``)"
" is in `issue #544 "
"<https://github.com/soxoj/maigret/issues/544#issuecomment-1356469171>`__."
" Treat it as a starting point: the Python version and Tails internals "
"change between Tails releases."
msgstr ""
"Une recette pas à pas proposée par un utilisateur (conserver "
"``~/.local/lib/python3.9`` et ``~/.local/bin``, et adapter ``.bashrc``) "
"se trouve dans l'`issue #544 "
"<https://github.com/soxoj/maigret/issues/544#issuecomment-1356469171>`__."
" Prenez-la comme point de départ : la version de Python et les rouages "
"internes de Tails changent d'une version de Tails à l'autre."
#: ../../source/tor-and-proxies.rst:102 fbf222bfd6304e13815575af814fdd3f
msgid "Reports on Tails — where to save them"
msgstr "Les rapports sous Tails : où les enregistrer"
#: ../../source/tor-and-proxies.rst:104 50579126fd04472caa715826fe9018ea
msgid ""
"The default ``reports/`` directory lives next to the working directory "
"and is wiped with the amnesiac session. To save reports somewhere "
"persistent, either pass ``-fo``:"
msgstr ""
"Le répertoire ``reports/`` par défaut se trouve à côté du répertoire de "
"travail et disparaît avec la session amnésique. Pour enregistrer les "
"rapports à un endroit persistant, passez ``-fo`` :"
#: ../../source/tor-and-proxies.rst:110 51bef7dd6fe648b299e2b01fb58470ed
msgid ""
"or set ``\"reports_path\"`` in your ``settings.json`` to a persistent "
"path. See :doc:`settings`."
msgstr ""
"ou définissez ``\"reports_path\"`` dans votre ``settings.json`` avec un "
"chemin persistant. Voir :doc:`settings`."
#: ../../source/tor-and-proxies.rst:113 30b403ee53ab4f95bc005902e4cdfbf8
msgid "Programmatic equivalents (Python library)"
msgstr "Équivalents programmatiques (bibliothèque Python)"
#: ../../source/tor-and-proxies.rst:115 3b01135fb81e45ba8ada55ff186d97e9
msgid ""
"The same options are available through the Python API. See :doc:`library-"
"usage` — the relevant keyword arguments are ``proxy=``, ``tor_proxy=`` "
"and ``i2p_proxy=``, accepting the same URL formats as the CLI flags."
msgstr ""
"Les mêmes options sont disponibles via l'API Python. Voir :doc:`library-"
"usage` : les arguments nommés correspondants sont ``proxy=``, "
"``tor_proxy=`` et ``i2p_proxy=``, et ils acceptent les mêmes formats "
"d'URL que les options de la ligne de commande."
#: ../../source/tor-and-proxies.rst:118 590b68e4e6bf436190e1b915a38a9873
msgid "See also"
msgstr "Voir aussi"
#: ../../source/tor-and-proxies.rst:120 de259856ac8948ff9d4f65ba07320707
msgid ":doc:`command-line-options` — full reference for the three flags."
msgstr ":doc:`command-line-options` — la référence complète des trois options."
#: ../../source/tor-and-proxies.rst:121 8e7c5aeb11da4c6eb400e7ffb4dd486a
msgid ""
"`TROUBLESHOOTING.md "
"<https://github.com/soxoj/maigret/blob/main/TROUBLESHOOTING.md>`_ — quick"
" recipes for ``.onion`` / I2P sites and for WAF-induced 403s."
msgstr ""
"`TROUBLESHOOTING.md "
"<https://github.com/soxoj/maigret/blob/main/TROUBLESHOOTING.md>`_ — des "
"recettes rapides pour les sites ``.onion`` / I2P et pour les 403 "
"provoqués par un WAF."
#: ../../source/tor-and-proxies.rst:122 900071a16a8f4bb18dc8374f5eff6740
msgid ":doc:`library-usage` — proxy options for embedded use."
msgstr ":doc:`library-usage` — les options de proxy pour un usage embarqué."
@@ -0,0 +1,143 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/usage-examples.rst:4 f63f7ddec3f94e128aceb617a25999c6
msgid "Usage examples"
msgstr "Exemples d'utilisation"
#: ../../source/usage-examples.rst:6 7fa1788c3e694e36ad28dab71e1b20da
msgid "You can use Maigret as:"
msgstr "Vous pouvez utiliser Maigret :"
#: ../../source/usage-examples.rst:8 3146fce50ff449ab95f9382aa0ee3a4e
msgid "a command line tool: initial and a default mode"
msgstr "en ligne de commande : le mode initial et par défaut"
#: ../../source/usage-examples.rst:9 b99de81bfb5a487cad6416c4acc3c62b
msgid ""
"a `web interface <#web-interface>`_: view the graph with results and "
"download all report formats on a single page"
msgstr ""
"via une `interface web <#web-interface>`_ : afficher le graphe des "
"résultats et télécharger tous les formats de rapport depuis une seule "
"page"
#: ../../source/usage-examples.rst:10 bd5f91f517374dbfb04b2858221aabf0
msgid "a library: integrate Maigret into your own project"
msgstr "comme bibliothèque : intégrer Maigret à votre propre projet"
#: ../../source/usage-examples.rst:13 2fb65b9f51bf44ed8b03e0f5dc2db402
msgid "Use Cases"
msgstr "Cas d'usage"
#: ../../source/usage-examples.rst:16 3406325edcf545cb80589b1aefc01dd4
msgid ""
"Search for accounts with username ``machine42`` on top 500 sites (by "
"default, according to Majestic Million rank) from the Maigret DB."
msgstr ""
"Rechercher des comptes portant le nom d'utilisateur ``machine42`` sur les"
" 500 premiers sites (par défaut, selon le classement Majestic Million) de"
" la base de Maigret."
#: ../../source/usage-examples.rst:22 fb1b3df0e08d4a27a4fdf731dbc96371
msgid ""
"Search for accounts with username ``machine42`` on **all sites** from the"
" Maigret DB."
msgstr ""
"Rechercher des comptes portant le nom d'utilisateur ``machine42`` sur "
"**tous les sites** de la base de Maigret."
#: ../../source/usage-examples.rst:29 76e664ed9de14dacad8b986c02ec566d
msgid ""
"Maigret will search for accounts on a huge number of sites, and some of "
"them may return false positive results. At the moment, we are working on "
"autorepair mode to deliver the most accurate results."
msgstr ""
"Maigret recherche des comptes sur un très grand nombre de sites, et "
"certains d'entre eux peuvent renvoyer des faux positifs. Nous travaillons"
" actuellement sur un mode de réparation automatique afin de fournir les "
"résultats les plus précis possible."
#: ../../source/usage-examples.rst:33 9582720f4e424daa8f46de69ec95a43f
msgid "If you experience many false positives, you can do the following:"
msgstr "Si vous rencontrez beaucoup de faux positifs, vous pouvez procéder ainsi :"
#: ../../source/usage-examples.rst:35 150ca233315d43f99412c013883038fc
msgid "Install the last development version of Maigret from GitHub"
msgstr "Installer la dernière version de développement de Maigret depuis GitHub"
#: ../../source/usage-examples.rst:36 bf9c9afb734f4245b0e5ff0a11cb7dda
msgid ""
"Run Maigret with ``--self-check --auto-disable`` flag and agree on "
"disabling of problematic sites"
msgstr ""
"Lancer Maigret avec les options ``--self-check --auto-disable`` et "
"accepter la désactivation des sites problématiques"
#: ../../source/usage-examples.rst:38 27110026e8bc43bc91e7e4b3f475d788
msgid ""
"Search for accounts with username ``machine42`` and generate HTML and PDF"
" reports."
msgstr ""
"Rechercher des comptes portant le nom d'utilisateur ``machine42`` et "
"générer des rapports HTML et PDF."
#: ../../source/usage-examples.rst:44 964877386e19484f860bb041f0238431
msgid "or"
msgstr "ou"
#: ../../source/usage-examples.rst:51 092bce4e7bb343d28f76d0e22e6b2b9f
msgid "Search for accounts with username ``machine42`` on Facebook only."
msgstr ""
"Rechercher des comptes portant le nom d'utilisateur ``machine42`` sur "
"Facebook uniquement."
#: ../../source/usage-examples.rst:57 294b7878d0bb406483c31185847d61ae
msgid ""
"Extract information from the Steam page by URL and start a search for "
"accounts with found username ``machine42``."
msgstr ""
"Extraire les informations d'une page Steam à partir de son URL, puis "
"lancer une recherche de comptes avec le nom d'utilisateur ``machine42`` "
"ainsi trouvé."
#: ../../source/usage-examples.rst:63 f9e86af822e44c17bfbf626ab152ef9e
msgid ""
"Search for accounts with username ``machine42`` only on US and Japanese "
"sites."
msgstr ""
"Rechercher des comptes portant le nom d'utilisateur ``machine42`` "
"uniquement sur les sites américains et japonais."
#: ../../source/usage-examples.rst:69 9d16792882d1486f99e7dbcd1aa62a0f
msgid ""
"Search for accounts with username ``machine42`` only on sites related to "
"software development."
msgstr ""
"Rechercher des comptes portant le nom d'utilisateur ``machine42`` "
"uniquement sur les sites liés au développement logiciel."
#: ../../source/usage-examples.rst:75 473b81473b344deea48862316675f99a
msgid ""
"Search for accounts with username ``machine42`` on uCoz sites only "
"(mostly CIS countries)."
msgstr ""
"Rechercher des comptes portant le nom d'utilisateur ``machine42`` "
"uniquement sur les sites uCoz (principalement dans les pays de la CEI)."
@@ -0,0 +1,563 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/use-cases/crypto.rst:4 ad5968f74ecb4ec89aef75ae544fbc29
msgid "Cryptocurrency & Web3 Investigations"
msgstr "Enquêtes cryptomonnaies et Web3"
#: ../../source/use-cases/crypto.rst:6 4e690b83e18b47a695f9367062c40134
msgid ""
"Blockchain transactions are public, but the people behind wallets are "
"not. Maigret helps bridge this gap by finding Web3 accounts tied to a "
"username, revealing the person behind a pseudonymous crypto persona."
msgstr ""
"Les transactions de la blockchain sont publiques, mais pas les personnes "
"derrière les portefeuilles. Maigret aide à combler cet écart en "
"retrouvant les comptes Web3 liés à un nom d'utilisateur, et révèle ainsi "
"la personne derrière une identité crypto pseudonyme."
#: ../../source/use-cases/crypto.rst:9 f73fcb5f2a8a48b89855e0e3f0b9ab93
msgid "Why it matters"
msgstr "Pourquoi c'est important"
#: ../../source/use-cases/crypto.rst:11 0b01faa3fff84d91a337f6ec1debd594
msgid ""
"Crypto investigations often start with a wallet address or an ENS name "
"but hit a wall — the blockchain tells you *what* happened, not *who* did "
"it. A username, however, is reused across platforms. If someone trades on"
" OpenSea as ``zachxbt`` and posts on Warpcast as ``zachxbt``, Maigret "
"connects the dots and builds a full profile."
msgstr ""
"Les enquêtes crypto partent souvent d'une adresse de portefeuille ou d'un"
" nom ENS, puis se heurtent à un mur : la blockchain dit *ce qui* s'est "
"passé, pas *qui* l'a fait. Un nom d'utilisateur, en revanche, est "
"réutilisé d'une plateforme à l'autre. Si quelqu'un échange sur OpenSea "
"sous le pseudo ``zachxbt`` et publie sur Warpcast sous ``zachxbt``, "
"Maigret relie les points et construit un profil complet."
#: ../../source/use-cases/crypto.rst:13 428909a013294e51a223ae633ba9dac0
msgid "Common scenarios:"
msgstr "Scénarios courants :"
#: ../../source/use-cases/crypto.rst:15 9c839780b8bc41569e798989b8aeab1c
msgid ""
"**Scam attribution.** A rug-pull promoter uses the same alias on Fragment"
" (Telegram username marketplace), OpenSea, and a personal blog."
msgstr ""
"**Attribution d'une arnaque.** Le promoteur d'un rug pull utilise le même"
" pseudo sur Fragment (la place de marché des noms d'utilisateur "
"Telegram), sur OpenSea et sur un blog personnel."
#: ../../source/use-cases/crypto.rst:16 b9582bc453a641fbb09ef0a1cc695be6
msgid ""
"**Sanctions compliance.** Verifying whether a counterparty's online "
"footprint matches known sanctioned individuals."
msgstr ""
"**Conformité aux sanctions.** Vérifier si l'empreinte en ligne d'une "
"contrepartie correspond à des personnes connues comme sanctionnées."
#: ../../source/use-cases/crypto.rst:17 03a16ee8ce7e40079d0def9b98ca8af3
msgid ""
"**Due diligence.** Before an OTC deal or DAO vote, checking whether the "
"other party has a consistent online presence or is a freshly created "
"sockpuppet."
msgstr ""
"**Due diligence.** Avant une transaction de gré à gré ou un vote de DAO, "
"vérifier si l'autre partie a une présence en ligne cohérente ou s'il "
"s'agit d'une marionnette fraîchement créée."
#: ../../source/use-cases/crypto.rst:18 64d680470eb04e43b8eae25764ed4717
msgid ""
"**Stolen funds tracing.** A stolen NFT appears on OpenSea under a new "
"account — but the username matches a Warpcast profile with real-world "
"links."
msgstr ""
"**Traçage de fonds volés.** Un NFT volé réapparaît sur OpenSea sous un "
"nouveau compte, mais le nom d'utilisateur correspond à un profil Warpcast"
" qui comporte des liens vers le monde réel."
#: ../../source/use-cases/crypto.rst:21 21c7efb026774d378ba1f99d2fedf131
msgid "Supported sites"
msgstr "Sites pris en charge"
#: ../../source/use-cases/crypto.rst:23 aa04605c201b48328b689aec29b54564
msgid "Maigret currently checks the following crypto and Web3 platforms:"
msgstr "Maigret vérifie actuellement les plateformes crypto et Web3 suivantes :"
#: ../../source/use-cases/crypto.rst:29 74d2ab3196234ed0a24bba6f77d7e1a6
msgid "Site"
msgstr "Site"
#: ../../source/use-cases/crypto.rst:30 1c327513f9e2490f959352ef7472620e
msgid "What it reveals"
msgstr "Ce qu'il révèle"
#: ../../source/use-cases/crypto.rst:31 a37a5624f8664bedb4664d2b7e86e1c0
msgid "Notes"
msgstr "Remarques"
#: ../../source/use-cases/crypto.rst:32 e8b649cb3f8c4d66bfbf3b304840d3d4
msgid "**OpenSea**"
msgstr "**OpenSea**"
#: ../../source/use-cases/crypto.rst:33 0bf75621ef5e445c8d6e735b28f052b8
msgid "NFT collections, trading history, profile bio, linked website"
msgstr ""
"Collections de NFT, historique des échanges, biographie du profil, site "
"web associé"
#: ../../source/use-cases/crypto.rst:35 b642c2d480ae4503bbcf961c8e8b5f67
msgid "**Rarible**"
msgstr "**Rarible**"
#: ../../source/use-cases/crypto.rst:36 2cf8e4b6305f403f88583da83cd69453
msgid "NFT marketplace profile, collections, listing history"
msgstr "Profil de place de marché NFT, collections, historique des mises en vente"
#: ../../source/use-cases/crypto.rst:37 455441ef60704ddfb6c542417e8670ef
msgid "Complements OpenSea for NFT attribution across marketplaces"
msgstr "Complète OpenSea pour l'attribution de NFT d'une place de marché à l'autre"
#: ../../source/use-cases/crypto.rst:38 df35b69bc3664e2091b7aa51004eed7a
msgid "**Zora**"
msgstr "**Zora**"
#: ../../source/use-cases/crypto.rst:39 bfa1623d071449ea9b10b54231dd1466
msgid "Zora Network profile, minted NFTs, creator activity"
msgstr "Profil Zora Network, NFT frappés, activité de créateur"
#: ../../source/use-cases/crypto.rst:40 563ccd10999449e695f04a52cf817e22
msgid "Ethereum L2 creator platform; useful for on-chain art attribution"
msgstr ""
"Plateforme de créateurs sur un L2 Ethereum ; utile pour l'attribution "
"d'art on-chain"
#: ../../source/use-cases/crypto.rst:41 b6edd130b2d7463488219cef179f7c07
msgid "**Polymarket**"
msgstr "**Polymarket**"
#: ../../source/use-cases/crypto.rst:42 4456236df6d64e4b9ea67cd20f27ed47
msgid "Prediction-market profile, positions, public portfolio P&L"
msgstr ""
"Profil sur le marché prédictif, positions, gains et pertes du "
"portefeuille public"
#: ../../source/use-cases/crypto.rst:43 cc25827172b0419fa04045aab5448eb3
msgid "Useful for political/financial prediction attribution"
msgstr "Utile pour l'attribution de prédictions politiques ou financières"
#: ../../source/use-cases/crypto.rst:44 f34a2f9604b14a2a92750483eebddfed
msgid "**Warpcast** (Farcaster)"
msgstr "**Warpcast** (Farcaster)"
#: ../../source/use-cases/crypto.rst:45 b4094c34bd824915b7b07cadc1d2325d
msgid "Decentralized social profile, posts, follower graph, Farcaster ID"
msgstr ""
"Profil social décentralisé, publications, graphe d'abonnés, identifiant "
"Farcaster"
#: ../../source/use-cases/crypto.rst:46 956648fde130495390d546d664d4cde0
msgid ""
"Every Farcaster ID maps to an Ethereum address via the on-chain ID "
"registry"
msgstr ""
"Chaque identifiant Farcaster correspond à une adresse Ethereum via le "
"registre d'identifiants on-chain"
#: ../../source/use-cases/crypto.rst:47 6441dd6494ee4c2981e526fb4cd6ae3f
msgid "**Fragment**"
msgstr "**Fragment**"
#: ../../source/use-cases/crypto.rst:48 e7cd915496c648c6a5d3cae77464ae25
msgid "Telegram username ownership, TON wallet address, purchase date and price"
msgstr ""
"Propriété d'un nom d'utilisateur Telegram, adresse de portefeuille TON, "
"date et prix d'achat"
#: ../../source/use-cases/crypto.rst:49 3915106557874a708db74a66627f5995
msgid "Valuable for linking Telegram identities to TON wallets"
msgstr "Précieux pour relier des identités Telegram à des portefeuilles TON"
#: ../../source/use-cases/crypto.rst:50 d70a37c44d6c4c5792604c9b10295974
msgid "**Paragraph**"
msgstr "**Paragraph**"
#: ../../source/use-cases/crypto.rst:51 06abf366d32647cdad079565e676c65a
msgid "Web3 blog/newsletter, ETH wallet address, linked Twitter handle"
msgstr ""
"Blog ou newsletter Web3, adresse de portefeuille ETH, compte Twitter "
"associé"
#: ../../source/use-cases/crypto.rst:52 1782e0619d884ee4ab6b300cdb7bd99e
msgid "Richest cross-platform data among crypto sites"
msgstr "Les données inter-plateformes les plus riches parmi les sites crypto"
#: ../../source/use-cases/crypto.rst:53 394ec42393ab49b4950f473012e4003f
msgid "**Tonometerbot**"
msgstr "**Tonometerbot**"
#: ../../source/use-cases/crypto.rst:54 ad20409e25f64f0a8fdbf76976afdb35
msgid "TON wallet balance, subscriber count, NFT collection, rankings"
msgstr ""
"Solde du portefeuille TON, nombre d'abonnés, collection de NFT, "
"classements"
#: ../../source/use-cases/crypto.rst:55 6155483eaa594eb2b7299147ec38be1f
msgid "TON blockchain analytics"
msgstr "Analyse de la blockchain TON"
#: ../../source/use-cases/crypto.rst:56 5d08b167816c45629afd8f3c75cb566c
msgid "**Spatial**"
msgstr "**Spatial**"
#: ../../source/use-cases/crypto.rst:57 c4bc4d772e534f43848a6badacdde61e
msgid ""
"Metaverse profile, linked social accounts (Discord, Twitter, Instagram, "
"LinkedIn, TikTok)"
msgstr ""
"Profil metaverse, comptes sociaux associés (Discord, Twitter, Instagram, "
"LinkedIn, TikTok)"
#: ../../source/use-cases/crypto.rst:58 35dc8e345fa04e50948bea44b38d905c
msgid "Rich cross-platform links"
msgstr "Nombreux liens inter-plateformes"
#: ../../source/use-cases/crypto.rst:59 4df056e2f6fc41faab036e7d982d68cd
msgid "**Revolut.me**"
msgstr "**Revolut.me**"
#: ../../source/use-cases/crypto.rst:60 78c7530532aa4477839d9feff980bae3
msgid ""
"Payment handle: first/last name, country code, base currency, supported "
"payment methods"
msgstr ""
"Identifiant de paiement : prénom et nom, code pays, devise de référence, "
"moyens de paiement acceptés"
#: ../../source/use-cases/crypto.rst:61 d3608dbc954b4bff93a1babddfe28cdc
msgid ""
"Not strictly Web3, but widely used by crypto OTC traders for fiat off-"
"ramps; the public API returns structured KYC-adjacent data"
msgstr ""
"Pas vraiment du Web3, mais très utilisé par les traders crypto de gré à "
"gré pour convertir en monnaie fiduciaire ; l'API publique renvoie des "
"données structurées proches du KYC"
#: ../../source/use-cases/crypto.rst:64 64ea641f9f484d36af8aeeba844aa40b
msgid "Real-world example: zachxbt"
msgstr "Un exemple réel : zachxbt"
#: ../../source/use-cases/crypto.rst:66 e8c55d73d1fa41cfbcc66b5df9e8d507
msgid ""
"`ZachXBT <https://twitter.com/zachxbt>`_ is a well-known on-chain "
"investigator. Let's see what Maigret can find from just the username "
"``zachxbt``:"
msgstr ""
"`ZachXBT <https://twitter.com/zachxbt>`_ est un enquêteur on-chain bien "
"connu. Voyons ce que Maigret trouve à partir du seul nom d'utilisateur "
"``zachxbt`` :"
#: ../../source/use-cases/crypto.rst:72 10e57caefe734f94b05a25e173bcdefe
msgid ""
"Maigret finds 5 accounts and automatically extracts structured data from "
"each:"
msgstr ""
"Maigret trouve 5 comptes et en extrait automatiquement des données "
"structurées :"
#: ../../source/use-cases/crypto.rst:74 3617b511943a493ab596981f956c9a86
msgid ""
"**Fragment** — confirms the Telegram username ``@zachxbt`` is claimed, "
"reveals the TON wallet address (``EQBisZrk...``), purchase price (10 "
"TON), and date (January 2023)."
msgstr ""
"**Fragment** — confirme que le nom d'utilisateur Telegram ``@zachxbt`` "
"est pris, révèle l'adresse du portefeuille TON (``EQBisZrk...``), le prix"
" d'achat (10 TON) et la date (janvier 2023)."
#: ../../source/use-cases/crypto.rst:76 ffb9995d96bb427b8346b03e69940a91
msgid ""
"**Paragraph** — the richest result. Returns the real name used on the "
"platform (``ZachXBT``), bio (``Scam survivor turned 2D investigator``), "
"an Ethereum wallet address (``0x23dBf066...``), and a linked Twitter "
"handle (``zachxbt``). The ``wallet_address`` field is especially valuable"
" — it directly links the pseudonym to an on-chain identity."
msgstr ""
"**Paragraph** — le résultat le plus riche. Il renvoie le nom réel utilisé"
" sur la plateforme (``ZachXBT``), la biographie (``Scam survivor turned "
"2D investigator``), une adresse de portefeuille Ethereum "
"(``0x23dBf066...``) et un compte Twitter associé (``zachxbt``). Le champ "
"``wallet_address`` est particulièrement précieux : il relie directement "
"le pseudonyme à une identité on-chain."
#: ../../source/use-cases/crypto.rst:78 30bc828de2384a779def798b7e020704
msgid ""
"**Warpcast** — Farcaster profile with a Farcaster ID (``fid: 20931``), "
"profile image, and social graph (33K followers). Every Farcaster ID is "
"tied to an Ethereum address via the on-chain ID registry, so this is "
"another on-chain anchor."
msgstr ""
"**Warpcast** — profil Farcaster avec un identifiant Farcaster (``fid: "
"20931``), une photo de profil et un graphe social (33 000 abonnés). "
"Chaque identifiant Farcaster est lié à une adresse Ethereum via le "
"registre d'identifiants on-chain : voilà donc un autre point d'ancrage "
"on-chain."
#: ../../source/use-cases/crypto.rst:80 72082fea4d4a4e3e87496872b0443734
msgid ""
"**OpenSea** — NFT marketplace profile with bio (``On-chain sleuth | 10x "
"rug pull survivor``), avatar (hosted on ``seadn.io`` with an Ethereum "
"address in the URL path), and a link to an external investigations page."
msgstr ""
"**OpenSea** — profil de place de marché NFT avec une biographie (``On-"
"chain sleuth | 10x rug pull survivor``), un avatar (hébergé sur "
"``seadn.io``, avec une adresse Ethereum dans le chemin de l'URL) et un "
"lien vers une page d'enquêtes externe."
#: ../../source/use-cases/crypto.rst:82 ae0b864542004812bea0fbc8152a5d8d
msgid ""
"**Hive Blog** — blockchain-based blog account created in March 2025. Low "
"activity (1 post), but confirms the username is claimed across blockchain"
" ecosystems."
msgstr ""
"**Hive Blog** — compte de blog sur blockchain créé en mars 2025. Peu "
"d'activité (1 publication), mais cela confirme que le nom d'utilisateur "
"est pris dans les écosystèmes blockchain."
#: ../../source/use-cases/crypto.rst:84 819b44f6666a4fc0b768b411bcc3e7f5
msgid "From a single username, Maigret produces:"
msgstr "À partir d'un seul nom d'utilisateur, Maigret produit :"
#: ../../source/use-cases/crypto.rst:86 b70bb3546f9947bbb20aa33a50b53d75
msgid ""
"**2 wallet addresses** — one TON (from Fragment), one Ethereum (from "
"Paragraph)"
msgstr ""
"**2 adresses de portefeuille** — une TON (via Fragment), une Ethereum "
"(via Paragraph)"
#: ../../source/use-cases/crypto.rst:87 9785a32767ce470284606aa06a490d9f
msgid "**1 confirmed Twitter handle** — ``zachxbt`` (from Paragraph)"
msgstr "**1 compte Twitter confirmé** — ``zachxbt`` (via Paragraph)"
#: ../../source/use-cases/crypto.rst:88 e0bcc86d5b8b46b5a197d5ca7724e36d
msgid "**1 Telegram username** — ``@zachxbt`` (from Fragment)"
msgstr "**1 nom d'utilisateur Telegram** — ``@zachxbt`` (via Fragment)"
#: ../../source/use-cases/crypto.rst:89 27b0ecce165740a98ced8efa87d8be6c
msgid "**1 external link** — ``investigations.notion.site`` (from OpenSea)"
msgstr "**1 lien externe** — ``investigations.notion.site`` (via OpenSea)"
#: ../../source/use-cases/crypto.rst:90 8b3cd61f67004c7bbdb2f543efcb7497
msgid "**Social graph data** — 33K Farcaster followers, blog activity timestamps"
msgstr ""
"**Des données de graphe social** — 33 000 abonnés Farcaster, horodatages "
"de l'activité du blog"
#: ../../source/use-cases/crypto.rst:92 1ad051a0bb96496ab3f1e712d8020c67
msgid ""
"This is enough to pivot into blockchain analysis tools (Etherscan, "
"Arkham, Nansen) using the wallet addresses, or into social media analysis"
" using the Twitter handle."
msgstr ""
"C'est assez pour rebondir vers des outils d'analyse blockchain "
"(Etherscan, Arkham, Nansen) grâce aux adresses de portefeuille, ou vers "
"l'analyse des réseaux sociaux grâce au compte Twitter."
#: ../../source/use-cases/crypto.rst:95 0a44f303252b423d8a1d7cdac7a4a7e2
msgid "Workflow: from username to wallet"
msgstr "Méthode : du nom d'utilisateur au portefeuille"
#: ../../source/use-cases/crypto.rst:97 c6611f6f46384343a8bbad6a96c9b7b8
msgid "**Step 1: Search crypto platforms**"
msgstr "**Étape 1 : chercher sur les plateformes crypto**"
#: ../../source/use-cases/crypto.rst:103 d64c8d200f3a45219c275796f59be0b7
msgid "Review the results. Pay attention to:"
msgstr "Passez les résultats en revue. Regardez en particulier :"
#: ../../source/use-cases/crypto.rst:105 b7062a8925d5403e99ec0445316071de
msgid ""
"**Fragment** — if the username is claimed, you get a TON wallet address "
"directly."
msgstr ""
"**Fragment** — si le nom d'utilisateur est pris, vous obtenez directement"
" une adresse de portefeuille TON."
#: ../../source/use-cases/crypto.rst:106 5c13573ef4c5406081cc741e4ec92221
msgid ""
"**Paragraph** — blog profiles often contain an ETH address and a Twitter "
"handle."
msgstr ""
"**Paragraph** — les profils de blog contiennent souvent une adresse ETH "
"et un compte Twitter."
#: ../../source/use-cases/crypto.rst:107 f5ad2cc976594773894e3e5c07913d3c
msgid ""
"**Warpcast** — Farcaster IDs map to Ethereum addresses via the on-chain "
"registry."
msgstr ""
"**Warpcast** — les identifiants Farcaster correspondent à des adresses "
"Ethereum via le registre on-chain."
#: ../../source/use-cases/crypto.rst:108 41f7062dca4142a78f5b9a421560dd74
msgid "**OpenSea** — avatar URLs sometimes contain wallet addresses in the path."
msgstr ""
"**OpenSea** — les URL d'avatar contiennent parfois des adresses de "
"portefeuille dans leur chemin."
#: ../../source/use-cases/crypto.rst:110 90b45493a4904b10a8ee0e556e178e44
msgid "**Step 2: Expand with extracted identifiers**"
msgstr "**Étape 2 : élargir avec les identifiants extraits**"
#: ../../source/use-cases/crypto.rst:112 24abbd1123d84029b19f16109c85b0d8
msgid ""
"Maigret automatically extracts additional identifiers from found profiles"
" (real names, linked accounts, profile URLs) and recursively searches for"
" them. This is enabled by default. If Maigret finds a linked Twitter "
"handle on a Paragraph profile, it will automatically search for that "
"handle across all sites."
msgstr ""
"Maigret extrait automatiquement des identifiants supplémentaires des "
"profils trouvés (noms réels, comptes associés, URL de profil) et les "
"recherche à son tour, de façon récursive. Cette fonction est activée par "
"défaut. Si Maigret trouve un compte Twitter associé sur un profil "
"Paragraph, il recherchera automatiquement ce compte sur tous les sites."
#: ../../source/use-cases/crypto.rst:114 08463a16d98d46bd9f240ccfb4e04e05
msgid "**Step 3: Cross-reference with non-crypto platforms**"
msgstr "**Étape 3 : recouper avec les plateformes non crypto**"
#: ../../source/use-cases/crypto.rst:116 41434769c1ba43a586e9d1511fc64b6e
msgid ""
"The real power is connecting crypto personas to mainstream accounts. Drop"
" the tag filter:"
msgstr ""
"La vraie puissance consiste à relier des identités crypto à des comptes "
"grand public. Retirez le filtre par tag :"
#: ../../source/use-cases/crypto.rst:122 dde1e0066e7f4488aae95c979134e2b1
msgid ""
"This checks all 3000+ sites. A match on GitHub, Reddit, or a forum can "
"reveal the person behind the wallet."
msgstr ""
"Cela vérifie plus de 3 000 sites. Une correspondance sur GitHub, sur "
"Reddit ou sur un forum peut révéler la personne derrière le portefeuille."
#: ../../source/use-cases/crypto.rst:125 6997e5e52cb24fcab99dd0e437adee62
msgid "Workflow: from wallet to identity"
msgstr "Méthode : du portefeuille à l'identité"
#: ../../source/use-cases/crypto.rst:127 9386d3fcae5e42ecbda223074e6e6cd0
msgid ""
"If you start with a wallet address rather than a username, you can use "
"complementary tools to get a username first:"
msgstr ""
"Si vous partez d'une adresse de portefeuille plutôt que d'un nom "
"d'utilisateur, des outils complémentaires permettent d'obtenir d'abord un"
" nom d'utilisateur :"
#: ../../source/use-cases/crypto.rst:129 64b47fd982bc4a35afcf41c4170445e1
msgid ""
"**ENS / Unstoppable Domains** — resolve the wallet address to a human-"
"readable name (``vitalik.eth``). Then search that name in Maigret."
msgstr ""
"**ENS / Unstoppable Domains** — résoudre l'adresse du portefeuille en un "
"nom lisible (``vitalik.eth``). Recherchez ensuite ce nom dans Maigret."
#: ../../source/use-cases/crypto.rst:130 d129a77a233f45ba8454b34f24cdef3d
msgid ""
"**Etherscan labels** — check if the address has a public label (exchange,"
" known entity)."
msgstr ""
"**Étiquettes Etherscan** — vérifier si l'adresse porte une étiquette "
"publique (plateforme d'échange, entité connue)."
#: ../../source/use-cases/crypto.rst:131 f2fdef2540214fc3a9fcc3561c2d9c10
msgid ""
"**Fragment** — search the TON wallet address to find which Telegram "
"usernames it purchased."
msgstr ""
"**Fragment** — rechercher l'adresse du portefeuille TON pour savoir quels"
" noms d'utilisateur Telegram elle a achetés."
#: ../../source/use-cases/crypto.rst:132 abc6d3019c7c4c22865bcb86eb41e7b5
msgid ""
"**Arkham Intelligence / Nansen** — blockchain attribution platforms that "
"may tag the address with a known identity."
msgstr ""
"**Arkham Intelligence / Nansen** — des plateformes d'attribution "
"blockchain, susceptibles d'associer l'adresse à une identité connue."
#: ../../source/use-cases/crypto.rst:134 033a0ba3d36d430283c6a12956018fd5
msgid "Once you have a username candidate, feed it to Maigret."
msgstr "Une fois un nom d'utilisateur candidat en main, donnez-le à Maigret."
#: ../../source/use-cases/crypto.rst:137 2ce159d123b14d288c5d33703af6f3bc
msgid "Tips"
msgstr "Conseils"
#: ../../source/use-cases/crypto.rst:139 956c475b1ca54dd4a5deadc9977207da
msgid ""
"**Username reuse is the #1 signal.** Crypto-native users often reuse "
"their ENS name (``alice.eth``) or a variation (``alice_eth``, "
"``aliceeth``) across platforms. Try all variations."
msgstr ""
"**La réutilisation du nom d'utilisateur est le signal numéro un.** Les "
"utilisateurs nés dans la crypto réutilisent souvent leur nom ENS "
"(``alice.eth``) ou une variante (``alice_eth``, ``aliceeth``) d'une "
"plateforme à l'autre. Essayez toutes les variantes."
#: ../../source/use-cases/crypto.rst:140 7b8f774e36fe49d5bff1cb2b41795ff2
msgid ""
"**Fragment is uniquely valuable** because it directly links Telegram "
"usernames to TON wallet addresses — a rare on-chain / off-chain bridge."
msgstr ""
"**Fragment a une valeur unique**, car il relie directement des noms "
"d'utilisateur Telegram à des adresses de portefeuille TON : un pont on-"
"chain / off-chain rare."
#: ../../source/use-cases/crypto.rst:141 04ce594675e048e1b5c68685ad64803a
msgid ""
"**Warpcast profiles are Ethereum-native.** Every Farcaster account is "
"tied to an Ethereum address via the ID registry contract. If you find a "
"Warpcast profile, you implicitly have a wallet address."
msgstr ""
"**Les profils Warpcast sont nativement liés à Ethereum.** Chaque compte "
"Farcaster est rattaché à une adresse Ethereum via le contrat de registre "
"d'identifiants. Trouver un profil Warpcast, c'est donc disposer "
"implicitement d'une adresse de portefeuille."
#: ../../source/use-cases/crypto.rst:142 63a2fb8b549042b59231e844f8564901
msgid ""
"**Paragraph often has the richest data** — wallet address, Twitter "
"handle, bio, and activity timestamps in a single API response."
msgstr ""
"**Paragraph offre souvent les données les plus riches** : adresse de "
"portefeuille, compte Twitter, biographie et horodatages d'activité, le "
"tout dans une seule réponse d'API."
#: ../../source/use-cases/crypto.rst:143 550dc55e4dd94524b296fbc402354403
msgid ""
"**Use** ``--exclude-tags`` **to skip irrelevant sites** when you're "
"focused on crypto:"
msgstr ""
"**Utilisez** ``--exclude-tags`` **pour écarter les sites hors sujet** "
"lorsque vous vous concentrez sur la crypto :"
@@ -0,0 +1,485 @@
# French translation of the Maigret documentation.
# Copyright (C) 2025, soxoj
# This file is distributed under the same license as the Maigret package.
#
msgid ""
msgstr ""
"Project-Id-Version: Maigret 0.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-15 17:05+0200\n"
"PO-Revision-Date: 2026-09-15 17:20+0200\n"
"Last-Translator: \n"
"Language: fr\n"
"Language-Team: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
#: ../../source/use-cases/scientists.rst:4 ee298635fb4742a48e2945efa81688f8
msgid "Academic & Research Investigations"
msgstr "Enquêtes universitaires et scientifiques"
#: ../../source/use-cases/scientists.rst:6 e6975c6d0c6f447a9c6a23b397d56e10
msgid ""
"Academic identity has a unique anchor that social-media identity does "
"not: the **ORCID** (Open Researcher and Contributor ID). Every ORCID is "
"verified, globally unique, and tied to a confirmed email — a single "
"confirmed ORCID match between two platforms means the **same human**, "
"with effectively zero false-positive rate."
msgstr ""
"L'identité universitaire dispose d'un point d'ancrage que l'identité des "
"réseaux sociaux n'a pas : l'**ORCID** (Open Researcher and Contributor "
"ID). Chaque ORCID est vérifié, unique au monde et rattaché à une adresse "
"e-mail confirmée. Une seule correspondance d'ORCID confirmée entre deux "
"plateformes signifie donc qu'il s'agit du **même être humain**, avec un "
"taux de faux positifs pratiquement nul."
#: ../../source/use-cases/scientists.rst:8 951b76d507194d8c94cf29a7c89354c8
msgid ""
"Maigret uses ORCID as a first-class identifier: extract it once from a "
"username-keyed profile (iNaturalist, GitHub bio, lab homepage), then "
"pivot into the academic graph (ORCID, OpenAlex, arXiv, DBLP, Scholia) — a"
" chain of HTTP calls that turns an anonymous handle into a CV with "
"employer, education, publication list, citation count, co-author graph, "
"and topical area."
msgstr ""
"Maigret traite l'ORCID comme un identifiant de premier rang : extrayez-le"
" une fois depuis un profil indexé par nom d'utilisateur (iNaturalist, "
"biographie GitHub, page d'un laboratoire), puis rebondissez dans le "
"graphe universitaire (ORCID, OpenAlex, arXiv, DBLP, Scholia). Cette "
"chaîne d'appels HTTP transforme un pseudo anonyme en CV, avec employeur, "
"formation, liste de publications, nombre de citations, graphe de co-"
"auteurs et domaines de recherche."
#: ../../source/use-cases/scientists.rst:11 ed48f48ba1f048e5b57a8b0deeaddef5
msgid "Why it matters"
msgstr "Pourquoi c'est important"
#: ../../source/use-cases/scientists.rst:13 0707507f77414ba4aa1f1098298d5e61
msgid ""
"Most OSINT work on academic targets stalls at the same bottleneck: people"
" use one alias on a citizen-science site, a different alias on Twitter, a"
" third in a forum signature, and only their real name on PubMed. "
"Connecting the personas by hand means trawling Google Scholar, "
"ResearchGate, university web pages, and old conference programmes. ORCID "
"short-circuits this entirely — one verified identifier resolves all of "
"them."
msgstr ""
"La plupart des travaux OSINT sur des cibles universitaires butent sur le "
"même goulot d'étranglement : les gens utilisent un pseudo sur un site de "
"science participative, un autre sur Twitter, un troisième dans la "
"signature d'un forum, et leur vrai nom uniquement sur PubMed. Relier ces "
"identités à la main suppose de ratisser Google Scholar, ResearchGate, les"
" pages des universités et de vieux programmes de conférences. L'ORCID "
"court-circuite tout cela : un seul identifiant vérifié les résout toutes."
#: ../../source/use-cases/scientists.rst:15 a21c00e5e60e42458fa6d6a08f0a1d15
msgid "Common scenarios:"
msgstr "Scénarios courants :"
#: ../../source/use-cases/scientists.rst:17 0d6ca7debd5d44aea14c0d24101f5e71
msgid ""
"**Researcher background check.** Before a collaboration, a preprint "
"review, or a grant decision — verifying that a claimed h-index, "
"employment history, and publication count actually match the public ORCID"
" record."
msgstr ""
"**Vérification du parcours d'un chercheur.** Avant une collaboration, la "
"relecture d'une préimpression ou une décision de financement, vérifier "
"qu'un indice h annoncé, un parcours professionnel et un nombre de "
"publications correspondent bien au dossier ORCID public."
#: ../../source/use-cases/scientists.rst:18 8e40cd767dec4332a379f3682699a1c3
msgid ""
"**Co-author graph reconstruction.** From a single ORCID, OpenAlex returns"
" every co-author, their institutions, and topical clusters — useful for "
"spotting undisclosed conflicts of interest."
msgstr ""
"**Reconstitution du graphe de co-auteurs.** À partir d'un seul ORCID, "
"OpenAlex renvoie tous les co-auteurs, leurs institutions et leurs "
"regroupements thématiques, ce qui aide à repérer des conflits d'intérêts "
"non déclarés."
#: ../../source/use-cases/scientists.rst:19 e03c81341117451e99b83d91c7314c2d
msgid ""
"**Paper mill / fraud investigation.** When a suspicious paper's authors "
"share an ORCID-claimed identity, the cross-platform footprint (or absence"
" of one) is itself evidence."
msgstr ""
"**Enquête sur une usine à articles ou une fraude.** Lorsque les auteurs "
"d'un article suspect partagent une identité revendiquée par un ORCID, "
"l'empreinte inter-plateformes, ou son absence, constitue en soi un "
"indice."
#: ../../source/use-cases/scientists.rst:20 ce7f90e5993848f6ba33e6907f0a5ec9
msgid ""
"**Pseudonym deanonymisation.** A wildlife photographer posts naturalist "
"observations under the handle ``kueda``. iNaturalist's public API returns"
" their ORCID, and one further request reveals their real name, employer "
"(California Academy of Sciences), education (UC Berkeley), and 700+ "
"citable observations."
msgstr ""
"**Désanonymisation d'un pseudonyme.** Un photographe animalier publie ses"
" observations naturalistes sous le pseudo ``kueda``. L'API publique "
"d'iNaturalist renvoie son ORCID, et une requête de plus révèle son vrai "
"nom, son employeur (California Academy of Sciences), sa formation (UC "
"Berkeley) et plus de 700 observations citables."
#: ../../source/use-cases/scientists.rst:21 db11da3e39074a36b5765df716326430
msgid ""
"**Award / appointment due diligence.** Confirming a Turing-Award claim, a"
" tenure status, or a society fellowship via the DBLP and ORCID activity "
"timelines rather than a CV PDF."
msgstr ""
"**Due diligence sur une récompense ou une nomination.** Confirmer "
"l'obtention d'un prix Turing, une titularisation ou une distinction d'une"
" société savante à partir des chronologies d'activité DBLP et ORCID, "
"plutôt qu'à partir d'un CV en PDF."
#: ../../source/use-cases/scientists.rst:24 a178ac647726484a84ef53f127734613
msgid "Supported sites"
msgstr "Sites pris en charge"
#: ../../source/use-cases/scientists.rst:26 10b6d6aeb0f1409fb0aa1b088a5bc5c7
msgid ""
"Maigret currently checks the following ORCID-keyed platforms (use ``--id-"
"type orcid`` when starting from a bare ORCID, or rely on the recursive "
"chain when starting from a username):"
msgstr ""
"Maigret vérifie actuellement les plateformes indexées par ORCID suivantes"
" (utilisez ``--id-type orcid`` si vous partez d'un ORCID seul, ou laissez"
" faire la chaîne récursive si vous partez d'un nom d'utilisateur) :"
#: ../../source/use-cases/scientists.rst:32 3f65871241f84c0e8e101c8537eda85a
msgid "Site"
msgstr "Site"
#: ../../source/use-cases/scientists.rst:33 03ff3bfe5ab54bb2979013d8d1c23fc8
msgid "What it reveals"
msgstr "Ce qu'il révèle"
#: ../../source/use-cases/scientists.rst:34 804b0a7b47f64aab951de81195af0bc0
msgid "Notes"
msgstr "Remarques"
#: ../../source/use-cases/scientists.rst:35 ca39813258694acaaa241fdf366d9e4d
msgid "**ORCID**"
msgstr "**ORCID**"
#: ../../source/use-cases/scientists.rst:36 54a63873fa1740008b556fb13f8090f5
msgid ""
"Full name, biography, employment, education, researcher URLs (homepages "
"and social), keywords, country, linked external IDs (Scopus, "
"ResearcherID, Loop), publication summary, email-verified status"
msgstr ""
"Nom complet, biographie, emploi, formation, URL du chercheur (pages "
"personnelles et réseaux sociaux), mots-clés, pays, identifiants externes "
"associés (Scopus, ResearcherID, Loop), résumé des publications, statut de"
" vérification de l'e-mail"
#: ../../source/use-cases/scientists.rst:37 1b41a5076121434e831dfee66091796e
msgid ""
"All disciplines — ORCID is a field-agnostic identifier issued to any "
"researcher."
msgstr ""
"Toutes les disciplines : l'ORCID est un identifiant indépendant du "
"domaine, délivré à tout chercheur."
#: ../../source/use-cases/scientists.rst:38 f97f67a7ee96484fb9eef1e6f0d11ea1
msgid "**OpenAlex**"
msgstr "**OpenAlex**"
#: ../../source/use-cases/scientists.rst:39 3c9c15e70646477fa5fb3dc23d7bd5f7
msgid ""
"Display name and name alternatives, works count, total citations, "
"h-index, i10-index, last-known institutions (with country), topical "
"areas, raw author-name variants from publications"
msgstr ""
"Nom affiché et variantes de nom, nombre de travaux, total des citations, "
"indice h, indice i10, dernières institutions connues (avec le pays), "
"domaines thématiques, variantes brutes du nom d'auteur issues des "
"publications"
#: ../../source/use-cases/scientists.rst:40 ce4c81289ac74c9bbacccec349db2df9
msgid ""
"All disciplines — indexes works across the entire scholarly literature, "
"from humanities to medicine."
msgstr ""
"Toutes les disciplines : il indexe les travaux de toute la littérature "
"scientifique, des sciences humaines à la médecine."
#: ../../source/use-cases/scientists.rst:41 f007230daa414d54922bc1025b0e8d90
msgid "**arXiv**"
msgstr "**arXiv**"
#: ../../source/use-cases/scientists.rst:42 582078eee6e84c0da02cbd5fbeaf6dea
msgid "Author preprint listing — paper titles, IDs, dates"
msgstr ""
"Liste des préimpressions de l'auteur : titres, identifiants et dates des "
"articles"
#: ../../source/use-cases/scientists.rst:43 bddc096db3e949eeac716f08857bba0b
msgid ""
"Strongly biased toward physics, math, CS (and quantitative biology, "
"statistics, EE, quantitative finance, economics)."
msgstr ""
"Fortement orienté physique, mathématiques et informatique (ainsi que "
"biologie quantitative, statistiques, génie électrique, finance "
"quantitative et économie)."
#: ../../source/use-cases/scientists.rst:44 dfeed256081e4cdba98f7a0dc34b62cc
msgid "**DBLP**"
msgstr "**DBLP**"
#: ../../source/use-cases/scientists.rst:45 09b26e4280694028b8858f837ed04f9d
msgid ""
"Full name, DBLP person ID, paper count, affiliation, awards (e.g. Turing "
"Award), homepage URLs, links to Google Scholar / ResearchGate / Scopus"
msgstr ""
"Nom complet, identifiant DBLP de la personne, nombre d'articles, "
"affiliation, récompenses (prix Turing, par exemple), URL de pages "
"personnelles, liens vers Google Scholar / ResearchGate / Scopus"
#: ../../source/use-cases/scientists.rst:46 79307d06313c4a64b193a320dc19e081
msgid ""
"Computer science only — a biologist or pure economist will not be in the "
"index."
msgstr ""
"Informatique uniquement : un biologiste ou un économiste pur ne figurera "
"pas dans l'index."
#: ../../source/use-cases/scientists.rst:47 9f6da096997544caa7cb79b109c3eb9f
msgid "**Scholia**"
msgstr "**Scholia**"
#: ../../source/use-cases/scientists.rst:48 813bb08484964990b333ccfdd8cbbfe4
msgid ""
"Wikidata QID for the author, linked publications, co-author graph, "
"employer/affiliation timeline, topical clusters"
msgstr ""
"QID Wikidata de l'auteur, publications associées, graphe de co-auteurs, "
"chronologie des employeurs et affiliations, regroupements thématiques"
#: ../../source/use-cases/scientists.rst:49 a1b58b6ea56a42c1bb357dedd13ca055
msgid ""
"All disciplines, but only if the author has been curated in Wikidata — "
"coverage is broadest for prominent figures (award winners, senior "
"faculty, deceased researchers)."
msgstr ""
"Toutes les disciplines, mais uniquement si l'auteur a été référencé dans "
"Wikidata ; la couverture est la plus large pour les figures en vue "
"(lauréats de prix, professeurs de rang élevé, chercheurs décédés)."
#: ../../source/use-cases/scientists.rst:52 de06a749073b46328f9aea93e421fefe
msgid "Workflow: from username to ORCID"
msgstr "Méthode : du nom d'utilisateur à l'ORCID"
#: ../../source/use-cases/scientists.rst:54 5891cccad461443091c2e7927af13841
msgid "**Step 1: Find a profile that publishes ORCID**"
msgstr "**Étape 1 : trouver un profil qui publie un ORCID**"
#: ../../source/use-cases/scientists.rst:56 c94819f103da4cfc8ec58159de9f585d
msgid ""
"The most reliable bridges from a username to an ORCID are platforms whose"
" users *want* their academic identity discoverable. In practice:"
msgstr ""
"Les passerelles les plus fiables entre un nom d'utilisateur et un ORCID "
"sont les plateformes dont les utilisateurs *souhaitent* que leur identité"
" universitaire soit trouvable. En pratique :"
#: ../../source/use-cases/scientists.rst:58 af0ebe5051a9413283aa3c86bf2ead8b
#, python-brace-format
msgid ""
"**iNaturalist** — biologists, naturalists, citizen scientists. Public API"
" ``api.inaturalist.org/v1/users/{username}`` returns the ORCID directly "
"in the ``orcid`` field. Maigret extracts it automatically."
msgstr ""
"**iNaturalist** — biologistes, naturalistes, scientifiques amateurs. "
"L'API publique ``api.inaturalist.org/v1/users/{username}`` renvoie "
"directement l'ORCID dans le champ ``orcid``. Maigret l'extrait "
"automatiquement."
#: ../../source/use-cases/scientists.rst:59 c46df7f429da4704b01deacdada3972a
#, python-brace-format
msgid ""
"**GitHub** — scientists often paste their ORCID URL into the **bio** or "
"**blog** field on their GitHub profile, or under a *generic* entry in "
"``/users/{u}/social_accounts``. A pattern like "
"``orcid\\.org/(\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX])`` matches both "
"``http://orcid.org/...`` and ``orcid.org/...`` variants."
msgstr ""
"**GitHub** — les scientifiques collent souvent l'URL de leur ORCID dans "
"le champ **bio** ou **blog** de leur profil GitHub, ou dans une entrée "
"*generic* de ``/users/{u}/social_accounts``. Un motif comme "
"``orcid\\.org/(\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX])`` capture aussi bien "
"les variantes ``http://orcid.org/...`` que ``orcid.org/...``."
#: ../../source/use-cases/scientists.rst:60 9aff91d6847f427aab3845da0b17f789
msgid ""
"**Lab homepage / institutional bio.** Use ``--parse <URL>`` to scrape an "
"arbitrary page for known identifiers — useful when the target's footprint"
" lives at ``faculty.example.edu/~jdoe``."
msgstr ""
"**Page d'un laboratoire ou biographie institutionnelle.** Utilisez "
"``--parse <URL>`` pour extraire les identifiants connus d'une page "
"quelconque : utile quand l'empreinte de la cible se trouve à "
"``faculty.example.edu/~jdoe``."
#: ../../source/use-cases/scientists.rst:62 a4b9e1231c484587ad3ee03658d3f0f1
msgid "**Step 2: Let the recursive search run**"
msgstr "**Étape 2 : laisser tourner la recherche récursive**"
#: ../../source/use-cases/scientists.rst:68 60b30eddb42343e4bd9ee036d8b17301
msgid ""
"Recursive search is enabled by default. As soon as Maigret extracts an "
"``orcid`` field from any found profile, it queues an ``--id-type orcid`` "
"second wave automatically. No manual chaining needed."
msgstr ""
"La recherche récursive est activée par défaut. Dès que Maigret extrait un"
" champ ``orcid`` d'un profil trouvé, il met automatiquement en file "
"d'attente une deuxième vague en ``--id-type orcid``. Aucun enchaînement "
"manuel n'est nécessaire."
#: ../../source/use-cases/scientists.rst:70 d7f8ce57148949bd97e19554276d3274
msgid "**Step 3: Start from a bare ORCID**"
msgstr "**Étape 3 : partir d'un ORCID seul**"
#: ../../source/use-cases/scientists.rst:72 38d34cdd4316459ca47872c652aa6521
msgid ""
"If you already have the ORCID (e.g. from a paper's author footer, a grant"
" database, or a Wikidata entry):"
msgstr ""
"Si vous disposez déjà de l'ORCID (repris du pied de page des auteurs d'un"
" article, d'une base de données de financements ou d'une fiche Wikidata) "
":"
#: ../../source/use-cases/scientists.rst:78 f708738f23654018827a8decf9ebe403
msgid "This bypasses the username-bridge step entirely."
msgstr "Cela évite complètement l'étape de la passerelle par nom d'utilisateur."
#: ../../source/use-cases/scientists.rst:81 457da1bf6f0f434e9e55a60cfce9f633
msgid "Workflow: from ORCID to mainstream identity"
msgstr "Méthode : de l'ORCID à l'identité grand public"
#: ../../source/use-cases/scientists.rst:83 28a7cf74523b4964b3fb48bf8c97ffd4
msgid ""
"The ORCID record itself contains the link back to ordinary social "
"platforms:"
msgstr ""
"Le dossier ORCID lui-même contient le chemin de retour vers les "
"plateformes sociales ordinaires :"
#: ../../source/use-cases/scientists.rst:85 20779e6815804c14b7954df92c053c1e
msgid ""
"**ORCID ``researcher-urls``** — a list of self-declared external links. "
"Typical entries: lab homepage, Twitter/Bluesky/Mastodon profile, personal"
" blog. These are entered by the researcher and therefore confirmed."
msgstr ""
"**Les ``researcher-urls`` d'ORCID** — une liste de liens externes "
"déclarés par le chercheur. On y trouve typiquement la page du "
"laboratoire, un profil Twitter/Bluesky/Mastodon ou un blog personnel. "
"Comme ils sont saisis par le chercheur, ils sont confirmés."
#: ../../source/use-cases/scientists.rst:86 db3d799271fb4908a688ae71a915c16a
msgid ""
"**ORCID ``external-identifiers``** — IDs from sibling academic systems "
"(Scopus Author ID, ResearcherID/Publons, Loop profile). Each unlocks "
"another extraction pipeline."
msgstr ""
"**Les ``external-identifiers`` d'ORCID** — des identifiants issus de "
"systèmes universitaires voisins (Scopus Author ID, ResearcherID/Publons, "
"profil Loop). Chacun ouvre une nouvelle chaîne d'extraction."
#: ../../source/use-cases/scientists.rst:87 0fcfe145df09492db565f203dfec1a46
msgid ""
"**OpenAlex ``last_known_institutions``** — current employer with country,"
" ROR ID, and OpenAlex institution ID; useful for pivoting into the "
"institution's directory."
msgstr ""
"**Les ``last_known_institutions`` d'OpenAlex** — l'employeur actuel avec "
"son pays, son identifiant ROR et son identifiant d'institution OpenAlex ;"
" utile pour rebondir vers l'annuaire de l'établissement."
#: ../../source/use-cases/scientists.rst:88 2f353ffc031b4ce5acb3693d1994cfb6
msgid ""
"**DBLP** ``<url>`` **tags** — DBLP records often embed direct links to "
"Google Scholar, ResearchGate, and personal pages."
msgstr ""
"**Les balises** ``<url>`` **de DBLP** — les fiches DBLP intègrent souvent"
" des liens directs vers Google Scholar, ResearchGate et des pages "
"personnelles."
#: ../../source/use-cases/scientists.rst:89 68839ebbc7fa4b54bdd9f8234a71e7d6
msgid ""
"**Scholia ``wikidata_qid``** — once you have a Wikidata QID, the SPARQL "
"endpoint unlocks the broadest external ID set in any single OSINT system:"
" VIAF, LCCN, GND, Twitter handle, Mastodon handle, IMDb, GitHub, ORCID, "
"and ~200 others."
msgstr ""
"**Le ``wikidata_qid`` de Scholia** — une fois le QID Wikidata en main, le"
" point d'accès SPARQL ouvre l'ensemble d'identifiants externes le plus "
"large de tous les systèmes OSINT : VIAF, LCCN, GND, compte Twitter, "
"compte Mastodon, IMDb, GitHub, ORCID, et environ deux cents autres."
#: ../../source/use-cases/scientists.rst:92 cda3de64d967460bad46e0cf70ef7881
msgid "Tips"
msgstr "Conseils"
#: ../../source/use-cases/scientists.rst:94 399546fd2d2a4aa3a35b86e2ec768d2f
msgid ""
"**Email comes from ORCID** — within the academic chain (ORCID, OpenAlex, "
"arXiv, DBLP, Scholia) it is the only source that returns an email "
"address, and only when the researcher has marked their primary email "
"public. The same response also carries ``history.verified-primary-"
"email``, an ORCID-confirmed flag that means the address was email-"
"validated at registration. Use this as a strong pivot into email-keyed "
"lookups (Holehe, HIBP, Gravatar, etc.)."
msgstr ""
"**L'e-mail vient d'ORCID.** Dans la chaîne universitaire (ORCID, "
"OpenAlex, arXiv, DBLP, Scholia), c'est la seule source qui renvoie une "
"adresse e-mail, et uniquement si le chercheur a rendu publique son "
"adresse principale. La même réponse porte aussi ``history.verified-"
"primary-email``, un indicateur confirmé par ORCID qui signifie que "
"l'adresse a été validée par e-mail lors de l'inscription. C'est un "
"excellent point de pivot vers les recherches par e-mail (Holehe, HIBP, "
"Gravatar, etc.)."
#: ../../source/use-cases/scientists.rst:95 4d19a19bbc1e4d7db060191d281c3d16
msgid ""
"**Outside the academic chain, GitLab is the dev platform most likely to "
"leak an email** via its public ``public_email`` field — relevant for "
"scientists who self-host code on a CERN/research-institute GitLab. "
"GitHub's REST API does not expose email by default."
msgstr ""
"**En dehors de la chaîne universitaire, GitLab est la plateforme de "
"développement la plus susceptible de laisser fuiter un e-mail**, via son "
"champ public ``public_email`` : cela concerne les scientifiques qui "
"hébergent leur code sur le GitLab du CERN ou d'un institut de recherche. "
"L'API REST de GitHub, elle, n'expose pas l'e-mail par défaut."
#: ../../source/use-cases/scientists.rst:96 1df0af5167e840019bf394062fc398a4
msgid ""
"**Compare OpenAlex** ``raw_author_names`` **against the ORCID** ``other-"
"names``. Discrepancies often expose pre-marriage names, transliterations "
"from non-Latin scripts, or co-author misattributions worth flagging."
msgstr ""
"**Comparez les** ``raw_author_names`` **d'OpenAlex aux** ``other-names`` "
"**d'ORCID.** Les écarts révèlent souvent des noms de jeune fille, des "
"translittérations depuis des écritures non latines, ou des attributions "
"erronées de co-auteurs, qu'il vaut la peine de signaler."
#: ../../source/use-cases/scientists.rst:97 6a915278a67a4998b3ac1e611999893d
#, python-brace-format
msgid ""
"**Anything fed into** ``--id-type orcid`` **must match** "
"``^\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX]$``. The trailing character may "
"legitimately be ``X`` (ISO checksum); strip ``https://orcid.org/`` "
"prefixes before passing the bare ID."
msgstr ""
"**Tout ce que vous passez à** ``--id-type orcid`` **doit correspondre à**"
" ``^\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX]$``. Le dernier caractère peut "
"légitimement être un ``X`` (somme de contrôle ISO) ; retirez le préfixe "
"``https://orcid.org/`` avant de passer l'identifiant nu."
@@ -970,12 +970,12 @@ msgstr "翻译"
msgid ""
"The docs are translated via Sphinx's standard gettext workflow. English "
"``.rst`` files are the source of truth; translations live as ``.po`` "
"catalogs under ``docs/source/locale/<lang>/LC_MESSAGES/`` (currently only"
" ``zh_CN``)."
"catalogs under ``docs/source/locale/<lang>/LC_MESSAGES/`` (currently "
"``zh_CN`` and ``fr``)."
msgstr ""
"文档通过 Sphinx 的标准 gettext 工作流进行翻译。英文 ``.rst`` 文件是事实来源(source of truth);翻译以 "
"``.po`` 目录形式存放在 ``docs/source/locale/<lang>/LC_MESSAGES/`` 之下(目前有 "
"``zh_CN``)。"
"``.po`` 目录形式存放在 ``docs/source/locale/<lang>/LC_MESSAGES/`` 之下(目前有 "
"``zh_CN`` 和 ``fr``)。"
#: ../../source/development.rst:366 92131512d2e146ebbc98e23c3fb2bb53
msgid ""