Implemented multi-language support for the application: - Added @nuxtjs/i18n plugin configuration - Created locale files for English (en-US) and Chinese (zh-CN) - Updated components to use translation keys - Added language switcher in header - Configured VSCode i18n-ally settings - Prepared translation infrastructure for future language expansions
45 lines
1.1 KiB
Vue
45 lines
1.1 KiB
Vue
<script setup>
|
|
import { toast } from 'vue-sonner'
|
|
|
|
const props = defineProps({
|
|
link: {
|
|
type: Object,
|
|
required: true,
|
|
},
|
|
})
|
|
|
|
const emit = defineEmits(['update:link'])
|
|
|
|
async function deleteLink() {
|
|
await useAPI('/api/link/delete', {
|
|
method: 'POST',
|
|
body: {
|
|
slug: props.link.slug,
|
|
},
|
|
})
|
|
emit('update:link', props.link, 'delete')
|
|
toast('Delete successful!')
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<AlertDialog>
|
|
<AlertDialogTrigger as-child>
|
|
<slot />
|
|
</AlertDialogTrigger>
|
|
<AlertDialogContent class="max-w-[95svw] max-h-[95svh] md:max-w-lg grid-rows-[auto_minmax(0,1fr)_auto]">
|
|
<AlertDialogHeader>
|
|
<AlertDialogTitle>{{ $t('links.delete_confirm_title') }}</AlertDialogTitle>
|
|
<AlertDialogDescription>
|
|
{{ $t('links.delete_confirm_desc') }}
|
|
</AlertDialogDescription>
|
|
</AlertDialogHeader>
|
|
<AlertDialogFooter>
|
|
<AlertDialogCancel>{{ $t('common.cancel') }}</AlertDialogCancel>
|
|
<AlertDialogAction @click="deleteLink">
|
|
{{ $t('common.continue') }}
|
|
</AlertDialogAction>
|
|
</AlertDialogFooter>
|
|
</AlertDialogContent>
|
|
</AlertDialog>
|
|
</template>
|