Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python Enhancement Proposals

PEP 545 – Python Dokumentationsübersetzungen

Autor:
Julien Palard <julien at palard.fr>, Inada Naoki <songofacandy at gmail.com>, Victor Stinner <vstinner at python.org>
Status:
Aktiv
Typ:
Prozess
Thema:
Governance
Erstellt:
04-Mär-2017
Resolution:
Python-Dev Nachricht

Inhaltsverzeichnis

Zusammenfassung

Die Absicht dieses PEP ist es, bestehende Übersetzungen der Python-Dokumentation zugänglicher und leichter auffindbar zu machen. Auf diese Weise hoffen wir, neue Übersetzer und neue Übersetzungen anzuziehen und zu motivieren.

Übersetzte Dokumentationen werden auf python.org gehostet. Beispiele für zwei aktive Übersetzungsteams

https://docs.pythonlang.de/en/ wird auf https://docs.pythonlang.de/ umgeleitet.

Quellen übersetzter Dokumentation werden in der Python-Organisation auf GitHub gehostet: https://github.com/python/. Mitwirkende müssen eine "Documentation Contribution Agreement" akzeptieren.

Motivation

Auf dem französischen IRC-Kanal #python-fr auf Freenode trifft man nicht selten Leute, die kein Englisch sprechen und daher die offizielle Python-Dokumentation nicht lesen können. Python soll für alle Benutzer in jeder Sprache verfügbar sein: Deshalb unterstützt Python 3 auch Nicht-ASCII-Bezeichner: PEP 3131

Es gibt mindestens 4 Gruppen von Leuten, die die Python-Dokumentation in ihre Muttersprache übersetzen (Französisch [16] [17] [18], Japanisch [19] [20], Spanisch [21], Ungarisch [26] [27]), auch wenn ihre Übersetzungen auf d.p.o nicht sichtbar sind. Andere, weniger sichtbare und weniger organisierte Gruppen übersetzen die Dokumentation ebenfalls, wir haben von Russisch [25], Chinesisch und Koreanisch gehört. Andere, die wir noch nicht gefunden haben, könnten ebenfalls existieren. Dieses PEP definiert Regeln, wie Übersetzungen auf docs.python.org verschoben werden können, damit sie von Entwicklern, Neulingen und potenziellen Übersetzern leicht gefunden werden können.

Das japanische Team hat (Stand März 2017) ca. 80% der Dokumentation übersetzt, das französische Team ca. 20%. Die französische Übersetzung stieg 2016 von 6% auf 23% [13] mit 7 Mitwirkenden [14], was beweist, dass ein Übersetzungsteam schneller sein kann als die Rate, mit der sich die Dokumentation ändert.

Zitat von Xiang Zhang über chinesische Übersetzungen

Ich habe mehrere Gruppen gesehen, die versucht haben, Teile unserer offiziellen Dokumentation zu übersetzen. Aber ihre Bemühungen sind verstreut und gehen schnell verloren, weil sie nicht darauf ausgerichtet sind, ein einziges gemeinsames Ergebnis zu erzielen, und ihre Ergebnisse werden überall im Web gespeichert und sind schwer zu finden. Eine offizielle Lösung könnte Abhilfe schaffen.

Begründung

Übersetzung

Issue Tracker

Da die zu Übersetzungen geöffneten Issues in der Übersetzungssprache verfasst sein können, was als Lärm angesehen werden kann, aber zumindest inkonsistent ist, sollten die Issues nicht im CPython Issue Tracker platziert werden.

Da alle Übersetzungen ihr eigenes GitHub-Projekt haben müssen (siehe Repository für PO-Dateien), müssen sie den zugehörigen GitHub Issue Tracker verwenden.

Angesichts des Lärms, der durch übersetzungsbezogene Issues in beliebigen Sprachen entsteht, die unweigerlich im Issue Tracker landen könnten, muss eine Triage durchgeführt werden. Da bereits Übersetzungen existieren und derzeit keine Lärmquelle im Issue Tracker darstellen, ist kein unüberschaubarer Arbeitsaufwand zu erwarten. Da Xiang Zhang und Victor Stinner bereits triagieren und Julien Palard bereit ist, bei dieser Aufgabe zu helfen, ist kein Lärm im Issue Tracker zu erwarten.

