Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/app/login/login.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,9 @@ <h1 class="hero-title-minimal">{{ 'APP_NAME' | translate }}</h1>
mat-icon-button
(click)="reloadSettings()"
class="reload-button"
title="Reload Settings"
matTooltip="Reload Settings"
attr.aria-label="Reload Settings"
[title]="'labels.buttons.Reload Settings' | translate"
matTooltip="{{ 'labels.buttons.Reload Settings' | translate }}"
[attr.aria-label]="'labels.buttons.Reload Settings' | translate"
>
<mifosx-m3-icon name="refresh"></mifosx-m3-icon>
</button>
Expand Down
6 changes: 3 additions & 3 deletions src/app/login/login.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
/** Angular Imports */
import { Component, OnInit, OnDestroy, inject } from '@angular/core';
import { Router } from '@angular/router';

/** rxjs Imports */

import { Subscription } from 'rxjs';
Expand Down Expand Up @@ -46,7 +45,7 @@ import { MatMenuTrigger, MatMenu, MatMenuItem } from '@angular/material/menu';
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
import { M3IconComponent } from '../shared/m3-ui/m3-icon/m3-icon.component';

import { MatTooltip } from '@angular/material/tooltip';
import { VersionService } from '../system/version.service';

/**
Expand All @@ -69,7 +68,8 @@ import { VersionService } from '../system/version.service';
FaIconComponent,
MatMenu,
MatMenuItem,
M3IconComponent
M3IconComponent,
MatTooltip
]
})
export class LoginComponent implements OnInit, OnDestroy {
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/cs-CS.json
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,7 @@
"Remove": "Odstranit",
"Request OTP": "Požádejte o OTP",
"Reschedule": "Přeplánovat",
"Reload Settings": "Reload Settings",
"Resend OTP": "Znovu odeslat jednorázové heslo",
"Reset": "Resetovat",
"Reset Password": "Obnovit heslo",
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/de-DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@
"Remove": "Entfernen",
"Request OTP": "OTP anfordern",
"Reschedule": "Neu planen",
"Reload Settings": "Reload Settings",
"Resend OTP": "OTP erneut senden",
"Reset": "Zurücksetzen",
"Reset Password": "Passwort zurücksetzen",
Expand Down
3 changes: 2 additions & 1 deletion src/assets/translations/en-US.json
Original file line number Diff line number Diff line change
Expand Up @@ -619,7 +619,8 @@
"Add Entry": "Add Entry",
"PRINT": "Print",
"DONE": "Done",
"Submitting": "Submitting"
"Submitting": "Submitting",
"Reload Settings": "Reload Settings"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify whether "labels.buttons.Reload Settings" exists in every translation file.
python - <<'PY'
import json, glob
files = sorted(glob.glob("src/assets/translations/*.json"))
missing = []
for f in files:
    with open(f, "r", encoding="utf-8") as fh:
        data = json.load(fh)
    ok = (
        isinstance(data, dict)
        and "labels" in data
        and isinstance(data["labels"], dict)
        and "buttons" in data["labels"]
        and isinstance(data["labels"]["buttons"], dict)
        and "Reload Settings" in data["labels"]["buttons"]
    )
    if not ok:
        missing.append(f)

print("Missing key in:" if missing else "Key present in all translation files.")
for m in missing:
    print(m)
PY

Repository: openMF/web-app

Length of output: 493


🏁 Script executed:

# Search for "Reload Settings" usage in code
rg "Reload Settings" --type ts --type tsx --type js --type jsx --type html -A 2 -B 2

Repository: openMF/web-app

Length of output: 85


🏁 Script executed:

# Check if npm run translations:extract exists
cat package.json | jq '.scripts | keys[] | select(contains("extract"))' 2>/dev/null || echo "No extract scripts found"

Repository: openMF/web-app

Length of output: 80


🏁 Script executed:

# Check if en-US.json is properly formatted with prettier (look at line 623 and surrounding context)
head -n 630 src/assets/translations/en-US.json | tail -n 15

Repository: openMF/web-app

Length of output: 577


🏁 Script executed:

# Search for "Reload Settings" usage in all code files (retry with correct approach)
rg "Reload Settings" --type ts --type js --type html -A 2 -B 2 2>/dev/null || rg "Reload Settings" --include="*.ts" --include="*.js" --include="*.html" -A 2 -B 2

Repository: openMF/web-app

Length of output: 654


🏁 Script executed:

# Check if Prettier is configured and whether it processes JSON
cat .prettierrc* 2>/dev/null || cat package.json | jq '.prettier' 2>/dev/null || echo "No prettier config found as separate file"

Repository: openMF/web-app

Length of output: 206


🏁 Script executed:

# Verify that the PR actually changed line 623 (check if this is a new addition)
git diff --no-color src/assets/translations/en-US.json | head -40

Repository: openMF/web-app

Length of output: 40


🏁 Script executed:

# Check if the JSON file would pass prettier formatting check
npx prettier --check src/assets/translations/en-US.json 2>&1 | head -20

Repository: openMF/web-app

Length of output: 272


Add missing "Reload Settings" key to all 12 locale files.

The key labels.buttons.Reload Settings added at line 623 of en-US.json is missing from: cs-CS.json, de-DE.json, es-CL.json, es-MX.json, fr-FR.json, it-IT.json, ko-KO.json, lt-LT.json, lv-LV.json, ne-NE.json, pt-PT.json, and sw-SW.json.

Without translations in these locales, users will see the raw key labels.buttons.Reload Settings in tooltips, titles, and ARIA labels instead of a translated label, degrading UX and accessibility. Run npm run translations:extract as specified in the coding guidelines when adding new i18n strings.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/assets/translations/en-US.json` at line 623, Add the new i18n key
labels.buttons.Reload Settings (introduced in en-US.json) to the 12 missing
locale files (cs-CS, de-DE, es-CL, es-MX, fr-FR, it-IT, ko-KO, lt-LT, lv-LV,
ne-NE, pt-PT, sw-SW) with appropriate translations or placeholder values, then
run the extraction script (npm run translations:extract) to update translation
scaffolding and ensure the new key propagates to tooltips, titles, and ARIA
labels; reference the key labels.buttons.Reload Settings when making the changes
so the string is present and consistent across all locales.

},
"catalogs": {
"Interest payment waiver": "Interest Payment Waiver",
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/es-CL.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@
"Remove": "Eliminar",
"Request OTP": "Solicitar OTP",
"Reschedule": "Reprogramar",
"Reload Settings": "Reload Settings",
"Resend OTP": "Reenviar OTP",
"Reset": "Reiniciar",
"Reset Password": "Restablecer la contraseña",
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/es-MX.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@
"Remove": "Eliminar",
"Request OTP": "Solicitar OTP",
"Reschedule": "Reprogramar",
"Reload Settings": "Reload Settings",
"Resend OTP": "Reenviar OTP",
"Reset": "Reiniciar",
"Reset Password": "Restablecer la contraseña",
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/fr-FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@
"Remove": "Retirer",
"Request OTP": "Demander un OTP",
"Reschedule": "Reprogrammer",
"Reload Settings": "Reload Settings",
"Resend OTP": "Renvoyer OTP",
"Reset": "Réinitialiser",
"Reset Password": "réinitialiser le mot de passe",
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/it-IT.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@
"Remove": "Rimuovere",
"Request OTP": "Richiedi OTP",
"Reschedule": "Riprogrammare",
"Reload Settings": "Reload Settings",
"Resend OTP": "Invia nuovamente OTP",
"Reset": "Ripristina",
"Reset Password": "Resetta la password",
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/ko-KO.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@
"Remove": "제거하다",
"Request OTP": "OTP 요청",
"Reschedule": "일정 변경",
"Reload Settings": "Reload Settings",
"Resend OTP": "OTP 재전송",
"Reset": "초기화",
"Reset Password": "암호를 재설정",
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/lt-LT.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@
"Remove": "Pašalinti",
"Request OTP": "Prašyti OTP",
"Reschedule": "Suplanuoti iš naujo",
"Reload Settings": "Reload Settings",
"Resend OTP": "Iš naujo siųsti OTP",
"Reset": "Nustatyti iš naujo",
"Reset Password": "Atstatyti slaptažodį",
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/lv-LV.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@
"Remove": "Noņemt",
"Request OTP": "Pieprasīt OTP",
"Reschedule": "Pārplānot",
"Reload Settings": "Reload Settings",
"Resend OTP": "Atkārtoti sūtīt OTP",
"Reset": "Atiestatīt",
"Reset Password": "Atiestatīt paroli",
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/ne-NE.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@
"Remove": "हटाउनुहोस्",
"Request OTP": "OTP अनुरोध गर्नुहोस्",
"Reschedule": "पुन: तालिका",
"Reload Settings": "Reload Settings",
"Resend OTP": "OTP पुन: पठाउनुहोस्",
"Reset": "रिसेट गर्नुहोस्",
"Reset Password": "पासवर्ड रिसेट",
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/pt-PT.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@
"Remove": "Remover",
"Request OTP": "Solicitar OTP",
"Reschedule": "Reprogramar",
"Reload Settings": "Reload Settings",
"Resend OTP": "Reenviar OTP",
"Reset": "Reiniciar",
"Reset Password": "Redefinir senha",
Expand Down
1 change: 1 addition & 0 deletions src/assets/translations/sw-SW.json
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@
"Remove": "Ondoa",
"Request OTP": "Omba OTP",
"Reschedule": "Panga upya",
"Reload Settings": "Reload Settings",
"Resend OTP": "Tuma tena OTP",
"Reset": "Weka upya",
"Reset Password": "Weka upya Nenosiri",
Expand Down
Loading