新增图片翻译功能及多语言支持

This commit is contained in:
aixianling
2024-11-06 17:53:13 +08:00
parent b1d1f60f96
commit e7f5670b72
3 changed files with 56 additions and 9 deletions

View File

@@ -52,7 +52,7 @@
<el-submenu index="/imageTranslate">
<template #title>
<i class="el-icon-s-goods"/>
<i class="el-icon-cpu"/>
<span>AI助手</span>
</template>
<el-menu-item index="/imageTranslate">图片翻译</el-menu-item>

34
src/view/media/i18n.js Normal file
View File

@@ -0,0 +1,34 @@
export const languages = {
CHS: '中文(简体)',
CHT: '中文(繁体)',
CSY: '捷克语',
NLD: '荷兰语',
ENG: '英语',
FRA: '法语',
DEU: '德语',
HUN: '匈牙利语',
ITA: '意大利语',
JPN: '日语',
KOR: '朝鲜文',
PLK: '波兰语',
PTB: '葡萄牙语(巴西)',
ROM: '罗马尼亚语',
RUS: '俄罗斯语',
ESP: '西班牙语',
TRK: '土耳其语',
VIN: '越南语',
ARA: '阿拉伯语',
SRP: '塞尔维亚语',
HRV: '克罗地亚语',
THA: '泰语',
IND: '印尼语',
FIL: '菲律宾语(他加禄语)',
}
export const engines = {
google: '谷歌翻译',
papago: 'Papago',
m2m100: 'M2M100',
deepl: 'DeepL',
none: '清除文字',
original: '不翻译'
}

View File

@@ -1,28 +1,41 @@
<script>
import AiDetail from "@/components/AiDetail.vue";
import AiSelect from "@/components/AiSelect.vue";
import {engines, languages} from "@/view/media/i18n";
export default {
name: "imageTranslate",
components: {AiDetail},
components: {AiSelect, AiDetail},
data() {
return {
form: {}
form: {},
}
},
computed: {
languages: () => Object.entries(languages).map(([k, v]) => ({dictName: v, dictValue: k})),
engines: () => Object.entries(engines).map(([k, v]) => ({dictName: v, dictValue: k})),
}
}
</script>
<template>
<ai-detail class="imageTranslate">
<ai-list class="imageTranslate">
<ai-title slot="title" title="图片翻译" isShowBottomBorder/>
<template #content>
<el-form>
<el-form size="mini" label-width="120px">
<el-collapse>
<el-collapse-item title="翻译参数" name="1">
<el-form-item label="翻译引擎">
<ai-select v-model="form.translator" :select-list="engines"/>
</el-form-item>
<el-form-item label="翻译语言">
<ai-select v-model="form.targetLang" :select-list="languages"/>
</el-form-item>
</el-collapse-item>
</el-collapse>
</el-form>
</template>
</ai-detail>
</ai-list>
</template>
<style scoped lang="scss">