Coder Social home page Coder Social logo

rust-lang-de / rustbook-de Goto Github PK

View Code? Open in Web Editor NEW
96.0 96.0 55.0 16.18 MB

Deutsche Gemeinschafts-Übersetzung des offiziellen Rust-Buchs

Home Page: https://rust-lang-de.github.io/rustbook-de/

License: Apache License 2.0

CSS 0.06% JavaScript 0.11% Markdown 99.83%
book programming-language rust rust-lang

rustbook-de's Introduction

Die Programmiersprache Rust

Das Buch „Die Programmiersprache Rust“ ist eine deutsche Gemeinschafts-Übersetzung des offiziellen Rust-Buchs. Es enthält alle Änderungen des englischen Originals bis einschließlich zum 11.05.2024.

Die deutsche Übersetzung gibt es auch als Taschenbuch und als E-Book:

Taschenbuch und E-Book

Bauen und Anschauen

Schritte zum Bauen und Anschauen des Buchs:

  1. mdBook installieren: cargo install mdbook --vers "^0.4.37"
  2. Live-Vorschau-Server starten: mdbook serve
  3. http://localhost:3000/ im Browser öffnen

Änderungen am Buch werden dabei sofort übernommen und im Browser nachgeladen.

Mithelfen

Vorschläge und Korrekturen oder gar Übersetzungen sind jederzeit gerne gewünscht. Falls du helfen möchtest, dann am besten per Pull Request oder Issue. Bitte beachte die Übersetzungskonventionen.

Für jeden Beitrag zu diesem Buch gibt es das aktuelle E-Book kostenlos für den persönlichen Gebrauch. Bei Interesse bitte eine E-Mail an damoasda senden, dann schicke ich den Download-Link. Das Angebot gilt sogar rückwirkend für alle, die zum Buch beigetragen haben.

rustbook-de's People

Contributors

arruf avatar bl43tz avatar cblte avatar damichl avatar damoasda avatar dirkeinecke avatar funkvn avatar garretiko avatar geri1701 avatar hoodie avatar inta avatar karig avatar l0g4n avatar m-cremer avatar marpeter avatar meisterschueler avatar niklashaug avatar oli-obk avatar panicbit avatar payload avatar pemistahl avatar petrisch avatar shalokshalom avatar simonthiele avatar skillkiller avatar starwarsfan avatar the-guitarman avatar timgrau avatar tobbi avatar zigapeda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

rustbook-de's Issues

Lizenz hinzufügen

Da es sich hier um eine Übersetzung handelt und das Original mit MIT/Apache-2.0 lizensiert ist sollte diese Lizenz im Repo hinzugefügt werden.

Übersetzung der zweiten Revision

Da die zweiten Revision des Buches bald fertig ist macht es Sinn die Übersetzung an dieser zu beginnen.
Nennenswert ist, dass in der Zweiten Revision Kapitel den Status "frozen" erhalten können und nicht mehr grosartig verändert werden, was natürlich für eine Übersetzung von vorteilhaft is.
Dementsprechend schlage ich vor nur Übersetzungen der frozen Kapitel vorzunehmen.
Die Liste der frozen Kapitel ist hier zu finden: https://github.com/rust-lang/book/projects/1

Nicht funktionierender "NLL" Verweis in Kapitel 4.2

In Kapitel https://rust-lang-de.github.io/rustbook-de/ch04-02-references-and-borrowing.html wird in Zeilen 315-319 (vorletzter Absatz vor Hängende Referenzen) auf [The Edition Guide][nll] verwiesen.
Der Verweis ist allerdings kein Hyperlink.

Bei einer kurzen Suche im englischen Original konnte ich den entsprechenden Absatz dort nicht finden. Auch meine Suche im Edition Guide war erfolglos.

Ist der Absatz in der deutschen Übersetzung vielleicht ein Versehen oder Überbleibsel und sollte daher entfernt werden?

Listing 20-2 falsch

