shivaansh0610-LUFFY opened a new pull request, #644:
URL: https://github.com/apache/fineract-backoffice-ui/pull/644

   ## What and why
   
   Switching to Hindi gives a translated sidebar and then English forms, tabs 
and dialogs: `hi.json` covers 469 of 2,529 `en.json` keys (18.5%). This PR 
translates the `CLIENTS` section into Hindi, one section per PR as #255 asks.
   
   | | Before | After |
   | --- | --- | --- |
   | `CLIENTS` keys translated | 7 / 118 | 118 / 118 |
   | All of `hi.json` | 469 / 2,529 (18.5%) | 580 / 2,529 (22.9%) |
   
   Counts are at the branch point; upstream has since added one unrelated key.
   
   Part of #255. It does not close the issue: the other `hi` sections and all 
of `ko` are still open.
   
   **Translation review:** <!-- Say who checked the Hindi wording, or delete 
this line. #255 asks for a fluent speaker to vouch for it. -->
   
   ## Changes
   
   - `src/assets/i18n/hi.json`: 111 `CLIENTS` keys added. The 7 already 
translated are untouched, and the nesting matches `en.json`.
   - No code changes.
   
   The wording reuses terms already in `hi.json` (ग्राहक, कार्यालय, बचत/ऋण 
खाता, स्थायी निर्देश, संपादित करें). Judgement calls for a Hindi reader to 
check:
   
   - `CONFIRM_ACCEPT_TRANSFER`, `CONFIRM_REJECT_TRANSFER`, 
`CONFIRM_WITHDRAW_TRANSFER`, `CONFIRM_UNASSIGN_STAFF`: the confirmation text 
shown before a transfer is accepted, rejected or withdrawn, or staff is 
unassigned. "On hold" is "होल्ड पर".
   - `FROM_*`, `TO_*`, `TRANSFER_FROM`, `TRANSFER_TO`: "स्रोत" / "गंतव्य". The 
longer "प्रेषक" / "प्राप्तकर्ता" clips in the standing-instructions table 
headers.
   - `IDENTIFIERS` is "पहचान पत्र". `DOCUMENT_KEY` is kept literal ("दस्तावेज़ 
कुंजी"), so a more idiomatic term may exist.
   - `LEGAL_FORM` is "कानूनी स्वरूप", `QUALIFICATION` is "शैक्षिक योग्यता", 
`COUNTY_DISTRICT` is "काउंटी/जिला", and `POSTAL_CODE` is "डाक कोड" (not "पिन 
कोड", to keep it generic).
   
   ## Not in this PR
   
   - Korean: `ko.json` is unchanged at 469 keys.
   - Other sections: English remains where these screens use their keys, for 
example `COMMON.CONFIRM` (dialog button) and `ACTIONS.CLOSE_CLIENT` (actions 
menu).
   - The hardcoded `Create Client` button on the clients list: tracked in #251.
   - `scripts/i18n-coverage.json`: it only fails on a drop, and parallel 
one-section PRs editing the same lines would conflict with each other.
   
   ## Verification
   
   Mocked API on the dev server, language set to Hindi from the header 
selector. Not run against a real Fineract backend or at a mobile width.
   
   Method: one script run before and after the change, 32 screens each. It 
covers the clients list, create wizard steps 1-3, client view and every tab, 
actions menu, the transfer / staff / default-savings dialogs, the five KYC 
forms, the not-found state, and standing instructions. All data is fictional.
   
   Checks:
   
   - `npm run i18n:check`: passes, also with this `hi.json` on current 
`upstream/main` (2,530 keys)
   - `npm run lint`, `npm run check:icons`, `npm run check:a11y-names`, `npm 
run test:scripts`: pass
   - `npx prettier --check src/assets/i18n/hi.json`: passes
   - Unit tests for `core/adapters/i18n`, `features/clients` and 
`guidance.service`: 18 files, 140 tests pass (full suite not run)
   - `npx playwright test --project=mocked e2e/client-servicing-gaps.spec.ts 
e2e/client-load-error.spec.ts`: 16 passed
   
   To try it locally:
   
   1. Run `npm start` and sign in.
   2. Choose "हिंदी (Hindi)" in the header language selector. It is not 
persisted, so select it again after a full reload.
   3. Open Clients, then a client (tabs, Actions menu, Add forms), then 
Transfers, Standing Instructions.
   
   ## Screenshots
   
   ### Recording, before and after
   
   Same script, same mocked data, Hindi selected. Left is upstream `main`, 
right is this PR.
   
   
https://github.com/user-attachments/assets/875973cd-2f98-40df-89db-f6ba562a33f5
   
   <details>
   <summary>Separate before and after recordings</summary>
   
   **Before** (upstream `main`):
   
   
https://github.com/user-attachments/assets/872d07b3-1eff-4cc3-b6b8-689435b5faf3
   
   **After** (this PR):
   
   
https://github.com/user-attachments/assets/e5c9ff33-d97c-4b26-97e0-d48cc0f4b1bf
   
   </details>
   
   ### Stills
   
   <!-- Fill the four rows with the matching files from 
pr-255-evidence/comparison, or delete this whole Stills section. -->
   
   | Screen | Before | After |
   | --- | --- | --- |
   | Client details | <!-- 05-view-details, before --> | <!-- 05-view-details, 
after --> |
   | Actions menu | <!-- 06-view-actions-menu, before --> | <!-- 
06-view-actions-menu, after --> |
   | Add address form | <!-- 27-address-form, before --> | <!-- 
27-address-form, after --> |
   | Standing instructions | <!-- 32-standing-instructions, before --> | <!-- 
32-standing-instructions, after --> |
   
   ## AI assistance (optional)
   
   <!-- If generative AI materially assisted this contribution, optionally 
state the tool or model and
   the harness or workflow used. The contributor remains responsible for the 
submitted change. -->
   
   - Tool / model:
   - Harness / workflow:
   
   ## Checklist
   
   <!-- Check each item, or explain why it does not apply. -->
   
   - [x] I did not hand-edit generated files under `src/app/api/`.
   - [x] New component or service code uses the adapter boundary in 
`src/app/core/adapters/` instead of direct browser globals or imperative 
third-party APIs. (Not applicable: catalogue-only change, no component or 
service code.)
   - [x] User-facing strings use translation keys. (This PR only adds values 
for keys that already exist in `en.json`.)
   - [x] I added or updated tests appropriate to this change, or explained why 
tests were not needed. (Not needed: the change is catalogue data. `i18n:check` 
guards it and the existing unit and mocked e2e runs above pass.)
   - [x] UI workflow changes include suitable e2e coverage, including 
real-backend testing where relevant. (Not applicable: no workflow changed.)
   - [x] Commits are signed — see [Commit 
Signing](CONTRIBUTING.md#commit-signing) in CONTRIBUTING.md.
   - [ ] I followed the [AI-assisted contributions 
guidance](CONTRIBUTING.md#ai-assisted-contributions).
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to