docs: refresh translations for recent English changes - #3636
Conversation
Re-run scripts/docs/translations.py translate for all twelve languages: two new pages (handlers/cancellation.md, advanced/header-parameters.md) and the changed sections of fourteen others.
📚 Documentation preview
|
There was a problem hiding this comment.
18 issues found across 192 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="i18n/tr/pages/handlers/cancellation.md">
<violation number="1" location="i18n/tr/pages/handlers/cancellation.md:12">
P2: This sentence is grammatically incomplete, so the page does not clearly introduce the two handler types that need special handling. Rewrite it as `İki tür işleyici için ise bir şey yapmanız gerekir: ...`.</violation>
<violation number="2" location="i18n/tr/pages/handlers/cancellation.md:46">
P2: The `Client` inflection is incorrect and makes this sentence unnatural. Use `` `Client`'ını kullanırken `` to express giving up while using this SDK's client.</violation>
</file>
<file name="i18n/uk/pages/advanced/index.md">
<violation number="1" location="i18n/uk/pages/advanced/index.md:17">
P3: Use the page’s established Ukrainian title here so navigation and cross-links consistently identify the same page: `Параметри в заголовках`.</violation>
</file>
<file name="i18n/zh/pages/handlers/cancellation.md">
<violation number="1" location="i18n/zh/pages/handlers/cancellation.md:12">
P3: `有两类需要` is incomplete and leaves the reader unsure what these two kinds need; state explicitly that these handlers need extra handling.</violation>
</file>
<file name="i18n/tr/pages/client/transports.md">
<violation number="1" location="i18n/tr/pages/client/transports.md:64">
P2: The translation changes `resumed streams` to `sürdürülen akışlar`, which describes an ongoing stream rather than a stream resumed after disconnection. Use `devam ettirilen akışlar` so readers know this limit also covers the reconnection path.</violation>
</file>
<file name="i18n/de/pages/advanced/header-parameters.md">
<violation number="1" location="i18n/de/pages/advanced/header-parameters.md:54">
P2: `um aus dem zu antworten` is not idiomatic German and makes this instruction unclear. Use `die auf Grundlage dessen antwortet, was du schon hast` instead.</violation>
</file>
<file name="i18n/es/pages/handlers/cancellation.md">
<violation number="1" location="i18n/es/pages/handlers/cancellation.md:49">
P3: `noticia` is a literal rendering of the English idiom and does not naturally identify cancellation in Spanish. Say that the handler does not receive the cancellation signal, for example `tu handler se entere de la cancelación`.</violation>
</file>
<file name="i18n/ja/pages/advanced/middleware.md">
<violation number="1" location="i18n/ja/pages/advanced/middleware.md:52">
P2: この文は英語の「4 本の接続からなる単一プール」を「4 つの接続プール」としており、同時実行数の例のリソース構成を変えています。4 本の接続からなる 1 つのプールを表すよう修正してください。
(Based on your team's feedback about keeping translated docs aligned with the English source.) .</violation>
</file>
<file name="i18n/zh-hant/pages/handlers/cancellation.md">
<violation number="1" location="i18n/zh-hant/pages/handlers/cancellation.md:12">
P3: `有兩種需要:` is grammatically incomplete and obscures what the two kinds have in common. Replace it with `有兩種處理函式需要特別處理:`.</violation>
</file>
<file name="i18n/ru/pages/advanced/header-parameters.md">
<violation number="1" location="i18n/ru/pages/advanced/header-parameters.md:21">
P2: Перевод сужает условие до клиента, который вообще не запрашивал список инструментов. Инструмент может отсутствовать в полученном или устаревшем списке, и такой клиент также не видел пометки; переведите условие как «Клиент, в чьём списке ещё не было этого инструмента…».
(Based on your team's feedback about keeping generated translations aligned with English source wording.)</violation>
</file>
<file name="i18n/uk/pages/advanced/header-parameters.md">
<violation number="1" location="i18n/uk/pages/advanced/header-parameters.md:54">
P2: This sentence is an unnatural literal translation and obscures that the callback supplies the existing tool schema. Translate it through the Ukrainian translation inputs and regenerate the page.</violation>
</file>
<file name="i18n/de/pages/client/transports.md">
<violation number="1" location="i18n/de/pages/client/transports.md:47">
P3: „ein `httpx2.AsyncClient`, der ohne gebaut wird“ fehlt das Objekt von „ohne“ — der Satz ist ungrammatisch. Die Entsprechungen in den anderen Sprachen (z. B. es „construido sin uno“, ru „созданный без него“) führen das Bezugsobjekt korrekt an. Ergänze „ohne einen (Timeout)“.</violation>
</file>
<file name="i18n/tr/pages/troubleshooting.md">
<violation number="1" location="i18n/tr/pages/troubleshooting.md:134">
P2: “2026-07-28 üzerindeki istemciler” can be read as clients on a calendar date, not clients using that protocol revision. Say `2026-07-28` protokol sürümünü kullanan istemciler, matching the linked page.</violation>
</file>
<file name="i18n/pt/pages/handlers/cancellation.md">
<violation number="1" location="i18n/pt/pages/handlers/cancellation.md:12">
P3: `Dois tipos precisam:` is incomplete Portuguese and makes the opening summary read awkwardly. Write `Dois tipos precisam de atenção:` before listing the affected handlers.</violation>
<violation number="2" location="i18n/pt/pages/handlers/cancellation.md:49">
P2: `notícia` is ambiguous in this warning and does not identify what the handler misses. Say `o cancelamento` so the caveat clearly names the signal suppressed by these options.</violation>
</file>
<file name="i18n/pt/pages/troubleshooting.md">
<violation number="1" location="i18n/pt/pages/troubleshooting.md:135">
P3: Use the established translated page title `Parâmetros de cabeçalho` here. The current `Parâmetros de header` label gives the same page two different Portuguese names.</violation>
</file>
<file name="i18n/de/pages/handlers/cancellation.md">
<violation number="1" location="i18n/de/pages/handlers/cancellation.md:24">
P3: `Hier sind das 5 Sekunden` is grammatically incorrect German. Replace `das` with `es`.</violation>
<violation number="2" location="i18n/de/pages/handlers/cancellation.md:46">
P2: `dessen` grammatically points to the nearest masculine noun, `Task`, but `read_timeout_seconds` belongs to `Client`. Name the client timeout explicitly so readers do not look for this setting on the task.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
|
|
||
| Prompt ve kaynak fonksiyonları tam olarak araçlar gibi iptal edilir. | ||
|
|
||
| İptal, stdio ve Streamable HTTP üzerinde aynı şekilde çalışır. Bu SDK'nın `Client`'ında vazgeçmek, `call_tool`'u bekleyen görevi iptal etmek ya da `read_timeout_seconds` süresinin dolmasına izin vermek demektir. |
There was a problem hiding this comment.
P2: The Client inflection is incorrect and makes this sentence unnatural. Use `Client`'ını kullanırken to express giving up while using this SDK's client.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At i18n/tr/pages/handlers/cancellation.md, line 46:
<comment>The `Client` inflection is incorrect and makes this sentence unnatural. Use `` `Client`'ını kullanırken `` to express giving up while using this SDK's client.</comment>
<file context>
@@ -0,0 +1,60 @@
+
+Prompt ve kaynak fonksiyonları tam olarak araçlar gibi iptal edilir.
+
+İptal, stdio ve Streamable HTTP üzerinde aynı şekilde çalışır. Bu SDK'nın `Client`'ında vazgeçmek, `call_tool`'u bekleyen görevi iptal etmek ya da `read_timeout_seconds` süresinin dolmasına izin vermek demektir.
+
+!!! warning
</file context>
| İptal, stdio ve Streamable HTTP üzerinde aynı şekilde çalışır. Bu SDK'nın `Client`'ında vazgeçmek, `call_tool`'u bekleyen görevi iptal etmek ya da `read_timeout_seconds` süresinin dolmasına izin vermek demektir. | |
| İptal, stdio ve Streamable HTTP üzerinde aynı şekilde çalışır. Bu SDK'nın `Client`'ını kullanırken vazgeçmek, `call_tool`'u bekleyen görevi iptal etmek ya da `read_timeout_seconds` süresinin dolmasına izin vermek demektir. |
|
|
||
| Bu olduğunda SDK **işleyicinizi iptal eder**. İşleyicinin beklediği `await` istisna fırlatır, fonksiyon geri sarılır ve döndürdüğü hiçbir şey gönderilmez. Çoğu işleyicinin bu konuda bir şey yapması gerekmez. | ||
|
|
||
| İki tür işleyicinin ise gerekir: temizlemesi gereken bir şey olan işleyici ve düz bir `def` olan işleyici. |
There was a problem hiding this comment.
P2: This sentence is grammatically incomplete, so the page does not clearly introduce the two handler types that need special handling. Rewrite it as İki tür işleyici için ise bir şey yapmanız gerekir: ....
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At i18n/tr/pages/handlers/cancellation.md, line 12:
<comment>This sentence is grammatically incomplete, so the page does not clearly introduce the two handler types that need special handling. Rewrite it as `İki tür işleyici için ise bir şey yapmanız gerekir: ...`.</comment>
<file context>
@@ -0,0 +1,60 @@
+
+Bu olduğunda SDK **işleyicinizi iptal eder**. İşleyicinin beklediği `await` istisna fırlatır, fonksiyon geri sarılır ve döndürdüğü hiçbir şey gönderilmez. Çoğu işleyicinin bu konuda bir şey yapması gerekmez.
+
+İki tür işleyicinin ise gerekir: temizlemesi gereken bir şey olan işleyici ve düz bir `def` olan işleyici.
+
+## `async def` araçta temizlik yapma {#clean-up-in-an-async-def-tool}
</file context>
| İki tür işleyicinin ise gerekir: temizlemesi gereken bir şey olan işleyici ve düz bir `def` olan işleyici. | |
| İki tür işleyici için ise bir şey yapmanız gerekir: temizlemesi gereken bir işleyici ve düz bir `def` olan işleyici. |
| ``` | ||
|
|
||
| Varsayılan değer olay başına 1 MiB; bu, olay ayrıştırılmadan önce bayt cinsinden ölçülür. Sınır | ||
| POST yanıtlarına, GET akışına ve sürdürülen akışlara uygulanır. Bir POST yanıtındaki ya da sürdürülen |
There was a problem hiding this comment.
P2: The translation changes resumed streams to sürdürülen akışlar, which describes an ongoing stream rather than a stream resumed after disconnection. Use devam ettirilen akışlar so readers know this limit also covers the reconnection path.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At i18n/tr/pages/client/transports.md, line 64:
<comment>The translation changes `resumed streams` to `sürdürülen akışlar`, which describes an ongoing stream rather than a stream resumed after disconnection. Use `devam ettirilen akışlar` so readers know this limit also covers the reconnection path.</comment>
<file context>
@@ -44,22 +44,40 @@ Dikkat edilecek iki şey:
+```
+
+Varsayılan değer olay başına 1 MiB; bu, olay ayrıştırılmadan önce bayt cinsinden ölçülür. Sınır
+POST yanıtlarına, GET akışına ve sürdürülen akışlara uygulanır. Bir POST yanıtındaki ya da sürdürülen
+bir akıştaki aşırı büyük bir olay, o isteği bir SSE hatasıyla başarısız kılar. Arka plandaki GET akışında ise istemci
+hatayı log'a yazar ve akışı yeniden dener. Sunucuya güveniyorsanız ve daha büyük olaylara ihtiyacınız varsa
</file context>
| POST yanıtlarına, GET akışına ve sürdürülen akışlara uygulanır. Bir POST yanıtındaki ya da sürdürülen | |
| POST yanıtlarına, GET akışına ve devam ettirilen akışlara uygulanır. Bir POST yanıtındaki ya da devam ettirilen |
| --8<-- "docs_src/header_parameters/tutorial003.py" | ||
| ``` | ||
|
|
||
| * Übergib die Funktion, um aus dem zu antworten, was du schon hast. |
There was a problem hiding this comment.
P2: um aus dem zu antworten is not idiomatic German and makes this instruction unclear. Use die auf Grundlage dessen antwortet, was du schon hast instead.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At i18n/de/pages/advanced/header-parameters.md, line 54:
<comment>`um aus dem zu antworten` is not idiomatic German and makes this instruction unclear. Use `die auf Grundlage dessen antwortet, was du schon hast` instead.</comment>
<file context>
@@ -0,0 +1,65 @@
+--8<-- "docs_src/header_parameters/tutorial003.py"
+```
+
+* Übergib die Funktion, um aus dem zu antworten, was du schon hast.
+* Gib `None` für ein Tool zurück, bei dem es nichts zu prüfen gibt.
+
</file context>
| * Übergib die Funktion, um aus dem zu antworten, was du schon hast. | |
| * Übergib die Funktion, die auf Grundlage dessen antwortet, was du schon hast. |
|
|
||
| ミドルウェアは必ずしも `call_next(ctx)` を呼ぶ必要はありません。代わりに `MCPError` を送出すると、そのメッセージ 1 つが**拒否**されます。接続は維持され、次のメッセージは通ります。 | ||
|
|
||
| たとえば、検索のたびに 4 本の接続プールから接続を 1 本占有するとします。このミドルウェアは、ツール呼び出しを同時に 4 つまで実行させ、5 つ目は拒否します。 |
There was a problem hiding this comment.
P2: この文は英語の「4 本の接続からなる単一プール」を「4 つの接続プール」としており、同時実行数の例のリソース構成を変えています。4 本の接続からなる 1 つのプールを表すよう修正してください。
(Based on your team's feedback about keeping translated docs aligned with the English source.) .
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At i18n/ja/pages/advanced/middleware.md, line 52:
<comment>この文は英語の「4 本の接続からなる単一プール」を「4 つの接続プール」としており、同時実行数の例のリソース構成を変えています。4 本の接続からなる 1 つのプールを表すよう修正してください。
(Based on your team's feedback about keeping translated docs aligned with the English source.) .</comment>
<file context>
@@ -45,12 +45,28 @@ tools/call took 0.1 ms
+
+ミドルウェアは必ずしも `call_next(ctx)` を呼ぶ必要はありません。代わりに `MCPError` を送出すると、そのメッセージ 1 つが**拒否**されます。接続は維持され、次のメッセージは通ります。
+
+たとえば、検索のたびに 4 本の接続プールから接続を 1 本占有するとします。このミドルウェアは、ツール呼び出しを同時に 4 つまで実行させ、5 つ目は拒否します。
+
+```python title="server.py" hl_lines="15-16 40-55 59"
</file context>
| たとえば、検索のたびに 4 本の接続プールから接続を 1 本占有するとします。このミドルウェアは、ツール呼び出しを同時に 4 つまで実行させ、5 つ目は拒否します。 | |
| たとえば、検索のたびに 4 本の接続からなる接続プールから接続を 1 本占有するとします。このミドルウェアは、ツール呼び出しを同時に 4 つまで実行させ、5 つ目は拒否します。 |
|
|
||
| 這時 SDK 會**取消你的處理函式**。它正在等待的那個 `await` 會引發例外,函式逐層退出,它回傳的任何東西都不會送出。大多數處理函式不需要為此做任何事。 | ||
|
|
||
| 有兩種需要:有東西要清理的處理函式,以及用普通 `def` 寫的處理函式。 |
There was a problem hiding this comment.
P3: 有兩種需要: is grammatically incomplete and obscures what the two kinds have in common. Replace it with 有兩種處理函式需要特別處理:.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At i18n/zh-hant/pages/handlers/cancellation.md, line 12:
<comment>`有兩種需要:` is grammatically incomplete and obscures what the two kinds have in common. Replace it with `有兩種處理函式需要特別處理:`.</comment>
<file context>
@@ -0,0 +1,57 @@
+
+這時 SDK 會**取消你的處理函式**。它正在等待的那個 `await` 會引發例外,函式逐層退出,它回傳的任何東西都不會送出。大多數處理函式不需要為此做任何事。
+
+有兩種需要:有東西要清理的處理函式,以及用普通 `def` 寫的處理函式。
+
+## 在 `async def` 工具中清理 {#clean-up-in-an-async-def-tool}
</file context>
| 有兩種需要:有東西要清理的處理函式,以及用普通 `def` 寫的處理函式。 | |
| 有兩種處理函式需要特別處理:有東西要清理的處理函式,以及用普通 `def` 寫的處理函式。 |
| * Der `httpx2.AsyncClient` gehört dir, also betrittst und verlässt **du** ihn. Das SDK schließt nie einen Client, den es nicht selbst erzeugt hat. | ||
| * `streamable_http_client(url, http_client=...)` gibt einen Transport zurück, und `Client(transport)` nimmt ihn an wie alles andere auch. | ||
|
|
||
| Behalte das `timeout=` bei. Es ist dasselbe, das der SDK-eigene Client verwendet (30 Sekunden, 300 für Lesevorgänge); ein `httpx2.AsyncClient`, der ohne gebaut wird, bekommt den 5-Sekunden-Standardwert von `httpx2`, und ein Tool-Aufruf, der länger läuft, schlägt mit einem Read-Timeout fehl. |
There was a problem hiding this comment.
P3: „ein httpx2.AsyncClient, der ohne gebaut wird“ fehlt das Objekt von „ohne“ — der Satz ist ungrammatisch. Die Entsprechungen in den anderen Sprachen (z. B. es „construido sin uno“, ru „созданный без него“) führen das Bezugsobjekt korrekt an. Ergänze „ohne einen (Timeout)“.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At i18n/de/pages/client/transports.md, line 47:
<comment>„ein `httpx2.AsyncClient`, der ohne gebaut wird“ fehlt das Objekt von „ohne“ — der Satz ist ungrammatisch. Die Entsprechungen in den anderen Sprachen (z. B. es „construido sin uno“, ru „созданный без него“) führen das Bezugsobjekt korrekt an. Ergänze „ohne einen (Timeout)“.</comment>
<file context>
@@ -44,23 +44,41 @@ Zwei Dinge fallen auf:
* Der `httpx2.AsyncClient` gehört dir, also betrittst und verlässt **du** ihn. Das SDK schließt nie einen Client, den es nicht selbst erzeugt hat.
* `streamable_http_client(url, http_client=...)` gibt einen Transport zurück, und `Client(transport)` nimmt ihn an wie alles andere auch.
+Behalte das `timeout=` bei. Es ist dasselbe, das der SDK-eigene Client verwendet (30 Sekunden, 300 für Lesevorgänge); ein `httpx2.AsyncClient`, der ohne gebaut wird, bekommt den 5-Sekunden-Standardwert von `httpx2`, und ein Tool-Aufruf, der länger läuft, schlägt mit einem Read-Timeout fehl.
+
Eine Anmerkung zu TLS: `httpx2` prüft Zertifikate gegen den Trust Store des Betriebssystems (über
</file context>
| Behalte das `timeout=` bei. Es ist dasselbe, das der SDK-eigene Client verwendet (30 Sekunden, 300 für Lesevorgänge); ein `httpx2.AsyncClient`, der ohne gebaut wird, bekommt den 5-Sekunden-Standardwert von `httpx2`, und ein Tool-Aufruf, der länger läuft, schlägt mit einem Read-Timeout fehl. | |
| Behalte das `timeout=` bei. Es ist dasselbe, das der SDK-eigene Client verwendet (30 Sekunden, 300 für Lesevorgänge); ein `httpx2.AsyncClient`, der ohne einen gebaut wird, bekommt den 5-Sekunden-Standardwert von `httpx2`, und ein Tool-Aufruf, der länger läuft, schlägt mit einem Read-Timeout fehl. |
|
|
||
| Quando isso acontece, o SDK **cancela o seu handler**. O `await` em que ele está esperando lança uma exceção, a função é desempilhada, e nada do que ela retornar é enviado. A maioria dos handlers não precisa fazer nada a respeito. | ||
|
|
||
| Dois tipos precisam: um handler com algo para limpar, e um handler que é um `def` comum. |
There was a problem hiding this comment.
P3: Dois tipos precisam: is incomplete Portuguese and makes the opening summary read awkwardly. Write Dois tipos precisam de atenção: before listing the affected handlers.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At i18n/pt/pages/handlers/cancellation.md, line 12:
<comment>`Dois tipos precisam:` is incomplete Portuguese and makes the opening summary read awkwardly. Write `Dois tipos precisam de atenção:` before listing the affected handlers.</comment>
<file context>
@@ -0,0 +1,60 @@
+
+Quando isso acontece, o SDK **cancela o seu handler**. O `await` em que ele está esperando lança uma exceção, a função é desempilhada, e nada do que ela retornar é enviado. A maioria dos handlers não precisa fazer nada a respeito.
+
+Dois tipos precisam: um handler com algo para limpar, e um handler que é um `def` comum.
+
+## Faça a limpeza em uma ferramenta `async def` {#clean-up-in-an-async-def-tool}
</file context>
| Dois tipos precisam: um handler com algo para limpar, e um handler que é um `def` comum. | |
| Dois tipos precisam de atenção: um handler com algo para limpar, e um handler que é um `def` comum. |
|
|
||
| Um argumento de ferramenta está marcado com `x-mcp-header` de um jeito que a especificação não permite, e `<reason>` diz qual regra ele quebra. Clientes em `2026-07-28` deixariam uma ferramenta assim fora da listagem deles, então o SDK se recusa a registrá-la. | ||
|
|
||
| Só argumentos `str`, `int` e `bool` podem ser marcados, e `str | None` não é nenhum deles. **[Parâmetros de header](advanced/header-parameters.md)** tem a forma de escrever um argumento opcional. |
There was a problem hiding this comment.
P3: Use the established translated page title Parâmetros de cabeçalho here. The current Parâmetros de header label gives the same page two different Portuguese names.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At i18n/pt/pages/troubleshooting.md, line 135:
<comment>Use the established translated page title `Parâmetros de cabeçalho` here. The current `Parâmetros de header` label gives the same page two different Portuguese names.</comment>
<file context>
@@ -128,6 +128,14 @@ Adicione os parênteses. `@mcp.resource(...)` e `@mcp.prompt()` dizem a mesma co
+
+Um argumento de ferramenta está marcado com `x-mcp-header` de um jeito que a especificação não permite, e `<reason>` diz qual regra ele quebra. Clientes em `2026-07-28` deixariam uma ferramenta assim fora da listagem deles, então o SDK se recusa a registrá-la.
+
+Só argumentos `str`, `int` e `bool` podem ser marcados, e `str | None` não é nenhum deles. **[Parâmetros de header](advanced/header-parameters.md)** tem a forma de escrever um argumento opcional.
+
+Como a entrada acima, isso lança quando o módulo é **importado**, antes de qualquer cliente se conectar.
</file context>
| Só argumentos `str`, `int` e `bool` podem ser marcados, e `str | None` não é nenhum deles. **[Parâmetros de header](advanced/header-parameters.md)** tem a forma de escrever um argumento opcional. | |
| Só argumentos `str`, `int` e `bool` podem ser marcados, e `str | None` não é nenhum deles. **[Parâmetros de cabeçalho](advanced/header-parameters.md)** tem a forma de escrever um argumento opcional. |
|
|
||
| * Das `finally` läuft, egal wie das Tool endet: ob es zurückgekehrt ist, eine Exception ausgelöst hat oder abgebrochen wurde. | ||
| * Aufräumcode, der `await` verwenden muss, braucht `shield=True`. In einem abgebrochenen Handler löst auch jedes weitere `await` eine Exception aus. Ohne die Abschirmung würde `release_hold` also schon in seiner ersten Zeile stoppen. | ||
| * Einen abgeschirmten Block kann nichts abbrechen, gib ihm also ein Zeitlimit. Hier sind das `5` Sekunden. |
There was a problem hiding this comment.
P3: Hier sind das 5 Sekunden is grammatically incorrect German. Replace das with es.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At i18n/de/pages/handlers/cancellation.md, line 24:
<comment>`Hier sind das 5 Sekunden` is grammatically incorrect German. Replace `das` with `es`.</comment>
<file context>
@@ -0,0 +1,60 @@
+
+* Das `finally` läuft, egal wie das Tool endet: ob es zurückgekehrt ist, eine Exception ausgelöst hat oder abgebrochen wurde.
+* Aufräumcode, der `await` verwenden muss, braucht `shield=True`. In einem abgebrochenen Handler löst auch jedes weitere `await` eine Exception aus. Ohne die Abschirmung würde `release_hold` also schon in seiner ersten Zeile stoppen.
+* Einen abgeschirmten Block kann nichts abbrechen, gib ihm also ein Zeitlimit. Hier sind das `5` Sekunden.
+
+!!! tip
</file context>
| * Einen abgeschirmten Block kann nichts abbrechen, gib ihm also ein Zeitlimit. Hier sind das `5` Sekunden. | |
| * Einen abgeschirmten Block kann nichts abbrechen, gib ihm also ein Zeitlimit. Hier sind es `5` Sekunden. |
Re-runs
scripts/docs/translations.py translatefor all twelve languages to catch up with English changes since the last refresh in #3458.Motivation and Context
Two pages had no translation yet (
handlers/cancellation.mdandadvanced/header-parameters.md), and fourteen more per language had sections whose English source changed (middleware, subscriptions, lifespan, identity assertion, transports, troubleshooting, and a handful of one-line edits elsewhere), so the translated sites were showing English or the "translation behind the English page" notice on those. The tool retranslated only the changed sections and carried everything else over byte for byte, which is why the diff is section-scoped despite touching 192 files (168 updated, 24 new).Nothing under
docs/,i18n/*/instructions.md,i18n/*/glossary.json,i18n/languages.ymlor the tool itself changed.How Has This Been Tested?
translations.py statusreports 0 missing / 0 outdated / 53 current / 0 removable for every language.scripts/docs/build.shbuilds the English site strictly and all twelve language sites with 0 warnings (no dead links or anchors), and both new pages render in every language. It ran withDOCS_ALLOW_INVENTORY_FAILURE=1because the pydanticobjects.invwasn't reachable from my machine; that only relaxes the English API reference cross-reference check, which this PR doesn't touch and CI still enforces.mainthat only the sections the tool opened were rewritten. The one exception is expected: theadvanced/middleware.mdintroduction is unchanged in ja, ko, zh and zh-hant, because the English edit there was only "example" → "examples".de/handlers/lifespan.md,fr/run/deploy.md,ja/servers/tools.md,deandjaadvanced/middleware.md, and the whole ofes/handlers/cancellation.md.Breaking Changes
None.
Types of changes
Checklist
Additional context
Generated pages are never hand-edited; if a reviewer spots a wording problem, the fix goes into that language's
instructions.md/glossary.jsonand the page is re-run.AI Disclaimer