fix(web): resolve shared i18n scope correctly #70

Merged
bart merged 1 commit from fix/shared-i18n-scope-loader into main 2026-09-11 12:03:30 +00:00
Collaborator

Description

Translated text under the shared UI scope (buttons, labels shared across every feature, like "Save" or "Add new") would not have loaded at runtime once the first feature actually used them — the app would silently request the wrong file and Transloco would fall back to showing the raw translation key instead of real text.

Closes #59.

Type of Change

  • Bug fix
  • New feature
  • Refactor / cleanup (no behaviour change)
  • Documentation
  • Chore / build / CI
  • Breaking change

Breaking Changes

None.

Test Plan

Added unit tests covering all four scope-resolution cases (shell, unscoped, a feature, and shared) against a mocked HTTP layer. Full frontend suite green (67 tests), lint clean, production build succeeds.

Checklist

  • Conventional commit(s), one logical change per commit
  • Tests added/updated and passing
  • docs/ updated for any behavioural change — n/a, no doc described the old (broken) behaviour
  • No hard deletes; no direct status updates outside polaris.domain
  • No business logic in routers/components
  • Migration included if the schema changed — n/a
  • No new dependency without a reason in the commit body

Additional Context

Filed as issue #59 while another ticket was working nearby and found this couldn't be fixed as part of that ticket (this file belongs to an earlier, already-merged ticket). Picked it up now since nothing else was actionable at the moment and it's a small, self-contained fix.

🤖 Generated with Claude Code

https://claude.ai/code/session_013YioTVKBPoE6thZqbnTtnM

## Description Translated text under the shared UI scope (buttons, labels shared across every feature, like "Save" or "Add new") would not have loaded at runtime once the first feature actually used them — the app would silently request the wrong file and Transloco would fall back to showing the raw translation key instead of real text. ## Related Issues Closes #59. ## Type of Change - [x] Bug fix - [ ] New feature - [ ] Refactor / cleanup (no behaviour change) - [ ] Documentation - [ ] Chore / build / CI - [ ] Breaking change ## Breaking Changes None. ## Test Plan Added unit tests covering all four scope-resolution cases (shell, unscoped, a feature, and shared) against a mocked HTTP layer. Full frontend suite green (67 tests), lint clean, production build succeeds. ## Checklist - [x] Conventional commit(s), one logical change per commit - [x] Tests added/updated and passing - [x] `docs/` updated for any behavioural change — n/a, no doc described the old (broken) behaviour - [x] No hard deletes; no direct status updates outside `polaris.domain` - [x] No business logic in routers/components - [ ] Migration included if the schema changed — n/a - [x] No new dependency without a reason in the commit body ## Additional Context Filed as issue #59 while another ticket was working nearby and found this couldn't be fixed as part of that ticket (this file belongs to an earlier, already-merged ticket). Picked it up now since nothing else was actionable at the moment and it's a small, self-contained fix. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_013YioTVKBPoE6thZqbnTtnM
Closes #59. The scoped Transloco loader only special-cased the shell
scope; any other scope name, including shared, was assumed to live
under features/<scope>/i18n/. The first feature that mounts a
shared/ui or shared/admin-crud component and needs its shared.*
strings would have 404'd them at runtime.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013YioTVKBPoE6thZqbnTtnM
bart merged commit 6a78afcda4 into main 2026-09-11 12:03:30 +00:00
bart deleted branch fix/shared-i18n-scope-loader 2026-09-11 12:03:30 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
patrick/Polaris!70
No description provided.