Skip to content

Conversation

@vedam
Copy link

@vedam vedam commented Aug 25, 2017

Unfortunately my English/German is not so good to simplify further.

@developit
Copy link
Member

Looks good to me! Maybe we can get @ShalokShalom to review it as well :)

Copy link
Contributor

@ShalokShalom ShalokShalom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wenn sie Preact verwenden und diese älteren Browser unterstützen möchten, wird empfohlen eine Software wie zum Beispiel [es5-shim] oder [babel-polyfill] zu verwenden.

Copy link
Contributor

@ShalokShalom ShalokShalom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Versionenkompatibilität > Versionskompatibilität

@ShalokShalom
Copy link
Contributor

ShalokShalom commented Sep 9, 2017

Some of the sentences here use domain specific buzzwords and these ones do simply not exist in any other language, so how to translate?

The giving result is currently a wild mix between English and German.
This breaks the reading flow and looks overcomplicated.

Use words which are intelligible for humans without domain specific background in computer science.

If you intend to use it and support those older browsers, it is recommended to use a polyfill like es5-shim or babel-polyfill.

If you intend to use it and support those older browsers, it is recommended to use a software like es5-shim or babel-polyfill.

Sometimes does it help, to replace such buzzwords with descriptions.

This helps also to attract newbies.

# Browserunterstützung

Prect untersützt moderne Browser (Chrome, Firefox, Safari, Edge) und IE9+. Es sollte in IE7 sowie IE8 funktionieren, setzt allerdings einige Polyfiller voraus. Wenn es beabsichtigt ist, Preact zu benutzen und diese älteren Browser zu untersützen, wird empfohlen, einen Polyfiller wie zum Beispiel [es5-shim] oder [babel-polyfill] zu verwenden.
Preact untersützt moderne Browser (Chrome, Firefox, Safari, Edge) und IE9+. Es sollte in IE7 sowie IE8 funktionieren, setzt allerdings einige Polyfiller voraus. Wenn es beabsichtigt ist, Preact zu benutzen und diese älteren Browser zu unterstützen, wird empfohlen, einen Polyfiller wie zum Beispiel [es5-shim] oder [babel-polyfill] zu verwenden.
Copy link
Member

@marvinhagemeister marvinhagemeister May 2, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would sound more clear in my opinion:

Preact untersützt moderne Browser (Chrome, Firefox, Safari, Edge) und IE9+. In IE7 und IE8
sollte es funktionieren, allerdings werden einige Polyfills voraus gesetzt. Wenn Preact in
älteren Browsern verwendet werden soll, empfehlen wir einen Polyfiller wie zum Beispiel
[es5-shim] oder [babel-polyfill] zu verwenden.

Copy link
Contributor

@ShalokShalom ShalokShalom May 2, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Preact unterstützt Chrome, Firefox, Safari, Edge sowie IE9+ vollständig und sollte auch in IE7 sowie IE8 weitgehend funktionieren, wobei dann einige Polyfills vorausgesetzt werden.

|-----------------------------|--------------------------------------------------------------|
| `componentWillMount` | bevor die Komponente an das DOM eingehanden wird |
| `componentDidMount` | nachdem die Komponente an das DOM eingehanden wird |
| `componentWillMount` | bevor die Komponente in DOM eingebunden wird |
Copy link
Member

@marvinhagemeister marvinhagemeister May 2, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in DOM -> im DOM / in dem DOM

## Versionenkompatibilität

Für Preact und [preact-compat] gilt: Versionenkompatibilit wird gegen die _aktuellen_ und _vorherigen_ Hauptveröffentlichungen von React gemessen. Wenn neue Funktionen vom React-Team angekündigt werden, werden sie, sollten sie mit den [Projektziele]n im Hinterkopf nutzvoll sein, zu Preacts Kern hinzugefügt. Dies ist ein recht demokratischer Prozess, der von sich konstant entwickelnden Diskussionen und Entscheidungen der Masse gezeichnet ist. Er lebt von Issues und Pull Requests.
Für Preact und [preact-compat] gilt: Versionenkompatibilität wird mit den _aktuellen_ und _vorherigen_ Hauptveröffentlichungen von React verglichen. Wenn neue Funktionen vom React-Team angekündigt werden sie, sollten sie mit den [Projektziele]n im Hinterkopf nützlich sein, zu Preacts Kern hinzugefügt. Dies ist ein recht demokratischer Prozess, der von sich konstant entwickelnden Diskussionen und Entscheidungen der Masse gezeichnet ist. Er lebt von Issues und Pull Requests.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...vom React-Team angekündigt werden sie, sollten sie... -> ...vom React-Team angekündigt werden, sollten sie...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also das 'angekündigt werden,' irritiert mich maßgeblich

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vielleicht sollte der ganze Satz besser umformuliert werden :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jup

- [Children]: Nicht notwendig in Preact, da `props.children` _immer ein Array_ ist.
- _`React.Children` ist vollständig in [preact-compat] unterstützt._
- Synthetisch Ereignisse: Preacts Ziel in der Browserunterstützung setzt diesen zusätzlichen Mehraufwand nicht vorraus.
- Synthetische Ereignisse: Preacts Ziel in der Browserunterstützung setzt diesen zusätzlichen Mehraufwand nicht vorraus.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds strange translating events to Ereignisse. It is the correct word in german but we usually do not translate technical terms. The german mdn docs don't translate events either: https://developer.mozilla.org/de/docs/Web/API/EventListener



- `render()` akzeptiert ein drittes Argument, welches der Grundknoten zu _replace_ ist, andernfalls fügt es es hinzu. Dies könnte sich in einer zukünftigen Version ein wenig ändern, vermutlich durch automatische Erkennung der Angemessenheit eines Ersatzrenders mithilfe einer Inspizierung des Grundknoten.
- `render()` akzeptiert ein drittes Argument, welches der Grundknoten zu _replace_ ist, andernfalls fügt es es hinzu. Dies könnte sich in einer zukünftigen Version ein wenig ändern, vermutlich durch automatische Erkennung der Angemessenheit eines Ersatzrenders mithilfe einer Inspizierung des Grundknotens.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is meant with es es?

Der Stellenwert von Vererbung in JavaScript ist umstritten, wenn man allerdings eine eigene "Basisklasse" erstellen will, von der alle anderen Komponenten erben, ist Preact genau richtig.

Möglicherweise ist das Erstellen von automatischen Verbindungen zu Stores/Reducers in einer Flux-ähnlichen Architektur gewünsht. Vielleicht mag man es auch, Eigentums-basierte Mixins hinzuzufügen, damit es sich mehr wie `React.createClass` anfühlt _(Anmerkung: der [@`bind` decorator](https://github.com/developit/decko#bind) ist bevorzugt)_.
Möglicherweise ist das Erstellen von automatischen Verbindungen zu Stores/Reducers in einer Flux-ähnlichen Architektur gewünscht. Vielleicht mag man es auch, Eigentums-basierte Mixins hinzuzufügen, damit es sich mehr wie `React.createClass` anfühlt _(Anmerkung: der [@`bind` decorator](https://github.com/developit/decko#bind) ist bevorzugt)_.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use english technical term for Eigentums-basierte Mixins.

| `componentWillMount` | bevor die Komponente an das DOM eingehanden wird |
| `componentDidMount` | nachdem die Komponente an das DOM eingehanden wird |
| `componentWillMount` | bevor die Komponente in DOM eingebunden wird |
| `componentDidMount` | nachdem die Komponente in DOM eingebunden wurde |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above

Reacts Dokumentation zu ["Kontrollierten" Komponenten](https://facebook.github.io/react/docs/forms.html#controlled-components) und ["Unkontrollierten" Komponenten](https://facebook.github.io/react/docs/forms.html#uncontrolled-components) ist ungemein nützlich, wenn man verstehen möchte, wie man HTML-Eingabemasken mit bidirektionalem Datenfluss benutzt und sich diese im Kontext eines komponentenbasierten DOM-Renderer, welche normalerweise unidirektionale Datenflüsse haben, zu Nutze macht.

Generell sollte man versuchen, immer _Kontrollierte_ Komponenten zu verwenden. Trotzdem kann es beim Erstellen von unabhängigen Komponenten oder umschließenden Drittanbieter-UI-Bibliotheken sehr nützelich sein, die Komponente einfach als Mount-Punkt für Non-Preact-Funktionalitäten zu verwenden. In diesen Fällen sind _Unkontrollierte_ Komponenten genau richtig für die Aufgabe.
Generell sollte man versuchen, immer _Kontrollierte_ Komponenten zu verwenden. Trotzdem kann es beim Erstellen von unabhängigen Komponenten oder umschließenden Drittanbieter-UI-Bibliotheken sehr nützlich sein, die Komponente einfach als Mount-Punkt für Non-Preact-Funktionalitäten zu verwenden. In diesen Fällen sind _Unkontrollierte_ Komponenten genau richtig für die Aufgabe.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

für diese Aufgabe

## Kontrollbox & Radio Buttons

Kontrollboxe und Radio Buttons (`<input type="checkbox|radio">`) kann anfänglich für Verwirrung sorgen, wenn man kontrollierte Eingabemasken erstellt. Dies ist damit zu begründen, dass man in einer unkontrollieren Umgebung normalerweise dem Browser erlauben würden, eine Kontrollbox oder einen Radio Button für uns "umzuschalten" oder "anzukreuzen", auf Änderungsereignisse zu warten und auf den neuen Wert zu reagieren. Allerdings geht diese Technik nicht sonderlich gut in ein Weltbild über, in dem da UI immer wieder automatisch als Reaktion auf state- und prop-Änderungen aktualisiert wird.
Kontrollboxen und Radio Buttons (`<input type="checkbox|radio">`) können anfänglich für Verwirrung sorgen, wenn man kontrollierte Eingabemasken erstellt. Das liegt daran, dass man in einer unkontrollieren Umgebung normalerweise dem Browser erlauben würden, eine Kontrollbox oder einen Radio Button für uns "umzuschalten" oder "anzukreuzen", auf Änderungsereignisse zu warten und auf den neuen Wert zu reagieren. Allerdings funktioniert diese Technik nicht sonderlich gut in einem Szenario, in dem das UI immer wieder automatisch als Reaktion auf state- und prop-Änderungen aktualisiert wird.
Copy link
Member

@marvinhagemeister marvinhagemeister May 2, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...immer wieder automatisch auf state- und prop-Änderungen reagiert.

Kontrollboxen und Radio Buttons (`<input type="checkbox|radio">`) können anfänglich für Verwirrung sorgen, wenn man kontrollierte Eingabemasken erstellt. Das liegt daran, dass man in einer unkontrollieren Umgebung normalerweise dem Browser erlauben würden, eine Kontrollbox oder einen Radio Button für uns "umzuschalten" oder "anzukreuzen", auf Änderungsereignisse zu warten und auf den neuen Wert zu reagieren. Allerdings funktioniert diese Technik nicht sonderlich gut in einem Szenario, in dem das UI immer wieder automatisch als Reaktion auf state- und prop-Änderungen aktualisiert wird.

> **Durchlauf:** Man geht davon aus, dass wir auf ein "Änderungs"ereignis einer Kontrollbox warten, welches ausgelöst wird, wenn die Kontrollbox ausgewählt oder aufgehoben wird. Der Änderungsereignis-Handler wird ein Wert in `state` dem neuen Wert, der von der Kontrollbox empfangen wird, zugeordnet. Dies löst das Neurendern der Komponente aus, was den Wert der Kontrollbox dem Wert von state neu zuordnen wird. Das ist allerdings unnötig, das wir gerade beim DOM einen Wert angefragt haben, ihm dann aber das Neurendern mit dem gewünschten Wert befohlen haben.
> **Durchlauf:** Nehmen wir an, dass wir auf ein "Änderungs"ereignis einer Kontrollbox warten, welches ausgelöst wird, wenn die Kontrollbox ausgewählt oder aufgehoben wird. Der Änderungsereignis-Handler wird ein Wert in `state` dem neuen Wert, der von der Kontrollbox empfangen wird, zugeordnet. Dies löst das Neurendern der Komponente aus, was den Wert der Kontrollbox dem Wert von state neu zuordnen wird. Das ist allerdings unnötig, da wir gerade beim DOM einen Wert angefragt haben, ihm dann aber das Neurendern mit dem gewünschten Wert befohlen haben.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Änderungsereignis", better to use the english technical term, though

|-----------------------------|--------------------------------------------------------------|
| `componentWillMount` | bevor die Komponente an das DOM eingehanden wird |
| `componentDidMount` | nachdem die Komponente an das DOM eingehanden wird |
| `componentWillMount` | bevor die Komponente in DOM eingebunden wird |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in dem DOM

| `componentWillMount` | bevor die Komponente an das DOM eingehanden wird |
| `componentDidMount` | nachdem die Komponente an das DOM eingehanden wird |
| `componentWillMount` | bevor die Komponente in DOM eingebunden wird |
| `componentDidMount` | nachdem die Komponente in DOM eingebunden wurde |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above

Glücklicherweise gibt es eine Lösung in Form von Preacts [`linkState`](https://github.com/developit/linkstate)-Modul.

> Frühere Versionen von Preact hatten die `linkState()`-Funktion bereits von Grund auf eingebaut, sie wurde mittlerweile aber in ein seperates Modul verschoben. Wenn man zum alten Verhalten zurückwechseln möchte, findet man auf [dieser Seite](https://github.com/developit/linkstate#usage) Informationen zur Anwendung dieses Polyfills.
> Frühere Versionen von Preact hatten die `linkState()`-Funktion bereits von Grund auf implementiert, sie wurde mittlerweile aber in ein seperates Modul verschoben. Wenn man zum alten Verhalten zurückwechseln möchte, findet man auf [dieser Seite](https://github.com/developit/linkstate#usage) Informationen zur Anwendung dieses Polyfills.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

von Grund auf -> von Haus aus

> Frühere Versionen von Preact hatten die `linkState()`-Funktion bereits von Grund auf implementiert, sie wurde mittlerweile aber in ein seperates Modul verschoben. Wenn man zum alten Verhalten zurückwechseln möchte, findet man auf [dieser Seite](https://github.com/developit/linkstate#usage) Informationen zur Anwendung dieses Polyfills.
Das Aufrufen von `linkState(this, 'text')` gibt eine Handler-Funktion aus, die, falls an diese ein Ereignis weitergegeben wird, seinen zugewiesen Wert zum Aktualisieren der bestimmten Property des States der Komponente benutzt. Mehrere Aufrufe an `linkState(component, name)` mit der selben `component` und `name` werde gecached, sodass man nicht mit Leistungseinbuße rechnen muss.
Das Aufrufen von `linkState(this, 'text')` gibt eine Handler-Funktion aus, die, falls an diese ein Ereignis weitergegeben wird, seinen zugewiesen Wert zum Aktualisieren der bestimmten Property des States der Komponente benutzt. Mehrere Aufrufe an `linkState(component, name)` mit der selben `component` und `name` werde gecached, sodass man nicht mit Leistungseinbußen rechnen muss.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ereignis -> Event

@ShalokShalom
Copy link
Contributor

ShalokShalom commented May 2, 2018

Vielen herzlichen Dank Marvin, well done

<h3>Weniger Skripte laden</h3>
</div>
<p class="_summary">Preact's [kleine Größe](/about/project-goals) ist sehr wertvoll, wenn nur ein begränztes Ladezeitenkontingent verfügbar ist. Man kann davon ausgehen, dass das Laden von großen JavaScript-Bibliotheken mit mobilen Endgeräten immense Wartezeiten bis zur Benutzbarkeit der Applikation führen kann. Das Laden, Evaluieren und Berechnen der Skripte ist zu ressourcenhungrig. Das Reduzieren der Größe von Bibliotheken führt automatisch zu verbesserten Ladezeiten, da folglich auch weniger Code geladen und berechnet werden muss.</p>
<p class="_summary">Preact's [kleine Größe](/about/project-goals) ist sehr wertvoll, wenn nur ein begrenztes Ladezeitenkontingent verfügbar ist. Man kann davon ausgehen, dass das Laden von großen JavaScript-Bibliotheken mit mobilen Endgeräten immense Wartezeiten bis zur Benutzbarkeit der Applikation führen kann. Das Laden, Evaluieren und Berechnen der Skripte ist zu ressourcenhungrig. Das Reduzieren der Größe von Bibliotheken führt automatisch zu verbesserten Ladezeiten, da folglich auch weniger Code geladen und berechnet werden muss.</p>
Copy link
Contributor

@Otto-AA Otto-AA Aug 16, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd prefer to write it like [...] zu immensen Wartezeiten [...] führen kann.

"Man kann davon ausgehen, dass das Laden von großen JavaScript-Bibliotheken mit mobilen Endgeräten zu immensen Wartezeiten bis zur Benutzbarkeit der Applikation führen kann." (edited)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

da fehlt ein zu :D

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Danke, habs dazugegeben :)

@ShalokShalom
Copy link
Contributor

Maybe we can merge this one year after?

@developit
Copy link
Member

developit commented Aug 24, 2018

I should think so! Couple of minor conflicts to resolve but we should definitely get this out.

@marvinhagemeister - think we're good to sign off on this?

@hassanbazzi
Copy link
Member

Any updates on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants