init
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
export default {
|
||||
name: 'en',
|
||||
el: {
|
||||
colorpicker: {
|
||||
confirm: 'OK',
|
||||
clear: 'Clear',
|
||||
},
|
||||
datepicker: {
|
||||
now: 'Now',
|
||||
today: 'Today',
|
||||
cancel: 'Cancel',
|
||||
clear: 'Clear',
|
||||
confirm: 'OK',
|
||||
selectDate: 'Select date',
|
||||
selectTime: 'Select time',
|
||||
startDate: 'Start Date',
|
||||
startTime: 'Start Time',
|
||||
endDate: 'End Date',
|
||||
endTime: 'End Time',
|
||||
prevYear: 'Previous Year',
|
||||
nextYear: 'Next Year',
|
||||
prevMonth: 'Previous Month',
|
||||
nextMonth: 'Next Month',
|
||||
year: '',
|
||||
month1: 'January',
|
||||
month2: 'February',
|
||||
month3: 'March',
|
||||
month4: 'April',
|
||||
month5: 'May',
|
||||
month6: 'June',
|
||||
month7: 'July',
|
||||
month8: 'August',
|
||||
month9: 'September',
|
||||
month10: 'October',
|
||||
month11: 'November',
|
||||
month12: 'December',
|
||||
week: 'week',
|
||||
weeks: {
|
||||
sun: 'Sun',
|
||||
mon: 'Mon',
|
||||
tue: 'Tue',
|
||||
wed: 'Wed',
|
||||
thu: 'Thu',
|
||||
fri: 'Fri',
|
||||
sat: 'Sat',
|
||||
},
|
||||
months: {
|
||||
jan: 'Jan',
|
||||
feb: 'Feb',
|
||||
mar: 'Mar',
|
||||
apr: 'Apr',
|
||||
may: 'May',
|
||||
jun: 'Jun',
|
||||
jul: 'Jul',
|
||||
aug: 'Aug',
|
||||
sep: 'Sep',
|
||||
oct: 'Oct',
|
||||
nov: 'Nov',
|
||||
dec: 'Dec',
|
||||
},
|
||||
},
|
||||
select: {
|
||||
loading: 'Loading',
|
||||
noMatch: 'No matching data',
|
||||
noData: 'No data',
|
||||
placeholder: 'Select',
|
||||
},
|
||||
cascader: {
|
||||
noMatch: 'No matching data',
|
||||
loading: 'Loading',
|
||||
placeholder: 'Select',
|
||||
noData: 'No data',
|
||||
},
|
||||
pagination: {
|
||||
goto: 'Go to',
|
||||
pagesize: '/page',
|
||||
total: 'Total {total}',
|
||||
pageClassifier: '',
|
||||
deprecationWarning: 'Deprecated usages detected, please refer to the el-pagination documentation for more details',
|
||||
},
|
||||
messagebox: {
|
||||
title: 'Message',
|
||||
confirm: 'OK',
|
||||
cancel: 'Cancel',
|
||||
error: 'Illegal input',
|
||||
},
|
||||
upload: {
|
||||
deleteTip: 'press delete to remove',
|
||||
delete: 'Delete',
|
||||
preview: 'Preview',
|
||||
continue: 'Continue',
|
||||
},
|
||||
table: {
|
||||
emptyText: 'No Data',
|
||||
confirmFilter: 'Confirm',
|
||||
resetFilter: 'Reset',
|
||||
clearFilter: 'All',
|
||||
sumText: 'Sum',
|
||||
},
|
||||
tree: {
|
||||
emptyText: 'No Data',
|
||||
},
|
||||
transfer: {
|
||||
noMatch: 'No matching data',
|
||||
noData: 'No data',
|
||||
titles: ['List 1', 'List 2'],
|
||||
filterPlaceholder: 'Enter keyword',
|
||||
noCheckedFormat: '{total} items',
|
||||
hasCheckedFormat: '{checked}/{total} checked', // to be translated
|
||||
},
|
||||
image: {
|
||||
error: 'FAILED',
|
||||
},
|
||||
pageHeader: {
|
||||
title: 'Back', // to be translated
|
||||
},
|
||||
popconfirm: {
|
||||
confirmButtonText: 'Yes',
|
||||
cancelButtonText: 'No',
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,122 @@
|
||||
export default {
|
||||
name: 'zh-cn',
|
||||
el: {
|
||||
colorpicker: {
|
||||
confirm: '确定',
|
||||
clear: '清空',
|
||||
},
|
||||
datepicker: {
|
||||
now: '此刻',
|
||||
today: '今天',
|
||||
cancel: '取消',
|
||||
clear: '清空',
|
||||
confirm: '确定',
|
||||
selectDate: '选择日期',
|
||||
selectTime: '选择时间',
|
||||
startDate: '开始日期',
|
||||
startTime: '开始时间',
|
||||
endDate: '结束日期',
|
||||
endTime: '结束时间',
|
||||
prevYear: '前一年',
|
||||
nextYear: '后一年',
|
||||
prevMonth: '上个月',
|
||||
nextMonth: '下个月',
|
||||
year: '年',
|
||||
month1: '1 月',
|
||||
month2: '2 月',
|
||||
month3: '3 月',
|
||||
month4: '4 月',
|
||||
month5: '5 月',
|
||||
month6: '6 月',
|
||||
month7: '7 月',
|
||||
month8: '8 月',
|
||||
month9: '9 月',
|
||||
month10: '10 月',
|
||||
month11: '11 月',
|
||||
month12: '12 月',
|
||||
// week: '周次',
|
||||
weeks: {
|
||||
sun: '日',
|
||||
mon: '一',
|
||||
tue: '二',
|
||||
wed: '三',
|
||||
thu: '四',
|
||||
fri: '五',
|
||||
sat: '六',
|
||||
},
|
||||
months: {
|
||||
jan: '一月',
|
||||
feb: '二月',
|
||||
mar: '三月',
|
||||
apr: '四月',
|
||||
may: '五月',
|
||||
jun: '六月',
|
||||
jul: '七月',
|
||||
aug: '八月',
|
||||
sep: '九月',
|
||||
oct: '十月',
|
||||
nov: '十一月',
|
||||
dec: '十二月',
|
||||
},
|
||||
},
|
||||
select: {
|
||||
loading: '加载中',
|
||||
noMatch: '无匹配数据',
|
||||
noData: '无数据',
|
||||
placeholder: '请选择',
|
||||
},
|
||||
cascader: {
|
||||
noMatch: '无匹配数据',
|
||||
loading: '加载中',
|
||||
placeholder: '请选择',
|
||||
noData: '暂无数据',
|
||||
},
|
||||
pagination: {
|
||||
goto: '前往',
|
||||
pagesize: '条/页',
|
||||
total: '共 {total} 条',
|
||||
pageClassifier: '页',
|
||||
deprecationWarning: '你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档',
|
||||
},
|
||||
messagebox: {
|
||||
title: '提示',
|
||||
confirm: '确定',
|
||||
cancel: '取消',
|
||||
error: '输入的数据不合法!',
|
||||
},
|
||||
upload: {
|
||||
deleteTip: '按 delete 键可删除',
|
||||
delete: '删除',
|
||||
preview: '查看图片',
|
||||
continue: '继续上传',
|
||||
},
|
||||
table: {
|
||||
emptyText: '暂无数据',
|
||||
confirmFilter: '筛选',
|
||||
resetFilter: '重置',
|
||||
clearFilter: '全部',
|
||||
sumText: '合计',
|
||||
},
|
||||
tree: {
|
||||
emptyText: '暂无数据',
|
||||
},
|
||||
transfer: {
|
||||
noMatch: '无匹配数据',
|
||||
noData: '无数据',
|
||||
titles: ['列表 1', '列表 2'],
|
||||
filterPlaceholder: '请输入搜索内容',
|
||||
noCheckedFormat: '共 {total} 项',
|
||||
hasCheckedFormat: '已选 {checked}/{total} 项',
|
||||
},
|
||||
image: {
|
||||
error: '加载失败',
|
||||
},
|
||||
pageHeader: {
|
||||
title: '返回',
|
||||
},
|
||||
popconfirm: {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,127 @@
|
||||
export default {
|
||||
ok: 'ok',
|
||||
cancel: 'cancel',
|
||||
reset: 'reset',
|
||||
inputPass: 'input password',
|
||||
inputPassAgain: 'input password again',
|
||||
passLessError: "password number can't be less than 5",
|
||||
passDifferentError: 'The two inputs are inconsistent!',
|
||||
setupPass: 'setup admin password',
|
||||
inputNotNull: "username or password can't be null!",
|
||||
route: {
|
||||
dashboard: 'Dashboard',
|
||||
trojan: 'Trojan',
|
||||
user: 'User'
|
||||
},
|
||||
navbar: {
|
||||
version: 'System Version',
|
||||
setting: 'System Setting',
|
||||
password: 'Reset Password',
|
||||
title: 'Change Title',
|
||||
importExport: 'Import Export',
|
||||
resetDay: 'Change Reset Day',
|
||||
clashRules: 'Change Clash Rules',
|
||||
resetTitle: 'Change data reset day of the month',
|
||||
changeTitle: 'Change login page title',
|
||||
changeRules: 'Change clash rules',
|
||||
changeTitleSuccess: 'Change title success!',
|
||||
changeRulesSuccess: 'Change clash rules success!',
|
||||
resetRulesSuccess: 'Reset clash rules success!',
|
||||
changeDaySuccess: 'Change data reset day success!',
|
||||
closeResetSuccess: 'Close data reset success!',
|
||||
inputTitle: 'Input login page title',
|
||||
versionTitle: 'Trojan-manager Version',
|
||||
passwordTitle: 'Change admin password',
|
||||
resetSuccess: 'reset password success!',
|
||||
meanClose: '0 means close data reset',
|
||||
exportTip: 'export all database record to csv file',
|
||||
importTip: 'import csv to database',
|
||||
importSuccess: 'Import Success',
|
||||
importCsv: 'import csv file',
|
||||
exportCsv: 'export csv file'
|
||||
},
|
||||
dashboard: {
|
||||
memory: 'memory',
|
||||
disk: 'disk',
|
||||
trojanVersion: 'Trojan Version',
|
||||
trojanUser: 'Trojan User',
|
||||
trojanUptime: 'Trojan Uptime',
|
||||
netSpeed: 'Network Speed',
|
||||
netCount: 'Connection Count',
|
||||
load: 'Load',
|
||||
upload: 'upload',
|
||||
download: 'download',
|
||||
total: 'total',
|
||||
day: ' day',
|
||||
hour: ' hour',
|
||||
minute: ' minute',
|
||||
second: ' second'
|
||||
},
|
||||
trojan: {
|
||||
restartSuccess: 'restart trojan success!',
|
||||
startSuccess: 'start trojan success!',
|
||||
stopSuccess: 'stop trojan success!',
|
||||
updateSuccess: 'update trojan success!',
|
||||
loglevelSuccess: 'set loglevel success!',
|
||||
switchSuccess: 'switch trojan type success!'
|
||||
},
|
||||
user: {
|
||||
upload: 'upload',
|
||||
download: 'download',
|
||||
total: 'total',
|
||||
quota: 'quota',
|
||||
expiryDate: 'expiryDate',
|
||||
setExpire: 'setExpire',
|
||||
editExpire: 'editExpire',
|
||||
cancelExpire: 'cancelExpire',
|
||||
reset: 'reset data',
|
||||
unlimit: 'unlimited',
|
||||
search: 'search username',
|
||||
limitData: 'limit data',
|
||||
modifyUser: 'modify user',
|
||||
trojanShareLink: 'trojan share link',
|
||||
clashShareLink: 'clash share link',
|
||||
importClash: 'import to clash',
|
||||
meanUnlimit: '-1 means unlimited',
|
||||
inputUsername: 'username',
|
||||
inputPassword: 'password',
|
||||
operate: 'operate',
|
||||
addUser: 'add trojan user',
|
||||
patchLimitUser: 'patch limit user',
|
||||
patchDelUser: 'patch delete user?',
|
||||
modifyUser2: 'modify user ',
|
||||
userpass: 'username and password',
|
||||
delUser: 'delete user ',
|
||||
patchReset: 'patch reset data?',
|
||||
resetUser: 'reset user ',
|
||||
data: ' data?',
|
||||
limitUser: 'limit user ',
|
||||
limitUser2: 'limit user ',
|
||||
setupUser: 'setup user ',
|
||||
limitSuccess: ' data success!',
|
||||
delUser1: 'delete user ',
|
||||
success: ' success!',
|
||||
resetUser1: 'reset user ',
|
||||
limitAdmin: "can't create username is admin",
|
||||
passLimit: "password doesn't support chinese!",
|
||||
addUser2: 'add user ',
|
||||
week: 'a week',
|
||||
month: 'a month',
|
||||
season: 'one season',
|
||||
halfYear: 'half a year',
|
||||
year: 'one year',
|
||||
preset: 'preset',
|
||||
days: 'days',
|
||||
setExpireSuccess: 'setup expire success!',
|
||||
cancelExpireSuccess: 'cancel expire success!',
|
||||
remaining: 'remaining days'
|
||||
},
|
||||
request: {
|
||||
requestError: 'request error',
|
||||
authFail: 'auth fail, please login again',
|
||||
accessDenied: 'access denied',
|
||||
notFound: '404 not found',
|
||||
serverError: 'server error',
|
||||
connectError: 'connect error'
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
import { createI18n } from 'vue-i18n'
|
||||
import elementEnLocale from './element/en' // element-ui lang
|
||||
import elementZhLocale from './element/zh-cn'// element-ui lang
|
||||
import enLocale from './en'
|
||||
import zhLocale from './zh'
|
||||
|
||||
const messages = {
|
||||
en: {
|
||||
...enLocale,
|
||||
...elementEnLocale
|
||||
},
|
||||
zh: {
|
||||
...zhLocale,
|
||||
...elementZhLocale
|
||||
}
|
||||
}
|
||||
export function getLanguage() {
|
||||
const chooseLanguage = localStorage.getItem('language')
|
||||
if (chooseLanguage) return chooseLanguage
|
||||
|
||||
// if has not choose language
|
||||
const language = (navigator.language || navigator.browserLanguage).toLowerCase()
|
||||
const locales = Object.keys(messages)
|
||||
for (const locale of locales) {
|
||||
if (language.indexOf(locale) > -1) {
|
||||
return locale
|
||||
}
|
||||
}
|
||||
return 'en'
|
||||
}
|
||||
const i18n = createI18n({
|
||||
// set locale
|
||||
// options: en | zh
|
||||
locale: getLanguage(),
|
||||
// set locale messages
|
||||
messages: messages,
|
||||
fallbackLocale: 'en',
|
||||
silentFallbackWarn: true,
|
||||
silentTranslationWarn: true
|
||||
})
|
||||
|
||||
export default i18n
|
||||
@@ -0,0 +1,147 @@
|
||||
export default {
|
||||
ok: '确定',
|
||||
cancel: '取消',
|
||||
reset: '重置',
|
||||
login: '登录',
|
||||
register: '注册',
|
||||
log: '日志',
|
||||
edit: '编辑',
|
||||
share: '分享',
|
||||
terminal: '终端',
|
||||
refresh: '刷新',
|
||||
restart: '重启',
|
||||
start: '启动',
|
||||
stop: '暂停',
|
||||
update: '更新',
|
||||
add: '添加',
|
||||
username: '用户名',
|
||||
password: '密码',
|
||||
loglevel: '日志等级',
|
||||
all: '所有',
|
||||
type: '类型',
|
||||
line: '初始行数',
|
||||
choice: '请选择',
|
||||
latest: '最新日志',
|
||||
delete: '删除',
|
||||
inputPass: '输入密码',
|
||||
inputPassAgain: '请再次输入密码',
|
||||
passLessError: '密码不能小于5位',
|
||||
passDifferentError: '两次输入不一致!',
|
||||
setupPass: '设置admin密码',
|
||||
inputNotNull: '用户名或密码不能为空!',
|
||||
route: {
|
||||
dashboard: '首页',
|
||||
trojan: 'trojan管理',
|
||||
user: '用户管理'
|
||||
},
|
||||
navbar: {
|
||||
version: '系统版本',
|
||||
setting: '系统设置',
|
||||
password: '修改密码',
|
||||
title: '修改标题',
|
||||
clashRules: '修改规则',
|
||||
importExport: '导入导出',
|
||||
resetDay: '改重置日',
|
||||
resetTitle: '修改流量重置日',
|
||||
changeTitle: '修改登录页标题',
|
||||
changeRules: '修改clash规则',
|
||||
inputTitle: '输入登录页标题',
|
||||
changeTitleSuccess: '修改登录页标题成功!',
|
||||
changeRulesSuccess: '修改clash规则成功!',
|
||||
resetRulesSuccess: '重置clash规则成功!',
|
||||
changeDaySuccess: '修改流量重置日成功!',
|
||||
closeResetSuccess: '关闭流量重置成功',
|
||||
versionTitle: 'trojan管理程序版本',
|
||||
passwordTitle: '变更管理员密码',
|
||||
resetSuccess: '重置密码成功!',
|
||||
meanClose: '0代表关闭流量重置',
|
||||
exportTip: '导出数据库里所有记录到csv文件',
|
||||
importTip: '导入csv文件数据到数据库',
|
||||
importSuccess: '导入成功',
|
||||
importCsv: '导入csv文件',
|
||||
exportCsv: '导出csv文件'
|
||||
},
|
||||
dashboard: {
|
||||
memory: '内存',
|
||||
disk: '硬盘',
|
||||
trojanVersion: 'trojan 版本',
|
||||
trojanUser: 'trojan 用户数',
|
||||
trojanUptime: 'trojan 已运行',
|
||||
netSpeed: '网速',
|
||||
netCount: '连接数',
|
||||
load: '服务器负载',
|
||||
upload: '上传',
|
||||
download: '下载',
|
||||
total: '总共',
|
||||
day: '天',
|
||||
hour: '时',
|
||||
minute: '分',
|
||||
second: '秒'
|
||||
},
|
||||
trojan: {
|
||||
restartSuccess: '重启trojan成功!',
|
||||
startSuccess: '启动trojan成功!',
|
||||
stopSuccess: '停止trojan成功!',
|
||||
updateSuccess: '更新trojan成功!',
|
||||
loglevelSuccess: '设置日志等级成功!',
|
||||
switchSuccess: '切换trojan类型成功!'
|
||||
},
|
||||
user: {
|
||||
upload: '上传流量',
|
||||
download: '下载流量',
|
||||
total: '总流量',
|
||||
quota: '流量限制',
|
||||
expiryDate: '到期日期',
|
||||
setExpire: '设置限期',
|
||||
editExpire: '修改限期',
|
||||
cancelExpire: '取消限期',
|
||||
reset: '重置流量',
|
||||
unlimit: '无',
|
||||
search: '输入用户名搜索',
|
||||
limitData: '限制流量',
|
||||
modifyUser: '修改账密',
|
||||
trojanShareLink: 'trojan链接',
|
||||
clashShareLink: 'clash链接',
|
||||
importClash: '导到clash',
|
||||
meanUnlimit: '-1代表无流量限制',
|
||||
inputUsername: '输入用户名',
|
||||
inputPassword: '输入密码',
|
||||
operate: '操作',
|
||||
addUser: '新增trojan用户',
|
||||
patchLimitUser: '限制以下用户流量',
|
||||
patchDelUser: '确定批量删除以下用户?',
|
||||
modifyUser2: '修改用户 ',
|
||||
userpass: '的用户名和密码',
|
||||
delUser: '确定删除用户 ',
|
||||
patchReset: '确定重置以下用户流量?',
|
||||
resetUser: '确定重置用户 ',
|
||||
data: ' 的流量?',
|
||||
limitUser: '确定限制用户 ',
|
||||
limitUser2: '限制用户 ',
|
||||
limitSuccess: '流量成功!',
|
||||
delUser1: '删除用户',
|
||||
success: '成功!',
|
||||
resetUser1: '重置用户',
|
||||
limitAdmin: '不能创建用户名为admin的用户!',
|
||||
passLimit: '密码不支持中文!',
|
||||
addUser2: '新增用户',
|
||||
week: '单周',
|
||||
month: '单月',
|
||||
season: '单季',
|
||||
halfYear: '半年',
|
||||
year: '一年',
|
||||
preset: '预设',
|
||||
days: '天数',
|
||||
setExpireSuccess: '设置用户限期成功!',
|
||||
cancelExpireSuccess: '取消用户限期成功!',
|
||||
remaining: '剩余天数'
|
||||
},
|
||||
request: {
|
||||
requestError: '请求出错',
|
||||
authFail: '授权失败,请重新登录',
|
||||
accessDenied: '拒绝访问',
|
||||
notFound: '请求错误,未找到该资源',
|
||||
serverError: '服务端错误',
|
||||
connectError: '连接服务器失败'
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user