diff --git a/Frontend Angular 4/.angular-cli.json b/Frontend Angular 4/.angular-cli.json
index ce654106465498153093c13f88c34696eaa0252b..b034b5836863586a0adc6782e21b9e38f5e14747 100644
--- a/Frontend Angular 4/.angular-cli.json	
+++ b/Frontend Angular 4/.angular-cli.json	
@@ -21,6 +21,7 @@
             "prefix": "app",
             "styles": [
                 "../node_modules/font-awesome/css/font-awesome.css",
+                "../node_modules/flag-icon-css/css/flag-icon.min.css",
                 "styles/app.scss",
                 "styles/console.css",
                 "../node_modules/tippy.js/dist/tippy.css",
diff --git a/Frontend Angular 4/package-lock.json b/Frontend Angular 4/package-lock.json
index 3b36451aba24ccf4db92e203a1a143df273c5f47..0339d889118f1e7972554025ad4173a9d09262cc 100644
--- a/Frontend Angular 4/package-lock.json	
+++ b/Frontend Angular 4/package-lock.json	
@@ -1,6 +1,6 @@
 {
   "name": "matefun",
-  "version": "2.0.1",
+  "version": "2.0.2",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
@@ -3490,6 +3490,11 @@
         }
       }
     },
+    "flag-icon-css": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/flag-icon-css/-/flag-icon-css-3.2.1.tgz",
+      "integrity": "sha512-0t7zPm2crM2cBIm3epZQ+EmiHuzgFNTTSMUMkWlrztDDGL+y31D+eY8zaB9zYCzJGAsn4KEMAKY+jCU1mt9jwg=="
+    },
     "flatten": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
diff --git a/Frontend Angular 4/package.json b/Frontend Angular 4/package.json
index 33c5175c061dc126f7bd3fbb91e84c9d7747e1c0..b2605e1907836c13de998db98667cc4055a38580 100755
--- a/Frontend Angular 4/package.json	
+++ b/Frontend Angular 4/package.json	
@@ -25,6 +25,7 @@
     "@ngx-translate/http-loader": "^0.1.0",
     "core-js": "^2.4.1",
     "d3": "^4.12.2",
+    "flag-icon-css": "^3.2.1",
     "font-awesome": "^4.7.0",
     "function-plot": "git://github.com/diego-rey/function-plot.git#feature/integration-multigraf-shape",
     "graph3D": "git://github.com/ifagian/graph3D#master",
