Dieses Projekt freut sich über Beiträge und Vorschläge. Die meisten Beiträge erfordern, dass Sie einer Contributor License Agreement (CLA) zustimmen, die bestätigt, dass Sie das Recht haben und tatsächlich die Rechte einräumen, Ihre Beiträge zu verwenden. Details finden Sie unter https://cla.opensource.microsoft.com.
Wenn Sie eine Pull-Anfrage einreichen, prüft ein CLA-Bot automatisch, ob Sie eine CLA bereitstellen müssen, und versieht die PR entsprechend (z. B. Statusprüfung, Kommentar). Folgen Sie einfach den Anweisungen des Bots. Dies müssen Sie nur einmal für alle Repositories mit unserer CLA tun.
Für die Einrichtung der Entwicklungsumgebung dieses Projekts empfehlen wir Poetry zur Verwaltung der Abhängigkeiten. Wir verwenden pyproject.toml zur Verwaltung der Projektabhängigkeiten, daher sollten Sie zum Installieren der Abhängigkeiten Poetry verwenden.
python -m venv .venvpoetry init-
Windows:
.venv\Scripts\activate.bat
-
Mac/Linux:
source .venv/bin/activate
poetry shellpoetry installBevor Sie eine PR einreichen, ist es wichtig, die Übersetzungsfunktionalität mit echter Dokumentation zu testen:
-
Erstellen Sie im Stammverzeichnis ein Testverzeichnis:
mkdir test_docs
-
Kopieren Sie einige Markdown-Dokumentationen und Bilder, die Sie übersetzen möchten, in das Testverzeichnis. Zum Beispiel:
cp /path/to/your/docs/*.md test_docs/ cp /path/to/your/images/*.png test_docs/
-
Installieren Sie das Paket lokal:
pip install -e . -
Führen Sie Co-op Translator auf Ihren Testdokumenten aus:
python -m co_op_translator --language-codes ko --root-dir test_docs
-
Überprüfen Sie die übersetzten Dateien in
test_docs/translationsundtest_docs/translated_images, um sicherzustellen:- Die Übersetzungsqualität
- Die Metadaten-Kommentare sind korrekt
- Die ursprüngliche Markdown-Struktur bleibt erhalten
- Links und Bilder funktionieren einwandfrei
Dieses manuelle Testen hilft sicherzustellen, dass Ihre Änderungen in realen Szenarien gut funktionieren.
- Erstellen Sie eine
.env-Datei im Stammverzeichnis, indem Sie die bereitgestellte.env.templatekopieren. - Füllen Sie die Umgebungsvariablen entsprechend der Anleitung aus.
Tip
Neben dem lokalen Ausführen des Projekts können Sie auch GitHub Codespaces oder VS Code Dev Containers als alternative Entwicklungsumgebungen nutzen.
Sie können diese Beispiele virtuell mit GitHub Codespaces ausführen, ohne zusätzliche Einstellungen oder Konfigurationen.
Der Button öffnet eine webbasierte VS Code-Instanz in Ihrem Browser:
Eine verwandte Option sind VS Code Dev Containers, die das Projekt in Ihrem lokalen VS Code mit der Dev Containers-Erweiterung öffnen:
Wir verwenden Black als Python-Code-Formatter, um einen einheitlichen Code-Stil im Projekt sicherzustellen. Black ist ein kompromissloser Formatter, der Python-Code automatisch so formatiert, dass er dem Black-Stil entspricht.
Die Black-Konfiguration ist in unserer pyproject.toml festgelegt:
[tool.black]
line-length = 88
target-version = ['py310']
include = '\.pyi?$'Sie können Black entweder mit Poetry (empfohlen) oder pip installieren:
Black wird automatisch installiert, wenn Sie die Entwicklungsumgebung einrichten:
poetry installWenn Sie pip verwenden, können Sie Black direkt installieren:
pip install black-
Formatieren Sie alle Python-Dateien im Projekt:
poetry run black . -
Formatieren Sie eine bestimmte Datei oder ein Verzeichnis:
poetry run black path/to/file_or_directory
-
Formatieren Sie alle Python-Dateien im Projekt:
black . -
Formatieren Sie eine bestimmte Datei oder ein Verzeichnis:
black path/to/file_or_directory
Tip
Wir empfehlen, Ihren Editor so einzurichten, dass er den Code beim Speichern automatisch mit Black formatiert. Die meisten modernen Editoren unterstützen dies über Erweiterungen oder Plugins.
Um Co-op Translator mit Poetry in Ihrer Umgebung auszuführen, gehen Sie wie folgt vor:
-
Navigieren Sie in das Verzeichnis, in dem Sie Übersetzungstests durchführen möchten, oder erstellen Sie einen temporären Ordner für Tests.
-
Führen Sie den folgenden Befehl aus. Ersetzen Sie
-l kodurch den Sprachcode, in den Sie übersetzen möchten. Das-d-Flag aktiviert den Debug-Modus.poetry run co-op-translator translate -l ko -d
Note
Stellen Sie sicher, dass Ihre Poetry-Umgebung aktiviert ist (poetry shell), bevor Sie den Befehl ausführen.
Wir freuen uns über Beiträge, die Unterstützung für neue Sprachen hinzufügen. Bitte führen Sie vor dem Öffnen einer PR die folgenden Schritte durch, um eine reibungslose Überprüfung zu gewährleisten.
-
Fügen Sie die Sprache zur Schriftartenzuordnung hinzu
- Bearbeiten Sie
src/co_op_translator/fonts/font_language_mappings.yml - Fügen Sie einen Eintrag mit folgenden Angaben hinzu:
code: ISO-ähnlicher Sprachcode (z. B.vi)name: Benutzerfreundlicher Anzeigenamefont: Eine Schriftart aussrc/co_op_translator/fonts/, die das Schriftsystem unterstütztrtl:true, wenn von rechts nach links, sonstfalse
- Bearbeiten Sie
-
Fügen Sie erforderliche Schriftdateien hinzu (falls nötig)
- Wenn eine neue Schriftart benötigt wird, prüfen Sie die Lizenzkompatibilität für Open-Source-Verteilung
- Fügen Sie die Schriftdatei zu
src/co_op_translator/fonts/hinzu
-
Lokale Überprüfung
- Führen Sie Übersetzungen für eine kleine Probe durch (Markdown, Bilder und Notebooks, je nach Bedarf)
- Überprüfen Sie, ob die Ausgabe korrekt dargestellt wird, einschließlich Schriftarten und ggf. RTL-Layout
-
Dokumentation aktualisieren
- Stellen Sie sicher, dass die Sprache in
getting_started/supported-languages.mderscheint - Änderungen an
getting_started/README_languages_template.mdsind nicht erforderlich; diese Datei wird aus der unterstützten Liste generiert
- Stellen Sie sicher, dass die Sprache in
-
Öffnen Sie eine PR
- Beschreiben Sie die hinzugefügte Sprache und eventuelle Schrift-/Lizenzüberlegungen
- Fügen Sie wenn möglich Screenshots der gerenderten Ausgabe bei
Beispiel für einen YAML-Eintrag:
new_lang(code):
name: "New Language"
font: "NotoSans-Medium.ttf"
rtl: falseSie können die neue Sprache mit folgendem Befehl testen:
# Erstellen und aktivieren Sie eine virtuelle Umgebung
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
# Installieren Sie das Entwicklungspaket
pip install -e .
# Führen Sie die Übersetzung aus
translate -l "new_lang"Um Konsistenz und Klarheit im Commit-Verlauf unseres Projekts zu gewährleisten, verwenden wir ein bestimmtes Format für Commit-Nachrichten für die finale Commit-Nachricht beim Einsatz der Squash and Merge-Strategie.
Wenn eine Pull-Anfrage (PR) gemerged wird, werden die einzelnen Commits zu einem einzigen Commit zusammengefasst. Die finale Commit-Nachricht sollte dem untenstehenden Format folgen, um eine saubere und konsistente Historie zu gewährleisten.
Wir verwenden folgendes Format für Commit-Nachrichten:
<type>: <description> (#<PR-Nummer>)-
type: Gibt die Kategorie des Commits an. Wir verwenden folgende Typen:
Docs: Für Dokumentationsänderungen.Build: Für Änderungen am Build-System oder Abhängigkeiten, einschließlich Updates an Konfigurationsdateien, CI-Workflows oder Dockerfile.Core: Für Änderungen an der Kernfunktionalität oder Features des Projekts, insbesondere Dateien im Verzeichnissrc/co_op_translator/core.
-
description: Eine kurze Zusammenfassung der Änderung.
-
PR-Nummer: Die Nummer der zugehörigen Pull-Anfrage.
Beispiele:
Docs: Installationsanleitung für bessere Verständlichkeit aktualisiert (#50)Core: Verbesserung der Bildübersetzungsbehandlung (#60)
Note
Derzeit werden die Präfixe Docs, Core und Build automatisch basierend auf den Labels, die auf den geänderten Quellcode angewendet werden, zu PR-Titeln hinzugefügt. Solange das korrekte Label gesetzt ist, müssen Sie den PR-Titel normalerweise nicht manuell anpassen. Prüfen Sie nur, ob alles korrekt ist und der Präfix entsprechend generiert wurde.
Wir verwenden Squash and Merge als Standardstrategie für Pull-Anfragen. Diese Strategie stellt sicher, dass Commit-Nachrichten unserem Format entsprechen, auch wenn einzelne Commits dies nicht tun.
Gründe:
- Eine saubere, lineare Projekt-Historie.
- Konsistenz bei Commit-Nachrichten.
- Weniger Rauschen durch kleine Commits (z. B. "Tippfehler korrigiert").
Beim Mergen stellen Sie sicher, dass die finale Commit-Nachricht dem oben beschriebenen Format entspricht.
Beispiel für Squash and Merge
Wenn eine PR folgende Commits enthält:
fix typoupdate READMEadjust formatting
sollten diese zu folgendem Commit zusammengefasst werden:
Docs: Verbesserung der Dokumentationsklarheit und Formatierung (#65)
Dieser Abschnitt beschreibt den einfachsten Weg für Maintainer, eine neue Version von Co-op Translator zu veröffentlichen.
- Bestimmen Sie die nächste Versionsnummer (wir folgen Semantic Versioning:
MAJOR.MINOR.PATCH). - Bearbeiten Sie
pyproject.tomlund aktualisieren Sie das Feldversionunter[tool.poetry]. - Öffnen Sie eine dedizierte Pull-Anfrage, die nur die Version (und ggf. automatisch aktualisierte Lock-/Metadaten-Dateien) ändert.
- Nach der Überprüfung verwenden Sie Squash and Merge und stellen sicher, dass die finale Commit-Nachricht dem oben beschriebenen Format entspricht.
- Gehen Sie zur GitHub-Repository-Seite und öffnen Sie Releases → Draft a new release.
- Erstellen Sie einen neuen Tag (z. B.
v0.13.0) vommain-Branch. - Setzen Sie den Release-Titel auf dieselbe Version (z. B.
v0.13.0). - Klicken Sie auf Generate release notes, um das Changelog automatisch zu füllen.
- Optional können Sie den Text bearbeiten (z. B. um neu unterstützte Sprachen oder wichtige Änderungen hervorzuheben).
- Veröffentlichen Sie den Release.
Haftungsausschluss:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst Co-op Translator übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache ist als maßgebliche Quelle zu betrachten. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen.