更新国际化支持:为站点卡片及相关组件添加多语言文本,提升用户体验

This commit is contained in:
jxxghp
2025-04-28 21:52:04 +08:00
parent 3dbfa750c9
commit 09229ad5ef
6 changed files with 49 additions and 15 deletions

4
auto-imports.d.ts vendored
View File

@@ -328,7 +328,7 @@ declare global {
// for type re-export
declare global {
// @ts-ignore
export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
import('vue')
}
@@ -356,7 +356,6 @@ declare module 'vue' {
readonly createPinia: UnwrapRef<typeof import('pinia')['createPinia']>
readonly createProjection: UnwrapRef<typeof import('@vueuse/math')['createProjection']>
readonly createReactiveFn: UnwrapRef<typeof import('@vueuse/core')['createReactiveFn']>
readonly createRef: UnwrapRef<typeof import('@vueuse/core')['createRef']>
readonly createReusableTemplate: UnwrapRef<typeof import('@vueuse/core')['createReusableTemplate']>
readonly createSharedComposable: UnwrapRef<typeof import('@vueuse/core')['createSharedComposable']>
readonly createTemplatePromise: UnwrapRef<typeof import('@vueuse/core')['createTemplatePromise']>
@@ -491,7 +490,6 @@ declare module 'vue' {
readonly useCloned: UnwrapRef<typeof import('@vueuse/core')['useCloned']>
readonly useColorMode: UnwrapRef<typeof import('@vueuse/core')['useColorMode']>
readonly useConfirmDialog: UnwrapRef<typeof import('@vueuse/core')['useConfirmDialog']>
readonly useCountdown: UnwrapRef<typeof import('@vueuse/core')['useCountdown']>
readonly useCounter: UnwrapRef<typeof import('@vueuse/core')['useCounter']>
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
readonly useCssVar: UnwrapRef<typeof import('@vueuse/core')['useCssVar']>

1
components.d.ts vendored
View File

@@ -2,7 +2,6 @@
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
// biome-ignore lint: disable
export {}
/* prettier-ignore */

View File

@@ -2,6 +2,7 @@
import type { PropType } from 'vue'
import noImage from '@images/logos/site.webp'
import { useToast } from 'vue-toast-notification'
import { useI18n } from 'vue-i18n'
import SiteAddEditDialog from '../dialog/SiteAddEditDialog.vue'
import SiteUserDataDialog from '../dialog/SiteUserDataDialog.vue'
import SiteResourceDialog from '../dialog/SiteResourceDialog.vue'
@@ -12,6 +13,9 @@ import { isNullOrEmptyObject } from '@/@core/utils'
import { formatFileSize } from '@/@core/utils/formatters'
import { useConfirm } from 'vuetify-use-dialog'
// 国际化
const { t } = useI18n()
// 输入参数
const cardProps = defineProps({
site: Object as PropType<Site>,
@@ -31,7 +35,7 @@ const siteIcon = ref<string>('')
const $toast = useToast()
// 测试按钮文字
const testButtonText = ref('测试连通性')
const testButtonText = ref(t('site.testConnectivity'))
// 测试按钮可用性
const testButtonDisable = ref(false)
@@ -66,14 +70,14 @@ async function getSiteIcon() {
// 测试站点连通性
async function testSite() {
try {
testButtonText.value = '测试中 ...'
testButtonText.value = t('site.testing')
testButtonDisable.value = true
const result: { [key: string]: any } = await api.get(`site/test/${cardProps.site?.id}`)
if (result.success) $toast.success(`${cardProps.site?.name} 连通性测试成功,可正常使用!`)
else $toast.error(`${cardProps.site?.name} 连通性测试失败:${result.message}`)
if (result.success) $toast.success(t('site.testSuccess', { name: cardProps.site?.name }))
else $toast.error(t('site.testFailed', { name: cardProps.site?.name, message: result.message }))
testButtonText.value = '测试连通性'
testButtonText.value = t('site.testConnectivity')
testButtonDisable.value = false
getSiteStats()
@@ -114,8 +118,8 @@ function openSitePage() {
// 调用API删除站点信息
async function deleteSiteInfo() {
const isConfirmed = await createConfirm({
title: '确认',
content: `是否确认删除站点?`,
title: t('common.confirm'),
content: t('site.deleteConfirm'),
})
if (!isConfirmed) return
@@ -123,9 +127,9 @@ async function deleteSiteInfo() {
try {
const result: { [key: string]: any } = await api.delete(`site/${cardProps.site?.id}`)
if (result.success) emit('remove')
else $toast.error(`${cardProps.site?.name} 删除失败:${result.message}`)
else $toast.error(t('site.deleteFailed', { name: cardProps.site?.name, message: result.message }))
} catch (error) {
$toast.error(`${cardProps.site?.name} 删除失败!`)
$toast.error(t('site.deleteFailed', { name: cardProps.site?.name, message: error }))
console.error(error)
}
}
@@ -336,13 +340,13 @@ onMounted(() => {
<template #prepend>
<VIcon icon="mdi-web" size="small" />
</template>
<VListItemTitle>浏览资源</VListItemTitle>
<VListItemTitle>{{ t('site.browseResources') }}</VListItemTitle>
</VListItem>
<VListItem @click="deleteSiteInfo">
<template #prepend>
<VIcon icon="mdi-delete-outline" size="small" color="error" />
</template>
<VListItemTitle class="text-error">删除站点</VListItemTitle>
<VListItemTitle class="text-error">{{ t('site.deleteSite') }}</VListItemTitle>
</VListItem>
</VList>
</VMenu>

View File

@@ -592,6 +592,17 @@ export default {
errors: {
loadDownloader: 'Failed to load downloader settings',
},
testConnectivity: 'Test Connectivity',
testing: 'Testing ...',
testSuccess: '{name} connectivity test successful, ready to use!',
testFailed: '{name} connectivity test failed: {message}',
deleteConfirm: 'Are you sure you want to delete this site?',
deleteSuccess: '{name} deleted successfully!',
deleteFailed: '{name} deletion failed: {message}',
browseResources: 'Browse Resources',
deleteSite: 'Delete Site',
updateCookie: 'Update Cookie',
viewUserData: 'View User Data',
},
message: {
loadMore: 'Load More',

View File

@@ -590,6 +590,17 @@ export default {
errors: {
loadDownloader: '加载下载器设置失败',
},
testConnectivity: '测试连通性',
testing: '测试中 ...',
testSuccess: '{name} 连通性测试成功,可正常使用!',
testFailed: '{name} 连通性测试失败:{message}',
deleteConfirm: '是否确认删除站点?',
deleteSuccess: '{name} 删除成功!',
deleteFailed: '{name} 删除失败:{message}',
browseResources: '浏览资源',
deleteSite: '删除站点',
updateCookie: '更新Cookie',
viewUserData: '查看用户数据',
},
message: {
loadMore: '加载更多',

View File

@@ -587,6 +587,17 @@ export default {
errors: {
loadDownloader: '加載下載器設置失敗',
},
testConnectivity: '測試連通性',
testing: '測試中 ...',
testSuccess: '{name} 連通性測試成功,可正常使用!',
testFailed: '{name} 連通性測試失敗:{message}',
deleteConfirm: '是否確認刪除站點?',
deleteSuccess: '{name} 刪除成功!',
deleteFailed: '{name} 刪除失敗:{message}',
browseResources: '瀏覽資源',
deleteSite: '刪除站點',
updateCookie: '更新Cookie',
viewUserData: '查看用戶數據',
},
message: {
loadMore: '加載更多',