Split out of #355 at @Aman-Mittal's suggestion. Both of these were found while building the products and system route titles, and neither is a titling bug, so they do not belong in that thread.
Nothing here is broken for an English user. Both are i18n correctness problems that show up the moment the UI is used in another language.
1. Fourteen headings are hardcoded English rather than translation keys
These render literal English regardless of the selected language. Everything else in the same templates goes through the translation pipeline, so these read as oversights rather than intent.
| File |
Line |
Value |
features/loans/rescheduling/reschedule-requests-list.component.ts |
52 |
Loan Reschedule Requests |
features/loans/rescheduling/reschedule-requests-list.component.ts |
79 |
View Request Details |
features/loans/collateral/collateral-list.component.ts |
65 |
Edit Collateral |
features/loans/collateral/collateral-list.component.ts |
74 |
Delete Collateral |
features/clients/clients-list.component.ts |
127 |
Edit Client Details |
features/products/recurring-deposits/recurring-deposits-list.component.ts |
56 |
Recurring Deposit Accounts |
features/products/recurring-deposits/recurring-deposits-list.component.ts |
91 |
Edit Account Details |
features/products/fixed-deposits/fixed-deposits-list.component.ts |
50 |
Fixed Deposit Accounts |
features/products/fixed-deposits/fixed-deposits-list.component.ts |
89 |
Edit Account Details |
features/products/shares/share-accounts-list.component.ts |
52 |
Share Accounts |
features/fintech/asset-owners-list.component.ts |
46 |
External Asset Owners |
features/fintech/asset-owner-view/asset-owner-view.component.ts |
146 |
Journal Entries |
features/security/users/users-list.component.ts |
53 |
Edit User |
features/centers/centers-list.component.ts |
80 |
Edit Center |
Why CI does not catch this. check-translations.mjs validates that strings which are keys resolve in every locale. A hardcoded English string is not a key, so there is nothing for it to look up and it passes silently. The check is working as designed; the gap is that it can only see strings already inside the system.
Worth deciding whether the guard should grow a rule for a bare title="Capitalised English" on these list components, or whether that is too noisy to be worth it. I have no strong view and would follow yours.
2. Two product lists show the account label instead of the product label
products/recurring and products/share are the product lists, but their on-screen headings render the account keys:
products/recurring-deposits/recurring-deposit-products-list.component.ts:47 renders title="nav.recurringDeposits", should be nav.recurringDepositProducts
products/shares/share-products-list.component.ts:45 renders title="nav.shares", should be nav.shareProducts
The route titles are already right, nav.recurringDepositProducts and nav.shareProducts in products.routes.ts at lines 115 and 143. So on those two pages the browser tab says "Recurring Deposit Products" while the heading below it says "Recurring Deposits". The tab and the heading disagree with each other, and the heading is the wrong one.
All four keys exist already, so this is a two-line fix with no new translation entries.
Happy to take this
Both are small and I have the reproduction. Say the word and I will put them up as one PR with a commit each, matching how #9469 and friends were structured. Leaving it unclaimed for now in case you would rather it went to a newcomer, since item 2 in particular is about as self-contained as a first patch gets.
Split out of #355 at @Aman-Mittal's suggestion. Both of these were found while building the
productsandsystemroute titles, and neither is a titling bug, so they do not belong in that thread.Nothing here is broken for an English user. Both are i18n correctness problems that show up the moment the UI is used in another language.
1. Fourteen headings are hardcoded English rather than translation keys
These render literal English regardless of the selected language. Everything else in the same templates goes through the translation pipeline, so these read as oversights rather than intent.
features/loans/rescheduling/reschedule-requests-list.component.tsLoan Reschedule Requestsfeatures/loans/rescheduling/reschedule-requests-list.component.tsView Request Detailsfeatures/loans/collateral/collateral-list.component.tsEdit Collateralfeatures/loans/collateral/collateral-list.component.tsDelete Collateralfeatures/clients/clients-list.component.tsEdit Client Detailsfeatures/products/recurring-deposits/recurring-deposits-list.component.tsRecurring Deposit Accountsfeatures/products/recurring-deposits/recurring-deposits-list.component.tsEdit Account Detailsfeatures/products/fixed-deposits/fixed-deposits-list.component.tsFixed Deposit Accountsfeatures/products/fixed-deposits/fixed-deposits-list.component.tsEdit Account Detailsfeatures/products/shares/share-accounts-list.component.tsShare Accountsfeatures/fintech/asset-owners-list.component.tsExternal Asset Ownersfeatures/fintech/asset-owner-view/asset-owner-view.component.tsJournal Entriesfeatures/security/users/users-list.component.tsEdit Userfeatures/centers/centers-list.component.tsEdit CenterWhy CI does not catch this.
check-translations.mjsvalidates that strings which are keys resolve in every locale. A hardcoded English string is not a key, so there is nothing for it to look up and it passes silently. The check is working as designed; the gap is that it can only see strings already inside the system.Worth deciding whether the guard should grow a rule for a bare
title="Capitalised English"on these list components, or whether that is too noisy to be worth it. I have no strong view and would follow yours.2. Two product lists show the account label instead of the product label
products/recurringandproducts/shareare the product lists, but their on-screen headings render the account keys:products/recurring-deposits/recurring-deposit-products-list.component.ts:47renderstitle="nav.recurringDeposits", should benav.recurringDepositProductsproducts/shares/share-products-list.component.ts:45renderstitle="nav.shares", should benav.shareProductsThe route titles are already right,
nav.recurringDepositProductsandnav.shareProductsinproducts.routes.tsat lines 115 and 143. So on those two pages the browser tab says "Recurring Deposit Products" while the heading below it says "Recurring Deposits". The tab and the heading disagree with each other, and the heading is the wrong one.All four keys exist already, so this is a two-line fix with no new translation entries.
Happy to take this
Both are small and I have the reproduction. Say the word and I will put them up as one PR with a commit each, matching how #9469 and friends were structured. Leaving it unclaimed for now in case you would rather it went to a newcomer, since item 2 in particular is about as self-contained as a first patch gets.