From 2da60939559a91036a074aba08c25e079615c59b Mon Sep 17 00:00:00 2001 From: Abhinav R Cillanki <95158195+JebronLames32@users.noreply.github.com> Date: Sun, 16 Mar 2025 09:57:48 +0530 Subject: [PATCH] fix(translations): Ensure missing keys display original text instead of prefixed labels (#2319) - Added a custom `MissingTranslationHandler` in `app.module.ts` to remove `labels.catalogs.` prefix when a translation key is not found. - Updated `TranslateModule` configuration to use the custom handler globally. - Ensured that missing translations fall back to the original value. - Removed an unnecessary change from `address-tab.component.ts` introduced in a previous PR, as the current implementation resolves the issue more effectively. --- src/app/app.module.ts | 17 +++++++++++++++-- .../address-tab/address-tab.component.ts | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index b2bf3cef3..415e34232 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -40,9 +40,21 @@ import { PortalModule } from '@angular/cdk/portal'; /** Main Routing Module */ import { AppRoutingModule } from './app-routing.module'; import { DatePipe, LocationStrategy } from '@angular/common'; -import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; +import { + TranslateLoader, + TranslateModule, + MissingTranslationHandler, + MissingTranslationHandlerParams +} from '@ngx-translate/core'; import { TranslateHttpLoader } from '@ngx-translate/http-loader'; +export class CustomMissingTranslationHandler implements MissingTranslationHandler { + handle(params: MissingTranslationHandlerParams): string { + // Remove the 'labels.catalogs.' prefix and return the fallback value + return params.key.replace('labels.catalogs.', ''); + } +} + /** * App Module * @@ -66,7 +78,8 @@ export function HttpLoaderFactory(http: HttpClient) { HttpBackend, LocationStrategy ] - } + }, + missingTranslationHandler: { provide: MissingTranslationHandler, useClass: CustomMissingTranslationHandler } }), BrowserModule, BrowserAnimationsModule, diff --git a/src/app/clients/clients-view/address-tab/address-tab.component.ts b/src/app/clients/clients-view/address-tab/address-tab.component.ts index 441750600..a8ed42fa9 100644 --- a/src/app/clients/clients-view/address-tab/address-tab.component.ts +++ b/src/app/clients/clients-view/address-tab/address-tab.component.ts @@ -156,7 +156,7 @@ export class AddressTabComponent { for (let index = 0; index < this.clientAddressTemplate.addressTypeIdOptions.length; index++) { this.clientAddressTemplate.addressTypeIdOptions[index].name = this.translateService.instant( - `${this.clientAddressTemplate.addressTypeIdOptions[index].name}` + `labels.catalogs.${this.clientAddressTemplate.addressTypeIdOptions[index].name}` ); }