Skip to content

Conversation

joelvandal
Copy link
Contributor

@joelvandal joelvandal commented Jul 26, 2025

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

  • I have read the contribution guidelines
  • 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

Joel Vandal added 8 commits July 26, 2025 14:11
…ard, 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
@joepavitt joepavitt self-requested a review July 29, 2025 08:43
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