From 3e5bb149b11ab4bbe393e6882cf41d1fe8a40679 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lukas=20Mau=C3=9F?= <lukas.mauss@mni.thm.de>
Date: Mon, 15 Oct 2018 22:05:55 +0200
Subject: [PATCH] Internationalization and several fixes

---
 .../room-create/room-create.component.html    | 10 ++--
 .../content-choice-creator.component.html     | 16 +++---
 .../content-likert-creator.component.html     |  6 +-
 .../content-text-creator.component.html       |  8 +--
 .../content-text-creator.component.ts         |  4 +-
 .../content-text-participant.component.html   |  8 +--
 .../content-yes-no-creator.component.html     |  8 +--
 .../content-yes-no-creator.component.ts       |  4 +-
 .../fragments/header/header.component.html    |  2 +-
 .../fragments/header/header.component.ts      |  2 +-
 .../fragments/login/login.component.ts        |  6 +-
 .../room-join/room-join.component.html        |  8 +--
 .../comment-create-page.component.html        |  9 ++-
 .../comment-create-page.component.scss        |  4 ++
 .../content-carousel-page.component.html      |  1 -
 .../content-create-page.component.html        |  2 +-
 .../home-creator-page.component.html          |  2 +-
 .../room-creator-page.component.html          | 26 ++++-----
 .../room-creator-page.component.scss          |  1 +
 .../room-participant-page.component.html      | 12 ++--
 .../room-participant-page.component.ts        |  9 ++-
 src/assets/i18n/de.json                       | 55 ++++++++++++++++++-
 src/assets/i18n/en.json                       | 53 +++++++++++++++++-
 23 files changed, 183 insertions(+), 73 deletions(-)

diff --git a/src/app/components/dialogs/room-create/room-create.component.html b/src/app/components/dialogs/room-create/room-create.component.html
index 6cc22ab8e..18cbf3c04 100644
--- a/src/app/components/dialogs/room-create/room-create.component.html
+++ b/src/app/components/dialogs/room-create/room-create.component.html
@@ -2,8 +2,8 @@
   <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="10px">
     <mat-form-field>
       <input (keypress)="resetEmptyInputs()" matInput #longRoomName class="input-block" type="text"
-             placeholder="Room name" maxlength="50" [(ngModel)]="longName" name="roomName"/>
-      <mat-hint align="start" *ngIf="!emptyInputs"><strong>Max. letters / signs:</strong></mat-hint>
+             placeholder="{{ 'session.session-name' | translate}}" maxlength="50" [(ngModel)]="longName" name="roomName"/>
+      <mat-hint align="start" *ngIf="!emptyInputs"><strong>{{ 'session.max-ls' | translate}}</strong></mat-hint>
       <mat-hint align="end" *ngIf="!emptyInputs">{{longRoomName.value.length}} / 50</mat-hint>
       <mat-hint align="start" *ngIf="emptyInputs"><strong>Input is required</strong></mat-hint>
       <button mat-button *ngIf="longName" matSuffix mat-icon-button aria-label="Clear" (click)="longName=''">
@@ -12,15 +12,15 @@
     </mat-form-field>
     <mat-form-field>
       <textarea (keypress)="resetEmptyInputs()" matInput #description type="text"
-             placeholder="Description" maxlength="255" name="description"></textarea>
-      <mat-hint align="start" *ngIf="!emptyInputs"><strong>Max. letters / signs:</strong></mat-hint>
+             placeholder="{{ 'session.description' | translate}}" maxlength="255" name="description"></textarea>
+      <mat-hint align="start" *ngIf="!emptyInputs"><strong>{{ 'session.max-ls' | translate}}</strong></mat-hint>
       <mat-hint align="end" *ngIf="!emptyInputs">{{description.value.length}} / 255</mat-hint>
       <mat-hint align="start" *ngIf="emptyInputs"><strong>Input is required</strong></mat-hint>
       <button mat-button *ngIf="shortName" matSuffix mat-icon-button aria-label="Clear" (click)="shortName=''">
         <mat-icon>close</mat-icon>
       </button>
     </mat-form-field>
-    <button mat-raised-button color="primary" type="submit">Create room
+    <button mat-raised-button color="primary" type="submit">{{ 'session.create-session' | translate}}
     </button>
   </div>
 </form>
diff --git a/src/app/components/fragments/content-choice-creator/content-choice-creator.component.html b/src/app/components/fragments/content-choice-creator/content-choice-creator.component.html
index 068ed6156..49160fd9e 100644
--- a/src/app/components/fragments/content-choice-creator/content-choice-creator.component.html
+++ b/src/app/components/fragments/content-choice-creator/content-choice-creator.component.html
@@ -1,10 +1,10 @@
 <form (ngSubmit)="submitContent(subject.value, body.value)" fxLayout="column" fxLayoutGap="20px">
   <mat-form-field class="input-block">
-    <input matInput #subject [(ngModel)]="content.subject" placeholder="Subject" name="subject">
+    <input matInput #subject [(ngModel)]="content.subject" placeholder="{{ 'content.subject' | translate }}" name="subject">
   </mat-form-field>
   <app-markdown-toolbar textareaId="content-choice-body"></app-markdown-toolbar>
   <mat-form-field class="input-block">
-    <textarea matInput #body id="content-choice-body" [(ngModel)]="content.body" placeholder="Body" name="body"
+    <textarea matInput #body id="content-choice-body" [(ngModel)]="content.body" placeholder="{{ 'content.body' | translate }}" name="body"
               matTextareaAutosize matAutosizeMinRows="3" matAutosizeMaxRows="8"></textarea>
   </mat-form-field>
   <markdown [data]="content.body"></markdown>
@@ -22,7 +22,7 @@
   <mat-table #table [dataSource]="displayAnswers">
 
     <ng-container matColumnDef="label">
-      <mat-header-cell *matHeaderCellDef>Answer</mat-header-cell>
+      <mat-header-cell *matHeaderCellDef>{{ 'content.answer' | translate }}</mat-header-cell>
       <mat-cell *matCellDef="let answer">
         <!-- ToDo: Check ngModel -->
         <mat-checkbox color="primary" (click)="switchValue(answer.answerOption.label)" [(ngModel)]="answer.correct"
@@ -33,7 +33,7 @@
     </ng-container>
 
     <ng-container matColumnDef="actions">
-      <mat-header-cell *matHeaderCellDef>Actions</mat-header-cell>
+      <mat-header-cell *matHeaderCellDef>{{ 'content.actions' | translate }}</mat-header-cell>
       <mat-cell *matCellDef="let answer">
         <button mat-icon-button
                 (click)="openAnswerModificationDialog($event, answer.answerOption.label, answer.correct)"
@@ -53,16 +53,16 @@
 
   <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="50px">
     <mat-form-field class="input-block">
-      <input matInput #answerLabel [(ngModel)]="newAnswerOptionLabel" placeholder="Answer" name="answer">
+      <input matInput #answerLabel [(ngModel)]="newAnswerOptionLabel" placeholder="{{ 'content.answer' | translate }}" name="answer">
     </mat-form-field>
     <button mat-button type="button" (click)="addAnswer($event); answerLabel.value = '';">
-      Add Answer
+      {{ 'content.add-answer' | translate }}
     </button>
   </div>
 
   <div *ngIf="!editDialogMode" fxLayout="row" fxLayoutAlign="center" fxLayoutGap="50px">
-    <button mat-raised-button type="submit" color="primary">Submit</button>
-    <button mat-raised-button (click)="reset($event)" color="primary">Reset</button>
+    <button mat-raised-button type="submit" color="primary">{{ 'content.create' | translate }}</button>
+    <button mat-raised-button (click)="reset($event)" color="primary">{{ 'content.reset' | translate }}</button>
     <button mat-raised-button *ngIf="lastDeletedDisplayAnswer" (click)="recoverDeletedAnswer($event)" color="primary">
       Undo
       deletion
diff --git a/src/app/components/fragments/content-likert-creator/content-likert-creator.component.html b/src/app/components/fragments/content-likert-creator/content-likert-creator.component.html
index 29748e8b1..3ce98bc34 100644
--- a/src/app/components/fragments/content-likert-creator/content-likert-creator.component.html
+++ b/src/app/components/fragments/content-likert-creator/content-likert-creator.component.html
@@ -1,9 +1,9 @@
 <form (ngSubmit)="submitContent()">
   <mat-form-field class="input-block">
-    <input matInput #subject [(ngModel)]="content.subject" placeholder="Subject" name="subject">
+    <input matInput #subject [(ngModel)]="content.subject" placeholder="{{ 'content.subject' | translate }}" name="subject">
   </mat-form-field>
   <mat-form-field class="input-block">
-    <textarea matInput #body [(ngModel)]="content.body" placeholder="Body" name="body"></textarea>
+    <textarea matInput #body [(ngModel)]="content.body" placeholder="{{ 'content.body' | translate }}" name="body"></textarea>
   </mat-form-field>
   <mat-divider></mat-divider>
 
@@ -21,7 +21,7 @@
     <mat-row *matRowDef="let row; columns: displayedColumns;"></mat-row>
   </mat-table>
   <div *ngIf="!editDialogMode">