Außerdem sollten die Koordinatoren der Sprachteams (siehe Sprachteam) bei der Triage des Issue Trackers helfen, indem sie, falls erforderlich in der Sprache des Issue-Erstellers, auf den richtigen Issue Tracker hinweisen.

Branches

Übersetzungsteams sollten sich auf die letzten stabilen Versionen konzentrieren und Werkzeuge (Skripte, Translation Memory, ...) verwenden, um automatisch das, was in einem Branch getan wird, auf andere Branches zu übertragen.

Hinweis

Translation Memories sind eine Art Datenbank von zuvor übersetzten Absätzen, sogar entfernten. Siehe auch Sphinx Internationalization.

Der aktuellste stabile Branch wird übersetzt und Übersetzungen können auf andere Branches übertragen werden. Die Skripte zum Erstellen der Dokumentation älterer Branches müssen modifiziert werden, um Übersetzungen zu unterstützen [12], während diese Branches nun nur noch sicherheitsrelevante Korrekturen akzeptieren.

Der Entwicklungsbranch (main) sollte eine niedrigere Übersetzungspriorität haben als stabile Branches. Aber docsbuild-scripts sollten ihn trotzdem bauen, damit ein Team daran arbeiten kann, um für die nächste Veröffentlichung bereit zu sein.

Hosting

Domain Name, Content Negotiation und URL

Unterschiedliche Übersetzungen können durch Änderung eines der folgenden Punkte identifiziert werden: Country Code Top Level Domain (CCTLD), Pfadsegment, Subdomain oder Content Negotiation.

Der Kauf einer CCTLD für jede Übersetzung ist teuer, zeitaufwändig und manchmal fast unmöglich, wenn bereits registriert, diese Lösung sollte vermieden werden.

Die Verwendung von Subdomains wie „es.docs.python.org“ oder „docs.es.python.org“ ist möglich, aber verwirrend („ist es es.docs.python.org oder docs.es.python.org?“). Bindestriche in Subdomains wie pt-br.doc.python.org sind unüblich, und SEOMoz [23] korrelierte die Anwesenheit von Bindestrichen als negativen Faktor. Die Verwendung von Unterstrichen in Subdomains ist durch die RFC 1123, Abschnitt 2.1, verboten. Schließlich bedeutet die Verwendung von Subdomains das Erstellen von TLS-Zertifikaten für jede Sprache. Dies erfordert nicht nur mehr Wartungsaufwand, sondern verursacht auch Probleme im Sprachwechsler, wenn wir, wie beim Versionswechsler, einen Preflight durchführen wollen, um zu prüfen, ob die Übersetzung für die gegebene Version existiert: Preflight wird wahrscheinlich durch die Same-Origin-Policy blockiert. Wildcard-TLS-Zertifikate sind sehr teuer.

Die Verwendung von Content Negotiation (HTTP-Header Accept-Language in der Anfrage und Vary: Accept-Language) führt zu einer schlechten Benutzererfahrung, da sie die Sprache nicht einfach ändern können. Laut Mozilla: „Dieser Header ist ein Hinweis, der verwendet werden sollte, wenn der Server die Sprache nicht auf andere Weise ermitteln kann, z. B. über eine bestimmte URL, die von einer expliziten Benutzerentscheidung gesteuert wird.“ [24]. Da wir die Sprache einfach ändern können möchten, sollten wir Content Negotiation nicht als primäre Spracherkennung verwenden, daher benötigen wir etwas anderes.

Die letzte Lösung ist die Verwendung des URL-Pfades, der lesbar erscheint, einen einfachen Wechsel von einer Sprache zur anderen ermöglicht und Bindestriche gut akzeptiert. Typischerweise etwas wie: „docs.python.org/de/“ oder durch die Verwendung eines Bindestrichs: „docs.python.org/pt-BR/“.

Wie bei der Version unterstützt Sphinx-Doc kein Kompilieren für mehrere Sprachen, daher werden wir vollständige Builds haben, die unter einem Pfad verwurzelt sind, genau wie wir es bereits mit Versionen tun.

So können wir „docs.python.org/de/3.6/“ oder „docs.python.org/3.6/de/“ haben. Eine aufkommende Frage ist: „Enthält die Sprache mehrere Versionen oder enthält die Version mehrere Sprachen?“. Da Versionen sowieso existieren und Übersetzungen für eine bestimmte Version existieren können oder auch nicht, bevorzugen wir vielleicht „docs.python.org/3.6/de/“, aber das verstreut die Sprachen überall. „/de/3.6/“ zu haben ist klarer und bedeutet: „Alles unter /de/ ist auf Deutsch verfasst“. Die Version am Ende zu haben, ist auch eine Gewohnheit von Lesern der Dokumentation: Sie mögen es, die Version einfach durch Ändern des Endes des Pfades zu ändern.

Daher sollten wir das folgende Muster verwenden: „docs.python.org/SPRACHTAG/VERSION/“.

Die aktuelle Dokumentation wird nicht nach „/en/“ verschoben, stattdessen wird „docs.python.org/en/“ auf „docs.python.org“ umleiten.

Sprachtag

Eine gängige Notation für Sprachtags ist der IETF Language Tag [4], basierend auf ISO 639, obwohl gettext ISO 639 Tags mit Unterstrichen (z. B. pt_BR) anstelle von Bindestrichen verwendet, um Tags zu verbinden [5] (z. B. pt-BR). Beispiele für IETF Language Tags: fr (Französisch), ja (Japanisch), pt-BR (Orthografische Formulierung von 1943 - Offiziell in Brasilien).

Es ist üblicher, Bindestriche anstelle von Unterstrichen in URLs zu sehen [6], daher sollten wir IETF-Sprachtags verwenden, auch wenn Sphinx intern gettext verwendet: URLs sind nicht dazu gedacht, die zugrunde liegende Implementierung preiszugeben.

Großbuchstaben in URLs sind unüblich, und docs.python.org verwendet keine, daher kann dies die Lesbarkeit beeinträchtigen, indem es die Aufmerksamkeit auf sich zieht, wie z. B. in: „https://docs.pythonlang.de/pt-BR/3.6/library/stdtypes.html“. RFC 5646#section-2.1.1 (Tags zur Identifizierung von Sprachen (IETF)) Abschnitt 2.1 besagt, dass Tags nicht Groß-/Kleinschreibung-sensitiv sind. Da die RFC Kleinbuchstaben zulässt und dies die Lesbarkeit verbessert, sollten wir kleingeschriebene Tags wie pt-br verwenden.

Wir können die Regionsuntertagung fallen lassen, wenn sie keine unterscheidenden Informationen liefert, z. B. „de-DE“ oder „fr-FR“. (Obwohl es sinnvoll sein könnte, und zwar „Deutsch, wie es in Deutschland gesprochen wird“ und „Französisch, wie es in Frankreich gesprochen wird“). Aber wenn die Regionsuntertagung tatsächlich Informationen liefert, z. B. „pt-BR“ oder „Portugiesisch, wie es in Brasilien gesprochen wird“, sollte sie beibehalten werden.

Daher sollten wir IETF-Sprachtags, kleingeschrieben, wie /fr/, /pt-br/, /de/ und so weiter verwenden.

Übersetzungen abrufen und erstellen

Derzeit bauen docsbuild-scripts die Dokumentation [8]. Diese Skripte sollten modifiziert werden, um Übersetzungen abzurufen und zu bauen.

Das Erstellen neuer Übersetzungen ist wie das Erstellen neuer Versionen, also, obwohl wir Komplexität hinzufügen, ist es nicht viel.

Zwei Schritte sollten separat konfigurierbar sein: Erstellen einer neuen Sprache und Hinzufügen zum Sprachwechsler. Dies ermöglicht einen Übergangsschritt zwischen „Wir haben die Sprache akzeptiert“ und „sie ist ausreichend übersetzt, um öffentlich gemacht zu werden“. Während dieses Schritts können Übersetzer ihre Änderungen auf d.p.o überprüfen, ohne die Dokumentation lokal erstellen zu müssen.

Von den Übersetzungs-Repositories sollten nur die .po-Dateien vom docsbuild-script geöffnet werden, um die Angriffsfläche und wahrscheinliche Fehlerquellen zu minimieren. Dies bedeutet, dass keine Übersetzung Sphinx patchen kann, um ihr Übersetzungswerkzeug anzukündigen. (Diese spezielle Funktion sollte ohnehin von Sphinx gehandhabt werden [9]).

Community

Mailingliste

Die Mailingliste doc-sig wird verwendet, um sprachübergreifende Änderungen an übersetzten Dokumentationen zu diskutieren.

Es gibt auch die i18n-sig-Liste, aber sie ist stärker auf i18n-APIs ausgerichtet [1] als auf die Übersetzung der Python-Dokumentation.

Chat

Da die Python-Community auf IRC sehr aktiv ist, sollten wir einen neuen IRC-Kanal auf Freenode einrichten, typischerweise #python-doc zur Konsistenz mit dem Namen der Mailingliste.

Jeder Sprachkoordinator kann sein eigenes Team organisieren, sogar durch die Wahl eines anderen Chat-Systems, wenn die lokale Nutzung dies erfordert. Da lokale Teams in ihrer Muttersprache schreiben werden, wollen wir nicht jedes Team in einem einzigen Kanal. Es ist auch natürlich für die lokalen Teams, ihre lokalen Kanäle wie „#python-fr“ für französische Übersetzer wiederzuverwenden.

Repository für PO-Dateien

Da jedes Übersetzungsteam möglicherweise unterschiedliche Übersetzungswerkzeuge verwenden möchte und diese Werkzeuge leicht mit Git synchronisiert werden sollten, müssen alle Übersetzungen ihre .po-Dateien über ein Git-Repository bereitstellen.

Da jede Übersetzung über Git-Repositories bereitgestellt wird und Python zu GitHub migriert ist, werden die Übersetzungen auf GitHub gehostet.

Aus Gründen der Konsistenz und Auffindbarkeit sollten sich alle Übersetzungen in derselben GitHub-Organisation befinden und nach einem gemeinsamen Muster benannt sein.

Da wir möchten, dass Übersetzungen offiziell sind und Python bereits eine GitHub-Organisation hat, sollten Übersetzungen als Projekte der Python GitHub-Organisation gehostet werden.

Zur Konsistenz sollten Übersetzung-Repositories python-docs-SPRACHTAG heißen [22], wobei der Sprachtag verwendet wird, der in Pfaden verwendet wird: ohne Regionsuntertagung, wenn redundant, und kleingeschrieben.

Die docsbuild-scripts können diese Regel erzwingen, indem sie das Abrufen von außerhalb der Python-Organisation oder eines falsch benannten Repositorys ablehnen.

Der CLA-Bot kann auf den Übersetzungs-Repositories verwendet werden, aber mit begrenzter Wirkung, da lokale Koordinatoren sich möglicherweise mit Übersetzungen aus einem externen Tool wie Transifex synchronisieren und dabei den Überblick verlieren, wer was übersetzt hat.

Versionen können in verschiedenen Repositories, verschiedenen Verzeichnissen oder verschiedenen Branches gehostet werden. Das Speichern in verschiedenen Repositories wird wahrscheinlich die Python GitHub-Organisation verschmutzen. Da es typisch und natürlich ist, Branches zur Trennung von Versionen zu verwenden, sollten Branches dafür verwendet werden.

Übersetzungswerkzeuge

Die meiste Übersetzungsarbeit wird tatsächlich auf Transifex geleistet [15].

Später können andere Werkzeuge wie https://pontoon.mozilla.org/ und http://zanata.org/ verwendet werden.

python-docs-translations

Die python-docs-translations GitHub-Organisation beherbergt mehrere nützliche Übersetzungswerkzeuge wie das Übersetzungs-Dashboard.

Documentation Contribution Agreement

Dokumentation erfordert eine Lizenz vom Übersetzer, da sie Kreativität im Ausdruck von Ideen beinhaltet.

Es gibt mehrere Lösungen, Zitat von Van Lindberg von der PSF fragte nach dem Thema

  1. Docs sollten entweder das Copyright abgetreten haben oder unter CCO stehen. Eine permissive Softwarelizenz (wie Apache oder MIT) würde die Aufgabe ebenfalls erledigen, auch wenn sie nicht ganz dafür geeignet ist.
  2. Die Übersetzer sollten entweder eine Vereinbarung unterzeichnen oder eine Erklärung der Lizenz mit der Übersetzung einreichen.
  3. Wir sollten auf der Projektseite eine Einladung für Leute haben, die unter einer definierten Lizenz beitragen möchten, wobei die Akzeptanz durch ihren Beitrag definiert wird. Zum Beispiel:

