如何解决翻译时,我的角度可调无法正常工作
当我更改数据表的语言时,我遇到了问题。 它不会更改在.ts文件中更改的“ dtOptions”中指定的语言,但是我不再看到按钮和分页。 显然我有:
我的.ts文件
ngOnInit() {
this.subscriptions.add(this.activateRoute.data.subscribe(data => {
this.sollicitationsRecues = data.sollicitationsRecues;
/**
* Permet de définir l'url selon le langage.
*/
this.subscriptions.add(this.formulaire.currentLanguage.subscribe(language => {
this.language = language;
this.statutByLangue = statutsJson['default'].statuts[this.language]
this.dateAdapter.setLocale(this.language);
import(`../../assets/i18n/${language}.json`).then(language_json => {
if (this.sollicitationsRecues) {
this.location.replaceState('/' + language_json.navbar.url.sollicitationsRecues);
} else {
this.location.replaceState('/' + language_json.navbar.url.afficherSollicitation);
}
});
if (language === 'fr') {
this.dataTableLanguage = datatableFR['default'];
} else {
this.dataTableLanguage = datatableEN['default'];
}
if (this.dtElement && this.dtElement.dtInstance) {
this.dtElement.dtInstance.then((dtInstance: DataTables.Api) => {
dtInstance.destroy();
delete this.dtOptions['oLanguage'];
this.dtOptions.language = this.dataTableLanguage;
this.dtTrigger.next();
});
}
}));
/**
* Reception des sollicitations depuis le back
*/
if (this.sollicitationsRecues) {
this.subscriptions.add(
this.sollicitationService.getSollicitationsRecuesOrgAdmin(sessionStorage.getItem('loginName'))
.subscribe((sollicitations: Sollicitation[]) => {
if (sollicitations.length > 0) {
this.sollicitations = sollicitations;
this.statistiques = this.sollicitationService.getStatistiquesSollicitations(this.sollicitations,true,null,null);
this.nombreSollicitation = this.sollicitations.length;
}
this.dtTrigger.next();
},error => this.erreurHttp = error.message
)
);
} else {
this.subscriptions.add(
this.sollicitationService.getSollictationsByCriteres({})
.subscribe((sollicitations: Sollicitation[]) => {
this.sollicitations = sollicitations;
this.statistiques = this.sollicitationService.getStatistiquesSollicitations(this.sollicitations,false,null);
this.nombreSollicitation = this.sollicitations.length;
this.dtTrigger.next();
},error => this.erreurHttp = error.message
)
);
}
}));
this.dtOptions = {
pagingType: 'full_numbers',pageLength: 5,autoWidth: true,responsive: true,lengthMenu: [[5,10,25,50,-1],[5,"All"]],columnDefs: [
{ targets: 3,type: 'date',render: function(data,type) {
const date = parseISO(data);
return type == 'display' && isValid(date) ? format(date,'dd/MM/yyyy') : data
}
},{ targets: 4,'dd/MM/yyyy') : data
}
}
],order: [[ 4,"desc" ]],language: this.dataTableLanguage,dom: 'lBfrtip',buttons: [
'copy','print','excel'
]
};
this.subscriptions.add(this.loaderService.isLoading.subscribe((value) => {
this.loading = value;
}));
/**
* Initialisation de toutes les notifications.
*/
this.notifications = [
{ id: 1,libelle: 'premiere notification' },{ id: 2,libelle: 'seconde notification' }
];
/**
* Remise à vide de la variable de session "confirmation" pour empêcher son accès lorsque l'on ne passe pas par le bouton approprié.
*/
sessionStorage.setItem('confirmation','');
/**
* On récupère la valeur de l'orgAdmin depuis les variables de sessions.
*/
this.isOrgAdmin = JSON.parse(sessionStorage.getItem('isOrgAdmin'))
this.formulaire.changeNbResultat(undefined);
}
ngOnDestroy(): void {
this.dtTrigger.unsubscribe();
this.subscriptions.unsubscribe();
}
我的HTML文件:
<div class="container table-responsive col-md-12">
<table datatable [dtOptions]="dtOptions" [dtTrigger]="dtTrigger" class="table table-striped table-bordered row-border" style="width:100%">
<thead>
<tr class="text-center">
<th>{{'afficherSolicitation.numSollicitaiton' | translate}}</th>
<th>{{'afficherSolicitation.sujet' | translate}}</th>
<th>{{'afficherSolicitation.titre' | translate}}</th>
<th>{{'afficherSolicitation.dateSaisi' | translate}}</th>
<th>{{'afficherSolicitation.dateLastModif' | translate}}</th>
<th *ngIf="isOrgAdmin && sollicitationsRecues">{{'afficherSolicitation.saisiePar' | translate}}</th>
<th>{{'afficherSolicitation.statut' | translate}}</th>
<th>{{'afficherSolicitation.action' | translate}}</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let sollicitation of sollicitations; let i = index" class="text-center">
<td *ngIf="!loading"><a [routerLink]="" (click)="voirSollicitation(i)">{{sollicitation.id}}</a></td>
<td *ngIf="!loading">{{sollicitation.categoriePiste}}</td>
<td *ngIf="!loading">{{sollicitation.titre}}</td>
<td *ngIf="!loading && language === 'fr'">
{{sollicitation.dateEnvoi | date: 'dd-MM-yyyy HH:mm:ss'}}
</td>
<td *ngIf="!loading && language !== 'fr'">
{{sollicitation.dateEnvoi | date: 'MM-dd-yyyy HH:mm:ss'}}
</td>
<td *ngIf="!loading && language === 'fr'">
{{sollicitation.dateModification | date: 'dd-MM-yyyy HH:mm:ss'}}
</td>
<td *ngIf="!loading && language !== 'fr'">
{{sollicitation.dateModification | date: 'MM-dd-yyyy HH:mm:ss'}}
</td>
<td *ngIf="isOrgAdmin && sollicitationsRecues && !loading">{{sollicitation.creerPar}}</td>
<td *ngIf="!loading">{{statutByLangue[sollicitation.statut]}}</td>
<td *ngIf="!loading">
<button type="button" class="btn btn-outline-dark text-center buttonTable"
(click)="voirSollicitation(i)"><span class="material-icons">visibility</span></button>
<button *ngIf="sollicitation.statut !== 'Fermée' && sollicitation.statut !== 'Fermée automatiquement' && sollicitation.statut !== 'Brouillon' && !sollicitationsRecues" type="button" class="btn btn-outline-dark text-center buttonTable"
(click)="deleteSolicitation(i)"><span class="material-icons">close</span></button>
</td>
</tr>
<tr *ngIf="loading">
<td ALIGN="center" colspan="7">
<mat-progress-spinner class="progress-loader" [mode]="'indeterminate'">
</mat-progress-spinner>
</td>
</tr>
</tbody>
</table>
我的datatable.en.json:
{
"sEmptyTable": "No data available in table","sInfo": "Showing _START_ to _END_ of _TOTAL_ entries","sInfoEmpty": "Showing 0 to 0 of 0 entries","sInfoFiltered": "(filtered from _MAX_ total entries)","sInfoPostFix": "","sInfoThousands": ",","sLengthMenu": "Show _MENU_ entries","sLoadingRecords": "Loading...","sProcessing": "Processing...","sSearch": "Search:","sZeroRecords": "No matching records found","oPaginate": {
"sFirst": "First","sLast": "Last","sNext": "Next","sPrevious": "Previous"
},"oAria": {
"sSortAscending": ": activate to sort column ascending","sSortDescending": ": activate to sort column descending"
},"buttons": {
"copy": "Copy","copySuccess": {
"1": "Copied one row to clipboard","_": "Copied %d rows to clipboard"
},"copyTitle": "Copy to clipboard","print": "Print","excel": "Excel"
}
}
我的datatable.fr.json:
{
"sProcessing": "Traitement en cours...","sSearch": "Rechercher :","sLengthMenu": "Afficher _MENU_ éléments","sInfo": "Affichage de l'élément _START_ à _END_ sur _TOTAL_ éléments","sInfoEmpty": "Affichage de l'élément 0 à 0 sur 0 éléments","sInfoFiltered": "(filtré de _MAX_ éléments au total)","sLoadingRecords": "Chargement en cours...","sZeroRecords": "Aucun élément à afficher","sEmptyTable": "Aucune donnée disponible dans le tableau","oPaginate": {
"sFirst": "Premier","sPrevious": "Précédent","sNext": "Suivant","sLast": "Dernier"
},"oAria": {
"sSortAscending": ": activer pour trier la colonne par ordre croissant","sSortDescending": ": activer pour trier la colonne par ordre décroissant"
},"buttons": {
"copy": "Copier","copySuccess": {
"1": "Copie d'une ligne dans le presse-papiers","_": "Copie de %d lignes dans le presse-papiers"
},"copyTitle": "Copier dans<br>le presse-papiers","print": "Imprimer","excel": "Excel"
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。