-    <button mat-raised-button type="submit" color="primary">Submit</button>
+    <button mat-raised-button type="submit" color="primary">{{ 'content.create' | translate }}</button>
   </div>
   <div *ngIf="editDialogMode">
     <button mat-raised-button (click)="editDialogClose($event,'edit')" color="primary">Update</button>
diff --git a/src/app/components/fragments/content-text-creator/content-text-creator.component.html b/src/app/components/fragments/content-text-creator/content-text-creator.component.html
index c34b1f785..c8deb0471 100644
--- a/src/app/components/fragments/content-text-creator/content-text-creator.component.html
+++ b/src/app/components/fragments/content-text-creator/content-text-creator.component.html
@@ -1,16 +1,16 @@
 <form (ngSubmit)="submitContent(subject.value, body.value, group.value)">
   <mat-form-field class="input-block">
-    <input matInput #subject [(ngModel)]="content.subject" placeholder="Subject" name="subject">
+    <input matInput #subject [(ngModel)]="content.subject" placeholder="{{'content.subject' | translate}}" name="subject">
   </mat-form-field>
   <app-markdown-toolbar textareaId="content-text-body"></app-markdown-toolbar>
   <mat-form-field class="input-block">
-    <textarea matInput #body id="content-text-body" [(ngModel)]="content.body" placeholder="Body" name="body"
+    <textarea matInput #body id="content-text-body" [(ngModel)]="content.body" placeholder="{{'content.body' | translate}}" name="body"
               matTextareaAutosize matAutosizeMinRows="3" matAutosizeMaxRows="8"></textarea>
   </mat-form-field>
   <markdown [data]="content.body"></markdown>
   <mat-form-field>
     <input matInput #group matInput [formControl]="myControl" [matAutocomplete]="auto"
-           value={{lastCollection}} placeholder="Collection"/>
+           value={{lastCollection}} placeholder="{{'content.collection' | translate}}"/>
     <mat-autocomplete #auto="matAutocomplete">
       <mat-option *ngFor="let collection of filteredOptions | async" [value]="collection">
         {{collection}}
@@ -18,7 +18,7 @@
     </mat-autocomplete>
   </mat-form-field>
   <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="5px" *ngIf="!editDialogMode">
-    <button mat-raised-button type="submit" color="primary">Submit</button>
+    <button mat-raised-button type="submit" color="primary">{{'content.create' | translate}}</button>
   </div>
   <div *ngIf="editDialogMode">
     <button mat-raised-button (click)="editDialogClose($event,'edit')" color="primary">Update</button>
diff --git a/src/app/components/fragments/content-text-creator/content-text-creator.component.ts b/src/app/components/fragments/content-text-creator/content-text-creator.component.ts
index 957194e5f..b50006cfc 100644
--- a/src/app/components/fragments/content-text-creator/content-text-creator.component.ts
+++ b/src/app/components/fragments/content-text-creator/content-text-creator.component.ts
@@ -67,7 +67,7 @@ export class ContentTextCreatorComponent implements OnInit {
   resetAfterSubmit() {
     this.content.subject = '';
     this.content.body = '';
-    this.notificationService.show('Content submitted. Ready for creation of new content.');
+    this.notificationService.show('Frage erstellt.');
   }
 
   submitContent(subject: string, body: string, group: string) {
@@ -81,7 +81,7 @@ export class ContentTextCreatorComponent implements OnInit {
       [group],
     )).subscribe();
     if (this.content.body.valueOf() === '' || this.content.body.valueOf() === '') {
-      this.notificationService.show('No empty fields allowed. Please check subject and body.');
+      this.notificationService.show('Keine leeren Felder erlaubt. Bitte kontrollieren sie Thema und Inhalt.');
       return;
     }
     sessionStorage.setItem('collection', group);
diff --git a/src/app/components/fragments/content-text-participant/content-text-participant.component.html b/src/app/components/fragments/content-text-participant/content-text-participant.component.html
index 054b96dcb..fd8e3c09e 100644
--- a/src/app/components/fragments/content-text-participant/content-text-participant.component.html
+++ b/src/app/components/fragments/content-text-participant/content-text-participant.component.html
@@ -3,13 +3,13 @@
   <markdown [data]="content.body"></markdown>
   <mat-divider></mat-divider>
   <mat-form-field class="input-block">
-    <textarea matInput [(ngModel)]="textAnswer" name="answer" #answer placeholder="Your answer"></textarea>
+    <textarea matInput [(ngModel)]="textAnswer" name="answer" #answer placeholder="{{ 'answer.your-answer' | translate }}"></textarea>
   </mat-form-field>
   <div fxLayout fxLayoutGap="5px" fxAlign="row">
-    <button mat-raised-button type="submit" color="primary">Submit</button>
-    <button mat-raised-button (click)="abstain($event)" color="primary">Abstain</button>
+    <button mat-raised-button type="submit" color="primary">{{ 'answer.submit' | translate }}</button>
+    <button mat-raised-button (click)="abstain($event)" color="primary">{{ 'answer.abstain' | translate }}</button>
     <mat-chip-list *ngIf="isAnswerSent">
-      <mat-chip color="primary" selected="true">Answer sent</mat-chip>
+      <mat-chip color="primary" selected="true">{{ 'answer.sent' | translate }}</mat-chip>
     </mat-chip-list>
   </div>
 </form>
diff --git a/src/app/components/fragments/content-yes-no-creator/content-yes-no-creator.component.html b/src/app/components/fragments/content-yes-no-creator/content-yes-no-creator.component.html
index 789031a51..5d81a65c6 100644
--- a/src/app/components/fragments/content-yes-no-creator/content-yes-no-creator.component.html
+++ b/src/app/components/fragments/content-yes-no-creator/content-yes-no-creator.component.html
@@ -1,16 +1,16 @@
 <form (ngSubmit)="submitContent()">
   <mat-form-field class="input-block">
-    <input matInput #subject [(ngModel)]="content.subject" placeholder="Subject" name="subject">
+    <input matInput #subject [(ngModel)]="content.subject" placeholder="{{ 'content.subject' | translate }}" name="subject">
   </mat-form-field>
   <mat-form-field class="input-block">
-    <textarea matInput #body [(ngModel)]="content.body" placeholder="Body" name="body"></textarea>
+    <textarea matInput #body [(ngModel)]="content.body" placeholder="{{ 'content.body' | translate }}" name="body"></textarea>
   </mat-form-field>
   <mat-divider></mat-divider>
 
   <mat-table #table [dataSource]="displayAnswers">
 
     <ng-container matColumnDef="label">
-      <mat-header-cell *matHeaderCellDef>Answer</mat-header-cell>
+      <mat-header-cell *matHeaderCellDef>{{ 'content.answer' | translate }}</mat-header-cell>
       <mat-cell *matCellDef="let answer">
         <!-- ToDo: Check ngModel -->
         <mat-checkbox (click)="setCorrect($event ,answer.answerOption.label)" color="primary" [(ngModel)]="answer.correct" [checked]="answer.correct"
@@ -24,7 +24,7 @@
   </mat-table>
   <mat-divider></mat-divider>
   <div *ngIf="!editDialogMode">
-    <button mat-raised-button type="submit" color="primary">Submit</button>
+    <button mat-raised-button type="submit" color="primary">{{ 'content.create' | translate }}</button>
   </div>
   <div *ngIf="editDialogMode">
     <button mat-raised-button (click)="editDialogClose($event,'edit')" color="primary">Update</button>
diff --git a/src/app/components/fragments/content-yes-no-creator/content-yes-no-creator.component.ts b/src/app/components/fragments/content-yes-no-creator/content-yes-no-creator.component.ts
index afd0d9cde..00c4e9dba 100644
--- a/src/app/components/fragments/content-yes-no-creator/content-yes-no-creator.component.ts
+++ b/src/app/components/fragments/content-yes-no-creator/content-yes-no-creator.component.ts
@@ -17,8 +17,8 @@ import { ContentDeleteComponent } from '../../dialogs/content-delete/content-del
 })
 export class ContentYesNoCreatorComponent implements OnInit {
   answerLabels = [
-    'yes',
-    'no'
+    'Ja',
+    'Nein'
   ];
   content: ContentChoice = new ContentChoice(
     '0',
diff --git a/src/app/components/fragments/header/header.component.html b/src/app/components/fragments/header/header.component.html
index 07bd248fa..2463b3a1d 100644
--- a/src/app/components/fragments/header/header.component.html
+++ b/src/app/components/fragments/header/header.component.html
@@ -23,7 +23,7 @@
     </mat-menu>
     <button *ngIf="user" mat-button [matMenuTriggerFor]="appMenu">
       <mat-icon>account_box</mat-icon>
-      <span *ngIf="user.isGuest; else elseBlock">Guest</span>
+      <span *ngIf="user.isGuest; else elseBlock">{{ 'header.guest' | translate }}</span>
       <ng-template #elseBlock>{{user.loginId}}</ng-template>
     </button>
   </mat-toolbar-row>
diff --git a/src/app/components/fragments/header/header.component.ts b/src/app/components/fragments/header/header.component.ts
index 21c751daf..235cb980e 100644
--- a/src/app/components/fragments/header/header.component.ts
+++ b/src/app/components/fragments/header/header.component.ts
@@ -21,7 +21,7 @@ export class HeaderComponent implements OnInit {
               public router: Router,
               private translationService: TranslateService) {
 
-    translationService.setDefaultLang('en');
+    translationService.setDefaultLang('de');
   }
 
   ngOnInit() {
diff --git a/src/app/components/fragments/login/login.component.ts b/src/app/components/fragments/login/login.component.ts
index 753630622..3cdca3e10 100644
--- a/src/app/components/fragments/login/login.component.ts
+++ b/src/app/components/fragments/login/login.component.ts
@@ -2,7 +2,7 @@ import { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/cor
 import { AuthenticationService } from '../../../services/http/authentication.service';
 import { Router } from '@angular/router';
 import { NotificationService } from '../../../services/util/notification.service';
-import { ErrorStateMatcher, MatDialog} from '@angular/material';
+import { ErrorStateMatcher, MatDialog } from '@angular/material';
 import { FormControl, FormGroupDirective, NgForm, Validators } from '@angular/forms';
 import { UserRole } from '../../../models/user-roles.enum';
 import { TranslateService } from '@ngx-translate/core';
@@ -93,7 +93,9 @@ export class LoginComponent implements OnInit, OnChanges {
 
   private checkLogin(loginSuccessful: string) {
     if (loginSuccessful === 'true') {
-      this.notificationService.show('Login successful!');
+      this.translationService.get('login.login-successful').subscribe(message => {
+        this.notificationService.show(message);
+      });
       if (this.role === UserRole.CREATOR) {
         this.router.navigate(['creator']);
       } else {
diff --git a/src/app/components/fragments/room-join/room-join.component.html b/src/app/components/fragments/room-join/room-join.component.html
index 34f130104..fc310bd0e 100644
--- a/src/app/components/fragments/room-join/room-join.component.html
+++ b/src/app/components/fragments/room-join/room-join.component.html
@@ -1,15 +1,15 @@
 <form (ngSubmit)="joinRoom(roomId.value)">
     <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px">
       <mat-form-field class="input-block">
-        <input matInput #roomId placeholder="Room-Id" [formControl]="roomFormControl"
+        <input matInput #roomId placeholder="{{ 'home-page.session-id' | translate}}" [formControl]="roomFormControl"
                [errorStateMatcher]="matcher" maxlength="8"/>
         <mat-hint align="end">{{roomId.value.length}} / 8</mat-hint>
-        <mat-error *ngIf="roomFormControl.hasError('required')">Please enter a room-id.</mat-error>
-        <mat-error *ngIf="roomFormControl.hasError('minlength')">A room-id has exactly 8 digits.</mat-error>
+        <mat-error *ngIf="roomFormControl.hasError('required')">{{ 'home-page.please-enter' | translate}}</mat-error>
+        <mat-error *ngIf="roomFormControl.hasError('minlength')">{{ 'home-page.exactly-8' | translate}}</mat-error>
       </mat-form-field>
       <button mat-fab color="primary" type="submit">
         <mat-icon>input</mat-icon>
       </button>
     </div>
 </form>
-<button mat-button color="primary" (click)="joinDemo()">Join demo room <mat-icon>lightbulb_outline</mat-icon></button>
+<button mat-button color="primary" (click)="joinDemo()">{{ 'home-page.join-demo-session' | translate}}<mat-icon>lightbulb_outline</mat-icon></button>
diff --git a/src/app/components/pages/comment-create-page/comment-create-page.component.html b/src/app/components/pages/comment-create-page/comment-create-page.component.html
index b27e4dff4..8533f2989 100644
--- a/src/app/components/pages/comment-create-page/comment-create-page.component.html
+++ b/src/app/components/pages/comment-create-page/comment-create-page.component.html
@@ -2,15 +2,14 @@
   <div fxLayout="row" fxLayoutAlign="center">
     <form>
       <mat-form-field class="input-block">
-        <input matInput #commentSubject type="text" maxlength="24" placeholder="Choose a title">
+        <input matInput #commentSubject type="text" maxlength="24" placeholder="{{ 'comment-page.enter-title' | translate}}">
       </mat-form-field>
       <mat-form-field class="input-block">
         <input matInput #commentBody>
-        <textarea matInput placeholder="Add your comment"></textarea>
+        <textarea matInput></textarea>
       </mat-form-field>
-
-      <button mat-raised-button color="primary" (click)="goBack()">Back</button>
-      <button mat-raised-button color="primary" (click)="send(commentSubject.value, commentBody.value)">Send</button>
+      <button mat-raised-button color="primary" (click)="goBack()">{{ 'comment-page.back' | translate}}</button>
+      <button mat-raised-button color="primary" (click)="send(commentSubject.value, commentBody.value)">{{ 'comment-page.send' | translate}}</button>
     </form>
   </div>
   <div fxLayout="row" fxLayoutAlign="center">
diff --git a/src/app/components/pages/comment-create-page/comment-create-page.component.scss b/src/app/components/pages/comment-create-page/comment-create-page.component.scss
index 4f2d9ebe5..84b591c72 100644
--- a/src/app/components/pages/comment-create-page/comment-create-page.component.scss
+++ b/src/app/components/pages/comment-create-page/comment-create-page.component.scss
@@ -9,3 +9,7 @@ app-comment-list {
   width: 100%;
   max-width: 800px;
 }
+
+button {
+  margin-right: 20px;
+}
diff --git a/src/app/components/pages/content-carousel-page/content-carousel-page.component.html b/src/app/components/pages/content-carousel-page/content-carousel-page.component.html
index 9a6273a46..515187837 100644
--- a/src/app/components/pages/content-carousel-page/content-carousel-page.component.html
+++ b/src/app/components/pages/content-carousel-page/content-carousel-page.component.html
@@ -1,7 +1,6 @@
 <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px" fxFill>
   <div fxLayout="row" fxLayoutAlign="center">
     <mat-tab-group>
-
       <mat-tab *ngFor="let content of contents" label="{{content.subject}}">
         <app-content-choice-participant [content]="content"
                                         *ngIf="content.format === ContentType.CHOICE"></app-content-choice-participant>
diff --git a/src/app/components/pages/content-create-page/content-create-page.component.html b/src/app/components/pages/content-create-page/content-create-page.component.html
index ff136f427..5f864effe 100644
--- a/src/app/components/pages/content-create-page/content-create-page.component.html
+++ b/src/app/components/pages/content-create-page/content-create-page.component.html
@@ -16,7 +16,7 @@
           <app-content-likert-creator></app-content-likert-creator>
         </div>
       </mat-tab>
-      <mat-tab label="Yes / No">
+      <mat-tab label="{{ 'content.yes' | translate }} / {{ 'content.no' | translate }}">
         <div class="tab-container">
           <app-content-yes-no-creator></app-content-yes-no-creator>
         </div>
diff --git a/src/app/components/pages/home-creator-page/home-creator-page.component.html b/src/app/components/pages/home-creator-page/home-creator-page.component.html
index 7c6b46735..5b22e036f 100644
--- a/src/app/components/pages/home-creator-page/home-creator-page.component.html
+++ b/src/app/components/pages/home-creator-page/home-creator-page.component.html
@@ -1,6 +1,6 @@
 <div fxLayout="column" fxLayoutAlign="start" fxLayoutGap="20px" fxFill>
   <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="5px">
-    <button mat-raised-button color="primary" (click)="openCreateRoomDialog()">Neuen Raum erstellen</button>
+    <button mat-raised-button color="primary" (click)="openCreateRoomDialog()">{{ 'home-page.create-session' | translate }}</button>
   </div>
   <div fxLayout="row" fxLayoutAlign="center">
     <app-room-list></app-room-list>
diff --git a/src/app/components/pages/room-creator-page/room-creator-page.component.html b/src/app/components/pages/room-creator-page/room-creator-page.component.html
index 4abdfef3d..fa439d978 100644
--- a/src/app/components/pages/room-creator-page/room-creator-page.component.html
+++ b/src/app/components/pages/room-creator-page/room-creator-page.component.html
@@ -19,31 +19,31 @@
         </p>
       </mat-card-content>
       <mat-divider></mat-divider>
-      <mat-divider></mat-divider>
       <mat-card-actions>
-        <button mat-button color="primary" matTooltip="Create new content"
+        <button mat-button color="primary" fxFlex="33%"
                 routerLink="/creator/room/{{ room.shortId }}/create-content">
-          Create content
+          {{ 'room-page.create-content' | translate }}
         </button>
-        <button mat-button color="primary" matTooltip="See room comments"
+        <button mat-button color="primary" fxFlex="33%"
                 routerLink="/creator/room/{{ room.shortId }}/comments">
-          Comments
+          {{ 'room-page.comments' | translate }}
         </button>
-        <button mat-button color="primary" matTooltip="See feedback"
+        <button mat-button color="primary" fxFlex="33%"
                 routerLink="/creator/room/{{ room.shortId }}/feedback-barometer">
-          Feedback barometer
+          {{ 'room-page.live-feedback' | translate }}
         </button>
-        <button mat-button color="primary" matTooltip="See answer statistics"
+        <button mat-button color="primary" fxFlex="33%"
                 routerLink="/creator/room/{{ room.shortId }}/statistics">
-          Answer statistics
+          {{ 'room-page.answer-statistics' | translate }}
         </button>
-        <button *ngIf="!modify" (click)="showEditDialog()" mat-button color="primary">
-          Edit room
+        <button *ngIf="!modify" fxFlex="33%" (click)="showEditDialog()" mat-button color="primary">
+          {{ 'room-page.edit-room' | translate }}
         </button>
-        <button mat-button color="warn" (click)="openDeletionRoomDialog()">
-          Delete room
+        <button mat-button color="warn" fxFlex="33%" (click)="openDeletionRoomDialog()">
+          {{ 'room-page.delete-room' | translate }}
         </button>
       </mat-card-actions>
+      <mat-divider></mat-divider>
       <app-content-groups *ngIf="room" [contentGroups]="room.contentGroups"></app-content-groups>
     </mat-card>
     <div *ngIf="!isLoading && !room">Error: room could not be found!</div>
diff --git a/src/app/components/pages/room-creator-page/room-creator-page.component.scss b/src/app/components/pages/room-creator-page/room-creator-page.component.scss
index 329ef2c52..6bf53eb81 100644
--- a/src/app/components/pages/room-creator-page/room-creator-page.component.scss
+++ b/src/app/components/pages/room-creator-page/room-creator-page.component.scss
@@ -4,4 +4,5 @@ mat-card {
 
 mat-card-content > :first-child {
   margin-top: 16px;
+  margin-bottom: 16px;
 }
diff --git a/src/app/components/pages/room-participant-page/room-participant-page.component.html b/src/app/components/pages/room-participant-page/room-participant-page.component.html
index 53cbfa730..9a925f4e8 100644
--- a/src/app/components/pages/room-participant-page/room-participant-page.component.html
+++ b/src/app/components/pages/room-participant-page/room-participant-page.component.html
@@ -15,24 +15,24 @@
       <mat-divider></mat-divider>
       <mat-grid-list cols="2" rowHeight="2:1">
         <mat-grid-tile>
-          <button mat-icon-button color="primary" matTooltip="Create comment"
+          <button mat-icon-button color="primary" matTooltip="{{ 'room-page.create-comment' | translate}}"
                   routerLink="/participant/room/{{ room.id }}/create-comment">
             <mat-icon>question_answer</mat-icon>
           </button>
         </mat-grid-tile>
         <mat-grid-tile>
-          <button mat-icon-button color="primary" matTooltip="Give feedback"
+          <button mat-icon-button color="primary" matTooltip="{{ 'room-page.give-feedback' | translate}}"
                   routerLink="/participant/room/{{ room.id }}/feedback-barometer">
             <mat-icon>thumbs_up_down</mat-icon>
           </button>
         </mat-grid-tile>
       </mat-grid-list>
       <mat-nav-list>
-        <mat-list-item matTooltip="See room comments">
-          Comments
+        <mat-list-item>
+          {{ 'room-page.comments' | translate }}
         </mat-list-item>
-        <mat-list-item matTooltip="Join question round">
-          Learn
+        <mat-list-item>
+          {{ 'room-page.learn' | translate }}
         </mat-list-item>
         <app-content-groups *ngIf="room" [contentGroups]="room.contentGroups"></app-content-groups>
       </mat-nav-list>
diff --git a/src/app/components/pages/room-participant-page/room-participant-page.component.ts b/src/app/components/pages/room-participant-page/room-participant-page.component.ts
index 0b358b710..cb7eeaa6f 100644
--- a/src/app/components/pages/room-participant-page/room-participant-page.component.ts
+++ b/src/app/components/pages/room-participant-page/room-participant-page.component.ts
@@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core';
 import { Room } from '../../../models/room';
 import { Location } from '@angular/common';
 import { RoomService } from '../../../services/http/room.service';
-import { ActivatedRoute } from '@angular/router';
+import { ActivatedRoute, Router } from '@angular/router';
 
 @Component({
   selector: 'app-room-participant-page',
@@ -16,7 +16,8 @@ export class RoomParticipantPageComponent implements OnInit {
 
   constructor(private location: Location,
               private roomService: RoomService,
-              private route: ActivatedRoute) {
+              private route: ActivatedRoute,
+              private router: Router) {
   }
 
   ngOnInit() {
@@ -32,4 +33,8 @@ export class RoomParticipantPageComponent implements OnInit {
         this.isLoading = false;
       });
   }
+
+  /*goToComments(): void {
+    this.router.navigate([`/participant/room/${this.room.shortId}/comments`]);
+  }*/
 }
diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json
index 40d47a81f..b0c14fe1b 100644
--- a/src/assets/i18n/de.json
+++ b/src/assets/i18n/de.json
@@ -2,7 +2,8 @@
 	"header": {
 		"english": "English",
 		"german": "Deutsch",
-		"logout": "Abmelden"
+		"logout": "Abmelden",
+    "guest": "Gast"
 	},
 	"login-page": {
 		"creator": "Autor",
@@ -16,6 +17,7 @@
 		"email-required": "E-Mail Adresse ist erforderlich",
 		"guest-login": "Anmelden als Gast",
 		"input-incorrect": "Bitte prüfen Sie Ihre Eingaben.",
+    "login-successful": "Login erfolgreich.",
 		"login": "Anmelden",
 		"login-data-incorrect": "Benutzername oder Passwort nicht korrekt.",
 		"password": "Passwort",
@@ -44,5 +46,54 @@
 		"register": "Registrieren",
 		"register-successful": "Erfolgreich registriert. Bitte prüfen Sie Ihre E-Mails",
 		"register-unsuccessful": "Bitte prüfen Sie Ihre Eingaben."
-	}
+	},
+  "home-page": {
+    "create-session": "Neue Session erstellen",
+    "join-demo-session": "Demo-Session beitreten",
+    "session-id": "Session-Id",
+    "no-room-found": "Es wurde keine Session mit dieser ID gefunden.",
+    "please-enter": "Bitte geben Sie eine Session-ID ein.",
+    "exactly-8": "Eine Session-ID hat genau 8 Ziffern."
+
+  },
+  "room-page": {
+    "comments": "Kommentare",
+    "learn": "Lernen",
+    "create-comment": "Kommentar abgeben",
+    "give-feedback": "Feedback geben",
+    "create-content": "Frage erstellen",
+    "live-feedback": "Live Feedback",
+    "answer-statistics": "Antwortstatistiken",
+    "edit-room": "Session bearbeiten",
+    "delete-room": "Session löschen"
+  },
+  "comment-page": {
+    "enter-title": "Geben Sie einen Titel ein",
+    "back": "Zurück",
+    "send": "Senden"
+  },
+  "answer": {
+    "submit": "Absenden",
+    "abstain": "Enthalten",
+    "sent": "Antwort gesendet.",
+    "your-answer": "Ihre Antwort"
+  },
+  "content": {
+    "create": "Erstellen",
+    "collection": "Sammlung",
+    "body": "Inhalt",
+    "subject": "Thema",
+    "yes": "Ja",
+    "no": "Nein",
+    "add-answer": "Antwort hinzufügen",
+    "answer": "Antwort",
+    "actions": "Richtig / Falsch",
+    "reset": "Zurücksetzen"
+  },
+  "session": {
+    "session-name": "Name der Session",
+    "description": "Beschreibung",
+    "max-ls": "Max. Zeichen:",
+    "create-session": "Session erstellen"
+  }
 }
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index 3fcc8a99d..79509f2d9 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -2,7 +2,8 @@
 	"header": {
 		"english": "English",
 		"german": "Deutsch",
-		"logout": "Logout"
+		"logout": "Logout",
+    "guest:": "Guest"
 	},
 	"login-page": {
 		"creator": "Creator",
@@ -44,5 +45,53 @@
 		"register": "Register",
 		"register-successful": "Successfully registered. Please check your mail.",
 		"register-unsuccessful": "Please check your data."
-	}
+	},
+  "home-page": {
+    "create-session": "Create new session ",
+    "join-demo-session": "Join demo-session",
+    "session-id": "Session-Id",
+    "no-room-found": "No session was found with id:",
+    "please-enter": "Please enter a session-id.",
+    "exactly-8": "A session-id has exactly 8 digits."
+  },
+  "room-page": {
+    "comments": "Comments",
+    "learn": "Learn",
+    "create-comment": "Create comment",
+    "give-feedback": "Give feedback",
+    "create-content": "Create content",
+    "live-feedback": "Live feedback",
+    "answer-statistics": "Answer-statistics",
+    "edit-room": "Edit session",
+    "delete-room": "Delete session"
+  },
+  "comment-page": {
+    "enter-title": "Enter a title",
+    "back": "Back",
+    "send": "Send"
+  },
+  "answer": {
+    "submit": "Submit",
+    "abstain": "Abstain",
+    "sent": "Answer sent.",
+    "your-answer": "Your answer"
+  },
+  "content": {
+    "create": "Create",
+    "collection": "Collection",
+    "body": "Body",
+    "subject": "Subject",
+    "yes": "Yes",
+    "no": "No",
+    "add-answer": "Add answer",
+    "answer": "Answer",
+    "actions": "Actions",
+    "reset": "Reset"
+  },
+  "session": {
+    "session-name": "Session name",
+    "description": "Description",
+    "max-ls": "Max. letters / signs:",
+    "create-session": "Create session"
+  }
 }
-- 
GitLab