Skip to content

Commit 426efc7

Browse files
authored
feat: email i18n (#2013)
1 parent a28de6f commit 426efc7

File tree

8 files changed

+104
-145
lines changed

8 files changed

+104
-145
lines changed

ui/src/locales/lang/en_US/index.ts

Lines changed: 2 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,51 +2,12 @@ import en from 'element-plus/es/locale/lang/en'
22
import components from './components'
33
import layout from './layout'
44
import views from './views'
5-
5+
import common from './common'
66
export default {
77
lang: 'English',
88
layout,
99
views,
1010
components,
1111
en,
12-
common: {
13-
create: 'Create',
14-
createSuccess: 'Create Success',
15-
copy: 'Copy',
16-
copySuccess: 'Copy Success',
17-
copyError: 'Copy Failed',
18-
save: 'Save',
19-
saveSuccess: 'Save Success',
20-
delete: 'Delete',
21-
deleteSuccess: 'Successfully deleted',
22-
setting: 'Setting',
23-
settingSuccess: 'Setting Successful',
24-
submit: 'Submit',
25-
submitSuccess: 'Submitted successfully',
26-
edit: 'Edit',
27-
editSuccess: 'Edit Successful',
28-
cancel: 'Cancel',
29-
confirm: 'Confirm',
30-
tip: 'Prompt',
31-
add: 'Add',
32-
refresh: 'Refresh',
33-
search: 'Search',
34-
clear: 'Clear',
35-
professional: 'Purchase the Professional Edition',
36-
status: 'Status',
37-
createDate: 'Create date',
38-
operation: 'Operation',
39-
document: 'Documentation',
40-
character: 'characters',
41-
export: 'Export',
42-
exportSuccess: 'Export successful',
43-
unavailable: '(Unavailable)',
44-
public: 'Public',
45-
private: 'Private',
46-
paramSetting: 'Parameter Settings',
47-
creator: 'Creator',
48-
debug: 'Debug',
49-
modify: 'Modify',
50-
},
51-
12+
common
5213
}

ui/src/locales/lang/en_US/views/system.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,20 @@ export default {
130130
saveSuccess: 'Appearance settings successfully applied'
131131
},
132132
email: {
133-
title: 'Email Setting'
133+
title: 'Email Setting',
134+
smtpHost: 'SMTP Host',
135+
smtpHostPlaceholder: 'Please enter SMTP Host',
136+
smtpPort: 'SMTP Port',
137+
smtpPortPlaceholder: 'Please enter SMTP Port',
138+
smtpUser: 'SMTP User',
139+
smtpUserPlaceholder: 'Please enter SMTP User',
140+
sendEmail: 'Send Email',
141+
sendEmailPlaceholder: 'Please enter Send Email',
142+
smtpPassword: 'SMTP Password',
143+
smtpPasswordPlaceholder: 'Please enter SMTP Password',
144+
test: 'Test Connection',
145+
enableSSL: 'Enable SSL (if the SMTP port is 465, you usually need to enable SSL)',
146+
enableTLS: 'Enable TLS (if the SMTP port is 587, you usually need to enable TLS)',
147+
testSuccess: 'Test Connection Successful'
134148
}
135149
}

ui/src/locales/lang/zh_CN/index.ts

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,50 +2,12 @@ import zhCn from 'element-plus/es/locale/lang/zh-cn'
22
import components from './components'
33
import layout from './layout'
44
import views from './views'
5-
5+
import common from './common'
66
export default {
77
lang: '简体中文',
88
layout,
99
views,
1010
components,
1111
zhCn,
12-
common: {
13-
create: '创建',
14-
createSuccess: '创建成功',
15-
copy: '复制',
16-
copySuccess: '复制成功',
17-
copyError: '复制失败',
18-
save: '保存',
19-
saveSuccess: '保存成功',
20-
delete: '删除',
21-
deleteSuccess: '删除成功',
22-
setting: '设置',
23-
settingSuccess: '设置成功',
24-
submit: '提交',
25-
submitSuccess: '提交成功',
26-
edit: '编辑',
27-
editSuccess: '编辑成功',
28-
cancel: '取消',
29-
confirm: '确定',
30-
tip: '提示',
31-
add: '添加',
32-
refresh: '刷新',
33-
search: '搜索',
34-
clear: '清空',
35-
professional: '购买专业版',
36-
status: '状态',
37-
createDate: '创建日期',
38-
operation: '操作',
39-
document: '文档',
40-
character: '字符',
41-
export: '导出',
42-
exportSuccess: '导出成功',
43-
unavailable: '(不可用)',
44-
public: '公用',
45-
private: '私有',
46-
paramSetting: '参数设置',
47-
creator: '创建者',
48-
debug: '调试',
49-
modify: '修改'
50-
}
12+
common
5113
}

ui/src/locales/lang/zh_CN/views/system.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,20 @@ export default {
128128
saveSuccess: '外观设置成功'
129129
},
130130
email: {
131-
title: '邮箱配置'
131+
title: '邮箱设置',
132+
smtpHost: 'SMTP Host',
133+
smtpHostPlaceholder: '请输入 SMTP Host',
134+
smtpPort: 'SMTP Port',
135+
smtpPortPlaceholder: '请输入 SMTP Port',
136+
smtpUser: 'SMTP 账户',
137+
smtpUserPlaceholder: '请输入 SMTP 账户',
138+
sendEmail: '发件人邮箱',
139+
sendEmailPlaceholder: '请输入发件人邮箱',
140+
smtpPassword: '密码',
141+
smtpPasswordPlaceholder: '请输入发件人密码',
142+
test: '测试连接',
143+
enableSSL: '启用 SSL(如果 SMTP 端口是 465,通常需要启用 SSL)',
144+
enableTLS: '启用 TLS(如果 SMTP 端口是 587,通常需要启用 TLS)',
145+
testSuccess: '测试连接成功'
132146
}
133147
}

ui/src/locales/lang/zh_TW/index.ts

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,45 +2,13 @@ import zhTw from 'element-plus/es/locale/lang/zh-tw'
22
import components from './components'
33
import layout from './layout'
44
import views from './views'
5+
import common from './common'
56

67
export default {
78
lang: '繁體中文',
89
layout,
10+
common,
911
views,
1012
components,
11-
zhTw,
12-
common: {
13-
create: '創建',
14-
createSuccess: '創建成功',
15-
copy: '複製',
16-
copySuccess: '複製成功',
17-
copyError: '複製失敗',
18-
save: '儲存',
19-
saveSuccess: '儲存成功',
20-
delete: '刪除',
21-
deleteSuccess: '刪除成功',
22-
setting: '設定',
23-
settingSuccess: '設定成功',
24-
submit: '提交',
25-
submitSuccess: '提交成功',
26-
cancel: '取消',
27-
confirm: '確認',
28-
tip: '提示',
29-
add: '新增',
30-
refresh: '重新整理',
31-
search: '搜尋',
32-
clear: '清除',
33-
professional: '購買專業版',
34-
status: '狀態',
35-
createDate: '創建日期',
36-
operation: '操作',
37-
document: '文檔',
38-
character: '字符',
39-
export: '匯出',
40-
exportSuccess: '匯出成功',
41-
unavailable: '(不可用)',
42-
public: '公用',
43-
paramSetting: '參數設定',
44-
edit: '編輯',
45-
},
13+
zhTw
4614
}

ui/src/locales/lang/zh_TW/views/system.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,20 @@ export default {
129129
saveSuccess: '外觀設置成功'
130130
},
131131
email: {
132-
title: '郵箱配置'
132+
title: '郵箱設置',
133+
smtpHost: 'SMTP Host',
134+
smtpHostPlaceholder: '請輸入 SMTP Host',
135+
smtpPort: 'SMTP Port',
136+
smtpPortPlaceholder: '請輸入 SMTP Port',
137+
smtpUser: 'SMTP 帳戶',
138+
smtpUserPlaceholder: '請輸入 SMTP 帳戶',
139+
sendEmail: '發件人信箱',
140+
sendEmailPlaceholder: '請輸入發件人信箱',
141+
smtpPassword: '密碼',
142+
smtpPasswordPlaceholder: '請輸入發件人密碼',
143+
test: '測試連接',
144+
enableSSL: '啟用 SSL(如果 SMTP 端口是 465,通常需要啟用 SSL)',
145+
enableTLS: '啟用 TLS(如果 SMTP 端口是 587,通常需要啟用 TLS)',
146+
testSuccess: '測試連接成功'
133147
}
134148
}

