新增加多语言

This commit is contained in:
不做码农
2022-05-05 18:39:22 +08:00
parent f01ee52512
commit bbe37c04dc
20 changed files with 428 additions and 105 deletions
+9 -6
View File
@@ -11,6 +11,7 @@
<zr-doc title="文档地址" class="right-menu-item" />
<screenfull title="全屏" class="right-menu-item" />
<size-select title="布局大小" class="right-menu-item" />
<LangSelect title="语音设置" class="right-menu-item" />
</template>
<Notice title="通知" class="right-menu-item" />
@@ -23,13 +24,13 @@
<template #dropdown>
<el-dropdown-menu>
<router-link to="/user/profile">
<el-dropdown-item>个人中心</el-dropdown-item>
<el-dropdown-item>{{ $t('layout.personalCenter') }}</el-dropdown-item>
</router-link>
<el-dropdown-item command="setLayout">
<span>布局设置</span>
<span>{{ $t('layout.layoutSetting') }}</span>
</el-dropdown-item>
<el-dropdown-item divided command="logout">
<span>退出登录</span>
<span>{{ $t('layout.logOut') }}</span>
</el-dropdown-item>
</el-dropdown-menu>
</template>
@@ -49,7 +50,9 @@ import HeaderSearch from '@/components/HeaderSearch'
import ZrGit from '@/components/Zr/Git'
import ZrDoc from '@/components/Zr/Doc'
import Notice from '@/components/Notice/Index'
import LangSelect from '@/components/LangSelect/index'
const { proxy } = getCurrentInstance()
const store = useStore()
const getters = computed(() => store.getters)
const sideTheme = computed(() => store.state.settings.sideTheme)
@@ -71,9 +74,9 @@ function handleCommand(command) {
}
function logout() {
ElMessageBox.confirm('确定注销并退出系统吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
ElMessageBox.confirm(proxy.$t('layout.logOutConfirm'), proxy.$t('common.tips'), {
confirmButtonText: proxy.$t('common.ok'),
cancelButtonText: proxy.$t('common.cancel'),
type: 'warning',
})
.then(() => {
+11 -11
View File
@@ -1,7 +1,7 @@
<template>
<el-drawer v-model="showSettings" :withHeader="false" direction="rtl" size="300px">
<div class="setting-drawer-title">
<h3 class="drawer-title">主题风格设置</h3>
<h3 class="drawer-title">{{ $t('layout.themeStyleSet') }}</h3>
</div>
<div class="setting-drawer-block-checbox">
<div class="setting-drawer-block-checbox-item" @click="handleTheme('theme-dark')">
@@ -21,48 +21,48 @@
<el-icon><Check /></el-icon>
</div>
<el-icon><moon /></el-icon>
深色模式
{{ $t('layout.darkMode') }}
</div>
</div>
<div class="drawer-item">
<span>主题颜色</span>
<span>{{ $t('layout.themeColor') }}</span>
<span class="comp-style">
<el-color-picker v-model="theme" :predefine="predefineColors" @change="themeChange" />
</span>
</div>
<el-divider />
<h3 class="drawer-title">系统布局配置</h3>
<h3 class="drawer-title">{{ $t('layout.sysLayoutSet') }}</h3>
<div class="drawer-item">
<span>开启 TopNav</span>
<span>{{ $t('layout.open') }} TopNav</span>
<span class="comp-style">
<el-switch v-model="topNav" class="drawer-switch" />
</span>
</div>
<div class="drawer-item">
<span>开启 Tags-Views</span>
<span>{{ $t('layout.open') }} Tags-Views</span>
<span class="comp-style">
<el-switch v-model="tagsView" class="drawer-switch" />
</span>
</div>
<div class="drawer-item">
<span>固定 Header</span>
<span>{{ $t('layout.fixed') }} Header</span>
<span class="comp-style">
<el-switch v-model="fixedHeader" class="drawer-switch" />
</span>
</div>
<div class="drawer-item">
<span>显示 Logo</span>
<span>{{ $t('layout.show') }} Logo</span>
<span class="comp-style">
<el-switch v-model="sidebarLogo" class="drawer-switch" />
</span>
</div>
<div class="drawer-item">
<span>动态标题</span>
<span>{{ $t('layout.dynamicTitle') }}</span>
<span class="comp-style">
<el-switch v-model="dynamicTitle" class="drawer-switch" />
</span>
@@ -70,8 +70,8 @@
<el-divider />
<el-button type="primary" plain icon="DocumentAdd" @click="saveSetting">保存配置</el-button>
<el-button plain icon="Refresh" @click="resetSetting">重置配置</el-button>
<el-button type="primary" plain icon="DocumentAdd" @click="saveSetting">{{ $t('layout.saveConfig') }}</el-button>
<el-button plain icon="Refresh" @click="resetSetting">{{ $t('layout.resetConfig') }}</el-button>
</el-drawer>
</template>
+6 -6
View File
@@ -19,12 +19,12 @@
</router-link>
</scroll-pane>
<ul v-show="visible" :style="{ left: left + 'px', top: top + 'px' }" class="contextmenu">
<li @click="refreshSelectedTag(selectedTag)"><refresh-right style="width: 1em; height: 1em" /> 刷新页面</li>
<li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"><close style="width: 1em; height: 1em" /> 关闭当前</li>
<li @click="closeOthersTags"><circle-close style="width: 1em; height: 1em" /> 关闭其他</li>
<li v-if="!isFirstView()" @click="closeLeftTags"><back style="width: 1em; height: 1em" /> 关闭左侧</li>
<li v-if="!isLastView()" @click="closeRightTags"><right style="width: 1em; height: 1em" /> 关闭右侧</li>
<li @click="closeAllTags(selectedTag)"><circle-close style="width: 1em; height: 1em" /> 全部关闭</li>
<li @click="refreshSelectedTag(selectedTag)"><refresh-right style="width: 1em; height: 1em" /> {{$t('tagsView.refresh')}}</li>
<li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"><close style="width: 1em; height: 1em" /> {{$t('tagsView.close')}}</li>
<li @click="closeOthersTags"><circle-close style="width: 1em; height: 1em" /> {{$t('tagsView.closeOther')}}</li>
<li v-if="!isFirstView()" @click="closeLeftTags"><back style="width: 1em; height: 1em" /> {{$t('tagsView.closeLeft')}}</li>
<li v-if="!isLastView()" @click="closeRightTags"><right style="width: 1em; height: 1em" /> {{$t('tagsView.closeRight')}}</li>
<li @click="closeAllTags(selectedTag)"><circle-close style="width: 1em; height: 1em" /> {{$t('tagsView.closeAll')}}</li>
</ul>
</div>
</template>