i18n: catalog keys for NamedAreaView's availability frames - #5661
Merged
Merged
Conversation
NamedAreaView (MeshWeaver.Plugins) rendered "Area unavailable", "This view could not be initialised", "Error loading area:" and the 404 technical detail in hard-coded English. Adds error.areaUnavailable, error.areaUnavailableRecycled, error.areaUnavailableNotAddressable, error.viewInitFailed, error.loadingArea and error.areaNotFoundDetail in en + de, with the area path / budget / retry count as positional placeholders, and a LocalizationTest theory pinning that each is a real German translation carrying its arguments in both languages. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
Correct the German translation so it accurately describes hub recycling rather than restarting.
Review effort: Lite
Findings: None
What changed in this PR
Adds English and German localization keys for NamedAreaView availability/error frames, with placeholder-preservation tests and documentation.
Changes:
- Adds six localized error keys.
- Tests translations and positional arguments.
- Documents localized frame rendering.
| File | Summary |
|---|---|
test/MeshWeaver.Messaging.Hub.Test/LocalizationTest.cs |
Tests catalog translations and argument preservation. |
src/MeshWeaver.Messaging.Hub/Localization/strings.en.json |
Adds English error messages. |
src/MeshWeaver.Messaging.Hub/Localization/strings.de.json |
Adds German error messages; moderate issue: recycle lifecycle is described as a restart. |
src/MeshWeaver.Documentation/Data/Architecture/ErrorPropagationAndWedges.md |
Documents localized availability frames. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Contributor
Contributor
Contributor
Contributor
…review on #5661) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Copilot overview note (German recycle wording, no inline thread): fixed in 97b16af — |
Contributor
Contributor
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
NamedAreaView(now in MeshWeaver.Plugins — Blazor left core in 83356b3) rendered its availability frames in hard-coded English for every viewer: "Area unavailable. The hub serving{area}was being recycled …" / "… did not become addressable …", "This view could not be initialised.", "Error loading area:", and the 404 page's technical detail.This adds the catalog keys, en + de, with technical identifiers (area path, recovery budget, retry count, owner address) as positional placeholders:
error.areaUnavailableerror.areaUnavailableRecycled({0}area,{1}seconds)error.areaUnavailableNotAddressable({0}area,{1}retries)error.viewInitFailederror.loadingAreaerror.areaNotFoundDetail({0}area,{1}owner)English values match the previous literals, so the Plugins e2e matchers (
Area unavailable,Error loading area) keep holding.LocalizationTest.AreaAvailabilityFrames_AreTranslatedAndCarryTheirArgumentspins that each key is a real German translation (not the English fallback) and that every argument survives in both languages. Doc:ErrorPropagationAndWedges.mdnotes the frame is rendered from these keys.Consumer: Systemorph/MeshWeaver.Plugins#2356 (switches
NamedAreaViewto these keys, resolved off the viewer locale captured inBindData— the error arms run off-circuit, whereAccess.Localizeresolves English). This core half lands first.No issue.
Mirror-sync: npm run sync:i18n -- --ref in MeshWeaver.Plugins clients/react — carried by Systemorph/MeshWeaver.Plugins#2356, which merges after this PR.
Pairs-with: none — adds keys only; no public type or member is removed.
🤖 Generated with Claude Code