ui/src/router/modules/setting.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { hasPermission } from '@/utils/permission/index'
22
import Layout from '@/layout/layout-template/SystemLayout.vue'
33
import { Role, ComplexPermission } from '@/utils/permission/type'
4+
import { t } from '@/locales'
45
const settingRouter = {
56
path: '/setting',
67
name: 'setting',
@@ -70,7 +71,7 @@ const settingRouter = {
7071
path: '/system/theme',
7172
name: 'theme',
7273
meta: {
73-
title: '外观设置',
74+
title: t('views.system.theme.title'),
7475
activeMenu: '/setting',
7576
parentPath: '/setting',
7677
parentName: 'setting',
@@ -82,7 +83,7 @@ const settingRouter = {
8283
path: '/system/authentication',
8384
name: 'authentication',
8485
meta: {
85-
title: '登录认证',
86+
title: t('views.system.authentication.title'),
8687
activeMenu: '/setting',
8788
parentPath: '/setting',
8889
parentName: 'setting',
@@ -94,7 +95,7 @@ const settingRouter = {
9495
path: '/system/email',
9596
name: 'email',
9697
meta: {
97-
title: '邮箱配置',
98+
title: t('views.system.email.title'),
9899
activeMenu: '/setting',
99100
parentPath: '/setting',
100101
parentName: 'setting',

ui/src/views/email/index.vue

Lines changed: 48 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<LayoutContainer header="邮箱配置">
2+
<LayoutContainer :header="$t('views.system.email.title')">
33
<div class="email-setting main-calc-height">
44
<el-scrollbar>
55
<div class="p-24" v-loading="loading">
@@ -10,43 +10,55 @@
1010
label-position="top"
1111
require-asterisk-position="right"
1212
>
13-
<el-form-item label="SMTP 主机" prop="email_host">
14-
<el-input v-model="form.email_host" placeholder="请输入 SMTP 主机" />
13+
<el-form-item :label="$t('views.system.email.smtpHost')" prop="email_host">
14+
<el-input
15+
v-model="form.email_host"
16+
:placeholder="$t('views.system.email.smtpHostPlaceholder')"
17+
/>
1518
</el-form-item>
16-
<el-form-item label="SMTP 端口" prop="email_port">
17-
<el-input v-model="form.email_port" placeholder="请输入 SMTP 端口" />
19+
<el-form-item :label="$t('views.system.email.smtpPort')" prop="email_port">
20+
<el-input
21+
v-model="form.email_port"
22+
:placeholder="$t('views.system.email.smtpPortPlaceholder')"
23+
/>
1824
</el-form-item>
19-
<el-form-item label="SMTP 账户" prop="email_host_user">
20-
<el-input v-model="form.email_host_user" placeholder="请输入 SMTP 账户" />
25+
<el-form-item :label="$t('views.system.email.smtpUser')" prop="email_host_user">
26+
<el-input
27+
v-model="form.email_host_user"
28+
:placeholder="$t('views.system.email.smtpUserPlaceholder')"
29+
/>
2130
</el-form-item>
22-
<el-form-item label="发件人邮箱" prop="from_email">
23-
<el-input v-model="form.from_email" placeholder="请输入发件人邮箱" />
31+
<el-form-item :label="$t('views.system.email.sendEmail')" prop="from_email">
32+
<el-input
33+
v-model="form.from_email"
34+
:placeholder="$t('views.system.email.sendEmailPlaceholder')"
35+
/>
2436
</el-form-item>
25-
<el-form-item label="密码" prop="email_host_password">
37+
<el-form-item :label="$t('views.system.email.smtpPassword')" prop="email_host_password">
2638
<el-input
2739
v-model="form.email_host_password"
28-
placeholder="请输入发件人密码"
40+
:placeholder="$t('views.system.email.smtpPasswordPlaceholder')"
2941
show-password
3042
/>
3143
</el-form-item>
3244
<el-form-item>
3345
<el-checkbox v-model="form.email_use_ssl"
34-
>开启SSL(如果SMTP端口是465,通常需要启用SSL)
46+
>{{ $t('views.system.email.enableSSL') }}
3547
</el-checkbox>
3648
</el-form-item>
3749
<el-form-item>
3850
<el-checkbox v-model="form.email_use_tls"
39-
>开启TLS(如果SMTP端口是587,通常需要启用TLS)</el-checkbox
40-
>
51+
>{{ $t('views.system.email.enableTLS') }}
52+
</el-checkbox>
4153
</el-form-item>
4254
<el-button @click="submit(emailFormRef, 'test')" :disabled="loading">
43-
测试连接
55+
{{ $t('views.system.email.test') }}
4456
</el-button>
4557
</el-form>
4658

4759
<div class="text-right">
4860
<el-button @click="submit(emailFormRef)" type="primary" :disabled="loading">
49-
{{ $t('common.save')}}
61+
{{ $t('common.save') }}
5062
</el-button>
5163
</div>
5264
</div>
@@ -60,6 +72,8 @@ import emailApi from '@/api/email-setting'
6072
import type { FormInstance, FormRules } from 'element-plus'
6173
6274
import { MsgSuccess } from '@/utils/message'
75+
import { t } from '@/locales'
76+
6377
const form = ref<any>({
6478
email_host: '',
6579
email_port: '',
@@ -75,11 +89,21 @@ const emailFormRef = ref()
7589
const loading = ref(false)
7690
7791
const rules = reactive<FormRules<any>>({
78-
email_host: [{ required: true, message: '请输入 SMTP 主机', trigger: 'blur' }],
79-
email_port: [{ required: true, message: '请输入 SMTP 端口', trigger: 'blur' }],
80-
email_host_user: [{ required: true, message: '请输入 SMTP 账户', trigger: 'blur' }],
81-
email_host_password: [{ required: true, message: '请输入发件人邮箱密码', trigger: 'blur' }],
82-
from_email: [{ required: true, message: '请输入发件人邮箱', trigger: 'blur' }]
92+
email_host: [
93+
{ required: true, message: t('views.system.email.smtpHostPlaceholder'), trigger: 'blur' }
94+
],
95+
email_port: [
96+
{ required: true, message: t('views.system.email.smtpPortPlaceholder'), trigger: 'blur' }
97+
],
98+
email_host_user: [
99+
{ required: true, message: t('views.system.email.smtpUserPlaceholder'), trigger: 'blur' }
100+
],
101+
email_host_password: [
102+
{ required: true, message: t('views.system.email.smtpPasswordPlaceholder'), trigger: 'blur' }
103+
],
104+
from_email: [
105+
{ required: true, message: t('views.system.email.sendEmailPlaceholder'), trigger: 'blur' }
106+
]
83107
})
84108
85109
const submit = async (formEl: FormInstance | undefined, test?: string) => {
@@ -88,11 +112,11 @@ const submit = async (formEl: FormInstance | undefined, test?: string) => {
88112
if (valid) {
89113
if (test) {
90114
emailApi.postTestEmail(form.value, loading).then((res) => {
91-
MsgSuccess('测试连接成功')
115+
MsgSuccess(t('views.system.email.testSuccess'))
92116
})
93117
} else {
94118
emailApi.putEmailSetting(form.value, loading).then((res) => {
95-
MsgSuccess('设置成功')
119+
MsgSuccess(t('common.saveSuccess'))
96120
})
97121
}
98122
}
@@ -115,6 +139,7 @@ onMounted(() => {
115139
.email-setting {
116140
width: 70%;
117141
margin: 0 auto;
142+
118143
:deep(.el-checkbox__label) {
119144
font-weight: 400;
120145
}

0 commit comments

Comments
 (0)