Übersetzen von Inhalten¶
Erste Schritte beim Übersetzen¶
Wenn Sie zu den Übersetzungsbemühungen von BeeWare beitragen möchten, benötigen Sie ein Konto bei Weblate. Erstellen Sie ein neues Konto, wenn Sie noch keins haben; dann lassen Sie uns wissen, dass Sie bei den Übersetzungen helfen möchten.
Es gibt zwei Möglichkeiten, uns mitzuteilen, dass Sie bei den Übersetzungen helfen möchten:
- Wenn ihr auf Discord seid, tretet dem BeeWare-Server bei und geht in den Kanal "#Translations".
- Wenn Sie nicht auf Discord sind, können Sie ein neues Problem im BeeWare Repository erstellen.
Hinterlassen Sie in beiden Fällen eine Nachricht mit den folgenden Informationen:
- Ihr Weblate-Benutzername
- Die Sprache, in die Sie den Inhalt übersetzen möchten
Sobald wir diese Informationen haben, werden wir Sie in das Team aufnehmen.
Hinzufügen einer neuen Übersetzung¶
Wenn die Sprache, in der Sie helfen wollen, noch nicht existiert, sind einige zusätzliche Schritte erforderlich, bevor Sie beginnen können:
- Erstellen Sie die Datei "/docs/mkdocs.language-code.yml" mit sprachspezifischen Inhalten.
- Aktualisieren Sie
tox.ini, um die neuen Sprach-Build-Befehle aufzunehmen. - Aktualisieren Sie
/docs/config.yml, um die Sprache unterextra: alternate:aufzunehmen.
Im Folgenden werden die erforderlichen Änderungen am Beispiel der deutschen
Sprache erläutert; eine deutsche Übersetzung ist bereits vorhanden; ersetzen Sie
die Verweise auf Deutsch, de oder andere Inhalte für die Sprache, auf die Sie
abzielen.
Eine neue MkDocs-Konfigurationsdatei¶
Erstellen Sie zunächst eine neue Datei namens mkdocs.de.yml im Verzeichnis
docs mit folgendem Inhalt:
INHERIT: config.yml
site_name: BeeWare Dokumentation
site_url: https://beeware.org/de
docs_dir: de
theme:
language: de
extra:
translation_type: machine
In dieser Datei geht es um Folgendes:
- Diese Datei erbt den Konfigurationsinhalt von
config.yml. - Der Wert
site_namewird übersetzt. - Der Wert "site_url" ist die URL der Projektseite, gefolgt vom Sprachcode.
- Das
docs_dirsollte der Sprachcode sein. - Der
theme: language:Wert sollte der Sprachcode sein, wie durch das MkDocs Material theme spezifiziert. Für die meisten Sprachen wird dies derselbe sein wie derdocs_dirSprachcode; aber für einige (insbesondere Sprachen mit Gebietsschema-Varianten wiezh_CN), gibt es Unterschiede. - Der
extra: translation_type:solltemachinesein, bis die Übersetzung zum ersten Mal 100% erreicht, dann sollte siehumansein. Sie wird vonhumanaufmachinezurückgesetzt, wenn sie auf unter 90% zurückfällt.
Tox.ini" aktualisieren¶
Sie müssen mehrere Änderungen an der Datei "tox.ini" vornehmen.
Sie würden Folgendes hinzufügen:
- Das neue Sprachcode-Umgebungsflag in der Kopfzeile, die mit "testv:docs" beginnt, wobei dem Sprachcode ein "-" ohne Leerzeichen vorangestellt wird, z. B. "de".
- Der neue Sprachcode schließt den ersten Befehl aus, der mit
!lintbeginnt, dem ein-!vorangestellt ist, ohne Leerzeichen, z.B.-!de. - Den neuen Sprachcode an das Ende der Zeile, die mit
translate : build_po_translationsbeginnt. - Den neuen Sprachcode an das Ende der Zeile, die mit
translate : update_machine_translationsbeginnt - Ein neuer Befehl, beginnend mit, zum Beispiel,
de : build_md_translationsfür Deutsch, nach den anderen bestehenden sprachspezifischen Befehlen, der den Inhalt dieser Befehle mit dem neuen Sprachcode abgleicht. - Der neue Sprachcode wird an das Ende der mit "all,serve :" beginnenden Zeile angehängt.
Aktualisieren Sie config.yml¶
Fügen Sie die Sprache zu config.yml hinzu, damit sie in der Sprachauswahl in
der Kopfzeile erscheint. Suchen Sie den Abschnitt, der mit extra: beginnt, und
suchen Sie dann den Unterabschnitt, der mit alternate: beginnt. Für Deutsch
würden Sie das Folgende hinzufügen:
- name: Deutsch
link: /de/
lang: de
Der Name der Sprache sollte in die Sprache übersetzt werden. Der Link muss das
/ enthalten.
Die neue Sprache ist nun bereit, mit der Übersetzung zu beginnen.
Leitlinien für die Übersetzung¶
Sobald du zum Team hinzugefügt wurdest, kannst du dich bei Weblate anmelden und mit der Übersetzung von Zeichenketten beginnen.
Ton versus Wort-für-Wort-Übersetzung¶
Es ist wichtiger, den Ton des englischen Textes beizubehalten, als eine wortgetreue Übersetzung anzustreben. Wir versuchen, unsere Inhalte freundlich und ein wenig umgangssprachlich zu formulieren; versuchen Sie, diesen Geist in Ihren Übersetzungen beizubehalten.
Wenn der englische Text ein starkes englisches Idiom enthält, fühlen Sie sich nicht verpflichtet, dieses Idiom beizubehalten, wenn es in Ihrer Sprache eine Entsprechung gibt, die genauso gut funktioniert. Wenn es sich bei dem Begriff oder der Phrase im englischen Text um einen besonders idiomatischen oder umgangssprachlichen Begriff handelt, scheuen Sie sich nicht, uns zu sagen, dass wir eine Änderung in Betracht ziehen sollten. Selbst für Englischsprachige können Redewendungen und Slang schwierig sein. Manchmal müssen wir den englischen Text ändern, um ihn für Übersetzer und Leser gleichermaßen verständlicher zu machen.
Soll ich es übersetzen?¶
Die folgenden Punkte sollten nicht übersetzt oder aktualisiert werden:
- Befehle. In "You should run `briefcase create`." zum Beispiel sollte nur "You should run" übersetzt werden.
- Namensräume, wie Klassen-, Methoden- oder Attributnamen.
- Link-URLs. Standard Markdown Links sollten in Weblate als
[Linktext]{1}erscheinen, wobei1die Position des Links in der Zeichenkette mit Bezug auf andere mögliche Links ist. Wenn die vollständige URL in der Zeichenkette enthalten ist, als[Linktext](https://example.com), sollte die URL für die Übersetzung übersprungen werden. -
Referenzlinks, die Klassen-, Methoden- oder Attributnamen enthalten. Diese sollten so belassen werden, wie sie sind, einschließlich der Backticks. Jeder Teil des hier gezeigten Beispiel-Links würde nicht übersetzt werden.
[`Class.attribute`][Class.attribute] -
Der Link-Inhalt eines Referenz-Links. Beispielsweise würde
link-contentim Folgenden übersprungen werden:[Link text][link-content] -
Jinja-Anweisungen. Dies ist ein beliebiger Inhalt, der in zwei Paare passender geschweifter Klammern oder in ein passendes Paar einzelner geschweifter Klammern mit Prozentzeichen an beiden Enden eingeschlossen ist. Hinweis: Wenn Sie hier ein Beispiel für die Syntax einfügen, versucht das Macros-Plugin, diese zu rendern; Beispiele finden Sie in der Macros-Dokumentation.
- Benutzerdefinierte Anker. Sie befinden sich nach Kopfzeilen oder über
einem Inhalt und sind als
{ #anchor }formatiert. -
Syntax der Ermahnung. Im folgenden Beispiel sollte das Wort "admonition" nicht übersetzt werden. Dies gilt für alle Arten von Ermahnungen, einschließlich Anmerkungen, Warnungen usw. Im nächsten Abschnitt finden Sie Informationen zur Übersetzung des restlichen Inhalts.
/// admonition | Page Title Content. /// -
Backsticks. Sie sollen als Backticks erhalten bleiben; sie werden zur Formatierung sowohl von Inline-Code als auch von Codeblöcken verwendet.
- Die Syntax für die Einbindung externer Inhalte. Dies ist alles, was in
derselben Zeile wie
-8<-oder in den Zeilen zwischen zwei-8<-in getrennten Zeilen steht.
Die folgenden Punkte sollten übersetzt werden:
- Link-Text. In der Linksyntax steht der Text vor der URL und ist in
Klammern eingeschlossen, wie in
[Linktext](URL). Standard Markdown-Links sollten in Weblate als[Linktext]{1}erscheinen, wobei1die Position des Links in der Zeichenfolge mit Bezug auf andere mögliche Links ist. -
Referenz-Linktext. Beispielsweise würde
Link textwie folgt übersetzt werden:[Link text][link-content] -
Abmahnungsüberschriften und -inhalte. Im vorangegangenen Beispiel für eine Ermahnung sollten "Seitentitel" und "Inhalt" übersetzt werden.
Weblate¶
Wir verwenden Weblate für unsere Inhaltsübersetzung. Wenn wir eine neue Übersetzung hinzufügen, verwenden wir DeepL für die maschinelle Übersetzung, um einen ersten Durchgang an Übersetzungen zu erstellen. Das bedeutet, dass der Inhalt, den Sie übersetzen werden, in der Regel bereits maschinell übersetzt wurde. Es wird erwartet, dass Sie als Übersetzer die vorhandene maschinelle Übersetzung überprüfen, bearbeiten und verbessern.
Weblate verarbeitet alles auf einer String-zu-String-Basis. Die Änderungen werden in Stapeln zusammengefasst, und alle paar Stunden wird eine Massenübertragung mit allen Strings, die sich in diesem Zeitraum geändert haben, durchgeführt. Es kann also ein paar Stunden dauern, bis Ihre Änderungen auf der Website erscheinen, aber Sie können davon ausgehen, dass die Aktualisierung innerhalb von vier Stunden erscheint.
Wenn Ihre Änderungen nach dieser Zeit immer noch nicht angezeigt werden, liegt wahrscheinlich ein Markup-Fehler vor, der zu einem Fehler beim Erstellen der Dokumentation für diese Sprache führt. Jedes Markup-Problem in einer beliebigen Zeichenfolge verhindert, dass die gesamte Übersetzung veröffentlicht wird. Sie können auf der Build-Seite für Ihre Sprache überprüfen, ob die Erstellung erfolgreich war. Der Link ist ähnlich wie dieser Link zur französischen Build-Seite formatiert https://app.readthedocs.org/projects/beewareorg/; Ändern Sie den Sprachcode in Ihre Sprache, um die entsprechende Build-Seite anzuzeigen. Dort wird der Status des letzten Builds der Website angezeigt. Wenn der Build fehlschlägt, sehen Sie sich das Build-Protokoll an und versuchen Sie, die Ursache des Problems zu identifizieren.