diff --git a/web/src/config/zh.js b/web/src/config/zh.js index 3985d124..704f2611 100644 --- a/web/src/config/zh.js +++ b/web/src/config/zh.js @@ -500,6 +500,10 @@ export const langList = [ value: 'zh', name: '简体中文' }, + { + value: 'zhtw', + name: '繁體中文' + }, { value: 'en', name: 'English' diff --git a/web/src/config/zhtw.js b/web/src/config/zhtw.js new file mode 100644 index 00000000..57f728a5 --- /dev/null +++ b/web/src/config/zhtw.js @@ -0,0 +1,559 @@ +// 字型列表 +export const fontFamilyList = [ + { + name: '宋體', + value: '宋体, SimSun, Songti SC' + }, + { + name: '微軟雅黑', + value: '微软雅黑, Microsoft YaHei' + }, + { + name: '楷體', + value: '楷体, 楷体_GB2312, SimKai, STKaiti' + }, + { + name: '黑體', + value: '黑体, SimHei, Heiti SC' + }, + { + name: '隸書', + value: '隶书, SimLi' + }, + { + name: 'Andale Mono', + value: 'andale mono' + }, + { + name: 'Arial', + value: 'arial, helvetica, sans-serif' + }, + { + name: 'arialBlack', + value: 'arial black, avant garde' + }, + { + name: 'Comic Sans Ms', + value: 'comic sans ms' + }, + { + name: 'Impact', + value: 'impact, chicago' + }, + { + name: 'Times New Roman', + value: 'times new roman' + }, + { + name: 'Sans-Serif', + value: 'sans-serif' + }, + { + name: 'serif', + value: 'serif' + } +] + +// 框線樣式 +export const borderDasharrayList = [ + { + name: '實線', + value: 'none' + }, + { + name: '虛線 1', + value: '5,5' + }, + { + name: '虛線 2', + value: '10,10' + }, + { + name: '虛線 3', + value: '20,10,5,5,5,10' + }, + { + name: '虛線 4', + value: '5, 5, 1, 5' + }, + { + name: '虛線 5', + value: '15, 10, 5, 10, 15' + }, + { + name: '虛線 6', + value: '1, 5' + }, + { + name: '虛線 7', + value: '6, 4' + } +] + +// 連線樣式 +export const lineStyleList = [ + { + name: '直線', + value: 'straight' + }, + { + name: '曲線', + value: 'curve' + }, + { + name: '直接連線', + value: 'direct' + } +] + +// 曲線樣式中,根節點樣式是否和其他節點保持一致 +export const rootLineKeepSameInCurveList = [ + { + name: '括號', + value: false + }, + { + name: '大括號', + value: true + } +] + +// 圖片重複方式 +export const backgroundRepeatList = [ + { + name: '不重複', + value: 'no-repeat' + }, + { + name: '重複', + value: 'repeat' + }, + { + name: '水平重複', + value: 'repeat-x' + }, + { + name: '垂直重複', + value: 'repeat-y' + } +] + +// 背景圖片位置 +export const backgroundPositionList = [ + { + name: '預設', + value: '0% 0%' + }, + { + name: '左上', + value: 'left top' + }, + { + name: '左中', + value: 'left center' + }, + { + name: '左下', + value: 'left bottom' + }, + { + name: '右上', + value: 'right top' + }, + { + name: '右中', + value: 'right center' + }, + { + name: '右下', + value: 'right bottom' + }, + { + name: '中上', + value: 'center top' + }, + { + name: '置中', + value: 'center center' + }, + { + name: '中下', + value: 'center bottom' + } +] + +const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0 +const ctrl = isMac ? '⌘' : 'Ctrl' +const enter = isMac ? 'Return' : 'Enter' +const macFn = isMac ? 'fn + ' : '' + +// 背景圖片大小 +export const backgroundSizeList = [ + { + name: '自動', + value: 'auto' + }, + { + name: '覆蓋', + value: 'cover' + }, + { + name: '包含', + value: 'contain' + } +] + +// 快捷鍵列表 +export const shortcutKeyList = [ + { + type: '節點操作', + list: [ + { + icon: 'icontianjiazijiedian', + name: '插入子節點', + value: 'Tab | Insert' + }, + { + icon: 'iconjiedian', + name: '插入同層節點', + value: enter + }, + { + icon: 'icondodeparent', + name: '插入父節點', + value: 'Shift + Tab' + }, + { + icon: 'iconshangyi', + name: '上移節點', + value: `${ctrl} + ↑` + }, + { + icon: 'iconxiayi', + name: '下移節點', + value: `${ctrl} + ↓` + }, + { + icon: 'icongaikuozonglan', + name: '插入摘要', + value: `${ctrl} + G` + }, + { + icon: 'iconzhankai', + name: '展開/收合節點', + value: '/' + }, + { + icon: 'iconshanchu', + name: '刪除節點', + value: 'Delete | Backspace' + }, + { + icon: 'iconshanchu', + name: '僅刪除目前節點', + value: 'Shift + Backspace' + }, + { + icon: 'iconfuzhi', + name: '複製節點', + value: `${ctrl} + C` + }, + { + icon: 'iconjianqie', + name: '剪下節點', + value: `${ctrl} + X` + }, + { + icon: 'iconniantie', + name: '貼上節點', + value: `${ctrl} + V` + }, + { + icon: 'iconbianji', + name: '編輯節點', + value: macFn + 'F2' + }, + { + icon: 'iconhuanhang', + name: '文字換行', + value: `Shift + ${enter}` + }, + { + icon: 'iconhoutui-shi', + name: '復原', + value: `${ctrl} + Z` + }, + { + icon: 'iconqianjin1', + name: '重做', + value: `${ctrl} + Y` + }, + { + icon: 'iconquanxuan', + name: '全選', + value: `${ctrl} + A` + }, + { + icon: 'iconquanxuan', + name: '多重選擇', + value: `右鍵 / ${ctrl} + 左鍵` + }, + { + icon: 'iconzhengli', + name: '一鍵整理版面配置', + value: `${ctrl} + L` + }, + { + icon: 'iconsousuo', + name: '搜尋與取代', + value: `${ctrl} + F` + } + ] + }, + { + type: '畫布操作', + list: [ + { + icon: 'iconfangda', + name: '放大', + value: `${ctrl} + +` + }, + { + icon: 'iconsuoxiao', + name: '縮小', + value: `${ctrl} + -` + }, + { + icon: 'iconfangda', + name: '放大/縮小', + value: `${ctrl} + 滑鼠滾輪` + }, + { + icon: 'icondingwei', + name: '回到根節點', + value: `${ctrl} + ${enter}` + }, + { + icon: 'iconquanping1', + name: '適應畫布', + value: `${ctrl} + i` + } + ] + }, + { + type: '大綱操作', + list: [ + { + icon: 'iconhuanhang', + name: '文字換行', + value: `Shift + ${enter}` + }, + { + icon: 'iconshanchu', + name: '刪除節點', + value: 'Delete' + }, + { + icon: 'icontianjiazijiedian', + name: '插入子節點', + value: 'Tab' + }, + { + icon: 'iconjiedian', + name: '插入同層節點', + value: enter + }, + { + icon: 'icondodeparent', + name: '上移一層', + value: 'Shift + Tab' + } + ] + } +] + +// 形狀列表 +export const shapeList = [ + { + name: '矩形', + value: 'rectangle' + }, + { + name: '菱形', + value: 'diamond' + }, + { + name: '平行四邊形', + value: 'parallelogram' + }, + { + name: '圓角矩形', + value: 'roundedRectangle' + }, + { + name: '八角矩形', + value: 'octagonalRectangle' + }, + { + name: '外三角矩形', + value: 'outerTriangularRectangle' + }, + { + name: '內三角矩形', + value: 'innerTriangularRectangle' + }, + { + name: '橢圓形', + value: 'ellipse' + }, + { + name: '圓形', + value: 'circle' + } +] + +// 側邊欄列表 +export const sidebarTriggerList = [ + { + name: '節點樣式', + value: 'nodeStyle', + icon: 'iconzhuti' + }, + { + name: '基礎樣式', + value: 'baseStyle', + icon: 'iconyangshi' + }, + { + name: '主題', + value: 'theme', + icon: 'iconjingzi' + }, + { + name: '結構', + value: 'structure', + icon: 'iconjiegou' + }, + { + name: '大綱', + value: 'outline', + icon: 'iconfuhao-dagangshu' + }, + { + name: '快捷鍵', + value: 'shortcutKey', + icon: 'iconjianpan' + } +] + +// 下載類型列表 +export const downTypeList = [ + { + name: '專用檔案', + type: 'smm', + icon: 'iconwenjian', + desc: '可用於匯入' + }, + { + name: 'JSON', + type: 'json', + icon: 'iconjson', + desc: '常見的資料交換格式,可用於匯入' + }, + { + name: '圖片', + type: 'png', + icon: 'iconPNG', + desc: '適合檢視與分享' + }, + { + name: 'SVG', + type: 'svg', + icon: 'iconSVG', + desc: '可縮放向量圖形' + }, + { + name: 'PDF', + type: 'pdf', + icon: 'iconpdf', + desc: '適合列印' + }, + { + name: 'Markdown', + type: 'md', + icon: 'iconmarkdown', + desc: '方便其他軟體開啟' + }, + { + name: 'XMind', + type: 'xmind', + icon: 'iconxmind', + desc: 'XMind 檔案' + }, + { + name: 'Txt', + type: 'txt', + icon: 'iconTXT', + desc: '純文字檔案' + } +] + +// 編號類型列表 +export const numberTypeList = [ + { + name: '無編號', + value: '' + }, + { + name: '1, 2, 3', + value: 1 + }, + { + name: '1., 2., 3.', + value: 2 + }, + { + name: '(1), (2), (3)', + value: 3 + }, + { + name: 'a., b., c.', + value: 4 + }, + { + name: 'A., B., C.', + value: 5 + }, + { + name: 'i., ii., iii.', + value: 6 + }, + { + name: 'I., II., III.', + value: 7 + }, + { + name: '一、, 二、, 三、', + value: 8 + } +] + +// 編號層級列表 +export const numberLevelList = [ + { + name: '編號第一層', + value: 1 + }, + { + name: '編號前兩層', + value: 2 + }, + { + name: '編號前三層', + value: 3 + }, + { + name: '編號每一層', + value: 0 + } +] diff --git a/web/src/lang/index.js b/web/src/lang/index.js index d64969f5..f26ad087 100644 --- a/web/src/lang/index.js +++ b/web/src/lang/index.js @@ -1,7 +1,9 @@ import en from './en_us' import zh from './zh_cn' +import zhtw from './zh_tw' export default { zh, + zhtw, en } diff --git a/web/src/lang/zh_tw.js b/web/src/lang/zh_tw.js new file mode 100644 index 00000000..8517c036 --- /dev/null +++ b/web/src/lang/zh_tw.js @@ -0,0 +1,377 @@ +export default { + baseStyle: { + title: '基本樣式', + background: '背景', + color: '顏色', + image: '圖片', + imageRepeat: '圖片重複', + imagePosition: '圖片位置', + imageSize: '圖片大小', + line: '連線', + width: '寬度', + style: '樣式', + lineRadius: '圓角半徑', + lineOfOutline: '概要連線', + showArrow: '顯示箭頭', + nodePadding: '節點內距', + nodeMargin: '節點外距', + horizontal: '水平', + vertical: '垂直', + maximumWidth: '最大寬度', + maximumHeight: '最大高度', + icon: '圖示', + size: '大小', + level2Node: '第二層節點', + belowLevel2Node: '第三層及以下節點', + nodeBorderType: '節點邊框樣式', + nodeUseLineStyle: '僅使用底邊框樣式', + otherConfig: '其他設定', + enableFreeDrag: '啟用節點自由拖曳 (Beta)', + openPerformance: '啟用效能模式', + watermark: '浮水印', + showWatermark: '顯示浮水印', + onlyExport: '僅在匯出時顯示', + watermarkDefaultText: '浮水印文字', + watermarkText: '浮水印文字', + watermarkTextColor: '文字顏色', + watermarkLineSpacing: '行距', + watermarkTextSpacing: '文字間距', + watermarkAngle: '旋轉角度', + watermarkTextOpacity: '文字透明度', + watermarkTextFontSize: '字型大小', + belowNode: '顯示在節點下方', + isEnableNodeRichText: '啟用節點豐富文字編輯', + mousewheelAction: '滑鼠滾輪行為', + zoomView: '縮放檢視', + moveViewUpDown: '上下移動檢視', + associativeLine: '關聯線', + associativeLineWidth: '寬度', + associativeLineColor: '顏色', + associativeLineActiveWidth: '啟用時寬度', + associativeLineActiveColor: '啟用時顏色', + mousewheelZoomActionReverse: '滑鼠滾輪縮放', + mousewheelZoomActionReverse1: '向前縮小,向後放大', + mousewheelZoomActionReverse2: '向前放大,向後縮小', + createNewNodeBehavior: '建立新節點行為', + default: '啟用新節點並進入編輯', + notActive: '不啟用新節點', + activeOnly: '僅啟用新節點,不進入編輯', + rootStyle: '根節點', + associativeLineText: '關聯線文字', + fontFamily: '字型', + fontSize: '字型大小', + isShowScrollbar: '顯示捲軸', + isUseHandDrawnLikeStyle: '使用手繪風格', + rootLineStartPos: '根節點連線起始位置', + center: '中心', + edge: '邊緣', + rainbowLines: '彩虹線條', + notUseRainbowLines: '不使用彩虹線條', + outerFramePadding: '外框內距' + }, + color: { + moreColor: '更多顏色' + }, + contextmenu: { + insertSiblingNode: '插入同層節點', + insertChildNode: '插入子節點', + insertParentNode: '插入父節點', + insertSummary: '插入概要', + moveUpNode: '上移節點', + moveDownNode: '下移節點', + deleteNode: '刪除節點', + deleteCurrentNode: '僅刪除目前節點', + copyNode: '複製節點', + cutNode: '剪下節點', + pasteNode: '貼上節點', + backCenter: '回到根節點', + expandAll: '展開全部', + unExpandAll: '收合全部', + expandTo: '展開至', + arrangeLayout: '一鍵整理版面', + level1: '第一層主題', + level2: '第二層主題', + level3: '第三層主題', + level4: '第四層主題', + level5: '第五層主題', + level6: '第六層主題', + zenMode: '禪模式', + fitCanvas: '適應畫布', + removeImage: '移除圖片', + removeHyperlink: '移除超連結', + removeNote: '移除備註', + removeCustomStyles: '一鍵移除自訂樣式', + removeAllNodeCustomStyles: '一鍵移除所有節點自訂樣式', + exportNodeToPng: '匯出此節點為圖片', + copyToClipboard: '複製到剪貼簿', + copyToSmm: 'SMM', + copyToJson: 'JSON', + copyToMarkdown: 'Markdown', + copyToTxt: 'Txt', + copyToPng: '圖片', + copySuccess: '複製成功', + copyFail: '複製失敗', + number: '將其子節點編號' + }, + count: { + words: '字數', + nodes: '節點數' + }, + dialog: { + cancel: '取消', + confirm: '確定' + }, + export: { + title: '匯出', + filename: '檔案名稱', + include: '包含主題、結構等設定資料', + dedicatedFile: '專用檔案', + jsonFile: 'JSON 檔案', + imageFile: '圖片檔案', + svgFile: 'SVG 檔案', + pdfFile: 'PDF 檔案', + markdownFile: 'Markdown 檔案', + tips: '提示:.smm 和 .json 檔案可以匯入', + isTransparent: '背景透明', + pngTips: '提示:在豐富文字模式下匯出圖片非常耗時,建議匯出為 SVG 格式', + svgTips: '提示:在豐富文字模式下匯出圖片非常耗時', + transformingDomToImages: '正在轉換節點:', + notifyTitle: '訊息', + notifyMessage: '如果沒有觸發下載,請檢查是否被瀏覽器封鎖', + paddingX: '水平內距', + paddingY: '垂直內距', + useMultiPageExport: '多頁匯出', + defaultFileName: '心智圖', + addFooterText: '在底部新增文字', + addFooterTextPlaceholder: '例如:來自 simple-mind-map' + }, + fullscreen: { + fullscreenShow: '全螢幕檢視', + fullscreenEdit: '全螢幕編輯' + }, + demonstrate: { + demonstrate: '進入展示模式' + }, + import: { + title: '匯入', + selectFile: '選擇檔案', + supportFile: '支援 .smm、.json、.xmind、.xlsx、.md 檔案', + enableFileTip: '請選擇 .smm、.json、.xmind、.xlsx、.md 檔案', + maxFileNum: '最多只能選擇一個檔案', + notSelectTip: '請選擇要匯入的檔案', + fileContentError: '檔案內容有誤', + importSuccess: '匯入成功', + fileParsingFailed: '檔案解析失敗', + xmindCanvasSelectDialogTitle: '選擇要匯入的畫布' + }, + navigatorToolbar: { + openMiniMap: '開啟小地圖', + closeMiniMap: '關閉小地圖', + readonly: '切換為唯讀模式', + edit: '切換為編輯模式', + backToRoot: '回到根節點', + changeSourceCodeEdit: '切換為原始碼編輯模式' + }, + nodeHyperlink: { + title: '超連結', + link: '連結', + name: '名稱' + }, + nodeIcon: { + title: '圖示' + }, + nodeImage: { + title: '圖片', + imgTitle: '圖片標題' + }, + nodeNote: { + title: '備註' + }, + nodeTag: { + title: '標籤', + addTip: '請按 Enter 鍵新增' + }, + outline: { + title: '大綱', + nodeDefaultText: '分支節點' + }, + scale: { + zoomIn: '放大', + zoomOut: '縮小' + }, + shortcutKey: { + title: '快速鍵' + }, + strusture: { + title: '結構' + }, + style: { + title: '節點樣式', + normal: '常態', + active: '選取狀態', + text: '文字', + fontFamily: '字型', + fontSize: '字型大小', + lineHeight: '行高', + color: '顏色', + addFontWeight: '粗體', + italic: '斜體', + textDecoration: '文字裝飾', + none: '無', + underline: '底線', + lineThrough: '刪除線', + overline: '上劃線', + border: '邊框', + style: '樣式', + width: '寬度', + borderRadius: '圓角', + background: '背景', + shape: '形狀', + line: '線條', + nodePadding: '節點內距', + horizontal: '水平', + vertical: '垂直', + gradientStyle: '漸層', + startColor: '起始', + endColor: '結束', + arrowDir: '箭頭位置', + arrowDirStart: '頭部', + arrowDirEnd: '尾部' + }, + theme: { + title: '主題', + classics: '經典', + dark: '深色', + simple: '簡約', + coverTip: '您目前已自訂過基本樣式,是否要覆蓋?', + tip: '提示', + cover: '覆蓋', + reserve: '保留' + }, + toolbar: { + undo: '復原', + redo: '重做', + insertSiblingNode: '同層節點', + insertChildNode: '子節點', + deleteNode: '刪除節點', + image: '圖片', + icon: '圖示', + link: '超連結', + note: '備註', + tag: '標籤', + summary: '摘要', + displayOutline: '顯示大綱', + baseStyle: '基本樣式', + theme: '主題', + strusture: '結構', + newFile: '新增檔案', + openFile: '開啟檔案', + saveAs: '另存新檔', + import: '匯入', + export: '匯出', + shortcutKey: '快速鍵', + associativeLine: '關聯線', + painter: '格式刷', + formula: '公式', + attachment: '附件', + outerFrame: '外框', + more: '更多', + selectFileTip: '請選擇檔案', + notSupportTip: '您的瀏覽器不支援此功能,或者目前頁面非 HTTPS 協定', + tip: '提示', + editingLocalFileTipFront: '目前正在編輯您電腦上的【', + editingLocalFileTipEnd: '】檔案', + fileContentError: '檔案內容有誤', + fileOpenFailed: '檔案開啟失敗', + defaultFileName: '心智圖', + creatingTip: '正在建立檔案', + directory: '目錄', + newFileTip: '新增檔案前,請先匯出目前編輯的檔案,以免內容遺失', + openFileTip: '開啟檔案前,請先匯出目前編輯的檔案,以免內容遺失' + }, + edit: { + newFeatureNoticeTitle: '新功能提醒', + newFeatureNoticeMessage: + '本次更新支援了節點豐富文字編輯,但存在一些缺陷,最主要的影響是匯出為圖片的時間與節點數量成正比,所以如果比較依賴匯出功能,可以透過【基本樣式】-【其他設定】-【是否啟用節點豐富文字編輯】設定關閉豐富文字編輯模式。', + root: '根節點', + splitByWrap: '是否根據換行自動分割節點?', + tip: '提示', + yes: '是', + no: '否', + exportError: '匯出失敗', + dragTip: '在此釋放以匯入檔案' + }, + mouseAction: { + tip1: '目前:左鍵拖曳畫布,右鍵框選節點', + tip2: '目前:左鍵框選節點,右鍵拖曳畫布' + }, + search: { + searchPlaceholder: '請輸入搜尋內容', + replacePlaceholder: '請輸入取代內容', + replace: '取代', + replaceAll: '全部取代', + cancel: '取消', + noResult: '查無結果' + }, + nodeIconSidebar: { + title: '圖示/貼圖', + icon: '圖示', + sticker: '貼圖' + }, + formulaSidebar: { + title: '公式', + placeholder: '請輸入 LaTeX 語法', + confirm: '完成', + common: '常用公式', + tip: '僅在豐富文字模式下支援插入公式' + }, + richTextToolbar: { + bold: '粗體', + italic: '斜體', + underline: '底線', + strike: '刪除線', + fontFamily: '字型', + fontSize: '字型大小', + color: '字型顏色', + backgroundColor: '背景顏色', + removeFormat: '清除樣式' + }, + other: { + loading: '載入中,請稍候...' + }, + sourceCodeEdit: { + sourceCodeTip: + '不建議在豐富文字模式下修改樣式,因為需要同步修改資料和 HTML 結構。', + format: '格式化', + copy: '複製', + confirm: '完成', + close: '關閉', + formatErrorTip: 'JSON 格式錯誤,請檢查後重試', + copyTip: '已複製到剪貼簿', + formatTip: '格式化完成' + }, + attachment: { + deleteAttachment: '刪除附件', + tip: '附件功能僅在用戶端可用' + }, + annotation: { + mark: '標記', + show: '顯示標記', + type: '類型', + color: '顏色', + lineWidth: '線寬', + padding: '內距', + animate: '動畫' + }, + nodeOuterFrame: { + outerFrameSetting: '外框設定', + deleteOuterFrame: '刪除外框', + boxStyle: '邊框樣式', + boxColor: '邊框顏色', + fillColor: '填充顏色' + }, + nodeTagStyle: { + placeholder: '請輸入標籤內容', + delete: '刪除此標籤' + } +}