feat: 国际化

This commit is contained in:
taojinlong 2021-05-17 14:19:46 +08:00
parent da8e447349
commit e2e2b09fee
17 changed files with 893 additions and 165 deletions

View File

@ -3,42 +3,42 @@
<div class="toolbar">
<div class="canvas-config">
<span>画布大小</span>
<span> {{ $t(panel.canvas_size)}} </span>
<input v-model="canvasStyleData.width">
<span>*</span>
<input v-model="canvasStyleData.height">
</div>
<div class="canvas-config" style="margin-right: 10px">
<span>画布比例</span>
<span> {{ $t(panel.canvas_scale)}} </span>
<input v-model="scale" @input="handleScaleChange"> %
</div>
<el-tooltip content="样式">
<el-tooltip :content="$t('panel.style')">
<el-button class="el-icon-magic-stick" size="mini" circle @click="showPanel" />
</el-tooltip>
<el-tooltip content="撤消">
<el-tooltip :content="$t('panel.undo') ">
<el-button class="el-icon-refresh-right" size="mini" circle @click="undo" />
</el-tooltip>
<el-tooltip content="重做">
<el-tooltip :content="$t('panel.redo') ">
<el-button class="el-icon-refresh-left" size="mini" circle @click="redo" />
</el-tooltip>
<el-tooltip content="插入图片">
<el-tooltip :content="$t('panel.insert_picture') ">
<el-button class="el-icon-upload" size="mini" circle @click="goFile" />
</el-tooltip>
<el-tooltip content="清空画布" style="margin-right: 10px">
<el-tooltip :content="$t('panel.clean_canvas')" style="margin-right: 10px">
<el-button class="el-icon-document-delete" size="mini" circle @click="clearCanvas" />
</el-tooltip>
<input id="input" ref="files" type="file" hidden @change="handleFileChange">
<el-tooltip content="保存">
<el-tooltip :content="$t('commons.save') ">
<el-button class="el-icon-circle-check" size="mini" circle @click="save" />
</el-tooltip>
<el-tooltip content="预览">
<el-tooltip :content="$t('panel.preview')">
<el-button class="el-icon-view" size="mini" circle @click="clickPreview" />
</el-tooltip>
<span style="float: right;margin-left: 10px">
<el-button size="mini" @click="closePanelEdit">
关闭
{{ $t(commons.close) }}
</el-button>
</span>
</div>

View File

@ -2,7 +2,7 @@
<div v-loading="requestStatus==='waiting'" class="rect-shape">
<div v-if="requestStatus==='error'" style=";width: 100%;height: 100%;background-color: #ece7e7; text-align: center">
<div style="font-size: 12px; color: #9ea6b2;">
获取数据出错 请联系管理员<br>
{{ $t(panel.error_data) }}<br>
{{ message }}
</div>
</div>

View File

