From b46a94bd9698a49ccd51aaf5a8c34cac6d6ee7e5 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Fri, 28 Oct 2022 16:26:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E8=AF=AD=E8=A8=80=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/lang/en-us.json | 0 simple-mind-map/src/lang/zh-cn.json | 3 + web/package.json | 1 + web/src/config/index.js | 12 +++ web/src/i18n.js | 12 +++ web/src/lang/en_us.js | 80 +++++++++++++++++++ web/src/lang/index.js | 7 ++ web/src/lang/zh_cn.js | 80 +++++++++++++++++++ web/src/main.js | 4 +- web/src/pages/Edit/components/BaseStyle.vue | 56 +++++++------ web/src/pages/Edit/components/Color.vue | 2 +- web/src/pages/Edit/components/Contextmenu.vue | 46 ++++++----- web/src/pages/Edit/components/Count.vue | 4 +- web/src/pages/Edit/components/Export.vue | 34 +++++--- web/src/pages/Edit/components/Fullscreen.vue | 7 +- web/src/pages/Edit/components/Import.vue | 14 ++-- .../Edit/components/NavigatorToolbar.vue | 31 ++++++- 17 files changed, 323 insertions(+), 70 deletions(-) create mode 100644 simple-mind-map/src/lang/en-us.json create mode 100644 simple-mind-map/src/lang/zh-cn.json create mode 100644 web/src/i18n.js create mode 100644 web/src/lang/en_us.js create mode 100644 web/src/lang/index.js create mode 100644 web/src/lang/zh_cn.js diff --git a/simple-mind-map/src/lang/en-us.json b/simple-mind-map/src/lang/en-us.json new file mode 100644 index 00000000..e69de29b diff --git a/simple-mind-map/src/lang/zh-cn.json b/simple-mind-map/src/lang/zh-cn.json new file mode 100644 index 00000000..544b7b4d --- /dev/null +++ b/simple-mind-map/src/lang/zh-cn.json @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file diff --git a/web/package.json b/web/package.json index fada423e..7003fcce 100644 --- a/web/package.json +++ b/web/package.json @@ -15,6 +15,7 @@ "element-ui": "^2.15.1", "v-viewer": "^1.6.4", "vue": "^2.6.11", + "vue-i18n": "^8.27.2", "vue-router": "^3.5.1", "vuex": "^3.6.2", "xlsx": "^0.18.5" diff --git a/web/src/config/index.js b/web/src/config/index.js index 2045c316..3f630e46 100644 --- a/web/src/config/index.js +++ b/web/src/config/index.js @@ -379,3 +379,15 @@ export const shapeList = [ value: 'circle' } ] + +// 多语言列表 +export const langList = [ + { + value: 'zh', + name: '简体中文' + }, + { + value: 'en', + name: 'English' + } +] \ No newline at end of file diff --git a/web/src/i18n.js b/web/src/i18n.js new file mode 100644 index 00000000..f665233f --- /dev/null +++ b/web/src/i18n.js @@ -0,0 +1,12 @@ +import Vue from 'vue' +import VueI18n from 'vue-i18n' +import messages from './lang' + +Vue.use(VueI18n) + +const i18n = new VueI18n({ + locale: 'zh', + messages +}) + +export default i18n diff --git a/web/src/lang/en_us.js b/web/src/lang/en_us.js new file mode 100644 index 00000000..4c7ec71e --- /dev/null +++ b/web/src/lang/en_us.js @@ -0,0 +1,80 @@ +export default { + baseStyle: { + title: 'BaseStyle', + background: 'Background', + color: 'Color', + image: 'Image', + imageRepeat: 'Image repeat', + line: 'Line', + width: 'Width', + style: 'Style', + lineOfOutline: 'Line of outline', + nodePadding: 'Node padding', + nodeMargin: 'Node margin', + horizontal: 'Horizontal', + vertical: 'Vertical', + maximumWidth: 'Max width', + maximumHeight: 'Max height', + icon: 'Icon', + size: 'Size', + level2Node: 'Level2 node', + belowLevel2Node: 'Below level2 node' + }, + color: { + moreColor: 'More color' + }, + contextmenu: { + insertSiblingNode: 'Insert sibling node', + insertChildNode: 'Insert child node', + insertSummary: 'Insert summary', + moveUpNode: 'Move up node', + moveDownNode: 'Move down node', + deleteNode: 'Delete node', + copyNode: 'Copy node', + cutNode: 'Cut node', + pasteNode: 'Paste node', + backCenter: 'Back center', + expandAll: 'Expand all', + unExpandAll: 'Un expand all', + expandTo: 'Expand to', + arrangeLayout: 'Arrange layout', + level1: 'Level1', + level2: 'Level2', + level3: 'Level3', + level4: 'Level4', + level5: 'Level5', + level6: 'Level6' + }, + count: { + words: 'Words', + nodes: 'Nodes' + }, + dialog: { + cancel: 'Cancel', + confirm: 'Confirm' + }, + export: { + title: 'Export', + filename: 'Filename', + include: 'Is include config like theme and structure', + dedicatedFile: 'Dedicated file', + jsonFile: 'json file', + imageFile: 'Image file', + svgFile: 'svg file', + pdfFile: 'pdf file', + tips: 'tips:.smm and .json file can be import' + }, + fullscreen: { + fullscreen: 'Fullscreen' + }, + import: { + title: 'Import', + selectFile: 'Select file', + supportFile: 'Support .smm、.json、.xmind、.xlsx file' + }, + navigatorToolbar: { + openMiniMap: 'Open mini map', + readonly: 'Readonly', + edit: 'Edit' + } +} diff --git a/web/src/lang/index.js b/web/src/lang/index.js new file mode 100644 index 00000000..d64969f5 --- /dev/null +++ b/web/src/lang/index.js @@ -0,0 +1,7 @@ +import en from './en_us' +import zh from './zh_cn' + +export default { + zh, + en +} diff --git a/web/src/lang/zh_cn.js b/web/src/lang/zh_cn.js new file mode 100644 index 00000000..7fb2be58 --- /dev/null +++ b/web/src/lang/zh_cn.js @@ -0,0 +1,80 @@ +export default { + baseStyle: { + title: '基础样式', + background: '背景', + color: '颜色', + image: '图片', + imageRepeat: '图片重复', + line: '连线', + width: '粗细', + style: '风格', + lineOfOutline: '概要的连线', + nodePadding: '节点内边距', + nodeMargin: '节点外边距', + horizontal: '水平', + vertical: '垂直', + maximumWidth: '显示的最大宽度', + maximumHeight: '显示的最大高度', + icon: '图标', + size: '大小', + level2Node: '二级节点', + belowLevel2Node: '三级及以下节点' + }, + color: { + moreColor: '更多颜色' + }, + contextmenu: { + insertSiblingNode: '插入同级节点', + insertChildNode: '插入子级节点', + insertSummary: '插入概要', + moveUpNode: '上移节点', + moveDownNode: '下移节点', + deleteNode: '删除节点', + copyNode: '复制节点', + cutNode: '剪切节点', + pasteNode: '粘贴节点', + backCenter: '回到中心', + expandAll: '展开所有', + unExpandAll: '收起所有', + expandTo: '展开到', + arrangeLayout: '一键整理布局', + level1: '一级主题', + level2: '二级主题', + level3: '三级主题', + level4: '四级主题', + level5: '五级主题', + level6: '六级主题' + }, + count: { + words: '字数', + nodes: '节点' + }, + dialog: { + cancel: '取 消', + confirm: '确 定' + }, + export: { + title: '导出', + filename: '导出文件名称', + include: '是否包含主题、结构等配置数据', + dedicatedFile: '专有文件', + jsonFile: 'json文件', + imageFile: '图片文件', + svgFile: 'svg文件', + pdfFile: 'pdf文件', + tips: 'tips:.smm和.json文件可用于导入' + }, + fullscreen: { + fullscreen: '全屏' + }, + import: { + title: '导入', + selectFile: '选取文件', + supportFile: '支持.smm、.json、.xmind、.xlsx文件' + }, + navigatorToolbar: { + openMiniMap: '开启小地图', + readonly: '只读模式', + edit: '编辑模式' + } +} diff --git a/web/src/main.js b/web/src/main.js index 749a4755..6729eda9 100644 --- a/web/src/main.js +++ b/web/src/main.js @@ -7,6 +7,7 @@ import 'element-ui/lib/theme-chalk/index.css' import '@/assets/icon-font/iconfont.css' import 'viewerjs/dist/viewer.css' import VueViewer from 'v-viewer' +import i18n from './i18n' Vue.config.productionTip = false Vue.prototype.$bus = new Vue() @@ -16,5 +17,6 @@ Vue.use(VueViewer) new Vue({ render: h => h(App), router, - store + store, + i18n }).$mount('#app') diff --git a/web/src/pages/Edit/components/BaseStyle.vue b/web/src/pages/Edit/components/BaseStyle.vue index 583d4941..c35a14c0 100644 --- a/web/src/pages/Edit/components/BaseStyle.vue +++ b/web/src/pages/Edit/components/BaseStyle.vue @@ -1,11 +1,11 @@ @@ -112,12 +118,12 @@ export default { mosuedownX: 0, mosuedownY: 0, expandList: [ - '一级主题', - '二级主题', - '三级主题', - '四级主题', - '五级主题', - '六级主题' + this.$t('contextmenu.level1'), + this.$t('contextmenu.level2'), + this.$t('contextmenu.level3'), + this.$t('contextmenu.level4'), + this.$t('contextmenu.level5'), + this.$t('contextmenu.level6') ] } }, diff --git a/web/src/pages/Edit/components/Count.vue b/web/src/pages/Edit/components/Count.vue index 3fdaf279..310dc3a9 100644 --- a/web/src/pages/Edit/components/Count.vue +++ b/web/src/pages/Edit/components/Count.vue @@ -1,11 +1,11 @@