适配多语言

Squashed commit of the following:

commit 632f86c0228c68391c01865c7576f3aa0408c102
Author: Sun <95302870@qq.com>
Date:   Sun Jan 7 14:47:55 2024 +0800

    退出的时候清除appstore

commit b9d805e49a3c6b2ad38bc8d527cb12cc8709012e
Author: Sun <95302870@qq.com>
Date:   Sun Jan 7 13:55:20 2024 +0800

    系统状态监控适配国际化

commit daece99723ec96d210241d2ca4e5a85dc5ae69bd
Author: Sun <95302870@qq.com>
Date:   Sun Jan 7 13:09:46 2024 +0800

    适配添加项目页面的国际化配置还有时钟的星期*

commit 8ea2b2fe951f6266415c96a197cb8d00faef4058
Author: Sun <95302870@qq.com>
Date:   Sun Jan 7 12:01:55 2024 +0800

    完成适配所有apps国际化

commit 21ef54e0d4afb10f560c8cb7aff666374afe0f87
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 21:36:07 2024 +0800

    增加读取默认浏览器语言

commit 6f710bbebe63ab2800193f27c71e5c0034f11978
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 21:09:58 2024 +0800

    登录页面增加语言选择选项

commit cb7c4a89a160ed3ef91ad566ec98e75325e7601f
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 20:37:16 2024 +0800

    首次尝试增加英文语言,并在我的信息设置

commit fb996e17cd11611d30c0e12feee00ddf7b225e32
Author: Sun <95302870@qq.com>
Date:   Sat Jan 6 18:22:40 2024 +0800

    完成基础设置页面的语言国际化适配
This commit is contained in:
Sun
2024-01-07 14:53:53 +08:00
parent ffc378a38f
commit 394c6ce20c
23 changed files with 609 additions and 467 deletions
+33 -32
View File
@@ -5,6 +5,7 @@ import { NButton, NCard, NColorPicker, NGrid, NGridItem, NInput, NInputGroup, NP
import { useAuthStore, usePanelState } from '@/store'
import { set as setUserConfig } from '@/api/panel/userConfig'
import { PanelPanelConfigStyleEnum } from '@/enums/panel'
import { t } from '@/locales'
const authStore = useAuthStore()
const panelState = usePanelState()
@@ -14,11 +15,11 @@ const isSaveing = ref(false)
const iconTypeOptions = [
{
label: '详情图标',
label: t('apps.baseSettings.detailIcon'),
value: PanelPanelConfigStyleEnum.info,
},
{
label: '小图标',
label: t('apps.baseSettings.smallIcon'),
value: PanelPanelConfigStyleEnum.icon,
},
]
@@ -61,9 +62,9 @@ function handleUploadBackgroundFinish({
function uploadCloud() {
setUserConfig({ panel: panelState.panelConfig }).then((res) => {
if (res.code === 0)
ms.success('配置已保存')
ms.success(t('apps.baseSettings.configSaved'))
else
ms.error(`配置已保存${res.msg}`)
ms.error(t('apps.baseSettings.configFailed', { message: res.msg }))
})
}
@@ -82,7 +83,7 @@ function resetPanelConfig() {
<div>
<div>
文本内容
{{ $t('apps.baseSettings.textContent') }}
</div>
<div class="flex items-center mt-[5px]">
<NInput v-model:value="panelState.panelConfig.logoText" type="text" show-count :maxlength="20" placeholder="请输入文字" />
@@ -92,53 +93,53 @@ function resetPanelConfig() {
<NCard style="border-radius:10px" class="mt-[10px]" size="small">
<div class="text-slate-500 mb-[5px] font-bold">
时钟
{{ $t('apps.baseSettings.clock') }}
</div>
<div class="flex items-center mt-[5px]">
<span class="mr-[10px]">显示秒</span>
<span class="mr-[10px]">{{ $t('apps.baseSettings.clockSecondShow') }}</span>
<NSwitch v-model:value="panelState.panelConfig.clockShowSecond" />
</div>
</NCard>
<NCard style="border-radius:10px" class="mt-[10px]" size="small">
<div class="text-slate-500 mb-[5px] font-bold">
搜索框
{{ $t('apps.baseSettings.searchBar') }}
</div>
<div class="flex items-center mt-[5px]">
<span class="mr-[10px]">显示</span>
<span class="mr-[10px]">{{ $t('common.show') }}</span>
<NSwitch v-model:value="panelState.panelConfig.searchBoxShow" />
</div>
<div v-if="panelState.panelConfig.searchBoxShow" class="flex items-center mt-[5px]">
<span class="mr-[10px]">允许搜索快捷图标</span>
<span class="mr-[10px]">{{ $t('apps.baseSettings.searchBarSearchItem') }}</span>
<NSwitch v-model:value="panelState.panelConfig.searchBoxSearchIcon" />
</div>
</NCard>
<NCard style="border-radius:10px" class="mt-[10px]" size="small">
<div class="text-slate-500 mb-[5px] font-bold">
系统监控
{{ $t('apps.baseSettings.systemMonitorStatus') }}
</div>
<div class="flex items-center mt-[5px]">
<span class="mr-[10px]">显示</span>
<span class="mr-[10px]">{{ $t('common.show') }}</span>
<NSwitch v-model:value="panelState.panelConfig.systemMonitorShow" />
</div>
<div v-if="panelState.panelConfig.systemMonitorShow" class="flex items-center mt-[5px]">
<span class="mr-[10px]">显示标题</span>
<span class="mr-[10px]">{{ $t('apps.baseSettings.showTitle') }}</span>
<NSwitch v-model:value="panelState.panelConfig.systemMonitorShowTitle" />
</div>
<div v-if="panelState.panelConfig.systemMonitorShow" class="flex items-center mt-[5px]">
<span class="mr-[10px]">公开模式允许显示</span>
<span class="mr-[10px]">{{ $t('apps.baseSettings.publicVisitModeShow') }}</span>
<NSwitch v-model:value="panelState.panelConfig.systemMonitorPublicVisitModeShow" />
</div>
</NCard>
<NCard style="border-radius:10px" class="mt-[10px]" size="small">
<div class="text-slate-500 mb-[5px] font-bold">
图标
{{ $t('common.icon') }}
</div>
<div class="mt-[5px]">
<div>
样式
{{ $t('common.style') }}
</div>
<div class="flex items-center mt-[5px]">
<NSelect v-model:value="panelState.panelConfig.iconStyle" :options="iconTypeOptions" />
@@ -147,7 +148,7 @@ function resetPanelConfig() {
<div v-if="panelState.panelConfig.iconStyle === PanelPanelConfigStyleEnum.info" class="mt-[5px]">
<div>
隐藏描述信息
{{ $t('apps.baseSettings.hideDescription') }}
</div>
<div class="flex items-center mt-[5px]">
<NSwitch v-model:value="panelState.panelConfig.iconTextInfoHideDescription" />
@@ -156,7 +157,7 @@ function resetPanelConfig() {
<div v-if="panelState.panelConfig.iconStyle === PanelPanelConfigStyleEnum.icon" class="mt-[5px]">
<div>
隐藏标题
{{ $t('apps.baseSettings.hideTitle') }}
</div>
<div class="flex items-center mt-[5px]">
<NSwitch v-model:value="panelState.panelConfig.iconTextIconHideTitle" />
@@ -165,7 +166,7 @@ function resetPanelConfig() {
<div class="mt-[5px]">
<div>
文字颜色
{{ $t('common.textColor') }}
</div>
<div class="flex items-center mt-[5px]">
<NColorPicker
@@ -186,7 +187,7 @@ function resetPanelConfig() {
</NCard>
<NCard style="border-radius:10px" class="mt-[10px]" size="small">
<div class="text-slate-500 mb-[5px] font-bold">
壁纸
{{ $t('apps.baseSettings.customFooter') }}
</div>
<NUpload
action="/api/file/uploadImg"
@@ -204,32 +205,32 @@ function resetPanelConfig() {
:style="{ background: `url(${panelState.panelConfig.backgroundImageSrc}) no-repeat`, backgroundSize: 'cover' }"
>
<div class="text-shadow text-white">
点击上传替换图片或拖拽到框内
{{ $t('apps.baseSettings.uploadOrDragText') }}
</div>
</div>
</NUploadDragger>
</NUpload>
<div class="flex items-center mt-[10px]">
<span class="mr-[10px]">模糊</span>
<span class="mr-[10px]">{{ $t('apps.baseSettings.vague') }}</span>
<NSlider v-model:value="panelState.panelConfig.backgroundBlur" class="max-w-[200px]" :step="2" :max="20" />
</div>
<div class="flex items-center mt-[10px]">
<span class="mr-[10px]">遮罩</span>
<span class="mr-[10px]">{{ $t('apps.baseSettings.mask') }}</span>
<NSlider v-model:value="panelState.panelConfig.backgroundMaskNumber" class="max-w-[200px]" :step="0.1" :max="1" />
</div>
</NCard>
<NCard style="border-radius:10px" class="mt-[10px]" size="small">
<div class="text-slate-500 mb-[5px] font-bold">
内容区域
{{ $t('apps.baseSettings.contentArea') }}
</div>
<NGrid cols="2">
<NGridItem span="12 400:12">
<div class="flex items-center mt-[10px]">
<span class="mr-[10px]">最大宽度</span>
<span class="mr-[10px]">{{ $t('apps.baseSettings.maxWidth') }}</span>
<div class="flex">
<NInputGroup>
<NInput v-model:value="panelState.panelConfig.maxWidth" size="small" type="number" :maxlength="10" :style="{ width: '100px' }" placeholder="1200" />
@@ -240,19 +241,19 @@ function resetPanelConfig() {
</NGridItem>
<NGridItem span="12 400:12">
<div class="flex items-center mt-[10px]">
<span class="mr-[10px]">左右边距</span>
<span class="mr-[10px]">{{ $t('apps.baseSettings.leftRightMargin') }}</span>
<NSlider v-model:value="panelState.panelConfig.marginX" class="max-w-[200px]" :step="1" :max="100" />
</div>
</NGridItem>
<NGridItem span="12 400:12">
<div class="flex items-center mt-[10px]">
<span class="mr-[10px]">上边距 (%)</span>
<span class="mr-[10px]">{{ $t('apps.baseSettings.topMargin') }} (%)</span>
<NSlider v-model:value="panelState.panelConfig.marginTop" class="max-w-[200px]" :step="1" :max="50" />
</div>
</NGridItem>
<NGridItem span="12 400:6">
<div class="flex items-center mt-[10px]">
<span class="mr-[10px]">下边距 (%)</span>
<span class="mr-[10px]">{{ $t('apps.baseSettings.bottomMargin') }} (%)</span>
<NSlider v-model:value="panelState.panelConfig.marginBottom" class="max-w-[200px]" :step="1" :max="50" />
</div>
</NGridItem>
@@ -261,7 +262,7 @@ function resetPanelConfig() {
<NCard style="border-radius:10px" class="mt-[10px]" size="small">
<div class="text-slate-500 mb-[5px] font-bold">
自定义footer
{{ $t('apps.baseSettings.customFooter') }}
</div>
<NInput
@@ -276,14 +277,14 @@ function resetPanelConfig() {
>
<template #trigger>
<NButton size="small" quaternary type="error">
重置
{{ $t('common.reset') }}
</NButton>
</template>
确定要重置这些样式吗
{{ $t('apps.baseSettings.resetWarnText') }}
</NPopconfirm>
<NButton size="small" quaternary type="success" class="ml-[10px]" @click="uploadCloud">
立即保存
{{ $t('common.save') }}
</NButton>
</NCard>
</div>