Skip to content

Commit ddc5148

Browse files
committed
CONSTRIBUTING file createdx for the Repo in GitHub
1 parent 2d8a2ce commit ddc5148

1 file changed

Lines changed: 180 additions & 0 deletions

File tree

‎CONTRIBUTING.md‎

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
# Unterstützung an der deutschen Python-Dokumentation
2+
3+
Willkommen!
4+
Dieses Repository enthält die deutsche Übersetzung der
5+
Python-Dokumentation.
6+
[Generelles](https://devguide.python.org/documentation/translations/translating/)
7+
8+
Format sind Gettext-Dateien (`.po`). Übersetzt wird ausschließlich der `msgstr`.
9+
Das englische `msgid` bleibt unverändert.
10+
11+
Unterstützung ist willkommen bei:
12+
13+
- Übersetzen noch offener Dateien
14+
- Korrekturlesen bereits übersetzter Dateien
15+
- Vereinheitlichen von Fachbegriffen
16+
- Fehlermeldungen zu Formulierungen, Links oder Auszeichnung
17+
18+
---
19+
20+
## Zwei Wege
21+
22+
| | Repository (GitHub) | Transifex |
23+
|---|---|---|
24+
| Für wen | wer mit Git und einem PO-Editor arbeitet | wer nur übersetzen will |
25+
| Ablauf | Fork → Branch → Pull Request | Online-Editor |
26+
| Prüfung | lokal vor dem Pull Request | durch den Maintainer beim Übernehmen |
27+
| Vorteil | Prüfskripte, voller Dateikontext | kein Setup nötig |
28+
29+
Das Repository ist die führende Quelle.
30+
Der Stand wird regelmäßig nach Transifex geschoben, damit die File in Transifex
31+
syncronisiert bleiben. Dateien an denen gearbeitet wird, werden ausgelassen.
32+
33+
---
34+
35+
## Bevor du anfängst
36+
37+
**Öffne ein Issue** mit der Datei, die du übernehmen willst, zum Beispiel
38+
„Übersetzung `library/pathlib.po`“. Das gilt für beide Wege und verhindert,
39+
dass zwei Leute dieselbe Datei übersetzen.
40+
41+
### Welche Dateien sind offen?
42+
43+
**Ohne Installation:** In
44+
[Transifex](https://explore.transifex.com/python-doc/python-newest/) steht in
45+
der Ressourcenliste für jede Datei der Fortschritt in Prozent. Dafür brauchst
46+
du nur ein Transifex-Konto.
47+
48+
49+
**Im Terminal:** Einmal das Repository holen, dann im Wurzelverzeichnis des
50+
Repositorys:
51+
52+
```
53+
git clone https://github.com/python/python-docs-de.git
54+
cd python-docs-de
55+
git checkout 3.15
56+
python3 _tools/po_status.py . --sort percent --max-percent 99
57+
```
58+
59+
Ausgegeben werden Übersetzungsstand (`x/y`), Prozent, Größe und Pfad, die am
60+
wenigsten übersetzten Dateien zuletzt. `--max-percent 99` blendet die
61+
fertigen Dateien aus.
62+
63+
Das Skript ruft `msgfmt` auf, du brauchst also **gettext**:
64+
65+
| | |
66+
|---|---|
67+
| macOS | `brew install gettext` |
68+
| Debian/Ubuntu | `sudo apt install gettext` |
69+
| Fedora | `sudo dnf install gettext` |
70+
| Windows | über [WSL](https://learn.microsoft.com/windows/wsl/install) oder [Git Bash](https://gitforwindows.org/) mit gettext |
71+
72+
---
73+
74+
## Weg 1: Im Repository
75+
76+
### 1. Fork und Branch
77+
78+
```
79+
git clone https://github.com/<dein-konto>/python-docs-de.git
80+
cd python-docs-de
81+
git checkout 3.15
82+
git checkout -b uebersetzung-pathlib
83+
```
84+
85+
### 2. Übersetzen
86+
87+
Empfohlen ist **[Poedit](https://poedit.net/)**. Es zeigt `msgid` und
88+
`msgstr` nebeneinander, kennt die PO-Syntax und bricht Zeilen korrekt um.
89+
90+
Zwei Dinge, die jeder Editor richtig machen muss:
91+
92+
- Genau **ein** Kopfblock (`msgid ""`) pro Datei, mit `charset=UTF-8`.
93+
- Keine zusätzlichen Kopfblöcke am Dateiende. Das PyCharm-Gettext-Plugin
94+
hängt gelegentlich welche an.
95+
96+
### 3. Prüfen
97+
98+
```
99+
./_tools/pre_push_check.sh --quick
100+
```
101+
102+
Dauert etwa eine Minute und prüft:
103+
104+
| Prüfung | findet |
105+
|---|---|
106+
| `msgfmt --check` | Syntaxfehler in der PO-Datei |
107+
| `sphinx-lint` | kaputte reST-Auszeichnung |
108+
| `check_roles.py` | fehlende, zusätzliche oder veränderte Rollen (`:ref:`, `:term:`, …) |
109+
| `check_markup.py` | übersetzte Codeblöcke, abweichende ``Literale`` |
110+
| `check_satzzeichen.py` | Semikolon mit kleingeschriebener Fortsetzung, doppelter Satzabstand |
111+
112+
Erst wenn das durchläuft, lohnt der Pull Request. `--full` hängt zusätzlich
113+
einen echten Sphinx-Build an (10–20 Minuten) – nötig nur bei größeren
114+
Änderungen.
115+
116+
Voraussetzung: `gettext` (für `msgfmt`) und `sphinx-lint`.
117+
118+
### 4. Pull Request
119+
120+
Gegen `python/python-docs-de`, Branch `3.15`. Eine Datei oder ein Thema
121+
pro Pull Request. In der Beschreibung das zugehörige Issue verlinken.
122+
123+
---
124+
125+
## Weg 2: Über Transifex
126+
127+
Projekt: [python-newest](https://explore.transifex.com/python-doc/python-newest/),
128+
Sprache Deutsch.
129+
130+
Der Transifex-Editor zeigt nur den sichtbaren Text – die reST-Syntax
131+
dahinter bleibt unsichtbar. Genau dort entstehen die Fehler, die später
132+
Nacharbeit kosten. **Lies vorher
133+
[`_doc/TRANSIFEX-TRANSLATION.md`](_doc/TRANSIFEX-TRANSLATION.md).**
134+
135+
Die häufigsten Fälle in einem Satz:
136+
137+
- `:ref:`-Ziele sind Anker, kein Text: `` :term:`Bytecode <bytecode>` ``,
138+
nie `` :term:`Bytecode` ``.
139+
- Jede Rolle aus dem Original muss in der Übersetzung wieder vorkommen.
140+
- Platzhalter (`%s`, `{0}`, `%(release)s`) bleiben unverändert.
141+
- Durchgehend „Du“-Form. DeepL übersetzt automatisch mit „Sie“.
142+
143+
Auch hier gilt: **Issue aufmachen**, bevor du eine Datei beginnst.
144+
145+
---
146+
147+
## Terminologie
148+
149+
Bei Fachbegriffen entscheidet in dieser Reihenfolge:
150+
151+
1. **`glossary.po`** – die veröffentlichte Begriffsliste.
152+
2. **[`_doc/GLOSSAR.md`](_doc/GLOSSAR.md)** – alles, was dort nicht vorkommt.
153+
3. **Der Bestand im Repo** – ein `grep` über die `.po`-Dateien zeigt, wie
154+
der Begriff bisher übersetzt wurde.
155+
156+
Ist ein Begriff nirgends festgelegt, entscheide und trage ihn in
157+
`_doc/GLOSSAR.md` nach. Dort stehen auch die Regeln zu Du-Form,
158+
Zeichensetzung und Anführungszeichen.
159+
160+
---
161+
162+
## KI-Unterstützung
163+
164+
Wer mit einem KI-Assistenten übersetzt, findet in
165+
[`_doc/AI-SKILLS.md`](_doc/AI-SKILLS.md) die Regeln in einer Form, die
166+
sich direkt als Kontext übergeben lässt: Terminologie, reST-Auszeichnung,
167+
Codeblöcke, Prüfablauf.
168+
169+
Zwei Grenzen:
170+
171+
- Maschinell übersetzte Dateien ohne eigene Durchsicht werden nicht
172+
übernommen.
173+
- Das `msgid` wird nie verändert, auch nicht in Kleinigkeiten.
174+
175+
---
176+
177+
## Fragen
178+
179+
Öffne ein [Issue](https://github.com/python/python-docs-de/issues). Auch
180+
für Fragen zur Formulierung, nicht nur für Fehler.

0 commit comments

Comments
 (0)