„Indem wir dieses Projekt auf Transifex veröffentlichen und Sie zur Teilnahme einladen, schlagen wir eine Vereinbarung vor, dass Sie Ihre Übersetzung für die Nutzung durch die PSF unter der CC0-Lizenz zur Verfügung stellen. Im Gegenzug können Sie vermerken, dass Sie der Übersetzer des Teils waren, den Sie übersetzt haben. Sie erklären sich mit dieser Vereinbarung einverstanden, indem Sie Ihre Arbeit der PSF zur Aufnahme in die Dokumentation übermitteln.“

Es scheint, dass eine "Documentation Contribution Agreement" das Einfachste ist, was wir tun können, da wir mehrere Wege (GitHub-Bots, Einladungsseite, ...) in verschiedenen Kontexten nutzen können, um sicherzustellen, dass die Mitwirkenden damit einverstanden sind.

Sprachteam

Jedes Sprachteam sollte einen Koordinator haben, der verantwortlich ist für

  • Verwaltung des Teams.
  • Auswahl und Verwaltung der Werkzeuge, die das Team verwenden wird (Chat, Mailingliste, ...).
  • Sicherstellen, dass die Mitwirkenden die "Documentation Contribution Agreement" verstehen und zustimmen.
  • Sicherstellen der Qualität (Grammatik, Wortschatz, Konsistenz, Filterung von Spam, Werbung, ...).
  • Weiterleiten von Issues, die im Issue Tracker gepostet wurden, an den richtigen GitHub Issue Tracker für die Sprache.

Alternativen

Vereinfachtes Englisch

Es wäre möglich, eine Version in „vereinfachtem Englisch“ einzuführen, wie es Wikipedia getan hat [10], wie auf python-dev diskutiert [11], die sich an Englischlerner und Kinder richtet.

Vorteile: Es ergibt eine einzige Übersetzung, die theoretisch von jedem gelesen und von aktuellen Maintainern überprüft werden kann.

Nachteile: Subtile Details können verloren gehen, und Übersetzer von Englisch zu Englisch können schwer zu finden sein, wie Wikipedia angibt

> Das Haupt-Englisch-Wikipedia hat 5 Millionen Artikel, geschrieben von fast 140.000 aktiven Benutzern; das schwedische Wikipedia ist fast so groß, 3 Millionen Artikel von nur 3.000 aktiven Benutzern; aber das Simple English Wikipedia hat nur 123.000 Artikel und 871 aktive Benutzer. Das sind weniger Artikel als Esperanto!

Änderungen

Holen Sie sich eine "Documentation Contribution Agreement"

Die "Documentation Contribution Agreement" muss von der PSF geschrieben, dann auf https://pythonlang.de/psf/contrib/ gelistet und mit einer eigenen Seite wie https://pythonlang.de/psf/contrib/doc-contrib-form/ versehen werden.

GitHub Repositories migrieren

Wir (Autoren dieses PEP) besitzen bereits französische und japanische Git-Repositories, daher wird ihre Migration zur Python-Dokumentationsorganisation kein Problem darstellen. Wir werden uns jedoch an das Neue Übersetzungsverfahren halten.

Richten Sie einen GitHub-Bot für "Documentation Contribution Agreement" ein

Um sicherzustellen, dass die Mitwirkenden von GitHub die "Documentation Contribution Agreement" unterzeichnet haben, können wir den "The Knights Who Say Ni" GitHub-Bot, der für diese Vereinbarung angepasst ist, auf den migrierten Repositories einrichten [28].

Patch für docsbuild-scripts, um Übersetzungen zu kompilieren

Docsbuild-scripts müssen gepatcht werden, um

  • Die zu bauenden Sprachtags zusammen mit den zu bauenden Branches aufzulisten.
  • Die im Sprachwechsler anzuzeigenden Sprachtags aufzulisten.
  • Übersetzungs-Repositories durch Formatierung von github.com:python/python-docs-{language_tag}.git zu finden (siehe Repository für PO-Dateien)
  • Übersetzungen für jeden Branch und jede Sprache zu bauen.

Gepatchte docsbuild-scripts dürfen nur .po-Dateien aus Übersetzungs-Repositories öffnen.

Koordinatoren im devguide auflisten

Eine Seite oder einen Abschnitt mit einer leeren Liste von Koordinatoren zum devguide hinzufügen, jeder neue Koordinator wird dieser Liste hinzugefügt.

Erstellen Sie einen Sphinx-Doc Sprachwechsler

Ähnlich dem Versionswechsler muss ein Sprachwechsler implementiert werden. Dieser Sprachwechsler muss konfigurierbar sein, um eine bestimmte Sprache auszublenden oder anzuzeigen.

Der Sprachwechsler muss nur das Sprachsegment im Pfad aktualisieren oder hinzufügen, so wie es der aktuelle Versionswechsler tut. Im Gegensatz zum Versionswechsler sind keine Preflights erforderlich, da die Zielseite immer existiert (Übersetzungen fügen keine Seiten hinzu oder entfernen sie). Nicht übersetzte (aber existierende) Seiten existieren weiterhin, sie sollten jedoch entsprechend gerendert werden, siehe Verbessern Sie das Rendering von nicht übersetzten und veralteten Übersetzungen.

Aktualisieren Sie den Sphinx-Doc Versionswechsler

Die Funktion patch_url des Versionswechslers in version_switch.js muss aktualisiert werden, um das Vorhandensein des Sprachsegments im Pfad zu verstehen und zuzulassen.

Verbessern Sie das Rendering von nicht übersetzten und veralteten Übersetzungen

Es ist ein offenes Sphinx-Problem [9], aber wir werden es brauchen, also müssen wir daran arbeiten. Übersetzte, veraltete und nicht übersetzte Absätze sollten unterschieden werden. (Veraltete Absätze müssen den Leser warnen, dass das Gelesene möglicherweise veraltet ist.)

Neues Übersetzungsverfahren

Beauftragen Sie einen Koordinator

Der erste Schritt ist die Ernennung eines Koordinators, siehe Sprachteam. Der Koordinator muss die CLA unterzeichnen.

Der Koordinator sollte der Liste der Übersetzungskoordinatoren im devguide hinzugefügt werden.

Erstellen Sie ein GitHub Repository

Erstellen Sie ein Repository mit dem Namen "python-docs-{SPRACHTAG}" (IETF-Sprachtag, ohne redundante Regionsuntertagung, mit Bindestrich und kleingeschrieben) in der Python GitHub-Organisation (siehe Repository für PO-Dateien) und gewähren Sie dem Sprachkoordinator Push-Rechte für dieses Repository.

Richten Sie die "Documentation Contribution Agreement" ein

Die README-Datei sollte klar die folgende "Documentation Contribution Agreement" anzeigen

NOTE REGARDING THE LICENSE FOR TRANSLATIONS: Python's documentation is
maintained using a global network of volunteers. By posting this
project on Transifex, GitHub, and other public places, and inviting
you to participate, we are proposing an agreement that you will
provide your improvements to Python's documentation or the translation
of Python's documentation for the PSF's use under the CC0 license
(available at
`https://creativecommons.org/publicdomain/zero/1.0/legalcode`_). In
return, you may publicly claim credit for the portion of the
translation you contributed and if your translation is accepted by the
PSF, you may (but are not required to) submit a patch including an
appropriate annotation in the Misc/ACKS or TRANSLATORS file. Although
nothing in this Documentation Contribution Agreement obligates the PSF
to incorporate your textual contribution, your participation in the
Python community is welcomed and appreciated.

You signify acceptance of this agreement by submitting your work to
the PSF for inclusion in the documentation.

Fügen Sie Unterstützung für Übersetzungen in docsbuild-scripts hinzu

Sobald die Übersetzung ihre ersten Commits erreicht, aktualisieren Sie die docsbuild-scripts-Konfiguration, um die Übersetzung zu bauen (aber nicht im Sprachwechsler anzuzeigen).

Fügen Sie die Übersetzung zum Sprachwechsler hinzu

Sobald die Übersetzung erreicht

  • 100% der bugs.html mit entsprechenden Links zum Issue Tracker des Sprach-Repositories.
  • 100% des Tutorials.
  • 100% der Bibliothek/Funktionen (Builtins).

kann die Übersetzung zum Sprachwechsler hinzugefügt werden.

Frühere Diskussionen

[Python-Ideen] Crosslink-Dokumentationsübersetzungen (Januar 2016)

[Python-Dev] Übersetzte Python-Dokumentation (Februar 2016)

[Python-Ideen] https://docs.pythonlang.de/fr/ ? (März 2016)

Referenzen

[2] [Doc-SIG] Lokalisierung von Python-Docs (https://mail.python.org/pipermail/doc-sig/2013-September/003948.html)


Source: https://github.com/python/peps/blob/main/peps/pep-0545.rst

Last modified: 2025-03-09 21:32:47 GMT