feat(dashboard): improve layout and UX — collapsible sections, tabs, 3-col grid - #2
Open
aaronFortuno wants to merge 4 commits into
Open
feat(dashboard): improve layout and UX — collapsible sections, tabs, 3-col grid#2aaronFortuno wants to merge 4 commits into
aaronFortuno wants to merge 4 commits into
Conversation
Add internal/i18n package with embedded JSON locale files for English, Catalan, Spanish, French, German, and Italian. Provides T(key) for Go-side translation with automatic fallback to English, Messages(lang) for serving locale data to the dashboard JS, and DetectLocale() for OS-level language detection (Windows API + LANG env fallback). No existing code is modified — this commit only adds the new package. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace all hardcoded user-facing strings in the system tray with i18n.T() calls: state labels, menu items, tooltips, error messages, wallet warnings, and disk alerts. The locale is auto-detected from the OS at tray startup via i18n.DetectLocale(). Behaviour is identical for English users — all keys resolve to the same strings that were previously hardcoded. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Migrate all user-facing strings in the web dashboard to i18n: - Add /api/locale?lang=xx endpoint serving the full translation map - Add /api/locales endpoint listing available languages with names - Add JS t(key) function with localStorage-persisted language choice - Add data-i18n attributes to ~60 static HTML elements - Replace ~40 JS-generated strings with t() calls (state labels, wallet messages, model picker, confirm dialogs, chart labels, etc.) - Add language dropdown selector next to the theme toggle The dashboard auto-detects the browser language on first load and falls back to English. Users can override via the dropdown, which persists in localStorage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…t bug Layout and UX improvements to the dashboard: - Fix i18n bug: wallet banner body was translated Go-side (OS locale) instead of JS-side (dashboard locale). Now sends raw address and formats with t() in the browser. - Wallet "configured" banner is now dismissable (x button, persisted to localStorage). Warning banner (not configured) stays permanent. - Notifications panel collapsed by default with badge counter. Click to expand. State persisted to localStorage. - Models list collapsed by default in Status card. Shows active model name + installed count as summary. Click to expand full list. - Grid changed from 4 columns to 3 columns — eliminates the large whitespace gap when right-side cards (Earnings, BTC) are short. Card order: Status/Earnings, Gateway/BTC, GPU/Disk. - Job mode selector (Always/When idle/Never) stays always visible for quick access — not buried under settings. - Wallet settings reorganised into tabbed panels (Payout | Karma | Model) instead of a single collapsed details block. Active tab is highlighted, panels switch instantly. - Added "dash.settings" i18n key to all 6 locale files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
9 tasks
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.
Summary
Dashboard layout and UX improvements that reduce visual clutter and improve access to daily
controls. Builds on
feat/i18n(#1).Problems addressed
stuck in OS locale instead of dashboard language
blank next to the very tall Wallet and Status columns
stacked vertically in a single massive card, with job mode (a daily-use control) hidden among them
Changes
Bug fix
Wallet.Configurednow sends the raw Lightning address from Go; thedashboard JS formats it with
t()using the browser's selected locale. Fixes the string appearingin the OS language instead of the dashboard language.
Dismissable wallet banner
warning)
localStorageCollapsible notifications
localStorageCollapsible models list
localStorage3-column grid
1fr 1fr 1fr 1frto1fr 1fr 1frthe right two columns evenly
Settings tabs
daily access
Before → After
Verification
go vet ./...cleango buildsucceedsgo test ./internal/dashboard/...passesStats
internal/dashboard/server.go(HTML/CSS/JS)internal/tray/tray.go(wallet i18n bug)dash.settingskey added to all 6 locale filesFuture work (separate PR)
card(s)