Skip to content
Snippets Groups Projects
Commit 071cce00 authored by Diego Rey's avatar Diego Rey
Browse files

Add translations language for matefun component

parent a1bbaef4
No related branches found
No related tags found
No related merge requests found
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<ngb-tabset [destroyOnHide]=false (tabChange)="onChangeTab($event)"> <ngb-tabset [destroyOnHide]=false (tabChange)="onChangeTab($event)">
<ngb-tab id="ProgramBtn"title="Programa"> <ngb-tab id="ProgramBtn" title='{{ "i18n.object.program" | translate | titlecase }}'>
<ng-template ngbTabContent> <ng-template ngbTabContent>
<div class="card"> <div class="card">
...@@ -11,39 +11,75 @@ ...@@ -11,39 +11,75 @@
<form> <form>
<input type="text" name="archivo" class="nomArchivoInp form-control form-control-sm" <input type="text" name="archivo" class="nomArchivoInp form-control form-control-sm"
[disabled]="!archivo.editable || archivo.estado=='Corregido' || archivo.estado == 'Entregado'" [disabled]="!archivo.editable || archivo.estado=='Corregido' || archivo.estado == 'Entregado'"
*ngIf="archivo" [(ngModel)]="archivo.nombre" (keyup)="archivoModificado()" placeholder="nombre del archivo" /> *ngIf="archivo" [(ngModel)]="archivo.nombre" (keyup)="archivoModificado()" placeholder='{{ "i18n.msg.codemirror.fileName" | translate }}' />
<button id="downloadFileButton" (click)="downloadFile()" style="margin-left: 10px; float: right;" class="btn btn-sm btn-secondary" placement="bottom" ngbPopover="Exportar (Ctrl+E)" triggers="mouseenter:mouseleave" tiggers="click"> <button
id="downloadFileButton"
(click)="downloadFile()"
style="margin-left: 10px; float: right;"
class="btn btn-sm btn-secondary"
placement="bottom"
ngbPopover='{{ "i18n.action.export" | translate | titleCase }} (Ctrl+E)'
triggers="mouseenter:mouseleave"
tiggers="click">
<i class="fa fa-download "></i> <i class="fa fa-download "></i>
</button> </button>
<button
<button style="margin-left: 10px; float: right;" id="popover" class="btn btn-sm btn-secondary" placement="bottom" [ngbPopover]=popoverContent #popover="ngbPopover" popoverTitle="Configuración" tiggers="click"> style="margin-left: 10px; float: right;"
id="popover" class="btn btn-sm btn-secondary"
placement="bottom"
[ngbPopover]=popoverContent
#popover="ngbPopover"
popoverTitle='{{ "i18n.object.settings" | translate | titleCase }}'
tiggers="click">
<i class="fa fa-gear"></i> <i class="fa fa-gear"></i>
</button> </button>
<div style="margin-left: 10px; float: right;" ngbPopover="Guardar archivo (Ctrl+G)" triggers="mouseenter:mouseleave" placement="bottom" > <div
style="margin-left: 10px; float: right;"
ngbPopover='{{ "i18n.action.save" | translate | titleCase }} {{ "i18n.object.file" | translate | titleCase }} (Ctrl+G)'
triggers="mouseenter:mouseleave"
placement="bottom" >
<button [disabled]="!modificado" (click)="guardarArchivo()" class="btn btn-sm btn-secondary" > <button [disabled]="!modificado" (click)="guardarArchivo()" class="btn btn-sm btn-secondary" >
<i class="fa fa-save"></i> <i class="fa fa-save"></i>
</button> </button>
</div> </div>
<button style="margin-left: 10px; float: right;" (click)="reiniciarInterprete()" class="btn btn-sm btn-secondary" ngbPopover="Reiniciar intérprete (Ctrl+R)" triggers="mouseenter:mouseleave" placement="bottom"> <button
style="margin-left: 10px; float: right;"
(click)="reiniciarInterprete()"
class="btn btn-sm btn-secondary"
ngbPopover='{{ "i18n.action.restart" | translate | titleCase }} {{ "i18n.object.interpreter" | translate | titleCase }} (Ctrl+R)'
triggers="mouseenter:mouseleave"
placement="bottom">
<i class="fa fa-refresh"></i> <i class="fa fa-refresh"></i>
</button> </button>
<button style="margin-left: 10px; float: right;" (click)="runCode()" class="btn btn-sm btn-secondary" ngbPopover="Cargar programa (Ctrl+P)" triggers="mouseenter:mouseleave" placement="bottom"> <button
style="margin-left: 10px; float: right;"
(click)="runCode()"
class="btn btn-sm btn-secondary"
ngbPopover='{{ "i18n.action.load" | translate | titleCase }} {{ "i18n.object.program" | translate | titleCase }} (Ctrl+P)'
triggers="mouseenter:mouseleave"
placement="bottom">
<i class="fa fa-play"></i> <i class="fa fa-play"></i>
</button> </button>
<button style="float: right;" (click)="seleccionarDirectorio()" class="btn btn-sm btn-secondary" ngbPopover="Nuevo archivo (Ctrl+A)" triggers="mouseenter:mouseleave" placement="bottom"> <button
style="float: right;"
(click)="seleccionarDirectorio()"
class="btn btn-sm btn-secondary"
ngbPopover='{{ "i18n.action.new" | translate | titleCase }} {{ "i18n.object.file" | translate | titleCase }} (Ctrl+A)'
triggers="mouseenter:mouseleave"
placement="bottom">
<i class="fa fa-plus"></i> <i class="fa fa-plus"></i>
</button> </button>
<ng-template #popoverContent style="width: 15em"> <ng-template #popoverContent style="width: 15em">
<div style="width: 12em"> <div style="width: 12em">
<div class="form-group"> <div class="form-group">
<label>Tema:</label> <label>{{ "i18n.object.theme" | translate | titleCase }}:</label>
<select name="theme" class="form-control form-control-sm" #selectTheme (change)=updateConfig(selectTheme.value)> <select name="theme" class="form-control form-control-sm" #selectTheme (change)=updateConfig(selectTheme.value)>
<option *ngFor="let theme of themes" [selected]="theme==configCodeMirror.theme" value='{{theme}}'>{{theme}}</option> <option *ngFor="let theme of themes" [selected]="theme==configCodeMirror.theme" value='{{theme}}'>{{theme}}</option>
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>Tamaño de fuente:</label> <label>{{ "i18n.msg.codemirror.fontSize" | translate }}:</label>
<div> <div>
<button class="btn btn-sm btn-secondary" (click)="aumentarFuente()">A⁺</button> <button class="btn btn-sm btn-secondary" (click)="aumentarFuente()">A⁺</button>
<button class="btn btn-sm btn-secondary" (click)="disminuirFuente()">A⁻</button> <button class="btn btn-sm btn-secondary" (click)="disminuirFuente()">A⁻</button>
...@@ -53,16 +89,17 @@ ...@@ -53,16 +89,17 @@
<div class="form-group"> <div class="form-group">
<label> <label>
<input type="checkbox" style="width: 15px; display: inline-block;" name="argumentoF" class="form-control form-control-sm" [(ngModel)]=argumentoF> <input type="checkbox" style="width: 15px; display: inline-block;" name="argumentoF" class="form-control form-control-sm" [(ngModel)]=argumentoF>
Mostrar advertencias de uso de funciones {{ "i18n.msg.codemirror.functionWarnings" | translate }}
</label> </label>
<br> <br>
<label> <label>
<input type="checkbox" style="width: 15px; display: inline-block;" name="argumentoI" class="form-control form-control-sm" [(ngModel)]=argumentoI> <input type="checkbox" style="width: 15px; display: inline-block;" name="argumentoI" class="form-control form-control-sm" [(ngModel)]=argumentoI>
Mostrar advertencias de uso de operadores infijos {{ "i18n.msg.codemirror.infixOperatorsWarnings" | translate }}
</label> </label>
</div> </div>
<div class="form-group"> <div class="form-group">
<button class="btn btn-secondary" (click)="saveConfig()">Guardar</button> <button class="btn btn-secondary" (click)="saveConfig()">{{ "i18n.action.save" | translate | titleCase }}</button>
</div> </div>
</div> </div>
</ng-template> </ng-template>
...@@ -79,12 +116,12 @@ ...@@ -79,12 +116,12 @@
<canvas-component (canvasComp)=canvasC></canvas-component> <canvas-component (canvasComp)=canvasC></canvas-component>
</ng-template> </ng-template>
</ngb-tab> --> </ngb-tab> -->
<ngb-tab id="FigurasBtn2D" title="Figuras 2D"> <ngb-tab id="FigurasBtn2D" title='{{ "i18n.object.figures" | translate | titleCase }} 2D'>
<ng-template ngbTabContent> <ng-template ngbTabContent>
<graph2D-component (graph2DComp)=graph2DComp></graph2D-component> <graph2D-component (graph2DComp)=graph2DComp></graph2D-component>
</ng-template> </ng-template>
</ngb-tab> </ngb-tab>
<ngb-tab id="FigurasBtn3D" title="Figuras 3D"> <ngb-tab id="FigurasBtn3D" title='{{ "i18n.object.figures" | translate | titleCase }} 3D'>
<ng-template ngbTabContent> <ng-template ngbTabContent>
<graph3d-component (graph3DComp)=graph3DComp></graph3d-component> <graph3d-component (graph3DComp)=graph3DComp></graph3d-component>
</ng-template> </ng-template>
......
...@@ -22,6 +22,8 @@ import { NotificacionService } from '../../shared/services/notificacion.service' ...@@ -22,6 +22,8 @@ import { NotificacionService } from '../../shared/services/notificacion.service'
import { Graph2DModule } from '../plotter/graph2D/graph2D.module'; import { Graph2DModule } from '../plotter/graph2D/graph2D.module';
import { Graph2DComponent } from '../plotter/graph2D/graph2D.component'; import { Graph2DComponent } from '../plotter/graph2D/graph2D.component';
import { Graph3DComponent } from '../plotter/graph3D/graph3D.component'; import { Graph3DComponent } from '../plotter/graph3D/graph3D.component';
import { TranslateService } from '@ngx-translate/core';
import { TitleCasePipe } from '../../shared/pipes/titlecase.pipe';
import 'rxjs/add/operator/catch'; import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map'; import 'rxjs/add/operator/map';
...@@ -48,6 +50,7 @@ import * as npm from './../../../../package.json' ...@@ -48,6 +50,7 @@ import * as npm from './../../../../package.json'
var codeMirrorRef:any; var codeMirrorRef:any;
var componentRef : any; var componentRef : any;
var focus: any; var focus: any;
@Component({ @Component({
moduleId: module.id, moduleId: module.id,
selector: 'matefun', selector: 'matefun',
...@@ -58,7 +61,8 @@ var focus: any; ...@@ -58,7 +61,8 @@ var focus: any;
export class MateFunComponent { export class MateFunComponent {
titlecasePipe: any;
translateService: any;
consoleDisable: boolean = false; consoleDisable: boolean = false;
consolaVisible: boolean = true; consolaVisible: boolean = true;
cursorPanel: any; cursorPanel: any;
...@@ -101,7 +105,13 @@ export class MateFunComponent { ...@@ -101,7 +105,13 @@ export class MateFunComponent {
private notifService: NotificacionService, private notifService: NotificacionService,
private sessionService: SessionService, private sessionService: SessionService,
private dialogService:DialogService, private dialogService:DialogService,
private usuarioService: UsuarioService) { private usuarioService: UsuarioService,
public translate: TranslateService) {
// i18n
this.translateService = translate;
this.titlecasePipe = new TitleCasePipe();
//si el archivo fue seteado en la session. //si el archivo fue seteado en la session.
this.archivo = sessionService.getArchivo(); this.archivo = sessionService.getArchivo();
if(!this.archivo || !this.archivo.id){ if(!this.archivo || !this.archivo.id){
...@@ -170,7 +180,8 @@ export class MateFunComponent { ...@@ -170,7 +180,8 @@ export class MateFunComponent {
var y = cm.getCursor().ch; var y = cm.getCursor().ch;
x = (Number(x) + 1).toString(); x = (Number(x) + 1).toString();
y = (Number(y) + 1).toString(); y = (Number(y) + 1).toString();
this.cursorPanelLabel.textContent = "Posición del cursor: (" + x + "," + y + ")"; var cursorPositionTranslate = this.translateService.get('i18n.msg.codemirror.cursorPosition').value;
this.cursorPanelLabel.textContent = cursorPositionTranslate + ": (" + x + "," + y + ")";
this.cursorPanel = this.codemirror.instance.addPanel(node, {position: "bottom", stable: true}); this.cursorPanel = this.codemirror.instance.addPanel(node, {position: "bottom", stable: true});
...@@ -181,7 +192,7 @@ export class MateFunComponent { ...@@ -181,7 +192,7 @@ export class MateFunComponent {
var y = cm.getCursor().ch; var y = cm.getCursor().ch;
x = (Number(x) + 1).toString(); x = (Number(x) + 1).toString();
y = (Number(y) + 1).toString(); y = (Number(y) + 1).toString();
that.cursorPanel.node.innerText = "Posición del cursor: (" + x + "," + y + ")"; that.cursorPanel.node.innerText = cursorPositionTranslate + ": (" + x + "," + y + ")";
}); });
this.codemirror.instance.on("keyHandled",function(cm,name,evt){ this.codemirror.instance.on("keyHandled",function(cm,name,evt){
......
...@@ -12,19 +12,23 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; ...@@ -12,19 +12,23 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { NotificacionModule } from '../../notificacion/notificacion.module'; import { NotificacionModule } from '../../notificacion/notificacion.module';
import { Graph2DModule } from '../plotter/graph2D/graph2D.module'; import { Graph2DModule } from '../plotter/graph2D/graph2D.module';
import { Graph3DModule } from '../plotter/graph3D/graph3D.module'; import { Graph3DModule } from '../plotter/graph3D/graph3D.module';
import { I18nModule } from '../../shared/modules/translate/i18n.module';
import { TitleCaseModule } from '../../shared/modules/titlecase.module';
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, CommonModule,
FormsModule, FormsModule,
CanvasModule, CanvasModule,
Graph2DModule, Graph2DModule,
Graph3DModule, Graph3DModule,
NotificacionModule, NotificacionModule,
MateFunRoutingModule, MateFunRoutingModule,
CodemirrorModule, CodemirrorModule,
NgbModule, NgbModule,
BootstrapModalModule BootstrapModalModule,
I18nModule,
TitleCaseModule
], ],
entryComponents: [ entryComponents: [
ConfirmComponent, ConfirmComponent,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment