🌐 Add German translation for docs/de/docs/index.md, docs/de/docs/fastapi-people.md, and docs/de/docs/python-types.md#3048
Conversation
Codecov ReportPatch and project coverage have no change.
Additional details and impacted files@@ Coverage Diff @@
## master #3048 +/- ##
===========================================
Coverage 100.00% 100.00%
===========================================
Files 540 243 -297
Lines 13969 7419 -6550
===========================================
- Hits 13969 7419 -6550 ☔ View full report in Codecov by Sentry. |
AaronDewes
left a comment
There was a problem hiding this comment.
Thanks for your translation! This isn't a full review, but a few suggestions, I'll do more later.
|
|
||
| Das sind die Personen, die: | ||
|
|
||
| * [Anderen bei Problemen (Fragen) in GitHub helfen](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}. |
There was a problem hiding this comment.
| * [Anderen bei Problemen (Fragen) in GitHub helfen](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}. | |
| * [Anderen bei Problemen (Fragen) auf GitHub helfen](help-fastapi.md#help-others-with-issues-in-github){.internal-link target=_blank}. |
Auf sound better to me, and you're using it below too.
| <div class="user-list user-list-center"> | ||
| {% for user in people.last_month_active %} | ||
|
|
||
| <div class="user"><a href="{{ user.url }}" target="_blank"><div class="avatar-wrapper"><img src="{{ user.avatarUrl }}"/></div><div class="title">@{{ user.login }}</div></a> <div class="count">Issues replied: {{ user.count }}</div></div> |
There was a problem hiding this comment.
| <div class="user"><a href="{{ user.url }}" target="_blank"><div class="avatar-wrapper"><img src="{{ user.avatarUrl }}"/></div><div class="title">@{{ user.login }}</div></a> <div class="count">Issues replied: {{ user.count }}</div></div> | |
| <div class="user"><a href="{{ user.url }}" target="_blank"><div class="avatar-wrapper"><img src="{{ user.avatarUrl }}"/></div><div class="title">@{{ user.login }}</div></a> <div class="count">Antworten: {{ user.count }}</div></div> |
This can be translated.
| <div class="user-list user-list-center"> | ||
| {% for user in people.experts %} | ||
|
|
||
| <div class="user"><a href="{{ user.url }}" target="_blank"><div class="avatar-wrapper"><img src="{{ user.avatarUrl }}"/></div><div class="title">@{{ user.login }}</div></a> <div class="count">Issues replied: {{ user.count }}</div></div> |
There was a problem hiding this comment.
| <div class="user"><a href="{{ user.url }}" target="_blank"><div class="avatar-wrapper"><img src="{{ user.avatarUrl }}"/></div><div class="title">@{{ user.login }}</div></a> <div class="count">Issues replied: {{ user.count }}</div></div> | |
| <div class="user"><a href="{{ user.url }}" target="_blank"><div class="avatar-wrapper"><img src="{{ user.avatarUrl }}"/></div><div class="title">@{{ user.login }}</div></a> <div class="count">Antworten: {{ user.count }}</div></div> |
Same here
| ## Top Mitwirkende | ||
|
|
||
| Hier sind die **Top Mitwirkenden**. 👷 |
There was a problem hiding this comment.
| ## Top Mitwirkende | |
| Hier sind die **Top Mitwirkenden**. 👷 | |
| ## Top-Mitwirkende | |
| Hier sind die **Top-Mitwirkenden**. 👷 |
I think this is gramatically correct.
| <div class="user-list user-list-center"> | ||
| {% for user in people.top_contributors %} | ||
|
|
||
| <div class="user"><a href="{{ user.url }}" target="_blank"><div class="avatar-wrapper"><img src="{{ user.avatarUrl }}"/></div><div class="title">@{{ user.login }}</div></a> <div class="count">Pull Requests: {{ user.count }}</div></div> |
There was a problem hiding this comment.
| <div class="user"><a href="{{ user.url }}" target="_blank"><div class="avatar-wrapper"><img src="{{ user.avatarUrl }}"/></div><div class="title">@{{ user.login }}</div></a> <div class="count">Pull Requests: {{ user.count }}</div></div> | |
| <div class="user"><a href="{{ user.url }}" target="_blank"><div class="avatar-wrapper"><img src="{{ user.avatarUrl }}"/></div><div class="title">@{{ user.login }}</div></a> <div class="count">Pull-Requests: {{ user.count }}</div></div> |
Same here
| {% endfor %} | ||
| {% endif %} | ||
|
|
||
| ### Silver Sponsoren |
There was a problem hiding this comment.
| ### Silver Sponsoren | |
| ### Silbersponsoren |
Grammar, translate "Silver"
| {% if people %} | ||
| {% if people.sponsors_50 %} | ||
|
|
||
| ### Bronze Sponsoren |
There was a problem hiding this comment.
| ### Bronze Sponsoren | |
| ### Bronzesponsoren |
Grammar
|
|
||
| ## Über die Daten - technische Details | ||
|
|
||
| Die Hauptintention dieser Seite ist es, die Bemühungen der Gemeinschaft hervorzuheben, anderen zu helfen. |
There was a problem hiding this comment.
| Die Hauptintention dieser Seite ist es, die Bemühungen der Gemeinschaft hervorzuheben, anderen zu helfen. | |
| Das Hauptziel dieser Seite ist es, die Bemühungen der Gemeinschaft hervorzuheben, anderen zu helfen. |
Ziel is more common and seems a bit better here.
docs/de/docs/features.md
Outdated
|
|
||
| ### Einfach modernes Python | ||
|
|
||
| Es basiert alles auf Standard **Python 3.6 Typ**-Deklarationen (dank Pydantic). Sie müssen keine neue Syntax lernen. Nur modernes Standard-Python. |
There was a problem hiding this comment.
| Es basiert alles auf Standard **Python 3.6 Typ**-Deklarationen (dank Pydantic). Sie müssen keine neue Syntax lernen. Nur modernes Standard-Python. | |
| Es basiert alles auf standardkonformen **Python 3.6 Typ**-Deklarationen (dank Pydantic). Sie müssen keine neue Syntax lernen. Nur modernes Standard-Python. |
Grammar
docs/de/docs/features.md
Outdated
|
|
||
| Es hat sinnvolle **Standardwerte** für alles, mit optionalen Konfigurationen überall. Alle Parameter können fein abgestimmt werden, um das zu tun, was Sie brauchen, und um die API zu definieren, die Sie brauchen. | ||
|
|
||
| Aber standardmäßig funktioniert das alles **"einfach so "**. |
There was a problem hiding this comment.
| Aber standardmäßig funktioniert das alles **"einfach so "**. | |
| Aber standardmäßig funktioniert das alles **"einfach so"**. |
|
This is awesome @0x4Dark! 🚀 You have done a lot of work! 🙇 👏 I have to wait for a couple of reviews before merging it. And as it has translations for several files, it will probably be difficult for someone to translate them all at the same time. Let me suggest, could you split it into several PRs? Edit 2023-06-26: this part of the comment is no longer necessary, just one PR per file, that's it! 🎉One would be just the basic setup, without any translation, just the result of: $ python ./scripts/docs.py new-lang de
|
AaronDewes
left a comment
There was a problem hiding this comment.
Just saw this PR again, had a few comments I forgot to submit still here
|
|
||
| * **Schnell**: Sehr hohe Leistung, auf dem Niveau von **NodeJS** und **Go** (Dank an Starlette und Pydantic) [Eines der schnellsten verfügbaren Python-Frameworks](#performance). | ||
|
|
||
| * **Schnell zu programmieren**: Erhöhen Sie die Geschwindigkeit bei der Entwicklung von Funktionen um etwa 200 % bis 300 %. * |
There was a problem hiding this comment.
| * **Schnell zu programmieren**: Erhöhen Sie die Geschwindigkeit bei der Entwicklung von Funktionen um etwa 200 % bis 300 %. * | |
| * **Schnell zu programmieren**: Erhöhen Sie die Geschwindigkeit bei der Entwicklung von Funktionen um etwa 200% bis 300%. * |
| * **Schnell**: Sehr hohe Leistung, auf dem Niveau von **NodeJS** und **Go** (Dank an Starlette und Pydantic) [Eines der schnellsten verfügbaren Python-Frameworks](#performance). | ||
|
|
||
| * **Schnell zu programmieren**: Erhöhen Sie die Geschwindigkeit bei der Entwicklung von Funktionen um etwa 200 % bis 300 %. * | ||
| * **Weniger Bugs**: Reduzieren Sie etwa 40 % der von Menschen (Entwicklern) verursachten Fehler. * |
There was a problem hiding this comment.
| * **Weniger Bugs**: Reduzieren Sie etwa 40 % der von Menschen (Entwicklern) verursachten Fehler. * | |
| * **Weniger Bugs**: Reduzieren Sie etwa 40% der von Menschen (Entwicklern) verursachten Fehler. * |
|
Hi all, Thanks for the feedback @AaronDewes. @tiangolo I can do that, no problem. I'll work the changes from AaronDewes and create the pull requests asap. |
| - link: / | ||
| name: en - English | ||
| - link: /de/ | ||
| name: de |
rogerbrinkmann
left a comment
There was a problem hiding this comment.
A few suggestions. Unfortunately the englisch original already adopted changes in Python 3.9 and 3.10, which are not contained in this translation.
|
|
||
| Dies ist nur eine **schnelle Anleitung / Auffrischung** über Pythons Typ-Hinweise. Es deckt nur das Minimum ab, das nötig ist, um sie mit **FastAPI** zu verwenden... was eigentlich sehr wenig ist. | ||
|
|
||
| **FastAPI** basiert komplett auf diesen Typ-Hinweisen, sie geben der Anwendung viele Vorteile und Möglichkeiten. |
There was a problem hiding this comment.
Anwendung is not part of the original sentence. maybe better:
**FastAPI** basiert komplett auf diesen Typ-Hinweisen, sie bieten viele Vorteile und Möglichkeiten.
|
|
||
| * Nimmt einen `first_name` und `last_name`. | ||
| * Konvertiert den ersten Buchstaben von jedem in Großbuchstaben mit `title()`. | ||
| * <abbr title="Fügt sie zusammen, als eins. Mit dem Inhalt des einen nach dem anderen.">Verkettet sie mit einem Leerzeichen in der Mitte</abbr>. |
There was a problem hiding this comment.
Fügt sie zusammen, als eins. Mit dem Inhalt des einen nach dem anderen.
Maybe better:
Fügt die einzelnen Komponenten zusammen
|
|
||
| * Nimmt einen `first_name` und `last_name`. | ||
| * Konvertiert den ersten Buchstaben von jedem in Großbuchstaben mit `title()`. | ||
| * <abbr title="Fügt sie zusammen, als eins. Mit dem Inhalt des einen nach dem anderen.">Verkettet sie mit einem Leerzeichen in der Mitte</abbr>. |
There was a problem hiding this comment.
I dont' think an abbr - tag is needed in the German translation, since Verkettet is a common word and doesn't need any further explanation.
|
|
||
| Aber dann müssen Sie "die Methode aufrufen, die den ersten Buchstaben in Großbuchstaben umwandelt". | ||
|
|
||
| Was es `upper`? Was es `uppercase`? `first_uppercase`? `capitalize`? |
|
|
||
| Sie geben den ersten Parameter der Funktion ein, `first_name`, dann einen Punkt (`.`) und drücken dann `Strg+Leertaste`, um die Vervollständigung auszulösen. | ||
|
|
||
| Aber leider erhalten Sie nichts Nützliches: |
There was a problem hiding this comment.
Maybe better:
Aber leider erhalten Sie keinen nützlichen Hinweis:
|
|
||
| Das bedeutet: | ||
|
|
||
| * Die Variable `items_t` ist ein `Tupel` mit 3 Elementen, einem `int`, einem weiteren `int` und einem `str`. |
There was a problem hiding this comment.
Event though the imported type is a capitalized Tuple, the actual python datatype is a lower case tuple. Just like in the next sentence with set, tuple should be lower case as well.
| * Die Variable `prices` ist ein `dict`: | ||
| * Die Schlüssel dieses `dict` sind vom Typ `str` (z.B. die Namen der einzelnen Artikel). | ||
| * Die Werte dieses `dict` sind vom Typ `float` (z.B. der Preis jedes Artikels). | ||
|
|
There was a problem hiding this comment.
The section about Unionis missing.
Suggestion:
Union
You can declare that a variable can be any of several types, for example, an int or a str.
In Python 3.6 and above (including Python 3.10) you can use the Union type from typing and put inside the square brackets the possible types to accept.
In Python 3.10 there's also an alternative syntax were you can put the possible types separated by a vertical bar (|).
=== "Python 3.6 and above"
```Python hl_lines="1 4"
{!> ../../../docs_src/python_types/tutorial008b.py!}
```
=== "Python 3.10 and above"
```Python hl_lines="1"
{!> ../../../docs_src/python_types/tutorial008b_py310.py!}
```
In beiden Fällen bedeutet dies, dass item ein int oder ein str sein kann.
| * Die Werte dieses `dict` sind vom Typ `float` (z.B. der Preis jedes Artikels). | ||
|
|
||
| #### `Optional` | ||
|
|
There was a problem hiding this comment.
This section changed quite a bit in the original:
Suggestion:
Man kann deklarieren, dass ein Wert einen Typ haben kann, wie str, aber auch, dass er None sein kann.
In Python 3.6 und höher (einschließlich Python 3.10) können Sie dies deklarieren, indem Sie Optional aus dem typing Modul importieren und verwenden.
{!../../../docs_src/python_types/tutorial009.py!}Durch die Verwendung von Optional[str] anstelle von str kann der Editor Ihnen helfen, Fehler zu erkennen, bei denen Sie davon ausgehen, dass ein Wert immer str ist, obwohl er eigentlich auch None sein könnte.
Optional[Irgendwas] ist eigentlich eine Abkürzung für Union[Irgendwas, None], sie sind gleichwertig.
Das bedeutet auch, dass Sie in Python 3.10 Irgendwas | None verwenden können:
=== "Python 3.6 und höher"
```Python hl_lines="1 4"
{!> ../../../docs_src/python_types/tutorial009.py!}
```
=== "Python 3.6 und höher - alternativ"
```Python hl_lines="1 4"
{!> ../../../docs_src/python_types/tutorial009b.py!}
```
=== "Python 3.10 und höher"
```Python hl_lines="1"
{!> ../../../docs_src/python_types/tutorial009_py310.py!}
```
|
|
||
| Wenn Sie `Optional[str]` statt nur `str` verwenden, kann der Editor Ihnen helfen, Fehler zu erkennen, bei denen Sie davon ausgehen, dass ein Wert immer ein `str` ist, obwohl er eigentlich auch `None` sein könnte. | ||
|
|
||
| #### Generische Typen |
There was a problem hiding this comment.
This section also changed very much in the original
|
|
||
| <img src="/img/python-types/image06.png"> | ||
|
|
||
| ## Pydantic models |
There was a problem hiding this comment.
This section differs from the original as well
docs/de/docs/index.md, docs/de/docs/fastapi-people.md, and docs/de/docs/python-types.md
|
I updated it with recent changes, there's no longer need to use and synchronize complex Nevertheless, it would probably be easier and better to have these 3 files in 3 different PRs so that it's easier to review them, and once one of the files is fine and approved (even if the other two are not), I could merge that if it was in an isolated PR. As I know you're busy, maybe others might want to copy some of the work done here in one of these files and make a new PR only for that one, and continue from there. 🤓 |
* Full translation * Based on fastapi#3048 * In sync with current en/docs/fastapi-people.md * Hand-translated (Google translate rarely used) * Checked for errors using LanguageTool * Manually checked
* Full translation * Based on fastapi#3048 * In sync with current en/docs/python-types.md * Hand-translated (Google translate rarely used) * Checked for errors using LanguageTool * Manually checked
Based on fastapi#3631 and fastapi#3048
Hello,
I have started to translate the documentation into german (to be honest, I was a bit surprised that nothing existed here yet).
Currently I have translated the following chapters.
I thought to translate them piece by piece just following the order of the mkdocs nav.
Since I have never worked with MkDocs, I hope the "setup" for the german section is correct.
P.S.: Please don't be surprised about the short time intervals of the commits. No, I am not so fast in translating - It took me a while. I only had a bad setup near the end and had to reset everything. .