You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@fineract.apache.org by "Aman-Mittal (via GitHub)" <gi...@apache.org> on 2026/10/02 06:39:04 UTC

[I] 68 template text nodes are English with no translation key, across 15 screens [fineract-backoffice-ui]

Aman-Mittal opened a new issue, #652:
URL: https://github.com/apache/fineract-backoffice-ui/issues/652

   ## Summary
   
   Split out of #651 rather than folded into it: the PR adds the check that finds these, and fixing 68 strings across 15 feature screens is separate, parallelisable work.
   
   These are labels and headings written directly into a template, with no key and no pipe:
   
   ```html
   <ion-label position="stacked">Repayments Rescheduling Rule</ion-label>
   ```
   
   Nothing is looked up, so nothing misses and no raw key ever appears. The screen renders correctly in English and stays English in Hindi and Korean indefinitely. This is the same defect as #627, which was found by hand on three screens; these are the rest.
   
   ## Why nothing reported them before #651
   
   - `i18n:check` MISSING verifies that keys referenced in code resolve — there is no key here.
   - `i18n:check` PHRASES checks that a `label:` literal is key-shaped — there is no `label:` here.
   - `ReportingMissingTranslationHandler` reports a key that resolves to nothing — `translate()` is never called.
   
   `npm run check:template-text` (added in #651) is what sees them. `node scripts/check-template-text.mjs --list` prints every occurrence with its line number.
   
   ## The 15 files
   
   | File | Occurrences |
   | ---- | ----------- |
   | `features/accounting/accounting-rule-form.component.ts` | 13 |
   | `features/loans/rescheduling/reschedule-form.component.ts` | 10 |
   | `features/products/savings-account-view.component.ts` | 10 |
   | `features/security/audit-logs/audit-logs-list.component.ts` | 7 |
   | `features/accounting/journal-entry-form.component.ts` | 5 |
   | `features/loans/point-in-time/loans-point-in-time.component.ts` | 5 |
   | `features/settings/working-days.component.ts` | 4 |
   | `features/accounting/charges/charge-form.component.ts` | 3 |
   | `features/accounting/accounting-closure-form.component.ts` | 2 |
   | `features/accounting/financial-activity-mapping-form.component.ts` | 2 |
   | `features/fintech/asset-owner-view/asset-owner-view.component.ts` | 2 |
   | `features/transfers/standing-instruction-form.component.ts` | 2 |
   | `features/campaigns/email-messages/email-messages.component.ts` | 1 |
   | `features/campaigns/sms-campaigns/sms-campaign-form.component.ts` | 1 |
   | `features/interop/interop-transfers.component.ts` | 1 |
   
   `features/settings/working-days.component.ts` is worth noting: #649 translated the weekday labels there, and these four are the headings and rules on the same screen that were not part of that fix.
   
   ## Fix
   
   Per file: add keys to `src/assets/i18n/en.json` under the screen's existing namespace, replace the literal, and render it with the pipe **that file already imports** — `| appTranslate` where it imports `TranslatePipe` from `core/adapters`, `| translate` where it imports `TranslateModule`. Mixing the two in one file is the thing to avoid; `clients-list.component.ts` imports only `TranslatePipe`, so a `| translate` there does not compile.
   
   Then run:
   
   ```bash
   node scripts/check-template-text.mjs --update
   ```
   
   The baseline is per file and may only shrink, so the check fails until the lower number is recorded — which keeps the fix and the baseline in the same commit. One file per PR is fine and makes review easy.
   
   ## Scope
   
   Each file is independent, so this suits several contributors working in parallel. Reusing an existing key is usually right — `npm run i18n:check -- --unused` and a grep of `en.json` for the English string will often find one already defined.
   
   Note the check under-reports on purpose: it only flags text of two or more words starting with a capital, because a single word is too often a unit or acronym (`USD`, `ID`, `JSON`) to flag without a false-positive rate that would get the check switched off. So a screen cleared of its reported occurrences may still hold single-word English.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@fineract.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] 68 template text nodes are English with no translation key, across 15 screens [fineract-backoffice-ui]

Posted by "Aman-Mittal (via GitHub)" <gi...@apache.org>.
Aman-Mittal closed issue #652: 68 template text nodes are English with no translation key, across 15 screens
URL: https://github.com/apache/fineract-backoffice-ui/issues/652


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org