diff --git a/.gitignore b/.gitignore
index 6f90fd1907..ed61f68f56 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,6 +17,7 @@
.settings
.tmproj
.nvmrc
+.vscode
sftp-config.json
Thumbs.db
diff --git a/1-js/01-getting-started/1-intro/article.md b/1-js/01-getting-started/1-intro/article.md
index 10bd54fedb..4e79ba1487 100644
--- a/1-js/01-getting-started/1-intro/article.md
+++ b/1-js/01-getting-started/1-intro/article.md
@@ -1,121 +1,120 @@
-# An Introduction to JavaScript
+# Eine Einführung in JavaScript
-Let's see what's so special about JavaScript, what we can achieve with it and which other technologies play well with it.
+Was ist das Besondere an [JavaScript](https://de.wikipedia.org/wiki/JavaScript), was können wir damit machen und welche anderen Technologien können wir mit JavaScript verwenden?
-## What is JavaScript?
+## Was ist JavaScript?
-*JavaScript* was initially created to *"make webpages alive"*.
+*JavaScript* wurde ursprünglich entwickelt um *"Webseiten lebendig werden zu lassen"*.
-The programs in this language are called *scripts*. They can be written right in the HTML and execute automatically as the page loads.
+Die Programme in dieser Sprache heißen *Scripte*. Sie können direkt innerhalb von [HTML](https://de.wikipedia.org/wiki/Hypertext_Markup_Language) geschrieben werden und kommen automatisch zur Ausführung wenn die Seite geladen wird.
-Scripts are provided and executed as a plain text. They don't need a special preparation or a compilation to run.
+Scripte werden als einfache Textdateien (plain text) geschrieben und auch ausgeführt. Sie benötigen keine besondere Vorbereitung und auch keine Kompilierung zur Ausführung.
-In this aspect, JavaScript is very different from another language called [Java](http://en.wikipedia.org/wiki/Java).
+In diesem Aspekt ist JavaScript sehr verschieden von der Programmiersprache [Java](https://de.wikipedia.org/wiki/Java_(Programmiersprache)), mit der es sich vor allem den Namen teilt.
-```smart header="Why JavaScript?"
-When JavaScript was created, it initially had another name: "LiveScript". But Java language was very popular at that time, so it was decided that positioning a new language as a "younger brother" of Java would help.
+```smart header="Warum JavaScript?"
+Als JavaScript entwickelt wurde, hatte es zuerst einen anderen Namen: "LiveScript". Allerdings war die Sprache Java zu dieser Zeit sehr populär und man entschied, dass die Positionierung der neuen Sprache als "jüngerer Bruder" von Java hilfreich sein könnte.
-But as it evolved, JavaScript became a fully independent language, with its own specification called [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript), and now it has no relation to Java at all.
+Mit der Evolution von JavaScript wurde es zu einer völlig unabhängigen Sprache mit einer eigenen Spezifikation, [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript). JavaScript steht heute in keinerlei Beziehung zu Java.
```
-At present, JavaScript can execute not only in the browser, but also on the server, or actually on any device where there exists a special program called [the JavaScript engine](https://en.wikipedia.org/wiki/JavaScript_engine).
+Mittlerweile kann JavaScript nicht nur im Browser, sondern auch auf dem Server ausgeführt werden. Genauer gesagt läuft JavaScript auf jedem Gerät für das ein spezielles Programm geschrieben wurde, die so genannte [JavaScript-Engine](https://en.wikipedia.org/wiki/JavaScript_engine).
-The browser has an embedded engine, sometimes it's also called a "JavaScript virtual machine".
+Browser besitzen eine eingebettete JavaScript-Engine, manchmal auch "Virtuelle JavaScript Maschine" genannt, in Anlehnung an die "Virtuelle Java Maschine".
-Different engines have different "codenames", for example:
+Unterschiedliche Browser verwenden verschiedene Engines mit einer Reihe von Codenamen. Hier ein paar Beispiele:
-- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- in Chrome and Opera.
-- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- in Firefox.
-- ...There are other codenames like "Trident", "Chakra" for different versions of IE, "ChakraCore" for Microsoft Edge, "Nitro" and "SquirrelFish" for Safari etc.
+- [V8](https://de.wikipedia.org/wiki/V8_(JavaScript-Implementierung)) -- in Chrome.
+- [SpiderMonkey](https://de.wikipedia.org/wiki/SpiderMonkey) -- in Firefox.
+- ...Es gibt noch einige weitere, wie "Trident", "Chakra" für verschiedene Versionen des Internet Explorers, "ChakraCore" für Microsoft Edge, "Nitro" und "SquirrelFish" für Safari etc.
-The terms above are good to remember, because they are used in developer articles on the internet. We'll use them too. For instance, if "a feature X is supported by V8", then it probably works in Chrome and Opera.
+Man sollte von diesen Namen gehört haben, da sie immer mal wieder in Entwicklerartikeln im Internet und auch in diesem Tutorial auftauchen. Aussagen wie "das Feature X wird von V8 unterstützt" bedeuten, dass etwas wahrscheinlich in Chrome funktionieren wird.
-```smart header="How engines work?"
+```smart header="Wie arbeiten Engines?"
-Engines are complicated. But the basics are easy.
+Engines sind recht kompliziert, aber die Grundlagen sind einfach.
-1. The engine (embedded if it's a browser) reads ("parses") the script.
-2. Then it converts ("compiles") the script to the machine language.
-3. And then the machine code runs, pretty fast.
+1. Die Engine (eine eingebettete, wenn wir einen Browser verwenden) ließt ("[parst](https://de.wikipedia.org/wiki/Parser)") das Script.
+2. Dann wird das Script in die Maschinensprache übersetzt ("[compiliert](https://de.wikipedia.org/wiki/Compiler)").
+3. Anschließend läuft dieser Maschinencode, meistens recht schnell.
-The engine applies optimizations on every stage of the process. It even watches the compiled script as it runs, analyzes the data that flows through it and applies optimizations to the machine code based on that knowledge. At the end, scripts are quite fast.
+In jedem dieser Schritte, versucht die Engine den Code zu optimieren. Die Engine beobachtet auch den laufenden Code und analysiert den auftretenden Datenfluss. Basierend auf diesen Daten wird der Maschinencode weiter optimiert was zu wirklich hohen Ausführungsgeschwindigkeiten führen kann.
```
-## What can in-browser JavaScript do?
+## Was ist mit JavaScript im Browser möglich?
-The modern JavaScript is a "safe" programming language. It does not provide low-level access to memory or CPU, because it was initially created for browsers which do not require it.
+Modernes JavaScript ist eine "sichere" Programmiersprache. Es sind keine systemnahen Zugriffe auf den Speicher oder die CPU möglich, da diese für den Einsatz im Browser auch nicht nötig sind.
-The capabilities greatly depend on the environment that runs JavaScript. For instance, [Node.JS](https://wikipedia.org/wiki/Node.js) supports functions that allow JavaScript to read/write arbitrary files, perform network requests etc.
+Die resultierenden Möglichkeiten werden sehr stark von der Umgebung beeinflusst in der wir JavaScript ausführen. Beispielsweise unterstützt [Node.JS](https://de.wikipedia.org/wiki/Node.js) Funktionen die es uns erlauben beliebige Dateien zu lesen und schreiben oder Netzwerkabfragen zu senden.
-In-browser JavaScript can do everything related to webpage manipulation, interaction with the user and the webserver.
+JavaScript im Browser bietet uns alle Möglichkeiten im Zusammenhang mit Webseitenmanipulation, Nutzerinteraktion und Interaktion mit dem Webserver.
-For instance, in-browser JavaScript is able to:
+Zum Beispiel kann JavaScript im Browser:
-- Add new HTML to the page, change the existing content, modify styles.
-- React to user actions, run on mouse clicks, pointer movements, key presses.
-- Send requests over the network to remote servers, download and upload files (so-called [AJAX](https://en.wikipedia.org/wiki/Ajax_(programming)) and [COMET](https://en.wikipedia.org/wiki/Comet_(programming)) technologies).
-- Get and set cookies, ask questions to the visitor, show messages.
-- Remember the data on the client-side ("local storage").
+- Neue HTML-Daten zur Seite hinzufügen, existierende Inhalte verändern oder CSS-Styles verändern.
+- Auf Nutzeraktivitäten wie Mauszeiger, Mausklicks oder Tastatureingaben reagieren.
+- Abfragen über das Netzwerk zu Servern senden um Dateien hoch oder runter zu laden (so genannte [AJAX](https://de.wikipedia.org/wiki/Ajax_(Programmierung)) oder [COMET](https://en.wikipedia.org/wiki/Comet_(programming)) Techniken).
+- Das Setzen und Abfragen von Cookies, die Ausgabe von Meldungen und das Einlesen von Nutzerdaten.
+- Speichern von Daten auf dem Gerät des Nutzers ("local storage").
-## What CAN'T in-browser JavaScript do?
+## Was kann JavaScript im Browser NICHT?
-JavaScript's abilities in the browser are limited for the sake of the user's safety. The aim is to prevent an evil webpage from accessing private information or harming the user's data.
+Die Fähigkeiten von JavaScript innerhalb des Browser sind beschnitten um die Sicherheit der Nutzer zu erhöhen. Damit soll verhindert werden das bösartige Webseiten private Informationen des Nutzers abgreifen können oder das System des Nutzers beschädigen.
-The examples of such restrictions are:
+Beispiele derartiger Restriktionen sind:
-- JavaScript on a webpage may not read/write arbitrary files on the hard disk, copy them or execute programs. It has no direct access to OS system functions.
+- JavaScript auf einer Webseite kann nicht auf beliebige Dateien der Festplatte zugreifen oder lokale Programme ausführen. Es hat auch keinen direkten Zugriff auf Betriebssystemfunktionen.
- Modern browsers allow it to work with files, but the access is limited and only provided if the user does certain actions, like "dropping" a file into a browser window or selecting it via an `` tag.
+ Moderne Browser erlauben es uns allerdings mit lokalen Dateien zu arbeiten, allerdings nur wenn der Nutzer gewisse Aktionen ausführt, so wie ziehen einer Datei ins Browserfenster oder auswählen einer Datei über ein ``-Tag.
- There are ways to interact with camera/microphone and other devices, but they require a user's explicit permission. So a JavaScript-enabled page may not sneakily enable a web-camera, observe the surroundings and send the information to the [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
-- Different tabs/windows generally do not know about each other. Sometimes they do, for example when one window uses JavaScript to open the other one. But even in this case, JavaScript from one page may not access the other if they come from different sites (from a different domain, protocol or port).
+ Es gibt auch die Möglichkeit mit Kameras und Mikrofonen sowie anderen Hardwarekomponenten zu arbeiten, aber hier ist eine explizite Erlaubnis vom Nutzer notwendig. Eine JavaScript-Webseite kann also nicht heimlich die Webcam aktivieren und Überwachungsbilder senden.
+- Verschiedene Browserfenster oder -tabs wissen nichts voneinander. Ausnahmen sind wenn ein Fenster JavaScript nutzt um ein weiteres zu öffnen, aber auch dann kann JavaScript von einer Seite nicht auf Daten der anderen Seite zugreifen, wenn sie aus verschiedenen Quellen (Domains, Protokoll, Port, etc.) kommen.
- This is called the "Same Origin Policy". To work around that, *both pages* must contain a special JavaScript code that handles data exchange.
+ Dieses Verhalten wird "Same Origin Policy" genannt. Um es zu umgehen müssen *beide Seiten* speziellen JavaScript-Code enthalten, die den Datenaustausch handhaben.
- The limitation is again for user's safety. A page from `http://anysite.com` which a user has opened must not be able to access another browser tab with the URL `http://gmail.com` and steal information from there.
-- JavaScript can easily communicate over the net to the server where the current page came from. But its ability to receive data from other sites/domains is crippled. Though possible, it requires explicit agreement (expressed in HTTP headers) from the remote side. Once again, that's safety limitations.
+ Diese Einschränkungen dienen wiederrum der Sicherheit der Nutzer. Ein Seite `http://anysite.com` die der Nutzer öffnet darf nicht auf einen geöffneten Tab `http://gmail.com` zugreifen und Daten daraus stehlen.
+- JavaScript kann sehr leicht über das Netzwerk mit dem Server kommunizieren von dem es geladen wurde. Doch die Fähigkeiten mit anderen Domains zu kommunizieren sind beschnitten. Obwohl grundsätzlich möglich, benötigen diese eine explizite Zustimmung (über HTTP-Header) von der entfernten Stelle. Auch diese Einschränkung dient der Nutzersicherheit.

-Such limits do not exist if JavaScript is used outside of the browser, for example on a server. Modern browsers also allow installing plugin/extensions which may get extended permissions.
+Diese Einschränkungen bestehen nicht, wenn JavaScript außerhalb eines Browsers ausgeführt wird, beispielsweise auf einem Server. Moderne Browser erlauben es außerdem Erweiterungen oder Plug-ins zu installieren, die erweiterte Rechte erhalten können.
-## What makes JavaScript unique?
+## Was macht JavaScript so besonders?
-There are at least *three* great things about JavaScript:
+Es gibt mindestens *drei* wirklich großartige Dinge in JavaScript:
```compare
-+ Full integration with HTML/CSS.
-+ Simple things done simply.
-+ Supported by all major browsers and enabled by default.
++ Vollständige Integration in HTML/CSS.
++ Einfache Dinge sind einfach.
++ Unterstützung durch alle gängigen Browser, standardmäßig aktiviert.
```
-Combined, these three things exist only in JavaScript and no other browser technology.
+In dieser Kombination gibt es diese drei Eigenschaften nur bei JavaScript und bei keiner anderen Browsertechnik.
-That's what makes JavaScript unique. That's why it's the most widespread tool to create browser interfaces.
+Das macht JavaScript einzigartig und das ist der Grund weshalb es das meistgenutzte Werkzeug für Nutzerschnittstellen im Browser ist.
-While planning to learn a new technology, it's beneficial to check its perspectives. So let's move on to the modern trends that include new languages and browser abilities.
+Macht man sich daran eine neue Technik zu erlernen, lohnt es sich deren Perspektiven zu betrachten. Daher blicken wir noch kurz auf einige neue Trends unter den Sprachen und Browsern.
+## JavaScript und verwandte Sprachen
-## Languages "over" JavaScript
+Die Syntax von JavaScript erfüllt nicht die Bedürfnisse und Wünsche aller Nutzer. Verschiedene Leute wünschen sich verschiedene Eigenschaften.
-The syntax of JavaScript does not suit everyone's needs. Different people want different features.
+Das ist nichts weiter besonderes, da die Projekte und Anforderungen für jeden verschieden sind.
-That's to be expected, because projects and requirements are different for everyone.
+In letzter Zeit entstand so ein Strauß neuer Sprachen welche in JavaScript-Code übertragen (*transpiled*) werden, bevor sie im Browser ausgeführt werden.
-So recently a plethora of new languages appeared, which are *transpiled* (converted) to JavaScript before they run in the browser.
+Moderne Werkzeuge erlauben eine schnelle und transparente Übertragung nach JavaScript. Diese erlauben es Entwicklern in einer anderen Sprache zu programmieren, welche im Hintergrund automatisch zu JavaScript-Code umgewandelt wird.
-Modern tools make the transpilation very fast and transparent, actually allowing developers to code in another language and autoconverting it "under the hood".
+Einige Beispiele sind:
-Examples of such languages:
+- [CoffeeScript](http://coffeescript.org/) ist "syntaktischer Zucker" (syntactic sugar) für JavaScript. Es führt kürzere Syntax ein, die es erlaubt präziseren und klareren Code zu schreiben. Ruby-Entwickler fühlen sich hier schnell heimisch.
+- [TypeScript](http://www.typescriptlang.org/) bringt starke Typisierung (strict data typing) um die Entwicklung und Wartung komplexerer Systeme zu vereinfachen. TypeScript wird von Microsoft aktiv weiter entwickelt.
+- [Dart](https://www.dartlang.org/) ist eine allein-lauffähige Sprache mit einer eigenen Engine die auch außerhalb des Browsers arbeiten kann (zum Beispiel in mobilen Apps). Ursprünglich von Google als ein JavaScript-Ersatz entwickelt, erfordern Browser eine Übertragung des Codes nach JavaScript wie auch in den anderen Fällen.
-- [CoffeeScript](http://coffeescript.org/) is a "syntactic sugar" for JavaScript, it introduces shorter syntax, allowing to write more precise and clear code. Usually Ruby devs like it.
-- [TypeScript](http://www.typescriptlang.org/) is concentrated on adding "strict data typing", to simplify development and support of complex systems. It is developed by Microsoft.
-- [Dart](https://www.dartlang.org/) is a standalone language that has its own engine that runs in non-browser environments (like mobile apps). It was initially offered by Google as a replacement for JavaScript, but as of now, browsers require it to be transpiled to JavaScript just like the ones above.
+Es gibt noch einige mehr. Auch wenn wir uns entscheiden sollten in einer dieser Sprachen entwickeln zu wollen, ist es eine gute Idee JavaScript zu beherrschen um zu verstehen was in unserem Code passiert.
-There are more. Of course even if we use one of those languages, we should also know JavaScript, to really understand what we're doing.
+## Zusammenfassung
-## Summary
-
-- JavaScript was initially created as a browser-only language, but now it is used in many other environments as well.
-- At this moment, JavaScript has a unique position as the most widely-adopted browser language with full integration with HTML/CSS.
-- There are many languages that get "transpiled" to JavaScript and provide certain features. It is recommended to take a look at them, at least briefly, after mastering JavaScript.
+- Ursprünglich wurde JavaScript entwickelt um lediglich innerhalb eines Browsers zu laufen, mitlerweile wird es aber auch in vielen anderen Bereichen eingesetzt.
+- Derzeit ist JavaScript die am weitesten verbreitete Browserprogrammiersprache mit HTML- und CSS-Fähigkeiten.
+- Es gibt einige Sprachen die zu JavaScript-Code übertragen werden und einige neue Eigenschaften zu JavaScript hinzufügen. Wenn man in die Grundlagen von JavaScript eingedrungen ist, lohnt sich ein Blick auf diese Alternativen.
diff --git a/1-js/01-getting-started/2-code-editors/article.md b/1-js/01-getting-started/2-code-editors/article.md
index 0d714cdb27..a0442ea64e 100644
--- a/1-js/01-getting-started/2-code-editors/article.md
+++ b/1-js/01-getting-started/2-code-editors/article.md
@@ -1,56 +1,54 @@
-# Code editors
+# Code-Editoren
-A code editor is the place where programmers spend most of their time.
+Der Code-Editor ist die Anwendung mit der ein Programmierer die meiste Zeit verbringt.
-There are two archetypes: IDE and lightweight editors. Many people feel comfortable choosing one tool of each type.
+Grundsätzlich gibt es zwei grobe Typen, die teilweise überlappen: integrierte Entwicklungsumgebungen ([IDE](https://de.wikipedia.org/wiki/Integrierte_Entwicklungsumgebung)) und reine [Texteditoren](https://de.wikipedia.org/wiki/Texteditor). Viele Entwickler bevorzugen es mit einem Werkzeug aus jeder dieser beiden Kategorie zu arbeiten.
-## IDE
+## IDEs
-The term [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) (Integrated Development Environment) means a powerful editor with many features that usually operates on a "whole project". As the name suggests, that's not just an editor, but a full-scale "development environment".
+Mit einer IDE meint man für gewöhnlich einen sehr mächtigen Editor mit sehr vielen Funktionen der oft ein ganzes "Projekt" und nicht nur einzelne Dateien verarbeitet. Wie der Name andeutet, handelt es sich um eine ausgewachsene Entwicklungsumgebung und nicht nur um einen Editor.
-An IDE loads the project (can be many files), allows navigation between files, provides autocompletion based on the whole project (not just the open file), integrates with a version management system (like [git](https://git-scm.com/)), a testing environment and other "project-level" stuff.
+Eine IDE lädt ein ganzes Projekt (oft aus vielen Dateien bestehend), erlaubt zwischen den Dateien zu navigieren, erlaubt automatische Namensergänzung über das ganze Projekt hinweg (nicht nur die geöffnete Datei), integriert eine Versionsverwaltung (wie [git](https://git-scm.com/)), eine Testumgebung und noch einiges mehr.
-If you haven't considered selecting an IDE yet, look at the following variants:
+Wenn Sie bisher noch keine IDE verwendet haben, lohnt sich ein Blick auf diese Programme:
-- [WebStorm](http://www.jetbrains.com/webstorm/) for frontend development and other editors of the same company if you need additional languages.
-- Visual Studio is fine if you're a .NET developer, and a free version is available ([Visual Studio Community](https://www.visualstudio.com/vs/community/))
+- [WebStorm](http://www.jetbrains.com/webstorm/) geeignet für Frontend-Entwicklung, andere Sprachen sind ebenfalls verfügbar.
+- Visual Studio ist gut geeignet für .NET-Entwickler, eine kostenlose Version ist erhältlich: ([Visual Studio Community](https://www.visualstudio.com/vs/community/))
- [Netbeans](http://netbeans.org/).
-All of the IDEs except Visual Studio are available on Windows, MacOs and Linux. Visual Studio doesn't work on Linux.
+Alle IDEs, außer Visual Studio, sind für Mac, Linux und Windows erhältlich, Visual Studio wird nicht für Linux angeboten.
-Most IDEs are paid, but have a trial period. Their cost is usually negligible compared to a qualified developer's salary, so just choose the best one for you.
+Viele IDEs sind kostenpflichtig, aber die kosten sind gering im Vergleich zu einem Entwicklergehalt. Coden Sie also nicht nur als Hobby sollten Sie die IDE wählen mit der Sie am besten arbeiten können.
-## Lightweight editors
+## Texteditoren
-"Lightweight editors" are not as powerful as IDEs, but they're fast, elegant and simple.
+Texteditoren sind nicht so mächtig wie IDEs, dafür aber schnell, einfach und elegant.
-They are mainly used to instantly open and edit a file.
+Sie werden vor allem zum schnellen öffnen, betrachten und bearbeiten von einzelnen Dateien verwendet.
-The main difference between a "lightweight editor" and an "IDE" is that an IDE works on a project-level, so it loads much more data on start, analyzes the project structure if needed and so on. A lightweight editor is much faster if we need only one file.
+Der Hauptunterschied zwischen den beiden Gruppen ist, dass IDEs auf dem Projektlevel arbeiten und daher beim Start viel mehr Daten lädt um die Projektstruktur zu analysieren. Ein Texteditor ist daher oft schneller, wenn es darum geht, nur eine einzelne Datei zu öffnen.
-In practice, lightweight editors may have a lot of plugins including directory-level syntax analyzers and autocompleters, so there's no strict border between a lightweight editor and an IDE.
+Oft gibt es für Texteditoren eine Vielzahl von Erweiterungen die IDE-Funktionen nachbilden und das Arbeiten in Projekten unterstützen. Daher kann man keine klare Trennlinie zwischen IDE und Texteditor ziehen.
-The following options deserve your attention:
+Die vollgenden Alternativen sollten Sie sich anschauen, wenn Sie noch keinen Lieblingseditor haben:
-- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
-- [Atom](https://atom.io/) (cross-platform, free).
-- [Sublime Text](http://www.sublimetext.com) (cross-platform, shareware).
-- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
-- [Vim](http://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool, if you know how to use them.
+- [Visual Studio Code](https://code.visualstudio.com/) (freie Software, alle Plattformen).
+- [Atom](https://atom.io/) (freie Software, alle Plattformen).
+- [Sublime Text](http://www.sublimetext.com) (80$, alle Plattformen).
+- [Notepad++](https://notepad-plus-plus.org/) (Freeware, Windows).
+- [Vim](http://www.vim.org/) und [Emacs](https://www.gnu.org/software/emacs/) sind äußerst mächtige Werkzeuge, haben aber sehr gewöhnungsbedürftige Interfaces und daher eine sehr steile Lernkurve. Beherrscht man aber einen davon, kann man sehr effizient mit Textdateien arbeiten.
-## My favorites
+## Meine Favoriten
-The personal preference of the author is to have both an IDE for projects and a lightweight editor for quick and easy file editing.
+Ich persönlich verwende:
-I'm using:
+- [WebStorm](http://www.jetbrains.com/webstorm/) für JS,
+- Als mächtigen Texteditor [Visual Studio Code](https://code.visualstudio.com/) für größere Projekte und [Vim](http://www.vim.org/) um kleine Änderungen remote in der Konsole auf einem Server vornehmen zu können.
-- [WebStorm](http://www.jetbrains.com/webstorm/) for JS, and if there is one more language in the project, then I switch to one of the other Jetbrains offerings listed above.
-- As a lightweight editor -- [Sublime Text](http://www.sublimetext.com) or [Atom](https://atom.io/).
+## Lassen Sie uns nicht streiten
-## Let's not argue
+Die Editoren in der obigen Liste werden von mir oder anderen Autoren des Tutorials für gut befunden und womit diese gern arbeiten.
-The editors in the lists above are those that either I or my friends who I consider good developers have been using for a long time and are happy with.
+Es gibt noch viele andere großartige Editoren, wählen Sie den, der am besten zu Ihnen passt.
-There are other great editors in our big world. Please choose the one you like the most.
-
-The choice of an editor, like any other tool, is individual and depends on your projects, habits, personal preferences.
+Die Wahl eines Editors, wie bei jedem anderen Werkzeug, ist sehr individuell und richtet sich nach den Anforderungen des Projektes, Gewohnheiten und persönlichen Vorlieben.
diff --git a/1-js/01-getting-started/3-devtools/article.md b/1-js/01-getting-started/3-devtools/article.md
index f250502df0..a544cfaabe 100644
--- a/1-js/01-getting-started/3-devtools/article.md
+++ b/1-js/01-getting-started/3-devtools/article.md
@@ -1,58 +1,53 @@
-# Developer console
+# Entwicklerkonsole
-Code is prone to errors. You are quite likely to make errors... Oh, what am I talking about? You are *absolutely* going to make errors, at least if you're a human, not a [robot](https://en.wikipedia.org/wiki/Bender_(Futurama)).
+Code ist immer anfällig für Fehler. Auch Sie werden wahrscheinlich Fehler machen... Nein was sage ich, Sie werden *ganz bestimmt* Fehler machen, zumindest wenn Sie ein Mensch sind und kein [Roboter](https://en.wikipedia.org/wiki/Bender_(Futurama)).
-But in the browser, a user doesn't see the errors by default. So, if something goes wrong in the script, we won't see what's broken and can't fix it.
+Im Browser allerdings sehen wir standardmäßig keine Fehlermeldungen. Wenn also etwas in unserem Script schief läuft bekommen wir nicht mit was los ist und können daher auch das Problem nicht beheben.
-To see errors and get a lot of other useful information about scripts, browsers have embedded "developer tools".
+Um solche Fehler besser erkennen zu können und noch viele weitere nützliche Informationen über Scripte und deren Verhalten zu bekommen, besitzen Browser eingebaute Entwicklerwerkzeuge.
-Most often developers lean towards Chrome or Firefox for development, because those browsers have the best developer tools. Other browsers also provide developer tools, sometimes with special features, but are usually playing "catch-up" to Chrome or Firefox. So most people have a "favorite" browser and switch to others if a problem is browser-specific.
+Die meisten Entwickler verwenden Chrome oder Firefox für Ihre Entwicklungen, da diese Browser über die umfangreichsten Entwicklerwerkzeuge verfügen. Andere Browser bieten auch Entwicklerwerkzeuge, zum Teil mit sehr nützlichen, zusätzlichen Funktionen. Generell laufen diese aber Chrome und Firefox etwas hinterher. Viele Entwickler haben einen "Lieblingsbrowser" und wechseln zu einem anderen, falls spezielle Probleme auftreten.
-Developer tools are really powerful, there are many features. To start, we'll learn how to open them, look at errors and run JavaScript commands.
+Die Entwicklerwerkzeuge sind wirklich mächtig und es gibt zahlreiche Funktionen. Zu Beginn schauen wir uns an, wie man sie im Browser öffnet, sich Fehler anschaut und wie man JavaScript-Befehle ausführt.
-## Google Chrome
+## Chrome
-Open the page [bug.html](bug.html).
+Öffnen Sie die Seite [bug.html](bug.html).
-There's an error in the JavaScript code on it. It's hidden from a regular visitor's eyes, so let's open developer tools to see it.
+Im JavaScript-Code ist ein Fehler, der dem Auge des normalen Seitenbesuchers verborgen bleibt. Lassen Sie uns darauf einen Blick mithilfe der Entwicklerwerkzeuge werfen.
-Press `key:F12` or, if you're on Mac, then `key:Cmd+Opt+J`.
+Drücken Sie `key:F12` oder, `key:Cmd+Opt+J` an einem Mac.
-The developer tools will open on the Console tab by default.
-
-It looks somewhat like this:
+Standardmäßig öffnet sich der Konsolen-Tab, und es sieht ungefähr so aus:

-The exact look of developer tools depends on your version of Chrome. It changes from time to time, but should be similar.
-
-- Here we can see the red-colored error message. In this case the script contains an unknown "lalala" command.
-- On the right, there is a clickable link to the source `bug.html:12` with the line number where the error has occurred.
+Das genaue Aussehen hängt von der verwendeten Chrome-Version ab und ändert sich hin und wieder, sollte aber ähnlich aussehen.
-Below the error message there is a blue `>` symbol. It marks a "command line" where we can type JavaScript commands and press `key:Enter` to run them (`key:Shift+Enter` to input multi-line commands).
+- Wir sehen in rot eine Fehlermeldung, die besagt, dass unser Script einen unbekannten Befehl mit dem Namen "lalala" enthält.
+- Auf der rechten Seite befindet sich ein anklickbarer Link `bug.html:12` der auf die Codezeile mit dem Fehler verweist.
-Now we can see errors and that's enough for the start. We'll be back to developer tools later and cover debugging more in-depth in the chapter .
+Unterhalb der Fehlermeldung befindet sich ein blaues `>`-Symbol. Es markiert eine Eingabekonsole in die wir JavaScript-Befehle eingeben können. Ein druck auf `key:Enter` lässt den Code ablaufen (`key:Shift+Enter` erlaubt es mehrzeilige Anweisungen einzugeben).
+So können wir Fehler einsehen und das ist an dieser Stelle erstmal genug. Wir gehen im Kapitel noch einmal näher auf die Entwicklerwerkzeuge ein.
-## Firefox, Edge and others
+## Firefox, Edge und andere
-Most other browsers use `key:F12` to open developer tools.
+In den meisten Browsern kann man mit `key:F12` die Entwicklerwerkzeuge öffnen.
-The look & feel of them is quite similar. Once you know how to use one of them (you can start with Chrome), you can easily switch to another.
+Aussehen und Funktion ist sehr ähnlich. Hat man einen ausgiebiger kennengelernt, kann man leicht zu einem anderen Browser wechseln.
## Safari
-Safari (Mac browser, not supported by Windows/Linux) is a little bit special here. We need to enable the "Develop menu" first.
-
-Open Preferences and go to "Advanced" pane. There's a checkbox at the bottom:
+Safari (der Mac-Browser, keine Windows/Linux-Versionen) ist etwas spezieller. Hier muss zuerst das sog. "Entwicklermenü" eingeschaltet werden.
-
+Öffnen Sie "Einstellungen" und gehen auf "Erweitert". Dort gibt es eine Option zum Anzeigen des Entwickler-Menüs. Ist diese aktiviert erscheint ein weiterer Menüeintrag mit zahlreichen Befehlen und Optionen.
-Now `key:Cmd+Opt+C` can toggle the console. Also note that the new top menu item named "Develop" has appeared. It has many commands and options.
+Nun erlaubt die Tastenkombination `key:Cmd+Opt+C` die Entwicklerkonsole zu öffnen.
-## Summary
+## Zusammenfassung
-- Developer tools allow us to see errors, run commands, examine variables and much more.
-- They can be opened with `key:F12` for most browsers under Windows. Chrome for Mac needs `key:Cmd+Opt+J`, Safari: `key:Cmd+Opt+C` (need to enable first).
+- Entwicklerwerkzeuge erlauben uns Fehler zu erkennen, Befehle auszuführen, den Inhalt von Variablen zu inspizieren und einiges mehr.
+- Sie werden durch `key:F12` unter Windows und Linux geöffnet. Chrome für Mac verwendet `key:Cmd+Opt+J` und Safari: `key:Cmd+Opt+C`.
-Now we have the environment ready. In the next section we'll get down to JavaScript.
+Nun haben wir unseren Werkzeugkasten gefüllt. Im nächsten Kapitel beginnen wir mit der JavaScript-Entwicklung.
diff --git a/1-js/01-getting-started/3-devtools/safari.png b/1-js/01-getting-started/3-devtools/safari.png
deleted file mode 100644
index 37598a2610..0000000000
Binary files a/1-js/01-getting-started/3-devtools/safari.png and /dev/null differ
diff --git a/1-js/01-getting-started/3-devtools/safari@2x.png b/1-js/01-getting-started/3-devtools/safari@2x.png
deleted file mode 100644
index c59cebef21..0000000000
Binary files a/1-js/01-getting-started/3-devtools/safari@2x.png and /dev/null differ
diff --git a/1-js/02-first-steps/01-hello-world/1-hello-alert/task.md b/1-js/02-first-steps/01-hello-world/1-hello-alert/task.md
index afed6a91d3..1d4a20561d 100644
--- a/1-js/02-first-steps/01-hello-world/1-hello-alert/task.md
+++ b/1-js/02-first-steps/01-hello-world/1-hello-alert/task.md
@@ -2,11 +2,11 @@ importance: 5
---
-# Show an alert
+# Zeigen Sie eine Mitteilung an
-Create a page that shows a message "I'm JavaScript!".
+Erstellen Sie eine Webseite, die die Mitteilung "Hallo, JavaScript!" ausgibt.
-Do it in a sandbox, or on your hard drive, doesn't matter, just ensure that it works.
+Versuchen Sie es in einer Sandbox oder lokal auf Ihrem Rechner, ganz egal, hauptsache es funktioniert.
[demo src="http://github.com/solution"]
diff --git a/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/task.md b/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/task.md
index 26168d6a76..27f992f898 100644
--- a/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/task.md
+++ b/1-js/02-first-steps/01-hello-world/2-hello-alert-ext/task.md
@@ -2,8 +2,8 @@ importance: 5
---
-# Show an alert with an external script
+# Zeigen Sie eine Meldung mit einem externen Script an
-Take the solution of the previous task . Modify it by extracting the script content into an external file `alert.js`, residing in the same folder.
+Verwenden Sie die Lösung aus der vorherigen Aufgabe . Modifizieren Sie es durch Verschieben des Script-Inhaltes in die externe Datei `alert.js`, die sich im selben Ordner befindet.
-Open the page, ensure that the alert works.
+Öffnen Sie die Seite und prüfen ob die Mitteilung funktioniert.
diff --git a/1-js/02-first-steps/01-hello-world/article.md b/1-js/02-first-steps/01-hello-world/article.md
index 69d2ba976a..323acc94ce 100644
--- a/1-js/02-first-steps/01-hello-world/article.md
+++ b/1-js/02-first-steps/01-hello-world/article.md
@@ -1,17 +1,17 @@
# Hello, world!
-The tutorial that you're reading is about core JavaScript, which is platform-independent. Further on, you will learn Node.JS and other platforms that use it.
+Dieses Tutorial behandelt Java-Script, im Kern eine plattformunabhängige Technik. Später wenden wir uns Node.js und anderen Plattformen zu die JavaScript verwenden.
-But, we need a working environment to run our scripts, and, just because this book is online, the browser is a good choice. We'll keep the amount of browser-specific commands (like `alert`) to a minimum, so that you don't spend time on them if you plan to concentrate on another environment like Node.JS. On the other hand, browser details are explained in detail in the [next part](/ui) of the tutorial.
+Doch zunächst benötigen wir eine Umgebung in der wir unsere Scripte ausführen können. Da dies ein Online-Buch ist, liegt es nahe, den Browser zu verwenden. Wir vermeiden so weit als möglich browserspezifische Anweisungen (wie `alert`) so dass Sie keine Zeit darauf verlieren, wenn ihr späteres Augenmerk eigentlich Node.js sein soll. Interessieren Sie sich aber für die Browserdetails, so behandeln wir diese ausführlich im [nächsten Teil](/ui) des Tutorials.
-So first, let's see how to attach a script to a webpage. For server-side environments, you can just execute it with a command like `"node my.js"` for Node.JS.
+Fangen wir aber damit an, wie man ein Script in eine Webseite einbettet. Befinden Sie sich in einer serverseitigen Umgebung können Sie ein Script mit einem Kommando wie `"node my.js"` mit Node.js ausführen.
-## The "script" tag
+## Das "script"-Tag
-JavaScript programs can be inserted in any part of an HTML document with the help of the `
*/!*
-