Skip to content

Operational and error messages bypass localization - mixed-language UI on error paths #115

Description

@mrcsin

Summary

The resx pipeline exists (Localization/Resources.resx, Resources.ru.resx, #69) and menus/dialog AXAML use it, but a whole class of user-facing strings is hardcoded English. A Russian-locale user gets a mixed-language UI precisely on the paths where clarity matters — errors and status reports.

Hardcoded sites

  • Clipboard/ClipboardViewModel.cs:58,63,68,142 — "Copy failed:", "Cut failed:", "Paste failed:"
  • RecipeFile/RecipeFileViewModel.cs:39,44,49,106,112,132 — "Save failed:", "Failed to save recipe", "Saved: ...", "Loaded: ..."
  • MainWindow/MainWindowViewModel.cs:67,72,219,297 — "Sync toggle failed:", "Style editor failed:", "Failed to show PLC conflict dialog", window-title format
  • MainWindow/MainWindow.axaml.cs:249,266 — file-picker titles "Open Recipe", "Save Recipe" and filter names
  • Coordinator/RecipeCoordinator.cs:378 — save-rejection message shown in the panel
  • RecipeGrid/RecipeGridViewModel.cs:203,232,258,480 — "Step {n}: ..." error strings

Suggested fix

Move these format strings into Resources.resx/Resources.ru.resx; the MessagePanelViewModel formatting helpers (231-239) already show the intended pattern. Grep for remaining string literals passed to the message panel after the pass to catch stragglers.

Out of scope: Core-produced validation/Result messages (English by design, logged); this issue is about strings composed in the UI layer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions