Skip to content

i18n: 14 hardcoded English headings, and two product lists showing the account label #388

Description

@opensource-joe

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions