diff --git a/Frontend Angular 4/src/app/layout/archivos/archivos.component.html b/Frontend Angular 4/src/app/layout/archivos/archivos.component.html
index 6df5a10f81854ae0c8b10b5f89db033375702fca..d02e130fb6e47db8a7aca592c2a6795604985517 100755
--- a/Frontend Angular 4/src/app/layout/archivos/archivos.component.html	
+++ b/Frontend Angular 4/src/app/layout/archivos/archivos.component.html	
@@ -2,7 +2,7 @@
 <div class="container-fluid">
     <div class="row">
         <div class="col-lg-5">
-            <label for="search">Nombre del archivo:</label>
+            <label for="search">{{ "i18n.msg.file.fileName" | translate }}:</label>
             <div class="input-group">
                 <input type="text" class="form-control" id="search" [(ngModel)]=filtroNombre>
                 <span class="input-group-addon fa fa-search">
@@ -15,7 +15,7 @@
     <div class="row" style="margin-top: 20px">
         <div class="col-lg-5">
             <ngb-tabset [destroyOnHide]=false>
-                <ngb-tab title="Mis archivos">
+                <ngb-tab title='{{ "i18n.msg.file.myFiles" | translate }}'>
                     <ng-template ngbTabContent>
 
                         <div class="card">
@@ -29,7 +29,16 @@
                                     <i class="fa fa-plus"></i> 
                                 </buton> -->
                                 <div class="btn-group pull-right" style="cursor: pointer;    margin-top: -42px; height: 30px;    width: 29px;">
-                                  <button ngbPopover="Nuevo"  triggers="mouseenter:mouseleave" data-placement="bottom" style="cursor: pointer;border-radius: 3px;" type="button" class="btn btn-sm btn-secondary" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                  <button
+                                    ngbPopover='{{ "i18n.action.new" | translate | titleCase }}'
+                                    triggers="mouseenter:mouseleave"
+                                    data-placement="bottom"
+                                    style="cursor: pointer;border-radius: 3px;"
+                                    type="button"
+                                    class="btn btn-sm btn-secondary"
+                                    data-toggle="dropdown"
+                                    aria-haspopup="true"
+                                    aria-expanded="false">
                                     <i class="fa fa-plus"></i> 
                                   </button>
                                   <div class="dropdown-menu">
@@ -40,7 +49,16 @@
                                 </div>
 
                                 <div class="btn-group pull-right" style="cursor: pointer;    margin-top: -42px; height: 30px;    width: 29px; margin-right: 36px;">
-                                  <button ngbPopover="Ordenar"  triggers="mouseenter:mouseleave" data-placement="bottom" style="cursor: pointer;border-radius: 3px;width: 36px;" type="button" class="btn btn-sm btn-secondary" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                                  <button 
+                                    ngbPopover='{{ "i18n.action.order" | translate | titleCase }}'
+                                    triggers="mouseenter:mouseleave"
+                                    data-placement="bottom"
+                                    style="cursor: pointer;border-radius: 3px;width: 36px;"
+                                    type="button"
+                                    class="btn btn-sm btn-secondary"
+                                    data-toggle="dropdown"
+                                    aria-haspopup="true"
+                                    aria-expanded="false">
                                     <i class="fa fa-sort"></i> 
                                   </button>
                                   <div class="dropdown-menu">
@@ -71,7 +89,7 @@
 
                     </ng-template>
                 </ngb-tab>
-                <ngb-tab title="Compartidos">
+                <ngb-tab title='{{ "i18n.msg.file.shared" | translate }}'>
                     <ng-template ngbTabContent>
 
                         <div class="card" *ngIf="esAlumno">
@@ -98,13 +116,28 @@
         <div class="col-lg-7">
             <div class="card">
                 <div class="card-header">
-                    <button ngbPopover="Cargar/Editar" data-placement="bottom" triggers="mouseenter:mouseleave" class="btn btn-sm btn-secondary pull-left mr-2" (click)="cargarArchivo()">
+                    <button
+                        ngbPopover='{{ "i18n.action.load" | translate | titleCase }}/{{ "i18n.action.edit" | translate | titleCase }}'
+                        data-placement="bottom"
+                        triggers="mouseenter:mouseleave"
+                        class="btn btn-sm btn-secondary pull-left mr-2"
+                        (click)="cargarArchivo()">
                         <i class="fa fa-pencil"></i>
                     </button>