@ -85,6 +85,7 @@ export default {
tokenError: 'Token error, please login again'
},
commons: {
all: 'All',
enable: 'Enable',
disable: 'Disable',
yes: 'Yes',
@ -812,7 +813,34 @@ export default {
export_to_panel: 'Export to template',
preview: 'Preview',
select_panel_from_left: 'Please select panel from left',
template_nale: 'Template name'
template_nale: 'Template name',
template: 'Template',
category: 'Category',
all_org: 'All Organization',
custom: 'Custom',
import_template: 'Import Template',
copy_template: 'Copy Template',
upload_template: 'Upload Template',
belong_to_category: 'Category',
pls_select_belong_to_category: 'Please select category',
template_name_cannot_be_empty: 'Template name cannot be empty',
select_by_table: 'Select by table',
data_list: 'Data list',
component_list: 'Component list',
custom_scope: 'Custom control range',
multiple_choice: 'Multiple choice',
single_choice: 'Single choice',
field: 'Field',
unshared_people: 'Unshared people',
shared_people: 'Shared people',
error_data: 'Error getting data, please contact administrator',
canvas_size: 'Canvas Size',
canvas_scale: 'Canvas Scale',
style: 'Style',
clean_canvas: 'Clean Canvas',
insert_picture: 'Insert Picture',
redo: 'Redo',
undo: 'UToolbar.vuendo'
},
plugin: {
local_install: 'Local installation',

View File

@ -1,50 +1,50 @@
export default {
route: {
dashboard: '首',
documentation: '文',
guide: '引导页',
permission: '权限测试页',
rolePermission: '角色限',
pagePermission: '页面权限',
directivePermission: '指令限',
icons: '图标',
components: '件',
tinymce: '富文本编辑器',
dashboard: '首',
documentation: '文',
guide: '引導頁',
permission: '全縣測試頁',
rolePermission: '角色限',
pagePermission: '頁面權限',
directivePermission: '指令限',
icons: '圖標',
components: '件',
tinymce: '富文本編輯器',
markdown: 'Markdown',
jsonEditor: 'JSON 编辑器',
jsonEditor: 'JSON 編輯器',
dndList: '列表拖拽',
splitPane: 'Splitpane',
avatarUpload: '头像上传',
avatarUpload: '頭像上傳',
dropzone: 'Dropzone',
sticky: 'Sticky',
countTo: 'Count To',
componentMixin: '小件',
backToTop: '返回部',
componentMixin: '小件',
backToTop: '返回部',
dragDialog: '拖拽 Dialog',
dragSelect: '拖拽 Select',
dragKanban: '可拖拽看板',
charts: '表',
keyboardChart: '键盘图表',
lineChart: '折线图',
mixChart: '混合表',
example: '综合实例',
charts: '表',
keyboardChart: '鍵盤圖表',
lineChart: '折線圖',
mixChart: '混合表',
example: '綜合實例',
nested: '路由嵌套',
menu1: '菜1',
'menu1-1': '菜 1-1',
'menu1-2': '菜 1-2',
'menu1-2-1': '菜 1-2-1',
'menu1-2-2': '菜 1-2-2',
'menu1-3': '菜 1-3',
menu2: '菜 2',
menu1: '菜1',
'menu1-1': '菜 1-1',
'menu1-2': '菜 1-2',
'menu1-2-1': '菜 1-2-1',
'menu1-2-2': '菜 1-2-2',
'menu1-3': '菜 1-3',
menu2: '菜 2',
Table: 'Table',
dynamicTable: '动态 Table',
dragTable: '拖拽 Table',
inlineEditTable: 'Table 内编辑',
inlineEditTable: 'Table 内編輯',
complexTable: '综合 Table',
tab: 'Tab',
form: '表单',
createArticle: '创建文章',
editArticle: '编辑文章',
editArticle: '編輯文章',
articleList: '文章列表',
errorPages: '错误页面',
page401: '401',
@ -52,131 +52,816 @@ export default {
errorLog: '错误日志',
excel: 'Excel',
exportExcel: '导出 Excel',
selectExcel: '导出 已选择项',
selectExcel: '导出 已選擇项',
mergeHeader: '导出 多级表头',
uploadExcel: '上传 Excel',
zip: 'Zip',
pdf: 'PDF',
exportZip: 'Export Zip',
theme: '换',
theme: '换',
clipboardDemo: 'Clipboard',
i18n: '国际化',
i18n: '國際化',
externalLink: '外链',
profile: '人中心'
profile: '人中心'
},
navbar: {
dashboard: '首',
github: '目地址',
logOut: '退出登',
profile: '人中心',
theme: '换',
size: '局大小'
dashboard: '首',
github: '目地址',
logOut: '退出登',
profile: '人中心',
theme: '换',
size: '局大小'
},
login: {
title: '系统登录',
title: '系統登陸',
welcome: '歡迎使用',
logIn: '登錄',
username: '账号',
password: '密码',
any: '随便填',
thirdparty: '第三方登录',
thirdpartyTips: '本地不能模拟,请结合自己业务进行模拟!!!'
logIn: '登陸',
username: '帳號',
password: '密碼',
any: '任意字符',
thirdparty: '第三方登陸',
thirdpartyTips: '本地不能模拟,请结合自己业务进行模拟!!!',
expires: '登陸信息过期,请重新登陸',
tokenError: '信息错误,请重新登陸'
},
commons: {
button: {
login: '登錄'
}
all: '全部',
enable: '啟用',
disable: '停用',
yes: '是',
no: '否',
reset: '重置',
catalogue: '目錄',
button: '按鈕',
gender: '性別',
man: '男',
woman: '女',
nick_name: '暱稱',
upload: '上傳',
cover: '覆蓋',
not_cover: '不覆蓋',
import_mode: '導入模式',
import_module: '導入模塊',
please_fill_in_the_template: '請填寫模板內容',
cut_back_old_version: '切匯舊版',
cut_back_new_version: '切匯新版',
comment: '評論',
examples: '示例',
help_documentation: '幫助文檔',
api_help_documentation: 'API文檔',
delete_cancelled: '已取消删除',
workspace: '工作空開你',
organization: '組織',
menu: '菜單',
setting: '設置',
project: '項目',
about_us: '關於',
current_project: '當前項目',
name: '名稱',
description: '描述',
annotation: '註釋',
clear: '清空',
save: '保存',
update: '更新',
save_success: '保存成功',
delete_success: '删除成功',
copy_success: '複製成功',
modify_success: '修改成功',
delete_cancel: '已取消删除',
confirm: '確定',
cancel: '取消',
prompt: '提示',
operating: '操作',
input_limit: '長度在 {0} 到 {1} 個字符',
login: '登陸',
welcome: '一站式開源數據分析平台',
username: '姓名',
password: '密碼',
input_username: '請輸入用戶姓名',
input_password: '請輸入密碼',
test: '測試',
create_time: '创建時間',
update_time: '更新時間',
add: '添加',
member: '成員',
email: '郵箱',
phone: '電話',
role: '角色',
personal_info: '個人信息',
api_keys: 'API Keys',
quota: '配額管理',
status: '狀態',
show_all: '顯示全部',
show: '顯示',
report: '報告',
user: '用戶',
system: '系統',
personal_setting: '個人設置',
test_resource_pool: '測試資源池',
system_setting: '系统設置',
input_content: '請輸入內容',
create: '新建',
edit: '編輯',
copy: '複製',
refresh: '刷新',
remark: '備註',
delete: '删除',
reduction: '恢復',
not_filled: '未填寫',
please_select: '请選擇',
search_by_name: '根据名稱搜索',
personal_information: '個人信息',
exit_system: '退出系統',
verification: '驗證',
title: '標題',
custom: '自動義',
select_date: '選擇日期',
months_1: '一月',
months_2: '二月',
months_3: '三月',
months_4: '四月',
months_5: '五月',
months_6: '六月',
months_7: '七月',
months_8: '八月',
months_9: '九月',
months_10: '十月',
months_11: '十一月',
months_12: '十二月',
weeks_0: '周日',
weeks_1: '周一',
weeks_2: '周二',
weeks_3: '周三',
weeks_4: '周四',
weeks_5: '周五',
weeks_6: '周六',
system_parameter_setting: '系統參數設置',
connection_successful: '連接成功',
connection_failed: '連接失敗',
save_failed: '保存失敗',
host_cannot_be_empty: '主机不能為空',
port_cannot_be_empty: '端口号不能為空',
account_cannot_be_empty: '帐户不能為空',
remove: '移除',
remove_cancel: '移除取消',
remove_success: '移除成功',
tips: '認證信息已過期,請重新登陸',
not_performed_yet: '尚未執行',
incorrect_input: '輸入內容不正確',
delete_confirm: '請輸入以下內容,確認删除:',
login_username: 'ID 或 郵箱',
input_login_username: '請輸入用戶 ID 或 郵箱',
input_name: '請輸入名稱',
please_upload: '请上傳文件',
please_fill_path: '请填寫url 路徑',
formatErr: '格式錯誤',
please_save: '请先保存',
reference_documentation: '参考文檔',
id: 'ID',
millisecond: '毫秒',
cannot_be_null: '不能為空',
required: '{0}是必填的',
already_exists: '名稱不能重複',
modifier: '修改人',
validate: '校驗',
batch_add: '批量添加',
tag_tip: '输入回车添加标签',
table: {
select_tip: '已选中 {0} 条數据'
},
date: {
select_date: '選擇日期',
start_date: '开始日期',
end_date: '结束日期',
select_date_time: '選擇日期時間',
start_date_time: '开始日期時間',
end_date_time: '结束日期時間',
range_separator: '至',
data_time_error: '开始日期不能大與结束日期'
},
adv_search: {
title: '高级搜索',
combine: '组合查询',
test: '所属测试',
project: '所属项目',
search: '查询',
reset: '重置',
and: '所有',
or: '任意一个',
operators: {
is_empty: '空',
is_not_empty: '非空',
like: '包含',
not_like: '不包含',
in: '属與',
not_in: '不属與',
gt: '大與',
ge: '大與等與',
lt: '小與',
le: '小與等與',
equals: '等與',
not_equals: '不等與',
between: '之间',
current_user: '是当前用戶'
}
},
monitor: '监控',
image: '镜像',
tag: '标签',
module: {
select_module: '選擇模块',
default_module: '默认模块'
},
datasource: '數據源'
},
documentation: {
documentation: '文档',
documentation: '文',
github: 'Github 地址'
},
permission: {
addRole: '新增角色',
editPermission: '编辑权限',
roles: '你的权限',
switchRoles: '切换权限',
editPermission: '編輯權限',
roles: '你的限',
switchRoles: '切換權限',
tips: '在某些情况下,不适合使用 v-permission。例如Element-UI 的 el-tab 或 el-table-column 以及其它动态渲染 dom 的场景。你只能通过手动设置 v-if 来实现。',
delete: '删除',
confirm: '确定',
confirm: '定',
cancel: '取消'
},
guide: {
description: '引导页对于一些第一次进入项目的人很有用,你可以简单介绍下项目的功能。本 Demo 是基于',
description: '引导页对一些第一次进入项目的人很有用,你可以简单介绍下项目的功能。本 Demo 是基',
button: '打开引导'
},
components: {
documentation: '文档',
tinymceTips: '富文本是管理后台一个核心的功能但同时又是一个有很多坑的地方。在选择富文本的过程中我也走了不少的弯路市面上常见的富文本都基本用过了最终权衡了一下选择了Tinymce。更详细的富文本比较和介绍见',
dropzoneTips: '由于我司业务有特殊需求,而且要传七牛 所以没用第三方,选择了自己封装。代码非常的简单,具体代码你可以在这里看到 @/components/Dropzone',
documentation: '文',
tinymceTips: '富文本是管理后台一个核心的功能,但同时又是一个有很多坑的地方。在選擇富文本的过程中我也走了不少的弯路,市面上常见的富文本都基本用过了,最终权衡了一下選擇了Tinymce。更详细的富文本比较和介绍见',
dropzoneTips: '由與我司业务有特殊需求,而且要传七牛 所以没用第三方,選擇了自己封装。代码非常的简单,具体代码你可以在这里看到 @/components/Dropzone',
stickyTips: '当页面滚动到预设的位置会吸附在顶部',
backToTopTips1: '页面滚动到指定位置会在右下角出现返回顶部按钮',
backToTopTips2: '可自定义按钮的样式、show/hide、出现的高度、返回的位置 如需文字提示可在外部使用Element的el-tooltip元素',
imageUploadTips: '由于我在使用时它只有vue@1版本而且和mockjs不兼容所以自己改造了一下如果大家要使用的话优先还是使用官方版本。'
imageUploadTips: '由我在使用时它只有vue@1版本而且和mockjs不兼容所以自己改造了一下如果大家要使用的话优先还是使用官方版本。'
},
table: {
dynamicTips1: '固定表头, 按照表头顺序排序',
dynamicTips2: '不固定表头, 按照点击顺序排序',
dragTips1: '默认顺序',
dragTips2: '拖拽后顺序',
title: '标题',
dynamicTips1: '固定標頭,按照表頭順序排序',
dynamicTips2: '不固定標頭, 按照點擊順序排序',
dragTips1: '默認排序',
dragTips2: '拖拽後排序',
title: '標題',
importance: '重要性',
type: '类型',
remark: '点评',
type: '型',
remark: '點評',
search: '搜索',
add: '添加',
export: '导出',
reviewer: '审核人',
id: '序号',
date: '时间',
export: '出',
reviewer: '核人',
id: '序',
date: '時間',
author: '作者',
readings: '阅读数',
status: '状态',
readings: '閱讀數',
status: '狀態',
actions: '操作',
edit: '编辑',
publish: '发布',
edit: '編輯',
publish: '布',
draft: '草稿',
delete: '删除',
cancel: '取 消',
confirm: '确 定'
delete: '除',
cancel: '取消',
confirm: '定'
},
example: {
warning: '创建和编辑页面是不能被 keep-alive 缓存的因为keep-alive 的 include 目前不支持根据路由来缓存,所以目前都是基于 component name 来进行缓存的。如果你想类似的实现缓存效果,可以使用 localStorage 等浏览器缓存方案。或者不要使用 keep-alive 的 include直接缓存所有页面。详情见'
warning: '创建和編輯页面是不能被 keep-alive 缓存的因为keep-alive 的 include 目前不支持根据路由来缓存,所以目前都是基 component name 来进行缓存的。如果你想类似的实现缓存效果,可以使用 localStorage 等浏览器缓存方案。或者不要使用 keep-alive 的 include直接缓存所有页面。详情见'
},
errorLog: {
tips: '请点击右上角bug小图标',
description: '现在的管理后台基本都是spa的形式了它增强了用户体验但同时也会增加页面出问题的可能性可能一个小小的疏忽就导致整个页面的死锁。好在 Vue 官网提供了一个方法来捕获处理异常,你可以在其中进行错误处理或者异常上报。',
documentation: '文档介绍'
description: '现在的管理后台基本都是spa的形式了它增强了用体验,但同时也会增加页面出问题的可能性,可能一个小小的疏忽就导致整个页面的死锁。好在 Vue 官网提供了一个方法来捕获处理异常,你可以在其中进行错误处理或者异常上报。',
documentation: '文介绍'
},
excel: {
export: '导出',
selectedExport: '导出已选择项',
placeholder: '请输入文件名(默认excel-list)'
export: '出',
selectedExport: '導出已選擇项',
placeholder: '請輸入文件名(默认excel-list)'
},
zip: {
export: '导出',
placeholder: '请输入文件名(默认file)'
export: '出',
placeholder: '請輸入文件名(默认file)'
},
pdf: {
tips: '这里使用 window.print() 来实现下载pdf的功能'
tips: '這裏使用 window.print() 來實現下載pdf的功能'
},
theme: {
change: '换肤',
documentation: '换肤文档',
tips: 'Tips: 它区别于 navbar 上的 theme-pick, 是两种不同的换肤方法,各自有不同的应用场景,具体请参考文档。'
change: '換膚',
documentation: '换膚文檔',
tips: 'Tips: 它區別於 navbar 上的 theme-pick, 是兩種不同的換膚方法,各自有不同的應用場景,具體請參考文檔。'
},
tagsView: {
refresh: '刷新',
close: '关闭',
closeOthers: '关闭其它',
closeAll: '关闭所有'
close: '關閉',
closeOthers: '關閉其他',
closeAll: '關閉所有'
},
settings: {
title: '系统布局配置',
theme: '主题色',
tagsView: '开启 Tags-View',
title: '系統佈局配置',
theme: '主色',
tagsView: '開啟 Tags-View',
fixedHeader: '固定 Header',
sidebarLogo: '侧边栏 Logo'
sidebarLogo: '側邊欄 Logo'
},
license: {
title: '授權管理',
corporation: '客户名稱',
time: '授權時間',
product: '產品名稱',
edition: '產品版本',
licenseVersion: '授權版本',
count: '授權數量',
valid_license: '授權驗證',
show_license: '查看授權',
valid_license_error: '授權驗證失敗',
status: '授權狀態',
valid: '有效',
invalid: '無效',
expired: '已過期'
},
member: {
create: '添加成員',
modify: '修改成員',
delete_confirm: '这个用戶確定要删除吗?',
please_choose_member: '请選擇成員',
search_by_name: '根据名稱搜索',
modify_personal_info: '修改個人信息',
edit_password: '修改密碼',
edit_information: '編輯信息',
input_name: '請輸入名稱',
input_email: '請輸入郵箱',
special_characters_are_not_supported: '不支持特殊字符',
mobile_number_format_is_incorrect: '手機號碼格式不正確',
email_format_is_incorrect: '郵箱格式不正確',
password_format_is_incorrect: '有效密碼8-30位英文大小寫字母+數字+特殊字符(可选)',
old_password: '旧密碼',
new_password: '新密碼',
repeat_password: '確認密碼',
inconsistent_passwords: '两次输入的密碼不一致',
remove_member: '確定要移除该成員吗',
org_remove_member: '確定要移除该成員吗?',
input_id_or_email: '請輸入用戶 ID, 或者 用戶郵箱',
no_such_user: '无此用戶信息, 請輸入正确的用戶 ID 或者 用戶郵箱!'
},
user: {
create: '創建用戶',
modify: '修改用戶',
input_name: '請輸入用戶姓名',
input_id: '請輸入ID',
input_email: '請輸入郵箱',
input_password: '請輸入密碼',
input_phone: '請輸入電話號碼',
input_roles: '请選擇角色',
special_characters_are_not_supported: '不支持特殊字符',
mobile_number_format_is_incorrect: '手機號碼格式不正確',
email_format_is_incorrect: '郵箱格式不正確',
delete_confirm: '这个用戶確定要删除吗?',
apikey_delete_confirm: '这个 API Key 確定要删除吗?',
input_id_placeholder: '請輸入ID (不支持中文)',
source: '用戶來源',
choose_org: '選擇組織'
},
role: {
menu_authorization: '菜單授權',
data_authorization: '數据授權',
please_choose_role: '请選擇角色',
admin: '系統管理員',
org_admin: '組織管理员',
org_member: '組織成員',
add: '添加角色',
delete: '删除角色',
modify: '修改角色'
},
menu: {
parent_category: '上級目錄',
module_name: '組件名稱',
module_path: '組件路径',
route_addr: '路由地址',
menu_sort: '菜單排序',
authority_identification: '權限標識',
button_name: '按鈕名稱',
select_icon: '選擇圖標',
create_time: '創建日期',
tile: '菜單標題',
create: '創建菜單',
modify: '修改菜單',
delete: '删除菜單',
delete_confirm: '確定删除菜單吗?'
},
organization: {
parent_org: '上級組織',
select_parent_org: '選擇上級組織',
top_org: '頂級組織',
name: '組織名稱',
sort: '組織排序',
sub_organizations: '下屬組織數',
create_time: '創建日期',
create: '創建組織',
modify: '修改組織',
delete: '删除組織',
delete_confirm: '删除該組織會關聯刪除該組織的所有資源,確定要删除吗?',
input_name: '請輸入組織名稱',
select_organization: '请選擇組織',
search_by_name: '根据名稱搜索',
special_characters_are_not_supported: '格式錯誤(不支持特殊字符,且不能以\'-\'開頭結尾)',
select: '選擇組織',
delete_warning: '確定要删除組織吗?'
},
system_parameter_setting: {
mailbox_service_settings: '郵件設置',
test_connection: '測試鏈接',
SMTP_host: 'SMTP主機',
SMTP_port: 'SMTP端口',
SMTP_account: 'SMTP帳號',
SMTP_password: 'SMTP密碼',
SSL: '開啟SSL(如果SMTP端口是465通常需要啟用SSL)',
TLS: '開啟TLS(如果SMTP端口是587通常需要啟用TLS)',
SMTP: '是否免密 SMTP',
host: '主機不能為空',
port: '端口號不能為空',
account: '帳戶不能為空',
test_recipients: '測試收件人',
tip: ' 提示: 僅用來作為測試郵件收件人'
},
chart: {
datalist: '視圖',
add_group: '添加分組',
add_scene: '添加場景',
group: '分組',
scene: '場景',
delete: '刪除',
move_to: '移動到',
rename: '重命名',
tips: '提示',
confirm_delete: '確認刪除',
delete_success: '刪除成功',
confirm: '確認',
cancel: '取消',
search: '搜索',
back: '返回',
add_table: '添加表',
process: '進度',
add_chart: '添加視圖',
db_data: '數據庫表',
sql_data: 'SQL數據集',
excel_data: 'Excel數據集',
custom_data: '自助數據集',
pls_slc_tbl_left: '請從左側選擇視圖',
add_db_table: '添加數據庫表',
pls_slc_data_source: '請選擇數據源',
table: '表',
edit: '編輯',
create_view: '創建視圖',
data_preview: '數據預覽',
dimension: '緯度',
quota: '指標',
title: '標題',
show: '顯示',
chart_type: '圖表類型',
shape_attr: '圖形屬性',
module_style: '組件樣式',
result_filter: '結果過濾器',
x_axis: '橫軸',
y_axis: '縱軸',
chart: '視圖',
close: '關閉',
summary: '匯總方式',
fast_calc: '快速計算',
sum: '求和',
count: '記數',
avg: '平均',
max: '最大值',
min: '最小值',
stddev_pop: '標準差',
var_pop: '方差',
quick_calc: '快速計算',
show_name_set: '顯示名設置',
color: '顏色',
color_case: '配色方案',
pls_slc_color_case: '請選餓配色方案',
color_default: '默認',
color_retro: '復古',
color_future: '未來',
color_gradual: '漸變',
color_business: '商務',
color_gentle: '柔和',
color_elegant: '淡雅',
color_technology: '科技',
color_simple: '簡潔',
not_alpha: '不透明度',
size: '大小',
bar_width: '柱寬',
bar_gap: '柱間隔',
adapt: '自適應',
line_width: '線寬',
line_type: '線型',
line_symbol: '折點',
line_symbol_size: '折點大小',
line_type_solid: '實現',
line_type_dashed: '虛線',
line_symbol_circle: '圓形',
line_symbol_emptyCircle: '空心圓',
line_symbol_rect: '矩形',
line_symbol_roundRect: '圓角矩形',
line_symbol_triangle: '三角形',
line_symbol_diamond: '菱形',
line_symbol_pin: '釘子',
line_symbol_arrow: '箭頭',
line_symbol_none: '無',
line_area: '面積',
pie_inner_radius: '內經',
pie_outer_radius: '外經',
funnel_width: '寬度',
line_smooth: '平滑折線',
title_style: '標題格式',
text_fontsize: '字體大小',
text_color: '字體顏色',
text_h_position: '水平位置',
text_v_position: '垂直位置',
text_pos_left: '左',
text_pos_center: '中',
text_pos_right: '右',
text_pos_top: '上',
text_pos_bottom: '下',
text_italic: '字體傾斜',
italic: '傾斜',
orient: '方向',
horizontal: '水平',
vertical: '垂直',
legend: '圖例',
shape: '形狀',
polygon: '多邊形',
circle: '圖形',
label: '標籤',
label_position: '標籤位置',
content_formatter: '內容格式',
inside: '內',
tooltip: '提示',
tooltip_item: '數據項',
tooltip_axis: '座標軸',
formatter_plc: '內痛格式為空時,顯示默認格式',
xAxis: '橫洲',
yAxis: '縱軸',
position: '位置',
rotate: '角度',
name: '名稱',
icon: '國際',
trigger_position: '觸發位置',
asc: '昇序',
desc: '降序',
sort: '排序',
filter: '過濾',
none: '無',
background: '背景',
alpha: '透明度',
add_filter: '添加過濾',
no_limit: '無顯示',
filter_eq: '等於',
filter_not_eq: '不等於',
filter_lt: '小於',
filter_le: '小於等於',
filter_gt: '大於',
filter_ge: '大於等於',
filter_null: '為空',
filter_not_null: '不為空',
filter_include: '包含',
filter_not_include: '不包含',
rose_type: '玫瑰圖模式',
radius_mode: '半徑',
area_mode: '面積',
rose_radius: '園角',
view_name: '視圖名稱',
name_can_not_empty: '名稱不能為空',
custom_count: '記錄數',
table_title_fontsize: '表頭字體大小',
table_item_fontsize: '表格字體大小',
table_header_bg: '表頭背景',
table_item_bg: '表格背景',
table_item_font_color: '字體顏色',
stripe: '斑馬紋'
},
dataset: {
datalist: '數據集',
add_group: '添加分組',
add_scene: '添加場景',
group: '分組',
scene: '場景',
delete: '刪除',
move_to: '移動到',
rename: '重命名',
tips: '提示',
confirm_delete: '確認刪除',
delete_success: '刪除成功',
confirm: '確認',
cancel: '取消',
search: '搜索',
back: '返回',
add_table: '添加表',
process: '進度',
update: '更新',
db_data: '數據庫表',
sql_data: 'SQL數據集',
excel_data: 'Excel數據集',
custom_data: '自助數據集',
pls_slc_tbl_left: '請從左側選擇表',
add_db_table: '添加數據庫表',
pls_slc_data_source: '選擇數據源鏈接',
table: '表',
edit: '編輯',
create_view: '創建視圖',
data_preview: '數據預覽',
field_type: '字段類型',
field_name: '字段名',
field_origin_name: '原始名',
field_check: '選中',
update_info: '更新信息',
join_view: '關聯視圖',
text: '文本',
time: '時間',
value: '數值',
mode: '模式',
direct_connect: '直鏈',
sync_data: '定時同步',
update_setting: '更新設置',
sync_now: '立即更新',
add_task: '添加任務',
task_name: '任務名稱',
start_time: '開始時間',
end_time: '結束時間',
status: '狀態',
error: '錯誤',
completed: '完成',
underway: '執行中',
task_update: '定時更新',
update_type: '更新方式',
all_scope: '全量更新',
add_scope: '增量更新',
select_data_time: '選擇日期時間',
execute_rate: '執行頻率',
execute_once: '只執行一次',
cron_config: '表達時設定',
no_limit: '無限制',
set_end_time: '設定結束時間',
operate: '操作',
save_success: '保存成功',
close: '關閉',
required: '必填',
input_content: '請輸入內容',
add_sql_table: '添加 SQL',
preview: '預覽',
pls_input_name: '請輸入名稱',
connect_mode: '鏈接模式',
incremental_update_type: '增量更新方式',
incremental_add: '增量添加',
incremental_delete: '增量刪除',
last_update_time: '上次更新時間',
current_update_time: '當前更新時間',
param: '參數',
edit_sql: '編輯 SQL',
showRow: '顯示行',
add_excel_table: ' 添加 Excel 數據集',
add_custom_table: '添加自助數據集',
upload_file: '上傳文件',
detail: '詳情',
type: '類型',
create_by: '創建者',
create_time: '創建時間',
preview_show: '顯示',
preview_item: '條數據',
preview_total: '共',
pls_input_less_9: '請輸入9位以內的正整數',
field_edit: '編輯字段',
table_already_add_to: '該表已添加至',
uploading: '上傳中...',
add_union: '添加關聯',
union_setting: '關聯設置',
pls_slc_union_field: '請選擇關聯字段',
pls_slc_union_table: '請選擇關聯表',
source_table: '關聯表',
source_field: '關聯字段',
target_table: '被關聯表',
target_field: '被關聯字段',
union_relation: '關聯關係',
pls_setting_union_success: '請正確設置關聯關係',
invalid_dataset: ' Kettle 未運行,無效數據集',
check_all: '銓選',
can_not_union_self: '被關聯表不能與關聯表相同',
float: '小數',
edit_custom_table: '編輯自助數據集',
edit_field: '編輯自斷'
},
datasource: {
datasource: '數據源',
create: '新建數據源',
type: '類型',
please_choose_type: '請選擇數據源類型',
data_base: '數據庫名稱',
user_name: '用戶名',
password: '密碼',
host: '主機',
port: '端口',
please_input_data_base: '請輸入數據庫名稱',
please_input_user_name: '請輸入用戶名',
please_input_password: '請輸入密碼',
please_input_host: '請輸入主機',
please_input_port: '請輸入',
modify: '編輯數據源',
validate_success: '校驗成功',
validate: '校驗',
search_by_name: '根據名稱搜索',
delete_warning: '刪除該數據源將同步刪除該數據源下所有的相關資源,確認刪除?'
},
panel: {
share: '分享',
datalist: '視圖列表',
group: '目錄',
panel: '儀表盤',
panel_list: '儀表盤列表',
groupAdd: '新建目錄',
panelAdd: '新建儀表盤',
delete: '刪除',
move_to: '移動到',
rename: '重命名',
tips: '提示',
confirm_delete: '確認刪除',
delete_success: '刪除成功',
confirm: '確認',
cancel: '取消',
search: '搜索',
back: '返回',
view: '視圖',
module: '組件',
filter_module: '過濾組件',
select_by_module: '安組件選擇',
edit: '編輯',
sys_template: '系統模板',
user_template: '用戶模板',
add_category: '添加分類',
filter_keywords: '輸入關鍵字進行過濾',
dashboard_theme: '儀表盤主題',
table: '表格',
gap: '有間隙',
no_gap: '無間隙',
component_gap: '組件間隙',
photo: '圖片',
default_panel: '默認儀表盤',
create_public_links: '創建公共鏈接',
store: '收藏',
save_to_panel: '保存為模板',
export_to_panel: '導出為模板',
preview: '預覽',
select_panel_from_left: '請從左側選擇儀表盤',
template_nale: '模板名稱',
template: '模板',
category: '分類',
all_org: '所有組織',
custom: '自定義',
import_template: '導入模板',
copy_template: '復用模板',
upload_template: '上傳模板',
belong_to_category: '所屬類別',
pls_select_belong_to_category: '請選擇所屬類別',
template_name_cannot_be_empty: '模板名稱不能為空',
select_by_table: '列表選擇',
data_list: '數據列表',
component_list: '組件列表',
custom_scope: '自定義控制範圍',
multiple_choice: '多選',
single_choice: '單選',
field: '字段',
unshared_people: '未分享人員',
shared_people: '已分享人員',
error_data: '獲取數據出錯,請聯繫管理員',
canvas_size: '畫布大小',
canvas_scale: '畫布比例',
style: '樣式',
clean_canvas: '清空畫布',
insert_picture: '插入圖片',
redo: '重做',
undo: '撤銷'
},
plugin: {
local_install: '本地安裝',
remote_install: '遠程安裝',
name: '插件名稱',
free: '是否免費',
cost: '費用',
descript: '描述',
version: '版本',
creator: '作者',
install_time: '安裝時間',
release_time: '時間',
un_install: '卸載',
uninstall_confirm: '確定卸載該插件',
uninstall_cancel: '取消卸載插件'
},
display: {
logo: '頭部系統 Logo',
loginLogo: '登陸頁面頭部 Logo',
loginImage: '登陸頁面右側圖片',
loginTitle: '登陸頁面標題',
title: '系統名稱'
}
}

View File

@ -85,6 +85,7 @@ export default {
tokenError: 'token错误请重新登录'
},
commons: {
all: '全部',
enable: '启用',
disable: '停用',
yes: '是',
@ -812,7 +813,34 @@ export default {
export_to_panel: '导出为模板',
preview: '预览',
select_panel_from_left: '请从左侧选择仪表盘',
template_nale: '模板名称'
template_nale: '模板名称',
template: '模板',
category: '分类',
all_org: '所有组织',
custom: '自定义',
import_template: '导入模板',
copy_template: '复用模板',
upload_template: '上传模板',
belong_to_category: '所属类别',
pls_select_belong_to_category: '请选择所属类别',
template_name_cannot_be_empty: '模板名称不能为空',
select_by_table: '按表选择',
data_list: '数据列表',
component_list: '组件列表',
custom_scope: '自定义控制范围',
multiple_choice: '多选',
single_choice: '单选',
field: '字段',
unshared_people: '未分享人员',
shared_people: '已分享人员',
error_data: '获取数据出错 请联系管理员 Error getting data, please contact administrator',
canvas_size: '画布大小',
canvas_scale: '画布比例',
style: '样式',
clean_canvas: '清空画布',
insert_picture: '插入图片',
redo: '重做',
undo: '撤销'
},
plugin: {
local_install: '本地安装',

View File

@ -11,7 +11,7 @@
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
row-key="deptId"
>
<el-table-column label="所有组织" prop="name" />
<el-table-column :label="$t('panel.all_org')" prop="name" />
<el-table-column type="selection" fixd />
<!-- <el-table-column label="分享给" prop="deptId" width="80" fixed="right">
<template slot-scope="scope">

View File

@ -79,7 +79,7 @@ export default {
const rows = this.$refs.table.store.states.selection
const request = this.buildRequest(rows)
saveShare(request).then(res => {
this.$success('保存成功')
this.$success(this.$t('commons.save_success'))
return true
}).catch(err => {
this.$error(err.message)
@ -88,7 +88,6 @@ export default {
},
cancel() {
console.log('role cancel')
},
buildRequest(rows) {
const targetIds = rows.map(row => row.roleId)

View File

@ -34,9 +34,9 @@ export default {
data() {
return {
data: [],
defaultHeadName: '全部',
defaultHeadName: this.$t('commons.all'),
columnLabel: null,
filter_options: [{ text: '未分享人员', value: 0 }, { text: '已分享人员', value: 1 }],
filter_options: [{ text: this.$t('panel.unshared_people'), value: 0 }, { text: this.$t('panel.shared_people'), value: 1 }],
fieldName: 'nickName',
type: 0, // 0
shares: []
@ -80,7 +80,7 @@ export default {
const rows = this.$refs.table.store.states.selection
const request = this.buildRequest(rows)
saveShare(request).then(res => {
this.$success('保存成功')
this.$success(this.$t('commons.save_success'))
return true
}).catch(err => {
this.$error(err.message)

View File

@ -3,7 +3,7 @@
<de-container class="de-dialog-container">
<de-aside-container :show-drag-bar="false" class="ms-aside-container">
<el-tabs v-model="activeName" class="filter-dialog-tabs">
<el-tab-pane :lazy="true" class="de-tab" label="按表选择" name="dataset">
<el-tab-pane :lazy="true" class="de-tab" :label="$t('panel.select_by_table')" name="dataset">
<div class="component-header filter-common">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item v-for="bread in dataSetBreads" :key="bread.label">
@ -120,7 +120,7 @@
<div class="filter-field">
<div class="field-content">
<div class="field-content-left">
<div class="field-content-text">字段</div>
<div class="field-content-text">{{ $t(panel.field) }} </div>
</div>
<div class="field-content-right">
@ -149,14 +149,14 @@
<el-switch
v-if="widget.showSwitch"
v-model="componentInfo.options.attrs.multiple"
active-text="多选"
inactive-text="单选"
:active-text="$t('panel.multiple_choice')"
:inactive-text="$t('panel.single_choice')"
@change="multipleChange"
/>
</div>
</el-col>
<el-col :span="16"><div class="filter-options-right">
<el-checkbox v-model="customRange"><span> 自定义控制范围 </span> </el-checkbox>
<el-checkbox v-model="customRange"><span> {{ $t(panel.custom_scope) }} </span> </el-checkbox>
<el-popover
v-model="popovervisible"
@ -175,10 +175,6 @@
</el-checkbox-group>
</div>
<!-- <div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="popovervisible=false">取消</el-button>
<el-button type="primary" size="mini" @click="popovervisible=false">确定</el-button>
</div> -->
<i slot="reference" :class="{'i-filter-active': customRange, 'i-filter-inactive': !customRange}" class="el-icon-setting i-filter" />
</el-popover>
<!-- <el-checkbox disabled>备选项</el-checkbox> -->
@ -243,10 +239,10 @@ export default {
showDomType: 'tree',
comShowDomType: 'view',
dataSetBreads: [
{ label: '数据列表', link: false, type: 'root' }
{ label: this.$t('panel.data_list') , link: false, type: 'root' }
],
componentSetBreads: [
{ label: '组件列表', link: false, type: 'root' }
{ label: this.$t('panel.component_list'), link: false, type: 'root' }
],
data: [],
sceneDatas: [],
@ -321,12 +317,6 @@ export default {
.map(item => item.propValue.viewId)
viewsWithIds(viewIds).then(res => {
const datas = res.data
// for (let index = 0; index < 4; index++) {
// datas = datas.concat(datas)
// }
// datas.forEach(item => item.name += 'aaaaaaaaabbbbb')
this.viewInfos = datas
})
},

View File

@ -4,7 +4,7 @@
<el-row>
<el-input
v-model="templateFilterText"
placeholder="输入关键字进行过滤"
:placeholder="$t('panel.filter_keywords')"
size="mini"
clearable
prefix-icon="el-icon-search"

View File

@ -2,17 +2,17 @@
<el-row>
<el-row v-if="editPanel.optType==='new' && editPanel.panelInfo.nodeType==='panel'">
<el-col :span="18" style="height: 40px">
<el-radio v-model="inputType" label="self">自定义</el-radio>
<el-radio v-model="inputType" label="import">导入模板</el-radio>
<el-radio v-model="inputType" label="copy">复用模板</el-radio>
<el-radio v-model="inputType" label="self"> {{ $t(panel.custom) }}</el-radio>
<el-radio v-model="inputType" label="import">{{ $t(panel.import_template) }} </el-radio>
<el-radio v-model="inputType" label="copy">{{ $t(panel.copy_template) }} </el-radio>
</el-col>
<el-col v-if="inputType==='import'" :span="6">
<el-button class="el-icon-upload" size="small" type="primary" @click="goFile">上传模板</el-button>
<el-button class="el-icon-upload" size="small" type="primary" @click="goFile">{{ $t(panel.upload_template) }}</el-button>
<input id="input" ref="files" type="file" accept=".DE" hidden @change="handleFileChange">
</el-col>
</el-row>
<el-row style="margin-top: 5px">
<el-col :span="4">{{ editPanel.titleSuf }}名称</el-col>
<el-col :span="4">{{ editPanel.titleSuf }} {{ $t(commons.name) }}</el-col>
<el-col :span="20">
<el-input v-model="editPanel.panelInfo.name" clearable size="mini" />
</el-col>
@ -25,8 +25,8 @@
</el-row>
<el-row v-if="inputType==='import'" class="preview" :style="classBackground" />
<el-row class="root-class">
<el-button @click="cancel()"> </el-button>
<el-button type="primary" @click="save()"> </el-button>
<el-button @click="cancel()">{{ $t(commons.cancel) }}</el-button>
<el-button type="primary" @click="save()">{{ $t(commons.confirm) }}</el-button>
</el-row>
</el-row>
</template>
@ -49,7 +49,7 @@ export default {
fieldName: 'name',
tableRadio: null,
keyWordSearch: '',
columnLabel: '所属类别',
columnLabel: this.$t('panel.belong_to_category'),
templateList: [],
importTemplateInfo: {
snapshot: ''
@ -101,12 +101,12 @@ export default {
},
save() {
if (!this.editPanel.panelInfo.name) {
this.$warning('名称不能为空')
this.$warning( this.$t('commons.name_can_not_empty'))
return false
}
panelSave(this.editPanel.panelInfo).then(response => {
this.$message({
message: '保存成功',
message: this.$t('commons.save_success'),
type: 'success',
showClose: true
})

View File

@ -314,24 +314,24 @@ export default {
this.editPanel.visible = true
switch (param.optType) {
case 'new':
this.editPanel.titlePre = '新建'
this.editPanel.panelInfo.name = '新建仪表盘'
this.editPanel.titlePre = this.$t('commons.create')
this.editPanel.panelInfo.name = this.$t('panel.panelAdd')
this.editPanel.panelInfo.pid = param.data.id
this.editPanel.panelInfo.level = param.data.level + 1
break
case 'edit':
case 'rename':
this.editPanel.titlePre = '编辑'
this.editPanel.titlePre = this.$t('commons.edit')
this.editPanel.panelInfo.id = param.data.id
this.editPanel.panelInfo.name = param.data.name
break
}
switch (param.type) {
case 'folder':
this.editPanel.titleSuf = '目录'
this.editPanel.titleSuf = this.$t('panel.group')
break
case 'panel':
this.editPanel.titleSuf = '仪表盘'
this.editPanel.titleSuf = this.$t('panel.panel')
break
}
},

View File

@ -49,7 +49,7 @@ export default {
fieldName: 'name',
tableRadio: null,
keyWordSearch: '',
columnLabel: '所属类别'
columnLabel: this.$t('panel.belong_to_category')
}
},
created() {
@ -74,16 +74,16 @@ export default {
},
save() {
if (!this.templateInfo.pid) {
this.$warning('请选择所属类别')
this.$warning(this.$t(panel.pls_select_belong_to_category))
return false
}
if (!this.templateInfo.name) {
this.$warning('模板名称不能为空')
this.$warning(this.$t('panel.template_name_cannot_be_empty'))
return false
}
post('/template/save', this.templateInfo).then(response => {
this.$message({
message: '保存成功',
message: this.$t('commons.save_success'),
type: 'success',
showClose: true
})

View File

@ -34,8 +34,8 @@ export default {
},
methods: {
templateDelete() {
this.$alert('是否删除模板:' + this.template.name + '', '', {
confirmButtonText: '确认',
this.$alert(this.$t('panel.confirm_delete') + this.$t('panel.template') + ': ' + this.template.name + '', '', {
confirmButtonText: this.$t('panel.confirm'),
callback: (action) => {
if (action === 'confirm') {
this.$emit('templateDelete', this.template.id)

View File

@ -129,8 +129,8 @@ export default {
this.$emit('showTemplateEditDialog', 'new')
},
templateDelete(template) {
this.$alert('是否删除分类:' + template.name + '', '', {
confirmButtonText: '确认',
this.$alert(this.$t('panel.confirm_delete') + this.$t('panel.category') + ': ' + template.name + '', '', {
confirmButtonText: this.$t('panel.confirm_delete'),
callback: (action) => {
if (action === 'confirm') {
this.$emit('templateDelete', template.id)

View File

@ -88,7 +88,7 @@ export default {
if (id) {
post('/template/delete/' + id, null).then(response => {
this.$message({
message: '删除成功',
message: this.$t('commons.delete_success'),
type: 'success',
showClose: true
})
@ -98,10 +98,10 @@ export default {
},
showTemplateEditDialog(type, templateInfo) {
if (type === 'edit') {
this.dialogTitle = '编辑'
this.dialogTitle = this.$t('commons.edit')
this.templateEditForm = JSON.parse(JSON.stringify(templateInfo))
} else {
this.dialogTitle = '新建'
this.dialogTitle = this.$t('commons.create')
this.templateEditForm = { name: '', nodeType: 'folder', templateType: this.currentTemplateType, level: 0 }
}
this.editTemplate = true
@ -112,7 +112,7 @@ export default {
saveTemplateEdit(templateEditForm) {
post('/template/save', templateEditForm).then(response => {
this.$message({
message: '保存成功',
message: this.$t('commons.save_success'),
type: 'success',
showClose: true
})

View File

@ -132,15 +132,13 @@ export default {
],
searchConfig: {
useQuickSearch: true,
quickPlaceholder: '按名称搜索',
quickPlaceholder: this.$t('commons.search_by_name'),
combine: false,
components: [
// { field: 'name', label: '', component: 'FuComplexInput', defaultOperator: 'eq' },
{ field: 'name', label: '名称', component: 'FuComplexInput' },
{ field: 'name', label: this.$t('commons.name'), component: 'FuComplexInput' },
{
field: 'type',
label: '类型',
label: this.$t('datasource.type'),
component: 'FuComplexSelect',
options: [{ label: 'mysql', value: 'mysql' }, { label: 'sqlServer', value: 'sqlServer' }],
multiple: false