From 3db9061c600706b52956e82ec052358b243ce6d0 Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Mon, 13 Apr 2026 18:32:24 +0200 Subject: [PATCH] fix(server): localize i18n column headers in export (CSV/XLSX/PDF) Export column headers displayed raw i18n keys like `expense.field.payment_account` instead of translated names like "Payment Account" because ExportResourceService never resolved the i18n keys before rendering. Inject I18nService and translate column names in both getExportableColumns() (CSV/XLSX) and getPrintableColumns() (PDF). Closes #1073 Co-Authored-By: Claude Opus 4.6 --- packages/server/src/modules/Export/ExportService.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/server/src/modules/Export/ExportService.ts b/packages/server/src/modules/Export/ExportService.ts index db7f6ed3f..f516d26b0 100644 --- a/packages/server/src/modules/Export/ExportService.ts +++ b/packages/server/src/modules/Export/ExportService.ts @@ -12,6 +12,7 @@ import { ServiceError } from '../Items/ServiceError'; import { ResourceService } from '../Resource/ResourceService'; import { getExportableService } from './decorators/ExportableModel.decorator'; import { ContextIdFactory, ModuleRef } from '@nestjs/core'; +import { I18nService } from 'nestjs-i18n'; @Injectable() export class ExportResourceService { @@ -20,6 +21,7 @@ export class ExportResourceService { private readonly exportPdf: ExportPdf, private readonly resourceService: ResourceService, private readonly moduleRef: ModuleRef, + private readonly i18nService: I18nService, ) {} /** @@ -147,7 +149,7 @@ export class ExportResourceService { const group = parent; return [ { - name: value.name, + name: this.i18nService.t(value.name, { defaultValue: value.name }), type: value.type || 'text', accessor: value.accessor || key, group, @@ -174,7 +176,7 @@ export class ExportResourceService { const group = parent; return [ { - name: value.name, + name: this.i18nService.t(value.name, { defaultValue: value.name }), type: value.type || 'text', accessor: value.accessor || key, group,