diff --git a/Frontend Angular 4/src/app/app.component.html b/Frontend Angular 4/src/app/app.component.html
index eb9fe87ff82870fce7a7979e83abb3d5fece5e19..0680b43f9c6ae05df91c576141f20ed411d07c7d 100755
--- a/Frontend Angular 4/src/app/app.component.html	
+++ b/Frontend Angular 4/src/app/app.component.html	
@@ -1,4 +1 @@
-<div>
-    <router-outlet></router-outlet>
-    <span class="translate">{{ "HELLO" | translate }}</span>    
-</div>
+<router-outlet></router-outlet>
diff --git a/Frontend Angular 4/src/app/app.component.ts b/Frontend Angular 4/src/app/app.component.ts
index a1f2a8d420289859c922c72141a59c22b82b2082..4e2243fc532fd84fc2dc139cfbb42bbda2e24266 100755
--- a/Frontend Angular 4/src/app/app.component.ts	
+++ b/Frontend Angular 4/src/app/app.component.ts	
@@ -11,7 +11,6 @@ export class AppComponent implements OnInit {
     constructor(public router: Router, public translate: TranslateService) {
         this.translate.addLangs(['es', 'en']);
         this.translate.setDefaultLang('es');
-        //this.translate.use('en');
     }
     ngOnInit() {
         //this.router.navigate(['/login']);
diff --git a/Frontend Angular 4/src/app/login/login.component.html b/Frontend Angular 4/src/app/login/login.component.html
index 25c3e4c7211070097f2c368be215201eb7ced458..d921ec3fa4851e02baffd7fc37f38cf4dcded246 100755
--- a/Frontend Angular 4/src/app/login/login.component.html	
+++ b/Frontend Angular 4/src/app/login/login.component.html	
@@ -5,25 +5,34 @@
             <form role="form">
                 <div class="form-content">
                     <div class="form-group">
-                        <input type="text" [(ngModel)]=model.cedula  name="cedula" class="form-control input-underline input-lg"  placeholder="Usuario">
+                        <input type="text" [(ngModel)]=model.cedula  name="cedula" class="form-control input-underline input-lg"  placeholder='{{ "login.user" | translate }}'>
                     </div>
 
                     <div class="form-group">
-                        <input type="password" [(ngModel)]=model.password (keyup.enter)=login() name="password" class="form-control input-underline input-lg"  placeholder="Contraseña">
+                        <input type="password" [(ngModel)]=model.password (keyup.enter)=login() name="password" class="form-control input-underline input-lg"  placeholder='{{ "login.password" | translate }}'>
                     </div>
-                    <div class="form-group" style="margin-bottom: 0px;">
-                        <div ngbDropdown class="d-inline-block">
-                            <button class="btn btn-outline-secondary" id="input-lang" ngbDropdownToggle>{{model.language.name}}</button>
+                    <div class="form-group" style="margin-bottom: 0px; text-align: left;">
+                        <div ngbDropdown class="d-inline-block language-switcher">
+                            <button class="btn btn-outline-secondary" id="input-lang" ngbDropdownToggle>
+                                <span class="flag-icon flag-icon-{{model.language.flagCode}}"></span>
+                                {{model.language.name}}
+                            </button>
                             <div class="dropdown-menu" aria-labelledby="input-lang">
-                              <button class="dropdown-item" *ngFor="let lang of languages" (click)="model.language = lang" >{{lang.name}}</button>
+                                <div class="dropdown-menu-front">
+                                    <div class="dropdown-menu-content">
+                                        <button class="dropdown-item" *ngFor="let lang of languages" (click)="onChangeLanguage(lang)" >
+                                            <span class="flag-icon flag-icon-{{lang.flagCode}}"></span>
+                                            {{lang.name}}
+                                        </button>
+                                    </div>
+                                </div>
                             </div>
-                          </div>
-                          
+                        </div>
                      </div>
                 </div>
 
-                <a class="btn rounded-btn" style="background: transparent;color: white;cursor: pointer;width: 159px;margin-right: 3px;" (click)=login()> Iniciar Sesión </a>
-                <a class="btn rounded-btn" style="background: transparent;color: white;cursor: pointer;width: 159px;margin-left: 3px;" (click)=invitado()> Invitado </a>
+                <a class="btn rounded-btn" style="background: transparent;color: white;cursor: pointer;width: 159px;margin-right: 3px;" (click)=login()> {{ "login.login" | translate }} </a>
+                <a class="btn rounded-btn" style="background: transparent;color: white;cursor: pointer;width: 159px;margin-left: 3px;" (click)=invitado()> {{ "login.guest" | translate }} </a>
                 &nbsp;
                 <div class="loading" *ngIf="loading">
                     <div class="loading-bar"></div>
diff --git a/Frontend Angular 4/src/app/login/login.component.scss b/Frontend Angular 4/src/app/login/login.component.scss
index 92ee5466c358a42d782a3892bebf02c3424934c1..e0b6be881c0494298ddfc6c64b51bde028af4f97 100755
--- a/Frontend Angular 4/src/app/login/login.component.scss	
+++ b/Frontend Angular 4/src/app/login/login.component.scss	
@@ -103,3 +103,35 @@ $topnav-background-color: #222;
     position: relative;
     top: 20px;
 }
+
+
+.language-switcher {
+    button {
+        color: #ccc;
+        border: 0px;
+        background-color: transparent;
+        &:hover, &:active {
+            background-color: rgba(255,255,255,0.15);
+        }
+        &:focus {
+            box-shadow: none;
+        }
+    }
+    .flag-icon {
+        margin-right: 10px;
+    }
+    .dropdown-menu {
+        padding: 0px;
+        margin: 0.5rem 0;
+        background-color: #004869;
+        &-front {
+            background-color: rgba(255,255,255,0.15);
+        }
+        &-content {
+            padding: 0.5rem 0;
+        }
+    }
+    .dropdown-item {
+        padding-left: 15px;
+    }
+}
\ No newline at end of file
diff --git a/Frontend Angular 4/src/app/login/login.component.ts b/Frontend Angular 4/src/app/login/login.component.ts
index 82f555ebd087abd9cde6dab32f0f04632cd2e42a..49d9079f7c89b10b4ba82ab8acfc687b32a53fd3 100755
--- a/Frontend Angular 4/src/app/login/login.component.ts	
+++ b/Frontend Angular 4/src/app/login/login.component.ts	
@@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core';
 import { Router, ActivatedRoute } from '@angular/router';
 import { SessionService } from '../shared/services/session.service';
 import { AuthenticationService } from '../shared/services/authentication.service';
+import { TranslateService } from '@ngx-translate/core';
 
 
 @Component({
@@ -13,8 +14,8 @@ import { AuthenticationService } from '../shared/services/authentication.service
 
 export class LoginComponent implements OnInit {
     languages = [
-        {id: 0, name: "Ingles", code: 'en'},
-        {id: 1, name: "Español", code: 'es'}
+        {id: 0, name: "Español", code: 'es', flagCode: 'es'},
+        {id: 1, name: "English", code: 'en', flagCode: 'us'}
     ];
 
 	model: any = {
@@ -32,6 +33,7 @@ export class LoginComponent implements OnInit {
         private router: Router,
         private sessionService: SessionService,
         private authenticationService: AuthenticationService,
+        public translate: TranslateService
         ) { }
 
     ngOnInit() {
@@ -48,6 +50,7 @@ export class LoginComponent implements OnInit {
 
         var that = this;
 
+        this.translate.use(this.model.language.code);
         this.authenticationService.login(this.model.cedula, this.model.password, this.model.language.code)
             .subscribe(
                 data => {
@@ -76,4 +79,9 @@ export class LoginComponent implements OnInit {
                 });
     }
 
+    onChangeLanguage(lang) {
+        this.model.language = lang;
+        this.translate.use(this.model.language.code);
+    }
+
 }
diff --git a/Frontend Angular 4/src/app/login/login.module.ts b/Frontend Angular 4/src/app/login/login.module.ts
index 8d8c187f673ea0d5097a98198783212ed16f67a9..89a26f2a54cf28eea7e7376e581054061a6c720b 100755
--- a/Frontend Angular 4/src/app/login/login.module.ts	
+++ b/Frontend Angular 4/src/app/login/login.module.ts	
@@ -7,12 +7,15 @@ import { LoginRoutingModule } from './login-routing.module';
 import { LoginComponent } from './login.component';
 import { FormsModule } from '@angular/forms';
 import { AuthenticationService } from '../shared/services/authentication.service';
+import { I18nModule } from '../shared/modules/translate/i18n.module';
+
 
 @NgModule({
   imports: [
   	FormsModule,
     CommonModule,
     LoginRoutingModule,
+    I18nModule,
     NgbModule.forRoot(),
   ],
   declarations: [LoginComponent],
diff --git a/Frontend Angular 4/src/app/shared/config.ts b/Frontend Angular 4/src/app/shared/config.ts
index ff7baec48f045a2981973a0700d5e3fd6ff60bc2..cf69c797b7712cec4f6b6cc835be45a3d5629678 100755
--- a/Frontend Angular 4/src/app/shared/config.ts	
+++ b/Frontend Angular 4/src/app/shared/config.ts	
@@ -17,5 +17,8 @@
 // export const GHCI_URL = 'ws://192.168.129.3:9090/endpoint';
 
 // Google cloud platform
-export const SERVER = 'http://35.199.110.129:9090';
-export const GHCI_URL = 'ws://35.199.110.129:9090/endpoint';
+// export const SERVER = 'http://35.199.110.129:9090';
+// export const GHCI_URL = 'ws://35.199.110.129:9090/endpoint';
+
+export const SERVER = 'http://localhost:8080';
+export const GHCI_URL = 'ws://localhost:8080/endpoint';
diff --git a/Frontend Angular 4/src/app/shared/modules/index.ts b/Frontend Angular 4/src/app/shared/modules/index.ts
index 7afde6126c9534188e86e3872197a7e7d91888d4..b20424b72f409f49278df210a4649375657a00d8 100755
--- a/Frontend Angular 4/src/app/shared/modules/index.ts	
+++ b/Frontend Angular 4/src/app/shared/modules/index.ts	
@@ -1,2 +1,3 @@
 export * from './stat/stat.module';
 export * from './page-header/page-header.module';
+export * from './translate/i18n.module';
diff --git a/Frontend Angular 4/src/app/shared/modules/translate/i18n.module.ts b/Frontend Angular 4/src/app/shared/modules/translate/i18n.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8608ce9a359ace9865c01b4a7ae989addb2c46ac
--- /dev/null
+++ b/Frontend Angular 4/src/app/shared/modules/translate/i18n.module.ts	
@@ -0,0 +1,10 @@
+import { NgModule } from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+
+@NgModule({
+  exports: [
+    TranslateModule,
+  ]
+})
+
+export class I18nModule { }
\ No newline at end of file
diff --git a/Frontend Angular 4/src/assets/i18n/en.json b/Frontend Angular 4/src/assets/i18n/en.json
index b774ac8b3692f40f81524e9e4ff100cd2ca1263a..af4479d019a832e17480ecb25674b146bb72ecad 100644
--- a/Frontend Angular 4/src/assets/i18n/en.json	
+++ b/Frontend Angular 4/src/assets/i18n/en.json	
@@ -1,3 +1,8 @@
 {
-    "HELLO": "Hello"
+    "login" : {
+        "user" : "User",
+        "password" : "Password",
+        "login" : "Login",
+        "guest" : "Guest"
+    }
 }
\ No newline at end of file
diff --git a/Frontend Angular 4/src/assets/i18n/es.json b/Frontend Angular 4/src/assets/i18n/es.json
index 9c47392fb38d0bc11654c779ab7e58581d0dafc9..19b60521391f8b324cc49f0dffb21ad6f16f237d 100644
--- a/Frontend Angular 4/src/assets/i18n/es.json	
+++ b/Frontend Angular 4/src/assets/i18n/es.json	
@@ -1,3 +1,8 @@
 {
-    "HELLO" : "Hola"
+    "login" : {
+        "user" : "Usuario",
+        "password" : "Contraseña",
+        "login" : "Inciar Sesión",
+        "guest" : "Invitado"
+    }
 }
\ No newline at end of file