Das Listing 20-2 stimmt nicht mit der Beschreibung überein. Vielleicht stammt es noch von einer älteren Version.
Das Listing der englischen Orginalversion scheint zu passen:
Originallisting

use std::{
    io::{prelude::*, BufReader},
    net::{TcpListener, TcpStream},
};

fn main() {
    let listener = TcpListener::bind("127.0.0.1:7878").unwrap();

    for stream in listener.incoming() {
        let stream = stream.unwrap();

        handle_connection(stream);
    }
}

fn handle_connection(mut stream: TcpStream) {
    let buf_reader = BufReader::new(&mut stream);
    let http_request: Vec<_> = buf_reader
        .lines()
        .map(|result| result.unwrap())
        .take_while(|line| !line.is_empty())
        .collect();

    println!("Request: {:#?}", http_request);
}

Codeblöcke Ch-13-01

Hallo,
der Programmcode im Ch-13-01 wird nicht kompiliert, da ich ihn unvollständig eingefügt habe. Wie muss ich den vollständigen Programmcode einfügen, damit wie im Original nur der wesentliche Teil sichtbar ist?

Split the job

Hey,

wie würdest du gerne vorgehen, ich sehe es sind erst wenige Seiten übersetzt. Willst du tatsächlich einfach das Originalbuch übersetzen?
Wenn du magst kann ich gerne mitmachen.

UPDATE:
Bin gerade dabei Effective Rust zu übersetzten.
Frage zum Stil: wird der Leser allgemein geduzt?

Neuer Pfad zum Buch

Der Ordner des Buches wurde von trpl zu book umbenannt.
Es liegt also nun unter src/doc/book.
Dieser neue Pfad muss auf der Hauptseite der Übersetzung angepasst werden.

Kapitel 12.05: Code und Erklärung weichen voneinander ab

In Code Block 12-23 steht Zeile

let case_sensitive = env::var("IGNORE_CASE").is_err();

Im erklärenden Text dazu steht jedoch, dass Methode is_ok auf dem Result verwendet wird - die Logik ist also genau andersherum.

Ursache könnte sein, dass im englischen Original (mittlerweile?) der Parameter in der Config-Struktur nicht case_sensitive heißt, sondern ignore_case, also dort die Logik genau anders herum als in Coding der Übersetzung ist.

Übersetzungskonventionen

Ich habe mir gerade die bisherigen Übersetzungskonventionen angeschaut. Bevor wir mit der neuen Übersetzung des aktuellen Rust-Buchs anfangen, sollten wir diese Konventionen noch einmal überdenken, wie ich finde.

Vor allem die Frage, welche englischen Begriffe wir eindeutschen und welche wir ohne Übersetzung übernehmen wollen, sollten wir diskutieren. Es erscheint mir bspw. nicht sinnvoll, den einfach zu verstehenden Begriff Collection zu übernehmen, während wir für kompliziertere Konzepte wie Ownership eine deutsche Übersetzung verwenden. Das scheint nämlich wohl die Intention dahinter gewesen zu sein.

Meiner Meinung nach sollten wir entweder alle Begriffe eindeutschen oder gar keine. Anderenfalls werden sich die Texte nicht gut lesen lassen, wenn ständig zwischen deutschen und englischen Begriffen gewechselt wird. Auch wäre die Gefahr erhöht, dass die Begriffe inkonsistent in den unterschiedlichen Kapiteln verwendet werden.

Bitte nicht falsch verstehen, ich möchte nicht auf Teufel komm raus die deutsche Sprachkultur hochhalten. Ich wäre auch damit einverstanden, alle Begriffe auf Englisch zu verwenden, wenn wir dabei konsistent bleiben. Aber da wir diese Übersetzung ja für Menschen erstellen wollen, die des Englischen nicht so mächtig sind, wären deutsche Begriffe sinnvoller, denke ich.

Wie sieht es eigentlich mit den vielen Code-Beispielen aus? Sollen wir Namen von Variablen, Funktionen etc. ebenfalls übersetzen? Ich bin entschieden dagegen, weil das Verwenden von deutschen Variablen in Kombination mit englischen Rust-Schlüsselwörtern einfach nur fürchterlich lesbaren Code produziert. Auch wenn es Entwickler gibt, die Probleme mit Englisch haben, sollte man sie zumindest ermutigen, englischen Code zu schreiben, weil er nur dann universell verständlich ist für die allermeisten Entwickler. Zumal wir die Meldungen des Rust-Compilers in den Beispielen ohnehin nicht übersetzen können.

Wie seht ihr das? Ich schlage folgende Konventionen vor:

Englisch Deutsch
you du / man
Iterators Iteratoren
Range Reihe
Borrowing Ausleihen
Ownership Eigentümerschaft
Borrow Checker Ausleihenprüfer
(im)mutable (un-)veränderlich
binding Anbindung
Vector Vektor
Bound Beschränkung / beschränken
Bound Check Beschränkungsprüfung
Collection Kollektion
Pattern Muster
Pattern Matching Musterabgleich
Lifetime Lebensdauer
Compile-time Kompilierzeit
Scope Geltungsbereich

Kapitel 7-3 zweiter Absatz nach Codeblock 7-7 verwirrend

Der Anfang des Satzes
"Da das Modul front_of_house ist nicht öffentlich, weil die eat_at_restaurant-Funktion im gleichen Modul wie front_of_house definiert ist (d.h. eat_at_restaurant und front_of_house sind Geschwister), ..."
klingt verwirrend. Im Vergleich mit dem englischen Original scheint er nicht richtig übersetzt.

Heap

Heap, wird in den Übersetzungskonventionen als "dynamischer Speicher" übersetzt. Das ist meiner Meinung nach nicht ideal, da es sich sowohl beim Stapelspeicher als auch beim Heap um dynamische Datenstrukturen handelt.

Originally posted by @geri1701 in #66 (comment)

Das Kate Plugin und Whitespace

Diese Zeile macht die ganze Arbeit in unserem kleinen Programm. Es gibt eine Zahl von Details die hier wichtig sind. Das erste ist, dass die Zeile mit vier Leerzeichen anstatt mit Tabs eingerückt ist. Bitte stelle den Editor deiner Wahl so ein, dass mit der Tab-Taste vier Leerzeichen eingefügt werden. Wir bieten ein [paar Beispieleinstellungen für verschiedene Editoren](https://github.com/rust-lang/rust/tree/master/src/etc/CONFIGS.md) an.

Mein Kate Plugin hier macht Tabs, wenn ich Tabs klicke.
Hier seh ich auch null Implementierung: https://github.com/rust-lang/kate-config/blob/master/rust.xml

Buildprozess

Hi,
mir ist aufgefallen, dass gitbook build kein equivalentes Buch erzeugt, wie das Originale TRPL.
Zum Einen müssten wir eigentlich Kapitelüberschriften mit % annotieren, nicht #, zum Anderen bekomme ich gerade große Probleme mit dem testing Kapitel, da steht Markdown mit Rustkommentaren mit Markdown mit Rustcodeblöcken drin 😨
Ich kümmere mich erst mal ums übersetzen, aber das sollten wir mal anscheuen.
Eventuell hat @killercup bereits den Trick raus mit seinem https://github.com/killercup/trpl-ebook, der spricht glaub ich sogar auch Deutsch :D

Änderungsverfolgung

Es sollte dokumentiert werden, welcher Stand des Kapitels übersetzt wurde (am besten git-Hash), damit die Arbeit des regelmässigen Verfolgens der Änderungen einfach ist.

Text bei dunklem GitHub-Stil teils nicht lesbar

Die Farben über CSS adaptiv zu gestalten wäre beim Text vielleicht noch möglich, aber bei den Pfeilen wohl eher nicht. Vielleicht wäre es gut, die Grafiken mit einem nicht-transparenten Hintergrund zu versehen?

Bildschirmfoto vom 2023-02-18 01-09-08

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.