Browse Source

📝 Add documentation for non-translated pages and scripts to verify them (#12020)

pull/12022/head
Sebastián Ramírez 8 months ago
committed by GitHub
parent
commit
85bd4067c2
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 42
      docs/de/docs/external-links.md
  2. 5
      docs/de/docs/newsletter.md
  3. 24
      docs/de/docs/reference/apirouter.md
  4. 11
      docs/de/docs/reference/background.md
  5. 29
      docs/de/docs/reference/dependencies.md
  6. 3
      docs/de/docs/reference/encoders.md
  7. 20
      docs/de/docs/reference/exceptions.md
  8. 31
      docs/de/docs/reference/fastapi.md
  9. 11
      docs/de/docs/reference/httpconnection.md
  10. 11
      docs/de/docs/reference/index.md
  11. 45
      docs/de/docs/reference/middleware.md
  12. 11
      docs/de/docs/reference/openapi/docs.md
  13. 5
      docs/de/docs/reference/openapi/index.md
  14. 5
      docs/de/docs/reference/openapi/models.md
  15. 35
      docs/de/docs/reference/parameters.md
  16. 17
      docs/de/docs/reference/request.md
  17. 13
      docs/de/docs/reference/response.md
  18. 164
      docs/de/docs/reference/responses.md
  19. 73
      docs/de/docs/reference/security/index.md
  20. 13
      docs/de/docs/reference/staticfiles.md
  21. 36
      docs/de/docs/reference/status.md
  22. 13
      docs/de/docs/reference/templating.md
  23. 13
      docs/de/docs/reference/testclient.md
  24. 22
      docs/de/docs/reference/uploadfile.md
  25. 67
      docs/de/docs/reference/websockets.md
  26. 38
      docs/em/docs/external-links.md
  27. 16
      docs/en/docs/contributing.md
  28. 36
      docs/es/docs/external-links.md
  29. 5
      docs/es/docs/newsletter.md
  30. 36
      docs/fr/docs/external-links.md
  31. 36
      docs/ja/docs/external-links.md
  32. 36
      docs/pt/docs/external-links.md
  33. 24
      docs/pt/docs/reference/apirouter.md
  34. 11
      docs/pt/docs/reference/background.md
  35. 20
      docs/pt/docs/reference/exceptions.md
  36. 6
      docs/pt/docs/reference/index.md
  37. 36
      docs/ru/docs/external-links.md
  38. 36
      docs/tr/docs/external-links.md
  39. 5
      docs/tr/docs/newsletter.md
  40. 33
      scripts/docs.py
  41. 8
      scripts/mkdocs_hooks.py

42
docs/de/docs/external-links.md

@ -1,42 +0,0 @@
# Externe Links und Artikel
**FastAPI** hat eine großartige Community, die ständig wächst.
Es gibt viele Beiträge, Artikel, Tools und Projekte zum Thema **FastAPI**.
Hier ist eine unvollständige Liste einiger davon.
/// tip | "Tipp"
Wenn Sie einen Artikel, ein Projekt, ein Tool oder irgendetwas im Zusammenhang mit **FastAPI** haben, was hier noch nicht aufgeführt ist, erstellen Sie einen <a href="https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml" class="external-link" target="_blank">Pull Request und fügen Sie es hinzu</a>.
///
/// note | "Hinweis Deutsche Übersetzung"
Die folgenden Überschriften und Links werden aus einer <a href="https://github.com/fastapi/fastapi/blob/master/docs/en/data/external_links.yml" class="external-link" target="_blank">anderen Datei</a> gelesen und sind daher nicht ins Deutsche übersetzt.
///
{% for section_name, section_content in external_links.items() %}
## {{ section_name }}
{% for lang_name, lang_content in section_content.items() %}
### {{ lang_name }}
{% for item in lang_content %}
* <a href="{{ item.link }}" class="external-link" target="_blank">{{ item.title }}</a> by <a href="{{ item.author_link }}" class="external-link" target="_blank">{{ item.author }}</a>.
{% endfor %}
{% endfor %}
{% endfor %}
## Projekte
Die neuesten GitHub-Projekte zum Thema `fastapi`:
<div class="github-topic-projects">
</div>

5
docs/de/docs/newsletter.md

@ -1,5 +0,0 @@
# FastAPI und Freunde Newsletter
<iframe data-w-type="embedded" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://xr4n4.mjt.lu/wgt/xr4n4/hj5/form?c=40a44fa4" width="100%" style="height: 0;"></iframe>
<script type="text/javascript" src="https://app.mailjet.com/pas-nc-embedded-v1.js"></script>

24
docs/de/docs/reference/apirouter.md

@ -1,24 +0,0 @@
# `APIRouter`-Klasse
Hier sind die Referenzinformationen für die Klasse `APIRouter` mit all ihren Parametern, Attributen und Methoden.
Sie können die `APIRouter`-Klasse direkt von `fastapi` importieren:
```python
from fastapi import APIRouter
```
::: fastapi.APIRouter
options:
members:
- websocket
- include_router
- get
- put
- post
- delete
- options
- head
- patch
- trace
- on_event

11
docs/de/docs/reference/background.md

@ -1,11 +0,0 @@
# Hintergrundtasks – `BackgroundTasks`
Sie können einen Parameter in einer *Pfadoperation-Funktion* oder einer Abhängigkeitsfunktion mit dem Typ `BackgroundTasks` deklarieren und diesen danach verwenden, um die Ausführung von Hintergrundtasks nach dem Senden der Response zu definieren.
Sie können `BackgroundTasks` direkt von `fastapi` importieren:
```python
from fastapi import BackgroundTasks
```
::: fastapi.BackgroundTasks

29
docs/de/docs/reference/dependencies.md

@ -1,29 +0,0 @@
# Abhängigkeiten – `Depends()` und `Security()`
## `Depends()`
Abhängigkeiten werden hauptsächlich mit der speziellen Funktion `Depends()` behandelt, die ein Callable entgegennimmt.
Hier finden Sie deren Referenz und Parameter.
Sie können sie direkt von `fastapi` importieren:
```python
from fastapi import Depends
```
::: fastapi.Depends
## `Security()`
In vielen Szenarien können Sie die Sicherheit (Autorisierung, Authentifizierung usw.) mit Abhängigkeiten handhaben, indem Sie `Depends()` verwenden.
Wenn Sie jedoch auch OAuth2-Scopes deklarieren möchten, können Sie `Security()` anstelle von `Depends()` verwenden.
Sie können `Security()` direkt von `fastapi` importieren:
```python
from fastapi import Security
```
::: fastapi.Security

3
docs/de/docs/reference/encoders.md

@ -1,3 +0,0 @@
# Encoder – `jsonable_encoder`
::: fastapi.encoders.jsonable_encoder

20
docs/de/docs/reference/exceptions.md

@ -1,20 +0,0 @@
# Exceptions – `HTTPException` und `WebSocketException`
Dies sind die <abbr title="Exception – Ausnahme, Fehler: Python-Objekt, das einen Fehler nebst Metadaten repräsentiert">Exceptions</abbr>, die Sie auslösen können, um dem Client Fehler zu berichten.
Wenn Sie eine Exception auslösen, wird, wie es bei normalem Python der Fall wäre, der Rest der Ausführung abgebrochen. Auf diese Weise können Sie diese Exceptions von überall im Code werfen, um einen Request abzubrechen und den Fehler dem Client anzuzeigen.
Sie können Folgendes verwenden:
* `HTTPException`
* `WebSocketException`
Diese Exceptions können direkt von `fastapi` importiert werden:
```python
from fastapi import HTTPException, WebSocketException
```
::: fastapi.HTTPException
::: fastapi.WebSocketException

31
docs/de/docs/reference/fastapi.md

@ -1,31 +0,0 @@
# `FastAPI`-Klasse
Hier sind die Referenzinformationen für die Klasse `FastAPI` mit all ihren Parametern, Attributen und Methoden.
Sie können die `FastAPI`-Klasse direkt von `fastapi` importieren:
```python
from fastapi import FastAPI
```
::: fastapi.FastAPI
options:
members:
- openapi_version
- webhooks
- state
- dependency_overrides
- openapi
- websocket
- include_router
- get
- put
- post
- delete
- options
- head
- patch
- trace
- on_event
- middleware
- exception_handler

11
docs/de/docs/reference/httpconnection.md

@ -1,11 +0,0 @@
# `HTTPConnection`-Klasse
Wenn Sie Abhängigkeiten definieren möchten, die sowohl mit HTTP als auch mit WebSockets kompatibel sein sollen, können Sie einen Parameter definieren, der eine `HTTPConnection` anstelle eines `Request` oder eines `WebSocket` akzeptiert.
Sie können diese von `fastapi.requests` importieren:
```python
from fastapi.requests import HTTPConnection
```
::: fastapi.requests.HTTPConnection

11
docs/de/docs/reference/index.md

@ -1,11 +0,0 @@
# Referenz – Code-API
Hier ist die Referenz oder Code-API, die Klassen, Funktionen, Parameter, Attribute und alle FastAPI-Teile, die Sie in Ihren Anwendungen verwenden können.
Wenn Sie **FastAPI** lernen möchten, ist es viel besser, das [FastAPI-Tutorial](https://fastapi.tiangolo.com/tutorial/) zu lesen.
/// note | "Hinweis Deutsche Übersetzung"
Die nachfolgende API wird aus der Quelltext-Dokumentation erstellt, daher sind nur die Einleitungen auf Deutsch.
///

45
docs/de/docs/reference/middleware.md

@ -1,45 +0,0 @@
# Middleware
Es gibt mehrere Middlewares, die direkt von Starlette bereitgestellt werden.
Lesen Sie mehr darüber in der [FastAPI-Dokumentation über Middleware](../advanced/middleware.md).
::: fastapi.middleware.cors.CORSMiddleware
Kann von `fastapi` importiert werden:
```python
from fastapi.middleware.cors import CORSMiddleware
```
::: fastapi.middleware.gzip.GZipMiddleware
Kann von `fastapi` importiert werden:
```python
from fastapi.middleware.gzip import GZipMiddleware
```
::: fastapi.middleware.httpsredirect.HTTPSRedirectMiddleware
Kann von `fastapi` importiert werden:
```python
from fastapi.middleware.httpsredirect import HTTPSRedirectMiddleware
```
::: fastapi.middleware.trustedhost.TrustedHostMiddleware
Kann von `fastapi` importiert werden:
```python
from fastapi.middleware.trustedhost import TrustedHostMiddleware
```
::: fastapi.middleware.wsgi.WSGIMiddleware
Kann von `fastapi` importiert werden:
```python
from fastapi.middleware.wsgi import WSGIMiddleware
```

11
docs/de/docs/reference/openapi/docs.md

@ -1,11 +0,0 @@
# OpenAPI `docs`
Werkzeuge zur Verwaltung der automatischen OpenAPI-UI-Dokumentation, einschließlich Swagger UI (standardmäßig unter `/docs`) und ReDoc (standardmäßig unter `/redoc`).
::: fastapi.openapi.docs.get_swagger_ui_html
::: fastapi.openapi.docs.get_redoc_html
::: fastapi.openapi.docs.get_swagger_ui_oauth2_redirect_html
::: fastapi.openapi.docs.swagger_ui_default_parameters

5
docs/de/docs/reference/openapi/index.md

@ -1,5 +0,0 @@
# OpenAPI
Es gibt mehrere Werkzeuge zur Handhabung von OpenAPI.
Normalerweise müssen Sie diese nicht verwenden, es sei denn, Sie haben einen bestimmten fortgeschrittenen Anwendungsfall, welcher das erfordert.

5
docs/de/docs/reference/openapi/models.md

@ -1,5 +0,0 @@
# OpenAPI-`models`
OpenAPI Pydantic-Modelle, werden zum Generieren und Validieren der generierten OpenAPI verwendet.
::: fastapi.openapi.models

35
docs/de/docs/reference/parameters.md

@ -1,35 +0,0 @@
# Request-Parameter
Hier die Referenzinformationen für die Request-Parameter.
Dies sind die Sonderfunktionen, die Sie mittels `Annotated` in *Pfadoperation-Funktion*-Parameter oder Abhängigkeitsfunktionen einfügen können, um Daten aus dem Request abzurufen.
Dies beinhaltet:
* `Query()`
* `Path()`
* `Body()`
* `Cookie()`
* `Header()`
* `Form()`
* `File()`
Sie können diese alle direkt von `fastapi` importieren:
```python
from fastapi import Body, Cookie, File, Form, Header, Path, Query
```
::: fastapi.Query
::: fastapi.Path
::: fastapi.Body
::: fastapi.Cookie
::: fastapi.Header
::: fastapi.Form
::: fastapi.File

17
docs/de/docs/reference/request.md

@ -1,17 +0,0 @@
# `Request`-Klasse
Sie können einen Parameter in einer *Pfadoperation-Funktion* oder einer Abhängigkeit als vom Typ `Request` deklarieren und dann direkt auf das Requestobjekt zugreifen, ohne jegliche Validierung, usw.
Sie können es direkt von `fastapi` importieren:
```python
from fastapi import Request
```
/// tip | "Tipp"
Wenn Sie Abhängigkeiten definieren möchten, die sowohl mit HTTP als auch mit WebSockets kompatibel sein sollen, können Sie einen Parameter definieren, der eine `HTTPConnection` anstelle eines `Request` oder eines `WebSocket` akzeptiert.
///
::: fastapi.Request

13
docs/de/docs/reference/response.md

@ -1,13 +0,0 @@
# `Response`-Klasse
Sie können einen Parameter in einer *Pfadoperation-Funktion* oder einer Abhängigkeit als `Response` deklarieren und dann Daten für die Response wie Header oder Cookies festlegen.
Diese können Sie auch direkt verwenden, um eine Instanz davon zu erstellen und diese von Ihren *Pfadoperationen* zurückzugeben.
Sie können sie direkt von `fastapi` importieren:
```python
from fastapi import Response
```
::: fastapi.Response

164
docs/de/docs/reference/responses.md

@ -1,164 +0,0 @@
# Benutzerdefinierte Responseklassen – File, HTML, Redirect, Streaming, usw.
Es gibt mehrere benutzerdefinierte Responseklassen, von denen Sie eine Instanz erstellen und diese direkt von Ihren *Pfadoperationen* zurückgeben können.
Lesen Sie mehr darüber in der [FastAPI-Dokumentation zu benutzerdefinierten Responses – HTML, Stream, Datei, andere](../advanced/custom-response.md).
Sie können diese direkt von `fastapi.responses` importieren:
```python
from fastapi.responses import (
FileResponse,
HTMLResponse,
JSONResponse,
ORJSONResponse,
PlainTextResponse,
RedirectResponse,
Response,
StreamingResponse,
UJSONResponse,
)
```
## FastAPI-Responses
Es gibt einige benutzerdefinierte FastAPI-Responseklassen, welche Sie verwenden können, um die JSON-Performanz zu optimieren.
::: fastapi.responses.UJSONResponse
options:
members:
- charset
- status_code
- media_type
- body
- background
- raw_headers
- render
- init_headers
- headers
- set_cookie
- delete_cookie
::: fastapi.responses.ORJSONResponse
options:
members:
- charset
- status_code
- media_type
- body
- background
- raw_headers
- render
- init_headers
- headers
- set_cookie
- delete_cookie
## Starlette-Responses
::: fastapi.responses.FileResponse
options:
members:
- chunk_size
- charset
- status_code
- media_type
- body
- background
- raw_headers
- render
- init_headers
- headers
- set_cookie
- delete_cookie
::: fastapi.responses.HTMLResponse
options:
members:
- charset
- status_code
- media_type
- body
- background
- raw_headers
- render
- init_headers
- headers
- set_cookie
- delete_cookie
::: fastapi.responses.JSONResponse
options:
members:
- charset
- status_code
- media_type
- body
- background
- raw_headers
- render
- init_headers
- headers
- set_cookie
- delete_cookie
::: fastapi.responses.PlainTextResponse
options:
members:
- charset
- status_code
- media_type
- body
- background
- raw_headers
- render
- init_headers
- headers
- set_cookie
- delete_cookie
::: fastapi.responses.RedirectResponse
options:
members:
- charset
- status_code
- media_type
- body
- background
- raw_headers
- render
- init_headers
- headers
- set_cookie
- delete_cookie
::: fastapi.responses.Response
options:
members:
- charset
- status_code
- media_type
- body
- background
- raw_headers
- render
- init_headers
- headers
- set_cookie
- delete_cookie
::: fastapi.responses.StreamingResponse
options:
members:
- body_iterator
- charset
- status_code
- media_type
- body
- background
- raw_headers
- render
- init_headers
- headers
- set_cookie
- delete_cookie

73
docs/de/docs/reference/security/index.md

@ -1,73 +0,0 @@
# Sicherheitstools
Wenn Sie Abhängigkeiten mit OAuth2-Scopes deklarieren müssen, verwenden Sie `Security()`.
Aber Sie müssen immer noch definieren, was das <abbr title="Das von dem abhängt, die zu verwendende Abhängigkeit">Dependable</abbr>, das Callable ist, welches Sie als Parameter an `Depends()` oder `Security()` übergeben.
Es gibt mehrere Tools, mit denen Sie diese Dependables erstellen können, und sie werden in OpenAPI integriert, sodass sie in der Oberfläche der automatischen Dokumentation angezeigt werden und von automatisch generierten Clients und SDKs, usw., verwendet werden können.
Sie können sie von `fastapi.security` importieren:
```python
from fastapi.security import (
APIKeyCookie,
APIKeyHeader,
APIKeyQuery,
HTTPAuthorizationCredentials,
HTTPBasic,
HTTPBasicCredentials,
HTTPBearer,
HTTPDigest,
OAuth2,
OAuth2AuthorizationCodeBearer,
OAuth2PasswordBearer,
OAuth2PasswordRequestForm,
OAuth2PasswordRequestFormStrict,
OpenIdConnect,
SecurityScopes,
)
```
## API-Schlüssel-Sicherheitsschemas
::: fastapi.security.APIKeyCookie
::: fastapi.security.APIKeyHeader
::: fastapi.security.APIKeyQuery
## HTTP-Authentifizierungsschemas
::: fastapi.security.HTTPBasic
::: fastapi.security.HTTPBearer
::: fastapi.security.HTTPDigest
## HTTP-Anmeldeinformationen
::: fastapi.security.HTTPAuthorizationCredentials
::: fastapi.security.HTTPBasicCredentials
## OAuth2-Authentifizierung
::: fastapi.security.OAuth2
::: fastapi.security.OAuth2AuthorizationCodeBearer
::: fastapi.security.OAuth2PasswordBearer
## OAuth2-Passwortformulare
::: fastapi.security.OAuth2PasswordRequestForm
::: fastapi.security.OAuth2PasswordRequestFormStrict
## OAuth2-Sicherheitsscopes in Abhängigkeiten
::: fastapi.security.SecurityScopes
## OpenID Connect
::: fastapi.security.OpenIdConnect

13
docs/de/docs/reference/staticfiles.md

@ -1,13 +0,0 @@
# Statische Dateien – `StaticFiles`
Sie können die `StaticFiles`-Klasse verwenden, um statische Dateien wie JavaScript, CSS, Bilder, usw. bereitzustellen.
Lesen Sie mehr darüber in der [FastAPI-Dokumentation zu statischen Dateien](../tutorial/static-files.md).
Sie können sie direkt von `fastapi.staticfiles` importieren:
```python
from fastapi.staticfiles import StaticFiles
```
::: fastapi.staticfiles.StaticFiles

36
docs/de/docs/reference/status.md

@ -1,36 +0,0 @@
# Statuscodes
Sie können das Modul `status` von `fastapi` importieren:
```python
from fastapi import status
```
`status` wird direkt von Starlette bereitgestellt.
Es enthält eine Gruppe benannter Konstanten (Variablen) mit ganzzahligen Statuscodes.
Zum Beispiel:
* 200: `status.HTTP_200_OK`
* 403: `status.HTTP_403_FORBIDDEN`
* usw.
Es kann praktisch sein, schnell auf HTTP- (und WebSocket-)Statuscodes in Ihrer Anwendung zuzugreifen, indem Sie die automatische Vervollständigung für den Namen verwenden, ohne sich die Zahlen für die Statuscodes merken zu müssen.
Lesen Sie mehr darüber in der [FastAPI-Dokumentation zu Response-Statuscodes](../tutorial/response-status-code.md).
## Beispiel
```python
from fastapi import FastAPI, status
app = FastAPI()
@app.get("/items/", status_code=status.HTTP_418_IM_A_TEAPOT)
def read_items():
return [{"name": "Plumbus"}, {"name": "Portal Gun"}]
```
::: fastapi.status

13
docs/de/docs/reference/templating.md

@ -1,13 +0,0 @@
# Templating – `Jinja2Templates`
Sie können die `Jinja2Templates`-Klasse verwenden, um Jinja-Templates zu rendern.
Lesen Sie mehr darüber in der [FastAPI-Dokumentation zu Templates](../advanced/templates.md).
Sie können die Klasse direkt von `fastapi.templating` importieren:
```python
from fastapi.templating import Jinja2Templates
```
::: fastapi.templating.Jinja2Templates

13
docs/de/docs/reference/testclient.md

@ -1,13 +0,0 @@
# Testclient – `TestClient`
Sie können die `TestClient`-Klasse verwenden, um FastAPI-Anwendungen zu testen, ohne eine tatsächliche HTTP- und Socket-Verbindung zu erstellen, Sie kommunizieren einfach direkt mit dem FastAPI-Code.
Lesen Sie mehr darüber in der [FastAPI-Dokumentation über Testen](../tutorial/testing.md).
Sie können sie direkt von `fastapi.testclient` importieren:
```python
from fastapi.testclient import TestClient
```
::: fastapi.testclient.TestClient

22
docs/de/docs/reference/uploadfile.md

@ -1,22 +0,0 @@
# `UploadFile`-Klasse
Sie können *Pfadoperation-Funktionsparameter* als Parameter vom Typ `UploadFile` definieren, um Dateien aus dem Request zu erhalten.
Sie können es direkt von `fastapi` importieren:
```python
from fastapi import UploadFile
```
::: fastapi.UploadFile
options:
members:
- file
- filename
- size
- headers
- content_type
- read
- write
- seek
- close

67
docs/de/docs/reference/websockets.md

@ -1,67 +0,0 @@
# WebSockets
Bei der Definition von WebSockets deklarieren Sie normalerweise einen Parameter vom Typ `WebSocket` und können damit Daten vom Client lesen und an ihn senden. Er wird direkt von Starlette bereitgestellt, Sie können ihn aber von `fastapi` importieren:
```python
from fastapi import WebSocket
```
/// tip | "Tipp"
Wenn Sie Abhängigkeiten definieren möchten, die sowohl mit HTTP als auch mit WebSockets kompatibel sein sollen, können Sie einen Parameter definieren, der eine `HTTPConnection` anstelle eines `Request` oder eines `WebSocket` akzeptiert.
///
::: fastapi.WebSocket
options:
members:
- scope
- app
- url
- base_url
- headers
- query_params
- path_params
- cookies
- client
- state
- url_for
- client_state
- application_state
- receive
- send
- accept
- receive_text
- receive_bytes
- receive_json
- iter_text
- iter_bytes
- iter_json
- send_text
- send_bytes
- send_json
- close
Wenn ein Client die Verbindung trennt, wird eine `WebSocketDisconnect`-Exception ausgelöst, die Sie abfangen können.
Sie können diese direkt von `fastapi` importieren:
```python
from fastapi import WebSocketDisconnect
```
::: fastapi.WebSocketDisconnect
## WebSockets – zusätzliche Klassen
Zusätzliche Klassen für die Handhabung von WebSockets.
Werden direkt von Starlette bereitgestellt, Sie können sie jedoch von `fastapi` importieren:
```python
from fastapi.websockets import WebSocketDisconnect, WebSocketState
```
::: fastapi.websockets.WebSocketDisconnect
::: fastapi.websockets.WebSocketState

38
docs/em/docs/external-links.md

@ -1,38 +0,0 @@
# 🔢 🔗 &amp; 📄
**FastAPI** ✔️ 👑 👪 🕧 💗.
📤 📚 🏤, 📄, 🧰, &amp; 🏗, 🔗 **FastAPI**.
📥 ❌ 📇 👫.
/// tip
🚥 👆 ✔️ 📄, 🏗, 🧰, ⚖️ 🕳 🔗 **FastAPI** 👈 🚫 📇 📥, ✍ <a href="https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml" class="external-link" target="_blank">🚲 📨 ❎ ⚫️</a>.
///
## 📄
{% for section_name, section_content in external_links.items() %}
## {{ section_name }}
{% for lang_name, lang_content in section_content.items() %}
### {{ lang_name }}
{% for item in lang_content %}
* <a href="{{ item.link }}" class="external-link" target="_blank">{{ item.title }}</a> by <a href="{{ item.author_link }}" class="external-link" target="_blank">{{ item.author }}</a>.
{% endfor %}
{% endfor %}
{% endfor %}
## 🏗
⏪ 📂 🏗 ⏮️ ❔ `fastapi`:
<div class="github-topic-projects">
</div>

16
docs/en/docs/contributing.md

@ -370,6 +370,22 @@ If you go to your browser you will see that now the docs show your new section (
Now you can translate it all and see how it looks as you save the file.
/// warning
Don't translate:
* Files under `reference/`
* `release-notes.md`
* `fastapi-people.md`
* `external-links.md`
* `newsletter.md`
* `management-tasks.md`
* `management.md`
Some of these files are updated very frequently and a translation would always be behind, or they include the main content from English source files, etc.
///
#### New Language
Let's say that you want to add translations for a language that is not yet translated, not even some pages.

36
docs/es/docs/external-links.md

@ -1,36 +0,0 @@
# Enlaces Externos y Artículos
**FastAPI** tiene una gran comunidad en constante crecimiento.
Hay muchas publicaciones, artículos, herramientas y proyectos relacionados con **FastAPI**.
Aquí hay una lista incompleta de algunos de ellos.
/// tip | "Consejo"
Si tienes un artículo, proyecto, herramienta o cualquier cosa relacionada con **FastAPI** que aún no aparece aquí, crea un <a href="https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml" class="external-link" target="_blank">Pull Request agregándolo</a>.
///
{% for section_name, section_content in external_links.items() %}
## {{ section_name }}
{% for lang_name, lang_content in section_content.items() %}
### {{ lang_name }}
{% for item in lang_content %}
* <a href="{{ item.link }}" class="external-link" target="_blank">{{ item.title }}</a> by <a href="{{ item.author_link }}" class="external-link" target="_blank">{{ item.author }}</a>.
{% endfor %}
{% endfor %}
{% endfor %}
## Projects
Últimos proyectos de GitHub con el tema `fastapi`:
<div class="github-topic-projects">
</div>

5
docs/es/docs/newsletter.md

@ -1,5 +0,0 @@
# Boletín de Noticias de FastAPI y amigos
<iframe data-w-type="embedded" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://xr4n4.mjt.lu/wgt/xr4n4/hj5/form?c=40a44fa4" width="100%" style="height: 0;"></iframe>
<script type="text/javascript" src="https://app.mailjet.com/pas-nc-embedded-v1.js"></script>

36
docs/fr/docs/external-links.md

@ -1,36 +0,0 @@
# Articles et liens externes
**FastAPI** possède une grande communauté en constante extension.
Il existe de nombreux articles, outils et projets liés à **FastAPI**.
Voici une liste incomplète de certains d'entre eux.
/// tip | "Astuce"
Si vous avez un article, projet, outil, ou quoi que ce soit lié à **FastAPI** qui n'est actuellement pas listé ici, créez une <a href="https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml" class="external-link" target="_blank">Pull Request l'ajoutant</a>.
///
{% for section_name, section_content in external_links.items() %}
## {{ section_name }}
{% for lang_name, lang_content in section_content.items() %}
### {{ lang_name }}
{% for item in lang_content %}
* <a href="{{ item.link }}" class="external-link" target="_blank">{{ item.title }}</a> by <a href="{{ item.author_link }}" class="external-link" target="_blank">{{ item.author }}</a>.
{% endfor %}
{% endfor %}
{% endfor %}
## Projets
Les projets Github avec le topic `fastapi` les plus récents :
<div class="github-topic-projects">
</div>

36
docs/ja/docs/external-links.md

@ -1,36 +0,0 @@
# 外部リンク・記事
**FastAPI**には、絶えず成長している素晴らしいコミュニティがあります。
**FastAPI**に関連する投稿、記事、ツール、およびプロジェクトは多数あります。
それらの不完全なリストを以下に示します。
/// tip | "豆知識"
ここにまだ載っていない**FastAPI**に関連する記事、プロジェクト、ツールなどがある場合は、 <a href="https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml" class="external-link" target="_blank">プルリクエストして下さい</a>
///
{% for section_name, section_content in external_links.items() %}
## {{ section_name }}
{% for lang_name, lang_content in section_content.items() %}
### {{ lang_name }}
{% for item in lang_content %}
* <a href="{{ item.link }}" class="external-link" target="_blank">{{ item.title }}</a> by <a href="{{ item.author_link }}" class="external-link" target="_blank">{{ item.author }}</a>.
{% endfor %}
{% endfor %}
{% endfor %}
## プロジェクト
`fastapi`トピックの最新のGitHubプロジェクト:
<div class="github-topic-projects">
</div>

36
docs/pt/docs/external-links.md

@ -1,36 +0,0 @@
# Links externos e Artigos
**FastAPI** tem uma grande comunidade em crescimento constante.
Existem muitas postagens, artigos, ferramentas e projetos relacionados ao **FastAPI**.
Aqui tem uma lista, incompleta, de algumas delas.
/// tip | "Dica"
Se você tem um artigo, projeto, ferramenta ou qualquer coisa relacionada ao **FastAPI** que ainda não está listada aqui, crie um <a href="https://github.com/fastapi/fastapi/edit/master/docs/external-links.md" class="external-link" target="_blank">_Pull Request_ adicionando ele</a>.
///
{% for section_name, section_content in external_links.items() %}
## {{ section_name }}
{% for lang_name, lang_content in section_content.items() %}
### {{ lang_name }}
{% for item in lang_content %}
* <a href="{{ item.link }}" class="external-link" target="_blank">{{ item.title }}</a> by <a href="{{ item.author_link }}" class="external-link" target="_blank">{{ item.author }}</a>.
{% endfor %}
{% endfor %}
{% endfor %}
## Projetos
Últimos projetos no GitHub com o tópico `fastapi`:
<div class="github-topic-projects">
</div>

24
docs/pt/docs/reference/apirouter.md

@ -1,24 +0,0 @@
# Classe `APIRouter`
Aqui está a informação de referência para a classe `APIRouter`, com todos os seus parâmetros, atributos e métodos.
Você pode importar a classe `APIRouter` diretamente do `fastapi`:
```python
from fastapi import APIRouter
```
::: fastapi.APIRouter
options:
members:
- websocket
- include_router
- get
- put
- post
- delete
- options
- head
- patch
- trace
- on_event

11
docs/pt/docs/reference/background.md

@ -1,11 +0,0 @@
# Tarefas em Segundo Plano - `BackgroundTasks`
Você pode declarar um parâmetro em uma *função de operação de rota* ou em uma função de dependência com o tipo `BackgroundTasks`, e então utilizá-lo para agendar a execução de tarefas em segundo plano após o envio da resposta.
Você pode importá-lo diretamente do `fastapi`:
```python
from fastapi import BackgroundTasks
```
::: fastapi.BackgroundTasks

20
docs/pt/docs/reference/exceptions.md

@ -1,20 +0,0 @@
# Exceções - `HTTPException` e `WebSocketException`
Essas são as exceções que você pode lançar para mostrar erros ao cliente.
Quando você lança uma exceção, como aconteceria com o Python normal, o restante da execução é abortado. Dessa forma, você pode lançar essas exceções de qualquer lugar do código para abortar uma solicitação e mostrar o erro ao cliente.
Você pode usar:
* `HTTPException`
* `WebSocketException`
Essas exceções podem ser importadas diretamente do `fastapi`:
```python
from fastapi import HTTPException, WebSocketException
```
::: fastapi.HTTPException
::: fastapi.WebSocketException

6
docs/pt/docs/reference/index.md

@ -1,6 +0,0 @@
# Referência - API de Código
Aqui está a referência ou API de código, as classes, funções, parâmetros, atributos e todas as partes do FastAPI que você pode usar em suas aplicações.
Se você quer **aprender FastAPI**, é muito melhor ler o
[FastAPI Tutorial](https://fastapi.tiangolo.com/tutorial/).

36
docs/ru/docs/external-links.md

@ -1,36 +0,0 @@
# Внешние ссылки и статьи
**FastAPI** имеет отличное и постоянно растущее сообщество.
Существует множество сообщений, статей, инструментов и проектов, связанных с **FastAPI**.
Вот неполный список некоторых из них.
/// tip
Если у вас есть статья, проект, инструмент или что-либо, связанное с **FastAPI**, что еще не перечислено здесь, создайте <a href="https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml" class="external-link" target="_blank">Pull Request</a>.
///
{% for section_name, section_content in external_links.items() %}
## {{ section_name }}
{% for lang_name, lang_content in section_content.items() %}
### {{ lang_name }}
{% for item in lang_content %}
* <a href="{{ item.link }}" class="external-link" target="_blank">{{ item.title }}</a> by <a href="{{ item.author_link }}" class="external-link" target="_blank">{{ item.author }}</a>.
{% endfor %}
{% endfor %}
{% endfor %}
## Проекты
Последние GitHub-проекты с пометкой `fastapi`:
<div class="github-topic-projects">
</div>

36
docs/tr/docs/external-links.md

@ -1,36 +0,0 @@
# Harici Bağlantılar ve Makaleler
**FastAPI** sürekli büyüyen harika bir topluluğa sahiptir.
**FastAPI** ile alakalı birçok yazı, makale, araç ve proje bulunmaktadır.
Bunlardan bazılarının tamamlanmamış bir listesi aşağıda bulunmaktadır.
/// tip | "İpucu"
Eğer **FastAPI** ile alakalı henüz burada listelenmemiş bir makale, proje, araç veya başka bir şeyiniz varsa, bunu eklediğiniz bir <a href="https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml" class="external-link" target="_blank">Pull Request</a> oluşturabilirsiniz.
///
{% for section_name, section_content in external_links.items() %}
## {{ section_name }}
{% for lang_name, lang_content in section_content.items() %}
### {{ lang_name }}
{% for item in lang_content %}
* <a href="{{ item.link }}" class="external-link" target="_blank">{{ item.title }}</a> by <a href="{{ item.author_link }}" class="external-link" target="_blank">{{ item.author }}</a>.
{% endfor %}
{% endfor %}
{% endfor %}
## Projeler
`fastapi` konulu en son GitHub projeleri:
<div class="github-topic-projects">
</div>

5
docs/tr/docs/newsletter.md

@ -1,5 +0,0 @@
# FastAPI ve Arkadaşları Bülteni
<iframe data-w-type="embedded" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://xr4n4.mjt.lu/wgt/xr4n4/hj5/form?c=40a44fa4" width="100%" style="height: 0;"></iframe>
<script type="text/javascript" src="https://app.mailjet.com/pas-nc-embedded-v1.js"></script>

33
scripts/docs.py

@ -26,6 +26,15 @@ missing_translation_snippet = """
{!../../../docs/missing-translation.md!}
"""
non_translated_sections = [
"reference/",
"release-notes.md",
"external-links.md",
"newsletter.md",
"management-tasks.md",
"management.md",
]
docs_path = Path("docs")
en_docs_path = Path("docs/en")
en_config_path: Path = en_docs_path / mkdocs_name
@ -333,10 +342,34 @@ def verify_config() -> None:
typer.echo("Valid mkdocs.yml ✅")
@app.command()
def verify_non_translated() -> None:
"""
Verify there are no files in the non translatable pages.
"""
print("Verifying non translated pages")
lang_paths = get_lang_paths()
error_paths = []
for lang in lang_paths:
if lang.name == "en":
continue
for non_translatable in non_translated_sections:
non_translatable_path = lang / "docs" / non_translatable
if non_translatable_path.exists():
error_paths.append(non_translatable_path)
if error_paths:
print("Non-translated pages found, remove them:")
for error_path in error_paths:
print(error_path)
raise typer.Abort()
print("No non-translated pages found ✅")
@app.command()
def verify_docs():
verify_readme()
verify_config()
verify_non_translated()
@app.command()

8
scripts/mkdocs_hooks.py

@ -8,9 +8,13 @@ from mkdocs.structure.files import File, Files
from mkdocs.structure.nav import Link, Navigation, Section
from mkdocs.structure.pages import Page
non_traslated_sections = [
non_translated_sections = [
"reference/",
"release-notes.md",
"external-links.md",
"newsletter.md",
"management-tasks.md",
"management.md",
]
@ -128,7 +132,7 @@ def on_page_markdown(
markdown: str, *, page: Page, config: MkDocsConfig, files: Files
) -> str:
if isinstance(page.file, EnFile):
for excluded_section in non_traslated_sections:
for excluded_section in non_translated_sections:
if page.file.src_path.startswith(excluded_section):
return markdown
missing_translation_content = get_missing_translation_content(config.docs_dir)

Loading…
Cancel
Save