-
-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
🌐 Add French translation for docs/fr/docs/index.md
#4203
Conversation
🌐 Add French translation for index
Update index.md
modifying some misunderstanding
Co-authored-by: bastantoine <bastien.antoine69+github@gmail.com>
Co-authored-by: bastantoine <bastien.antoine69+github@gmail.com>
Co-authored-by: bastantoine <bastien.antoine69+github@gmail.com>
Co-authored-by: bastantoine <bastien.antoine69+github@gmail.com>
Co-authored-by: bastantoine <bastien.antoine69+github@gmail.com>
Co-authored-by: bastantoine <bastien.antoine69+github@gmail.com>
Co-authored-by: bastantoine <bastien.antoine69+github@gmail.com>
Co-authored-by: bastantoine <bastien.antoine69+github@gmail.com>
Co-authored-by: bastantoine <bastien.antoine69+github@gmail.com>
Co-authored-by: bastantoine <bastien.antoine69+github@gmail.com>
docs/fr/docs/index.md
|
||
<div style="text-align: right; margin-right: 10%;">Timothy Crosley - <strong><a href="https://www.hug.rest/" target="_blank">Hug</a> creator</strong> <a href="https://news.ycombinator.com/item?id=19455465" target="_blank"><small>(ref)</small></a></div> | ||
|
||
--- | ||
|
||
"_If you're looking to learn one **modern framework** for building REST APIs, check out **FastAPI** [...] It's fast, easy to use and easy to learn [...]_" | ||
"_Si vous cherchez à apprendre un **framework moderne** pour créer des API REST, consultez **FastAPI** [...] C'est rapide, facile à utiliser et facile à apprendre [...]_" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
consultez -> regardez
|
||
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong><a href="https://explosion.ai" target="_blank">Explosion AI</a> founders - <a href="https://spacy.io" target="_blank">spaCy</a> creators</strong> <a href="https://twitter.com/_inesmontani/status/1144173225322143744" target="_blank"><small>(ref)</small></a> - <a href="https://twitter.com/honnibal/status/1144031421859655680" target="_blank"><small>(ref)</small></a></div> | ||
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong><a href="https://explosion.ai" target="_blank">Explosion AI</a> foundateur - <a href="https://spacy.io" target="_blank">spaCy</a> créateurs</strong> <a href="https://twitter.com/_inesmontani/status/1144173225322143744" target="_blank"><small>(ref)</small></a> - <a href="https://twitter.com/honnibal/status/1144031421859655680" target="_blank"><small>(ref)</small></a></div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong><a href="https://explosion.ai" target="_blank">Explosion AI</a> foundateur - <a href="https://spacy.io" target="_blank">spaCy</a> créateurs</strong> <a href="https://twitter.com/_inesmontani/status/1144173225322143744" target="_blank"><small>(ref)</small></a> - <a href="https://twitter.com/honnibal/status/1144031421859655680" target="_blank"><small>(ref)</small></a></div> | |
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - fondateurs de <strong><a href="https://explosion.ai" target="_blank">Explosion AI</a> - créateurs de <a href="https://spacy.io" target="_blank">spaCy</a></strong> <a href="https://twitter.com/_inesmontani/status/1144173225322143744" target="_blank"><small>(ref)</small></a> - <a href="https://twitter.com/honnibal/status/1144031421859655680" target="_blank"><small>(ref)</small></a></div> |
|
||
<a href="https://typer.tiangolo.com" target="_blank"><img src="https://typer.tiangolo.com/img/logo-margin/logo-margin-vector.svg" style="width: 20%;"></a> | ||
|
||
If you are building a <abbr title="Command Line Interface">CLI</abbr> app to be used in the terminal instead of a web API, check out <a href="https://typer.tiangolo.com/" class="external-link" target="_blank">**Typer**</a>. | ||
Si vous créez une <abbr title="Command Line Interface"> CLI </abbr> application à utiliser dans le terminal au lieu d'une API Web, consultez <a href="https://typer.tiangolo.com/" class="external-link" target="_blank">**Typer**</a>. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Si vous voulez créer une CLI utilisable dans un terminal, .... regardez ...
@@ -130,7 +130,7 @@ $ pip install fastapi | |||
|
|||
</div> | |||
|
|||
You will also need an ASGI server, for production such as <a href="https://www.uvicorn.org" class="external-link" target="_blank">Uvicorn</a> or <a href="https://gitlab.com/pgjones/hypercorn" class="external-link" target="_blank">Hypercorn</a>. | |||
Vous aurez également besoin d'un serveur ASGI, pour la production telle que <a href="https://www.uvicorn.org" class="external-link" target="_blank">Uvicorn</a> ou <a href="https://gitlab.com/pgjones/hypercorn" class="external-link" target="_blank">Hypercorn</a>. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pour la production, comme ...
|
||
Vous verrez la réponse JSON comme : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vous verrez la réponse JSON comme : | |
Vous obtenez cette réponse JSON : |
```JSON | ||
{"item_id": 5, "q": "somequery"} | ||
``` | ||
|
||
You already created an API that: | ||
Vous avez déjà créé une API qui : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vous avez déjà créé une API qui : | |
Vous venez de créer une API qui : |
* <abbr title="also known as: serialization, parsing, marshalling">Conversion</abbr> des données de sortie : conversion des données et types Python en données réseau (au format JSON) : | ||
* Convertir les types Python (`str`, `int`, `float`, `bool`, `list`, etc.). | ||
* objets `datetime`. | ||
* Objets `UUID`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Objets `UUID`. | |
* les objets `UUID`. |
* Convertir les types Python (`str`, `int`, `float`, `bool`, `list`, etc.). | ||
* objets `datetime`. | ||
* Objets `UUID`. | ||
* Modèles de base de données. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Modèles de base de données. | |
* les modèles de base de données. |
* objets `datetime`. | ||
* Objets `UUID`. | ||
* Modèles de base de données. | ||
* ...et beaucoup plus. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* ...et beaucoup plus. | |
* ...et plus encore. |
* Objets `UUID`. | ||
* Modèles de base de données. | ||
* ...et beaucoup plus. | ||
* Documentation API interactive automatique, comprenant 2 interfaces utilisateur alternatives : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Documentation API interactive automatique, comprenant 2 interfaces utilisateur alternatives : | |
* la documentation API interactive automatique, avec 2 interfaces utilisateur au choix : |
* Modèles de base de données. | ||
* ...et beaucoup plus. | ||
* Documentation API interactive automatique, comprenant 2 interfaces utilisateur alternatives : | ||
* Interface utilisateur Swagger. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Interface utilisateur Swagger. | |
* l'interface utilisateur Swagger. |
* Provide 2 interactive documentation web interfaces directly. | ||
Pour revenir à l'exemple de code précédent, **FastAPI** : | ||
|
||
* Validez qu'il y a un `item_id` dans le chemin pour les requêtes `GET` et `PUT`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Validez qu'il y a un `item_id` dans le chemin pour les requêtes `GET` et `PUT`. | |
* valider que `item_id` existe dans le path des requêtes `GET` et `PUT`. |
* Interactive documentation systems. | ||
* Automatic client code generation systems, for many languages. | ||
* Provide 2 interactive documentation web interfaces directly. | ||
Pour revenir à l'exemple de code précédent, **FastAPI** : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pour revenir à l'exemple de code précédent, **FastAPI** : | |
Pour revenir à l'exemple de code précédent, **FastAPI** permet de : |
Pour revenir à l'exemple de code précédent, **FastAPI** : | ||
|
||
* Validez qu'il y a un `item_id` dans le chemin pour les requêtes `GET` et `PUT`. | ||
* Validez que le `item_id` est de type `int` pour les requêtes `GET` et `PUT`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Validez que le `item_id` est de type `int` pour les requêtes `GET` et `PUT`. | |
* Valider que `item_id` est de type `int` pour les requêtes `GET` et `PUT`. |
|
||
* Validez qu'il y a un `item_id` dans le chemin pour les requêtes `GET` et `PUT`. | ||
* Validez que le `item_id` est de type `int` pour les requêtes `GET` et `PUT`. | ||
* Si ce n'est pas le cas, le client verra une erreur utile et claire. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Si ce n'est pas le cas, le client verra une erreur utile et claire. | |
* Si ce n'est pas le cas, le client voit une erreur utile et claire. |
* Validez qu'il y a un `item_id` dans le chemin pour les requêtes `GET` et `PUT`. | ||
* Validez que le `item_id` est de type `int` pour les requêtes `GET` et `PUT`. | ||
* Si ce n'est pas le cas, le client verra une erreur utile et claire. | ||
* Vérifiez s'il existe un paramètre de requête facultatif nommé `q` (comme dans `http://127.0.0.1:8000/items/foo?q=somequery`) pour les requêtes `GET`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Vérifiez s'il existe un paramètre de requête facultatif nommé `q` (comme dans `http://127.0.0.1:8000/items/foo?q=somequery`) pour les requêtes `GET`. | |
* Vérifier qu'il existe un paramètre de requête facultatif nommé `q` (comme dans `http://127.0.0.1:8000/items/foo?q=somequery`) pour les requêtes `GET`. |
* Validez que le `item_id` est de type `int` pour les requêtes `GET` et `PUT`. | ||
* Si ce n'est pas le cas, le client verra une erreur utile et claire. | ||
* Vérifiez s'il existe un paramètre de requête facultatif nommé `q` (comme dans `http://127.0.0.1:8000/items/foo?q=somequery`) pour les requêtes `GET`. | ||
* Comme le paramètre `q` est déclaré avec `= None`, il est facultatif. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Comme le paramètre `q` est déclaré avec `= None`, il est facultatif. | |
* puisque le paramètre `q` est déclaré avec `= None`, il est facultatif. |
* Si ce n'est pas le cas, le client verra une erreur utile et claire. | ||
* Vérifiez s'il existe un paramètre de requête facultatif nommé `q` (comme dans `http://127.0.0.1:8000/items/foo?q=somequery`) pour les requêtes `GET`. | ||
* Comme le paramètre `q` est déclaré avec `= None`, il est facultatif. | ||
* Sans le `None` il serait nécessaire (comme c'est le cas dans le cas avec `PUT`). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Sans le `None` il serait nécessaire (comme c'est le cas dans le cas avec `PUT`). | |
* sans le `None` il serait obligatoire (comme c'est le cas dans le cas avec `PUT`). |
* Vérifiez s'il existe un paramètre de requête facultatif nommé `q` (comme dans `http://127.0.0.1:8000/items/foo?q=somequery`) pour les requêtes `GET`. | ||
* Comme le paramètre `q` est déclaré avec `= None`, il est facultatif. | ||
* Sans le `None` il serait nécessaire (comme c'est le cas dans le cas avec `PUT`). | ||
* Pour les requêtes `PUT` vers `/items/{item_id}`, lisez le corps en JSON : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Pour les requêtes `PUT` vers `/items/{item_id}`, lisez le corps en JSON : | |
* Pour les requêtes `PUT` vers `/items/{item_id}`, de lire le corps en JSON : |
* Comme le paramètre `q` est déclaré avec `= None`, il est facultatif. | ||
* Sans le `None` il serait nécessaire (comme c'est le cas dans le cas avec `PUT`). | ||
* Pour les requêtes `PUT` vers `/items/{item_id}`, lisez le corps en JSON : | ||
* Vérifiez qu'il a un attribut obligatoire `name` qui devrait être un `str`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Vérifiez qu'il a un attribut obligatoire `name` qui devrait être un `str`. | |
* vérifier qu'il a un attribut obligatoire `name` qui devrait être un `str`. |
* Sans le `None` il serait nécessaire (comme c'est le cas dans le cas avec `PUT`). | ||
* Pour les requêtes `PUT` vers `/items/{item_id}`, lisez le corps en JSON : | ||
* Vérifiez qu'il a un attribut obligatoire `name` qui devrait être un `str`. | ||
* Vérifiez qu'il a un attribut obligatoire « prix » qui doit être un « flotteur ». |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Vérifiez qu'il a un attribut obligatoire « prix » qui doit être un « flotteur ». | |
* vérifier qu'il a un attribut obligatoire « prix » qui doit être un « flotteur ». |
* Pour les requêtes `PUT` vers `/items/{item_id}`, lisez le corps en JSON : | ||
* Vérifiez qu'il a un attribut obligatoire `name` qui devrait être un `str`. | ||
* Vérifiez qu'il a un attribut obligatoire « prix » qui doit être un « flotteur ». | ||
* Vérifiez qu'il a un attribut facultatif `is_offer`, qui devrait être un `bool`, s'il est présent. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Vérifiez qu'il a un attribut facultatif `is_offer`, qui devrait être un `bool`, s'il est présent. | |
* vérifier qu'il a un attribut facultatif `is_offer`, qui devrait être un `bool`, s'il est présent. |
* Un très puissant et facile à utiliser **<abbr title="also known as components, resources, providers, services, injectables">Systéme d'injection de dépendance </abbr>** . | ||
* Sécurité et authentification, y compris la prise en charge de **OAuth2** avec **jetons JWT** et l'authentification **HTTP Basic**. | ||
* Des techniques plus avancées (mais tout aussi simples) pour déclarer des **modèles JSON profondément imbriqués** (grâce à Pydantic). | ||
* De nombreuses fonctionnalités supplémentaires (grâce à Starlette) comme: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* De nombreuses fonctionnalités supplémentaires (grâce à Starlette) comme: | |
* d'obtenir beaucoup de fonctionnalités supplémentaires (grâce à Starlette) comme: |
* **WebSockets** | ||
* **GraphQL** | ||
* extremely easy tests based on `requests` and `pytest` | ||
* tests extrêmement faciles basés sur `requests` et `pytest` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* tests extrêmement faciles basés sur `requests` et `pytest` | |
* de tester le code très facilement avec `requests` et `pytest` |
|
||
## Performance | ||
|
||
Independent TechEmpower benchmarks show **FastAPI** applications running under Uvicorn as <a href="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7" class="external-link" target="_blank">one of the fastest Python frameworks available</a>, only below Starlette and Uvicorn themselves (used internally by FastAPI). (*) | ||
Les benchmarks TechEmpower indépendants montrent les applications **FastAPI** s'exécutant sous Uvicorn comme <a href="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7" class="external-link" target="_blank"> l'un des frameworks Python les plus rapides disponibles </a>, uniquement en dessous de Starlette et Uvicorn eux-mêmes (utilisés en interne par FastAPI). (*) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Les benchmarks TechEmpower indépendants montrent les applications **FastAPI** s'exécutant sous Uvicorn comme <a href="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7" class="external-link" target="_blank"> l'un des frameworks Python les plus rapides disponibles </a>, uniquement en dessous de Starlette et Uvicorn eux-mêmes (utilisés en interne par FastAPI). (*) | |
Les benchmarks TechEmpower indépendants montrent que les applications **FastAPI** s'exécutant sous Uvicorn sont <a href="https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7" class="external-link" target="_blank"> parmi les frameworks existants en Python les plus rapides </a>, juste derrière Starlette et Uvicorn (utilisés en interne par FastAPI). (*) |
|
||
Used by Pydantic: | ||
* <a href="https://github.com/esnme/ultrajson" target="_blank"><code>ujson</code></a> - pour un <abbr title="convertit la chaine de caractère d'une requête HTTP en donnée Python">"décodage" JSON</abbr> plus rapide. | ||
* <a href="https://github.com/JoshData/python-email-validator" target="_blank"><code>email_validator</code></a> - pour la validation d'e-mail. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* <a href="https://github.com/JoshData/python-email-validator" target="_blank"><code>email_validator</code></a> - pour la validation d'e-mail. | |
* <a href="https://github.com/JoshData/python-email-validator" target="_blank"><code>email_validator</code></a> - pour la validation des adresses email. |
|
||
## Optional Dependencies | ||
Utilisé par Pydantic: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Utilisé par Pydantic: | |
Utilisées par Pydantic: |
|
||
* <a href="https://github.com/esnme/ultrajson" target="_blank"><code>ujson</code></a> - for faster JSON <abbr title="converting the string that comes from an HTTP request into Python data">"parsing"</abbr>. | ||
* <a href="https://github.com/JoshData/python-email-validator" target="_blank"><code>email_validator</code></a> - for email validation. | ||
Utilisé par Starlette : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Utilisé par Starlette : | |
Utilisées par Starlette : |
* <a href="https://pyyaml.org/wiki/PyYAMLDocumentation" target="_blank"><code>pyyaml</code></a> - Required for Starlette's `SchemaGenerator` support (you probably don't need it with FastAPI). | ||
* <a href="https://graphene-python.org/" target="_blank"><code>graphene</code></a> - Required for `GraphQLApp` support. | ||
* <a href="https://github.com/esnme/ultrajson" target="_blank"><code>ujson</code></a> - Required if you want to use `UJSONResponse`. | ||
Utilisé par FastAPI / Starlette : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Utilisé par FastAPI / Starlette : | |
Utilisées par FastAPI / Starlette : |
I just read the documentation in English today, and learned it was translated in French as well so the contents are quite fresh for me. Almost finished in my opinion, you would need original poster @thiere18 to accept most suggestion, and do a final cleanup particularly on the uppercase/lowercase and punctuation in lists which don't match the French standards. |
Codecov Report
@@ Coverage Diff @@
## master #4203 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 529 529
Lines 13510 13510
=========================================
Hits 13510 13510 Continue to review full report at Codecov.
|
📝 Docs preview for commit 015cdc9 at: https://625b3a9c6b9d2b5a92c45c4a--fastapi.netlify.app |
Hello @thiere18, @bastantoine, @mycaule 👋 Thank you all for your work. Unfortunately, I have the feeling this is a duplicated PR with #1973. Maybe you can do a quick comparison to take the best of both? :) |
You can just merge the two branches and fix the conflicts, just like regular code, no? |
@mycaule, thanks for the answer.
Yes, we need to merge the first PR first and then to rebase this one. We are missing review on the original one and it would be more interesting to focus our energy on the same place 😃 |
It seems this was translated at some point in another PR. So I'll close this one, but thanks for the effort! ☕ |
No description provided.