11<template >
22 <div class =" flex flex-col h-full" >
3- <Tabs v-model:value =" bottomPanelStore.activeBottomPanelTabId" >
3+ <Tabs
4+ :key =" $i18n.locale"
5+ v-model:value =" bottomPanelStore.activeBottomPanelTabId"
6+ >
47 <TabList pt:tab-list =" border-none" >
58 <div class =" w-full flex justify-between" >
69 <div class =" tabs-container" >
1114 class =" p-3 border-none"
1215 >
1316 <span class =" font-bold" >
14- {{
15- shouldCapitalizeTab(tab.id)
16- ? tab.title.toUpperCase()
17- : tab.title
18- }}
17+ {{ getTabDisplayTitle(tab) }}
1918 </span >
2019 </Tab >
2120 </div >
@@ -60,13 +59,16 @@ import Tab from 'primevue/tab'
6059import TabList from ' primevue/tablist'
6160import Tabs from ' primevue/tabs'
6261import { computed } from ' vue'
62+ import { useI18n } from ' vue-i18n'
6363
6464import ExtensionSlot from ' @/components/common/ExtensionSlot.vue'
6565import { useDialogService } from ' @/services/dialogService'
6666import { useBottomPanelStore } from ' @/stores/workspace/bottomPanelStore'
67+ import type { BottomPanelExtension } from ' @/types/extensionTypes'
6768
6869const bottomPanelStore = useBottomPanelStore ()
6970const dialogService = useDialogService ()
71+ const { t } = useI18n ()
7072
7173const isShortcutsTabActive = computed (() => {
7274 const activeTabId = bottomPanelStore .activeBottomPanelTabId
@@ -80,6 +82,11 @@ const shouldCapitalizeTab = (tabId: string): boolean => {
8082 return tabId !== ' shortcuts-essentials' && tabId !== ' shortcuts-view-controls'
8183}
8284
85+ const getTabDisplayTitle = (tab : BottomPanelExtension ): string => {
86+ const title = tab .titleKey ? t (tab .titleKey ) : tab .title || ' '
87+ return shouldCapitalizeTab (tab .id ) ? title .toUpperCase () : title
88+ }
89+
8390const openKeybindingSettings = async () => {
8491 dialogService .showSettingsDialog (' keybinding' )
8592}
0 commit comments