-                    <button ngbPopover="Eliminar" data-placement="bottom" triggers="mouseenter:mouseleave" class="btn btn-sm btn-secondary pull-left mr-2" (click)="mostrarEliminarDialogo()">  
+                    <button
+                        ngbPopover='{{ "i18n.action.delete" | translate | titleCase }}'
+                        data-placement="bottom"
+                        triggers="mouseenter:mouseleave"
+                        class="btn btn-sm btn-secondary pull-left mr-2"
+                        (click)="mostrarEliminarDialogo()">  
                         <i class="fa fa-remove"></i> 
                     </button>
-                    <button ngbPopover="Mover Archivo"data-placement="bottom" triggers="mouseenter:mouseleave" class="btn btn-sm btn-secondary pull-left mr-2" (click)="seleccionarDirectorioAMover()">  
+                    <button
+                        ngbPopover='{{ "i18n.action.move" | translate | titleCase }} {{ "i18n.object.file" | translate | titleCase }}'
+                        data-placement="bottom"
+                        triggers="mouseenter:mouseleave"
+                        class="btn btn-sm btn-secondary pull-left mr-2"
+                        (click)="seleccionarDirectorioAMover()">  
                         <i class="fa fa-cut"></i> 
                     </button>
 
@@ -116,20 +149,31 @@
                     
                     <div class="pull-left mr-2" *ngIf="esAlumno && (archivoSeleccionado?.estado == 'Entregado')">{{archivoSeleccionado.estado}} - </div>
 
-                    <button *ngIf="esAlumno && archivoSeleccionado?.estado == 'Corregido'" class="btn btn-sm btn-secondary pull-left mr-2" (click)="verCalificacion()">Ver calificacion</button>
+                    <button 
+                        *ngIf="esAlumno && archivoSeleccionado?.estado == 'Corregido'"
+                        class="btn btn-sm btn-secondary pull-left mr-2"
+                        (click)="verCalificacion()">
+                        {{ "i18n.msg.file.viewCalification" | translate }}
+                    </button>
 
-                    <button *ngIf="!esAlumno" class="btn btn-sm btn-secondary pull-left mr-2" (click)="compartirArchivo()">Compartir</button>
+                    <button *ngIf="!esAlumno" class="btn btn-sm btn-secondary pull-left mr-2" (click)="compartirArchivo()">
+                        {{ "i18n.action.share" | translate | titleCase }}
+                    </button>
 
                     <div class="pull-left" *ngIf="archivoSeleccionado">
-                        Nombre: {{archivoSeleccionado?.nombre}} - Creado: {{archivoSeleccionado?.fechaCreacion | date}}
+                        {{ "i18n.object.name" | translate | titleCase }}:
+                        {{archivoSeleccionado?.nombre}}
+                        &nbsp;-&nbsp;
+                        {{ "i18n.msg.file.created" | translate }}:
+                        {{archivoSeleccionado?.fechaCreacion | date}}
                     </div>
-                    <div class="pull-left" *ngIf="!archivoSeleccionado">Seleccione un archivo para previsualizarlo</div>
+                    <div class="pull-left" *ngIf="!archivoSeleccionado">{{ "i18n.msg.file.preview" | translate }}</div>
                     <div class="pull-right" *ngIf="archivoSeleccionado">
                         <label class="custom-control custom-checkbox" *ngIf="!esAlumno">
                           <input type="checkbox"  *ngIf="archivoSeleccionado.editable" (click)="setSoloLectura()" class="custom-control-input">
                           <input type="checkbox"  *ngIf="!archivoSeleccionado.editable" checked (click)="setSoloLectura()" class="custom-control-input">
                           <span class="custom-control-indicator"></span>
-                          <span class="custom-control-description">Solo lectura</span>
+                          <span class="custom-control-description">{{ "i18n.msg.file.readOnly" | translate }}</span>
                       </label>
                   </div>
               </div>
@@ -138,8 +182,13 @@
                     <i style="color: rgb(220,220,220); font-size: 10em; padding: 0.1em" class="fa fa-file-text"></i>    
                 </div>                    
             </div>
