From 3d2f9d0cf6dc866574a47b1cb6288e22ed786e61 Mon Sep 17 00:00:00 2001 From: Jakub Zych Date: Fri, 16 Oct 2026 10:21:50 +0200 Subject: [PATCH] fix(quick-261016-0fm): full key literals for the rail theme label The phrasebook SPA-key check scans admin/src for backend::lang literals; the template-string key backend::lang.nav.theme_ did not resolve and failed go test -short. --- admin/src/components/shell/PluginRail.vue | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/admin/src/components/shell/PluginRail.vue b/admin/src/components/shell/PluginRail.vue index 8cb36fc..d859f7d 100644 --- a/admin/src/components/shell/PluginRail.vue +++ b/admin/src/components/shell/PluginRail.vue @@ -26,10 +26,14 @@ const { collapsed, narrow, setCollapsed } = useSidebar() // The top button cycles the theme (system, light, dark) and names the // current choice; the icon shows it. -const themeIcon = computed(() => ({ system: SunMoon, light: Sun, dark: Moon })[themeChoice.value]) -const themeLabel = computed(() => - t('backend::lang.nav.theme', { mode: t(`backend::lang.nav.theme_${themeChoice.value}`) }), -) +// Full key literals, so the phrasebook SPA-key check sees every key. +const themeModes = { + system: { icon: SunMoon, key: 'backend::lang.nav.theme_system' }, + light: { icon: Sun, key: 'backend::lang.nav.theme_light' }, + dark: { icon: Moon, key: 'backend::lang.nav.theme_dark' }, +} as const +const themeIcon = computed(() => themeModes[themeChoice.value].icon) +const themeLabel = computed(() => t('backend::lang.nav.theme', { mode: t(themeModes[themeChoice.value].key) })) const active = computed(() => activeEntry(String(route.params.vendor ?? ''), String(route.params.plugin ?? '')))