Skip to content

Support mobile number verification with progressive profiling.#10362

Open
Thisara-Welmilla wants to merge 1 commit into
wso2:masterfrom
Thisara-Welmilla:support-i18m
Open

Support mobile number verification with progressive profiling.#10362
Thisara-Welmilla wants to merge 1 commit into
wso2:masterfrom
Thisara-Welmilla:support-i18m

Conversation

@Thisara-Welmilla

Copy link
Copy Markdown
Contributor

@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds comprehensive translation support for password validation criteria messages. A new t() helper function enables runtime translation lookup with parameter interpolation, the ValidationCriteria component is refactored to retrieve translations dynamically, and validation message keys are added to resource bundles across nine language variants.

Changes

Password Validation Criteria Translation

Layer / File(s) Summary
i18n Translation Helper Function
react-ui-core/src/utils/i18n-utils.js
New t() function retrieves translation strings by key from a translations object, optionally interpolating {name} placeholders from a params object, and falling back to a provided default string when a key is not found.
Validation Criteria Component Translation Integration
react-ui-core/src/components/validation-criteria.js
getRuleLabel() function signature updated to accept optional translations parameter. All validator message branches (length, numeral, case, special character, confirm password, email, alphanumeric, unique character, repeated character) replaced with t() calls. ValidationCriteria component calls useTranslations() hook and passes translations to getRuleLabel().
Validation Criteria Resource Bundles
apps/accounts/.../i18n/Resources.properties, apps/authentication-portal/.../i18n/Resources.properties, ...Resources_de_DE.properties, ...Resources_es_ES.properties, ...Resources_fr_FR.properties, ...Resources_ja_JP.properties, ...Resources_pt_BR.properties, ...Resources_pt_PT.properties, ...Resources_zh_CN.properties
Added validation.criteria.* keys for validator error messages across accounts app and authentication portal, covering nine language variants. Keys include LengthValidator, NumeralValidator, UpperCaseValidator, LowerCaseValidator, SpecialCharacterValidator, ConfirmPasswordValidator, EmailFormatValidator, AlphanumericValidator, UniqueCharacterValidator, and RepeatedCharacterValidator variants with min, max, minAndMax, default, match, and format subtypes where applicable.

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error, 2 warnings)

Check name Status Explanation Resolution
Changeset Required ❌ Error Changeset file exists but is incomplete. It only documents @wso2is/console, missing @wso2is/myaccount and identity-apps-core changes. Add @wso2is/myaccount and @wso2is/identity-apps-core entries to the changeset with appropriate version updates to document all changed packages.
Title check ⚠️ Warning The PR title claims to support mobile number verification with progressive profiling, but the actual changes are entirely i18n/translation additions for password validation criteria with no mobile verification implementation. Update the title to accurately reflect the changes, such as 'Add internationalization for password validation criteria' or similar, or provide implementation for mobile verification.
Description check ⚠️ Warning The PR description only contains an issue link without addressing the required template sections including Purpose, Related Issues/PRs, or any of the mandatory checklist items. Complete the pull request template with Purpose section explaining the changes, fill out Related Issues/PRs appropriately, and complete the mandatory Developer Checklist items.
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • 🛠️ create changeset

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov

codecov Bot commented Jun 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.79%. Comparing base (9ece403) to head (06fc908).
⚠️ Report is 2860 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #10362       +/-   ##
===========================================
+ Coverage   55.88%   98.79%   +42.90%     
===========================================
  Files          42      165      +123     
  Lines        1020    51763    +50743     
  Branches      254      111      -143     
===========================================
+ Hits          570    51137    +50567     
- Misses        416      626      +210     
+ Partials       34        0       -34     
Flag Coverage Δ
@wso2is/core 58.95% <ø> (+3.06%) ⬆️
@wso2is/i18n 100.00% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 161 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
identity-apps-core/react-ui-core/src/components/validation-criteria.js (1)

222-229: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Decouple error detection from localized label text.

After localization, hasError compares backend error strings against translated labels, which can miss matches and show invalid rules as valid in non-English locales.

Suggested fix
-                    const label = getRuleLabel(rule, translations);
+                    const label = getRuleLabel(rule, translations);
+                    const defaultLabel = getRuleLabel(rule, {});
@@
-                    const hasError = errors.some((err) => err.includes(label));
+                    const hasError = errors.some((err) =>
+                        (defaultLabel && err.includes(defaultLabel)) || err.includes(label)
+                    );
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@identity-apps-core/react-ui-core/src/components/validation-criteria.js`
around lines 222 - 229, The code is matching backend error strings against the
localized label (getRuleLabel) which breaks in non-English locales; change
hasError to compare against a stable rule identifier instead of the translated
label — derive a stableKey from the rule (e.g., rule.id || rule.name ||
rule.key) and use errors.some(err => err.includes(stableKey)) to detect errors,
while keeping getRuleLabel(rule, translations) only for display; update
references to hasError and ensure stableKey is defined (fallback to a default
identifier if missing).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_de_DE.properties`:
- Around line 340-355: The listed validation keys
(validation.criteria.LengthValidator.*, NumeralValidator.*,
UpperCaseValidator.*, LowerCaseValidator.*, SpecialCharacterValidator.minOnly,
ConfirmPasswordValidator.match, EmailFormatValidator.format,
AlphanumericValidator.format, UniqueCharacterValidator.minOnly,
RepeatedCharacterValidator.maxOnly) are still in English in the de_DE resource
file; replace each value with an appropriate German translation while preserving
placeholders like {min} and {max} and punctuation and keeping the exact property
keys unchanged so localization works correctly (e.g., translate phrases such as
"Must be between {min} and {max} characters long." to German equivalents for the
corresponding keys).

In
`@identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_es_ES.properties`:
- Around line 340-355: Replace the English messages for the listed validation
keys in Resources_es_ES.properties with Spanish translations so Spanish users
see localized password/validation criteria; update the values for
validation.criteria.LengthValidator.minAndMax,
validation.criteria.LengthValidator.minOnly,
validation.criteria.LengthValidator.maxOnly,
validation.criteria.LengthValidator.default,
validation.criteria.NumeralValidator.minOnly,
validation.criteria.NumeralValidator.default,
validation.criteria.UpperCaseValidator.minOnly,
validation.criteria.UpperCaseValidator.default,
validation.criteria.LowerCaseValidator.minOnly,
validation.criteria.LowerCaseValidator.default,
validation.criteria.SpecialCharacterValidator.minOnly,
validation.criteria.ConfirmPasswordValidator.match,
validation.criteria.EmailFormatValidator.format,
validation.criteria.AlphanumericValidator.format,
validation.criteria.UniqueCharacterValidator.minOnly and
validation.criteria.RepeatedCharacterValidator.maxOnly with proper Spanish
strings (e.g., "Debe tener entre {min} y {max} caracteres", "Debe contener al
menos {min} número(s)", "Debe coincidir con la contraseña", etc.), keeping
placeholder tokens ({min}, {max}) unchanged.

In
`@identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_fr_FR.properties`:
- Around line 341-356: The fr_FR resource bundle contains English values for new
validation keys; update the French translations for each key
(validation.criteria.LengthValidator.minAndMax, .minOnly, .maxOnly, .default;
validation.criteria.NumeralValidator.minOnly, .default;
validation.criteria.UpperCaseValidator.minOnly, .default;
validation.criteria.LowerCaseValidator.minOnly, .default;
validation.criteria.SpecialCharacterValidator.minOnly;
validation.criteria.ConfirmPasswordValidator.match;
validation.criteria.EmailFormatValidator.format;
validation.criteria.AlphanumericValidator.format;
validation.criteria.UniqueCharacterValidator.minOnly;
validation.criteria.RepeatedCharacterValidator.maxOnly) replacing the English
messages with accurate French equivalents so French-locale users see the
password/validation rules in French.

In
`@identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_ja_JP.properties`:
- Around line 339-354: The Japanese resource file contains English strings for
several validation.messages — update the entries for
validation.criteria.LengthValidator.minAndMax, .minOnly, .maxOnly, .default;
validation.criteria.NumeralValidator.minOnly, .default;
validation.criteria.UpperCaseValidator.minOnly, .default;
validation.criteria.LowerCaseValidator.minOnly, .default;
validation.criteria.SpecialCharacterValidator.minOnly;
validation.criteria.ConfirmPasswordValidator.match;
validation.criteria.EmailFormatValidator.format;
validation.criteria.AlphanumericValidator.format;
validation.criteria.UniqueCharacterValidator.minOnly; and
validation.criteria.RepeatedCharacterValidator.maxOnly by replacing the English
text with appropriate Japanese translations that preserve placeholders like
{min} and {max} and the keys exactly as shown so Japanese users see localized
validation messages.

---

Outside diff comments:
In `@identity-apps-core/react-ui-core/src/components/validation-criteria.js`:
- Around line 222-229: The code is matching backend error strings against the
localized label (getRuleLabel) which breaks in non-English locales; change
hasError to compare against a stable rule identifier instead of the translated
label — derive a stableKey from the rule (e.g., rule.id || rule.name ||
rule.key) and use errors.some(err => err.includes(stableKey)) to detect errors,
while keeping getRuleLabel(rule, translations) only for display; update
references to hasError and ensure stableKey is defined (fallback to a default
identifier if missing).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 1180f6fe-db4d-40e2-957e-47ca6a33c131

📥 Commits

Reviewing files that changed from the base of the PR and between 5a0c661 and 06fc908.

📒 Files selected for processing (11)
  • identity-apps-core/apps/accounts/src/main/resources/org/wso2/carbon/identity/application/accounts/endpoint/i18n/Resources.properties
  • identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources.properties
  • identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_de_DE.properties
  • identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_es_ES.properties
  • identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_fr_FR.properties
  • identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_ja_JP.properties
  • identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_pt_BR.properties
  • identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_pt_PT.properties
  • identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_zh_CN.properties
  • identity-apps-core/react-ui-core/src/components/validation-criteria.js
  • identity-apps-core/react-ui-core/src/utils/i18n-utils.js

Comment on lines +340 to +355
validation.criteria.LengthValidator.minAndMax=Must be between {min} and {max} characters long.
validation.criteria.LengthValidator.minOnly=Must be at least {min} characters long.
validation.criteria.LengthValidator.maxOnly=Must be at most {max} characters long.
validation.criteria.LengthValidator.default=Must be within the required length.
validation.criteria.NumeralValidator.minOnly=Must contain at least {min} number(s).
validation.criteria.NumeralValidator.default=Must contain the required number(s).
validation.criteria.UpperCaseValidator.minOnly=Must contain at least {min} uppercase letter(s).
validation.criteria.UpperCaseValidator.default=Must contain uppercase letter(s).
validation.criteria.LowerCaseValidator.minOnly=Must contain at least {min} lowercase letter(s).
validation.criteria.LowerCaseValidator.default=Must contain lowercase letter(s).
validation.criteria.SpecialCharacterValidator.minOnly=Must contain at least {min} special character(s).
validation.criteria.ConfirmPasswordValidator.match=Must match with the password.
validation.criteria.EmailFormatValidator.format=Must use a valid email address.
validation.criteria.AlphanumericValidator.format=Must contain only alphanumeric characters.
validation.criteria.UniqueCharacterValidator.minOnly=Must contain at least {min} unique character(s).
validation.criteria.RepeatedCharacterValidator.maxOnly=Must not contain more than {max} repeated character(s).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Localize new validation.criteria.* entries for de_DE (currently English).

Line 340 through Line 355 are English strings in a German locale file, so German users will get mixed-language validation guidance.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_de_DE.properties`
around lines 340 - 355, The listed validation keys
(validation.criteria.LengthValidator.*, NumeralValidator.*,
UpperCaseValidator.*, LowerCaseValidator.*, SpecialCharacterValidator.minOnly,
ConfirmPasswordValidator.match, EmailFormatValidator.format,
AlphanumericValidator.format, UniqueCharacterValidator.minOnly,
RepeatedCharacterValidator.maxOnly) are still in English in the de_DE resource
file; replace each value with an appropriate German translation while preserving
placeholders like {min} and {max} and punctuation and keeping the exact property
keys unchanged so localization works correctly (e.g., translate phrases such as
"Must be between {min} and {max} characters long." to German equivalents for the
corresponding keys).

Comment on lines +340 to +355
validation.criteria.LengthValidator.minAndMax=Must be between {min} and {max} characters long.
validation.criteria.LengthValidator.minOnly=Must be at least {min} characters long.
validation.criteria.LengthValidator.maxOnly=Must be at most {max} characters long.
validation.criteria.LengthValidator.default=Must be within the required length.
validation.criteria.NumeralValidator.minOnly=Must contain at least {min} number(s).
validation.criteria.NumeralValidator.default=Must contain the required number(s).
validation.criteria.UpperCaseValidator.minOnly=Must contain at least {min} uppercase letter(s).
validation.criteria.UpperCaseValidator.default=Must contain uppercase letter(s).
validation.criteria.LowerCaseValidator.minOnly=Must contain at least {min} lowercase letter(s).
validation.criteria.LowerCaseValidator.default=Must contain lowercase letter(s).
validation.criteria.SpecialCharacterValidator.minOnly=Must contain at least {min} special character(s).
validation.criteria.ConfirmPasswordValidator.match=Must match with the password.
validation.criteria.EmailFormatValidator.format=Must use a valid email address.
validation.criteria.AlphanumericValidator.format=Must contain only alphanumeric characters.
validation.criteria.UniqueCharacterValidator.minOnly=Must contain at least {min} unique character(s).
validation.criteria.RepeatedCharacterValidator.maxOnly=Must not contain more than {max} repeated character(s).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

New validation.criteria.* strings should be Spanish in es_ES.

Line 340 through Line 355 are currently English, which will surface mixed-language password criteria for Spanish users.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_es_ES.properties`
around lines 340 - 355, Replace the English messages for the listed validation
keys in Resources_es_ES.properties with Spanish translations so Spanish users
see localized password/validation criteria; update the values for
validation.criteria.LengthValidator.minAndMax,
validation.criteria.LengthValidator.minOnly,
validation.criteria.LengthValidator.maxOnly,
validation.criteria.LengthValidator.default,
validation.criteria.NumeralValidator.minOnly,
validation.criteria.NumeralValidator.default,
validation.criteria.UpperCaseValidator.minOnly,
validation.criteria.UpperCaseValidator.default,
validation.criteria.LowerCaseValidator.minOnly,
validation.criteria.LowerCaseValidator.default,
validation.criteria.SpecialCharacterValidator.minOnly,
validation.criteria.ConfirmPasswordValidator.match,
validation.criteria.EmailFormatValidator.format,
validation.criteria.AlphanumericValidator.format,
validation.criteria.UniqueCharacterValidator.minOnly and
validation.criteria.RepeatedCharacterValidator.maxOnly with proper Spanish
strings (e.g., "Debe tener entre {min} y {max} caracteres", "Debe contener al
menos {min} número(s)", "Debe coincidir con la contraseña", etc.), keeping
placeholder tokens ({min}, {max}) unchanged.

Comment on lines +341 to +356
validation.criteria.LengthValidator.minAndMax=Must be between {min} and {max} characters long.
validation.criteria.LengthValidator.minOnly=Must be at least {min} characters long.
validation.criteria.LengthValidator.maxOnly=Must be at most {max} characters long.
validation.criteria.LengthValidator.default=Must be within the required length.
validation.criteria.NumeralValidator.minOnly=Must contain at least {min} number(s).
validation.criteria.NumeralValidator.default=Must contain the required number(s).
validation.criteria.UpperCaseValidator.minOnly=Must contain at least {min} uppercase letter(s).
validation.criteria.UpperCaseValidator.default=Must contain uppercase letter(s).
validation.criteria.LowerCaseValidator.minOnly=Must contain at least {min} lowercase letter(s).
validation.criteria.LowerCaseValidator.default=Must contain lowercase letter(s).
validation.criteria.SpecialCharacterValidator.minOnly=Must contain at least {min} special character(s).
validation.criteria.ConfirmPasswordValidator.match=Must match with the password.
validation.criteria.EmailFormatValidator.format=Must use a valid email address.
validation.criteria.AlphanumericValidator.format=Must contain only alphanumeric characters.
validation.criteria.UniqueCharacterValidator.minOnly=Must contain at least {min} unique character(s).
validation.criteria.RepeatedCharacterValidator.maxOnly=Must not contain more than {max} repeated character(s).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

fr_FR bundle has English values for new validation criteria keys.

Line 341 through Line 356 should be French translations; otherwise the password rule list appears in English for French locale users.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_fr_FR.properties`
around lines 341 - 356, The fr_FR resource bundle contains English values for
new validation keys; update the French translations for each key
(validation.criteria.LengthValidator.minAndMax, .minOnly, .maxOnly, .default;
validation.criteria.NumeralValidator.minOnly, .default;
validation.criteria.UpperCaseValidator.minOnly, .default;
validation.criteria.LowerCaseValidator.minOnly, .default;
validation.criteria.SpecialCharacterValidator.minOnly;
validation.criteria.ConfirmPasswordValidator.match;
validation.criteria.EmailFormatValidator.format;
validation.criteria.AlphanumericValidator.format;
validation.criteria.UniqueCharacterValidator.minOnly;
validation.criteria.RepeatedCharacterValidator.maxOnly) replacing the English
messages with accurate French equivalents so French-locale users see the
password/validation rules in French.

Comment on lines +339 to +354
validation.criteria.LengthValidator.minAndMax=Must be between {min} and {max} characters long.
validation.criteria.LengthValidator.minOnly=Must be at least {min} characters long.
validation.criteria.LengthValidator.maxOnly=Must be at most {max} characters long.
validation.criteria.LengthValidator.default=Must be within the required length.
validation.criteria.NumeralValidator.minOnly=Must contain at least {min} number(s).
validation.criteria.NumeralValidator.default=Must contain the required number(s).
validation.criteria.UpperCaseValidator.minOnly=Must contain at least {min} uppercase letter(s).
validation.criteria.UpperCaseValidator.default=Must contain uppercase letter(s).
validation.criteria.LowerCaseValidator.minOnly=Must contain at least {min} lowercase letter(s).
validation.criteria.LowerCaseValidator.default=Must contain lowercase letter(s).
validation.criteria.SpecialCharacterValidator.minOnly=Must contain at least {min} special character(s).
validation.criteria.ConfirmPasswordValidator.match=Must match with the password.
validation.criteria.EmailFormatValidator.format=Must use a valid email address.
validation.criteria.AlphanumericValidator.format=Must contain only alphanumeric characters.
validation.criteria.UniqueCharacterValidator.minOnly=Must contain at least {min} unique character(s).
validation.criteria.RepeatedCharacterValidator.maxOnly=Must not contain more than {max} repeated character(s).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Please translate new validation.criteria.* messages in ja_JP.

Line 339 through Line 354 are English today, so Japanese users will see non-localized validation criteria.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@identity-apps-core/apps/authentication-portal/src/main/resources/org/wso2/carbon/identity/application/authentication/endpoint/i18n/Resources_ja_JP.properties`
around lines 339 - 354, The Japanese resource file contains English strings for
several validation.messages — update the entries for
validation.criteria.LengthValidator.minAndMax, .minOnly, .maxOnly, .default;
validation.criteria.NumeralValidator.minOnly, .default;
validation.criteria.UpperCaseValidator.minOnly, .default;
validation.criteria.LowerCaseValidator.minOnly, .default;
validation.criteria.SpecialCharacterValidator.minOnly;
validation.criteria.ConfirmPasswordValidator.match;
validation.criteria.EmailFormatValidator.format;
validation.criteria.AlphanumericValidator.format;
validation.criteria.UniqueCharacterValidator.minOnly; and
validation.criteria.RepeatedCharacterValidator.maxOnly by replacing the English
text with appropriate Japanese translations that preserve placeholders like
{min} and {max} and the keys exactly as shown so Japanese users see localized
validation messages.

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