diff --git a/src/frontend/app/app-material.module.ts b/src/frontend/app/app-material.module.ts
index 9c87735570a300b00861ae69a80e6f0386d946ab..7642ae5b78c1e8bb07881e8abc9285fa990be7b7 100755
--- a/src/frontend/app/app-material.module.ts
+++ b/src/frontend/app/app-material.module.ts
@@ -63,10 +63,10 @@ import { MatCheckboxModule } from '@angular/material/checkbox';
 import { MatChipsModule } from '@angular/material/chips';
 import { MatNativeDateModule } from '@angular/material/core';
 import { MatDatepickerModule } from '@angular/material/datepicker';
-import { MatDialogActions, MatDialogModule } from '@angular/material/dialog';
+import { MatDialogModule } from '@angular/material/dialog';
 import { MatExpansionModule } from '@angular/material/expansion';
 import { MatGridListModule } from '@angular/material/grid-list';
-import { MatIcon, MatIconModule } from '@angular/material/icon';
+import { MatIconModule } from '@angular/material/icon';
 import { MatInputModule } from '@angular/material/input';
 import { MatListModule } from '@angular/material/list';
 import { MatMenuModule } from '@angular/material/menu';
@@ -78,7 +78,7 @@ import { MatSelectModule } from '@angular/material/select';
 import { MatSidenavModule } from '@angular/material/sidenav';
 import { MatSlideToggleModule } from '@angular/material/slide-toggle';
 import { MatSliderModule } from '@angular/material/slider';
-import { MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar';
+import { MatSnackBarModule } from '@angular/material/snack-bar';
 import { MatSortModule } from '@angular/material/sort';
 import { MatStepperModule } from '@angular/material/stepper';
 import { MatTableModule } from '@angular/material/table';
@@ -89,7 +89,7 @@ import { MatRippleModule } from '@angular/material/core';
 import { ScrollingModule } from '@angular/cdk/scrolling';
 
 import { MatTreeModule } from '@angular/material/tree';
-import { getFrenchPaginatorIntl, getTranslatedPaginator } from './french-paginator-intl';
+import { CustomMatPaginatorIntl } from '@plugins/mat-paginator-int';
 
 @NgModule({
     imports: [
@@ -169,7 +169,10 @@ import { getFrenchPaginatorIntl, getTranslatedPaginator } from './french-paginat
         DndModule
     ],
     providers: [
-        { provide: MatPaginatorIntl, useValue: getTranslatedPaginator('FR-fr') },
+        {
+            provide: MatPaginatorIntl,
+            useClass: CustomMatPaginatorIntl
+        },
         { provide: MAT_DATE_LOCALE, useValue: 'FR-fr' },
         { provide: DateAdapter, useClass: AppDateAdapter },
         { provide: MAT_DATE_FORMATS, useValue: APP_DATE_FORMATS },
diff --git a/src/frontend/app/french-paginator-intl.ts b/src/frontend/app/french-paginator-intl.ts
deleted file mode 100755
index 746f55426fd22cf496092cf7602c20c34e5ef103..0000000000000000000000000000000000000000
--- a/src/frontend/app/french-paginator-intl.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { MatPaginatorIntl } from '@angular/material/paginator';
-
-
-const frenchRangeLabel = (page: number, pageSize: number, length: number) => {
-  if (length == 0 || pageSize == 0) { return `0 de ${length}`; }
-  
-  length = Math.max(length, 0);
-
-  const startIndex = page * pageSize;
-
-  // If the start index exceeds the list length, do not try and fix the end index to the end.
-  const endIndex = startIndex < length ?
-      Math.min(startIndex + pageSize, length) :
-      startIndex + pageSize;
-
-  const nbPage = Math.ceil(length / pageSize);  
-      //return `${startIndex + 1} - ${endIndex} / ${length} (${page})`;
-      return `Page ${page + 1} / ${nbPage}`;
-};
-
-const englishRangeLabel = (page: number, pageSize: number, length: number) => {
-  if (length == 0 || pageSize == 0) { return `0 of ${length}`; }
-
-  return frenchRangeLabel(page, pageSize, length);
-};
-
-
-export function getFrenchPaginatorIntl() {
-  const paginatorIntl = new MatPaginatorIntl();
-  paginatorIntl.nextPageLabel = 'Page suivante';
-  paginatorIntl.previousPageLabel = 'Page précédente';
-  paginatorIntl.getRangeLabel = frenchRangeLabel;
-  paginatorIntl.itemsPerPageLabel = '';
-  
-  return paginatorIntl;
-}
-
-
-export function getEnglishSeparator() {
-  const paginatorIntl = new MatPaginatorIntl();
-  paginatorIntl.nextPageLabel = 'Next page';
-  paginatorIntl.previousPageLabel = 'Previous page';
-  paginatorIntl.getRangeLabel = englishRangeLabel;
-  paginatorIntl.itemsPerPageLabel = '';
-
-  return paginatorIntl;
-}
-
-export function getTranslatedPaginator(langIso: string) {
-  if (langIso === 'fr-FR') {
-    return getFrenchPaginatorIntl();
-  }
-
-  return getEnglishSeparator();
-}
diff --git a/src/frontend/plugins/mat-paginator-int.ts b/src/frontend/plugins/mat-paginator-int.ts
new file mode 100644
index 0000000000000000000000000000000000000000..634f984eaaaf138a8fc8d6c3b656a0d99e5645e2
--- /dev/null
+++ b/src/frontend/plugins/mat-paginator-int.ts
@@ -0,0 +1,35 @@
+
+import { Injectable } from '@angular/core';
+import { MatPaginatorIntl } from '@angular/material/paginator';
+import { TranslateService } from '@ngx-translate/core';
+
+@Injectable()
+export class CustomMatPaginatorIntl extends MatPaginatorIntl {
+    constructor(
+        public translate: TranslateService,
+    ) {
+        super();
+
+        this.getAndInitTranslations();
+    }
+
+    getAndInitTranslations() {
+
+        this.itemsPerPageLabel = '';
+        this.nextPageLabel = this.translate.instant('lang.nextPage');
+        this.previousPageLabel = this.translate.instant('lang.prevPage');
+        this.changes.next();
+
+    }
+
+    getRangeLabel = (page: number, pageSize: number, length: number) => {
+        if (length === 0 || pageSize === 0) {
+            return `0 / ${length}`;
+        }
+        length = Math.max(length, 0);
+
+        const nbPage = Math.ceil(length / pageSize);
+
+        return `${this.translate.instant('lang.page')} ${page + 1} / ${nbPage}`;
+    }
+}
diff --git a/src/lang/lang-fr.json b/src/lang/lang-fr.json
index c2aa9ae71dd792dc72a05274a57d2068a49e7b87..76fdf441a37d543f110757fd39d24f0b5be91ade 100644
--- a/src/lang/lang-fr.json
+++ b/src/lang/lang-fr.json
@@ -2069,5 +2069,7 @@
     "archiveId": "Identifiant de l'archive",
     "checkReplyRecordManagementDesc": "Vérifie les <b>réponses</b> des paquets qui on été transférés au <b>système d'archivage électronique</b>.",
     "checkAcknowledgmentRecordManagementDesc": "Vérifie si le <b>système d'archivage électronique</b> a bien reçu les <b>paquets</b>.",
-    "checkInProgress": "Vérification en cours"
+    "checkInProgress": "Vérification en cours",
+    "nextPage": "Page suivante",
+    "prevPage": "Page précédente"
 }