Skip to content

adding schema and data for admin console v0.4 #157

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 136 commits into
base: master
Choose a base branch
from

Conversation

Shreya-egov
Copy link
Collaborator

@Shreya-egov Shreya-egov commented Jun 26, 2025

Summary by CodeRabbit

  • New Features

    • Configurable form builder: field properties panel, field type mappings, form configs/templates, and app config schemas.
    • Details renderer for Individual, Task, and Household views.
    • Master landing screens with role-based navigation.
    • Email template for user credential communications.
  • Localization

    • Added en_MZ, fr_MZ, pt_MZ translations across core modules (digit-ui, appconfiguration, campaign manager, HR, home, beneficiary, bednet delivery/registration, common).

@Shreya-egov Shreya-egov requested a review from a team as a code owner June 26, 2025 11:50
@Shreya-egov Shreya-egov requested review from GhanshyamRawat-eGov and removed request for a team June 26, 2025 11:50
Copy link

coderabbitai bot commented Jun 26, 2025

Walkthrough

Adds numerous HCM Admin Console MDMS data files, JSON Schemas, and localization catalogs (en_MZ, fr_MZ, pt_MZ) including detail renderer, field properties/type mappings, email template, form schemas, help/landing configs, and extensive translation bundles.

Changes

Cohort / File(s) Summary of Changes
Admin Console — Data configs
mdms/HCM/AdminConsole v0.4/Data/HCM-ADMIN-CONSOLE.DETAILS_RENDERER_CONFIG, .../HCM-ADMIN-CONSOLE.FieldPropertiesPanelConfig, .../HCM-ADMIN-CONSOLE.FieldTypeMappingConfig, .../HCM-ADMIN-CONSOLE.emailTemplate, mdms/HCM/AdminConsole v0.4/Data/commonHCMUiConfig.MasterLandingScreen
Added JSON configuration files: detail renderer mappings for entities, field properties panel config, field-type mapping list, email template reference, and master landing screen navigation dataset.
Admin Console — Schemas
mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.AppConfigCache, .../AppModuleSchema, .../AppScreenLocalisationConfig, .../DETAILS_RENDERER_CONFIG, .../FieldPropertiesPanelConfig, .../FieldTypeMappingConfig, .../FormConfig, .../FormConfigTemplate, .../emailTemplate, .../commonUiConfig.HelpTutorial, .../commonHCMUiConfig.MasterLandingScreen
Introduced JSON Schema (Draft-07) definitions for app config cache, app module, screen localisation, details renderer, field properties panel, field type mapping, form config/template, email template, help tutorial, and master landing screen.
Localisation — en_MZ
localisation/HCM Admin Console/v0.4/en_MZ/digit-ui, .../hcm-admin-schemas, .../hcm-appconfiguration, .../hcm-base-deliveryflow-bednet, .../hcm-base-registrationflow-bednet, .../hcm-beneficiary, .../hcm-campaignmanager, .../hcm-common, .../hcm-home, .../hcm-hr, localisation/HCM Admin Console/consolidated/en_MZ/*
Added English (Mozambique) translation catalogs across multiple modules (digit-ui, appconfiguration, delivery/registration flows, beneficiary, campaign manager, common, home, HR). Many entries include placeholders and some HTML fragments.
Localisation — fr_MZ
localisation/HCM Admin Console/v0.4/fr_MZ/..., localisation/HCM Admin Console/consolidated/fr_MZ/...
Added French (Mozambique) translation catalogs for corresponding modules (digit-ui, hcm-admin-schemas, appconfiguration, delivery/registration flows, beneficiary, common, home, HR).
Localisation — pt_MZ
localisation/HCM Admin Console/v0.4/pt_MZ/..., localisation/HCM Admin Console/consolidated/pt_MZ/...
Added Portuguese (Mozambique) translation catalogs for corresponding modules (digit-ui, hcm-admin-schemas, appconfiguration, delivery/registration flows, registration, beneficiary, campaign manager, common, home).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • elzanmathew-eGov
  • jagankumar-egov

Poem

I thump my paw at configs new,
Fields and schemas lined in view.
Three tongues hum beneath the sun,
Emails, screens — together run.
Hop—details render, work is done. 🥕

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch Adminconsole-v0.4

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 13

🧹 Nitpick comments (10)
mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.AppModuleSchema (2)

4-4: Prefer an empty string over null for textual metadata

Several MDMS ingestion pipelines treat null values as missing rather than nullable.
Unless you explicitly need tri-state semantics, replace null with "" (or drop the key) to avoid unexpected coercion errors at runtime.


16-18: Consider constraining code via regex / enum

code is the primary identifier and already unique.
Adding "pattern": "^[A-Z0-9_.-]+$" (or an explicit enum) gives early feedback on invalid module codes.

mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.MobileAppLink (1)

17-19: Validate appLink as an RFC-3986 URI

-        "appLink": {
-            "type": "string"
+        "appLink": {
+            "type": "string",
+            "format": "uri"
         },

This gives instant feedback if an invalid deep-link is registered.

mdms/HCM/AdminConsole v0.4/Schemas/commonUiConfig.HelpTutorial (2)

30-33: Mark url as a URI

-        "url": {
-            "type": "string"
+        "url": {
+            "type": "string",
+            "format": "uri"
         },

Small change, significant validation win.


36-38: order should be an integer

Tutorial ordering can’t be fractional; swap "number" for "integer" unless you have a compelling use-case.

mdms/HCM/AdminConsole v0.4/Data/HCM-ADMIN-CONSOLE.FieldTypeMappingConfig (1)

120-130: number vs numeric – potential duplication

Both "type": "number" and "type": "numeric" map to numeric inputs.
Unless the renderer treats them differently, consider merging to a single canonical key to avoid split handling logic.

mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.FormConfig (1)

151-151: Consider constraining the validation value property.

The value property in validations accepts any type ({}), which might be too permissive. Consider adding type constraints based on the validation type.

-                                        "value": {},
+                                        "value": {
+                                            "oneOf": [
+                                                {"type": "string"},
+                                                {"type": "number"},
+                                                {"type": "boolean"}
+                                            ]
+                                        },
mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.FormConfigTemplate (1)

151-151: Consider constraining the validation value property.

Same issue as in FormConfig - the value property accepts any type which might be too permissive.

mdms/HCM/AdminConsole v0.4/Data/HCM-ADMIN-CONSOLE.FieldPropertiesPanelConfig (1)

196-198: Consolidate regex patterns for consistency.

The same regex pattern ^(0|[1-9]\\d*)$ is repeated multiple times for number validation. Consider extracting this to a constant or configuration to ensure consistency and maintainability.

Also applies to: 226-228, 469-471, 498-500

mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.emailTemplate (1)

4-4: Avoid null for the top-level description field

description is expected to be either a non-empty string or omitted. Supplying null can violate JSON-schema validation tools that assume the type is always string.

-        "description": null,
+        "description": "Schema for referencing an email template",
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8fa1f3c and 2e279c9.

📒 Files selected for processing (15)
  • mdms/HCM/AdminConsole v0.4/Data/HCM-ADMIN-CONSOLE.DETAILS_RENDERER_CONFIG (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Data/HCM-ADMIN-CONSOLE.FieldPropertiesPanelConfig (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Data/HCM-ADMIN-CONSOLE.FieldTypeMappingConfig (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Data/HCM-ADMIN-CONSOLE.emailTemplate (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.AppConfigCache (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.AppModuleSchema (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.AppScreenLocalisationConfig (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.DETAILS_RENDERER_CONFIG (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.FieldPropertiesPanelConfig (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.FieldTypeMappingConfig (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.FormConfig (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.FormConfigTemplate (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.MobileAppLink (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.emailTemplate (1 hunks)
  • mdms/HCM/AdminConsole v0.4/Schemas/commonUiConfig.HelpTutorial (1 hunks)
🔇 Additional comments (11)
mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.AppModuleSchema (1)

19-38: features[].disabled default is good – add explicit description

A short description such as "Indicates if the feature flag is turned off" helps future readers; JSON Schema allows the description attribute alongside default.

mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.MobileAppLink (1)

20-22: hierarchy could be an enum if the set is fixed

If the hierarchy levels are predefined (e.g. INDIVIDUAL, HOUSEHOLD…), enumerating them here will prevent drift.

mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.AppConfigCache (1)

20-28: Double-check data types

campaignNumber and projectType look like identifiers rather than free-text.
If they’re numeric or constrained strings, tighten the schema ("pattern" or "type": "integer").
Please verify with the consuming code.

mdms/HCM/AdminConsole v0.4/Data/HCM-ADMIN-CONSOLE.FieldTypeMappingConfig (1)

210-220: Mixed presence of order may hamper deterministic sorting

Several entries omit order.
If UI rendering relies on this for deterministic placement, undefined values can introduce non-determinism across engines.
Either make order mandatory or document fallback behaviour.

mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.AppScreenLocalisationConfig (1)

59-61: Potential JSON syntax error – verify comma placement

Exactly as in the previous file, make sure there’s a comma after the definition block. Currently the excerpt shows none, which will invalidate the file.

-            }
+            },
         "isActive": true
mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.FormConfig (2)

8-8: Verify JSON Schema Draft-07 compliance.

Ensure that the schema follows JSON Schema Draft-07 specifications correctly, particularly with custom extensions.


15-18: Verify x-unique extension support.

The x-unique property is a custom extension that may not be supported by all JSON Schema validators. Ensure your validation system supports this uniqueness constraint.

mdms/HCM/AdminConsole v0.4/Data/HCM-ADMIN-CONSOLE.FieldPropertiesPanelConfig (2)

448-455: Consider adding bindTo property for consistency.

The fieldType configuration (lines 448-455) lacks a bindTo property while most other fields have one. Verify if this is intentional or if it should bind to a specific property.


370-386: Let’s avoid ES6 template literals (which triggered the parse error) and re-run the test using simple string concatenation:

#!/bin/bash
# Create a plain JS file without backticks
cat << 'EOF' > testPatterns.js
const patterns = [
  "^[a-zA-Z]+$",
  "^\\d+$",
  "^[a-zA-Z0-9]+$"
];
const testStrings = ["abc", "123", "abc123", "abc@123", ""];

patterns.forEach(function(pattern) {
  const regex = new RegExp(pattern);
  console.log("Testing pattern: " + pattern);
  testStrings.forEach(function(str) {
    console.log("  '" + str + "' " + (regex.test(str) ? "matches" : "does not match"));
  });
  console.log();
});
EOF

node testPatterns.js
mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.emailTemplate (1)

13-15: Confirm that the custom x-unique annotation is processed by your MDMS tooling

x-unique is non-standard JSON-Schema. If any downstream validator that does not recognise the annotation is invoked (e.g. open-source linters, IDE plugins), it will silently ignore the uniqueness requirement.
Please double-check that:

  1. The MDMS ingestion pipeline supports x-unique.
  2. A data-level uniqueness check is actually enforced.

If this is not guaranteed, consider adding an integration/unit test or a pipeline step that validates the data set for duplicates.

mdms/HCM/AdminConsole v0.4/Data/HCM-ADMIN-CONSOLE.emailTemplate (1)

1-12: Validate the data file against the new schema

Before merging, verify that every object in this array satisfies:

  • subjectCode is unique (per x-unique rule).
  • bodyCodes is a non-empty array of strings.

Running an automated check in CI avoids runtime failures when MDMS is loaded.

#!/bin/bash
# Validate emailTemplate data against its schema using the python `jsonschema` package.
pip install --quiet jsonschema
python - <<'PY'
import json, sys, pathlib
from jsonschema import Draft7Validator

schema_path = pathlib.Path("mdms/HCM/AdminConsole v0.4/Schemas/HCM-ADMIN-CONSOLE.emailTemplate")
data_path   = pathlib.Path("mdms/HCM/AdminConsole v0.4/Data/HCM-ADMIN-CONSOLE.emailTemplate")

schema = json.loads(schema_path.read_text())
data   = json.loads(data_path.read_text())

validator = Draft7Validator(schema["definition"])
errors = list(validator.iter_errors(data))
if errors:
    for e in errors:
        print(f"Validation error: {e.message}", file=sys.stderr)
    sys.exit(1)

# explicit uniqueness check
subject_codes = [obj["subjectCode"] for obj in data]
if len(subject_codes) != len(set(subject_codes)):
    print("Duplicate subjectCode detected", file=sys.stderr)
    sys.exit(1)
print("✔ Data file validates successfully")
PY

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 37

🧹 Nitpick comments (46)
localisation/HCM Admin Console/consolidated/fr_MZ/hcm-appconfiguration (12)

129-139: Make CMN_PAGE vs CMN_SCREEN translatable distinctions

Currently both translate to “Écran”. “Page” better reflects CMN_PAGE.

Apply this diff:

         {
             "code": "CMN_PAGE",
-            "message": "Écran",
+            "message": "Page",
             "module": "hcm-appconfiguration",
             "locale": "fr_MZ"
         },
         {
             "code": "CMN_SCREEN",
             "message": "Écran",
             "module": "hcm-appconfiguration",
             "locale": "fr_MZ"
         },

105-109: Improve translation: “App configuration redesign” → “Refonte de la configuration de l'application”

“Conception d'applications” changes meaning.

Apply this diff:

-            "message": "Conception d'applications",
+            "message": "Refonte de la configuration de l'application",

87-91: Fix awkward phrasing (“Aperçu de l'aperçu du ménage”)

Redundant wording; suggest concise phrasing.

Apply this diff:

-            "message": "Aperçu de l'aperçu du ménage",
+            "message": "Aperçu du ménage",

363-373: Ensure taxonomy consistency: “catégorie 1/2” (not “grade 2”)

Align RESOURCE1 and RESOURCE2 wording.

Apply this diff:

         {
             "code": "RESOURCE1",
             "message": "Moustiquaire de lit de catégorie 1",
             "module": "hcm-appconfiguration",
             "locale": "fr_MZ"
         },
         {
             "code": "RESOURCE2",
-            "message": "Moustiquaire de lit de grade 2",
+            "message": "Moustiquaire de lit de catégorie 2",
             "module": "hcm-appconfiguration",
             "locale": "fr_MZ"
         },

435-439: Capitalize language name

Match “Anglais/Français” capitalization.

Apply this diff:

-            "message": "portugais",
+            "message": "Portugais",

177-181: Localize product nouns in messages: “Elements” → “Éléments”

If the UI tab is localized elsewhere to “Éléments”, mirror it here for consistency.

Apply this diff:

-            "message": "Dans Elements, vous pouvez modifier les libellés, les titres et les champs des formulaires. Vous pouvez personnaliser le nom, le type et le comportement de chaque champ pour répondre aux besoins de votre campagne.",
+            "message": "Dans Éléments, vous pouvez modifier les libellés, les titres et les champs des formulaires. Vous pouvez personnaliser le nom, le type et le comportement de chaque champ pour répondre aux besoins de votre campagne.",

489-493: Polish translations: “Modifier individuellement” → “Modifier l'individu”; “populateur d'ID” → “Générateur d'ID”

Improve clarity and naturalness.

Apply this diff:

         {
             "code": "editIndividual",
-            "message": "Modifier individuellement",
+            "message": "Modifier l'individu",
             "module": "hcm-appconfiguration",
             "locale": "fr_MZ"
         },
         {
             "code": "idPopulator",
-            "message": "populateur d'ID",
+            "message": "Générateur d'ID",
             "module": "hcm-appconfiguration",
             "locale": "fr_MZ"
         },

Also applies to: 495-499


27-31: Pluralize where appropriate: properties of “fields” (plural)

Headings should reflect multiple fields.

Apply this diff:

         {
             "code": "APPCONFIG_HEAD_FIELDS",
-            "message": "Configurer les propriétés du champ",
+            "message": "Configurer les propriétés des champs",
             "module": "hcm-appconfiguration",
             "locale": "fr_MZ"
         },
@@
         {
             "code": "APPCONFIG_SUBHEAD_FIELDS",
-            "message": "Propriétés du champ",
+            "message": "Propriétés des champs",
             "module": "hcm-appconfiguration",
             "locale": "fr_MZ"
         },

Also applies to: 75-79


9-13: “Custom pattern” likely refers to a model/regex, not “logic”

Prefer “Modèle personnalisé” (or “Motif personnalisé” if regex). “Logique” changes meaning.

Apply this diff:

-            "message": "Logique personnalisée",
+            "message": "Modèle personnalisé",

195-199: Singular vs plural for LOGIC/LOGICS

This entry is for LOGIC (singular) but the message says “Dans Logiques”. Make it singular to avoid confusion.

Apply this diff:

-            "message": "Dans Logiques, vous pouvez modifier les validations et la logique associées à l'attribut sélectionné",
+            "message": "Dans Logique, vous pouvez modifier les validations et la logique associées à l'attribut sélectionné",

111-115: Tweak phrasing for “AcknowledgementDescription”

Make it natural French.

Apply this diff:

-            "message": "Remerciements Description",
+            "message": "Description de l'accusé de réception",

1-518: Automate locale-key validation with CI checks

We ran the proposed validation script against
localisation/HCM Admin Console/consolidated/fr_MZ/hcm-appconfiguration and confirmed it catches the issues you highlighted:

• Non-ASCII codes found
– CMP_DRAWER_NO_CONFIG_ERROR_LÓGICA
– CMP_DRAWER_WHAT_IS_LÓGICA

• Case-insensitive collisions detected
– deliveryConditionDialog vs deliveryConditiondialog

• Identical messages reused under different codes (partial list)
– “Longueur minimale” : APPCONFIG_MIN_LENGTH, FIELD_DRAWER_LABEL_MINLENGTH
– “Écran” : CMN_PAGE, CMN_SCREEN
– …and more

Integrating this into CI (e.g., as a Git pre-commit hook or GitHub Action) would:

  • Validate JSON syntax
  • Enforce ASCII-only code names
  • Detect case-insensitive duplicates
  • (Optionally) Flag identical messages across codes
  • (Optionally) Compare key sets across locales

Let me know if you’d like a ready-to-drop-in GitHub Action or pre-commit hook!

localisation/HCM Admin Console/consolidated/fr_MZ/digit-ui (15)

9-13: Avoid hardcoded currency “(Rs)” in localized text. Prefer a placeholder or currency from runtime.

“Rs” is India-specific and likely wrong for fr_MZ/Mozambique (commonly MZN). Recommend removing the suffix or using a token (e.g., {currency}).

Apply:

-            "message": "Montant de la facture (Rs)",
+            "message": "Montant de la facture",

If your UI supports interpolation, consider:

  •        "message": "Montant de la facture ({currency})",
    

45-55: Consumer code labels read oddly in French; align wording and keep consistency.

  • “Code de la consommation” is incorrect. Prefer “Numéro de client” (or “Code client”) and keep both PT/WS labels consistent.
-            "message": "Code de la consommation",
+            "message": "Numéro de client",
-            "message": "Numéro de consommateur",
+            "message": "Numéro de client",

If domain requires “consommateur”, keep both as “Numéro de consommateur” consistently.


141-145: Untranslated English string.

“User Management” should be localized.

-            "message": "User Management",
+            "message": "Gestion des utilisateurs",

201-205: Use “Accueil” instead of “Maison” for UI “Home”. Standard FR UX wording.

Multiple keys use “Maison”; suggest “Accueil” for consistency.

-            "message": "Maison",
+            "message": "Accueil",

(Applies to ACTION_TEST_HOME, ES_COMMON_HOME, Home, WORKBENCH_HOME.)

Also applies to: 639-643, 723-727, 903-907


273-277: “Workbench” should be “Espace de travail”, not “Établi”.

“Établi” is a physical workbench.

-            "message": "Établi",
+            "message": "Espace de travail",

489-517: Logout copy reads incomplete; improve phrasing and diacritics.

  • Capitalize and complete confirmation sentence; use “Êtes-vous…”.
-            "message": "se déconnecter ?",
+            "message": "Voulez-vous vous déconnecter ?",
-            "message": "Etes-vous sûr de vouloir",
+            "message": "Êtes-vous sûr de vouloir vous déconnecter ?",
-            "message": "Oui, déconnexion",
+            "message": "Oui, se déconnecter",

531-535: Use “adresse e‑mail” instead of “e‑mail” for clarity.

Minor copy improvement.

-            "message": "L'e-mail n'est pas configuré",
+            "message": "L'adresse e-mail n'est pas configurée",

663-667: Capitalize label-style strings.

-            "message": "politique de confidentialité",
+            "message": "Politique de confidentialité",

687-691: Include ordinal in “Niveau 1”.

Current message “Niveau” loses the “1” from the code.

-            "message": "Niveau",
+            "message": "Niveau 1",

855-859: Verify tenant names and code style; “MZ” maps to Mozambique, not “Afrique”.

  • “TENANT_TENANTS_MZ” message shows “Afrique”; likely should be “Mozambique”.
  • Key “TENANT_TENANTS_MZ CORPORATION” contains a space (style inconsistency vs snake_case and dotted codes elsewhere).

If appropriate:

-            "message": "Afrique",
+            "message": "Mozambique",

Consider standardizing key style (e.g., TENANT_TENANTS_MZ_CORPORATION) or adding an alias entry. Please confirm intended display names with product/MDMS owners.

Also applies to: 861-865


873-883: Use “paludisme” in French.

“Malaria” → “paludisme”.

-            "message": "Consortium de la Malaria",
+            "message": "Consortium de lutte contre le paludisme",

(Applies to both ULBGRADE KC1 and ULBGRADE_KC1.)


741-745: Capitalize first letter.

-            "message": "mot de passe ?",
+            "message": "Mot de passe ?",

381-385: French UI convention prefers “Enregistrer” over “Sauvegarder”.

Not blocking; align with broader FR locale if applicable.

-            "message": "Sauvegarder",
+            "message": "Enregistrer",

195-199: “Employé” vs “utilisateur” — pick one concept and keep it consistent.

  • You use “Créer un utilisateur” but later “Mot de passe de l'employé…”. Align glossary depending on domain (HRMS vs Admin Console).

If this is user management (not HR employee records), consider:

-            "message": "Créer un utilisateur",
+            "message": "Créer un employé",

or change the other occurrences to “utilisateur”. Please confirm with the product owner.

Also applies to: 699-703, 717-721


855-865: Remove trailing whitespace from “My Campaign search” keys

A quick scan of the fr_MZ catalog turned up one entry with a trailing space in its code key. While no duplicate codes or other non-recommended characters were detected in this file, the trailing space must be removed consistently across all locales and configuration files to avoid runtime lookup failures.

• Affected entries:
– localisation/HCM Admin Console/consolidated/fr_MZ/digit-ui (line 735)
– localisation/HCM Admin Console/consolidated/pt_MZ/digit-ui (line 705)
– localisation/HCM Admin Console/consolidated/en_MZ/digit-ui (line 20367)
– mdms/HCM/.../A.action-test.json (lines 547 & 550 in both v0.2 and v0.3 folders)

• Unaffected entries:
– Codes at lines 855–865 (TENANT_TENANTS_MZ and TENANT_TENANTS_MZ CORPORATION) have no trailing spaces or duplicates.
– ACTION_TEST_APP_CONFIGURATION_3.0 at lines 165–169 appears only once per locale and contains no trailing whitespace.

Suggested change (example diff in fr_MZ):

-    "code": "My Campaign search ",
+    "code": "My Campaign search",

After trimming, update the same key in pt_MZ, en_MZ, and the A.action-test.json files to keep all references in sync.

localisation/HCM Admin Console/consolidated/en_MZ/hcm-common (11)

57-61: Leading space in message placeholder string.

The message starts with a space, which renders visually and may break snapshot tests.

-            "message": " {membersPerNet} members per resource, and a maximum of {maxBednets} resources can be given.",
+            "message": "{membersPerNet} members per resource, and a maximum of {maxBednets} resources can be given.",

Optional copy edit (if product approves): “Each bednet covers {membersPerNet} members; maximum {maxBednets} bednets can be given.”


765-769: Fix spacing before punctuation.

“Download failed !” → “Download failed!” for consistency.

-            "message": "Download failed !",
+            "message": "Download failed!",

915-919: Incorrect message for CORE_COMMON_NULL.

“Retry” is unrelated. Use a neutral placeholder like “N/A”.

-            "message": "Retry",
+            "message": "N/A",

849-853: Singular vs plural mismatch for METER/METERS.

Make the singular key show “meter”.

-        {
-            "code": "CORE_COMMON_METER",
-            "message": "meters",
+        {
+            "code": "CORE_COMMON_METER",
+            "message": "meter",
             "module": "hcm-common",
             "locale": "en_MZ"
         },

Also applies to: 855-859


1251-1255: Contradictory mobile number rules; align wording.

One says “max of 10 digits,” another “9 or 10 digits.” Align both to the actual validation.

Assuming 9 or 10 digits is correct:

-            "message": "Mobile number should be max of 10 digits",
+            "message": "Mobile number must be 9 or 10 digits",

If 10 only is correct, update the other key accordingly.

Also applies to: 1257-1261


1317-1321: Use named placeholders instead of bare {}.

Unlabelled braces are brittle; prefer named tokens to match the rest of the bundle.

-            "message": "Maximum {} characters are allowed",
+            "message": "Maximum {max} characters are allowed",
-            "message": "Max age can be {} months",
+            "message": "Max age can be {maxMonths} months",
-            "message": "Min age can be {} months",
+            "message": "Min age can be {minMonths} months",

Also applies to: 1323-1327, 1335-1339


1353-1357: Code contains a space (“MZ_ADMIN_LLIN Bednet”).

Spaces in keys are fragile. Propose underscore.

-            "code": "MZ_ADMIN_LLIN Bednet",
+            "code": "MZ_ADMIN_LLIN_BEDNET",

Verify all references before renaming to avoid breakage.


1485-1489: Fix spelling in user-facing messages.

  • “varients” → “variants”
  • “succesfully” → “successfully”
  • “Vomitting” → “Vomiting”
-            "message": "Failed to fetch product varients!",
+            "message": "Failed to fetch product variants!",
-            "message": "Profile updated succesfully",
+            "message": "Profile updated successfully",
-            "message": "Vomitting",
+            "message": "Vomiting",

Also applies to: 1491-1495, 1839-1843


669-673: Grammar tweak.

COMPLETED → message should be “Completed”.

-            "message": "Complete",
+            "message": "Completed",

1245-1249: Normalize “Visited/Delivered” terminology.

There’s a mix of codes/messages:

  • HOUSEHOLD_OVER_VIEW_DELIVERED_ICON_LABEL → “visited”
  • “Not Delivered” → “Not Visited”
  • VISITED → “Visited ” (trailing space)
  • delivered/householdOverViewDeliveredIconLabel/householdOverViewNotDeliveredIconLabel variants

Pick one concept (Visited vs Delivered) and align both codes and messages.

  • Remove trailing space from VISITED message.
  • If “Visited” is the canonical concept, update all related messages to “Visited/Not Visited” and consider renaming lower/camelCase codes to UPPER_SNAKE_CASE in a follow-up (breaking change).

Also applies to: 1389-1393, 1833-1837, 1917-1921, 1923-1927, 1929-1933


1425-1471: Hard-coded facility codes in i18n catalog.

PJ_FAC_* entries look like data values (IDs + labels), not UI strings. These are better sourced from MDMS/domain data, not the localization bundle, to avoid churn and translation noise.

Consider moving these to a reference data source and driving labels from there; keep i18n for generic UI strings.

localisation/HCM Admin Console/consolidated/pt_MZ/digit-ui (1)

465-475: Confirm logout confirmation split across two keys

“CORE_LOGOUT_WEB_CONFIRMATION_MESSAGE” = “Tem certeza que quer” and “CORE_LOGOUT_MESSAGE” = “sair?” look like a split sentence. If concatenation isn’t guaranteed in UI, users may see fragments.

Option A (single key):

-            "code": "CORE_LOGOUT_WEB_CONFIRMATION_MESSAGE",
-            "message": "Tem certeza que quer",
+            "code": "CORE_LOGOUT_CONFIRMATION",
+            "message": "Tem certeza que quer sair?",

Option B: ensure deterministic concatenation order in UI and keep both.

localisation/HCM Admin Console/consolidated/pt_MZ/hcm-home (2)

231-235: Confirm placeholder style for runtime values

“DATA_SYNC_INFO_CONTENT” uses “{}”. Please confirm the i18n interpolation format expected by the client (e.g., {count}, {0}, or %s). Mismatched placeholders render literally.

Example if ICU-style is supported:

-            "message": "Ainda há {} transações a serem sincronizadas",
+            "message": "Ainda há {count} transações a serem sincronizadas",

459-487: Normalize code naming for campaign-type success labels

Codes like “IRS-mz_ADMINISTRATION_SUCCESS”, “LLIN-mz_ADMINISTRATION_SUCCESS”, “MR-DN-mz_ADMINISTRATION_SUCCESS” mix hyphens and lowercase segments; others use underscores and caps. Inconsistent casing/characters increase lookup risk.

Suggested pattern (confirm with product):

  • IRS_MZ_ADMINISTRATION_SUCCESS
  • LLIN_MZ_ADMINISTRATION_SUCCESS
  • MR_DN_MZ_ADMINISTRATION_SUCCESS

Also applies to: 501-511

localisation/HCM Admin Console/consolidated/pt_MZ/hcm-base-deliveryflow-bednet (3)

123-127: Improve scanner label phrasing

“Recursos de digitalização” reads like a noun phrase. Action-oriented label is clearer.

-            "message": "Recursos de digitalização",
+            "message": "Digitalizar recursos",

249-259: Consolidate duplicate success/failure delivery codes

You have three variants: SUCCESSFULDELIVERY, SUCCESSFUL_DELIVERY, DELIVERYDETAILS_SUCCESSFULDELIVERY (and same for unsuccessful). Keeping multiple synonyms risks drift.

Option: keep SUCCESSFUL_DELIVERY and UNSUCCESSFUL_DELIVERY as canonical, deprecate others after checking usage. I can generate a migration plan once we confirm which codes are referenced in UI.

Also applies to: 429-439, 489-493


471-481: Suspicious keys with locale suffix in code (Task.en_INIndex/en_MZIndex)

Embedding locale suffixes into code values is unusual for i18n keys. Please confirm they are required; otherwise, consider removing or renaming to semantic keys.

localisation/HCM Admin Console/consolidated/pt_MZ/hcm-common (2)

75-79: Localize to pt_MZ conventions (optional sweep)

  • BUS: “Ônibus” is pt-BR; pt-PT/pt-MZ prefer “Autocarro”.
  • TRAIN: “Trem” → “Comboio”.
  • DIARRHOEA: “Diarréia” → “Diarreia”.
  • CORE_COMMON_LANGUAGE: “Linguagem” → “Idioma”.
-            "message": "Ônibus",
+            "message": "Autocarro",
-            "message": "Trem",
+            "message": "Comboio",
-            "message": "Diarréia",
+            "message": "Diarreia",
-            "message": "Linguagem",
+            "message": "Idioma",

If you have a style guide for pt_MZ, I can align the whole bundle in one pass.

Also applies to: 1749-1753, 1077-1081, 801-805


1215-1219: Consistency: delivered/visited labels and capitalization

“visitado” appears in lowercase in some places; others use “Visitado”. Standardize casing and avoid duplicate semantic keys unless required.

Possible tweaks:

  • HOUSEHOLD_OVER_VIEW_DELIVERED_ICON_LABEL → “Visitado”
  • Keep either “VISITED” or “delivered”, not both, unless UI mandates both.

Also applies to: 1863-1867, 1779-1783

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 65a83f4 and 64e6f83.

📒 Files selected for processing (17)
  • localisation/HCM Admin Console/consolidated/en_MZ/hcm-appconfiguration (1 hunks)
  • localisation/HCM Admin Console/consolidated/en_MZ/hcm-base-deliveryflow-bednet (1 hunks)
  • localisation/HCM Admin Console/consolidated/en_MZ/hcm-base-registrationflow-bednet (1 hunks)
  • localisation/HCM Admin Console/consolidated/en_MZ/hcm-common (1 hunks)
  • localisation/HCM Admin Console/consolidated/en_MZ/hcm-home (1 hunks)
  • localisation/HCM Admin Console/consolidated/fr_MZ/digit-ui (1 hunks)
  • localisation/HCM Admin Console/consolidated/fr_MZ/hcm-appconfiguration (1 hunks)
  • localisation/HCM Admin Console/consolidated/fr_MZ/hcm-base-deliveryflow-bednet (1 hunks)
  • localisation/HCM Admin Console/consolidated/fr_MZ/hcm-base-registrationflow-bednet (1 hunks)
  • localisation/HCM Admin Console/consolidated/fr_MZ/hcm-common (1 hunks)
  • localisation/HCM Admin Console/consolidated/fr_MZ/hcm-home (1 hunks)
  • localisation/HCM Admin Console/consolidated/pt_MZ/digit-ui (1 hunks)
  • localisation/HCM Admin Console/consolidated/pt_MZ/hcm-appconfiguration (1 hunks)
  • localisation/HCM Admin Console/consolidated/pt_MZ/hcm-base-deliveryflow-bednet (1 hunks)
  • localisation/HCM Admin Console/consolidated/pt_MZ/hcm-base-registrationflow-bednet (1 hunks)
  • localisation/HCM Admin Console/consolidated/pt_MZ/hcm-common (1 hunks)
  • localisation/HCM Admin Console/consolidated/pt_MZ/hcm-home (1 hunks)
✅ Files skipped from review due to trivial changes (9)
  • localisation/HCM Admin Console/consolidated/en_MZ/hcm-home
  • localisation/HCM Admin Console/consolidated/fr_MZ/hcm-home
  • localisation/HCM Admin Console/consolidated/en_MZ/hcm-base-deliveryflow-bednet
  • localisation/HCM Admin Console/consolidated/fr_MZ/hcm-base-deliveryflow-bednet
  • localisation/HCM Admin Console/consolidated/fr_MZ/hcm-base-registrationflow-bednet
  • localisation/HCM Admin Console/consolidated/pt_MZ/hcm-base-registrationflow-bednet
  • localisation/HCM Admin Console/consolidated/en_MZ/hcm-appconfiguration
  • localisation/HCM Admin Console/consolidated/pt_MZ/hcm-appconfiguration
  • localisation/HCM Admin Console/consolidated/en_MZ/hcm-base-registrationflow-bednet
🔇 Additional comments (9)
localisation/HCM Admin Console/consolidated/fr_MZ/hcm-appconfiguration (1)

297-313: Consolidate duplicate INVALID_REQUEST entries across locales

The consolidated and v0.4 JSONs for fr_MZ, pt_MZ and en_MZ each declare three separate entries—INVALID_REQUEST, INVALID_REQUEST1 and INVALID_REQUEST2—all mapping to the same message and module. A global search (rg -nP '\bINVALID_REQUEST(1|2)?\b') shows these variants only live in the localization files and aren’t otherwise referenced, suggesting they’re redundant. Before removing them, please:

• Confirm no downstream code or API clients expect INVALID_REQUEST1 or INVALID_REQUEST2.
• Verify the message‐loader treats the code field as the unique key (so dropping extras won’t change behavior).
• Update any tests or documentation that mention the numbered variants.

Files to clean up:

  • localisation/HCM Admin Console/consolidated/*_MZ/hcm-appconfiguration
  • localisation/HCM Admin Console/v0.4/*_MZ/hcm-appconfiguration

Example removal diff (apply in each locale file):

-        {
-            "code": "INVALID_REQUEST1",
-            "message": "Le formulaire a été mal configuré. Veuillez l'actualiser, le vérifier et le corriger.",
-            "module": "hcm-appconfiguration",
-            "locale": "fr_MZ"
-        },
-        {
-            "code": "INVALID_REQUEST2",
-            "message": "Le formulaire a été mal configuré. Veuillez l'actualiser, le vérifier et le corriger.",
-            "module": "hcm-appconfiguration",
-            "locale": "fr_MZ"
-        },
localisation/HCM Admin Console/consolidated/fr_MZ/digit-ui (3)

1-914: Overall: JSON structure and shape look good.

  • Valid JSON array; all entries consistently carry code/message/module/locale with module=digit-ui and locale=fr_MZ.
  • Nice coverage for HCM Admin Console strings.

165-169: Dot in code “ACTION_TEST_APP_CONFIGURATION_3.0” — confirm key constraints.

Some i18n loaders or MDMS consumers treat dots specially (namespace separators). Ensure dots are allowed for “code”.

If needed, add an alias without a dot:

+        {
+            "code": "ACTION_TEST_APP_CONFIGURATION_3_0",
+            "message": "Configuration de l'application",
+            "module": "digit-ui",
+            "locale": "fr_MZ"
+        },

771-799: Content sounds like SAP BW/HANA procedural steps — verify it belongs here.

The PRIVACY_HEADER_2_SUB_2_DESC_* strings reference BW/4, SRID, Business Document Server. Confirm this is intended for HCM Admin Console privacy/help copy.

localisation/HCM Admin Console/consolidated/en_MZ/hcm-common (2)

1671-1693: Stock reconciliation validations look good; avoid earlier duplicate.

The grouped validations (BELOW_MIN, EXCEEDED_MAX, EXPECTS_NUMBER, IS_REQUIRED) are consistent and discoverable together. After removing the duplicate at the file top, this block is clean.


1-1934: Add CI checks for i18n hygiene

To prevent silent breakages and ensure consistent locale data, we should add automated validations in our CI pipeline to catch:

• Duplicate codes
– e.g. “STOCK_RECONCILIATION_COUNT_EXPECTS_NUMBER” appears twice (once with a leading space and once without)
• Inconsistent code formatting
– Keys with leading spaces (" STOCK_RECONCILIATION_COUNT_EXPECTS_NUMBER")
– Non-UPPER_SNAKE_CASE keys like coreCommonOk, delivered, householdOverViewDeliveredIconLabel
• Empty or blank messages
– e.g. "message": " " in SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR
• Trailing spaces in messages
– e.g. "VISITED "
• Placeholder mismatches
– Bare {} or un-escaped braces in messages

Because our previous script didn’t reliably locate files (paths with spaces), please verify by running an updated scan locally or manually inspecting the paths. Once we confirm the patterns, we can integrate checks (using jq, ripgrep, etc.) into CI for:

  • JSON validity
  • Duplicate key detection (case-sensitive and insensitive)
  • Code-format linting (enforce UPPER_SNAKE_CASE)
  • Message formatting rules (no trailing spaces, no blank values, correct placeholder syntax)
localisation/HCM Admin Console/consolidated/fr_MZ/hcm-common (1)

1-1875: Well-structured localization file

The JSON structure is valid and follows a consistent pattern with proper module and locale specifications. The translations appear to be comprehensive and cover all necessary UI elements for the HCM Admin Console.

localisation/HCM Admin Console/consolidated/pt_MZ/digit-ui (2)

9-13: Update pt_MZ invoice translations

Please adjust the two keys in localisation/HCM Admin Console/consolidated/pt_MZ/digit-ui as follows and then confirm whether the UI layer should still append a currency code (in which case use “(MT)” for Mozambican metical):

• File: localisation/HCM Admin Console/consolidated/pt_MZ/digit-ui
– Lines 9–10 (ABG_COMMON_TABLE_COL_BILL_AMOUNT)

 {
     "code": "ABG_COMMON_TABLE_COL_BILL_AMOUNT",
-      "message": "Valor da conta (Rs)",
+      "message": "Valor da fatura",
     "module": "digit-ui",
     "locale": "pt_MZ"
 },

– Lines 21–22 (ABG_COMMON_TABLE_COL_BILL_NO)

 {
     "code": "ABG_COMMON_TABLE_COL_BILL_NO",
-      "message": "Projeto de Lei nº.",
+      "message": "Nº da fatura",
     "module": "digit-ui",
     "locale": "pt_MZ"
 },

• If the UI requires a currency suffix in this label, please replace “(Rs)” with “(MT)” instead of removing it, and propagate that change consistently across all en_MZ and fr_MZ digit-ui files as well.


825-835: Action Required: Confirm and Correct Mozambique Tenant Entries

I’ve verified that in all three locales (en_MZ, fr_MZ, pt_MZ) the tenant codes for Mozambique are mis-labeled and one code contains an unexpected space. Specifically:

• File: localisation/HCM Admin Console/consolidated/pt_MZ/digit-ui (similar in en_MZ and fr_MZ) around lines 825–835

  • "code": "TENANT_TENANTS_MZ", "message": "África"
  • "code": "TENANT_TENANTS_MZ CORPORATION", "message": "África"

• The message “África” (or “Africa”/“Afrique”) is incorrect for Mozambique — it should reflect the country name (e.g., “Moçambique” in Portuguese).
• The second code key includes a space before “CORPORATION”, inconsistent with the underscore naming convention used elsewhere.

Proposed diffs (please adjust the “CORPORATION” display value per business needs):

--- a/localisation/HCM Admin Console/consolidated/pt_MZ/digit-ui
@@ -830,7 +830,7 @@
         {
             "code": "TENANT_TENANTS_MZ",
-            "message": "África",
+            "message": "Moçambique",
             "module": "digit-ui",
             "locale": "pt_MZ"
         },
@@ -836,7 +836,7 @@
         {
-            "code": "TENANT_TENANTS_MZ CORPORATION",
-            "message": "África",
+            "code": "TENANT_TENANTS_MZ_CORPORATION",
+            "message": "Moçambique",
             "module": "digit-ui",
             "locale": "pt_MZ"
         },

Repeat analogous updates in:

  • localisation/HCM Admin Console/consolidated/en_MZ/digit-ui (change "Africa""Mozambique", remove space in code)
  • localisation/HCM Admin Console/consolidated/fr_MZ/digit-ui (change "Afrique""Mozambique", remove space in code)

If these entries are placeholders, please share the authoritative tenant names and any variations (e.g., a distinct display label for the “CORPORATION” tenant) so we can apply correct values consistently across all locales.

Comment on lines +2 to +7
{
"code": " STOCK_RECONCILIATION_COUNT_EXPECTS_NUMBER",
"message": "Count should be numeric",
"module": "hcm-common",
"locale": "en_MZ"
},
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Duplicate key and leading whitespace in code; remove the first occurrence.

  • Duplicate of STOCK_RECONCILIATION_COUNT_EXPECTS_NUMBER exists later (Lines 1683-1687).
  • This first occurrence also has a leading space in the code value, which will break lookups.

Recommend deleting this first object to keep the grouped validations together below.

Apply this diff:

-        {
-            "code": " STOCK_RECONCILIATION_COUNT_EXPECTS_NUMBER",
-            "message": "Count should be numeric",
-            "module": "hcm-common",
-            "locale": "en_MZ"
-        },
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{
"code": " STOCK_RECONCILIATION_COUNT_EXPECTS_NUMBER",
"message": "Count should be numeric",
"module": "hcm-common",
"locale": "en_MZ"
},
🤖 Prompt for AI Agents
In localisation/HCM Admin Console/consolidated/en_MZ/hcm-common around lines 2
to 7, remove the entire JSON object starting with the duplicated "
STOCK_RECONCILIATION_COUNT_EXPECTS_NUMBER" entry (it has a leading space in the
code key and duplicates the valid entry later at lines ~1683-1687); delete only
this first occurrence so the grouped validation entry later remains, and verify
the file remains valid JSON (no trailing commas) after removal.

Comment on lines +8 to +14
{
"code": "ACTION_TEST_",
"message": "Action Test",
"module": "hcm-common",
"locale": "en_MZ"
},
{
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Test artifact present (“ACTION_TEST_”); remove.

Production bundles should not ship with test keys.

-        {
-            "code": "ACTION_TEST_",
-            "message": "Action Test",
-            "module": "hcm-common",
-            "locale": "en_MZ"
-        },
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{
"code": "ACTION_TEST_",
"message": "Action Test",
"module": "hcm-common",
"locale": "en_MZ"
},
{
🤖 Prompt for AI Agents
In localisation/HCM Admin Console/consolidated/en_MZ/hcm-common around lines 8
to 14 there is a test artifact entry with "code": "ACTION_TEST_" that must be
removed from the production bundle; delete that entire JSON object (or remove
the array element) and adjust commas so the JSON remains valid, then run the
localisation/JSON validation or lint step to confirm no syntax or duplicate-key
issues remain.

Comment on lines +705 to +709
"code": "CORE_COMMON_CITY",
"message": "Country/State/City",
"module": "hcm-common",
"locale": "en_MZ"
},
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Mislabelled city string.

“CORE_COMMON_CITY” should map to “City,” not “Country/State/City.”

-            "message": "Country/State/City",
+            "message": "City",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"code": "CORE_COMMON_CITY",
"message": "Country/State/City",
"module": "hcm-common",
"locale": "en_MZ"
},
"code": "CORE_COMMON_CITY",
"message": "City",
"module": "hcm-common",
"locale": "en_MZ"
},
🤖 Prompt for AI Agents
In localisation/HCM Admin Console/consolidated/en_MZ/hcm-common around lines 705
to 709, the translation entry for "CORE_COMMON_CITY" is mislabelled as
"Country/State/City"; update the "message" value to "City" so the key correctly
maps to the singular label, preserving the rest of the object (code, module,
locale) and formatting.

Comment on lines +831 to +835
"code": "CORE_COMMON_LOADING_TEXT'",
"message": "Loading...",
"module": "hcm-common",
"locale": "en_MZ"
},
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Stray apostrophe in code; duplicate key.

“CORE_COMMON_LOADING_TEXT'” appears to be a typo/duplicate of CORE_COMMON_LOADING_TEXT. Remove this entry to avoid collisions.

-        {
-            "code": "CORE_COMMON_LOADING_TEXT'",
-            "message": "Loading...",
-            "module": "hcm-common",
-            "locale": "en_MZ"
-        },
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"code": "CORE_COMMON_LOADING_TEXT'",
"message": "Loading...",
"module": "hcm-common",
"locale": "en_MZ"
},
🤖 Prompt for AI Agents
In localisation/HCM Admin Console/consolidated/en_MZ/hcm-common around lines 831
to 835, the JSON entry has a stray apostrophe in the "code" value
("CORE_COMMON_LOADING_TEXT'") creating a duplicate/typo; remove the entire
incorrect entry or correct the code key to "CORE_COMMON_LOADING_TEXT" (ensuring
no duplicate keys remain) so the localization file contains only the valid,
non-duplicated code entry.

Comment on lines +903 to +907
"code": "CORE_COMMON_NO_MATCH_FOUN",
"message": "No Matches found",
"module": "hcm-common",
"locale": "en_MZ"
},
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Duplicate/typo key: CORE_COMMON_NO_MATCH_FOUN vs CORE_COMMON_NO_MATCH_FOUND.

Keep the correctly spelled key. Remove the misspelled one to avoid ambiguity.

-        {
-            "code": "CORE_COMMON_NO_MATCH_FOUN",
-            "message": "No Matches found",
-            "module": "hcm-common",
-            "locale": "en_MZ"
-        },

Also applies to: 909-913

🤖 Prompt for AI Agents
In localisation/HCM Admin Console/consolidated/en_MZ/hcm-common around lines
903–907 (and similarly 909–913), there are duplicate misspelled keys
"CORE_COMMON_NO_MATCH_FOUN" that should be removed and replaced by the correctly
spelled "CORE_COMMON_NO_MATCH_FOUND"; delete the incorrect entries and ensure
only the correctly spelled key remains with the intended message and same
metadata (module, locale), keeping localization ordering and commas valid after
removal.

Comment on lines +813 to +817
"code": "CORE_COMMON_LOADING_TEXT'",
"message": "Carregando...",
"module": "hcm-common",
"locale": "pt_MZ"
},
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Remove stray/duplicate or misspelled codes

  • “CORE_COMMON_LOADING_TEXT'” (trailing quote) duplicates “CORE_COMMON_LOADING_TEXT”.
  • “CORE_COMMON_NO_MATCH_FOUN” is misspelled and duplicates “CORE_COMMON_NO_MATCH_FOUND”.
  • “CORE_COMMON_NULL” has a misleading message (“Tentar novamente”) and overlaps with “CORE_COMMON_RETRY”.
  • “SECURITY_ISSUEs” duplicates “SECURITY_ISSUES” (case).
  • “coreCommonOk” duplicates “CORE_COMMON_OK”.

Proposed removals:

-            "code": "CORE_COMMON_LOADING_TEXT'",
-            "message": "Carregando...",
-            "module": "hcm-common",
-            "locale": "pt_MZ"
-            "code": "CORE_COMMON_NO_MATCH_FOUN",
-            "message": "Nenhuma correspondência encontrada",
-            "module": "hcm-common",
-            "locale": "pt_MZ"
-            "code": "CORE_COMMON_NULL",
-            "message": "Tentar novamente",
-            "module": "hcm-common",
-            "locale": "pt_MZ"
-            "code": "SECURITY_ISSUEs",
-            "message": "Problema de segurança",
-            "module": "hcm-common",
-            "locale": "pt_MZ"
-            "code": "coreCommonOk",
-            "message": "OK",
-            "module": "hcm-common",
-            "locale": "pt_MZ"

Also applies to: 885-889, 891-895, 897-901, 1509-1513, 1857-1861

🤖 Prompt for AI Agents
In localisation/HCM Admin Console/consolidated/pt_MZ/hcm-common around lines
813-817 (and similarly at 885-889, 891-895, 897-901, 1509-1513, 1857-1861),
remove or consolidate stray duplicate/misspelled keys: delete the entry with key
"CORE_COMMON_LOADING_TEXT'" (trailing quote) and any duplicate of
"CORE_COMMON_LOADING_TEXT"; fix or remove "CORE_COMMON_NO_MATCH_FOUN" and
replace with the correct "CORE_COMMON_NO_MATCH_FOUND"; remove or reconcile
"CORE_COMMON_NULL" so it no longer conflicts with "CORE_COMMON_RETRY" (make
message consistent with retry purpose or remove the NULL entry); normalize
"SECURITY_ISSUEs" to "SECURITY_ISSUES" (case) and remove duplicate; remove
"coreCommonOk" and keep the canonical "CORE_COMMON_OK"; ensure no duplicate keys
remain and run a locale key validation after edits.

Comment on lines +1 to +764
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "STOCK_DETAILS_RECEIPT_SHOWCASE_VEHICLE_NUMBER",
"message": "Digite o número do veículo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SUPERVISOR_HOME_SHOWCASE_COMPLAINTS",
"message": "Clique neste botão para registrar uma reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SUPERVISOR_HOME_SHOWCASE_MY_CHECKLIST",
"message": "Clique neste botão para preencher as listas de verificação atribuídas",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR",
"message": " ",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SUPERVISOR_HOME_SHOWCASE_SYNC_DATA",
"message": "Clique neste botão para sincronizar registros manualmente",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_DETAILS_SHOWCASE_ADMINISTRATIVE_UNIT",
"message": "O sistema captura o limite administrativo e não é editável",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_DETAILS_SHOWCASE_DATE_OF_RECEIPT",
"message": "Selecione a data em que a transação de ações está ocorrendo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_DETAILS_SHOWCASE_WAREHOUSE_NAME",
"message": "Selecione o armazém onde a transação de estoque está ocorrendo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_CHECKLIST",
"message": "Clique neste botão para preencher as listas de verificação atribuídas",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_DELETE_ALL",
"message": "Clique neste botão para apagar todos os dados disponíveis no dispositivo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_FILE_COMPLAINT",
"message": "Clique neste botão para registrar uma reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_INVENTORY_REPORT",
"message": "Clique neste botão para visualizar relatórios de transações de ações",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_MANAGE_STOCK",
"message": "Clique neste botão para registrar dados de transações de ações",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_STOCK_RECONCILIATION",
"message": "Clique neste botão para conciliar o estoque disponível no armazém",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_SYNC_DATA",
"message": "Clique neste botão para sincronizar registros manualmente",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "YEARS",
"message": "anos",
"module": "hcm-home",
"locale": "pt_MZ"
}
]
Copy link

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Run localized consistency checks for this file


🏁 Script executed:

#!/bin/bash
set -euo pipefail
f='localisation/HCM Admin Console/consolidated/pt_MZ/hcm-home'

jq empty "$f"

echo "Duplicate codes:"
jq -r '.[].code' "$f" | sort | uniq -d

echo "Codes containing spaces or trailing spaces:"
jq -r '.[].code' "$f" | awk '/ /{print}' | nl -ba

echo "Blank/whitespace messages:"
jq -r '.[] | select((.message|tostring)|gsub("[[:space:]]";"")=="") | .code' "$f"

Length of output: 595


To avoid the nl-related failure and ensure complete checks, please re-run consistency validation with this updated script:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

f='localisation/HCM Admin Console/consolidated/pt_MZ/hcm-home'

# Verify valid JSON
jq empty "$f"

# Check for duplicate codes
echo "Duplicate codes:"
jq -r '.[].code' "$f" | sort | uniq -d || echo "None"

# Check for codes containing any spaces (including trailing)
echo "Codes containing spaces or trailing spaces:"
jq -r '.[].code' "$f" | grep -nE '[[:space:]]' || echo "None"

# Check for messages that are empty or only whitespace
echo "Blank/whitespace messages:"
jq -r '.[] 
  | select((.message | gsub("[[:space:]]";"")=="")) 
  | .code' "$f" || echo "None"

Length of output: 757


Fix invalid code key and provide a non-empty message

The following issues were identified in localisation/HCM Admin Console/consolidated/pt_MZ/hcm-home:

  • The entry at line 46 uses a code key with a space ("Delete all_HELP"). Code identifiers must be uppercase snake_case without spaces.
  • The entry for SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR has an empty/whitespace-only message. Every code must include a meaningful localized string.

Please update as follows:

--- a/localisation/HCM Admin Console/consolidated/pt_MZ/hcm-home
+++ b/localisation/HCM Admin Console/consolidated/pt_MZ/hcm-home
@@
-        {
-            "code": "Delete all_HELP",
-            "message": "Isto é apenas para fins de teste. Por favor, não clique neste botão.",
-            "module": "hcm-home",
-            "locale": "pt_MZ"
-        },
+        {
+            "code": "DELETE_ALL_HELP",
+            "message": "Isto é apenas para fins de teste. Por favor, não clique neste botão.",
+            "module": "hcm-home",
+            "locale": "pt_MZ"
+        },
@@
-        {
-            "code": "SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR",
-            "message": " ",
-            "module": "hcm-home",
-            "locale": "pt_MZ"
-        },
+        {
+            "code": "SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR",
+            "message": "<forneça uma descrição do indicador de progresso, por ex.: “Exibe o progresso de sincronização”>",
+            "module": "hcm-home",
+            "locale": "pt_MZ"
+        },
  • Rename Delete all_HELPDELETE_ALL_HELP to conform to code-key conventions.
  • Replace the empty SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR message with an appropriate Portuguese string.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
[
{
"code": "ADMINISTRATIVEPOST",
"message": "Posto Administrativo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "ADMINSTRATIVEPOST",
"message": "Posto administrativo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "APPCONFIG_ERROR",
"message": "Falha ao buscar a configuração do aplicativo!",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "CHECKLIST_DATA_SHOWCASE_ADMINISTRATIVE_UNIT",
"message": "O sistema captura o limite administrativo e não é editável",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "CHECKLIST_DATA_SHOWCASE_DATE",
"message": "Exibe a data atual por padrão e não é editável",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "CHECKLIST_LIST_SHOWCASE_OPEN",
"message": "Clique neste botão para abrir uma lista de verificação preenchida",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINTS_VALIDATION_REQUIRED_ERROR",
"message": "O campo não pode estar vazio",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_SHOWCASE_CONTACT",
"message": "Forneça os detalhes de contato do reclamante",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_SHOWCASE_DATE",
"message": "Exibe a data atual por padrão e não é editável",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_SHOWCASE_DESCRIPTION",
"message": "Forneça uma descrição da reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_SHOWCASE_NAME",
"message": "Insira o nome do reclamante",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_SHOWCASE_ORGANIZATION_UNIT",
"message": "O sistema captura o limite administrativo e não é editável",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_SHOWCASE_SELF_OR_OTHER",
"message": "Você pode fazer a reclamação em nome de outro usuário",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_SHOWCASE_SUBMIT",
"message": "Clique neste botão para enviar a reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_SHOWCASE_SUPERVISOR_CONTACT",
"message": "Insira os detalhes de contato do supervisor",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_SHOWCASE_SUPERVISOR_NAME",
"message": "Digite o nome do supervisor",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_VIEW_CONTACT",
"message": "Exibe os detalhes de contato do reclamante",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_VIEW_SHOWCASE_AREA",
"message": "Exibe a área administrativa da reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_VIEW_SHOWCASE_CLOSE",
"message": "Clique neste botão para encerrar a reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_VIEW_SHOWCASE_DATE",
"message": "Exibe a data em que a reclamação foi registrada",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_VIEW_SHOWCASE_DESCRIPTION",
"message": "Exibe a descrição fornecida",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_VIEW_SHOWCASE_NAME",
"message": "Exibe o nome do reclamante",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_VIEW_SHOWCASE_NUMBER",
"message": "Exibe o ID da reclamação gerada pelo sistema",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_VIEW_SHOWCASE_STATUS",
"message": "Exibe o status da reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_DETAILS_VIEW_SHOWCASE_TYPE",
"message": "Exibe o tipo de reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_INBOX_SHOWCASE_AREA",
"message": "Exibe a área administrativa da reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_INBOX_SHOWCASE_CREATE",
"message": "Clique neste botão para registrar uma nova reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_INBOX_SHOWCASE_DATE",
"message": "Exibe a data em que a reclamação foi registrada",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_INBOX_SHOWCASE_FILTER",
"message": "Clique neste botão para filtrar reclamações",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_INBOX_SHOWCASE_NUMBER",
"message": "Exibe o ID da reclamação gerada pelo sistema",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_INBOX_SHOWCASE_OPEN",
"message": "Clique neste botão para ver os detalhes da reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_INBOX_SHOWCASE_SEARCH",
"message": "Clique neste botão para pesquisar uma reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_INBOX_SHOWCASE_SORT",
"message": "Clique neste botão para classificar as reclamações",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_INBOX_SHOWCASE_STATUS",
"message": "Exibe o status da reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_INBOX_SHOWCASE_TYPE",
"message": "Exibe o tipo de reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_TYPE_SHOWCASE_COMPLAINT_TYPE",
"message": "Selecione o tipo de reclamação na lista",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "COMPLAINT_TYPE_SHOWCASE_COMPLAINT_TYPE_NEXT",
"message": "Selecione o tipo de reclamação na lista",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "CORRESPONDENCE",
"message": "Correspondência",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "DATA_SYNC_INFO_CONTENT",
"message": "Ainda há {} transações a serem sincronizadas",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "DATA_SYNC_INFO_LABEL",
"message": "Dados não sincronizados",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "DB_HELP",
"message": "Isto é apenas para fins de teste. Por favor, não clique neste botão.",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "DISTRIBUTOR_HOME_SHOWCASE_BENEFICIARIES",
"message": "Clique neste botão para realizar o cadastro e distribuição",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "DISTRIBUTOR_HOME_SHOWCASE_FILE_COMPLAINT",
"message": "Clique neste botão para registrar uma reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "DISTRIBUTOR_HOME_SHOWCASE_PROGRESS_BAR",
"message": "Exibe o progresso do usuário em relação à meta atribuída",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "DISTRIBUTOR_HOME_SHOWCASE_SYNC_DATA",
"message": "Clique neste botão para sincronizar registros manualmente",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "Delete all_HELP",
"message": "Isto é apenas para fins de teste. Por favor, não clique neste botão.",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "FACILITIES_ERROR",
"message": "Falha ao buscar instalações!",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HF_HOME_SHOWCASE_BENEFICIARY_LABEL",
"message": "Vitrine de Indicação de Beneficiários",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HF_HOME_SHOWCASE_MANAGE_ATTENDANCE",
"message": "Clique neste botão para registrar a presença dos usuários",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_BENEFICIARY_LABEL",
"message": "Beneficiários",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_BENEFICIARY_LABEL_HELP",
"message": "Clique neste botão para visualizar as famílias registradas e realizar a intervenção ou se quiser criar uma nova família.",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_BENEFICIARY_REFERRAL_LABEL",
"message": "Indicação de Beneficiário",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_CALL_BACK_LABEL",
"message": "Supervisor de Chamadas",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_CALL_BACK_LABEL_HELP",
"message": "Clique neste botão se quiser ligar para o supervisor e pedir ajuda.",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_CLOSE_HOUSEHOLD_LABEL",
"message": "Marca Fechada Domiciliar",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_DATA_SHARE_LABEL",
"message": "Compartilhar dados",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_DB_LABEL",
"message": "Banco de dados",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_FILE_COMPLAINT",
"message": "Apresentar reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_FILE_COMPLAINT_HELP",
"message": "Clique neste botão se quiser registrar uma reclamação ou ver reclamações anteriores.",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_MANAGE_ATTENDANCE_LABEL",
"message": "Gerenciar Presença",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_MANAGE_STOCK_LABEL",
"message": "Gerenciar estoque",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_MANAGE_STOCK_LABEL_HELP",
"message": "Clique neste botão para registrar a entrada e saída de estoques em seu depósito.",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_STOCK_RECONCILIATION_LABEL",
"message": "Reconciliação de estoque",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_STOCK_RECONCILIATION_LABEL_HELP",
"message": "Clique neste botão para verificar a contagem manual do estoque em relação ao estoque calculado disponível no seu depósito até a data.",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_SYNC_DATA_LABEL",
"message": "Sincronizar dados",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_SYNC_DATA_LABEL_HELP",
"message": "Sincronize todos os registros criados clicando no botão de sincronização. Execute esta ação duas vezes a cada vez.",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_TRANSIT_POST_LABEL",
"message": "Posto de Trânsito",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOME_VIEW_REPORTS_LABEL",
"message": "Ver relatórios",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOUSEHOLD_DETAILS_SHOWCASE_DATE_OF_REGISTRATION",
"message": "Exibe a data atual por padrão e não é editável",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOUSEHOLD_DETAILS_SHOWCASE_NUMBER_OF_MEMBERS_LIVING_IN_HOUSEHOLD",
"message": "Captura o número de membros que vivem na casa",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOUSEHOLD_LOCATION_SHOWCASE_ADDRESS",
"message": "Captura detalhes do endereço da família",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOUSEHOLD_LOCATION_SHOWCASE_ADMINISTRATIVE_AREA",
"message": "O sistema captura o limite administrativo e não é editável",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOUSEHOLD_LOCATION_SHOWCASE_LANDMARK",
"message": "Captura pontos de referência para ajudar a identificar a família",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "HOUSEHOLD_LOCATION_SHOWCASE_POSTAL_CODE",
"message": "Captura o código postal do domicílio",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "INDIVIDUAL_DETAILS_SHOWCASE_FIRST_NAME_OF_INDIVIDUAL",
"message": "Captura o primeiro nome do indivíduo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "INELIGIBLE",
"message": "Inelegível",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "IRS-mz_ADMINISTRATION_SUCCESS",
"message": "Sucesso na Administração",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "IRS.IEC.DISTRIBUTOR",
"message": "CEI",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "IRS.TEAM_FORMATION.DISTRIBUTOR",
"message": "Formação da equipe",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "IRS.TRAINING_SUPERVISION.DISTRIBUTOR",
"message": "Supervisão de Treinamento",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "LLIN-mz_ADMINISTRATION_SUCCESS",
"message": "Sucesso na Administração",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "METERS_NEAR",
"message": "metros",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "MONTHS",
"message": "meses",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "MR-DN-mz_ADMINISTRATION_SUCCESS",
"message": "Sucesso na Administração",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "MR-DN_ADMINISTRATION_SUCCESS",
"message": "Sucesso na Administração",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "MY_CHECK_LIST_LABEL",
"message": "Minha lista de verificação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "MY_CHECK_LIST_LABEL_HELP",
"message": "Clique neste botão para criar uma nova lista de verificação ou visualizar listas de verificação enviadas.",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "NON_MOBILE_USER_LABEL",
"message": "Usuários não móveis",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "NON_MOBILE_USER_QR_BTN_LABEL",
"message": "Mostrar código QR",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "NON_MOBILE_USER_QR_LABEL",
"message": "Código QR",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "OTHER",
"message": "Outros",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "PERMANENT",
"message": "Permanente",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "PRODUCTVARIENTS_ERROR",
"message": "Falha ao buscar variantes do produto!",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "PROGRESS_INDICATOR_HELP",
"message": "Ele mostra o progresso do indivíduo em relação à meta e quanto mais é necessário para completar a meta atribuída.",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "PROGRESS_INDICATOR_PREFIX_LABEL",
"message": "concluído",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "PROGRESS_INDICATOR_TITLE",
"message": "mais para atingir a meta",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "PROVINCE",
"message": "Província",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "QR_ATTENDANCE",
"message": "Presença",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "QR_INVENTORY",
"message": "Inventário",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "QR_LOGIN",
"message": "Login QR",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SELECT_CHECKLIST_SHOWCASE_SELECT_CHECKLIST",
"message": "Clique na lista de verificação que deseja preencher",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SELECT_STOCK_SHOWCASE_RECORD_STOCK_ISSUED",
"message": "Clique neste botão para registrar o estoque emitido",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SELECT_STOCK_SHOWCASE_RECORD_STOCK_RECEIPT",
"message": "Clique neste botão para registrar o estoque recebido",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SELECT_STOCK_SHOWCASE_RECORD_STOCK_RETURNED",
"message": "Clique neste botão para registrar o estoque devolvido",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "STOCK_DETAILS_RECEIPT_SHOWCASE_COMMENTS",
"message": "Você pode fornecer comentários se necessário",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "STOCK_DETAILS_RECEIPT_SHOWCASE_DRIVER_NAME",
"message": "Digite o nome do motorista neste campo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "STOCK_DETAILS_RECEIPT_SHOWCASE_NUMBER_OF_BEDNETS_RECEIVED",
"message": "Insira a quantidade de mosquiteiros recebidos",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "STOCK_DETAILS_RECEIPT_SHOWCASE_NUMBER_OF_NETS_INDICATED_ON_PACKING_SLIP",
"message": "Insira a quantidade de redes indicada na embalagem",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "STOCK_DETAILS_RECEIPT_SHOWCASE_PACKING_SLIP_ID",
"message": "Insira o ID do comprovante de embalagem",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "STOCK_DETAILS_RECEIPT_SHOWCASE_RECEIVED_FROM",
"message": "Selecione o armazém de onde você recebeu o estoque",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "STOCK_DETAILS_RECEIPT_SHOWCASE_TYPE_OF_TRANSPORT",
"message": "Selecione o tipo de transporte no menu suspenso",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "STOCK_DETAILS_RECEIPT_SHOWCASE_VEHICLE_NUMBER",
"message": "Digite o número do veículo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SUPERVISOR_HOME_SHOWCASE_COMPLAINTS",
"message": "Clique neste botão para registrar uma reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SUPERVISOR_HOME_SHOWCASE_MY_CHECKLIST",
"message": "Clique neste botão para preencher as listas de verificação atribuídas",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR",
"message": " ",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "SUPERVISOR_HOME_SHOWCASE_SYNC_DATA",
"message": "Clique neste botão para sincronizar registros manualmente",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_DETAILS_SHOWCASE_ADMINISTRATIVE_UNIT",
"message": "O sistema captura o limite administrativo e não é editável",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_DETAILS_SHOWCASE_DATE_OF_RECEIPT",
"message": "Selecione a data em que a transação de ações está ocorrendo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_DETAILS_SHOWCASE_WAREHOUSE_NAME",
"message": "Selecione o armazém onde a transação de estoque está ocorrendo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_CHECKLIST",
"message": "Clique neste botão para preencher as listas de verificação atribuídas",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_DELETE_ALL",
"message": "Clique neste botão para apagar todos os dados disponíveis no dispositivo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_FILE_COMPLAINT",
"message": "Clique neste botão para registrar uma reclamação",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_INVENTORY_REPORT",
"message": "Clique neste botão para visualizar relatórios de transações de ações",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_MANAGE_STOCK",
"message": "Clique neste botão para registrar dados de transações de ações",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_STOCK_RECONCILIATION",
"message": "Clique neste botão para conciliar o estoque disponível no armazém",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "WAREHOUSE_MANAGER_HOME_SHOWCASE_SYNC_DATA",
"message": "Clique neste botão para sincronizar registros manualmente",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "YEARS",
"message": "anos",
"module": "hcm-home",
"locale": "pt_MZ"
}
]
{
"code": "DELETE_ALL_HELP",
"message": "Isto é apenas para fins de teste. Por favor, não clique neste botão.",
"module": "hcm-home",
"locale": "pt_MZ"
},
// … other entries …
{
"code": "SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR",
"message": "<forneça uma descrição do indicador de progresso, por ex.: “Exibe o progresso de sincronização”>",
"module": "hcm-home",
"locale": "pt_MZ"
},
🤖 Prompt for AI Agents
In localisation/HCM Admin Console/consolidated/pt_MZ/hcm-home around lines 1 to
764, the JSON has an invalid code key "Delete all_HELP" (contains a space) and
SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR has an empty/whitespace-only message;
rename the code key to DELETE_ALL_HELP (uppercase, underscore) and replace the
SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR message with a meaningful Portuguese
string (for example: "Exibe o progresso do supervisor em relação à meta" or
another appropriate localized phrase) ensuring the JSON entry retains module and
locale fields.

Comment on lines +3 to +13
"code": "ADMINISTRATIVEPOST",
"message": "Posto Administrativo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "ADMINSTRATIVEPOST",
"message": "Posto administrativo",
"module": "hcm-home",
"locale": "pt_MZ"
},
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

De-duplicate and fix typo: ADMINISTRATIVEPOST vs ADMINSTRATIVEPOST

There are two near-identical codes, one with a typo. Keep one canonical key (no typos).

-        {
-            "code": "ADMINSTRATIVEPOST",
-            "message": "Posto administrativo",
-            "module": "hcm-home",
-            "locale": "pt_MZ"
-        },

If both are used, we can keep the correct one and add a temporary alias mapping during migration.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"code": "ADMINISTRATIVEPOST",
"message": "Posto Administrativo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "ADMINSTRATIVEPOST",
"message": "Posto administrativo",
"module": "hcm-home",
"locale": "pt_MZ"
},
{
"code": "ADMINISTRATIVEPOST",
"message": "Posto Administrativo",
"module": "hcm-home",
"locale": "pt_MZ"
},
🤖 Prompt for AI Agents
In localisation/HCM Admin Console/consolidated/pt_MZ/hcm-home around lines 3 to
13, there are duplicate entries for the same concept: "ADMINISTRATIVEPOST"
(correct) and "ADMINSTRATIVEPOST" (typo); remove the typo entry and keep the
canonical "ADMINISTRATIVEPOST" with the preferred message ("Posto
Administrativo" or consolidated casing), and if the old key is still referenced
elsewhere during migration, add a temporary alias mapping from
"ADMINSTRATIVEPOST" -> "ADMINSTRATIVEPOST" in your migration/lookup layer so
existing usages resolve to the canonical key until callers are updated.

Comment on lines +273 to +277
"code": "Delete all_HELP",
"message": "Isto é apenas para fins de teste. Por favor, não clique neste botão.",
"module": "hcm-home",
"locale": "pt_MZ"
},
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Avoid spaces in code: “Delete all_HELP” → “DELETE_ALL_HELP”

Spaces in codes are fragile; also align case with other keys.

-            "code": "Delete all_HELP",
+            "code": "DELETE_ALL_HELP",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"code": "Delete all_HELP",
"message": "Isto é apenas para fins de teste. Por favor, não clique neste botão.",
"module": "hcm-home",
"locale": "pt_MZ"
},
"code": "DELETE_ALL_HELP",
"message": "Isto é apenas para fins de teste. Por favor, não clique neste botão.",
"module": "hcm-home",
"locale": "pt_MZ"
},
🤖 Prompt for AI Agents
In localisation/HCM Admin Console/consolidated/pt_MZ/hcm-home around lines 273
to 277, the "code" value contains spaces and mixed case ("Delete all_HELP");
change it to a consistent constant-style key with no spaces and uppercase with
underscores (e.g., "DELETE_ALL_HELP"), and update any references/usages in the
codebase or translation tooling to match the new key so nothing breaks.

Comment on lines +687 to +691
"code": "SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR",
"message": " ",
"module": "hcm-home",
"locale": "pt_MZ"
},
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Blank message string

“SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR” has an empty message (“ ”). Provide helpful text or remove if unused.

-            "message": " ",
+            "message": "Exibe o progresso da equipe em relação às metas atribuídas",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"code": "SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR",
"message": " ",
"module": "hcm-home",
"locale": "pt_MZ"
},
"code": "SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR",
"message": "Exibe o progresso da equipe em relação às metas atribuídas",
"module": "hcm-home",
"locale": "pt_MZ"
},
🤖 Prompt for AI Agents
In localisation/HCM Admin Console/consolidated/pt_MZ/hcm-home around lines 687
to 691, the entry for "SUPERVISOR_HOME_SHOWCASE_PROGRESS_BAR" has an empty
message string; either supply an appropriate Portuguese (pt_MZ) translation for
the progress bar label/message that fits the context or remove the key if it is
not used anywhere; ensure the chosen text follows existing style (concise,
sentence-case) and update any tests or callers if you remove the key.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant