diff --git a/docs/az/mkdocs.yml b/docs/az/mkdocs.yml
index 7f4a490d8..7d59451c1 100644
--- a/docs/az/mkdocs.yml
+++ b/docs/az/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -105,6 +106,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/de/mkdocs.yml b/docs/de/mkdocs.yml
index f6e0a6b01..87fe74697 100644
--- a/docs/de/mkdocs.yml
+++ b/docs/de/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -106,6 +107,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/em/docs/advanced/additional-responses.md b/docs/em/docs/advanced/additional-responses.md
new file mode 100644
index 000000000..26963c2e3
--- /dev/null
+++ b/docs/em/docs/advanced/additional-responses.md
@@ -0,0 +1,240 @@
+# ð ðš ð
+
+!!! warning
+ ð ð ð§ â.
+
+ ð¥ ð â¶ïž â®ïž **FastAPI**, ð ðª ð« ðª ð.
+
+ð ðª ð£ ð ðš, â®ïž ð ð ð, ð ð, ð, âïž.
+
+ð ð ðš ð ð ð ð, ð« ð ð ð ïž ð©º.
+
+âïž ð ð ðš ð âïž â ð ð ðš `Response` ð `JSONResponse` ð, â®ïž ð ð ð & ð.
+
+## ð ðš â®ïž `model`
+
+ð ðª ð¶ââïž ð *â¡ ð ïž ðšâðš* ð¢ `responses`.
+
+â«ïž ðš `dict`, ð ð ð ð ðš, ð `200`, & ð² ð `dict`â â®ïž â¹ ð ð«.
+
+ð ð ðš `dict`â ðª âïž ð `model`, â Pydantic ð·, ð `response_model`.
+
+**FastAPI** ð â ð ð·, ð ð® ð» ð & ð â«ïž â ð¥ ð.
+
+ðŒ, ð£ â1ïžâ£ ðš â®ïž ð ð `404` & Pydantic ð· `Message`, ð ðª â:
+
+```Python hl_lines="18 22"
+{!../../../docs_src/additional_responses/tutorial001.py!}
+```
+
+!!! note
+ âïž ð€¯ ð ð âïž ðš `JSONResponse` ð.
+
+!!! info
+ `model` ð ð« ð ð.
+
+ **FastAPI** ð â Pydantic ð· âªïžâ¡ïž ð€, ð `JSON Schema`, & ð® â«ïž â ð¥.
+
+ â ð¥:
+
+ * ð `content`, ð âïž ð² â1ïžâ£ ð» ð (`dict`) ð ð:
+ * ð â®ïž ð» ð, â
`application/json`, ð ð ð² â1ïžâ£ ð» ð, ð ð:
+ * ð `schema`, ð âïž ð² ð» ð âªïžâ¡ïž ð·, ð¥ â ð¥.
+ * **FastAPI** ð® ð ð¥ ð ð» ð â1ïžâ£ ð¥ ð ð â©ïž â
â«ïž ð. ð ð, ð ðž & ð©âð» ðª âïž ð ð» ð ð, ð ð» ð â¡ ð§°, âïž.
+
+ð ðš ð ð *â¡ ð ïž* ð:
+
+```JSON hl_lines="3-12"
+{
+ "responses": {
+ "404": {
+ "description": "Additional Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Message"
+ }
+ }
+ }
+ },
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Item"
+ }
+ }
+ }
+ },
+ "422": {
+ "description": "Validation Error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HTTPValidationError"
+ }
+ }
+ }
+ }
+ }
+}
+```
+
+ð ð â1ïžâ£ ð¥ ð ð ð:
+
+```JSON hl_lines="4-16"
+{
+ "components": {
+ "schemas": {
+ "Message": {
+ "title": "Message",
+ "required": [
+ "message"
+ ],
+ "type": "object",
+ "properties": {
+ "message": {
+ "title": "Message",
+ "type": "string"
+ }
+ }
+ },
+ "Item": {
+ "title": "Item",
+ "required": [
+ "id",
+ "value"
+ ],
+ "type": "object",
+ "properties": {
+ "id": {
+ "title": "Id",
+ "type": "string"
+ },
+ "value": {
+ "title": "Value",
+ "type": "string"
+ }
+ }
+ },
+ "ValidationError": {
+ "title": "ValidationError",
+ "required": [
+ "loc",
+ "msg",
+ "type"
+ ],
+ "type": "object",
+ "properties": {
+ "loc": {
+ "title": "Location",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "msg": {
+ "title": "Message",
+ "type": "string"
+ },
+ "type": {
+ "title": "Error Type",
+ "type": "string"
+ }
+ }
+ },
+ "HTTPValidationError": {
+ "title": "HTTPValidationError",
+ "type": "object",
+ "properties": {
+ "detail": {
+ "title": "Detail",
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ValidationError"
+ }
+ }
+ }
+ }
+ }
+ }
+}
+```
+
+## ð ð ð ð ðš
+
+ð ðª âïž ð ð `responses` ð¢ ð® ð ð ð ð ð ðš.
+
+ðŒ, ð ðª ð® ð ð» ð `image/png`, ð£ ð ð *â¡ ð ïž* ðª ðš ð» ð (â®ïž ð» ð `application/json`) âïž ð©ðŽ ðŒ:
+
+```Python hl_lines="19-24 28"
+{!../../../docs_src/additional_responses/tutorial002.py!}
+```
+
+!!! note
+ ð ð ð âïž ðš ðŒ âïž `FileResponse` ð.
+
+!!! info
+ ð¥ ð â ð ð» ð ð¯ ð `responses` ð¢, FastAPI ð ð€ ðš âïž ð ð» ð ð ðš ð (ð¢ `application/json`).
+
+ âïž ð¥ ð âïž â ð ðš ð â®ïž `None` ð® ð» ð, FastAPI ð âïž `application/json` ð ð ðš ð âïž ðšâðŒ ð·.
+
+## ð â¹
+
+ð ðª ð ðš â¹ âªïžâ¡ïž ð ð¥, ð `response_model`, `status_code`, & `responses` ð¢.
+
+ð ðª ð£ `response_model`, âïž ð¢ ð ð `200` (âïž ð 1ïžâ£ ð¥ ð ðª), & â€Žïž ð£ ð â¹ ð ð ðš `responses`, ð ð ð.
+
+**FastAPI** ð ð§ ð â¹ âªïžâ¡ïž `responses`, & ð â«ïž â®ïž ð» ð âªïžâ¡ïž ð ð·.
+
+ðŒ, ð ðª ð£ ðš â®ïž ð ð `404` ð âïž Pydantic ð· & âïž ð `description`.
+
+& ðš â®ïž ð ð `200` ð âïž ð `response_model`, âïž ð ð `example`:
+
+```Python hl_lines="20-31"
+{!../../../docs_src/additional_responses/tutorial003.py!}
+```
+
+â«ïž ð ð ð & ð ð ð, & ðŠ ð ïž ð©º:
+
+
+
+## ð ð¢ ðš & ð ð
+
+ð ðª ð âïž ð ðš ð â ð *â¡ ð ïž*, âïž ð ð ð ð« â®ïž ð ðš ð ð *â¡ ð ïž*.
+
+ð ðŒ, ð ðª âïž ð â "ð" `dict` â®ïž `**dict_to_unpack`:
+
+```Python
+old_dict = {
+ "old key": "old value",
+ "second old key": "second old value",
+}
+new_dict = {**old_dict, "new key": "new value"}
+```
+
+ð¥, `new_dict` ð ð ð ð-ð² ð« âªïžâ¡ïž `old_dict` â ð ð-ð² ð«:
+
+```Python
+{
+ "old key": "old value",
+ "second old key": "second old value",
+ "new key": "new value",
+}
+```
+
+ð ðª âïž ð â ð€-âïž ð¢ ðš ð *â¡ ð ïž* & ð ð« â®ïž ð ð ð.
+
+ðŒ:
+
+```Python hl_lines="13-17 26"
+{!../../../docs_src/additional_responses/tutorial004.py!}
+```
+
+## ð â¹ ð ð ðš
+
+ð â«ïžâ â«ïžâ ð ðª ð ðš, ð ðª â
ð ð ð ð§:
+
+* ð ðš ð, â«ïž ð `Response Object`.
+* ð ðš ð, ð ðª ð ð³ âªïžâ¡ïž ð ð ð ðš ð ð `responses` ð¢. â
`description`, `headers`, `content` (ð ð ð ð ð£ ð ð ð & ð» ð), & `links`.
diff --git a/docs/em/docs/advanced/additional-status-codes.md b/docs/em/docs/advanced/additional-status-codes.md
new file mode 100644
index 000000000..392579df6
--- /dev/null
+++ b/docs/em/docs/advanced/additional-status-codes.md
@@ -0,0 +1,37 @@
+# ð ð ð
+
+ð¢, **FastAPI** ð ðš ðš âïž `JSONResponse`, ð® ð ð ðš âªïžâ¡ïž ð *â¡ ð ïž* ð ð `JSONResponse`.
+
+â«ïž ð âïž ð¢ ð ð âïž 1ïžâ£ ð â ð *â¡ ð ïž*.
+
+## ð ð ð
+
+ð¥ ð ð ðš ð ð ð âïž âªïžâ¡ïž ð 1ïžâ£, ð ðª ð ð¬ `Response` ð, ð `JSONResponse`, & â ð ð ð ð.
+
+ðŒ, â¡ïž ð¬ ð ð ð âïž *â¡ ð ïž* ð â â¹ ð¬, & ðš ðºðžð ð ð 2ïžâ£0ïžâ£0ïžâ£ "ð" ðâ ð.
+
+âïž ð ð â«ïž ð« ð ð¬. & ðâ ð¬ ð« ð â, â«ïž â ð«, & ðš ðºðžð ð ð 2ïžâ£0ïžâ£1ïžâ£ "â".
+
+ð ð, ð `JSONResponse`, & ðš ð ð ð€ ð, â `status_code` ð ð ð:
+
+```Python hl_lines="4 25"
+{!../../../docs_src/additional_status_codes/tutorial001.py!}
+```
+
+!!! warning
+ ðâ ð ðš `Response` ð, ð ðŒ ð, â«ïž ð ðš ð.
+
+ â«ïž ð ð« ð» â®ïž ð·, âïž.
+
+ â ð â«ïž âïž ð ð ð â«ïž âïž, & ð ð² â ð» (ð¥ ð âïž `JSONResponse`).
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.responses import JSONResponse`.
+
+ **FastAPI** ð ð `starlette.responses` `fastapi.responses` ðª ð, ð©âð». âïž ð
ðª ðš ð ð âªïžâ¡ïž ð. ð â®ïž `status`.
+
+## ð & ð ïž ð©º
+
+ð¥ ð ðš ð ð ð & ðš ð, ð« ð ð« ð ð ð (ð ïž ð©º), â©ïž FastAPI ð« âïž ð ð ⪠â«ïžâ ð ð¶ ðš.
+
+âïž ð ðª ð ð ð ð, âïž: [ð ðš](additional-responses.md){.internal-link target=_blank}.
diff --git a/docs/em/docs/advanced/advanced-dependencies.md b/docs/em/docs/advanced/advanced-dependencies.md
new file mode 100644
index 000000000..fa1554734
--- /dev/null
+++ b/docs/em/docs/advanced/advanced-dependencies.md
@@ -0,0 +1,70 @@
+# ð§ ð
+
+## ð ð
+
+ð ð ð¥ âïž ð ð§ ð¢ âïž ð.
+
+âïž ð€ ðª ðŒ ðâ ð ð ðª â ð¢ ð ð, ðµ âïž ð£ ð ð ð¢ âïž ð.
+
+â¡ïž ð ð ð¥ ð âïž ð ð â
ð¥ ð¢ ð¢ `q` ð ð§ ð.
+
+âïž ð¥ ð ðª ð ð ð§ ð.
+
+## "ð§ð²" ð
+
+ð ð€ ð â ð ð "ð§ð²".
+
+ð« ð â«ïž (â ⪠ð§ð²), âïž ð ð ð.
+
+ð, ð¥ ð£ ð©âð¬ `__call__`:
+
+```Python hl_lines="10"
+{!../../../docs_src/dependencies/tutorial011.py!}
+```
+
+ð ðŒ, ð `__call__` â«ïžâ **FastAPI** ð âïž â
ð ð¢ & ð§-ð, & ð â«ïžâ ð ð€ ð¶ââïž ð² ð¢ ð *â¡ ð ïž ð¢* âª.
+
+## ð ð
+
+& ð, ð¥ ðª âïž `__init__` ð£ ð¢ ð ð ð¥ ðª âïž "ð" ð:
+
+```Python hl_lines="7"
+{!../../../docs_src/dependencies/tutorial011.py!}
+```
+
+ð ðŒ, **FastAPI** ð ð« â± ð âïž ð
ð `__init__`, ð¥ ð âïž â«ïž ð ð ð.
+
+## â ð
+
+ð¥ ðª â ð ð ð â®ïž:
+
+```Python hl_lines="16"
+{!../../../docs_src/dependencies/tutorial011.py!}
+```
+
+& ð ð ð¥ ðª "ð" ð ð, ð ð âïž `"bar"` ð â«ïž, ð¢ `checker.fixed_content`.
+
+## âïž ð ð
+
+‎ïž, ð¥ ðª âïž ð `checker` `Depends(checker)`, â©ïž `Depends(FixedContentQueryChecker)`, â©ïž ð ð, `checker`, ð« ð â«ïž.
+
+& ðâ â ð, **FastAPI** ð ð€ ð `checker` ð:
+
+```Python
+checker(q="somequery")
+```
+
+...& ð¶ââïž â«ïžâ ð ðš ð² ð ð *â¡ ð ïž ð¢* ð¢ `fixed_content_included`:
+
+```Python hl_lines="20"
+{!../../../docs_src/dependencies/tutorial011.py!}
+```
+
+!!! tip
+ ð ð ðª ð ð. & â«ïž ðª ð« ð¶ ð â â«ïž â .
+
+ ð« ðŒ ð« ð
, âïž ðŠ â â«ïž ð ð·.
+
+ ð ð ðââ, ð€ ð ð¢ ð ð ïž ð ð ð.
+
+ ð¥ ð ð€ ð ð, ð ⪠ð â ð ð 𧰠ðââ ð· ð.
diff --git a/docs/em/docs/advanced/async-sql-databases.md b/docs/em/docs/advanced/async-sql-databases.md
new file mode 100644
index 000000000..848936de1
--- /dev/null
+++ b/docs/em/docs/advanced/async-sql-databases.md
@@ -0,0 +1,162 @@
+# ð ð (ð) ðœ
+
+ð ðª âïž `encode/databases` â®ïž **FastAPI** ð ðœ âïž `async` & `await`.
+
+â«ïž ð â®ïž:
+
+* â³
+* â³
+* ð
+
+ð ðŒ, ð¥ ð âïž **ð**, â©ïž â«ïž âïž ð ð & ð âïž ð ïž ðâðŠº. , ð ðª ð ð ðŒ & ð â«ïž.
+
+âª, ð ð ðž, ð ðª ð âïž ðœ ðœ ð **â³**.
+
+!!! tip
+ ð ðª ð ïž ð âªïžâ¡ïž ð ð ðžð² ð ([ð (ð) ðœ](../tutorial/sql-databases.md){.internal-link target=_blank}), ð âïž ð ð¢ ð ð ïž ðœ, ð¬ ð **FastAPI** ð.
+
+ ð ð ð« â ð ð, ð ð ð.
+
+## ð & â ð `SQLAlchemy`
+
+* ð `SQLAlchemy`.
+* â `metadata` ð.
+* â ð `notes` âïž `metadata` ð.
+
+```Python hl_lines="4 14 16-22"
+{!../../../docs_src/async_sql_databases/tutorial001.py!}
+```
+
+!!! tip
+ ð ð ð ð ð ð ðžð² ð.
+
+ `databases` ð« ðš ð³ ð¥.
+
+## ð & â ð `databases`
+
+* ð `databases`.
+* â `DATABASE_URL`.
+* â `database` ð.
+
+```Python hl_lines="3 9 12"
+{!../../../docs_src/async_sql_databases/tutorial001.py!}
+```
+
+!!! tip
+ ð¥ ð ð ð ðœ (â
â³), ð ð ðª ð `DATABASE_URL`.
+
+## â ð
+
+ð ðŒ, ð¥ ð ð ð ð ð, âïž ð, ð ð ð² ð â ð« â®ïž â, ð ïž â®ïž ð ïž, âïž.
+
+ð¥, ð ð ð ð ð, â¶ïžïž â â¶ïž ð **FastAPI** ðž.
+
+* â `engine`.
+* â ð ð âªïžâ¡ïž `metadata` ð.
+
+```Python hl_lines="25-28"
+{!../../../docs_src/async_sql_databases/tutorial001.py!}
+```
+
+## â ð·
+
+â Pydantic ð·:
+
+* ð â (`NoteIn`).
+* ð ðš (`Note`).
+
+```Python hl_lines="31-33 36-39"
+{!../../../docs_src/async_sql_databases/tutorial001.py!}
+```
+
+ð ð« Pydantic ð·, ð¢ ðœ ð â, ð» (ð), & â (ð).
+
+, ð ð ðª ð â«ïž ð ð ð ïž ð©º.
+
+## ð & ð
+
+* â ð `FastAPI` ðž.
+* â ð ðâðŠº ð & ð âªïžâ¡ïž ðœ.
+
+```Python hl_lines="42 45-47 50-52"
+{!../../../docs_src/async_sql_databases/tutorial001.py!}
+```
+
+## â ð
+
+â *â¡ ð ïž ð¢* â ð:
+
+```Python hl_lines="55-58"
+{!../../../docs_src/async_sql_databases/tutorial001.py!}
+```
+
+!!! Note
+ ð ð ð¥ ð â®ïž ðœ âïž `await`, *â¡ ð ïž ð¢* ð£ â®ïž `async`.
+
+### ð `response_model=List[Note]`
+
+â«ïž âïž `typing.List`.
+
+ð ð (& â, ð», âœ) ð¢ ðœ, `list` `Note`â.
+
+## â ð
+
+â *â¡ ð ïž ð¢* â ð:
+
+```Python hl_lines="61-65"
+{!../../../docs_src/async_sql_databases/tutorial001.py!}
+```
+
+!!! Note
+ ð ð ð¥ ð â®ïž ðœ âïž `await`, *â¡ ð ïž ð¢* ð£ â®ïž `async`.
+
+### ð `{**note.dict(), "id": last_record_id}`
+
+`note` Pydantic `Note` ð.
+
+`note.dict()` ðš `dict` â®ïž ð® ðœ, ð³ ð:
+
+```Python
+{
+ "text": "Some note",
+ "completed": False,
+}
+```
+
+âïž â«ïž ð« âïž `id` ð.
+
+ð¥ â ð `dict`, ð ð ð-ð² ð« âªïžâ¡ïž `note.dict()` â®ïž:
+
+```Python
+{**note.dict()}
+```
+
+`**note.dict()` "unpacks" the key value pairs directly, so, `{**note.dict()}` would be, more or less, a copy of `note.dict()`.
+
+& ‎ïž, ð¥ â ð ð `dict`, â â1ïžâ£ ð-ð² ð«: `"id": last_record_id`:
+
+```Python
+{**note.dict(), "id": last_record_id}
+```
+
+, ð ð ðš ð ð³ ð:
+
+```Python
+{
+ "id": 1,
+ "text": "Some note",
+ "completed": False,
+}
+```
+
+## â
â«ïž
+
+ð ðª ð ð ð, & ð 𩺠http://127.0.0.1:8000/docs.
+
+ð€ ð ðª ð ð ð ð ïž ð & ð â®ïž â«ïž:
+
+
+
+## ð
â¹
+
+ð ðª â ð
ð `encode/databases` ð® ð ð.
diff --git a/docs/em/docs/advanced/async-tests.md b/docs/em/docs/advanced/async-tests.md
new file mode 100644
index 000000000..df94c6ce7
--- /dev/null
+++ b/docs/em/docs/advanced/async-tests.md
@@ -0,0 +1,92 @@
+# ð ð¯
+
+ð âïž âª ð â ð¯ ð **FastAPI** ðž âïž ð `TestClient`. ð ð, ð âïž ðŽ ð â â ð ð¯, ðµ âïž `async` ð¢.
+
+â ðª âïž ð ð¢ ð ð¯ ðª â , ðŒ, ðâ ð ð¬ ð ðœ ð. ð ð ð ð¯ ðš ðš ð FastAPI ðž & â€Žïž â ð ð ð©âð» ⪠â â ðœ ðœ, ⪠âïž ð ðœ ð.
+
+â¡ïž ð â ð¥ ðª â ð ð·.
+
+## pytest.mark.anyio
+
+ð¥ ð¥ ð ð€ ð ð¢ ð ð¯, ð ð¯ ð¢ âïž ð. AnyIO ð ð ð ð, ð â ð¥ â ð ð¯ ð¢ ð€ ð.
+
+## ðžð²
+
+ð¥ ð **FastAPI** ðž âïž ð `def` ð¢ â©ïž `async def`, â«ïž `async` ðž ð.
+
+`TestClient` ðš ð± ð ð€ ð FastAPI ðž ð ð `def` ð¯ ð¢, âïž ð© â³. âïž ð ð± ð« ð· ð«ð ðâ ð¥ âïž â«ïž ð ð ð¢. ð ð ð¯ ð, ð¥ ðª ð
ââ ð âïž `TestClient` ð ð ð¯ ð¢.
+
+`TestClient` âïž ð ðžð², & â©ïž, ð¥ ðª âïž â«ïž ð ð¯ ð ïž.
+
+## ðŒ
+
+ð
ðŒ, â¡ïž ð€ ð ð ð 1ïžâ£ ð¬ [ðŠ ðž](../tutorial/bigger-applications.md){.internal-link target=_blank} & [ð¬](../tutorial/testing.md){.internal-link target=_blank}:
+
+```
+.
+âââ app
+â  âââ __init__.py
+â  âââ main.py
+â  âââ test_main.py
+```
+
+ð `main.py` ð âïž:
+
+```Python
+{!../../../docs_src/async_tests/main.py!}
+```
+
+ð `test_main.py` ð âïž ð¯ `main.py`, â«ïž ðª ð ð ð ð:
+
+```Python
+{!../../../docs_src/async_tests/test_main.py!}
+```
+
+## ð â«ïž
+
+ð ðª ð ð ð¯ ð ðš:
+
+
+
+```console
+$ pytest
+
+---> 100%
+```
+
+
+
+## â¹
+
+ð `@pytest.mark.anyio` ð¬ â³ ð ð ð¯ ð¢ ð ð€ ð:
+
+```Python hl_lines="7"
+{!../../../docs_src/async_tests/test_main.py!}
+```
+
+!!! tip
+ ð ð ð¯ ð¢ ð `async def` â©ïž `def` â ðâ âïž `TestClient`.
+
+â€Žïž ð¥ ðª â `AsyncClient` â®ïž ð±, & ðš ð ðš â«ïž, âïž `await`.
+
+```Python hl_lines="9-10"
+{!../../../docs_src/async_tests/test_main.py!}
+```
+
+ð ð:
+
+```Python
+response = client.get('/')
+```
+
+...ð ð¥ âïž â ð ðš â®ïž `TestClient`.
+
+!!! tip
+ ð ð ð¥ âïž ð/â â®ïž ð `AsyncClient` - ðš ð.
+
+## ð ð ð¢ ð€
+
+ð¬ ð¢ ð ð, ð ðª ð ð€ (& `await`) ð `async` ð¢ âïž âªïžâ¡ïž ðš ðš ð FastAPI ðž ð ð¯, â«ïžâ ð ð ð€ ð« ð ð ð ð.
+
+!!! tip
+ ð¥ ð â `RuntimeError: Task attached to a different loop` ðâ ð ïž ð ð¢ ð€ ð ð¯ (â
ðâ âïž â³ MotorClient) ð ð ð ð ðª ð â° ðŽ ð ð ð¢, â
`'@app.on_event("startup")` â².
diff --git a/docs/em/docs/advanced/behind-a-proxy.md b/docs/em/docs/advanced/behind-a-proxy.md
new file mode 100644
index 000000000..12afe638c
--- /dev/null
+++ b/docs/em/docs/advanced/behind-a-proxy.md
@@ -0,0 +1,346 @@
+# â
ð³
+
+â , ð 5ïžâ£ð ðª âïž **ð³** ðœ ð Traefik âïž ð â®ïž ð³ ð ð® â â¡ ð¡ ð ð« ð ð ðž.
+
+ð« ðŒ ð ðª âïž `root_path` ð ð ðž.
+
+`root_path` ð ïž ð ð« ð§ (ð FastAPI ð ð, ð ð).
+
+`root_path` âïž ðµ ð« ð¯ ðŒ.
+
+& â«ïž âïž ð ðâ ð ð§-ðž.
+
+## ð³ â®ïž ð â¡ ð¡
+
+âïž ð³ â®ïž ð â¡ ð¡, ð ðŒ, â ð ð ðª ð£ â¡ `/app` ð ð, âïž â€Žïž, ð ð® 𧜠ð ð (ð³) ð ð ð® ð **FastAPI** ðž ðœ â¡ ð `/api/v1`.
+
+ð ðŒ, â®ïž â¡ `/app` ð ð€ ðŠ `/api/v1/app`.
+
+âïž ð ð ð â ð€ ð€ `/app`.
+
+& ð³ ð **"â"** **â¡ ð¡** ð â â ð¶ ðš Uvicorn, ð§ ð ðž ð€ ð â«ïž ðŠ `/app`, ð ð ð« âïž â¹ ð ð ð ð ð¡ `/api/v1`.
+
+ð ð¥, ð ð ð· ð.
+
+âïž â€Žïž, ðâ ð ð ð ïž ð©º ð (ðž), â«ïž ð â ð€ ð ð `/openapi.json`, â©ïž `/api/v1/openapi.json`.
+
+, ðž (ð ð ð¥) ð ð ð `/openapi.json` & ð«ð ðª ð€ ð ð.
+
+â©ïž ð¥ âïž ð³ â®ïž â¡ ð¡ `/api/v1` ð ð±, ðž ðª â ð ð `/api/v1/openapi.json`.
+
+```mermaid
+graph LR
+
+browser("Browser")
+proxy["Proxy on http://0.0.0.0:9999/api/v1/app"]
+server["Server on http://127.0.0.1:8000/app"]
+
+browser --> proxy
+proxy --> server
+```
+
+!!! tip
+ ð¢ `0.0.0.0` ð âïž â ð ð ð ð ð ð¢ ðª ð ð°/ðœ.
+
+𩺠ð ð ðª ð ð ð£ ð ð ð ïž `server` ð `/api/v1` (â
ð³). ðŒ:
+
+```JSON hl_lines="4-8"
+{
+ "openapi": "3.0.2",
+ // More stuff here
+ "servers": [
+ {
+ "url": "/api/v1"
+ }
+ ],
+ "paths": {
+ // More stuff here
+ }
+}
+```
+
+ð ðŒ, "ð³" ðª ð³ ð **Traefik**. & ðœ ð ð³ ð **Uvicorn**, ðââ ð FastAPI ðž.
+
+### ð `root_path`
+
+ð ð, ð ðª âïž ð âž ð `--root-path` ð:
+
+
+
+```console
+$ uvicorn main:app --root-path /api/v1
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+ð¥ ð âïž Hypercorn, â«ïž âïž ð `--root-path`.
+
+!!! note "ð¡ â¹"
+ ð« ð§ ð¬ `root_path` ð âïž ðŒ.
+
+ & `--root-path` ð âž ð ð ð `root_path`.
+
+### â
â®ïž `root_path`
+
+ð ðª ð€ â®ïž `root_path` âïž ð ðž ð ðš, â«ïž ð `scope` ð (ð ð ð« ð).
+
+ð¥ ð¥ â
â«ïž ð§ ðŠ ð¯.
+
+```Python hl_lines="8"
+{!../../../docs_src/behind_a_proxy/tutorial001.py!}
+```
+
+‎ïž, ð¥ ð â¶ïž Uvicorn â®ïž:
+
+
+
+```console
+$ uvicorn main:app --root-path /api/v1
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+ðš ð ð³ ð:
+
+```JSON
+{
+ "message": "Hello World",
+ "root_path": "/api/v1"
+}
+```
+
+### â `root_path` FastAPI ð±
+
+ð, ð¥ ð ð« âïž ð ð ð âž ð ð `--root-path` âïž ð, ð ðª â `root_path` ð¢ ðâ ð ð FastAPI ð±:
+
+```Python hl_lines="3"
+{!../../../docs_src/behind_a_proxy/tutorial002.py!}
+```
+
+ð¶ââïž `root_path` `FastAPI` ð ð ð¶ââïž `--root-path` ð âž ð Uvicorn âïž Hypercorn.
+
+### ð `root_path`
+
+âïž ð€¯ ð ðœ (Uvicorn) ð ð« âïž ð `root_path` ð³ ð ð ð¶ââïž â«ïž ð±.
+
+âïž ð¥ ð ð¶ â®ïž ð ð¥ http://127.0.0.1:8000/app ð ð ð ð ðš:
+
+```JSON
+{
+ "message": "Hello World",
+ "root_path": "/api/v1"
+}
+```
+
+, â«ïž ð ð« â ð `http://127.0.0.1:8000/api/v1/app`.
+
+Uvicorn ð â ð³ ð Uvicorn `http://127.0.0.1:8000/app`, & â€Žïž â«ïž ð ð³ ð¯ ð® â `/api/v1` ð¡ ð ð.
+
+## ð ð³ â®ïž ð â¡ ð¡
+
+âïž ð€¯ ð ð³ â®ïž ð â¡ ð¡ ðŽ 1ïžâ£ ð ð â«ïž.
+
+ð² ð ðŒ ð¢ ð ð ð³ ð« âïž ð â¡ ð¡.
+
+ðŒ ð ð (ðµ ð â¡ ð¡), ð³ ð ð ð ð³ ð `https://myawesomeapp.com`, & â€Žïž ð¥ ð¥ ð¶ `https://myawesomeapp.com/api/v1/app` & ð ðœ (â
Uvicorn) ð ð `http://127.0.0.1:8000` ð³ (ðµ ð â¡ ð¡) ð ð Uvicorn ð â¡: `http://127.0.0.1:8000/api/v1/app`.
+
+## ð¬ ð â®ïž Traefik
+
+ð ðª ðª ð 𥌠ð â®ïž ð â¡ ð¡ âïž Traefik.
+
+⬠Traefik, â«ïž ð ð±, ð ðª â ð ð & ð â«ïž ð âªïžâ¡ïž ð¶.
+
+â€Žïž â ð `traefik.toml` â®ïž:
+
+```TOML hl_lines="3"
+[entryPoints]
+ [entryPoints.http]
+ address = ":9999"
+
+[providers]
+ [providers.file]
+ filename = "routes.toml"
+```
+
+ð ð¬ Traefik ð ð ⎠9ïžâ£9ïžâ£9ïžâ£9ïžâ£ & âïž â1ïžâ£ ð `routes.toml`.
+
+!!! tip
+ ð¥ âïž âŽ 9ïžâ£9ïžâ£9ïžâ£9ïžâ£ â©ïž ð© ðºðžð ⎠8ïžâ£0ïžâ£ ð ð ð« âïž ð â«ïž â®ïž ð¡ (`sudo`) ð.
+
+ð â ð ð ð `routes.toml`:
+
+```TOML hl_lines="5 12 20"
+[http]
+ [http.middlewares]
+
+ [http.middlewares.api-stripprefix.stripPrefix]
+ prefixes = ["/api/v1"]
+
+ [http.routers]
+
+ [http.routers.app-http]
+ entryPoints = ["http"]
+ service = "app"
+ rule = "PathPrefix(`/api/v1`)"
+ middlewares = ["api-stripprefix"]
+
+ [http.services]
+
+ [http.services.app]
+ [http.services.app.loadBalancer]
+ [[http.services.app.loadBalancer.servers]]
+ url = "http://127.0.0.1:8000"
+```
+
+ð ð ð Traefik âïž â¡ ð¡ `/api/v1`.
+
+& â€Žïž â«ïž ð â ð® ðš ð Uvicorn ðââ ð `http://127.0.0.1:8000`.
+
+ð â¶ïž Traefik:
+
+
+
+```console
+$ ./traefik --configFile=traefik.toml
+
+INFO[0000] Configuration loaded from file: /home/user/awesomeapi/traefik.toml
+```
+
+
+
+& ð â¶ïž ð ð± â®ïž Uvicorn, âïž `--root-path` ð:
+
+
+
+```console
+$ uvicorn main:app --root-path /api/v1
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+### â
ðš
+
+ð, ð¥ ð ð¶ ð â®ïž ⎠Uvicorn: http://127.0.0.1:8000/app, ð ð ð ð ðš:
+
+```JSON
+{
+ "message": "Hello World",
+ "root_path": "/api/v1"
+}
+```
+
+!!! tip
+ ð ð âïž ð ð â«ïž `http://127.0.0.1:8000/app` â«ïž ðŠ `root_path` `/api/v1`, â âªïžâ¡ïž ð `--root-path`.
+
+& ð ð ð â®ïž ⎠Traefik, â
â¡ ð¡: http://127.0.0.1:9999/api/v1/app.
+
+ð¥ ð€ ð ðš:
+
+```JSON
+{
+ "message": "Hello World",
+ "root_path": "/api/v1"
+}
+```
+
+âïž ð ð° ð â®ïž ð¡ â¡ ð ð³: `/api/v1`.
+
+âïž, ð ð¥ ð ð± ð ð ð± ð ð³, ⬠â®ïž â¡ ð¡ `/app/v1` "â" 1ïžâ£.
+
+& ⬠ðµ â¡ ð¡ (`http://127.0.0.1:8000/app`), ð Uvicorn ð, ð ð¯ _ð³_ (Traefik) ð â«ïž.
+
+ð ðŠ â ð³ (Traefik) âïž â¡ ð¡ & â ðœ (Uvicorn) âïž `root_path` âªïžâ¡ïž ð `--root-path`.
+
+### â
𩺠ð
+
+âïž ð¥ ð ð. ð¶
+
+"ð" ð ð ð± ð ð ð³ â®ïž â¡ ð¡ ð ð¥ ð¬. , ð¥ ð â, ð¥ ð ð 𩺠ð ðŠ Uvicorn ð, ðµ â¡ ð¡ ð, â«ïž ð ð« ð·, â©ïž â«ïž â ð ð ð³.
+
+ð ðª â
â«ïž http://127.0.0.1:8000/docs:
+
+
+
+âïž ð¥ ð¥ ð 𩺠ð "ð" ð âïž ð³ â®ïž ⎠`9999`, `/api/v1/docs`, â«ïž ð· â â ð¶
+
+ð ðª â
â«ïž http://127.0.0.1:9999/api/v1/docs:
+
+
+
+â¶ïžïž ð¥ ð â«ïž. ð¶ ð¶
+
+ð â©ïž FastAPI âïž ð `root_path` â ð¢ `server` ð â®ïž ð ð `root_path`.
+
+## ð ðœ
+
+!!! warning
+ ð ð
ð§ âïž ðŒ. ð ð ð¶ â«ïž.
+
+ð¢, **FastAPI** ð â `server` ð ð â®ïž ð `root_path`.
+
+âïž ð ðª ð ð ð `servers`, ðŒ ð¥ ð ð *ð* 𩺠ð ð â®ïž ð & ð ð.
+
+ð¥ ð ð¶ââïž ð ð `servers` & ð€ `root_path` (â©ïž ð ð ïž ðšââ€âðš â
ð³), **FastAPI** ð ð© "ðœ" â®ïž ð `root_path` â¶ïž ð.
+
+ðŒ:
+
+```Python hl_lines="4-7"
+{!../../../docs_src/behind_a_proxy/tutorial003.py!}
+```
+
+ð ð ð ð ð:
+
+```JSON hl_lines="5-7"
+{
+ "openapi": "3.0.2",
+ // More stuff here
+ "servers": [
+ {
+ "url": "/api/v1"
+ },
+ {
+ "url": "https://stag.example.com",
+ "description": "Staging environment"
+ },
+ {
+ "url": "https://prod.example.com",
+ "description": "Production environment"
+ }
+ ],
+ "paths": {
+ // More stuff here
+ }
+}
+```
+
+!!! tip
+ ð ð-ð ðœ â®ïž `url` ð² `/api/v1`, â âªïžâ¡ïž `root_path`.
+
+𩺠ð http://127.0.0.1:9999/api/v1/docs â«ïž ð ð ð:
+
+
+
+!!! tip
+ 𩺠ð ð ð â®ïž ðœ ð ð ð.
+
+### â ð§ ðœ âªïžâ¡ïž `root_path`
+
+ð¥ ð ð« ð **FastAPI** ð ð§ ðœ âïž `root_path`, ð ðª âïž ð¢ `root_path_in_servers=False`:
+
+```Python hl_lines="9"
+{!../../../docs_src/behind_a_proxy/tutorial004.py!}
+```
+
+& â€Žïž â«ïž ð ð« ð â«ïž ð ð.
+
+## ð ð§-ðž
+
+ð¥ ð ðª ð» ð§-ðž (ð¬ [ð§ ðž - ð»](./sub-applications.md){.internal-link target=_blank}) ⪠âïž ð³ â®ïž `root_path`, ð ðª â«ïž ð, ð ð â.
+
+FastAPI ð ð âïž `root_path` ð, â«ïž ð ð·. ð¶
diff --git a/docs/em/docs/advanced/conditional-openapi.md b/docs/em/docs/advanced/conditional-openapi.md
new file mode 100644
index 000000000..a17ba4eec
--- /dev/null
+++ b/docs/em/docs/advanced/conditional-openapi.md
@@ -0,0 +1,58 @@
+# ð² ð
+
+ð¥ ð ðª, ð ðª âïž â & ð ð¢ ð ð â âïž ð ð, & â â«ïž ð.
+
+## ð ðââ, ð, & ð©º
+
+ðµââ ð 𧟠ð©âð» ð¢ ð *ð«ð ð«* ð ð¡ ð ð ïž.
+
+ð ð« ð® ð â ðââ ð ð ïž, *â¡ ð ïž* ð ðª ðâ ð«.
+
+ð¥ ð€ ðââ â ð ð, â«ïž ð ð.
+
+ðµââ 𧟠â â«ïž ð
â ð€ â ð â®ïž ð ð ïž, & ðª â â«ïž ð
â ð â¹ â«ïž ð. â«ïž ðª ð€ ð¯ ðš ðââ ð ð.
+
+ð¥ ð ð ð ð ð ïž, ð€ ð ð ð ð ðª, ðŒ:
+
+* â ð ð âïž ð ð¬ Pydantic ð· ð ðš ðª & ðš.
+* ð ð â â & ð âïž ð.
+* ð
ðª ð¢ ð, ðŽ ð#ïžâ£.
+* ð ïž & âïž ð-ð ð ð§°, ð ðžð² & ð¥ ð€, âïž.
+* ð® ð
𧜠â ð â®ïž Oauth2ïžâ£ â ðâ ðª.
+* ...âïž.
+
+ð, ð 5ïžâ£ð âïž ð¶ ð¯ âïž ðŒ ðâ ð ð€ ðª â ð ïž ð©º ð (â
ð) âïž âïž ð ð³ âªïžâ¡ïž ð ð¢.
+
+## ð² ð âªïžâ¡ïž â & ðšð» {
+
+ð ðª ðª âïž ð Pydantic â ð ð ð ð & 𩺠â.
+
+ðŒ:
+
+```Python hl_lines="6 11"
+{!../../../docs_src/conditional_openapi/tutorial001.py!}
+```
+
+ð¥ ð¥ ð£ â `openapi_url` â®ïž ð ð¢ `"/openapi.json"`.
+
+& â€Žïž ð¥ âïž â«ïž ðâ ð `FastAPI` ð±.
+
+â€Žïž ð ðª â ð (â
ð ð©º) â ð ð¢ `OPENAPI_URL` ð ð», ð:
+
+
+
+```console
+$ OPENAPI_URL= uvicorn main:app
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+â€Žïž ð¥ ð ð¶ ð `/openapi.json`, `/docs`, âïž `/redoc` ð ð ð€ `404 Not Found` â ð:
+
+```JSON
+{
+ "detail": "Not Found"
+}
+```
diff --git a/docs/em/docs/advanced/custom-request-and-route.md b/docs/em/docs/advanced/custom-request-and-route.md
new file mode 100644
index 000000000..d6fafa2ea
--- /dev/null
+++ b/docs/em/docs/advanced/custom-request-and-route.md
@@ -0,0 +1,109 @@
+# ð ðš & APIRoute ð
+
+ðŒ, ð 5ïžâ£ð ð ð â âïž `Request` & `APIRoute` ð.
+
+ð¯, ð 5ïžâ£ð ð ð â ð ïž.
+
+ðŒ, ð¥ ð ð â âïž ð¬ ðš ðª â â«ïž ð ïž ð ðž.
+
+!!! danger
+ ð "ð§" â.
+
+ ð¥ ð â¶ïž â®ïž **FastAPI** ð ðª ð ð¶ ð ð.
+
+## âïž ðŒ
+
+âïž ðŒ ð:
+
+* ð ð«-ð» ðš ðª ð» (â
`msgpack`).
+* ð ð-ð ðš ðª.
+* ð ðš ð ðš ðª.
+
+## ð ð ðš ðª ð¢
+
+â¡ïž ð â â âïž ð `Request` ð¿ ð ð ðš.
+
+& `APIRoute` ð¿ âïž ð ð ðš ð.
+
+### â ð `GzipRequest` ð
+
+!!! tip
+ ð 𧞠ðŒ ðŠ â â«ïž ð·, ð¥ ð ðª ð ðâðŠº, ð ðª âïž ð [`GzipMiddleware`](./middleware.md#gzipmiddleware){.internal-link target=_blank}.
+
+ð¥, ð¥ â `GzipRequest` ð, â ð ð `Request.body()` ð©âð¬ ð ðª ð â ð.
+
+ð¥ ð€ ð
ââ `gzip` ð, â«ïž ð ð« ð ð ðª.
+
+ð ð, ð ð£ ð ðª ðµ ð ð âïž ð ðš.
+
+```Python hl_lines="8-15"
+{!../../../docs_src/custom_request_and_route/tutorial001.py!}
+```
+
+### â ð `GzipRoute` ð
+
+â, ð¥ â ð ð¿ `fastapi.routing.APIRoute` ð ð â âïž `GzipRequest`.
+
+ð ð°, â«ïž ð ð ð©âð¬ `APIRoute.get_route_handler()`.
+
+ð ð©âð¬ ðš ð¢. & ð ð¢ â«ïžâ ð ðš ðš & ðš ðš.
+
+ð¥ ð¥ âïž â«ïž â `GzipRequest` âªïžâ¡ïž â®ïž ðš.
+
+```Python hl_lines="18-26"
+{!../../../docs_src/custom_request_and_route/tutorial001.py!}
+```
+
+!!! note "ð¡ â¹"
+ `Request` âïž `request.scope` ð¢, ð ð `dict` â ð ð ðš.
+
+ `Request` âïž `request.receive`, ð ð¢ "ðš" ðª ðš.
+
+ `scope` `dict` & `receive` ð¢ ð¯ââïž ð ð« ð§.
+
+ & ð 2ïžâ£ ð, `scope` & `receive`, â«ïžâ ðª â ð `Request` ð.
+
+ ð¡ ð
ð `Request` â
ð 𩺠ð ðš.
+
+ðŽ ð ð¢ ðš `GzipRequest.get_route_handler` ðš ð ð `Request` `GzipRequest`.
+
+ðš ð, ð `GzipRequest` ð â ð
ð ð (ð¥ ðª) â ð¶ââïž â«ïž ð *â¡ ð ïž*.
+
+â®ïž ð, ð ð â ð.
+
+âïž â©ïž ð ð `GzipRequest.body`, ðš ðª ð ð ð ðâ â«ïž ð **FastAPI** ðâ ðª.
+
+## ð ðš ðª â ðâðŠº
+
+!!! tip
+ â ð ð â , â«ïž ð² ð â© âïž `body` ð ðâðŠº `RequestValidationError` ([ð â](../tutorial/handling-errors.md#use-the-requestvalidationerror-body){.internal-link target=_blank}).
+
+ âïž ð ðŒ â & â«ïž ðŠ â ð â®ïž ð ðŠ².
+
+ð¥ ðª âïž ð ð ð¯ ð ðš ðª â ðâðŠº.
+
+ð ð¥ ðª ðµ ðš ð `try`/`except` ð«:
+
+```Python hl_lines="13 15"
+{!../../../docs_src/custom_request_and_route/tutorial002.py!}
+```
+
+ð¥ â ð, `Request` ð ð â, ð¥ ðª â & â âïž ðš ðª ðâ ð â:
+
+```Python hl_lines="16-18"
+{!../../../docs_src/custom_request_and_route/tutorial002.py!}
+```
+
+## ð `APIRoute` ð ð»
+
+ð ðª â `route_class` ð¢ `APIRouter`:
+
+```Python hl_lines="26"
+{!../../../docs_src/custom_request_and_route/tutorial003.py!}
+```
+
+ð ðŒ, *â¡ ð ïž* ðœ `router` ð âïž ð `TimedRoute` ð, & ð âïž â `X-Response-Time` ð ðš â®ïž ð° â«ïž â ð ðš:
+
+```Python hl_lines="13-20"
+{!../../../docs_src/custom_request_and_route/tutorial003.py!}
+```
diff --git a/docs/em/docs/advanced/custom-response.md b/docs/em/docs/advanced/custom-response.md
new file mode 100644
index 000000000..cf76c01d0
--- /dev/null
+++ b/docs/em/docs/advanced/custom-response.md
@@ -0,0 +1,300 @@
+# ð ðš - ðž, ð, ð, ð
+
+ð¢, **FastAPI** ð ðš ðš âïž `JSONResponse`.
+
+ð ðª ð â«ïž ð¬ `Response` ð ð [ðš ðš ð](response-directly.md){.internal-link target=_blank}.
+
+âïž ð¥ ð ðš `Response` ð, ð ð ð« ð ð, & 𧟠ð ð« ð ð (ðŒ, ð ð¯ "ð» ð", ðºðžð ð `Content-Type` ð ð ð).
+
+âïž ð ðª ð£ `Response` ð ð ð âïž, *â¡ ð ïž ðšâðš*.
+
+ð ð ð ðš âªïžâ¡ïž ð *â¡ ð ïž ð¢* ð ð® ð ð `Response`.
+
+& ð¥ ð `Response` âïž ð» ð» ð (`application/json`), ð ðŒ â®ïž `JSONResponse` & `UJSONResponse`, ðœ ð ðš ð ð ð (& âœ) â®ïž ð Pydantic `response_model` ð ð ð£ *â¡ ð ïž ðšâðš*.
+
+!!! note
+ ð¥ ð âïž ðš ð â®ïž ð
ââ ð» ð, FastAPI ð â ð ðš âïž ð
ââ ð, â«ïž ð ð« ð ðš ð ð® ð ð ð©º.
+
+## âïž `ORJSONResponse`
+
+ðŒ, ð¥ ð â ð, ð ðª â & âïž `orjson` & â ðš `ORJSONResponse`.
+
+ð `Response` ð (ð§-ð) ð ð âïž & ð£ â«ïž *â¡ ð ïž ðšâðš*.
+
+â ðš, ðš `Response` ð ð
â© ð ð¬ ð.
+
+ð â©ïž ð¢, FastAPI ð â ð ð¬ ð & â ð â«ïž ð» â®ïž ð», âïž ð [ð» ð ð¢](../tutorial/encoder.md){.internal-link target=_blank} ð¬ ð°. ð â«ïžâ â ð ðš **â ð**, ðŒ ðœ ð·.
+
+âïž ð¥ ð ð¯ ð ð ð ð ð¬ **ð» â®ïž ð»**, ð ðª ð¶ââïž â«ïž ð ðš ð & â â ð¥ ð FastAPI ð âïž ð¶ââïž ð ðš ð ð `jsonable_encoder` â ð¶ââïž â«ïž ðš ð.
+
+```Python hl_lines="2 7"
+{!../../../docs_src/custom_response/tutorial001b.py!}
+```
+
+!!! info
+ ð¢ `response_class` ð âïž ð¬ "ð» ð" ðš.
+
+ ð ðŒ, ðºðžð ð `Content-Type` ð â `application/json`.
+
+ & â«ïž ð ð â
ð.
+
+!!! tip
+ `ORJSONResponse` â³ ðŽ ðª FastAPI, ð« ð.
+
+## ðž ðš
+
+ðš ðš â®ïž ðž ð âªïžâ¡ïž **FastAPI**, âïž `HTMLResponse`.
+
+* ð `HTMLResponse`.
+* ð¶ââïž `HTMLResponse` ð¢ `response_class` ð *â¡ ð ïž ðšâðš*.
+
+```Python hl_lines="2 7"
+{!../../../docs_src/custom_response/tutorial002.py!}
+```
+
+!!! info
+ ð¢ `response_class` ð âïž ð¬ "ð» ð" ðš.
+
+ ð ðŒ, ðºðžð ð `Content-Type` ð â `text/html`.
+
+ & â«ïž ð ð â
ð.
+
+### ðš `Response`
+
+ð [ðš ðš ð](response-directly.md){.internal-link target=_blank}, ð ðª ð ðš ð ð *â¡ ð ïž*, ð¬ â«ïž.
+
+ð ðŒ âªïžâ¡ïž ð, ð¬ `HTMLResponse`, ðª ð ð:
+
+```Python hl_lines="2 7 19"
+{!../../../docs_src/custom_response/tutorial003.py!}
+```
+
+!!! warning
+ `Response` ðš ð ð *â¡ ð ïž ð¢* ð ð« ð ð (ðŒ, `Content-Type` ð ð« ð) & ð ð« â ð§ ð ð©º.
+
+!!! info
+ âïž, â `Content-Type` ð, ð ð, âïž, ð ð âªïžâ¡ïž `Response` ð ð ðš.
+
+### ð ð & ð `Response`
+
+ð¥ ð ð ð ðš âªïžâ¡ïž ð ð¢ âïž ð ð° ð "ð» ð" ð, ð ðª âïž `response_class` ð¢ & ðš `Response` ð.
+
+`response_class` ð â€Žïž âïž ðŽ ð ð *â¡ ð ïž*, âïž ð `Response` ð âïž.
+
+#### ðš `HTMLResponse` ð
+
+ðŒ, â«ïž ðª ð³ ð:
+
+```Python hl_lines="7 21 23"
+{!../../../docs_src/custom_response/tutorial004.py!}
+```
+
+ð ðŒ, ð¢ `generate_html_response()` ⪠ð & ðš `Response` â©ïž ð¬ ðž `str`.
+
+ð¬ ð ð€ `generate_html_response()`, ð ⪠ð¬ `Response` ð ð ð ð¢ **FastAPI** ð.
+
+âïž ð ð¶ââïž `HTMLResponse` `response_class` ðââïž, **FastAPI** ð ð â ð â«ïž ð & ð 𩺠ðž â®ïž `text/html`:
+
+
+
+## ðª ðš
+
+ð¥ ðª ðš.
+
+âïž ð€¯ ð ð ðª âïž `Response` ðš ð³ ð, âïž â ð ð§-ð.
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.responses import HTMLResponse`.
+
+ **FastAPI** ð ð `starlette.responses` `fastapi.responses` ðª ð, ð©âð». âïž ð
ðª ðš ð ð âªïžâ¡ïž ð.
+
+### `Response`
+
+ð `Response` ð, ð ð ðš ð âªïžâ¡ïž â«ïž.
+
+ð ðª ðš â«ïž ð.
+
+â«ïž ð« ð ð¢:
+
+* `content` - `str` âïž `bytes`.
+* `status_code` - `int` ðºðžð ð ð.
+* `headers` - `dict` ð».
+* `media_type` - `str` ð€ ð» ð. ð€¶ â. `"text/html"`.
+
+FastAPI (ð€ ð) ð ð ð ð-ð ð. â«ïž ð ð ð-ð ð, âïž ð = & ð = â ð.
+
+```Python hl_lines="1 18"
+{!../../../docs_src/response_directly/tutorial002.py!}
+```
+
+### `HTMLResponse`
+
+â â âïž ð¢ & ðš ðž ðš, ð â ð.
+
+### `PlainTextResponse`
+
+â â âïž ð¢ & ðš â
â ðš.
+
+```Python hl_lines="2 7 9"
+{!../../../docs_src/custom_response/tutorial005.py!}
+```
+
+### `JSONResponse`
+
+â ðœ & ðš `application/json` ð ðš.
+
+ð ð¢ ðš âïž **FastAPI**, ð â ð.
+
+### `ORJSONResponse`
+
+â© ð ð» ðš âïž `orjson`, ð â ð.
+
+### `UJSONResponse`
+
+ð ð» ðš âïž `ujson`.
+
+!!! warning
+ `ujson` ð ð ð ð ð-ð ïž â â«ïž ðµ ð-ðŒ.
+
+```Python hl_lines="2 7"
+{!../../../docs_src/custom_response/tutorial001.py!}
+```
+
+!!! tip
+ â«ïž ðª ð `ORJSONResponse` ðª â© ð.
+
+### `RedirectResponse`
+
+ðš ðºðžð â. âïž 3ïžâ£0ïžâ£7ïžâ£ ð ð (ð â) ð¢.
+
+ð ðª ðš `RedirectResponse` ð:
+
+```Python hl_lines="2 9"
+{!../../../docs_src/custom_response/tutorial006.py!}
+```
+
+---
+
+âïž ð ðª âïž â«ïž `response_class` ð¢:
+
+
+```Python hl_lines="2 7 9"
+{!../../../docs_src/custom_response/tutorial006b.py!}
+```
+
+ð¥ ð ð, â€Žïž ð ðª ðš ð ð âªïžâ¡ïž ð *â¡ ð ïž* ð¢.
+
+ð ðŒ, `status_code` âïž ð ð¢ 1ïžâ£ `RedirectResponse`, â `307`.
+
+---
+
+ð ðª âïž `status_code` ð¢ ð â®ïž `response_class` ð¢:
+
+```Python hl_lines="2 7 9"
+{!../../../docs_src/custom_response/tutorial006c.py!}
+```
+
+### `StreamingResponse`
+
+â ð ð âïž ð ð/ð» & ð ðš ðª.
+
+```Python hl_lines="2 14"
+{!../../../docs_src/custom_response/tutorial007.py!}
+```
+
+#### âïž `StreamingResponse` â®ïž ð-ð ð
+
+ð¥ ð âïž ð-ð ð (â
ð ðš `open()`), ð ðª â ð ð¢ ð ð€ ð ð-ð ð.
+
+ð ð, ð ð« âïž â â«ïž ð ð¥ ðŸ, & ð ðª ð¶ââïž ð ð ð¢ `StreamingResponse`, & ðš â«ïž.
+
+ð ð ð ð ð â®ïž â ðŸ, ð¹ ð, & ð.
+
+```{ .python .annotate hl_lines="2 10-12 14" }
+{!../../../docs_src/custom_response/tutorial008.py!}
+```
+
+1ïžâ£. ð ð ð¢. â«ïž "ð ð¢" â©ïž â«ïž ð `yield` ð ð.
+2ïžâ£. âïž `with` ð«, ð¥ â ð ð ð-ð ð ðª â®ïž ð ð¢ ðš. , â®ïž â«ïž ð ðš ðš.
+3ïžâ£. ð `yield from` ð¬ ð¢ ð ð€ ð ð ð `file_like`. & ‎ïž, ð ð ð, ðŸ ð ð ð âªïžâ¡ïž ð ð ð¢.
+
+ , â«ïž ð ð¢ ð ðš "ð" ð· ð³ ð ð.
+
+ ðš â«ïž ð ð, ð¥ ðª ð® â«ïž `with` ð«, & ð ð, ð ð â«ïž ðª â®ïž ð.
+
+!!! tip
+ ð ð ð¥ ð¥ âïž ð© `open()` ð ð« ðâðŠº `async` & `await`, ð¥ ð£ â¡ ð ïž â®ïž ð `def`.
+
+### `FileResponse`
+
+ð ð ð ðš.
+
+â ð â â ð ð ð ðš ð:
+
+* `path` - ð ð ð.
+* `headers` - ð ð ð ð, ð.
+* `media_type` - ð» ð€ ð» ð. ð¥ ð¢, ð âïž â¡ ð âïž ð ð» ð.
+* `filename` - ð¥ â, ð ð ð ðš `Content-Disposition`.
+
+ð ðš ð ð â `Content-Length`, `Last-Modified` & `ETag` ð.
+
+```Python hl_lines="2 10"
+{!../../../docs_src/custom_response/tutorial009.py!}
+```
+
+ð ðª âïž `response_class` ð¢:
+
+```Python hl_lines="2 8 10"
+{!../../../docs_src/custom_response/tutorial009b.py!}
+```
+
+ð ðŒ, ð ðª ðš ð â¡ ð âªïžâ¡ïž ð *â¡ ð ïž* ð¢.
+
+## ð ðš ð
+
+ð ðª â ð ð ð ðš ð, ð âªïžâ¡ïž `Response` & âïž â«ïž.
+
+ðŒ, â¡ïž ð¬ ð ð ð âïž `orjson`, âïž â®ïž ð â ð« âïž ð `ORJSONResponse` ð.
+
+â¡ïž ð¬ ð ð â«ïž ðš ð & ð ð», ð ð âïž Orjson ð `orjson.OPT_INDENT_2`.
+
+ð ðª â `CustomORJSONResponse`. ð ð ð âïž â `Response.render(content)` ð©âð¬ ð ðš ð `bytes`:
+
+```Python hl_lines="9-14 17"
+{!../../../docs_src/custom_response/tutorial009c.py!}
+```
+
+ð â©ïž ð¬:
+
+```json
+{"message": "Hello World"}
+```
+
+...ð ðš ð ðš:
+
+```json
+{
+ "message": "Hello World"
+}
+```
+
+âïž, ð ð ð² ð ð
ð ð â ð ð ð â ð». ð¶
+
+## ð¢ ðš ð
+
+ðâ ð **FastAPI** ð ð âïž `APIRouter` ð ðª â â ðš ð âïž ð¢.
+
+ð¢ ð ð¬ ð `default_response_class`.
+
+ðŒ ð, **FastAPI** ð âïž `ORJSONResponse` ð¢, ð *â¡ ð ïž*, â©ïž `JSONResponse`.
+
+```Python hl_lines="2 4"
+{!../../../docs_src/custom_response/tutorial010.py!}
+```
+
+!!! tip
+ ð ðª ð `response_class` *â¡ ð ïž* â.
+
+## ð ð§Ÿ
+
+ð ðª ð£ ð» ð & ð ð â¹ ð âïž `responses`: [ð ðš ð](additional-responses.md){.internal-link target=_blank}.
diff --git a/docs/em/docs/advanced/dataclasses.md b/docs/em/docs/advanced/dataclasses.md
new file mode 100644
index 000000000..a4c287106
--- /dev/null
+++ b/docs/em/docs/advanced/dataclasses.md
@@ -0,0 +1,98 @@
+# âïž ð»
+
+FastAPI ð ð ð **Pydantic**, & ð€ âïž ð ð â âïž Pydantic ð· ð£ ðš & ðš.
+
+âïž FastAPI ðâðŠº âïž `dataclasses` ð ð:
+
+```Python hl_lines="1 7-12 19-20"
+{!../../../docs_src/dataclasses/tutorial001.py!}
+```
+
+ð ðâðŠº ð **Pydantic**, â«ïž âïž ð ðâðŠº `dataclasses`.
+
+, â®ïž ð ð ð ð« âïž Pydantic ð¯, FastAPI âïž Pydantic ð ð ð© ð» Pydantic ð ð ð».
+
+& âïž, â«ïž ðâðŠº ð:
+
+* ðœ ð¬
+* ðœ ð ïž
+* ðœ ð§Ÿ, âïž.
+
+ð ð· ð ð â®ïž Pydantic ð·. & â«ïž ð€ ð ð ð ð, âïž Pydantic.
+
+!!! info
+ âïž ð€¯ ð ð» ðª ð« ð Pydantic ð· ðª.
+
+ , ð 5ïžâ£ð ðª âïž Pydantic ð·.
+
+ âïž ð¥ ð âïž ð ð» ð€¥ ð€, ð ð ð± âïž ð« ðïž ðž ð ïž âïž FastAPI. ð¶
+
+## ð» `response_model`
+
+ð ðª âïž `dataclasses` `response_model` ð¢:
+
+```Python hl_lines="1 7-13 19"
+{!../../../docs_src/dataclasses/tutorial002.py!}
+```
+
+ð» ð ð ð Pydantic ð».
+
+ð ð, ð® ð ð ðŠ ð ð ïž ð©º ð©âð» ð¢:
+
+
+
+## ð» ð ð ð
+
+ð ðª ð `dataclasses` â®ïž ð ð â â ðŠ ð ð.
+
+ðŒ, ð ðª âïž âïž Pydantic ⬠`dataclasses`. ðŒ, ð¥ ð âïž â â®ïž ð ð ð ïž ð§Ÿ.
+
+ð ðŒ, ð ðª ð¯ ð± ð© `dataclasses` â®ïž `pydantic.dataclasses`, â ð§-â»:
+
+```{ .python .annotate hl_lines="1 5 8-11 14-17 23-25 28" }
+{!../../../docs_src/dataclasses/tutorial003.py!}
+```
+
+1ïžâ£. ð¥ ð `field` âªïžâ¡ïž ð© `dataclasses`.
+
+2ïžâ£. `pydantic.dataclasses` ð§-â» `dataclasses`.
+
+3ïžâ£. `Author` ð» ð ð `Item` ð».
+
+4ïžâ£. `Author` ð» âïž `response_model` ð¢.
+
+5ïžâ£. ð ðª âïž ð ð© ð â â®ïž ð» ðš ðª.
+
+ ð ðŒ, â«ïž ð `Item` ð».
+
+6ïžâ£. ð¥ ð¥ ð¬ ð ð ð `items` â ð ð».
+
+ FastAPI ð¯ â ðœ ð».
+
+7ïžâ£. ð¥ `response_model` âïž ð â ð `Author` ð».
+
+ ð, ð ðª ð `dataclasses` â®ïž ð© ð â.
+
+8ïžâ£. ð ð ð *â¡ ð ïž ð¢* âïž ð¥ `def` â©ïž `async def`.
+
+ ð§, FastAPI ð ðª ð `def` & `async def` ðª.
+
+ ð¥ ð ðª âïž ð ðâ âïž â, â
ð
ð _"ð â" _ 𩺠ð `async` & `await`.
+
+9ïžâ£. ð *â¡ ð ïž ð¢* ð« ð¬ ð» (ð â«ïž ðª), âïž ð ð â®ïž ð ðœ.
+
+ FastAPI ð âïž `response_model` ð¢ (ð ð ð») ð ðš.
+
+ð ðª ð `dataclasses` â®ïž ð ð â ð ð ð ðš ð ð ð.
+
+â
-ð â ðââ ð ð ð
ð¯ â¹.
+
+## ð¡ ð
+
+ð ðª ð `dataclasses` â®ïž ð Pydantic ð·, ð âªïžâ¡ïž ð«, ð ð« ð ð ð·, âïž.
+
+ð¡ ð
, â
Pydantic 𩺠ð ð».
+
+## â¬
+
+ð ðª â©ïž FastAPI ⬠`0.67.0`. ð¶
diff --git a/docs/em/docs/advanced/events.md b/docs/em/docs/advanced/events.md
new file mode 100644
index 000000000..671e81b18
--- /dev/null
+++ b/docs/em/docs/advanced/events.md
@@ -0,0 +1,160 @@
+# ð ð
+
+ð ðª ð¬ â (ð) ð ð ð ïž â ðž **â¶ïž ð**. ð â ð ð ð ð ð ïž **ð**, **â** ðž **â¶ïž ðš ðš**.
+
+ð ð, ð ðª ð¬ â (ð) ð ð ð ïž ðâ ðž **ð€« ðœ**. ð ðŒ, ð ð ð ð ïž **ð**, **â®ïž** âïž ðµ ð² **ð ðš**.
+
+â©ïž ð ð ð ïž â ðž **â¶ïž** â ðš, & â¶ïžïž â®ïž â«ïž **ð** ð ðš, â«ïž ð ð ðž **ð** (ð€ "ð" ð â ð¥ ð¶).
+
+ð ðª ð¶ â â ð **â¹** ð ð ðª âïž ð ð±, & ð **ð°** ðª ðš, &/âïž ð ð ðª **𧹠ð** â®ïž. ðŒ, ðœ ð ð±, âïž ð ð ð° ð« ð·.
+
+## âïž ðŒ
+
+â¡ïž â¶ïž â®ïž ðŒ **âïž ðŒ** & â€Žïž ð â â â«ïž â®ïž ð.
+
+â¡ïž ð ð ð âïž **ð° ð« ð·** ð ð ð âïž ðµ ðš. ð¶
+
+ð ð· ð ðª ðš,, â«ïž ð« 1ïžâ£ ð· ð ðš, âïž 1ïžâ£ ð ð©âð» âïž ð³ ð.
+
+â¡ïž ð ð ð ð· ðª **â ð°**, â©ïž â«ïž âïž â ð **ðœ âªïžâ¡ïž ðŸ**. ð ð« ð â«ïž ð ðš.
+
+ð ðª ð â«ïž ð ð ð¹/ð, âïž ð ð â ð â«ïž ð **ð ð·** ð¥ ð ðââ ð
ð§ ð¯, â€Žïž ð ð¯ ð **ð** â©ïž â«ïž ð âïž â ð· ð â ðââ ðª ð ð¬ ð ð.
+
+ð â«ïžâ ð¥ ð â, â¡ïž ð ð· â ðš ðµ, âïž ðŽ â¶ïžïž â ðž â¶ïž ðš ðš, ð« ⪠ð â ð.
+
+## ð
+
+ð ðª ð¬ ð *ðŽ* & *ð€«* â âïž `lifespan` ð¢ `FastAPI` ð±, & "ð ðšâðŒ" (ð€ ð ðŠ ð â«ïžâ ð ð¥).
+
+â¡ïž â¶ïž â®ïž ðŒ & â€Žïž ð â«ïž â¹.
+
+ð¥ â ð ð¢ `lifespan()` â®ïž `yield` ð ð:
+
+```Python hl_lines="16 19"
+{!../../../docs_src/events/tutorial003.py!}
+```
+
+ð¥ ð¥ â ð¥ *ðŽ* ð ïž ð ð· ð® (â) ð· ð¢ ð â®ïž ð° ð« ð· â `yield`. ð ð ð ð ïž **â** ðž **â¶ïž â ðš**, â®ïž *ðŽ*.
+
+& ‎ïž, â¶ïžïž â®ïž `yield`, ð¥ ð ð·. ð ð ð ð ïž **â®ïž** ðž **ð ð ðš**, â¶ïžïž â *ð€«*. ð ðª, ðŒ, ð â¹ ð ðŸ âïž ð».
+
+!!! tip
+ `shutdown` ð ðš ðâ ð **âïž** ðž.
+
+ ð² ð ðª â¶ïž ð â¬, âïž ð ð€ ð¡ ð â«ïž. ð€·
+
+### ð ð¢
+
+ð¥ ð ð, ð ð¥ â ð ð¢ â®ïž `yield`. ð ð¶ ð ð â®ïž `yield`.
+
+```Python hl_lines="14-19"
+{!../../../docs_src/events/tutorial003.py!}
+```
+
+ð¥ ð ð¢, â `yield`, ð ð ïž **â** ðž â¶ïž.
+
+& ð â®ïž `yield` ð ð ïž **â®ïž** ðž âïž ð.
+
+### ð ð ðšâðŒ
+
+ð¥ ð â
, ð¢ ð â®ïž `@asynccontextmanager`.
+
+ð ð ð¢ ð ð³ ð€ "**ð ð ðšâðŒ**".
+
+```Python hl_lines="1 13"
+{!../../../docs_src/events/tutorial003.py!}
+```
+
+**ð ðšâðŒ** ð ð³ ð ð ðª âïž `with` ð, ðŒ, `open()` ðª âïž ð ðšâðŒ:
+
+```Python
+with open("file.txt") as file:
+ file.read()
+```
+
+â®ïž ⬠ð, ð€ **ð ð ðšâðŒ**. ð ð âïž â«ïž â®ïž `async with`:
+
+```Python
+async with lifespan(app):
+ await do_stuff()
+```
+
+ðâ ð â ð ðšâðŒ âïž ð ð ðšâðŒ ð ð, â«ïžâ â«ïž ðš ð, â ð¬ `with` ð«, â«ïž ð ð ïž ð â `yield`, & â®ïž â `with` ð«, â«ïž ð ð ïž ð â®ïž `yield`.
+
+ð ð ðŒ ð, ð¥ ð« âïž â«ïž ð, âïž ð¥ ð¶ââïž â«ïž FastAPI â«ïž âïž â«ïž.
+
+`lifespan` ð¢ `FastAPI` ð± â **ð ð ðšâðŒ**, ð¥ ðª ð¶ââïž ð ð `lifespan` ð ð ðšâðŒ â«ïž.
+
+```Python hl_lines="22"
+{!../../../docs_src/events/tutorial003.py!}
+```
+
+## ð ð (ð¢)
+
+!!! warning
+ ð ð ðµ *ðŽ* & *ð€«* âïž `lifespan` ð¢ `FastAPI` ð± ð¬ ð.
+
+ ð ðª ð² ð¶ ð ð.
+
+ð€ ð ð ð¬ ð â ð ïž â®ïž *ðŽ* & â®ïž *ð€«*.
+
+ð ðª ð¬ ð ðâðŠº (ð¢) ð ðª ð ïž â ðž â¶ïž ð, âïž ðâ ðž ð€« ðœ.
+
+ð« ð¢ ðª ð£ â®ïž `async def` âïž ð `def`.
+
+### `startup` ð
+
+ð® ð¢ ð ð ð â ðž â¶ïž, ð£ â«ïž â®ïž ð `"startup"`:
+
+```Python hl_lines="8"
+{!../../../docs_src/events/tutorial001.py!}
+```
+
+ð ðŒ, `startup` ð ðâðŠº ð¢ ð ð¢ ð¬ "ðœ" ( `dict`) â®ïž ð².
+
+ð ðª ð® ð
ð 1ïžâ£ ð ðâðŠº ð¢.
+
+& ð ðž ð ð« â¶ïž ðš ðš â ð `startup` ð ðâðŠº âïž ð.
+
+### `shutdown` ð
+
+ð® ð¢ ð ð ð ðâ ðž ð€« ðœ, ð£ â«ïž â®ïž ð `"shutdown"`:
+
+```Python hl_lines="6"
+{!../../../docs_src/events/tutorial002.py!}
+```
+
+ð¥, `shutdown` ð ðâðŠº ð¢ ð â â âž `"Application shutdown"` ð `log.txt`.
+
+!!! info
+ `open()` ð¢, `mode="a"` â "ð»",, âž ð ð® â®ïž â«ïžâ ð ð ð, ðµ ð â®ïž ð.
+
+!!! tip
+ ð ð ð ðŒ ð¥ âïž ð© ð `open()` ð¢ ð ð â®ïž ð.
+
+ , â«ïž ð ð€/ð
Ÿ (ð¢/ð¢), ð ð "â" ð â ðŸ.
+
+ âïž `open()` ð« âïž `async` & `await`.
+
+ , ð¥ ð£ ð ðâðŠº ð¢ â®ïž ð© `def` â©ïž `async def`.
+
+!!! info
+ ð ðª â ð
ð ð« ð ðâðŠº ð ð' ð©º.
+
+### `startup` & `shutdown` ð¯ââïž
+
+ð€ â ð€ ð â ð *ðŽ* & *ð€«* ð, ð ðª ð â¶ïž ð³ & â€Žïž ð â«ïž, ð â¹ & â€Žïž ð â«ïž, âïž.
+
+ðš ð ðœ ð¢ ð ð« ð° â âïž ð¢ ð¯ââïž ð
â ð ð ðª ðª ð² ð ð¢ âïž ð ð±.
+
+â©ïž ð, â«ïž ð ð â©ïž âïž `lifespan` ð¬ ð.
+
+## ð¡ â¹
+
+ð¡ â¹ ð ð€. ð¶
+
+ð, ð« ð¡ ð§, ð ð ð ð ïž, & â«ïž ð¬ ð ð€ `startup` & `shutdown`.
+
+## ð§ ðž
+
+ð¶ âïž ð€¯ ð ð« ð ð (ðŽ & ð€«) ð ðŽ ð ïž ð ðž, ð« [ð§ ðž - ð»](./sub-applications.md){.internal-link target=_blank}.
diff --git a/docs/em/docs/advanced/extending-openapi.md b/docs/em/docs/advanced/extending-openapi.md
new file mode 100644
index 000000000..496a8d9de
--- /dev/null
+++ b/docs/em/docs/advanced/extending-openapi.md
@@ -0,0 +1,314 @@
+# â ð
+
+!!! warning
+ ð ð ð§ â. ð ð² ðª ð¶ â«ïž.
+
+ ð¥ ð ð ð° - ð©âð» ðŠ®, ð ðª ð² ð¶ ð ð.
+
+ ð¥ ð ⪠ð ð ð ðª ð ð ð ð, ð£ ð.
+
+ð€ ðŒ ðâ ð ðª ðª ð ð ð ð.
+
+ð ð ð ð ð â.
+
+## ð ð ïž
+
+ð (ð¢) ð ïž, â©.
+
+`FastAPI` ðž (ð) âïž `.openapi()` ð©âð¬ ð ð ðš ð ð.
+
+ð ðž ð ð, *â¡ ð ïž* `/openapi.json` (âïž â«ïžâ ð â ð `openapi_url`) ®.
+
+â«ïž ðš ð» ðš â®ïž ð ðž `.openapi()` ð©âð¬.
+
+ð¢, â«ïžâ ð©âð¬ `.openapi()` ðš â
ð `.openapi_schema` ð ð¥ â«ïž âïž ð & ðš ð«.
+
+ð¥ â«ïž ð«, â«ïž ð ð« âïž ð ð¢ `fastapi.openapi.utils.get_openapi`.
+
+& ð ð¢ `get_openapi()` ðš ð¢:
+
+* `title`: ð ð, ðŠ ð©º.
+* `version`: ⬠ð ð ïž, â
`2.5.0`.
+* `openapi_version`: ⬠ð ð§ âïž. ð¢, âª: `3.0.2`.
+* `description`: ð ð ð ïž.
+* `routes`: ð ð£, ð« ð ® *â¡ ð ïž*. ð« â âªïžâ¡ïž `app.routes`.
+
+## ð ð¢
+
+âïž â¹ ð, ð ðª âïž ð ð ð¢ ð ð ð & ð ð ð ð ð ðª.
+
+ðŒ, â¡ïž ð® ð ð â ð ð ð±.
+
+### ð **FastAPI**
+
+ð¥, â ð ð **FastAPI** ðž ð:
+
+```Python hl_lines="1 4 7-9"
+{!../../../docs_src/extending_openapi/tutorial001.py!}
+```
+
+### ð ð ð
+
+‎ïž, âïž ð ð ð¢ ð ð ð, ð `custom_openapi()` ð¢:
+
+```Python hl_lines="2 15-20"
+{!../../../docs_src/extending_openapi/tutorial001.py!}
+```
+
+### ð ð ð
+
+ð ð ðª ð® ð â, â ð `x-logo` `info` "ð" ð ð:
+
+```Python hl_lines="21-23"
+{!../../../docs_src/extending_openapi/tutorial001.py!}
+```
+
+### ðŸ ð ð
+
+ð ðª âïž ð `.openapi_schema` "ðŸ", ðª ð ð ð.
+
+ð ð, ð ðž ð ð« âïž ð ð ð ð° ð©âð» ð ð ð ïž ð©º.
+
+â«ïž ð ð ðŽ ð, & â€Žïž ð ðŸ ð ð âïž â ðš.
+
+```Python hl_lines="13-14 24-25"
+{!../../../docs_src/extending_openapi/tutorial001.py!}
+```
+
+### ð ð©âð¬
+
+ð ð ðª â `.openapi()` ð©âð¬ â®ïž ð ð ð¢.
+
+```Python hl_lines="28"
+{!../../../docs_src/extending_openapi/tutorial001.py!}
+```
+
+### â
â«ïž
+
+ð ð ð¶ http://127.0.0.1:8000/redoc ð ð ð ð ð âïž ð ð ð± (ð ðŒ, **FastAPI**'â ð±):
+
+
+
+## ð€-ðž ðž & ð ð©º
+
+ð ïž ð©º âïž **ðŠ ð** & **ð**, & ð ð ðª ðž & ð ð.
+
+ð¢, ð ð ðŠ âªïžâ¡ïž ð².
+
+âïž â«ïž ðª ð â«ïž, ð ðª â ð¯ ð², âïž ðŠ ð ð.
+
+ð â , ðŒ, ð¥ ð ðª ð ð± ð§ ð· ⪠ð±, ðµ ð ðž ð, âïž ð§ð¿ ðž.
+
+ð¥ ð ð ð â ðŠ ð ð ð, ð FastAPI ð±, & ð 𩺠âïž ð«.
+
+### ð ð ð
+
+â¡ïž ð¬ ð ð ð ð ð ð ð:
+
+```
+.
+âââ app
+â âââ __init__.py
+â âââ main.py
+```
+
+ð â ð ðª ð ð» ð.
+
+ð ð ð ð ðª ð ð ð:
+
+```
+.
+âââ app
+â  âââ __init__.py
+â  âââ main.py
+âââ static/
+```
+
+### ⬠ð
+
+⬠ð» ð ðª 𩺠& ð® ð« ð ð `static/` ð.
+
+ð ðª ð² â¶ïžïž-ð ð ð & ð ð ð `Save link as...`.
+
+**ðŠ ð** âïž ð:
+
+* `swagger-ui-bundle.js`
+* `swagger-ui.css`
+
+& **ð** âïž ð:
+
+* `redoc.standalone.js`
+
+â®ïž ð, ð ð ð ðª ð ð:
+
+```
+.
+âââ app
+â  âââ __init__.py
+â  âââ main.py
+âââ static
+ âââ redoc.standalone.js
+ âââ swagger-ui-bundle.js
+ âââ swagger-ui.css
+```
+
+### ðŠ ð» ð
+
+* ð `StaticFiles`.
+* "ð»" `StaticFiles()` ð ð¯ â¡.
+
+```Python hl_lines="7 11"
+{!../../../docs_src/extending_openapi/tutorial002.py!}
+```
+
+### ð¯ ð» ð
+
+â¶ïž ð ðž & ð¶ http://127.0.0.1:8000/static/redoc.standalone.js.
+
+ð ð ð ð¶ ð ðž ð **ð**.
+
+â«ïž ðª â¶ïž â®ïž ð³ ð:
+
+```JavaScript
+/*!
+ * ReDoc - OpenAPI/Swagger-generated API Reference Documentation
+ * -------------------------------------------------------------
+ * Version: "2.0.0-rc.18"
+ * Repo: https://github.com/Redocly/redoc
+ */
+!function(e,t){"object"==typeof exports&&"object"==typeof m
+
+...
+```
+
+ð â ð ð ðââ ðª ðŠ ð» ð âªïžâ¡ïž ð ð±, & ð ð ð¥ ð» ð 𩺠â ð¥.
+
+ð ð¥ ðª ð ð± âïž ð ð» ð ð©º.
+
+### â ð§ ð©º
+
+ð¥ ð â ð§ ð©º, ð âïž ð² ð¢.
+
+â ð«, â ð« ð `None` ðâ ð ð `FastAPI` ð±:
+
+```Python hl_lines="9"
+{!../../../docs_src/extending_openapi/tutorial002.py!}
+```
+
+### ð ð ð©º
+
+ð ð ðª â *â¡ ð ïž* ð ð©º.
+
+ð ðª ð€-âïž FastAPI ð ð¢ â ðž ð ð©º, & ð¶ââïž ð« ðª â:
+
+* `openapi_url`: ð ðâ ðž ð 𩺠ðª ð€ ð ð ð ð ïž. ð ðª âïž ð¥ ð¢ `app.openapi_url`.
+* `title`: ð ð ð ïž.
+* `oauth2_redirect_url`: ð ðª âïž `app.swagger_ui_oauth2_redirect_url` ð¥ âïž ð¢.
+* `swagger_js_url`: ð ðâ ðž ð ðŠ ð 𩺠ðª ð€ **ðž** ð. ð 1ïžâ£ ð ð ð ð± ð ðŠ.
+* `swagger_css_url`: ð ðâ ðž ð ðŠ ð 𩺠ðª ð€ **ð** ð. ð 1ïžâ£ ð ð ð ð± ð ðŠ.
+
+& â¡ ð...
+
+```Python hl_lines="2-6 14-22 25-27 30-36"
+{!../../../docs_src/extending_openapi/tutorial002.py!}
+```
+
+!!! tip
+ *â¡ ð ïž* `swagger_ui_redirect` ð©âð ðâ ð âïž Oauth2ïžâ£.
+
+ ð¥ ð ð ïž ð ð ïž â®ïž Oauth2ïžâ£ ðâðŠº, ð ð ðª ð & ð ð ð ïž ð©º â®ïž ð ð. & ð â®ïž â«ïž âïž ð° Oauth2ïžâ£ ð€.
+
+ ðŠ ð ð ðµ â«ïž â
ð ð, âïž â«ïž ðª ð "â" ð©âð.
+
+### â *â¡ ð ïž* ð¯ â«ïž
+
+ð, ðª ð¯ ð ð ð·, â *â¡ ð ïž*:
+
+```Python hl_lines="39-41"
+{!../../../docs_src/extending_openapi/tutorial002.py!}
+```
+
+### ð¯ â«ïž
+
+ð, ð ð ðª ð ð ð», ð¶ ð 𩺠http://127.0.0.1:8000/docs, & ð ð.
+
+& ðµ ðž, ð ð ðª ð 𩺠ð ð ïž & ð â®ïž â«ïž.
+
+## ð ïž ðŠ ð
+
+ð ðª ð â ðŠ ð ð¢.
+
+ð ð«, ð¶ââïž `swagger_ui_parameters` â ðâ ð `FastAPI()` ð± ð âïž `get_swagger_ui_html()` ð¢.
+
+`swagger_ui_parameters` ðš ð â®ïž ð³ ð¶ââïž ðŠ ð ð.
+
+FastAPI ð ð³ **ð»** â ð« ð â®ïž ðž, ð â«ïžâ ðŠ ð ðª.
+
+### â â ðŠ
+
+ðŒ, ð ðª â â ðŠ ðŠ ð.
+
+ðµ ð â, â ðŠ ð ïž ð¢:
+
+
+
+âïž ð ðª â â«ïž â `syntaxHighlight` `False`:
+
+```Python hl_lines="3"
+{!../../../docs_src/extending_openapi/tutorial003.py!}
+```
+
+...& â€Žïž ðŠ ð ð ð« ðŠ â ðŠ ð«ð:
+
+
+
+### ð ð¢
+
+ð ð ð ðª â â ðŠ ð¢ â®ïž ð `"syntaxHighlight.theme"` (ð ð â«ïž âïž â£ ð):
+
+```Python hl_lines="3"
+{!../../../docs_src/extending_openapi/tutorial004.py!}
+```
+
+ð ð³ ð ð â ðŠ ðš ð¢:
+
+
+
+### ð ð¢ ðŠ ð ð¢
+
+FastAPI ð ð¢ ð³ ð¢ â ð
âïž ðŒ.
+
+â«ïž ð ð« ð¢ ð³:
+
+```Python
+{!../../../fastapi/openapi/docs.py[ln:7-13]!}
+```
+
+ð ðª ð ð ð« â ð ð² â `swagger_ui_parameters`.
+
+ðŒ, â `deepLinking` ð ðª ð¶ââïž ð â `swagger_ui_parameters`:
+
+```Python hl_lines="3"
+{!../../../docs_src/extending_openapi/tutorial005.py!}
+```
+
+### ð ðŠ ð ð¢
+
+ð ð ð ðª ð³ ð ðª âïž, â ð 𩺠ðŠ ð ð¢.
+
+### ðž-ðŽ â
+
+ðŠ ð â ð ð³ **ðž-ðŽ** ð (ðŒ, ðž ð¢).
+
+FastAPI ð ð« ðž-ðŽ `presets` â:
+
+```JavaScript
+presets: [
+ SwaggerUIBundle.presets.apis,
+ SwaggerUIBundle.SwaggerUIStandalonePreset
+]
+```
+
+ð« **ðž** ð, ð« ð», ð ðª ð« ð¶ââïž ð« âªïžâ¡ïž ð ð ð.
+
+ð¥ ð ðª âïž ðž-ðŽ ð³ ð ð, ð ðª âïž 1ïžâ£ ð©âð¬ ð. ð ð ðŠ ð *â¡ ð ïž* & â â ð ðž ð ðª.
diff --git a/docs/em/docs/advanced/generate-clients.md b/docs/em/docs/advanced/generate-clients.md
new file mode 100644
index 000000000..30560c8c6
--- /dev/null
+++ b/docs/em/docs/advanced/generate-clients.md
@@ -0,0 +1,267 @@
+# ð ð©âð»
+
+**FastAPI** âïž ð ð ð§, ð ð€ ð§ ð â®ïž ð ð§°, ð ð§ ð ïž ð©º (ð ðŠ ð).
+
+1ïžâ£ ð¯ ð ð ð« ð¯ â ð ð ðª **ð ð©âð»** (ð£ ð€ **ð±** ) ð ð ïž, ð ð **ð ïž ðªðž**.
+
+## ð ð©âð» ð
+
+ð€ ð 𧰠ð ð©âð» âªïžâ¡ïž **ð**.
+
+â 𧰠ð ð.
+
+ð¥ ð ð **ðž**, ð¶ ð ð ð-ð-ðŠðª.
+
+## ð ð ðž ð©âð»
+
+â¡ïž â¶ïž â®ïž ð
FastAPI ðž:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9-11 14-15 18 19 23"
+ {!> ../../../docs_src/generate_clients/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="7-9 12-13 16-17 21"
+ {!> ../../../docs_src/generate_clients/tutorial001_py39.py!}
+ ```
+
+ð ð *â¡ ð ïž* ð¬ ð· ð« âïž ðš ð & ðš ð, âïž ð· `Item` & `ResponseMessage`.
+
+### ð ïž ð©º
+
+ð¥ ð ð¶ ð ïž ð©º, ð ð ð ð â«ïž âïž **ð** ð ðš ðš & ðš ðš:
+
+
+
+ð ðª ð ð ð â©ïž ð« ð£ â®ïž ð· ð±.
+
+ð â¹ ðª ð± **ð ð**, & â€Žïž ðŠ ð ïž ð©º (ðŠ ð).
+
+& ð ð â¹ âªïžâ¡ïž ð· ð ð ð â«ïžâ ðª âïž **ð ð©âð» ð**.
+
+### ð ð ð©âð»
+
+ð ð ð¥ âïž ð± â®ïž ð·, ð¥ ðª ð ð©âð» ð ðž.
+
+#### â `openapi-typescript-codegen`
+
+ð ðª â `openapi-typescript-codegen` ð ðž ð â®ïž:
+
+
+
+```console
+$ npm install openapi-typescript-codegen --save-dev
+
+---> 100%
+```
+
+
+
+#### ð ð©âð» ð
+
+ð ð©âð» ð ð ðª âïž ð âž ðž `openapi` ð ð ð â.
+
+â©ïž â«ïž â ð§ð¿ ð, ð ð² ð«ð ðª ð€ ð ð ð, âïž ð ð ð® â«ïž ð ð `package.json` ð.
+
+â«ïž ðª ð ð ð:
+
+```JSON hl_lines="7"
+{
+ "name": "frontend-app",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "generate-client": "openapi --input http://localhost:8000/openapi.json --output ./src/client --client axios"
+ },
+ "author": "",
+ "license": "",
+ "devDependencies": {
+ "openapi-typescript-codegen": "^0.20.1",
+ "typescript": "^4.6.2"
+ }
+}
+```
+
+â®ïž âïž ð â `generate-client` â ð€, ð ðª ð â«ïž â®ïž:
+
+
+
+```console
+$ npm run generate-client
+
+frontend-app@1.0.0 generate-client /home/user/code/frontend-app
+> openapi --input http://localhost:8000/openapi.json --output ./src/client --client axios
+```
+
+
+
+ð ð ð ð ð `./src/client` & ð âïž `axios` (ðž ðºðžð ð) ð.
+
+### ð ð
ð©âð» ð
+
+ð ð ðª ð & âïž ð©âð» ð, â«ïž ðª ð ð ð, ð ð ð ð€ â ð©âð¬:
+
+
+
+ð ð ð€ â ð ðš:
+
+
+
+!!! tip
+ ð â `name` & `price`, ð ð¬ FastAPI ðž, `Item` ð·.
+
+ð ð âïž âž â ð ð ð ðš:
+
+
+
+ðš ð ð âïž â:
+
+
+
+## FastAPI ð± â®ïž ð
+
+ð ðŒ ð FastAPI ð± ð ðŠ, & ð ð ð² âïž ð ð ð ðª *â¡ ð ïž*.
+
+ðŒ, ð ðª âïž ð **ð¬** & â1ïžâ£ ð **ð©âð»**, & ð« ðª ðœ ð:
+
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="23 28 36"
+ {!> ../../../docs_src/generate_clients/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="21 26 34"
+ {!> ../../../docs_src/generate_clients/tutorial002_py39.py!}
+ ```
+
+### ð ð ð©âð» â®ïž ð
+
+ð¥ ð ð ð©âð» FastAPI ð± âïž ð, â«ïž ð ð ð ð©âð» ð âïž ð ð.
+
+ð ð ð ð ðª âïž ð â & ðª â ð©âð» ð:
+
+
+
+ð ðŒ ð âïž:
+
+* `ItemsService`
+* `UsersService`
+
+### ð©âð» ð©âð¬ ð
+
+â¶ïžïž ð ð ð©âð¬ ð ð `createItemItemsPost` ð« ð ð¶ ð§¹:
+
+```TypeScript
+ItemsService.createItemItemsPost({name: "Plumbus", price: 5})
+```
+
+...ð â©ïž ð©âð» ð âïž ð ð **ð ïž ð** ð *â¡ ð ïž*.
+
+ð ð ð ð ð ïž ð ð ð€ ð *â¡ ð ïž*, FastAPI âïž **ð¢ ð**, **â¡**, & **ðºðžð ð©âð¬/ð ïž** ð ð ð ïž ð, â©ïž ð ð â«ïž ðª â ð ð ð ïž ð ð.
+
+âïž ð€ ð ðŠ ð â ð ð â. ð¶
+
+## ð ð ïž ð & ð ð©âð¬ ð
+
+ð ðª **ð** ð ð« ð ïž ð **ð** â ð« ð
& âïž **ð
ð©âð¬ ð** ð©âð».
+
+ð ðŒ ð ð âïž ð ð ð ð ïž ð **ð** ð ð.
+
+ðŒ, ð ðª â ð ð ð *â¡ ð ïž* âïž ð, & â€Žïž ð ð ïž ð âïž ð **ð** & *â¡ ð ïž* **ð** (ð¢ ð).
+
+### ð ð ð ð ð¢
+
+FastAPI âïž **ð ð** ð *â¡ ð ïž*, â«ïž âïž **ð ïž ð** & ð ð ðª ð ð·, ðš âïž ðš.
+
+ð ðª ð ð ð¢. â«ïž â `APIRoute` & ð¢ ð».
+
+ðŒ, ð¥ â«ïž âïž ð¥ ð (ð ð ð² âïž ðŽ 1ïžâ£ ð) & *â¡ ð ïž* ð (ð¢ ð).
+
+ð ðª â€Žïž ð¶ââïž ð ð ð¢ **FastAPI** `generate_unique_id_function` ð¢:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="8-9 12"
+ {!> ../../../docs_src/generate_clients/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="6-7 10"
+ {!> ../../../docs_src/generate_clients/tutorial003_py39.py!}
+ ```
+
+### ð ð ð©âð» â®ïž ð ð ïž ð
+
+ð ð¥ ð ð ð©âð» ð, ð ð ð ð â«ïž âïž ð ð©âð¬ ð:
+
+
+
+ð ð, ð©âð¬ ð ð âïž ð & â€Žïž ð¢ ð, ð ð« ð« ð â¹ âªïžâ¡ïž ð â¡ & ðºðžð ð ïž.
+
+### ð ð ð§ ð©âð» ð
+
+ð ð âïž **â â¹**.
+
+ð¥ ⪠ð ð ð ð©âð¬ ð **ð¬** â©ïž ð ð€ `ItemsService` (â âªïžâ¡ïž ð), âïž ð¥ âïž ð ð¡ ð©âð¬ ð ðââïž. ð¶
+
+ð¥ ð ð² ð ð§ â«ïž ð ð¢, ð ð ð ð ð ïž ð **ð**.
+
+âïž ð ð©âð» ð¥ ðª **ð** ð ð ïž ð â¶ïžïž â ð ð©âð», â ð ð©âð¬ ð ð & **ð§¹**.
+
+ð¥ ðª ⬠ð ð» ð `openapi.json` & â€Žïž ð¥ ðª **â ð ð¡ ð** â®ïž â ð ð:
+
+```Python
+{!../../../docs_src/generate_clients/tutorial004.py!}
+```
+
+â®ïž ð, ð ïž ð ð ð âªïžâ¡ïž ð ð `items-get_items` `get_items`, ð ð ð©âð» ð ðª ð ð
ð©âð¬ ð.
+
+### ð ð ð©âð» â®ïž ð ð
+
+ð ð ð ð `openapi.json`, ð ð ð `package.json` âïž ð ð§ð¿ ð, ðŒ:
+
+```JSON hl_lines="7"
+{
+ "name": "frontend-app",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "generate-client": "openapi --input ./openapi.json --output ./src/client --client axios"
+ },
+ "author": "",
+ "license": "",
+ "devDependencies": {
+ "openapi-typescript-codegen": "^0.20.1",
+ "typescript": "^4.6.2"
+ }
+}
+```
+
+â®ïž ð ð ð©âð», ð ð ð âïž **𧹠ð©âð¬ ð**, â®ïž ð **â**, **âž â**, âïž:
+
+
+
+## ð°
+
+ðâ âïž ð ð ð©âð» ð ð **â** :
+
+* ð©âð¬.
+* ðš ð ðª, ð¢ ð¢, âïž.
+* ðš ð.
+
+ð ð âïž **âž â** ð.
+
+& ðâ ð â¹ ð©âð» ð, & **â»** ðž, â«ïž ð âïž ð ð *â¡ ð ïž* ðª ð©âð¬, ð ð â, & ð ð ð ð ðš ð ð ð. ð¶
+
+ð â ð ð¥ ð³ ð â«ïž ð **ðš** ð ð©âð» ð ð. & ð¥ ð **ð** ð©âð» â«ïž ð â ð
ð¥ ð âïž ð **ð** ð âïž.
+
+, ð ð **ð ð â** ð¶ ⪠ð ïž ðµ â©ïž âïž â â ðŠ ð ð ð ð©âð» ð & â€Žïž ð â¹ ðâ â . ð¶
diff --git a/docs/em/docs/advanced/graphql.md b/docs/em/docs/advanced/graphql.md
new file mode 100644
index 000000000..8509643ce
--- /dev/null
+++ b/docs/em/docs/advanced/graphql.md
@@ -0,0 +1,56 @@
+# ð¹
+
+**FastAPI** âïž ð **ð«** ð©, â«ïž ð¶ â© ð ïž ð **ð¹** ð ð â®ïž ð«.
+
+ð ðª ð ð FastAPI *â¡ ð ïž* â®ïž ð¹ ð ð ðž.
+
+!!! tip
+ **ð¹** â ð¶ ð¯ âïž ðŒ.
+
+ â«ïž âïž **ð** & **â ** ðâ ð¬ â **ðž ð**.
+
+ â ð ð ð¬ ð¥ **ð°** ð âïž ðŒ â **ð**. ð¶
+
+## ð¹ ð
+
+ð¥ **ð¹** ð ð âïž **ð«** ðâðŠº. ð ðª âïž ð« â®ïž **FastAPI**:
+
+* ð ð¶
+ * â®ïž 𩺠FastAPI
+* ðž
+ * â®ïž 𩺠ð (ð â FastAPI)
+* ð
+ * â®ïž ð ð« ð ð« ð ïž
+* â
+ * â®ïž ð-Graphene3ïžâ£
+
+## ð¹ â®ïž ð
+
+ð¥ ð ðª âïž ð ð· â®ïž **ð¹**, **ð** **ð** ð â«ïž âïž ð§ ð **FastAPI** ð§, â«ïž ð âïž ð **ð â**.
+
+âïž ð ð âïž ðŒ, ð 5ïžâ£ð ð âïž ð ð, âïž ð¥ ð ð ð€, ð€ ð ð² ð€ ð ð **ð**.
+
+ð¥ ð€ª ð® â ð ðª ð ïž ð â®ïž FastAPI:
+
+```Python hl_lines="3 22 25-26"
+{!../../../docs_src/graphql/tutorial001.py!}
+```
+
+ð ðª ð¡ ð
ð ð ð ð§Ÿ.
+
+& 𩺠ð ð â®ïž FastAPI.
+
+## ð `GraphQLApp` âªïžâ¡ïž ð
+
+â®ïž ⬠ð ð `GraphQLApp` ð ð ïž â®ïž â.
+
+â«ïž ð¢ âªïžâ¡ïž ð, âïž ð¥ ð âïž ð ð âïž â«ïž, ð ðª ðª **â** ð-Graphene3ïžâ£, ð ð ð âïž ðŒ & âïž **ð ð ð¢**.
+
+!!! tip
+ ð¥ ð ðª ð¹, ð€ ð ð ð â
ð
ð, â«ïž âïž ð ð â â©ïž ð ð & ð.
+
+## ð¡ ð
+
+ð ðª ð¡ ð
ð **ð¹** ð ð¹ ð§Ÿ.
+
+ð ðª â ð
ð ð ð ð ð¬ ð ð« ð.
diff --git a/docs/em/docs/advanced/index.md b/docs/em/docs/advanced/index.md
new file mode 100644
index 000000000..6a43a09e7
--- /dev/null
+++ b/docs/em/docs/advanced/index.md
@@ -0,0 +1,24 @@
+# ð§ ð©âð» ðŠ® - ð¶
+
+## ð â
+
+ð [ð° - ð©âð» ðŠ®](../tutorial/){.internal-link target=_blank} ð ð¥ ð€ ð ð« ð ð ð â **FastAPI**.
+
+â ð ð ð ð ð ð, ð³, & ð â.
+
+!!! tip
+ â ð **ð« ð¯ "ð§"**.
+
+ & â«ïž ðª ð ð âïž ðŒ, â 1ïžâ£ ð«.
+
+## â ð° ð¥
+
+ð ðª âïž ð â **FastAPI** â®ïž ð¡ âªïžâ¡ïž ð [ð° - ð©âð» ðŠ®](../tutorial/){.internal-link target=_blank}.
+
+& â ð ð€ ð ⪠â â«ïž, & ð€ ð ð ð ð ð ð.
+
+## ð.ð
Ÿ âïž
+
+ð¥ ð ð ð â ð§-ð° âïž ð ð ð ð©º, ð ðª ð â
: ð¯-ðŸ ð ïž â®ïž FastAPI & â **ð.ð
Ÿ**.
+
+ð« â³ ð©ž 1ïžâ£0ïžâ£ ð¯ ð ð° ð ïž **FastAPI**. ð¶ ð¶
diff --git a/docs/em/docs/advanced/middleware.md b/docs/em/docs/advanced/middleware.md
new file mode 100644
index 000000000..b3e722ed0
--- /dev/null
+++ b/docs/em/docs/advanced/middleware.md
@@ -0,0 +1,99 @@
+# ð§ ð ïž
+
+ð ð° ð â â ð® [ð ð ïž](../tutorial/middleware.md){.internal-link target=_blank} ð ðž.
+
+& â€Žïž ð â â ðµ [â â®ïž `CORSMiddleware`](../tutorial/cors.md){.internal-link target=_blank}.
+
+ð ð ð¥ ð ð â âïž ð ð ïž.
+
+## â ð« ð ïž
+
+**FastAPI** âïž ð ð & ð ïž ð« ð§, ð ðª âïž ð ð« ð ïž.
+
+ð ïž ð« âïž â FastAPI âïž ð ð·, ð â«ïž â© ð« ð.
+
+ð¢, ð« ð ïž ð ð â ðš ð« ð± ð¥ â.
+
+, 𧟠ð¥-𥳠ð« ð ïž ð« ð ð² ð¬ ð ð³ ð:
+
+```Python
+from unicorn import UnicornMiddleware
+
+app = SomeASGIApp()
+
+new_app = UnicornMiddleware(app, some_config="rainbow")
+```
+
+âïž FastAPI (ð€ ð) ð ð
ð â«ïž ð â ð ð ð ð ïž ðµ ðœ â & ð â ðâðŠº ð· â.
+
+ð, ð âïž `app.add_middleware()` (ðŒ â).
+
+```Python
+from fastapi import FastAPI
+from unicorn import UnicornMiddleware
+
+app = FastAPI()
+
+app.add_middleware(UnicornMiddleware, some_config="rainbow")
+```
+
+`app.add_middleware()` ðš ð ïž ð ð¥ â & ð ð â ð¶ââïž ð ïž.
+
+## ð ïž ð ïž
+
+**FastAPI** ð ð ð ïž â âïž ðŒ, ð¥ ð ð â â âïž ð«.
+
+!!! note "ð¡ â¹"
+ â ðŒ, ð ðª âïž `from starlette.middleware.something import SomethingMiddleware`.
+
+ **FastAPI** ð ð ð ïž `fastapi.middleware` ðª ð, ð©âð». âïž ð
ðª ð ïž ð ð âªïžâ¡ïž ð.
+
+## `HTTPSRedirectMiddleware`
+
+ð ïž ð ð ðš ðš ð ð¯ââïž `https` âïž `wss`.
+
+ð ðš ðš `http` âïž `ws` ð â ð â â©ïž.
+
+```Python hl_lines="2 6"
+{!../../../docs_src/advanced_middleware/tutorial001.py!}
+```
+
+## `TrustedHostMiddleware`
+
+ð ïž ð ð ðš ðš âïž â â `Host` ð, â ðââ ð¡ ðºðžð ðŠ ð ð.
+
+```Python hl_lines="2 6-8"
+{!../../../docs_src/advanced_middleware/tutorial002.py!}
+```
+
+ð â ðâðŠº:
+
+* `allowed_hosts` - ð ð ð ð ð â ð. ð ð â
`*.example.com` ðâðŠº ð ð. â ð ð ð¯ââïž âïž `allowed_hosts=["*"]` âïž ð« ð ïž.
+
+ð¥ ðš ðš ðš ð« â â â€Žïž `400` ðš ð ðš.
+
+## `GZipMiddleware`
+
+ðµ ð ðš ð ðš ð ð `"gzip"` `Accept-Encoding` ð.
+
+ð ïž ð ðµ ð¯ââïž ð© & ð¥ ðš.
+
+```Python hl_lines="2 6"
+{!../../../docs_src/advanced_middleware/tutorial003.py!}
+```
+
+ð â ðâðŠº:
+
+* `minimum_size` - ð« ð ðš ð ð€ª ð ð ð¯ ð ð¢. ð¢ `500`.
+
+## ð ð ïž
+
+ð€ ð ð ð« ð ïž.
+
+ðŒ:
+
+* ð«
+* Uvicorn `ProxyHeadersMiddleware`
+* ðžð²
+
+ð ð ðª ð ïž â
ð ð ïž ð©º & ð« ð ð.
diff --git a/docs/em/docs/advanced/nosql-databases.md b/docs/em/docs/advanced/nosql-databases.md
new file mode 100644
index 000000000..9c828a909
--- /dev/null
+++ b/docs/em/docs/advanced/nosql-databases.md
@@ -0,0 +1,156 @@
+# â (ð / ðŠ ðœ) ðœ
+
+**FastAPI** ðª ð ïž â®ïž ð â.
+
+ð¥ ð¥ ð ð ðŒ âïž **ð**, ð 𧢠â ðœ.
+
+ð ðª ð ïž â«ïž ð ð â ðœ ð:
+
+* **â³**
+* **ðž**
+* **â³**
+* **ðžð²**
+* **â³**, âïž.
+
+!!! tip
+ ð€ ð ð ð â®ïž **FastAPI** & **ð**, ð âïž ð **â**, ð ðž & ð ð§°: https://github.com/tiangolo/full-stack-fastapi-couchbase
+
+## ð ð ðŠ²
+
+ð, ð« ðž ð ð, ðŽ ð:
+
+```Python hl_lines="3-5"
+{!../../../docs_src/nosql_databases/tutorial001.py!}
+```
+
+## ð¬ ð âïž "ð ð"
+
+ð¥ ð âïž â«ïž ⪠ð§ ð `type` ð ð.
+
+ð ð« â ð, âïž ð ð¡ ð ð â¹ ð â®ïž.
+
+```Python hl_lines="9"
+{!../../../docs_src/nosql_databases/tutorial001.py!}
+```
+
+## ð® ð¢ ð€ `Bucket`
+
+**ð**, 𥡠â ð, ð ðª ð ð.
+
+ð« ð ð ð ð ðž.
+
+ð ð ðœ ð ð "ðœ" (ð¯ ðœ, ð« ðœ ðœ).
+
+ð **â³** ð "ð".
+
+ð, `Bucket` ðš ð ðšð» ð» â®ïž ðœ.
+
+ð ð ð¢ ð:
+
+* ð **ð** ð (ð ðª ð ð°).
+ * â ð¢ â².
+* ð ð.
+* ð€ `Bucket` ð.
+ * â ð¢ â².
+* ðš â«ïž.
+
+```Python hl_lines="12-21"
+{!../../../docs_src/nosql_databases/tutorial001.py!}
+```
+
+## â Pydantic ð·
+
+**ð** "ð" ð€ "ð» ð", ð¥ ðª ð· ð« â®ïž Pydantic.
+
+### `User` ð·
+
+ð¥, â¡ïž â `User` ð·:
+
+```Python hl_lines="24-28"
+{!../../../docs_src/nosql_databases/tutorial001.py!}
+```
+
+ð¥ ð âïž ð ð· ð *â¡ ð ïž ð¢*,, ð¥ ð« ð â«ïž `hashed_password`.
+
+### `UserInDB` ð·
+
+ð, â¡ïž â `UserInDB` ð·.
+
+ð ð âïž ðœ ð ð€ ðª ðœ.
+
+ð¥ ð« â â«ïž ð¿ Pydantic `BaseModel` âïž ð¿ ð ð `User`, â©ïž â«ïž ð âïž ð ð¢ `User` â ð©ââ€âðš ð
:
+
+```Python hl_lines="31-33"
+{!../../../docs_src/nosql_databases/tutorial001.py!}
+```
+
+!!! note
+ ð ð ð¥ âïž `hashed_password` & `type` ð ð ð ðª ðœ.
+
+ âïž â«ïž ð« ð ð¢ `User` ð· (1ïžâ£ ð¥ ð ðš *â¡ ð ïž*).
+
+## ð€ ð©âð»
+
+ð â ð¢ ð ð:
+
+* â ð.
+* ð ð ð âªïžâ¡ïž â«ïž.
+* ð€ ð â®ïž ð ð.
+* ð® ð ð `UserInDB` ð·.
+
+ð ð¢ ð ðŽ ð¡ ð€ ð ð©âð» âªïžâ¡ïž `username` (âïž ð ð ð¢) ð¬ ð *â¡ ð ïž ð¢*, ð ðª ð ðª ð€-âïž â«ïž ð ð & ð® â ð¯ â«ïž:
+
+```Python hl_lines="36-42"
+{!../../../docs_src/nosql_databases/tutorial001.py!}
+```
+
+### â-ð»
+
+ð¥ ð ð« ð° â®ïž `f"userprofile::{username}"`, â«ïž ð "â-ð»".
+
+ð ð¢ ð ð® ð `{}` â-ð» ð â / ð ð».
+
+### `dict` ð
+
+ð¥ ð ð« ð° â®ïž `UserInDB(**result.value)`, â«ïž âïž `dict` "ð".
+
+â«ïž ð â `dict` `result.value`, & â ð ð® ð & ð² & ð¶ââïž ð« ð-ð² `UserInDB` ðšð» â.
+
+, ð¥ `dict` ð:
+
+```Python
+{
+ "username": "johndoe",
+ "hashed_password": "some_hash",
+}
+```
+
+â«ïž ð ð¶ââïž `UserInDB` :
+
+```Python
+UserInDB(username="johndoe", hashed_password="some_hash")
+```
+
+## â ð **FastAPI** ð
+
+### â `FastAPI` ð±
+
+```Python hl_lines="46"
+{!../../../docs_src/nosql_databases/tutorial001.py!}
+```
+
+### â *â¡ ð ïž ð¢*
+
+ð ð ð€ ð & ð¥ ð« âïž ð¥Œ ð await
ðâðŠº, ð¥ ð ð£ ð ð¢ â®ïž ð `def` â©ïž `async def`.
+
+, ð ð ð« âïž ð `Bucket` ð ð "ð§µâ",, ð¥ ðª ð€ 𥡠ð & ð¶ââïž â«ïž ð ð ð¢:
+
+```Python hl_lines="49-53"
+{!../../../docs_src/nosql_databases/tutorial001.py!}
+```
+
+## ð
+
+ð ðª ð ïž ð ð¥ 𥳠â ðœ, âïž ð« ð© ðŠ.
+
+ð â ð ð ð¢ ð§°, âïž âïž ð ïž.
diff --git a/docs/em/docs/advanced/openapi-callbacks.md b/docs/em/docs/advanced/openapi-callbacks.md
new file mode 100644
index 000000000..630b75ed2
--- /dev/null
+++ b/docs/em/docs/advanced/openapi-callbacks.md
@@ -0,0 +1,179 @@
+# ð â²
+
+ð ðª â ð ïž â®ïž *â¡ ð ïž* ð ðª â² ðš *ð¢ ð ïž* â ð± ð (ð² ð ð©âð» ð ð *âïž* ð ð ïž).
+
+ð ïž ð ðš ðâ ð ð ïž ð± ð€ *ð¢ ð ïž* ð "â²". â©ïž ð¥ ð ð¢ ð©âð» â ðš ðš ð ð ïž & â€Žïž ð ð ïž *ð€ ð*, ðš ðš *ð¢ ð ïž* (ð ð² â ð ð©âð»).
+
+ð ðŒ, ð ðª ð ð â ð ð¢ ð ïž *ð* ð ð. â«ïžâ *â¡ ð ïž* â«ïž ð âïž, â«ïžâ ðª â«ïž ð â, â«ïžâ ðš â«ïž ð ðš, âïž.
+
+## ð± â®ïž â²
+
+â¡ïž ð ð ð â®ïž ðŒ.
+
+ð ð ð ïž ð± ð â ð ð§Ÿ.
+
+ð 𧟠ð âïž `id`, `title` (ðŠ), `customer`, & `total`.
+
+ð©âð» ð ð ïž (ð¢ ð©âð») ð â 𧟠ð ð ïž â®ïž ð€ ðš.
+
+â€Žïž ð ð ïž ð (â¡ïž ð):
+
+* ðš 𧟠ðŽ ð¢ ð©âð».
+* ð ðž.
+* ðš ðš ð ð ïž ð©âð» (ð¢ ð©âð»).
+ * ð ð ðš ðš ð€ ðš (âªïžâ¡ïž *ð ð ïž*) *ð¢ ð ïž* ð ð ð¢ ð©âð» (ð "â²").
+
+## ð **FastAPI** ð±
+
+â¡ïž ð¥ ð â ð ð ïž ð± ð ð ð â â â².
+
+â«ïž ð âïž *â¡ ð ïž* ð ð ðš `Invoice` ðª, & ð¢ ð¢ `callback_url` ð ð ð ð â².
+
+ð ð ð¶ ð, ð
ð ð² ⪠ð° ð:
+
+```Python hl_lines="9-13 36-53"
+{!../../../docs_src/openapi_callbacks/tutorial001.py!}
+```
+
+!!! tip
+ `callback_url` ð¢ ð¢ âïž Pydantic ð ð.
+
+ðŽ ð ð `callbacks=messages_callback_router.routes` â *â¡ ð ïž ðšâðš*. ð¥ ð ð â«ïžâ ð â.
+
+## ð¬ â²
+
+â â² ð ð ðª ð ð ð ð ð ïž ð±.
+
+& â«ïž ð ð² ðª ð âªïžâ¡ïž 1ïžâ£ ð± â.
+
+â«ïž ðª 1ïžâ£ âïž 2ïžâ£ âž ð, ð:
+
+```Python
+callback_url = "https://example.com/api/v1/invoices/events/"
+httpx.post(callback_url, json={"description": "Invoice paid", "paid": True})
+```
+
+âïž ð² ð â ð â² â ð ð ð ð ïž ð©âð» (ð¢ ð©âð») ð ïž *ð¢ ð ïž* â, ð ðœ ð *ð ð ïž* ð ðš ðš ðª â², âïž.
+
+, â«ïžâ ð¥ ð â ð® ð ð â ð *ð¢ ð ïž* ð ð ð ðš â² âªïžâ¡ïž *ð ð ïž*.
+
+ð 𧟠ð ðŠ ð ðŠ ð `/docs` ð ð ïž, & â«ïž ð â¡ïž ð¢ ð©âð» ð â ð *ð¢ ð ïž*.
+
+ð ðŒ ð« ð ïž â² â«ïž (ð ðª âž ð), ðŽ 𧟠ð.
+
+!!! tip
+ â â² ðºðžð ðš.
+
+ ðâ ð ïž â² ð, ð ðª âïž ð³ ð ðžð² âïž ðš.
+
+## â Ⲡ𧟠ð
+
+ð ð ð ð« ð ïž ð ð±, ð¥ ðŽ ðª â«ïž *ð* â ð *ð¢ ð ïž* ð ð ð.
+
+âïž, ð ⪠ð â ðª â ð§ 𧟠ð ïž â®ïž **FastAPI**.
+
+ð¥ ð âïž ð ð ð¡ ð â *ð¢ ð ïž* ð ð ð... ð *â¡ ð ïž(â)* ð ð¢ ð ïž ð ð ïž (ð ð ð ïž ð ð€).
+
+!!! tip
+ ðâ â ð ð â², â«ïž ðª â ð ð ð ð *ð¢ ð©âð»*. & ð ð â³ ð ïž *ð¢ ð ïž*, ð« *ð ð ïž*.
+
+ ð ð ïž ð â ð ( *ð¢ ð©âð»*) ðª â¹ ð ð ð â«ïž ð
â ðâ ð® ð¢, Pydantic ð· ðª, ðš, âïž. ð *ð¢ ð ïž*.
+
+### â â² `APIRouter`
+
+ð¥ â ð `APIRouter` ð ð ð 1ïžâ£ âïž ð
â².
+
+```Python hl_lines="3 25"
+{!../../../docs_src/openapi_callbacks/tutorial001.py!}
+```
+
+### â â² *â¡ ð ïž*
+
+â â² *â¡ ð ïž* âïž ð `APIRouter` ð â ð.
+
+â«ïž ð ð ð ð FastAPI *â¡ ð ïž*:
+
+* â«ïž ð ð² âïž ð ðª â«ïž ð ðš, â
`body: InvoiceEvent`.
+* & â«ïž ðª âïž ð ðš â«ïž ð ðš, â
`response_model=InvoiceEventReceived`.
+
+```Python hl_lines="16-18 21-22 28-32"
+{!../../../docs_src/openapi_callbacks/tutorial001.py!}
+```
+
+ð€ 2ïžâ£ ð ðº âªïžâ¡ïž ð *â¡ ð ïž*:
+
+* â«ïž ð« ðª âïž ð â ð, â©ïž ð ð± ð ð
ð€ ð ð. â«ïž ðŽ âïž ð *ð¢ ð ïž*. , ð¢ ðª âïž `pass`.
+* *â¡* ðª ð ð 3ïžâ£ 𧬠(ð ð ð) ðâ â«ïž ðª âïž ð¢ â®ïž ð¢ & ð â®ïž ðš ðš *ð ð ïž*.
+
+### â² â¡ ð§¬
+
+â² *â¡* ðª âïž ð 3ïžâ£ 𧬠ð ðª ð ð â®ïž ðš ðš *ð ð ïž*.
+
+ð ðŒ, â«ïž `str`:
+
+```Python
+"{$callback_url}/invoices/{$request.body.id}"
+```
+
+, ð¥ ð ð ïž ð©âð» (ð¢ ð©âð») ðš ðš *ð ð ïž* :
+
+```
+https://yourapi.com/invoices/?callback_url=https://www.external.org/events
+```
+
+â®ïž ð» ðª:
+
+```JSON
+{
+ "id": "2expen51ve",
+ "customer": "Mr. Richie Rich",
+ "total": "9999"
+}
+```
+
+â€Žïž *ð ð ïž* ð ð ïž ð§Ÿ, & â âª, ðš â² ðš `callback_url` ( *ð¢ ð ïž*):
+
+```
+https://www.external.org/events/invoices/2expen51ve
+```
+
+â®ïž ð» ðª â ð³ ð:
+
+```JSON
+{
+ "description": "Payment celebration",
+ "paid": true
+}
+```
+
+& â«ïž ð â ðš âªïžâ¡ïž ð *ð¢ ð ïž* â®ïž ð» ðª ð:
+
+```JSON
+{
+ "ok": true
+}
+```
+
+!!! tip
+ ð â â² ð âïž ð ð ðš ð¢ ð¢ `callback_url` (`https://www.external.org/events`) & 𧟠`id` âªïžâ¡ïž ð ð» ðª (`2expen51ve`).
+
+### ð® â² ð»
+
+ð â ð âïž *â² â¡ ð ïž(â)* ðª (1ïžâ£(â) ð *ð¢ ð©âð»* ð ð ïž *ð¢ ð ïž*) â² ð» ð â ð.
+
+ð âïž ð¢ `callbacks` *ð ð ïž â¡ ð ïž ðšâðš* ð¶ââïž ð¢ `.routes` (ð ð€ `list` ð£/*â¡ ð ïž*) âªïžâ¡ïž ð â² ð»:
+
+```Python hl_lines="35"
+{!../../../docs_src/openapi_callbacks/tutorial001.py!}
+```
+
+!!! tip
+ ð ð ð ð« ð¶ââïž ð» â«ïž (`invoices_callback_router`) `callback=`, âïž ð¢ `.routes`, `invoices_callback_router.routes`.
+
+### â
ð©º
+
+ð ð ðª â¶ïž ð ð± â®ïž Uvicorn & ð¶ http://127.0.0.1:8000/docs.
+
+ð ð ð ð 𩺠â
"â²" ð ð *â¡ ð ïž* ð ðŠ â *ð¢ ð ïž* ð ð ð:
+
+
diff --git a/docs/em/docs/advanced/path-operation-advanced-configuration.md b/docs/em/docs/advanced/path-operation-advanced-configuration.md
new file mode 100644
index 000000000..ec7231870
--- /dev/null
+++ b/docs/em/docs/advanced/path-operation-advanced-configuration.md
@@ -0,0 +1,170 @@
+# â¡ ð ïž ð§ ð³
+
+## ð {
+
+!!! warning
+ ð¥ ð ð« "ðŽ" ð, ð ð² ð« ðª ð.
+
+ð ðª â ð `operationId` âïž ð *â¡ ð ïž* â®ïž ð¢ `operation_id`.
+
+ð ð âïž â ð ð â«ïž ð ð ð ïž.
+
+```Python hl_lines="6"
+{!../../../docs_src/path_operation_advanced_configuration/tutorial001.py!}
+```
+
+### âïž *â¡ ð ïž ð¢* ð {
+
+ð¥ ð ð âïž ð ð' ð¢ ð `operationId`â, ð ðª ð ð€ ð ð« & ð ð *â¡ ð ïž* `operation_id` âïž ð« `APIRoute.name`.
+
+ð ð â«ïž â®ïž â ð ð *â¡ ð ïž*.
+
+```Python hl_lines="2 12-21 24"
+{!../../../docs_src/path_operation_advanced_configuration/tutorial002.py!}
+```
+
+!!! tip
+ ð¥ ð â ð€ `app.openapi()`, ð ð â¹ `operationId`â â ð.
+
+!!! warning
+ ð¥ ð ð, ð âïž â ð ð 1ïžâ£ ð *â¡ ð ïž ð¢* âïž ð ð.
+
+ ð¥ ð« ð ð¹ (ð ð).
+
+## ð« âªïžâ¡ïž ð
+
+ð« *â¡ ð ïž* âªïžâ¡ïž ð ð ð (& â¡ïž, âªïžâ¡ïž ð§ 𧟠âïž), âïž ð¢ `include_in_schema` & â â«ïž `False`:
+
+```Python hl_lines="6"
+{!../../../docs_src/path_operation_advanced_configuration/tutorial003.py!}
+```
+
+## ð§ ð âªïžâ¡ïž #ïžâ£
+
+ð ðª ð âž âïž âªïžâ¡ïž #ïžâ£ *â¡ ð ïž ð¢* ð.
+
+â `\f` (ð "ðš ðŒ" ðŠ¹) ð€ **FastAPI** ð ð¢ âïž ð ð â.
+
+â«ïž ð ð« ðŠ ð ð§Ÿ, âïž ð 𧰠(â
ð) ð ðª âïž ð.
+
+```Python hl_lines="19-29"
+{!../../../docs_src/path_operation_advanced_configuration/tutorial004.py!}
+```
+
+## ð ðš
+
+ð ð² âïž ð â ð£ `response_model` & `status_code` *â¡ ð ïž*.
+
+ð ð¬ ð ð ð ðš *â¡ ð ïž*.
+
+ð ðª ð£ ð ðš â®ïž ð« ð·, ð ð, âïž.
+
+ð€ ð ð ð¥ 𧟠ð â«ïž, ð ðª â â«ïž [ð ðš ð](./additional-responses.md){.internal-link target=_blank}.
+
+## ð â
+
+ðâ ð ð£ *â¡ ð ïž* ð ðž, **FastAPI** ð ð ð ð ð ð *â¡ ð ïž* ð ð ð.
+
+!!! note "ð¡ â¹"
+ ð ð§ â«ïž ð€ ð ïž ð.
+
+â«ïž âïž ð â¹ ð *â¡ ð ïž* & âïž ð ð§ ð§Ÿ.
+
+â«ïž ð `tags`, `parameters`, `requestBody`, `responses`, âïž.
+
+ð *â¡ ð ïž*-ð¯ ð ð ð ð ð **FastAPI**, âïž ð ðª â â«ïž.
+
+!!! tip
+ ð ð
ð â â.
+
+ ð¥ ð ðŽ ðª ð£ ð ðš, ð
ðª ð â«ïž â®ïž [ð ðš ð](./additional-responses.md){.internal-link target=_blank}.
+
+ð ðª â ð ð *â¡ ð ïž* âïž ð¢ `openapi_extra`.
+
+### ð â
+
+ð `openapi_extra` ðª ð, ðŒ, ð£ [ð â](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#specificationExtensions):
+
+```Python hl_lines="6"
+{!../../../docs_src/path_operation_advanced_configuration/tutorial005.py!}
+```
+
+ð¥ ð ð ð§ ð ïž ð©º, ð â ð ðŠ ð ð ð¯ *â¡ ð ïž*.
+
+
+
+& ð¥ ð ð ð ð ( `/openapi.json` ð ð ïž), ð ð ð ð â ð ð¯ *â¡ ð ïž* ðââïž:
+
+```JSON hl_lines="22"
+{
+ "openapi": "3.0.2",
+ "info": {
+ "title": "FastAPI",
+ "version": "0.1.0"
+ },
+ "paths": {
+ "/items/": {
+ "get": {
+ "summary": "Read Items",
+ "operationId": "read_items_items__get",
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+ "schema": {}
+ }
+ }
+ }
+ },
+ "x-aperture-labs-portal": "blue"
+ }
+ }
+ }
+}
+```
+
+### ð ð *â¡ ð ïž* ð
+
+ð `openapi_extra` ð ð ð â®ïž ð ð ð ð *â¡ ð ïž*.
+
+, ð ðª ð® ð ðœ ð ð ð.
+
+ðŒ, ð ðª ð â & â ðš â®ïž ð ð ð, ðµ âïž ð§ â FastAPI â®ïž Pydantic, âïž ð ðª ð ð¬ ðš ð ð.
+
+ð ðª ð â®ïž `openapi_extra`:
+
+```Python hl_lines="20-37 39-40"
+{!../../../docs_src/path_operation_advanced_configuration/tutorial006.py!}
+```
+
+ð ðŒ, ð¥ ð« ð£ ð Pydantic ð·. ð, ðš ðª ð« ð» ð», â«ïž â ð `bytes`, & ð¢ `magic_data_reader()` ð ð ð» â«ïž ð.
+
+ð, ð¥ ðª ð£ ð ð ðš ðª.
+
+### ð ð ð ð
+
+âïž ð ð ð±, ð ðª âïž Pydantic ð· ð¬ ð» ð ð â€Žïž ð ð ð ð ð *â¡ ð ïž*.
+
+& ð ðª ð ð¥ ðœ ð ðš ð« ð».
+
+ðŒ, ð ðž ð¥ ð« âïž FastAPI ð ïž ð ïž â ð» ð âªïžâ¡ïž Pydantic ð· ð« ð§ ð¬ ð». ð, ð¥ ð£ ðš ð ð ð, ð« ð»:
+
+```Python hl_lines="17-22 24"
+{!../../../docs_src/path_operation_advanced_configuration/tutorial007.py!}
+```
+
+ð, ð ð¥ ð« âïž ð¢ ð ïž ð ïž, ð¥ âïž Pydantic ð· â ð ð» ð ðœ ð ð¥ ð ðš ð.
+
+â€Žïž ð¥ âïž ðš ð, & â ðª `bytes`. ð â ð FastAPI ð ð« ð ð» ðš ð ð».
+
+& â€Žïž ð ð, ð¥ ð» ð ð ð ð, & â€Žïž ð¥ ð âïž ð Pydantic ð· â ð ð:
+
+```Python hl_lines="26-33"
+{!../../../docs_src/path_operation_advanced_configuration/tutorial007.py!}
+```
+
+!!! tip
+ ð¥ ð¥ ð€-âïž ð Pydantic ð·.
+
+ âïž ð ð, ð¥ ðª âïž â â«ïž ð ð.
diff --git a/docs/em/docs/advanced/response-change-status-code.md b/docs/em/docs/advanced/response-change-status-code.md
new file mode 100644
index 000000000..156efcc16
--- /dev/null
+++ b/docs/em/docs/advanced/response-change-status-code.md
@@ -0,0 +1,33 @@
+# ðš - ð ð ð
+
+ð ð² â â ð ð ðª â ð¢ [ðš ð ð](../tutorial/response-status-code.md){.internal-link target=_blank}.
+
+âïž ðŒ ð ðª ðš ð ð ð ð ð¢.
+
+## âïž ðŒ
+
+ðŒ, ð ð ð ð ðš ðºðžð ð ð "ð" `200` ð¢.
+
+âïž ð¥ ðœ ð« ð, ð ð â â«ïž, & ðš ðºðžð ð ð "â" `201`.
+
+âïž ð ð ðª ✠& ð ðœ ð ðš â®ïž `response_model`.
+
+ð ðŒ, ð ðª âïž `Response` ð¢.
+
+## âïž `Response` ð¢
+
+ð ðª ð£ ð¢ ð `Response` ð *â¡ ð ïž ð¢* (ð ðª ðª & ð).
+
+& â€Žïž ð ðª â `status_code` ð *ð* ðš ð.
+
+```Python hl_lines="1 9 12"
+{!../../../docs_src/response_change_status_code/tutorial001.py!}
+```
+
+& â€Žïž ð ðª ðš ð ð ð ðª, ð ð ð ( `dict`, ðœ ð·, âïž).
+
+& ð¥ ð ð£ `response_model`, â«ïž ð âïž âœ & ð ð ð ðš.
+
+**FastAPI** ð âïž ð *ð* ðš â ð ð (ðª & ð), & ð ð® ð« ð ðš ð ð ð² ð ðš, ✠ð `response_model`.
+
+ð ðª ð£ `Response` ð¢ ð, & â ð ð ð«. âïž âïž ð€¯ ð ð 1ïžâ£ â ð ð.
diff --git a/docs/em/docs/advanced/response-cookies.md b/docs/em/docs/advanced/response-cookies.md
new file mode 100644
index 000000000..23fffe1dd
--- /dev/null
+++ b/docs/em/docs/advanced/response-cookies.md
@@ -0,0 +1,49 @@
+# ðš ðª
+
+## âïž `Response` ð¢
+
+ð ðª ð£ ð¢ ð `Response` ð *â¡ ð ïž ð¢*.
+
+& â€Žïž ð ðª â ðª ð *ð* ðš ð.
+
+```Python hl_lines="1 8-9"
+{!../../../docs_src/response_cookies/tutorial002.py!}
+```
+
+& â€Žïž ð ðª ðš ð ð ð ðª, ð ð ð ( `dict`, ðœ ð·, âïž).
+
+& ð¥ ð ð£ `response_model`, â«ïž ð âïž âœ & ð ð ð ðš.
+
+**FastAPI** ð âïž ð *ð* ðš â ðª (ð & ð ð), & ð ð® ð« ð ðš ð ð ð² ð ðš, ✠ð `response_model`.
+
+ð ðª ð£ `Response` ð¢ ð, & â ðª (& ð) ð«.
+
+## ðš `Response` ð
+
+ð ðª â ðª ðâ ð¬ `Response` ð ð ð.
+
+ð, ð ðª â ðš ð¬ [ðš ðš ð](response-directly.md){.internal-link target=_blank}.
+
+â€Žïž â ðª â«ïž, & â€Žïž ðš â«ïž:
+
+```Python hl_lines="10-12"
+{!../../../docs_src/response_cookies/tutorial001.py!}
+```
+
+!!! tip
+ âïž ð€¯ ð ð¥ ð ðš ðš ð â©ïž âïž `Response` ð¢, FastAPI ð ðš â«ïž ð.
+
+ , ð ð âïž â ð ð ðœ â ð. ð€¶ â. â«ïž ð â®ïž ð», ð¥ ð ð¬ `JSONResponse`.
+
+ & ð ð ð« ðš ð ð ð ð âïž âœ `response_model`.
+
+### ð
â¹
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.responses import Response` âïž `from starlette.responses import JSONResponse`.
+
+ **FastAPI** ð ð `starlette.responses` `fastapi.responses` ðª ð, ð©âð». âïž ð
ðª ðš ð ð âªïžâ¡ïž ð.
+
+ & `Response` ðª âïž ð â ð & ðª, **FastAPI** ð â«ïž `fastapi.Response`.
+
+ð ð ðª ð¢ & ð, â
𧟠ð.
diff --git a/docs/em/docs/advanced/response-directly.md b/docs/em/docs/advanced/response-directly.md
new file mode 100644
index 000000000..ba09734fb
--- /dev/null
+++ b/docs/em/docs/advanced/response-directly.md
@@ -0,0 +1,63 @@
+# ðš ðš ð
+
+ðâ ð â **FastAPI** *â¡ ð ïž* ð ðª ð ðš ð ð âªïžâ¡ïž â«ïž: `dict`, `list`, Pydantic ð·, ðœ ð·, âïž.
+
+ð¢, **FastAPI** ð ð ð ð ðš ð² ð» âïž `jsonable_encoder` ð¬ [ð» ð ð¢](../tutorial/encoder.md){.internal-link target=_blank}.
+
+‎ïž, â
ð, â«ïž ð ð® ð ð»-ð ðœ (â
`dict`) ð `JSONResponse` ð ð âïž ðš ðš ð©âð».
+
+âïž ð ðª ðš `JSONResponse` ð âªïžâ¡ïž ð *â¡ ð ïž*.
+
+â«ïž ðª â , ðŒ, ðš ð ð âïž ðª.
+
+## ðš `Response`
+
+ð, ð ðª ðš ð `Response` âïž ð ð§-ð â«ïž.
+
+!!! tip
+ `JSONResponse` â«ïž ð§-ð `Response`.
+
+& ðâ ð ðš `Response`, **FastAPI** ð ð¶ââïž â«ïž ð.
+
+â«ïž ð ð« ð ðœ ð ïž â®ïž Pydantic ð·, â«ïž ð ð« ð ð ð ð, âïž.
+
+ð ð€ ð ð ðª. ð ðª ðš ð ð ð, ð ð ðœ ð âïž ð¬, âïž.
+
+## âïž `jsonable_encoder` `Response`
+
+â©ïž **FastAPI** ð« ð ð `Response` ð ðš, ð âïž â ð â«ïž ð ð â«ïž.
+
+ðŒ, ð ð«ð ð® Pydantic ð· `JSONResponse` ðµ ð¥ ð â«ïž `dict` â®ïž ð ð ð (ð `datetime`, `UUID`, âïž) ð ð»-ð ð.
+
+ð ðŒ, ð ðª âïž `jsonable_encoder` ð ð ð â ð¶ââïž â«ïž ðš:
+
+```Python hl_lines="6-7 21-22"
+{!../../../docs_src/response_directly/tutorial001.py!}
+```
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.responses import JSONResponse`.
+
+ **FastAPI** ð ð `starlette.responses` `fastapi.responses` ðª ð, ð©âð». âïž ð
ðª ðš ð ð âªïžâ¡ïž ð.
+
+## ð¬ ð `Response`
+
+ðŒ ð ðŠ ð ð ð ðª, âïž â«ïž ð« ð¶ â , ð ðª âïž ðš `item` ð, & **FastAPI** ð ð® â«ïž `JSONResponse` ð, ð â«ïž `dict`, âïž. ð ð ð¢.
+
+ð, â¡ïž ð â ð ðª âïž ð ðš ð ðš.
+
+â¡ïž ð¬ ð ð ð ðš ð ðš.
+
+ð ðª ð® ð ð ð ð», ð® â«ïž `Response`, & ðš â«ïž:
+
+```Python hl_lines="1 18"
+{!../../../docs_src/response_directly/tutorial002.py!}
+```
+
+## ð
+
+ðâ ð ðš `Response` ð ð® ð ð« â, ð (ð»), ð« ð ð.
+
+âïž ð ðª ð â«ïž ð¬ [ð ðš ð](additional-responses.md){.internal-link target=_blank}.
+
+ð ðª ð ⪠ð â âïž/ð£ ð ð `Response`â ⪠âïž ð§ ðœ ð ïž, ð§Ÿ, âïž.
diff --git a/docs/em/docs/advanced/response-headers.md b/docs/em/docs/advanced/response-headers.md
new file mode 100644
index 000000000..de798982a
--- /dev/null
+++ b/docs/em/docs/advanced/response-headers.md
@@ -0,0 +1,42 @@
+# ðš ð
+
+## âïž `Response` ð¢
+
+ð ðª ð£ ð¢ ð `Response` ð *â¡ ð ïž ð¢* (ð ðª ðª).
+
+& â€Žïž ð ðª â ð ð *ð* ðš ð.
+
+```Python hl_lines="1 7-8"
+{!../../../docs_src/response_headers/tutorial002.py!}
+```
+
+& â€Žïž ð ðª ðš ð ð ð ðª, ð ð ð ( `dict`, ðœ ð·, âïž).
+
+& ð¥ ð ð£ `response_model`, â«ïž ð âïž âœ & ð ð ð ðš.
+
+**FastAPI** ð âïž ð *ð* ðš â ð (ðª & ð ð), & ð ð® ð« ð ðš ð ð ð² ð ðš, ✠ð `response_model`.
+
+ð ðª ð£ `Response` ð¢ ð, & â ð (& ðª) ð«.
+
+## ðš `Response` ð
+
+ð ðª ð® ð ðâ ð ðš `Response` ð.
+
+â ðš ð¬ [ðš ðš ð](response-directly.md){.internal-link target=_blank} & ð¶ââïž ð ð ð¢:
+
+```Python hl_lines="10-12"
+{!../../../docs_src/response_headers/tutorial001.py!}
+```
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.responses import Response` âïž `from starlette.responses import JSONResponse`.
+
+ **FastAPI** ð ð `starlette.responses` `fastapi.responses` ðª ð, ð©âð». âïž ð
ðª ðš ð ð âªïžâ¡ïž ð.
+
+ & `Response` ðª âïž ð â ð & ðª, **FastAPI** ð â«ïž `fastapi.Response`.
+
+## ð ð
+
+âïž ð€¯ ð ð © ð ðª ð® âïž 'â-' ð¡.
+
+âïž ð¥ ð âïž ð ð ð ð ð ð©âð» ð¥ ðª ð, ð ðª ð® ð« ð â ð³ (â ð
[â (âïž-ðšð³ â¹ ð€)](../tutorial/cors.md){.internal-link target=_blank}), âïž ð¢ `expose_headers` ð ð â ð©º.
diff --git a/docs/em/docs/advanced/security/http-basic-auth.md b/docs/em/docs/advanced/security/http-basic-auth.md
new file mode 100644
index 000000000..33470a726
--- /dev/null
+++ b/docs/em/docs/advanced/security/http-basic-auth.md
@@ -0,0 +1,113 @@
+# ðºðžð ð° ð
+
+ð
ðŒ, ð ðª âïž ðºðžð ð° ð.
+
+ðºðžð ð° ð, ðž â ð ð ð ð & ð.
+
+ð¥ â«ïž ð« ðš â«ïž, â«ïž ðš ðºðžð 4ïžâ£0ïžâ£1ïžâ£ "â" â.
+
+& ðš ð `WWW-Authenticate` â®ïž ð² `Basic`, & ðŠ `realm` ð¢.
+
+ð ð¬ ð¥ ðŠ ð ïž ð ð & ð.
+
+‎ïž, ðâ ð ð ð ð & ð, ð¥ ðš ð« ð ð.
+
+## ð
ðºðžð ð° ð
+
+* ð `HTTPBasic` & `HTTPBasicCredentials`.
+* â "`security` â" âïž `HTTPBasic`.
+* âïž ð `security` â®ïž ð ð *â¡ ð ïž*.
+* â«ïž ðš ð ð `HTTPBasicCredentials`:
+ * â«ïž ð `username` & `password` ðš.
+
+```Python hl_lines="2 6 10"
+{!../../../docs_src/security/tutorial006.py!}
+```
+
+ðâ ð ð ð ð ð¥ ð° (âïž ð "ð ïž" ðŒ ð©º) ð¥ ð ð ð ð ð & ð:
+
+
+
+## â
ð
+
+ð¥ ð
ð ðŒ.
+
+âïž ð â
ð¥ ð & ð â.
+
+ð, âïž ð ð© ð¹ `secrets` â
ð & ð.
+
+`secrets.compare_digest()` ðª â `bytes` âïž `str` ð ðŽ ð ð ðŠ¹ (ð ðªðž), ð â â«ïž ð«ð ð· â®ïž ðŠ¹ ð `á`, `Sebastián`.
+
+ðµ ð, ð¥ ð¥ ð `username` & `password` `bytes` ð¢ ð« â®ïž ð -8ïžâ£.
+
+â€Žïž ð¥ ðª âïž `secrets.compare_digest()` ð ð `credentials.username` `"stanleyjobson"`, & ð `credentials.password` `"swordfish"`.
+
+```Python hl_lines="1 11-21"
+{!../../../docs_src/security/tutorial007.py!}
+```
+
+ð ð ð:
+
+```Python
+if not (credentials.username == "stanleyjobson") or not (credentials.password == "swordfish"):
+ # Return some error
+ ...
+```
+
+âïž âïž `secrets.compare_digest()` â«ïž ð ð ð¡ ð ð ð€ "ð° ð".
+
+### â² ð
+
+âïž â«ïžâ "â² ð"â
+
+â¡ïž ð ð ð ð ð & ð.
+
+& ð« ðš ðš â®ïž ð `johndoe` & ð `love123`.
+
+â€Žïž ð ð ð ðž ð ð ð³ ð:
+
+```Python
+if "johndoe" == "stanleyjobson" and "love123" == "swordfish":
+ ...
+```
+
+âïž â¶ïžïž ð ð ð¬ ð¥ `j` `johndoe` ð¥ `s` `stanleyjobson`, â«ïž ð ðš `False`, â©ïž â«ïž ⪠ð ð ð 2ïžâ£ ð» ð« ð, ð ð "ð€ ð
ââ ðª ð ð
ð â ð ð€". & ð ðž ð ð¬ "â ð©âð» âïž ð".
+
+âïž â€Žïž ð ð â®ïž ð `stanleyjobsox` & ð `love123`.
+
+& ð ðž ð ðš ð³ ð:
+
+```Python
+if "stanleyjobsox" == "stanleyjobson" and "love123" == "swordfish":
+ ...
+```
+
+ð ð âïž ð¬ ð `stanleyjobso` ð¯ââïž `stanleyjobsox` & `stanleyjobson` â ð€ ð ð¯ââïž ð» ð« ð. â«ïž ð â â â² ðš ð "â ð©âð» âïž ð".
+
+#### ð° â â¹ ð
+
+ð â, ð ð ðœ â â² ð ðš "â ð©âð» âïž ð" ðš, ð ð ð ð ð« ð€ _ð³_ â¶ïžïž, â¶ïž ð€ â¶ïžïž.
+
+& â€Žïž ð« ðª ð ð ð€ ð â«ïž ð² ð³ ð ð `stanleyjobsox` ð `johndoe`.
+
+#### "ðŽ" ð
+
+âïž, ð ð ð« ð ð ð â, ð« ð â ð â«ïž, ð² â®ïž ð¯ âïž ð¯ ð¯ ð ð¥. & ð ð€ 1ïžâ£ â â ð€ ð°.
+
+âïž ðš ð, â² âïž ð ð ð âïž ð â ð & ð, â®ïž "â¹" ð ðž, âïž ð° â â.
+
+#### ð§ â«ïž â®ïž `secrets.compare_digest()`
+
+âïž ð ð ð¥ ð€ âïž `secrets.compare_digest()`.
+
+ð, â«ïž ð â ð ð° ð¬ `stanleyjobsox` `stanleyjobson` ð â«ïž â ð¬ `johndoe` `stanleyjobson`. & ð ð.
+
+ð ð, âïž `secrets.compare_digest()` ð ðž ð, â«ïž ð ð ð¡ ð ð â ðââ ð.
+
+### ðš â
+
+â®ïž ð ð ð â, ðš `HTTPException` â®ïž ð ð 4ïžâ£0ïžâ£1ïžâ£ (ð ðš ðâ ð
ââ ð ð) & ð® ð `WWW-Authenticate` â ð¥ ðŠ ð³ ð ð:
+
+```Python hl_lines="23-27"
+{!../../../docs_src/security/tutorial007.py!}
+```
diff --git a/docs/em/docs/advanced/security/index.md b/docs/em/docs/advanced/security/index.md
new file mode 100644
index 000000000..20ee85553
--- /dev/null
+++ b/docs/em/docs/advanced/security/index.md
@@ -0,0 +1,16 @@
+# ð§ ðââ - ð¶
+
+## ð â
+
+ð€ â â ðµ ðââ âïž âªïžâ¡ïž ð ð [ð° - ð©âð» ðŠ®: ðââ](../../tutorial/security/){.internal-link target=_blank}.
+
+!!! tip
+ â ð **ð« ð¯ "ð§"**.
+
+ & â«ïž ðª ð ð âïž ðŒ, â 1ïžâ£ ð«.
+
+## â ð° ð¥
+
+â ð ð€ ð ⪠â ð [ð° - ð©âð» ðŠ®: ðââ](../../tutorial/security/){.internal-link target=_blank}.
+
+ð« ð âïž ð ð ð§, âïž â â ð ïž.
diff --git a/docs/em/docs/advanced/security/oauth2-scopes.md b/docs/em/docs/advanced/security/oauth2-scopes.md
new file mode 100644
index 000000000..a4684352c
--- /dev/null
+++ b/docs/em/docs/advanced/security/oauth2-scopes.md
@@ -0,0 +1,269 @@
+# Oauth2ïžâ£ â
+
+ð ðª âïž Oauth2ïžâ£ â ð â®ïž **FastAPI**, ð« ð ïž ð· ð.
+
+ð ð â ð âïž ð ð-𧜠â âïž, ð Oauth2ïžâ£ ð©, ð ïž ð ð ð ðž (& ð ïž ð©º).
+
+Oauth2ïžâ£ â®ïž â ð ïž âïž ð ðŠ ð€ ðâðŠº, ð ð±ð, ðºðžð, ð, ð€žââ, ð±ð, âïž. ð« âïž â«ïž ð ð¯ â ð©âð» & ðž.
+
+ð ð° ð "ð¹ â®ïž" ð±ð, ðºðžð, ð, ð€žââ, ð±ð, ð ðž âïž Oauth2ïžâ£ â®ïž â.
+
+ð ð ð ð ð â ð ïž ð€ & â â®ïž ð Oauth2ïžâ£ â®ïž â ð **FastAPI** ðž.
+
+!!! warning
+ ð ð
âïž ð ð§ ð. ð¥ ð â¶ïž, ð ðª ð¶ â«ïž.
+
+ ð ð« ð¯ ðª Oauth2ïžâ£ â, & ð ðª ðµ ð€ & â ð ð ð.
+
+ âïž Oauth2ïžâ£ â®ïž â ðª ð ð ïž ð ð ð ïž (â®ïž ð) & ð ð ïž ð©º.
+
+ ð, ð ð ïž ð â, âïž ð ð ðââ/â ð, ð ð ðª, ð ð.
+
+ ð ðŒ, Oauth2ïžâ£ â®ïž â ðª ð¹.
+
+ âïž ð¥ ð ð ð ðª â«ïž, âïž ð ð, ð§ ð.
+
+## Oauth2ïžâ£ â & ð
+
+Oauth2ïžâ£ ð§ ð¬ "â" ð ð» ð ð.
+
+ð ð ð ð» ðª âïž ð ð, âïž ð ð« ð ð.
+
+ð« â ðš "â".
+
+ð (â
ð ïž ð©º), ð ðª ð¬ "ðââ â".
+
+ðâ 1ïžâ£ ð« ðââ â âïž Oauth2ïžâ£, ð ðª ð£ & âïž â.
+
+ð "â" ð» (ðµ ð).
+
+ð« ð âïž ð£ ð¯ ðââ â, ðŒ:
+
+* `users:read` âïž `users:write` â ðŒ.
+* `instagram_basic` âïž ð±ð / ð±ð.
+* `https://www.googleapis.com/auth/drive` âïž ðºðžð.
+
+!!! info
+ Oauth2ïžâ£ "â" ð» ð ð£ ð¯ â â.
+
+ â«ïž ð« ð€ ð¥ â«ïž âïž ð ðŠ¹ ð `:` âïž ð¥ â«ïž ð.
+
+ ð â¹ ð ïž ð¯.
+
+ Oauth2ïžâ£ ð« ð».
+
+## ð ð
+
+ð¥, â¡ïž ð ð ð ð ð âªïžâ¡ïž ðŒ ð **ð° - ð©âð» ðŠ®** [Oauth2ïžâ£ â®ïž ð (& ð), ðš â®ïž ð¥ ð€](../../tutorial/security/oauth2-jwt.md){.internal-link target=_blank}. ð âïž Oauth2ïžâ£ â:
+
+```Python hl_lines="2 4 8 12 46 64 105 107-115 121-124 128-134 139 153"
+{!../../../docs_src/security/tutorial005.py!}
+```
+
+ð â¡ïž ð ð ð ð ð.
+
+## Oauth2ïžâ£ ðââ â
+
+ð¥ ð ð ð ð¥ ð£ Oauth2ïžâ£ ðââ â â®ïž 2ïžâ£ ðª â, `me` & `items`.
+
+`scopes` ð¢ ðš `dict` â®ïž ð â ð & ð ð²:
+
+```Python hl_lines="62-65"
+{!../../../docs_src/security/tutorial005.py!}
+```
+
+â©ïž ð¥ ð ð£ ð â, ð« ð ðŠ ð ð ïž ð©º ðâ ð ð¹-/â.
+
+& ð ð ðª ð â â ð ð ð€ ð: `me` & `items`.
+
+ð ð ð ïž âïž ðâ ð ð€ â ⪠ðš â®ïž ð±ð, ðºðžð, ð, âïž:
+
+
+
+## ð¥ ð€ â®ïž â
+
+ð, ð ð€ *â¡ ð ïž* ðš â ðš.
+
+ð¥ âïž ð `OAuth2PasswordRequestForm`. â«ïž ð ð `scopes` â®ïž `list` `str`, â®ïž ð â â«ïž ðš ðš.
+
+& ð¥ ðš â ð ð¥ ð€.
+
+!!! danger
+ ðŠ, ð¥ ð¥ â â ðš ð ð€.
+
+ âïž ð ðž, ðââ, ð ð â ð ð ðŽ ð® â ð ð©âð» ð€ ðª âïž, âïž ð ð âïž ð.
+
+```Python hl_lines="153"
+{!../../../docs_src/security/tutorial005.py!}
+```
+
+## ð£ â *â¡ ð ïž* & ð
+
+ð ð¥ ð£ ð *â¡ ð ïž* `/users/me/items/` ð â `items`.
+
+ð, ð¥ ð & âïž `Security` âªïžâ¡ïž `fastapi`.
+
+ð ðª âïž `Security` ð£ ð (ð `Depends`), âïž `Security` ðš ð¢ `scopes` â®ïž ð â (ð»).
+
+ð ðŒ, ð¥ ð¶ââïž ð ð¢ `get_current_active_user` `Security` (ð ð ð¥ ð â®ïž `Depends`).
+
+âïž ð¥ ð¶ââïž `list` â, ð ðŒ â®ïž 1ïžâ£ â: `items` (â«ïž ðª âïž ð
).
+
+& ð ð¢ `get_current_active_user` ðª ð£ ð§-ð, ð« ðŽ â®ïž `Depends` âïž â®ïž `Security`. ð£ ð® ð ð§-ð ð¢ (`get_current_user`), & ð â ð.
+
+ð ðŒ, â«ïž ð â `me` (â«ïž ðª ð ð
ð 1ïžâ£ â).
+
+!!! note
+ ð ð« ð¯ ðª ð® ð â ð ð¥.
+
+ ð¥ ðš â«ïž ð¥ ðŠ â **FastAPI** ðµ â ð£ ð ð.
+
+```Python hl_lines="4 139 166"
+{!../../../docs_src/security/tutorial005.py!}
+```
+
+!!! info "ð¡ â¹"
+ `Security` ð€ ð¿ `Depends`, & â«ïž âïž 1ïžâ£ â ð¢ ð ð¥ ð ð âª.
+
+ âïž âïž `Security` â©ïž `Depends`, **FastAPI** ð ð ð â«ïž ðª ð£ ðââ â, âïž ð« ð, & ð ð ïž â®ïž ð.
+
+ âïž ðâ ð ð `Query`, `Path`, `Depends`, `Security` & ð âªïžâ¡ïž `fastapi`, ð ð€ ð¢ ð ðš ð ð.
+
+## âïž `SecurityScopes`
+
+ð â¹ ð `get_current_user`.
+
+ð 1ïžâ£ âïž ð ð.
+
+ð¥ ð¥ âïž ð Oauth2ïžâ£ â ð¥ â â, ð£ â«ïž ð: `oauth2_scheme`.
+
+â©ïž ð ð ð¢ ð« âïž ð â ð â«ïž, ð¥ ðª âïž `Depends` â®ïž `oauth2_scheme`, ð¥ ð« âïž âïž `Security` ðâ ð¥ ð« ðª â ðââ â.
+
+ð¥ ð£ ð ð¢ ð `SecurityScopes`, ð âªïžâ¡ïž `fastapi.security`.
+
+ð `SecurityScopes` ð ð `Request` (`Request` âïž ð€ ðš ð ð).
+
+```Python hl_lines="8 105"
+{!../../../docs_src/security/tutorial005.py!}
+```
+
+## âïž `scopes`
+
+ð¢ `security_scopes` ð ð `SecurityScopes`.
+
+â«ïž ð âïž ð `scopes` â®ïž ð â ð â â â«ïž & ð ð ð âïž ð ð§-ð. ð â, ð "âïž"... ð ðª ð ðš, â«ïž ð¬ ð ⪠ð.
+
+`security_scopes` ð (ð `SecurityScopes`) ð `scope_str` ð¢ â®ïž ð ð», ð ð â ðœ ð (ð¥ ð âïž â«ïž).
+
+ð¥ â `HTTPException` ð ð¥ ðª ð€-âïž (`raise`) ⪠ð â.
+
+ð â , ð¥ ð â ð (ð¥ ð) ð» ðœ ð (âïž `scope_str`). ð¥ ð® ð ð» â â `WWW-Authenticate` ð (ð ð ð).
+
+```Python hl_lines="105 107-115"
+{!../../../docs_src/security/tutorial005.py!}
+```
+
+## â `username` & ðœ ð
+
+ð¥ â ð ð¥ ð€ `username`, & â â.
+
+& â€Žïž ð¥ â ð ð â®ïž Pydantic ð· (â `ValidationError` â ), & ð¥ ð¥ ð€ â ð ð¥ ð€ âïž â ð â®ïž Pydantic, ð¥ ð€ `HTTPException` ð¥ â â.
+
+ð, ð¥ â¹ Pydantic ð· `TokenData` â®ïž ð ð `scopes`.
+
+â ð â®ïž Pydantic ð¥ ðª â ð ð ð¥ âïž, ðŒ, â«ïžâ `list` `str` â®ïž â & `str` â®ïž `username`.
+
+â©ïž, ðŒ, `dict`, âïž ð³ ð, â«ïž ðª ð ðž â âª, â â«ïž ðââ â .
+
+ð¥ â ð ð¥ âïž ð©âð» â®ïž ð ð, & ð¥ ð«, ð¥ ð€ ð ð â ð¥ â â.
+
+```Python hl_lines="46 116-127"
+{!../../../docs_src/security/tutorial005.py!}
+```
+
+## â `scopes`
+
+ð¥ ð â ð ð â â, ð ð & ð âïž (ð *â¡ ð ïž*), ð â ð ð€ ðš, ⪠ð€ `HTTPException`.
+
+ð, ð¥ âïž `security_scopes.scopes`, ð ð `list` â®ïž ð ð« â `str`.
+
+```Python hl_lines="128-134"
+{!../../../docs_src/security/tutorial005.py!}
+```
+
+## ð ð² & â
+
+â¡ïž ð ð ð ð ð² & â.
+
+`get_current_active_user` ð âïž ð§-ð ð `get_current_user`, â `"me"` ð£ `get_current_active_user` ð ð ð â â `security_scopes.scopes` ð¶ââïž `get_current_user`.
+
+*â¡ ð ïž* â«ïž ð£ â, `"items"`, ð ð ð `security_scopes.scopes` ð¶ââïž `get_current_user`.
+
+ð¥ â ð ð & â ð ð:
+
+* *â¡ ð ïž* `read_own_items` âïž:
+ * â â `["items"]` â®ïž ð:
+ * `get_current_active_user`:
+ * ð ð¢ `get_current_active_user` âïž:
+ * â â `["me"]` â®ïž ð:
+ * `get_current_user`:
+ * ð ð¢ `get_current_user` âïž:
+ * ð
ââ â â â«ïž.
+ * ð âïž `oauth2_scheme`.
+ * `security_scopes` ð¢ ð `SecurityScopes`:
+ * ð `security_scopes` ð¢ âïž ð `scopes` â®ïž `list` â ð ð« â ð£ ð,:
+ * `security_scopes.scopes` ð ð `["me", "items"]` *â¡ ð ïž* `read_own_items`.
+ * `security_scopes.scopes` ð ð `["me"]` *â¡ ð ïž* `read_users_me`, â©ïž â«ïž ð£ ð `get_current_active_user`.
+ * `security_scopes.scopes` ð ð `[]` (ð³) *â¡ ð ïž* `read_system_status`, â©ïž â«ïž ð« ð£ ð `Security` â®ïž `scopes`, & ð® ð, `get_current_user`, ð« ð£ ð `scope` ð¯ââïž.
+
+!!! tip
+ â & "ð±" ð ð¥ ð `get_current_user` ð âïž ð ð `scopes` â
ð *â¡ ð ïž*.
+
+ ð âïž ð `scopes` ð£ ð *â¡ ð ïž* & ð ð ð ð² ð ð¯ *â¡ ð ïž*.
+
+## ð â¹ ð `SecurityScopes`
+
+ð ðª âïž `SecurityScopes` ð â, & ð ð¥, â«ïž ð« âïž "ð±" ð.
+
+â«ïž ð ð§ âïž ðââ â ð£ â®ïž `Security` ð & ð âïž **ð ð¯** *â¡ ð ïž* & **ð ð¯** ð ð².
+
+â©ïž `SecurityScopes` ð âïž ð â ð£ âïž, ð ðª âïž â«ïž â ð ð€ âïž ð â ðšð« ð ð¢, & â€Žïž ð£ ð â ð ð *â¡ ð ïž*.
+
+ð« ð â
â¡ ð *â¡ ð ïž*.
+
+## â
â«ïž
+
+ð¥ ð ð ð ïž ð©º, ð ðª ð & â â â ð ð â.
+
+
+
+ð¥ ð ð« ð ð â, ð ð "ð", âïž ðâ ð ð ð `/users/me/` âïž `/users/me/items/` ð ð ð€ â ð¬ ð ð ð« âïž ð¥ â. ð ð ðª ð `/status/`.
+
+& ð¥ ð ð â `me` âïž ð« â `items`, ð ð ðª ð `/users/me/` âïž ð« `/users/me/items/`.
+
+ð â«ïžâ ð ðš ð¥ 𥳠ðž ð ð ð 1ïžâ£ ð« *â¡ ð ïž* â®ïž ð€ ð ð©âð», âïž ð â ð â ð©âð» ð€ ðž.
+
+## ð ð¥ 𥳠ð ïž
+
+ð ðŒ ð¥ âïž Oauth2ïžâ£ "ð" ð§.
+
+ð â ðâ ð¥ ðš ð ð ðž, ð² â®ïž ð ð ðž.
+
+â©ïž ð¥ ðª ð â«ïž ðš `username` & `password`, ð¥ ð â«ïž.
+
+âïž ð¥ ð ð Oauth2ïžâ£ ðž ð ð ð ð (â¡, ð¥ ð ð ð€ ðâðŠº ð ð±ð, ðºðžð, ð, âïž.) ð ð âïž 1ïžâ£ ð ð§.
+
+ð
â ð ð§.
+
+ð ð ð ð§, âïž ð ð ð ïž â«ïž ð ð
ð¶. â«ïž ð
ð, ð ðâðŠº ð ð â ð ð§.
+
+!!! note
+ â«ïž â ð ð ð€ ðâðŠº ð ð« ð§ ð ð, â â«ïž ð ð« ð·.
+
+ âïž ð, ð« ð ïž ð Oauth2ïžâ£ ð©.
+
+**FastAPI** ð ð ð ð« Oauth2ïžâ£ ð€ ð§ `fastapi.security.oauth2`.
+
+## `Security` ðšâðš `dependencies`
+
+ð ð ð ðª ð¬ `list` `Depends` ðšâðš `dependencies` ð¢ (ð¬ [ð â¡ ð ïž ðšâðš](../../tutorial/dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank}), ð ðª âïž `Security` â®ïž `scopes` ð€.
diff --git a/docs/em/docs/advanced/settings.md b/docs/em/docs/advanced/settings.md
new file mode 100644
index 000000000..bc50bf755
--- /dev/null
+++ b/docs/em/docs/advanced/settings.md
@@ -0,0 +1,382 @@
+# â & ð ð¢
+
+ð ðŒ ð ðž ðª ðª ð¢ â âïž ð³, ðŒ ã ð, ðœ ð, ð ð§ ðâðŠº, âïž.
+
+ð ð« â ð¢ (ðª ð), ð ðœ ð. & ð ðª ð¿, ð ã.
+
+ð ð€ â«ïž â ð ð« ð ð¢ ð â ðž.
+
+## ð ð¢
+
+!!! tip
+ ð¥ ð ⪠ð â«ïžâ "ð ð¢" & â âïž ð«, ð ð ð¶ â ð ð.
+
+ð ð¢ (ð "ðšð» {") ð¢ ð ð ð ð ð, ðââ âïž, & ðª â ð ð ð (âïž ð ð ð).
+
+ð ðª â & âïž ð ð¢ ð, ðµ ðââ ð:
+
+=== "ðŸ, ðžð», ðª ð"
+
+
+
+ ```console
+ // You could create an env var MY_NAME with
+ $ export MY_NAME="Wade Wilson"
+
+ // Then you could use it with other programs, like
+ $ echo "Hello $MY_NAME"
+
+ Hello Wade Wilson
+ ```
+
+
+
+=== "ðª ð"
+
+
+
+ ```console
+ // Create an env var MY_NAME
+ $ $Env:MY_NAME = "Wade Wilson"
+
+ // Use it with other programs, like
+ $ echo "Hello $Env:MY_NAME"
+
+ Hello Wade Wilson
+ ```
+
+
+
+### â ðšð» {ð
+
+ð ðª â ð ð¢ ð ð, ð¶ (âïž â®ïž ð ð ð©âð¬), & â€Žïž â ð« ð.
+
+ðŒ ð ðª âïž ð `main.py` â®ïž:
+
+```Python hl_lines="3"
+import os
+
+name = os.getenv("MY_NAME", "World")
+print(f"Hello {name} from Python")
+```
+
+!!! tip
+ ð¥ â `os.getenv()` ð¢ ð² ðš.
+
+ ð¥ ð« ð, â«ïž `None` ð¢, ð¥ ð¥ ð `"World"` ð¢ ð² âïž.
+
+â€Žïž ð ðª ð€ ð ð ð:
+
+
+
+```console
+// Here we don't set the env var yet
+$ python main.py
+
+// As we didn't set the env var, we get the default value
+
+Hello World from Python
+
+// But if we create an environment variable first
+$ export MY_NAME="Wade Wilson"
+
+// And then call the program again
+$ python main.py
+
+// Now it can read the environment variable
+
+Hello Wade Wilson from Python
+```
+
+
+
+ð ð¢ ðª â ð ð, âïž ðª â ð, & ð« âïž ðª (ð `git`) â®ïž ð ð, â«ïž â âïž ð« ð³ âïž â.
+
+ð ðª â ð ð¢ ðŽ ð¯ ð ðŒ, ð ðŽ ðª ð ð, & ðŽ ð® ð.
+
+ð, â â«ïž â¶ïžïž â ð â«ïž, ð ð âž:
+
+
+
+```console
+// Create an env var MY_NAME in line for this program call
+$ MY_NAME="Wade Wilson" python main.py
+
+// Now it can read the environment variable
+
+Hello Wade Wilson from Python
+
+// The env var no longer exists afterwards
+$ python main.py
+
+Hello World from Python
+```
+
+
+
+!!! tip
+ ð ðª â ð
ð â«ïž 1ïžâ£2ïžâ£-â ð±: ð.
+
+### ð & ð¬
+
+ð« ð ð¢ ðª ðŽ ðµ â ð», ð« ð¢ ð & âïž ð â®ïž ð ð & ð âïž (& â®ïž ð ðââ âïž, ðŸ, ðª, ðžð»).
+
+ð â ð ð ð² â ð âªïžâ¡ïž ð ð¢ ð `str`, & ð ð ïž ð ð âïž ð¬ âïž ðš ð.
+
+## Pydantic `Settings`
+
+ð, Pydantic ð ð ð ðµ ð« â ð âªïžâ¡ïž ð ð¢ â®ïž Pydantic: â ð§Ÿ.
+
+### â `Settings` ð
+
+ð `BaseSettings` âªïžâ¡ïž Pydantic & â ð§-ð, ð¶ ð
ð â®ïž Pydantic ð·.
+
+ð ð â®ïž Pydantic ð·, ð ð£ ð ð¢ â®ïž ð â, & ð² ð¢ ð².
+
+ð ðª âïž ð ð ð¬ â & 𧰠ð âïž Pydantic ð·, ð ð ð ð & ð ð¬ â®ïž `Field()`.
+
+```Python hl_lines="2 5-8 11"
+{!../../../docs_src/settings/tutorial001.py!}
+```
+
+!!! tip
+ ð¥ ð ð ð³ â© ð & ð, ð« âïž ð ðŒ, âïž ð 1ïžâ£ ð.
+
+‎ïž, ðâ ð â ð ð `Settings` ð (ð ðŒ, `settings` ð), Pydantic ð â ð ð¢ ðŒ-ð ð,, â-ðŒ ð¢ `APP_NAME` ð â ð¢ `app_name`.
+
+â â«ïž ð ð & â ðœ. , ðâ ð âïž ð `settings` ð, ð ð âïž ð ð ð ð£ (â
`items_per_user` ð `int`).
+
+### âïž `settings`
+
+â€Žïž ð ðª âïž ð `settings` ð ð ðž:
+
+```Python hl_lines="18-20"
+{!../../../docs_src/settings/tutorial001.py!}
+```
+
+### ð ðœ
+
+â, ð ð ð ðœ ð¶ââïž ð³ ð ð¢, ðŒ ð ðª â `ADMIN_EMAIL` & `APP_NAME` â®ïž:
+
+
+
+```console
+$ ADMIN_EMAIL="deadpool@example.com" APP_NAME="ChimichangApp" uvicorn main:app
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+!!! tip
+ â ð ðšð» {ð ð ð ð« â®ïž ð, & ð® ð« ð â ð.
+
+& â€Žïž `admin_email` â ð â `"deadpool@example.com"`.
+
+`app_name` ð `"ChimichangApp"`.
+
+& `items_per_user` ð ð§ ð® ð¢ ð² `50`.
+
+## â â1ïžâ£ ð¹
+
+ð ðª ð® ð â â1ïžâ£ ð¹ ð ð ð [ðŠ ðž - ð ð](../tutorial/bigger-applications.md){.internal-link target=_blank}.
+
+ðŒ, ð ðª âïž ð `config.py` â®ïž:
+
+```Python
+{!../../../docs_src/settings/app01/config.py!}
+```
+
+& â€Žïž âïž â«ïž ð `main.py`:
+
+```Python hl_lines="3 11-13"
+{!../../../docs_src/settings/app01/main.py!}
+```
+
+!!! tip
+ ð ð ðª ð `__init__.py` ð ð ð [ðŠ ðž - ð ð](../tutorial/bigger-applications.md){.internal-link target=_blank}.
+
+## â ð
+
+ðŸ â«ïž 5ïžâ£ð â ð â âªïžâ¡ïž ð, â©ïž âïž ð ð â®ïž `settings` ð âïž ð.
+
+ð ðª âŽïž â â®ïž ð¬, â«ïž ð¶ â© ð ð â®ïž ð ð ð â.
+
+### ð ð
+
+ð âªïžâ¡ïž â®ïž ðŒ, ð `config.py` ð ðª ð ð:
+
+```Python hl_lines="10"
+{!../../../docs_src/settings/app02/config.py!}
+```
+
+ð ð ð ð¥ ð« â ð¢ ð `settings = Settings()`.
+
+### ð ð± ð
+
+ð ð¥ â ð ð ðš ð `config.Settings()`.
+
+```Python hl_lines="5 11-12"
+{!../../../docs_src/settings/app02/main.py!}
+```
+
+!!! tip
+ ð¥ ð ð¬ `@lru_cache()` ð.
+
+ ð ð ðª ð€ `get_settings()` ð ð¢.
+
+& â€Žïž ð¥ ðª ð â«ïž âªïžâ¡ïž *â¡ ð ïž ð¢* ð & âïž â«ïž ð ð¥ ðª â«ïž.
+
+```Python hl_lines="16 18-20"
+{!../../../docs_src/settings/app02/main.py!}
+```
+
+### â & ð¬
+
+â€Žïž â«ïž ð ð¶ â© ð ð â ð â®ïž ð¬ ð ð ð `get_settings`:
+
+```Python hl_lines="9-10 13 21"
+{!../../../docs_src/settings/app02/test_main.py!}
+```
+
+ð ð ð¥ â ð ð² `admin_email` ðâ ð ð `Settings` ð, & â€Žïž ð¥ ðš ð ð ð.
+
+â€Žïž ð¥ ðª ð¯ ð â«ïž âïž.
+
+## ð `.env` ð
+
+ð¥ ð âïž ð â ð ð² ð ð, ð² ð ð, â«ïž 5ïžâ£ð â ð® ð« ð ð & â€Žïž â ð« âªïžâ¡ïž â«ïž ð¥ ð« ð ð¢.
+
+ð ð¡ â ð¥ ð â«ïž âïž ð, ð« ð ð¢ ð ð¥ ð `.env`, & ð ð€ "ðšð»".
+
+!!! tip
+ ð â¶ïž â®ïž ⣠(`.`) ðµââ ð ð¥-ð âïž, ð ðŸ & ðžð».
+
+ âïž ðšð» ð ð« ð€ âïž âïž ð â ð.
+
+Pydantic âïž ðâðŠº ð âªïžâ¡ïž ð ð ð âïž ð¢ ð. ð ðª â ð Pydantic â: ðšð» (.ðšð») ðâðŠº.
+
+!!! tip
+ ð ð·, ð ðª `pip install python-dotenv`.
+
+### `.env` ð
+
+ð ðª âïž `.env` ð â®ïž:
+
+```bash
+ADMIN_EMAIL="deadpool@example.com"
+APP_NAME="ChimichangApp"
+```
+
+### â â âªïžâ¡ïž `.env`
+
+& â€Žïž â¹ ð `config.py` â®ïž:
+
+```Python hl_lines="9-10"
+{!../../../docs_src/settings/app03/config.py!}
+```
+
+ð¥ ð¥ â ð `Config` ð ð Pydantic `Settings` ð, & â `env_file` ð â®ïž ðšð» ð ð¥ ð âïž.
+
+!!! tip
+ `Config` ð âïž Pydantic ð³. ð ðª â ð Pydantic ð· ð
+
+### ð `Settings` ðŽ ð â®ïž `lru_cache`
+
+ð ð âªïžâ¡ïž ðŸ ð â (ð) ð ïž, ð ð² ð â«ïž ðŽ ð & â€Žïž ð€-âïž ð â ð, â©ïž ð â«ïž ð ðš.
+
+âïž ð ð° ð¥:
+
+```Python
+Settings()
+```
+
+ð `Settings` ð ð â, & ð â«ïž ð â `.env` ð ð.
+
+ð¥ ð ð¢ ð:
+
+```Python
+def get_settings():
+ return Settings()
+```
+
+ð¥ ð â ð ð ð ðš, & ð¥ ð ð `.env` ð ð ðš. ð¶ ð¶
+
+âïž ð¥ âïž `@lru_cache()` ðšâðš ð ð, `Settings` ð ð â ðŽ ð, ð¥ ð° â«ïž ð€. ð¶ ð¶
+
+```Python hl_lines="1 10"
+{!../../../docs_src/settings/app03/main.py!}
+```
+
+â€Žïž ð ð ð€ `get_settings()` ð â ðš, â©ïž ð ïž ð ð `get_settings()` & ð ð `Settings` ð, â«ïž ð ðš ð ð ð ðš ð ð¥ ð€, ð & ð.
+
+#### `lru_cache` ð¡ â¹
+
+`@lru_cache()` ð ð¢ â«ïž ð ðš ð ð² ð ðš ð¥ ð°, â©ïž ð» â«ïž ð, ð ïž ð ð¢ ð ð°.
+
+, ð¢ ð â«ïž ð ð ïž ð ð ð â. & â€Žïž ð² ðš ð ð ð â ð âïž ð & ð ðâ ð¢ ð€ â®ïž â«ïžâ ð ð â.
+
+ðŒ, ð¥ ð âïž ð¢:
+
+```Python
+@lru_cache()
+def say_hi(name: str, salutation: str = "Ms."):
+ return f"Hello {salutation} {name}"
+```
+
+ð ð ðª ð ïž ð ð:
+
+```mermaid
+sequenceDiagram
+
+participant code as Code
+participant function as say_hi()
+participant execute as Execute function
+
+ rect rgba(0, 255, 0, .1)
+ code ->> function: say_hi(name="Camila")
+ function ->> execute: execute function code
+ execute ->> code: return the result
+ end
+
+ rect rgba(0, 255, 255, .1)
+ code ->> function: say_hi(name="Camila")
+ function ->> code: return stored result
+ end
+
+ rect rgba(0, 255, 0, .1)
+ code ->> function: say_hi(name="Rick")
+ function ->> execute: execute function code
+ execute ->> code: return the result
+ end
+
+ rect rgba(0, 255, 0, .1)
+ code ->> function: say_hi(name="Rick", salutation="Mr.")
+ function ->> execute: execute function code
+ execute ->> code: return the result
+ end
+
+ rect rgba(0, 255, 255, .1)
+ code ->> function: say_hi(name="Rick")
+ function ->> code: return stored result
+ end
+
+ rect rgba(0, 255, 255, .1)
+ code ->> function: say_hi(name="Camila")
+ function ->> code: return stored result
+ end
+```
+
+ðŒ ð ð `get_settings()`, ð¢ ð« â ð â, â«ïž ð§ ðš ð ð².
+
+ð ð, â«ïž ð ð ð¥ â«ïž ð ð¢. âïž â«ïž âïž ð ð¢, â€Žïž ð¥ ðª ð â«ïž ðª ð¬.
+
+`@lru_cache()` ð `functools` â ð ð ð© ð, ð ðª â ð
ð â«ïž ð 𩺠`@lru_cache()`.
+
+## ð
+
+ð ðª âïž Pydantic â ðµ â âïž ð³ ð ðž, â®ïž ð ðïž Pydantic ð·.
+
+* âïž ð ð ðª ð ð¬.
+* ð ðª âïž `.env` ð â®ïž â«ïž.
+* âïž `@lru_cache()` â¡ïž ð â ð ðšð» ð ð & ð ð ðš, ⪠ð€ ð ð â«ïž â®ïž ð¬.
diff --git a/docs/em/docs/advanced/sql-databases-peewee.md b/docs/em/docs/advanced/sql-databases-peewee.md
new file mode 100644
index 000000000..62619fc2c
--- /dev/null
+++ b/docs/em/docs/advanced/sql-databases-peewee.md
@@ -0,0 +1,529 @@
+# ð (ð) ðœ â®ïž ð
+
+!!! warning
+ ð¥ ð â¶ïž, ð° [ð (ð) ðœ](../tutorial/sql-databases.md){.internal-link target=_blank} ð âïž ðžð² ð ð¥.
+
+ ð ð ð¶ ð.
+
+ð¥ ð â¶ïž ð âªïžâ¡ïž ð, ð ð² ð» ð â®ïž ðžð² ð ([ð (ð) ðœ](../tutorial/sql-databases.md){.internal-link target=_blank}), âïž ð ð ð ð.
+
+ð¥ ð ⪠âïž ð 𧢠ð âïž ð ð, ð ðª â
ð¥ â âïž â«ïž â®ïž **FastAPI**.
+
+!!! warning "ð 3ïžâ£.7ïžâ£ â â"
+ ð ð ðª ð 3ïžâ£.7ïžâ£ âïž ð ð âïž ð â®ïž FastAPI.
+
+## ð ð
+
+ð ð« ð§ ð ð ïž, âïž â®ïž ð« ð€¯.
+
+ð âïž ðïž ð ð ð® ð¢ & ð â â«ïž ð âïž.
+
+ð¥ ð ð ïž ðž â®ïž ð ð«-ð ð ïž, & ðª ð· â®ïž ð ð® ð¢, **â«ïž ðª ð ð§°**.
+
+âïž ð¥ ð ðª ð ð¢, ðâðŠº ð ð 1ïžâ£ ð ðœ, ð· â®ïž ð ð ïž (ð FastAPI), âïž, ð ð ðª ð® ð â ð ð ð ð¢.
+
+ð, â«ïž ðª â«ïž, & ð¥ ð ð ð â«ïžâ â«ïžâ ð ð âïž ð® ðª âïž ð â®ïž FastAPI.
+
+!!! note "ð¡ â¹"
+ ð ðª â ð
ð ð ð§ ð ð ð ð©º, â, ðµð·.
+
+## ð ð±
+
+ð¥ ð â ð ðž ðžð² ð° ([ð (ð) ðœ](../tutorial/sql-databases.md){.internal-link target=_blank}).
+
+ð
ð ð€ ð.
+
+, ð¥ ð ð¯ ðŽ ð ðº.
+
+## ð ð
+
+â¡ïž ð¬ ð âïž ð ð `my_super_project` ð ð ð§-ð ð€ `sql_app` â®ïž ð ð ð:
+
+```
+.
+âââ sql_app
+ âââ __init__.py
+ âââ crud.py
+ âââ database.py
+ âââ main.py
+ âââ schemas.py
+```
+
+ð ð ð ð ð¥ âïž ðžð² ð°.
+
+ð â¡ïž ð â«ïžâ ð ð/ð¹ ðš.
+
+## â ð ð
+
+â¡ïž ð ð `sql_app/database.py`.
+
+### ð© ð ð
+
+â¡ïž ð¥ â
ð ð ð ð, â ð ðœ:
+
+```Python hl_lines="3 5 22"
+{!../../../docs_src/sql_databases_peewee/sql_app/database.py!}
+```
+
+!!! tip
+ âïž ð€¯ ð ð¥ ð ð âïž ð ðœ, ð â³, ð ð« ð« ð ð». ð ð ðª âïž ð ð ðœ ð.
+
+#### ð
+
+â:
+
+```Python
+check_same_thread=False
+```
+
+ð 1ïžâ£ ðžð² ð°:
+
+```Python
+connect_args={"check_same_thread": False}
+```
+
+...â«ïž ðª ðŽ `SQLite`.
+
+!!! info "ð¡ â¹"
+
+ â«ïžâ ð ð¡ â¹ [ð (ð) ðœ](../tutorial/sql-databases.md#note){.internal-link target=_blank} â.
+
+### â ð ð-ð `PeeweeConnectionState`
+
+ð â â®ïž ð & FastAPI ð ð âïž ð ð ð `threading.local`, & â«ïž ð« âïž ð¯ ð ð â«ïž âïž â¡ïž ð ðµ ð/ð ð (ðš ðžð² ð°).
+
+& `threading.local` ð« ð â®ïž ð ð â ð ð.
+
+!!! note "ð¡ â¹"
+ `threading.local` âïž âïž "ð±" ð¢ ð âïž ð ð² ð ð§µ.
+
+ ð â ð ð ïž ð âïž 1ïžâ£ ð 𧵠ð ðš, ð
ââ ð, ð
ââ ð.
+
+ âïž ð, ð ðš ð âïž ð® ð ðœ ð/ð, â â ð ð¥
.
+
+ âïž FastAPI, âïž ð ð â, ðª ðµ ð
ð 1ïžâ£ ðš ð ð ð§µ. & ð ð°, ð ðš, â«ïž ðª ð ð ð ð 𧵠(ð§µ), âïž ð ð¥ ð âïž `async def` âïž ð `def`. ð â«ïžâ ð€ ð ð ð FastAPI.
+
+âïž ð 3ïžâ£.7ïžâ£ & ð ð ð ð§ ð `threading.local`, ð ðª âïž ð¥ ðâ `threading.local` ð âïž, âïž ð â®ïž ð ð â.
+
+ð¥ ð âïž ð. â«ïž ð€ `contextvars`.
+
+ð¥ ð ð ð ð ð ð âïž `threading.local` & â ð« â®ïž `contextvars`, â®ïž ð â¹.
+
+ð 5ïžâ£ð ð ð ð (& â«ïž ð€), ð ð« ð€ ðª ð ð€ â â«ïž ð· âïž â«ïž.
+
+ð¥ ð â `PeeweeConnectionState`:
+
+```Python hl_lines="10-19"
+{!../../../docs_src/sql_databases_peewee/sql_app/database.py!}
+```
+
+ð ð ð âªïžâ¡ïž ð ð ð âïž ð.
+
+â«ïž âïž ð â â ð âïž `contextvars` â©ïž `threading.local`.
+
+`contextvars` ð· ð ð ð `threading.local`. âïž ð ð ð ð ð€ ð ð ð ð· â®ïž `threading.local`.
+
+, ð¥ ðª â ð± â â«ïž ð· ð¥ â«ïž âïž `threading.local`. `__init__`, `__setattr__`, & `__getattr__` ð ïž ð â ð± ð âïž ð ðµ ð€ ð â«ïž ð ð â®ïž FastAPI.
+
+!!! tip
+ ð ð â ð ð â ðâ âïž â®ïž FastAPI. ð« ð² ð âïž ðª ð ð â âïž, ð â, âïž.
+
+ âïž â«ïž ð« ð€ ð ð ð-ðïž. ð ð âïž ð `def` ð¢ & ð« `async def`.
+
+### âïž ð `PeeweeConnectionState` ð
+
+ð, ð `._state` ð ð¢ ð ðœ `db` ð âïž ð `PeeweeConnectionState`:
+
+```Python hl_lines="24"
+{!../../../docs_src/sql_databases_peewee/sql_app/database.py!}
+```
+
+!!! tip
+ â ð ð ð `db._state` *â®ïž* ð `db`.
+
+!!! tip
+ ð ð ð ð ð ð ðœ, ð `PostgresqlDatabase`, `MySQLDatabase`, âïž.
+
+## â ðœ ð·
+
+â¡ïž ð ð ð `sql_app/models.py`.
+
+### â ð ð· ð ðœ
+
+ð â ð ð· (ð) `User` & `Item`.
+
+ð ð ð ð ð¥ ð â© ð ð° & â¹ ð· âïž ð ðœ ðžð² ð°.
+
+!!! tip
+ ð âïž â "**ð·**" ð ð ð & ð ð ð â®ïž ðœ.
+
+ âïž Pydantic âïž â "**ð·**" ð ð³ ð, ðœ ð¬, ð ïž, & 𧟠ð & ð.
+
+ð `db` âªïžâ¡ïž `database` (ð `database.py` âªïžâ¡ïž ð) & âïž â«ïž ð¥.
+
+```Python hl_lines="3 6-12 15-21"
+{!../../../docs_src/sql_databases_peewee/sql_app/models.py!}
+```
+
+!!! tip
+ ð â ð ð± ð¢.
+
+ â«ïž ð ð ð® `id` ð¢ ð¢ ð ð.
+
+ â«ïž ð â ð ð âïž ð ð ð.
+
+ `Item`, â«ïž ð â ð¢ `owner_id` â®ïž ð¢ ð `User`. âïž ð¥ ð« ð£ â«ïž ð.
+
+## â Pydantic ð·
+
+ð â¡ïž â
ð `sql_app/schemas.py`.
+
+!!! tip
+ â ðš ð ð *ð·* & Pydantic *ð·*, ð¥ ð âïž ð `models.py` â®ïž ð ð·, & ð `schemas.py` â®ïž Pydantic ð·.
+
+ ð« Pydantic ð· ð¬ ð
âïž ð "ð" (â ð ð ).
+
+ ð ð â¹ ð¥ â ðš ⪠âïž ð¯ââïž.
+
+### â Pydantic *ð·* / ð
+
+â ð ð Pydantic ð· ðžð² ð°:
+
+```Python hl_lines="16-18 21-22 25-30 34-35 38-39 42-48"
+{!../../../docs_src/sql_databases_peewee/sql_app/schemas.py!}
+```
+
+!!! tip
+ ð¥ ð¥ ð ð· â®ïž `id`.
+
+ ð¥ ð« ð¯ â `id` ð¢ ð ð·, âïž ð ð® 1ïžâ£ ð.
+
+ ð¥ â ð± `owner_id` ð¢ `Item`.
+
+### â `PeeweeGetterDict` Pydantic *ð·* / ð
+
+ðâ ð ð ð ð ð, ð `some_user.items`, ð ð« ð `list` `Item`.
+
+â«ïž ð ð ð ð ð `ModelSelect`.
+
+â«ïž ðª â `list` ð® ð¬ â®ïž `list(some_user.items)`.
+
+âïž ð â«ïž ð« `list`. & â«ïž ð« â ð ð. â©ïž ð, Pydantic ð« ð ð¢ â ð â«ïž `list` Pydantic *ð·* / ð.
+
+âïž â®ïž ⬠Pydantic â ð ð ð ð ð âªïžâ¡ïž `pydantic.utils.GetterDict`, ð ð ïž âïž ðâ âïž `orm_mode = True` ð ð² ð ð· ð¢.
+
+ð¥ ð â ð `PeeweeGetterDict` ð & âïž â«ïž ð ð Pydantic *ð·* / ð ð âïž `orm_mode`:
+
+```Python hl_lines="3 8-13 31 49"
+{!../../../docs_src/sql_databases_peewee/sql_app/schemas.py!}
+```
+
+ð¥ ð¥ â
ð¥ ð¢ ð â ð (â
`.items` `some_user.items`) ð `peewee.ModelSelect`.
+
+& ð¥ ð ðŒ, ðš `list` â®ïž â«ïž.
+
+& â€Žïž ð¥ âïž â«ïž Pydantic *ð·* / ð ð âïž `orm_mode = True`, â®ïž ð³ ð¢ `getter_dict = PeeweeGetterDict`.
+
+!!! tip
+ ð¥ ðŽ ðª â 1ïžâ£ `PeeweeGetterDict` ð, & ð¥ ðª âïž â«ïž ð Pydantic *ð·* / ð.
+
+## ð© ðšð»
+
+ð â¡ïž ð ð `sql_app/crud.py`.
+
+### â ð ð© ðšð»
+
+â ð ð ð© ðšð» ðžð² ð°, ð ð ð¶ ð:
+
+```Python hl_lines="1 4-5 8-9 12-13 16-20 23-24 27-30"
+{!../../../docs_src/sql_databases_peewee/sql_app/crud.py!}
+```
+
+ð€ ðº â®ïž ð ðžð² ð°.
+
+ð¥ ð« ð¶ââïž `db` ð¢ ð€. â©ïž ð¥ âïž ð· ð. ð â©ïž `db` ð ð ð, ð ð ð ð â. ð â«ïžâ ð¥ âïž ð `contextvars` â¹ ð.
+
+ð, ðâ ð¬ ð ð, ð `get_users`, ð¥ ð ð€ `list`, ð:
+
+```Python
+list(models.User.select())
+```
+
+ð ð ð€ ð ð¥ âïž â ð `PeeweeGetterDict`. âïž ð¬ ð³ ð ⪠`list` â©ïž `peewee.ModelSelect` `response_model` *â¡ ð ïž* â®ïž `List[models.User]` (ð ð¥ ð ð âª) ð ð· â.
+
+## ð **FastAPI** ð±
+
+& ð ð `sql_app/main.py` â¡ïž ð ïž & âïž ð ð ð ð¥ â â.
+
+### â ðœ ð
+
+ð¶ ð ð â ðœ ð:
+
+```Python hl_lines="9-11"
+{!../../../docs_src/sql_databases_peewee/sql_app/main.py!}
+```
+
+### â ð
+
+â ð ð ð ð ðœ â¶ïžïž â¶ïž ðš & ð â«ïž ð:
+
+```Python hl_lines="23-29"
+{!../../../docs_src/sql_databases_peewee/sql_app/main.py!}
+```
+
+ð¥ ð¥ âïž ð `yield` â©ïž ð¥ ð€ ð« âïž ðœ ð ð.
+
+â«ïž ð ðœ & â» ð ðœ ð ð¢ ð ð¬ ð ðš (âïž `contextvars` ð± âªïžâ¡ïž ð).
+
+â©ïž ðœ ð â ð€/ð
Ÿ ð§, ð ð â â®ïž ð `def` ð¢.
+
+& ‎ïž, ð *â¡ ð ïž ð¢* ð ðª ð ðœ ð¥ ð® â«ïž ð.
+
+âïž ð¥ ð« âïž ð² ð ð ð (â«ïž ð€ ð« ð€ ð ð², â«ïž âïž ð `yield`). , ð¥ ð« ð® â«ïž *â¡ ð ïž ð¢* âïž *â¡ ð ïž ðšâðš* `dependencies` ð¢:
+
+```Python hl_lines="32 40 47 59 65 72"
+{!../../../docs_src/sql_databases_peewee/sql_app/main.py!}
+```
+
+### ð ð¢ ð§-ð
+
+ð `contextvars` ð ð·, ð¥ ðª â ð ð¥ âïž ð¬ ð² `ContextVar` ð ðš ð âïž ðœ, & ð ð² ð âïž ðœ ðµðž (ð, ðµ, âïž) ð ðš.
+
+ð, ð¥ ðª â â1ïžâ£ `async` ð `reset_db_state()` ð âïž ð§-ð `get_db()`. â«ïž ð â ð² ð ð¢ (â®ïž ð¢ `dict`) ð ð âïž ðœ ðµðž ð ðš. & â€Žïž ð `get_db()` ð ðª â«ïž ðœ ðµðž (ð, ðµ, âïž).
+
+```Python hl_lines="18-20"
+{!../../../docs_src/sql_databases_peewee/sql_app/main.py!}
+```
+
+**â ðš**, ð¥ ð â² ð ð ð¢ ð `async` ð `reset_db_state()` & â€Žïž â ð ð `get_db()` ð, ð ð ðš ð âïž ð® ð ðœ ðµðž (ð, ðµ, âïž).
+
+!!! tip
+ FastAPI ð ð ïž, 1ïžâ£ ðš ðª â¶ïž â ð ïž, & â ð, â1ïžâ£ ðš ðª ðš & â¶ïž ð ð, & â«ïž ð ðª ð ïž ð ð§µ.
+
+ âïž ð ð¢ ð€ ð« ð â,, ð ðœ ðµðž â `async` ð `reset_db_state()` ð ð§ ð® ð ðœ ð ð ðš.
+
+ & ð ð°, ð ð ïž ðš ð âïž ð® ð ðœ ðµðž ð ð ð¬ ð ðš.
+
+#### ð ð³
+
+ð¥ ð âïž ð ð³, â ðœ `db.obj`.
+
+, ð ð â² â«ïž â®ïž:
+
+```Python hl_lines="3-4"
+async def reset_db_state():
+ database.db.obj._state._state.set(db_state_default.copy())
+ database.db.obj._state.reset()
+```
+
+### â ð **FastAPI** *â¡ ð ïž*
+
+ð, ð, ð¥ ð© **FastAPI** *â¡ ð ïž* ð.
+
+```Python hl_lines="32-37 40-43 46-53 56-62 65-68 71-79"
+{!../../../docs_src/sql_databases_peewee/sql_app/main.py!}
+```
+
+### ð `def` ð `async def`
+
+ð â®ïž ðžð², ð¥ ð« ðš ð³ ð:
+
+```Python
+user = await models.User.select().first()
+```
+
+...âïž â©ïž ð¥ âïž:
+
+```Python
+user = models.User.select().first()
+```
+
+, ð, ð¥ ð ð£ *â¡ ð ïž ð¢* & ð ðµ `async def`, â®ïž ð `def`,:
+
+```Python hl_lines="2"
+# Something goes here
+def read_users(skip: int = 0, limit: int = 100):
+ # Something goes here
+```
+
+## ð¬ ð â®ïž ð
+
+ð ðŒ ð â *â¡ ð ïž* ð ð¬ ð ð ðš â®ïž `time.sleep(sleep_time)`.
+
+â«ïž ð âïž ðœ ð ð â¶ïž & ð â ð¥ â ð ð. & ð ð ðš ð â ð ð¥ ð.
+
+ð ð ðª â¡ïž ð ð¯ ð ð ð± â®ïž ð & FastAPI ð â â®ïž ð ð© ð ð§µ.
+
+ð¥ ð ð â
â ð ð ð ð ð± ð¥ âïž ðµ ð ïž, ð¶ `sql_app/database.py` ð & ð€ âž:
+
+```Python
+# db._state = PeeweeConnectionState()
+```
+
+& ð `sql_app/main.py` ð, ð€ ðª `async` ð `reset_db_state()` & â â«ïž â®ïž `pass`:
+
+```Python
+async def reset_db_state():
+# database.db._state._state.set(db_state_default.copy())
+# database.db._state.reset()
+ pass
+```
+
+â€Žïž ð ð ð± â®ïž Uvicorn:
+
+
+
+```console
+$ uvicorn sql_app.main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+ð ð ð¥ http://127.0.0.1:8000/docs & â ð©ââ€âðš ð©âð».
+
+â€Žïž ð 1ïžâ£0ïžâ£ ð http://127.0.0.1:8000/docs#/default/read_ð_ð©âð»_slowusers_ = ð ð°.
+
+ð¶ *â¡ ð ïž* "ð€ `/slowusers/`" ð ð. âïž "ð â«ïž ð
" ðŒ & ð ïž ðš ð ð, 1ïžâ£ â¶ïžïž â®ïž ð.
+
+ð ð â ð & â€Žïž ð« ð ðŠ `Internal Server Error`.
+
+### â«ïžâ ðš
+
+ð¥ ð ð â ð ð± â ð ðœ & â ð¥ â ð ð & ðª ðœ ð.
+
+‎ïž, ðš â ð, ð ð± ð â ð ð¥ ð, & ð.
+
+ð â ð â«ïž ð ð ð ð ð ð' ðš ⪠ð â®ïž ð.
+
+â€Žïž 1ïžâ£ ð ðš ð â ð ð¥ ð ð ð ðœ ð, âïž 1ïžâ£ ð â®ïž ðš ð ð ð ð² ðµ ð 𧵠ð¥ ð, â«ïž ð âïž ð ðœ ð ð ⪠ð, & ð ð ð® â & ð ð ð â«ïž ð¶, & ðš ð âïž `Internal Server Error`.
+
+ð ð ð² ðš ð
ð 1ïžâ£ ð ð.
+
+ð¥ ð âïž ð ð©âð» ð¬ ð ð± â«ïžâ ð ð°, ð â«ïžâ ðª ðš.
+
+& ð ð± â¶ïž ðµ ð
& ð ð©âð» ð ð°, â ð° ð ðš ðª ð & ð â² â.
+
+### ð§ ð â®ïž FastAPI
+
+ð ð¶ ð ð `sql_app/database.py`, & â âž:
+
+```Python
+db._state = PeeweeConnectionState()
+```
+
+& ð `sql_app/main.py` ð, â ðª `async` ð `reset_db_state()`:
+
+```Python
+async def reset_db_state():
+ database.db._state._state.set(db_state_default.copy())
+ database.db._state.reset()
+```
+
+â ð ðââ ð± & â¶ïž â«ïž ð.
+
+ð ð ð ïž â®ïž 1ïžâ£0ïžâ£ ð. ð ð° ð ð« ð â & ð ð ð€ ð ð ðµ â.
+
+...ð ð§ â«ïž â
+
+## ð ð ð
+
+ ð ð ð âïž ð ð `my_super_project` (âïž ð ð ð) ð ð ð§-ð ð€ `sql_app`.
+
+`sql_app` ð âïž ð ð:
+
+* `sql_app/__init__.py`: ð ð.
+
+* `sql_app/database.py`:
+
+```Python
+{!../../../docs_src/sql_databases_peewee/sql_app/database.py!}
+```
+
+* `sql_app/models.py`:
+
+```Python
+{!../../../docs_src/sql_databases_peewee/sql_app/models.py!}
+```
+
+* `sql_app/schemas.py`:
+
+```Python
+{!../../../docs_src/sql_databases_peewee/sql_app/schemas.py!}
+```
+
+* `sql_app/crud.py`:
+
+```Python
+{!../../../docs_src/sql_databases_peewee/sql_app/crud.py!}
+```
+
+* `sql_app/main.py`:
+
+```Python
+{!../../../docs_src/sql_databases_peewee/sql_app/main.py!}
+```
+
+## ð¡ â¹
+
+!!! warning
+ ð ð¶ ð¡ â¹ ð ð ð² ð« ðª.
+
+### â
+
+ð âïž `threading.local` ð¢ ðª â«ïž ðœ "ðµðž" ðœ (ð, ðµ, âïž).
+
+`threading.local` â ð² ð â®ïž ð§µ, âïž ð ð ïž ð ð ð ð (â
ð ðš) ð ð§µ, & ð² ð« â.
+
+ð ð ð, ð ð ïž ðª ð ð ð 𧵠(âïž `asyncio.run_in_executor`), âïž ð ð ðš.
+
+ð â ð, â®ïž ð â®ïž ð ïž, ð ð ðª âïž ð `threading.local` ð¢ & ð ð ð€ ð ð & ðœ (ð ð« ð«ð ð«), & ð ð°, ð¥ ð« ð ïž ð ð€/ð
Ÿ-ð§ ð 𧵠(â®ïž ð `def` ð¢ FastAPI, *â¡ ð ïž* & ð), ð ð ð ð« âïž ð ðœ ðµðž ð¢, ⪠â«ïž ð ð ðš & â«ïž ð ðª ð€ ð ð ðœ ðµðž.
+
+### ð ð¢
+
+ð 3ïžâ£.7ïžâ£ âïž `contextvars` ð ðª â ð§ð¿ ð¢ ð¶ ð `threading.local`, âïž ð ð« ð â.
+
+ð€ ð ð âïž ð€¯.
+
+`ContextVar` âïž â ð ð¹, ð:
+
+```Python
+some_var = ContextVar("some_var", default="default value")
+```
+
+â ð² âïž â®ïž "ð" (â
â®ïž ðš) âïž:
+
+```Python
+some_var.set("new value")
+```
+
+ð€ ð² ð ð ð (â
ð ð ð â®ïž ðš) âïž:
+
+```Python
+some_var.get()
+```
+
+### â ð ð¢ `async` ð `reset_db_state()`
+
+ð¥ ð ð ð â ð² â®ïž `some_var.set("updated in function")` (â
ð `async` ð), ð ð â«ïž & ð ð ð¶ â®ïž (â
ð ð `async` ð¢ ð€ â®ïž `await`) ð ð ð ð ð².
+
+, ð ðŒ, ð¥ ð¥ â ð ðµðž ð¢ (â®ïž ð¢ `dict`) `async` ð, ð ð ð ð ð ð± ð ð ð ð² & ð ðª â» â«ïž ð ðš.
+
+& ð ð¢ ð â ð â ðš, ð¥ ð« ð ïž.
+
+### â ðœ ðµðž ð `get_db()`
+
+`get_db()` ð `def` ð¢, **FastAPI** ð â â«ïž ð ð§µ, â®ïž *ð* "ð", ð§âð€âð§ ð ð² ð ð¢ ( `dict` â®ïž â² ðœ ðµðž). â€Žïž â«ïž ðª ð® ðœ ðµðž ð `dict`, ð ð, âïž.
+
+âïž ð¥ ð² ð ð¢ (ð¢ `dict`) â ð ð `def` ð¢, â«ïž ð â ð ð² ð ð ð§ ðŽ ð 𧵠ð§µ, & ð ð (ð *â¡ ð ïž ð¢*) ð«ð âïž ð â«ïž. `get_db()` ð¥ ðª ðŽ â ð² `dict`, âïž ð« ð `dict` â«ïž.
+
+, ð¥ ðª âïž `async` ð `reset_db_state()` â `dict` ð ð¢. ð ð, ð ð âïž ð ð `dict` ðœ ðµðž ð ðš.
+
+### ð & ð ð `get_db()`
+
+â€Žïž â â ð, â«ïžâ ð« ð & ð ðœ `async` ð â«ïž, â©ïž `get_db()`â
+
+`async` ð âïž `async` ð ð¢ ð¡ ð ðš, âïž ð & ðª ðœ ð â ð§, â«ïž ðª ð ð ð¥ â«ïž ð€.
+
+ð¥ ðª ð `def` ð `get_db()`.
diff --git a/docs/em/docs/advanced/sub-applications.md b/docs/em/docs/advanced/sub-applications.md
new file mode 100644
index 000000000..e0391453b
--- /dev/null
+++ b/docs/em/docs/advanced/sub-applications.md
@@ -0,0 +1,73 @@
+# ð§ ðž - ð»
+
+ð¥ ð ðª âïž 2ïžâ£ ð¬ FastAPI ðž, â®ïž ð« ð ð¬ ð & ð« ð 𩺠â, ð ðª âïž ð ð± & "ð»" 1ïžâ£ (âïž ð
) ð§-ðž(â).
+
+## ð **FastAPI** ðž
+
+"ð" â â ð "ð¬" ðž ð¯ â¡, ð â€Žïž â ð
ð ð ðœ ð â¡, â®ïž _â¡ ð ïž_ ð£ ð ð§-ðž.
+
+### ð-ð ðž
+
+ð¥, â ð, ð-ð, **FastAPI** ðž, & ð® *â¡ ð ïž*:
+
+```Python hl_lines="3 6-8"
+{!../../../docs_src/sub_applications/tutorial001.py!}
+```
+
+### ð§-ðž
+
+‎ïž, â ð ð§-ðž, & ð® *â¡ ð ïž*.
+
+ð ð§-ðž â1ïžâ£ ð© FastAPI ðž, âïž ð 1ïžâ£ ð ð "ð»":
+
+```Python hl_lines="11 14-16"
+{!../../../docs_src/sub_applications/tutorial001.py!}
+```
+
+### ð» ð§-ðž
+
+ð ð-ð ðž, `app`, ð» ð§-ðž, `subapi`.
+
+ð ðŒ, â«ïž ð ð â¡ `/subapi`:
+
+```Python hl_lines="11 19"
+{!../../../docs_src/sub_applications/tutorial001.py!}
+```
+
+### â
ð§ ð ïž ð©º
+
+ð, ð `uvicorn` â®ïž ð ð±, ð¥ ð ð `main.py`, â«ïž ð:
+
+
+
+```console
+$ uvicorn main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+& ð 𩺠http://127.0.0.1:8000/docs.
+
+ð ð ð ð§ ð ïž ð©º ð ð±, ð ðŽ ð® ð _â¡ ð ïž_:
+
+
+
+& ‎ïž, ð 𩺠ð§-ðž, http://127.0.0.1:8000/subapi/docs.
+
+ð ð ð ð§ ð ïž ð©º ð§-ðž, â
ðŽ ð® ð _â¡ ð ïž_, ð ðœ â ð§-â¡ ð¡ `/subapi`:
+
+
+
+ð¥ ð ð ð â®ïž ð 2ïžâ£ ð©âð» ð¢, ð« ð ð· â, â©ïž ð¥ ð ðª ð¬ ð ð¯ ð± âïž ð§-ð±.
+
+### ð¡ â¹: `root_path`
+
+ðâ ð ð» ð§-ðž ð¬ ð, FastAPI ð â ð
ð ð» â¡ ð§-ðž âïž ð ïž âªïžâ¡ïž ð« ð§ ð€ `root_path`.
+
+ð ð, ð§-ðž ð ð âïž ð â¡ ð¡ 𩺠ð.
+
+& ð§-ðž ðª âïž ð® ð ð ð§-ðž & ð ð ð· â, â©ïž FastAPI ðµ ð ð `root_path`â ð.
+
+ð ð ð¡ ð
ð `root_path` & â âïž â«ïž ð¯ ð ð [â
ð³](./behind-a-proxy.md){.internal-link target=_blank}.
diff --git a/docs/em/docs/advanced/templates.md b/docs/em/docs/advanced/templates.md
new file mode 100644
index 000000000..1fb57725a
--- /dev/null
+++ b/docs/em/docs/advanced/templates.md
@@ -0,0 +1,77 @@
+# ð
+
+ð ðª âïž ð ð ð ð ð â®ïž **FastAPI**.
+
+â â Jinja2ïžâ£, ð 1ïžâ£ âïž ðº & ð ð§°.
+
+ð€ ð ð â«ïž ðª ð ð ðª âïž ð ð **FastAPI** ðž (ð ð).
+
+## â ð
+
+â `jinja2`:
+
+
+
+```console
+$ pip install jinja2
+
+---> 100%
+```
+
+
+
+## âïž `Jinja2Templates`
+
+* ð `Jinja2Templates`.
+* â `templates` ð ð ð ðª ð€-âïž âª.
+* ð£ `Request` ð¢ *â¡ ð ïž* ð ð ðš ð.
+* âïž `templates` ð â â & ðš `TemplateResponse`, ð¶ââïž `request` 1ïžâ£ ð-ð² ð« Jinja2ïžâ£ "ð".
+
+```Python hl_lines="4 11 15-16"
+{!../../../docs_src/templates/tutorial001.py!}
+```
+
+!!! note
+ ð ð ð âïž ð¶ââïž `request` ð ð-ð² ð« ð Jinja2ïžâ£. , ð âïž ð£ â«ïž ð *â¡ ð ïž*.
+
+!!! tip
+ ð£ `response_class=HTMLResponse` 𩺠ð ð ðª ð ð ðš ð ðž.
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.templating import Jinja2Templates`.
+
+ **FastAPI** ð ð `starlette.templating` `fastapi.templating` ðª ð, ð©âð». âïž ð
ðª ðš ð ð âªïžâ¡ïž ð. ð â®ïž `Request` & `StaticFiles`.
+
+## â ð
+
+â€Žïž ð ðª â ð `templates/item.html` â®ïž:
+
+```jinja hl_lines="7"
+{!../../../docs_src/templates/templates/item.html!}
+```
+
+â«ïž ð ðŠ `id` â âªïžâ¡ïž "ð" `dict` ð ð¶ââïž:
+
+```Python
+{"request": request, "id": id}
+```
+
+## ð & ð» ð
+
+& ð ðª âïž `url_for()` ð ð, & âïž â«ïž, ðŒ, â®ïž `StaticFiles` ð ð.
+
+```jinja hl_lines="4"
+{!../../../docs_src/templates/templates/item.html!}
+```
+
+ð ðŒ, â«ïž ð ð ð ð `static/styles.css` â®ïž:
+
+```CSS hl_lines="4"
+{!../../../docs_src/templates/static/styles.css!}
+```
+
+& â©ïž ð âïž `StaticFiles`, ð ð ð ð ðŠ ð ð **FastAPI** ðž ð `/static/styles.css`.
+
+## ð
â¹
+
+ð
â¹, ð â ð¯ ð, â
ð 𩺠ð ð.
diff --git a/docs/em/docs/advanced/testing-database.md b/docs/em/docs/advanced/testing-database.md
new file mode 100644
index 000000000..93acd710e
--- /dev/null
+++ b/docs/em/docs/advanced/testing-database.md
@@ -0,0 +1,95 @@
+# ð¬ ðœ
+
+ð ðª âïž ð ð ð âªïžâ¡ïž [ð¬ ð â®ïž ð](testing-dependencies.md){.internal-link target=_blank} ð ðœ ð¬.
+
+ð ðª ð â ð ð ðœ ð¬, ðŸ ðœ â®ïž ð¯, ð€-𥧠â«ïž â®ïž ð¬ ðœ, âïž.
+
+ð ð â«ïžâ ð ð ð ð â®ïž ð.
+
+## ð® ð¯ ð ð±
+
+â¡ïž â¹ ðŒ âªïžâ¡ïž [ð (ð) ðœ](../tutorial/sql-databases.md){.internal-link target=_blank} âïž ð¬ ðœ.
+
+ð ð± ð ð, ð ðª ð¶ ð ð ð â
â â«ïž.
+
+ðŽ ð ð¥ ð ð¬ ð.
+
+ð ð ð `get_db()` ð ðš ðœ ð.
+
+ð¯, ð ðª âïž ð ð ðš ð *ð* ðœ ð â©ïž 1ïžâ£ ð ð âïž ð.
+
+ð ðŒ ð¥ ð â ð ðœ ðŽ ð¯.
+
+## ð ð
+
+ð¥ â ð ð `sql_app/tests/test_sql_app.py`.
+
+ð ð ð ð ð:
+
+``` hl_lines="9-11"
+.
+âââ sql_app
+ âââ __init__.py
+ âââ crud.py
+ âââ database.py
+ âââ main.py
+ âââ models.py
+ âââ schemas.py
+ âââ tests
+ âââ __init__.py
+ âââ test_sql_app.py
+```
+
+## â ð ðœ ð
+
+ð¥, ð¥ â ð ðœ ð â®ïž ð ðœ.
+
+ð¯ ð¥ ð âïž ð `test.db` â©ïž `sql_app.db`.
+
+âïž ð ð ð ð
âïž ð ð, ð¥ ð â«ïž.
+
+```Python hl_lines="8-13"
+{!../../../docs_src/sql_databases/sql_app/tests/test_sql_app.py!}
+```
+
+!!! tip
+ ð ðª ð â ð ð ð® â«ïž ð¢ & âïž â«ïž âªïžâ¡ïž ð¯ââïž `database.py` & `tests/test_sql_app.py`.
+
+ ðŠ & ð¯ ð ð¯ ð¬ ð, ð¥ ðš â«ïž.
+
+## â ðœ
+
+â©ïž ð ð¥ ð âïž ð ðœ ð ð, ð¥ ðª â ð ð¥ â ðœ â®ïž:
+
+```Python
+Base.metadata.create_all(bind=engine)
+```
+
+ð ð ð€ `main.py`, âïž âž `main.py` âïž ðœ ð `sql_app.db`, & ð¥ ðª â ð ð¥ â `test.db` ð¯.
+
+ð¥ ð® ð âž ð¥, â®ïž ð ð.
+
+```Python hl_lines="16"
+{!../../../docs_src/sql_databases/sql_app/tests/test_sql_app.py!}
+```
+
+## ð ð
+
+ð ð¥ â ð ð & ð® â«ïž ð ð ð±.
+
+```Python hl_lines="19-24 27"
+{!../../../docs_src/sql_databases/sql_app/tests/test_sql_app.py!}
+```
+
+!!! tip
+ ð `override_get_db()` ð â«ïžâ ð `get_db()`, âïž `override_get_db()` ð¥ âïž `TestingSessionLocal` ð¬ ðœ â©ïž.
+
+## ð¯ ð±
+
+â€Žïž ð¥ ðª ð¯ ð± ð.
+
+```Python hl_lines="32-47"
+{!../../../docs_src/sql_databases/sql_app/tests/test_sql_app.py!}
+```
+
+& ð ð ïž ð¥ â ðœ â®ïž ð¯ ð `test.db` ðœ â©ïž ð `sql_app.db`.
diff --git a/docs/em/docs/advanced/testing-dependencies.md b/docs/em/docs/advanced/testing-dependencies.md
new file mode 100644
index 000000000..104a6325e
--- /dev/null
+++ b/docs/em/docs/advanced/testing-dependencies.md
@@ -0,0 +1,49 @@
+# ð¬ ð â®ïž ð
+
+## ð ð â®ïž ð¬
+
+ð€ ð ðâ ð ðª ð ð ð â®ïž ð¬.
+
+ð ð« ð â®ïž ð ð (ð« ð ð§-ð â«ïž ðª âïž).
+
+â©ïž, ð ð ð ð ð ð ð âïž ðŽ â®ïž ð¯ (ð² ðŽ ð¯ ð¯), & ð ð ð² ð ðª âïž ðâ ð² â®ïž ð âïž.
+
+### âïž ðŒ: ð¢ ðâðŠº
+
+ðŒ ðª ð ð âïž ð¢ ð€ ðâðŠº ð ð ðª ð€.
+
+ð ðš â«ïž ð€ & â«ïž ðš ð ð©âð».
+
+ð ðâðŠº 5ïžâ£ð ð ð ð ðš, & ð€ â«ïž ðª â â ð° ð ð¥ ð âïž ð§ ð ð©âð» ð¯.
+
+ð ð² ð ð¯ ð¢ ðâðŠº ð, âïž ð« ð¯ ð€ â«ïž ð ð¯ ð ð.
+
+ð ðŒ, ð ðª ð ð ð ð€ ð ðâðŠº, & âïž ð ð ð ðš ð ð©âð», ðŽ ð ð¯.
+
+### âïž `app.dependency_overrides` ð¢
+
+ð« ðŒ, ð **FastAPI** ðž âïž ð¢ `app.dependency_overrides`, â«ïž ð
`dict`.
+
+ð ð ð¬, ð ð® ð â®ïž ð (ð¢), & ð², ð ð ð (â1ïžâ£ ð¢).
+
+& â€Žïž **FastAPI** ð ð€ ð ð â©ïž â®ïž ð.
+
+```Python hl_lines="28-29 32"
+{!../../../docs_src/dependency_testing/tutorial001.py!}
+```
+
+!!! tip
+ ð ðª â ð ð ð âïž ð ð **FastAPI** ðž.
+
+ â®ïž ð ðª âïž *â¡ ð ïž ð¢*, *â¡ ð ïž ðšâðš* (ðâ ð ð« âïž ðš ð²), `.include_router()` ð€, âïž.
+
+ FastAPI ð ðª ð â«ïž.
+
+â€Žïž ð ðª â² ð ð (â ð«) â `app.dependency_overrides` ð `dict`:
+
+```Python
+app.dependency_overrides = {}
+```
+
+!!! tip
+ ð¥ ð ð ð ð ðŽ â®ïž ð¯, ð ðª â ð â¶ïž ð¯ (ð ð¯ ð¢) & â² â«ïž ð (ð ð¯ ð¢).
diff --git a/docs/em/docs/advanced/testing-events.md b/docs/em/docs/advanced/testing-events.md
new file mode 100644
index 000000000..d64436eb9
--- /dev/null
+++ b/docs/em/docs/advanced/testing-events.md
@@ -0,0 +1,7 @@
+# ð¬ ð: ðŽ - ð€«
+
+ðâ ð ðª ð ð ðâðŠº (`startup` & `shutdown`) ð ð ð¯, ð ðª âïž `TestClient` â®ïž `with` ð:
+
+```Python hl_lines="9-12 20-24"
+{!../../../docs_src/app_testing/tutorial003.py!}
+```
diff --git a/docs/em/docs/advanced/testing-websockets.md b/docs/em/docs/advanced/testing-websockets.md
new file mode 100644
index 000000000..3b8e7e420
--- /dev/null
+++ b/docs/em/docs/advanced/testing-websockets.md
@@ -0,0 +1,12 @@
+# ð¬ *ïžâ£
+
+ð ðª âïž ð `TestClient` ð¯*ïžâ£.
+
+ð, ð âïž `TestClient` `with` ð, ð*ïžâ£:
+
+```Python hl_lines="27-31"
+{!../../../docs_src/app_testing/tutorial002.py!}
+```
+
+!!! note
+ ð
â¹, â
ð 𧟠ð¬ *ïžâ£ .
diff --git a/docs/em/docs/advanced/using-request-directly.md b/docs/em/docs/advanced/using-request-directly.md
new file mode 100644
index 000000000..faeadb1aa
--- /dev/null
+++ b/docs/em/docs/advanced/using-request-directly.md
@@ -0,0 +1,52 @@
+# âïž ðš ð
+
+ð ð, ð âïž ð£ ð ðš ð ð ðª â®ïž ð« ð.
+
+â ð âªïžâ¡ïž:
+
+* â¡ ð¢.
+* ð.
+* ðª.
+* âïž.
+
+& ðš, **FastAPI** â ð ðœ, ð â«ïž & ð 𧟠ð ð ïž ð.
+
+âïž ð€ â ðâ ð ðª ðª ð `Request` ð ð.
+
+## â¹ ð `Request` ð
+
+**FastAPI** ð€ **ð** ð, â®ïž 𧜠ð 𧰠ð ð, ð ðª âïž ð `Request` ð ð ðâ ð ðª.
+
+â«ïž ð â ð ð¥ ð ð€ ð âªïžâ¡ïž `Request` ð ð (ðŒ, â ðª) â«ïž ð ð« â, ð âïž ð (â®ïž ð, ð§ ð ïž ð©âð» ð¢) FastAPI.
+
+ð ð ð ð¢ ð£ ð (ðŒ, ðª â®ïž Pydantic ð·) ð â, ð, â, âïž.
+
+âïž ð€ ð¯ ðŒ ðâ â«ïž â ð€ `Request` ð.
+
+## âïž `Request` ð ð
+
+â¡ïž ð ð ð ð€ ð©âð» ð¢ ð¢/ðŠ ð ð *â¡ ð ïž ð¢*.
+
+ð ð ðª ð ðš ð.
+
+```Python hl_lines="1 7-8"
+{!../../../docs_src/using_request_directly/tutorial001.py!}
+```
+
+ð£ *â¡ ð ïž ð¢* ð¢ â®ïž ð â `Request` **FastAPI** ð ð ð¶ââïž `Request` ð ð¢.
+
+!!! tip
+ ð ð ð ðŒ, ð¥ ð£ â¡ ð¢ â€Žïž ðš ð¢.
+
+ , â¡ ð¢ ð â, â, ð â ð & â â®ïž ð.
+
+ ð ð, ð ðª ð£ ð ð ð¢ ð, & â¡, ð€ `Request` ðââïž.
+
+## `Request` ð§Ÿ
+
+ð ðª â ð
â¹ ð `Request` ð ð ð 𧟠ðž.
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.requests import Request`.
+
+ **FastAPI** ð â«ïž ð ðª ð, ð©âð». âïž â«ïž ð ð âªïžâ¡ïž ð.
diff --git a/docs/em/docs/advanced/websockets.md b/docs/em/docs/advanced/websockets.md
new file mode 100644
index 000000000..6ba9b999d
--- /dev/null
+++ b/docs/em/docs/advanced/websockets.md
@@ -0,0 +1,184 @@
+# *ïžâ£
+
+ð ðª âïž *ïžâ£ â®ïž **FastAPI**.
+
+## â `WebSockets`
+
+ð¥ ð ðª â `WebSockets`:
+
+
+
+```console
+$ pip install websockets
+
+---> 100%
+```
+
+
+
+## *ïžâ£ ð©âð»
+
+### ð
+
+ð ð âïž, ð ð² âïž ðž â â®ïž ð ð ïž ð ð¥, Vue.js âïž ð.
+
+& ð âïž *ïžâ£ â®ïž ð ð©âð» ð ð ð² âïž ð ðž ð.
+
+âïž ð ðª âïž ðŠðž ð± ðž ð ð â®ïž ð *ïžâ£ ð©âð» ð, ðŠðž ð.
+
+âïž ð 5ïžâ£ð âïž ð ð ð ð â®ïž *ïžâ£ ð.
+
+---
+
+âïž ð ðŒ, ð¥ ð âïž ð¶ ð
ðž ð â®ïž ðž, ð ð ð ð».
+
+ð, âïž, ð« â & ð ð«ð âïž â«ïž ð.
+
+ð ð ð âïž 1ïžâ£ ð ð.
+
+âïž â«ïž ð
ð ð¯ ð ðœ-ð *ïžâ£ & âïž ð· ðŒ:
+
+```Python hl_lines="2 6-38 41-43"
+{!../../../docs_src/websockets/tutorial001.py!}
+```
+
+## â `websocket`
+
+ð **FastAPI** ðž, â `websocket`:
+
+```Python hl_lines="1 46-47"
+{!../../../docs_src/websockets/tutorial001.py!}
+```
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.websockets import WebSocket`.
+
+ **FastAPI** ð ð `WebSocket` ð ðª ð, ð©âð». âïž â«ïž ð ð âªïžâ¡ïž ð.
+
+## â ð§ & ðš ð§
+
+ð *ïžâ£ ð£ ð ðª `await` ð§ & ðš ð§.
+
+```Python hl_lines="48-52"
+{!../../../docs_src/websockets/tutorial001.py!}
+```
+
+ð ðª ðš & ðš ð±, â, & ð» ðœ.
+
+## ð â«ïž
+
+ð¥ ð ð ð `main.py`, ð ð ðž â®ïž:
+
+
+
+```console
+$ uvicorn main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+ð ð ð¥ http://127.0.0.1:8000.
+
+ð ð ð ð
ð ð:
+
+
+
+ð ðª ð ð§ ð¢ ðŠ, & ðš ð«:
+
+
+
+& ð **FastAPI** ðž â®ïž *ïžâ£ ð ðš ð:
+
+
+
+ð ðª ðš (& ðš) ð ð§:
+
+
+
+& ð ð« ð âïž ð *ïžâ£ ð.
+
+## âïž `Depends` & ð
+
+*ïžâ£ ð ð ðª ð âªïžâ¡ïž `fastapi` & âïž:
+
+* `Depends`
+* `Security`
+* `Cookie`
+* `Header`
+* `Path`
+* `Query`
+
+ð« ð· ð ð ð FastAPI ð/*â¡ ð ïž*:
+
+```Python hl_lines="66-77 76-91"
+{!../../../docs_src/websockets/tutorial002.py!}
+```
+
+!!! info
+ ð *ïžâ£ â«ïž ð« ð€ â ð ð€ `HTTPException`, â©ïž ð¥ ð€ `WebSocketException`.
+
+ ð ðª âïž ðª ð âªïžâ¡ïž â ð ð¬ ð§.
+
+### ð *ïžâ£ â®ïž ð
+
+ð¥ ð ð ð `main.py`, ð ð ðž â®ïž:
+
+
+
+```console
+$ uvicorn main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+ð ð ð¥ http://127.0.0.1:8000.
+
+ð€ ð ðª â:
+
+* "ð¬ ð", âïž â¡.
+* "ð€" âïž ð¢ ð¢.
+
+!!! tip
+ ð ð ð¢ `token` ð ðµ ð.
+
+â®ïž ð ð ðª ð *ïžâ£ & â€Žïž ðš & ðš ð§:
+
+
+
+## ð ð & ð ð©âð»
+
+ðâ *ïžâ£ ð ðª, `await websocket.receive_text()` ð ð€ `WebSocketDisconnect` â , â ð ðª â€Žïž â & ðµ ð ð ðŒ.
+
+```Python hl_lines="81-83"
+{!../../../docs_src/websockets/tutorial003.py!}
+```
+
+ð â«ïž ð
:
+
+* ð ð± â®ïž ð ð¥ ð.
+* â ð§ âªïžâ¡ïž ð«.
+* â€Žïž ð 1ïžâ£ ð.
+
+ð ð ð€ `WebSocketDisconnect` â , & ð ð ð©âð» ð ðš ð§ ð:
+
+```
+Client #1596980209979 left the chat
+```
+
+!!! tip
+ ð± ð â & ð
ðŒ ðŠ â ðµ & ð» ð§ ð *ïžâ£ ð.
+
+ âïž âïž ð€¯ ð, ð ðµ ðŸ, ð ð, â«ïž ð ðŽ ð· ⪠ð ïž ð, & ð ðŽ ð· â®ïž ð ð ïž.
+
+ ð¥ ð ðª ð³ â© ð ïž â®ïž FastAPI âïž ð ð ðïž, ðâðŠº â³, â³ âïž ð, â
ð/ð».
+
+## ð
â¹
+
+ð¡ ð
ð ð, â
ð ð§Ÿ:
+
+* `WebSocket` ð.
+* ð-âïž *ïžâ£ ð.
diff --git a/docs/em/docs/advanced/wsgi.md b/docs/em/docs/advanced/wsgi.md
new file mode 100644
index 000000000..4d051807f
--- /dev/null
+++ b/docs/em/docs/advanced/wsgi.md
@@ -0,0 +1,37 @@
+# â
ðšð» - ðº, â³, ð
+
+ð ðª ð» ðšð» ðž ð ð â®ïž [ð§ ðž - ð»](./sub-applications.md){.internal-link target=_blank}, [â
ð³](./behind-a-proxy.md){.internal-link target=_blank}.
+
+ð, ð ðª âïž `WSGIMiddleware` & âïž â«ïž ð ð ðšð» ðž, ðŒ, ðº, â³, âïž.
+
+## âïž `WSGIMiddleware`
+
+ð ðª ð `WSGIMiddleware`.
+
+â€Žïž ð ðšð» (â
ðº) ð± â®ïž ð ïž.
+
+& â€Žïž ð» ð ðœ â¡.
+
+```Python hl_lines="2-3 22"
+{!../../../docs_src/wsgi/tutorial001.py!}
+```
+
+## â
â«ïž
+
+ð, ð ðš ðœ â¡ `/v1/` ð ðµ ðº ðž.
+
+& ð ð ðµ **FastAPI**.
+
+ð¥ ð ð â«ïž â®ïž Uvicorn & ð¶ http://localhost:8000/v1/ ð ð ð ðš âªïžâ¡ïž ðº:
+
+```txt
+Hello, World from Flask!
+```
+
+& ð¥ ð ð¶ http://localhost:8000/v2 ð ð ð ðš âªïžâ¡ïž FastAPI:
+
+```JSON
+{
+ "message": "Hello World"
+}
+```
diff --git a/docs/em/docs/alternatives.md b/docs/em/docs/alternatives.md
new file mode 100644
index 000000000..6169aa52d
--- /dev/null
+++ b/docs/em/docs/alternatives.md
@@ -0,0 +1,414 @@
+# ð, ð & ðº
+
+â«ïžâ ð® **FastAPI**, â â«ïž ð¬ ð ð & â«ïžâ â«ïž ðð² âªïžâ¡ïž ð«.
+
+## ð¶
+
+**FastAPI** ð«ð ð ð¥ ð« â®ïž ð· ð.
+
+ð€ âïž ð 𧰠â â ð âïž â¹ ð® ð® ð.
+
+ð€ âïž â ð ð ð ïž ð 1ïžâ£2ïžâ£ðïž. ð¥ ð€ ð â ð â ð **FastAPI** âïž ð ð ð ïž, ð-ð, & ð§°.
+
+âïž â, ð€ ð
ââ ð ð ð ð ð³ ð ð ð ð« â, â ð ð âªïžâ¡ïž â®ïž ð§°, & ð ð« ð ð ðª, âïž ðªðž â ð âð« ðª â (ð 3ïžâ£.6ïžâ£ â ð ð).
+
+## â®ïž ð§°
+
+### â³
+
+â«ïž ð
ð ð ð ïž & ð ðŽ. â«ïž âïž ð âïž ð ð±ð.
+
+â«ïž ð¶ ð ð â®ïž ð ðœ (ð â³ âïž â³),, âïž â ðœ (ð ð, â³, ðž, âïž) ð ðª ð ð« ð¶ â©.
+
+â«ïž â ð ðž ð©âð», ð« â ð âïž ð ðž (ð ð¥, Vue.js & ð) âïž ð âïž (ð â ð³) ð â®ïž â«ïž.
+
+### â³ ð ð ïž
+
+â³ ð ð ïž â ð 𧰠ð ðž ð âïž â³ ð, ð ð® ð ïž ð ïž.
+
+â«ïž âïž ð ð¢ â
ðŠ, ð¥ ð & ð.
+
+â«ïž ð ð¥ ðŒ **ð§ ð ïž ð§Ÿ**, & ð ð¯ ð ð¥ ð ð ð® "ð" **FastAPI**.
+
+!!! note
+ â³ ð ð ïž â â¡ ðºðžð. ð ðŒ ð & Uvicorn, ð â **FastAPI** âïž.
+
+
+!!! check "ð® **FastAPI** "
+ âïž ð§ ð ïž ð§Ÿ ðž ð©âð» ð¢.
+
+### ðº
+
+ðº "ðž", â«ïž ð« ð ðœ ð ïž ð« ð ð ð ð ð¢ â³.
+
+ð ðŠ & ðª â ðš ð ð âïž â ðœ ð ðœ ðŸ âïž.
+
+â«ïž ð¶ ð
, â«ïž ð¶ ðïž ð¡, ð 𧟠ð€ ð ð¡ â.
+
+â«ïž ð âïž ð ðž ð ð« ð¯ ðª ðœ, ð©âð» ð§Ÿ, âïž ð ð â ð ð ð€-ð â³. ð ð ð« â ðª ð® â®ïž ð-ð.
+
+ð â ð, & â "ðž" ð ðª â ð â«ïžâ â«ïžâ ðª ð â ð ð€ ð ð§.
+
+ð ðŠ ðº, â«ïž ð ð ð ð ð ð. â ð ð "â³ ð ð ïž" ðº.
+
+!!! check "ð® **FastAPI** "
+ âŸ-ð ïž. â â«ïž â© ð & ð 𧰠& ð ðª.
+
+ âïž ð
& â© âïž ð¹ âïž.
+
+
+### ðš
+
+**FastAPI** ð« ð€ ð **ðš**. ð« â ð¶ ð.
+
+â«ïž ð ð€ â âïž ðš *ð* FastAPI ðž.
+
+âïž, FastAPI ð€ ð âªïžâ¡ïž ðš.
+
+**ðš** ð *ð* â®ïž ð (ð©âð»), ⪠**FastAPI** ð *ð* ð (ðœ).
+
+ð«, ð âïž ð, ð ð, ð ð ð.
+
+ðš âïž ð¶ ð
& ðïž ð§, â«ïž ð¶ â© âïž, â®ïž ð€ ð¢. âïž ð ð°, â«ïž ð¶ ðïž & ð.
+
+ð â«ïžâ, ð¬ ð ðž:
+
+> ðš 1ïžâ£ ð ⬠ð ðŠ ð ð°
+
+ð ð âïž â«ïž ð¶ ð
. ðŒ, `GET` ðš, ð ð â:
+
+```Python
+response = requests.get("http://example.com/some/url")
+```
+
+FastAPI ð ð ïž *â¡ ð ïž* ðª ð ð:
+
+```Python hl_lines="1"
+@app.get("/some/url")
+def read_url():
+ return {"message": "Hello World"}
+```
+
+ð ð `requests.get(...)` & `@app.get(...)`.
+
+!!! check "ð® **FastAPI** "
+ * âïž ð
& ðïž ð ïž.
+ * âïž ðºðžð ð©âð¬ ð (ð ïž) ð, ð¯ & ðïž ð.
+ * âïž ð€ ð¢, âïž ðïž ð.
+
+
+### ðŠ / ð
+
+ð â ð€ ð âªïžâ¡ïž â³ ð ð ïž ð§ ð ïž ð§Ÿ.
+
+â€Žïž ð€ ð ð ð€ ð© ð ð, âïž ð» (âïž ð, â ð») ð€ ðŠ.
+
+& ð€ ðž ð©âð» ð¢ ðŠ ð ïž âª â. , ðââ ðª ð ðŠ 𧟠ð ïž ð â âïž ð ðž ð©âð» ð¢ ð.
+
+â, ðŠ ð ðŸ ð, ð ð.
+
+ð â«ïžâ ðâ ð¬ ð ⬠2ïžâ£.0ïžâ£ â«ïž â ð¬ "ðŠ", & ⬠3ïžâ£ â "ð".
+
+!!! check "ð® **FastAPI** "
+ ð ïž & âïž ð ð© ð ïž ð§, â©ïž ð ð.
+
+ & ð ïž ð©-âïž ð©âð» ð¢ ð§°:
+
+ * ðŠ ð
+ * ð
+
+ ð« 2ïžâ£ ð â ð¶ ð & â, âïž ðš â© ð, ð ðª ð ð¯ ð ð ð©âð» ð¢ ð (ð ð ðª âïž â®ïž **FastAPI**).
+
+### ðº ð ð ïž
+
+ð€ ð ðº ð ð ïž, âïž â®ïž ð° ð° & ð· ð ð¬ ð«, ð€ ð ð ð ð âïž ð«, â®ïž ð ð§ â ð â ð« ð.
+
+### ð
+
+1ïžâ£ ð â ðª ð ïž âïž ð "ð ïž" â â ð âªïžâ¡ïž ð (ð) & ð â«ïž ð ð³ ð ðª ðš ð ðž. ðŒ, ð ð â ð âªïžâ¡ïž ðœ ð ð» ð. ð `datetime` ð ð ð», âïž.
+
+â1ïžâ£ ðŠ â ð ð ðœ ð¬, â ð ð ðœ â, ð€ ð¯ ð¢. ðŒ, ð ð `int`, & ð« ð² ð». ð âŽïž â ðš ðœ.
+
+ðµ ðœ ð¬ âïž, ð ð âïž ð â
â, ð.
+
+ð« â â«ïžâ ð ð ð. â«ïž ð ð, & ð€ âïž âïž â«ïž ð â.
+
+âïž â«ïž â â ð€ ð ð ð ð. , ð¬ ð ð ð ðª âïž ð¯ ðšð» & ð ð ð.
+
+!!! check "ð® **FastAPI** "
+ âïž ð ð¬ "ð" ð ð ðœ ð & ð¬, ð.
+
+### Webarg
+
+â1ïžâ£ ðŠ â â ð â ð âªïžâ¡ïž ðš ðš.
+
+Webarg 𧰠ð â ð ð ð ð ð ð ïž, ð ðº.
+
+â«ïž âïž ð ð ðœ ð¬. & â«ïž â ð ð©âð».
+
+â«ïž ð 𧰠& ð€ âïž âïž â«ïž ð ðââïž, â âïž **FastAPI**.
+
+!!! info
+ Webarg â ð ð ð©âð».
+
+!!! check "ð® **FastAPI** "
+ âïž ð§ ð¬ ðš ðš ðœ.
+
+### APISpec
+
+ð & Webarg ð ð¬, â & ð ïž ð-ð.
+
+âïž ð§Ÿ â. â€Žïž APISpec â.
+
+â«ïž ð-ð ð ïž (& ð€ ð-ð ðââïž).
+
+ð â«ïž ð· ð ð â ð ð âïž ð ð ð #ïžâ£ ð ð¢ ð ð£.
+
+& â«ïž ð ð ð.
+
+ð â â«ïž ð· ðº, ð, ð, âïž.
+
+âïž â€Žïž, ð¥ âïž ð â âïž âŸ-â, ð ð ð» (ðŠ ð).
+
+ðšâðš ðª ð« â¹ ð
â®ïž ð. & ð¥ ð¥ ð ð¢ âïž ð ð & ð ð ð ð#ïžâ£, ð ð ð â.
+
+!!! info
+ APISpec â ð ð ð©âð».
+
+
+!!! check "ð® **FastAPI** "
+ ðâðŠº ð ð© ð ïž, ð.
+
+### ðº-Apispec
+
+â«ïž ðº ð -, ð ð ð¯ââïž Webarg, ð & APISpec.
+
+â«ïž âïž â¹ âªïžâ¡ïž Webarg & ð ð ð ð ð, âïž APISpec.
+
+â«ïž ð ð§°, ð¶ ðœ-ð. â«ïž ð ð ð ð ð ð ðº ð-ð ð
ð€. â«ïž ðª â©ïž ð® 𧟠â ðââïž ð©² & ð.
+
+ð â âïž â ð (â1ïžâ£ â) ð ð â.
+
+ð ð ðº, ðº-Apispec â®ïž ð & Webarg ð ð ð©âð» ð â ð **FastAPI**.
+
+âïž â«ïž âïž ð ð ðº ð-ð ð. ð« ð ð ð€ (& ð ð¢ ð) âïž âïž ð ð:
+
+* https://github.com/tiangolo/full-stack
+* https://github.com/tiangolo/full-stack-flask-couchbase
+* https://github.com/tiangolo/full-stack-flask-couchdb
+
+& ð« ð ð-ð ð 𧢠[**FastAPI** ð ð](project-generation.md){.internal-link target=_blank}.
+
+!!! info
+ ðº-Apispec â ð ð ð©âð».
+
+!!! check "ð® **FastAPI** "
+ ð ð ð ð, âªïžâ¡ïž ð ð ð ð¬ ð ïž & ð¬.
+
+### NestJS (& ð)
+
+ð âð« ð« ð, NestJS ðž (ð) â³ ð ïž ð® ð.
+
+â«ïž ð ð³ ð ð â«ïžâ ðª ðš â®ïž ðº-Apispec.
+
+â«ïž âïž ð ïž ð ð âïž, ð® ð 2ïžâ£. â«ïž ð ð€-® "ð" (ð ð ð ð ð âïž ð€ ð),, â«ïž ð® ð & ð ð.
+
+ð¢ ð¬ â®ïž ð ð (ð ð ð ð), ðšâðš ðâðŠº ð.
+
+âïž ð ð ð« ð¡ â®ïž ð¹ ðž, â«ïž ð«ð âïž ð ð ð¬ ð¬, ð ïž & 𧟠ð ð°. â©ïž ð & ð§ ð«, ð€ ð¬, ð ïž & ð§ ð â¡, â«ïž ðª ð® ðšâðš ð ð¥. , â«ïž â¶ïžïž ð.
+
+â«ïž ðª ð« ðµ ð ð· ð¶ ð. , ð¥ ð» ðª ðš ð» ð ð âïž ð ð ð ð ðŠ ð» ð, â«ïž ð«ð â ð & â.
+
+!!! check "ð® **FastAPI** "
+ âïž ð ð âïž ð ðšâðš ðâðŠº.
+
+ âïž ðïž ð ð âïž. ð ð ð ð ð.
+
+### ð€£
+
+â«ïž ð ð¥ ð¶ â© ð ð ïž âïž ð `asyncio`. â«ïž â ð¶ ð ðº.
+
+!!! note "ð¡ â¹"
+ â«ïž âïž `uvloop` â©ïž ð¢ ð `asyncio` â°. ð â«ïžâ â â«ïž â©.
+
+ â«ïž ð¯ ð® Uvicorn & ð, ð â³ â© ð ð€£ ð ð.
+
+!!! check "ð® **FastAPI** "
+ ð ð âïž ð ð.
+
+ ð â«ïžâ **FastAPI** âïž ð ð, â«ïž â© ð ïž ðª (ð¯ ð¥-𥳠ð).
+
+### ðŠ
+
+ðŠ
â1ïžâ£ â ð ð ð ïž, â«ïž ð§ â, & ð· ð ð ð ïž ð ð€.
+
+â«ïž ð âïž ð¢ ð ðš 2ïžâ£ ð¢, 1ïžâ£ "ðš" & 1ïžâ£ "ðš". â€Žïž ð "â" ð âªïžâ¡ïž ðš, & "â" ð ðš. â©ïž ð ð§, â«ïž ð« ðª ð£ ðš ð¢ & ðª â®ïž ð© ð ð ð ð¢ ð¢.
+
+, ðœ ð¬, ð ïž, & ð§Ÿ, âïž â ð, ð« ð. âïž ð« âïž ð ïž ð ïž ð ð ðŠ
, ð ð€. ð ð ðº ðš ð ð ïž ð ð® ðŠ
ð§, âïž 1ïžâ£ ðš ð & 1ïžâ£ ðš ð ð¢.
+
+!!! check "ð® **FastAPI** "
+ ð ð ð€ ð ð.
+
+ â€Žïž â®ïž ð€ (ð€ âïž ð ðŠ
) ð® **FastAPI** ð£ `response` ð¢ ð¢.
+
+ ð FastAPI â«ïž ðŠ, & âïž âŽïž â ð, ðª, & ð ð ð.
+
+### âš
+
+ð€ ð âš ð¥ â¶ïž ð **FastAPI**. & â«ïž âïž ð ð:
+
+* âïž ð ð ð ð.
+* ð¬ & 𧟠âªïžâ¡ïž ð« ð.
+* ð ð âïž.
+
+â«ïž ð« âïž ðœ ð¬, ð ïž & 𧟠ð¥-𥳠ð ð Pydantic, â«ïž âïž ð® ð. , ð« ðœ ð ð ð ð« â» ðª.
+
+â«ïž ð ð¥ ð ð
ð ð³. & â«ïž âïž ð ðšð» (â©ïž ð«), â«ïž ð« ð§ â ð â-ð ð 𧰠ð Uvicorn, ð & ð€£.
+
+ð ð âïž ð ð€-® ð & ð â 𧢠ð ð£ ð. , â«ïž ð« ðª ð£ ð
ð 1ïžâ£ "ðŠ²" ð ð ð¯ ð.
+
+ð£ ð£ ð ð¥, âïž ð¢ ð£ ð ð¥ (â©ïž âïž ðšâðš ð ðª ð¥ â¶ïžïž ð ð ð¢ ð ðµ ð). ð ð â â³ ðš â«ïž ð â ðº (& ð) ðš â«ïž. â«ïž ð ð ð ð ð¶ ð ð.
+
+!!! check "ð® **FastAPI** "
+ ð¬ â ð¬ ðœ ð âïž "ð¢" ð² ð· ð¢. ð ð ðšâðš ðâðŠº, & â«ïž ð« ðª Pydantic â.
+
+ ð ð€ ð® ð ïž ð Pydantic, ðâðŠº ð ð¬ ð ð (ð ð ð ïž ð ⪠ðª Pydantic).
+
+### ð€
+
+ð€ ð ð¥ ð ïž ð ïž ð ð ïž ð¢ ð âïž ð ð ð. ð ð ð ð ð® ð 𧰠ð.
+
+â«ïž âïž ð ð ð® ð â©ïž ð© ð ð, âïž â«ïž ðŠ ð â©.
+
+â«ïž ð ð¥ ð ïž ð ð ð ð£ ð ð ïž ð».
+
+â«ïž ð« âïž ð ð© ð ð & ð» ð. â«ïž ð«ð ð¯ ð ïž â«ïž â®ïž ð ð§°, ð ðŠ ð. âïž ð, â«ïž ð¶ ð¡ ð.
+
+â«ïž âïž ð, â â: âïž ð ð ïž, â«ïž ðª â ð & ð³ðš.
+
+â«ïž âïž ð â®ïž ð© ð ð ðž ð ïž (ðšð»), â«ïž ðª ð« ðµ *ïžâ£ & ð ð, ð â«ïž âïž â ð ðââïž.
+
+!!! info
+ ð€ â â¡ ð, ð ðŒ `isort`, ð 𧰠ð ð ð ð ð.
+
+!!! check "ð ð® **FastAPI**"
+ ð€ ð® ð APIStar, & 1ïžâ£ 𧰠ð€ ð ð ð, ð APIStar.
+
+ ð€ â¹ ð **FastAPI** âïž ð ð ð ð£ ð¢, & ð ð â ð ïž ð.
+
+ ð€ ð® **FastAPI** ð£ `response` ð¢ ð¢ â ð & ðª.
+
+### APIStar (<= 0ïžâ£.5ïžâ£)
+
+â¶ïžïž â ð€ ð **FastAPI** ð€ ð **APIStar** ðœ. â«ïž âïž ð ð ð€ ð & âïž ð ð§.
+
+â«ïž ð ð¥ ð ïž ð ïž âïž ð ð ð ð£ ð¢ & ðš ð ð€ â± ð (â NestJS & âš). ð€ ð â«ïž ð
âïž ð ð ð° ð€. âïž APIStar âïž ð ð©.
+
+â«ïž âïž ð§ ðœ ð¬, ðœ ð ïž & ð ð â¡ âïž ð ð ð ð ð ð¥.
+
+ðª ð ð ð« âïž ð ð ð ð ð Pydantic, â«ïž ð ð
ð ð,, ðšâðš ðâðŠº ð«ð ð, âïž, APIStar ð ðª ð.
+
+â«ïž âïž ð ð ð ð° (ðŽ ð¥ ð).
+
+ð¥, â«ïž ð« âïž ð§ ð ïž ð§Ÿ ðž ð, âïž ð€ ð ð€ ðª ð® ðŠ ð â«ïž.
+
+â«ïž âïž ð ð âïž. â«ïž â ð€-® ðŠ², ð 𧰠ð¬ ð. âïž, â«ïž ð â.
+
+ð€ ð
ðª âïž â«ïž ð ð, â«ïž ð« âïž ðââ ð ïž,, ð€ ð« ð« â ð â ð€ âïž â®ïž ð-ð ð âïž ð ðº-Apispec. ð€ âïž ð ð ð â ð² ðš â ð ð ïž.
+
+âïž â€Žïž, ð ð¯ ð.
+
+â«ïž ð
ââ ð ð ïž ðž ð ïž, ðŒ ðª ð¯ ð ð.
+
+ð APIStar â 𧰠â ð ð§, ð« ðž ð ïž.
+
+!!! info
+ APIStar â â¡ ðºðžð. ð ðš ð â:
+
+ * â³ ð ð ïž
+ * ð (â **FastAPI** âïž)
+ * Uvicorn (âïž ð & **FastAPI**)
+
+!!! check "ð® **FastAPI** "
+ ð.
+
+ ð ð£ ð ð (ðœ ð¬, ð ïž & ð§Ÿ) â®ïž ð ð ð, ð ð ð° ð ð ðšâðš ðâðŠº, ð³ ð€ ð€ ð ð.
+
+ & â®ïž ð ð ð° ð ð ïž & ð¬ ð ð ð, APIStar ð ð ðª.
+
+ â€Žïž APIStar âïž ð ðœ & ð â, & ð ð» ð â
âïž. ð ð ð ð **FastAPI**.
+
+ ð€ ð€ **FastAPI** "ð ðšâðŒ" APIStar, ⪠ð & ð â, âš âïž, & ð ð, âïž ð ð« âªïžâ¡ïž ð ð â®ïž ð§°.
+
+## âïž **FastAPI**
+
+### Pydantic
+
+Pydantic ð ð¬ ðœ ð¬, ð ïž & 𧟠(âïž ð» ð) âïž ð ð ð ð.
+
+ð â â«ïž ð¶ ðïž.
+
+â«ïž â ð. ð â«ïž â© ð ð ð. & â«ïž âïž ð ð ð ð ð, ðšâðš ðâðŠº ð.
+
+!!! check "**FastAPI** âïž â«ïž"
+ ðµ ð ðœ ð¬, ðœ ð ïž & ð§ ð· 𧟠(âïž ð ð» ð).
+
+ **FastAPI** â€Žïž â ð ð» ð ðœ & ð® â«ïž ð, âïž âªïžâ¡ïž ð ð ð â«ïž ðš.
+
+### ð
+
+ð ð¿ ð« ð ïž/ð§°, â ð¯ ð â-ð â³ ðâðŠº.
+
+â«ïž ð¶ ð
& ðïž. â«ïž ð§ ðª ð§, & âïž ð§ ðŠ².
+
+â«ïž âïž:
+
+* ð€ ð ð.
+* *ïžâ£ ðâðŠº.
+* -ð ïž ð¥ ð.
+* ðŽ & ð€« ð.
+* ð¯ ð©âð» ð ð ðžð².
+* â, ð, ð» ð, ð ðš.
+* ð & ðª ðâðŠº.
+* 1ïžâ£0ïžâ£0ïžâ£ ð¯ ð¯ ð°.
+* 1ïžâ£0ïžâ£0ïžâ£ ð¯ ð â â.
+* ð©ââ€âðš ðïž ð.
+
+ð â³ â© ð ð ïž ð¯. ðŽ ð¥ Uvicorn, â ð« ð ïž, âïž ðœ.
+
+ð ð ð ð° ðž ðž ð ïž.
+
+âïž â«ïž ð« ð ð§ ðœ ð¬, ð ïž âïž ð§Ÿ.
+
+ð 1ïžâ£ ð ð ð **FastAPI** ð® ð ð, ð âïž ð ð ð ð (âïž Pydantic). ð, â ð ð âïž, ðââ ð, ð ð â¡, âïž.
+
+!!! note "ð¡ â¹"
+ ð« ð "ð©" â ð ïž â³ ð ð ðšâð. â«ïž ð« "ð ð©" (ð©ð¬), ð ð« ð ïž ðš ð.
+
+ ð, â«ïž ⪠â âïž "ð©" ð ð§°. ð ð ð ð ïž, ð ðª ð Uvicorn ð ð ð« ðœ (ð ðž âïž Hypercorn), âïž ð ðª ð® ð« ð ð§°, ð `python-socketio`.
+
+!!! check "**FastAPI** âïž â«ïž"
+ ðµ ð ð ðž ð. â â ð ð.
+
+ ð `FastAPI` â«ïž ð ð âªïžâ¡ïž ð `Starlette`.
+
+ , ð³ ð ð ðª â®ïž ð, ð ðª â«ïž ð â®ïž **FastAPI**, â«ïž ð ð ð ð.
+
+### Uvicorn
+
+Uvicorn ð©-â© ð« ðœ, ð ð uvloop & httptool.
+
+â«ïž ð« ðž ð ïž, âïž ðœ. ðŒ, â«ïž ð« ð 𧰠ð¹ â¡. ð ð³ ð ð ïž ð ð (âïž **FastAPI**) ð ð ð ð.
+
+â«ïž ð ðœ ð & **FastAPI**.
+
+!!! check "**FastAPI** ð â«ïž"
+ ð ðž ðœ ð **FastAPI** ðž.
+
+ ð ðª ð â«ïž â®ïž ð, âïž ð ð-ð ïž ðœ.
+
+ â
ð
â¹ [ð ïž](deployment/index.md){.internal-link target=_blank} ð.
+
+## ð & ð
+
+ð€, ð¬, & ð ðº ð Uvicorn, ð & FastAPI, â
ð ð [ð](benchmarks.md){.internal-link target=_blank}.
diff --git a/docs/em/docs/async.md b/docs/em/docs/async.md
new file mode 100644
index 000000000..13b362b5d
--- /dev/null
+++ b/docs/em/docs/async.md
@@ -0,0 +1,430 @@
+# ð ïž & ð / â
+
+â¹ ð `async def` â *â¡ ð ïž ð¢* & ð¥ ð ð ð, ð ïž, & ð.
+
+## ð â
+
+ð;ð©ââïž:
+
+ð¥ ð âïž ð¥ 𥳠ð ð ð¬ ð ð€ ð« â®ïž `await`, ð:
+
+```Python
+results = await some_library()
+```
+
+‎ïž, ð£ ð *â¡ ð ïž ð¢* â®ïž `async def` ð:
+
+```Python hl_lines="2"
+@app.get('/')
+async def read_results():
+ results = await some_library()
+ return results
+```
+
+!!! note
+ ð ðª ðŽ âïž `await` ð ð¢ â â®ïž `async def`.
+
+---
+
+ð¥ ð âïž ð¥ 𥳠ð ð ð â®ïž ð³ (ðœ, ð ïž, ð âïž, âïž.) & ð« âïž ðâðŠº âïž `await`, (ð â³ ðŒ ð
ðœ ð), â€Žïž ð£ ð *â¡ ð ïž ð¢* ð, â®ïž `def`, ð:
+
+```Python hl_lines="2"
+@app.get('/')
+def results():
+ results = some_library()
+ return results
+```
+
+---
+
+ð¥ ð ðž (ð«) ð« âïž ð â®ïž ð³ ð & â â«ïž ðš, âïž `async def`.
+
+---
+
+ð¥ ð ð« ð, âïž ð `def`.
+
+---
+
+**ð**: ð ðª ð `def` & `async def` ð *â¡ ð ïž ð¢* ð
ð ðª & ð¬ ð 1ïžâ£ âïž ð ð ð. FastAPI ð â¶ïžïž ð â®ïž ð«.
+
+ð, ð ðŒ ð, FastAPI ð ð· ð & ð¶ â©.
+
+âïž ð ð¶ ð, â«ïž ð ðª ð ð ïž.
+
+## ð¡ â¹
+
+ð ⬠ð âïž ðâðŠº **"ð ð"** âïž ð³ ð€ **"ð"**, â®ïž **`async` & `await`** â.
+
+â¡ïž ð ð ð€ ð ð ð:
+
+* **ð ð**
+* **`async` & `await`**
+* **ð**
+
+## ð ð
+
+ð ð â ð ðªðž ð¶ âïž ð ð¬ ð» / ð ð¶ ð â ð, â«ïž ð¶ ð âïž â *ð³ ð* ð ð± ð. â¡ïž ð¬ ð *ð³ ð* ð€ "ð-ð" ð¶.
+
+, â®ïž ð ð°, ð» ðª ð¶ & ð ð·, ⪠"ð-ð" ð¶ ð.
+
+â€Žïž ð» / ð ð¶ ð ð ð ð ð° â«ïž âïž ð€ â©ïž â«ïž â ð, âïž ðâ â«ïž ð¶ ð ð ð· â«ïž âïž ð â. & â«ïž ð¶ ð ð ð¥ ð ð â«ïž â âïž âª ð, ð€ž â«ïžâ â«ïž âïž.
+
+â, â«ïž ð¶ â ð¥ ð ð (â¡ïž ð¬, ð "ð-ð" ð¶) & ð£ â«ïžâ â«ïž âïž â®ïž â«ïž.
+
+ð "â ð³ ð" ð ð ð€/ð
Ÿ ð ïž ð ð¶ "ð" (ð¬ ð
ð¹ & ðŸ ðŸ), ð â:
+
+* ð âªïžâ¡ïž ð©âð» ðš ð ðž
+* ð ðš ð ð ðš ð©âð» ð ðž
+* ð ð ðŸ â âïž & ð€ ð ð
+* ð ð ð ð€ âïž â ðŸ
+* ð° ð ïž ð ïž
+* ðœ ð ïž ð
+* ðœ ð¢ ðš ð
+* âïž.
+
+ð ïž ð° ðŽ âŽïž â ð€/ð
Ÿ ð ïž, ð« ð€ ð« "ð€/ð
Ÿ ð" ð ïž.
+
+â«ïž ð€ "ð" â©ïž ð» / ð ð« âïž "ð" â®ïž ð ð, â â ð ð ð ð, ⪠ðš ð³, ðª â ð ð & ð£ ð·.
+
+â©ïž ð, ðââ "ð" âïž, ð ð, ð ðª â âž ð¥ ð (â²) ð» / ð ð â«ïžâ â«ïž ð¶, & â€Žïž ð ð â ð & ð£ ð· â®ïž ð«.
+
+"ð" (ðœ "ð") ð« ð âïž â "ð", â©ïž ð» / ð â© ð ð¶ ð â ð ð ð, ð¥ ð ð ð â.
+
+### ð ïž & ð
+
+ð ð **ð** ð ð¬ ð ð£ ð€ **"ð ïž"**. â«ïž ð âªïžâ¡ïž **"ð"**.
+
+**ð ïž** & **ð** ð¯ââïž ð "ð ð ð¥ ð
âïž ð ð ð°".
+
+âïž â¹ ð *ð ïž* & *ð* ð.
+
+ð ðº, ð ð ð ð ð:
+
+### ð ïž ð
+
+ð ð¶ â®ïž ð 𥰠ð€ â© ð¥, ð ð§ ➠⪠ð§ â â âªïžâ¡ïž ð«ð« ðª ð. ð¶
+
+
+
+â€Žïž â«ïž ð ð, ð ð¥ ð â 2ïžâ£ ð¶ ð ð ð 𥰠& ð. ð¶ ð¶
+
+
+
+ð§ ð¬ ð³ ð³ ðšâð³ ð« ð ð« âïž ð ð ð (âïž ð« â³ ð ð â®ïž ð©âð»).
+
+
+
+ð ðž. ð¶
+
+ð§ ð€ ð ð¢ ð ð.
+
+
+
+⪠ð â, ð ð¶ â®ïž ð 𥰠& â ð, ð ð§ & ð¬ â®ïž ð 𥰠ð ð° (ð ð ð¶ ð & â ð° ð).
+
+ð ð ð â®ïž ð ð¥°, ⪠ð â ð, ð ðª ðž ð ð° ð® â ð, ðš & ð ð 𥰠ð¶ ð¶ ð¶.
+
+
+
+⪠â & ð¬ ð ð¥°, âªïžâ¡ïž ð° ð°, ð â
ð¢ ð¥ ð â² ð ð¥ â«ïž ð ð âª.
+
+â€Žïž â, â«ïž ð ð ð. ð ð¶ â², ð€ ð ð & ð ð ð.
+
+
+
+ð & ð 𥰠ðŽ ð & âïž ð ð°. ð¶
+
+
+
+!!! info
+ ð¹ ðŒ ð¯ ð. ð¶
+
+---
+
+ð ð ð» / ð ð¶ ð ð.
+
+⪠ð âž, ð ✠ð¶, â ð ð, ð« ðš ð³ ð¶ "ð". âïž âž â© â©ïž ð§ ðŽ â â (ð« ð ð«), ð ð.
+
+‎ïž, ðâ â«ïž ð ð, ð â "ð" ð·, ð ð ïž ð£, ð â«ïžâ ð ð, ð€ ð 𥰠â, ðž, â
ð ð ð€ â ðµ âïž ð³, â
ð ð ð â, â
ð â âïž â ð¬, âïž.
+
+âïž â€Žïž, âïž ð ð« âïž ð ð, ð ð· â®ïž ð§ "ð âž" âž, â©ïž ð âïž â ð¶ ð ð ð.
+
+âïž ð ð¶ âïž âªïžâ¡ïž â² & ð§ ð â®ïž ð¢ ð ð, ð ðª ð ð¶ ð ð ð ð¥°, & "ð·" ð¶ ð¶ ð ð. â€Žïž ð ð ðš ð³ ð¶ "ð" ð â®ïž ð 𥰠ð¶.
+
+â€Žïž ð§ ð¶ ð¬ "ð€ ð â®ïž ðš ð" ð® ð ð¢ ð â² ð¥, âïž ð ð« ðŠ ð ð ⪠ðâ ð¥ ð¢ ð ð ð ð¢. ð ð ð
ââ 1ïžâ£ ð ð ð ð â©ïž ð âïž ð¢ ð ð, & ð« âïž ð«.
+
+ð â ð 𥰠ð ð (ð â®ïž ð· ð¶ / ð â ð ïž ð¶), ð ð & ð¬ ð ð ð ð âž.
+
+â€Žïž ð ð¶ â² ð¶, â¶ïž ð ð ð ð ð¶, â ð, ð¬ ð & â ð« ð. ð ð ð ð / ð ð â®ïž â² â¹. ð ð, â ð ð, "ðŽ ð" ð¶ ð¶, âïž â®ïž 1ïžâ£ "ð€ ð" ð â¹.
+
+### ð ð
+
+ð â¡ïž ð ð« âð« ð« "ð ïž ð", âïž "ð ð".
+
+ð ð¶ â®ïž ð 𥰠ð€ ð â© ð¥.
+
+ð ð§ ➠⪠ð (â¡ïž ð¬ 8ïžâ£) ð§ ð ð ð° ð³ â â âªïžâ¡ïž ð«ð« ðª ð.
+
+ð± â ð â ð« ð ð â ð â² â©ïž ð 8ïžâ£ ð§ ð¶ & ð ð â¶ïžïž âïž â ðââ â â.
+
+
+
+â€Žïž â«ïž ð ð ð, ð ð¥ ð â 2ïžâ£ ð¶ ð ð ð 𥰠& ð.
+
+ð ðž ð¶.
+
+
+
+ð§ ð¶ ðšâð³.
+
+ð â, ð§ ðª â² ð¶, ð ð
ââ 1ïžâ£ ð â ð ð â ð, ð€ ð
ââ ð¢ ð.
+
+
+
+ð & ð 𥰠ð© ð« â¡ïž ð ð€ ðª ð & â ð ð ðâ ð« ð¬, ð ð«ð ðž ð ð ð¥°. ð¶
+
+ð "ð" ð·, ð "ð" â®ïž ð§/ð³ ð¶ ð¶. ð âïž â ð¶ & ð€ â ð ð ð§/ð³ ð¶ ð¶ ð ð & ð€ ð« ð, âïž âª, ð± ð ðª â ð«.
+
+
+
+â€Žïž ð ð§/ð³ ð¶ ð¶ ð ð ð â®ïž ð ð, â®ïž ð ð° â ð¶ ð€ ðª â².
+
+
+
+ð â ð ð & ð¶ ð â®ïž ð ð¥°.
+
+ð ðŽ ð«, & ð ðš. â¹
+
+
+
+ð€ ð« ð
ð¬ âïž ð ð
ð° ðž â ð¶ ðª â². ð¶
+
+!!! info
+ ð¹ ðŒ ð¯ ð. ð¶
+
+---
+
+ð ð ð ð, ð ð» / ð ð¶ â®ïž 2ïžâ£ ð¹ (ð & ð ð¥°), ð¯ââïž â ð¶ & ð¡ ð« ð ð¶ "â ð â²" ð¶ ð ð°.
+
+â© ð¥ ðª âïž 8ïžâ£ ð¹ (ð§/ð³). ⪠ð ïž ð ðª ðª âïž âïž ðŽ 2ïžâ£ (1ïžâ£ ð§ & 1ïžâ£ ð³).
+
+âïž, ð ð¡ ð« ð. ð¶
+
+---
+
+ð ð ð ð ð ð. ð¶
+
+ð
"ð° ðšââ€âðš" ðŒ ð, ð ðŠ.
+
+ð â³, ð ðŠ âïž ð ð§ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ & ðŠ âž ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶ ð¶.
+
+ð ð§ ðš ð ð· â®ïž 1ïžâ£ ð©âð» â®ïž ð ð¶ ð¶ ð¶.
+
+& ð âïž â ð¶ âž ð ð° âïž ð ðž ð ð.
+
+ð ð² ð«ð ð â ð 𥰠ð¶ â®ïž ð ð· ðŠ ð¶.
+
+### ð ð
+
+ð ð "â© ð¥ ð â®ïž ð ð¥°", ð€ ð â ð¶, â«ïž â ð ð
ð âïž ð ïž âïž âž ð¶ ð¶.
+
+ð ðŒ ð
ðž ðž.
+
+ð, ð ð©âð», âïž ð ðœ â ð¶ ð« ð«--ð ð ðš ð« ðš.
+
+& â€Žïž â ð¶ ð ðš ð ð.
+
+ð "â" ð¶ â â², âïž, â â«ïž ð, â«ïž ð â ð.
+
+ð â«ïžâ â«ïž â ð ð âïž ð âž ð¶ ð¶ ð ðž ð.
+
+ð ð ð â«ïžâ â â³ ð (âïž â³ ð« ð) & ð ðª ð¶ ð ïž ðªðž.
+
+& ð ð ð ð ð ð€ â®ïž **FastAPI**.
+
+& ð ðª âïž ð & ð ð ð°, ð ð€ â ð ð ð
ð¯ â³ ð ïž & ð ð·ðª â®ïž ð¶, â â ðªðž ð ð
± (ð ð ð).
+
+### ð ïž ð ð ð â
+
+ð â ð ð« ð ð.
+
+ð ïž ð ð ð. & â«ïž ð» ð **ð¯** ð ð ð ð â. â©ïž ð, â«ïž ð ð ð ð ð ðž ðž ð ïž. âïž ð« ð.
+
+, â ð ð
, ð ð ð ð:
+
+> ð âïž ð§¹ ðŠ, ð© ð .
+
+*ð, ð ð ð*.
+
+---
+
+ð€ ð
ââ â ð¶ ð, ð ð· ðš, ð ð ð¥ ð .
+
+ð ðª âïž ð ð ðŒ, ð¥ ð ð§ââ, â€Žïž ðšâð³, âïž ð ð« â ð¶ ð³, 𧹠& ð§¹, ð ð«ð ð ð³.
+
+â«ïž ð â ð ðž ð° ð â®ïž âïž ðµ ð (ð ïž) & ð ð âïž â ð ðž ð·.
+
+âïž ð ðŒ, ð¥ ð ðª âïž 8ïžâ£ ð°-ð§/ð³/ð-ð§¹, & ð 1ïžâ£ ð« (â ð) ðª â ð ð 𧹠â«ïž, ð ðª ð ð· **ð**, â®ïž â â¹, & ð ð
ð.
+
+ð ð, ð 1ïžâ£ 𧹠(ð ð) ð ð¹, ð€ž ð« ð ðšâð.
+
+& ð ð ïž ð° â â ð· (â©ïž â), & ð· ð» â ðœ, ð« ð€ ð« â "ðœ ð".
+
+---
+
+â ðŒ ðœ ð ð ïž ð ð ð ð 𧪠ð.
+
+ðŒ:
+
+* **ð§** âïž **ðŒ ð**.
+* **ð» ð**: ðŒ â ð¯ ð
, ð ð
âïž 3ïžâ£ ð² / ðš, ð ð ð ð ð» ð³ ð ð ð
, ð ð ð°.
+* **ð° ð«**: â«ïž ð ð ð "â" & "ðŒ" â. ð ðŠ ð â®ïž ð¢ & â ð ð« ð¯ââïž ð ð°.
+* **⬠ð«**: ð ð§-ð ð° ð«,, ð â. â«ïž ð ð€ ð« ð ð ð¢ â, âïž ðŠ â ð«, & ð ðŒ, ð âïž ð ð¹ ð & / âïž âïž ð ð·.
+
+### ð ïž â ð: ðž â ð° ð«
+
+â®ïž **FastAPI** ð ðª â ð ð ïž ð ð¶ â ðž ð ïž (ð ð 𧲠â³).
+
+âïž ð ðª ð ð° ð & ðŸ (âïž ð ð ïž ðââ ð) **ðœ ð** â ð ð ð° ð« âïž.
+
+ð, â ð
ð ð ð ð ðªðž **ðœ ð§ª**, ð° ð« & âŽïž ⬠ð«, â FastAPI ð¶ ð ð ðœ 𧪠/ ð° ð« ðž ð & ðž (ðª ð ð).
+
+ð â ð ð ð ð ð ð ð [ð ïž](deployment/index.md){.internal-link target=_blank}.
+
+## `async` & `await`
+
+ð ⬠ð âïž ð¶ ðïž ð ð¬ ð ð. ð â â«ïž ð ð ð "ð" ð & "â" ð â¶ïžïž ð.
+
+ðâ ð€ ð ïž ð ð ð â â ð€ ð & âïž ðâðŠº ð ð ð â, ð ðª ð â«ïž ð:
+
+```Python
+burgers = await get_burgers(2)
+```
+
+ð ð¥ `await`. â«ïž ð¬ ð ð â«ïž âïž â âž `get_burgers(2)` ð ðš ð® ð ð¶ â â» ð `burgers`. â®ïž ð, ð ð ð ð â«ïž ðª ð¶ & ð³ ð ð¶ ð¶ ð (ð ðš â1ïžâ£ ðš).
+
+`await` ð·, â«ïž âïž ð ð¢ ð ðâðŠº ð ð. ð, ð ð£ â«ïž â®ïž `async def`:
+
+```Python hl_lines="1"
+async def get_burgers(number: int):
+ # Do some asynchronous stuff to create the burgers
+ return burgers
+```
+
+...â©ïž `def`:
+
+```Python hl_lines="2"
+# This is not asynchronous
+def get_sequential_burgers(number: int):
+ # Do some sequential stuff to create the burgers
+ return burgers
+```
+
+â®ïž `async def`, ð ð ð, ð ð ð¢, â«ïž âïž ð€ `await` ð§¬, & ð â«ïž ðª "âž" âž ð ïž ð ð¢ & ð¶ ð³ ð ð¶ â ð ð.
+
+ðâ ð ð ð€ `async def` ð¢, ð âïž "â" â«ïž. , ð ð ð« ð·:
+
+```Python
+# This won't work, because get_burgers was defined with: async def
+burgers = get_burgers(2)
+```
+
+---
+
+, ð¥ ð âïž ð ð ð¬ ð ð ð ðª ð€ â«ïž â®ïž `await`, ð ðª â *â¡ ð ïž ð¢* ð âïž â«ïž â®ïž `async def`, ð:
+
+```Python hl_lines="2-3"
+@app.get('/burgers')
+async def read_burgers():
+ burgers = await get_burgers(2)
+ return burgers
+```
+
+### ð
ð¡ â¹
+
+ð ðª âïž ð ð `await` ðª ðŽ âïž ð ð¢ ð¬ â®ïž `async def`.
+
+âïž ð ð°, ð¢ ð¬ â®ïž `async def` âïž "â". , ð¢ â®ïž `async def` ðª ðŽ ð€ ð ð¢ ð¬ â®ïž `async def` ðââïž.
+
+, ð ð¥ & ð, â ð ð€ ð¥ `async` ð¢ â
+
+ð¥ ð ð· â®ïž **FastAPI** ð ð« âïž ð ð ð, â©ïž ð "ð¥" ð¢ ð ð *â¡ ð ïž ð¢*, & FastAPI ð ð â â¶ïžïž ð.
+
+âïž ð¥ ð ð âïž `async` / `await` ðµ FastAPI, ð ðª â«ïž ð.
+
+### â ð ð ð ð
+
+ð (& **FastAPI**) âïž ð AnyIO, â â â«ïž ð â®ïž ð¯ââïž ð ð© ð â³ & ð».
+
+ð¯, ð ðª ð âïž AnyIO ð ð§ ð ïž âïž ðŒ ð ð ð
ð§ â ð ð ð.
+
+& ð¥ ð ð« âïž FastAPI, ð ðª â ð ð ð ðž â®ïž AnyIO ð ð & ð€ ð® ð° (â
*ð ð ïž*).
+
+### ð ðš ð ð
+
+ð ð âïž `async` & `await` ð¶ ð ðªðž.
+
+âïž â«ïž â ð· â®ïž ð ð ð â©.
+
+ð ð â (âïž ð ð) ð â³ ð ⬠ðž (ð¥ & â³).
+
+âïž â ð, ð ð ð ð ð & â .
+
+â®ïž ⬠ð, ð ðª âïž âïž ð§µ âïž ð. âïž ð ð ð ð ð€, â¹, & ð ð.
+
+â®ïž ⬠Ⳡ/ ð¥ ðž, ð ð âïž âïž "â²". â âïž â² ð¥ð.
+
+## ð
+
+**ð** ð¶ ð â ð ðš `async def` ð¢. ð ð ð â«ïž ð³ ð ð¢ ð â«ïž ðª â¶ïž & ð â«ïž ð ð â, âïž ð â«ïž 5ïžâ£ð âž âž ð ðââïž, ðâ ð€ `await` ð â«ïž.
+
+âïž ð ð ð ïž âïž ð ð â®ïž `async` & `await` ð ð° ð¬ âïž "ð". â«ïž â ð ð â ð¶, "ð".
+
+## ð
+
+â¡ïž ð ð ð€ âªïžâ¡ïž ð:
+
+> ð ⬠ð âïž ðâðŠº **"ð ð"** âïž ð³ ð€ **"ð"**, â®ïž **`async` & `await`** â.
+
+ð ð â ð
ð ð. ð¶
+
+ð ð â«ïžâ ðïž FastAPI (ð ð) & â«ïžâ â â«ïž âïž â
ð ð.
+
+## ð¶ ð¡ â¹
+
+!!! warning
+ ð ðª ð² ð¶ ð.
+
+ ð ð¶ ð¡ â¹ â **FastAPI** ð· ð.
+
+ ð¥ ð âïž ð¡ ð¡ (ð¶-ð, ð§µ, ð«, âïž.) & ð ð â FastAPI ðµ `async def` ð ð `def`, ð¶ ‎ïž.
+
+### â¡ ð ïž ð¢
+
+ðâ ð ð£ *â¡ ð ïž ð¢* â®ïž ð `def` â©ïž `async def`, â«ïž ð ð¢ 𧵠ð â€Žïž â, â©ïž â ð€ ð (â«ïž ð ð« ðœ).
+
+ð¥ ð ð âªïžâ¡ïž â1ïžâ£ ð ð ïž ð ðš ð« ð· ð ð¬ ð & ð âïž â ð ð-ðŽ *â¡ ð ïž ð¢* â®ïž â
`def` ð€ª ð ð (ð 1ïžâ£0ïžâ£0ïžâ£ ð), ð ð ð **FastAPI** â ð ð. ð« ðŒ, â«ïž ð» âïž `async def` ð¥ ð *â¡ ð ïž ð¢* âïž ð ð ð ð§ ð€/ð
Ÿ.
+
+, ð¯ââïž â , ð€ ð **FastAPI** ð [â©](/#performance){.internal-link target=_blank} ð (âïž ð â) ð â®ïž ð ïž.
+
+### ð
+
+ð â [ð](/tutorial/dependencies/index.md){.internal-link target=_blank}. ð¥ ð ð© `def` ð¢ â©ïž `async def`, â«ïž ð ð¢ ð§µ.
+
+### ð§-ð
+
+ð ðª âïž ð ð & [ð§-ð](/tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank} ð« ð ð (ð¢ ð¢ ð), ð« ðª â â®ïž `async def` & â®ïž ð `def`. â«ïž ð ð·, & ð â â®ïž ð `def` ð ð€ ð ð¢ 𧵠(âªïžâ¡ïž ð§µ) â©ïž â "â".
+
+### ð ð ð¢
+
+ð ð ð ð¢ ð ð ð€ ð ðª â â®ïž ð `def` âïž `async def` & FastAPI ð ð« ð ð ð ð€ â«ïž.
+
+ð ð
ð¢ ð FastAPI ð€ ð: *â¡ ð ïž ð¢* & ð.
+
+ð¥ ð ð ð¢ ð ð¢ â®ïž `def`, â«ïž ð ð€ ð (ð â â«ïž ð ð), ð« ð§µ, ð¥ ð¢ â â®ïž `async def` â€Žïž ð ð `await` ð ð¢ ðâ ð ð€ â«ïž ð ð.
+
+---
+
+ð, ð ð¶ ð¡ â¹ ð ð ð² â ð¥ ð ð ð ð«.
+
+âª, ð ð ð â®ïž ð âªïžâ¡ïž ð ð: ð â.
diff --git a/docs/em/docs/benchmarks.md b/docs/em/docs/benchmarks.md
new file mode 100644
index 000000000..003c3f62d
--- /dev/null
+++ b/docs/em/docs/benchmarks.md
@@ -0,0 +1,34 @@
+# ð
+
+ð¬ ðžð² ð ðŠ **FastAPI** ðž ðââ ðœ Uvicorn 1ïžâ£ â© ð ð ïž ðª, ðŽ ð ð & Uvicorn ð« (âïž ð FastAPI). (*)
+
+âïž ðâ â
ð & ðº ð ð âïž ð ð€¯.
+
+## ð & ð
+
+ðâ ð â
ð, â«ïž â ð ð 𧰠ð ð ð¬ ð.
+
+ð¯, ð Uvicorn, ð & FastAPI ð¬ ð¯ââïž (ðª ð ð ð§°).
+
+ð
â â ð§°, ð ð â«ïž ð ð€. & ð ð ð« ð¯ ð â ð ð§°.
+
+ð ð:
+
+* **Uvicorn**: ð« ðœ
+ * **ð**: (âïž Uvicorn) ðž ðž
+ * **FastAPI**: (âïž ð) ð ïž ðž â®ïž ð ð â ð ð, â®ïž ðœ ð¬, âïž.
+
+* **Uvicorn**:
+ * ð âïž ð ð, â«ïž ð« âïž ð
â ð âïž âªïžâ¡ïž ðœ â«ïž.
+ * ð ð«ð â ðž Uvicorn ð. ð ð â ð ð ð ð âïž ð ð âïž ð, ð, ð ð ð ð (âïž **FastAPI**). & ð¥ ð ð, ð ð ðž ð âïž ð ð¥ âïž âïž ð ïž & ð ð ð± ð & ð.
+ * ð¥ ð â Uvicorn, ð¬ â«ïž ð¡ ðž, Hypercorn, â³, âïž. ðž ðœ.
+* **ð**:
+ * ð âïž â ð ð, â®ïž Uvicorn. ð, ð âïž Uvicorn ð. , â«ïž ð² ðª ðŽ ð€ "ð" ð Uvicorn âïž ð ïž ð
ð.
+ * âïž â«ïž ð ð 𧰠ð ð
ðž ðž, â®ïž ð¹ âïž ð â¡, âïž.
+ * ð¥ ð â ð, ð¬ â«ïž ð¡ ð€£, ðº, â³, âïž. ðž ð ïž (âïž ðž).
+* **FastAPI**:
+ * ð ð ð ð âïž Uvicorn & ð«ð â© ð â«ïž, **FastAPI** âïž ð, â«ïž ð«ð â© ð â«ïž.
+ * FastAPI ð ð
â ð ð ð. â ð ð ð ð§ ðª ðâ ð ð, ð ðœ ð¬ & ð ïž. & âïž â«ïž, ð ð€ ð§ 𧟠ð (ð§ 𧟠ð« ð® ð¥ ðââ ðž, â«ïž ð ð ðŽ).
+ * ð¥ ð ð« âïž FastAPI & âïž ð ð (âïž â1ïžâ£ ð§°, ð ð€£, ðº, ð, âïž) ð ð âïž ð ïž ð ðœ ð¬ & ð ïž ð. , ð ð ðž ð âïž ð ð¥ ð¥ â«ïž ð âïž FastAPI. & ð ðŒ, ð ðœ ð¬ & ð ïž ðŠ ðž ð â ðž.
+ * , âïž FastAPI ð â» ð ïž ð°, ð, âž ð, & ð ð ð² ð€ ð ð (âïž ð) ð ð ð¥ ð ð« âïž â«ïž (ð ð âïž ð ïž â«ïž ð ð ð).
+ * ð¥ ð â FastAPI, ð¬ â«ïž ð¡ ðž ðž ð ïž (âïž â ð§°) ð ð ðœ ð¬, ð ïž & ð§Ÿ, ð ðº-apispec, NestJS, âš, âïž. ð ïž â®ïž ð ïž ð§ ðœ ð¬, ð ïž & ð§Ÿ.
diff --git a/docs/em/docs/contributing.md b/docs/em/docs/contributing.md
new file mode 100644
index 000000000..7749d27a1
--- /dev/null
+++ b/docs/em/docs/contributing.md
@@ -0,0 +1,465 @@
+# ð ïž - ð
+
+ð¥, ð ðª ð ð ð° ð [â¹ FastAPI & ð€ â¹](help-fastapi.md){.internal-link target=_blank}.
+
+## ð ïž
+
+ð¥ ð ⪠ð ð & ð ð ð ð ðª â¬ ð€¿ ð, ð¥ ð â ð ð ð.
+
+### ð¹ ð â®ïž `venv`
+
+ð ðª â ð¹ ð ð âïž ð `venv` ð¹:
+
+
+
+```console
+$ python -m venv env
+```
+
+
+
+ð ð â ð `./env/` â®ïž ð ð± & â€Žïž ð ð ðª â ðŠ ð â ð.
+
+### ð ð
+
+ð ð ð â®ïž:
+
+=== "ðŸ, ðžð»"
+
+
+
+ ```console
+ $ source ./env/bin/activate
+ ```
+
+
+
+=== "ðª ð"
+
+
+
+ ```console
+ $ .\env\Scripts\Activate.ps1
+ ```
+
+
+
+=== "ðª ð"
+
+ âïž ð¥ ð âïž ð ð¥ (â
ð ð):
+
+
+
+ ```console
+ $ source ./env/Scripts/activate
+ ```
+
+
+
+â
â«ïž ð·, âïž:
+
+=== "ðŸ, ðžð», ðª ð"
+
+
+
+ ```console
+ $ which pip
+
+ some/directory/fastapi/env/bin/pip
+ ```
+
+
+
+=== "ðª ð"
+
+
+
+ ```console
+ $ Get-Command pip
+
+ some/directory/fastapi/env/bin/pip
+ ```
+
+
+
+ð¥ â«ïž ðŠ `pip` ð± `env/bin/pip` â€Žïž â«ïž ð·. ð¶
+
+â ð ð âïž ð° ð ⬠ð ð ð¹ ð â â ð â ð¶:
+
+
+
+```console
+$ python -m pip install --upgrade pip
+
+---> 100%
+```
+
+
+
+!!! tip
+ ð ð° ð â ð ðŠ â®ïž `pip` ðœ ð ð, ð ð ð.
+
+ ð â ð ð ð¥ ð âïž ð¶ ð â ð ðŠ, ð âïž 1ïžâ£ âªïžâ¡ïž ð ð§ð¿ ð & ð« ð ð ð ðª â ð.
+
+### ð
+
+â®ïž ð ð ð¬ ð:
+
+
+
+```console
+$ pip install -e ."[dev,doc,test]"
+
+---> 100%
+```
+
+
+
+â«ïž ð â ð ð & ð ð§ð¿ FastAPI ð ð§ð¿ ð.
+
+#### âïž ð ð§ð¿ FastAPI
+
+ð¥ ð â ð ð ð ð & âïž FastAPI, & ð â«ïž â®ïž ð âªïžâ¡ïž ð ð§ð¿ ð, â«ïž ð âïž ð ð§ð¿ FastAPI â¹ ð.
+
+& ð¥ ð â¹ ð ð§ð¿ FastAPI â¹ ð, â«ïž â â®ïž `-e`, ðâ ð ð ð ð ð ð, â«ïž ð âïž ð ⬠FastAPI ð â.
+
+ð ð, ð ð« âïž "â" ð ð§ð¿ ⬠ðª ð¯ ð ð.
+
+### ð
+
+ð€ â ð ð ðª ð ð ð ð & 𧹠ð ð ð:
+
+
+
+```console
+$ bash scripts/format.sh
+```
+
+
+
+â«ïž ð ð-ð ð ð ð.
+
+â«ïž ð ð« â, ð ðª âïž FastAPI â ð ð ð, â®ïž ð ð ð âïž `-e`.
+
+## ð©º
+
+ð¥, â ð ð â ð ð ð ð¬ ð, ð ð â ð ð.
+
+𧟠âïž â¬.
+
+& ð€ â ð§°/â ð¥ ðµ â `./scripts/docs.py`.
+
+!!! tip
+ ð ð« ðª ð ð `./scripts/docs.py`, ð âïž â«ïž ð âž.
+
+ð 𧟠â ð ð `./docs/en/`.
+
+ð ð° âïž ð« ð.
+
+ð
ðŒ, ð« ð« ð â ð ðž ð ðª ð.
+
+ð, ð ð« ð ð« â ð â, ð« ð ð `./docs_src/` ð.
+
+& ð ð ð ð/ð 𧟠ðâ ð ðž.
+
+### 𩺠ð¯
+
+ð ð¯ ð€ ð ð¡ ðŒ â¹ ð ð§Ÿ.
+
+ð â¹ â ð ð:
+
+* 𧟠ð ð
.
+* 𧟠ðŒ ðª ð.
+* ð
â ð ð§Ÿ, ð ð¯ ð°.
+
+â®ïž ð§ð¿ ð ïž, ð€ â ð ð ðž & â
ð ð, ð-ð«:
+
+
+
+```console
+$ python ./scripts/docs.py live
+
+[INFO] Serving on http://127.0.0.1:8008
+[INFO] Start watching changes
+[INFO] Start detecting changes
+```
+
+
+
+â«ïž ð ðŠ 𧟠ð `http://127.0.0.1:8008`.
+
+ð ð, ð ðª â ð§Ÿ/â¹ ð & ð ð ð.
+
+#### ð â³ (ðŠ)
+
+ð©âðŸ ð¥ ðŠ ð â âïž â `./scripts/docs.py` â®ïž `python` ð ð.
+
+âïž ð ðª âïž ð â³, & ð ð ð€ â ð ð¶ ð â®ïž â ð ïž.
+
+ð¥ ð â ð â³, ð ðª â ð ïž â®ïž:
+
+
+
+```console
+$ typer --install-completion
+
+zsh completion installed in /home/user/.bashrc.
+Completion will take effect once you restart the terminal.
+```
+
+
+
+### ð± & 𩺠ð ð°
+
+ð¥ ð ð ðŒ â®ïž, â
:
+
+
+
+```console
+$ uvicorn tutorial001:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+Uvicorn ð¢ ð âïž âŽ `8000`, 𧟠ð ⎠`8008` ð ð« â.
+
+### â
+
+â¹ â®ïž â ð¶ ð
ð â & â«ïž ðª ð« ðš ðµ â¹ âªïžâ¡ïž ðª. ð¶ ð¶
+
+ð¥ ð¶ â¹ â®ïž â.
+
+#### ðââ & ð
+
+* â
â³ â» ð² ðš ð ðªðž & ð® ð â ð âïž â ð«.
+
+!!! tip
+ ð ðª ð® ð€ â®ïž ð ð â» ð² ðš.
+
+ â
𩺠ð â ð² ðš ð â â«ïž âïž ðš ð.
+
+* â
â ð ð¥ ð€ 1ïžâ£ ð ïž â ð ðªðž.
+
+* ð® ð ð² ðš ð ð ð¬. ð ð â â«ïž ð
â© ð ð â«ïž.
+
+ðªðž ð€ ð« ð¬, ð€ ð â ð ð ð â â ð.
+
+* ð ðª â
ð¥ ð€ â ð ðªðž & ð® ð ð«, ð ð â¹ ð€ ð ð â â & ð€ ðª ð â«ïž.
+
+* âïž ð ð ðŒ & ðŽ ð¬ â ð©º. ð ð« âïž ð ð³ ð ð·.
+
+* âïž ð ðŒ, ð ð, & ð. ð ð« âïž ð ð³ â«ïž ð·.
+
+* â
2ïžâ£-ð€ ð ðªðž ð ð ð¬ ð ðª âïž ð ð ðŸ 6ïžâ£3ïžâ£9ïžâ£-1ïžâ£ ð.
+
+#### â» ðªðž
+
+â¡ïž ð¬ ð ð ð¬ ð ðªðž ð ⪠âïž â ð, ð ðªðž.
+
+ðŒ ðªðž, 2ïžâ£-ð€ ð `es`. , ð ðªðž â ð `docs/es/`.
+
+!!! tip
+ ð ("ð") ðªðž ðªðž, ð `docs/en/`.
+
+ð ð ð ðœ 𩺠ðªðž:
+
+
+
+```console
+// Use the command "live" and pass the language code as a CLI argument
+$ python ./scripts/docs.py live es
+
+[INFO] Serving on http://127.0.0.1:8008
+[INFO] Start watching changes
+[INFO] Start detecting changes
+```
+
+
+
+ð ð ðª ð¶ http://127.0.0.1:8008 & ð ð ð ð.
+
+ð¥ ð ð FastAPI 𩺠ðž, ð ð ð ð ð ðªðž âïž ð ð. âïž ð ð« ð¬ & âïž ðš ð â â.
+
+âïž ðâ ð ð â«ïž ð ð ð, ð ð ðŽ ð ð ð ⪠ð¬.
+
+ð â¡ïž ð¬ ð ð ð ð® â ð [â](features.md){.internal-link target=_blank}.
+
+* ð ð:
+
+```
+docs/en/docs/features.md
+```
+
+* ð â«ïž â«ïžâ ð ðº âïž ðªðž ð ð ð¬, â
:
+
+```
+docs/es/docs/features.md
+```
+
+!!! tip
+ ð ð ðŽ ð â¡ & ð ð ðªðž ð, âªïžâ¡ïž `en` `es`.
+
+* ð ð ⬠ð ð ðªðž:
+
+```
+docs/en/mkdocs.yml
+```
+
+* ð ð¥ ðâ ð `docs/features.md` ð ð ð. ð± ð:
+
+```YAML hl_lines="8"
+site_name: FastAPI
+# More stuff
+nav:
+- FastAPI: index.md
+- Languages:
+ - en: /
+ - es: /es/
+- features.md
+```
+
+* ð ⬠ð ð ðªðž ð â, â
:
+
+```
+docs/es/mkdocs.yml
+```
+
+* ð® â«ïž ð€ â ð ðº â«ïž ðªðž, â
:
+
+```YAML hl_lines="8"
+site_name: FastAPI
+# More stuff
+nav:
+- FastAPI: index.md
+- Languages:
+ - en: /
+ - es: /es/
+- features.md
+```
+
+â ð ð ð¥ ð€ ð â, ð â â®ïž ð â â«ïžâ ð â ðªðž â¬.
+
+ð¥ ð ð¶ ð ð¥ ð ð ð ð ð 𩺠ðŠ ð ð ð. ð¶
+
+ð ð ðª ð¬ â«ïž ð & ð â â«ïž ð ð ð ð.
+
+#### ð ðªðž
+
+â¡ïž ð¬ ð ð ð ð® â ðªðž ð ð« ð¬, ð« ð.
+
+â¡ïž ð¬ ð ð ð® â ðð¹, & â«ïž ð« ð€ ð©º.
+
+â
ð âªïžâ¡ïž ð, ð "ðð¹" `ht`.
+
+â ð ð â ð ð â ð:
+
+
+
+```console
+// Use the command new-lang, pass the language code as a CLI argument
+$ python ./scripts/docs.py new-lang ht
+
+Successfully initialized: docs/ht
+Updating ht
+Updating en
+```
+
+
+
+ð ð ðª â
ð ð ðšâðš â³ â ð `docs/ht/`.
+
+!!! tip
+ â ð¥ ð² ðš â®ïž ð, â ð ð³ ð ðªðž, â â â.
+
+ ð ð ð ðª â¹ â®ïž ð ð ⪠ð ð· ð ð¥ ð. ð¶
+
+â¶ïž â ð ð, `docs/ht/index.md`.
+
+â€Žïž ð ðª ð£ â®ïž â®ïž ð©âðŸ, "â» ðªðž".
+
+##### ð ðªðž ð« ðâðŠº
+
+ð¥ ðâ ðââ ð ðœ â ð ð€ â ð ðªðž ð« â ðâðŠº, ð³ ð:
+
+```
+ raise TemplateNotFound(template)
+jinja2.exceptions.TemplateNotFound: partials/language/xx.html
+```
+
+ð â ð ð¢ ð« ðâðŠº ð ðªðž (ð ðŒ, â®ïž â 2ïžâ£-ð€ ð `xx`).
+
+âïž ð« ð, ð ðª â ð¢ ðªðž ðªðž & â€Žïž ð¬ ð ð©º.
+
+ð¥ ð ðª ð, â `mkdocs.yml` ð ð ðªðž, â«ïž ð âïž ð³ ð:
+
+```YAML hl_lines="5"
+site_name: FastAPI
+# More stuff
+theme:
+ # More stuff
+ language: xx
+```
+
+ð ð ðªðž âªïžâ¡ïž `xx` (âªïžâ¡ïž ð ðªðž ð) `en`.
+
+â€Žïž ð ðª â¶ïž ð ðœ ð.
+
+#### ð® ð
+
+ðâ ð âïž â `./scripts/docs.py` â®ïž `live` ð â«ïž ðŽ ðŠ ð & â ðª â®ïž ðªðž.
+
+âïž ð ð ðš, ð ðª ð¯ â«ïž ð â«ïž ð ð ð³.
+
+ð, ð¥ ð ð ð©º:
+
+
+
+```console
+// Use the command "build-all", this will take a bit
+$ python ./scripts/docs.py build-all
+
+Updating es
+Updating en
+Building docs for: en
+Building docs for: es
+Successfully built docs for: es
+Copying en index.md to README.md
+```
+
+
+
+ð ð ð 𩺠`./docs_build/` ð ðªðž. ð ð â ð ð â®ïž â â, â®ïž ð ð¬ ð "ð ð ð« âïž â". âïž ð ð« âïž ð³ â®ïž ð ð.
+
+â€Žïž â«ïž ð ð ð ð¬ ⬠ðž ð ðªðž, ð ð«, & ð ð ð¢ `./site/`.
+
+â€Žïž ð ðª ðŠ ð â®ïž ð `serve`:
+
+
+
+```console
+// Use the command "serve" after running "build-all"
+$ python ./scripts/docs.py serve
+
+Warning: this is a very simple server. For development, use mkdocs serve instead.
+This is here only to preview a site with translations already built.
+Make sure you run the build-all command first.
+Serving at: http://127.0.0.1:8008
+```
+
+
+
+## ð¯
+
+ð€ â ð ð ðª ð ð ð¯ ð ð & ð ð° ð ðž:
+
+
+
+```console
+$ bash scripts/test-cov-html.sh
+```
+
+
+
+ð ð ð ð `./htmlcov/`, ð¥ ð ð ð `./htmlcov/index.html` ð ð¥, ð ðª ð¬ ð¥ ð¹ðŒ ð ð ð ð¯, & ð ð¥ ð€ ð ð¹ðŒ â.
diff --git a/docs/em/docs/deployment/concepts.md b/docs/em/docs/deployment/concepts.md
new file mode 100644
index 000000000..8ce775411
--- /dev/null
+++ b/docs/em/docs/deployment/concepts.md
@@ -0,0 +1,311 @@
+# ð ïž ð§
+
+ðâ ð ïž **FastAPI** ðž, âïž ð€, ð ð ðž ð ïž, ð€ ð ð§ ð ð ð² ð
ð, & âïž ð« ð ðª ð **ð â** ð **ð ïž ð ðž**.
+
+â ð§:
+
+* ðââ - ðºðžð
+* ðââ ð ðŽ
+* â
+* 𧬠(ð¢ ð ïž ð)
+* ðŸ
+* â®ïž ð â â¶ïž
+
+ð¥ ð ð â ð« ð ð **ð ïž**.
+
+ð, ð ð¯ ðª **ðŠ ð ð ïž ð©âð»** ð ð **ð**, **â ð**, & âïž **ð â¹** (ðŒ ð° ðœ/ð¹ ð°) â» ðª. ð¶
+
+ð€ ð ð¬ ð ð ð ð ð« **ð§** ð¥, & ð ð ð€ ð€ ð **ð€** ð ð ðª ð â ð ïž ð ð ïž ð¶ ð ð, ð² **ð®** ð ð ð« ð.
+
+ð€ ð« ð§, ð ð ðª **ð¬ & ð§** ð ð ð ïž **ð ð ð**.
+
+â ð, ð€ ð ð€ ð ð
**𧱠ð®** ð ïž FastAPI ðž.
+
+âïž ð, â¡ïž â
ð â **â ð**. ð« ð§ â ð ð ð ðž ð ïž. ð¶
+
+## ðââ - ðºðžð
+
+[â®ïž ð ð ðºðžð](./https.md){.internal-link target=_blank} ð¥ ðð² ð â ðºðžð ð ð ð ð ïž.
+
+ð¥ ð ð ðºðžð ð ð ðŠ² **ð¢** ð ðž ðœ, **ð€ â ð³**.
+
+& ð€ âïž ð³ ð **â» ðºðžð ð**, â«ïž ðª ð ðŠ² âïž â«ïž ðª ð³ ð.
+
+### ðŒ 𧰠ðºðžð
+
+𧰠ð ðª âïž ð€ â ð³:
+
+* Traefik
+ * ð ðµ ð ð ð¶
+* ð¥
+ * ð ðµ ð ð ð¶
+* ð
+ * â®ïž ð¢ ðŠ² ð Certbot ð ð
+* â³
+ * â®ïž ð¢ ðŠ² ð Certbot ð ð
+* Kubernete â®ïž ð§ ð¹ ð ð
+ * â®ïž ð¢ ðŠ² ð ð-ðšâðŒ ð ð
+* ðµ ð â ðâðŠº ð ð« ðâðŠº (â ð ð¶)
+
+â1ïžâ£ ð ð ð ðª âïž **â ðâðŠº** ð ðš ð ð· â
â ð ðºðžð. â«ïž ðª âïž ð« âïž ð ð ð
, âïž. âïž ð ðŒ, ð ð«ð âïž â ð ð€ â ð³ ð.
+
+ð€ ð ðŠ ð 𧱠ðŒ â ð.
+
+---
+
+â€Žïž â ð§ ð€ ð ð ð ð ð â ð ïž (â
Uvicorn).
+
+## ð & ð ïž
+
+ð¥ ð ð¬ ð ð ð "**ð ïž**", â«ïž â âïž â¯ ð â«ïžâ â«ïž â, & â«ïžâ ðº â®ïž ð€ "**ð**".
+
+### â«ïžâ ð
+
+ð€ **ð** ð âïž ð¬ ð ð:
+
+* **ð** ð ð â, **ð ð**.
+* **ð** ð ðª **ð ïž** ðââ âïž, ðŒ: `python`, `python.exe` âïž `uvicorn`.
+* ð¯ ð ⪠â«ïž **ðââ** ð ð âïž, âïž ðœ, & â» ð ð ðŸ. ð ð€ **ð ïž**.
+
+### â«ïžâ ð ïž
+
+ð€ **ð ïž** ð âïž ð ð¯ ð, ðŽ ð ð ð ð ðââ âïž (ð ð â ð):
+
+* ð¯ ð ⪠â«ïž **ðââ** ð ðââ âïž.
+ * ð ð« ð ð, ð« ð, â«ïž ð **ð¯** ð ð â **ð ïž** & ð ðââ âïž.
+* ð ð, ð ð, **ðª ðŽ ð** ðâ â«ïž â **ð ïž**. , ðâ ð€ **ð ïž ð**.
+* ð ïž ðª **â** (âïž "ð¥") ð, âïž ðââ âïž. ð â, â«ïž âïž ð/â ð ïž, & â«ïž ðª **ð
ââ ð ð**.
+* ð ðž ð ð âïž ð ð ð ð» âïž ð ïž â
â«ïž, ð ðââ ð, ð ðª, âïž. & ð€ ð ð ð ïž ð **ð ð°** ⪠ð» ð.
+* ð€ ðª **ð ð ïž** **ð ð** ð ð ð°.
+
+ð¥ ð â
ð
"ð ðšâðŒ" âïž "âïž ð¥" (âïž ð ð§°) ð ðââ âïž, ð ð ðª ð ð ð ð ïž ðââ.
+
+& , ðŒ, ð ð ð² ð ð ð€ ð ð ïž ð ð ð¥ ð (ðŠ, ð, ð, âïž). ð« ð ð 1ïžâ£ ð ïž ð ð, â ð â ð ïž.
+
+
+
+---
+
+ð ð ð¥ ð ðº ð â **ð ïž** & **ð**, â¡ïž ð£ ð¬ ð ð ïž.
+
+## ðââ ð ðŽ
+
+ð
ðŒ, ðâ ð â ðž ð ïž, ð ð â«ïž **ð§ ðââ**, â¡, ð ð ð©âð» ðª ð§ ð â«ïž. ð âïž, ð¥ ð âïž ð¯ ð€ â«ïžâ ð ð â«ïž ð ðŽ ð¯ â , âïž ð
ð° ð ð â«ïž ð§ ðââ & **ðª**.
+
+### ð° ðœ
+
+ðâ ð â ð ð° ðœ (â ðœ, ð¹ ð°, âïž.) ð
ð ð ðª ð Uvicorn (âïž ð) â, ð ð ð ðâ ð ïž ð.
+
+& â«ïž ð ð· & ð â **â®ïž ð ïž**.
+
+âïž ð¥ ð ð ðœ ðž, **ðââ ð ïž** ð ð² â ïž.
+
+& ð¥ ðœ â (ðŒ â®ïž â¹, âïž ð ïž âªïžâ¡ïž â ðâðŠº) ð ð² **ð ð« ð â«ïž**. & â©ïž ð, ð ð ð« ð ð ð âïž â ð ïž â. , ð ð ïž ð ð§ â ïž. ð¶
+
+### ð ð ð ðŽ
+
+ð¢, ð ð ð² ð ðœ ð (â
Uvicorn) â¶ïž ð ð ðœ ðŽ, & ðµ ðª ð **ð¿ ð¥**, âïž ð ïž ð§ ð â®ïž ð ð ïž (â
Uvicorn ðââ ð FastAPI ð±).
+
+### ð ð
+
+ð ð, ð ð ð âïž **ð ð** ð ð â ð ð ðž ð ð ðŽ. & ð ðŒ, â«ïž ð â ð ð ðŠ² âïž ðž ð, ðŒ, ðœ.
+
+### ðŒ 𧰠ð ðŽ
+
+ðŒ 𧰠ð ðª ð ðšâð:
+
+* â
+* Kubernete
+* â â
+* â ð ð³
+* â³
+* ðšâð»
+* ðµ ð â ðâðŠº ð ð« ðâðŠº
+* ð...
+
+ð€ ð ð€ ð ð
𧱠ðŒ â ð.
+
+## â
+
+ð â ð ð ðž ð ð ðŽ, ð ð² ð â ð â«ïž **â** â®ïž â.
+
+### ð¥ â â
+
+ð¥, ð¿, â **â**, ð ð°. ð¥ ð *ð§* âïž **ð** ðµââ ð ð¥. ð¶
+
+& ð¥ ð©âð» ð§ ð ð ð¥ ð ð ð & ð¥ ð ïž ð â (ð² â ð ð ðââïž ð¶).
+
+### ð€ª â ð ðµ
+
+ðâ ð ðž ð â®ïž FastAPI, ð¥ ð€ â ð ð, FastAPI ð ð ð â«ïž ð ðš ð â² â. ð¡
+
+ð©âð» ð ð€ **5ïžâ£0ïžâ£0ïžâ£ ð ðœ â** ð ðš, âïž ðž ð ð£ ð· â ðš â©ïž ð¥ ð.
+
+### ðŠ â - ð¥
+
+ð, ð€ 5ïžâ£ð ðŒ ðâ ð¥ â ð ð **ð¥ ð ðž** â Uvicorn & ð ð¥. ð¶
+
+& , ð ð ð² ð« ð ðž ð§ â ïž â©ïž ð€ â 1ïžâ£ ð¥, ð ð² ð â«ïž **ð£ ð** ð *â¡ ð ïž* ð ð« ð.
+
+### â â®ïž ð¥
+
+âïž ð ðŒ â®ïž ð€ ð â ð ð¥ ðââ **ð ïž**, ð ð ð ð¢ ðŠ² ð ð **ð** ð ïž, ð ð©ââ€âðš ð°...
+
+!!! tip
+ ...ð ð¥ ð ðž **ð¥ âª** â«ïž ð² ð« â ð ð§ ð â«ïž âŸ. âïž ð ðŒ, ð ð ð² ð â«ïž â®ïž ð ïž, âïž ð â¶ïžïž â®ïž ð ïž.
+
+ â¡ïž ð¯ ð ð ðŒ, ðâ â«ïž ðª ð¥ ð ð¯ ðŒ **ð®**, & â«ïž â ð â â«ïž.
+
+ð ð ð² ð âïž ð ð ð ð ðž **ð¢ ðŠ²**, â©ïž ð â, ð ðž â®ïž Uvicorn & ð ⪠ð¥, ð€ ð³ ð ð ð ð± ð ðª ð³ ð â«ïž.
+
+### ðŒ 𧰠â ð
+
+ð ðŒ, ð 𧰠ð âïž **ð ð ð ðŽ** âïž ðµ ð§ **â**.
+
+ðŒ, ð ðª ðµ:
+
+* â
+* Kubernete
+* â â
+* â ð ð³
+* â³
+* ðšâð»
+* ðµ ð â ðâðŠº ð ð« ðâðŠº
+* ð...
+
+## 𧬠- ð ïž & ðŸ
+
+â®ïž FastAPI ðž, âïž ðœ ð ð Uvicorn, ðââ â«ïž ð **1ïžâ£ ð ïž** ðª ðŠ ð ð©âð» ð.
+
+âïž ð ðŒ, ð ð ð ð ð ðšâð ð ïž ð ð°.
+
+### ð ð ïž - ðšâð
+
+ð¥ ð âïž ð
ð©âð» ð â«ïžâ ð ð ïž ðª ðµ (ðŒ ð¥ ð¹ ð° ð« ðââïž ðŠ) & ð âïž **ð ð** ðœ ðœ, â€Žïž ð ðª âïž **ð ð ïž** ðââ â®ïž ð ðž ð ð°, & ð ð ðš ðª ð«.
+
+ðâ ð ð **ð ð ïž** ð ð ïž ð, ð« ð ð€ **ðšâð**.
+
+### ðšâð ð ïž & âŽ
+
+ð âªïžâ¡ïž 𩺠[ð ðºðžð](./https.md){.internal-link target=_blank} ð ðŽ 1ïžâ£ ð ïž ðª ð ð 1ïžâ£ ð ⎠& ð¢ ð¢ ðœ â
+
+ð â.
+
+, ðª âïž **ð ð ïž** ð ð°, ð€ âïž **ð ð ïž ð ð âŽ** ð â€Žïž ð¶ ð» ð ðšâð ð ïž ð.
+
+### ðŸ ð ð ïž
+
+ð, ðâ ð ð ð ðŸ, ðŒ, ð° ð« ð· ð¢, âïž ð â ð ð¢, ð ð **ðŽ ð ðŸ (ðŸ)** ðœ.
+
+& ð ð ïž ð **ð« ð° ð ðŸ**. ð â ð ð ð ð ïž âïž ð® ð ð, ð¢, & ðŸ. & ð¥ ð ð© â ðž ðŸ ð ð, **ð ð ïž** ð ðŽ ð ðž ðŸ.
+
+### ðœ ðŸ
+
+ðŒ, ð¥ ð ð ð ð° ð« ð· â®ïž **1ïžâ£ ðŸ ð**, ðâ ð ð 1ïžâ£ ð ïž â®ïž ð ð ïž, â«ïž ð ðŽ ð 1ïžâ£ ðŸ ðŸ. & ð¥ ð â¶ïž **4ïžâ£ ð ïž** (4ïžâ£ ðšâð), ð ð ðŽ 1ïžâ£ ðŸ ðŸ. ð, ð ð ïž ð ðŽ **4ïžâ£ ðŸ ðŸ**.
+
+& ð¥ ð ð° ðœ âïž ð¹ ð° ðŽ âïž 3ïžâ£ ðŸ ðŸ, ð ð ð
ð 4ïžâ£ ðŸ ðŸ ð ð€ â . ð¶
+
+### ð ð ïž - ðŒ
+
+ð ðŒ, ð€ **ðšâðŒ ð ïž** ð â¶ïž & ð 2ïžâ£ **ðšâð ð ïž**.
+
+ð ðšâðŒ ð ïž ð ð² 1ïžâ£ ð ð **âŽ** ð¢. & â«ïž ð ð¶ ð ð» ðšâð ð ïž.
+
+ð ðšâð ð ïž ð ð ðââ ð ðž, ð« ð ð ð ð ðš **ðš** & ðš **ðš**, & ð« ð ð ð³ ð ð® ð¢ ðŸ.
+
+
+
+& âïž, ð ð° ð ð² âïž **ð ð ïž** ð ð, âïž âªïžâ¡ïž ð ðž.
+
+ð â¹ ð ð **ðœ âïž** ð ð ïž ðª **ðª** ð ð€ ð°, âïž **ðŸ (ðŸ)** ð ð§ ð âïž ð **â**.
+
+ð¥ ð âïž ð ïž ð ðš â ðž ð ð ð° & ð âïž ð ð©âð», â€Žïž **ðœ ð ïž** ð ð² *â* (â©ïž ð§ ð ð & ðœ ð).
+
+### ðŒ 𧬠𧰠& ð
+
+ð€ ðª ð ð¯ ð ð, & ð€ ð ð¬ ð ð
ð ð¯ ð â ð, ðŒ ðâ ð¬ ð â & ðŠ.
+
+ð â ð€ ð ð€ âïž **ð** ðŠ² ð **âŽ** **ð¢ ð¢**. & â€Žïž â«ïž âïž âïž ð **ð¶** ð» ð **ð ïž/ðšâð**.
+
+ð¥ ðª ð & ð:
+
+* **ð** ð ïž **Uvicorn ðšâð**
+ * ð ð **ð ïž ðšâðŒ** ð ð **ð¢** & **âŽ**, 𧬠ð âïž **ð Uvicorn ðšâð ð ïž**
+* **Uvicorn** ð ïž **Uvicorn ðšâð**
+ * 1ïžâ£ Uvicorn **ð ïž ðšâðŒ** ð ð ð **ð¢** & **âŽ**, & â«ïž ð â¶ïž **ð Uvicorn ðšâð ð ïž**
+* **Kubernete** & ð ð **ðŠ âïž**
+ * ð³ **â** 𧜠ð ð ð **ð¢** & **âŽ**. 𧬠ð âïž **ð ðŠ**, ð â®ïž **1ïžâ£ Uvicorn ð ïž** ðââ
+* **â ðâðŠº** ð ðµ ð ð
+ * â ðâðŠº ð ð² **ðµ 𧬠ð**. â«ïž ð ð² â¡ïž ð ð¬ **ð ïž ð**, âïž **ðŠ ðŒ** âïž, ð ðŒ, â«ïž ð ð
ð² **ð Uvicorn ð ïž**, & â ðâðŠº ð ð ð â«ïž.
+
+!!! tip
+ ð« ð ð¥ ð« ð¬ ð **ðŠ**, â, âïž Kubernete ð« â ð ð.
+
+ ð€ ð ð¬ ð ð
ð ðŠ ðŒ, â, Kubernete, âïž. ð® ð: [FastAPI ðŠ - â](./docker.md){.internal-link target=_blank}.
+
+## â®ïž ð â â¶ïž
+
+ð€ ð ðŒ ðâ ð ð ð ð¶ **â â¶ïž** ð ðž.
+
+ðŒ, ð ðª ð ð **ðœ ð ïž**.
+
+âïž ð
ðŒ, ð ð ð ð ð ð ðŽ **ð**.
+
+, ð ð ð âïž **ð ð ïž** ð ð **â®ïž ð**, â â¶ïž ðž.
+
+& ð ð âïž â ð ð â«ïž ð ð ïž ð ð â®ïž ð ** ð¥ â®ïž, ð â¶ïž **ð ð ïž** (ð ðšâð) ðž â«ïž. ð¥ ð ð ð **ð ð ïž**, ð« ð **â** ð· ðââ â«ïž ð **ð**, & ð¥ ð¶ ð³ ð ð ðœ ð ïž, ð« ðª ð€ â â®ïž ð ð.
+
+âïž, ð€ ðŒ ðâ ð€ ð
ââ â ð â®ïž ð ð ð°, ð ðŒ, â«ïž ð â© ðµ.
+
+!!! tip
+ , âïž ð€¯ ð âïž ð ð ð¥, ðŒ ð **5ïžâ£ð ð« ðª ð â®ïž ð** â â¶ïž ð ðž.
+
+ ð ðŒ, ð ð«ð âïž ð ð ð ð. ð€·
+
+### ðŒ â®ïž ð ð
+
+ð ð **ðª ð** ð ð ð **ð ïž ð âïž**, & â«ïž ð ð² ð ð ð â¶ïž ð, ð â, âïž.
+
+ð¥ ðª ð:
+
+* "ð ðŠ" Kubernete ð ð â ð ð± ðŠ
+* ð â ð ð â®ïž ð & â€Žïž â¶ïž ð ðž
+ * ð ð ðª ð â¶ïž/â *ð* ð â, ð â, âïž.
+
+!!! tip
+ ð€ ð ð€ ð ð
𧱠ðŒ ðš ð â®ïž ðŠ ð® ð: [FastAPI ðŠ - â](./docker.md){.internal-link target=_blank}.
+
+## â¹ ð ïž
+
+ð ðœ(â) () **â¹**, ð ðª ðŽ âïž **âïž**, â®ïž ð ð, ð ð° ð ðœ, & ðŸ ðŸ ðª.
+
+â ð
âïž â¹ ð ð ð©/â» â â«ïž ðª â© ð "ð« ð
", âïž ð, ð ð ð² ð ðŽ **ð
ðª ðµ ð¥**.
+
+ð¥ ð ðž 3ïžâ£ ðœ âïž ð âïž ðŽ ð¥ ð ð« ðŸ & ðœ, ð ð² **ð ðž** ð¶, & ð² **ð ðœ ðŠ ðïž** ð¶, âïž.
+
+ð ðŒ, â«ïž ðª ð» âïž ðŽ 2ïžâ£ ðœ & âïž â ð ð« â¹ (ðœ, ðŸ, ðŸ, ðž ð¿, âïž).
+
+ð ð â, ð¥ ð âïž 2ïžâ£ ðœ & ð âïž **1ïžâ£0ïžâ£0ïžâ£ ð¯ ð« ðœ & ðŸ**, â 1ïžâ£ ð ïž ð ð ð
ðŸ, & ðœ ð âïž âïž ðŸ "ðŸ" (â ðª ð¯ ð° ð), âïž **ð¥**. âïž 1ïžâ£ ð ïž ðª ðª ð & ð âïž â â ðœ ð ð.
+
+ð ðŒ, â«ïž ð ð ð€ **1ïžâ£ â ðœ** & ð ð ïž ð â«ïž ð ð« ð âïž **ð¥ ðŸ & ðœ ð°**.
+
+ð€ ð€ ð ð€ ð âïž **ðµ** âïž ð ð ïž. ð² â«ïž ð¶ ðŠ , âïž ð² ð ðâðŠº âïž ð€ â¶ïž âïž â«ïž. & ð ðª ð âïž â â¹ ð ð ðŒ.
+
+ð ðª ð® **â ð¢** ð¯, ðŒ, ð³ **ð 5ïžâ£0ïžâ£ ð¯ 9ïžâ£0ïžâ£ ð¯** â¹ ð ïž. â ð ð ð² ð ð ð ð ð â & âïž â ð ð ïž.
+
+ð ðª âïž ð
𧰠ð `htop` ð ðœ & ðŸ âïž ð ðœ âïž ðž âïž ð ð ïž. âïž ð ðª âïž ð ð â ð§°, â 5ïžâ£ð ð ð€ ðœ, âïž.
+
+## ð
+
+ð âïž ð ð¥ ð ð§ ð ð ð ð² ðª âïž ð€¯ ðâ ð€ â ð ïž ð ðž:
+
+* ðââ - ðºðžð
+* ðââ ð ðŽ
+* â
+* 𧬠(ð¢ ð ïž ð)
+* ðŸ
+* â®ïž ð â â¶ïž
+
+ð€ ð ð & â â ð« ð ð€ ð ð€ ðª â ð ð« ðâ ð ïž & ð ïž ð ð ïž. ð¶
+
+â ð, ð€ ð ð€ ð ð
𧱠ðŒ ðª ð ð ðª â©. ð¶
diff --git a/docs/em/docs/deployment/deta.md b/docs/em/docs/deployment/deta.md
new file mode 100644
index 000000000..89b6c4bdb
--- /dev/null
+++ b/docs/em/docs/deployment/deta.md
@@ -0,0 +1,258 @@
+# ð ïž FastAPI ð ðª
+
+ð ð ð ð ð¡ â ðª ð ïž **FastAPI** ðž ð ðª âïž ð ð. ð¶
+
+â«ïž ð â ð ð **1ïžâ£0ïžâ£ â²**.
+
+!!! info
+ ðª **FastAPI** ð°. ð¶
+
+## ð° **FastAPI** ð±
+
+* â ð ð ð±, ðŒ, `./fastapideta/` & â ð â«ïž.
+
+### FastAPI ð
+
+* â `main.py` ð â®ïž:
+
+```Python
+from fastapi import FastAPI
+
+app = FastAPI()
+
+
+@app.get("/")
+def read_root():
+ return {"Hello": "World"}
+
+
+@app.get("/items/{item_id}")
+def read_item(item_id: int):
+ return {"item_id": item_id}
+```
+
+### ð
+
+ð, ð ð â ð `requirements.txt` â®ïž:
+
+```text
+fastapi
+```
+
+!!! tip
+ ð ð« ðª â Uvicorn ð ïž ð ðª, ð ð ð ð² ð â â«ïž ð ð¯ ð ð±.
+
+### ð ð
+
+ð ð ð âïž 1ïžâ£ ð `./fastapideta/` â®ïž 2ïžâ£ ð:
+
+```
+.
+âââ main.py
+âââ requirements.txt
+```
+
+## â ð ðª ð§
+
+ð â ð ð§ ð ðª, ð ðª ð§ & ð.
+
+ð ð« ðª ð³.
+
+## â â³
+
+ð ð âïž ð ð§, â ðª â³:
+
+=== "ðŸ, ðžð»"
+
+
+
+ ```console
+ $ curl -fsSL https://get.deta.dev/cli.sh | sh
+ ```
+
+
+
+=== "ðª ð"
+
+
+
+ ```console
+ $ iwr https://get.deta.dev/cli.ps1 -useb | iex
+ ```
+
+
+
+â®ïž â â«ïž, ð ð ð¶ ð â â³ ð.
+
+ð ð¶, â ð â«ïž â â â®ïž:
+
+
+
+```console
+$ deta --help
+
+Deta command line interface for managing deta micros.
+Complete documentation available at https://docs.deta.sh
+
+Usage:
+ deta [flags]
+ deta [command]
+
+Available Commands:
+ auth Change auth settings for a deta micro
+
+...
+```
+
+
+
+!!! tip
+ ð¥ ð âïž â â â³, â
ð ðª ð©º.
+
+## ð³ â®ïž â³
+
+ð ð³ ðª âªïžâ¡ïž â³ â®ïž:
+
+
+
+```console
+$ deta login
+
+Please, log in from the web page. Waiting..
+Logged in successfully.
+```
+
+
+
+ð ð ð ðž ð¥ & ð ð.
+
+## ð ïž â®ïž ðª
+
+â, ð ïž ð ðž â®ïž ðª â³:
+
+
+
+```console
+$ deta new
+
+Successfully created a new micro
+
+// Notice the "endpoint" ð
+
+{
+ "name": "fastapideta",
+ "runtime": "python3.7",
+ "endpoint": "https://qltnci.deta.dev",
+ "visor": "enabled",
+ "http_auth": "enabled"
+}
+
+Adding dependencies...
+
+
+---> 100%
+
+
+Successfully installed fastapi-0.61.1 pydantic-1.7.2 starlette-0.13.6
+```
+
+
+
+ð ð ð ð» ð§ ð:
+
+```JSON hl_lines="4"
+{
+ "name": "fastapideta",
+ "runtime": "python3.7",
+ "endpoint": "https://qltnci.deta.dev",
+ "visor": "enabled",
+ "http_auth": "enabled"
+}
+```
+
+!!! tip
+ ð ð ïž ð âïž ð `"endpoint"` ð.
+
+## â
â«ïž
+
+ð ð ð ð¥ ð `endpoint` ð. ðŒ ð â«ïž `https://qltnci.deta.dev`, âïž ð ð ð.
+
+ð ð ð ð» ðš âªïžâ¡ïž ð FastAPI ð±:
+
+```JSON
+{
+ "Hello": "World"
+}
+```
+
+& ð ð¶ `/docs` ð ð ïž, ðŒ ð â«ïž ð `https://qltnci.deta.dev/docs`.
+
+â«ïž ð ðŠ ð 𩺠ð:
+
+
+
+## ð ïž ð¢ ð
+
+ð¢, ðª ð ðµ ð€ âïž ðª ð ð§.
+
+âïž ð ð ð, ð ðª â â«ïž ð¢ â®ïž:
+
+
+
+```console
+$ deta auth disable
+
+Successfully disabled http auth
+```
+
+
+
+ð ð ðª ð° ð ð â®ïž ð & ð« ð ðª ð ð ð ïž. ð¶
+
+## ðºðžð
+
+ã â ð ð ïž ð FastAPI ð± ðª â ð¶ ð¶
+
+, ð ð ðª â ðµ ðºðžð ð, ð ð« âïž â ð
ð & ðª ð ð ð ð©âð» ð âïž ð ð ð. ð¶ ð¶
+
+## â
ð¶
+
+âªïžâ¡ïž ð 𩺠ð (ð« ð ð ð `https://qltnci.deta.dev/docs`) ðš ðš ð *â¡ ð ïž* `/items/{item_id}`.
+
+ðŒ â®ïž ð `5`.
+
+ð ð¶ https://web.deta.sh.
+
+ð ð ð ð€ ð âïž ð€ "âŸ" â®ïž ð ð ð±.
+
+ð ð ð ð â®ïž "â¹", & ð "ð¶", ð¶ ð "ð¶".
+
+ð€ ð ðª â â®ïž ðš ðš ð ð±.
+
+ð ðª â ð« & ð€-ð€Ÿ ð«.
+
+
+
+## ð¡ ð
+
+â, ð ð ð² ð ðª ðœ ð ð± ð ð ð£ ð ð°. ð ð ðª âïž ðª ð§¢, â«ïž âïž ð **ð ð**.
+
+ð ðª â ð
ðª ð©º.
+
+## ð ïž ð§
+
+ð ð ð§ ð¥ ð¬ [ð ïž ð§](./concepts.md){.internal-link target=_blank}, ð¥ â ð ð« ð ðµ â®ïž ðª:
+
+* **ðºðžð**: ðµ ðª, ð« ð ð€ ð ð & ðµ ðºðžð ð.
+* **ðââ ð ðŽ**: ðµ ðª, ð ð« ðâðŠº.
+* **â**: ðµ ðª, ð ð« ðâðŠº.
+* **ð§¬**: ðµ ðª, ð ð« ðâðŠº.
+* **ðŸ**: ð ð ðª, ð ðª ð§ ð« ð â«ïž.
+* **â®ïž ð â â¶ïž**: ð« ð ðâðŠº, ð ðª â â«ïž ð· â®ïž ð« ðŸ âïž âïž ð â.
+
+!!! note
+ ðª ð§ â â«ïž â© (& ð) ð ïž ð
ðž ð.
+
+ â«ïž ðª ð ð âïž ðŒ, âïž ð ð°, â«ïž ð« ðâðŠº ð, ð âïž ð¢ ðœ (âïž âªïžâ¡ïž ðª ð â ðœ âïž), ð ð¹ ð°, âïž.
+
+ ð ðª â ð
â¹ ðª 𩺠ð ð¥ â«ïž â¶ïžïž â ð.
diff --git a/docs/em/docs/deployment/docker.md b/docs/em/docs/deployment/docker.md
new file mode 100644
index 000000000..51ece5599
--- /dev/null
+++ b/docs/em/docs/deployment/docker.md
@@ -0,0 +1,698 @@
+# FastAPI ðŠ - â
+
+ðâ ð ïž FastAPI ðž â ð¯ ð **ðŸ ðŠ ðŒ**. â«ïž ð ðš âïž **â**. ð ðª â€Žïž ð ïž ð ðŠ ðŒ 1ïžâ£ ð©ââ€âðš ðª ð.
+
+âïž ðŸ ðŠ âïž ð ð â
**ðââ**, **ð¬**, **ðŠ**, & ð.
+
+!!! tip
+ ð & ⪠ð ð ð© â ðŠ [`Dockerfile` ð ð¶](#build-a-docker-image-for-fastapi).
+
+
+ð ð® ð¶
+
+```Dockerfile
+FROM python:3.9
+
+WORKDIR /code
+
+COPY ./requirements.txt /code/requirements.txt
+
+RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
+
+COPY ./app /code/app
+
+CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
+
+# If running behind a proxy like Nginx or Traefik add --proxy-headers
+# CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"]
+```
+
+
+
+## â«ïžâ ðŠ
+
+ðŠ (âŽïž ðŸ ðŠ) ð¶ **ð¿** ð ðŠ ðž â
ð ð« ð & ðª ð ⪠ð§ ð« â âªïžâ¡ïž ð ðŠ (ð ðž âïž ðŠ²) ð âïž.
+
+ðŸ ðŠ ð âïž ð ðŸ ðŸ ðŠ (ð°, ð¹ ð°, â ðœ, âïž). ð â ð ð« ð¶ ð¿ (ð¬ ð ð¹ ð° ð ð ðââ âïž).
+
+ð ð, ðŠ ðŽ **ð¥ â¹**, ðž â ðââ ð ïž ð (ð¹ ð° ð ðŽ ð
ð
).
+
+ðŠ âïž ð« ð **â** ðââ ð ïž (ð 1ïžâ£ ð ïž), ð âïž, & ðž, ð¬ ð ïž, ðââ, ð ïž, âïž.
+
+## â«ïžâ ðŠ ðŒ
+
+**ðŠ** ð âªïžâ¡ïž **ðŠ ðŒ**.
+
+ðŠ ðŒ **ð»** ⬠ð ð, ð ð¢, & ð¢ ð/ð ð ð ð ðŠ. **ð»** ð¥ â ð ðŠ **ðŒ** ð« ð, â«ïž ð« â ð ïž, â«ïž ðŽ ðŠ ð & ð.
+
+ð
"**ðŠ ðŒ**" ð ðª ð» ð,"**ðŠ**" ð ð ðââ ð, ð ð â **ð ïž**.
+
+ðâ **ðŠ** â¶ïž & ðââ (â¶ïž âªïžâ¡ïž **ðŠ ðŒ**) â«ïž ðª â âïž ð ð, ð ð¢, âïž. ð ð ð ð ðŽ ð ðŠ, âïž ð ð« ð£ ðœ ðŠ ðŒ (ð ð« ð ðŸ).
+
+ðŠ ðŒ â **ð** ð & ð, â
`python` & ð `main.py`.
+
+& **ðŠ** â«ïž (ð
**ðŠ ðŒ**) â ð ð ðŒ, â **ð ïž**. ð, ðŠ ð ðŽ ðâ â«ïž âïž **ð ïž ð** (& ð â«ïž ðŽ ð ð ïž). ðŠ âïž ðâ ð€ ð
ââ ð ïž ð â«ïž.
+
+## ðŠ ðŒ
+
+â âïž 1ïžâ£ ð 𧰠â & ð ïž **ðŠ ðŒ** & **ðŠ**.
+
+& ð€ ð¢ â ð¡ â®ïž ð€-â **ð ðŠ ðŒ** ð ð§°, ð, ðœ, & ðž.
+
+ðŒ, ð€ ð ð ðŒ.
+
+& ð€ ð ð ðŒ ð ð ð ðœ, ðŒ:
+
+* â³
+* â³
+* â³
+* â³, âïž.
+
+âïž ð€-â ðŠ ðŒ â«ïž ð¶ â© **ð** & âïž ð ð§°. ðŒ, ð ð
ð ðœ. ð
ðŒ, ð ðª âïž **ð ðŒ**, & ð ð« â®ïž ð ð¢.
+
+ð ð, ð ðŒ ð ðª ð¡ ð ðŠ & â & ð€-âïž ð ð¡ â®ïž ð ð 𧰠& ðŠ².
+
+, ð ð ð **ð ðŠ** â®ïž ð ð, ð ðœ, ð ðž, ðž ðœ â®ïž ð¥ ðž ðž, & ð ð« ð¯ââïž ðš ð« ð ðž.
+
+ð ðŠ 𧟠âïž (ð â âïž Kubernete) âïž ð« ðž â ð ïž ð ð«.
+
+## ðŠ & ð ïž
+
+**ðŠ ðŒ** ð ð ð® ð ð¢ ð âïž ð ð ð ð ðâ **ðŠ** â¶ïž & ð¢ ð¶ââïž ð ð. ð¶ ð â«ïžâ ð ð¥ â«ïž ð âž.
+
+ðâ **ðŠ** â¶ïž, â«ïž ð ð ð ð/ð (ð ð ðª ð â«ïž & â â«ïž ð ð ð/ð).
+
+ðŠ ð ð **ð ð ïž** (ð âïž ð) ð.
+
+ðŠ ð âïž **ð ð ïž**, âïž â«ïž ðª â¶ïž â³ âªïžâ¡ïž ð ð ïž, & ð ð ð ð âïž **ð ð ïž** ð ðŠ.
+
+âïž â«ïž ð« ðª âïž ðââ ðŠ ðµ **ð 1ïžâ£ ðââ ð ïž**. ð¥ ð ð ïž âïž, ðŠ âïž.
+
+## ð â ðŒ FastAPI
+
+ð, â¡ïž ð ð³ ð â ð¶
+
+ð€ ð ðŠ ð â ð **â ðŒ** FastAPI **âªïžâ¡ïž ð**, âïž ð **ð ð** ðŒ.
+
+ð â«ïžâ ð ð ð **ð ðŒ**, ðŒ:
+
+* âïž **Kubernete** âïž ð ð§°
+* ðâ ðââ ð **ð ð²**
+* âïž â ðâðŠº ð ð ð ðŠ ðŒ ð, âïž.
+
+### ðŠ ð
+
+ð ð ð âïž **ðŠ ð** ð ðž ð.
+
+â«ïž ð ðª âŽïž ð 𧰠ð âïž **â** ð ð.
+
+ð
â ð â«ïž âïž ð `requirements.txt` â®ïž ðŠ ð & ð« â¬, 1ïžâ£ ð âž.
+
+ð ð âïž âïž ð ð ð â [ð FastAPI â¬](./versions.md){.internal-link target=_blank} â â â¬.
+
+ðŒ, ð `requirements.txt` ðª ð ð:
+
+```
+fastapi>=0.68.0,<0.69.0
+pydantic>=1.8.0,<2.0.0
+uvicorn>=0.15.0,<0.16.0
+```
+
+& ð ð ð â ð ðŠ ð â®ïž `pip`, ðŒ:
+
+
+
+```console
+$ pip install -r requirements.txt
+---> 100%
+Successfully installed fastapi pydantic uvicorn
+```
+
+
+
+!!! info
+ ð€ ð ð & 𧰠ð¬ & â ðŠ ð.
+
+ ð€ ð ðŠ ð ðŒ âïž ð¶ ⪠ð ð. ð¶
+
+### â **FastAPI** ð
+
+* â `app` ð & â â«ïž.
+* â ð ð `__init__.py`.
+* â `main.py` ð â®ïž:
+
+```Python
+from typing import Union
+
+from fastapi import FastAPI
+
+app = FastAPI()
+
+
+@app.get("/")
+def read_root():
+ return {"Hello": "World"}
+
+
+@app.get("/items/{item_id}")
+def read_item(item_id: int, q: Union[str, None] = None):
+ return {"item_id": item_id, "q": q}
+```
+
+### ð
+
+ð ð ð ð â ð `Dockerfile` â®ïž:
+
+```{ .dockerfile .annotate }
+# (1)
+FROM python:3.9
+
+# (2)
+WORKDIR /code
+
+# (3)
+COPY ./requirements.txt /code/requirements.txt
+
+# (4)
+RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
+
+# (5)
+COPY ./app /code/app
+
+# (6)
+CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
+```
+
+1ïžâ£. â¶ïž âªïžâ¡ïž ð ð 𧢠ðŒ.
+
+2ïžâ£. â â®ïž ð· ð `/code`.
+
+ ð ðâ ð¥ ð ð® `requirements.txt` ð & `app` ð.
+
+3ïžâ£. ð ð â®ïž ð `/code` ð.
+
+ ð **ðŽ** ð â®ïž ð ð¥, ð« ð ð.
+
+ ð ð **ð« ð ð**, â ð ð â«ïž & âïž **ðŸ** ð ð, ð ïž ðŸ â ð ðââïž.
+
+4ïžâ£. â ðŠ ð ð ð.
+
+ `--no-cache-dir` ð ð¬ `pip` ð« ð ⬠ðŠ ð, ð ðŽ ð¥ `pip` ð ð ð â ð ðŠ, âïž ð ð« ðŒ ðâ ð· â®ïž ðŠ.
+
+ !!! note
+ `--no-cache-dir` ðŽ ð `pip`, â«ïž âïž ð³ â®ïž â âïž ðŠ.
+
+ `--upgrade` ð ð¬ `pip` â» ðŠ ð¥ ð« ⪠â.
+
+ â©ïž â®ïž ð ðš ð ðª ð **â ðŸ**, ð ð ð **âïž â ðŸ** ðâ ðª.
+
+ âïž ðŸ ð ð ð **ð** ð ð **ð°** ðâ ð ðŒ ð & ð â®ïž ð ïž, â©ïž **⬠& â** ð ð **ð ð°**.
+
+5ïžâ£. ð `./app` ð ð `/code` ð.
+
+ ð âïž ð ð â â«ïžâ **ð ð
ð** â **ðŸ** ð ð« âïž ð âïž ð **ð ð** ðª.
+
+ , â«ïž â ð® ð **ð ð** `Dockerfile`, ð¬ ðŠ ðŒ ð ð°.
+
+6ïžâ£. â **ð** ð `uvicorn` ðœ.
+
+ `CMD` â ð ð», ð ð« ð» â«ïžâ ð ð ð ð âž ðœ ð.
+
+ ð ð ð ð âªïžâ¡ïž **â®ïž ð· ð**, ð `/code` ð ð â ð â®ïž `WORKDIR /code`.
+
+ â©ïž ð ð â¶ïž `/code` & ð â«ïž ð `./app` â®ïž ð ð, **Uvicorn** ð ðª ð & **ð** `app` âªïžâ¡ïž `app.main`.
+
+!!! tip
+ ð â«ïžâ ð âž ðš ð ð ð¢ ð ð. ð¶
+
+ð ð ð âïž ð ð ð:
+
+```
+.
+âââ app
+â  âââ __init__.py
+â âââ main.py
+âââ Dockerfile
+âââ requirements.txt
+```
+
+#### â
ð€ â ð³
+
+ð¥ ð ðââ ð ðŠ â
ð€ â ð³ (ð â) ð ð âïž Traefik, ð® ð `--proxy-headers`, ð ð ð¬ Uvicorn ð ð ðš ð ð³ ð¬ â«ïž ð ðž ð â
ðºðžð, âïž.
+
+```Dockerfile
+CMD ["uvicorn", "app.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "80"]
+```
+
+#### â ðŸ
+
+ð€ â ð± ð `Dockerfile`, ð¥ ð¥ ð **ð â®ïž ð ð**, ð« ð ð. â¡ïž ð€ ð¬ ð â«ïžâ ð.
+
+```Dockerfile
+COPY ./requirements.txt /code/requirements.txt
+```
+
+â & ð 𧰠**ð** ð ðŠ ðŒ **ð**, ð® **1ïžâ£ 𧜠ð ð ð**, â¶ïž âªïžâ¡ïž ð `Dockerfile` & â ð ð â ð ð©âðŸ `Dockerfile`.
+
+â & ð 𧰠âïž **ð ðŸ** ðâ ð ðŒ, ð¥ ð ð« ð â©ïž ð ð° ð ðŠ ðŒ, â€Žïž â«ïž ð **ð€-âïž ð ð§œ** â ð ð°, â©ïž ðš ð ð & ð ð 𧜠âªïžâ¡ïž ð.
+
+â ð ð ð« ð¯ ð ð ðââïž ð
, âïž â©ïž â«ïž âïž ðŸ ð ð, â«ïž ðª **âïž ðŸ â ð**. ðŒ, â«ïž ðª âïž ðŸ ð©âðŸ ð â ð â®ïž:
+
+```Dockerfile
+RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
+```
+
+ð â®ïž ðŠ ð **ð ð« ð ð**. , ðš ðŽ ð ð, â ð ðª **âïž ðŸ** ð ð.
+
+& ‎ïž, â ð ðª **âïž ðŸ â ð** ð ⬠& â ð ð. & ð¥ ðâ ð¥ **ð ð ð°**. ð¶ ...& â ð© â. ð¶ ð¶
+
+⬠& â ðŠ ð **ðª â â²**, âïž âïž **ðŸ** ð **â ð¥** ð
.
+
+& ð ð ð ðŠ ðŒ ð & ð â®ïž ð ïž â
ð ð ð ð ð·, ð€ ð ð ð° ð ð ð.
+
+‎ïž, ð ð `Dockerfile`, ð¥ ð ð ð. ð â«ïžâ **ð ð ð**, ð¥ ð® â«ïž ð ð, â©ïž ð ð§, ð³ â®ïž ð ð ð ð« ðª âïž ðŸ.
+
+```Dockerfile
+COPY ./app /code/app
+```
+
+### ð â ðŒ
+
+ð ð ð ð ð¥, â¡ïž ð ðŠ ðŒ.
+
+* ð¶ ð ð (ðâ ð `Dockerfile` , â ð `app` ð).
+* ð ð FastAPI ðŒ:
+
+
+
+```console
+$ docker build -t myimage .
+
+---> 100%
+```
+
+
+
+!!! tip
+ ð `.` ð, â«ïž ð `./`, â«ïž ð¬ â ð âïž ð ðŠ ðŒ.
+
+ ð ðŒ, â«ïž ð â®ïž ð (`.`).
+
+### â¶ïž â ðŠ
+
+* ð ðŠ âïž ð ð ðŒ:
+
+
+
+```console
+$ docker run -d --name mycontainer -p 80:80 myimage
+```
+
+
+
+## â
â«ïž
+
+ð ð ðª â
â«ïž ð â ðŠ ð, ðŒ: http://192.168.99.100/items/5?q=somequery âïž http://127.0.0.1/items/5?q=somequery (âïž ð, âïž ð â ðŠ ).
+
+ð ð ð ð³ ð:
+
+```JSON
+{"item_id": 5, "q": "somequery"}
+```
+
+## ð ð ïž ð©º
+
+ð ð ðª ð¶ http://192.168.99.100/docs âïž http://127.0.0.1/docs (âïž ð, âïž ð â ðŠ ).
+
+ð ð ð ð§ ð ð ïž ð§Ÿ (ð ðŠ ð):
+
+
+
+## ð ð ïž ð©º
+
+& ð ðª ð¶ http://192.168.99.100/redoc âïž http://127.0.0.1/redoc (âïž ð, âïž ð â ðŠ ).
+
+ð ð ð ð ð§ 𧟠(ð ð):
+
+
+
+## ð â ðŒ â®ïž ð-ð FastAPI
+
+ð¥ ð FastAPI ð ð, ðŒ, `main.py` ðµ `./app` ð, ð ð ð ðª ð ð ð:
+
+```
+.
+âââ Dockerfile
+âââ main.py
+âââ requirements.txt
+```
+
+â€Žïž ð ð âïž ð ð â¡ ð ð ð `Dockerfile`:
+
+```{ .dockerfile .annotate hl_lines="10 13" }
+FROM python:3.9
+
+WORKDIR /code
+
+COPY ./requirements.txt /code/requirements.txt
+
+RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
+
+# (1)
+COPY ./main.py /code/
+
+# (2)
+CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
+```
+
+1ïžâ£. ð `main.py` ð `/code` ð ð (ðµ ð `./app` ð).
+
+2ïžâ£. ð Uvicorn & ð¬ â«ïž ð `app` ð âªïžâ¡ïž `main` (â©ïž ð âªïžâ¡ïž `app.main`).
+
+â€Žïž ð Uvicorn ð âïž ð ð¹ `main` â©ïž `app.main` ð FastAPI ð `app`.
+
+## ð ïž ð§
+
+â¡ïž ð¬ ð ð ð [ð ïž ð§](./concepts.md){.internal-link target=_blank} â ðŠ.
+
+ðŠ âŽïž 𧰠ð ð ïž **ð & ð ïž** ðž, âïž ð« ð« ð ïž ð¯ ð¯ ðµ ð **ð ïž ð§**, & ð€ ð ðª ð.
+
+**ð ð°** ð â®ïž ð ð ð ð€ ð ð ð ð ïž ð§. ð¶
+
+â¡ïž ð ð **ð ïž ð§** â ðŠ:
+
+* ðºðžð
+* ðââ ð ðŽ
+* â
+* 𧬠(ð¢ ð ïž ð)
+* ðŸ
+* â®ïž ð â â¶ïž
+
+## ðºðžð
+
+ð¥ ð¥ ð¯ ð **ðŠ ðŒ** FastAPI ðž (& ⪠ðââ **ðŠ**), ðºðžð ð ð ðµ **ð** â1ïžâ£ ð§°.
+
+â«ïž ðª â1ïžâ£ ðŠ, ðŒ â®ïž Traefik, ð **ðºðžð** & **ð§** ð ïž **ð**.
+
+!!! tip
+ Traefik âïž ð ïž â®ïž â, Kubernete, & ð, â«ïž ð¶ â© â ð & ð ðºðžð ð ðŠ â®ïž â«ïž.
+
+ð, ðºðžð ðª ðµ â ðâðŠº 1ïžâ£ ð« ðâðŠº (⪠ð ðž ðŠ).
+
+## ðââ ð ðŽ & â
+
+ð€ ð â1ïžâ£ 𧰠ð **â¶ïž & ðââ** ð ðŠ.
+
+â«ïž ðª **â** ð, **â â**, **Kubernete**, **â ðâðŠº**, âïž.
+
+ð
(âïž ð) ðŒ, ð€ ð
ð ð ïž ð ðŠ ð ðŽ & ð ïž â ð â. ðŒ, â, â«ïž ð âž ð `--restart`.
+
+ðµ âïž ðŠ, â ðž ð ð ðŽ & â®ïž â ðª â & â . âïž ðâ **ð· â®ïž ðŠ** ð
ðŒ ð ð ïž ð ð¢. ð¶
+
+## 𧬠- ð¢ ð ïž
+
+ð¥ ð âïž ð ð° â®ïž **â**, â ð ð³, ð, âïž â1ïžâ£ ð ð âïž ð ïž ð ðŠ ð ð ð°, â€Žïž ð ð ð² ð **ðµ ð§¬** **ð ð** â©ïž âïž **ð ïž ðšâðŒ** (ð ð â®ïž ðšâð) ð ðŠ.
+
+1ïžâ£ ð ð ðŠ 𧟠âïž ð Kubernete ð âïž ð ïž ð ð **𧬠ðŠ** ⪠ð **ð â** ðš ðš. ð **ð ð**.
+
+ð ðŒ, ð ð ð² ð ð **â ðŒ âªïžâ¡ïž ð** [ð¬ ð](#dockerfile), â ð ð, & ðââ **ð Uvicorn ð ïž** â©ïž ðââ ð³ ð ð â®ïž Uvicorn ðšâð.
+
+### ð â
+
+ðâ âïž ðŠ, ð ð ð âïž ðŠ² **ð ð ð âŽ**. â«ïž ðª ð² â1ïžâ£ ðŠ ð **ð€ â ð³** ðµ **ðºðžð** âïž ð ð§°.
+
+ð ðŠ² ð â **ð** ðš & ð ð ðª ðšâð (ð€) **â** ð, â«ïž ð ð€ **ð â**.
+
+!!! tip
+ ð **ð€ â ð³** ðŠ² âïž ðºðžð ð ð² **ð â**.
+
+& ðâ ð· â®ïž ðŠ, ð âïž ð âïž â¶ïž & ð ïž ð« ð ⪠âïž ð 𧰠ð¶ **ðž ð»** (â
ðºðžð ðš) âªïžâ¡ïž ð **ð â** (ð ðª **ð€ â ð³**) ðŠ(â) â®ïž ð ð±.
+
+### 1ïžâ£ ð â - ð ðšâð ðŠ
+
+ðâ ð· â®ïž **Kubernete** âïž ð ð ðŠ 𧟠âïž, âïž ð« ð ðž ð ïž ð â ð **ð â** ð ð ð ð **âŽ** ð¶ ð» (ðš) ð² **ð ðŠ** ð ð ð±.
+
+ð ð« ðŠ ðââ ð ð± ð ð âïž **1ïžâ£ ð ïž** (â
Uvicorn ð ïž ð ð FastAPI ðž). ð« ð ð **ð ðŠ**, ðââ ð ð, âïž ð â®ïž ð® ð ð ïž, ðŸ, âïž. ð ð ð ð â ð **ð ïž** **ð ð** ðœ, âïž **ð ð°**.
+
+& ð ðŠ âïž â®ïž **ð â** ð **ð ðš** ð 1ïžâ£ ðŠ â®ïž ð ð± **ð**. , ð ðš ðª ðµ 1ïžâ£ ð **ð ðŠ** ð ð ð±.
+
+& ð ð **ð â** ð ðª ðµ ðš ð ð¶ *ð* ð± ð ð (â
ð ð, âïž ðœ ð ð â¡ ð¡), & ð ð¶ ð ð» â¶ïžïž ðŠ *ð ð* ðž ðââ ð ð.
+
+### 1ïžâ£ ð ïž ð ðŠ
+
+ð ð ð, ð ð² ð ð âïž **ð (Uvicorn) ð ïž ð ðŠ**, ð ð ⪠ð 𧬠ð ð.
+
+, ð ðŒ, ð **ð ð«** ð âïž ð ïž ðšâðŒ ð ð â®ïž Uvicorn ðšâð, âïž Uvicorn âïž ð® ð Uvicorn ðšâð. ð ð ð âïž **ð Uvicorn ð ïž** ð ðŠ (âïž ð² ð ðŠ).
+
+âïž â1ïžâ£ ð ïž ðšâðŒ ð ðŠ (ð â®ïž ð âïž Uvicorn ð ïž Uvicorn ðšâð) ð ðŽ ð® **ð ð** ð ð ð
ð² ⪠â ð
â®ïž ð ð âïž.
+
+### ðŠ â®ïž ð ð ïž & ð ðŒ
+
+âïž, ð€ **ð ðŒ** ðâ ð ðª ð âïž **ðŠ** â®ïž **ð ð ïž ðšâðŒ** â¶ïž ð **Uvicorn ðšâð ð ïž** ð.
+
+ð ðŒ, ð ðª âïž **ð â ðŒ** ð ð **ð** ð ïž ðšâðŒ ðââ ð **Uvicorn ðšâð ð ïž**, & ð¢ â ð ð¢ ðšâð âïž ð â®ïž ðœ ð ð. ð€ ð ð¬ ð ð
ð â«ïž ð [ð â ðŒ â®ïž ð - Uvicorn](#official-docker-image-with-gunicorn-uvicorn).
+
+ð¥ ðŒ ðâ ð ðª â ð:
+
+#### ð
ð±
+
+ð ðª ð ð ïž ðšâðŒ ðŠ ð¥ ð ðž **ð
ð¥** ð ð ð« ðª (ð¥ ð«) ð-ð¶ ð¢ ð ïž ðââïž ð
, & ð ðª âïž ð§ ð¢ (â®ïž ð â ðŒ), & ð ðââ â«ïž ð **ð ðœ**, ð« ð.
+
+#### â â
+
+ð ðª ð ïž **ð ðœ** (ð« ð) â®ïž **â â**, ð ð«ð âïž â© ð ð ïž ð§¬ ðŠ (â®ïž â â) ⪠ð¡ ð ðž & **ð â**.
+
+â€Žïž ð ðª ð âïž **ð ðŠ** â®ïž **ð ïž ðšâðŒ** â¶ïž **ð ðšâð ð ïž** ð.
+
+#### ð€Ž & ð ð€
+
+ð ðª âïž **ð ð€** ð ð â â«ïž â© âïž **ð ðŠ** â®ïž **ð ð ïž** â©ïž âïž **ð ðŠ** â®ïž **ð ð ïž** ð ð«.
+
+ðŒ (ðª ð ð ð¥) ð ðª âïž ð§° ð ð€Ž ð ð ðŠ ð ð âïž ð **ð ðš** ð ð.
+
+ð ðŒ, ð¥ ð âïž **ð ðŠ**, ð¢, ðâ ð€Ž ð **â â**, â«ïž ð ð€ ð **ð ðŠ ð ð°** (ðŠ ð ðµ ð ð¯ ðš), â©ïž ð€ **ð â** ð ð ðŠ.
+
+‎ïž, ð ðŒ, â«ïž ðª ð
âïž **1ïžâ£ ðŠ** â®ïž **ð ð ïž**, & ð§ð¿ 𧰠(â
ð€Ž ð) ð ð ðŠ ð ð€Ž â ð ð ð ïž & ðŠ ð â ð ð ð ðŠ.
+
+---
+
+ð â, **ð** ð **ð« â ð¿** ð ð âïž ð â©. ð ðª âïž ð« ð **ð¬ ð ð âïž ðŒ** & ð â«ïžâ ð ð¯ ð âïž, â
ð
â ð ïž ð§:
+
+* ðââ - ðºðžð
+* ðââ ð ðŽ
+* â
+* 𧬠(ð¢ ð ïž ð)
+* ðŸ
+* â®ïž ð â â¶ïž
+
+## ðŸ
+
+ð¥ ð ð **ð ð ïž ð ðŠ** ð ð âïž ð
âïž ð ð-ð¬, â, & ð ðž ðŸ ðŽ ð ð ðŠ (ð
ð 1ïžâ£ ð¥ ð« ð).
+
+& â€Žïž ð ðª â ð ð ðŸ ð & ð ð ð³ ð ðŠ 𧟠âïž (ðŒ **Kubernete**). ð ð â«ïž ð ðª **ð ðŠ** **ðª ð°** â ð ð§ ðž ðŸ ðª ð«, & ðž ðª ð° ð.
+
+ð¥ ð ðž **ð
**, ð ð ð² **ð« â **, & ð ðª ð« ðª â ðïž ðŸ ð. âïž ð¥ ð **âïž ð ðŸ** (ðŒ â®ïž **ð° ð«** ð·), ð ð â
â ð
ðŸ ð ð© & ð **ð¢ ðŠ** ð ð **ð ð°** (& ð² ð® ð ð° ð ð).
+
+ð¥ ð ð **ð ð ïž ð ðŠ** (ðŒ â®ïž ð â ðŒ) ð ð âïž â ð ð ð¢ ð ïž â¶ïž ð« **ðŽ ð ðŸ** ð â«ïžâ ðª.
+
+## â®ïž ð â â¶ïž & ðŠ
+
+ð¥ ð âïž ðŠ (â
â, Kubernete), â€Žïž ð€ 2ïžâ£ ð ð¯ ð ðª âïž.
+
+### ð ðŠ
+
+ð¥ ð âïž **ð ðŠ**, ð² ð 1ïžâ£ ð **ð ð ïž** (ðŒ, **Kubernete** ð), â€Žïž ð ð ð² ð âïž **ð ðŠ** ðš ð· **â®ïž ð¶** ð ðŠ, ð ð ð ïž, **â** ð ð ðšâð ðŠ.
+
+!!! info
+ ð¥ ð âïž Kubernete, ð ð ð² ð ðŠ.
+
+ð¥ ð âïž ðŒ ð€ ð
ââ â ðââ ð â®ïž ð¶ **ð ð° ð** (ðŒ ð¥ ð ð« ð ðœ ð ïž, âïž â
ð¥ ðœ ð), â€Žïž ð ðª ð® ð« ð ðŠ â¶ïžïž â â¶ïž ð ð ïž.
+
+### ð ðŠ
+
+ð¥ ð âïž ð
ð¥, â®ïž **ð ðŠ** ð â€Žïž â¶ïž ð **ðšâð ð ïž** (âïž 1ïžâ£ ð ïž), â€Žïž ð ðª ð ð â®ïž ð ð ðŠ, â¶ïžïž â â¶ïž ð ïž â®ïž ð±. ð â ðŒ ðâðŠº ð ð.
+
+## ð â ðŒ â®ïž ð - Uvicorn
+
+ð€ ð â ðŒ ð ð ð ðââ â®ïž Uvicorn ðšâð, â¹ â®ïž ð: [ðœ ðšâð - ð â®ïž Uvicorn](./server-workers.md){.internal-link target=_blank}.
+
+ð ðŒ ð â âŽïž â ð¬ ð: [ðŠ â®ïž ð ð ïž & ð ðŒ](#containers-with-multiple-processes-and-special-cases).
+
+* tiangolo/uvicorn-ð-fastapi.
+
+!!! warning
+ ð€ â ð€ ð ð **ð«** ðª ð 𧢠ðŒ âïž ð ð ð 1ïžâ£, & ð ð» ð ð ðŒ âªïžâ¡ïž ð [ð¬ ð: ð â ðŒ FastAPI](#build-a-docker-image-for-fastapi).
+
+ð ðŒ âïž **ð-ð³** ð ïž ð â **ð¢ ðšâð ð ïž** âïž ð ðœ ð ðª.
+
+â«ïž âïž **ð€ ð¢**, âïž ð ðª ð & â¹ ð ð³ â®ïž **ð ð¢** âïž ð³ ð.
+
+â«ïž ðâðŠº ð **â®ïž ð â â¶ïž** â®ïž â.
+
+!!! tip
+ ð ð ð³ & ð, ð¶ â ðŒ ð: Tiangolo/uvicorn-ð-fastapi.
+
+### ð¢ ð ïž ð ð â ðŒ
+
+**ð¢ ð ïž** ð ð ðŒ **ð ð** âªïžâ¡ïž ðœ **ð** ðª.
+
+ð â ð â«ïž ð ð **ð** ð
**ð** âªïžâ¡ïž ðœ ðª.
+
+ð ðª ð â«ïž â®ïž ð³ âïž **ð ð¢**, âïž.
+
+âïž â«ïž â ð ð¢ ð ïž ðª ð ðœ ðŠ ð, **ðž ðŸ ðŽ** ð ðª ð ð.
+
+, ð¥ ð ðž ðŽ ð ðŸ (ðŒ â®ïž ð° ð« ð·), & ð ðœ âïž ð ðœ ð **âïž ð¥ ðŸ**, â€Žïž ð ðŠ ðª ð ð ð âïž ð
ðŸ ð â«ïžâ ðª, & ð€ ð ð (âïž ð¥). ð¶
+
+### â `Dockerfile`
+
+ð¥ â ð ð â `Dockerfile` âïž ð ð ðŒ:
+
+```Dockerfile
+FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9
+
+COPY ./requirements.txt /app/requirements.txt
+
+RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt
+
+COPY ./app /app
+```
+
+### ðŠ ðž
+
+ð¥ ð â© ð ð ð [ðŠ ðž â®ïž ð ð](../tutorial/bigger-applications.md){.internal-link target=_blank}, ð `Dockerfile` ðª â©ïž ð ð:
+
+```Dockerfile hl_lines="7"
+FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9
+
+COPY ./requirements.txt /app/requirements.txt
+
+RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt
+
+COPY ./app /app/app
+```
+
+### ðâ âïž
+
+ð ð ð² **ð«** âïž ð ð 𧢠ðŒ (âïž ð ð ð 1ïžâ£) ð¥ ð âïž **Kubernete** (âïž ð) & ð ⪠â **ð§¬** ð ð, â®ïž ð **ðŠ**. ð ðŒ, ð ð ð **ð ðŒ âªïžâ¡ïž ð** ð¬ ð: [ð â ðŒ FastAPI](#build-a-docker-image-for-fastapi).
+
+ð ðŒ ð â âŽïž ð ðŒ ð¬ ð [ðŠ â®ïž ð ð ïž & ð ðŒ](#containers-with-multiple-processes-and-special-cases). ðŒ, ð¥ ð ðž **ð
ð¥** ð â ð¢ ð¢ ð ïž âïž ð ðœ ð· ð, ð ð« ð ð¥ â®ïž â ð ïž ð§¬ ð ð, & ð ð« ð ð
ð 1ïžâ£ ðŠ â®ïž ð ð±. âïž ð¥ ð ð ïž â®ïž **â â**, ð ð ð ðœ, âïž.
+
+## ð ïž ðŠ ðŒ
+
+â®ïž âïž ðŠ (â) ðŒ ð€ ð ð ð ïž â«ïž.
+
+ðŒ:
+
+* â®ïž **â â** ð ðœ
+* â®ïž **Kubernete** ð
+* â®ïž â ð ð³ ð
+* â®ïž â1ïžâ£ 𧰠ð ð
+* â®ïž â ðâðŠº ð â ð ðŠ ðŒ & ð ïž â«ïž
+
+## â ðŒ â®ïž ð¶
+
+ð¥ ð âïž ð¶ ð ïž ð ð ð, ð ðª âïž â ð-â¶ïž ð:
+
+```{ .dockerfile .annotate }
+# (1)
+FROM python:3.9 as requirements-stage
+
+# (2)
+WORKDIR /tmp
+
+# (3)
+RUN pip install poetry
+
+# (4)
+COPY ./pyproject.toml ./poetry.lock* /tmp/
+
+# (5)
+RUN poetry export -f requirements.txt --output requirements.txt --without-hashes
+
+# (6)
+FROM python:3.9
+
+# (7)
+WORKDIR /code
+
+# (8)
+COPY --from=requirements-stage /tmp/requirements.txt /code/requirements.txt
+
+# (9)
+RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
+
+# (10)
+COPY ./app /code/app
+
+# (11)
+CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
+```
+
+1ïžâ£. ð ð¥ â¶ïž, â«ïž ð `requirements-stage`.
+
+2ïžâ£. â `/tmp` â®ïž ð· ð.
+
+ ð¥ ðâ ð¥ ð ð ð `requirements.txt`
+
+3ïžâ£. â ð¶ ð â â¶ïž.
+
+4ïžâ£. ð `pyproject.toml` & `poetry.lock` ð `/tmp` ð.
+
+ â©ïž â«ïž âïž `./poetry.lock*` (â¶ïž â®ïž `*`), â«ïž ð ð« ð¥ ð¥ ð ð ð« ðª.
+
+5ïžâ£. ð `requirements.txt` ð.
+
+6ïžâ£. ð ð â¶ïž, ð³ ð¥ ð ð¡ ð ðŠ ðŒ.
+
+7ïžâ£. â â®ïž ð· ð `/code`.
+
+8ïžâ£. ð `requirements.txt` ð `/code` ð.
+
+ ð ð ðŽ ð â®ïž â â¶ïž, ð â«ïžâ ð¥ âïž `--from-requirements-stage` ð â«ïž.
+
+9ïžâ£. â ðŠ ð ð `requirements.txt` ð.
+
+1ïžâ£0ïžâ£. ð `app` ð `/code` ð.
+
+1ïžâ£1ïžâ£. ð `uvicorn` ð, ð¬ â«ïž âïž `app` ð ð âªïžâ¡ïž `app.main`.
+
+!!! tip
+ ð ð ð¢ ð â«ïžâ ð âž ðš.
+
+**â â¶ïž** ð `Dockerfile` ð ð· **ð ðŠ ðŒ** ð ðŽ âïž ð ð âïž âª.
+
+ð¥ â¶ïž ð ðŽ âïž **â ð¶** & **ð `requirements.txt`** â®ïž ð ð ð âªïžâ¡ïž ð¶ `pyproject.toml` ð.
+
+ð `requirements.txt` ð ð âïž â®ïž `pip` ⪠**â â¶ïž**.
+
+ð ðŠ ðŒ **ðŽ ð â¶ïž** ð¡. â®ïž â¶ïž(â) ð â.
+
+ðâ âïž ð¶, â«ïž ð â ð âïž **â ð-â¶ïž ð** â©ïž ð ð« ð€ ðª âïž ð¶ & ð® ð â ð ðŠ ðŒ, ð **ðŽ ðª** âïž ð `requirements.txt` ð â ð ð ð.
+
+â€Žïž â (& ð) â¶ïž ð ð ð ðŒ ð
âïž ð ð ð ð¬ â.
+
+### â
ð€ â ð³ - ð¶
+
+ð, ð¥ ð ðââ ð ðŠ â
ð€ â ð³ (ð â) ð ð âïž Traefik, ð® ð `--proxy-headers` ð:
+
+```Dockerfile
+CMD ["uvicorn", "app.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "80"]
+```
+
+## ð
+
+âïž ðŠ âïž (â
â®ïž **â** & **Kubernete**) â«ïž â¶ïžïž ð¶ ð¯ ðµ ð **ð ïž ð§**:
+
+* ðºðžð
+* ðââ ð ðŽ
+* â
+* 𧬠(ð¢ ð ïž ð)
+* ðŸ
+* â®ïž ð â â¶ïž
+
+ð
ðŒ, ð ð² ð ð« ð âïž ð 𧢠ðŒ, & â©ïž **ð ðŠ ðŒ âªïžâ¡ïž ð** 1ïžâ£ âïž ð ð ð â ðŒ.
+
+â ð
**â** ð©âðŸ `Dockerfile` & **â ðŸ** ð ðª **ð ð ð°**, ð ð ð (& â ð©). ð¶
+
+ð¯ ð ðŒ, ð ðª ð âïž ð â ðŒ FastAPI. ð¶
diff --git a/docs/em/docs/deployment/https.md b/docs/em/docs/deployment/https.md
new file mode 100644
index 000000000..3feb3a2c2
--- /dev/null
+++ b/docs/em/docs/deployment/https.md
@@ -0,0 +1,190 @@
+# ð ðºðžð
+
+â«ïž â© ð€ ð ðºðžð ð³ ð "ð ïž" âïž ð«.
+
+âïž â«ïž ð ð ð ð ð.
+
+!!! tip
+ ð¥ ð ð âïž ð« ð
, ð£ â®ïž â ð ð ð ð©âðŸ â ð ð â®ïž ð â.
+
+**ð¡ ð° ðºðžð**, âªïžâ¡ïž ð¬ ð€, â
https://howhttps.works/.
+
+ð, âªïžâ¡ïž **ð©âð» ð€**, ð¥ ð ð âïž ð€¯ âª ð ð ðºðžð:
+
+* ðºðžð, **ðœ** ðª **âïž "ð"** ð **ð¥ ð¥³**.
+ * ð ð ð€ **ð** âªïžâ¡ïž ð¥ ð¥³, ð« "ð".
+* ð âïž **1ïžâ£2ïžâ£ðïž**.
+ * ð« **ð**.
+ * & â€Žïž ð« ðª **â»**, **ð ð** âªïžâ¡ïž ð¥ ð¥³.
+* ð ð ðš **ðž ð**.
+ * ð 1ïžâ£ 𧜠**ð ðºðžð**.
+ * , **ð & ð** ðµ ðš **â ðºðžð**.
+* **ðž ð« ð ð "ð"**. ðŽ ð ð¢ ð¢.
+ * â¹ ð **ð¯ ð** ðš ð¶ **ðºðžð ðœ**.
+* **ðºðžð ð** "â" **ð¯ ð**, âïž ð ïž & ð ðš ðž ð, **â ð** â ð â ð
â®ïž.
+* **ð¢**, ð ð â ð ð ðª ðŽ âïž **1ïžâ£ ðºðžð ð ð ð¢ ð¢**.
+ * ð
ââ ð€ â ðŠ ð ðœ âïž â ð€ª ð ðž ð âïž ð â«ïž ðª.
+ * ð€ **â** ð, ð.
+* ð€ **â** **ð€** ð ïž (1ïžâ£ ð ð ðž ð, â ðºðžð) ð€ **ð²**.
+ * ð ð² â â 1ïžâ£ ð ðœ (â®ïž **ð ð¢ ð¢**) âïž **ð ðºðžð ð** & ðŠ **ð ðºðžð ð/ðž**.
+ * ð ð·, **ð** ðŠ² (ð) ð ð ðœ, ð ð **ð¢ ð¢ ð¢**, ð âïž **ð ðºðžð ð** ðœ.
+* **â®ïž** ð ð ð, ð» ð ïž **ðºðžð**.
+ * ð **ð**, âïž ð« â ðš â®ïž **ðºðžð ð ïž**.
+
+â«ïž â ð¡ âïž **1ïžâ£ ð/ðºðžð ðœ** ð ð ðœ (ð°, ðŠ , âïž.) & **ð ïž ð ðºðžð ð**: ðš **ð ðºðžð ðš**, ðš **ð ðºðžð ðš** â ðºðžð ðž ð ð ðœ ( **FastAPI** ðž, ð ðŒ), â **ðºðžð ðš** âªïžâ¡ïž ðž, **ð â«ïž** âïž â **ðºðžð ð** & ðš â«ïž ð ð©âð» âïž **ðºðžð**. ð ðœ ð ð€ **ð€ â ð³**.
+
+ð ð ðª âïž ð€ â ð³:
+
+* Traefik (ð ðª ðµ ð ð)
+* ð¥ (ð ðª ðµ ð ð)
+* ð
+* â³
+
+## â¡ïž ð
+
+â â¡ïž ð, ð« **ðºðžð ð** ð² ð ð¥ ð¥³.
+
+ð ïž ð 1ïžâ£ ð« ð âïž â , ð ð & ð ð¥.
+
+âïž â€Žïž **â¡ïž ð** â.
+
+â«ïž ð âªïžâ¡ïž ðŸ ð. â«ïž ð **ðºðžð ð ð**, ð§ ð. ð« ð âïž ð ð© ð ðââ, & ð-ð (ð 3ïžâ£ ðïž), **ðââ ð€ ð** â©ïž ð« ð ð.
+
+ð ð â & ð ð ð. ð â ð§ ð ð« ð.
+
+ð ð§ ð ïž & ð ð« ð ð ð ðª âïž **ð ðºðžð, ð, âŸ**.
+
+## ðºðžð ð©âð»
+
+ð¥ ðŒ â ðºðžð ð ïž ðª ð ð, ð ð, ðž ð âŽïž ð â ð©âð».
+
+### ð ð
+
+â«ïž ð ð² ð â¶ïž ð **ð** **ð ð**. ‎ïž, ð ð ð â«ïž ð ðœ (ð² ð ð â ðâðŠº).
+
+ð ð ð² ð€ â ðœ (ð¹ ð°) âïž ð³ ð, & â«ïž ð âïž ð§ **ð¢ ð¢ ð¢**.
+
+ð ðœ(â) ð ð ð ⺠("`A record`") â **ð ð** ð¢ **ð¢ ð¢ ð ðœ**.
+
+ð ð ð² ð ð, ð¥ ð°, ðâ â ð ð.
+
+!!! tip
+ ð ð ð ð ð â ðºðžð, âïž ð ðª ð ð & ð¢ ð¢, â«ïž ðž ð¬ â«ïž ð¥.
+
+### ð
+
+ð â¡ïž ð¯ ð ð â ðºðžð ð.
+
+ð¥, ð¥ ð â
â®ïž **ð ðœ** â«ïžâ **ð¢ ð**, ð ðŒ, `someapp.example.com`.
+
+ð ðœ ð ð¬ ð¥ âïž ð¯ **ð¢ ð¢**. ð ð ð¢ ð¢ ð¢ âïž ð ðœ, ð ð ð ð ðœ.
+
+
+
+### ð€ ð€ â¶ïž
+
+ð¥ ð â€Žïž ð â®ïž ð ð¢ ð¢ ð **⎠4ïžâ£4ïžâ£3ïžâ£** (ðºðžð âŽ).
+
+ð¥ ð ð» ð ïž ð ð ð©âð» & ðœ & ð ð ð ð« ð âïž, âïž.
+
+
+
+ð ð ð ð©âð» & ðœ ð ïž ð€ ð ð€ **ð€ ð€**.
+
+### ð€ â®ïž ð² â
+
+**ðŽ 1ïžâ£ ð ïž** ðœ ðª ð ð ð¯ **âŽ** ð¯ **ð¢ ð¢**. ð€ ðª ð ð ïž ð ð ð ⎠ð ð¢ ð¢, âïž ðŽ 1ïžâ£ ð ð ð¢ ð¢ & âŽ.
+
+ð€ (ðºðžð) âïž ð¯ ⎠`443` ð¢. ð ⎠ð¥ ð ðª.
+
+ðŽ 1ïžâ£ ð ïž ðª ð ð ð âŽ, ð ïž ð ð â«ïž ð **ð€ â ð³**.
+
+ð€ â ð³ ð âïž ð 1ïžâ£ âïž ð
**ð€ ð** (ðºðžð ð).
+
+âïž **ð² â** ð¬ ð, ð€ â ð³ ð â
â ð€ (ðºðžð) ð ðª â«ïž ð âïž ð ð, âïž 1ïžâ£ ð ð ð ð ð©âð».
+
+ð ðŒ, â«ïž ð âïž ð `someapp.example.com`.
+
+
+
+ð©âð» ⪠**ð** ðšâðŒ ð ð ð ð€ ð (ð ðŒ â¡ïž ð, âïž ð¥ ð ð ð ð âª), â«ïž ðª **â** ð ð â.
+
+‎ïž, âïž ð, ð©âð» & ð€ â ð³ **ð â ð** ð **ðž ð»**. ð ð **ð€ ð€** ð.
+
+â®ïž ð, ð©âð» & ðœ âïž **ð ðž ð**, ð â«ïžâ ð€ ð. & â€Žïž ð« ðª âïž ð ð â¶ïž â **ðºðžð ð»**.
+
+& ð â«ïžâ **ðºðžð** , â«ïž â
**ðºðžð** ð **ð ð€ ð** â©ïž ð (ðœ) ðž ð.
+
+!!! tip
+ ð ð ð ð» ðš **ðž ð**, ð« ðºðžð ð.
+
+### ðºðžð ðš
+
+ð ð ð©âð» & ðœ (ð¯ ð¥ & ð€ â ð³) âïž **ð ðž ð**, ð« ðª â¶ïž **ðºðžð ð»**.
+
+, ð©âð» ðš **ðºðžð ðš**. ð ðºðžð ðš ð ð ð€ ð.
+
+
+
+### ð ðš
+
+ð€ â ð³ ð âïž ð â **ð ðš**, & ð ð¶ **â
(ð) ðºðžð ðš** ð ïž ð ðž (ðŒ ð ïž â®ïž Uvicorn ðââ FastAPI ðž).
+
+
+
+### ðºðžð ðš
+
+ðž ð ð ïž ðš & ðš **â
(ðœ) ðºðžð ðš** ð€ â ð³.
+
+
+
+### ðºðžð ðš
+
+ð€ â ð³ ð â€Žïž **ð ðš** âïž â â â (ð â¶ïž â®ïž ð `someapp.example.com`), & ðš â«ïž ð ð¥.
+
+â, ð¥ ð â ð ðš â & ð â®ïž â¶ïžïž ð ð, âïž. â«ïž ð â€Žïž **ð ðš** & ð ïž â«ïž.
+
+
+
+ð©âð» (ð¥) ð ð ð ðš ð âªïžâ¡ïž â ðœ â©ïž â«ïž âïž â ð« â âïž **ðºðžð ð** â.
+
+### ð ðž
+
+ð ðœ (âïž ðœ), ð€ ðª **ð ðž**, ðŒ, ð ð ïž ð âïž ðœ.
+
+ðŽ 1ïžâ£ ð ïž ðª ð ð¯ ð¢ & ⎠(ð€ â ð³ ð ðŒ) âïž ð ðž/ð ïž ðª ð ð ðœ(â) ðââïž, ð ð« ð« ð âïž ð **ð ð¢ ð¢ & âŽ**.
+
+
+
+ð ð, ð€ â ð³ ðª ðµ ðºðžð & ð **ð ð**, ð ðž, & â€Žïž ð¶ ðš â¶ïžïž ðž ð ðŒ.
+
+### ð ð
+
+â ð®, ð ð ð **ð** (ð 3ïžâ£ ðïž â®ïž ð â«ïž).
+
+& ‎ïž, ð€ ð â1ïžâ£ ð (ðŒ â«ïž â1ïžâ£ ð, ðŒ â«ïž ðª ð ð€ â ð³) ð ð ð¬ â¡ïž ð, & â» ð(â).
+
+
+
+**ð€ ð** **ð â®ïž ð ð**, ð« â®ïž ð¢ ð¢.
+
+, â» ð, ð ð ðª **ðŠ** ð (â¡ïž ð) ð â«ïž ð **"ð" & ð ð ð**.
+
+ð, & ð ð ðž ðª, ð€ ð ð â«ïž ðª â«ïž. ð ð:
+
+* **ð ð âº**.
+ * ð, ð ð ðª ðâðŠº ð ð ðâðŠº,, âïž ð ð ðâðŠº ð âïž, ð 5ïžâ£ð âïž ðª ð« ð.
+* **ð ðœ** (ð â®ïž ð ð ïž ð ïž) ð ð¢ ð¢ ð¢ ð â®ïž ð.
+ * ð¥ ð¬ ð, ðŽ 1ïžâ£ ð ïž ðª ð ð ð¯ ð¢ & âŽ.
+ * ð 1ïžâ£ ð€ â«ïžâ â«ïž ð¶ â ðâ ð ð€ â ð³ â ð
ð ð ð ïž.
+ * âª, ð ðª âïž âïž ð€ â ð³ ð, â¶ïž ð ð ð ð, â€Žïž ð ð« â®ïž ð€ â ð³, & â€Žïž â ð€ â ð³. ð ð« ð¯, ð ð±(â) ð ð« ðª â®ïž ð° ð ð€ â ð³ ð.
+
+ð ð ð ð ïž, ⪠ðŠ ð±, 1ïžâ£ ð ð€ â«ïžâ ð ð ð âïž **ð âïž ðµ ðºðžð** â®ïž ð€ â ð³ â©ïž âïž ð€ ð â®ïž ðž ðœ ð (â
Uvicorn).
+
+## ð
+
+âïž **ðºðžð** ð¶ â , & **ð¯** ð ðŒ. ð
ð¯ ð ð©âð» âïž ð® ð€ ðºðžð ð **ð€ ð ð§** & â ð« ð·.
+
+âïž ð ð ð ð° â¹ **ðºðžð ð©âð»** ð ðª ðª ð & ð ð 𧰠⹠ð ð ïž ð ð
ð.
+
+â ð, ð€ ð ðŠ ð ð 𧱠ðŒ â â ð **ðºðžð** **FastAPI** ðž. ð¶
diff --git a/docs/em/docs/deployment/index.md b/docs/em/docs/deployment/index.md
new file mode 100644
index 000000000..1010c589f
--- /dev/null
+++ b/docs/em/docs/deployment/index.md
@@ -0,0 +1,21 @@
+# ð ïž - ð¶
+
+ð ïž **FastAPI** ðž ð¶ â©.
+
+## â«ïžâ ðš ð ïž â
+
+**ð ïž** ðž â ð ðª ð¶ â â«ïž **ðª ð©âð»**.
+
+**ðž ð ïž**, â«ïž ð ð ð® â«ïž **ð° ð°**, â®ïž **ðœ ð** ð ð ð ð, â, âïž, ð ð **ð©âð»** ðª **ð** ðž â» & ðµ ð âïž â .
+
+ð ð
**ð ïž** â¶ïž, ðâ ð ð§ ð ð, ð â«ïž & â» â«ïž, âïž & ð ð ïž ðœ, âïž.
+
+## ð ïž ð
+
+ð€ ð ð â«ïž âïž ð ð ð¯ âïž ðŒ & 𧰠ð ð âïž.
+
+ð ðª **ð ïž ðœ** ð âïž ð ð§°, ð ðª âïž **â ðâðŠº** ð ðš ð ð· ð, âïž ð ðª ð.
+
+ð€ ð ðŠ ð ð ð§ ð ð ð² âïž ð€¯ ðâ ð ïž **FastAPI** ðž (ð ð
â«ïž â ð ð ð ðž ðž).
+
+ð ð ð ð â¹ âïž ð€¯ & â â«ïž â ð. ð¶
diff --git a/docs/em/docs/deployment/manually.md b/docs/em/docs/deployment/manually.md
new file mode 100644
index 000000000..f27b423e2
--- /dev/null
+++ b/docs/em/docs/deployment/manually.md
@@ -0,0 +1,145 @@
+# ð ðœ â - Uvicorn
+
+ð ð ð ðª ð **FastAPI** ðž ð° ðœ ð° ð« ðœ ð ð **Uvicorn**.
+
+ð€ 3ïžâ£ ð ð:
+
+* Uvicorn: â ð ð« ðœ.
+* Hypercorn: ð« ðœ ð â®ïž ðºðžð/2ïžâ£ & ð» ðª ð â.
+* ðž: ð« ðœ ð â³ ð».
+
+## ðœ ð° & ðœ ð
+
+ð€ ð€ª â¹ ð ð âïž ð€¯. ð¶
+
+ð€ "**ðœ**" ð âïž ð ð¯ââïž ð°/â ð» (â âïž ð¹ ð°) & ð ð ðââ ð ð ð° (â
Uvicorn).
+
+âïž ð ð€¯ ðâ ð â "ðœ" ð¢, â«ïž ðª ð 1ïžâ£ ð 2ïžâ£ ð.
+
+ðâ ð ð° ð°, â«ïž â ð€ â«ïž **ðœ**, âïž **ð°**, **ðŸ** (ð¹ ð°), **ðž**. ð ð ð ð ð° ð°, ð ðââ ðŸ, ðâ ð ð ð.
+
+## â ðœ ð
+
+ð ðª â ð« ð ðœ â®ïž:
+
+=== "Uvicorn"
+
+ * Uvicorn, ð©-â© ð« ðœ, ð ð uvloop & httptool.
+
+
+
+ ```console
+ $ pip install "uvicorn[standard]"
+
+ ---> 100%
+ ```
+
+
+
+ !!! tip
+ â `standard`, Uvicorn ð â & âïž ð â ð.
+
+ ð â
`uvloop`, â-ð ð§-â» `asyncio`, ð ð ðŠ ð ïž ð ð.
+
+=== "Hypercorn"
+
+ * Hypercorn, ð« ðœ ð â®ïž ðºðžð/2ïžâ£.
+
+
+
+ ```console
+ $ pip install hypercorn
+
+ ---> 100%
+ ```
+
+
+
+ ...âïž ð ð ð« ðœ.
+
+## ð ðœ ð
+
+ð ðª â€Žïž ð ð ðž ð ð ð âïž â ð°, âïž ðµ `--reload` ð, â
:
+
+=== "Uvicorn"
+
+
+
+ ```console
+ $ uvicorn main:app --host 0.0.0.0 --port 80
+
+ INFO: Uvicorn running on http://0.0.0.0:80 (Press CTRL+C to quit)
+ ```
+
+
+
+=== "Hypercorn"
+
+
+
+ ```console
+ $ hypercorn main:app --bind 0.0.0.0:80
+
+ Running on 0.0.0.0:8080 over http (CTRL + C to quit)
+ ```
+
+
+
+!!! warning
+ ð â `--reload` ð ð¥ ð âïž â«ïž.
+
+ `--reload` ð ðŽ ð
ð
â¹, ð
â , âïž.
+
+ â«ïž â¹ ð â®ïž **ð ïž**, âïž ð **ð«ð ð«** âïž â«ïž **ð**.
+
+## Hypercorn â®ïž ð»
+
+ð & **FastAPI** âïž ð AnyIO, â â ð« ð â®ïž ð¯ââïž ð ð© ð â³ & ð».
+
+ð, Uvicorn â³ ðŽ ð â®ïž â³, & â«ïž ð âïž `uvloop`, â-ð ð§-â» `asyncio`.
+
+âïž ð¥ ð ð ð âïž **ð»**, â€Žïž ð ðª âïž **Hypercorn** â«ïž ðâðŠº â«ïž. ð¶
+
+### â Hypercorn â®ïž ð»
+
+ð¥ ð ðª â Hypercorn â®ïž ð» ðâðŠº:
+
+
+
+```console
+$ pip install "hypercorn[trio]"
+---> 100%
+```
+
+
+
+### ð â®ïž ð»
+
+â€Žïž ð ðª ð¶ââïž ð âž ð `--worker-class` â®ïž ð² `trio`:
+
+
+
+```console
+$ hypercorn main:app --worker-class trio
+```
+
+
+
+& ð ð â¶ïž Hypercorn â®ïž ð ð± âïž ð» ð©âð».
+
+ð ð ðª âïž ð» ð ð ð±. âïž ð, ð ðª âïž AnyIO, ð§ ð ð ð â®ïž ð¯ââïž ð» & â³. ð¶
+
+## ð ïž ð§
+
+ð« ðŒ ð ðœ ð (ð§.â Uvicorn), â¶ïž **ð ð ïž**, ð ð ð ð¢ (`0.0.0.0`) ð ð ⎠(â
`80`).
+
+ð ð° ð. âïž ð ð ð² ð â ð
ð ð, ð:
+
+* ðââ - ðºðžð
+* ðââ ð ðŽ
+* â
+* 𧬠(ð¢ ð ïž ð)
+* ðŸ
+* â®ïž ð â â¶ïž
+
+ð€ ð ð¬ ð ð
ð ð ð« ð§, â ð ð ð«, & 𧱠ðŒ â®ïž ð ðµ ð« â ð. ð¶
diff --git a/docs/em/docs/deployment/server-workers.md b/docs/em/docs/deployment/server-workers.md
new file mode 100644
index 000000000..ca068d744
--- /dev/null
+++ b/docs/em/docs/deployment/server-workers.md
@@ -0,0 +1,178 @@
+# ðœ ðšâð - ð â®ïž Uvicorn
+
+â¡ïž â
ð ð ð ïž ð§ âªïžâ¡ïž â:
+
+* ðââ - ðºðžð
+* ðââ ð ðŽ
+* â
+* **𧬠(ð¢ ð ïž ð)**
+* ðŸ
+* â®ïž ð â â¶ïž
+
+ð ð â, â®ïž ð ð° ð©º, ð âïž ð² ðââ **ðœ ð** ð Uvicorn, ðââ **ð ð ïž**.
+
+ðâ ð ïž ðž ð ð ð² ð âïž **𧬠ð ïž** â ð **ð ð** & ðª ðµ ð
ðš.
+
+ð ð â®ïž ð ð [ð ïž ð§](./concepts.md){.internal-link target=_blank}, ð€ ð ð ð ðª âïž.
+
+ð¥ ð€ ð ðŠ ð â âïž **ð** â®ïž **Uvicorn ðšâð ð ïž**.
+
+!!! info
+ ð¥ ð âïž ðŠ, ðŒ â®ïž â âïž Kubernete, ð€ ð ð¬ ð ð
ð ð â ð: [FastAPI ðŠ - â](./docker.md){.internal-link target=_blank}.
+
+ ð¯, ðâ ð ð **Kubernete** ð ð ð² **ð«** ð âïž ð & â©ïž ð **ð Uvicorn ð ïž ð ðŠ**, âïž ð€ ð ð¬ ð ð â«ïž ⪠ð ð.
+
+## ð â®ïž Uvicorn ðšâð
+
+**ð** âŽïž ðž ðœ âïž **ðšð» ð©**. ð â ð ð ðª ðŠ ðž ð ðº & â³. ð â«ïž ð« ð â®ïž **FastAPI**, FastAPI âïž ð **ð« ð©**.
+
+âïž ð ðâðŠº ð· **ð ïž ðšâðŒ** & ð€ ð©âð» ð¬ â«ïž â ð¯ **ðšâð ð ïž ð** âïž. â€Žïž ð ð â¶ïž 1ïžâ£ âïž ð **ðšâð ð ïž** âïž ð ð.
+
+& **Uvicorn** âïž **ð-ð ðšâð ð**.
+
+âïž ð ð, ð ð ð« **ð ïž ðšâðŒ**, ð ð **âŽ** & **ð¢**. & â«ïž ð **ð¶** ð» ðšâð ð ïž ð **Uvicorn ð**.
+
+& â€Žïž ð-ð **Uvicorn ðšâð** ð ð ð ð ð ðš ð ð« ð© FastAPI âïž â«ïž.
+
+## â ð & Uvicorn
+
+
+
+```console
+$ pip install "uvicorn[standard]" gunicorn
+
+---> 100%
+```
+
+
+
+ð ð â ð¯ââïž Uvicorn â®ïž `standard` â ðŠ (ð€ â ð) & ð.
+
+## ð ð â®ïž Uvicorn ðšâð
+
+â€Žïž ð ðª ð ð â®ïž:
+
+
+
+```console
+$ gunicorn main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:80
+
+[19499] [INFO] Starting gunicorn 20.1.0
+[19499] [INFO] Listening at: http://0.0.0.0:80 (19499)
+[19499] [INFO] Using worker: uvicorn.workers.UvicornWorker
+[19511] [INFO] Booting worker with pid: 19511
+[19513] [INFO] Booting worker with pid: 19513
+[19514] [INFO] Booting worker with pid: 19514
+[19515] [INFO] Booting worker with pid: 19515
+[19511] [INFO] Started server process [19511]
+[19511] [INFO] Waiting for application startup.
+[19511] [INFO] Application startup complete.
+[19513] [INFO] Started server process [19513]
+[19513] [INFO] Waiting for application startup.
+[19513] [INFO] Application startup complete.
+[19514] [INFO] Started server process [19514]
+[19514] [INFO] Waiting for application startup.
+[19514] [INFO] Application startup complete.
+[19515] [INFO] Started server process [19515]
+[19515] [INFO] Waiting for application startup.
+[19515] [INFO] Application startup complete.
+```
+
+
+
+â¡ïž ð â«ïžâ ð ð ð â:
+
+* `main:app`: ð ð â âïž Uvicorn, `main` â ð ð¹ ð "`main`",, ð `main.py`. & `app` ð ð¢ ð **FastAPI** ðž.
+ * ð ðª ð ð `main:app` ð ð `import` ð ð:
+
+ ```Python
+ from main import app
+ ```
+
+ * , †`main:app` ð ð ð `import` ð `from main import app`.
+* `--workers`: ð¢ ðšâð ð ïž âïž, ð ð ð Uvicorn ðšâð, ð ðŒ, 4ïžâ£ ðšâð.
+* `--worker-class`: ð-ð ðšâð ð âïž ðšâð ð ïž.
+ * ð¥ ð¥ ð¶ââïž ð ð ð ðª ð & âïž â®ïž:
+
+ ```Python
+ import uvicorn.workers.UvicornWorker
+ ```
+
+* `--bind`: ð ð¬ ð ð¢ & ⎠ð, âïž â€ (`:`) ð ð¢ & âŽ.
+ * ð¥ ð ðââ Uvicorn ð, â©ïž `--bind 0.0.0.0:80` (ð ð) ð ð âïž `--host 0.0.0.0` & `--port 80`.
+
+ð¢, ð ðª ð ð â«ïž ðŠ **ð¹** (ð ïž ð) ð ð ïž (â«ïž ð¢).
+
+ð ðª ð ð:
+
+* ð **ð ïž ðšâðŒ** â¶ïž â®ïž ð¹ `19499` (ð ðŒ â«ïž ð ð ð¢).
+* â€Žïž â«ïž â¶ïž `Listening at: http://0.0.0.0:80`.
+* â€Žïž â«ïž ð ð â«ïž âïž âïž ðšâð ð `uvicorn.workers.UvicornWorker`.
+* & â€Žïž â«ïž â¶ïž **4ïžâ£ ðšâð**, ð â®ïž ð® ð ð¹: `19511`, `19513`, `19514`, & `19515`.
+
+ð ð â ð
ð ïž **â ïž ð ïž** & **ð** ð ð ð¥ ð ð§ ð¢ ðšâð. ð â¹ ð â®ïž **â** ð§ âªïžâ¡ïž ð ð.
+
+ð, ð ð ð² ð âïž ð³ ð â ð **â ð** ð¥ ðª, & **ð â«ïž ð ðŽ**, âïž.
+
+## Uvicorn â®ïž ðšâð
+
+Uvicorn âïž ð â¶ïž & ð ð **ðšâð ð ïž**.
+
+ð, ð, Uvicorn ð ïž ð ðšâð ð ïž ð
ð ð ð. , ð¥ ð ð âïž ð ïž ðšâðŒ ð ð (ð ð), â€Žïž â«ïž ðª ð ð â®ïž ð ð ïž ðšâðŒ.
+
+ð ðŒ, ð ð ð â«ïž ð ð:
+
+
+
+```console
+$ uvicorn main:app --host 0.0.0.0 --port 8080 --workers 4
+INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
+INFO: Started parent process [27365]
+INFO: Started server process [27368]
+INFO: Waiting for application startup.
+INFO: Application startup complete.
+INFO: Started server process [27369]
+INFO: Waiting for application startup.
+INFO: Application startup complete.
+INFO: Started server process [27370]
+INFO: Waiting for application startup.
+INFO: Application startup complete.
+INFO: Started server process [27367]
+INFO: Waiting for application startup.
+INFO: Application startup complete.
+```
+
+
+
+ðŽ ð ð ð¥ `--workers` ð¬ Uvicorn â¶ïž 4ïžâ£ ðšâð ð ïž.
+
+ð ðª ð ð â«ïž ðŠ **ð¹** ð ð ïž, `27365` ðª ð ïž (ð **ð ïž ðšâðŒ**) & 1ïžâ£ ð ðšâð ð ïž: `27368`, `27369`, `27370`, & `27367`.
+
+## ð ïž ð§
+
+ð¥ ð ð â âïž **ð** (âïž Uvicorn) ð ïž **Uvicorn ðšâð ð ïž** **ð** ð ïž ðž, â ð **ð ð** ðœ, & ðª ðŠ **ð
ðš**.
+
+âªïžâ¡ïž ð ð ïž ð§ âªïžâ¡ïž ð, âïž ðšâð ð âŽïž â¹ â®ïž **ð§¬** ð, & ð¥ ð â®ïž **â**, âïž ð ðª â ð
ð:
+
+* **ðââ - ðºðžð**
+* **ðââ ð ðŽ**
+* ***â***
+* 𧬠(ð¢ ð ïž ð)
+* **ðŸ**
+* **â®ïž ð â â¶ïž**
+
+## ðŠ & â
+
+â ð ð [FastAPI ðŠ - â](./docker.md){.internal-link target=_blank} ð€ ð ð¬ ð ð ðª âïž ðµ ð **ð ïž ð§**.
+
+ð€ ð ðŠ ð **ð â ðŒ** ð ð **ð â®ïž Uvicorn ðšâð** & ð¢ ð³ ð ðª â ð
ðŒ.
+
+ð€ ð€ ð ðŠ ð â **ð ð ð ðŒ âªïžâ¡ïž ð** ð ð Uvicorn ð ïž (ðµ ð). â«ïž ð
ð ïž & ð² â«ïžâ ð ð ð ðâ âïž ð ðŠ 𧟠âïž ð **Kubernete**.
+
+## ð
+
+ð ðª âïž **ð** (âïž Uvicorn) ð ïž ðšâðŒ â®ïž Uvicorn ðšâð â ð **ð-ð ðœ**, ð **ð ð ïž ð**.
+
+ð ðª âïž ð 𧰠& ð ð¥ ð â ð **ð ð ð ïž âïž** ⪠â ð
ð ð ïž ð§ ð.
+
+â
ð
â ð ð¡ ð **FastAPI** â®ïž ðŠ (â
â & Kubernete). ð ð ð ð ð 𧰠âïž ð
ð â ð **ð ïž ð§** ð. ð¶
diff --git a/docs/em/docs/deployment/versions.md b/docs/em/docs/deployment/versions.md
new file mode 100644
index 000000000..8bfdf9731
--- /dev/null
+++ b/docs/em/docs/deployment/versions.md
@@ -0,0 +1,87 @@
+# ð FastAPI â¬
+
+**FastAPI** ⪠â âïž ð ð ðž & âïž. & ð¯ ð° ð§ 1ïžâ£0ïžâ£0ïžâ£ ð¯. âïž ð® ð ïž ð ð.
+
+ð â ð® ð, ð ð§ ð, & ð ð ð.
+
+ð â«ïžâ â®ïž ⬠`0.x.x`, ð ðš ð ð ⬠ðª â âïž ð ð. ð â© â ð ïž ð.
+
+ð ðª â ð ðž â®ïž **FastAPI** â¶ïžïž ð (& ð âïž ð² ðš â«ïž ð°), ð âïž â ð ð ð âïž â¬ ð ð· â â®ïž ð ð ð.
+
+## ð ð `fastapi` â¬
+
+ð¥ ð ð ð "ð" ⬠**FastAPI** ð âïž ð¯ ð° ⬠ð ð ð ð· â ð ðž.
+
+ðŒ, â¡ïž ð¬ ð âïž â¬ `0.45.0` ð ð±.
+
+ð¥ ð âïž `requirements.txt` ð ð ðª â ⬠â®ïž:
+
+```txt
+fastapi==0.45.0
+```
+
+ð ð â ð ð ð âïž â«ïžâ ⬠`0.45.0`.
+
+âïž ð ðª ð â«ïž â®ïž:
+
+```txt
+fastapi>=0.45.0,<0.46.0
+```
+
+ð ð â ð ð ð âïž â¬ `0.45.0` âïž ð, âïž ð ð `0.46.0`, ðŒ, ⬠`0.45.2` ð ð«.
+
+ð¥ ð âïž ð ð 𧰠ð ïž ð ð·ââ, ð ð¶, Pipenv, âïž ð, ð« ð âïž ð ð ð ðª âïž ð¬ ð¯ ⬠ð ðŠ.
+
+## ðª â¬
+
+ð ðª ð ðª ⬠(â
â
â«ïžâ â®ïž ð°) [ð ð](../release-notes.md){.internal-link target=_blank}.
+
+## ð â¬
+
+ð â ð ïž ð, ð ⬠ð `1.0.0` ðª â ð® ð ð.
+
+FastAPI â© ð ð ð "ð" ⬠ð ð ð§ & ð«-ð ð.
+
+!!! tip
+ "ð" ð ð¢, ðŒ, `0.2.3`, ð ⬠`3`.
+
+, ð ð ðª ð ⬠ð:
+
+```txt
+fastapi>=0.45.0,<0.46.0
+```
+
+ð ð & ð â ð® "ðºð²" â¬.
+
+!!! tip
+ "ðºð²" ð¢ ð, ðŒ, `0.2.3`, ðºð² ⬠`2`.
+
+## â» FastAPI â¬
+
+ð ð ð® ð¯ ð ð±.
+
+â®ïž **FastAPI** â«ïž ð¶ â© (ð ð), â
ð©º: [ð¬](../tutorial/testing.md){.internal-link target=_blank}
+
+â®ïž ð âïž ð¯, â€Žïž ð ðª â» **FastAPI** ⬠ð â®ïž 1ïžâ£, & â ð ð ð ð ð ð· â ð ð ð¯.
+
+ð¥ ð ð·, âïž â®ïž ð â ðª ð, & ð ð ð¯ ð¶ââïž, â€Žïž ð ðª ð ð `fastapi` ð ð â®ïž â¬.
+
+## ð ð
+
+ð ð«ð ð« ð ⬠`starlette`.
+
+ð ⬠**FastAPI** ð âïž ð¯ ð ⬠ð.
+
+, ð ðª â¡ïž **FastAPI** âïž â ð â¬.
+
+## ð Pydantic
+
+Pydantic ð ð¯ **FastAPI** â®ïž ð® ð ð¯, ð ⬠Pydantic (ð `1.0.0`) ð§ ð â®ïž FastAPI.
+
+ð ðª ð Pydantic ð ⬠ð `1.0.0` ð ð· ð & ð `2.0.0`.
+
+ðŒ:
+
+```txt
+pydantic>=1.2.0,<2.0.0
+```
diff --git a/docs/em/docs/external-links.md b/docs/em/docs/external-links.md
new file mode 100644
index 000000000..4440b1f12
--- /dev/null
+++ b/docs/em/docs/external-links.md
@@ -0,0 +1,91 @@
+# ð¢ ð & ð
+
+**FastAPI** âïž ð ðª ð§ ð.
+
+ð€ ð ð€, ð, ð§°, & ð, ð **FastAPI**.
+
+ð¥ â ð ð«.
+
+!!! tip
+ ð¥ ð âïž ð, ð, ð§°, âïž ð³ ð **FastAPI** ð ð« ð ð¥, â ð² ðš â â«ïž.
+
+## ð
+
+### ðªðž
+
+{% if external_links %}
+{% for article in external_links.articles.english %}
+
+* {{ article.title }} {{ article.author }}.
+{% endfor %}
+{% endif %}
+
+### ð¯ðµ
+
+{% if external_links %}
+{% for article in external_links.articles.japanese %}
+
+* {{ article.title }} {{ article.author }}.
+{% endfor %}
+{% endif %}
+
+### ð»ð³
+
+{% if external_links %}
+{% for article in external_links.articles.vietnamese %}
+
+* {{ article.title }} {{ article.author }}.
+{% endfor %}
+{% endif %}
+
+### ð·ðº
+
+{% if external_links %}
+{% for article in external_links.articles.russian %}
+
+* {{ article.title }} {{ article.author }}.
+{% endfor %}
+{% endif %}
+
+### ð©ðª
+
+{% if external_links %}
+{% for article in external_links.articles.german %}
+
+* {{ article.title }} {{ article.author }}.
+{% endfor %}
+{% endif %}
+
+### ð¹ðŒ
+
+{% if external_links %}
+{% for article in external_links.articles.taiwanese %}
+
+* {{ article.title }} {{ article.author }}.
+{% endfor %}
+{% endif %}
+
+## ð»
+
+{% if external_links %}
+{% for article in external_links.podcasts.english %}
+
+* {{ article.title }} {{ article.author }}.
+{% endfor %}
+{% endif %}
+
+## ð¬
+
+{% if external_links %}
+{% for article in external_links.talks.english %}
+
+* {{ article.title }} {{ article.author }}.
+{% endfor %}
+{% endif %}
+
+## ð
+
+⪠ð ð â®ïž â `fastapi`:
+
+
+
diff --git a/docs/em/docs/fastapi-people.md b/docs/em/docs/fastapi-people.md
new file mode 100644
index 000000000..dc94d80da
--- /dev/null
+++ b/docs/em/docs/fastapi-people.md
@@ -0,0 +1,178 @@
+# FastAPI ð«ð«
+
+FastAPI âïž ð ðª ð ð ð«ð« âªïžâ¡ïž ð ð¥.
+
+## ðŒ - ð
+
+ð â ð¶
+
+ð ð€:
+
+{% if people %}
+
+{% for user in people.maintainers %}
+
+
+{% endfor %}
+
+
+{% endif %}
+
+ð€ ðŒ & ð **FastAPI**. ð ðª â ð
ð ð [â¹ FastAPI - ð€ â¹ - ð â®ïž ð](help-fastapi.md#connect-with-the-author){.internal-link target=_blank}.
+
+...âïž ð¥ ð€ ð ðŠ ð ðª.
+
+---
+
+**FastAPI** ðš ð ðâðŠº âªïžâ¡ïž ðª. & ð€ ð ðŠ ð« ð°.
+
+ð« ð«ð« ð:
+
+* [â¹ ð â®ïž â ð](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank}.
+* [â ð² ðš](help-fastapi.md#create-a-pull-request){.internal-link target=_blank}.
+* ð ð² ðš, [âŽïž â â](contributing.md#translations){.internal-link target=_blank}.
+
+ð ð«. ð¶ ð¶
+
+## ð
ðŠ ð©âð» ð ðïž
+
+ð« ð©âð» ð âïž [ð€ ð ð â®ïž â ð](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank} â®ïž ð ðïž. ð¶
+
+{% if people %}
+
+{% for user in people.last_month_active %}
+
+
+{% endfor %}
+
+
+{% endif %}
+
+## ðŽ
+
+ð¥ **FastAPI ðŽ**. ð¶
+
+ð« ð©âð» ð âïž [â¹ ð ð â®ïž â ð](help-fastapi.md#help-others-with-questions-in-github){.internal-link target=_blank} ð *ð ð°*.
+
+ð« âïž ðŠ ðŽ ð€ ð ð. ð¶
+
+{% if people %}
+
+{% for user in people.experts %}
+
+
+{% endfor %}
+
+
+{% endif %}
+
+## ð ðšâð¬
+
+ð¥ **ð ðšâð¬**. ð¶
+
+ð ð©âð» âïž [â ð ð² ðš](help-fastapi.md#create-a-pull-request){.internal-link target=_blank} ð âïž *ð*.
+
+ð« âïž ð â¹ ð, ð§Ÿ, â, âïž. ð¶
+
+{% if people %}
+
+{% for user in people.top_contributors %}
+
+
+{% endfor %}
+
+
+{% endif %}
+
+ð€ ð ð ðšâð¬ (ð
ð ð¯), ð ðª ð ð« ð FastAPI ð ðšâð¬ ð. ð¶
+
+## ð ðšâð¬
+
+ð« ð©âð» **ð ðšâð¬**. ð¶ ð¶
+
+### ð â
+
+ð€ ðŽ ð¬ ð©ââ€âðš ðªðž (& ð« ð¶ ð ð¶). , ðšâð¬ ð ð âïž [**ðïž â â**](contributing.md#translations){.internal-link target=_blank} ð§Ÿ. ðµ ð«, ð€ ð«ð 𧟠ð ð ðªðž.
+
+---
+
+**ð ðšâð¬** ð¶ ð¶ âïž ð ð ð² ðš âªïžâ¡ïž ð, ð ð ð, ð§Ÿ, & âŽïž, **â**.
+
+{% if people %}
+
+{% for user in people.top_reviewers %}
+
+
+{% endfor %}
+
+
+{% endif %}
+
+## ð°
+
+ð« **ð°**. ð¶
+
+ð« ð ð ð· â®ïž **FastAPI** (& ð), âŽïž ð ð ð°.
+
+{% if sponsors %}
+
+{% if sponsors.gold %}
+
+### ð ð°
+
+{% for sponsor in sponsors.gold -%}
+
+{% endfor %}
+{% endif %}
+
+{% if sponsors.silver %}
+
+### ð¥1st ð°
+
+{% for sponsor in sponsors.silver -%}
+
+{% endfor %}
+{% endif %}
+
+{% if sponsors.bronze %}
+
+### ð¥2nd ð°
+
+{% for sponsor in sponsors.bronze -%}
+
+{% endfor %}
+{% endif %}
+
+{% endif %}
+
+### ð¯ ð°
+
+{% if github_sponsors %}
+{% for group in github_sponsors.sponsors %}
+
+
+
+{% for user in group %}
+{% if user.login not in sponsors_badge.logins %}
+
+
+
+{% endif %}
+{% endfor %}
+
+
+
+{% endfor %}
+{% endif %}
+
+## ð ð - ð¡ â¹
+
+ð ð¯ ð ð ðŠ ð¯ ðª â¹ ð.
+
+âŽïž â
ð¯ ð ð ð â, & ð ðŒ ð
ð©, ð ð€ ð â®ïž â & â ð² ðš â®ïž â.
+
+ðœ â ð ðïž, ð ðª â â¹ ð ð¥.
+
+ð¥ ð€ ðŠ ð° âªïžâ¡ïž ð°.
+
+ð€ ðŠ â¶ïžïž â¹ ð, ð, â¡, âïž (ðŒ ð€·).
diff --git a/docs/em/docs/features.md b/docs/em/docs/features.md
new file mode 100644
index 000000000..19193da07
--- /dev/null
+++ b/docs/em/docs/features.md
@@ -0,0 +1,200 @@
+# â
+
+## FastAPI â
+
+**FastAPI** ð€ ð ð:
+
+### âïž ð ð ð©
+
+* ð ð ïž ð, â
ð â¡ ð ïž, ð¢, ðª ðš, ðââ, âïž.
+* ð§ ð ð· 𧟠â®ïž ð» ð (ð â«ïž 𧢠ð ð» ð).
+* ð§ ð€ ð« ð©, â®ïž ð ð¬. â©ïž ð 𧜠ð ð.
+* ð â âïž ð§ **ð©âð» ð â¡** ð ðªðž.
+
+### ð§ ð©º
+
+ð ð ïž ð§Ÿ & ð¬ ðž ð©âð» ð¢. ð ïž âïž ð ð, ð€ ð ð, 2ïžâ£ ð ð¢.
+
+* ðŠ ð, â®ïž ð ð¬, ð€ & ð¯ ð ð ïž ð âªïžâ¡ïž ð¥.
+
+
+
+* ð ð ïž ð§Ÿ â®ïž ð.
+
+
+
+### ð ð
+
+â«ïž ð âïž ð ð© **ð 3ïžâ£.6ïžâ£ ð** ð (ð Pydantic). ð
ââ ð â ð¡. ð© ð ð.
+
+ð¥ ð ðª 2ïžâ£ â² âïž â âïž ð ð (ð¥ ð ð« âïž FastAPI), â
ð ð°: [ð ð](python-types.md){.internal-link target=_blank}.
+
+ð â ð© ð â®ïž ð:
+
+```Python
+from datetime import date
+
+from pydantic import BaseModel
+
+# Declare a variable as a str
+# and get editor support inside the function
+def main(user_id: str):
+ return user_id
+
+
+# A Pydantic model
+class User(BaseModel):
+ id: int
+ name: str
+ joined: date
+```
+
+ð ðª â€Žïž âïž ð:
+
+```Python
+my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
+
+second_user_data = {
+ "id": 4,
+ "name": "Mary",
+ "joined": "2018-11-30",
+}
+
+my_second_user: User = User(**second_user_data)
+```
+
+!!! info
+ `**second_user_data` â:
+
+ ð¶ââïž ð & ð² `second_user_data` #ïžâ£ ð ð-ð² â, ð: `User(id=4, name="Mary", joined="2018-11-30")`
+
+### ðšâðš ðâðŠº
+
+ð ð ïž ð â© & ðïž âïž, ð ð« ð¯ ð ð ðšâðš â â¶ïž ð ïž, ð ð ð ïž ð¡.
+
+ð ð ð©âð» ð¬ â«ïž ð ð ð
âïž â "â".
+
+ð **FastAPI** ð ïž âïž ð ð. â ð· ð.
+
+ð ð ð ðª ð ð ð©º.
+
+ð¥ â ð ðšâðš ðª â¹ ð:
+
+* ð ð ð:
+
+
+
+* ð:
+
+
+
+ð ð ð€ ð ïž ð ð 5ïžâ£ð ð€ ðª â. ðŒ, `price` ð ð ð» ðª (ð ðª âïž ðŠ) ð ð âªïžâ¡ïž ðš.
+
+ð
ââ ð âš â ð ð, ð ð & â¡ ð ð©º, âïž ð ð & ðœ ð ð¥ ð ð âïž `username` âïž `user_name`.
+
+### ð
+
+â«ïž âïž ð€ **ð¢** ð, â®ïž ðŠ ð³ ð. ð ð¢ ðª ð-ð§ â«ïžâ ð ðª & ð¬ ð ïž ð ðª.
+
+âïž ð¢, â«ïž ð **"ð·"**.
+
+### ð¬
+
+* ð¬ ð
(âïž ð â) ð **ðœ ð**, ð:
+ * ð» ð (`dict`).
+ * ð» ð» (`list`) â ð¬ ð.
+ * ð» (`str`) ð, ð¬ ð & ð ð.
+ * ð¢ (`int`, `float`) â®ïž ð & ð ð², âïž.
+
+* ð¬ ð
ð ð, ð:
+ * ð.
+ * ð§.
+ * ð.
+ * ...& ð.
+
+ð ð¬ ðµ ð-ð & ðïž **Pydantic**.
+
+### ðââ & ð€
+
+ðââ & ð€ ð ïž. ðµ ð â â®ïž ðœ âïž ð ð·.
+
+ð ðââ â ð¬ ð, ð:
+
+* ðºðžð ð°.
+* **Oauth2ïžâ£** (â®ïž **ð¥ ð€**). â
ð° ð [Oauth2ïžâ£ â®ïž ð¥](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}.
+* ð ïž ð:
+ * ð.
+ * ð¢ ð¢.
+ * ðª, âïž.
+
+â ð ðââ â âªïžâ¡ïž ð (ð **ð ðª**).
+
+ð ð ⻠𧰠& ðŠ² ð â© ð ïž â®ïž ð âïž, ð ðª, ð & â ðœ, âïž.
+
+### ð ð
+
+FastAPI ð ð¶ â© âïž, âïž ð¶ ðïž ð ð âïž.
+
+* ð ðª âïž ð, ð ð âïž **"ð" ð**.
+* ð **ð ðµ** ð ïž.
+* ð ð ðª ð ðœ âªïžâ¡ïž ðš & **â â¡ ð ïž** â & ð§ ð§Ÿ.
+* **ð§ ð¬** *â¡ ð ïž* ð¢ ð¬ ð.
+* ðâðŠº ð ð©âð» ð€ âïž, **ðœ ð**, âïž.
+* **ð
ââ â ** â®ïž ðœ, ðž, âïž. âïž â© ð ïž â®ïž ð ð«.
+
+### ⟠"ð-ð"
+
+âïž ð ð, ð
ââ ðª ð«, ð & âïž ð ð ðª.
+
+ð ð ïž ð ð
âïž (â®ïž ð) ð ð ðª â "ð-" ð ðž 2ïžâ£ âž ð âïž ð ð & â âïž ð *â¡ ð ïž*.
+
+### ð¯
+
+* 1ïžâ£0ïžâ£0ïžâ£ ð¯ ð¯ ð°.
+* 1ïžâ£0ïžâ£0ïžâ£ ð¯ ð â ð ð§¢.
+* âïž ð ðž.
+
+## ð â
+
+**FastAPI** ð ð â®ïž (& âïž ð) ð. , ð ð ð ð ð âïž, ð ð·.
+
+`FastAPI` ð€ ð§-ð `Starlette`. , ð¥ ð ⪠ð âïž âïž ð, ð
ð ïž ð ð· ð ð.
+
+â®ïž **FastAPI** ð ð€ ð **ð**'â â (FastAPI ð ð ð):
+
+* ð€ ð ð. â«ïž 1ïžâ£ â© ð ð ïž ðª, ð ð·ðª â®ïž **â³** & **ð¶**.
+* ** *ïžâ£ ** ðâðŠº.
+* -ð ïž ð¥ ð.
+* ðŽ & ð€« ð.
+* ð¯ ð©âð» ð ð ðžð².
+* **â**, ð, ð» ð, ð ðš.
+* **ð & ðª** ðâðŠº.
+* 1ïžâ£0ïžâ£0ïžâ£ ð¯ ð¯ ð°.
+* 1ïžâ£0ïžâ£0ïžâ£ ð¯ ð â â.
+
+## Pydantic â
+
+**FastAPI** ð ð â®ïž (& âïž ð) Pydantic. , ð ð Pydantic ð ð âïž, ð ð·.
+
+â
ð¢ ð âïž ð Pydantic, ðâ, ðâ ðœ.
+
+ð â ð ð ðŒ ð ðª ð¶ââïž ð ð ð ð€ âªïžâ¡ïž ðš **ð ðœ**, ð â ð.
+
+ð â ð ð ð€, ð ðŒ ð ðª ð¶ââïž ð ð ð€ âªïžâ¡ïž ðœ **ð ð©âð»**.
+
+â®ïž **FastAPI** ð ð€ ð **Pydantic**'â â (FastAPI âïž ð Pydantic ð ðœ ð):
+
+* **ð
ââ ð **:
+ * ð
ââ ð ð ð âŸ-ðªðž ð¡.
+ * ð¥ ð ð ð ð ð ð â âïž Pydantic.
+* ð€Ÿ ð â®ïž ð **ðŸ/ð§¶/ð§ **:
+ * â©ïž Pydantic ð ð ð ð ð ð¬; ð-ð ïž, ð§œ, â & ð ð€ ð ð ð· â â®ïž ð â ðœ.
+* **â©**:
+ * ð Pydantic â© ð ð ð ð¯ ð.
+* â **ð ð**:
+ * âïž ð Pydantic ð·, ð `typing`'â `List` & `Dict`, âïž.
+ * & ð³ â ð ðœ ð ð¯ & ðª ð¬, â
& ð ð» ð.
+ * ð ðª âïž ð **ðŠ ð»** ð & âïž ð« ð â & â.
+* **ð§**:
+ * Pydantic â ð ð ð ð¬ âïž ð ðª â ð¬ â®ïž ð©âð¬ ð ð· ð â®ïž ð³ ðšâðš.
+* 1ïžâ£0ïžâ£0ïžâ£ ð¯ ð¯ ð°.
diff --git a/docs/em/docs/help-fastapi.md b/docs/em/docs/help-fastapi.md
new file mode 100644
index 000000000..d7b66185d
--- /dev/null
+++ b/docs/em/docs/help-fastapi.md
@@ -0,0 +1,265 @@
+# â¹ FastAPI - ð€ â¹
+
+ð ð **FastAPI**â
+
+ð ð ð â¹ FastAPI, ð ð©âð», & ð â
+
+âïž ð ð ð ð€ â¹ â®ïž **FastAPI**â
+
+ð€ ð¶ ð
ð â¹ (ð ð 1ïžâ£ âïž 2ïžâ£ ð).
+
+& ð€ ð ð ð€ â¹ ðââïž.
+
+## ð±ð ð°
+
+ð ðª ð±ð (ð) [**FastAPI & ðšâð§âðŠ** ð°](/newsletter/){.internal-link target=_blank} ð§ â¹ ð:
+
+* ð° ð FastAPI & ðšâð§âðŠ ð¶
+* ðŠ® ð¶
+* â ð¶
+* ð ð ð¶
+* ðââ & ð± ð¶
+
+## â© FastAPI ð ð±ð
+
+â© ð¶ Fastapi ð **ð±ð** ð€ ð° ð° ð **FastAPI**. ð¶
+
+## ⎠**FastAPI** ð
+
+ð ðª "âŽ" FastAPI ð (ð ⎠ðŒ ð â¶ïžïž): https://github.com/tiangolo/fastapi. ð¶ ð¶
+
+â âŽ, ð ð©âð» ð ðª ð â«ïž ð
ðª & ð ð â«ïž âïž âª â ð.
+
+## â ð ð ð
+
+ð ðª "â" FastAPI ð (ð "â" ðŒ ð â¶ïžïž): https://github.com/tiangolo/fastapi. ð¶
+
+ð€ ð ðª ð "ð ðŽ".
+
+ðš â«ïž, ð ð ðš ðš (ð ð§) ðâ ð€ ð ð (ð â¬) **FastAPI** â®ïž ð ð§ & ð â.
+
+## ð â®ïž ð
+
+ð ðª ð â®ïž ð€ (ð¹ðŠ ð©ð¬ / `tiangolo`), ð.
+
+ð ðª:
+
+* â© ð€ ð **ð**.
+ * ð ð ð â¹ ð ð€ âïž â ð ðª â¹ ð.
+ * â© ð€ ð ðâ ð€ â ð ð â¹ ð.
+* â© ð€ ð **ð±ð** âïž â .
+ * ð¬ ð€ â ð âïž FastAPI (ð€ ð ð ð).
+ * ð ðâ ð€ â ð âïž ð ð ð§°.
+ * ð ðª â© ð¶ Fastapi ð ð±ð (ð ð§).
+* ð â®ïž ð€ ð **ð±ð**.
+ * ð ðâ ð€ â ð âïž ð ð 𧰠(ð ð€ âïž ð±ð ð ð ð€· â).
+* â â«ïžâ ð€ â (âïž â© ð€) ð **ðžð².** âïž **ð**.
+ * â ð ð, ð, & â ð 𧰠ð€ âïž â.
+ * â© ð€ â ðâ ð€ â ð³ ð.
+
+## ð±ð ð **FastAPI**
+
+ð±ð ð **FastAPI** & â¡ïž ð€ & ð ð â«ïžâ ð ð â«ïž. ð¶
+
+ð€ ð ð ð â **FastAPI** ðââ âïž, â«ïžâ ð âïž ð â«ïž, â ð/ð¢ ð âïž â«ïž, âïž.
+
+## ð³ FastAPI
+
+* ð³ **FastAPI** ð.
+* ð³ **FastAPI** ð±.
+* ð¬ ð âïž **FastAPI** ð â¹.
+
+## â¹ ð â®ïž â ð
+
+ð ðª ð & â¹ ð â®ïž ð« â:
+
+* ð ð¬
+* ð â
+
+ð ðŒ ð 5ïžâ£ð ⪠ð â ð â. ð¶
+
+ð¥ ð ð€ ð ð«ð« â®ïž ð« â, ð ð â¶ïžïž ð [FastAPI ðŽ](fastapi-people.md#experts){.internal-link target=_blank}. ð¶
+
+ð, ð â â: ð ð. ð«ð« ð â®ïž ð« ð© & ð ðŒ ð« ð ð ð, âïž ð ð ð ðª ð. ð¶
+
+ð **FastAPI** ðª ð & ð. ð ð°, ð« ð« ð âïž ð ð ‵ ð. ð¥ âïž â ð
ð ð.
+
+---
+
+ð¥ â â¹ ð â®ïž â (ð¬ âïž â):
+
+### ð€ â
+
+* â
ð¥ ð ðª ð€ â«ïžâ **ð¯** & âïž ðŒ ðšâðŒ ð¬.
+
+* â€Žïž â
ð¥ â (â ðª â) **ð**.
+
+* ð ðŒ â ð ð ðœ â âªïžâ¡ïž ð©âð», âïž ð€ ðª **ð** 1ïžâ£. ð¥ ð ðª ð€ â & âïž ðŒ ð, ð ðª ðª ð€ ð **ð â**.
+
+* ð¥ ð ðª ð« ð€ â, ð ð **â¹**.
+
+### ð¬ â
+
+ð
ðŒ & ð â ð€ ð³ ð ðšâðŒ **â®ïž ð**.
+
+ð ðŒ ð« ð ðŽ ð 𧬠ð, âïž ð ð« ð¥ **ð¬ â **.
+
+* ð ðª ð ð« ð â, ð¬, ðŒ, ð ð ðª **ð-ð** & ð ð ð ð â âïž ð ð« ð, âïž ð€ ð« âïž ðŒ ð.
+
+* ð¥ ð ð ðââïž ð, ð ðª ð **â ðŒ** ð ð ð, 𧢠ð ð â . âïž ð€¯ ð ð ðª â ð ð° & â«ïž ðª ð» ð ð« â â ð¥.
+
+### ð€ â
+
+* â®ïž ðââ ðª ð€ â, ð ðª ð€ ð« ðª **â**.
+
+* ð ðŒ, â«ïž ð ð€ ð« **ð â âïž âïž ðŒ**, â©ïž ð€ 5ïžâ£ð ð ð â â«ïž ð â«ïžâ ð« ð.
+
+### ð ð
+
+ð¥ ð« ðš, ð€ â ð€ ð ð âïž â ð« â , ã, **ð ð**â ðŠž
+
+* ð, ð¥ ð â ð« â , ð ðª ð ð«:
+
+ * ð ð¬: ⢠ð€ **â**.
+ * ð â: **ð** â**.
+
+## â ð ð
+
+ð ðª "â" FastAPI ð (ð "â" ðŒ ð â¶ïžïž): https://github.com/tiangolo/fastapi. ð¶
+
+ð¥ ð ð "ð" â©ïž "ð ðŽ" ð ð ðš ðš ðâ ð± â ð â âïž â. ð ðª â ð ð ðŽ ð ðš ð ð â, âïž ð¬, âïž ðž, âïž.
+
+â€Žïž ð ðª ð & â¹ ð« â ð â.
+
+## ð â
+
+ð ðª â ð â ð ð, ðŒ:
+
+* ð **â** âïž ð ð **â **.
+* ð€ ð **â**.
+
+**ð**: ð¥ ð â«ïž, â€Žïž ð€ ð ð ð â¹ ð. ð¶
+
+## ð ð² ðš
+
+ð ðª â¹ ð€ ð ð² ðš âªïžâ¡ïž ð.
+
+ð, ð ð ð ð ð. ð¶
+
+---
+
+ð¥ â«ïžâ âïž ð€¯ & â ð ð² ðš:
+
+### ð€ â
+
+* ð¥, â ð ð **ð€ â ** ð ð² ðš ð â. â«ïž ðª âïž ð ð¬ ð ð¬ âïž â.
+
+* ð€ ð ð€ ð ð² ðš ð« ð€ ðª â©ïž â ðª â **ð ð**. â€Žïž ð ðª ð€ âïž ð ð ð.
+
+### ð« ð ð ð
+
+* ð« ð ðââïž ð
ð ð ð ð ð§ ð, ð€ ð 𥬠& ð ð ð â.
+
+* ð« ð ð ð ð«, ð€ ⪠ð§ 𧰠â
ð.
+
+& ð¥ ð€ ð ð ð âïž â ðª, ð€ ð ð ð ð, âïž ð€ ð ð® ð ð ð â®ïž ðª ð.
+
+### â
ð
+
+* â
& â ð, ð ð¥ â«ïž â ð, **ð â«ïž ð** & ð ð¥ â«ïž ð€ â â .
+
+* â€Žïž **ð€** ð¬ ð ð ð, ð â ð€ ð ð ð ð€ â
â«ïž.
+
+!!! info
+ ð, ð€ ðª ð« ð¯ ð ðž ð âïž ð â.
+
+ ð ð° â«ïž âïž ðš ð ð€ ðž â®ïž 3ïžâ£, 5ïžâ£ âïž ð
â, ð² â©ïž ð ð, âïž ðâ ð€ â
ðž, ð« ð€ ð, âïž ð, âïž ð« â â ð« ð â. ð¶
+
+ , â«ïž ð€ â ð ð ð€ â & ð ð, & â¡ïž ð€ ð ð€ ð ð. ð¶
+
+* ð¥ ðµð· ðª ð ð, ð ðª ð ð, âïž ð€ ð
ââ ðª ðââïž ð, ð€ 5ïžâ£ð ð ð€ â ð (& ð€ ð âïž ð ð ð ð¶), â«ïž ð» ð¥ ð ðª ð¯ ð â ð.
+
+### ð¯
+
+* â¹ ð€ â
ð ðµð· âïž **ð¯**.
+
+* â
ð ð¯ **â** â ðµð·. ð¶
+
+* â€Žïž â
ð ð¯ **ð¶ââïž** â®ïž ðµð·. ð¶
+
+* ð ðž ð« âïž ð¯, ð ðª **ð** ð« ð® ð¯, âïž ð ðª **ð€** ð¯ ð. ð 1ïžâ£ ð ð ðŽ ð
ð° & ð ðª â¹ ð â®ïž ð.
+
+* â€Žïž ð€ â«ïžâ ð ð, ð ð ð€ ð ð ð ð â
â«ïž. ð¶
+
+## â ð² ðš
+
+ð ðª [ð](contributing.md){.internal-link target=_blank} â¹ ð â®ïž ð² ðš, ðŒ:
+
+* ð§ ð€ ð ð ð ð§Ÿ.
+* ð° ð, ð¹, âïž ð» ð â âïž ð ð FastAPI â ð ð.
+ * â ð ð ð® ð ð â¶ïž ð ð.
+* â¹ [ð¬ ð§Ÿ](contributing.md#translations){.internal-link target=_blank} ð ðªðž.
+ * ð ðª â¹ ð â â ð.
+* ð ïž ð 𧟠ð.
+* ð§ â» â/ð.
+ * â ð ð® ð¯.
+* ð® ð â.
+ * â ð ð® ð¯.
+ * â ð ð® 𧟠ð¥ â«ïž ð.
+
+## â¹ ð§ FastAPI
+
+â¹ ð€ ð§ **FastAPI**â ð¶
+
+ð€ ð ð·, & ð â«ïž, **ð** ðª â«ïž.
+
+ð ð ð ð ðª â¶ïžïž ð:
+
+* [â¹ ð â®ïž â ð](#help-others-with-questions-in-github){.internal-link target=_blank} (ð ð ð).
+* [ð ð² ðš](#review-pull-requests){.internal-link target=_blank} (ð ð ð).
+
+ð 2ïžâ£ ð â«ïžâ **ðŽ ð° ð**. ð ð ð· ð FastAPI.
+
+ð¥ ð ðª â¹ ð€ â®ïž ð, **ð ð€ ð€ ð§ FastAPI** & â ð â«ïž ð§ **ð ïž â© & ð»**. ð¶
+
+## ð ð¬
+
+ð ð¶ ð§ ð¬ ðœ ð¶ & ð€ ð
â®ïž ð FastAPI ðª.
+
+!!! tip
+ â, ð ð« ð ð¬, ð€ ð
ð ð€ ð ð ðš â¹ [FastAPI ðŽ](fastapi-people.md#experts){.internal-link target=_blank}.
+
+ âïž ð¬ ðŽ ð ð¢ ð¬.
+
+ð€ â®ïž ð¥ ð¬, âïž â«ïž ð« âïž ð» & ð§ â, ð¬ ð â , ð§ ð ð âïž.
+
+### ð« âïž ð¬ â
+
+âïž ð€¯ ð ð¬ â ð
"ð ð¬", â«ïž â© ð â ð ðââïž ð¢ & ð
â â,, ð ðª ð« ðš â.
+
+ð, ð ð ðŠ® ð â â¶ïžïž â ð ð ðª ð ðª ð€ ð â, âïž â â ð â ð¬. & ð ð€ ðª â ð ð€ ð§ â ð, ð¥ â«ïž â ð°. ð€ ðª ð« ð€ ð â®ïž ð¬ âïž. ð¶
+
+ð¬ ð¬ âïž ð« ðª ð ð, â & â 5ïžâ£ð ð€ ðž ð¬. & ðŽ ð ð ð¯ â¶ïžïž [FastAPI ðŽ](fastapi-people.md#experts){.internal-link target=_blank}, ð ð ð
ð² ðš ð
ð ð.
+
+ð ð ð, ð€ ð¯ ð©âð» ð¬ âïž, ð€ â ð€ ð ð ð ð± ð¬ ð€, ð ð ð°. ð¶
+
+## ð° ð
+
+ð ðª ð° ðâðŠº ð (ð€) ð ð ð°.
+
+ð€ ð ðª ð ð€ â ð¶ ð¶ ð¬ ð. ð¶
+
+& ð ðª â¶ïžïž ð¥1st âïž ð ð° FastAPI. ð¶ ð¶
+
+## ð° 𧰠ð ðïž FastAPI
+
+ð âïž ð ð§Ÿ, FastAPI ð§ ð â ð, ð & Pydantic.
+
+ð ðª ð°:
+
+* â¡ ð (Pydantic)
+* ð (ð, Uvicorn)
+
+---
+
+ð â ð¶
diff --git a/docs/em/docs/history-design-future.md b/docs/em/docs/history-design-future.md
new file mode 100644
index 000000000..7e39972de
--- /dev/null
+++ b/docs/em/docs/history-design-future.md
@@ -0,0 +1,79 @@
+# ð, ð§ & ð®
+
+ð° ð, **FastAPI** ð©âð» ð:
+
+> â«ïžâ ð ð ð â â«ïž ð âïž ð âªïžâ¡ïž ð³ ð ð©ââ€âðš ðïž [...]
+
+ð¥ ð¥ ð ð ð.
+
+## ð
+
+ð€ âïž ð ð â®ïž ð ð ð 1ïžâ£2ïžâ£ðïž (ð° ð«, ð âïž, ð ðšâð, â ðœ, âïž), âïž ð ð ð©âð».
+
+ð ð, ð€ ðª ð¬, ð¯ & âïž ð ð.
+
+ð **FastAPI** ð ð ð ð® âª.
+
+ðââ ð [ð](alternatives.md){.internal-link target=_blank}:
+
+
+
+**FastAPI** ð«ð ð ð¥ ð« â®ïž ð· ð.
+
+ð€ âïž ð 𧰠â â ð âïž â¹ ð® ð® ð.
+
+ð€ âïž â ð ð ð ïž ð 1ïžâ£2ïžâ£ðïž. ð¥ ð€ ð â ð â ð **FastAPI** âïž ð ð ð ïž, ð-ð, & ð§°.
+
+âïž â, ð€ ð
ââ ð ð ð ð ð³ ð ð ð ð« â, â ð ð âªïžâ¡ïž â®ïž ð§°, & ð ð« ð ð ðª, âïž ðªðž â ð âð« ðª â (ð 3ïžâ£.6ïžâ£ â ð ð).
+
+
+
+## ð¬
+
+âïž ð â®ïž ð ð€ âïž ð€ ð¡ âªïžâ¡ïž ð ð«, â ð, & ð ð« ð ð ð€ ðª ð ð€ & ð ð©âð» ð€ âïž ð· â®ïž.
+
+ðŒ, â«ïž ð ð ð² â«ïž ð âïž ð ð© ð ð ð.
+
+, ð ð¯ âïž âª â» ð©.
+
+, â â¶ïž ð **FastAPI**, ð€ ðž ð ðïž ð ð ð, ð» ð, Oauth2ïžâ£, âïž. ð¯ ð« ð, ð, & ðº.
+
+## ð§
+
+â€Žïž ð€ ðž ð° ð§ ð©âð» "ð ïž" ð€ ð âïž ð©âð» (ð©âð» âïž FastAPI).
+
+ð€ ð¯ ð ð ð ð ð ðšâðš: ð, ð ð, ð 𧢠ðšâðš.
+
+ð ð ð©âð» ð¬, ð ð ð 8ïžâ£0ïžâ£ ð¯ ð©âð».
+
+â«ïž â ð **FastAPI** ð¯ ð¯ â®ïž ðšâðš âïž 8ïžâ£0ïžâ£ ð¯ ð ð©âð». & ð ð ðšâðš ð ð· â¡, ð ð® ð° ð ð· ð ð ðšâðš.
+
+ð ð ð€ ðª ð ð ð ð ð â ð
ðª, âïž ð ïž ð, ð & â â
, âïž.
+
+ð ð ð ð ð ð ïž ð¡ ð ð©âð».
+
+## ð
+
+â®ïž ð¬ ð ð, ð€ ð ð ð€ ð âïž **Pydantic** ð® ð.
+
+â€Žïž ð€ ð â«ïž, â â«ïž ð ð ïž â®ïž ð» ð, ðâðŠº ð ð ð¬ â ð, & ð ðšâðš ðâðŠº (ð â
, â) âïž ð ð¯ ð ðšâðš.
+
+â®ïž ð ïž, ð€ ð **ð**, ð ð ð.
+
+## ð ïž
+
+ð° ð€ â¶ïž ð **FastAPI** â«ïž, ð ð ⪠ð¥, ð§ ð¬, ð & 𧰠ð, & ð¡ ð ð© & ð§ ð & ð.
+
+## ð®
+
+ð â, â«ïž ⪠ð ð **FastAPI** â®ïž ð® ð â â ð ð«ð«.
+
+â«ïž ðââ ð ð€ â®ïž ð ⣠ð âïž ðŒ ð.
+
+ð ð©âð» & ð ⪠ðª ð **FastAPI** ð« ð (ð ð€ & ð ð).
+
+âïž, ð€ ð ð & â ð.
+
+**FastAPI** âïž ð ð® ‎ïž.
+
+& [ð â¹](help-fastapi.md){.internal-link target=_blank} ð ð.
diff --git a/docs/em/docs/index.md b/docs/em/docs/index.md
new file mode 100644
index 000000000..ea8a9d41c
--- /dev/null
+++ b/docs/em/docs/index.md
@@ -0,0 +1,469 @@
+
+
+
+
+ FastAPI ð ïž, â ð, â© ð¡, â© ð, ð ð
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+---
+
+**ð§Ÿ**: https://fastapi.tiangolo.com
+
+**â¹ ð**: https://github.com/tiangolo/fastapi
+
+---
+
+FastAPI ð, â© (â-ð), ðž ð ïž ð ð ïž â®ïž ð 3ïžâ£.7ïžâ£ â âïž ð ð© ð ð ð.
+
+ð â:
+
+* **â©**: ð¶ â ð, ð ð·ðª â®ïž **â³** & **ð¶** (ð ð & Pydantic). [1ïžâ£ â© ð ð ïž ðª](#performance).
+* **â© ð**: ð ð
ð ïž â ð 2ïžâ£0ïžâ£0ïžâ£ ð¯ 3ïžâ£0ïžâ£0ïžâ£ ð¯. *
+* **ð©ââ€âðš ð**: ð ð 4ïžâ£0ïžâ£ ð¯ ð¿ (ð©âð») ð â. *
+* **ðïž**: ð ðšâðš ðâðŠº. ð ïž ð. ð ð° ð ïž.
+* **â©**: ð§ â© âïž & ð¡. ð ð° ð ð©º.
+* **ð**: ð ð â. ð â âªïžâ¡ïž ð ð¢ ð. ð©ââ€âðš ð.
+* **ðïž**: ð€ ð-ð ð. â®ïž ð§ ð ð§Ÿ.
+* **ð©-âïž**: âïž ð (& ð ð â®ïž) ð ð© ð: ð (⪠ð ðŠ) & ð» ð.
+
+* â âïž ð ð¯ ð ð ð ïž ð, ð ð ðž.
+
+## ð°
+
+
+
+{% if sponsors %}
+{% for sponsor in sponsors.gold -%}
+
+{% endfor -%}
+{%- for sponsor in sponsors.silver -%}
+
+{% endfor %}
+{% endif %}
+
+
+
+ð ð°
+
+## ð€
+
+"_[...] ð€ âïž **FastAPI** ð ð« ð. [...] ð€ ð€ ð âïž â«ïž ð ð ð **â ðâðŠº ð€žââ**. ð« ðââ ð ïž ð ð **ð¥** ð¬ & **ð ** ð¬._"
+
+
+
+---
+
+"_ð¥ ð ïž **FastAPI** ð ð€ **ð** ðœ ð ðª ð¢ ð **ð®**. [ðšð]_"
+
+ð®ð¹ ðžð», ðšð ðšð, & ð±ð° ð ð -
ð (ðŠðª)
+
+---
+
+"_**ðº** ð ð£ ð-â¹ ð ð **â ð§Ÿ** ð¶ ð ïž: **ðš**â [ð â®ïž **FastAPI**]_"
+
+â¡ ð, ð ðªðž, ð² ð -
ðº (ðŠðª)
+
+---
+
+"_ð€ ð€ ð ð ð **FastAPI**. â«ïž ð â_"
+
+
+
+---
+
+"_ð€, â«ïžâ ð âïž ð ð ð ð & ðµð±. ð ð, â«ïž â«ïžâ ð€ ð **ð€** - â«ïž ð€ ð ð ð± ð ð._"
+
+
+
+---
+
+"_ð¥ ð ð ð¡ 1ïžâ£ **ð ð ïž** ð ð ð, â
ð
**FastAPI** [...] â«ïž â©, â© âïž & â© ð¡ [...]_"
+
+"_ð¥ âïž ð ð€ **FastAPI** ð **ð** [...] ð€ ð ð ð ð â«ïž [...]_"
+
+
+
+---
+
+"_ð¥ ð ð ð ð ð ð ïž, ð€ ð ð ð **FastAPI**. â«ïž **ð ð**, **ð
âïž** & **ð ð ïž**, â«ïž âïž â¶ïžïž **ð ðŠ²** ð ð ïž ð¥ ð ïž ð & ð ð ð§ & ðâðŠº â
ð ð¹ ð« ðšâð»._"
+
+
+
+---
+
+## **ð**, FastAPI ð³ðš
+
+
+
+ð¥ ð ð â³ ð± âïž ð¶ â©ïž ðž ð ïž, â
ð
**ð**.
+
+**ð** FastAPI ð¥ ðª. & â«ïž ð¯ **FastAPI ð³ðš**. ð¶ ð¶ ð¶
+
+## ð
+
+ð 3ïžâ£.7ïžâ£ â
+
+FastAPI ð§ ð â ð:
+
+* ð ðž ð.
+* Pydantic ð ð.
+
+## ð·ââ
+
+
+
+```console
+$ pip install fastapi
+
+---> 100%
+```
+
+
+
+ð ð ðª ð« ðœ, ð â
Uvicorn âïž Hypercorn.
+
+
+
+```console
+$ pip install "uvicorn[standard]"
+
+---> 100%
+```
+
+
+
+## ðŒ
+
+### â â«ïž
+
+* â ð `main.py` â®ïž:
+
+```Python
+from typing import Union
+
+from fastapi import FastAPI
+
+app = FastAPI()
+
+
+@app.get("/")
+def read_root():
+ return {"Hello": "World"}
+
+
+@app.get("/items/{item_id}")
+def read_item(item_id: int, q: Union[str, None] = None):
+ return {"item_id": item_id, "q": q}
+```
+
+
+âïž âïž async def
...
+
+ð¥ ð ð âïž `async` / `await`, âïž `async def`:
+
+```Python hl_lines="9 14"
+from typing import Union
+
+from fastapi import FastAPI
+
+app = FastAPI()
+
+
+@app.get("/")
+async def read_root():
+ return {"Hello": "World"}
+
+
+@app.get("/items/{item_id}")
+async def read_item(item_id: int, q: Union[str, None] = None):
+ return {"item_id": item_id, "q": q}
+```
+
+**ð**:
+
+ð¥ ð ð« ð, â
_"ð â" _ ð ð `async` & `await` ð©º.
+
+
+
+### ð â«ïž
+
+ð ðœ â®ïž:
+
+
+
+```console
+$ uvicorn main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+INFO: Started reloader process [28720]
+INFO: Started server process [28722]
+INFO: Waiting for application startup.
+INFO: Application startup complete.
+```
+
+
+
+
+ð ð uvicorn main:app --reload
...
+
+ð `uvicorn main:app` ð:
+
+* `main`: ð `main.py` (ð "ð¹").
+* `app`: ð â ð `main.py` â®ïž âž `app = FastAPI()`.
+* `--reload`: â ðœ â â®ïž ð ð. ðŽ ð ð ïž.
+
+
+
+### â
â«ïž
+
+ð ð ð¥ http://127.0.0.1:8000/items/5?q=somequery.
+
+ð ð ð ð» ðš:
+
+```JSON
+{"item_id": 5, "q": "somequery"}
+```
+
+ð ⪠â ð ïž ð:
+
+* ðš ðºðžð ðš _â¡_ `/` & `/items/{item_id}`.
+* ð¯ââïž _â¡_ â `GET` ð ïž (ð ðºðžð _ð©âð¬_).
+* _â¡_ `/items/{item_id}` âïž _â¡ ð¢_ `item_id` ð ð `int`.
+* _â¡_ `/items/{item_id}` âïž ðŠ `str` _ð¢ = `q`.
+
+### ð ð ïž ð©º
+
+ð ð¶ http://127.0.0.1:8000/docs.
+
+ð ð ð ð§ ð ð ïž ð§Ÿ (ð ðŠ ð):
+
+
+
+### ð ð ïž ð©º
+
+& ð, ð¶ http://127.0.0.1:8000/redoc.
+
+ð ð ð ð ð§ 𧟠(ð ð):
+
+
+
+## ðŒ â»
+
+ð ð ð `main.py` ðš ðª âªïžâ¡ïž `PUT` ðš.
+
+ð£ ðª âïž ð© ð ð, ð Pydantic.
+
+```Python hl_lines="4 9-12 25-27"
+from typing import Union
+
+from fastapi import FastAPI
+from pydantic import BaseModel
+
+app = FastAPI()
+
+
+class Item(BaseModel):
+ name: str
+ price: float
+ is_offer: Union[bool, None] = None
+
+
+@app.get("/")
+def read_root():
+ return {"Hello": "World"}
+
+
+@app.get("/items/{item_id}")
+def read_item(item_id: int, q: Union[str, None] = None):
+ return {"item_id": item_id, "q": q}
+
+
+@app.put("/items/{item_id}")
+def update_item(item_id: int, item: Item):
+ return {"item_name": item.name, "item_id": item_id}
+```
+
+ðœ ð ð ð (â©ïž ð ð® `--reload` `uvicorn` ð ð).
+
+### ð ð ïž ð©º â»
+
+ð ð¶ http://127.0.0.1:8000/docs.
+
+* ð ð ïž ð§Ÿ ð ð â¹, ð ð ðª:
+
+
+
+* ð ð ðŒ "ð â«ïž ð
", â«ïž â ð 𥧠ð¢ & ð ð â®ïž ð ïž:
+
+
+
+* â€Žïž ð ð "ð ïž" ðŒ, ð©âð» ð¢ ð ð â®ïž ð ð ïž, ðš ð¢, ð€ ð & ðŠ ð« ð ð¥:
+
+
+
+### ð ð ïž ð©º â»
+
+& ð, ð¶ http://127.0.0.1:8000/redoc.
+
+* ð 𧟠ð ðš ð ð¢ ð¢ & ðª:
+
+
+
+### ð
+
+ð, ð ð£ **ð** ð ð¢, ðª, âïž. ð¢ ð¢.
+
+ð ð â®ïž ð© ð ð ð.
+
+ð ð« âïž ð¡ ð â, ð©âð¬ âïž ð ð¯ ð, âïž.
+
+ð© **ð 3ïžâ£.7ïžâ£ â**.
+
+ðŒ, `int`:
+
+```Python
+item_id: int
+```
+
+âïž ð ð `Item` ð·:
+
+```Python
+item: Item
+```
+
+...& â®ïž ð ð ð ð ð€:
+
+* ðšâðš ðâðŠº, ð:
+ * ð ïž.
+ * ð â
.
+* ð¬ ðœ:
+ * ð§ & ð â ðâ ð â.
+ * ð¬ ð ðŠ ð» ð.
+* ð ïž ð¢ ðœ: ð âªïžâ¡ïž ðž ð ðœ & ð. ð âªïžâ¡ïž:
+ * ð».
+ * â¡ ð¢.
+ * ð¢ ð¢.
+ * ðª.
+ * ð.
+ * ðš.
+ * ð.
+* ð ïž ð¢ ð: ð âªïžâ¡ïž ð ðœ & ð ðž ðœ (ð»):
+ * ð ð ð (`str`, `int`, `float`, `bool`, `list`, âïž).
+ * `datetime` ð.
+ * `UUID` ð.
+ * ðœ ð·.
+ * ...& ð ð.
+* ð§ ð ð ïž ð§Ÿ, ð 2ïžâ£ ð ð©âð» ð¢:
+ * ðŠ ð.
+ * ð.
+
+---
+
+ð ð â®ïž ð ðŒ, **FastAPI** ð:
+
+* â ð ð€ `item_id` â¡ `GET` & `PUT` ðš.
+* â ð `item_id` ð `int` `GET` & `PUT` ðš.
+ * ð¥ â«ïž ð«, ð©âð» ð ð â , ð â.
+* â
ð¥ ð€ ðŠ ð¢ ð¢ ð `q` ( `http://127.0.0.1:8000/items/foo?q=somequery`) `GET` ðš.
+ * `q` ð¢ ð£ â®ïž `= None`, â«ïž ðŠ.
+ * ðµ `None` â«ïž ð ð (ðª ðŒ â®ïž `PUT`).
+* `PUT` ðš `/items/{item_id}`, â ðª ð»:
+ * â
ð â«ïž âïž â ð¢ `name` ð ð `str`.
+ * â
ð â«ïž âïž â ð¢ `price` ð âïž `float`.
+ * â
ð â«ïž âïž ðŠ ð¢ `is_offer`, ð ð `bool`, ð¥ ð.
+ * ð ð ð ð· ð ðŠ ð» ð.
+* ð âªïžâ¡ïž & ð» ð.
+* ð ð â®ïž ð, ð ðª âïž:
+ * ð 𧟠âïž.
+ * ð§ ð©âð» ð â¡ âïž, ð ðªðž.
+* ð 2ïžâ£ ð 𧟠ðž ð¢ ð.
+
+---
+
+ð¥ ð ð§œ, âïž ð ⪠ð€ ð â â«ïž ð ð·.
+
+ð ð âž â®ïž:
+
+```Python
+ return {"item_name": item.name, "item_id": item_id}
+```
+
+...âªïžâ¡ïž:
+
+```Python
+ ... "item_name": item.name ...
+```
+
+...:
+
+```Python
+ ... "item_price": item.price ...
+```
+
+...& ð â ð ðšâðš ð ð-ð ð¢ & ð ð« ð:
+
+
+
+ð
ð ðŒ ð ð
â, ð ð° - ð©âð» ðŠ®.
+
+**ð ðš**: ð° - ð©âð» ðŠ® ð:
+
+* ð **ð¢** âªïžâ¡ïž ð ð ð¥: **ð**, **ðª**, **ðš ð** & **ð**.
+* â â **ð¬ â** `maximum_length` âïž `regex`.
+* ð¶ ðïž & â© âïž **ð ð** âïž.
+* ðââ & ð€, â
ðâðŠº **Oauth2ïžâ£** â®ïž **ð¥ ð€** & **ðºðžð ð°** ð.
+* ð
ð§ (âïž ðš â©) â ð£ **ð ðŠ ð» ð·** (ð Pydantic).
+* **ð¹** ð ïž â®ïž ð & ð ð.
+* ð â â (ð ð):
+ * ** *ïžâ£ **
+ * ð¶ â© ð¯ âïž ð ðžð² & `pytest`
+ * **â**
+ * **ðª ð**
+ * ...& ð.
+
+## ð
+
+ð¬ ðžð² ð ðŠ **FastAPI** ðž ðââ ðœ Uvicorn 1ïžâ£ â© ð ð ïž ðª, ðŽ ð ð & Uvicorn ð« (âïž ð FastAPI). (*)
+
+ð€ ð ð â«ïž, ð ð ð.
+
+## ðŠ ð
+
+âïž Pydantic:
+
+* ujson
- â© ð» "ð»".
+* email_validator
- ð§ ð¬.
+
+âïž ð:
+
+* httpx
- â ð¥ ð ð âïž `TestClient`.
+* jinja2
- â ð¥ ð ð âïž ð¢ ð ð³.
+* python-multipart
- â ð¥ ð ð ðâðŠº ðš "â", â®ïž `request.form()`.
+* itsdangerous
- â `SessionMiddleware` ðâðŠº.
+* pyyaml
- â ð `SchemaGenerator` ðâðŠº (ð ð² ð« ðª â«ïž â®ïž FastAPI).
+* ujson
- â ð¥ ð ð âïž `UJSONResponse`.
+
+âïž FastAPI / ð:
+
+* uvicorn
- ðœ ð ð & ðŠ ð ðž.
+* orjson
- â ð¥ ð ð âïž `ORJSONResponse`.
+
+ð ðª â ð ð« â®ïž `pip install "fastapi[all]"`.
+
+## ð
+
+ð ð ® ðœ â ð©ðª ð.
diff --git a/docs/em/docs/project-generation.md b/docs/em/docs/project-generation.md
new file mode 100644
index 000000000..5fd667ad1
--- /dev/null
+++ b/docs/em/docs/project-generation.md
@@ -0,0 +1,84 @@
+# ð â¡ - ð
+
+ð ðª âïž ð ð ð€ â¶ïž, â«ïž ð ð â¶ïž â ð, ðââ, ðœ & ð ïž ð ⪠â ð.
+
+ð ð ð ð§ âïž ð¶ ð ð¥ ð ð ð â¹ & ð ïž ð ð ðª, âïž â«ïž ðª ð â¶ïž â ð ð.
+
+## ð ð FastAPI â³
+
+ð: https://github.com/tiangolo/full-stack-fastapi-postgresql
+
+### ð ð FastAPI â³ - â
+
+* ð **â** ð ïž (â ð§¢).
+* â ð ð³ ð ïž.
+* **â â** ð ïž & ð ïž ð§ð¿ ð ïž.
+* **ð ð** ð ðž ðœ âïž Uvicorn & ð.
+* ð **FastAPI** ð©âð»:
+ * **â©**: ð¶ â ð, ð ð·ðª â®ïž **â³** & **ð¶** (ð ð & Pydantic).
+ * **ðïž**: ð ðšâðš ðâðŠº. ð ïž ð. ð ð° ð ïž.
+ * **â©**: ð§ â© âïž & ð¡. ð ð° ð ð©º.
+ * **ð**: ð ð â. ð â âªïžâ¡ïž ð ð¢ ð.
+ * **ðïž**: ð€ ð-ð ð. â®ïž ð§ ð ð§Ÿ.
+ * **ð©-âïž**: âïž ð (& ð ð â®ïž) ð ð© ð: ð & ð» ð.
+ * **ð ð â** ð ð§ ð¬, ð ïž, ð ð§Ÿ, ð€ â®ïž Oauth2ïžâ£ ð¥ ð€, âïž.
+* **ð ð** ð ð¢.
+* **ð¥ ð€** ð€.
+* **ðžð²** ð· (ð¬ ðº â, ð« ðª âïž â®ïž ð¥ ðšâð ð).
+* ð° â¶ïž ð· ð©âð» (ð & â ð ðª).
+* **â** ð ïž.
+* **â** (âïž ðšð³ â¹ ð€).
+* **ð¥** ðšâð ð ðª ð & âïž ð· & ð âªïžâ¡ïž ð ð©âð» ð.
+* ð ð©âð» ð¯ âïž ð **â³**, ð ïž â®ïž â, ð ðª ð¯ ð ð ïž ð, ð¬ ð ðœ. â«ïž ð â, â«ïž ðª ð ð ðœ ðª âªïžâ¡ïž ð ð ð° (ð ðª âïž â³, â³, â³, âïž â«ïžâ ð ð, & ð¯ ð ð ïž ð·).
+* â© ð ð ïž â®ïž **ð ðŸ** ð° âïž-â ð ïž â®ïž â ð â â âïž ð ð ð ð.
+* **ðŠ** ðž:
+ * ð â®ïž ðŠ â³.
+ * **ð¥ ð€** ð.
+ * ð³ ð.
+ * â®ïž ð³, ð ð¹ ð.
+ * ð ð¹ â®ïž ð©âð» ð & ð.
+ * ð€ ð©âð» ð.
+ * **ð·ðª**.
+ * **ðŠ-ð»**.
+ * **Vuetify** ð¹ 𧜠ð§ ðŠ².
+ * **ð**.
+ * â ðœ âïž ð **ð** (ð¶ ð€Ÿ ð â®ïž ðŠ-ð»).
+ * â ð-â¶ïž ð, ð ð« ðª ð âïž ð â ð.
+ * ðž ð¯ ð ð ð° (ðª ð ðââïž).
+ * â ð§ ðª, â«ïž ð· ð
ðŠ, âïž ð ðª ð€-ð â®ïž ðŠ â³ âïž â â«ïž ð ðª, & ð€-âïž â«ïžâ ð ð.
+* ** *ïžâ£ ** â³ ðœ, ð ðª ð â«ïž âïž ð & â³ ðª.
+* **ð¥** ð¥ ðšâð â.
+* ð â ð ðž & ð©âð» â®ïž **Traefik**, ð ðª âïž ð¯ââïž ðœ ð ð, ðœ â¡, âïž ðŠ ð ðŠ.
+* Traefik ð ïž, â
â¡ïž ð **ðºðžð** ð ð§ â¡.
+* â³ **ð** (ð ð ïž), ð ðž & ð©âð» ð¬.
+
+## ð ð FastAPI ð
+
+ð: https://github.com/tiangolo/full-stack-fastapi-couchbase
+
+ð¶ ð¶ **â ** ð¶ ð¶
+
+ð¥ ð â¶ïž ð ð âªïžâ¡ïž ð, â
ð ð¥.
+
+ðŒ, ð ð ð ð FastAPI â³ ðª ð ð, â«ïž ð¯ ð§ & âïž. & â«ïž ð ð ð â & ð.
+
+ð ð âïž ð-âïž ð ð¥ ð ð, â«ïž ð ð² ð· ð, & ð¥ ð ⪠âïž ð ð â®ïž â«ïž ð ð ð (& ð ð² ⪠⹠â«ïž ⣠ð ðª).
+
+ð ðª â ð
ð â«ïž 𩺠ðŠ.
+
+## ð ð FastAPI â³
+
+...ðª ð âª, âïž ð ð ð° ð & ð â. ð¶ ð¶
+
+## ð° ð« ð· â®ïž ð & FastAPI
+
+ð: https://github.com/microsoft/cookiecutter-spacy-fastapi
+
+### ð° ð« ð· â®ïž ð & FastAPI - â
+
+* **ð** ð ð· ð ïž.
+* **â ð§ ð** ðš ð ð.
+* **ð ð** ð ðž ðœ âïž Uvicorn & ð.
+* **â ð©âð»** Kubernete (ðŠ²) ð/ð¿ ð ïž ð.
+* **ð€žââ** ðª â 1ïžâ£ ð ð ðªðž â®ïž ð ð¥.
+* **ðª ð§** ð ð· ð ïž (Pytorch, ðžð²), ð« ð.
diff --git a/docs/em/docs/python-types.md b/docs/em/docs/python-types.md
new file mode 100644
index 000000000..e079d9039
--- /dev/null
+++ b/docs/em/docs/python-types.md
@@ -0,0 +1,490 @@
+# ð ð ð¶
+
+ð âïž ðâðŠº ðŠ "ð ð".
+
+ð« **"ð ð"** ð â ð â ð£ ð ð¢.
+
+ð£ ð ð ð¢, ðšâðš & 𧰠ðª ð€ ð ð ðâðŠº.
+
+ð **â© ð° / âïž** ð ð ð ð. â«ïž ð ðŽ ð¯ ðª âïž ð« â®ïž **FastAPI**... â ð€ ð¶ ð¥.
+
+**FastAPI** ð âïž ð ð« ð ð, ð« ð€ â«ïž ð ð & ð°.
+
+âïž ð¥ ð ð
âïž **FastAPI**, ð ð ð° âªïžâ¡ïž ð« ð ð ð«.
+
+!!! note
+ ð¥ ð ð ðŽ, & ð ⪠ð ð ð ð ð, ð¶ â ð.
+
+## ð¯
+
+â¡ïž â¶ïž â®ïž ð
ðŒ:
+
+```Python
+{!../../../docs_src/python_types/tutorial001.py!}
+```
+
+ð€ ð ð ð¢:
+
+```
+John Doe
+```
+
+ð¢ ðš ð:
+
+* â `first_name` & `last_name`.
+* ð ð¥ ð€ ð 1ïžâ£ â ðŒ â®ïž `title()`.
+* ð¢ ð« â®ïž ð ð.
+
+```Python hl_lines="2"
+{!../../../docs_src/python_types/tutorial001.py!}
+```
+
+### â â«ïž
+
+â«ïž ð¶ ð
ð.
+
+âïž ð ð ð ð â â«ïž âªïžâ¡ïž ð.
+
+â ð ð âïž â¶ïž ð ð¢, ð âïž ð¢ ð...
+
+âïž â€Žïž ð âïž ð€ "ð ð©âð¬ ð ð ð¥ ð€ â ðŒ".
+
+â«ïž `upper`â â«ïž `uppercase`â `first_uppercase`â `capitalize`â
+
+‎ïž, ð ð â®ïž ð ð©âð» ðšâð§âðŠ, ðšâðš â.
+
+ð ð ð¥ ð¢ ð¢, `first_name`, â€Žïž â£ (`.`) & â€Žïž ð¯ `Ctrl+Space` â² ð ïž.
+
+âïž, ð, ð ð€ ð³ â :
+
+
+
+### ð® ð
+
+â¡ïž ð ð âž âªïžâ¡ïž â®ïž â¬.
+
+ð¥ ð ð â«ïžâ ð ð§¬, ð¢ ð¢, âªïžâ¡ïž:
+
+```Python
+ first_name, last_name
+```
+
+:
+
+```Python
+ first_name: str, last_name: str
+```
+
+ð â«ïž.
+
+ð "ð ð":
+
+```Python hl_lines="1"
+{!../../../docs_src/python_types/tutorial002.py!}
+```
+
+ð ð« ð ð£ ð¢ ð² ð ð â®ïž:
+
+```Python
+ first_name="john", last_name="doe"
+```
+
+â«ïž ð ð.
+
+ð¥ âïž â€ (`:`), ð« ð (`=`).
+
+& â ð ð ð ð« ð â«ïžâ ðš âªïžâ¡ïž â«ïžâ ð ðš ðµ ð«.
+
+âïž ð, ð ð ð ð ð ð ð¢, âïž â®ïž ð ð.
+
+ð â, ð ð â² ð â®ïž `Ctrl+Space` & ð ð:
+
+
+
+â®ïž ð, ð ðª ð, ð ð, â ð ð 1ïžâ£ ð "ð ð":
+
+
+
+## ð
ð¯
+
+â
ð ð¢, â«ïž ⪠âïž ð ð:
+
+```Python hl_lines="1"
+{!../../../docs_src/python_types/tutorial003.py!}
+```
+
+â©ïž ðšâðš ð ð ð¢, ð ð« ðŽ ð€ ð ïž, ð ð€ â â
:
+
+
+
+ð ð ð ð ð âïž ð§ â«ïž, ð `age` ð» â®ïž `str(age)`:
+
+```Python hl_lines="2"
+{!../../../docs_src/python_types/tutorial004.py!}
+```
+
+## ð£ ð
+
+ð ð ð ð¥ ð£ ð ð. ð¢ ð¢.
+
+ð ð ð¥ ð ð âïž ð« â®ïž **FastAPI**.
+
+### ð
ð
+
+ð ðª ð£ ð ð© ð ð, ð« ðŽ `str`.
+
+ð ðª âïž, ðŒ:
+
+* `int`
+* `float`
+* `bool`
+* `bytes`
+
+```Python hl_lines="1"
+{!../../../docs_src/python_types/tutorial005.py!}
+```
+
+### ð ð â®ïž ð ð¢
+
+ð€ ð ð ð ðª ð ð ð², ð `dict`, `list`, `set` & `tuple`. & ð ð² ðª âïž ð« ð ð ðââïž.
+
+ð ð ð âïž ð ð ð€ "**ð**" ð. & â«ïž ðª ð£ ð«, â®ïž ð« ð ð.
+
+ð£ ð ð & ð ð, ð ðª âïž ð© ð ð¹ `typing`. â«ïž ð ð¯ ðâðŠº ð« ð ð.
+
+#### ð ⬠ð
+
+â âïž `typing` **ð** â®ïž ð â¬, âªïžâ¡ïž ð 3ïžâ£.6ïžâ£ ⪠ð, â
ð 3ïžâ£.9ïžâ£, ð 3ïžâ£.1ïžâ£0ïžâ£, âïž.
+
+ð ð§, **ð â¬** ð â®ïž ð ðâðŠº ð ð â & ð ðŒ ð ð ð« ðª ð & âïž `typing` ð¹ ð£ ð â.
+
+ð¥ ð ðª â ð â®ïž ⬠ð ð ð, ð ð ðª â ð ð â ðŠ. ð ðŒ ð.
+
+#### ð
+
+ðŒ, â¡ïž ð¬ ð¢ `list` `str`.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ âªïžâ¡ïž `typing`, ð `List` (â®ïž ð `L`):
+
+ ``` Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial006.py!}
+ ```
+
+ ð£ ð¢, â®ïž ð †(`:`) â.
+
+ ð, ð® `List` ð ð ð âªïžâ¡ïž `typing`.
+
+ ð ð ð ð ð ð, ð ð® ð« ⬠ð:
+
+ ```Python hl_lines="4"
+ {!> ../../../docs_src/python_types/tutorial006.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ð£ ð¢, â®ïž ð †(`:`) â.
+
+ ð, ð® `list`.
+
+ ð ð ð ð ð ð, ð ð® ð« ⬠ð:
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial006_py39.py!}
+ ```
+
+!!! info
+ ð ð ð ⬠ð ð€ "ð ð¢".
+
+ ð ðŒ, `str` ð ð¢ ð¶ââïž `List` (âïž `list` ð 3ïžâ£.9ïžâ£ & ð).
+
+ð â: "ð¢ `items` `list`, & ð ð¬ ð ð `str`".
+
+!!! tip
+ ð¥ ð âïž ð 3ïžâ£.9ïžâ£ âïž ð, ð ð« âïž ð `List` âªïžâ¡ïž `typing`, ð ðª âïž ð ð¥ `list` ð â©ïž.
+
+ðš ð, ð ðšâðš ðª ð ðâðŠº âª ð ð¬ âªïžâ¡ïž ð:
+
+
+
+ðµ ð, ð ð ðª ð.
+
+ð ð ð¢ `item` 1ïžâ£ ð£ ð `items`.
+
+& , ðšâðš ð â«ïž `str`, & ð ðâðŠº ð.
+
+#### ð¢ & â
+
+ð ð ð ð£ `tuple`â & `set`â:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="1 4"
+ {!> ../../../docs_src/python_types/tutorial007.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial007_py39.py!}
+ ```
+
+ð â:
+
+* ð¢ `items_t` `tuple` â®ïž 3ïžâ£ ð¬, `int`, â1ïžâ£ `int`, & `str`.
+* ð¢ `items_s` `set`, & ð ð® ð¬ ð `bytes`.
+
+#### #ïžâ£
+
+ð¬ `dict`, ð ð¶ââïž 2ïžâ£ ð ð¢, ð â.
+
+ð¥ ð ð¢ ð `dict`.
+
+ð¥ ð ð¢ ð² `dict`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="1 4"
+ {!> ../../../docs_src/python_types/tutorial008.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial008_py39.py!}
+ ```
+
+ð â:
+
+* ð¢ `prices` `dict`:
+ * ð ð `dict` ð `str` (â¡ïž ð¬, ð ð ð¬).
+ * ð² ð `dict` ð `float` (â¡ïž ð¬, ð ð ð¬).
+
+#### ðªðº
+
+ð ðª ð£ ð ð¢ ðª ð **ð ð**, ðŒ, `int` âïž `str`.
+
+ð 3ïžâ£.6ïžâ£ & ð (â
ð 3ïžâ£.1ïžâ£0ïžâ£) ð ðª âïž `Union` ð âªïžâ¡ïž `typing` & ð® ð ⬠ð ðª ð ð«.
+
+ð 3ïžâ£.1ïžâ£0ïžâ£ ð€ **ð â** ðâ ð ðª ð® ðª ð ðœ âž âž (`|`).
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="1 4"
+ {!> ../../../docs_src/python_types/tutorial008b.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial008b_py310.py!}
+ ```
+
+ð¯ââïž ðŒ ð â ð `item` ðª `int` âïž `str`.
+
+#### ð² `None`
+
+ð ðª ð£ ð ð² ðª âïž ð, ð `str`, âïž ð â«ïž ðª `None`.
+
+ð 3ïžâ£.6ïžâ£ & ð (â
ð 3ïžâ£.1ïžâ£0ïžâ£) ð ðª ð£ â«ïž ð & âïž `Optional` âªïžâ¡ïž `typing` ð¹.
+
+```Python hl_lines="1 4"
+{!../../../docs_src/python_types/tutorial009.py!}
+```
+
+âïž `Optional[str]` â©ïž `str` ð â¡ïž ðšâðš â¹ ð ð â ðâ ð ðª ð€ ð ð² ð§ `str`, ðâ â«ïž ðª ð€ `None` ðââïž.
+
+`Optional[Something]` ð€ âš `Union[Something, None]`, ð« ð.
+
+ð â ð ð 3ïžâ£.1ïžâ£0ïžâ£, ð ðª âïž `Something | None`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="1 4"
+ {!> ../../../docs_src/python_types/tutorial009.py!}
+ ```
+
+=== "ð 3ïžâ£.6ïžâ£ & ð - ð"
+
+ ```Python hl_lines="1 4"
+ {!> ../../../docs_src/python_types/tutorial009b.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial009_py310.py!}
+ ```
+
+#### âïž `Union` âïž `Optional`
+
+ð¥ ð âïž ð ⬠ð 3ïžâ£.1ïžâ£0ïžâ£, ð¥ ðââ âªïžâ¡ïž ð ð¶ **ð€** â ð:
+
+* ð¶ â âïž `Optional[SomeType]`
+* â©ïž ð¶ **âïž `Union[SomeType, None]`** ð¶.
+
+ð¯ââïž ð & ð ð« ð, âïž ð€ ð ð `Union` â©ïž `Optional` â©ïž ð€ "**ðŠ**" ð ð ð ð ð² ðŠ, & â«ïž ð€ â "â«ïž ðª `None`", ð¥ â«ïž ð« ðŠ & â.
+
+ð€ ð `Union[SomeType, None]` ð ð ð â«ïžâ â«ïž â.
+
+â«ïž ð ð€ & ð. âïž ð ð€ ðª ð â ð & ð ð€œââ ð ð ð.
+
+ðŒ, â¡ïž â ð ð¢:
+
+```Python hl_lines="1 4"
+{!../../../docs_src/python_types/tutorial009c.py!}
+```
+
+ð¢ `name` ð¬ `Optional[str]`, âïž â«ïž **ð« ðŠ**, ð ð«ð ð€ ð¢ ðµ ð¢:
+
+```Python
+say_hi() # Oh, no, this throws an error! ð±
+```
+
+`name` ð¢ **â** (ð« *ðŠ*) â©ïž â«ïž ð« âïž ð¢ ð². , `name` ð« `None` ð²:
+
+```Python
+say_hi(name=None) # This works, None is valid ð
+```
+
+ð ð°, ð ð ð ð 3ïžâ£.1ïžâ£0ïžâ£ ð ð ð« âïž ð ð ð, ð ð ðª ð¯ âïž `|` ð¬ ðªðº ð:
+
+```Python hl_lines="1 4"
+{!../../../docs_src/python_types/tutorial009c_py310.py!}
+```
+
+& â€Žïž ð ð ð« âïž ð ð ð ð `Optional` & `Union`. ð¶
+
+#### ð ð
+
+ð ð ð â ð ð¢ ⬠ð ð€ **ð ð** âïž **ð**, ðŒ:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ * `List`
+ * `Tuple`
+ * `Set`
+ * `Dict`
+ * `Union`
+ * `Optional`
+ * ...& ð.
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ð ðª âïž ð ðœ ð ð (â®ïž ⬠ð & ð ð):
+
+ * `list`
+ * `tuple`
+ * `set`
+ * `dict`
+
+ & ð â®ïž ð 3ïžâ£.6ïžâ£, âªïžâ¡ïž `typing` ð¹:
+
+ * `Union`
+ * `Optional`
+ * ...& ð.
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ð ðª âïž ð ðœ ð ð (â®ïž ⬠ð & ð ð):
+
+ * `list`
+ * `tuple`
+ * `set`
+ * `dict`
+
+ & ð â®ïž ð 3ïžâ£.6ïžâ£, âªïžâ¡ïž `typing` ð¹:
+
+ * `Union`
+ * `Optional` (ð â®ïž ð 3ïžâ£.6ïžâ£)
+ * ...& ð.
+
+ ð 3ïžâ£.1ïžâ£0ïžâ£, ð âïž ð `Union` & `Optional`, ð ðª âïž âž âž (`|`) ð£ ðªðº ð.
+
+### ð ð
+
+ð ðª ð£ ð ð ð¢.
+
+â¡ïž ð¬ ð âïž ð `Person`, â®ïž ð:
+
+```Python hl_lines="1-3"
+{!../../../docs_src/python_types/tutorial010.py!}
+```
+
+â€Žïž ð ðª ð£ ð¢ ð `Person`:
+
+```Python hl_lines="6"
+{!../../../docs_src/python_types/tutorial010.py!}
+```
+
+& ‎ïž, ð, ð ð€ ð ðšâðš ðâðŠº:
+
+
+
+## Pydantic ð·
+
+Pydantic ð ð ð ð ð¬.
+
+ð ð£ "ð " ðœ ð â®ïž ð¢.
+
+& ð ð¢ âïž ð.
+
+â€Žïž ð â ð ð ð â®ïž ð² & â«ïž ð â ð², ð ð« â ð (ð¥ ð ðŒ) & ð€ ð ð â®ïž ð ðœ.
+
+& ð ð€ ð ðšâðš ðâðŠº â®ïž ð ð ð.
+
+ðŒ âªïžâ¡ïž ð Pydantic ð©º:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python
+ {!> ../../../docs_src/python_types/tutorial011.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python
+ {!> ../../../docs_src/python_types/tutorial011_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python
+ {!> ../../../docs_src/python_types/tutorial011_py310.py!}
+ ```
+
+!!! info
+ ð¡ ð ð Pydantic, â
ð® ð©º.
+
+**FastAPI** ð âïž ð Pydantic.
+
+ð ð ð ð ð
ð ð ð¡ [ð° - ð©âð» ðŠ®](tutorial/index.md){.internal-link target=_blank}.
+
+!!! tip
+ Pydantic âïž ð ð ðâ ð âïž `Optional` âïž `Union[Something, None]` ðµ ð¢ ð², ð ðª â ð
ð â«ïž Pydantic 𩺠ð â ðŠ ð.
+
+## ð ð **FastAPI**
+
+**FastAPI** â ð ð« ð ð ð ð.
+
+â®ïž **FastAPI** ð ð£ ð¢ â®ïž ð ð & ð ð€:
+
+* **ðšâðš ðâðŠº**.
+* **ð â
**.
+
+...and **FastAPI** uses the same declarations :
+
+* **ð¬ ð**: âªïžâ¡ïž ðš â¡ ð¢, ð¢ ð¢, ð, ðª, ð, âïž.
+* **ð ðœ**: âªïžâ¡ïž ðš ð ð.
+* **â ðœ**: ð âªïžâ¡ïž ð ðš:
+ * ð **ð§ â** ðš ð©âð» ðâ ð â.
+* **ð** ð ïž âïž ð:
+ * â â€Žïž âïž ð§ ð 𧟠ð©âð» ð¢.
+
+ð 5ïžâ£ð ð ð ð. ð« ð. ð ð ð ð ð ð¯ [ð° - ð©âð» ðŠ®](tutorial/index.md){.internal-link target=_blank}.
+
+â ð ð âïž ð© ð ð, ð ð¥ (â©ïž â ð ð, ðšâðš, âïž), **FastAPI** ð ð ð· ð.
+
+!!! info
+ ð¥ ð ⪠ð¶ ð ð ð° & ð ð ð ð
ð ð, ð â¹ "ð® ðŒ" âªïžâ¡ïž `mypy`.
diff --git a/docs/em/docs/tutorial/background-tasks.md b/docs/em/docs/tutorial/background-tasks.md
new file mode 100644
index 000000000..e28ead415
--- /dev/null
+++ b/docs/em/docs/tutorial/background-tasks.md
@@ -0,0 +1,102 @@
+# ð¥ ð
+
+ð ðª ð¬ ð¥ ð ð *â®ïž* ð¬ ðš.
+
+ð â ð ïž ð ðª ðš â®ïž ðš, âïž ð ð©âð» ð« ð€ âïž â ð ïž ð â ðš ðš.
+
+ð ð, ðŒ:
+
+* ð§ ðš ðš â®ïž ð ð¯:
+ * ð ð§ ðœ & ðš ð§ ð "ð" (ð ð¥), ð ðª ðš ðš â¶ïžïž âïž & ðš ð§ ðš ð¥.
+* ð ðœ:
+ * ðŒ, â¡ïž ð¬ ð ðš ð ð ð ð¶ ð ð ð ïž, ð ðª ðš ðš "ð«" (ðºðžð 2ïžâ£0ïžâ£2ïžâ£) & ð ïž â«ïž ð¥.
+
+## âïž `BackgroundTasks`
+
+ð¥, ð `BackgroundTasks` & ð¬ ð¢ ð *â¡ ð ïž ð¢* â®ïž ð ð `BackgroundTasks`:
+
+```Python hl_lines="1 13"
+{!../../../docs_src/background_tasks/tutorial001.py!}
+```
+
+**FastAPI** ð â ð ð `BackgroundTasks` ð & ð¶ââïž â«ïž ð ð¢.
+
+## â ð ð¢
+
+â ð¢ ð ð¥ ð.
+
+â«ïž ð© ð¢ ð ðª ðš ð¢.
+
+â«ïž ðª `async def` âïž ð `def` ð¢, **FastAPI** ð ð â ðµ â«ïž â.
+
+ð ðŒ, ð ð¢ ð â ð (â ðš ð§).
+
+& â ð ïž ð« âïž `async` & `await`, ð¥ ð¬ ð¢ â®ïž ð `def`:
+
+```Python hl_lines="6-9"
+{!../../../docs_src/background_tasks/tutorial001.py!}
+```
+
+## ð® ð¥ ð
+
+ð ð *â¡ ð ïž ð¢*, ð¶ââïž ð ð ð¢ *ð¥ ð* ð â®ïž ð©âð¬ `.add_task()`:
+
+```Python hl_lines="14"
+{!../../../docs_src/background_tasks/tutorial001.py!}
+```
+
+`.add_task()` ðš â:
+
+* ð ð¢ ð ð¥ (`write_notification`).
+* ð ð â ð ð ð¶ââïž ð ð¢ â (`email`).
+* ð ðšð» â ð ð ð¶ââïž ð ð¢ (`message="some notification"`).
+
+## ð ð
+
+âïž `BackgroundTasks` ð· â®ïž ð ð âïž, ð ðª ð£ ð¢ ð `BackgroundTasks` ð ð: *â¡ ð ïž ð¢*, ð (â), ð§-ð, âïž.
+
+**FastAPI** ð â«ïžâ ð ðŒ & â ð€-âïž ð ð, ð ð ð¥ ð ð ð¯ââïž & ð ð¥ â®ïž:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="13 15 22 25"
+ {!> ../../../docs_src/background_tasks/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="11 13 20 23"
+ {!> ../../../docs_src/background_tasks/tutorial002_py310.py!}
+ ```
+
+ð ðŒ, ð§ ð â `log.txt` ð *â®ïž* ðš ðš.
+
+ð¥ ð€ ð¢ ðš, â«ïž ð â ð¹ ð¥ ð.
+
+& â€Žïž â1ïžâ£ ð¥ ð ð *â¡ ð ïž ð¢* ð â ð§ âïž `email` â¡ ð¢.
+
+## ð¡ â¹
+
+ð `BackgroundTasks` ð ð âªïžâ¡ïž `starlette.background`.
+
+â«ïž ð/ð ð ð FastAPI ð ð ðª ð â«ïž âªïžâ¡ïž `fastapi` & â ð« ð ð `BackgroundTask` (ðµ `s` ð) âªïžâ¡ïž `starlette.background`.
+
+ðŽ âïž `BackgroundTasks` (& ð« `BackgroundTask`), â«ïž â€Žïž ðª âïž â«ïž *â¡ ð ïž ð¢* ð¢ & âïž **FastAPI** ðµ ð ð, ð ðâ âïž `Request` ð ð.
+
+â«ïž ðª âïž `BackgroundTask` ð FastAPI, âïž ð âïž â ð ð ð & ðš ð `Response` ð â«ïž.
+
+ð ðª ð ð â¹ ð ð 𩺠ð¥ ð.
+
+## â
+
+ð¥ ð ðª ð ðïž ð¥ ð & ð ð« ð¯ ðª â«ïž ð ð ð ïž (ðŒ, ð ð« ðª ð° ðŸ, ð¢, âïž), ð ðª ð° âªïžâ¡ïž âïž ð ðŠ 𧰠ð ð¥.
+
+ð« ð ð ð ð ð³, ð§/ðšâð ð€ ðšâðŒ, ð â³ âïž â³, âïž ð« â ð ð ð¥ ð ð ð ïž, & âŽïž, ð ðœ.
+
+ð ðŒ, â
[ð ð](../project-generation.md){.internal-link target=_blank}, ð« ð ð ð¥ ⪠ð¶.
+
+âïž ð¥ ð ðª ð ð¢ & ð âªïžâ¡ïž ð **FastAPI** ð±, âïž ð ðª ð ð€ª ð¥ ð (ð ðš ð§ ðš), ð ðª ð¯ âïž `BackgroundTasks`.
+
+## ð
+
+ð & âïž `BackgroundTasks` â®ïž ð¢ *â¡ ð ïž ð¢* & ð ð® ð¥ ð.
diff --git a/docs/em/docs/tutorial/bigger-applications.md b/docs/em/docs/tutorial/bigger-applications.md
new file mode 100644
index 000000000..7b4694387
--- /dev/null
+++ b/docs/em/docs/tutorial/bigger-applications.md
@@ -0,0 +1,488 @@
+# ðŠ ðž - ð ð
+
+ð¥ ð ð ðž âïž ðž ð ïž, â«ïž ð ðŒ ð ð ðª ð® ð ð ð ð.
+
+**FastAPI** ð ðª 𧰠ð ð ðž ⪠ð§ ð ðª.
+
+!!! info
+ ð¥ ð ð âªïžâ¡ïž ðº, ð ð ð ðº ð.
+
+## ðŒ ð ð
+
+â¡ïž ð¬ ð âïž ð ð ð ð:
+
+```
+.
+âââ app
+â  âââ __init__.py
+â  âââ main.py
+â  âââ dependencies.py
+â  âââ routers
+â  â âââ __init__.py
+â  â âââ items.py
+â  â âââ users.py
+â  âââ internal
+â  âââ __init__.py
+â  âââ admin.py
+```
+
+!!! tip
+ ð€ ð `__init__.py` ð: 1ïžâ£ ð ð âïž ð.
+
+ ð â«ïžâ â ð ð âªïžâ¡ïž 1ïžâ£ ð ð â1ïžâ£.
+
+ ðŒ, `app/main.py` ð ðª âïž âž ð:
+
+ ```
+ from app.routers import items
+ ```
+
+* `app` ð ð ð. & â«ïž âïž ð ð `app/__init__.py`, â«ïž "ð ðŠ" (ð "ð ð¹"): `app`.
+* â«ïž ð `app/main.py` ð. â«ïž ð ð ðŠ (ð â®ïž ð `__init__.py`), â«ïž "ð¹" ð ðŠ: `app.main`.
+* ð€ `app/dependencies.py` ð, ð `app/main.py`, â«ïž "ð¹": `app.dependencies`.
+* ð€ ð `app/routers/` â®ïž â1ïžâ£ ð `__init__.py`, â«ïž "ð ðŠ": `app.routers`.
+* ð `app/routers/items.py` ð ðŠ, `app/routers/`,, â«ïž ð: `app.routers.items`.
+* ð â®ïž `app/routers/users.py`, â«ïž â1ïžâ£ ð: `app.routers.users`.
+* ð€ ð `app/internal/` â®ïž â1ïžâ£ ð `__init__.py`, â«ïž â1ïžâ£ "ð ðŠ": `app.internal`.
+* & ð `app/internal/admin.py` â1ïžâ£ ð: `app.internal.admin`.
+
+
+
+ð ð ð â®ïž ð€:
+
+```
+.
+âââ app # "app" is a Python package
+â  âââ __init__.py # this file makes "app" a "Python package"
+â  âââ main.py # "main" module, e.g. import app.main
+â  âââ dependencies.py # "dependencies" module, e.g. import app.dependencies
+â  âââ routers # "routers" is a "Python subpackage"
+â  â âââ __init__.py # makes "routers" a "Python subpackage"
+â  â âââ items.py # "items" submodule, e.g. import app.routers.items
+â  â âââ users.py # "users" submodule, e.g. import app.routers.users
+â  âââ internal # "internal" is a "Python subpackage"
+â  âââ __init__.py # makes "internal" a "Python subpackage"
+â  âââ admin.py # "admin" submodule, e.g. import app.internal.admin
+```
+
+## `APIRouter`
+
+â¡ïž ð¬ ð ð¡ ð ð©âð» ð `/app/routers/users.py`.
+
+ð ð âïž *â¡ ð ïž* ð ð ð©âð» ðœ âªïžâ¡ïž ð ð, ð§ â«ïž ð.
+
+âïž â«ïž ð ð **FastAPI** ðž/ðž ð ïž (â«ïž ð ð "ð ðŠ").
+
+ð ðª â *â¡ ð ïž* ð ð¹ âïž `APIRouter`.
+
+### ð `APIRouter`
+
+ð ð â«ïž & â "ð" ð ð ð ð â®ïž ð `FastAPI`:
+
+```Python hl_lines="1 3"
+{!../../../docs_src/bigger_applications/app/routers/users.py!}
+```
+
+### *â¡ ð ïž* â®ïž `APIRouter`
+
+& â€Žïž ð âïž â«ïž ð£ ð *â¡ ð ïž*.
+
+âïž â«ïž ð ð ð ð âïž `FastAPI` ð:
+
+```Python hl_lines="6 11 16"
+{!../../../docs_src/bigger_applications/app/routers/users.py!}
+```
+
+ð ðª ð `APIRouter` "ð© `FastAPI`" ð.
+
+ð ð ð ðâðŠº.
+
+ð ð `parameters`, `responses`, `dependencies`, `tags`, âïž.
+
+!!! tip
+ ð ðŒ, ð¢ ð€ `router`, âïž ð ðª ð â«ïž ð ð ð.
+
+ð¥ ð ð ð `APIRouter` ð `FastAPI` ð±, âïž ð¥, â¡ïž â
ð & â1ïžâ£ `APIRouter`.
+
+## ð
+
+ð¥ ð ð ð¥ ð ðª ð âïž ð ð¥ ðž.
+
+ð¥ ð® ð« ð« ð `dependencies` ð¹ (`app/dependencies.py`).
+
+ð¥ ð ð âïž ð
ð â ð `X-Token` ð:
+
+```Python hl_lines="1 4-6"
+{!../../../docs_src/bigger_applications/app/dependencies.py!}
+```
+
+!!! tip
+ ð¥ âïž ð ð ð ð ðŒ.
+
+ âïž ð° ðŒ ð ð ð€ ð ð âïž ð ïž [ðââ ð](./security/index.md){.internal-link target=_blank}.
+
+## â1ïžâ£ ð¹ â®ïž `APIRouter`
+
+â¡ïž ð¬ ð âïž ð ð¡ ð "ð¬" âªïžâ¡ïž ð ðž ð¹ `app/routers/items.py`.
+
+ð âïž *â¡ ð ïž* :
+
+* `/items/`
+* `/items/{item_id}`
+
+â«ïž ð ð ð â®ïž `app/routers/users.py`.
+
+âïž ð¥ ð ð & ð ð ð.
+
+ð¥ ð ð *â¡ ð ïž* ð ð¹ âïž ð:
+
+* â¡ `prefix`: `/items`.
+* `tags`: (1ïžâ£ ð: `items`).
+* â `responses`.
+* `dependencies`: ð« ð ðª ð `X-Token` ð ð¥ â.
+
+, â©ïž â ð ð ð *â¡ ð ïž*, ð¥ ðª ð® â«ïž `APIRouter`.
+
+```Python hl_lines="5-10 16 21"
+{!../../../docs_src/bigger_applications/app/routers/items.py!}
+```
+
+â¡ ð *â¡ ð ïž* âïž â¶ïž â®ïž `/`, ð:
+
+```Python hl_lines="1"
+@router.get("/{item_id}")
+async def read_item(item_id: str):
+ ...
+```
+
+...ð¡ ð ð« ð ð `/`.
+
+, ð¡ ð ðŒ `/items`.
+
+ð¥ ðª ð® ð `tags` & â `responses` ð ð â ð *â¡ ð ïž* ð ð ð».
+
+& ð¥ ðª ð® ð `dependencies` ð ð ð® ð *â¡ ð ïž* ð» & ð ð ïž/â ð ðš â ð«.
+
+!!! tip
+ ð ð, ð
ð [ð *â¡ ð ïž ðšâðš*](dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank}, ð
ââ ð² ð ð¶ââïž ð *â¡ ð ïž ð¢*.
+
+ð ð ð ð¬ â¡ ð:
+
+* `/items/`
+* `/items/{item_id}`
+
+...ð¥ ð¯.
+
+* ð« ð ⢠â®ïž ð ð ð ð ð ð» `"items"`.
+ * ð« "ð" âŽïž â ð§ ð 𧟠âïž (âïž ð).
+* ð ð« ð ð ð `responses`.
+* ð ð« *â¡ ð ïž* ð âïž ð `dependencies` ð¬/ð ïž â ð«.
+ * ð¥ ð ð£ ð ð¯ *â¡ ð ïž*, **ð« ð ð ïž ðââïž**.
+ * ð» ð ð ïž ð¥, â€Žïž [`dependencies` ðšâðš](dependencies/dependencies-in-path-operation-decorators.md){.internal-link target=_blank}, & â€Žïž ð ð¢ ð.
+ * ð ðª ð® [`Security` ð â®ïž `scopes`](../advanced/security/oauth2-scopes.md){.internal-link target=_blank}.
+
+!!! tip
+ âïž `dependencies` `APIRouter` ðª âïž, ðŒ, ð ð€ ð ðª *â¡ ð ïž*. ð¥ ð ð« ð® ðŠ ð 1ïžâ£ ð«.
+
+!!! check
+ `prefix`, `tags`, `responses`, & `dependencies` ð¢ (ð ð ðŒ) â âªïžâ¡ïž **FastAPI** â¹ ð â ð â.
+
+### ð ð
+
+ð ð ðšââ€âðš ð¹ `app.routers.items`, ð `app/routers/items.py`.
+
+& ð¥ ðª ð€ ð ð¢ âªïžâ¡ïž ð¹ `app.dependencies`, ð `app/dependencies.py`.
+
+ð¥ âïž â ð â®ïž `..` ð:
+
+```Python hl_lines="3"
+{!../../../docs_src/bigger_applications/app/routers/items.py!}
+```
+
+#### â â ð ð·
+
+!!! tip
+ ð¥ ð ð ð â ð ð·, ð£ â ð ð.
+
+ð ⣠`.`, ð:
+
+```Python
+from .dependencies import get_token_header
+```
+
+ð â:
+
+* â¶ïž ð ðŠ ð ð ð¹ (ð `app/routers/items.py`) ð (ð `app/routers/`)...
+* ð ð¹ `dependencies` (ðœ ð `app/routers/dependencies.py`)...
+* & âªïžâ¡ïž â«ïž, ð ð¢ `get_token_header`.
+
+âïž ð ð ð« ð, ð ð ð `app/dependencies.py`.
+
+ð â ð ð±/ð ð ð ð:
+
+
+
+---
+
+2ïžâ£ ⣠`..`, ð:
+
+```Python
+from ..dependencies import get_token_header
+```
+
+â:
+
+* â¶ïž ð ðŠ ð ð ð¹ (ð `app/routers/items.py`) ð (ð `app/routers/`)...
+* ð¶ ðª ðŠ (ð `app/`)...
+* & ð€, ð ð¹ `dependencies` (ð `app/dependencies.py`)...
+* & âªïžâ¡ïž â«ïž, ð ð¢ `get_token_header`.
+
+ð ð· â â ð¶
+
+---
+
+ð ð, ð¥ ð¥ âïž âïž 3ïžâ£ ⣠`...`, ð:
+
+```Python
+from ...dependencies import get_token_header
+```
+
+that ð â:
+
+* â¶ïž ð ðŠ ð ð ð¹ (ð `app/routers/items.py`) ð (ð `app/routers/`)...
+* ð¶ ðª ðŠ (ð `app/`)...
+* â€Žïž ð¶ ðª ð ðŠ (ð€ ð
ââ ðª ðŠ, `app` ð ð ð¶)...
+* & ð€, ð ð¹ `dependencies` (ð `app/dependencies.py`)...
+* & âªïžâ¡ïž â«ïž, ð ð¢ `get_token_header`.
+
+ð ð ð ðŠ ð `app/`, â®ïž ð® ð ð `__init__.py`, âïž. âïž ð¥ ð« âïž ð. , ð ð ð® â ð ðŒ. ð¶
+
+âïž ð ð ð â â«ïž ð·, ð ðª âïž â ð ð ð ð± ð
ââ ð€ â ð ð«. ð¶
+
+### ð® ð `tags`, `responses`, & `dependencies`
+
+ð¥ ð« â ð¡ `/items` ð« `tags=["items"]` ð *â¡ ð ïž* â©ïž ð¥ ð® ð« `APIRouter`.
+
+âïž ð¥ ðª ð® _ð
_ `tags` ð ð â ð¯ *â¡ ð ïž*, & â `responses` ð¯ ð *â¡ ð ïž*:
+
+```Python hl_lines="30-31"
+{!../../../docs_src/bigger_applications/app/routers/items.py!}
+```
+
+!!! tip
+ ð ð â¡ ð ïž ð âïž ð ð: `["items", "custom"]`.
+
+ & â«ïž ð âïž ð¯ââïž ðš ð§Ÿ, 1ïžâ£ `404` & 1ïžâ£ `403`.
+
+## ð `FastAPI`
+
+ð, â¡ïž ð ð¹ `app/main.py`.
+
+ð¥ ðâ ð ð & âïž ð `FastAPI`.
+
+ð ð ð ð ð ðž ð ð ð ð¯ââïž.
+
+& ð ð â ð ð ð ð® ð ð¯ ð¹, ð ð ð ð
.
+
+### ð `FastAPI`
+
+ð ð & â `FastAPI` ð ð.
+
+& ð¥ ðª ð£ [ð ð](dependencies/global-dependencies.md){.internal-link target=_blank} ð ð ð â®ïž ð ð `APIRouter`:
+
+```Python hl_lines="1 3 7"
+{!../../../docs_src/bigger_applications/app/main.py!}
+```
+
+### ð `APIRouter`
+
+ð ð¥ ð ð ð ð âïž `APIRouter`â:
+
+```Python hl_lines="5"
+{!../../../docs_src/bigger_applications/app/main.py!}
+```
+
+ð `app/routers/users.py` & `app/routers/items.py` ð ð ð ð ð ðŠ `app`, ð¥ ðª âïž ð ⣠`.` ð ð« âïž "â ð".
+
+### â ð ð·
+
+ð:
+
+```Python
+from .routers import items, users
+```
+
+â:
+
+* â¶ïž ð ðŠ ð ð ð¹ (ð `app/main.py`) ð (ð `app/`)...
+* ð ðŠ `routers` (ð `app/routers/`)...
+* & âªïžâ¡ïž â«ïž, ð ð `items` (ð `app/routers/items.py`) & `users` (ð `app/routers/users.py`)...
+
+ð¹ `items` ð âïž ð¢ `router` (`items.router`). ð ð 1ïžâ£ ð¥ â ð `app/routers/items.py`, â«ïž `APIRouter` ð.
+
+& â€Žïž ð¥ ð ð¹ `users`.
+
+ð¥ ðª ð ð« ð:
+
+```Python
+from app.routers import items, users
+```
+
+!!! info
+ ð¥ ⬠"â ð":
+
+ ```Python
+ from .routers import items, users
+ ```
+
+ ð¥ ⬠"ð ð":
+
+ ```Python
+ from app.routers import items, users
+ ```
+
+ ð¡ ð
ð ð ðŠ & ð¹, â ð ð 𧟠ð ð¹.
+
+### â ð ð¥
+
+ð¥ ð ð `items` ð, â©ïž ð ð® ð¢ `router`.
+
+ð â©ïž ð¥ âïž â1ïžâ£ ð¢ ð `router` ð `users`.
+
+ð¥ ð¥ âïž ð 1ïžâ£ â®ïž ð, ð:
+
+```Python
+from .routers.items import router
+from .routers.users import router
+```
+
+`router` âªïžâ¡ïž `users` ð ð 1ïžâ£ âªïžâ¡ïž `items` & ð¥ ð«ð ðª âïž ð« ð ð°.
+
+, ðª âïž ð¯ââïž ð« ð ð, ð¥ ð ð ð:
+
+```Python hl_lines="4"
+{!../../../docs_src/bigger_applications/app/main.py!}
+```
+
+### ð `APIRouter`â `users` & `items`
+
+ð, â¡ïž ð `router`â âªïžâ¡ïž ð `users` & `items`:
+
+```Python hl_lines="10-11"
+{!../../../docs_src/bigger_applications/app/main.py!}
+```
+
+!!! info
+ `users.router` ð `APIRouter` ð ð `app/routers/users.py`.
+
+ & `items.router` ð `APIRouter` ð ð `app/routers/items.py`.
+
+â®ïž `app.include_router()` ð¥ ðª ð® ð `APIRouter` ð `FastAPI` ðž.
+
+â«ïž ð ð ð ð£ âªïžâ¡ïž ð ð» ð â«ïž.
+
+!!! note "ð¡ â¹"
+ â«ïž ð ð€ ð â *â¡ ð ïž* ð *â¡ ð ïž* ð ð£ `APIRouter`.
+
+ , â
ð, â«ïž ð ð€ ð· ð¥ ð ð ð ð±.
+
+!!! check
+ ð ð« âïž ð ð ð ðâ â
ð».
+
+ ð ð â â² & ð ðŽ ðš ðŽ.
+
+ â«ïž ð ð« ð ð. ð¶
+
+### ð `APIRouter` â®ïž ð `prefix`, `tags`, `responses`, & `dependencies`
+
+ð, â¡ïž ð ð ð¢ ð€ ð `app/internal/admin.py` ð.
+
+â«ïž ð `APIRouter` â®ïž ð¡ *â¡ ð ïž* ð ð ð¢ ð° ð ð ð.
+
+ð ðŒ â«ïž ð ð ð
. âïž â¡ïž ð¬ ð â©ïž â«ïž ð° â®ïž ð ð ð¢, ð¥ ð«ð ð â«ïž & ð® `prefix`, `dependencies`, `tags`, âïž. ð `APIRouter`:
+
+```Python hl_lines="3"
+{!../../../docs_src/bigger_applications/app/internal/admin.py!}
+```
+
+âïž ð¥ ð â ð `prefix` ðâ â
`APIRouter` ð ð ð® *â¡ ð ïž* â¶ïž â®ïž `/admin`, ð¥ ð ð â«ïž â®ïž `dependencies` ð¥ ⪠âïž ð ð, & ð¥ ð ð `tags` & `responses`.
+
+ð¥ ðª ð£ ð ð ðµ âïž ð â®ïž `APIRouter` ð¶ââïž ð ð¢ `app.include_router()`:
+
+```Python hl_lines="14-17"
+{!../../../docs_src/bigger_applications/app/main.py!}
+```
+
+ð ð, â®ïž `APIRouter` ð ð§ â, ð¥ ðª ð° ð ð `app/internal/admin.py` ð â®ïž ð ð ð¢.
+
+ð ð ð ð±, ð *â¡ ð ïž* âªïžâ¡ïž `admin` ð¹ ð âïž:
+
+* ð¡ `/admin`.
+* ð `admin`.
+* ð `get_token_header`.
+* ðš `418`. ð¶
+
+âïž ð ð ðŽ ð ð `APIRouter` ð ð±, ð« ð ð ð ð âïž â«ïž.
+
+, ðŒ, ð ð ðª âïž ð `APIRouter` â®ïž ð ð€ ð©âð¬.
+
+### ð *â¡ ð ïž*
+
+ð¥ ðª ð® *â¡ ð ïž* ð `FastAPI` ð±.
+
+ð¥ ð¥ â«ïž... ðŠ ð ð¥ ðª ð€·:
+
+```Python hl_lines="21-23"
+{!../../../docs_src/bigger_applications/app/main.py!}
+```
+
+& â«ïž ð ð· â, ð¯ââïž â®ïž ð ð *â¡ ð ïž* ð® â®ïž `app.include_router()`.
+
+!!! info "ð¶ ð¡ â¹"
+ **ð**: ð ð¶ ð¡ â¹ ð ð ð² ðª **ð¶**.
+
+ ---
+
+ `APIRouter`â ð« "ð»", ð« ð« ðœ âªïžâ¡ïž ð ðž.
+
+ ð â©ïž ð¥ ð ð ð« *â¡ ð ïž* ð ð & ð©âð» ð¢.
+
+ ð¥ ð«ð â ð« & "ð»" ð« â¡ ð, *â¡ ð ïž* "ð" (ð€-â), ð« ð ð.
+
+## â
ð§ ð ïž ð©º
+
+ð, ð `uvicorn`, âïž ð¹ `app.main` & ð¢ `app`:
+
+
+
+```console
+$ uvicorn app.main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+& ð 𩺠http://127.0.0.1:8000/docs.
+
+ð ð ð ð§ ð ïž ð©º, â
â¡ âªïžâ¡ïž ð ð, âïž â â¡ (& ð¡) & â ð:
+
+
+
+## ð ð ð» ð ð° â®ïž ð `prefix`
+
+ð ðª âïž `.include_router()` ð ð° â®ïž *ð* ð» âïž ð ð¡.
+
+ð ðª â , ðŒ, ðŠ ð ð ïž ðœ ð ð¡, â
`/api/v1` & `/api/latest`.
+
+ð ð§ âïž ð ð 5ïžâ£ð ð« ð€ ðª, âïž â«ïž ð€ ðŒ ð.
+
+## ð `APIRouter` â1ïžâ£
+
+ð ð ð ðª ð `APIRouter` `FastAPI` ðž, ð ðª ð `APIRouter` â1ïžâ£ `APIRouter` âïž:
+
+```Python
+router.include_router(other_router)
+```
+
+â ð ð â«ïž â ð `router` `FastAPI` ð±, ð *â¡ ð ïž* âªïžâ¡ïž `other_router` ð.
diff --git a/docs/em/docs/tutorial/body-fields.md b/docs/em/docs/tutorial/body-fields.md
new file mode 100644
index 000000000..9f2c914f4
--- /dev/null
+++ b/docs/em/docs/tutorial/body-fields.md
@@ -0,0 +1,68 @@
+# ðª - ð
+
+ð ð ð ðª ð£ ð ð¬ & ð *â¡ ð ïž ð¢* ð¢ â®ïž `Query`, `Path` & `Body`, ð ðª ð£ ð¬ & ð ð Pydantic ð· âïž Pydantic `Field`.
+
+## ð `Field`
+
+ð¥, ð âïž ð â«ïž:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="4"
+ {!> ../../../docs_src/body_fields/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="2"
+ {!> ../../../docs_src/body_fields/tutorial001_py310.py!}
+ ```
+
+!!! warning
+ ð ð `Field` ð ð âªïžâ¡ïž `pydantic`, ð« âªïžâ¡ïž `fastapi` ð ð (`Query`, `Path`, `Body`, âïž).
+
+## ð£ ð· ð¢
+
+ð ðª â€Žïž âïž `Field` â®ïž ð· ð¢:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="11-14"
+ {!> ../../../docs_src/body_fields/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="9-12"
+ {!> ../../../docs_src/body_fields/tutorial001_py310.py!}
+ ```
+
+`Field` ð· ð ð `Query`, `Path` & `Body`, â«ïž âïž ð ð ð¢, âïž.
+
+!!! note "ð¡ â¹"
+ ð€, `Query`, `Path` & ð ð ð ð â â ð ð¿ â `Param` ð, â â«ïž ð¿ Pydantic `FieldInfo` ð.
+
+ & Pydantic `Field` ðš ð `FieldInfo` ð.
+
+ `Body` ðš ð ð¿ `FieldInfo` ð. & ð€ ð ð ð ð ⪠ð ð¿ `Body` ð.
+
+ ð ð ðâ ð ð `Query`, `Path`, & ð âªïžâ¡ïž `fastapi`, ð ð€ ð¢ ð ðš ð ð.
+
+!!! tip
+ ð â ð ð· ð¢ â®ïž ð, ð¢ ð² & `Field` âïž ð ð *â¡ ð ïž ð¢* ð¢, â®ïž `Field` â©ïž `Path`, `Query` & `Body`.
+
+## ð® â â¹
+
+ð ðª ð£ â â¹ `Field`, `Query`, `Body`, âïž. & â«ïž ð ð ð ð» ð.
+
+ð ð ð¡ ð
ð â â ⹠⪠ð©º, ðâ ð« ð£ ðŒ.
+
+!!! warning
+ â ð ð¶ââïž `Field` ð ð ð ð ð ð ðž.
+ ð« ð 5ïžâ£ð ð« ð¯ ð ð ð§, ð ð§°, ðŒ [ð ð³](https://validator.swagger.io/), 5ïžâ£ð ð« ð· â®ïž ð ð ð.
+
+## ð
+
+ð ðª âïž Pydantic `Field` ð£ â ð¬ & ð ð· ð¢.
+
+ð ðª âïž â ðšð» â ð¶ââïž ð ð» ð ð.
diff --git a/docs/em/docs/tutorial/body-multiple-params.md b/docs/em/docs/tutorial/body-multiple-params.md
new file mode 100644
index 000000000..9ada7dee1
--- /dev/null
+++ b/docs/em/docs/tutorial/body-multiple-params.md
@@ -0,0 +1,213 @@
+# ðª - ð ð¢
+
+ð ð ð¥ âïž ð â âïž `Path` & `Query`, â¡ïž ð ð
ð§ âïž ðš ðª ð.
+
+## ð `Path`, `Query` & ðª ð¢
+
+ð¥, âïž, ð ðª ð `Path`, `Query` & ðš ðª ð¢ ð â¡ & **FastAPI** ð ð â«ïžâ.
+
+& ð ðª ð£ ðª ð¢ ðŠ, â ð¢ `None`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="19-21"
+ {!> ../../../docs_src/body_multiple_params/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="17-19"
+ {!> ../../../docs_src/body_multiple_params/tutorial001_py310.py!}
+ ```
+
+!!! note
+ ð ð, ð ðŒ, `item` ð ð â âªïžâ¡ïž ðª ðŠ. â«ïž âïž `None` ð¢ ð².
+
+## ð ðª ð¢
+
+â®ïž ðŒ, *â¡ ð ïž* ð â ð» ðª â®ïž ð¢ `Item`, ð:
+
+```JSON
+{
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2
+}
+```
+
+âïž ð ðª ð£ ð ðª ð¢, â
`item` & `user`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="22"
+ {!> ../../../docs_src/body_multiple_params/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="20"
+ {!> ../../../docs_src/body_multiple_params/tutorial002_py310.py!}
+ ```
+
+ð ðŒ, **FastAPI** ð ð ð ð€ ð
ð 1ïžâ£ ðª ð¢ ð¢ (2ïžâ£ ð¢ ð Pydantic ð·).
+
+, â«ïž ð â€Žïž âïž ð¢ ð ð (ð ð) ðª, & â ðª ð:
+
+```JSON
+{
+ "item": {
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2
+ },
+ "user": {
+ "username": "dave",
+ "full_name": "Dave Grohl"
+ }
+}
+```
+
+!!! note
+ ð ð âïž `item` ð£ ð ð â, â«ïž ð â ð ðª â®ïž ð `item`.
+
+
+**FastAPI** ð ð§ ð ïž âªïžâ¡ïž ðš, ð ð¢ `item` ðš â«ïž ð¯ ð & ð `user`.
+
+â«ïž ð ð ð¬ â ðœ, & ð ð â«ïž ð ð ð ð & ð§ ð©º.
+
+## â ð² ðª
+
+ð ð ð€ `Query` & `Path` ð¬ â ðœ ð¢ & â¡ ð¢, **FastAPI** ð ð `Body`.
+
+ðŒ, â â®ïž ð·, ð ðª ð ð ð ð âïž â1ïžâ£ ð `importance` ð ðª, ð¥ `item` & `user`.
+
+ð¥ ð ð£ â«ïž, â©ïž â«ïž â ð², **FastAPI** ð ð€ ð â«ïž ð¢ ð¢.
+
+âïž ð ðª ð¡ **FastAPI** ð¥ â«ïž â1ïžâ£ ðª ð âïž `Body`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="22"
+ {!> ../../../docs_src/body_multiple_params/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="20"
+ {!> ../../../docs_src/body_multiple_params/tutorial003_py310.py!}
+ ```
+
+ð ðŒ, **FastAPI** ð â ðª ð:
+
+```JSON
+{
+ "item": {
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2
+ },
+ "user": {
+ "username": "dave",
+ "full_name": "Dave Grohl"
+ },
+ "importance": 5
+}
+```
+
+ð, â«ïž ð ð ð ð, â, ð, âïž.
+
+## ð ðª = & ð¢
+
+âïž, ð ðª ð£ ð ð¢ ð¢ ðâ ð ðª, ð ð ðª ð¢.
+
+, ð¢, â ð² ð¬ ð¢ ð¢, ð ð« âïž ð¯ ð® `Query`, ð ðª:
+
+```Python
+q: Union[str, None] = None
+```
+
+âïž ð 3ïžâ£.1ïžâ£0ïžâ£ & ð:
+
+```Python
+q: str | None = None
+```
+
+ðŒ:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="27"
+ {!> ../../../docs_src/body_multiple_params/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="26"
+ {!> ../../../docs_src/body_multiple_params/tutorial004_py310.py!}
+ ```
+
+!!! info
+ `Body` âïž ð ð â ð¬ & ð ð¢ `Query`,`Path` & ð ð ð ð âª.
+
+## ⯠ð ðª ð¢
+
+â¡ïž ð¬ ð ðŽ âïž ð `item` ðª ð¢ âªïžâ¡ïž Pydantic ð· `Item`.
+
+ð¢, **FastAPI** ð â€Žïž â ð® ðª ð.
+
+âïž ð¥ ð ð â«ïž â ð» â®ïž ð `item` & ð â«ïž ð· ð, â«ïž ðš ðâ ð ð£ â ðª ð¢, ð ðª âïž ð `Body` ð¢ `embed`:
+
+```Python
+item: Item = Body(embed=True)
+```
+
+:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="17"
+ {!> ../../../docs_src/body_multiple_params/tutorial005.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="15"
+ {!> ../../../docs_src/body_multiple_params/tutorial005_py310.py!}
+ ```
+
+ð ðŒ **FastAPI** ð â ðª ð:
+
+```JSON hl_lines="2"
+{
+ "item": {
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2
+ }
+}
+```
+
+â©ïž:
+
+```JSON
+{
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2
+}
+```
+
+## ð
+
+ð ðª ð® ð ðª ð¢ ð *â¡ ð ïž ð¢*, âïž ðš ðª ðŽ âïž ð ðª.
+
+âïž **FastAPI** ð ðµ â«ïž, ð€ ð â ð ð ð¢, & â & ð â ð *â¡ ð ïž*.
+
+ð ðª ð£ â ð² ðš ð ðª.
+
+& ð ðª ð¡ **FastAPI** ⯠ðª ð ðâ ð€ ðŽ ð ð¢ ð£.
diff --git a/docs/em/docs/tutorial/body-nested-models.md b/docs/em/docs/tutorial/body-nested-models.md
new file mode 100644
index 000000000..f4bd50f5c
--- /dev/null
+++ b/docs/em/docs/tutorial/body-nested-models.md
@@ -0,0 +1,382 @@
+# ðª - ð ð·
+
+â®ïž **FastAPI**, ð ðª ð¬, â, ð, & âïž ð² ð ðŠ ð· (ð Pydantic).
+
+## ð ð
+
+ð ðª ð¬ ð¢ ðŸ. ðŒ, ð `list`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="14"
+ {!> ../../../docs_src/body_nested_models/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="12"
+ {!> ../../../docs_src/body_nested_models/tutorial001_py310.py!}
+ ```
+
+ð ð â `tags` ð, ð â«ïž ð« ð£ ð ð£ ð.
+
+## ð ð â®ïž ð ð¢
+
+âïž ð âïž ð¯ ð ð£ ð â®ïž ð ð, âïž "ð ð¢":
+
+### ð âš `List`
+
+ð 3ïžâ£.9ïžâ£ & ð ð ðª âïž ð© `list` ð£ ð« ð â ð¥ ð ð ð. ð¶
+
+âïž ð ⬠â 3ïžâ£.9ïžâ£ (3ïžâ£.6ïžâ£ & ð), ð ð¥ ðª ð `List` âªïžâ¡ïž ð© ð `typing` ð¹:
+
+```Python hl_lines="1"
+{!> ../../../docs_src/body_nested_models/tutorial002.py!}
+```
+
+### ð£ `list` â®ïž ð ð¢
+
+ð£ ð ð âïž ð ð¢ (ð ð), ð `list`, `dict`, `tuple`:
+
+* ð¥ ð ð ⬠ð
ð 3ïžâ£.9ïžâ£, ð ð« ð ⬠âªïžâ¡ïž `typing` ð¹
+* ð¶ââïž ð ð(â) "ð ð¢" âïž â¬ ð: `[` & `]`
+
+ð 3ïžâ£.9ïžâ£ â«ïž ð:
+
+```Python
+my_list: list[str]
+```
+
+⬠ð â 3ïžâ£.9ïžâ£, â«ïž ð:
+
+```Python
+from typing import List
+
+my_list: List[str]
+```
+
+ð ð ð© ð â ð ð.
+
+âïž ð ð ð© â ð· ð¢ â®ïž ð ð.
+
+, ð ðŒ, ð¥ ðª â `tags` ð¯ "ð ð»":
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="14"
+ {!> ../../../docs_src/body_nested_models/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="14"
+ {!> ../../../docs_src/body_nested_models/tutorial002_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="12"
+ {!> ../../../docs_src/body_nested_models/tutorial002_py310.py!}
+ ```
+
+## â ð
+
+âïž â€Žïž ð¥ ð ð â«ïž, & ð€ ð ð ð«ð ð« ð, ð« ð ð² ð ð».
+
+& ð âïž ð ðœ ð â ð ð¬, `set`.
+
+â€Žïž ð¥ ðª ð£ `tags` â ð»:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="1 14"
+ {!> ../../../docs_src/body_nested_models/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="14"
+ {!> ../../../docs_src/body_nested_models/tutorial003_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="12"
+ {!> ../../../docs_src/body_nested_models/tutorial003_py310.py!}
+ ```
+
+â®ïž ð, ð¥ ð ðš ðš â®ïž â ð, â«ïž ð ð â ð ð¬.
+
+& ðâ ð ð¢ ð ð, ð¥ â¹ âïž â, â«ïž ð ð¢ â ð ð¬.
+
+& â«ïž ð â / ð â¡ïž ðââïž.
+
+## ðŠ ð·
+
+ð ð¢ Pydantic ð· âïž ð.
+
+âïž ð ð ðª â«ïž â1ïžâ£ Pydantic ð·.
+
+, ð ðª ð£ ð ðŠ ð» "ð" â®ïž ð¯ ð¢ ð, ð & ð¬.
+
+ð ð, ð² ðŠ.
+
+### ð¬ ð
+
+ðŒ, ð¥ ðª ð¬ `Image` ð·:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9-11"
+ {!> ../../../docs_src/body_nested_models/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="9-11"
+ {!> ../../../docs_src/body_nested_models/tutorial004_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7-9"
+ {!> ../../../docs_src/body_nested_models/tutorial004_py310.py!}
+ ```
+
+### âïž ð ð
+
+& â€Žïž ð¥ ðª âïž â«ïž ð ð¢:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="20"
+ {!> ../../../docs_src/body_nested_models/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="20"
+ {!> ../../../docs_src/body_nested_models/tutorial004_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="18"
+ {!> ../../../docs_src/body_nested_models/tutorial004_py310.py!}
+ ```
+
+ð ð â ð **FastAPI** ð â ðª ð:
+
+```JSON
+{
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2,
+ "tags": ["rock", "metal", "bar"],
+ "image": {
+ "url": "http://example.com/baz.jpg",
+ "name": "The Foo live"
+ }
+}
+```
+
+ð, ð€ž ð ð, â®ïž **FastAPI** ð ð€:
+
+* ðšâðš ðâðŠº (ð ïž, âïž), ðŠ ð·
+* ðœ ð ïž
+* ðœ ð¬
+* ð§ ð§Ÿ
+
+## ð ð & ð¬
+
+âïž âªïžâ¡ïž ð â ð ð `str`, `int`, `float`, âïž. ð ðª âïž ð
ð â ð ð ð âªïžâ¡ïž `str`.
+
+ð ð ð ð âïž, ð 𩺠Pydantic ð ð. ð ð ð ðŒ â ð.
+
+ðŒ, `Image` ð· ð¥ âïž `url` ð, ð¥ ðª ð£ â«ïž â©ïž `str`, Pydantic `HttpUrl`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="4 10"
+ {!> ../../../docs_src/body_nested_models/tutorial005.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="4 10"
+ {!> ../../../docs_src/body_nested_models/tutorial005_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="2 8"
+ {!> ../../../docs_src/body_nested_models/tutorial005_py310.py!}
+ ```
+
+ð» ð â
â ð, & ð ð» ð / ð â
.
+
+## ð¢ â®ïž ð ð
+
+ð ðª âïž Pydantic ð· ðŸ `list`, `set`, âïž:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="20"
+ {!> ../../../docs_src/body_nested_models/tutorial006.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="20"
+ {!> ../../../docs_src/body_nested_models/tutorial006_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="18"
+ {!> ../../../docs_src/body_nested_models/tutorial006_py310.py!}
+ ```
+
+ð ð â (ð, â, ð, âïž) ð» ðª ð:
+
+```JSON hl_lines="11"
+{
+ "name": "Foo",
+ "description": "The pretender",
+ "price": 42.0,
+ "tax": 3.2,
+ "tags": [
+ "rock",
+ "metal",
+ "bar"
+ ],
+ "images": [
+ {
+ "url": "http://example.com/baz.jpg",
+ "name": "The Foo live"
+ },
+ {
+ "url": "http://example.com/dave.jpg",
+ "name": "The Baz"
+ }
+ ]
+}
+```
+
+!!! info
+ ð â `images` ð ð âïž ð ðŒ ð.
+
+## ð ðŠ ð·
+
+ð ðª ð¬ ð² ð ðŠ ð·:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9 14 20 23 27"
+ {!> ../../../docs_src/body_nested_models/tutorial007.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="9 14 20 23 27"
+ {!> ../../../docs_src/body_nested_models/tutorial007_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7 12 18 21 25"
+ {!> ../../../docs_src/body_nested_models/tutorial007_py310.py!}
+ ```
+
+!!! info
+ ð â `Offer` âïž ð `Item`â, â ð âïž ðŠ ð `Image`â
+
+## ðª ð ð
+
+ð¥ ð ð ð² ð» ðª ð â ð» `array` (ð `list`), ð ðª ð£ ð ð¢ ð¢, ð Pydantic ð·:
+
+```Python
+images: List[Image]
+```
+
+âïž ð 3ïžâ£.9ïžâ£ & ð:
+
+```Python
+images: list[Image]
+```
+
+:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="15"
+ {!> ../../../docs_src/body_nested_models/tutorial008.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="13"
+ {!> ../../../docs_src/body_nested_models/tutorial008_py39.py!}
+ ```
+
+## ðšâðš ðâðŠº ð
+
+& ð ð€ ðšâðš ðâðŠº ð.
+
+ð¬ ð ð:
+
+
+
+ð ð« ð« ð€ ð ð ðšâðš ðâðŠº ð¥ ð ð· ð â®ïž `dict` â©ïž Pydantic ð·.
+
+âïž ð ð« âïž ð ð ð« ð¯ââïž, ðš #ïžâ£ ð ð & ð ð¢ ð ð ð» ðââïž.
+
+## ðª â `dict`â
+
+ð ðª ð£ ðª `dict` â®ïž ð ð & ð² ð ð.
+
+ðµ âïž ð ⪠â«ïžâ â ð/ð¢ ð (ð ðŒ â®ïž Pydantic ð·).
+
+ð ð â ð¥ ð ð ðš ð ð ð ð« ⪠ð.
+
+---
+
+ð â ðŒ ðâ ð ð âïž ð ð ð, â
`int`.
+
+ð â«ïžâ ð¥ ð ð ð¥.
+
+ð ðŒ, ð ð ð« ð `dict` ð â«ïž âïž `int` ð â®ïž `float` ð²:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/body_nested_models/tutorial009.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/body_nested_models/tutorial009_py39.py!}
+ ```
+
+!!! tip
+ âïž ð€¯ ð ð» ðŽ ðâðŠº `str` ð.
+
+ âïž Pydantic âïž ð§ ðœ ð ïž.
+
+ ð â ð, âïž ð ð ïž ð©âð» ðª ðŽ ðš ð» ð, ð ð ð» ð ð ð¢, Pydantic ð ð ð« & â ð«.
+
+ & `dict` ð ðš `weights` ð ð€ âïž `int` ð & `float` ð².
+
+## ð
+
+â®ïž **FastAPI** ð âïž ð ðª ð Pydantic ð·, ⪠ð§ ð ð ð
, ð & ð.
+
+âïž â®ïž ð ð°:
+
+* ðšâðš ðâðŠº (ð ïž ð â)
+* ðœ ð ïž (.â.. â / ð ïž)
+* ðœ ð¬
+* ð ð§Ÿ
+* ð§ ð©º
diff --git a/docs/em/docs/tutorial/body-updates.md b/docs/em/docs/tutorial/body-updates.md
new file mode 100644
index 000000000..98058ab52
--- /dev/null
+++ b/docs/em/docs/tutorial/body-updates.md
@@ -0,0 +1,155 @@
+# ðª - â¹
+
+## â¹ â â®ïž `PUT`
+
+â¹ ð¬ ð ðª âïž ðºðžð `PUT` ð ïž.
+
+ð ðª âïž `jsonable_encoder` ð ð¢ ðœ ð ð ðª ðª ð» (â
â®ïž â ðœ). ðŒ, ð `datetime` `str`.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="30-35"
+ {!> ../../../docs_src/body_updates/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="30-35"
+ {!> ../../../docs_src/body_updates/tutorial001_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="28-33"
+ {!> ../../../docs_src/body_updates/tutorial001_py310.py!}
+ ```
+
+`PUT` âïž ðš ðœ ð ð â â» ðœ.
+
+### â ð â
+
+ð â ð ð¥ ð ð â¹ ð¬ `bar` âïž `PUT` â®ïž ðª â:
+
+```Python
+{
+ "name": "Barz",
+ "price": 3,
+ "description": None,
+}
+```
+
+â©ïž â«ïž ð« ð ⪠ðª ð¢ `"tax": 20.2`, ð¢ ð· ð â ð¢ ð² `"tax": 10.5`.
+
+& ð ð ð â®ïž ð "ð" `tax` `10.5`.
+
+## ð â¹ â®ïž `PATCH`
+
+ð ðª âïž ðºðžð `PATCH` ð ïž *ð* â¹ ðœ.
+
+ð â ð ð ðª ðš ðŽ ðœ ð ð ð â¹, ð ð ð£.
+
+!!! Note
+ `PATCH` ð ð âïž & ð ð `PUT`.
+
+ & ð ð âïž ðŽ `PUT`, ð â¹.
+
+ ð **ð** âïž ð« ð ð ð, **FastAPI** ð« ð« ð ð«.
+
+ âïž ð ðŠ® ðŠ ð, ð âïž ð, â ð« ð¯ âïž.
+
+### âïž Pydantic `exclude_unset` ð¢
+
+ð¥ ð ð ðš ð â¹, â«ïž ð¶ â âïž ð¢ `exclude_unset` Pydantic ð· `.dict()`.
+
+ð `item.dict(exclude_unset=True)`.
+
+ð ð ð `dict` â®ïž ðŽ ðœ ð â ðâ ð `item` ð·, ð« ð¢ ð².
+
+â€Žïž ð ðª âïž ð ð `dict` â®ïž ðŽ ðœ ð â (ðš ðš), ð« ð¢ ð²:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="34"
+ {!> ../../../docs_src/body_updates/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="34"
+ {!> ../../../docs_src/body_updates/tutorial002_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="32"
+ {!> ../../../docs_src/body_updates/tutorial002_py310.py!}
+ ```
+
+### âïž Pydantic `update` ð¢
+
+ð, ð ðª â ð â» ð· âïž `.copy()`, & ð¶ââïž `update` ð¢ â®ïž `dict` â ðœ â¹.
+
+ð `stored_item_model.copy(update=update_data)`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="35"
+ {!> ../../../docs_src/body_updates/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="35"
+ {!> ../../../docs_src/body_updates/tutorial002_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="33"
+ {!> ../../../docs_src/body_updates/tutorial002_py310.py!}
+ ```
+
+### ð â¹ ð
+
+ð, â ð â¹ ð ð:
+
+* (â) âïž `PATCH` â©ïž `PUT`.
+* ð ðª ðœ.
+* ð® ð ðœ Pydantic ð·.
+* ð `dict` ðµ ð¢ ð² âªïžâ¡ïž ð¢ ð· (âïž `exclude_unset`).
+ * ð ð ð ðª â¹ ðŽ ð² ð€ â ð©âð», â©ïž ð ð² ⪠ðª â®ïž ð¢ ð² ð ð·.
+* â ð ðª ð·, ð ïž â«ïž ð¢ â®ïž ðš ð â¹ (âïž `update` ð¢).
+* ð ð ð· ð³ ð ðª ðª ð ðœ (ðŒ, âïž `jsonable_encoder`).
+ * ð â âïž ð· `.dict()` ð©âð¬ ð, âïž â«ïž â ð (& ð) ð² ðœ ð ð ðª ð ð», ðŒ, `datetime` `str`.
+* ð ðœ ð ðœ.
+* ðš â¹ ð·.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="30-37"
+ {!> ../../../docs_src/body_updates/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="30-37"
+ {!> ../../../docs_src/body_updates/tutorial002_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="28-35"
+ {!> ../../../docs_src/body_updates/tutorial002_py310.py!}
+ ```
+
+!!! tip
+ ð ðª ð€ âïž ð ð â â®ïž ðºðžð `PUT` ð ïž.
+
+ âïž ðŒ ð¥ âïž `PATCH` â©ïž â«ïž â ð« âïž ðŒ.
+
+!!! note
+ ð ð ð¢ ð· â.
+
+ , ð¥ ð ð ðš ð â¹ ð ðª ð« ð ð¢, ð ðª âïž ð· â®ïž ð ð¢ ⢠ðŠ (â®ïž ð¢ ð² âïž `None`).
+
+ ð¬ âªïžâ¡ïž ð· â®ïž ð ðŠ ð² **â¹** & ð· â®ïž â ð² **ð**, ð ðª âïž ð ð¬ [â ð·](extra-models.md){.internal-link target=_blank}.
diff --git a/docs/em/docs/tutorial/body.md b/docs/em/docs/tutorial/body.md
new file mode 100644
index 000000000..ca2f113bf
--- /dev/null
+++ b/docs/em/docs/tutorial/body.md
@@ -0,0 +1,213 @@
+# ðš ðª
+
+ðâ ð ðª ðš ð âªïžâ¡ïž ð©âð» (â¡ïž ð¬, ð¥) ð ð ïž, ð ðš â«ïž **ðš ðª**.
+
+**ðš** ðª ð ðš ð©âð» ð ð ïž. **ðš** ðª ðœ ð ð ïž ðš ð©âð».
+
+ð ð ïž ð ð§ âïž ðš **ðš** ðª. âïž ð©âð» ð« ð¯ ðª ðš **ðš** ðª ð ð°.
+
+ð£ **ðš** ðª, ð âïž Pydantic ð· â®ïž ð ð« ðïž & ð°.
+
+!!! info
+ ðš ðœ, ð ð âïž 1ïžâ£: `POST` (ð
â ), `PUT`, `DELETE` âïž `PATCH`.
+
+ ðš ðª â®ïž `GET` ðš âïž â ð ð§, ð, â«ïž ðâðŠº FastAPI, ðŽ ð¶ ð/ð âïž ðŒ.
+
+ â«ïž ð«, ð 𩺠â®ïž ðŠ ð ð ð« ðŠ 𧟠ðª ðâ âïž `GET`, & ð³ ð ðª ð« ðâðŠº â«ïž.
+
+## ð Pydantic `BaseModel`
+
+ð¥, ð ðª ð `BaseModel` âªïžâ¡ïž `pydantic`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="4"
+ {!> ../../../docs_src/body/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="2"
+ {!> ../../../docs_src/body/tutorial001_py310.py!}
+ ```
+
+## â ð ðœ ð·
+
+â€Žïž ð ð£ ð ðœ ð· ð ð ð âªïžâ¡ïž `BaseModel`.
+
+âïž ð© ð ð ð ð¢:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="7-11"
+ {!> ../../../docs_src/body/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="5-9"
+ {!> ../../../docs_src/body/tutorial001_py310.py!}
+ ```
+
+ð ðâ ð£ ð¢ ð¢, ðâ ð· ð¢ âïž ð¢ ð², â«ïž ð« â. âª, â«ïž â. âïž `None` â â«ïž ðŠ.
+
+ðŒ, ð ð· ð ð£ ð» "`object`" (âïž ð `dict`) ð:
+
+```JSON
+{
+ "name": "Foo",
+ "description": "An optional description",
+ "price": 45.2,
+ "tax": 3.5
+}
+```
+
+... `description` & `tax` ðŠ (â®ïž ð¢ ð² `None`), ð ð» "`object`" ð â:
+
+```JSON
+{
+ "name": "Foo",
+ "price": 45.2
+}
+```
+
+## ð£ â«ïž ð¢
+
+ð® â«ïž ð *â¡ ð ïž*, ð£ â«ïž ð ð ð ð£ â¡ & ð¢ ð¢:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="18"
+ {!> ../../../docs_src/body/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="16"
+ {!> ../../../docs_src/body/tutorial001_py310.py!}
+ ```
+
+...& ð£ ð® ð ð· ð â, `Item`.
+
+## ð
+
+â®ïž ð ð ð ð, **FastAPI** ð:
+
+* â ðª ðš ð».
+* ð ð ð (ð¥ ðª).
+* â ðœ.
+ * ð¥ ðœ â, â«ïž ð ðš ð & ð â, â ïž â«ïžâ ðâ & â«ïžâ â ð.
+* ð€ ð ðš ð ð¢ `item`.
+ * ð ð£ â«ïž ð¢ ð `Item`, ð ð âïž ð ðšâðš ðâðŠº (ð ïž, âïž) ð ð¢ & ð« ð.
+* ð ð» ð ð ð ð·, ð ðª âïž ð« ð ð ð ð ð¥ â«ïž â ð ð ð.
+* ð ð ð ð ð ð ð, & âïž ð§ 𧟠â.
+
+## ð§ ð©º
+
+ð» ð ð ð· ð ð ð ð ð ð, & ð ðŠ ð ð ïž ð©º:
+
+
+
+& ð âïž ð ïž ð©º ð ð *â¡ ð ïž* ð ðª ð«:
+
+
+
+## ðšâðš ðâðŠº
+
+ð ðšâðš, ð ð ð¢ ð ð ð€ ð ð & ð ïž ð (ð ð«ð ðš ð¥ ð ðš `dict` â©ïž Pydantic ð·):
+
+
+
+ð ð€ â â
â ð ð ïž:
+
+
+
+ð ð« ð€, ð ð ïž ð ð€ ð ð§.
+
+& â«ïž ð ð¯ ð§ ð, â ð ð ïž, ð â«ïž ð ð· â®ïž ð ðšâðš.
+
+ð€ ð Pydantic â«ïž ðâðŠº ð.
+
+â®ïž ðŒ â â®ïž ð ð ð.
+
+âïž ð ð ð€ ð ðšâðš ðâðŠº â®ïž ð & ð
ð ð ðšâðš:
+
+
+
+!!! tip
+ ð¥ ð âïž ð ð ðšâðš, ð ðª âïž Pydantic ð ð.
+
+ â«ïž ð ðšâðš ðâðŠº Pydantic ð·, â®ïž:
+
+ * ð-ð ïž
+ * ð â
+ * ð ïž
+ * ð
+ * ð¬
+
+## âïž ð·
+
+ð ð¢, ð ðª ð ð ð¢ ð· ð ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="21"
+ {!> ../../../docs_src/body/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="19"
+ {!> ../../../docs_src/body/tutorial002_py310.py!}
+ ```
+
+## ðš ðª â â¡ ð¢
+
+ð ðª ð£ â¡ ð¢ & ðš ðª ð ð°.
+
+**FastAPI** ð ð€ ð ð¢ ð¢ ð ð â¡ ð¢ ð **â âªïžâ¡ïž â¡**, & ð ð¢ ð¢ ð ð£ Pydantic ð· ð **â âªïžâ¡ïž ðš ðª**.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="17-18"
+ {!> ../../../docs_src/body/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="15-16"
+ {!> ../../../docs_src/body/tutorial003_py310.py!}
+ ```
+
+## ðš ðª â â¡ â ð¢ ð¢
+
+ð ðª ð£ **ðª**, **â¡** & **ð¢** ð¢, ð ð ð°.
+
+**FastAPI** ð ð€ ð ð« & â ð âªïžâ¡ïž â ð¥.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="18"
+ {!> ../../../docs_src/body/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="16"
+ {!> ../../../docs_src/body/tutorial004_py310.py!}
+ ```
+
+ð¢ ð¢ ð ð€ â©:
+
+* ð¥ ð¢ ð£ **â¡**, â«ïž ð âïž â¡ ð¢.
+* ð¥ ð¢ **â ð** (ð `int`, `float`, `str`, `bool`, âïž) â«ïž ð ð¬ **ð¢** ð¢.
+* ð¥ ð¢ ð£ ð **Pydantic ð·**, â«ïž ð ð¬ ðš **ðª**.
+
+!!! note
+ FastAPI ð ð ð ð² `q` ð« â â©ïž ð¢ ð² `= None`.
+
+ `Union` `Union[str, None]` ð« âïž FastAPI, âïž ð â ð ðšâðš ð€ ð ð ðâðŠº & ð â.
+
+## ðµ Pydantic
+
+ð¥ ð ð« ð âïž Pydantic ð·, ð ðª âïž **ðª** ð¢. ð 𩺠[ðª - ð ð¢: â ð² ðª](body-multiple-params.md#singular-values-in-body){.internal-link target=_blank}.
diff --git a/docs/em/docs/tutorial/cookie-params.md b/docs/em/docs/tutorial/cookie-params.md
new file mode 100644
index 000000000..47f4a62f5
--- /dev/null
+++ b/docs/em/docs/tutorial/cookie-params.md
@@ -0,0 +1,49 @@
+# ðª ð¢
+
+ð ðª ð¬ ðª ð¢ ð ð ð ð¬ `Query` & `Path` ð¢.
+
+## ð `Cookie`
+
+ð¥ ð `Cookie`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="3"
+ {!> ../../../docs_src/cookie_params/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/cookie_params/tutorial001_py310.py!}
+ ```
+
+## ð£ `Cookie` ð¢
+
+â€Žïž ð£ ðª ð¢ âïž ð ð â®ïž `Path` & `Query`.
+
+ð¥ ð² ð¢ ð², ð ðª ð¶ââïž ð â ð¬ âïž â ð¢:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/cookie_params/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/cookie_params/tutorial001_py310.py!}
+ ```
+
+!!! note "ð¡ â¹"
+ `Cookie` "ð" ð `Path` & `Query`. â«ïž ð âªïžâ¡ïž ð â `Param` ð.
+
+ âïž ð ð ðâ ð ð `Query`, `Path`, `Cookie` & ð âªïžâ¡ïž `fastapi`, ð ð€ ð¢ ð ðš ð ð.
+
+!!! info
+ ð£ ðª, ð ðª âïž `Cookie`, â©ïž ⪠ð¢ ð ð¬ ð¢ ð¢.
+
+## ð
+
+ð£ ðª â®ïž `Cookie`, âïž ð â â `Query` & `Path`.
diff --git a/docs/em/docs/tutorial/cors.md b/docs/em/docs/tutorial/cors.md
new file mode 100644
index 000000000..8c5e33ed7
--- /dev/null
+++ b/docs/em/docs/tutorial/cors.md
@@ -0,0 +1,84 @@
+# â (âïž-ðšð³ â¹ ð€)
+
+â âïž "âïž-ðšð³ â¹ ð€" ð â ðâ ðž ðââ ð¥ âïž ðž ð ð ð â®ïž ð©âð», & ð©âð» ð "ðšð³" ð ðž.
+
+## ðšð³
+
+ðšð³ ð ð ïž (`http`, `https`), ð (`myapp.com`, `localhost`, `localhost.tiangolo.com`), & ⎠(`80`, `443`, `8080`).
+
+, ð ð« ð ðšð³:
+
+* `http://localhost`
+* `https://localhost`
+* `http://localhost:8080`
+
+ð¥ ð« ð `localhost`, ð« âïž ð ð ïž âïž âŽ,, ð« ð "ðšð³".
+
+## ð
+
+, â¡ïž ð¬ ð âïž ðž ð ð ð¥ `http://localhost:8080`, & ð® ðž ð ð â®ïž ð©âð» ð `http://localhost` (â©ïž ð¥ ð« â âŽ, ð¥ ð ð€ ð¢ ⎠`80`).
+
+‎ïž, ð¥ ð ðš ðºðžð `OPTIONS` ðš ð©âð», & ð¥ ð©âð» ðš â ð â ð» âªïžâ¡ïž ð ð ðšð³ (`http://localhost:8080`) â€Žïž ð¥ ð â¡ïž ðž ðž ðš ð® ðš ð©âð».
+
+ð ð, ð©âð» ð âïž ð "â ðšð³".
+
+ð ðŒ, â«ïž ð âïž ð `http://localhost:8080` ðž ð· â.
+
+## ð
+
+â«ïž ðª ð£ ð `"*"` ("ð") ð¬ ð ð â.
+
+âïž ð ð ðŽ â ð¯ ð ð», ð« ð ð ð ð: ðª, â ð ð ð âïž â®ïž ðš ð€, âïž.
+
+, ð ð· â, â«ïž ð» â ð¯ â ðšð³.
+
+## âïž `CORSMiddleware`
+
+ð ðª ð â«ïž ð **FastAPI** ðž âïž `CORSMiddleware`.
+
+* ð `CORSMiddleware`.
+* â ð â ðšð³ (ð»).
+* ð® â«ïž "ð ïž" ð **FastAPI** ðž.
+
+ð ðª â ð¥ ð ð©âð» â:
+
+* ð (â ð, ðª, âïž).
+* ð¯ ðºðžð ð©âð¬ (`POST`, `PUT`) âïž ð ð« â®ïž ð `"*"`.
+* ð¯ ðºðžð ð âïž ð ð« â®ïž ð `"*"`.
+
+```Python hl_lines="2 6-11 13-19"
+{!../../../docs_src/cors/tutorial001.py!}
+```
+
+ð¢ ð¢ âïž `CORSMiddleware` ð ïž ð« ð¢, ð ð ðª ð¯ ð ïž ð¯ ðšð³, ð©âð¬, âïž ð, â ð¥ â âïž ð« âïž-ð ð.
+
+ð â ðâðŠº:
+
+* `allow_origins` - ð ðšð³ ð ð â â âïž-ðšð³ ðš. ð€¶ â. `['https://example.org', 'https://www.example.org']`. ð ðª âïž `['*']` â ð ðšð³.
+* `allow_origin_regex` - ð» ð» ð ð¡ ðšð³ ð ð â â âïž-ðšð³ ðš. â
`'https://.*\.example\.org'`.
+* `allow_methods` - ð ðºðžð ð©âð¬ ð ð â âïž-ðšð³ ðš. ð¢ `['GET']`. ð ðª âïž `['*']` â ð ð© ð©âð¬.
+* `allow_headers` - ð ðºðžð ðš ð ð ð ðâðŠº âïž-ðšð³ ðš. ð¢ `[]`. ð ðª âïž `['*']` â ð ð. `Accept`, `Accept-Language`, `Content-Language` & `Content-Type` ð ð§ â ð
â ðš.
+* `allow_credentials` - ðŠ ð ðª ð ðâðŠº âïž-ðšð³ ðš. ð¢ `False`. , `allow_origins` ð«ð â `['*']` ð â, ðšð³ ð â.
+* `expose_headers` - ðŠ ð ðš ð ð ð â â¿ ð¥. ð¢ `[]`.
+* `max_age` - â ð ð° ð¥ ð¥ ðŸ â ðš. ð¢ `600`.
+
+ð ïž ðš 2ïžâ£ ð¯ ð ðºðžð ðš...
+
+### â ð« ðš
+
+ð ð `OPTIONS` ðš â®ïž `Origin` & `Access-Control-Request-Method` ð.
+
+ð ðŒ ð ïž ð ð ðš ðš & ðš â®ïž â â ð, & ð¯ââïž `200` âïž `400` ðš ð ð¯.
+
+### ð
ðš
+
+ð ðš â®ïž `Origin` ð. ð ðŒ ð ïž ð ð¶ââïž ðš ð ð, âïž ð ð â â ð ð ðš.
+
+## ð
â¹
+
+ð â¹ ð â, â
ðŠ â ð§Ÿ.
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.middleware.cors import CORSMiddleware`.
+
+ **FastAPI** ð ð ð ïž `fastapi.middleware` ðª ð, ð©âð». âïž ð
ðª ð ïž ð ð âªïžâ¡ïž ð.
diff --git a/docs/em/docs/tutorial/debugging.md b/docs/em/docs/tutorial/debugging.md
new file mode 100644
index 000000000..c7c11b5ce
--- /dev/null
+++ b/docs/em/docs/tutorial/debugging.md
@@ -0,0 +1,112 @@
+# ð ïž
+
+ð ðª ð ð¹ ð ðšâðš, ðŒ â®ïž ð ð ð âïž ð.
+
+## ð€ `uvicorn`
+
+ð FastAPI ðž, ð & ð `uvicorn` ð:
+
+```Python hl_lines="1 15"
+{!../../../docs_src/debugging/tutorial001.py!}
+```
+
+### ð `__name__ == "__main__"`
+
+ð ð¯ `__name__ == "__main__"` âïž ð ð ð ïž ðâ ð ð ð€ â®ïž:
+
+
+
+```console
+$ python myapp.py
+```
+
+
+
+âïž ð« ð€ ðâ â1ïžâ£ ð ð â«ïž, ð:
+
+```Python
+from myapp import app
+```
+
+#### ð
â¹
+
+â¡ïž ð¬ ð ð ð `myapp.py`.
+
+ð¥ ð ð â«ïž â®ïž:
+
+
+
+```console
+$ python myapp.py
+```
+
+
+
+â€Žïž ð ð¢ `__name__` ð ð, â ð ð, ð âïž ð² ð» `"__main__"`.
+
+, ð:
+
+```Python
+ uvicorn.run(app, host="0.0.0.0", port=8000)
+```
+
+ð ð.
+
+---
+
+ð ð ð« ðš ð¥ ð ð ð ð¹ (ð).
+
+, ð¥ ð âïž â1ïžâ£ ð `importer.py` â®ïž:
+
+```Python
+from myapp import app
+
+# Some more code
+```
+
+ð ðŒ, ð§ ð¢ ð `myapp.py` ð ð« âïž ð¢ `__name__` â®ïž ð² `"__main__"`.
+
+, âž:
+
+```Python
+ uvicorn.run(app, host="0.0.0.0", port=8000)
+```
+
+ð ð« ð ïž.
+
+!!! info
+ ð
â¹, â
ð ð ð©º.
+
+## ð ð ð â®ïž ð ð¹
+
+â©ïž ð ð Uvicorn ðœ ð âªïžâ¡ïž ð ð, ð ðª ð€ ð ð ð (ð FastAPI ðž) ð âªïžâ¡ïž ð¹.
+
+---
+
+ðŒ, ð ð ð, ð ðª:
+
+* ð¶ "â¹" ð.
+* "ð® ð³...".
+* ð "ð"
+* ð ð¹ â®ïž ð "`Python: Current File (Integrated Terminal)`".
+
+â«ïž ð â€Žïž â¶ïž ðœ â®ïž ð **FastAPI** ð, âïž ð 0ïžâ£, âïž.
+
+ð¥ â â«ïž ðª ð:
+
+
+
+---
+
+ð¥ ð âïž ð, ð ðª:
+
+* ð "ð" ð£.
+* ð ð "â¹...".
+* â€Žïž ð ð£ ðŠ ð.
+* ð ð â¹ (ð ðŒ, `main.py`).
+
+â«ïž ð â€Žïž â¶ïž ðœ â®ïž ð **FastAPI** ð, âïž ð 0ïžâ£, âïž.
+
+ð¥ â â«ïž ðª ð:
+
+
diff --git a/docs/em/docs/tutorial/dependencies/classes-as-dependencies.md b/docs/em/docs/tutorial/dependencies/classes-as-dependencies.md
new file mode 100644
index 000000000..e2d2686d3
--- /dev/null
+++ b/docs/em/docs/tutorial/dependencies/classes-as-dependencies.md
@@ -0,0 +1,247 @@
+# ð ð
+
+â ð€¿ â¬ ð **ð ð** âïž, â¡ïž â» â®ïž ðŒ.
+
+## `dict` âªïžâ¡ïž â®ïž ðŒ
+
+â®ïž ðŒ, ð¥ ð¬ `dict` âªïžâ¡ïž ð ð ("â"):
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/dependencies/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+ ```
+
+âïž â€Žïž ð¥ ð€ `dict` ð¢ `commons` *â¡ ð ïž ð¢*.
+
+& ð¥ ð ð ðšâðš ðª ð« ð ð ðâðŠº (ð ð ïž) `dict`â, â©ïž ð« ðª ð« ð ð« ð & ð² ð.
+
+ð¥ ðª ð...
+
+## â«ïžâ â ð
+
+ð ð ð âïž ð ð ð£ ð¢.
+
+âïž ð ð« ðŽ ð ð£ ð (ð â«ïž ð ð² ð â ).
+
+ð â ð ð ð "ð§ð²".
+
+"**ð§ð²**" ð ð³ ð ð ðª "ð€" ð ð¢.
+
+, ð¥ ð âïž ð `something` (ð ðª _ð«_ ð¢) & ð ðª "ð€" â«ïž (ð ïž â«ïž) ð:
+
+```Python
+something()
+```
+
+âïž
+
+```Python
+something(some_argument, some_keyword_argument="foo")
+```
+
+â€Žïž â«ïž "ð§ð²".
+
+## ð ð
+
+ð 5ïžâ£ð ð ð â ð ð ð, ð âïž ð ð â.
+
+ðŒ:
+
+```Python
+class Cat:
+ def __init__(self, name: str):
+ self.name = name
+
+
+fluffy = Cat(name="Mr Fluffy")
+```
+
+ð ðŒ, `fluffy` ð ð `Cat`.
+
+& â `fluffy`, ð "ð€" `Cat`.
+
+, ð ð **ð§ð²**.
+
+‎ïž, **FastAPI**, ð ðª âïž ð ð ð.
+
+â«ïžâ FastAPI ð€ â
ð â«ïž "ð§ð²" (ð¢, ð âïž ð³ ð) & ð¢ ð¬.
+
+ð¥ ð ð¶ââïž "ð§ð²" ð **FastAPI**, â«ïž ð ð¬ ð¢ ð "ð§ð²", & ð ïž ð« ð ð ð¢ *â¡ ð ïž ð¢*. â
ð§-ð.
+
+ð â ð§ð² â®ïž ð
ââ ð¢ ð. ð â«ïž ð *â¡ ð ïž ð¢* â®ïž ð
ââ ð¢.
+
+‎ïž, ð¥ ðª ð ð "â" `common_parameters` âªïžâ¡ïž ð ð `CommonQueryParams`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="11-15"
+ {!> ../../../docs_src/dependencies/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="9-13"
+ {!> ../../../docs_src/dependencies/tutorial002_py310.py!}
+ ```
+
+ðž ð `__init__` ð©âð¬ âïž â ð ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="12"
+ {!> ../../../docs_src/dependencies/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="10"
+ {!> ../../../docs_src/dependencies/tutorial002_py310.py!}
+ ```
+
+...â«ïž âïž ð ð¢ ð â®ïž `common_parameters`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/dependencies/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="6"
+ {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+ ```
+
+ð ð¢ â«ïžâ **FastAPI** ð âïž "â" ð.
+
+ð¯ââïž ðŒ, â«ïž ð âïž:
+
+* ðŠ `q` ð¢ ð¢ ð `str`.
+* `skip` ð¢ ð¢ ð `int`, â®ïž ð¢ `0`.
+* `limit` ð¢ ð¢ ð `int`, â®ïž ð¢ `100`.
+
+ð¯ââïž ðŒ ðœ ð ð, â, ð ð ð ð, âïž.
+
+## âïž â«ïž
+
+ð ð ðª ð£ ð ð âïž ð ð.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="19"
+ {!> ../../../docs_src/dependencies/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="17"
+ {!> ../../../docs_src/dependencies/tutorial002_py310.py!}
+ ```
+
+**FastAPI** ð€ `CommonQueryParams` ð. ð â "ð" ð ð & ð ð ð¶ââïž ð¢ `commons` ð ð¢.
+
+## ð â ð `Depends`
+
+ð â ð¥ â `CommonQueryParams` ð ð ð:
+
+```Python
+commons: CommonQueryParams = Depends(CommonQueryParams)
+```
+
+ð `CommonQueryParams`,:
+
+```Python
+... = Depends(CommonQueryParams)
+```
+
+...â«ïžâ **FastAPI** ð ð€ âïž ð â«ïžâ ð.
+
+âªïžâ¡ïž â«ïž ð FastAPI ð â ð£ ð¢ & ð â«ïžâ FastAPI ð ð€ ð€.
+
+---
+
+ð ðŒ, ð¥ `CommonQueryParams`,:
+
+```Python
+commons: CommonQueryParams ...
+```
+
+...ð« âïž ð ð ð **FastAPI**. FastAPI ð ð« âïž â«ïž ðœ ð ïž, ð¬, âïž. (â«ïž âïž `= Depends(CommonQueryParams)` ð).
+
+ð ðª ð€ â:
+
+```Python
+commons = Depends(CommonQueryParams)
+```
+
+...:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="19"
+ {!> ../../../docs_src/dependencies/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="17"
+ {!> ../../../docs_src/dependencies/tutorial003_py310.py!}
+ ```
+
+âïž ð£ ð ð¡ ð ð ð ðšâðš ð ð â«ïžâ ð ð¶ââïž ð¢ `commons`, & â€Žïž â«ïž ðª â¹ ð â®ïž ð ð ïž, ð â
, âïž:
+
+
+
+## âš
+
+âïž ð ð ð ð¥ âïž ð ð ð¥, â `CommonQueryParams` ð:
+
+```Python
+commons: CommonQueryParams = Depends(CommonQueryParams)
+```
+
+**FastAPI** ð âš ð« ðŒ, ðâ ð *ð¯* ð ð **FastAPI** ð "ð€" â ð ð â«ïž.
+
+ð ð¯ ðŒ, ð ðª ð:
+
+â©ïž â:
+
+```Python
+commons: CommonQueryParams = Depends(CommonQueryParams)
+```
+
+...ð â:
+
+```Python
+commons: CommonQueryParams = Depends()
+```
+
+ð ð£ ð ð ð¢, & ð âïž `Depends()` ð® "ð¢" ð² (ð â®ïž `=`) ð ð¢ ð¢, ðµ ð ð¢ `Depends()`, â©ïž âïž â ð ð *ð* ð `Depends(CommonQueryParams)`.
+
+ð ðŒ ð â€Žïž ð ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="19"
+ {!> ../../../docs_src/dependencies/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="17"
+ {!> ../../../docs_src/dependencies/tutorial004_py310.py!}
+ ```
+
+...& **FastAPI** ð ð â«ïžâ.
+
+!!! tip
+ ð¥ ð ð ð
ðš ð ð, ð€·ââ â«ïž, ð ð« *ðª* â«ïž.
+
+ â«ïž âš. â©ïž **FastAPI** ð
ð ð€ ð ð ð ð.
diff --git a/docs/em/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md b/docs/em/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
new file mode 100644
index 000000000..4d54b91c7
--- /dev/null
+++ b/docs/em/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
@@ -0,0 +1,71 @@
+# ð â¡ ð ïž ðšâðš
+
+ðŒ ð ð« ð€ ðª ðš ð² ð ð ð *â¡ ð ïž ð¢*.
+
+âïž ð ð« ðš ð².
+
+âïž ð ðª â«ïž ð ïž/â.
+
+ð ðŒ, â©ïž ð£ *â¡ ð ïž ð¢* ð¢ â®ïž `Depends`, ð ðª ð® `list` `dependencies` *â¡ ð ïž ðšâðš*.
+
+## ð® `dependencies` *â¡ ð ïž ðšâðš*
+
+*â¡ ð ïž ðšâðš* ðš ðŠ â `dependencies`.
+
+â«ïž ð `list` `Depends()`:
+
+```Python hl_lines="17"
+{!../../../docs_src/dependencies/tutorial006.py!}
+```
+
+ð ð ð ð ïž/â ð ð ð ð. âïž ð« ð² (ð¥ ð« ðš ð) ð ð« ð¶ââïž ð *â¡ ð ïž ð¢*.
+
+!!! tip
+ ðšâðš â
â» ð¢ ð¢, & ðŠ ð« â.
+
+ âïž ð `dependencies` *â¡ ð ïž ðšâðš* ð ðª â ð ð« ð ïž âª â ðšâðš/ð â.
+
+ â«ïž ðª â¹ â ðš ð ð©âð» ð ð â» ð¢ ð ð & ðª ð â«ïž ð.
+
+!!! info
+ ð ðŒ ð¥ âïž ð ð ð `X-Key` & `X-Token`.
+
+ âïž ð° ðŒ, ðâ ð ïž ðââ, ð ð ð€ ð ð° âªïžâ¡ïž âïž ð ïž [ðââ ð (â ð)](../security/index.md){.internal-link target=_blank}.
+
+## ð â & ðš ð²
+
+ð ðª âïž ð ð *ð¢* ð âïž ð.
+
+### ð ð
+
+ð« ðª ð£ ðš ð (ð ð) âïž ð ð§-ð:
+
+```Python hl_lines="6 11"
+{!../../../docs_src/dependencies/tutorial006.py!}
+```
+
+### ð€ â
+
+ð« ð ðª `raise` â , ð ð ð:
+
+```Python hl_lines="8 13"
+{!../../../docs_src/dependencies/tutorial006.py!}
+```
+
+### ðš ð²
+
+& ð« ðª ðš ð² âïž ð«, ð² ð ð« âïž.
+
+, ð ðª ð€-âïž ð ð (ð ðš ð²) ð ⪠âïž ð± ð, & âïž ð² ð ð« âïž, ð ð ð ïž:
+
+```Python hl_lines="9 14"
+{!../../../docs_src/dependencies/tutorial006.py!}
+```
+
+## ð ðª *â¡ ð ïž*
+
+âª, ðâ ð ð â ð ðŠ ðž ([ðŠ ðž - ð ð](../../tutorial/bigger-applications.md){.internal-link target=_blank}), ð² â®ïž ð ð, ð ð ð¡ â ð£ ð `dependencies` ð¢ ðª *â¡ ð ïž*.
+
+## ð ð
+
+â ð¥ ð ð â ð® ð ð `FastAPI` ðž, ð ð« â ð *â¡ ð ïž*.
diff --git a/docs/em/docs/tutorial/dependencies/dependencies-with-yield.md b/docs/em/docs/tutorial/dependencies/dependencies-with-yield.md
new file mode 100644
index 000000000..9617667f4
--- /dev/null
+++ b/docs/em/docs/tutorial/dependencies/dependencies-with-yield.md
@@ -0,0 +1,219 @@
+# ð â®ïž ðŸ
+
+FastAPI ðâðŠº ð ð â ð â®ïž ð.
+
+ð, âïž `yield` â©ïž `return`, & â â ð â®ïž.
+
+!!! tip
+ â ð âïž `yield` 1ïžâ£ ð ð°.
+
+!!! note "ð¡ â¹"
+ ð ð¢ ð â âïž â®ïž:
+
+ * `@contextlib.contextmanager` âïž
+ * `@contextlib.asynccontextmanager`
+
+ ð â âïž **FastAPI** ð.
+
+ ð, FastAPI âïž ð 2ïžâ£ ðšâðš ð.
+
+## ðœ ð â®ïž `yield`
+
+ðŒ, ð ðª âïž ð â ðœ ð & ð â«ïž â®ïž ð.
+
+ðŽ ð â & ð `yield` ð ð ïž â ðš ðš:
+
+```Python hl_lines="2-4"
+{!../../../docs_src/dependencies/tutorial007.py!}
+```
+
+ðŸ ð² â«ïžâ ð ð *â¡ ð ïž* & ð ð:
+
+```Python hl_lines="4"
+{!../../../docs_src/dependencies/tutorial007.py!}
+```
+
+ð ð `yield` ð ð ïž â®ïž ðš âïž ð:
+
+```Python hl_lines="5-6"
+{!../../../docs_src/dependencies/tutorial007.py!}
+```
+
+!!! tip
+ ð ðª âïž `async` âïž ð ð¢.
+
+ **FastAPI** ð â¶ïžïž ð â®ïž ð , ð â®ïž ð ð.
+
+## ð â®ïž `yield` & `try`
+
+ð¥ ð âïž `try` ð« ð â®ïž `yield`, ð ð ðš ð â ð ð® ðâ âïž ð.
+
+ðŒ, ð¥ ð â ð, â1ïžâ£ ð âïž *â¡ ð ïž*, â ðœ ðµ "ðŸ" âïž â ð ð â, ð ð ðš â ð ð.
+
+, ð ðª ð ð ð¯ â ð ð â®ïž `except SomeException`.
+
+ð ð, ð ðª âïž `finally` â ð ðª ð¶ ð ïž, ð
ââ ð€ ð¥ ð€ â âïž ð«.
+
+```Python hl_lines="3 5"
+{!../../../docs_src/dependencies/tutorial007.py!}
+```
+
+## ð§-ð â®ïž `yield`
+
+ð ðª âïž ð§-ð & "ð²" ð§-ð ð ð & ð , & ð âïž ð ð« ðª âïž `yield`.
+
+**FastAPI** ð â ð ð "ðª ð" ð ð â®ïž `yield` ð â â.
+
+ðŒ, `dependency_c` ðª âïž ð ð `dependency_b`, & `dependency_b` ð `dependency_a`:
+
+```Python hl_lines="4 12 20"
+{!../../../docs_src/dependencies/tutorial008.py!}
+```
+
+& ð ð« ðª âïž `yield`.
+
+ð ðŒ `dependency_c`, ð ïž ð® ðª ð, ðª ð² âªïžâ¡ïž `dependency_b` (ð¥ ð `dep_b`) ðª.
+
+& , ð, `dependency_b` ðª ð² âªïžâ¡ïž `dependency_a` (ð¥ ð `dep_a`) ðª ð® ðª ð.
+
+```Python hl_lines="16-17 24-25"
+{!../../../docs_src/dependencies/tutorial008.py!}
+```
+
+ð ð, ð ðª âïž ð â®ïž `yield` & `return` ð.
+
+& ð ðª âïž ð ð ð ð ð ð ð â®ïž `yield`, âïž.
+
+ð ðª âïž ð ð ð ð ð ð.
+
+**FastAPI** ð â ð ð ð â â.
+
+!!! note "ð¡ â¹"
+ ð ð· ð ð ð ðšâðŒ.
+
+ **FastAPI** âïž ð« ð ð ð.
+
+## ð â®ïž `yield` & `HTTPException`
+
+ð ð ð ð ðª âïž ð â®ïž `yield` & âïž `try` ð« ð â â .
+
+â«ïž 5ïžâ£ð ð ð€ `HTTPException` âïž ð ðª ð, â®ïž `yield`. âïž **â«ïž ð ð« ð·**.
+
+ðª ð ð â®ïž `yield` ð ïž *â®ïž* ðš ðš, [â ðâðŠº](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank} ð âïž âª ð. ð€ ð³ ðœ â ð® ð ð ðª ð (â®ïž `yield`).
+
+, ð¥ ð ð€ `HTTPException` â®ïž `yield`, ð¢ (âïž ð ð) â ðâðŠº ð â `HTTPException`â & ðš ðºðžð 4ïžâ£0ïžâ£0ïžâ£ ðš ð ð« ð€ â ð â ð«ð.
+
+ð â«ïžâ â ð³ â ð (â
ðœ ð), ðŒ, âïž ð¥ ð.
+
+ð¥ ð ð *â®ïž* ðš âïž ðš. ð€ ð
ââ ð ð€ `HTTPException` â©ïž ð€ ð« ð ð ðš ð *⪠ðš*.
+
+âïž ð¥ ð¥ ð â ðœ â, ð ð ðª ðŸ âïž ð¬ ð ð ð â®ïž `yield`, & ð² ð¹ â âïž ð â«ïž ð° ðµ âïž.
+
+ð¥ ð âïž ð ð ð ð ðª ð€ â , ð ð/"ð" ð & ð® `try` ð« ð ð ð.
+
+ð¥ ð âïž ð â ð ð ð ð ðµ *â* ð¬ ðš & ð² â ðš, ð² ðââ `HTTPException`, â [ð â ðâðŠº](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank}.
+
+!!! tip
+ ð ðª ð€ â ð `HTTPException` *â* `yield`. âïž ð« â®ïž.
+
+ð ð ïž ð
âïž ð ð ð ð. ð° ð§ âªïžâ¡ïž ð ð. & ð ð 1ïžâ£ ð ð âïž ð ïž ð.
+
+```mermaid
+sequenceDiagram
+
+participant client as Client
+participant handler as Exception handler
+participant dep as Dep with yield
+participant operation as Path Operation
+participant tasks as Background tasks
+
+ Note over client,tasks: Can raise exception for dependency, handled after response is sent
+ Note over client,operation: Can raise HTTPException and can change the response
+ client ->> dep: Start request
+ Note over dep: Run code up to yield
+ opt raise
+ dep -->> handler: Raise HTTPException
+ handler -->> client: HTTP error response
+ dep -->> dep: Raise other exception
+ end
+ dep ->> operation: Run dependency, e.g. DB session
+ opt raise
+ operation -->> dep: Raise HTTPException
+ dep -->> handler: Auto forward exception
+ handler -->> client: HTTP error response
+ operation -->> dep: Raise other exception
+ dep -->> handler: Auto forward exception
+ end
+ operation ->> client: Return response to client
+ Note over client,operation: Response is already sent, can't change it anymore
+ opt Tasks
+ operation -->> tasks: Send background tasks
+ end
+ opt Raise other exception
+ tasks -->> dep: Raise other exception
+ end
+ Note over dep: After yield
+ opt Handle other exception
+ dep -->> dep: Handle exception, can't change response. E.g. close DB session.
+ end
+```
+
+!!! info
+ ðŽ **1ïžâ£ ðš** ð ðš ð©âð». â«ïž ðª 1ïžâ£ â ðš âïž â«ïž ð ðš âªïžâ¡ïž *â¡ ð ïž*.
+
+ â®ïž 1ïžâ£ ð ðš ðš, ð
ââ ð ðš ðª ðš.
+
+!!! tip
+ ð ð ðŠ `HTTPException`, âïž ð ðª ð€ ð ð â â ð â [ð â ðâðŠº](../handling-errors.md#install-custom-exception-handlers){.internal-link target=_blank}.
+
+ ð¥ ð ð€ ð â , â«ïž ð ð¶ââïž ð â®ïž ðŸ, ð `HTTPException`, & â€Žïž **ð** â ðâðŠº. ð¥ ð€ ð
ââ â ðâðŠº ð â , â«ïž ð â€Žïž ðµ ð¢ ð `ServerErrorMiddleware`, ð¬ 5ïžâ£0ïžâ£0ïžâ£ ðºðžð ð ð, â¡ïž ð©âð» ð ð ð€ â ðœ.
+
+## ð ðšâðŒ
+
+### â«ïžâ "ð ðšâðŒ"
+
+"ð ðšâðŒ" ð ð ð ð ð ð ðª âïž `with` ð.
+
+ðŒ, ð ðª âïž `with` â ð:
+
+```Python
+with open("./somefile.txt") as f:
+ contents = f.read()
+ print(contents)
+```
+
+ð, `open("./somefile.txt")` â ð ð ð€ "ð ðšâðŒ".
+
+ðâ `with` ð« ð, â«ïž â ð ð ð, ð¥ ð€ â .
+
+ðâ ð â ð â®ïž `yield`, **FastAPI** ð ð ð â«ïž ð ðšâðŒ, & ð â«ïž â®ïž ð ð ð§°.
+
+### âïž ð ðšâðŒ ð â®ïž `yield`
+
+!!! warning
+ ð, ð
âïž ð, "ð§" ð.
+
+ ð¥ ð â¶ïž â®ïž **FastAPI** ð ðª ð ð¶ â«ïž ð.
+
+ð, ð ðª â ð ðšâðŒ ð ð â®ïž 2ïžâ£ ð©âð¬: `__enter__()` & `__exit__()`.
+
+ð ðª âïž ð« ð **FastAPI** ð â®ïž `yield` âïž
+`with` âïž `async with` ð ð ð ð¢:
+
+```Python hl_lines="1-9 13"
+{!../../../docs_src/dependencies/tutorial010.py!}
+```
+
+!!! tip
+ â1ïžâ£ ð â ð ðšâðŒ â®ïž:
+
+ * `@contextlib.contextmanager` âïž
+ * `@contextlib.asynccontextmanager`
+
+ âïž ð« ð ð¢ â®ïž ð `yield`.
+
+ ð â«ïžâ **FastAPI** âïž ð ð â®ïž `yield`.
+
+ âïž ð ð« âïž âïž ðšâðš FastAPI ð (& ð ð«ð ð«).
+
+ FastAPI ð â«ïž ð ð.
diff --git a/docs/em/docs/tutorial/dependencies/global-dependencies.md b/docs/em/docs/tutorial/dependencies/global-dependencies.md
new file mode 100644
index 000000000..81759d0e8
--- /dev/null
+++ b/docs/em/docs/tutorial/dependencies/global-dependencies.md
@@ -0,0 +1,17 @@
+# ð ð
+
+ð ðž ð ðª ð ð® ð ð ðž.
+
+ð ð ð ðª [ð® `dependencies` *â¡ ð ïž ðšâðš*](dependencies-in-path-operation-decorators.md){.internal-link target=_blank}, ð ðª ð® ð« `FastAPI` ðž.
+
+ð ðŒ, ð« ð â ð *â¡ ð ïž* ðž:
+
+```Python hl_lines="15"
+{!../../../docs_src/dependencies/tutorial012.py!}
+```
+
+& ð ð ð ð [â `dependencies` *â¡ ð ïž ðšâðš*](dependencies-in-path-operation-decorators.md){.internal-link target=_blank} â, âïž ð ðŒ, ð *â¡ ð ïž* ð±.
+
+## ð ðª *â¡ ð ïž*
+
+âª, ðâ ð ð â ð ðŠ ðž ([ðŠ ðž - ð ð](../../tutorial/bigger-applications.md){.internal-link target=_blank}), ð² â®ïž ð ð, ð ð ð¡ â ð£ ð `dependencies` ð¢ ðª *â¡ ð ïž*.
diff --git a/docs/em/docs/tutorial/dependencies/index.md b/docs/em/docs/tutorial/dependencies/index.md
new file mode 100644
index 000000000..f1c28c573
--- /dev/null
+++ b/docs/em/docs/tutorial/dependencies/index.md
@@ -0,0 +1,233 @@
+# ð - ð¥ ð
+
+**FastAPI** âïž ð¶ ðïž âïž ðïž **ð ð** âïž.
+
+â«ïž ð ð¶ ð
âïž, & â â«ïž ð¶ â© ð ð©âð» ð ïž ð ðŠ² â®ïž **FastAPI**.
+
+## â«ïžâ "ð ð"
+
+**"ð ð"** â, ð, ð ð€ ð ð ð (ð ðŒ, ð *â¡ ð ïž ð¢*) ð£ ð ð â«ïž ð ð· & âïž: "ð".
+
+& ‎ïž, ð âïž (ð ðŒ **FastAPI**) ð â ð
ðš â«ïžâ ðª ð ð ð â®ïž ð ðª ð ("ð" ð).
+
+ð ð¶ â ðâ ð ðª:
+
+* âïž ð° â (ð ð â ð & ð).
+* ð° ðœ ð.
+* ð ïž ðââ, ð€, ð ð, âïž.
+* & ð ð ð...
+
+ð ð«, ⪠ð ð ð.
+
+## ð¥ ð
+
+â¡ïž ð ð¶ ð
ðŒ. â«ïž ð ð
ð â«ïž ð« ð¶ â , ð.
+
+âïž ð ð ð¥ ðª ð¯ ð â **ð ð** âïž ð·.
+
+### â ð, âïž "â"
+
+â¡ïž ð¥ ð¯ ð ð.
+
+â«ïž ð¢ ð ðª â ð ð ð¢ ð *â¡ ð ïž ð¢* ðª â:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="8-11"
+ {!> ../../../docs_src/dependencies/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="6-7"
+ {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+ ```
+
+ð â«ïž.
+
+**2ïžâ£ âž**.
+
+& â«ïž âïž ð ð & ð ð ð ð *â¡ ð ïž ð¢* âïž.
+
+ð ðª ð â«ïž *â¡ ð ïž ð¢* ðµ "ðšâðš" (ðµ `@app.get("/some-path")`).
+
+& â«ïž ðª ðš ð³ ð ð.
+
+ð ðŒ, ð ð â:
+
+* ðŠ ð¢ ð¢ `q` ð `str`.
+* ðŠ ð¢ ð¢ `skip` ð `int`, & ð¢ `0`.
+* ðŠ ð¢ ð¢ `limit` ð `int`, & ð¢ `100`.
+
+& â€Žïž â«ïž ðš `dict` â ð ð².
+
+### ð `Depends`
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="3"
+ {!> ../../../docs_src/dependencies/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+ ```
+
+### ð£ ð, "âïž"
+
+ð ð ð âïž `Body`, `Query`, âïž. â®ïž ð *â¡ ð ïž ð¢* ð¢, âïž `Depends` â®ïž ð ð¢:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="15 20"
+ {!> ../../../docs_src/dependencies/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="11 16"
+ {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+ ```
+
+ð ð âïž `Depends` ð¢ ð ð¢ ð ð ð âïž `Body`, `Query`, âïž, `Depends` ð· ð ð.
+
+ð ðŽ ð€ `Depends` ð ð¢.
+
+ð ð¢ ð ð³ ð ð¢.
+
+& ð ð¢ â ð¢ ð ð ð *â¡ ð ïž ð¢* .
+
+!!! tip
+ ð ð ð â«ïžâ ð "ð", âïž âªïžâ¡ïž ð¢, ðª âïž ð â ð.
+
+ðâ ð ðš ð¬, **FastAPI** ð â ð
:
+
+* ð€ ð ð ("â") ð¢ â®ïž â ð¢.
+* ð€ ð âªïžâ¡ïž ð ð¢.
+* ð ïž ð ð ð¢ ð *â¡ ð ïž ð¢*.
+
+```mermaid
+graph TB
+
+common_parameters(["common_parameters"])
+read_items["/items/"]
+read_users["/users/"]
+
+common_parameters --> read_items
+common_parameters --> read_users
+```
+
+ð ð ð â ð ð ð & **FastAPI** â ð
ð€ â«ïž ð *â¡ ð ïž*.
+
+!!! check
+ ð ð ð ð« âïž â ð ð & ð¶ââïž â«ïž ð± **FastAPI** "®" â«ïž âïž ð³ ð.
+
+ ð ð¶ââïž â«ïž `Depends` & **FastAPI** ð â ð.
+
+## `async` âïž ð« `async`
+
+ð ð ð€ **FastAPI** (ð ð *â¡ ð ïž ð¢*), ð ð« â ⪠ð¬ ð ð¢.
+
+ð ðª âïž `async def` âïž ð `def`.
+
+& ð ðª ð£ ð â®ïž `async def` ð ð `def` *â¡ ð ïž ð¢*, âïž `def` ð ð `async def` *â¡ ð ïž ð¢*, âïž.
+
+â«ïž ð« ð€. **FastAPI** ð ð â«ïžâ.
+
+!!! note
+ ð¥ ð ð« ð, â
[ð: *"ð â" *](../../async.md){.internal-link target=_blank} ð ð `async` & `await` ð©º.
+
+## ð ïž â®ïž ð
+
+ð ðš ð, ð¬ & ð ð ð (& ð§-ð) ð ð ïž ð ð ð.
+
+, ð 𩺠ð âïž ð â¹ âªïžâ¡ïž ð« ð ðââïž:
+
+
+
+## ð
âïž
+
+ð¥ ð ð â«ïž, *â¡ ð ïž ð¢* ð£ âïž ðâ *â¡* & *ð ïž* ð, & â€Žïž **FastAPI** â ð
ð€ ð¢ â®ïž â ð¢, â ð âªïžâ¡ïž ðš.
+
+ð€, ð (âïž ð) ðž ð ïž ð· ð ð ð.
+
+ð ð
ð€ ð ð¢ ð. ð« ð€ ð ð ïž (ð ðŒ, **FastAPI**).
+
+â®ïž ð ð âïž, ð ðª ð¬ **FastAPI** ð ð *â¡ ð ïž ð¢* "ðª" ð ð³ ð ð ð ð ïž â ð *â¡ ð ïž ð¢*, & **FastAPI** ð â ð
ð ïž â«ïž & "ð" ð.
+
+ð â â ð ð ð "ð ð":
+
+* â¹
+* ðâðŠº
+* ðâðŠº
+* ð
+* ðŠ²
+
+## **FastAPI** ð-ð
+
+ð ïž & "ð-"â ðª ð âïž **ð ð** âïž. âïž ð, ð€ ð€ **ð
ââ ðª â "ð-ð"**, âïž ð â«ïž ðª ð£ ⟠ð¢ ð ïž & ð ð â¶ïžïž ðª ð *â¡ ð ïž ð¢*.
+
+& ð ðª â ð¶ ð
& ðïž ð ð â ð ð ð ðŠ ð ðª, & ð ïž ð« â®ïž ð ð ïž ð¢ ð©ââ€âðš âž ð, *ð*.
+
+ð ð ð ðŒ ð â ð, ð ð & â ðœ, ðââ, âïž.
+
+## **FastAPI** ð
+
+ðŠ ð ð âïž â **FastAPI** ð â®ïž:
+
+* ð ð ðœ
+* â ðœ
+* ð¢ ðŠ
+* ð¢ ð
+* ð€ & â âïž
+* ð ïž âïž â âïž
+* ðš ðœ ð âïž
+* âïž.
+
+## ð
& ðïž
+
+ð ð ð ð âïž ð¶ ð
ð¬ & âïž, â«ïž ð¶ ðïž.
+
+ð ðª ð¬ ð ð ð ðª ð¬ ð ð«.
+
+ð, ð ð² ð ð, & **ð ð** âïž â ð
ð¬ ð ð ð ð (& ð« ð§-ð) & ð (ð) ð ð ð.
+
+ðŒ, â¡ïž ð¬ ð âïž 4ïžâ£ ð ïž ð (*â¡ ð ïž*):
+
+* `/items/public/`
+* `/items/private/`
+* `/users/{user_id}/activate`
+* `/items/pro/`
+
+â€Žïž ð ðª ð® ð â ð ð ð« â®ïž ð & ð§-ð:
+
+```mermaid
+graph TB
+
+current_user(["current_user"])
+active_user(["active_user"])
+admin_user(["admin_user"])
+paying_user(["paying_user"])
+
+public["/items/public/"]
+private["/items/private/"]
+activate_user["/users/{user_id}/activate"]
+pro_items["/items/pro/"]
+
+current_user --> active_user
+active_user --> admin_user
+active_user --> paying_user
+
+current_user --> public
+active_user --> private
+admin_user --> activate_user
+paying_user --> pro_items
+```
+
+## ð ïž â®ïž **ð**
+
+ð ð« ð, ⪠ð£ ð« ð, ð® ð¢, ð¬, âïž. ð *â¡ ð ïž*.
+
+**FastAPI** ð â ð
ð® â«ïž ð ð ð, ð â«ïž ðŠ ð 𧟠âïž.
diff --git a/docs/em/docs/tutorial/dependencies/sub-dependencies.md b/docs/em/docs/tutorial/dependencies/sub-dependencies.md
new file mode 100644
index 000000000..454ff5129
--- /dev/null
+++ b/docs/em/docs/tutorial/dependencies/sub-dependencies.md
@@ -0,0 +1,110 @@
+# ð§-ð
+
+ð ðª â ð ð âïž **ð§-ð**.
+
+ð« ðª **â¬** ð ðª ð«.
+
+**FastAPI** ð â ð
ð¬ ð«.
+
+## ð¥ ð "â"
+
+ð ðª â ð¥ ð ("â") ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="8-9"
+ {!> ../../../docs_src/dependencies/tutorial005.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="6-7"
+ {!> ../../../docs_src/dependencies/tutorial005_py310.py!}
+ ```
+
+â«ïž ð£ ðŠ ð¢ ð¢ `q` `str`, & â€Žïž â«ïž ðš â«ïž.
+
+ð ð
(ð« ð¶ â ), âïž ð â¹ ð¥ ð¯ ð â ð§-ð ð·.
+
+## ð¥ ð, "â" & "âïž"
+
+â€Žïž ð ðª â â1ïžâ£ ð ð¢ ("â") ð ð ð° ð£ ð ð® ð (â«ïž "âïž" ðââïž):
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="13"
+ {!> ../../../docs_src/dependencies/tutorial005.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="11"
+ {!> ../../../docs_src/dependencies/tutorial005_py310.py!}
+ ```
+
+â¡ïž ð¯ ð ð¢ ð£:
+
+* âïž ð ð¢ ð ("â") â«ïž, â«ïž ð£ â1ïžâ£ ð (â«ïž "ðª" ð ð³ ð).
+ * â«ïž ðª ð `query_extractor`, & ð ïž ð² ðš â«ïž ð¢ `q`.
+* â«ïž ð£ ðŠ `last_query` ðª, `str`.
+ * ð¥ ð©âð» ð« ð ð ð¢ `q`, ð¥ âïž ð ð¢ âïž, â ð¥ ð ðª â.
+
+## âïž ð
+
+â€Žïž ð¥ ðª âïž ð â®ïž:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="22"
+ {!> ../../../docs_src/dependencies/tutorial005.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="19"
+ {!> ../../../docs_src/dependencies/tutorial005_py310.py!}
+ ```
+
+!!! info
+ ð ð ð¥ ðŽ ð£ 1ïžâ£ ð *â¡ ð ïž ð¢*, `query_or_cookie_extractor`.
+
+ âïž **FastAPI** ð ð ð â«ïž âïž â `query_extractor` ð¥, ð¶ââïž ð ð `query_or_cookie_extractor` ⪠ð€ â«ïž.
+
+```mermaid
+graph TB
+
+query_extractor(["query_extractor"])
+query_or_cookie_extractor(["query_or_cookie_extractor"])
+
+read_query["/items/"]
+
+query_extractor --> query_or_cookie_extractor --> read_query
+```
+
+## âïž ð ð ð ð°
+
+ð¥ 1ïžâ£ ð ð ð£ ð ð° ð *â¡ ð ïž*, ðŒ, ð ð âïž â ð§-ð, **FastAPI** ð ð ð€ ð ð§-ð ðŽ ð ð ðš.
+
+& â«ïž ð ð ðš ð² "ðŸ" & ð¶ââïž â«ïž ð "âïž" ð ðª â«ïž ð ð¯ ðš, â©ïž ð€ ð ð ð° ð ðš.
+
+ð§ ð ðâ ð ð ð ðª ð ð€ ð ð (ð² ð ð°) ð ðš â©ïž âïž "ðŸ" ð², ð ðª â ð¢ `use_cache=False` ðâ âïž `Depends`:
+
+```Python hl_lines="1"
+async def needy_dependency(fresh_value: str = Depends(get_value, use_cache=False)):
+ return {"fresh_value": fresh_value}
+```
+
+## ð
+
+âïž âªïžâ¡ïž ð ð ð€ âïž ð¥, **ð ð** âïž ð
.
+
+ð¢ ð ð ð *â¡ ð ïž ð¢*.
+
+âïž, â«ïž ð¶ ðïž, & â ð ð£ ð² ð ðŠ ð "ð" (ð²).
+
+!!! tip
+ ð ð ðª ð« ð â â®ïž ð« ð
ðŒ.
+
+ âïž ð ð ð â â â«ïž ð ð **ðââ**.
+
+ & ð ð ð ðž ð â«ïž ð ð ð.
diff --git a/docs/em/docs/tutorial/encoder.md b/docs/em/docs/tutorial/encoder.md
new file mode 100644
index 000000000..75ca3824d
--- /dev/null
+++ b/docs/em/docs/tutorial/encoder.md
@@ -0,0 +1,42 @@
+# ð» ð ð¢
+
+ð€ ðŒ ðâ ð 5ïžâ£ð ðª ð ðœ ð (ð Pydantic ð·) ð³ ð â®ïž ð» (ð `dict`, `list`, âïž).
+
+ðŒ, ð¥ ð ðª ðª â«ïž ðœ.
+
+ð, **FastAPI** ð `jsonable_encoder()` ð¢.
+
+## âïž `jsonable_encoder`
+
+â¡ïž ð ð ð âïž ðœ `fake_db` ð ðŽ ðš ð» ð ðœ.
+
+ðŒ, â«ïž ð« ðš `datetime` ð, ð ð« ð â®ïž ð».
+
+, `datetime` ð ð âïž ð `str` â ðœ ðŸ ð.
+
+ð ð, ð ðœ ð«ð ðš Pydantic ð· (ð â®ïž ð¢), ðŽ `dict`.
+
+ð ðª âïž `jsonable_encoder` ð.
+
+â«ïž ðš ð, ð Pydantic ð·, & ðš ð» ð â¬:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="5 22"
+ {!> ../../../docs_src/encoder/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="4 21"
+ {!> ../../../docs_src/encoder/tutorial001_py310.py!}
+ ```
+
+ð ðŒ, â«ïž ð ð Pydantic ð· `dict`, & `datetime` `str`.
+
+ð ð€ â«ïž ð³ ð ðª ð â®ïž ð ð© `json.dumps()`.
+
+â«ïž ð« ðš â `str` â ðœ ð» ð (ð»). â«ïž ðš ð ð© ðœ ð (â
`dict`) â®ïž ð² & ð§-ð² ð ð ð â®ïž ð».
+
+!!! note
+ `jsonable_encoder` ð€ âïž **FastAPI** ð ð ðœ. âïž â«ïž â ð ð ð.
diff --git a/docs/em/docs/tutorial/extra-data-types.md b/docs/em/docs/tutorial/extra-data-types.md
new file mode 100644
index 000000000..dfdf6141b
--- /dev/null
+++ b/docs/em/docs/tutorial/extra-data-types.md
@@ -0,0 +1,82 @@
+# â ðœ ð
+
+ð ð, ð âïž âïž â ð ð, ð:
+
+* `int`
+* `float`
+* `str`
+* `bool`
+
+âïž ð ðª âïž ð
ð ð ð.
+
+& ð ð âïž ð â ð ð ð:
+
+* ð ðšâðš ðâðŠº.
+* ðœ ð ïž âªïžâ¡ïž ðš ðš.
+* ðœ ð ïž ðš ðœ.
+* ðœ ð¬.
+* ð§ â & ð§Ÿ.
+
+## ð ðœ ð
+
+ð¥ ð ð ð ð ðª âïž:
+
+* `UUID`:
+ * ð© "â ð ð", â ð ð ðœ & âïž.
+ * ðš & ðš ð ðš `str`.
+* `datetime.datetime`:
+ * ð `datetime.datetime`.
+ * ðš & ðš ð ðš `str` ðŸ 8ïžâ£6ïžâ£0ïžâ£1ïžâ£ ð, ð: `2008-09-15T15:53:00+05:00`.
+* `datetime.date`:
+ * ð `datetime.date`.
+ * ðš & ðš ð ðš `str` ðŸ 8ïžâ£6ïžâ£0ïžâ£1ïžâ£ ð, ð: `2008-09-15`.
+* `datetime.time`:
+ * ð `datetime.time`.
+ * ðš & ðš ð ðš `str` ðŸ 8ïžâ£6ïžâ£0ïžâ£1ïžâ£ ð, ð: `14:23:55.003`.
+* `datetime.timedelta`:
+ * ð `datetime.timedelta`.
+ * ðš & ðš ð ðš `float` ð ð¥.
+ * Pydantic â ðŠ â«ïž "ðŸ 8ïžâ£6ïžâ£0ïžâ£1ïžâ£ ð° â ð¢", ð 𩺠ð
â¹.
+* `frozenset`:
+ * ðš & ðš, ð¥ ð `set`:
+ * ðš, ð ð â, â â & ð â«ïž `set`.
+ * ðš, `set` ð ð `list`.
+ * ð ð ð â ð `set` ð² ð (âïž ð» ð `uniqueItems`).
+* `bytes`:
+ * ð© ð `bytes`.
+ * ðš & ðš ð ð¥ `str`.
+ * ð ð ð â ð â«ïž `str` â®ïž `binary` "ð".
+* `Decimal`:
+ * ð© ð `Decimal`.
+ * ðš & ðš, ðµ ð `float`.
+* ð ðª â
ð â Pydantic ð ð ð¥: Pydantic ð ð.
+
+## ðŒ
+
+ð¥ ðŒ *â¡ ð ïž* â®ïž ð¢ âïž ð ð.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="1 3 12-16"
+ {!> ../../../docs_src/extra_data_types/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1 2 11-15"
+ {!> ../../../docs_src/extra_data_types/tutorial001_py310.py!}
+ ```
+
+ð ð ð¢ ð ð¢ âïž ð« ð ðœ ð, & ð ðª, ðŒ, ð ð ð
ð, ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="18-19"
+ {!> ../../../docs_src/extra_data_types/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="17-18"
+ {!> ../../../docs_src/extra_data_types/tutorial001_py310.py!}
+ ```
diff --git a/docs/em/docs/tutorial/extra-models.md b/docs/em/docs/tutorial/extra-models.md
new file mode 100644
index 000000000..06c36285d
--- /dev/null
+++ b/docs/em/docs/tutorial/extra-models.md
@@ -0,0 +1,252 @@
+# â ð·
+
+â¶ïž â®ïž â®ïž ðŒ, â«ïž ð â âïž ð
ð 1ïžâ£ ð ð·.
+
+ð âŽïž ðŒ ð©âð» ð·, â©ïž:
+
+* **ð¢ ð·** ðª ðª âïž ð.
+* **ð¢ ð·** ð ð« âïž ð.
+* **ðœ ð·** ð ð² ðª âïž #ïžâ£ ð.
+
+!!! danger
+ ð
ðª ð©âð» ð¢ ð. ð§ ðª "ð #ïžâ£" ð ð ðª â€Žïž â.
+
+ ð¥ ð ð« ð, ð ð ð¡ â«ïžâ "ð#ïžâ£" [ðââ ð](security/simple-oauth2.md#password-hashing){.internal-link target=_blank}.
+
+## ð ð·
+
+ð¥ ð¢ ð â ð· ðª ð ð â®ïž ð« ð ð & ð¥ ðâ ð« âïž:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9 11 16 22 24 29-30 33-35 40-41"
+ {!> ../../../docs_src/extra_models/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7 9 14 20 22 27-28 31-33 38-39"
+ {!> ../../../docs_src/extra_models/tutorial001_py310.py!}
+ ```
+
+### ð `**user_in.dict()`
+
+#### Pydantic `.dict()`
+
+`user_in` Pydantic ð· ð `UserIn`.
+
+Pydantic ð· âïž `.dict()` ð©âð¬ ð ðš `dict` â®ïž ð· ðœ.
+
+, ð¥ ð¥ â Pydantic ð `user_in` ð:
+
+```Python
+user_in = UserIn(username="john", password="secret", email="john.doe@example.com")
+```
+
+& â€Žïž ð¥ ð€:
+
+```Python
+user_dict = user_in.dict()
+```
+
+ð¥ ð âïž `dict` â®ïž ðœ ð¢ `user_dict` (â«ïž `dict` â©ïž Pydantic ð· ð).
+
+& ð¥ ð¥ ð€:
+
+```Python
+print(user_dict)
+```
+
+ð¥ ð ð€ ð `dict` â®ïž:
+
+```Python
+{
+ 'username': 'john',
+ 'password': 'secret',
+ 'email': 'john.doe@example.com',
+ 'full_name': None,
+}
+```
+
+#### ð `dict`
+
+ð¥ ð¥ â `dict` ð `user_dict` & ð¶ââïž â«ïž ð¢ (âïž ð) â®ïž `**user_dict`, ð ð "ð" â«ïž. â«ïž ð ð¶ââïž ð & ð² `user_dict` ð ð-ð² â.
+
+, â¶ïž â®ïž `user_dict` âªïžâ¡ïž ð, â:
+
+```Python
+UserInDB(**user_dict)
+```
+
+ð ð ð³ ð:
+
+```Python
+UserInDB(
+ username="john",
+ password="secret",
+ email="john.doe@example.com",
+ full_name=None,
+)
+```
+
+âïž ð
â«ïžâ, âïž `user_dict` ð, â®ïž â«ïžâ ð â«ïž ðª âïž ð®:
+
+```Python
+UserInDB(
+ username = user_dict["username"],
+ password = user_dict["password"],
+ email = user_dict["email"],
+ full_name = user_dict["full_name"],
+)
+```
+
+#### Pydantic ð· âªïžâ¡ïž ð â1ïžâ£
+
+ðŒ ð ð¥ ð€ `user_dict` âªïžâ¡ïž `user_in.dict()`, ð ð:
+
+```Python
+user_dict = user_in.dict()
+UserInDB(**user_dict)
+```
+
+ð ð:
+
+```Python
+UserInDB(**user_in.dict())
+```
+
+...â©ïž `user_in.dict()` `dict`, & â€Žïž ð¥ â ð "ð" â«ïž ð¶ââïž â«ïž `UserInDB` ð â®ïž `**`.
+
+, ð¥ ð€ Pydantic ð· âªïžâ¡ïž ðœ â1ïžâ£ Pydantic ð·.
+
+#### ð `dict` & â ðšð»
+
+& â€Žïž â â ðšð» â `hashed_password=hashed_password`, ð:
+
+```Python
+UserInDB(**user_in.dict(), hashed_password=hashed_password)
+```
+
+...ð ð ðââ ð:
+
+```Python
+UserInDB(
+ username = user_dict["username"],
+ password = user_dict["password"],
+ email = user_dict["email"],
+ full_name = user_dict["full_name"],
+ hashed_password = hashed_password,
+)
+```
+
+!!! warning
+ ð ð ð¢ ð€ ðª ð§ ðœ, âïž ð« âïž ð« ð ð ð° ðââ.
+
+## ð â
+
+ð ð â 1ïžâ£ ð ð **FastAPI**.
+
+ð â ð ð€ ð, ðââ â, ð ð â (ðâ ð â¹ 1ïžâ£ ð¥ âïž ð« ð), âïž.
+
+& ð ð· ð ð€ ð ðœ & â ð¢ ð & ð.
+
+ð¥ ðª ð».
+
+ð¥ ðª ð£ `UserBase` ð· ð ðŠ 𧢠ð ð ð·. & â€Žïž ð¥ ðª â ð¿ ð ð· ð ð ð® ð¢ (ð ð, ð¬, âïž).
+
+ð ðœ ð ïž, ð¬, ð§Ÿ, âïž. ð ð· ð.
+
+ð ð, ð¥ ðª ð£ ðº ð ð· (â®ïž ð¢ `password`, â®ïž `hashed_password` & ðµ ð):
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9 15-16 19-20 23-24"
+ {!> ../../../docs_src/extra_models/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7 13-14 17-18 21-22"
+ {!> ../../../docs_src/extra_models/tutorial002_py310.py!}
+ ```
+
+## `Union` âïž `anyOf`
+
+ð ðª ð£ ðš `Union` 2ïžâ£ ð, ð â, ð ðš ð ð 2ïžâ£.
+
+â«ïž ð ð¬ ð â®ïž `anyOf`.
+
+ð, âïž ð© ð ð ð `typing.Union`:
+
+!!! note
+ ðâ â `Union`, ð ð ð¯ ð ð¥, â© ð ð¯ ð. ðŒ ð, ð ð¯ `PlaneItem` ð â `CarItem` `Union[PlaneItem, CarItem]`.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="1 14-15 18-20 33"
+ {!> ../../../docs_src/extra_models/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1 14-15 18-20 33"
+ {!> ../../../docs_src/extra_models/tutorial003_py310.py!}
+ ```
+
+### `Union` ð 3ïžâ£.1ïžâ£0ïžâ£
+
+ð ðŒ ð¥ ð¶ââïž `Union[PlaneItem, CarItem]` ð² â `response_model`.
+
+â©ïž ð¥ ð¶ââïž â«ïž **ð² â** â©ïž ð® â«ïž **ð â**, ð¥ âïž âïž `Union` ð 3ïžâ£.1ïžâ£0ïžâ£.
+
+ð¥ â«ïž ð â ð¥ ðª âïž âïž âž âž,:
+
+```Python
+some_variable: PlaneItem | CarItem
+```
+
+âïž ð¥ ð¥ ð® ð `response_model=PlaneItem | CarItem` ð¥ ð ð€ â, â©ïž ð ð ð ð **â ð ïž** ð `PlaneItem` & `CarItem` â©ïž ð¬ ð ð â.
+
+## ð ð·
+
+ð ð, ð ðª ð£ ðš ð ð.
+
+ð, âïž ð© ð `typing.List` (âïž `list` ð 3ïžâ£.9ïžâ£ & ð):
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="1 20"
+ {!> ../../../docs_src/extra_models/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="18"
+ {!> ../../../docs_src/extra_models/tutorial004_py39.py!}
+ ```
+
+## ðš â®ïž â `dict`
+
+ð ðª ð£ ðš âïž â
â `dict`, ð£ ð ð & ð², ðµ âïž Pydantic ð·.
+
+ð â ð¥ ð ð« ð â ð/ð¢ ð (ð ð ðª Pydantic ð·) âª.
+
+ð ðŒ, ð ðª âïž `typing.Dict` (âïž `dict` ð 3ïžâ£.9ïžâ£ & ð):
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="1 8"
+ {!> ../../../docs_src/extra_models/tutorial005.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="6"
+ {!> ../../../docs_src/extra_models/tutorial005_py39.py!}
+ ```
+
+## ð
+
+âïž ð Pydantic ð· & ð â¡ ð ðŒ.
+
+ð ð« ðª âïž ð ðœ ð· ð ðšâðŒ ð¥ ð ðšâðŒ ð ðª âïž ð "ðµðž". ðŒ â®ïž ð©âð» "ðšâðŒ" â®ïž ðµðž â
`password`, `password_hash` & ð
ââ ð.
diff --git a/docs/em/docs/tutorial/first-steps.md b/docs/em/docs/tutorial/first-steps.md
new file mode 100644
index 000000000..252e769f4
--- /dev/null
+++ b/docs/em/docs/tutorial/first-steps.md
@@ -0,0 +1,333 @@
+# ð¥ ð
+
+ð
FastAPI ð ðª ð ð ð:
+
+```Python
+{!../../../docs_src/first_steps/tutorial001.py!}
+```
+
+ð ð ð `main.py`.
+
+ð ð ðœ:
+
+
+
+```console
+$ uvicorn main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+INFO: Started reloader process [28720]
+INFO: Started server process [28722]
+INFO: Waiting for application startup.
+INFO: Application startup complete.
+```
+
+
+
+!!! note
+ ð `uvicorn main:app` ð:
+
+ * `main`: ð `main.py` (ð "ð¹").
+ * `app`: ð â ð `main.py` â®ïž âž `app = FastAPI()`.
+ * `--reload`: â ðœ â â®ïž ð ð. ðŽ âïž ð ïž.
+
+ð¢, ð€ âž â®ïž ð³ ð:
+
+```hl_lines="4"
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+ð âž ðŠ ð ðâ ð ð± â ðŠ, ð ð§ð¿ ð°.
+
+### â
â«ïž
+
+ð ð ð¥ http://127.0.0.1:8000.
+
+ð ð ð ð» ðš:
+
+```JSON
+{"message": "Hello World"}
+```
+
+### ð ð ïž ð©º
+
+ð ð¶ http://127.0.0.1:8000/docs.
+
+ð ð ð ð§ ð ð ïž ð§Ÿ (ð ðŠ ð):
+
+
+
+### ð ð ïž ð©º
+
+& ð, ð¶ http://127.0.0.1:8000/redoc.
+
+ð ð ð ð ð§ 𧟠(ð ð):
+
+
+
+### ð
+
+**FastAPI** ð "ð" â®ïž ð ð ð ïž âïž **ð** ð© â ð.
+
+#### "ð"
+
+"ð" ð âïž ð ð³. ð« ð ð ð ïž â«ïž, âïž ð ð.
+
+#### ð ïž "ð"
+
+ð ðŒ, ð ð§ ð ð€ â ð¬ ð ð ð ïž.
+
+ð ð ð ð ð ð ïž â¡, ðª ð¢ ð« â, âïž.
+
+#### ðœ "ð"
+
+â "ð" ðª ð ð ðœ, ð ð» ð.
+
+ð ðŒ, â«ïž ð â ð» ð¢, & ð ð ð« âïž, âïž.
+
+#### ð & ð» ð
+
+ð ð¬ ð ïž ð ð ð ïž. & ð ð ð ð (âïž "ð") ð ðš & ðš ð ð ïž âïž **ð» ð**, ð© ð» ð ð.
+
+#### â
`openapi.json`
+
+ð¥ ð ð ð â ð£ ð ð ð ð, FastAPI ð ð ð» (ð) â®ïž ð ð ð ð ïž.
+
+ð ðª ð â«ïž ð: http://127.0.0.1:8000/openapi.json.
+
+â«ïž ð ðŠ ð» â¶ïž â®ïž ð³ ð:
+
+```JSON
+{
+ "openapi": "3.0.2",
+ "info": {
+ "title": "FastAPI",
+ "version": "0.1.0"
+ },
+ "paths": {
+ "/items/": {
+ "get": {
+ "responses": {
+ "200": {
+ "description": "Successful Response",
+ "content": {
+ "application/json": {
+
+
+
+...
+```
+
+#### â«ïžâ ð
+
+ð ð â«ïžâ ðïž 2ïžâ£ ð 𧟠âïž ð.
+
+& ð€ ð¯ ð, ð âïž ð ð. ð ðª ðª ð® ð ð ð ð ðž ð â®ïž **FastAPI**.
+
+ð ðª âïž â«ïž ð ð ð, ð©âð» ð ð â®ïž ð ð ïž. ðŒ, ðž, ð± âïž â ðž.
+
+## ð, ð ð
+
+### ð 1ïžâ£: ð `FastAPI`
+
+```Python hl_lines="1"
+{!../../../docs_src/first_steps/tutorial001.py!}
+```
+
+`FastAPI` ð ð ð ð ð ð ïž ð ð ïž.
+
+!!! note "ð¡ â¹"
+ `FastAPI` ð ð ð ð âªïžâ¡ïž `Starlette`.
+
+ ð ðª âïž ð ð ð ïž â®ïž `FastAPI` ðââïž.
+
+### ð 2ïžâ£: â `FastAPI` "ð"
+
+```Python hl_lines="3"
+{!../../../docs_src/first_steps/tutorial001.py!}
+```
+
+ð¥ `app` ð¢ ð "ð" ð `FastAPI`.
+
+ð ð ð â ð â ð ð ð ïž.
+
+ð `app` ð 1ïžâ£ ð `uvicorn` ð:
+
+
+
+```console
+$ uvicorn main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+ð¥ ð â ð ð± ð:
+
+```Python hl_lines="3"
+{!../../../docs_src/first_steps/tutorial002.py!}
+```
+
+& ð® â«ïž ð `main.py`, â€Žïž ð ð ð€ `uvicorn` ð:
+
+
+
+```console
+$ uvicorn main:my_awesome_api --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+### ð 3ïžâ£: â *â¡ ð ïž*
+
+#### â¡
+
+"â¡" ð¥ ð ð ð ð â¶ïž âªïžâ¡ïž ð¥ `/`.
+
+, ð ð:
+
+```
+https://example.com/items/foo
+```
+
+...â¡ ð:
+
+```
+/items/foo
+```
+
+!!! info
+ "â¡" ð ð€ "ð" âïž "ð£".
+
+⪠ð ð ïž, "â¡" ð ð ð "â " & "â¹".
+
+#### ð ïž
+
+"ð ïž" ð¥ ð 1ïžâ£ ðºðžð "ð©âð¬".
+
+1ïžâ£:
+
+* `POST`
+* `GET`
+* `PUT`
+* `DELETE`
+
+...& ð
ð ð:
+
+* `OPTIONS`
+* `HEAD`
+* `PATCH`
+* `TRACE`
+
+ðºðžð ð ïž, ð ðª ð ð â¡ âïž 1ïžâ£ (âïž ð
) ð« "ð©âð¬".
+
+---
+
+ðâ ð ð, ð ð âïž ð« ð¯ ðºðžð ð©âð¬ ð ð¯ ð¯.
+
+ð ð âïž:
+
+* `POST`: â ðœ.
+* `GET`: â ðœ.
+* `PUT`: â¹ ðœ.
+* `DELETE`: â ðœ.
+
+, ð, ð ðºðžð ð©âð¬ ð€ "ð ïž".
+
+ð¥ ð ð€ ð« "**ð ïž**" ðââïž.
+
+#### ð¬ *â¡ ð ïž ðšâðš*
+
+```Python hl_lines="6"
+{!../../../docs_src/first_steps/tutorial001.py!}
+```
+
+`@app.get("/")` ð¬ **FastAPI** ð ð¢ â¶ïžïž ð ð ð ðš ð ð¶:
+
+* â¡ `/`
+* âïž get
ð ïž
+
+!!! info "`@decorator` â¹"
+ ð `@something` â ð ð€ "ðšâðš".
+
+ ð ð® â«ïž ð ð ð¢. ð ð¶ ð ð (ð€ ð ð ðâ â ð âªïžâ¡ïž).
+
+ "ðšâðš" â ð¢ ð & ðš ð³ â®ïž â«ïž.
+
+ ð ðŒ, ð ðšâðš ð¬ **FastAPI** ð ð¢ ð ð **â¡** `/` â®ïž **ð ïž** `get`.
+
+ â«ïž "**â¡ ð ïž ðšâðš**".
+
+ð ðª âïž ð ð ïž:
+
+* `@app.post()`
+* `@app.put()`
+* `@app.delete()`
+
+& ð
ð ð:
+
+* `@app.options()`
+* `@app.head()`
+* `@app.patch()`
+* `@app.trace()`
+
+!!! tip
+ ð ð âïž ð ð ïž (ðºðžð ð©âð¬) ð ð.
+
+ **FastAPI** ð« ð ïž ð ð¯ ð.
+
+ â¹ ð¥ ð ð, ð« ð.
+
+ ðŒ, ðâ âïž ð¹ ð ð ð ð ð¯ âïž ðŽ `POST` ð ïž.
+
+### ð 4ïžâ£: ð¬ **â¡ ð ïž ð¢**
+
+ð ð "**â¡ ð ïž ð¢**":
+
+* **â¡**: `/`.
+* **ð ïž**: `get`.
+* **ð¢**: ð¢ ð "ðšâðš" (ð `@app.get("/")`).
+
+```Python hl_lines="7"
+{!../../../docs_src/first_steps/tutorial001.py!}
+```
+
+ð ð ð¢.
+
+â«ïž ð ð€ **FastAPI** ðâ â«ïž ðš ðš ð "`/`" âïž `GET` ð ïž.
+
+ð ðŒ, â«ïž `async` ð¢.
+
+---
+
+ð ðª ð¬ â«ïž ð ð¢ â©ïž `async def`:
+
+```Python hl_lines="7"
+{!../../../docs_src/first_steps/tutorial003.py!}
+```
+
+!!! note
+ ð¥ ð ð« ð ðº, â
[ð: *"ð â"*](../async.md#in-a-hurry){.internal-link target=_blank}.
+
+### ð 5ïžâ£: ðš ð
+
+```Python hl_lines="8"
+{!../../../docs_src/first_steps/tutorial001.py!}
+```
+
+ð ðª ðš `dict`, `list`, â ð² `str`, `int`, âïž.
+
+ð ðª ðš Pydantic ð· (ð ð ð ð
ð ð âª).
+
+ð€ ð ð ð & ð· ð ð ð ð ð» (ð ð, âïž). ð âïž ð ð ð, â«ïž ð ð² ð ð« ⪠ðâðŠº.
+
+## ð
+
+* ð `FastAPI`.
+* â `app` ð.
+* â **â¡ ð ïž ðšâðš** (ð `@app.get("/")`).
+* â **â¡ ð ïž ð¢** (ð `def root(): ...` ð).
+* ð ð ïž ðœ (ð `uvicorn main:app --reload`).
diff --git a/docs/em/docs/tutorial/handling-errors.md b/docs/em/docs/tutorial/handling-errors.md
new file mode 100644
index 000000000..ef7bbfa65
--- /dev/null
+++ b/docs/em/docs/tutorial/handling-errors.md
@@ -0,0 +1,261 @@
+# ð â
+
+ð€ ð â ðâ ð ðª ðš â ð©âð» ð âïž ð ð ïž.
+
+ð ð©âð» ðª ð¥ â®ïž ðž, ð âªïžâ¡ïž ð± ð, â ð³, âïž.
+
+ð ðª ðª ð¬ ð©âð» ð:
+
+* ð©âð» ð« âïž ð¥ ð ð ð ïž.
+* ð©âð» ð« âïž ð ð â¹.
+* ð¬ ð©âð» ð ð ð« ð.
+* âïž.
+
+ð« ðŒ, ð ð ð ðš **ðºðžð ð ð** â **4ïžâ£0ïžâ£0ïžâ£** (âªïžâ¡ïž 4ïžâ£0ïžâ£0ïžâ£ 4ïžâ£9ïžâ£9ïžâ£).
+
+ð ð 2ïžâ£0ïžâ£0ïžâ£ ðºðžð ð ð (âªïžâ¡ïž 2ïžâ£0ïžâ£0ïžâ£ 2ïžâ£9ïžâ£9ïžâ£). ð "2ïžâ£0ïžâ£0ïžâ£" ð ð â ð ð« ð€ "ð" ðš.
+
+ð ð 4ïžâ£0ïžâ£0ïžâ£ â â ð ð€ â âªïžâ¡ïž ð©âð».
+
+ð ð ð **"4ïžâ£0ïžâ£4ïžâ£ ð« ð"** â (& ð€£) â
+
+## âïž `HTTPException`
+
+ðš ðºðžð ðš â®ïž â ð©âð» ð âïž `HTTPException`.
+
+### ð `HTTPException`
+
+```Python hl_lines="1"
+{!../../../docs_src/handling_errors/tutorial001.py!}
+```
+
+### ð€ `HTTPException` ð ð
+
+`HTTPException` ð ð â â®ïž ð ð ð ð.
+
+â©ïž â«ïž ð â , ð ð« `return` â«ïž, ð `raise` â«ïž.
+
+ð â ð ð¥ ð ð ð ð¢ ð ð ð€ ð ð *â¡ ð ïž ð¢*, & ð ð€ `HTTPException` âªïžâ¡ïž ð ð ð ð¢, â«ïž ð ð« ð ð ð *â¡ ð ïž ð¢*, â«ïž ð â ð ðš â¶ïžïž âïž & ðš ðºðžð â âªïžâ¡ïž `HTTPException` ð©âð».
+
+ð° ðââ â ð€ `return`ð
ð² ð ð â ð ð ð & ðââ.
+
+ð ðŒ, ðâ ð©âð» ðš ð¬ ð ð ð« ð, ð€ â â®ïž ð ð `404`:
+
+```Python hl_lines="11"
+{!../../../docs_src/handling_errors/tutorial001.py!}
+```
+
+### ð ðš
+
+ð¥ ð©âð» ðš `http://example.com/items/foo` ( `item_id` `"foo"`), ð ð©âð» ð ðš ðºðžð ð ð 2ïžâ£0ïžâ£0ïžâ£, & ð» ðš:
+
+```JSON
+{
+ "item": "The Foo Wrestlers"
+}
+```
+
+âïž ð¥ ð©âð» ðš `http://example.com/items/bar` (ð«-ð« `item_id` `"bar"`), ð ð©âð» ð ðš ðºðžð ð ð 4ïžâ£0ïžâ£4ïžâ£ ("ð« ð" â), & ð» ðš:
+
+```JSON
+{
+ "detail": "Item not found"
+}
+```
+
+!!! tip
+ ðâ ðââ `HTTPException`, ð ðª ð¶ââïž ð ð² ð ðª ð ð» ð¢ `detail`, ð« ðŽ `str`.
+
+ ð ðª ð¶ââïž `dict`, `list`, âïž.
+
+ ð« ðµ ð **FastAPI** & ð ð».
+
+## ð® ð ð
+
+ð€ â ðâ â«ïž â ðª ð® ð ð ðºðžð â. ðŒ, ð ðââ.
+
+ð ð² ð ð« ðª âïž â«ïž ð ð ð.
+
+âïž ðŒ ð ðª â«ïž ð§ ð, ð ðª ð® ð ð:
+
+```Python hl_lines="14"
+{!../../../docs_src/handling_errors/tutorial002.py!}
+```
+
+## â ð â ðâðŠº
+
+ð ðª ð® ð â ðâðŠº â®ïž ð â ð âªïžâ¡ïž ð.
+
+â¡ïž ð¬ ð âïž ð â `UnicornException` ð ð (âïž ð ð âïž) ðª `raise`.
+
+& ð ð ðµ ð â ð â®ïž FastAPI.
+
+ð ðª ð® ð â ðâðŠº â®ïž `@app.exception_handler()`:
+
+```Python hl_lines="5-7 13-18 24"
+{!../../../docs_src/handling_errors/tutorial003.py!}
+```
+
+ð¥, ð¥ ð ðš `/unicorns/yolo`, *â¡ ð ïž* ð `raise` `UnicornException`.
+
+âïž â«ïž ð ðµ `unicorn_exception_handler`.
+
+, ð ð ðš 𧹠â, â®ïž ðºðžð ð ð `418` & ð» ð:
+
+```JSON
+{"message": "Oops! yolo did something. There goes a rainbow..."}
+```
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.requests import Request` & `from starlette.responses import JSONResponse`.
+
+ **FastAPI** ð ð `starlette.responses` `fastapi.responses` ðª ð, ð©âð». âïž ð
ðª ðš ð ð âªïžâ¡ïž ð. ð â®ïž `Request`.
+
+## ð ð¢ â ðâðŠº
+
+**FastAPI** âïž ð¢ â ðâðŠº.
+
+ð« ðâðŠº ð ð¬ ð¢ ð» ðš ðâ ð `raise` `HTTPException` & ðâ ðš âïž â ðœ.
+
+ð ðª ð ð« â ðâðŠº â®ïž ð ð.
+
+### ð ðš ð¬ â
+
+ðâ ðš ð â ð, **FastAPI** ð ð€ `RequestValidationError`.
+
+& â«ïž ð ð¢ â ðâðŠº â«ïž.
+
+ð â«ïž, ð `RequestValidationError` & âïž â«ïž â®ïž `@app.exception_handler(RequestValidationError)` ð â ðâðŠº.
+
+â ðâðŠº ð ðš `Request` & â .
+
+```Python hl_lines="2 14-16"
+{!../../../docs_src/handling_errors/tutorial004.py!}
+```
+
+ð, ð¥ ð ð¶ `/items/foo`, â©ïž ðââ ð¢ ð» â â®ïž:
+
+```JSON
+{
+ "detail": [
+ {
+ "loc": [
+ "path",
+ "item_id"
+ ],
+ "msg": "value is not a valid integer",
+ "type": "type_error.integer"
+ }
+ ]
+}
+```
+
+ð ð ð€ â â¬, â®ïž:
+
+```
+1 validation error
+path -> item_id
+ value is not a valid integer (type=type_error.integer)
+```
+
+#### `RequestValidationError` ð `ValidationError`
+
+!!! warning
+ ð« ð¡ â¹ ð ð ðª ð¶ ð¥ â«ïž ð« â ð ð.
+
+`RequestValidationError` ð§-ð Pydantic `ValidationError`.
+
+**FastAPI** âïž â«ïž ð, ð¥ ð âïž Pydantic ð· `response_model`, & ð ðœ âïž â, ð ð ð â ð ð¹.
+
+âïž ð©âð»/ð©âð» ð ð« ð â«ïž. â©ïž, ð©âð» ð ðš "ð ðœ â" â®ïž ðºðžð ð ð `500`.
+
+â«ïž ð ð ð â©ïž ð¥ ð âïž Pydantic `ValidationError` ð *ðš* âïž ð ð ð (ð« ð©âð» *ðš*), â«ïž ð€ ð ð ð.
+
+& ⪠ð ð§ â«ïž, ð ð©âð»/ð©âð» ð«ð ð« âïž ð ð â¹ ð â, ð ðª ðŠ ðââ â .
+
+### ð `HTTPException` â ðâðŠº
+
+ð ð, ð ðª ð `HTTPException` ðâðŠº.
+
+ðŒ, ð ðª ð ðš â
â ðš â©ïž ð» ð« â:
+
+```Python hl_lines="3-4 9-11 22"
+{!../../../docs_src/handling_errors/tutorial004.py!}
+```
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.responses import PlainTextResponse`.
+
+ **FastAPI** ð ð `starlette.responses` `fastapi.responses` ðª ð, ð©âð». âïž ð
ðª ðš ð ð âªïžâ¡ïž ð.
+
+### âïž `RequestValidationError` ðª
+
+`RequestValidationError` ð `body` â«ïž ðš â®ïž â ðœ.
+
+ð ðª âïž â«ïž ⪠ð ïž ð ð± ð¹ ðª & â¹ â«ïž, ðš â«ïž ð©âð», âïž.
+
+```Python hl_lines="14"
+{!../../../docs_src/handling_errors/tutorial005.py!}
+```
+
+ð ð ðš â ð¬ ð:
+
+```JSON
+{
+ "title": "towel",
+ "size": "XL"
+}
+```
+
+ð ð ðš ðš ð¬ ð ð ðœ â â ðš ðª:
+
+```JSON hl_lines="12-15"
+{
+ "detail": [
+ {
+ "loc": [
+ "body",
+ "size"
+ ],
+ "msg": "value is not a valid integer",
+ "type": "type_error.integer"
+ }
+ ],
+ "body": {
+ "title": "towel",
+ "size": "XL"
+ }
+}
+```
+
+#### FastAPI `HTTPException` ð ð `HTTPException`
+
+**FastAPI** âïž ð® ð `HTTPException`.
+
+& **FastAPI**'â `HTTPException` â ð ð âªïžâ¡ïž ð `HTTPException` â ð.
+
+ðŽ ðº, ð **FastAPI**'â `HTTPException` â ð ð® ð ð ðš.
+
+ð ðª/âïž ð â³ 2ïžâ£.0ïžâ£ & ðââ ð.
+
+, ð ðª ð§ ðââ **FastAPI**'â `HTTPException` ð ð ð.
+
+âïž ðâ ð ® â ðâðŠº, ð ð ® â«ïž ð `HTTPException`.
+
+ð ð, ð¥ ð ð ð ð ð, âïž ð â âïž ð -, ð€ ð `HTTPException`, ð ðâðŠº ð ðª â & ðµ â«ïž.
+
+ð ðŒ, ðª âïž ð¯ââïž `HTTPException`â ð ð, ð â ð `StarletteHTTPException`:
+
+```Python
+from starlette.exceptions import HTTPException as StarletteHTTPException
+```
+
+### ð€-âïž **FastAPI**'â â ðâðŠº
+
+ð¥ ð ð âïž â â€Žïž â®ïž ð ð¢ â ðâðŠº âªïžâ¡ïž **FastAPI**, ð ðª ð & ð€-âïž ð¢ â ðâðŠº âªïžâ¡ïž `fastapi.exception_handlers`:
+
+```Python hl_lines="2-5 15 21"
+{!../../../docs_src/handling_errors/tutorial006.py!}
+```
+
+ð ðŒ ð `print`ð
â â®ïž ð¶ ðš ð§, âïž ð ð€ ð. ð ðª âïž â & â€Žïž ð€-âïž ð¢ â ðâðŠº.
diff --git a/docs/em/docs/tutorial/header-params.md b/docs/em/docs/tutorial/header-params.md
new file mode 100644
index 000000000..0f33a1774
--- /dev/null
+++ b/docs/em/docs/tutorial/header-params.md
@@ -0,0 +1,128 @@
+# ð ð¢
+
+ð ðª ð¬ ð ð¢ ð ð ð ð¬ `Query`, `Path` & `Cookie` ð¢.
+
+## ð `Header`
+
+ð¥ ð `Header`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="3"
+ {!> ../../../docs_src/header_params/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/header_params/tutorial001_py310.py!}
+ ```
+
+## ð£ `Header` ð¢
+
+â€Žïž ð£ ð ð¢ âïž ð ð â®ïž `Path`, `Query` & `Cookie`.
+
+ð¥ ð² ð¢ ð², ð ðª ð¶ââïž ð â ð¬ âïž â ð¢:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/header_params/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/header_params/tutorial001_py310.py!}
+ ```
+
+!!! note "ð¡ â¹"
+ `Header` "ð" ð `Path`, `Query` & `Cookie`. â«ïž ð âªïžâ¡ïž ð â `Param` ð.
+
+ âïž ð ð ðâ ð ð `Query`, `Path`, `Header`, & ð âªïžâ¡ïž `fastapi`, ð ð€ ð¢ ð ðš ð ð.
+
+!!! info
+ ð£ ð, ð ðª âïž `Header`, â©ïž ⪠ð¢ ð ð¬ ð¢ ð¢.
+
+## ð§ ð ïž
+
+`Header` âïž ð¥ â ð ïž ð ð â«ïžâ `Path`, `Query` & `Cookie` ð.
+
+ð
ð© ð ð "ð " ðŠ¹, ð "â ð£" (`-`).
+
+âïž ð¢ ð `user-agent` â ð.
+
+, ð¢, `Header` ð ð ð¢ ð ðŠ¹ âªïžâ¡ïž ðŠ (`_`) ð (`-`) â & ð ð.
+
+, ðºðžð ð ðŒ-ð,, ð ðª ð£ ð« â®ïž ð© ð ð (ð "ð¡").
+
+, ð ðª âïž `user_agent` ð ð ð ð ð, â©ïž ðââ ð¯ ð¥ ð€ `User_Agent` âïž ð³ ð.
+
+ð¥ ð€ ð ðª â ð§ ð ïž ðŠ ð , â ð¢ `convert_underscores` `Header` `False`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="10"
+ {!> ../../../docs_src/header_params/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="8"
+ {!> ../../../docs_src/header_params/tutorial002_py310.py!}
+ ```
+
+!!! warning
+ â â `convert_underscores` `False`, ð» ð€¯ ð ðºðžð ð³ & ðœ / âïž ð â®ïž ðŠ.
+
+## â ð
+
+â«ïž ðª ðš â ð. ð â, ð ð â®ïž ð ð².
+
+ð ðª ð¬ ð ðŒ âïž ð ð ð.
+
+ð ð ðš ð ð² âªïžâ¡ïž â ð ð `list`.
+
+ðŒ, ð£ ð `X-Token` ð ðª ð ð
ð ð, ð ðª â:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/header_params/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/header_params/tutorial003_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/header_params/tutorial003_py310.py!}
+ ```
+
+ð¥ ð ð â®ïž ð *â¡ ð ïž* ðš 2ïžâ£ ðºðžð ð ð:
+
+```
+X-Token: foo
+X-Token: bar
+```
+
+ðš ð ð:
+
+```JSON
+{
+ "X-Token values": [
+ "bar",
+ "foo"
+ ]
+}
+```
+
+## ð
+
+ð£ ð â®ïž `Header`, âïž ð â â `Query`, `Path` & `Cookie`.
+
+& ð« ð ð ðŠ ð ð¢, **FastAPI** ð â ð
ð ð«.
diff --git a/docs/em/docs/tutorial/index.md b/docs/em/docs/tutorial/index.md
new file mode 100644
index 000000000..8536dc3ee
--- /dev/null
+++ b/docs/em/docs/tutorial/index.md
@@ -0,0 +1,80 @@
+# ð° - ð©âð» ðŠ® - ð¶
+
+ð ð° ðŠ ð â âïž **FastAPI** â®ïž ð
ð® â, ð ð.
+
+ð ð ð ð ð â®ïž ð, âïž â«ïž ð ð â, ð ð ðª ð¶ ð ð ð¯ 1ïžâ£ â ð ð¯ ð ïž ðª.
+
+â«ïž ð ð· ð® ð.
+
+ð ðª ð ð & ð â«ïžâ â«ïžâ ð ðª.
+
+## ð ð
+
+ð ð ð« ðª ð & âïž ð (ð« ð€ ð¯ ð ð).
+
+ð ð ðŒ, ð ð ð `main.py`, & â¶ïž `uvicorn` â®ïž:
+
+
+
+```console
+$ uvicorn main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+INFO: Started reloader process [28720]
+INFO: Started server process [28722]
+INFO: Waiting for application startup.
+INFO: Application startup complete.
+```
+
+
+
+â«ïž **ð ð¡** ð ð â âïž ð ð, â â«ïž & ð â«ïž ð.
+
+âïž â«ïž ð ðšâðš â«ïžâ ð€ ðŠ ð ð° FastAPI, ð â ð¥ ð ð âïž â, ð ð â
, â, âïž.
+
+---
+
+## â FastAPI
+
+ð¥ ð â FastAPI.
+
+ð°, ð ðª ð â â«ïž â®ïž ð ðŠ ð & â:
+
+
+
+```console
+$ pip install "fastapi[all]"
+
+---> 100%
+```
+
+
+
+...ð ð `uvicorn`, ð ð ðª âïž ðœ ð ð ð ð.
+
+!!! note
+ ð ðª â â«ïž ð ð.
+
+ ð â«ïžâ ð ð ð² ð ð ð ð ïž ð ðž ð:
+
+ ```
+ pip install fastapi
+ ```
+
+ â `uvicorn` ð· ðœ:
+
+ ```
+ pip install "uvicorn[standard]"
+ ```
+
+ & ð ð ðŠ ð ð ð ð âïž.
+
+## ð§ ð©âð» ðŠ®
+
+ð€ **ð§ ð©âð» ðŠ®** ð ð ðª â ⪠â®ïž ð **ð° - ð©âð» ðŠ®**.
+
+**ð§ ð©âð» ðŠ®**, ð ð ð, âïž ð ð§, & ð¡ ð â â.
+
+âïž ð ð ð¥ â **ð° - ð©âð» ðŠ®** (â«ïžâ ð ð â¶ïžïž ð).
+
+â«ïž ð§ ð ð ðª ð ð ðž â®ïž **ð° - ð©âð» ðŠ®**, & â€Žïž â â«ïž ð ð, âïž ð ð ðª, âïž ð ð âªïžâ¡ïž **ð§ ð©âð» ðŠ®**.
diff --git a/docs/em/docs/tutorial/metadata.md b/docs/em/docs/tutorial/metadata.md
new file mode 100644
index 000000000..00098cdf5
--- /dev/null
+++ b/docs/em/docs/tutorial/metadata.md
@@ -0,0 +1,112 @@
+# ð & 𩺠ð
+
+ð ðª ð ð ð ð³ ð **FastAPI** ðž.
+
+## ð ð ïž
+
+ð ðª â ð ð ð âïž ð ð§ & ð§ ð ïž ð©º â:
+
+| ð¢ | ð | ð |
+|------------|------|-------------|
+| `title` | `str` | ð ð ïž. |
+| `description` | `str` | ð ð ð ïž. â«ïž ðª âïž â. |
+| `version` | `string` | ⬠ð ïž. ð ⬠ð ð ðž, ð« ð. ðŒ `2.5.0`. |
+| `terms_of_service` | `str` | ð â ðâðŠº ð ïž. ð¥ ð, ð âïž ð. |
+| `contact` | `dict` | ð§ â¹ ðŠ ð ïž. â«ïž ðª ð ð ð. contact
ð
ð¢ | ð | ð |
---|
name | str | â ð ð§ ðšâðŒ/ð¢. |
url | str | ð â ð§ â¹. ð ð ð. |
email | str | ð§ ð¢ ð§ ðšâðŒ/ð¢. ð ð ð§ ð¢. |
|
+| `license_info` | `dict` | ð â¹ ðŠ ð ïž. â«ïž ðª ð ð ð. license_info
ð
ð¢ | ð | ð |
---|
name | str | ð (ð¥ license_info â). ð ð âïž ð ïž. |
url | str | ð ð âïž ð ïž. ð ð ð. |
|
+
+ð ðª â ð« â©:
+
+```Python hl_lines="3-16 19-31"
+{!../../../docs_src/metadata/tutorial001.py!}
+```
+
+!!! tip
+ ð ðª â â `description` ð & â«ïž ð â ð¢.
+
+â®ïž ð ð³, ð§ ð ïž ð©º ð ð ð:
+
+
+
+## ð ð
+
+ð ðª ð® ð ð ð ð âïž ðª ð â¡ ð ïž â®ïž ð¢ `openapi_tags`.
+
+â«ïž â ð â 1ïžâ£ ð ð ð.
+
+ð ð ðª ð:
+
+* `name` (**â**): `str` â®ïž ð ð ð âïž `tags` ð¢ ð *â¡ ð ïž* & `APIRouter`â.
+* `description`: `str` â®ïž ð ð ð. â«ïž ðª âïž â & ð ðŠ 𩺠ð.
+* `externalDocs`: `dict` ð¬ ð¢ 𧟠â®ïž:
+ * `description`: `str` â®ïž ð ð ð¢ ð©º.
+ * `url` (**â**): `str` â®ïž ð ð¢ ð§Ÿ.
+
+### â ð ð
+
+â¡ïž ð ð ðŒ â®ïž ð `users` & `items`.
+
+â ð ð ð & ð¶ââïž â«ïž `openapi_tags` ð¢:
+
+```Python hl_lines="3-16 18"
+{!../../../docs_src/metadata/tutorial004.py!}
+```
+
+ð ð ð ðª âïž â ð ð, ðŒ "ð³" ð ðŠ ðŠ (**ð³**) & "ð" ð ðŠ â (_ð_).
+
+!!! tip
+ ð ð« âïž ð® ð ð ð ð ð âïž.
+
+### âïž ð ð
+
+âïž `tags` ð¢ â®ïž ð *â¡ ð ïž* (& `APIRouter`â) ð ïž ð« ð ð:
+
+```Python hl_lines="21 26"
+{!../../../docs_src/metadata/tutorial004.py!}
+```
+
+!!! info
+ â ð
ð ð [â¡ ð ïž ð³](../path-operation-configuration/#tags){.internal-link target=_blank}.
+
+### â
ð©º
+
+ð, ð¥ ð â
ð©º, ð« ð ðŠ ð ð ð:
+
+
+
+### â ð
+
+â ð ð ð ð ð¬ â ðŠ 𩺠ð.
+
+ðŒ, âïž `users` ð ð¶ â®ïž `items` ð€ â, â«ïž ðŠ â ð«, â©ïž ð¥ ð® ð« ð ð¥ ð ð.
+
+## ð ð
+
+ð¢, ð ð ðŠ `/openapi.json`.
+
+âïž ð ðª ð â«ïž â®ïž ð¢ `openapi_url`.
+
+ðŒ, â â«ïž ðŠ `/api/v1/openapi.json`:
+
+```Python hl_lines="3"
+{!../../../docs_src/metadata/tutorial002.py!}
+```
+
+ð¥ ð ð â ð ð ð ð ðª â `openapi_url=None`, ð ð â 𧟠ð©âð» ð¢ ð âïž â«ïž.
+
+## 𩺠ð
+
+ð ðª ð 2ïžâ£ 𧟠ð©âð» ð¢ ð:
+
+* **ðŠ ð**: ðŠ `/docs`.
+ * ð ðª â ð® ð â®ïž ð¢ `docs_url`.
+ * ð ðª â â«ïž â `docs_url=None`.
+* **ð**: ðŠ `/redoc`.
+ * ð ðª â ð® ð â®ïž ð¢ `redoc_url`.
+ * ð ðª â â«ïž â `redoc_url=None`.
+
+ðŒ, â ðŠ ð ðŠ `/documentation` & â ð:
+
+```Python hl_lines="3"
+{!../../../docs_src/metadata/tutorial003.py!}
+```
diff --git a/docs/em/docs/tutorial/middleware.md b/docs/em/docs/tutorial/middleware.md
new file mode 100644
index 000000000..644b4690c
--- /dev/null
+++ b/docs/em/docs/tutorial/middleware.md
@@ -0,0 +1,61 @@
+# ð ïž
+
+ð ðª ð® ð ïž **FastAPI** ðž.
+
+"ð ïž" ð¢ ð ð· â®ïž ð **ðš** â â«ïž ð ïž ð ð¯ *â¡ ð ïž*. & â®ïž ð **ðš** â ð¬ â«ïž.
+
+* â«ïž â ð **ðš** ð ð ð ðž.
+* â«ïž ðª â€Žïž ð³ ð **ðš** âïž ð ð ðª ð.
+* â€Žïž â«ïž ð¶ââïž **ðš** ð ïž ð ðž ( *â¡ ð ïž*).
+* â«ïž â€Žïž â **ðš** ð ðž ( *â¡ ð ïž*).
+* â«ïž ðª ð³ ð **ðš** âïž ð ð ðª ð.
+* â€Žïž â«ïž ðš **ðš**.
+
+!!! note "ð¡ â¹"
+ ð¥ ð âïž ð â®ïž `yield`, ðª ð ð ð *â®ïž* ð ïž.
+
+ ð¥ ð€ ð ð¥ ð (ð âª), ð« ð ð *â®ïž* ð ð ïž.
+
+## â ð ïž
+
+â ð ïž ð âïž ðšâðš `@app.middleware("http")` ð ð ð¢.
+
+ð ïž ð¢ ðš:
+
+* `request`.
+* ð¢ `call_next` ð ð ðš `request` ð¢.
+ * ð ð¢ ð ð¶ââïž `request` ð *â¡ ð ïž*.
+ * â€Žïž â«ïž ðš `response` ð ð *â¡ ð ïž*.
+* ð ðª â€Žïž ð ð
`response` â ð¬ â«ïž.
+
+```Python hl_lines="8-9 11 14"
+{!../../../docs_src/middleware/tutorial001.py!}
+```
+
+!!! tip
+ âïž ð€¯ ð ð © ð ðª ð® âïž 'â-' ð¡.
+
+ âïž ð¥ ð âïž ð ð ð ð ð ð©âð» ð¥ ðª ð, ð ðª ð® ð« ð â ð³ ([â (âïž-ðšð³ â¹ ð€)](cors.md){.internal-link target=_blank}) âïž ð¢ `expose_headers` ð ð â ð©º.
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.requests import Request`.
+
+ **FastAPI** ð â«ïž ðª ð, ð©âð». âïž â«ïž ð ð âªïžâ¡ïž ð.
+
+### â & â®ïž `response`
+
+ð ðª ð® ð ð â®ïž `request`, â ð *â¡ ð ïž* ðš â«ïž.
+
+& â®ïž `response` ð, â ð¬ â«ïž.
+
+ðŒ, ð ðª ð® ð ð `X-Process-Time` â ð° ð¥ ð â«ïž â ð ïž ðš & ð ðš:
+
+```Python hl_lines="10 12-13"
+{!../../../docs_src/middleware/tutorial001.py!}
+```
+
+## ð ð ïž
+
+ð ðª ⪠â ð ð ð ð ïž [ð§ ð©âð» ðŠ®: ð§ ð ïž](../advanced/middleware.md){.internal-link target=_blank}.
+
+ð ð â ð â ðµ â â®ïž ð ïž â ð.
diff --git a/docs/em/docs/tutorial/path-operation-configuration.md b/docs/em/docs/tutorial/path-operation-configuration.md
new file mode 100644
index 000000000..916529258
--- /dev/null
+++ b/docs/em/docs/tutorial/path-operation-configuration.md
@@ -0,0 +1,179 @@
+# â¡ ð ïž ð³
+
+ð€ ð ð¢ ð ð ðª ð¶ââïž ð *â¡ ð ïž ðšâðš* ð â«ïž.
+
+!!! warning
+ ð ð ð« ð¢ ð¶ââïž ð *â¡ ð ïž ðšâðš*, ð« ð *â¡ ð ïž ð¢*.
+
+## ðš ð ð
+
+ð ðª ð¬ (ðºðžð) `status_code` âïž ðš ð *â¡ ð ïž*.
+
+ð ðª ð¶ââïž ð `int` ð, ð `404`.
+
+âïž ð¥ ð ð« ð â«ïžâ ð ð¢ ð, ð ðª âïž âš ð `status`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="3 17"
+ {!> ../../../docs_src/path_operation_configuration/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="3 17"
+ {!> ../../../docs_src/path_operation_configuration/tutorial001_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1 15"
+ {!> ../../../docs_src/path_operation_configuration/tutorial001_py310.py!}
+ ```
+
+ð ð ð ð âïž ðš & ð ð® ð ð.
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette import status`.
+
+ **FastAPI** ð ð `starlette.status` `fastapi.status` ðª ð, ð©âð». âïž â«ïž ð ð âªïžâ¡ïž ð.
+
+## ð
+
+ð ðª ð® ð ð *â¡ ð ïž*, ð¶ââïž ð¢ `tags` â®ïž `list` `str` (ð 1ïžâ£ `str`):
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="17 22 27"
+ {!> ../../../docs_src/path_operation_configuration/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="17 22 27"
+ {!> ../../../docs_src/path_operation_configuration/tutorial002_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="15 20 25"
+ {!> ../../../docs_src/path_operation_configuration/tutorial002_py310.py!}
+ ```
+
+ð« ð ð® ð ð & âïž ð§ 𧟠ð¢:
+
+
+
+### ð â®ïž ð¢
+
+ð¥ ð âïž ðŠ ðž, ð 5ïžâ£ð ð ð ð **ð ð**, & ð ð ð â ð ð ð§ âïž **ð ð** ð *â¡ ð ïž*.
+
+ð« ðŒ, â«ïž ðª â ð ðª ð `Enum`.
+
+**FastAPI** ðâðŠº ð ð ð â®ïž â
ð»:
+
+```Python hl_lines="1 8-10 13 18"
+{!../../../docs_src/path_operation_configuration/tutorial002b.py!}
+```
+
+## ð & ð
+
+ð ðª ð® `summary` & `description`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="20-21"
+ {!> ../../../docs_src/path_operation_configuration/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="20-21"
+ {!> ../../../docs_src/path_operation_configuration/tutorial003_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="18-19"
+ {!> ../../../docs_src/path_operation_configuration/tutorial003_py310.py!}
+ ```
+
+## ð âªïžâ¡ïž #ïžâ£
+
+ð ð ð & ð ð âž, ð ðª ð£ *â¡ ð ïž* ð ð¢ #ïžâ£ & **FastAPI** ð â â«ïž âªïžâ¡ïž ð€.
+
+ð ðª â â #ïžâ£ , â«ïž ð ð¬ & ð¥ â (â ð ð§ #ïžâ£ ð).
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="19-27"
+ {!> ../../../docs_src/path_operation_configuration/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="19-27"
+ {!> ../../../docs_src/path_operation_configuration/tutorial004_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="17-25"
+ {!> ../../../docs_src/path_operation_configuration/tutorial004_py310.py!}
+ ```
+
+â«ïž ð âïž ð ð©º:
+
+
+
+## ðš ð
+
+ð ðª â ðš ð â®ïž ð¢ `response_description`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="21"
+ {!> ../../../docs_src/path_operation_configuration/tutorial005.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="21"
+ {!> ../../../docs_src/path_operation_configuration/tutorial005_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="19"
+ {!> ../../../docs_src/path_operation_configuration/tutorial005_py310.py!}
+ ```
+
+!!! info
+ ð ð `response_description` ð ð¯ ðš, `description` ð *â¡ ð ïž* ð¢.
+
+!!! check
+ ð â ð ð *â¡ ð ïž* ð ðš ð.
+
+ , ð¥ ð ð« ð 1ïžâ£, **FastAPI** ð ð ð 1ïžâ£ "ð ðš".
+
+
+
+## ð¢ *â¡ ð ïž*
+
+ð¥ ð ðª ⢠*â¡ ð ïž* ð¢, âïž ðµ â â«ïž, ð¶ââïž ð¢ `deprecated`:
+
+```Python hl_lines="16"
+{!../../../docs_src/path_operation_configuration/tutorial006.py!}
+```
+
+â«ïž ð ð¯ ⢠ð¢ ð ð©º:
+
+
+
+â
â ð¢ & ð«-ð¢ *â¡ ð ïž* ð ð:
+
+
+
+## ð
+
+ð ðª ð & ð® ð ð *â¡ ð ïž* ðª ð¶ââïž ð¢ *â¡ ð ïž ðšâðš*.
diff --git a/docs/em/docs/tutorial/path-params-numeric-validations.md b/docs/em/docs/tutorial/path-params-numeric-validations.md
new file mode 100644
index 000000000..b1ba2670b
--- /dev/null
+++ b/docs/em/docs/tutorial/path-params-numeric-validations.md
@@ -0,0 +1,138 @@
+# â¡ ð¢ & ð¢ ð¬
+
+ð ð ð ð ðª ð£ ð
ð¬ & ð ð¢ ð¢ â®ïž `Query`, ð ðª ð£ ð ð ð¬ & ð â¡ ð¢ â®ïž `Path`.
+
+## ð â¡
+
+ð¥, ð `Path` âªïžâ¡ïž `fastapi`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="3"
+ {!> ../../../docs_src/path_params_numeric_validations/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/path_params_numeric_validations/tutorial001_py310.py!}
+ ```
+
+## ð£ ð
+
+ð ðª ð£ ð ð ð¢ `Query`.
+
+ðŒ, ð£ `title` ð ð² â¡ ð¢ `item_id` ð ðª ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="10"
+ {!> ../../../docs_src/path_params_numeric_validations/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="8"
+ {!> ../../../docs_src/path_params_numeric_validations/tutorial001_py310.py!}
+ ```
+
+!!! note
+ â¡ ð¢ ð§ â â«ïž âïž ð â¡.
+
+ , ð ð ð£ â«ïž â®ïž `...` ⢠â«ïž â.
+
+ ð, ð¥ ð ð£ â«ïž â®ïž `None` âïž â ð¢ ð², â«ïž ð ð« ð ð³, â«ïž ð ð§ ð.
+
+## â ð¢ ð ðª
+
+â¡ïž ð¬ ð ð ð ð£ ð¢ ð¢ `q` â `str`.
+
+& ð ð« ðª ð£ ð³ ð ð ð¢, ð ð« ð€ ðª âïž `Query`.
+
+âïž ð ðª âïž `Path` `item_id` â¡ ð¢.
+
+ð ð ð ð¥ ð ð® ð² â®ïž "ð¢" â ð² ð ð« âïž "ð¢".
+
+âïž ð ðª ð€-â ð«, & âïž ð² ðµ ð¢ (ð¢ ð¢ `q`) ð¥.
+
+â«ïž ð« ð€ **FastAPI**. â«ïž ð ð ð¢ ð« ð, ð & ð¢ ð (`Query`, `Path`, âïž), â«ïž ð« ð
ð â.
+
+, ð ðª ð£ ð ð¢:
+
+```Python hl_lines="7"
+{!../../../docs_src/path_params_numeric_validations/tutorial002.py!}
+```
+
+## â ð¢ ð ðª, ð±
+
+ð¥ ð ð ð£ `q` ð¢ ð¢ ðµ `Query` ð« ð ð¢ ð², & â¡ ð¢ `item_id` âïž `Path`, & âïž ð« ð â, ð âïž ð¥ ð â ð.
+
+ð¶ââïž `*`, ð¥ ð¢ ð¢.
+
+ð ð ð« ð³ â®ïž ð `*`, âïž â«ïž ð ð ð ð ð ð¢ ð ð€ ðšð» â (ð-ð² ð«), ð kwargs
. ð¥ ð« ð« âïž ð¢ ð².
+
+```Python hl_lines="7"
+{!../../../docs_src/path_params_numeric_validations/tutorial003.py!}
+```
+
+## ð¢ ð¬: ð ð âïž ð
+
+â®ïž `Query` & `Path` (& ð ð ð ð âª) ð ðª ð£ ð¢ â.
+
+ð¥, â®ïž `ge=1`, `item_id` ð ðª ð¢ ð¢ "`g`ð
Ÿ ð âïž `e`ð
Ÿ" `1`.
+
+```Python hl_lines="8"
+{!../../../docs_src/path_params_numeric_validations/tutorial004.py!}
+```
+
+## ð¢ ð¬: ð ð & ð ð âïž ð
+
+ð â:
+
+* `gt`: `g`ð
Ÿ `t`ð²
+* `le`: `l`ð ð âïž `e`ð
Ÿ
+
+```Python hl_lines="9"
+{!../../../docs_src/path_params_numeric_validations/tutorial005.py!}
+```
+
+## ð¢ ð¬: ð, ð ð & ð ð
+
+ð¢ ð¬ ð· `float` ð².
+
+ð¥ ðâ â«ïž â¶ïžïž â ðª ð£ gt
& ð« ge
. â®ïž â«ïž ð ðª ð, ðŒ, ð ð² ð ð ð `0`, ð¥ â«ïž ð ð `1`.
+
+, `0.5` ð â ð². âïž `0.0` âïž `0` ð ð«.
+
+& ð lt
.
+
+```Python hl_lines="11"
+{!../../../docs_src/path_params_numeric_validations/tutorial006.py!}
+```
+
+## ð
+
+â®ïž `Query`, `Path` (& ð ð ð« ð) ð ðª ð£ ð & ð» ð¬ ð ð â®ïž [ð¢ ð¢ & ð» ð¬](query-params-str-validations.md){.internal-link target=_blank}.
+
+& ð ðª ð£ ð¢ ð¬:
+
+* `gt`: `g`ð
Ÿ `t`ð²
+* `ge`: `g`ð
Ÿ ð âïž `e`ð
Ÿ
+* `lt`: `l`ð `t`ð²
+* `le`: `l`ð ð âïž `e`ð
Ÿ
+
+!!! info
+ `Query`, `Path`, & ð ð ð ð ð ⪠ð¿ â `Param` ð.
+
+ ð ð« ð° ð ð¢ ð ð¬ & ð ð âïž ð.
+
+!!! note "ð¡ â¹"
+ ðâ ð ð `Query`, `Path` & ð âªïžâ¡ïž `fastapi`, ð« ð€ ð¢.
+
+ ð ðâ ð€, ðš ð ð ð ð.
+
+ , ð ð `Query`, â ð¢. & ðâ ð ð€ â«ïž, â«ïž ðš ð ð ð `Query`.
+
+ ð« ð¢ ð€ (â©ïž âïž ð ð) ð ð ðšâðš ð« ⢠â ð ð« ð.
+
+ ð ð ð ðª âïž ð ð ðšâðš & ð ïž ð§° ðµ âïž ð® ð ð³ ð€·ââ ð â.
diff --git a/docs/em/docs/tutorial/path-params.md b/docs/em/docs/tutorial/path-params.md
new file mode 100644
index 000000000..ea939b458
--- /dev/null
+++ b/docs/em/docs/tutorial/path-params.md
@@ -0,0 +1,252 @@
+# â¡ ð¢
+
+ð ðª ð£ â¡ "ð¢" âïž "ð¢" â®ïž ð â âïž ð ð ð»:
+
+```Python hl_lines="6-7"
+{!../../../docs_src/path_params/tutorial001.py!}
+```
+
+ð² â¡ ð¢ `item_id` ð ð¶ââïž ð ð¢ â `item_id`.
+
+, ð¥ ð ð ð ðŒ & ð¶ http://127.0.0.1:8000/items/foo, ð ð ð ðš:
+
+```JSON
+{"item_id":"foo"}
+```
+
+## â¡ ð¢ â®ïž ð
+
+ð ðª ð£ ð â¡ ð¢ ð¢, âïž ð© ð ð â:
+
+```Python hl_lines="7"
+{!../../../docs_src/path_params/tutorial002.py!}
+```
+
+ð ðŒ, `item_id` ð£ `int`.
+
+!!! check
+ ð ð ð€ ð ðšâðš ðâðŠº ð ð ð¢, â®ïž â â
, ð ïž, âïž.
+
+## ðœ ð ïž
+
+ð¥ ð ð ð ðŒ & ð ð ð¥ http://127.0.0.1:8000/items/3, ð ð ð ðš:
+
+```JSON
+{"item_id":3}
+```
+
+!!! check
+ ð ð ð² ð ð¢ ðš (& ðš) `3`, ð `int`, ð« ð» `"3"`.
+
+ , â®ïž ð ð ð, **FastAPI** ð€ ð ð§ ðš "â".
+
+## ðœ ð¬
+
+âïž ð¥ ð ð¶ ð¥ http://127.0.0.1:8000/items/foo, ð ð ð ð ðºðžð â:
+
+```JSON
+{
+ "detail": [
+ {
+ "loc": [
+ "path",
+ "item_id"
+ ],
+ "msg": "value is not a valid integer",
+ "type": "type_error.integer"
+ }
+ ]
+}
+```
+
+â©ïž â¡ ð¢ `item_id` âïž ð² `"foo"`, â ð« `int`.
+
+ð â ð ð ð¥ ð ð `float` â©ïž `int`,: http://127.0.0.1:8000/items/4.2
+
+!!! check
+ , â®ïž ð ð ð ð, **FastAPI** ð€ ð ðœ ð¬.
+
+ ð ð â ð¯ ðµðž â«ïžâ â ðâ ð¬ ð« ð¶ââïž.
+
+ ð ð ð ⪠ð ïž & ð ïž ð ð ð â®ïž ð ð ïž.
+
+## ð§Ÿ
+
+& ðâ ð ð ð ð¥ http://127.0.0.1:8000/docs, ð ð ð ð§, ð, ð ïž ð§Ÿ ð:
+
+
+
+!!! check
+ ð, â®ïž ð ð ð ð ð, **FastAPI** ð€ ð ð§, ð 𧟠(ð ïž ðŠ ð).
+
+ ð ð â¡ ð¢ ð£ ð¢.
+
+## ð©-âïž ð°, ð ð§Ÿ
+
+& â©ïž ð ð âªïžâ¡ïž ð ð©, ð€ ð ð ð§°.
+
+â©ïž ð, **FastAPI** â«ïž ð ð ð ïž ð§Ÿ (âïž ð), â ð ðª ð http://127.0.0.1:8000/redoc:
+
+
+
+ð ð, ð€ ð ð ð§°. â
ð ⡠𧰠ð ðªðž.
+
+## Pydantic
+
+ð ðœ ð¬ ð ðœ ð Pydantic, ð ð€ ð ð° âªïžâ¡ïž â«ïž. & ð ð ð ð â.
+
+ð ðª âïž ð ð ð â®ïž `str`, `float`, `bool` & ð ð ð ð ð.
+
+ð ð« ð¬ â ð ð°.
+
+## â ð€
+
+ðâ ð *â¡ ð ïž*, ð ðª ð â ðâ ð âïž ð§ â¡.
+
+ð `/users/me`, â¡ïž ð¬ ð â«ïž ð€ ð ð â®ïž ð©âð».
+
+& â€Žïž ð ðª âïž â¡ `/users/{user_id}` ð€ ðœ ð ð¯ ð©âð» ð©âð» ð.
+
+â©ïž *â¡ ð ïž* ð¬ â, ð ðª â ð ð â¡ `/users/me` ð£ â 1ïžâ£ `/users/{user_id}`:
+
+```Python hl_lines="6 11"
+{!../../../docs_src/path_params/tutorial003.py!}
+```
+
+âª, â¡ `/users/{user_id}` ð ð `/users/me`, "ð" ð â«ïž ðš ð¢ `user_id` â®ïž ð² `"me"`.
+
+â¡, ð ð«ð â â¡ ð ïž:
+
+```Python hl_lines="6 11"
+{!../../../docs_src/path_params/tutorial003b.py!}
+```
+
+ð¥ ð ð ð§ âïž â©ïž â¡ ð ð¥.
+
+## ð ð²
+
+ð¥ ð âïž *â¡ ð ïž* ð ðš *â¡ ð¢*, âïž ð ð ðª â *â¡ ð¢* ð² ð, ð ðª âïž ð© ð `Enum`.
+
+### â `Enum` ð
+
+ð `Enum` & â ð§-ð ð ð âªïžâ¡ïž `str` & âªïžâ¡ïž `Enum`.
+
+ð âªïžâ¡ïž `str` ð ïž ð©º ð ðª ð ð ð² ð ð `string` & ð ðª â â.
+
+â€Žïž â ð ð¢ â®ïž ð§ ð², â ð ðª â ð²:
+
+```Python hl_lines="1 6-9"
+{!../../../docs_src/path_params/tutorial005.py!}
+```
+
+!!! info
+ ð¢ (âïž ð¢) ðª ð â©ïž ⬠3ïžâ£.4ïžâ£.
+
+!!! tip
+ ð¥ ð ð, "ð", "ð", & "ð" ð ð° ð« ð·.
+
+### ð£ *â¡ ð¢*
+
+â€Žïž â *â¡ ð¢* â®ïž ð â âïž ð¢ ð ð â (`ModelName`):
+
+```Python hl_lines="16"
+{!../../../docs_src/path_params/tutorial005.py!}
+```
+
+### â
ð©º
+
+â©ïž ðª ð² *â¡ ð¢* ð¢, ð 𩺠ðª ðŠ ð« ð:
+
+
+
+### ð· â®ïž ð *ð¢*
+
+ð² *â¡ ð¢* ð *ð¢ ðšâð*.
+
+#### ð¬ *ð¢ ðšâð*
+
+ð ðª ð¬ â«ïž â®ïž *ð¢ ðšâð* ð â ð¢ `ModelName`:
+
+```Python hl_lines="17"
+{!../../../docs_src/path_params/tutorial005.py!}
+```
+
+#### ð€ *ð¢ ð²*
+
+ð ðª ð€ â ð² ( `str` ð ðŒ) âïž `model_name.value`, âïž ð¢, `your_enum_member.value`:
+
+```Python hl_lines="20"
+{!../../../docs_src/path_params/tutorial005.py!}
+```
+
+!!! tip
+ ð ðª ð ð² `"lenet"` â®ïž `ModelName.lenet.value`.
+
+#### ðš *ð¢ ðšâð*
+
+ð ðª ðš *ð¢ ðšâð* âªïžâ¡ïž ð *â¡ ð ïž*, ðŠ ð» ðª (â
`dict`).
+
+ð« ð ð ð« ð ð² (ð» ð ðŒ) â ð¬ ð« ð©âð»:
+
+```Python hl_lines="18 21 23"
+{!../../../docs_src/path_params/tutorial005.py!}
+```
+
+ð ð©âð» ð ð ð€ ð» ðš ð:
+
+```JSON
+{
+ "model_name": "alexnet",
+ "message": "Deep Learning FTW!"
+}
+```
+
+## â¡ ð¢ â â¡
+
+â¡ïž ð¬ ð âïž *â¡ ð ïž* â®ïž â¡ `/files/{file_path}`.
+
+âïž ð ðª `file_path` â«ïž ð *â¡*, ð `home/johndoe/myfile.txt`.
+
+, ð ð ð ð ð³ ð: `/files/home/johndoe/myfile.txt`.
+
+### ð ðâðŠº
+
+ð ð« ðâðŠº ð ð£ *â¡ ð¢* ð *â¡* ð, ð ðª âïž ð ð â ð¯ & ð¬.
+
+ð, ð ðª â«ïž **FastAPI**, âïž 1ïžâ£ ð 𧰠âªïžâ¡ïž ð.
+
+& 𩺠ð ð·, ð ð« â ð 𧟠ð¬ ð ð¢ ð ð â¡.
+
+### â¡ ð
+
+âïž ð ð âªïžâ¡ïž ð ð ðª ð£ *â¡ ð¢* â *â¡* âïž ð ð:
+
+```
+/files/{file_path:path}
+```
+
+ð ðŒ, ð ð¢ `file_path`, & ð ð, `:path`, ð¬ â«ïž ð ð¢ ð ð ð *â¡*.
+
+, ð ðª âïž â«ïž â®ïž:
+
+```Python hl_lines="6"
+{!../../../docs_src/path_params/tutorial004.py!}
+```
+
+!!! tip
+ ð ðª ðª ð¢ ð `/home/johndoe/myfile.txt`, â®ïž ð ðª (`/`).
+
+ ð ðŒ, ð ð: `/files//home/johndoe/myfile.txt`, â®ïž 2ïžâ£âïž ðª (`//`) ð `files` & `home`.
+
+## ð
+
+â®ïž **FastAPI**, âïž ð, ðïž & ð© ð ð ð, ð ð€:
+
+* ðšâðš ðâðŠº: â â
, â, âïž.
+* ðœ "â"
+* ðœ ð¬
+* ð ïž â & ð§ ð§Ÿ
+
+& ð ðŽ âïž ð£ ð« ð.
+
+ð ð² ð â ð **FastAPI** ð¬ ð ð ïž (âïž âªïžâ¡ïž ð£ ð).
diff --git a/docs/em/docs/tutorial/query-params-str-validations.md b/docs/em/docs/tutorial/query-params-str-validations.md
new file mode 100644
index 000000000..d6b67bd51
--- /dev/null
+++ b/docs/em/docs/tutorial/query-params-str-validations.md
@@ -0,0 +1,467 @@
+# ð¢ ð¢ & ð» ð¬
+
+**FastAPI** â ð ð£ ð â¹ & ð¬ ð ð¢.
+
+â¡ïž â ð ðž ðŒ:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/query_params_str_validations/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/query_params_str_validations/tutorial001_py310.py!}
+ ```
+
+ð¢ ð¢ `q` ð `Union[str, None]` (âïž `str | None` ð 3ïžâ£.1ïžâ£0ïžâ£), ð â ð â«ïž ð `str` âïž ðª `None`, & ð, ð¢ ð² `None`, FastAPI ð ð â«ïž ð« â.
+
+!!! note
+ FastAPI ð ð ð ð² `q` ð« â â©ïž ð¢ ð² `= None`.
+
+ `Union` `Union[str, None]` ð â ð ðšâðš ð€ ð ð ðâðŠº & ð â.
+
+## ð ð¬
+
+ð¥ ð ð ïž ð âïž `q` ðŠ, ðâ â«ïž ð, **ð® ð ð« ð 5ïžâ£0ïžâ£ ðŠ¹**.
+
+### ð `Query`
+
+ð ð, ð¥ ð `Query` âªïžâ¡ïž `fastapi`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="3"
+ {!> ../../../docs_src/query_params_str_validations/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/query_params_str_validations/tutorial002_py310.py!}
+ ```
+
+## âïž `Query` ð¢ ð²
+
+& ð âïž â«ïž ð¢ ð² ð ð¢, â ð¢ `max_length` 5ïžâ£0ïžâ£:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/query_params_str_validations/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/query_params_str_validations/tutorial002_py310.py!}
+ ```
+
+ð¥ âïž â ð¢ ð² `None` ð¢ â®ïž `Query()`, ð¥ ðª ð â ð¢ ð² â®ïž ð¢ `Query(default=None)`, â«ïž ðŠ ð ð¯ â ð ð¢ ð².
+
+:
+
+```Python
+q: Union[str, None] = Query(default=None)
+```
+
+...â ð¢ ðŠ, ð:
+
+```Python
+q: Union[str, None] = None
+```
+
+& ð 3ïžâ£.1ïžâ£0ïžâ£ & ð:
+
+```Python
+q: str | None = Query(default=None)
+```
+
+...â ð¢ ðŠ, ð:
+
+```Python
+q: str | None = None
+```
+
+âïž â«ïž ð£ â«ïž ð¯ ðââ ð¢ ð¢.
+
+!!! info
+ âïž ð€¯ ð ð
â ð â ð¢ ðŠ ð:
+
+ ```Python
+ = None
+ ```
+
+ âïž:
+
+ ```Python
+ = Query(default=None)
+ ```
+
+ â«ïž ð âïž ð `None` ð¢ ð², & ð ð â ð¢ **ð« â**.
+
+ `Union[str, None]` ð â ð ðšâðš ð ð» ðâðŠº, âïž â«ïž ð« â«ïžâ ð¬ FastAPI ð ð ð¢ ð« â.
+
+‎ïž, ð¥ ðª ð¶ââïž ð
ð¢ `Query`. ð ðŒ, `max_length` ð¢ ð â ð»:
+
+```Python
+q: Union[str, None] = Query(default=None, max_length=50)
+```
+
+ð ð â ð, ðŠ ð â ðâ ð ð« â, & ð ð¢ ð ð *â¡ ð ïž*.
+
+## ð® ð
ð¬
+
+ð ðª ð® ð¢ `min_length`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="10"
+ {!> ../../../docs_src/query_params_str_validations/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/query_params_str_validations/tutorial003_py310.py!}
+ ```
+
+## ð® ð¥ ð§¬
+
+ð ðª ð¬ ð¥ 𧬠ð ð¢ ð ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="11"
+ {!> ../../../docs_src/query_params_str_validations/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/query_params_str_validations/tutorial004_py310.py!}
+ ```
+
+ð ð¯ ð¥ 𧬠â
ð ðš ð¢ ð²:
+
+* `^`: â¶ïž â®ïž ð ðŠ¹, ð« âïž ðŠ¹ â.
+* `fixedquery`: âïž â ð² `fixedquery`.
+* `$`: ð ð€, ð« âïž ð ð ðŠ¹ â®ïž `fixedquery`.
+
+ð¥ ð ð ðž â®ïž ð ð **"ð¥ ð§¬"** ð, ð« ð. ð« ðïž â ð ð«ð«. ð ðª ð ð© ðµ ðââ ð¥ ð§¬.
+
+âïž ðâ ð ðª ð« & ð¶ & ð¡ ð«, ð ð ð ðª ⪠âïž ð« ð **FastAPI**.
+
+## ð¢ ð²
+
+ð ð ð ð ðª ð¶ââïž `None` ð² `default` ð¢, ð ðª ð¶ââïž ð ð².
+
+â¡ïž ð¬ ð ð ð ð£ `q` ð¢ ð¢ âïž `min_length` `3`, & âïž ð¢ ð² `"fixedquery"`:
+
+```Python hl_lines="7"
+{!../../../docs_src/query_params_str_validations/tutorial005.py!}
+```
+
+!!! note
+ âïž ð¢ ð² â ð¢ ðŠ.
+
+## â â«ïž â
+
+ðâ ð¥ ð« ðª ð£ ð
ð¬ âïž ð, ð¥ ðª â `q` ð¢ ð¢ â ð« ð£ ð¢ ð², ð:
+
+```Python
+q: str
+```
+
+â©ïž:
+
+```Python
+q: Union[str, None] = None
+```
+
+âïž ð¥ ð ð£ â«ïž â®ïž `Query`, ðŒ ð:
+
+```Python
+q: Union[str, None] = Query(default=None, min_length=3)
+```
+
+, ðâ ð ðª ð£ ð² â ⪠âïž `Query`, ð ðª ð¯ ð« ð£ ð¢ ð²:
+
+```Python hl_lines="7"
+{!../../../docs_src/query_params_str_validations/tutorial006.py!}
+```
+
+### â â®ïž â (`...`)
+
+ð€ ð ð ð¯ ð£ ð ð² â. ð ðª â `default` ð¢ ð ð² `...`:
+
+```Python hl_lines="7"
+{!../../../docs_src/query_params_str_validations/tutorial006b.py!}
+```
+
+!!! info
+ ð¥ ð ð« ð ð `...` â: â«ïž ð ð ð², â«ïž ð ð & ð€ "â".
+
+ â«ïž âïž Pydantic & FastAPI ð¯ ð£ ð ð² â.
+
+ð ð â¡ïž **FastAPI** ð ð ð ð¢ â.
+
+### â â®ïž `None`
+
+ð ðª ð£ ð ð¢ ðª ð« `None`, âïž ð â«ïž â. ð ð â¡ ð©âð» ðš ð², ð¥ ð² `None`.
+
+ð, ð ðª ð£ ð `None` â ð âïž âïž `default=...`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/query_params_str_validations/tutorial006c.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/query_params_str_validations/tutorial006c_py310.py!}
+ ```
+
+!!! tip
+ Pydantic, â â«ïžâ ðïž ð ðœ ð¬ & ð ïž FastAPI, âïž ð ð ðâ ð âïž `Optional` âïž `Union[Something, None]` ðµ ð¢ ð², ð ðª â ð
ð â«ïž Pydantic 𩺠ð â ðŠ ð.
+
+### âïž Pydantic `Required` â©ïž â (`...`)
+
+ð¥ ð ð ð¬ âïž `...`, ð ðª ð & âïž `Required` âªïžâ¡ïž Pydantic:
+
+```Python hl_lines="2 8"
+{!../../../docs_src/query_params_str_validations/tutorial006d.py!}
+```
+
+!!! tip
+ ð ð ð
ðŒ, ðâ ð³ ð, ð ðª ð¯ ð« `default` ð¢, ð ð ð« âïž âïž `...` ð« `Required`.
+
+## ð¢ ð¢ ð / ð ð²
+
+ðâ ð ð¬ ð¢ ð¢ ð¯ â®ïž `Query` ð ðª ð£ â«ïž ðš ð ð², âïž ðââ ð ð, ðš ð ð².
+
+ðŒ, ð£ ð¢ ð¢ `q` ð ðª ð ð ð° ð, ð ðª â:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/query_params_str_validations/tutorial011.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/query_params_str_validations/tutorial011_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/query_params_str_validations/tutorial011_py310.py!}
+ ```
+
+‎ïž, â®ïž ð ð:
+
+```
+http://localhost:8000/items/?q=foo&q=bar
+```
+
+ð ð ðš ð `q` *ð¢ ð¢'* ð² (`foo` & `bar`) ð `list` ð ð *â¡ ð ïž ð¢*, *ð¢ ð¢* `q`.
+
+, ðš ð ð ð:
+
+```JSON
+{
+ "q": [
+ "foo",
+ "bar"
+ ]
+}
+```
+
+!!! tip
+ ð£ ð¢ ð¢ â®ïž ð `list`, ð ðŒ ð, ð ðª ð¯ âïž `Query`, ⪠â«ïž ð ð¬ ðš ðª.
+
+ð ð ïž ð©º ð â¹ â¡ïž, â ð ð²:
+
+
+
+### ð¢ ð¢ ð / ð ð² â®ïž ð¢
+
+& ð ðª ð¬ ð¢ `list` ð² ð¥ ð ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/query_params_str_validations/tutorial012.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/query_params_str_validations/tutorial012_py39.py!}
+ ```
+
+ð¥ ð ð¶:
+
+```
+http://localhost:8000/items/
+```
+
+ð¢ `q` ð: `["foo", "bar"]` & ð ðš ð:
+
+```JSON
+{
+ "q": [
+ "foo",
+ "bar"
+ ]
+}
+```
+
+#### âïž `list`
+
+ð ðª âïž `list` ð â©ïž `List[str]` (âïž `list[str]` ð 3ïžâ£.9ïžâ£ â):
+
+```Python hl_lines="7"
+{!../../../docs_src/query_params_str_validations/tutorial013.py!}
+```
+
+!!! note
+ âïž ð€¯ ð ð ðŒ, FastAPI ð ð« â
ð ð.
+
+ ðŒ, `List[int]` ð â
(& ð) ð ð ð ð¢. âïž `list` ð ð«ð.
+
+## ð£ ð
ð
+
+ð ðª ð® ð
â¹ ð ð¢.
+
+ð â¹ ð ð ð ð & âïž ð§Ÿ ð©âð» ð¢ & ð¢ ð§°.
+
+!!! note
+ âïž ð€¯ ð ð 𧰠5ïžâ£ð âïž ð ð ð ðâðŠº.
+
+ ð« ðª ð« ðŠ ð â â¹ ð£, ð ð
ðŒ, â â ⪠ð ð ïž.
+
+ð ðª ð® `title`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="10"
+ {!> ../../../docs_src/query_params_str_validations/tutorial007.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="8"
+ {!> ../../../docs_src/query_params_str_validations/tutorial007_py310.py!}
+ ```
+
+& `description`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="13"
+ {!> ../../../docs_src/query_params_str_validations/tutorial008.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="12"
+ {!> ../../../docs_src/query_params_str_validations/tutorial008_py310.py!}
+ ```
+
+## ð ð¢
+
+ð ð ð ð ð¢ `item-query`.
+
+ð:
+
+```
+http://127.0.0.1:8000/items/?item-query=foobaritems
+```
+
+âïž `item-query` ð« â ð ð¢ ð.
+
+ð ð `item_query`.
+
+âïž ð ðª â«ïž â«ïžâ `item-query`...
+
+â€Žïž ð ðª ð£ `alias`, & ð ð â«ïžâ ð âïž ð ð¢ ð²:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/query_params_str_validations/tutorial009.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/query_params_str_validations/tutorial009_py310.py!}
+ ```
+
+## ð ð¢
+
+ð â¡ïž ð¬ ð ð« ð ð ð¢ ð«ð.
+
+ð âïž ð â«ïž ð€ ⪠â©ïž ð€ ð©âð» âïž â«ïž, âïž ð ð 𩺠ð¯ ðŠ â«ïž ð¢.
+
+â€Žïž ð¶ââïž ð¢ `deprecated=True` `Query`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="18"
+ {!> ../../../docs_src/query_params_str_validations/tutorial010.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="17"
+ {!> ../../../docs_src/query_params_str_validations/tutorial010_py310.py!}
+ ```
+
+𩺠ð ðŠ â«ïž ð ð:
+
+
+
+## ð« âªïžâ¡ïž ð
+
+ð« ð¢ ð¢ âªïžâ¡ïž ð ð ð (& â¡ïž, âªïžâ¡ïž ð§ 𧟠âïž), â ð¢ `include_in_schema` `Query` `False`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="10"
+ {!> ../../../docs_src/query_params_str_validations/tutorial014.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="8"
+ {!> ../../../docs_src/query_params_str_validations/tutorial014_py310.py!}
+ ```
+
+## ð
+
+ð ðª ð£ ð ð¬ & ð ð ð¢.
+
+ð ð¬ & ð:
+
+* `alias`
+* `title`
+* `description`
+* `deprecated`
+
+ð¬ ð¯ ð»:
+
+* `min_length`
+* `max_length`
+* `regex`
+
+ð« ðŒ ð ð â ð£ ð¬ `str` ð².
+
+ð â ð ð â ð£ ð¬ ð ð, ð ð¢.
diff --git a/docs/em/docs/tutorial/query-params.md b/docs/em/docs/tutorial/query-params.md
new file mode 100644
index 000000000..ccb235c15
--- /dev/null
+++ b/docs/em/docs/tutorial/query-params.md
@@ -0,0 +1,225 @@
+# ð¢ ð¢
+
+ðâ ð ð£ ð ð¢ ð¢ ð ð« ð â¡ ð¢, ð« ð ð¬ "ð¢" ð¢.
+
+```Python hl_lines="9"
+{!../../../docs_src/query_params/tutorial001.py!}
+```
+
+ð¢ â ð-ð² ð« ð ð¶ â®ïž `?` ð, ð `&` ðŠ¹.
+
+ðŒ, ð:
+
+```
+http://127.0.0.1:8000/items/?skip=0&limit=10
+```
+
+...ð¢ ð¢:
+
+* `skip`: â®ïž ð² `0`
+* `limit`: â®ïž ð² `10`
+
+ð« ð ð, ð« "ð" ð».
+
+âïž ðâ ð ð£ ð« â®ïž ð ð (ðŒ ð, `int`), ð« ð ð ð & â ð¡ â«ïž.
+
+ð ð ð ïž ð â â¡ ð¢ â ð¢ ð¢:
+
+* ðšâðš ðâðŠº (ð²)
+* ðœ "â"
+* ðœ ð¬
+* ð§ ð§Ÿ
+
+## ð¢
+
+ð¢ ð¢ ð« ð§ ð â¡, ð« ðª ðŠ & ðª âïž ð¢ ð².
+
+ðŒ ð ð« âïž ð¢ ð² `skip=0` & `limit=10`.
+
+, ð ð:
+
+```
+http://127.0.0.1:8000/items/
+```
+
+ð ð ð:
+
+```
+http://127.0.0.1:8000/items/?skip=0&limit=10
+```
+
+âïž ð¥ ð ð¶, ðŒ:
+
+```
+http://127.0.0.1:8000/items/?skip=20
+```
+
+ð¢ ð² ð ð¢ ð:
+
+* `skip=20`: â©ïž ð â â«ïž ð
+* `limit=10`: â©ïž ð ð¢ ð²
+
+## ðŠ ð¢
+
+ð ð, ð ðª ð£ ðŠ ð¢ ð¢, â ð« ð¢ `None`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/query_params/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/query_params/tutorial002_py310.py!}
+ ```
+
+ð ðŒ, ð¢ ð¢ `q` ð ðŠ, & ð `None` ð¢.
+
+!!! check
+ ð ð **FastAPI** ð ð¥ ð ð â¡ ð¢ `item_id` â¡ ð¢ & `q` ð«,, â«ïž ð¢ ð¢.
+
+## ð¢ ð¢ ð ð ïž
+
+ð ðª ð£ `bool` ð, & ð« ð ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/query_params/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/query_params/tutorial003_py310.py!}
+ ```
+
+ð ðŒ, ð¥ ð ð¶:
+
+```
+http://127.0.0.1:8000/items/foo?short=1
+```
+
+âïž
+
+```
+http://127.0.0.1:8000/items/foo?short=True
+```
+
+âïž
+
+```
+http://127.0.0.1:8000/items/foo?short=true
+```
+
+âïž
+
+```
+http://127.0.0.1:8000/items/foo?short=on
+```
+
+âïž
+
+```
+http://127.0.0.1:8000/items/foo?short=yes
+```
+
+âïž ð ð ðŒ ð (ð , ð¥ ð€ ð , âïž), ð ð¢ ð ð ð¢ `short` â®ïž `bool` ð² `True`. ⪠`False`.
+
+
+## ð â¡ & ð¢ ð¢
+
+ð ðª ð£ ð â¡ ð¢ & ð¢ ð¢ ð ð°, **FastAPI** ð â â.
+
+& ð ð« âïž ð£ ð« ð ð¯ â.
+
+ð« ð ð¬ ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="8 10"
+ {!> ../../../docs_src/query_params/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="6 8"
+ {!> ../../../docs_src/query_params/tutorial004_py310.py!}
+ ```
+
+## â ð¢ ð¢
+
+ðâ ð ð£ ð¢ ð² ð«-â¡ ð¢ (ð, ð¥ âïž ðŽ ð ð¢ ð¢), â€Žïž â«ïž ð« â.
+
+ð¥ ð ð« ð ð® ð¯ ð² âïž â â«ïž ðŠ, â ð¢ `None`.
+
+âïž ðâ ð ð â ð¢ ð¢ â, ð ðª ð« ð£ ð ð¢ ð²:
+
+```Python hl_lines="6-7"
+{!../../../docs_src/query_params/tutorial005.py!}
+```
+
+ð¥ ð¢ ð¢ `needy` â ð¢ ð¢ ð `str`.
+
+ð¥ ð ð ð ð¥ ð ð:
+
+```
+http://127.0.0.1:8000/items/foo-item
+```
+
+...ðµ â â ð¢ `needy`, ð ð ð â ð:
+
+```JSON
+{
+ "detail": [
+ {
+ "loc": [
+ "query",
+ "needy"
+ ],
+ "msg": "field required",
+ "type": "value_error.missing"
+ }
+ ]
+}
+```
+
+`needy` ð ð¢, ð ð ðª â â«ïž ð:
+
+```
+http://127.0.0.1:8000/items/foo-item?needy=sooooneedy
+```
+
+...ð ð ð·:
+
+```JSON
+{
+ "item_id": "foo-item",
+ "needy": "sooooneedy"
+}
+```
+
+& âïž, ð ðª ð¬ ð¢ â, âïž ð¢ ð², & ð ðŠ:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="10"
+ {!> ../../../docs_src/query_params/tutorial006.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="8"
+ {!> ../../../docs_src/query_params/tutorial006_py310.py!}
+ ```
+
+ð ðŒ, ð€ 3ïžâ£ ð¢ ð¢:
+
+* `needy`, â `str`.
+* `skip`, `int` â®ïž ð¢ ð² `0`.
+* `limit`, ðŠ `int`.
+
+!!! tip
+ ð ðª âïž `Enum`â ð ð â®ïž [â¡ ð¢](path-params.md#predefined-values){.internal-link target=_blank}.
diff --git a/docs/em/docs/tutorial/request-files.md b/docs/em/docs/tutorial/request-files.md
new file mode 100644
index 000000000..26631823f
--- /dev/null
+++ b/docs/em/docs/tutorial/request-files.md
@@ -0,0 +1,186 @@
+# ðš ð
+
+ð ðª ð¬ ð ð ð©âð» âïž `File`.
+
+!!! info
+ ðš ð ð, ð¥ â `python-multipart`.
+
+ ð€¶ â. `pip install python-multipart`.
+
+ ð â©ïž ð ð ðš "ðš ðœ".
+
+## ð `File`
+
+ð `File` & `UploadFile` âªïžâ¡ïž `fastapi`:
+
+```Python hl_lines="1"
+{!../../../docs_src/request_files/tutorial001.py!}
+```
+
+## ð¬ `File` ð¢
+
+â ð ð¢ ð ð ð ð `Body` âïž `Form`:
+
+```Python hl_lines="7"
+{!../../../docs_src/request_files/tutorial001.py!}
+```
+
+!!! info
+ `File` ð ð ð ð âªïžâ¡ïž `Form`.
+
+ âïž ð ð ðâ ð ð `Query`, `Path`, `File` & ð âªïžâ¡ïž `fastapi`, ð ð€ ð¢ ð ðš ð ð.
+
+!!! tip
+ ð£ ð ðª, ð ðª âïž `File`, â©ïž ⪠ð¢ ð ð¬ ð¢ ð¢ âïž ðª (ð») ð¢.
+
+ð ð ð "ðš ðœ".
+
+ð¥ ð ð£ ð ð *â¡ ð ïž ð¢* ð¢ `bytes`, **FastAPI** ð â ð ð & ð ð ðš ð `bytes`.
+
+âïž ð€¯ ð ð â ð ð ð ð ðª ðŸ. ð ð ð· ð ð€ª ð.
+
+âïž ð€ ð ðŒ â ð ðª ð° âªïžâ¡ïž âïž `UploadFile`.
+
+## ð ð¢ â®ïž `UploadFile`
+
+ð¬ ð ð¢ â®ïž ð `UploadFile`:
+
+```Python hl_lines="12"
+{!../../../docs_src/request_files/tutorial001.py!}
+```
+
+âïž `UploadFile` âïž ð ð ð€ `bytes`:
+
+* ð ð« âïž âïž `File()` ð¢ ð² ð¢.
+* â«ïž âïž "ð§µ" ð:
+ * ð ðª ðŸ ð ð ð ð, & â®ïž ð¶ââïž ð ð â«ïž ð ðª ðŸ.
+* ð â ð â«ïž ð ð· ð â ð ð ðŒ, ð¹, â ð±, âïž. ðµ ð© ð ðŸ.
+* ð ðª ð€ ð âªïžâ¡ïž ð ð.
+* â«ïž âïž ð-ð `async` ð¢.
+* â«ïž ðŠ â ð `SpooledTemporaryFile` ð ð ð ðª ð¶ââïž ð ð ð ð â ð-ð ð.
+
+### `UploadFile`
+
+`UploadFile` âïž ð ð¢:
+
+* `filename`: `str` â®ïž â®ïž ð ð ð ð (â
`myimage.jpg`).
+* `content_type`: `str` â®ïž ð ð (ð ð / ð» ð) (â
`image/jpeg`).
+* `file`: `SpooledTemporaryFile` ( ð-ð ð). ð â ð ð ð ð ðª ð¶ââïž ð ð ð¢ âïž ð ð â "ð-ð" ð.
+
+`UploadFile` âïž ð `async` ð©âð¬. ð« ð ð€ ð ð ð©âð¬ ð (âïž ð `SpooledTemporaryFile`).
+
+* `write(data)`: â `data` (`str` âïž `bytes`) ð.
+* `read(size)`: â `size` (`int`) ð¢/ðŠ¹ ð.
+* `seek(offset)`: ð¶ ð¢ ð§ `offset` (`int`) ð.
+ * ð€¶ â., `await myfile.seek(0)` ð ð¶ â¶ïž ð.
+ * ð âŽïž â ð¥ ð ð `await myfile.read()` ð & â€Žïž ðª â ð ð.
+* `close()`: ð ð.
+
+ð ð« ð©âð¬ `async` ð©âð¬, ð ðª "â" ð«.
+
+ðŒ, ð `async` *â¡ ð ïž ð¢* ð ðª ð€ ð â®ïž:
+
+```Python
+contents = await myfile.read()
+```
+
+ð¥ ð ð ð `def` *â¡ ð ïž ð¢*, ð ðª ð `UploadFile.file` ð, ðŒ:
+
+```Python
+contents = myfile.file.read()
+```
+
+!!! note "`async` ð¡ â¹"
+ ðâ ð âïž `async` ð©âð¬, **FastAPI** ð ð ð©âð¬ 𧵠& â ð«.
+
+!!! note "ð ð¡ â¹"
+ **FastAPI**'â `UploadFile` ð ð âªïžâ¡ïž **ð**'â `UploadFile`, âïž ð® ðª ð â â«ïž ð â®ïž **Pydantic** & ð ð FastAPI.
+
+## â«ïžâ "ðš ðœ"
+
+ð ðž ðš (``) ðš ðœ ðœ ð âïž "ð" ð¢ ð ð, â«ïž ð âªïžâ¡ïž ð».
+
+**FastAPI** ð â ð â ð ð âªïžâ¡ïž â¶ïžïž ð¥ â©ïž ð».
+
+!!! note "ð¡ â¹"
+ ð âªïžâ¡ïž ðš ð ð âïž "ð» ð" `application/x-www-form-urlencoded` ðâ â«ïž ð« ð ð.
+
+ âïž ðâ ðš ð ð, â«ïž ð `multipart/form-data`. ð¥ ð âïž `File`, **FastAPI** ð ð â«ïž âïž ð€ ð âªïžâ¡ïž â ð ðª.
+
+ ð¥ ð ð â ð ð ð ð¢ & ðš ð, ð³ ð ðž 𩺠POST
.
+
+!!! warning
+ ð ðª ð£ ð `File` & `Form` ð¢ *â¡ ð ïž*, âïž ð ðª ð« ð£ `Body` ð ð ð â ðš ð», ðš ð âïž ðª ð âïž `multipart/form-data` â©ïž `application/json`.
+
+ ð ð« ð« **FastAPI**, â«ïž ð ðºðžð ð ïž.
+
+## ðŠ ð ð
+
+ð ðª â ð ðŠ âïž ð© ð â & â ð¢ ð² `None`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9 17"
+ {!> ../../../docs_src/request_files/tutorial001_02.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7 14"
+ {!> ../../../docs_src/request_files/tutorial001_02_py310.py!}
+ ```
+
+## `UploadFile` â®ïž ð ð
+
+ð ðª âïž `File()` â®ïž `UploadFile`, ðŒ, â ð ð:
+
+```Python hl_lines="13"
+{!../../../docs_src/request_files/tutorial001_03.py!}
+```
+
+## ð ð ð
+
+â«ïž ðª ð ð ð ð ð°.
+
+ð« ð ðšâðŒ ð "ðš ð" ðš âïž "ðš ðœ".
+
+âïž ð, ð£ ð `bytes` âïž `UploadFile`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="10 15"
+ {!> ../../../docs_src/request_files/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="8 13"
+ {!> ../../../docs_src/request_files/tutorial002_py39.py!}
+ ```
+
+ð ð ðš, ð£, `list` `bytes` âïž `UploadFile`â.
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.responses import HTMLResponse`.
+
+ **FastAPI** ð ð `starlette.responses` `fastapi.responses` ðª ð, ð©âð». âïž ð
ðª ðš ð ð âªïžâ¡ïž ð.
+
+### ð ð ð â®ïž ð ð
+
+& ð ð â, ð ðª âïž `File()` â ð ð¢, `UploadFile`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="18"
+ {!> ../../../docs_src/request_files/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="16"
+ {!> ../../../docs_src/request_files/tutorial003_py39.py!}
+ ```
+
+## ð
+
+âïž `File`, `bytes`, & `UploadFile` ð£ ð ð ðš, ðš ðš ðœ.
diff --git a/docs/em/docs/tutorial/request-forms-and-files.md b/docs/em/docs/tutorial/request-forms-and-files.md
new file mode 100644
index 000000000..99aeca000
--- /dev/null
+++ b/docs/em/docs/tutorial/request-forms-and-files.md
@@ -0,0 +1,35 @@
+# ðš ðš & ð
+
+ð ðª ð¬ ð & ðš ð ð ð° âïž `File` & `Form`.
+
+!!! info
+ ðš ð ð & /âïž ðš ð, ð¥ â `python-multipart`.
+
+ ð€¶ â. `pip install python-multipart`.
+
+## ð `File` & `Form`
+
+```Python hl_lines="1"
+{!../../../docs_src/request_forms_and_files/tutorial001.py!}
+```
+
+## ð¬ `File` & `Form` ð¢
+
+â ð & ðš ð¢ ð ð ð ð `Body` âïž `Query`:
+
+```Python hl_lines="8"
+{!../../../docs_src/request_forms_and_files/tutorial001.py!}
+```
+
+ð & ðš ð ð ð ðš ð & ð ð ðš ð & ðš ð.
+
+& ð ðª ð£ ð `bytes` & `UploadFile`.
+
+!!! warning
+ ð ðª ð£ ð `File` & `Form` ð¢ *â¡ ð ïž*, âïž ð ðª ð« ð£ `Body` ð ð ð â ðš ð», ðš ð âïž ðª ð âïž `multipart/form-data` â©ïž `application/json`.
+
+ ð ð« ð« **FastAPI**, â«ïž ð ðºðžð ð ïž.
+
+## ð
+
+âïž `File` & `Form` ð¯ââïž ðâ ð ðª ðš ðœ & ð ð ðš.
diff --git a/docs/em/docs/tutorial/request-forms.md b/docs/em/docs/tutorial/request-forms.md
new file mode 100644
index 000000000..fa74adae5
--- /dev/null
+++ b/docs/em/docs/tutorial/request-forms.md
@@ -0,0 +1,58 @@
+# ðš ðœ
+
+ðâ ð ðª ðš ðš ð â©ïž ð», ð ðª âïž `Form`.
+
+!!! info
+ âïž ðš, ð¥ â `python-multipart`.
+
+ ð€¶ â. `pip install python-multipart`.
+
+## ð `Form`
+
+ð `Form` âªïžâ¡ïž `fastapi`:
+
+```Python hl_lines="1"
+{!../../../docs_src/request_forms/tutorial001.py!}
+```
+
+## ð¬ `Form` ð¢
+
+â ðš ð¢ ð ð ð ð `Body` âïž `Query`:
+
+```Python hl_lines="7"
+{!../../../docs_src/request_forms/tutorial001.py!}
+```
+
+ðŒ, 1ïžâ£ ð Oauth2ïžâ£ ð§ ðª âïž (ð€ "ð ð§") â«ïž â ðš `username` & `password` ðš ð.
+
+ð ð ð â«ïžâ ð `username` & `password`, & ðš ðš ð, ð« ð».
+
+â®ïž `Form` ð ðª ð£ ð ð³ â®ïž `Body` (& `Query`, `Path`, `Cookie`), ð ð¬, ðŒ, ð (â
`user-name` â©ïž `username`), âïž.
+
+!!! info
+ `Form` ð ð ð ð âªïžâ¡ïž `Body`.
+
+!!! tip
+ ð£ ðš ðª, ð ðª âïž `Form` ð¯, â©ïž ðµ â«ïž ð¢ ð ð¬ ð¢ ð¢ âïž ðª (ð») ð¢.
+
+## ð "ðš ð"
+
+ð ðž ðš (``) ðš ðœ ðœ ð âïž "ð" ð¢ ð ð, â«ïž ð âªïžâ¡ïž ð».
+
+**FastAPI** ð â ð â ð ð âªïžâ¡ïž â¶ïžïž ð¥ â©ïž ð».
+
+!!! note "ð¡ â¹"
+ ð âªïžâ¡ïž ðš ð ð âïž "ð» ð" `application/x-www-form-urlencoded`.
+
+ âïž ðâ ðš ð ð, â«ïž ð `multipart/form-data`. ð ð â ð ð ð â ð.
+
+ ð¥ ð ð â ð ð ð ð¢ & ðš ð, ð³ ð ðž 𩺠POST
.
+
+!!! warning
+ ð ðª ð£ ð `Form` ð¢ *â¡ ð ïž*, âïž ð ðª ð« ð£ `Body` ð ð ð â ðš ð», ðš ð âïž ðª ð âïž `application/x-www-form-urlencoded` â©ïž `application/json`.
+
+ ð ð« ð« **FastAPI**, â«ïž ð ðºðžð ð ïž.
+
+## ð
+
+âïž `Form` ð£ ðš ðœ ð¢ ð¢.
diff --git a/docs/em/docs/tutorial/response-model.md b/docs/em/docs/tutorial/response-model.md
new file mode 100644
index 000000000..6ea4413f8
--- /dev/null
+++ b/docs/em/docs/tutorial/response-model.md
@@ -0,0 +1,481 @@
+# ðš ð· - ðš ð
+
+ð ðª ð£ ð âïž ðš â *â¡ ð ïž ð¢* **ðš ð**.
+
+ð ðª âïž **ð â** ð ð ð ð ð¢ ðœ ð¢ **ð¢**, ð ðª âïž Pydantic ð·, ð, ð, ð ð² ð ð¢, ð», âïž.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="18 23"
+ {!> ../../../docs_src/response_model/tutorial001_01.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="18 23"
+ {!> ../../../docs_src/response_model/tutorial001_01_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="16 21"
+ {!> ../../../docs_src/response_model/tutorial001_01_py310.py!}
+ ```
+
+FastAPI ð âïž ð ðš ð:
+
+* **â** ðš ðœ.
+ * ð¥ ðœ â (â
ð â ð), â«ïž â ð *ð* ð± ð ð, ð« ð¬ â«ïžâ â«ïž ð, & â«ïž ð ðš ðœ â â©ïž ð¬ â ðœ. ð ð ð & ð ð©âð» ðª ð¯ ð ð« ð ðš ðœ & ðœ ð ð.
+* ð® **ð» ð** ðš, ð *â¡ ð ïž*.
+ * ð ð âïž **ð§ ð©º**.
+ * â«ïž ð âïž ð§ ð©âð» ð â¡ ð§°.
+
+âïž ð ð¥:
+
+* â«ïž ð **ð & âœ** ð¢ ð â«ïžâ ð¬ ðš ð.
+ * ð âŽïž â **ðââ**, ð¥ ð ð ð
ð ð.
+
+## `response_model` ð¢
+
+ð€ ðŒ ðâ ð ðª âïž ð ðš ðœ ð ð« â«ïžâ â«ïžâ ð ð£.
+
+ðŒ, ð ðª ð **ðš ð** âïž ðœ ð, âïž **ð£ â«ïž Pydantic ð·**. ð ð Pydantic ð· ð ð ðœ ð§Ÿ, ð¬, âïž. ð ð ð ðš (â
ð âïž ðœ ð).
+
+ð¥ ð ð® ðš ð â, 𧰠& ðšâðš ð ð â®ïž (â) â ð¬ ð ð ð ð¢ ð¬ ð (â
#ïžâ£) ð ð âªïžâ¡ïž â«ïžâ ð ð£ (â
Pydantic ð·).
+
+ð ðŒ, ð ðª âïž *â¡ ð ïž ðšâðš* ð¢ `response_model` â©ïž ðš ð.
+
+ð ðª âïž `response_model` ð¢ ð *â¡ ð ïž*:
+
+* `@app.get()`
+* `@app.post()`
+* `@app.put()`
+* `@app.delete()`
+* âïž.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="17 22 24-27"
+ {!> ../../../docs_src/response_model/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="17 22 24-27"
+ {!> ../../../docs_src/response_model/tutorial001_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="17 22 24-27"
+ {!> ../../../docs_src/response_model/tutorial001_py310.py!}
+ ```
+
+!!! note
+ ð ð `response_model` ð¢ "ðšâðš" ð©âð¬ (`get`, `post`, âïž). ð« ð *â¡ ð ïž ð¢*, ð ð ð¢ & ðª.
+
+`response_model` ðš ð ð ð ð ð£ Pydantic ð· ð,, â«ïž ðª Pydantic ð·, âïž â«ïž ðª, â
`list` Pydantic ð·, ð `List[Item]`.
+
+FastAPI ð âïž ð `response_model` ð ðœ ð§Ÿ, ð¬, âïž. & **ð & ✠ð¢ ð** ð® ð ð.
+
+!!! tip
+ ð¥ ð âïž â ð â
ð ðšâðš, â, âïž, ð ðª ð£ ð¢ ðš ð `Any`.
+
+ ð ð ð ð¬ ðšâðš ð ð ð« ð¬ ð³. âïž FastAPI ð ðœ ð§Ÿ, ð¬, ð¥, âïž. â®ïž `response_model`.
+
+### `response_model` ð«
+
+ð¥ ð ð£ ð¯ââïž ðš ð & `response_model`, `response_model` ð â ð« & âïž FastAPI.
+
+ð ð ð ðª ð® â ð â ð ð¢ ðâ ð ð¬ ð ð ð ðš ð·, âïž ðšâðš & 𧰠ð â. & ð ðª âïž FastAPI ðœ ð¬, ð§Ÿ, âïž. âïž `response_model`.
+
+ð ðª âïž `response_model=None` â ð ðš ð· ð *â¡ ð ïž*, ð 5ïžâ£ð ðª â«ïž ð¥ ð â ð â ð ð ð« â Pydantic ð, ð ð ð ðŒ ð 1ïžâ£ ð ð.
+
+## ðš ð ð¢ ðœ
+
+ð¥ ð¥ ð£ `UserIn` ð·, â«ïž ð ð ð¢ ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9 11"
+ {!> ../../../docs_src/response_model/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7 9"
+ {!> ../../../docs_src/response_model/tutorial002_py310.py!}
+ ```
+
+!!! info
+ âïž `EmailStr`, ð¥ â `email_validator`.
+
+ ð€¶ â. `pip install email-validator`
+ âïž `pip install pydantic[email]`.
+
+& ð¥ âïž ð ð· ð£ ð ð¢ & ð ð· ð£ ð ð¢:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="18"
+ {!> ../../../docs_src/response_model/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="16"
+ {!> ../../../docs_src/response_model/tutorial002_py310.py!}
+ ```
+
+ð, ðâ ð¥ ð ð©âð» â®ïž ð, ð ïž ð ðš ð ð ðš.
+
+ð ðŒ, â«ïž ðª ð« â , â©ïž â«ïž ð ð©âð» ðš ð.
+
+âïž ð¥ ð¥ âïž ð ð· â1ïžâ£ *â¡ ð ïž*, ð¥ ðª ðš ð ð©âð» ð ð ð©âð».
+
+!!! danger
+ ð
ðª â
ð ð©âð» âïž ðš â«ïž ðš ð ð, ð¥ ð ð ð â & ð ð â«ïžâ ð ðš.
+
+## ð® ð¢ ð·
+
+ð¥ ðª â©ïž â ð¢ ð· â®ïž ð¢ ð & ð¢ ð· ðµ â«ïž:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9 11 16"
+ {!> ../../../docs_src/response_model/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="9 11 16"
+ {!> ../../../docs_src/response_model/tutorial003_py310.py!}
+ ```
+
+ð¥, âïž ð *â¡ ð ïž ð¢* ð¬ ð ð¢ ð©âð» ð ð ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="24"
+ {!> ../../../docs_src/response_model/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="24"
+ {!> ../../../docs_src/response_model/tutorial003_py310.py!}
+ ```
+
+...ð¥ ð£ `response_model` ð ð· `UserOut`, ð ð« ð ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="22"
+ {!> ../../../docs_src/response_model/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="22"
+ {!> ../../../docs_src/response_model/tutorial003_py310.py!}
+ ```
+
+, **FastAPI** ð â ð
ð¥ ð
ð ðœ ð ð« ð£ ð¢ ð· (âïž Pydantic).
+
+### `response_model` âïž ðš ð
+
+ð ðŒ, â©ïž 2ïžâ£ ð· ð, ð¥ ð¥ â ð¢ ðš ð `UserOut`, ðšâðš & 𧰠ð ð ð ð¥ ð¬ â ð, ð ð ð.
+
+ð â«ïžâ ð ðŒ ð¥ âïž ð£ â«ïž `response_model` ð¢.
+
+...âïž ð£ ð ð ð â â ð.
+
+## ðš ð & ðœ ð¥
+
+â¡ïž ð£ âªïžâ¡ïž â®ïž ðŒ. ð¥ ð **â ð¢ â®ïž 1ïžâ£ ð** âïž ðš ð³ ð ð **ð
ðœ**.
+
+ð¥ ð FastAPI ð§ **ð¥** ð âïž ðš ð·.
+
+â®ïž ðŒ, â©ïž ð ð, ð¥ âïž âïž `response_model` ð¢. âïž ð â ð ð¥ ð« ð€ ðâðŠº âªïžâ¡ïž ðšâðš & 𧰠â
ð¢ ðš ð.
+
+âïž ð
ðŒ ðâ ð¥ ðª ð³ ð ð, ð¥ ð ð· **âœ/â** ð ð ðŒ.
+
+& ð ðŒ, ð¥ ðª âïž ð & 𧬠â ð ð¢ **ð â** ð€ ð ðâðŠº ðšâðš & ð§°, & ð€ FastAPI **ðœ ð¥**.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9-13 15-16 20"
+ {!> ../../../docs_src/response_model/tutorial003_01.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7-10 13-14 18"
+ {!> ../../../docs_src/response_model/tutorial003_01_py310.py!}
+ ```
+
+â®ïž ð, ð¥ ð€ ð ðâðŠº, âªïžâ¡ïž ðšâðš & â ð ð â â ð, âïž ð¥ ð€ ðœ ð¥ âªïžâ¡ïž FastAPI.
+
+â ðš ð ð· â â¡ïž â
ð ð
. ð¶
+
+### ð â & ð
+
+ð¥ â¡ïž ð â ðšâðš, â & ð 𧰠ð ð ð.
+
+`BaseUser` âïž ð§¢ ð. â€Žïž `UserIn` ð âªïžâ¡ïž `BaseUser` & ð® `password` ð,, â«ïž ð ð ð ð âªïžâ¡ïž ð¯ââïž ð·.
+
+ð¥ â ð¢ ðš ð `BaseUser`, âïž ð¥ ð€ ð¬ `UserIn` ð.
+
+ðšâðš, â, & ð 𧰠ð ð« ð ð ð â©ïž, âš â, `UserIn` ð¿ `BaseUser`, â â â«ïž *â* ð ðâ â«ïžâ â ð³ ð `BaseUser`.
+
+### FastAPI ðœ ð¥
+
+ð, FastAPI, â«ïž ð ð ðš ð & â ð ð â«ïžâ ð ðš ð **ðŽ** ð ð ð£ ð.
+
+FastAPI ðš ð ð ð â®ïž Pydantic â ð ð ð ð ð« ð 𧬠ð« âïž ðš ðœ ð¥, ⪠ð ðª ð ð ð¬ ð
ð
ðœ ð â«ïžâ ð ð.
+
+ð ð, ð ðª ð€ ð ð¯ââïž ð: ð â â®ïž **ð ðâðŠº** & **ðœ ð¥**.
+
+## ð â«ïž ð©º
+
+ðâ ð ð ð§ ð©º, ð ðª â
ð ð¢ ð· & ð¢ ð· ð ð¯ââïž âïž ð« ð ð» ð:
+
+
+
+& ð¯ââïž ð· ð âïž ð ð ïž ð§Ÿ:
+
+
+
+## ð ðš ð â
+
+ð€ 5ïžâ£ð ðŒ ðâ ð ðš ð³ ð ð« â Pydantic ð & ð â â«ïž ð¢, ðŽ ð€ ðâðŠº ð ð (ðšâðš, â, âïž).
+
+### ðš ðš ð
+
+ð â ðŒ ð [ð¬ ðš ð ð¬ ⪠ð§ ð©º](../advanced/response-directly.md){.internal-link target=_blank}.
+
+```Python hl_lines="8 10-11"
+{!> ../../../docs_src/response_model/tutorial003_02.py!}
+```
+
+ð ð
ðŒ ðµ ð FastAPI â©ïž ðš ð â ð (âïž ð¿) `Response`.
+
+& 𧰠ð ð â©ïž ð¯ââïž `RedirectResponse` & `JSONResponse` ð¿ `Response`, ð â â.
+
+### â ðš ð¿
+
+ð ðª âïž ð¿ `Response` ð â:
+
+```Python hl_lines="8-9"
+{!> ../../../docs_src/response_model/tutorial003_03.py!}
+```
+
+ð ð ð· â©ïž `RedirectResponse` ð¿ `Response`, & FastAPI ð ð ðµ ð ð
ðŒ.
+
+### â ðš ð â
+
+âïž ðâ ð ðš ð â ð ð ð« â Pydantic ð (â
ðœ ð) & ð â â«ïž ð ð ð¢, FastAPI ð ð â Pydantic ðš ð· âªïžâ¡ïž ð ð â, & ð â.
+
+ð ð ðš ð¥ ð âïž ð³ ð ðªðº ð ð ð ðâ 1ïžâ£ âïž ð
ð« ð« â Pydantic ð, ðŒ ð ð â ð¶:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="10"
+ {!> ../../../docs_src/response_model/tutorial003_04.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="8"
+ {!> ../../../docs_src/response_model/tutorial003_04_py310.py!}
+ ```
+
+...ð â â©ïž ð â ð« Pydantic ð & ð« ð `Response` ð âïž ð¿, â«ïž ðªðº (ð 2ïžâ£) ð `Response` & `dict`.
+
+### â ðš ð·
+
+â¶ïž âªïžâ¡ïž ðŒ ð, ð 5ïžâ£ð ð« ð âïž ð¢ ðœ ð¬, ð§Ÿ, ð¥, âïž. ð ð FastAPI.
+
+âïž ð ðª ð ð§ ðš ð â ð¢ ð€ ðâðŠº âªïžâ¡ïž 𧰠ð ðšâðš & ð â (â
â).
+
+ð ðŒ, ð ðª â ðš ð· â¡ â `response_model=None`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/response_model/tutorial003_05.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/response_model/tutorial003_05_py310.py!}
+ ```
+
+ð ð â FastAPI ð¶ ðš ð· â¡ & ð ð ð ðª âïž ð ðš ð â ð ðª ðµ â«ïž ð€ ð FastAPI ðž. ð¶
+
+## ðš ð· ð¢ ð¢
+
+ð ðš ð· ðª âïž ð¢ ð², ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="11 13-14"
+ {!> ../../../docs_src/response_model/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="11 13-14"
+ {!> ../../../docs_src/response_model/tutorial004_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="9 11-12"
+ {!> ../../../docs_src/response_model/tutorial004_py310.py!}
+ ```
+
+* `description: Union[str, None] = None` (âïž `str | None = None` ð 3ïžâ£.1ïžâ£0ïžâ£) âïž ð¢ `None`.
+* `tax: float = 10.5` âïž ð¢ `10.5`.
+* `tags: List[str] = []` ð¢ ð ð: `[]`.
+
+âïž ð ðª ð ð« ð« âªïžâ¡ïž ð ð¥ ð« ð« ð€ ðª.
+
+ðŒ, ð¥ ð âïž ð· â®ïž ð ðŠ ð¢ â ðœ, âïž ð ð« ð ðš ð¶ ð ð» ðš ð ð¢ ð².
+
+### âïž `response_model_exclude_unset` ð¢
+
+ð ðª â *â¡ ð ïž ðšâðš* ð¢ `response_model_exclude_unset=True`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="24"
+ {!> ../../../docs_src/response_model/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="24"
+ {!> ../../../docs_src/response_model/tutorial004_py39.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="22"
+ {!> ../../../docs_src/response_model/tutorial004_py310.py!}
+ ```
+
+& ð ð¢ ð² ð ð« ð ðš, ðŽ ð² ð€ â.
+
+, ð¥ ð ðš ðš ð *â¡ ð ïž* ð¬ â®ïž ð `foo`, ðš (ð« â
ð¢ ð²) ð:
+
+```JSON
+{
+ "name": "Foo",
+ "price": 50.2
+}
+```
+
+!!! info
+ FastAPI âïž Pydantic ð· `.dict()` â®ïž ð® `exclude_unset` ð¢ ð ð.
+
+!!! info
+ ð ðª âïž:
+
+ * `response_model_exclude_defaults=True`
+ * `response_model_exclude_none=True`
+
+ ð¬ Pydantic 𩺠`exclude_defaults` & `exclude_none`.
+
+#### ð â®ïž ð² ð â®ïž ð¢
+
+âïž ð¥ ð ð âïž ð² ð· ð â®ïž ð¢ ð², ð ð¬ â®ïž ð `bar`:
+
+```Python hl_lines="3 5"
+{
+ "name": "Bar",
+ "description": "The bartenders",
+ "price": 62,
+ "tax": 20.2
+}
+```
+
+ð« ð ð ðš.
+
+#### ð â®ïž ð ð² ð¢
+
+ð¥ ð âïž ð ð² ð¢ ð, ð ð¬ â®ïž ð `baz`:
+
+```Python hl_lines="3 5-6"
+{
+ "name": "Baz",
+ "description": None,
+ "price": 50.2,
+ "tax": 10.5,
+ "tags": []
+}
+```
+
+FastAPI ð ð¥ (ð€, Pydantic ð ð¥) ð€ ð, âïž `description`, `tax`, & `tags` âïž ð ð² ð¢, ð« â ð¯ (â©ïž â âªïžâ¡ïž ð¢).
+
+, ð« ð ð ð» ðš.
+
+!!! tip
+ ð ð ð¢ ð² ðª ð³, ð« ðŽ `None`.
+
+ ð« ðª ð (`[]`), `float` `10.5`, âïž.
+
+### `response_model_include` & `response_model_exclude`
+
+ð ðª âïž *â¡ ð ïž ðšâðš* ð¢ `response_model_include` & `response_model_exclude`.
+
+ð« â `set` `str` â®ïž ð ð¢ ð (â ð) âïž ð« (â
ð).
+
+ð ðª âïž â© âš ð¥ ð âïž ðŽ 1ïžâ£ Pydantic ð· & ð â ðœ âªïžâ¡ïž ð¢.
+
+!!! tip
+ âïž â«ïž ð âïž ð ð, âïž ð ð, â©ïž ð« ð¢.
+
+ ð â©ïž ð» ð ð ð ð± ð (& ð©º) ð 1ïžâ£ ð ð·, ð¥ ð âïž `response_model_include` âïž `response_model_exclude` ð« ð¢.
+
+ ð â `response_model_by_alias` ð ð· â¡.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="31 37"
+ {!> ../../../docs_src/response_model/tutorial005.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="29 35"
+ {!> ../../../docs_src/response_model/tutorial005_py310.py!}
+ ```
+
+!!! tip
+ â `{"name", "description"}` â `set` â®ïž ð 2ïžâ£ ð².
+
+ â«ïž ð `set(["name", "description"])`.
+
+#### âïž `list`â â©ïž `set`â
+
+ð¥ ð ð âïž `set` & âïž `list` âïž `tuple` â©ïž, FastAPI ð ð â«ïž `set` & â«ïž ð ð· â:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="31 37"
+ {!> ../../../docs_src/response_model/tutorial006.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="29 35"
+ {!> ../../../docs_src/response_model/tutorial006_py310.py!}
+ ```
+
+## ð
+
+âïž *â¡ ð ïž ðšâðš* ð¢ `response_model` ð¬ ðš ð· & âŽïž ð ð¢ ðœ ✠ð
.
+
+âïž `response_model_exclude_unset` ðš ðŽ ð² ð¯ â.
diff --git a/docs/em/docs/tutorial/response-status-code.md b/docs/em/docs/tutorial/response-status-code.md
new file mode 100644
index 000000000..e5149de7d
--- /dev/null
+++ b/docs/em/docs/tutorial/response-status-code.md
@@ -0,0 +1,89 @@
+# ðš ð ð
+
+ð ð ð ðª â ðš ð·, ð ðª ð£ ðºðžð ð ð âïž ðš â®ïž ð¢ `status_code` ð *â¡ ð ïž*:
+
+* `@app.get()`
+* `@app.post()`
+* `@app.put()`
+* `@app.delete()`
+* âïž.
+
+```Python hl_lines="6"
+{!../../../docs_src/response_status_code/tutorial001.py!}
+```
+
+!!! note
+ ð ð `status_code` ð¢ "ðšâðš" ð©âð¬ (`get`, `post`, âïž). ð« ð *â¡ ð ïž ð¢*, ð ð ð¢ & ðª.
+
+`status_code` ð¢ ðš ð¢ â®ïž ðºðžð ð ð.
+
+!!! info
+ `status_code` ðª ð ðš `IntEnum`, â
ð `http.HTTPStatus`.
+
+â«ïž ð:
+
+* ðš ð ð ð ðš.
+* ð â«ïž â
ð ð ( & , ð©âð» ð¢):
+
+
+
+!!! note
+ ðš ð (ð â ð) ðŠ ð ðš ðš ð« âïž ðª.
+
+ FastAPI ð ð, & ð ð ð 𩺠ð ðµðž ð€ ð
ââ ðš ðª.
+
+## ð ðºðžð ð ð
+
+!!! note
+ ð¥ ð ⪠ð â«ïžâ ðºðžð ð ð, ð¶ â ð.
+
+ðºðžð, ð ðš ð¢ ð ð 3ïžâ£ 9ïžâ£ ð ðš.
+
+ð« ð ð âïž ð ð ð€ ð«, âïž â ð ð¢.
+
+ð:
+
+* `100` & ð "â¹". ð ð âïž ð« ð. ðš â®ïž ð« ð ð ð«ð âïž ðª.
+* **`200`** & ð "ð" ðš. ð« ð ð ð âïž ð.
+ * `200` ð¢ ð ð, â â ð "ð".
+ * â1ïžâ£ ðŒ ð `201`, "â". â«ïž ð âïž â®ïž ð ð ⺠ðœ.
+ * ð ðŒ `204`, "ð
ââ ð". ð ðš âïž ðâ ð€ ð
ââ ð ðš ð©âð», & ðš ð ð« âïž ðª.
+* **`300`** & ð "â". ðš â®ïž ð« ð ð 5ïžâ£ð âïž 5ïžâ£ð ð« âïž ðª, ð `304`, "ð« ð", â ð ð« âïž 1ïžâ£.
+* **`400`** & ð "ð©âð» â" ðš. ð« ð¥ ð ð ð ð² âïž ð.
+ * ðŒ `404`, "ð« ð" ðš.
+ * ð â âªïžâ¡ïž ð©âð», ð ðª âïž `400`.
+* `500` & ð ðœ â. ð ð ð
âïž ð« ð. ðâ ð³ ð¶ â ð ð ðž ð, âïž ðœ, â«ïž ð ð ðš 1ïžâ£ ð« ð ð.
+
+!!! tip
+ ð ð
ð ð ð ð & â ð â«ïžâ, â
ð 𧟠ð ðºðžð ð ð.
+
+## âš ð ð
+
+â¡ïž ð â®ïž ðŒ ð:
+
+```Python hl_lines="6"
+{!../../../docs_src/response_status_code/tutorial001.py!}
+```
+
+`201` ð ð "â".
+
+âïž ð ð« âïž â â«ïžâ ð ð ð â.
+
+ð ðª âïž ðª ð¢ âªïžâ¡ïž `fastapi.status`.
+
+```Python hl_lines="1 6"
+{!../../../docs_src/response_status_code/tutorial002.py!}
+```
+
+ð« ðª, ð« ð§âð€âð§ ð ð¢, âïž ð ð ð ðª âïž ðšâðš ð ð ð«:
+
+
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette import status`.
+
+ **FastAPI** ð ð `starlette.status` `fastapi.status` ðª ð, ð©âð». âïž â«ïž ð ð âªïžâ¡ïž ð.
+
+## ð ð¢
+
+âª, [ð§ ð©âð» ðŠ®](../advanced/response-change-status-code.md){.internal-link target=_blank}, ð ð ð â ðš ð ð ð ð ð¢ ð ð£ ð¥.
diff --git a/docs/em/docs/tutorial/schema-extra-example.md b/docs/em/docs/tutorial/schema-extra-example.md
new file mode 100644
index 000000000..d5bf8810a
--- /dev/null
+++ b/docs/em/docs/tutorial/schema-extra-example.md
@@ -0,0 +1,141 @@
+# ð£ ðš ðŒ ðœ
+
+ð ðª ð£ ðŒ ðœ ð ð± ðª ðš.
+
+ð¥ ð ð â«ïž.
+
+## Pydantic `schema_extra`
+
+ð ðª ð£ `example` Pydantic ð· âïž `Config` & `schema_extra`, ð¬ Pydantic ð©º: ð ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="15-23"
+ {!> ../../../docs_src/schema_extra_example/tutorial001.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="13-21"
+ {!> ../../../docs_src/schema_extra_example/tutorial001_py310.py!}
+ ```
+
+ð â â¹ ð ð®-ð¢ **ð» ð** ð ð·, & â«ïž ð âïž ð ïž ð©º.
+
+!!! tip
+ ð ðª âïž ð â â ð» ð & ð® ð ð ð â â¹.
+
+ ðŒ ð ðª âïž â«ïž ð® ð ðž ð©âð» ð¢, âïž.
+
+## `Field` ð â
+
+ðâ âïž `Field()` â®ïž Pydantic ð·, ð ðª ð£ â â¹ **ð» ð** ð¶ââïž ð ð â â ð¢.
+
+ð ðª âïž ð ð® `example` ð ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="4 10-13"
+ {!> ../../../docs_src/schema_extra_example/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="2 8-11"
+ {!> ../../../docs_src/schema_extra_example/tutorial002_py310.py!}
+ ```
+
+!!! warning
+ ð§ ð€¯ ð ð â â ð¶ââïž ð ð« ð® ð ð¬, ðŽ â â¹, 𧟠ð¯.
+
+## `example` & `examples` ð
+
+ðâ âïž ð:
+
+* `Path()`
+* `Query()`
+* `Header()`
+* `Cookie()`
+* `Body()`
+* `Form()`
+* `File()`
+
+ð ðª ð£ ðœ `example` âïž ðª `examples` â®ïž ð â¹ ð ð ð® **ð**.
+
+### `Body` â®ïž `example`
+
+ð¥ ð¥ ð¶ââïž `example` ð â `Body()`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="20-25"
+ {!> ../../../docs_src/schema_extra_example/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="18-23"
+ {!> ../../../docs_src/schema_extra_example/tutorial003_py310.py!}
+ ```
+
+### ðŒ 𩺠ð
+
+â®ïž ð ð©âð¬ ð â«ïž ð ð ð ð `/docs`:
+
+
+
+### `Body` â®ïž ð `examples`
+
+ð ð `example`, ð ðª ð¶ââïž `examples` âïž `dict` â®ïž **ð ðŒ**, ð â®ïž â â¹ ð ð ð® **ð** ðââïž.
+
+ð `dict` ð¬ ð ðŒ, & ð ð² â1ïžâ£ `dict`.
+
+ð ð¯ ðŒ `dict` `examples` ðª ð:
+
+* `summary`: ð ð ðŒ.
+* `description`: ð ð ð ðª ð â â.
+* `value`: ð â ðŒ ðŠ, â
`dict`.
+* `externalValue`: ð `value`, ð â ðŒ. ð ð 5ïžâ£ð ð« ðâðŠº ð 𧰠`value`.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="21-47"
+ {!> ../../../docs_src/schema_extra_example/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="19-45"
+ {!> ../../../docs_src/schema_extra_example/tutorial004_py310.py!}
+ ```
+
+### ðŒ 𩺠ð
+
+â®ïž `examples` ð® `Body()` `/docs` ð ð ð:
+
+
+
+## ð¡ â¹
+
+!!! warning
+ ð ð¶ ð¡ â¹ ð ð© **ð» ð** & **ð**.
+
+ ð¥ ð ð ⪠ð· ð, ð ðª ð¥, & ð ð² ð« ðª ð â¹, ð ð ð¶ ð«.
+
+ðâ ð ð® ðŒ ð Pydantic ð·, âïž `schema_extra` âïž `Field(example="something")` ð ðŒ ð® **ð» ð** ð Pydantic ð·.
+
+& ð **ð» ð** Pydantic ð· ð **ð** ð ð ïž, & â€Žïž â«ïž âïž ð©º ð.
+
+**ð» ð** ð« ð€ âïž ð `example` ð©. â®ïž ⬠ð» ð ð¬ ð `examples`, âïž ð 3ïžâ£.0ïžâ£.3ïžâ£ âïž ð ð ⬠ð» ð ð ð« âïž `examples`.
+
+, ð 3ïžâ£.0ïžâ£.3ïžâ£ ð¬ ð® ð `example` ð ⬠**ð» ð** â«ïž âïž, ð ð¯ (âïž â«ïž ð `example`, ð« `examples`), & ð â«ïžâ âïž ð ïž ð©º ð (âïž ðŠ ð).
+
+, ð `example` ð« ð ð» ð, â«ïž ð ð ð ⬠ð» ð, & ð â«ïžâ ð âïž ð©º ð.
+
+âïž ðâ ð âïž `example` âïž `examples` â®ïž ð ð ð (`Query()`, `Body()`, âïž.) ð ðŒ ð« ð® ð» ð ð ð¬ ð ðœ (ð« ð ð ⬠ð» ð), ð« ð® ð *â¡ ð ïž* ð ð (ð ð ð ð âïž ð» ð).
+
+`Path()`, `Query()`, `Header()`, & `Cookie()`, `example` âïž `examples` ð® ð ð, `Parameter Object` (ð§).
+
+& `Body()`, `File()`, & `Form()`, `example` âïž `examples` ð ð® ð ð, `Request Body Object`, ð `content`, ð `Media Type Object` (ð§).
+
+ð ð â, ð€ ð ⬠ð: **3ïžâ£.1ïžâ£.0ïžâ£**, â³ ð. â«ïž âïž ð ⪠ð» ð & ð ð ïž âªïžâ¡ïž ð ð ⬠ð» ð â, ð± â âªïžâ¡ïž â®ïž ⬠ð» ð, ð ð« ð€ª ðº ð. ð, ðŠ ð â³ ð« ðâðŠº ð 3ïžâ£.1ïžâ£.0ïžâ£,, ð, â«ïž ð ð£ âïž ð ð.
diff --git a/docs/em/docs/tutorial/security/first-steps.md b/docs/em/docs/tutorial/security/first-steps.md
new file mode 100644
index 000000000..6dec6f2c3
--- /dev/null
+++ b/docs/em/docs/tutorial/security/first-steps.md
@@ -0,0 +1,182 @@
+# ðââ - ð¥ ð
+
+â¡ïž ð ð ð âïž ð **ð©âð»** ð ïž ð.
+
+& ð âïž **ðž** â1ïžâ£ ð âïž ð â¡ ð ð (âïž ð± ðž).
+
+& ð ð âïž ð ðž ð â®ïž ð©âð», âïž **ð** & **ð**.
+
+ð¥ ðª âïž **Oauth2ïžâ£** ð ð â®ïž **FastAPI**.
+
+âïž â¡ïž ð ð ð° ð ð ð ð§ ð ð ð¥ ð â¹ ð ðª.
+
+â¡ïž âïž ð§° ð **FastAPI** ðµ ðââ.
+
+## â â«ïž ð
+
+â¡ïž ð¥ âïž ð & ð â â«ïž ð·, & â€Žïž ð¥ ð ð ð ð€ â«ïžâ ð¥.
+
+## â `main.py`
+
+ð ðŒ ð `main.py`:
+
+```Python
+{!../../../docs_src/security/tutorial001.py!}
+```
+
+## ð â«ïž
+
+!!! info
+ ð¥ â `python-multipart`.
+
+ ð€¶ â. `pip install python-multipart`.
+
+ ð â©ïž **Oauth2ïžâ£** âïž "ðš ð" ðš `username` & `password`.
+
+ð ðŒ â®ïž:
+
+
+
+```console
+$ uvicorn main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+## â
â«ïž
+
+ð¶ ð ð©º: http://127.0.0.1:8000/docs.
+
+ð ð ð ð³ ð ð:
+
+
+
+!!! check "â ðŒ â"
+ ð ⪠âïž âš ð "â" ðŒ.
+
+ & ð *â¡ ð ïž* âïž ð¥ ð ð-â¶ïžïž â© ð ð ðª ð.
+
+& ð¥ ð ð â«ïž, ð âïž ð¥ â ðš ð `username` & `password` (& ð ðŠ ð):
+
+
+
+!!! note
+ â«ïž ð« ð€ â«ïžâ ð ð ðš, â«ïž ð ð« ð·. âïž ð¥ ð ð€ ð€.
+
+ð âïž ð« ðž ð ð©âð», âïž â«ïž ð ð§ 𧰠ð ð¥ ð ð ð ïž.
+
+â«ïž ðª âïž ðž ð (ð ðª ð).
+
+â«ïž ðª âïž ð¥ 𥳠ðž & âïž.
+
+& â«ïž ðª âïž ð, â¹, â
& ð¯ ð ðž.
+
+## `password` ð§
+
+ð â¡ïž ð¶ ð ð & ð€ â«ïžâ ð ð.
+
+`password` "ð§" 1ïžâ£ ð ("ð§") ð¬ Oauth2ïžâ£, ðµ ðââ & ð€.
+
+Oauth2ïžâ£ ð§ ð ð©âð» âïž ð ïž ðª ð¬ ðœ ð ð ð©âð».
+
+âïž ð ðŒ, ð **FastAPI** ðž ð ðµ ð ïž & ð€.
+
+, â¡ïž ð â«ïž âªïžâ¡ïž ð ð â ð:
+
+* ð©âð» ð `username` & `password` ðž, & ð¯ `Enter`.
+* ðž (ðââ ð©âð» ð¥) ðš ð `username` & `password` ð¯ ð ð ð ïž (ð£ â®ïž `tokenUrl="token"`).
+* ð ïž â
ð `username` & `password`, & ðš â®ïž "ð€" (ð¥ ð« ð ïž ð ð).
+ * "ð€" ð» â®ïž ð ð ð¥ ðª âïž âª â ð ð©âð».
+ * ð, ð€ â ð â®ïž ð°.
+ * , ð©âð» ð âïž ð¹ ð â âª.
+ * & ð¥ ð€ ð, â ð. â«ïž ð« ð 𧲠ð ð ð ð· ⟠(ð ðŒ).
+* ðž ðª ð ð€ ð ð±.
+* ð©âð» ð ðž ð¶ â1ïžâ£ ð ðž ðž ð±.
+* ðž ðª â ð
ðœ âªïžâ¡ïž ð ïž.
+ * âïž â«ïž ðª ð€ ð ð¯ ð.
+ * , ð â®ïž ð ð ïž, â«ïž ðš ð `Authorization` â®ïž ð² `Bearer ` â ð€.
+ * ð¥ ð€ ð `foobar`, ð `Authorization` ð ð: `Bearer foobar`.
+
+## **FastAPI**'â `OAuth2PasswordBearer`
+
+**FastAPI** ð ð ð§°, ð ð â, ð ïž ð« ðââ â.
+
+ð ðŒ ð¥ ð âïž **Oauth2ïžâ£**, â®ïž **ð** ð§, âïž **ðš** ð€. ð¥ ð âïž `OAuth2PasswordBearer` ð.
+
+!!! info
+ "ðš" ð€ ð« ðŽ ð.
+
+ âïž â«ïž ð 1ïžâ£ ð âïž ðŒ.
+
+ & â«ïž ðª ð ð âïž ðŒ, ð¥ ð Oauth2ïžâ£ ðŽ & ð â«ïžâ â«ïžâ ð€ â1ïžâ£ ð ð ⣠ð» ð ðª.
+
+ ð ðŒ, **FastAPI** ð ð â®ïž 𧰠ð â«ïž.
+
+ðâ ð¥ â ð `OAuth2PasswordBearer` ð ð¥ ð¶ââïž `tokenUrl` ð¢. ð ð¢ ð ð ð ð©âð» (ðž ð ð©âð» ð¥) ð âïž ðš `username` & `password` â ð€ ð€.
+
+```Python hl_lines="6"
+{!../../../docs_src/security/tutorial001.py!}
+```
+
+!!! tip
+ ð¥ `tokenUrl="token"` ð â ð `token` ð ð¥ ð« â. â«ïž â ð, â«ïž ð `./token`.
+
+ â©ïž ð¥ âïž â ð, ð¥ ð ð ïž ð `https://example.com/`, â€Žïž â«ïž ð ð `https://example.com/token`. âïž ð¥ ð ð ïž ð `https://example.com/api/v1/`, â€Žïž â«ïž ð ð `https://example.com/api/v1/token`.
+
+ âïž â ð â â ð ð ðž ð§ ð· ð§ âïž ðŒ ð [â
ð³](../../advanced/behind-a-proxy.md){.internal-link target=_blank}.
+
+ð ð¢ ð« â ð ð / *â¡ ð ïž*, âïž ð£ ð ð `/token` ð 1ïžâ£ ð ð©âð» ð âïž ð€ ð€. ð â¹ âïž ð, & â€Žïž ð ð ïž ð§Ÿ âïž.
+
+ð¥ ð ð â â â¡ ð ïž.
+
+!!! info
+ ð¥ ð ð¶ â "â" ð ðª ð ð ð¢ ð `tokenUrl` â©ïž `token_url`.
+
+ ð â©ïž â«ïž âïž ð ð ð ð. ð ð¥ ð ðª ð¬ ð
ð ð ð« ðââ â ð ðª ð & ð â«ïž ð ð â¹ ð â«ïž.
+
+`oauth2_scheme` ð¢ ð `OAuth2PasswordBearer`, âïž â«ïž "ð§ð²".
+
+â«ïž ðª ð€:
+
+```Python
+oauth2_scheme(some, parameters)
+```
+
+, â«ïž ðª âïž â®ïž `Depends`.
+
+### âïž â«ïž
+
+ð ð ðª ð¶ââïž ð `oauth2_scheme` ð â®ïž `Depends`.
+
+```Python hl_lines="10"
+{!../../../docs_src/security/tutorial001.py!}
+```
+
+ð ð ð ð `str` ð ð ïž ð¢ `token` *â¡ ð ïž ð¢*.
+
+**FastAPI** ð ð ð â«ïž ðª âïž ð ð ð¬ "ðââ â" ð ð (& ð§ ð ïž ð©º).
+
+!!! info "ð¡ â¹"
+ **FastAPI** ð ð ð â«ïž ðª âïž ð `OAuth2PasswordBearer` (ð£ ð) ð¬ ðââ â ð â©ïž â«ïž ð âªïžâ¡ïž `fastapi.security.oauth2.OAuth2`, â ð ð âªïžâ¡ïž `fastapi.security.base.SecurityBase`.
+
+ ð ðââ ð ð ð ïž â®ïž ð (& ð§ ð ïž ð©º) ð âªïžâ¡ïž `SecurityBase`, ð â **FastAPI** ðª ð â ð ïž ð« ð.
+
+## â«ïžâ â«ïž ðš
+
+â«ïž ð ð¶ & ð ðš ð `Authorization` ð, â
ð¥ ð² `Bearer ` â ð€, & ð ðš ð€ `str`.
+
+ð¥ â«ïž ð« ð `Authorization` ð, âïž ð² ð« âïž `Bearer ` ð€, â«ïž ð ðš â®ïž 4ïžâ£0ïžâ£1ïžâ£ ð ð â (`UNAUTHORIZED`) ð.
+
+ð ð« âïž â
ð¥ ð€ ð ðš â. ð ðª ð ð ð¥ ð ð¢ ð ïž, â«ïž ð âïž `str` ð ð€.
+
+ð ðª ð â«ïž ⪠ð ð©º:
+
+
+
+ð¥ ð« â ð¬ ð€, âïž ð â¶ïž âª.
+
+## ð
+
+, 3ïžâ£ âïž 4ïžâ£ â âž, ð ⪠âïž ð ðš ðââ.
diff --git a/docs/em/docs/tutorial/security/get-current-user.md b/docs/em/docs/tutorial/security/get-current-user.md
new file mode 100644
index 000000000..455cb4f46
--- /dev/null
+++ b/docs/em/docs/tutorial/security/get-current-user.md
@@ -0,0 +1,151 @@
+# ð€ â®ïž ð©âð»
+
+â®ïž ð ðââ âïž (â 𧢠ð ð ð âïž) ð€ *â¡ ð ïž ð¢* `token` `str`:
+
+```Python hl_lines="10"
+{!../../../docs_src/security/tutorial001.py!}
+```
+
+âïž ð ð« ð â .
+
+â¡ïž â â«ïž ð€ ð¥ â®ïž ð©âð».
+
+## â ð©âð» ð·
+
+ð¥, â¡ïž â Pydantic ð©âð» ð·.
+
+ð ð ð¥ âïž Pydantic ð£ ðª, ð¥ ðª âïž â«ïž ð ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="5 12-16"
+ {!> ../../../docs_src/security/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="3 10-14"
+ {!> ../../../docs_src/security/tutorial002_py310.py!}
+ ```
+
+## â `get_current_user` ð
+
+â¡ïž â ð `get_current_user`.
+
+ð ð ð ðª âïž ð§-ð â
+
+`get_current_user` ð âïž ð â®ïž ð `oauth2_scheme` ð¥ â â.
+
+ð ð¥ ðš â *â¡ ð ïž* ð, ð ð ð `get_current_user` ð ðš `token` `str` âªïžâ¡ïž ð§-ð `oauth2_scheme`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="25"
+ {!> ../../../docs_src/security/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="23"
+ {!> ../../../docs_src/security/tutorial002_py310.py!}
+ ```
+
+## ð€ ð©âð»
+
+`get_current_user` ð âïž (â) ð ð¢ ð¥ â, ð â ð€ `str` & ðš ð Pydantic `User` ð·:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="19-22 26-27"
+ {!> ../../../docs_src/security/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="17-20 24-25"
+ {!> ../../../docs_src/security/tutorial002_py310.py!}
+ ```
+
+## ð â®ïž ð©âð»
+
+ð ð¥ ðª âïž ð `Depends` â®ïž ð `get_current_user` *â¡ ð ïž*:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="31"
+ {!> ../../../docs_src/security/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="29"
+ {!> ../../../docs_src/security/tutorial002_py310.py!}
+ ```
+
+ð ð ð¥ ð£ ð `current_user` Pydantic ð· `User`.
+
+ð ð â¹ ðºð² ð ð¢ â®ïž ð ð ïž & ð â
.
+
+!!! tip
+ ð 5ïžâ£ð ð ð ðš ðª ð£ â®ïž Pydantic ð·.
+
+ ð¥ **FastAPI** ð ð« ð€ ðš â©ïž ð âïž `Depends`.
+
+!!! check
+ ð ð ð âïž ð â ð¥ âïž ð ð (ð "â") ð ð ðš `User` ð·.
+
+ ð¥ ð« ð« âïž ðŽ 1ïžâ£ ð ð ðª ðš ð ð ðœ.
+
+## ð ð·
+
+ð ðª ð ð€ â®ïž ð©âð» ð *â¡ ð ïž ð¢* & ð
â®ïž ðââ ð ïž **ð ð** ð, âïž `Depends`.
+
+& ð ðª âïž ð ð· âïž ðœ ðââ ð (ð ðŒ, Pydantic ð· `User`).
+
+âïž ð ð« ð« âïž ð¯ ðœ ð·, ð âïž ð.
+
+ð ð âïž `id` & `email` & ð« âïž ð `username` ð ð· â ð. ð ðª âïž ð ð ð§°.
+
+ð ð âïž `str`â âïž `dict`â âïž ðœ ð ð· ð ð â â«ïž ð ð· ð ð.
+
+ð ð€ ð« âïž ð©âð» ð ð¹ ð ðž âïž ð€, ð€, âïž ð âïž, ð âïž ð ð€ â ð, â«ïž ð ð· ð.
+
+âïž ð ð ð·, ð ð ð, ð ð ðœ ð ð ðª ð ðž. **FastAPI** âïž ð ð â®ïž ð ð âïž.
+
+## ð ð
+
+ð ðŒ 5ïžâ£ð ð ð. âïž ð€¯ ð ð¥ ð ðââ, ð ð·, ð ð¢ & *â¡ ð ïž* ð ð.
+
+âïž ð¥ ð â.
+
+ðââ & ð ð ð© â ð.
+
+& ð ðª â â«ïž ð ð ð. & , âïž â«ïž â ðŽ ð, ð ð¥. â®ïž ð ðª.
+
+âïž ð ðª âïž ð¯ ð (*â¡ ð ïž*) âïž ð ðââ âïž.
+
+& ð ð« (âïž ð â ð« ð ð ð) ðª â ð ð€-âïž ð« ð âïž ð ð ð ð â.
+
+& ð ð ð¯ *â¡ ð ïž* ðª ð€ª 3ïžâ£ âž:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="30-32"
+ {!> ../../../docs_src/security/tutorial002.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="28-30"
+ {!> ../../../docs_src/security/tutorial002_py310.py!}
+ ```
+
+## ð
+
+ð ðª ð ð€ â®ïž ð©âð» ð ð *â¡ ð ïž ð¢*.
+
+ð¥ ⪠ð¬ ð€.
+
+ð¥ ðª ð® *â¡ ð ïž* ð©âð»/ð©âð» ð€ ðš `username` & `password`.
+
+ð ð â.
diff --git a/docs/em/docs/tutorial/security/index.md b/docs/em/docs/tutorial/security/index.md
new file mode 100644
index 000000000..5b507af3e
--- /dev/null
+++ b/docs/em/docs/tutorial/security/index.md
@@ -0,0 +1,101 @@
+# ðââ ð¶
+
+ð€ ð ð ðµ ðââ, ð€ & â.
+
+& â«ïž ð ð & "â " â.
+
+ð ð ïž & âïž ðµ ðââ & ð€ â ðŠ ðž ð¯ & ð (ð ðŒ â«ïž ðª 5ïžâ£0ïžâ£ ð¯ âïž ð
ð ð â).
+
+**FastAPI** ð ð 𧰠⹠ð ð
â®ïž **ðââ** ðª, ð, ð© ð, ðµ âïž ð¬ & ð¡ ð ðââ ð§.
+
+âïž ð¥, â¡ïž â
ð€ª ð§.
+
+## ð â
+
+ð¥ ð ð« ð
ð ð ð â & ð ðª ð® ðââ â®ïž ð€ âïž ð ð & ð *â¶ïžïž ð*, ð¶ â ð.
+
+## Oauth2ïžâ£
+
+Oauth2ïžâ£ ð§ ð ð¬ ð ð ðµ ð€ & â.
+
+â«ïž ð¬ ð§ & ð ð ð âïž ðŒ.
+
+â«ïž ð ð ð âïž "ð¥ ð¥³".
+
+ð â«ïžâ ð âïž â®ïž "ð³ â®ïž ð±ð, ðºðžð, ð±ð, ð" âïž ð.
+
+### â³ 1ïžâ£
+
+ð€ â³ 1ïžâ£, â ð¶ ð âªïžâ¡ïž Oauth2ïžâ£, & ð ð, â«ïž ð ð ð§ ð â ð ð».
+
+â«ïž ð« ð¶ ð âïž âïž ð.
+
+Oauth2ïžâ£ ð« â â ð ð», â«ïž â ð âïž ð ðž ðŠ â®ïž ðºðžð.
+
+!!! tip
+ ð ð **ð ïž** ð ð ð â â ð ðºðžð ð, âïž Traefik & â¡ïž ð.
+
+
+## ð©âð» ð
+
+ð©âð» ð â1ïžâ£ ð§, 𧢠ð **Oauth2ïžâ£**.
+
+â«ïž â Oauth2ïžâ£ â ð ð ð¶ ð Oauth2ïžâ£, ð â â«ïž ð
ð ïž.
+
+ðŒ, ðºðžð ð³ âïž ð©âð» ð (â ð âïž Oauth2ïžâ£).
+
+âïž ð±ð ð³ ð« ðâðŠº ð©âð» ð. â«ïž âïž ð® ð ð Oauth2ïžâ£.
+
+### ð©âð» (ð« "ð©âð» ð")
+
+ð€ "ð©âð»" ð§. ð ð â ð ð **ð©âð» ð**, âïž ð« âïž ð Oauth2ïžâ£.
+
+, â«ïž ð ð âïž.
+
+â«ïž ð« ð¶ ð âïž âïž ð.
+
+## ð
+
+ð (⪠ð ðŠ) ð ð§ ð ð (ð ð ðŸ ð).
+
+**FastAPI** âïž ð **ð**.
+
+ð â«ïžâ â â«ïž ðª âïž ð ð§ ð 𧟠ð¢, ð â¡, âïž.
+
+ð âïž ð ð¬ ð ðââ "â".
+
+âïž ð«, ð ðª â ð ð ð« ð©-âïž ð§°, ð ð ð 𧟠âïž.
+
+ð ð¬ ð ðââ â:
+
+* `apiKey`: ðž ð¯ ð ð ðª ð âªïžâ¡ïž:
+ * ð¢ ð¢.
+ * ð.
+ * ðª.
+* `http`: ð© ðºðžð ð€ âïž, ð:
+ * `bearer`: ð `Authorization` â®ïž ð² `Bearer ` â ð€. ð ð âªïžâ¡ïž Oauth2ïžâ£.
+ * ðºðžð ð° ð€.
+ * ðºðžð ð°, âïž.
+* `oauth2`: ð Oauth2ïžâ£ ð ðµ ðââ (ð€ "ð§").
+ * ð ð« ð§ â ð â³ 2ïžâ£.0ïžâ£ ð€ ðâðŠº (ð ðºðžð, ð±ð, ð±ð, ð, âïž):
+ * `implicit`
+ * `clientCredentials`
+ * `authorizationCode`
+ * âïž ð€ 1ïžâ£ ð¯ "ð§" ð ðª ð âïž ð ð€ ð ðž ð:
+ * `password`: â ð ð ð ðŒ ð.
+* `openIdConnect`: âïž ð ð¬ â ð Oauth2ïžâ£ ð€ ð ð.
+ * ð ð§ ð â«ïžâ ð¬ ð©âð» ð ð§.
+
+
+!!! tip
+ ð ïž ð ð€/â ðâðŠº ð ðºðžð, ð±ð, ð±ð, ð, âïž. ðª & ð¶ â©.
+
+ ð
ð â ð ð€/â ðâðŠº ð ð, âïž **FastAPI** ð€ ð 𧰠â«ïž ðª, ⪠ðš ðïž ðââ ð.
+
+## **FastAPI** ð
+
+FastAPI ð ð 𧰠ð ð ðââ â `fastapi.security` ð¹ ð ð âïž ð ðââ ð ïž.
+
+â ð ð ð ð â ð® ðââ ð ð ïž âïž ð 𧰠ð **FastAPI**.
+
+& ð ð ð â â«ïž ð€ ð ð ïž ð ð 𧟠âïž.
diff --git a/docs/em/docs/tutorial/security/oauth2-jwt.md b/docs/em/docs/tutorial/security/oauth2-jwt.md
new file mode 100644
index 000000000..bc207c566
--- /dev/null
+++ b/docs/em/docs/tutorial/security/oauth2-jwt.md
@@ -0,0 +1,297 @@
+# Oauth2ïžâ£ â®ïž ð (& ð), ðš â®ïž ð¥ ð€
+
+ð ð ð¥ âïž ð ðââ ð§, â¡ïž â ðž ð€ ð, âïž ð¥ ð€ & ð ð ð.
+
+ð ð ð³ ð ðª ð€ âïž ð ðž, ð ð #ïžâ£ ð ðœ, âïž.
+
+ð¥ ð â¶ïž âªïžâ¡ïž ðâ ð¥ âïž â®ïž ð & ð â«ïž.
+
+## ð ð¥
+
+ð¥ â "ð» ðž ð€".
+
+â«ïž ð© ð« ð» ð ð ð§ ð» ðµ ð. â«ïž ð ð ð:
+
+```
+eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
+```
+
+â«ïž ð« ð,, ð ðª ð¡ â¹ âªïžâ¡ïž ð.
+
+âïž â«ïž ð. , ðâ ð ðš ð€ ð ð âš, ð ðª â ð ð ð€ âš â«ïž.
+
+ð ð, ð ðª â ð€ â®ïž ð, â¡ïž ð¬, 1ïžâ£ ðïž. & â€Žïž ðâ ð©âð» ð ð â ð â®ïž ð€, ð ð ð ð©âð» ð¹ ð âïž.
+
+â®ïž ðïž, ð€ ð ð & ð©âð» ð ð« â & ð âïž ð ð ð€ ð ð€. & ð¥ ð©âð» (âïž ð¥ ð¥³) ð ð ð€ ð ð, ð ð ðª ð â«ïž, â©ïž ð³ ð ð« ð.
+
+ð¥ ð ð ð€Ÿ â®ïž ð¥ ð€ & ð â ð« ð·, â
https://jwt.io.
+
+## â `python-jose`
+
+ð¥ ðª â `python-jose` ð & â ð¥ ð€ ð:
+
+
+
+```console
+$ pip install "python-jose[cryptography]"
+
+---> 100%
+```
+
+
+
+ð-ð©ð¬ ð ð ð©âð» â.
+
+ð¥ ð¥ âïž ð 1ïžâ£: )/â.
+
+!!! tip
+ ð ð° ⪠âïž PyJWT.
+
+ âïž â«ïž â¹ âïž ð-ð©ð¬ â©ïž â«ïž ð ð â âªïžâ¡ïž PyJWT â â ð ð ðª ðª ⪠ðâ ð ð ïž â®ïž ð ð§°.
+
+## ð ð
+
+"ð" â ð ð (ð ð ðŒ) ð ð ð¢ (ð») ð ð ð ð.
+
+ðâ ð ð¶ââïž â«ïžâ ð ð (â«ïžâ ð ð) ð ð€ â«ïžâ ð ð.
+
+âïž ð ð«ð ð âªïžâ¡ïž ð ð ð.
+
+### â«ïžâ âïž ð ð
+
+ð¥ ð ðœ ð, ð§ââ ð ð« âïž ð ð©âð»' ð¢ ð, ðŽ#ïžâ£.
+
+, ð§ââ ð ð« ðª ð âïž ð ð â1ïžâ£ âïž (ð ð©âð» âïž ð ð ð, ð ð â ).
+
+## â `passlib`
+
+ðžð² ð ð ðŠ ðµ ð#ïžâ£.
+
+â«ïž ðâðŠº ð ð ð ð & ð ð· â®ïž ð«.
+
+ð ð "ð¡".
+
+, â ðžð² â®ïž ð¡:
+
+
+
+```console
+$ pip install "passlib[bcrypt]"
+
+---> 100%
+```
+
+
+
+!!! tip
+ â®ïž `passlib`, ð ðª ð â«ïž ðª â ð â **â³**, **ðº** ðââ ð-âïž ð ð.
+
+ , ð ð ðª, ðŒ, ð° ð ð âªïžâ¡ïž â³ ðž ðœ â®ïž FastAPI ðž. âïž ð â â³ ðž âïž ð ðœ.
+
+ & ð ð©âð» ð ðª ð³ âªïžâ¡ïž ð â³ ð± âïž âªïžâ¡ïž ð **FastAPI** ð±, ð ð°.
+
+## #ïžâ£ & â ð
+
+ð 𧰠ð¥ ðª âªïžâ¡ïž `passlib`.
+
+â ðžð² "ð". ð â«ïžâ ð âïž #ïžâ£ & â ð.
+
+!!! tip
+ ðžð² ð âïž ð ïž âïž ð ð ð, ð ð¢ ð ð ðŽ â â ð«, âïž.
+
+ ðŒ, ð ðª âïž â«ïž â & â ð ð â1ïžâ£ âïž (ð â³) âïž #ïžâ£ ð ð ð â®ïž ð ð ð ð¡.
+
+ & ð â®ïž ð ð« ð ð°.
+
+â ð ð¢ #ïžâ£ ð ð âªïžâ¡ïž ð©âð».
+
+& â1ïžâ£ ð â ð¥ ðš ð ð #ïžâ£ ðª.
+
+& â1ïžâ£ 1ïžâ£ ð & ðš ð©âð».
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="7 48 55-56 59-60 69-75"
+ {!> ../../../docs_src/security/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="6 47 54-55 58-59 68-74"
+ {!> ../../../docs_src/security/tutorial004_py310.py!}
+ ```
+
+!!! note
+ ð¥ ð â
ð (â) ðœ `fake_users_db`, ð ð ð â #ïžâ£ ð ð ð ð: `"$2b$12$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36WQoeG6Lruj3vjPGga31lW"`.
+
+## ðµ ð¥ ð€
+
+ð ð¹ â.
+
+â ð² ã ð ð ð âïž ð ð¥ ð€.
+
+ð ð ð² ã ð âïž ð:
+
+
+
+```console
+$ openssl rand -hex 32
+
+09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7
+```
+
+
+
+& ð ð¢ ð¢ `SECRET_KEY` (ð« âïž 1ïžâ£ ðŒ).
+
+â ð¢ `ALGORITHM` â®ïž ð âïž ð ð¥ ð€ & â â«ïž `"HS256"`.
+
+â ð¢ ð ð€.
+
+ð¬ Pydantic ð· ð ð âïž ð€ ð ðš.
+
+â ð ð¢ ð ð ð ð€.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="6 12-14 28-30 78-86"
+ {!> ../../../docs_src/security/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="5 11-13 27-29 77-85"
+ {!> ../../../docs_src/security/tutorial004_py310.py!}
+ ```
+
+## â¹ ð
+
+â¹ `get_current_user` ðš ð ð€ â, âïž ð ð°, âïž ð¥ ð€.
+
+ð£ ðš ð€, â â«ïž, & ðš â®ïž ð©âð».
+
+ð¥ ð€ â, ðš ðºðžð â â¶ïžïž âïž.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="89-106"
+ {!> ../../../docs_src/security/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="88-105"
+ {!> ../../../docs_src/security/tutorial004_py310.py!}
+ ```
+
+## â¹ `/token` *â¡ ð ïž*
+
+â `timedelta` â®ïž ð ð° ð€.
+
+â ð° ð¥ ð ð€ & ðš â«ïž.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="115-128"
+ {!> ../../../docs_src/security/tutorial004.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="114-127"
+ {!> ../../../docs_src/security/tutorial004_py310.py!}
+ ```
+
+### ð¡ â¹ ð ð¥ "ð" `sub`
+
+ð¥ ð§ ð¬ ð ð€ ð `sub`, â®ïž ð ð€.
+
+â«ïž ðŠ âïž â«ïž, âïž ð ðâ ð ð ð® ð©âð» ð, ð¥ âïž â«ïž ð¥.
+
+ð¥ 5ïžâ£ð âïž ð ð âïž âªïžâ¡ïž â ð©âð» & ð€ ð« ð ð ïž ð ð ð ð ïž.
+
+ðŒ, ð ðª ð¬ "ð" âïž "ð° ð€".
+
+â€Žïž ð ðª ð® â ð ð ðšâðŒ, ð "ðŸ" (ð) âïž "â" (ð°).
+
+& ‎ïž, ð ðª ð€ ð ð¥ ð€ ð©âð» (âïž ð€), & ð« ðª âïž â«ïž ð ð ð¯ (ðŸ ð, âïž â ð° ð€) ðµ ðââ âïž ð§, â®ïž ð¥ ð€ ð ð ïž ð ð.
+
+âïž ð« ð, ð¥ ðª âïž ð ð ð€ ð.
+
+ð ðŒ, ð ð ðšâðŒ ðª âïž ð ð, â¡ïž ð¬ `foo` (ð©âð» `foo`, ð `foo`, & ð° ð€ `foo`).
+
+, â ð ð¥, ðâ ð ð¥ ð€ ð©âð», ð ðª ð¡ ð² `sub` ð, â
â®ïž `username:`. , ð ðŒ, ð² `sub` ðª âïž: `username:johndoe`.
+
+â ð âïž ð€¯ ð `sub` ð ð âïž ð ð ð€ ð ðž, & â«ïž ð ð».
+
+## â
â«ïž
+
+ð ðœ & ð¶ ð©º: http://127.0.0.1:8000/docs.
+
+ð ð ð ð©âð» ð¢ ð:
+
+
+
+â ðž ð ð â.
+
+âïž ð:
+
+ð: `johndoe`
+ð: `secret`
+
+!!! check
+ ð ð ð³ ð ð¢ ð "`secret`", ð¥ ðŽ âïž #ïžâ£ â¬.
+
+
+
+ð€ ð `/users/me/`, ð ð ð€ ðš:
+
+```JSON
+{
+ "username": "johndoe",
+ "email": "johndoe@example.com",
+ "full_name": "John Doe",
+ "disabled": false
+}
+```
+
+
+
+ð¥ ð ð ð©âð» ð§°, ð ðª ð â ð ðš ðŽ ð ð€, ð ðŽ ðš ð¥ ðš ð ð©âð» & ð€ ð ð ð€, âïž ð« â®ïž:
+
+
+
+!!! note
+ ð ð `Authorization`, â®ïž ð² ð â¶ïž â®ïž `Bearer `.
+
+## ð§ âïž â®ïž `scopes`
+
+Oauth2ïžâ£ âïž ð "â".
+
+ð ðª âïž ð« ð® ð¯ â â ð¥ ð€.
+
+â€Žïž ð ðª ð€ ð ð€ ð©âð» ð âïž ð¥ ð¥³, ð â®ïž ð ð ïž â®ïž â ð«.
+
+ð ðª ð¡ â âïž ð« & â ð« ð ïž ð **FastAPI** ⪠**ð§ ð©âð» ðŠ®**.
+
+## ð
+
+â®ïž â«ïžâ ð âïž ð ð ð, ð ðª â ð ð **FastAPI** ðž âïž ð© ð Oauth2ïžâ£ & ð¥.
+
+ð ð ð ïž ð ðââ â¶ïžïž ð ð ð ð.
+
+ð ðŠ ð ð â«ïž ð âïž â ð â â®ïž ðœ ð·, ðœ, & ðª â. & ð ðŠ ð ð ð ðââïž ð
ð€ âïž ðââ â ð.
+
+---
+
+**FastAPI** ð« â ð â â®ïž ð ðœ, ðœ ð· âïž ð§°.
+
+â«ïž ð€ ð ð ðª â ð ð ð ð ð ð.
+
+& ð ðª âïž ð ð ð ð§ & ð âïž ðŠ ð `passlib` & `python-jose`, â©ïž **FastAPI** ð« ð ð ð ð ïž ð ïž ð¢ ðŠ.
+
+âïž â«ïž ð ð 𧰠ð ð ïž ð
ðª ðµ ð¯ ðª, â, âïž ðââ.
+
+& ð ðª âïž & ð ïž ð, ð© ð ïž, ð Oauth2ïžâ£ ð¶ ð
ð.
+
+ð ðª ð¡ ð
**ð§ ð©âð» ðŠ®** ð â âïž Oauth2ïžâ£ "â", ð ð-𧜠â âïž, ð ð« ð ð©. Oauth2ïžâ£ â®ïž â ð ïž âïž ð ðŠ ð€ ðâðŠº, ð ð±ð, ðºðžð, ð, ð€žââ, ð±ð, âïž. â ð¥ 𥳠ðž ð â®ïž ð« ð ð ðšâðŒ ð« ð©âð».
diff --git a/docs/em/docs/tutorial/security/simple-oauth2.md b/docs/em/docs/tutorial/security/simple-oauth2.md
new file mode 100644
index 000000000..765d94039
--- /dev/null
+++ b/docs/em/docs/tutorial/security/simple-oauth2.md
@@ -0,0 +1,315 @@
+# ð
Oauth2ïžâ£ â®ïž ð & ðš
+
+ð â¡ïž ð âªïžâ¡ïž â®ïž ð & ð® â ð âïž ð ðââ ð§.
+
+## ð€ `username` & `password`
+
+ð¥ ð âïž **FastAPI** ðââ ð ð€ `username` & `password`.
+
+Oauth2ïžâ£ â ð ðâ âïž "ð ð§" (ð ð¥ âïž) ð©âð»/ð©âð» ð ðš `username` & `password` ð ðš ðœ.
+
+& ð ð¬ ð ð âïž ð ð ð. `user-name` âïž `email` ð«ð ð·.
+
+âïž ð« ð, ð ðª ðŠ â«ïž ð ð ð ð ð©âð» ðž.
+
+& ð ðœ ð· ðª âïž ð ð ð ð ð.
+
+âïž ð³ *â¡ ð ïž*, ð¥ ðª âïž ð ð ð â®ïž ð (& ðª, ðŒ, âïž ð ïž ð ïž ð§Ÿ âïž).
+
+ð ðµðž ð `username` & `password` ð ðš ðš ðœ (, ð
ââ ð» ð¥).
+
+### `scope`
+
+ð ð¬ ð ð©âð» ðª ðš â1ïžâ£ ðš ð "`scope`".
+
+ðš ð ð `scope` (â), âïž â«ïž ð€ ð ð» â®ïž "â" ð ð.
+
+ð "â" ð» (ðµ ð).
+
+ð« ð âïž ð£ ð¯ ðââ â, ðŒ:
+
+* `users:read` âïž `users:write` â ðŒ.
+* `instagram_basic` âïž ð±ð / ð±ð.
+* `https://www.googleapis.com/auth/drive` âïž ðºðžð.
+
+!!! info
+ Oauth2ïžâ£ "â" ð» ð ð£ ð¯ â â.
+
+ â«ïž ð« ð€ ð¥ â«ïž âïž ð ðŠ¹ ð `:` âïž ð¥ â«ïž ð.
+
+ ð â¹ ð ïž ð¯.
+
+ Oauth2ïžâ£ ð« ð».
+
+## ð ð€ `username` & `password`
+
+ð â¡ïž âïž ð ð **FastAPI** ðµ ð.
+
+### `OAuth2PasswordRequestForm`
+
+ð¥, ð `OAuth2PasswordRequestForm`, & âïž â«ïž ð â®ïž `Depends` *â¡ ð ïž* `/token`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="4 76"
+ {!> ../../../docs_src/security/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="2 74"
+ {!> ../../../docs_src/security/tutorial003_py310.py!}
+ ```
+
+`OAuth2PasswordRequestForm` ð ð ð ð£ ðš ðª â®ïž:
+
+* `username`.
+* `password`.
+* ðŠ `scope` ð ðŠ ð», â ð» ð ð.
+* ðŠ `grant_type`.
+
+!!! tip
+ Oauth2ïžâ£ ð ð€ *ð* ð `grant_type` â®ïž ð§ ð² `password`, âïž `OAuth2PasswordRequestForm` ð« ð ïž â«ïž.
+
+ ð¥ ð ðª ð ïž â«ïž, âïž `OAuth2PasswordRequestFormStrict` â©ïž `OAuth2PasswordRequestForm`.
+
+* ðŠ `client_id` (ð¥ ð« ðª â«ïž ð ðŒ).
+* ðŠ `client_secret` (ð¥ ð« ðª â«ïž ð ðŒ).
+
+!!! info
+ `OAuth2PasswordRequestForm` ð« ð ð **FastAPI** `OAuth2PasswordBearer`.
+
+ `OAuth2PasswordBearer` â **FastAPI** ð ð â«ïž ðââ â. â«ïž ð® ð ð ð.
+
+ âïž `OAuth2PasswordRequestForm` ð ð ð ð ðª âïž â ð, âïž ð ðª âïž ð£ `Form` ð¢ ð.
+
+ âïž â«ïž â âïž ðŒ, â«ïž ð **FastAPI** ð, â â«ïž â©.
+
+### âïž ðš ðœ
+
+!!! tip
+ ð ð ð `OAuth2PasswordRequestForm` ð ð« âïž ð¢ `scope` â®ïž ð ð» ðœ ð, â©ïž, â«ïž ð âïž `scopes` ð¢ â®ïž â ð ð» ð â ðš.
+
+ ð¥ ð« âïž `scopes` ð ðŒ, âïž ð ïž ð€ ð¥ ð ðª â«ïž.
+
+ð, ð€ ð©âð» ð âªïžâ¡ïž (â) ðœ, âïž `username` âªïžâ¡ïž ðš ð.
+
+ð¥ ð€ ð
ââ â
ð©âð», ð¥ ðš â ð¬ "â ð âïž ð".
+
+â, ð¥ âïž â `HTTPException`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="3 77-79"
+ {!> ../../../docs_src/security/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1 75-77"
+ {!> ../../../docs_src/security/tutorial003_py310.py!}
+ ```
+
+### â
ð
+
+ð â ð¥ âïž ð©âð» ð âªïžâ¡ïž ð ðœ, âïž ð¥ ð« â
ð.
+
+â¡ïž ð® ð ðœ Pydantic `UserInDB` ð· ð¥.
+
+ð ð ð
ð ð¢ ð,, ð¥ ð âïž (â) ð ð âïž.
+
+ð¥ ð ð« ð, ð¥ ðš ð â.
+
+#### ð ð
+
+"ð" â: ð ð (ð ð ðŒ) ð ð ð¢ (ð») ð ð ð ð.
+
+ðâ ð ð¶ââïž â«ïžâ ð ð (â«ïžâ ð ð) ð ð€ â«ïžâ ð ð.
+
+âïž ð ð«ð ð âªïžâ¡ïž ð ð ð.
+
+##### â«ïžâ âïž ð ð
+
+ð¥ ð ðœ ð, ð§ââ ð ð« âïž ð ð©âð»' ð¢ ð, ðŽ#ïžâ£.
+
+, ð§ââ ð ð« ðª ð âïž ð ð ð â1ïžâ£ âïž (ð ð©âð» âïž ð ð ð, ð ð â ).
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="80-83"
+ {!> ../../../docs_src/security/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="78-81"
+ {!> ../../../docs_src/security/tutorial003_py310.py!}
+ ```
+
+#### ð `**user_dict`
+
+`UserInDB(**user_dict)` â:
+
+*ð¶ââïž ð & ð² `user_dict` ð ð-ð² â, ð:*
+
+```Python
+UserInDB(
+ username = user_dict["username"],
+ email = user_dict["email"],
+ full_name = user_dict["full_name"],
+ disabled = user_dict["disabled"],
+ hashed_password = user_dict["hashed_password"],
+)
+```
+
+!!! info
+ ð
ð ð `**ð©âð»_ #ïžâ£ ` â
ð [𧟠**â ð·**](../extra-models.md#about-user_indict){.internal-link target=_blank}.
+
+## ðš ð€
+
+ðš `token` ð ð ð» ð.
+
+â«ïž ð âïž `token_type`. ð ðŒ, ð¥ âïž "ðš" ð€, ð€ ð ð "`bearer`".
+
+& â«ïž ð âïž `access_token`, â®ïž ð» â ð ð ð€.
+
+ð ð
ðŒ, ð¥ ð ð ð & ðš ð `username` ð€.
+
+!!! tip
+ â ð, ð ð ð ð° ð ð ïž, â®ïž ð #ïžâ£ & ð¥ ð€.
+
+ âïž ð, â¡ïž ð¯ ð ð¯ â¹ ð¥ ðª.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="85"
+ {!> ../../../docs_src/security/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="83"
+ {!> ../../../docs_src/security/tutorial003_py310.py!}
+ ```
+
+!!! tip
+ ð, ð ð ðš ð» â®ïž `access_token` & `token_type`, ð ð ðŒ.
+
+ ð ð³ ð ð âïž ð ð ð, & â ð ð âïž ð ð» ð.
+
+ â«ïž ð ðŽ ð ð ð âïž ð â ð, ð ïž â®ïž ð§.
+
+ ð, **FastAPI** ðµ â«ïž ð.
+
+## â¹ ð
+
+ð ð¥ ð â¹ ð ð.
+
+ð¥ ð ð€ `current_user` *ðŽ* ð¥ ð ð©âð» ðŠ.
+
+, ð¥ â ð ð `get_current_active_user` ð ð âïž `get_current_user` ð.
+
+ð¯ââïž ð ð ð ðš ðºðžð â ð¥ ð©âð» ð« ð, âïž ð¥ ð.
+
+, ð ð, ð¥ ð ðŽ ð€ ð©âð» ð¥ ð©âð» ð, â ð, & ðŠ:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="58-66 69-72 90"
+ {!> ../../../docs_src/security/tutorial003.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="55-64 67-70 88"
+ {!> ../../../docs_src/security/tutorial003_py310.py!}
+ ```
+
+!!! info
+ ð ð `WWW-Authenticate` â®ïž ð² `Bearer` ð¥ ð¬ ð¥ ð ð.
+
+ ð ðºðžð (â) ð ð 4ïžâ£0ïžâ£1ïžâ£ "â" ð€ ðš `WWW-Authenticate` ð.
+
+ ðŒ ðš ð€ (ð ðŒ), ð² ð ð ð `Bearer`.
+
+ ð ðª ð€ ð¶ ð â ð & â«ïž ð ð·.
+
+ âïž â«ïž ð ð¥ ð ïž â®ïž ð§.
+
+ , ð€ 5ïžâ£ð 𧰠ð â & âïž â«ïž (ð âïž ð®) & ð ðª â ð âïž ð ð©âð», ð âïž ð®.
+
+ ð ð° ð©...
+
+## ð â«ïž ð¯
+
+ð ð ð©º: http://127.0.0.1:8000/docs.
+
+### ð
+
+ð "â" ðŒ.
+
+âïž ð:
+
+ð©âð»: `johndoe`
+
+ð: `secret`
+
+
+
+â®ïž ð âïž, ð ð ð â«ïž ð:
+
+
+
+### ð€ ð ð ð©âð» ðœ
+
+ð âïž ð ïž `GET` â®ïž â¡ `/users/me`.
+
+ð ð ð€ ð ð©âð» ð, ð:
+
+```JSON
+{
+ "username": "johndoe",
+ "email": "johndoe@example.com",
+ "full_name": "John Doe",
+ "disabled": false,
+ "hashed_password": "fakehashedsecret"
+}
+```
+
+
+
+ð¥ ð ð ð â¹ & â, & â€Žïž ð ð ð ïž ð, ð ð ð€ ðºðžð 4ïžâ£0ïžâ£1ïžâ£ â:
+
+```JSON
+{
+ "detail": "Not authenticated"
+}
+```
+
+### ð ð©âð»
+
+ð ð â®ïž ð ð©âð», ð â®ïž:
+
+ð©âð»: `alice`
+
+ð: `secret2`
+
+& ð âïž ð ïž `GET` â®ïž â¡ `/users/me`.
+
+ð ð ð€ "ð ð©âð»" â, ð:
+
+```JSON
+{
+ "detail": "Inactive user"
+}
+```
+
+## ð
+
+ð ð âïž ð§° ð ïž ð ðââ âïž âïž ð `username` & `password` ð ð ïž.
+
+âïž ð« ð§°, ð ðª â ðââ âïž ð â®ïž ð ðœ & â®ïž ð ð©âð» âïž ðœ ð·.
+
+ðŽ â¹ â ð â«ïž ð« ð€ "ð".
+
+â ð ð ð ð â âïž ð ð ð ð & ð¥ ð€.
diff --git a/docs/em/docs/tutorial/sql-databases.md b/docs/em/docs/tutorial/sql-databases.md
new file mode 100644
index 000000000..9d46c2460
--- /dev/null
+++ b/docs/em/docs/tutorial/sql-databases.md
@@ -0,0 +1,786 @@
+# ð (ð) ðœ
+
+**FastAPI** ð« ð ð âïž ð (ð) ðœ.
+
+âïž ð ðª âïž ð ð ðœ ð ð ð.
+
+ð¥ ð¥ ð ð ðŒ âïž ðžð².
+
+ð ðª ðª ð ïž â«ïž ð ðœ ðâðŠº ðžð², ð:
+
+* â³
+* â³
+* ð
+* ðž
+* ð€žââ ð ðœ, âïž.
+
+ð ðŒ, ð¥ ð âïž **ð**, â©ïž â«ïž âïž ð ð & ð âïž ð ïž ðâðŠº. , ð ðª ð ð ðŒ & ð â«ïž.
+
+âª, ð ð ðž, ð ðª ð âïž ðœ ðœ ð **â³**.
+
+!!! tip
+ ð€ ð ð ð â®ïž **FastAPI** & **â³**, ð âïž ð **â**, ð ðž & ð ð§°: https://github.com/tiangolo/full-stack-fastapi-postgresql
+
+!!! note
+ ð ð ð ð ð© `SQLAlchemy` ð ð ð âïž â®ïž ð ð ïž.
+
+ **FastAPI** ð¯ ð ð€ª ð§.
+
+## ð
+
+**FastAPI** ð· â®ïž ð ðœ & ð ð ð ð¬ ðœ.
+
+â â âïž "ð": "ð-ð ðº" ð.
+
+ð âïž ð§° ð ("*ðº*") ð *ð* ð & ðœ ð ("*ð*").
+
+â®ïž ð, ð ð â ð ð ðš ð ð ðœ, ð ð¢ ð ðš ð, â®ïž ð & ð.
+
+ðŒ ð `Pet` ðª ðš ð ð `pets`.
+
+& ð *ð* ð ð ð ðš â ðœ.
+
+ðŒ ð `orion_cat` (ð `Pet`) ðª âïž ð¢ `orion_cat.type`, ð `type`. & ð² ð ð¢ ðª, â
`"cat"`.
+
+ð« ð âïž ð§° â ð âïž ð ð ð âïž ðšâðŒ.
+
+ð ð, ð ðª âïž ð¢ `orion_cat.owner` & ðšâðŒ ð ð ðœ ð ð¶ ðšâðŒ, â âªïžâ¡ïž ð *ðšâðŒ*.
+
+, `orion_cat.owner.name` ðª ð (âªïžâ¡ïž `name` ð `owners` ð) ð ð¶ ðšâðŒ.
+
+â«ïž ðª âïž ð² ð `"Arquilian"`.
+
+& ð ð ð ð· ð€ â¹ âªïžâ¡ïž ð ð *ðšâðŒ* ðâ ð ð ð â«ïž âªïžâ¡ïž ð ð¶ ð.
+
+â ð ðŒ: â³-ð (ð â³ ð ïž), ðžð² ð (ð ðžð², ð¬ ð ïž) & ð (ð¬ ð ïž), ðª ð.
+
+ð¥ ð¥ ð ð â ð· â®ïž **ðžð² ð**.
+
+ð ð ð ðª âïž ð ð ð.
+
+!!! tip
+ ð€ ð ð âïž ð ð¥ ð©º.
+
+## ð ð
+
+ð« ðŒ, â¡ïž ð¬ ð âïž ð ð `my_super_project` ð ð ð§-ð ð€ `sql_app` â®ïž ð ð ð:
+
+```
+.
+âââ sql_app
+ âââ __init__.py
+ âââ crud.py
+ âââ database.py
+ âââ main.py
+ âââ models.py
+ âââ schemas.py
+```
+
+ð `__init__.py` ð ð, âïž â«ïž ð¬ ð ð `sql_app` â®ïž ð ð® ð¹ (ð ð) ðŠ.
+
+ð â¡ïž ð â«ïžâ ð ð/ð¹ ðš.
+
+## â `SQLAlchemy`
+
+ð¥ ð ðª â `SQLAlchemy`:
+
+
+
+```console
+$ pip install sqlalchemy
+
+---> 100%
+```
+
+
+
+## â ðžð² ð
+
+â¡ïž ð ð `sql_app/database.py`.
+
+### ð ðžð² ð
+
+```Python hl_lines="1-3"
+{!../../../docs_src/sql_databases/sql_app/database.py!}
+```
+
+### â ðœ ð ðžð²
+
+```Python hl_lines="5-6"
+{!../../../docs_src/sql_databases/sql_app/database.py!}
+```
+
+ð ðŒ, ð¥ "ð" ð ðœ (ð ð â®ïž ð ðœ).
+
+ð ð ð ð ð ð `sql_app.db`.
+
+ð â«ïžâ ð ð `./sql_app.db`.
+
+ð¥ ð âïž **â³** ðœ â©ïž, ð ð âïž â âž:
+
+```Python
+SQLALCHEMY_DATABASE_URL = "postgresql://user:password@postgresserver/db"
+```
+
+...& ð ïž â«ïž â®ïž ð ðœ ð & ð (ð â³, â³ âïž ð ð).
+
+!!! tip
+
+ ð ð âž ð ð ð âïž ð ð¥ ð ð âïž ð ðœ.
+
+### â ðžð² `engine`
+
+ð¥ ð â ðžð² "ð".
+
+ð¥ ð ⪠âïž ð `engine` ð ð¥.
+
+```Python hl_lines="8-10"
+{!../../../docs_src/sql_databases/sql_app/database.py!}
+```
+
+#### ð
+
+â:
+
+```Python
+connect_args={"check_same_thread": False}
+```
+
+...ðª ðŽ `SQLite`. â«ïž ð« ðª ð ðœ.
+
+!!! info "ð¡ â¹"
+
+ ð¢ ð ð ðŽ â 1ïžâ£ 𧵠ð â®ïž â«ïž, ð€ ð ð 𧵠ð ðµ ð¬ ðš.
+
+ ð â ð« ð€ ð ð ð ð (ð ðš).
+
+ âïž FastAPI, âïž ð ð¢ (`def`) ð
ð 1ïžâ£ 𧵠ðª ð â®ïž ðœ ð ðš, ð¥ ðª â ð ð ð â«ïž ð â ð â®ïž `connect_args={"check_same_thread": False}`.
+
+ , ð¥ ð â ð ð ðš ð€ ð® ð ðœ ð ð ð, ð€ ð
ââ ðª ð ð¢ ð ïž.
+
+### â `SessionLocal` ð
+
+ð ð `SessionLocal` ð ð ðœ ð. ð â«ïž ð« ðœ ð.
+
+âïž ð ð¥ â ð `SessionLocal` ð, ð ð ð â ðœ ð.
+
+ð¥ ð â«ïž `SessionLocal` ð¬ â«ïž âªïžâ¡ïž `Session` ð¥ ð âªïžâ¡ïž ðžð².
+
+ð¥ ð âïž `Session` (1ïžâ£ ð âªïžâ¡ïž ðžð²) âª.
+
+â `SessionLocal` ð, âïž ð¢ `sessionmaker`:
+
+```Python hl_lines="11"
+{!../../../docs_src/sql_databases/sql_app/database.py!}
+```
+
+### â `Base` ð
+
+ð ð¥ ð âïž ð¢ `declarative_base()` ð ðš ð.
+
+⪠ð¥ ð ð âªïžâ¡ïž ð ð â ð ðœ ð· âïž ð (ð ð·):
+
+```Python hl_lines="13"
+{!../../../docs_src/sql_databases/sql_app/database.py!}
+```
+
+## â ðœ ð·
+
+â¡ïž ð ð ð `sql_app/models.py`.
+
+### â ðžð² ð· âªïžâ¡ïž `Base` ð
+
+ð¥ ð âïž ð `Base` ð ð¥ â â â ðžð² ð·.
+
+!!! tip
+ ðžð² âïž â "**ð·**" ð ð ð & ð ð ð â®ïž ðœ.
+
+ âïž Pydantic âïž â "**ð·**" ð ð³ ð, ðœ ð¬, ð ïž, & 𧟠ð & ð.
+
+ð `Base` âªïžâ¡ïž `database` (ð `database.py` âªïžâ¡ïž ð).
+
+â ð ð ð âªïžâ¡ïž â«ïž.
+
+ð« ð ðžð² ð·.
+
+```Python hl_lines="4 7-8 18-19"
+{!../../../docs_src/sql_databases/sql_app/models.py!}
+```
+
+`__tablename__` ð¢ ð¬ ðžð² ð ð âïž ðœ ð ð« ð·.
+
+### â ð· ð¢/ð
+
+ð â ð ð· (ð) ð¢.
+
+ð ð« ð¢ ðš ð ð® ð ðœ ð.
+
+ð¥ âïž `Column` âªïžâ¡ïž ðžð² ð¢ ð².
+
+& ð¥ ð¶ââïž ðžð² ð "ð", `Integer`, `String`, & `Boolean`, ð ð¬ ð ðœ, â.
+
+```Python hl_lines="1 10-13 21-24"
+{!../../../docs_src/sql_databases/sql_app/models.py!}
+```
+
+### â ð
+
+ð â ð.
+
+ð, ð¥ âïž `relationship` ð ðžð² ð.
+
+ð ð â¶ïžïž, ð
âïž ð, "ð±" ð¢ ð ð ð ð² âªïžâ¡ïž ð ð ð ð 1ïžâ£.
+
+```Python hl_lines="2 15 26"
+{!../../../docs_src/sql_databases/sql_app/models.py!}
+```
+
+ðâ ð ð¢ `items` `User`, `my_user.items`, â«ïž ð âïž ð `Item` ðžð² ð· (âªïžâ¡ïž `items` ð) ð âïž ð± ð â ð ⺠`users` ð.
+
+ðâ ð ð `my_user.items`, ðžð² ð ð€ ð¶ & â ð¬ âªïžâ¡ïž ðœ `items` ð & ð ð« ð¥.
+
+& ðâ ð ð¢ `owner` `Item`, â«ïž ð ð `User` ðžð² ð· âªïžâ¡ïž `users` ð. â«ïž ð âïž `owner_id` ð¢/ð â®ïž ð® ð± ð ð â ⺠ð€ âªïžâ¡ïž `users` ð.
+
+## â Pydantic ð·
+
+ð â¡ïž â
ð `sql_app/schemas.py`.
+
+!!! tip
+ â ðš ð ðžð² *ð·* & Pydantic *ð·*, ð¥ ð âïž ð `models.py` â®ïž ðžð² ð·, & ð `schemas.py` â®ïž Pydantic ð·.
+
+ ð« Pydantic ð· ð¬ ð
âïž ð "ð" (â ð ð ).
+
+ ð ð â¹ ð¥ â ðš ⪠âïž ð¯ââïž.
+
+### â â¶ïž Pydantic *ð·* / ð
+
+â `ItemBase` & `UserBase` Pydantic *ð·* (âïž â¡ïž ð¬ "ð") âïž â ð¢ ⪠ð âïž ð ð.
+
+& â `ItemCreate` & `UserCreate` ð ð âªïžâ¡ïž ð« (ð« ð âïž ð ð¢), â ð ð ð (ð¢) ðª ð.
+
+, ð©âð» ð âïž `password` ðâ ð â«ïž.
+
+âïž ðââ, `password` ð ð« ð Pydantic *ð·*, ðŒ, â«ïž ð ð« ðš âªïžâ¡ïž ð ïž ðâ ð ð©âð».
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="3 6-8 11-12 23-24 27-28"
+ {!> ../../../docs_src/sql_databases/sql_app/schemas.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="3 6-8 11-12 23-24 27-28"
+ {!> ../../../docs_src/sql_databases/sql_app_py39/schemas.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="1 4-6 9-10 21-22 25-26"
+ {!> ../../../docs_src/sql_databases/sql_app_py310/schemas.py!}
+ ```
+
+#### ðžð² ð & Pydantic ð
+
+ð ð ðžð² *ð·* ð¬ ð¢ âïž `=`, & ð¶ââïž ð ð¢ `Column`, ð:
+
+```Python
+name = Column(String)
+```
+
+⪠Pydantic *ð·* ð£ ð âïž `:`, ð ð â â/ð ð:
+
+```Python
+name: str
+```
+
+âïž â«ïž ð€¯, ð ð« ð€ ð ðâ âïž `=` & `:` â®ïž ð«.
+
+### â Pydantic *ð·* / ð ð / ðš
+
+ð â Pydantic *ð·* (ð) ð ð âïž ðâ ð ðœ, ðâ ð¬ â«ïž âªïžâ¡ïž ð ïž.
+
+ðŒ, â ð ð¬, ð¥ ð« ð â«ïžâ ð ð ð ïž â«ïž, âïž ðâ ð â«ïž (ðâ ð¬ â«ïž âªïžâ¡ïž ð ïž) ð¥ ð ⪠ð ð® ð.
+
+ð ð, ðâ ð ð©âð», ð¥ ðª ð ð£ ð `items` ð ð ð¬ ð ð ð ð©âð».
+
+ð« ðŽ ð ð ð¬, âïž ð ðœ ð ð¥ ð¬ Pydantic *ð·* ð ð¬: `Item`.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="15-17 31-34"
+ {!> ../../../docs_src/sql_databases/sql_app/schemas.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="15-17 31-34"
+ {!> ../../../docs_src/sql_databases/sql_app_py39/schemas.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="13-15 29-32"
+ {!> ../../../docs_src/sql_databases/sql_app_py310/schemas.py!}
+ ```
+
+!!! tip
+ ð ð `User`, Pydantic *ð·* ð ð âïž ðâ ð ð©âð» (ð¬ â«ïž âªïžâ¡ïž ð ïž) ð« ð `password`.
+
+### âïž Pydantic `orm_mode`
+
+ð, Pydantic *ð·* ð, `Item` & `User`, ð® ð `Config` ð.
+
+ð `Config` ð âïž ð ð³ Pydantic.
+
+`Config` ð, â ð¢ `orm_mode = True`.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="15 19-20 31 36-37"
+ {!> ../../../docs_src/sql_databases/sql_app/schemas.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="15 19-20 31 36-37"
+ {!> ../../../docs_src/sql_databases/sql_app_py39/schemas.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python hl_lines="13 17-18 29 34-35"
+ {!> ../../../docs_src/sql_databases/sql_app_py310/schemas.py!}
+ ```
+
+!!! tip
+ ð â«ïž â ð² â®ïž `=`, ð:
+
+ `orm_mode = True`
+
+ â«ïž ð« âïž `:` ð ð â.
+
+ ð â ð ð², ð« ð£ ð.
+
+Pydantic `orm_mode` ð ð¬ Pydantic *ð·* â ðœ ð¥ â«ïž ð« `dict`, âïž ð ð· (âïž ð ð â ð â®ïž ð¢).
+
+ð ð, â©ïž ðŽ ð ð€ `id` ð² âªïžâ¡ïž `dict`,:
+
+```Python
+id = data["id"]
+```
+
+â«ïž ð ð ð€ â«ïž âªïžâ¡ïž ð¢,:
+
+```Python
+id = data.id
+```
+
+& â®ïž ð, Pydantic *ð·* ð â®ïž ð, & ð ðª ð£ â«ïž `response_model` â ð *â¡ ð ïž*.
+
+ð ð ðª ðš ðœ ð· & â«ïž ð â ðœ âªïžâ¡ïž â«ïž.
+
+#### ð¡ â¹ ð ð ð³
+
+ðžð² & ð ð ð¢ "ð ð".
+
+ð â, ðŒ, ð ð« ð« â ðœ ð âªïžâ¡ïž ðœ ð¥ ð ð ð ð¢ ð ð ð ð ðœ.
+
+ðŒ, ð ð¢ `items`:
+
+```Python
+current_user.items
+```
+
+ð â ðžð² ð¶ `items` ð & ð€ ð¬ ð ð©âð», âïž ð« â.
+
+ðµ `orm_mode`, ð¥ ð ðš ðžð² ð· âªïžâ¡ïž ð *â¡ ð ïž*, â«ïž ð«ð ð ð ðœ.
+
+ð¥ ð ð£ ð ð ð Pydantic ð·.
+
+âïž â®ïž ð ð³, Pydantic â«ïž ð ð ð ðœ â«ïž ðª âªïžâ¡ïž ð¢ (â©ïž ð€ `dict`), ð ðª ð£ ð¯ ðœ ð ð ðš & â«ïž ð ðª ð¶ & ð€ â«ïž, âªïžâ¡ïž ð.
+
+## ð© ðšð»
+
+ð â¡ïž ð ð `sql_app/crud.py`.
+
+ð ð ð¥ ð âïž â» ð¢ ð â®ïž ðœ ðœ.
+
+**ð©** ð âªïžâ¡ïž: **ð
±**ð§, **â**ð³, **ð€** = , & **ðšð®**ð§.
+
+...ð ð ðŒ ð¥ ðŽ ð & ð.
+
+### â ðœ
+
+ð `Session` âªïžâ¡ïž `sqlalchemy.orm`, ð ð â ð ð£ ð `db` ð¢ & âïž ð» ð â
& ð ïž ð ð¢.
+
+ð `models` (ðžð² ð·) & `schemas` (Pydantic *ð·* / ð).
+
+â ð ð¢:
+
+* â ð ð©âð» ð & ð§.
+* â ð ð©âð».
+* â ð ð¬.
+
+```Python hl_lines="1 3 6-7 10-11 14-15 27-28"
+{!../../../docs_src/sql_databases/sql_app/crud.py!}
+```
+
+!!! tip
+ ð ð¢ ð ðŽ ð¡ ð â®ïž ðœ (ð€ ð©âð» âïž ð¬) ð¬ ð *â¡ ð ïž ð¢*, ð ðª ð ðª â» ð« ð ð & ð® â ð¯ ð«.
+
+### â ðœ
+
+ð â ð ð¢ â ðœ.
+
+ð:
+
+* â ðžð² ð· *ð* â®ïž ð ð.
+* `add` ð ð ð ð ðœ ð.
+* `commit` ð ðœ (ð ð« ð).
+* `refresh` ð ð (ð â«ïž ð ð ð ð âªïžâ¡ïž ðœ, ð ð ð).
+
+```Python hl_lines="18-24 31-36"
+{!../../../docs_src/sql_databases/sql_app/crud.py!}
+```
+
+!!! tip
+ ðžð² ð· `User` ð `hashed_password` ð ð ð ð #ïžâ£ ⬠ð.
+
+ âïž â«ïžâ ð ïž ð©âð» ð â®ïž ð, ð ðª â â«ïž & ð #ïžâ£ ð ð ðž.
+
+ & â€Žïž ð¶ââïž `hashed_password` â â®ïž ð² ð.
+
+!!! warning
+ ð ðŒ ð« ð, ð ð«#ïžâ£.
+
+ ð° ðšââ€âðš ðž ð ð ðª #ïžâ£ ð & ð
ð ð« ð¢.
+
+ ð
â¹, ð¶ ð ðââ ð ð°.
+
+ ð¥ ð¥ ð¯ ðŽ ð 𧰠& ðšâð§ ðœ.
+
+!!! tip
+ â©ïž ð¶ââïž ð ðšð» â `Item` & ð ð 1ïžâ£ ð« âªïžâ¡ïž Pydantic *ð·*, ð¥ ð `dict` â®ïž Pydantic *ð·*'â ð â®ïž:
+
+ `item.dict()`
+
+ & â€Žïž ð¥ ð¶ââïž `dict`'â ð-ð² ð« ðšð» â ðžð² `Item`, â®ïž:
+
+ `Item(**item.dict())`
+
+ & â€Žïž ð¥ ð¶ââïž â ðšð» â `owner_id` ð ð« ð Pydantic *ð·*, â®ïž:
+
+ `Item(**item.dict(), owner_id=user_id)`
+
+## ð **FastAPI** ð±
+
+& ð ð `sql_app/main.py` â¡ïž ð ïž & âïž ð ð ð ð¥ â â.
+
+### â ðœ ð
+
+ð¶ ð ð â ðœ ð:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="9"
+ {!> ../../../docs_src/sql_databases/sql_app/main.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="7"
+ {!> ../../../docs_src/sql_databases/sql_app_py39/main.py!}
+ ```
+
+#### â ð
+
+ð ð ð ð² ð¢ ð ðœ (â ð, âïž) â®ïž â.
+
+& ð ð âïž â "ð ïž" (ð ð® ð ðšâð).
+
+"ð ïž" â ð ðª ðâ ð ð ð ð ðžð² ð·, ð® ð ð¢, âïž. ð ð ð ðœ, ð® ð ð, ð ð, âïž.
+
+ð ðª ð ðŒ â FastAPI ð ð âªïžâ¡ïž [ð â¡ - ð](../project-generation.md){.internal-link target=_blank}. ð¯ `alembic` ð â¹ ð.
+
+### â ð
+
+ð âïž `SessionLocal` ð ð¥ â `sql_app/database.py` ð â ð.
+
+ð¥ ðª âïž ð¬ ðœ ð/ð (`SessionLocal`) ð ðš, âïž ð ð ð ð ðš & â€Žïž ð â«ïž â®ïž ðš ð.
+
+& â€Žïž ð ð ð â â ðš.
+
+ð, ð¥ ð â ð ð â®ïž `yield`, ð¬ â ð ð [ð â®ïž `yield`](dependencies/dependencies-with-yield.md){.internal-link target=_blank}.
+
+ð ð ð â ð ðžð² `SessionLocal` ð ð âïž ð ðš, & â€Žïž ð â«ïž ð ðš ð.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="15-20"
+ {!> ../../../docs_src/sql_databases/sql_app/main.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="13-18"
+ {!> ../../../docs_src/sql_databases/sql_app_py39/main.py!}
+ ```
+
+!!! info
+ ð¥ ð® ð `SessionLocal()` & ð ðš `try` ð«.
+
+ & â€Žïž ð¥ ð â«ïž `finally` ð«.
+
+ ð ð ð¥ â ð ðœ ð ð§ ðª â®ïž ðš. ð¥ ð€ â ⪠ð ðš.
+
+ âïž ð ðª ð« ð€ â1ïžâ£ â âªïžâ¡ïž ðª ð (â®ïž `yield`). ð ð [ð â®ïž `yield` & `HTTPException`](./dependencies/dependencies-with-yield.md#dependencies-with-yield-and-httpexception){.internal-link target=_blank}
+
+& ‎ïž, ðâ âïž ð *â¡ ð ïž ð¢*, ð¥ ð£ â«ïž â®ïž ð `Session` ð¥ ð ð âªïžâ¡ïž ðžð².
+
+ð ð â€Žïž ð€ ð¥ ð ðšâðš ðâðŠº ð *â¡ ð ïž ð¢*, â©ïž ðšâðš ð ð ð `db` ð¢ ð `Session`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="24 32 38 47 53"
+ {!> ../../../docs_src/sql_databases/sql_app/main.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="22 30 36 45 51"
+ {!> ../../../docs_src/sql_databases/sql_app_py39/main.py!}
+ ```
+
+!!! info "ð¡ â¹"
+ ð¢ `db` ð€ ð `SessionLocal`, âïž ð ð (â â®ïž `sessionmaker()`) "ð³" ðžð² `Session`,, ðšâðš ð« ð€ ð â«ïžâ ð©âð¬ ð.
+
+ âïž ð£ ð `Session`, ðšâðš ð ðª ð ðª ð©âð¬ (`.add()`, `.query()`, `.commit()`, âïž) & ðª ð ð ðâðŠº (ð ð ïž). ð ð ð« ð â ð.
+
+### â ð **FastAPI** *â¡ ð ïž*
+
+ð, ð, ð¥ ð© **FastAPI** *â¡ ð ïž* ð.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="23-28 31-34 37-42 45-49 52-55"
+ {!> ../../../docs_src/sql_databases/sql_app/main.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="21-26 29-32 35-40 43-47 50-53"
+ {!> ../../../docs_src/sql_databases/sql_app_py39/main.py!}
+ ```
+
+ð¥ ð ðœ ð â ð ðš ð â®ïž `yield`, & â€Žïž ðª â«ïž â®ïž.
+
+& â€Žïž ð¥ ðª â ð ð *â¡ ð ïž ð¢*, ð€ ð ð ð.
+
+â®ïž ð, ð¥ ðª ð€ `crud.get_user` ð âªïžâ¡ïž ð *â¡ ð ïž ð¢* & âïž ð ð.
+
+!!! tip
+ ð ð ð² ð ðš ðžð² ð·, âïž ð ðžð² ð·.
+
+ âïž ð *â¡ ð ïž* âïž `response_model` â®ïž Pydantic *ð·* / ð âïž `orm_mode`, ðœ ð£ ð Pydantic ð· ð â âªïžâ¡ïž ð« & ðš ð©âð», â®ïž ð ð ✠& ð¬.
+
+!!! tip
+ ð ð ð€ `response_models` ð âïž ð© ð ð ð `List[schemas.Item]`.
+
+ âïž ð/ð¢ ð `List` Pydantic *ð·* â®ïž `orm_mode`, ðœ ð ð & ðš ð©âð» ð, ðµ â .
+
+### ð `def` ð `async def`
+
+ð¥ ð¥ âïž ðžð² ð ð *â¡ ð ïž ð¢* & ð, &, ð, â«ïž ð ð¶ & ð â®ïž ð¢ ðœ.
+
+ð ðª â ð "â".
+
+âïž ðžð² ð« âïž ð âïž `await` ð, ð â®ïž ð³ ð:
+
+```Python
+user = await db.query(User).first()
+```
+
+...& â©ïž ð¥ âïž:
+
+```Python
+user = db.query(User).first()
+```
+
+â€Žïž ð¥ ð ð£ *â¡ ð ïž ð¢* & ð ðµ `async def`, â®ïž ð `def`,:
+
+```Python hl_lines="2"
+@app.get("/users/{user_id}", response_model=schemas.User)
+def read_user(user_id: int, db: Session = Depends(get_db)):
+ db_user = crud.get_user(db, user_id=user_id)
+ ...
+```
+
+!!! info
+ ð¥ ð ðª ð ð ð ðœ ð, ð [ð ð (ð) ðœ](../advanced/async-sql-databases.md){.internal-link target=_blank}.
+
+!!! note "ð¶ ð¡ â¹"
+ ð¥ ð ð & âïž â¬ ð¡ ð¡, ð ðª â
ð¶ ð¡ â¹ â ð `async def` ð `def` ðµ [ð](../async.md#very-technical-details){.internal-link target=_blank} ð©º.
+
+## ð ïž
+
+â©ïž ð¥ âïž ðžð² ð & ð¥ ð« ð ð ð ð-â«ïž ð· â®ïž **FastAPI**, ð¥ ðª ð ïž ðœ ð ïž â®ïž â ð.
+
+& ð ð ðžð² & ðžð² ð· ð ð ð¬ ð, ð ð ðª ð ð ïž â®ïž â ðµ âïž â FastAPI, Pydantic, âïž ð³ ð.
+
+ð ð, ð ð ðª âïž ð ðžð² ð· & ð ð ð ð ð ð ð« ð **FastAPI**.
+
+ðŒ, ð¥ ð ðšâð â®ïž ð¥, ð
¿, âïž ð¶.
+
+## ð ð ð
+
+ ð ð ð âïž ð ð `my_super_project` ð ð ð§-ð ð€ `sql_app`.
+
+`sql_app` ð âïž ð ð:
+
+* `sql_app/__init__.py`: ð ð.
+
+* `sql_app/database.py`:
+
+```Python
+{!../../../docs_src/sql_databases/sql_app/database.py!}
+```
+
+* `sql_app/models.py`:
+
+```Python
+{!../../../docs_src/sql_databases/sql_app/models.py!}
+```
+
+* `sql_app/schemas.py`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python
+ {!> ../../../docs_src/sql_databases/sql_app/schemas.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python
+ {!> ../../../docs_src/sql_databases/sql_app_py39/schemas.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python
+ {!> ../../../docs_src/sql_databases/sql_app_py310/schemas.py!}
+ ```
+
+* `sql_app/crud.py`:
+
+```Python
+{!../../../docs_src/sql_databases/sql_app/crud.py!}
+```
+
+* `sql_app/main.py`:
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python
+ {!> ../../../docs_src/sql_databases/sql_app/main.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python
+ {!> ../../../docs_src/sql_databases/sql_app_py39/main.py!}
+ ```
+
+## â
â«ïž
+
+ð ðª ð ð ð & âïž â«ïž.
+
+!!! info
+
+ ð, ð ðŠ ð¥ ð ð¯. ð
ð ð ð©º.
+
+â€Žïž ð ðª ð â«ïž â®ïž Uvicorn:
+
+
+
+
+```console
+$ uvicorn sql_app.main:app --reload
+
+INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
+```
+
+
+
+& ‎ïž, ð ðª ð ð ð¥ http://127.0.0.1:8000/docs.
+
+& ð ð ðª ð â®ïž ð **FastAPI** ðž, ð ð âªïžâ¡ïž ð° ðœ:
+
+
+
+## ð â®ïž ðœ ð
+
+ð¥ ð ð ð¬ ð ðœ (ð) ð, â¡ FastAPI, â¹ ð® ð, ð® ð, ð, âº, ð ð, âïž. ð ðª âïž ðœ ð¥ ð.
+
+â«ïž ð ð ð ð:
+
+
+
+ð ðª âïž ð³ ð ð¥ ð ð ð âïž ExtendsClass.
+
+## ð ðœ ð â®ïž ð ïž
+
+ð¥ ð ðª ð« âïž ð â®ïž `yield` - ðŒ, ð¥ ð ð« âïž **ð 3ïžâ£.7ïžâ£** & ðª ð« â "ð" ð€ ð **ð 3ïžâ£.6ïžâ£** - ð ðª â ð ð "ð ïž" ð ð.
+
+"ð ïž" ð ð¢ ð ð§ ð ïž ð ðš, â®ïž ð ð ïž â, & ð ð ïž â®ïž ð ð¢.
+
+### â ð ïž
+
+ð ïž ð¥ ð ð® (ð¢) ð â ð ðžð² `SessionLocal` ð ðš, ð® â«ïž ðš & â€Žïž ð â«ïž ð ðš ð.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python hl_lines="14-22"
+ {!> ../../../docs_src/sql_databases/sql_app/alt_main.py!}
+ ```
+
+=== "ð 3ïžâ£.9ïžâ£ & ð"
+
+ ```Python hl_lines="12-20"
+ {!> ../../../docs_src/sql_databases/sql_app_py39/alt_main.py!}
+ ```
+
+!!! info
+ ð¥ ð® ð `SessionLocal()` & ð ðš `try` ð«.
+
+ & â€Žïž ð¥ ð â«ïž `finally` ð«.
+
+ ð ð ð¥ â ð ðœ ð ð§ ðª â®ïž ðš. ð¥ ð€ â ⪠ð ðš.
+
+### ð `request.state`
+
+`request.state` ð ð `Request` ð. â«ïž ð€ ðª â ð ð ðš â«ïž, ð ðœ ð ð ðŒ. ð ðª â ð
ð â«ïž ð 𩺠ð `Request` ðµðž.
+
+ð¥ ð ðŒ, â«ïž â¹ ð¥ ð ð ðœ ð âïž ð ð ðš, & â€Žïž ð â®ïž (ð ïž).
+
+### ð â®ïž `yield` âïž ð ïž
+
+â **ð ïž** ð¥ ð â«ïžâ ð â®ïž `yield` ðš, â®ïž ðº:
+
+* â«ïž ð ð ð & ð ð
ð.
+* ð ïž âïž `async` ð¢.
+ * ð¥ ð€ ð â«ïž ð âïž "â" ðž, â«ïž ðª "ð«" ð ðž ð€ & ð ð ð.
+ * ð â«ïž ð² ð« ð¶ â ð¥ â®ïž ð `SQLAlchemy` ð·.
+ * âïž ð¥ ð ð® ð ð ð ïž ð âïž ð ð€/ð
Ÿ â, â«ïž ðª â€Žïž â .
+* ð ïž ð *ð * ðš.
+ * , ð ð â ð ðš.
+ * ðâ *â¡ ð ïž* ð ðµ ð ðš ð« ðª ðœ.
+
+!!! tip
+ â«ïž ð² ð âïž ð â®ïž `yield` ðâ ð« ð¥ âïž ðŒ.
+
+!!! info
+ ð â®ïž `yield` ð® â³ **FastAPI**.
+
+ â®ïž ⬠ð ð° ðŽ âïž ðŒ â®ïž ð ïž & ð€ ð² ð ðž âïž ð ïž ðœ ð ð§Ÿ.
diff --git a/docs/em/docs/tutorial/static-files.md b/docs/em/docs/tutorial/static-files.md
new file mode 100644
index 000000000..6090c5338
--- /dev/null
+++ b/docs/em/docs/tutorial/static-files.md
@@ -0,0 +1,39 @@
+# ð» ð
+
+ð ðª ðŠ ð» ð ð âªïžâ¡ïž ð âïž `StaticFiles`.
+
+## âïž `StaticFiles`
+
+* ð `StaticFiles`.
+* "ð»" `StaticFiles()` ð ð¯ â¡.
+
+```Python hl_lines="2 6"
+{!../../../docs_src/static_files/tutorial001.py!}
+```
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.staticfiles import StaticFiles`.
+
+ **FastAPI** ð ð `starlette.staticfiles` `fastapi.staticfiles` ðª ð, ð©âð». âïž â«ïž ð€ ð ð âªïžâ¡ïž ð.
+
+### â«ïžâ "ð"
+
+"ð" â â ð "ð¬" ðž ð¯ â¡, ð â€Žïž â ð
ð ð ð§-â¡.
+
+ð ð âªïžâ¡ïž âïž `APIRouter` ð» ðž ð ð¬. ð & 𩺠âªïžâ¡ïž ð ð ðž ð ð« ð ð³ âªïžâ¡ïž ð» ðž, âïž.
+
+ð ðª â ð
ð ð **ð§ ð©âð» ðŠ®**.
+
+## â¹
+
+ð¥ `"/static"` ð ð§-â¡ ð "ð§-ðž" ð "ð»" ð. , ð â¡ ð â¶ïž â®ïž `"/static"` ð ðµ â«ïž.
+
+`directory="static"` ð ð ð ð ð ð ð» ð.
+
+`name="static"` ð€ â«ïž ð ð ðª âïž ð **FastAPI**.
+
+ð ð« ð¢ ðª ð ð "`static`", ð ð« â®ïž ðª & ð¯ â¹ ð ð ðž.
+
+## ð
â¹
+
+ð â¹ & ð â
ð 𩺠ð ð» ð.
diff --git a/docs/em/docs/tutorial/testing.md b/docs/em/docs/tutorial/testing.md
new file mode 100644
index 000000000..999d67cd3
--- /dev/null
+++ b/docs/em/docs/tutorial/testing.md
@@ -0,0 +1,188 @@
+# ð¬
+
+ð ð, ð¬ **FastAPI** ðž â© & ð.
+
+â«ïž âïž ð ðžð², â ð ð âïž ð ðš, â«ïž ð¶ ð° & ðïž.
+
+â®ïž â«ïž, ð ðª âïž â³ ð â®ïž **FastAPI**.
+
+## âïž `TestClient`
+
+!!! info
+ âïž `TestClient`, ð¥ â `httpx`.
+
+ ð€¶ â. `pip install httpx`.
+
+ð `TestClient`.
+
+â `TestClient` ð¶ââïž ð **FastAPI** ðž â«ïž.
+
+â ð¢ â®ïž ð ð â¶ïž â®ïž `test_` (ð ð© `pytest` ð).
+
+âïž `TestClient` ð ð ð ð â®ïž `httpx`.
+
+â ð
`assert` ð â®ïž ð© ð 𧬠ð ð ðª â
(ð, ð© `pytest`).
+
+```Python hl_lines="2 12 15-18"
+{!../../../docs_src/app_testing/tutorial001.py!}
+```
+
+!!! tip
+ ð ð ð¬ ð¢ ð `def`, ð« `async def`.
+
+ & ð€ ð©âð» ð ð€, ð« âïž `await`.
+
+ ð â ð âïž `pytest` ð ðµ ð€¢.
+
+!!! note "ð¡ â¹"
+ ð ðª âïž `from starlette.testclient import TestClient`.
+
+ **FastAPI** ð ð `starlette.testclient` `fastapi.testclient` ðª ð, ð©âð». âïž â«ïž ð ð âªïžâ¡ïž ð.
+
+!!! tip
+ ð¥ ð ð ð€ `async` ð¢ ð ð¯ âïž âªïžâ¡ïž ðš ðš ð FastAPI ðž (â
ð ðœ ð¢), âïž ð [ð ð¯](../advanced/async-tests.md){.internal-link target=_blank} ð§ ð°.
+
+## ð ð¯
+
+ð° ðž, ð ð² ð âïž ð ð¯ ð ð.
+
+& ð **FastAPI** ðž 5ïžâ£ð â ð ð/ð¹, âïž.
+
+### **FastAPI** ð± ð
+
+â¡ïž ð¬ ð âïž ð ð ð¬ [ðŠ ðž](./bigger-applications.md){.internal-link target=_blank}:
+
+```
+.
+âââ app
+â  âââ __init__.py
+â  âââ main.py
+```
+
+ð `main.py` ð âïž ð **FastAPI** ð±:
+
+
+```Python
+{!../../../docs_src/app_testing/main.py!}
+```
+
+### ð¬ ð
+
+â€Žïž ð ðª âïž ð `test_main.py` â®ïž ð ð¯. â«ïž ðª ð ð ð ð ðŠ (ð ð â®ïž `__init__.py` ð):
+
+``` hl_lines="5"
+.
+âââ app
+â  âââ __init__.py
+â  âââ main.py
+â  âââ test_main.py
+```
+
+â©ïž ð ð ð ðŠ, ð ðª âïž â ð ð ð `app` âªïžâ¡ïž `main` ð¹ (`main.py`):
+
+```Python hl_lines="3"
+{!../../../docs_src/app_testing/test_main.py!}
+```
+
+...& âïž ð ð¯ ð â.
+
+## ð¬: â ðŒ
+
+ð â¡ïž â ð ðŒ & ð® ð â¹ ð â ð¯ ð ð.
+
+### â **FastAPI** ð± ð
+
+â¡ïž ð£ â®ïž ð ð ð â:
+
+```
+.
+âââ app
+â  âââ __init__.py
+â  âââ main.py
+â  âââ test_main.py
+```
+
+â¡ïž ð¬ ð ð ð `main.py` â®ïž ð **FastAPI** ð± âïž ð **â¡ ð ïž**.
+
+â«ïž âïž `GET` ð ïž ð ðª ðš â.
+
+â«ïž âïž `POST` ð ïž ð ðª ðš ð â.
+
+ð¯ââïž *â¡ ð ïž* ð `X-Token` ð.
+
+=== "ð 3ïžâ£.6ïžâ£ & ð"
+
+ ```Python
+ {!> ../../../docs_src/app_testing/app_b/main.py!}
+ ```
+
+=== "ð 3ïžâ£.1ïžâ£0ïžâ£ & ð"
+
+ ```Python
+ {!> ../../../docs_src/app_testing/app_b_py310/main.py!}
+ ```
+
+### â ð¬ ð
+
+ð ðª â€Žïž â¹ `test_main.py` â®ïž â ð¯:
+
+```Python
+{!> ../../../docs_src/app_testing/app_b/test_main.py!}
+```
+
+ðâ ð ðª ð©âð» ð¶ââïž â¹ ðš & ð ð« ð â, ð ðª ð (ðºðžð) â â«ïž `httpx`, âïž â â«ïž â®ïž `requests`, ðžð² ð§ âïž ð ðš' ð§.
+
+â€Žïž ð ð ð ð¯.
+
+ð€¶ â.:
+
+* ð¶ââïž *â¡* âïž *ð¢* ð¢, ð® â«ïž ð â«ïž.
+* ð¶ââïž ð» ðª, ð¶ââïž ð ð (â
`dict`) ð¢ `json`.
+* ð¥ ð ðª ðš *ðš ðœ* â©ïž ð», âïž `data` ð¢ â©ïž.
+* ð¶ââïž *ð*, âïž `dict` `headers` ð¢.
+* *ðª*, `dict` `cookies` ð¢.
+
+ð â¹ ð â ð¶ââïž ðœ ð©âð» (âïž `httpx` âïž `TestClient`) â
ðžð² ð§Ÿ.
+
+!!! info
+ ð ð `TestClient` ðš ðœ ð ðª ð ð», ð« Pydantic ð·.
+
+ ð¥ ð âïž Pydantic ð· ð ð¯ & ð ð ðš ð® ðœ ðž â®ïž ð¬, ð ðª âïž `jsonable_encoder` ð¬ [ð» ð ð¢](encoder.md){.internal-link target=_blank}.
+
+## ð â«ïž
+
+â®ïž ð, ð ðª â `pytest`:
+
+
+
+```console
+$ pip install pytest
+
+---> 100%
+```
+
+
+
+â«ïž ð ð ð & ð¯ ð, ð ïž ð«, & ð ð ð ð.
+
+ð ð¯ â®ïž:
+
+
+
+```console
+$ pytest
+
+================ test session starts ================
+platform linux -- Python 3.6.9, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
+rootdir: /home/user/code/superawesome-cli/app
+plugins: forked-1.1.3, xdist-1.31.0, cov-2.8.1
+collected 6 items
+
+---> 100%
+
+test_main.py ...... [100%]
+
+================= 1 passed in 0.03s =================
+```
+
+
diff --git a/docs/em/mkdocs.yml b/docs/em/mkdocs.yml
new file mode 100644
index 000000000..df21a1093
--- /dev/null
+++ b/docs/em/mkdocs.yml
@@ -0,0 +1,261 @@
+site_name: FastAPI
+site_description: FastAPI framework, high performance, easy to learn, fast to code, ready for production
+site_url: https://fastapi.tiangolo.com/em/
+theme:
+ name: material
+ custom_dir: overrides
+ palette:
+ - media: '(prefers-color-scheme: light)'
+ scheme: default
+ primary: teal
+ accent: amber
+ toggle:
+ icon: material/lightbulb
+ name: Switch to light mode
+ - media: '(prefers-color-scheme: dark)'
+ scheme: slate
+ primary: teal
+ accent: amber
+ toggle:
+ icon: material/lightbulb-outline
+ name: Switch to dark mode
+ features:
+ - search.suggest
+ - search.highlight
+ - content.tabs.link
+ icon:
+ repo: fontawesome/brands/github-alt
+ logo: https://fastapi.tiangolo.com/img/icon-white.svg
+ favicon: https://fastapi.tiangolo.com/img/favicon.png
+ language: en
+repo_name: tiangolo/fastapi
+repo_url: https://github.com/tiangolo/fastapi
+edit_uri: ''
+plugins:
+- search
+- markdownextradata:
+ data: data
+nav:
+- FastAPI: index.md
+- Languages:
+ - en: /
+ - az: /az/
+ - de: /de/
+ - em: /em/
+ - es: /es/
+ - fa: /fa/
+ - fr: /fr/
+ - he: /he/
+ - hy: /hy/
+ - id: /id/
+ - it: /it/
+ - ja: /ja/
+ - ko: /ko/
+ - nl: /nl/
+ - pl: /pl/
+ - pt: /pt/
+ - ru: /ru/
+ - sq: /sq/
+ - sv: /sv/
+ - ta: /ta/
+ - tr: /tr/
+ - uk: /uk/
+ - zh: /zh/
+- features.md
+- fastapi-people.md
+- python-types.md
+- ð° - ð©âð» ðŠ®:
+ - tutorial/index.md
+ - tutorial/first-steps.md
+ - tutorial/path-params.md
+ - tutorial/query-params.md
+ - tutorial/body.md
+ - tutorial/query-params-str-validations.md
+ - tutorial/path-params-numeric-validations.md
+ - tutorial/body-multiple-params.md
+ - tutorial/body-fields.md
+ - tutorial/body-nested-models.md
+ - tutorial/schema-extra-example.md
+ - tutorial/extra-data-types.md
+ - tutorial/cookie-params.md
+ - tutorial/header-params.md
+ - tutorial/response-model.md
+ - tutorial/extra-models.md
+ - tutorial/response-status-code.md
+ - tutorial/request-forms.md
+ - tutorial/request-files.md
+ - tutorial/request-forms-and-files.md
+ - tutorial/handling-errors.md
+ - tutorial/path-operation-configuration.md
+ - tutorial/encoder.md
+ - tutorial/body-updates.md
+ - ð:
+ - tutorial/dependencies/index.md
+ - tutorial/dependencies/classes-as-dependencies.md
+ - tutorial/dependencies/sub-dependencies.md
+ - tutorial/dependencies/dependencies-in-path-operation-decorators.md
+ - tutorial/dependencies/global-dependencies.md
+ - tutorial/dependencies/dependencies-with-yield.md
+ - ðââ:
+ - tutorial/security/index.md
+ - tutorial/security/first-steps.md
+ - tutorial/security/get-current-user.md
+ - tutorial/security/simple-oauth2.md
+ - tutorial/security/oauth2-jwt.md
+ - tutorial/middleware.md
+ - tutorial/cors.md
+ - tutorial/sql-databases.md
+ - tutorial/bigger-applications.md
+ - tutorial/background-tasks.md
+ - tutorial/metadata.md
+ - tutorial/static-files.md
+ - tutorial/testing.md
+ - tutorial/debugging.md
+- ð§ ð©âð» ðŠ®:
+ - advanced/index.md
+ - advanced/path-operation-advanced-configuration.md
+ - advanced/additional-status-codes.md
+ - advanced/response-directly.md
+ - advanced/custom-response.md
+ - advanced/additional-responses.md
+ - advanced/response-cookies.md
+ - advanced/response-headers.md
+ - advanced/response-change-status-code.md
+ - advanced/advanced-dependencies.md
+ - ð§ ðââ:
+ - advanced/security/index.md
+ - advanced/security/oauth2-scopes.md
+ - advanced/security/http-basic-auth.md
+ - advanced/using-request-directly.md
+ - advanced/dataclasses.md
+ - advanced/middleware.md
+ - advanced/sql-databases-peewee.md
+ - advanced/async-sql-databases.md
+ - advanced/nosql-databases.md
+ - advanced/sub-applications.md
+ - advanced/behind-a-proxy.md
+ - advanced/templates.md
+ - advanced/graphql.md
+ - advanced/websockets.md
+ - advanced/events.md
+ - advanced/custom-request-and-route.md
+ - advanced/testing-websockets.md
+ - advanced/testing-events.md
+ - advanced/testing-dependencies.md
+ - advanced/testing-database.md
+ - advanced/async-tests.md
+ - advanced/settings.md
+ - advanced/conditional-openapi.md
+ - advanced/extending-openapi.md
+ - advanced/openapi-callbacks.md
+ - advanced/wsgi.md
+ - advanced/generate-clients.md
+- async.md
+- ð ïž:
+ - deployment/index.md
+ - deployment/versions.md
+ - deployment/https.md
+ - deployment/manually.md
+ - deployment/concepts.md
+ - deployment/deta.md
+ - deployment/server-workers.md
+ - deployment/docker.md
+- project-generation.md
+- alternatives.md
+- history-design-future.md
+- external-links.md
+- benchmarks.md
+- help-fastapi.md
+- contributing.md
+- release-notes.md
+markdown_extensions:
+- toc:
+ permalink: true
+- markdown.extensions.codehilite:
+ guess_lang: false
+- mdx_include:
+ base_path: docs
+- admonition
+- codehilite
+- extra
+- pymdownx.superfences:
+ custom_fences:
+ - name: mermaid
+ class: mermaid
+ format: !!python/name:pymdownx.superfences.fence_code_format ''
+- pymdownx.tabbed:
+ alternate_style: true
+- attr_list
+- md_in_html
+extra:
+ analytics:
+ provider: google
+ property: G-YNEVN69SC3
+ social:
+ - icon: fontawesome/brands/github-alt
+ link: https://github.com/tiangolo/fastapi
+ - icon: fontawesome/brands/discord
+ link: https://discord.gg/VQjSZaeJmf
+ - icon: fontawesome/brands/twitter
+ link: https://twitter.com/fastapi
+ - icon: fontawesome/brands/linkedin
+ link: https://www.linkedin.com/in/tiangolo
+ - icon: fontawesome/brands/dev
+ link: https://dev.to/tiangolo
+ - icon: fontawesome/brands/medium
+ link: https://medium.com/@tiangolo
+ - icon: fontawesome/solid/globe
+ link: https://tiangolo.com
+ alternate:
+ - link: /
+ name: en - English
+ - link: /az/
+ name: az
+ - link: /de/
+ name: de
+ - link: /em/
+ name: ð
+ - link: /es/
+ name: es - español
+ - link: /fa/
+ name: fa
+ - link: /fr/
+ name: fr - français
+ - link: /he/
+ name: he
+ - link: /hy/
+ name: hy
+ - link: /id/
+ name: id
+ - link: /it/
+ name: it - italiano
+ - link: /ja/
+ name: ja - æ¥æ¬èª
+ - link: /ko/
+ name: ko - íêµìŽ
+ - link: /nl/
+ name: nl
+ - link: /pl/
+ name: pl
+ - link: /pt/
+ name: pt - português
+ - link: /ru/
+ name: ru - ÑÑÑÑкОй ÑзÑк
+ - link: /sq/
+ name: sq - shqip
+ - link: /sv/
+ name: sv - svenska
+ - link: /ta/
+ name: ta - ஀மிஎà¯
+ - link: /tr/
+ name: tr - TÌrkçe
+ - link: /uk/
+ name: uk - ÑкÑаÑÐœÑÑка ЌПва
+ - link: /zh/
+ name: zh - æ±è¯
+extra_css:
+- https://fastapi.tiangolo.com/css/termynal.css
+- https://fastapi.tiangolo.com/css/custom.css
+extra_javascript:
+- https://fastapi.tiangolo.com/js/termynal.js
+- https://fastapi.tiangolo.com/js/custom.js
diff --git a/docs/em/overrides/.gitignore b/docs/em/overrides/.gitignore
new file mode 100644
index 000000000..e69de29bb
diff --git a/docs/en/mkdocs.yml b/docs/en/mkdocs.yml
index a5d77acbf..fc21439ae 100644
--- a/docs/en/mkdocs.yml
+++ b/docs/en/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -212,6 +213,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/es/mkdocs.yml b/docs/es/mkdocs.yml
index a89aeb21a..485a2dd70 100644
--- a/docs/es/mkdocs.yml
+++ b/docs/es/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -115,6 +116,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/fa/mkdocs.yml b/docs/fa/mkdocs.yml
index f77f82f69..914b46e1a 100644
--- a/docs/fa/mkdocs.yml
+++ b/docs/fa/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -105,6 +106,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/fr/mkdocs.yml b/docs/fr/mkdocs.yml
index 19182f381..3774d9d42 100644
--- a/docs/fr/mkdocs.yml
+++ b/docs/fr/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -132,6 +133,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/he/mkdocs.yml b/docs/he/mkdocs.yml
index c5689395f..094c5d82e 100644
--- a/docs/he/mkdocs.yml
+++ b/docs/he/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -105,6 +106,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/hy/mkdocs.yml b/docs/hy/mkdocs.yml
index bc64e78f2..ba7c687c1 100644
--- a/docs/hy/mkdocs.yml
+++ b/docs/hy/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -56,6 +57,7 @@ nav:
- ru: /ru/
- sq: /sq/
- sv: /sv/
+ - ta: /ta/
- tr: /tr/
- uk: /uk/
- zh: /zh/
@@ -81,7 +83,7 @@ markdown_extensions:
extra:
analytics:
provider: google
- property: UA-133183413-1
+ property: G-YNEVN69SC3
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/tiangolo/fastapi
@@ -104,6 +106,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
@@ -134,6 +138,8 @@ extra:
name: sq - shqip
- link: /sv/
name: sv - svenska
+ - link: /ta/
+ name: ta - ஀மிஎà¯
- link: /tr/
name: tr - TÌrkçe
- link: /uk/
diff --git a/docs/id/mkdocs.yml b/docs/id/mkdocs.yml
index 7b7875ef7..ca6e09551 100644
--- a/docs/id/mkdocs.yml
+++ b/docs/id/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -105,6 +106,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/it/mkdocs.yml b/docs/it/mkdocs.yml
index 9393c3663..4633dd017 100644
--- a/docs/it/mkdocs.yml
+++ b/docs/it/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -105,6 +106,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/ja/mkdocs.yml b/docs/ja/mkdocs.yml
index 3703398af..9f4342e76 100644
--- a/docs/ja/mkdocs.yml
+++ b/docs/ja/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -149,6 +150,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/ko/mkdocs.yml b/docs/ko/mkdocs.yml
index 29b684371..7d429478c 100644
--- a/docs/ko/mkdocs.yml
+++ b/docs/ko/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -117,6 +118,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/nl/mkdocs.yml b/docs/nl/mkdocs.yml
index d9b1bc1b8..e187ee383 100644
--- a/docs/nl/mkdocs.yml
+++ b/docs/nl/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -105,6 +106,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/pl/mkdocs.yml b/docs/pl/mkdocs.yml
index 8d0d20239..c781f9783 100644
--- a/docs/pl/mkdocs.yml
+++ b/docs/pl/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -108,6 +109,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/pt/mkdocs.yml b/docs/pt/mkdocs.yml
index 2a8302715..a8ab4cb32 100644
--- a/docs/pt/mkdocs.yml
+++ b/docs/pt/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -142,6 +143,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/ru/mkdocs.yml b/docs/ru/mkdocs.yml
index 4b9727872..808479198 100644
--- a/docs/ru/mkdocs.yml
+++ b/docs/ru/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -119,6 +120,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/sq/mkdocs.yml b/docs/sq/mkdocs.yml
index f24c7c503..2766b0adf 100644
--- a/docs/sq/mkdocs.yml
+++ b/docs/sq/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -105,6 +106,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/sv/mkdocs.yml b/docs/sv/mkdocs.yml
index 574cc5abd..5aa37ece6 100644
--- a/docs/sv/mkdocs.yml
+++ b/docs/sv/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -105,6 +106,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/ta/mkdocs.yml b/docs/ta/mkdocs.yml
index e31821e4b..884115044 100644
--- a/docs/ta/mkdocs.yml
+++ b/docs/ta/mkdocs.yml
@@ -41,10 +41,12 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
- he: /he/
+ - hy: /hy/
- id: /id/
- it: /it/
- ja: /ja/
@@ -81,7 +83,7 @@ markdown_extensions:
extra:
analytics:
provider: google
- property: UA-133183413-1
+ property: G-YNEVN69SC3
social:
- icon: fontawesome/brands/github-alt
link: https://github.com/tiangolo/fastapi
@@ -104,6 +106,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
@@ -112,6 +116,8 @@ extra:
name: fr - français
- link: /he/
name: he
+ - link: /hy/
+ name: hy
- link: /id/
name: id
- link: /it/
diff --git a/docs/tr/mkdocs.yml b/docs/tr/mkdocs.yml
index 19dcf2099..23d6b9708 100644
--- a/docs/tr/mkdocs.yml
+++ b/docs/tr/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -110,6 +111,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/uk/mkdocs.yml b/docs/uk/mkdocs.yml
index b8152e821..e9339997f 100644
--- a/docs/uk/mkdocs.yml
+++ b/docs/uk/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -105,6 +106,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/
diff --git a/docs/zh/mkdocs.yml b/docs/zh/mkdocs.yml
index d25881c43..906fcf1d6 100644
--- a/docs/zh/mkdocs.yml
+++ b/docs/zh/mkdocs.yml
@@ -41,6 +41,7 @@ nav:
- en: /
- az: /az/
- de: /de/
+ - em: /em/
- es: /es/
- fa: /fa/
- fr: /fr/
@@ -162,6 +163,8 @@ extra:
name: az
- link: /de/
name: de
+ - link: /em/
+ name: ð
- link: /es/
name: es - español
- link: /fa/