Skip to content

Fix regional language URL resolution for fallback content (CST-6191) - #16

Merged
MortenFriisSiteImprove merged 4 commits into
mainfrom
fix/cst-6191-regional-language-urls
Oct 13, 2026
Merged

MortenFriisSiteImprove merged 4 commits into
mainfrom
fix/cst-6191-regional-language-urls

Conversation

@MortenFriisSiteImprove

@MortenFriisSiteImprove MortenFriisSiteImprove commented Sep 15, 2026 •

Copy link
Copy Markdown
Contributor

Problem and change

Selecting a regional language for inherited content can fail to load the page or return its master-language URL. The controller disables configured fallback and drops the editor's locale before URL resolution.

Honor configured fallback/replacement rules and pass the selected locale to Optimizely's URL resolver. Resolve the public page without its editor revision; calls without an editor locale use the page's language. Existing origin mappings remain in effect. The original helper method and a default implementation of the new overload preserve existing custom helpers; custom helpers must implement the overload to gain locale-aware behavior.

Add six real-CMS regression cases using persisted language branches, translations, drafts and fallback/replacement settings. They call the installed plugin's PageUrl action and verify Optimizely's public routes and rendered content. No regional paths are manufactured by the plugin.

Validation

The same fixtures ran against the unchanged plugin and then with this fix on current main:

Check Without the fix With the fix
CMS UI 12.34.6 / core 12.24.0 9 passed, 4 failed 13 passed
CMS UI 12.32.5 / core 12.22.6 9 passed, 4 failed 13 passed
Package verification and package upgrade Passed Passed

The four failures on both profiles were inherited en-US, inherited es-419, translated fr-CA and replacement en-GB. The translated page returned the English path instead of /fr-CA/page-regionale-traduite/. All four pass with the fix. The published-page draft and missing-fallback controls passed before and after.

  • Backend: 85 passed on each of .NET 6 and .NET 8, with zero failures/skips.
  • Functional browser suite: 32 passed across Chromium and Firefox.
  • Both CMS profiles: all 13 cases passed, with zero skips.
  • The earlier unit regression baseline also recorded 15 failures among the initial 16 regional cases before the fix; all 19 final cases pass with it.
  • Package target and locked dependency graphs are unchanged by this fix; the existing .NET 6 support warning remains.

Evidence: baseline CMS run, passing package/CMS run, passing backend/browser run. These comparison runs used the validation branch. The updated PR head (1c41966979453188a38c7a1dba5934f7fb509c28) also passed package/CMS CI and backend/browser CI: 13 CMS cases on each profile, package upgrade, 85 backend cases per target and 32 browser cases.

See validation details and remaining acceptance for source commits, candidate checksum, reproduction commands and scope.

Remaining acceptance

Real CMS loading, fallback/replacement, URL resolution and public rendering are verified on two locked CMS profiles. Siteimprove responses in those runs are controlled. Live regional Siteimprove report matching is not yet validated; it needs a genuinely crawled regional URL and the protected live workflow, which currently accepts main only.

Customer-specific domains/custom routing, never-published pages, actual draft Prepublish results and live publish-event rechecks remain acceptance checks. No package was published and the shared demo was not changed.

@MortenFriisSiteImprove
MortenFriisSiteImprove marked this pull request as ready for review October 13, 2026 14:13
@MortenFriisSiteImprove
MortenFriisSiteImprove requested a review from a team as a code owner October 13, 2026 14:13
@MortenFriisSiteImprove
MortenFriisSiteImprove merged commit 99c067c into main Oct 13, 2026
8 checks passed
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