node-red-dashboard icon indicating copy to clipboard operation
node-red-dashboard copied to clipboard

Implement full internationalization (i18n) capabilities to the dashboard

Open joelvandal opened this issue 5 months ago • 0 comments

Description

Implement full internationalization (i18n) capabilities to the dashboard, allowing users to create multilingual interfaces with runtime language switching.

Core Features:

  • Add centralized i18n Vuex store module for locale management
  • Implement runtime language switching with persistent locale storage
  • Support translation objects for widget properties (label, content, text, tooltip)
  • Enable dynamic translation of page and group names in navigation

Widget Support:

  • Add translation support for ui-button, ui-text, ui-markdown labels/content
  • Support translated tooltips in ui-text-input and ui-number-input
  • Enable label translations in ui-switch, ui-slider, ui-chart, ui-gauge
  • Add comprehensive translation handling for ui-form fields

Language Selector Widget:

  • Create new ui-language-selector widget for runtime language switching
  • Support both UI-scoped (ex. app bar) and group-scoped deployment modes
  • Implement teleport functionality for application placement
  • Configure output formats: code only, full object, or auto mode

Translation Features:

  • Support JSON-based translation objects in widget properties
  • Automatic fallback to original values
  • Preserve original values for reference
  • Support browser language auto-detection

Related Issue(s)

Checklist

  • [x] I have read the contribution guidelines
  • [x] Suitable unit/system level tests have been added and they pass
  • [ ] Documentation has been updated
    • [ ] Upgrade instructions
    • [ ] Configuration details
    • [ ] Concepts
  • [ ] Changes flowforge.yml?
    • [ ] Issue/PR raised on FlowFuse/helm to update ConfigMap Template
    • [ ] Issue/PR raised on FlowFuse/CloudProject to update values for Staging/Production

Labels

  • [ ] Includes a DB migration? -> add the area:migration label

joelvandal avatar Jul 26 '25 18:07 joelvandal