4343
4444 <div v-else class =" top-bar-title" >
4545 <span class =" split" />
46- <span >System manage</span >
46+ <!-- <span>System manage</span> -->
47+ <span >{{ t('common.system_manage') }}</span >
4748 </div >
4849
4950
7677 <el-dropdown-menu >
7778 <el-dropdown-item @click =" switchLayout" >Switch Layout</el-dropdown-item >
7879 <el-dropdown-item @click =" logout" >Logout</el-dropdown-item >
80+
81+ <el-dropdown @command =" changeLanguage" >
82+ <div class =" lang-switch" >
83+ Language
84+ <el-icon >
85+ <i class =" el-icon-arrow-down" />
86+ </el-icon >
87+ </div >
88+ <template #dropdown >
89+ <el-dropdown-menu >
90+ <el-dropdown-item command =" en" >English</el-dropdown-item >
91+ <el-dropdown-item command =" zh-CN" >中文</el-dropdown-item >
92+ </el-dropdown-menu >
93+ </template >
94+ </el-dropdown >
7995 </el-dropdown-menu >
8096 </template >
8197 </el-dropdown >
@@ -153,7 +169,9 @@ import icon_user from '@/assets/svg/icon_user.svg'
153169import icon_ai from ' @/assets/svg/icon_ai.svg'
154170import {ArrowLeftBold } from ' @element-plus/icons-vue'
155171import {useCache } from ' @/utils/useCache'
172+ import { useI18n } from ' vue-i18n'
156173
174+ const { locale, t } = useI18n ()
157175const {wsCache} = useCache ()
158176const topLayout = ref (false )
159177const router = useRouter ()
@@ -215,6 +233,10 @@ const switchLayout = () => {
215233 topLayout .value = ! topLayout .value
216234 wsCache .set (' sqlbot-topbar-layout' , topLayout .value )
217235}
236+
237+ const changeLanguage = (lang : string ) => {
238+ locale .value = lang
239+ }
218240onMounted (() => {
219241 topLayout .value = wsCache .get (' sqlbot-topbar-layout' ) || true
220242})
@@ -536,4 +558,12 @@ onMounted(() => {
536558 }
537559 }
538560}
561+ .lang-switch {
562+ cursor : pointer ;
563+ padding : 0 12px ;
564+
565+ & :hover {
566+ color : var (--el-color-primary );
567+ }
568+ }
539569 </style >
0 commit comments