-            <codemirror class="codemirrorArchivo" *ngIf="archivoSeleccionado" [(ngModel)]="preview" [config]="configCodeMirror" [ngStyle]="{'font-size': configCodeMirror.fontSize+'px'}">
-                </codemirror>
+            <codemirror
+                class="codemirrorArchivo"
+                *ngIf="archivoSeleccionado"
+                [(ngModel)]="preview"
+                [config]="configCodeMirror"
+                [ngStyle]="{'font-size': configCodeMirror.fontSize+'px'}">
+            </codemirror>
         </div>
 
     </div>
diff --git a/Frontend Angular 4/src/app/layout/archivos/archivos.component.ts b/Frontend Angular 4/src/app/layout/archivos/archivos.component.ts
index 09ceca704024f9f7ef76acbde016818648a8df64..9e96a7d55cfc39856540c3694f1f05377a443653 100755
--- a/Frontend Angular 4/src/app/layout/archivos/archivos.component.ts	
+++ b/Frontend Angular 4/src/app/layout/archivos/archivos.component.ts	
@@ -14,6 +14,7 @@ import { ConfirmComponent } from '../../shared/modal/confirm.component';
 import { SeleccionarDirectorioMove } from './seleccionarDirectorio.component';
 import { CodemirrorComponent } from 'ng2-codemirror';
 import { NgbPopoverConfig, NgbPopover} from '@ng-bootstrap/ng-bootstrap';
+import { TranslateService } from '@ngx-translate/core';
 
 import 'codemirror/mode/haskell/haskell';
 import 'codemirror/addon/display/panel';
@@ -49,7 +50,8 @@ export class ArchivosComponent {
 		private authService: AuthenticationService,
 		private haskellService: HaskellService,
 		private sessionService: SessionService,
-		private dialogService:DialogService
+		private dialogService:DialogService,
+		public translate: TranslateService
 		){
 		this.esAlumno = JSON.parse(sessionStorage.getItem("currentUser")).tipo ==="alumno";
 		this.directorioActual = {};
diff --git a/Frontend Angular 4/src/app/layout/archivos/archivos.module.ts b/Frontend Angular 4/src/app/layout/archivos/archivos.module.ts
index 757246bce89ac97b6005a9447db97e71147f85a2..b87503528539ee227584b5ac9f3ad5e45d6d42f5 100755
--- a/Frontend Angular 4/src/app/layout/archivos/archivos.module.ts	
+++ b/Frontend Angular 4/src/app/layout/archivos/archivos.module.ts	
@@ -14,10 +14,22 @@ import { DialogService } from "ng2-bootstrap-modal";
 import { BootstrapModalModule } from 'ng2-bootstrap-modal';
 import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
 import { CodemirrorModule } from 'ng2-codemirror';
-import { NotificacionModule } from '../../notificacion/notificacion.module'; 
+import { NotificacionModule } from '../../notificacion/notificacion.module';
+import { I18nModule } from '../../shared/modules/translate/i18n.module';
+import { TitleCaseModule } from '../../shared/modules/titlecase.module';
 
 @NgModule({
-    imports: [CommonModule, ArchivosRoutingModule, FormsModule,BootstrapModalModule, NgbModule, CodemirrorModule,NotificacionModule],
+    imports: [
+        CommonModule,
+        ArchivosRoutingModule,
+        FormsModule,
+        BootstrapModalModule,
+        NgbModule,
+        CodemirrorModule,
+        NotificacionModule,
+        I18nModule,
+        TitleCaseModule
+    ],
     declarations: [ArchivosComponent, FilterPipe,NuevoArchivo, VerCalificacionComponent, ConfirmComponent, CompartirArchivoComponent,ConfirmarEliminar, SeleccionarDirectorioMove],
     entryComponents: [
         NuevoArchivo, 
diff --git a/Frontend Angular 4/src/app/layout/matefun/matefun.component.html b/Frontend Angular 4/src/app/layout/matefun/matefun.component.html
index 70e915ec1cfad99ee4bc3038ff128667a34da57b..433fa1eb4f3532ad6bbd75e856a8dde962807a5b 100755
--- a/Frontend Angular 4/src/app/layout/matefun/matefun.component.html	
+++ b/Frontend Angular 4/src/app/layout/matefun/matefun.component.html	
@@ -11,7 +11,7 @@
                     <form>
                         <input type="text" name="archivo" class="nomArchivoInp form-control form-control-sm" 
                         [disabled]="!archivo.editable || archivo.estado=='Corregido' || archivo.estado == 'Entregado'"
-                        *ngIf="archivo" [(ngModel)]="archivo.nombre" (keyup)="archivoModificado()" placeholder='{{ "i18n.msg.codemirror.fileName" | translate }}' />
+                        *ngIf="archivo" [(ngModel)]="archivo.nombre" (keyup)="archivoModificado()" placeholder='{{ "i18n.msg.file.fileName" | translate }}' />
 
                         <button
                             id="downloadFileButton"
diff --git a/Frontend Angular 4/src/assets/i18n/en.json b/Frontend Angular 4/src/assets/i18n/en.json
index 06467ed812af6e2289788e3df3c25d2f3cc6c333..be5a2179b4ffd8ed2c6611948e3d85d2ac37fb72 100644
--- a/Frontend Angular 4/src/assets/i18n/en.json	
+++ b/Frontend Angular 4/src/assets/i18n/en.json	
@@ -3,7 +3,7 @@
         "action" : {
             "login" : "login",
             "new" : "new",
-            "load" : "laod",
+            "load" : "load",
             "reload" : "reload",
             "restart" : "restart",
             "save" : "save",
@@ -12,11 +12,16 @@
             "center" : "center",
             "delete" : "delete",
             "download": "download",
-            "exit" : "exit"
+            "exit" : "exit",
+            "order": "order",
+            "edit": "edit",
+            "move": "move",
+            "share": "share"
         },
         "object" : {
             "settings" : "settings",
             "theme" : "theme",
+            "name" : "name",
             "user" : "user",
             "password" : "password",
             "guest" : "guest",
@@ -40,12 +45,20 @@
                 "fontSize" : "Font Size",
                 "functionWarnings": "Show warnings of use of functions",
                 "infixOperatorsWarnings" : "Show warnings of use of infix operators",
-                "fileName" : "File name",
                 "cursorPosition" : "Cursor position"
             },
             "figure" : {
                 "multiPlot" : "Multi graph",
                 "animationSpeed" : "Animation speed"
+            },
+            "file" : {
+                "fileName" : "File name",
+                "preview" : "Select a file to preview",
+                "myFiles" : "My files",
+                "shared" : "Shared",
+                "created": "Created",
+                "readOnly": "Read Only",
+                "viewCalification": "View Calification"
             }
         }
     }
diff --git a/Frontend Angular 4/src/assets/i18n/es.json b/Frontend Angular 4/src/assets/i18n/es.json
index 809a4cd81d4e73d092c29a7c7866cbdb0f47340c..0ab51896a713bfee94e44e8a045eda7d6aea7964 100644
--- a/Frontend Angular 4/src/assets/i18n/es.json	
+++ b/Frontend Angular 4/src/assets/i18n/es.json	
@@ -12,10 +12,15 @@
             "center" : "centrar",
             "delete" : "borrar",
             "download": "descargar",
-            "exit" : "salir"
+            "exit" : "salir",
+            "order": "ordenar",
+            "edit": "editar",
+            "move": "mover",
+            "share": "compartir"
         },
         "object" : {
             "settings" : "configuración",
+            "name" : "nombre",
             "user" : "usuario",
             "theme" : "tema",
             "password" : "contraseña",
@@ -40,12 +45,20 @@
                 "fontSize" : "Tamaño de fuente",
                 "functionWarnings": "Mostrar advertencias de uso de funciones",
                 "infixOperatorsWarnings" : "Mostrar advertencias de uso de operadores infijos",
-                "fileName" : "Nombre de archivo",
                 "cursorPosition" : "Posición del cursor"
             },
             "figure" : {
                 "multiPlot" : "Multi gráfica",
                 "animationSpeed" : "Velocidad de animación"
+            },
+            "file" : {
+                "fileName" : "Nombre de archivo",
+                "preview" : "Seleccione un archivo para previsualizarlo",
+                "myFiles" : "Mis archivos",
+                "shared" : "Compartidos",
+                "created": "Creado",
+                "readOnly": "Sólo lectura",
+                "viewCalification": "Ver Calificación"
             }
         }
     }