feat(front): add internationalization support to TextShareResult component, localizing titles and messages for enhanced user experience

This commit is contained in:
keven
2025-10-18 10:54:47 +08:00
parent 8924de58c0
commit 80a01a2849
3 changed files with 30 additions and 9 deletions

View File

@@ -40,13 +40,14 @@ const url = computed(() => {
})
const { copy } = useClipboard()
const { t } = useI18n()
</script>
<template>
<div class="flex flex-col gap-3">
<div class="flex flex-row gap-2">
<div class="flex flex-row justify-between w-full">
<h2 class="text-lg">分享成功</h2>
<h2 class="text-lg">{{ t('textshareresult.title') }}</h2>
<Button
variant="outline"
class="bg-white/70"
@@ -63,21 +64,21 @@ const { copy } = useClipboard()
</div>
<div class="flex flex-col md:flex-row gap-5 rounded-md p-5 bg-white/20 backdrop-blur-xl w-full">
<div class="flex flex-col gap-2 flex-1">
<div class="text-sm font-semibold">信息</div>
<div class="text-sm font-semibold">{{ t('textshareresult.info') }}</div>
<div class="grid grid-cols-2 gap-2">
<div class="rounded-xl flex flex-col bg-black/10 px-3 py-2 gap-1">
<div class="text-xs font-semibold">下载次数</div>
<div class="text-xs font-semibold">{{ t('textshareresult.viewNums') }}</div>
<div class="text-3xl font-light">{{ data?.download_nums }}</div>
</div>
<div class="rounded-xl flex flex-col bg-black/5 px-3 py-2 gap-1">
<div class="text-xs font-semibold">过期时间</div>
<div class="text-xs font-semibold">{{ t('textshareresult.expireTime') }}</div>
<div class="text-md font-light">
{{ dayjs((data?.expire_at ?? 0) * 1000).format('YYYY-MM-DD HH:mm:ss') }}
</div>
</div>
<div class="rounded-xl flex flex-col bg-black/10 px-3 py-2 gap-1" v-if="data?.pickup_code">
<div class="flex flex-row justify-between w-full items-center">
<div class="text-xs font-semibold">提取码</div>
<div class="text-xs font-semibold">{{ t('textshareresult.pickupCode') }}</div>
<Button
variant="outline"
class="bg-white/70 p-0 size-6"
@@ -85,7 +86,7 @@ const { copy } = useClipboard()
@click="
() => {
copy(data?.pickup_code as string)
toast.success('复制成功')
toast.success(t('textshareresult.copySuccess'))
}
"
>
@@ -101,7 +102,7 @@ const { copy } = useClipboard()
</div>
</div>
<div class="flex flex-col gap-5 flex-1">
<div class="text-sm font-semibold">链接</div>
<div class="text-sm font-semibold">{{ t('textshareresult.link') }}</div>
<div class="flex flex-row gap-2">
<Input v-model="url" class="bg-white/70" readonly />
<Button
@@ -111,7 +112,7 @@ const { copy } = useClipboard()
@click="
() => {
copy(url)
toast.success('复制成功')
toast.success(t('textshareresult.copySuccess'))
}
"
>
@@ -139,7 +140,7 @@ const { copy } = useClipboard()
</div>
</div>
</div>
<h2 class="text-md">内容</h2>
<h2 class="text-md">{{ t('textshareresult.content') }}</h2>
<MarkdownRender class="prose rounded-md bg-white/70 p-3 w-full max-w-full min-h-[30vh]" :markdown="props?.data?.text" />
</div>
</template>

View File

@@ -94,6 +94,16 @@
"link": "Link",
"copySuccess": "Copy Success"
},
"textshareresult": {
"title": "Share Successful",
"info": "Info",
"viewNums": "View Count",
"expireTime": "Expire Time",
"pickupCode": "Pickup Code",
"link": "Link",
"content": "Content",
"copySuccess": "Copy Success"
},
"about": {
"file": "File",
"task": "Task",

View File

@@ -94,6 +94,16 @@
"link": "链接",
"copySuccess": "复制成功"
},
"textshareresult": {
"title": "分享成功",
"info": "信息",
"viewNums": "浏览次数",
"expireTime": "过期时间",
"pickupCode": "提取码",
"link": "链接",
"content": "内容",
"copySuccess": "复制成功"
},
"about": {
"file": "文件",
"task": "任务",