Comment utiliser MatPaginatorIntl?
Je suis en utilisant MatPaginator composant et j'essaie de comprendre comment traduire ces étiquettes (la documentation n'est pas assez claire à ce sujet).
J'ai trouvé cet article montrant comment le faire et j'ai suivi les étapes:
1 - j'ai créé un fichier appelé custom-paginator.ts
et de mettre le suivant, il y:
import { MatPaginator, MatPaginatorIntl } from '@angular/material';
export class CustomPaginator extends MatPaginatorIntl {
constructor() {
super();
this.nextPageLabel = ' My new label for next page';
this.previousPageLabel = ' My new label for previous page';
this.itemsPerPageLabel = 'Task per screen';
}
}
2 - Dans app.module.ts
j'ai mis:
@NgModule({
//...
providers: [
{
provide: MatPaginatorIntl,
useClass: CustomPaginator
}
]
})
export class AppModule
Cependant, il n'a tout simplement pas ne rien changer. Ce qui me manque?
- Vous devez supprimer l'initialisation des étiquettes à partir de constructeur et cela devrait fonctionner.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire comme ceci:
Je vais vous fournir avec le croate étiquettes:
customClass.ts
et AppModule.ts:
Il fonctionne très bien.
Aussi, vous devez les importer dans votre appModule.ts les deux MatPaginatorIntl et MatPaginatorIntlCro
Basé sur Vinko Vorih code, j'ai fait un paginator de travail avec la ngx-traduire, voici le code :
Et puis dans votre fournisseurs de modules d'entrée :
De cette façon, vous pouvez stocker des traductions dans votre habitude fichier i18n et si votre application web est en mesure de modifier dynamiquement les paramètres régionaux, paginator sera traduit à la demande.
this.changes.next()
à la fin de latranslateLabels
méthode.start
,end
, etlength
sont passés en paramètres. Le traducteur doit avoir le contrôle complet de réorganiser les arguments nécessaires. La traduction est plus compliqué que de remplacer des mots simples.dans le fichier: matPaginatorIntlCroClass.ts
dans le Fichier: AppModule.ts:
Source: https://material.angular.io/components/paginator/api
Si vous voulez une dynamique de changement de langue avec la ngx-traduire de travailler pour vous, voici la solution, ça fonctionne pour moi.
mat-paginator-i18n.service.ts
Dans votre module AppModule
fr.json, etc.
J'ai fait quelques modifications pour fixer l'extrémité de l'index lors de l'index de début de dépasser la liste de longueur. J'ai aussi ajouter la traduction pour la première et la dernière page. C'est pour @anguleuse/matière 5.2.4 la pagination composant.
Pour mettre à jour l'étiquette, vous pouvez mettre le feu à un événement de changement après le changement étiquette:
En outre, vous pouvez utiliser injecté services en marquant le Intl à une injection de lui-même. Voir l'exemple (ignorer les spécificités de DoneSubject et LocalizeService que ceux sont des implémentations personnalisées):
Et ne pas oublier de prévoir dans votre module:
Injecter MatPaginatorIntl n'importe où dans votre application, définissez souhaité traductions et d'appeler à des changements.next(). Répéter l'opération sur chaque changement de langue (par exemple en vous abonnant à onLangChange lors de l'utilisation de la ngx-translate).
J'ai eu le même problème, et puis j'ai changé en application.le module.ts dans l'instruction imports TranslateModule à TranslateModule.forRoot()
De sorte qu'il ressemble à ceci:
Citation de MNP site:
"La forRoot méthode statique est une convention qui prévoit et configure les services en même temps. Assurez-vous d'appeler cette méthode dans le module racine de votre application, la plupart du temps appelé AppModule. Cette méthode permet de configurer le TranslateModule en spécifiant un chargeur, un analyseur syntaxique et/ou un manque de traductions gestionnaire."
Voici l'article en entier:
https://www.npmjs.com/package/@ngx-translate/core
Lecture, cela peut aider à résoudre de nombreux problèmes avec TranslateModule!