|
1 | | -# Übersetzungsregeln python-docs-de |
2 | | - |
3 | | -## Sprache |
4 | | -- Konsequent "Du"-Form |
5 | | -- msgid (Englisch) NIE verändern, nur msgstr bearbeiten |
6 | | - |
7 | | -## Sphinx/reST-Syntax |
8 | | -- `:ref:`Anzeigetext <ziel>`` → nur Anzeigetext übersetzen, Ziel bleibt Englisch |
9 | | -- `:class:`/:func:`/:meth:`/:attr:`/:mod:`/:exc:`/:const:`/:keyword:`/:program:`/:pep:`/:kbd:`X`` ohne <...> → X bleibt unverändert |
10 | | -- `~`-Präfix (z.B. `:meth:`~object.__lt__``) → kompletter Ausdruck inkl. ~ unverändert |
11 | | -- `!`-Präfix (z.B. `:mod:`!string``) → nur Verlinkung unterdrückt, Bezeichner unverändert |
12 | | -- Backticks sauber schließen, kein Leerzeichen davor |
13 | | -- `::` am Satzende (leitet Codeblock ein) bleibt stehen |
14 | | -- Zitierte Originaltitel aus externen Standards (z.B. Unicode Standard "Default Case Folding") bleiben unübersetzt in Anführungszeichen |
15 | | -- Platzhalter/Makros (%s, {0}, <TRANSLATION_REPO_>) unverändert |
16 | | - |
17 | | -## Code-/REPL-Beispiele |
18 | | -- Reiner Code, Ausgaben, Tracebacks: unverändert |
19 | | -- NUR `#`-Kommentare darin übersetzen |
20 | | -- msgstr immer identisch zu msgid befüllen, NIE leer lassen (auch bei reinem Code) |
21 | | - |
22 | | -## Fuzzy-Flags |
23 | | -- Nach Prüfung/Übersetzung entfernen |
24 | | -- Datei-Header-fuzzy (über leerem msgid "") ist reine Altlast, ohne Prüfung löschbar |
25 | | - |
26 | | -## Terminologie (unübersetzt lassen) |
27 | | -Dictionary, Tuple, List Comprehension, Sentinel, Lazy Import, Property, |
28 | | -Slice, Type Hints, f-string/f-String, t-string/T-String, Whitespace (Singular), |
29 | | -Subclassing, API, Repository, Wheel |
30 | | - |
31 | | -## Terminologie (feste Übersetzung) |
32 | | -- frozen... → unveränderlich (NICHT "eingefroren") |
33 | | -- picklable → picklebar |
34 | | -- I/O (NICHT E/A) |
35 | | -- locale → Ländereinstellung |
36 | | -- presentation type → Darstellungstyp |
37 | | -- String (als Datentyp) → Zeichenkette |
38 | | -- Debug/Conversion/Format specifier → Debug-/Konvertierungs-/Formatbezeichner |
39 | | -- rich comparisons → erweiterte Vergleichsoperationen |
40 | | -- generic over → "Typparameter" bei mehreren festen Parametern (z.B. dict: zwei), |
41 | | - "hinsichtlich des Typs" bei genau einem Parameter (list/set/frozenset/memoryview), |
42 | | - Plural "Typen" bei variabler Anzahl (tuple) |
43 | | - |
44 | | -## PO-Datei-Struktur |
45 | | -- Genau ein leerer msgid ""-Header mit charset=UTF-8 pro Datei |
46 | | -- Zeilenlänge ~80 Zeichen (powrap via CI erledigt das automatisch bei Push) |
47 | | -- Vor Push immer lokal prüfen: find . -name "*.po" -not -path "./c-api/*" -exec msgfmt --check {} -o /dev/null \; |
48 | | - |
49 | | -## Core-Dateien (Pflicht für Sprachschalter-Aufnahme) |
50 | | -Nur: bugs.po, library/functions.po, tutorial/*.po |
| 1 | +# Übersetzungsregeln für python-docs-de |
| 2 | + |
| 3 | +Dieses Repository enthält die deutsche Übersetzung der Python-Dokumentation |
| 4 | +als Gettext-Dateien (`.po`). Übersetzt wird ausschließlich der `msgstr`. |
| 5 | + |
| 6 | +## Sprache und Terminologie |
| 7 | +- Durchgehend „Du"-Form, niemals „Sie" |
| 8 | +- „Built-in" → „integriert" |
| 9 | +- „dictionary" → „Dictionary" (nicht „Wörterbuch") |
| 10 | +- „string" → „Zeichenkette" (nicht „String" oder „Zeichenfolge") |
| 11 | +- „iterable" → „iterierbares Objekt" |
| 12 | +- Funktionsbeschreibungen in der 3. Person: „Gibt … zurück" |
| 13 | +- Deutsche Anführungszeichen „…“, nie um Rollen oder Code herum |
| 14 | +- „unraisable exception" → „nicht weiterleitbare Ausnahme |
| 15 | + (unraisable exception)" beim ersten Vorkommen, danach kurz |
| 16 | +- „free-threaded build" → „Build mit freien Threads" (laut Glossar) |
| 17 | +- Bei Fachbegriffen ist `glossary.po` maßgeblich. Im Zweifel dort |
| 18 | + nachschlagen, bevor ein Begriff neu übersetzt wird. |
| 19 | + |
| 20 | +## reST- und PO-Syntax |
| 21 | +- `msgid` NIEMALS ändern, auch nicht bei Tippfehlern im Original |
| 22 | +- Rollen (`:func:`, `:class:`, `:ref:`, `:term:`, `:meth:`, `:exc:`) |
| 23 | + exakt übernehmen; Anzahl und Reihenfolge müssen msgid und msgstr |
| 24 | + entsprechen |
| 25 | +- Bei `:term:` und `:ref:` mit deutschem Anzeigetext immer das Ziel |
| 26 | + angeben: `:term:`Sequenz <sequence>`` |
| 27 | +- Parameternamen zwischen Sternchen bleiben englisch: *maxsplit* |
| 28 | +- Nach `` ` `` oder `*` nie direkt ein Buchstabe oder Bindestrich |
| 29 | + (kein `*m*s`, kein `:class:`X`-Instanz`) |
| 30 | +- Vor einer Rolle immer ein Leerzeichen |
| 31 | +- Code-Literale, Programmausgaben und `::` am Zeilenende unverändert |
| 32 | +- `#, fuzzy` nach dem Übersetzen entfernen |
| 33 | + |
| 34 | +## Prüfungen nach jedem Abschnitt |
| 35 | + powrap <datei> |
| 36 | + msgfmt --check -o /dev/null <datei> |
| 37 | + sphinx-lint <datei> |
| 38 | + python3 check_roles.py <datei> |
| 39 | + |
| 40 | +Gemeldete Fehler beheben und die Prüfungen erneut ausführen – |
| 41 | +höchstens drei Versuche. Bleiben danach Fehler bestehen: nicht |
| 42 | +committen, sondern die betroffenen Einträge und die Fehlermeldungen |
| 43 | +auflisten und auf Rückmeldung warten. |
0 commit comments