From 29ab9fd7ccaa62d82a77960b0decad5c81e0e6ba Mon Sep 17 00:00:00 2001 From: liuyang Date: Fri, 24 Jul 2020 21:12:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dfont?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/constant.js | 17 ++- src/controllers/freezen.js | 13 ++- src/controllers/handler.js | 57 ++++++---- src/controllers/menuButton.js | 189 +++++++++++++++++++--------------- src/controllers/server.js | 11 +- src/global/createdom.js | 4 +- src/locale/en.js | 106 ++++++++++++++++++- src/locale/zh.js | 98 +++++++++++++++++- 8 files changed, 380 insertions(+), 115 deletions(-) diff --git a/src/controllers/constant.js b/src/controllers/constant.js index 34ce534..3575f17 100644 --- a/src/controllers/constant.js +++ b/src/controllers/constant.js @@ -448,14 +448,27 @@ const pivottableconfigHTML = '', maskHTML = '
', - filtermenuHTML = '
以A-Z升序排列
以Z-A降序排列
按颜色筛选
按条件过滤
按值过滤
全选 - 清除 - 反选
确 认
取 消
清除筛选
', - filtersubmenuHTML = '
单元格为空
单元格有数据
文本包含
文本不包含
文本开头为
文本结尾为
文本等于
日期等于
日期早于
日期晚于
大于
大于等于
小于
小于等于
等于
不等于
介于
不在其中
', sheetconfigHTML = '
删除
复制
重命名
更改颜色
隐藏
取消隐藏
向左移
向右移
重置颜色
'; const luckysheetPivotTableHTML = '
数据透视表
编辑范围
选择需要添加到数据透视表的字段 清除
筛选
数值
'; + function filtermenuHTML() { + const _locale = locale(); + const locale_filter = _locale.filter; + + return `
${locale_filter.sortByAsc}
${locale_filter.sortByDesc}
${locale_filter.filterByColor}
${locale_filter.filterByCondition}
${locale_filter.filterByValues}
${locale_filter.filterValueByAllBtn} - ${locale_filter.filterValueByClearBtn} - ${locale_filter.filterValueByInverseBtn}
${locale_filter.filterConform}
${locale_filter.filterCancel}
${locale_filter.clearFilter}
` + } + + + function filtersubmenuHTML() { + const _locale = locale(); + const locale_filter = _locale.filter; + + return `
${locale_filter.conditionNone}
${locale_filter.conditionCellIsNull}
${locale_filter.conditionCellNotNull}
${locale_filter.conditionCellTextContain}
${locale_filter.conditionCellTextNotContain}
${locale_filter.conditionCellTextStart}文本开头为
文本结尾为
文本等于
日期等于
日期早于
日期晚于
大于
大于等于
小于
小于等于
等于
不等于
介于
不在其中
` + } + function luckysheetAlternateformatHtml(){ const _locale = locale() diff --git a/src/controllers/freezen.js b/src/controllers/freezen.js index 898ef7b..60f7fde 100644 --- a/src/controllers/freezen.js +++ b/src/controllers/freezen.js @@ -7,7 +7,8 @@ import menuButton from './menuButton'; import luckysheetPostil from './postil'; import luckysheetDropCell from './dropCell'; import { rowLocationByIndex, colLocationByIndex } from '../global/location'; -import Store from '../store' +import Store from '../store'; +import locale from '../locale/locale'; const luckysheetFreezen = { freezenHorizontalHTML: '
 
', @@ -115,7 +116,9 @@ const luckysheetFreezen = { _this.freezenverticaldata = freezenverticaldata; - $("#luckysheet-freezen-btn-horizontal").html(' 取消冻结'); + + + $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.freezenCancel); $("#luckysheet-freezebar-vertical").show().find(".luckysheet-freezebar-vertical-handle").css({ "left": left }).end().find(".luckysheet-freezebar-vertical-drop").css({ "left": left }); }, @@ -235,7 +238,9 @@ const luckysheetFreezen = { cancelFreezenHorizontal: function (sheetIndex) { let _this = this; - $("#luckysheet-freezen-btn-horizontal").html(' 冻结首行'); + + + $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.default); _this.freezenhorizontaldata = null; let ishorizontal = $("#luckysheet-freezebar-horizontal").is(":visible"); $("#luckysheet-freezebar-horizontal").hide(); @@ -309,7 +314,7 @@ const luckysheetFreezen = { _this.freezenhorizontaldata = freezenhorizontaldata; - $("#luckysheet-freezen-btn-horizontal").html(' 取消冻结'); + $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.freezenCancel); $("#luckysheet-freezebar-horizontal").show().find(".luckysheet-freezebar-horizontal-handle").css({ "top": top }).end().find(".luckysheet-freezebar-horizontal-drop").css({ "top": top }); }, createAssistCanvas: function(){ diff --git a/src/controllers/handler.js b/src/controllers/handler.js index 07a326c..00571c7 100644 --- a/src/controllers/handler.js +++ b/src/controllers/handler.js @@ -72,6 +72,7 @@ import method from '../global/method'; import { getBorderInfoCompute } from '../global/border'; import { luckysheetDrawMain } from '../global/draw'; import Store from '../store'; +import locale from '../locale/locale'; //, columeflowset, rowflowset export default function luckysheetHandler() { @@ -3791,7 +3792,7 @@ export default function luckysheetHandler() { //冻结行列 $("#luckysheet-freezen-btn-horizontal").click(function () { - if($.trim($(this).text())=="取消冻结"){ + if($.trim($(this).text())==locale().freezen.freezenCancel){ if (luckysheetFreezen.freezenverticaldata != null) { luckysheetFreezen.cancelFreezenVertical(); luckysheetFreezen.createAssistCanvas(); @@ -7496,13 +7497,14 @@ export default function luckysheetHandler() { let luckysheet_sort_initial = true; $("#luckysheetorderby").click(function () { $("body .luckysheet-cols-menu").hide(); - + const _locale = locale(); + const locale_sort = _locale.sort; if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ - alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + alert(locale_sort.noRangeError); } else{ - tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + tooltip.info(locale_sort.noRangeError, ""); } return; } @@ -7513,9 +7515,10 @@ export default function luckysheetHandler() { if (luckysheet_sort_initial) { luckysheet_sort_initial = false; - let content = '
排序依据
+ 添加其他排序列
'; + + let content = `
${locale_sort.hasTitle}
+ ${locale_sort.addOthers}
`; - $("body").append(replaceHtml(modelHTML, { "id": "luckysheet-sort-dialog", "addclass": "", "title": "排序范围", "content": content, "botton": '' })); + $("body").append(replaceHtml(modelHTML, { "id": "luckysheet-sort-dialog", "addclass": "", "title": "排序范围", "content": content, "botton": ``})); $("#luckysheet-sort-dialog .luckysheet-sort-dialog-additem").click(function () { let last = Store.luckysheet_select_save[0]; @@ -7530,7 +7533,7 @@ export default function luckysheetHandler() { let v = getcellvalue(r1, c, Store.flowdata, "m"); if(v == null){ - v = "列" + (c - c1 + 1); + v = locale_sort.columnOperation + (c - c1 + 1); } option += ''; @@ -7540,7 +7543,19 @@ export default function luckysheetHandler() { } } - $("#luckysheet-sort-dialog table").append('次要排序
'); + $("#luckysheet-sort-dialog table").append(` + + ${locale_sort.secondaryTitle} + +
+
+
+ + + `); $("#luckysheet-sort-dialog table").data("itemcount", i); }); @@ -7557,7 +7572,7 @@ export default function luckysheetHandler() { let v = getcellvalue(r1, c, Store.flowdata, "m"); if(v == null){ - v = "列" + (c - c1 + 1); + v = locale_sort.columnOperation + (c - c1 + 1); } option += ''; @@ -7572,14 +7587,14 @@ export default function luckysheetHandler() { }); }); - //自定义排序 + //Custom sort $("#luckysheet-sort-modal-confirm").click(function () { if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ - alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + alert(locale_sort.noRangeError); } else{ - tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + tooltip.info(locale_sort.noRangeError, ""); } return; @@ -7591,7 +7606,7 @@ export default function luckysheetHandler() { let r1 = last["row"][0], r2 = last["row"][1]; let c1 = last["column"][0], c2 = last["column"][1]; - //数据具有标题行 + //Data has header row let t = $("#luckysheet-sort-haveheader").is(':checked'); let str; @@ -7602,7 +7617,8 @@ export default function luckysheetHandler() { str = r1; } - let hasMc = false; //排序选区是否有合并单元格 + let hasMc = false; //Whether the sort selection has merged cells + let data = []; for(let r = str; r <= r2; r++){ @@ -7622,10 +7638,10 @@ export default function luckysheetHandler() { if(hasMc){ if(isEditMode()){ - alert("选区有合并单元格,无法执行此操作!"); + alert(locale_sort.mergeError); } else{ - tooltip.info("选区有合并单元格,无法执行此操作!", ""); + tooltip.info(locale_sort.mergeError, ""); } return; @@ -7680,7 +7696,7 @@ export default function luckysheetHandler() { $("#luckysheet-sort-haveheader").prop("checked", false); $("#luckysheet-sort-dialog input:radio:first").prop("checked", "checked"); - $("#luckysheet-sort-dialog .luckysheet-modal-dialog-title-text").html("排序范围从" + chatatABC(c1) + (r1 + 1) + "" + chatatABC(c2) + (r2 + 1) + ""); + $("#luckysheet-sort-dialog .luckysheet-modal-dialog-title-text").html(locale_sort.sortRangeTitle+"" + chatatABC(c1) + (r1 + 1) + ""+ locale_sort.sortRangeTitleTo +"" + chatatABC(c2) + (r2 + 1) + ""); let $t = $("#luckysheet-sort-dialog"), myh = $t.outerHeight(), myw = $t.outerWidth(); let winw = $(window).width(), winh = $(window).height(); @@ -7712,7 +7728,7 @@ export default function luckysheetHandler() { } }); - //筛选事件处理 + //filter event handler let hidefilersubmenu = null; $("#luckysheetfilter").click(createFilter); @@ -9708,6 +9724,9 @@ export default function luckysheetHandler() { } } + + const locale_fontjson = locale().fontjson; + if(txtdata.indexOf("luckysheet_copy_action_table") >- 1 && Store.luckysheet_copy_save["copyRange"] != null && Store.luckysheet_copy_save["copyRange"].length > 0 && isEqual){ //剪切板内容 和 luckysheet本身复制的内容 一致 if(Store.luckysheet_paste_iscut){ @@ -9785,7 +9804,7 @@ export default function luckysheetHandler() { let ffs = ff.split(","); for(let i = 0; i < ffs.length; i++){ let fa = $.trim(ffs[i].toLowerCase()); - fa = menuButton.fontjson[fa]; + fa = locale_fontjson[fa]; if(fa == null){ cell.ff = 0; } diff --git a/src/controllers/menuButton.js b/src/controllers/menuButton.js index c6dbd43..fdd8eba 100644 --- a/src/controllers/menuButton.js +++ b/src/controllers/menuButton.js @@ -600,10 +600,10 @@ const menuButton = { if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ - alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + alert(locale_alternatingColors.errorInfo); } else{ - tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + tooltip.info(locale_alternatingColors.errorInfo, ""); } return; } @@ -653,8 +653,14 @@ const menuButton = { if($menuButton.length == 0){ let subid = "cell-color-self"; - let coloritem = replaceHtml(_this.coloritem, { "class": "luckysheet-icon-alternateformat", "name": "交替颜色..." }); - let menu = replaceHtml(_this.color, { "id": menuButtonId, "coloritem": coloritem, "colorself": subid, "sub": "" }); + + const _locale = locale(); + const locale_toolbar = _locale.toolbar; + const locale_button = _locale.button; + const locale_alternatingColors = _locale.alternatingColors; + + let coloritem = replaceHtml(_this.coloritem, { "class": "luckysheet-icon-alternateformat", "name": locale_toolbar.alternatingColors+"..." }); + let menu = replaceHtml(_this.color, { "id": menuButtonId, "coloritem": coloritem, "colorself": subid, "sub": "","resetColor":locale_toolbar.resetColor }); $("body").append(menu); $menuButton = $("#" + menuButtonId); @@ -672,13 +678,13 @@ const menuButton = { maxPaletteSize: 8, maxSelectionSize: 8, color: "#fff", - cancelText: "取消", - chooseText: "确定颜色", - togglePaletteMoreText: "自定义", - togglePaletteLessText: "收起", + cancelText: locale_button.cancel, + chooseText: locale_button.confirm, + togglePaletteMoreText: locale_toolbar.customColor, + togglePaletteLessText: locale_toolbar.collapse, togglePaletteOnly: true, - clearText: "清除颜色选择", - noColorSelectedText: "没有颜色被选择", + clearText: locale_toolbar.clearText, + noColorSelectedText: locale_toolbar.noColorSelectedText, localStorageKey: "spectrum.bgcolor" + server.gridKey, palette: [ ["#000", "#444", "#666", "#999", "#ccc", "#eee", "#f3f3f3", "#fff"], @@ -732,10 +738,10 @@ const menuButton = { if(Store.luckysheet_select_save.length > 1){ if(isEditMode()){ - alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + alert(locale_alternatingColors.errorInfo); } else{ - tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + tooltip.info(locale_alternatingColors.errorInfo, ""); } return; } @@ -904,23 +910,26 @@ const menuButton = { if($menuButton.length == 0){ let canvasH = 10, canvasW = 120; - + const _locale = locale(); + const locale_border = _locale.border; + const locale_toolbar = _locale.toolbar; + const locale_button = _locale.button; let itemdata = [ - {"text": "上框线", "value": "border-top", "example": '
'}, - {"text": "下框线", "value":"border-bottom", "example": '
'}, - {"text": "左框线", "value":"border-left", "example": '
'}, - {"text": "右框线", "value":"border-right", "example": '
'}, + {"text": locale_border.borderTop, "value": "border-top", "example": '
'}, + {"text": locale_border.borderBottom, "value":"border-bottom", "example": '
'}, + {"text": locale_border.borderLeft, "value":"border-left", "example": '
'}, + {"text": locale_border.borderRight, "value":"border-right", "example": '
'}, {"text": "", "value": "split", "example":""}, - {"text": "无", "value": "border-none", "example": '
'}, - {"text": "所有", "value": "border-all", "example": '
'}, - {"text": "外侧", "value": "border-outside", "example": '
'}, + {"text": locale_border.borderNone, "value": "border-none", "example": '
'}, + {"text": locale_border.borderAll, "value": "border-all", "example": '
'}, + {"text": locale_border.borderOutside, "value": "border-outside", "example": '
'}, {"text": "", "value": "split", "example": ""}, - {"text": "内侧", "value": "border-inside", "example": '
'}, - {"text": "内侧横线", "value": "border-horizontal", "example": '
'}, - {"text": "内侧竖线", "value": "border-vertical", "example": '
'}, + {"text": locale_border.borderInside, "value": "border-inside", "example": '
'}, + {"text": locale_border.borderHorizontal, "value": "border-horizontal", "example": '
'}, + {"text": locale_border.borderVertical, "value": "border-vertical", "example": '
'}, {"text": "", "value": "split", "example": ""}, - {"text": "边框颜色", "value":"borderColor", "example":"more"}, - {"text": "边框粗细", "value":"borderSize", "example":"more"} + {"text": ""+ locale_border.borderColor +"", "value":"borderColor", "example":"more"}, + {"text": ""+ locale_border.borderSize +"", "value":"borderSize", "example":"more"} ]; let itemset = _this.createButtonMenu(itemdata); @@ -928,7 +937,7 @@ const menuButton = { let menu = replaceHtml(_this.menu, { "id": "border-menu", "item": itemset, "subclass": "", "sub": "" }); let subitemdata = [ - {"text": "无边框", "value": "0", "example": ""}, + {"text": locale_border.borderNone, "value": "0", "example": ""}, {"text": "", "value": "1", "example": ""}, {"text": "", "value": "2", "example": ""}, {"text": "", "value": "3", "example": ""}, @@ -948,10 +957,10 @@ const menuButton = { let submenu = replaceHtml(_this.menu, { "id": "borderSize", "item": subitemset, "subclass": "luckysheet-menuButton-sub" }); let submenuid = "luckysheet-icon-borderSize-menuButton"; let subcolormenuid = "luckysheet-icon-borderColor-menuButton"; - let colormenu = replaceHtml(_this.color, { "id": subcolormenuid, "coloritem": "", "colorself": "", "sub": "luckysheet-menuButton-sub" }); + let colormenu = replaceHtml(_this.color, { "id": subcolormenuid, "coloritem": "", "colorself": "", "sub": "luckysheet-menuButton-sub",resetColor:locale_toolbar.resetColor }); $("body").append(menu + colormenu + submenu); - $menuButton = $("#" + menuButtonId).width(150); + $menuButton = $("#" + menuButtonId).width(160); _this.focus($menuButton, "border-all"); $("#" + submenuid + " canvas").each(function(i){ @@ -1066,13 +1075,13 @@ const menuButton = { maxPaletteSize: 8, maxSelectionSize: 8, color: "#000", - cancelText: "取消", - chooseText: "确定颜色", - togglePaletteMoreText: "自定义", - togglePaletteLessText: "收起", + cancelText: locale_button.cancel, + chooseText: locale_button.confirm, + togglePaletteMoreText: locale_toolbar.customColor, + togglePaletteLessText: locale_toolbar.collapse, togglePaletteOnly: true, - clearText: "清除颜色选择", - noColorSelectedText: "没有颜色被选择", + clearText: locale_toolbar.clearText, + noColorSelectedText:locale_toolbar.noColorSelectedText, localStorageKey: "spectrum.bordercolor" + server.gridKey, palette: [ ["#000", "#444", "#666", "#999", "#ccc", "#eee", "#f3f3f3", "#fff"], @@ -1166,11 +1175,14 @@ const menuButton = { let $menuButton = $("#" + menuButtonId); if($menuButton.length == 0){ + const _locale = locale(); + const locale_merge = _locale.merge; + let itemdata = [ - {"text": "全部合并", "value": "mergeAll", "example": ""}, - {"text": "垂直合并", "value": "mergeV", "example": ""}, - {"text": "水平合并", "value": "mergeH", "example": ""}, - {"text": "取消合并", "value": "mergeCancel", "example": ""} + {"text": locale_merge.mergeAll, "value": "mergeAll", "example": ""}, + {"text": locale_merge.mergeV, "value": "mergeV", "example": ""}, + {"text": locale_merge.mergeH, "value": "mergeH", "example": ""}, + {"text": locale_merge.mergeCancel, "value": "mergeCancel", "example": ""} ]; let itemset = _this.createButtonMenu(itemdata); @@ -1187,10 +1199,10 @@ const menuButton = { if(selectIsOverlap()){ if(isEditMode()){ - alert("不能合并重叠区域"); + alert(locale_merge.overlappingError); } else{ - tooltip.info("不能合并重叠区域", ""); + tooltip.info(locale_merge.overlappingError, ""); } return; } @@ -1213,10 +1225,10 @@ const menuButton = { if(has_PartMC){ if(isEditMode()){ - alert("无法对部分合并单元格执行此操作"); + alert(locale_merge.partiallyError); } else{ - tooltip.info("无法对部分合并单元格执行此操作", ""); + tooltip.info(locale_merge.partiallyError, ""); } return; } @@ -1256,10 +1268,12 @@ const menuButton = { let $menuButton = $("#" + menuButtonId); if($menuButton.length == 0){ + const _locale = locale(); + const locale_align = _locale.align; let itemdata = [ - {"text": "左对齐", "value": "left", "example": '
'}, - {"text": "中间对齐", "value": "center", "example": '
'}, - {"text": "右对齐", "value": "right", "example": '
'} + {"text": locale_align.left, "value": "left", "example": '
'}, + {"text": locale_align.center, "value": "center", "example": '
'}, + {"text": locale_align.right, "value": "right", "example": '
'} ]; let itemset = _this.createButtonMenu(itemdata); @@ -1309,12 +1323,13 @@ const menuButton = { $("#luckysheet-icon-valign-menu").click(function(){ let menuButtonId = $(this).attr("id") + "-menuButton"; let $menuButton = $("#" + menuButtonId); - + const _locale = locale(); + const locale_align = _locale.align; if($menuButton.length == 0){ let itemdata = [ - {"text": "顶部对齐", "value": "top", "example": '
'}, - {"text": "居中对齐", "value": "middle", "example": '
'}, - {"text": "底部对齐", "value": "bottom", "example": '
'} + {"text": locale_align.top, "value": "top", "example": '
'}, + {"text": locale_align.middle, "value": "middle", "example": '
'}, + {"text": locale_align.bottom, "value": "bottom", "example": '
'} ]; let itemset = _this.createButtonMenu(itemdata); @@ -1356,10 +1371,12 @@ const menuButton = { let $menuButton = $("#" + menuButtonId); if($menuButton.length == 0){ + const _locale = locale(); + const locale_textWrap = _locale.textWrap; let itemdata = [ - {"text": "溢出", "value": "overflow", "example": '
'}, - {"text": "自动换行", "value": "wrap", "example": '
'}, - {"text": "截断", "value": "clip", "example": '
'} + {"text": locale_textWrap.overflow, "value": "overflow", "example": '
'}, + {"text": locale_textWrap.wrap, "value": "wrap", "example": '
'}, + {"text": locale_textWrap.clip, "value": "clip", "example": '
'} ]; let itemset = _this.createButtonMenu(itemdata); @@ -1401,13 +1418,15 @@ const menuButton = { let $menuButton = $("#" + menuButtonId); if($menuButton.length == 0){ + const _locale = locale(); + const locale_rotation = _locale.rotation; let itemdata = [ - {"text": "无旋转", "value": "none", "example": '
'}, - {"text": "向上倾斜", "value": "angleup", "example": '
'}, - {"text": "向下倾斜", "value": "angledown", "example": '
'}, - {"text": "竖排文字", "value": "vertical", "example": '
'}, - {"text": "向上90°", "value": "rotation-up", "example": '
'}, - {"text": "向下90°", "value": "rotation-down", "example": '
'}, + {"text": locale_rotation.none, "value": "none", "example": '
'}, + {"text": locale_rotation.angleup, "value": "angleup", "example": '
'}, + {"text": locale_rotation.angledown, "value": "angledown", "example": '
'}, + {"text": locale_rotation.vertical, "value": "vertical", "example": '
'}, + {"text": locale_rotation.rotationUp, "value": "rotation-up", "example": '
'}, + {"text": locale_rotation.rotationDown, "value": "rotation-down", "example": '
'}, ]; let itemset = _this.createButtonMenu(itemdata); @@ -1449,16 +1468,18 @@ const menuButton = { let $menuButton = $("#" + menuButtonId); if($menuButton.length == 0){ + const _locale = locale(); + const locale_freezen = _locale.freezen; let itemdata = [ - {"text": "冻结首行", "value": "freezenRow", "example": ''}, - {"text": "冻结首列", "value": "freezenColumn", "example": ''}, - {"text": "冻结行列", "value": "freezenRC", "example": ''}, + {"text": locale_freezen.freezenRow, "value": "freezenRow", "example": ''}, + {"text": locale_freezen.freezenColumn, "value": "freezenColumn", "example": ''}, + {"text": locale_freezen.freezenRC, "value": "freezenRC", "example": ''}, {"text": "", "value": "split", "example": ""}, - {"text": "冻结行到选区", "value": "freezenRowRange", "example": ''}, - {"text": "冻结列到选区", "value": "freezenColumnRange", "example": ''}, - {"text": "冻结行列到选区", "value": "freezenRCRange", "example": ''}, + {"text": locale_freezen.freezenRowRange, "value": "freezenRowRange", "example": ''}, + {"text": locale_freezen.freezenColumnRange, "value": "freezenColumnRange", "example": ''}, + {"text": locale_freezen.freezenRCRange, "value": "freezenRCRange", "example": ''}, {"text": "", "value": "split", "example": ""}, - {"text": "取消冻结", "value": "freezenCancel", "example": ''} + {"text": locale_freezen.freezenCancel, "value": "freezenCancel", "example": ''} ]; let itemset = _this.createButtonMenu(itemdata); @@ -1466,7 +1487,7 @@ const menuButton = { let menu = replaceHtml(_this.menu, { "id": "freezen-menu", "item": itemset, "subclass": "", "sub": "" }); $("body").append(menu); - $menuButton = $("#" + menuButtonId).width(130); + $menuButton = $("#" + menuButtonId).width(160); $menuButton.find(".luckysheet-cols-menuitem").click(function(){ $menuButton.hide(); @@ -1544,10 +1565,10 @@ const menuButton = { else if(itemvalue == "freezenRowRange"){ //选区行冻结 if(Store.luckysheet_select_save == null || Store.luckysheet_select_save.length == 0){ if(isEditMode()){ - alert("没有选区"); + alert(locale_freezen.noSeletionError); } else{ - tooltip.info("没有选区", ""); + tooltip.info(locale_freezen.noSeletionError, ""); } return; @@ -1584,10 +1605,10 @@ const menuButton = { else if(itemvalue == "freezenColumnRange"){ //选区列冻结 if(Store.luckysheet_select_save == null || Store.luckysheet_select_save.length == 0){ if(isEditMode()){ - alert("没有选区"); + alert(locale_freezen.noSeletionError); } else{ - tooltip.info("没有选区",""); + tooltip.info(locale_freezen.noSeletionError,""); } return; @@ -1624,10 +1645,10 @@ const menuButton = { else if(itemvalue == "freezenRCRange"){ //选区行列冻结 if(Store.luckysheet_select_save == null || Store.luckysheet_select_save.length == 0){ if(isEditMode()){ - alert("没有选区"); + alert(locale_freezen.noSeletionError); } else{ - tooltip.info("没有选区",""); + tooltip.info(locale_freezen.noSeletionError,""); } return; @@ -1675,7 +1696,7 @@ const menuButton = { luckysheetFreezen.createAssistCanvas(); luckysheetrefreshgrid(); } - else if(itemvalue == "freezenCancel"){ //取消冻结 + else if(itemvalue == "freezenCancel"){ //Cancel freezen if (luckysheetFreezen.freezenverticaldata != null) { luckysheetFreezen.cancelFreezenVertical(); luckysheetFreezen.createAssistCanvas(); @@ -1713,13 +1734,16 @@ const menuButton = { let $menuButton = $("#" + menuButtonId); if($menuButton.length == 0){ + const _locale = locale(); + const locale_sort = _locale.sort; + const locale_filter = _locale.filter; let itemdata = [ - {"text": "升序", "value": "asc", "example": ''}, - {"text": "降序", "value": "desc", "example": ''}, - {"text": "自定义排序...", "value": "diysort", "example": ''}, + {"text": locale_sort.asc, "value": "asc", "example": ''}, + {"text": locale_sort.desc, "value": "desc", "example": ''}, + {"text": locale_sort.custom+"...", "value": "diysort", "example": ''}, {"text": "", "value": "split", "example": ""}, - {"text": "筛选", "value": "filter", "example": ''}, - {"text": "清除筛选", "value": "clearfilter", "example": ''} + {"text": locale_filter.filter, "value": "filter", "example": ''}, + {"text": locale_filter.clearFilter, "value": "clearfilter", "example": ''} ]; let itemset = _this.createButtonMenu(itemdata); @@ -3307,8 +3331,9 @@ const menuButton = { menuButtonFocus: function(d, r, c){ let _this = this; let foucsList = ["bl", "it", "cl", "ff", "ht", "vt", "fs", "tb", "tr"]; - const locale_fontarray = locale().fontarray; - + const _locale = locale(); + const locale_fontarray = _locale.fontarray; + const locale_fontjson = _locale.fontjson; for(let i = 0; i < foucsList.length; i++){ let attr = foucsList[i]; let foucsStatus = _this.checkstatus(d, r, c, attr); @@ -3340,7 +3365,7 @@ const menuButton = { else if(attr == "ff"){ let menuButtonId = "luckysheet-icon-font-family-menuButton"; let $menuButton = $("#" + menuButtonId); - const locale_fontarray = locale().fontarray; + // const locale_fontarray = locale().fontarray; let itemname = locale_fontarray[0], itemvalue = 0; if(foucsStatus != null){ if(isdatatypemulti(foucsStatus)["num"]){ @@ -3348,7 +3373,7 @@ const menuButton = { itemname = locale_fontarray[itemvalue]; } else{ - itemvalue = _this.fontjson[foucsStatus]; + itemvalue = locale_fontjson[foucsStatus]; itemname = locale_fontarray[itemvalue]; } } diff --git a/src/controllers/server.js b/src/controllers/server.js index 9c60c9b..9caa474 100644 --- a/src/controllers/server.js +++ b/src/controllers/server.js @@ -9,6 +9,7 @@ import luckysheetPostil from './postil'; import { getObjType, replaceHtml, getByteLen } from '../utils/util'; import { getSheetIndex } from '../methods/get'; import Store from '../store'; +import locale from '../locale/locale'; const server = { gridKey: null, @@ -322,13 +323,15 @@ const server = { currentSheetItem.append('
'); } } - else if(k == "pivotTable"){ //数据透视表 + else if(k == "pivotTable"){ //PivotTable // luckysheet.pivotTable.changePivotTable(index); } - else if(k == "freezen"){ //冻结行列 + else if(k == "freezen"){ //freezen row and column if(index == Store.currentSheetIndex){ + const _locale = locale(); + const locale_freezen = _locale.freezen; if(file["freezen"].horizontal == null){ - $("#luckysheet-freezen-btn-horizontal").html(' 冻结首行'); + $("#luckysheet-freezen-btn-horizontal").html(' '+locale_freezen.freezenRow); luckysheetFreezen.freezenhorizontaldata = null; $("#luckysheet-freezebar-horizontal").hide(); } @@ -337,7 +340,7 @@ const server = { } if(file["freezen"].vertical == null){ - $("#luckysheet-freezen-btn-vertical").html(' 冻结首列'); + $("#luckysheet-freezen-btn-vertical").html(' '+locale_freezen.freezenColumn); luckysheetFreezen.freezenverticaldata = null; $("#luckysheet-freezebar-vertical").hide(); } diff --git a/src/global/createdom.js b/src/global/createdom.js index 0671487..500decc 100644 --- a/src/global/createdom.js +++ b/src/global/createdom.js @@ -99,8 +99,8 @@ export default function luckysheetcreatedom(colwidth, rowheight, data, menu, tit $("body").append(colsmenuHTML); $("body").append(rightclickHTML); $("body").append(inputHTML); - $("body").append(replaceHtml(filtermenuHTML, { "menuid": "filter" })); - $("body").append(replaceHtml(filtersubmenuHTML, { "menuid": "filter" })); + $("body").append(replaceHtml(filtermenuHTML(), { "menuid": "filter" })); + $("body").append(replaceHtml(filtersubmenuHTML(), { "menuid": "filter" })); $("body").append(sheetconfigHTML); //批注 diff --git a/src/locale/en.js b/src/locale/en.js index 66ea980..778e72d 100644 --- a/src/locale/en.js +++ b/src/locale/en.js @@ -312,6 +312,110 @@ export default { MicrosoftYaHei:"YaHei", }, fontarray: ["Times New Roman","Arial","Tahoma","Verdana"], - fontjson: {"arial":1,"times new roman":0,"tahoma":2,"verdana":3} + fontjson: {"arial":1,"times new roman":0,"tahoma":2,"verdana":3}, + border:{ + borderTop:'borderTop', + borderBottom:'borderBottom', + borderLeft:'borderLeft', + borderRight:'borderRight', + borderNone:'borderNone', + borderAll:'borderAll', + borderOutside:'borderOutside', + borderInside:'borderInside', + borderHorizontal:'borderHorizontal', + borderVertical:'borderVertical', + borderColor:'borderColor', + borderSize:'borderSize', + }, + merge:{ + mergeAll:"Merge all", + mergeV:"Vertically", + mergeH:"Horizentally", + mergeCancel:"Unmerge", + overlappingError:"Cannot merge overlapping areas", + partiallyError:"Cannot perform this operation on partially merged cells", + }, + align:{ + left:"left", + center:"center", + right:"right", + + top:"Top", + middle:"Middle", + bottom:"Bottom", + }, + textWrap:{ + "overflow":"Overflow", + "wrap":"Wrap", + "clip":"Clip", + }, + rotation:{ + "none":"None", + "angleup":"Tilt Up", + "angledown":"Tilt down", + "vertical":"Stack Vertically", + "rotationUp":"Rotate Up", + "rotationDown":"Rotate down" + }, + freezen:{ + default:"Freezen", + freezenRow:"First Row", + freezenColumn:"First column", + freezenRC:"Both", + freezenRowRange:"Freezen row range", + freezenColumnRange:"Freezen column range", + freezenRCRange:"Freezen both range", + freezenCancel:"Cancel", + + noSeletionError:"No Range to be selected", + }, + sort:{ + "asc":"Ascending ", + "desc":"Descending ", + "custom":"Custom sort", + + "hasTitle":"Data has header row", + "sortBy":"Sort by", + "addOthers":"Add another sort column", + "close":"close", + "confirm":"sort", + + "columnOperation":"Column", + "secondaryTitle":"then by", + + "sortRangeTitle":"Sort range from", + "sortRangeTitleTo":"to", + + + "noRangeError":"Cannot perform this operation on multiple selection areas, please select a single range and try again", + "mergeError":"There are merged cells in the selection, this operation cannot be performed!", + + }, + filter:{ + "filter":"create filter", + "clearFilter":"Cancel filter", + + sortByAsc:"Sort A-Z", + sortByDesc:"Sort Z-A", + filterByColor:"Filter by color", + filterByCondition:"Filter by condition", + filterByValues:"Filter by values", + + filiterInputNone:"None", + + filiterInputTip:"Enter filter value", + filiterRangeStartTip:"Value for formula", + filiterRangeEndTip:"Value for formula", + + filterValueByAllBtn:"Check all", + filterValueByClearBtn:"Clear", + filterValueByInverseBtn:"Inverse", + filterValueByTip:"filter By Values", + filterConform:"Confirm", + filterCancel:"Cancel", + clearFilter:"Clear filter", + + + } }; \ No newline at end of file diff --git a/src/locale/zh.js b/src/locale/zh.js index da3e9aa..7cbdbb4 100644 --- a/src/locale/zh.js +++ b/src/locale/zh.js @@ -333,6 +333,102 @@ export default { MicrosoftYaHei:"Microsoft YaHei", }, fontarray: ["微软雅黑","宋体","黑体","楷体","仿宋","新宋体","华文新魏","华文行楷","华文隶书","Arial","Times New Roman","Tahoma","Verdana"], - fontjson: {"微软雅黑":0,"microsoft yahei":0,"宋体":1,"simsun":1,"黑体":2,"simhei":2,"楷体":3,"kaiti":3,"仿宋":4,"fangsong":4,"新宋体":5,"nsimsun":5,"华文新魏":6,"stxinwei":6,"华文行楷":7,"stxingkai":7,"华文隶书":8,"stliti":8,"arial":9,"times new roman":10,"tahoma":11,"verdana":12} + fontjson: {"微软雅黑":0,"microsoft yahei":0,"宋体":1,"simsun":1,"黑体":2,"simhei":2,"楷体":3,"kaiti":3,"仿宋":4,"fangsong":4,"新宋体":5,"nsimsun":5,"华文新魏":6,"stxinwei":6,"华文行楷":7,"stxingkai":7,"华文隶书":8,"stliti":8,"arial":9,"times new roman":10,"tahoma":11,"verdana":12}, + border:{ + borderTop:'上框线', + borderBottom:'下框线', + borderLeft:'左框线', + borderRight:'右框线', + borderNone:'无', + borderAll:'所有', + borderOutside:'外侧', + borderInside:'内侧', + borderHorizontal:'内侧横线', + borderVertical:'内侧竖线', + borderColor:'边框颜色', + borderSize:'边框粗细' + }, + merge:{ + mergeAll:"全部合并", + mergeV:"垂直合并", + mergeH:"水平合并", + mergeCancel:"取消合并", + overlappingError:"不能合并重叠区域", + partiallyError:"无法对部分合并单元格执行此操作", + }, + align:{ + left:"左对齐", + center:"中间对齐", + right:"右对齐", + + top:"顶部对齐", + middle:"居中对齐", + bottom:"底部对齐", + }, + textWrap:{ + "overflow":"溢出", + "wrap":"自动换行", + "clip":"截断", + }, + freezen:{ + default:"冻结首行", + freezenRow:"冻结首行", + freezenColumn:"冻结首列", + freezenRC:"冻结行列", + freezenRowRange:"冻结行到选区", + freezenColumnRange:"冻结列到选区", + freezenRCRange:"冻结行列到选区", + freezenCancel:"取消冻结", + + noSeletionError:"没有选区", + }, + sort:{ + "asc":"升序", + "desc":"降序", + "custom":"自定义排序", + + "hasTitle":"数据具有标题行", + "sortBy":"排序依据", + "addOthers":"添加其他排序列", + "close":"关闭", + "confirm":"排序", + + "columnOperation":"列", + "secondaryTitle":"次要排序", + + "sortRangeTitle":"排序范围从", + "sortRangeTitleTo":"到", + + + "noRangeError":"不能对多重选择区域执行此操作,请选择单个区域,然后再试", + "mergeError":"选区有合并单元格,无法执行此操作!", + + }, + filter:{ + "filter":"筛选", + "clearFilter":"清除筛选", + + sortByAsc:"以A-Z升序排列", + sortByDesc:"以Z-A降序排列", + filterByColor:"按颜色筛选", + filterByCondition:"按条件过滤", + filterByValues:"按值过滤", + + filiterInputNone:"无", + + filiterInputTip:"输入筛选值", + filiterRangeStartTip:"范围开始", + filiterRangeEndTip:"范围结束", + + filterValueByAllBtn:"全选", + filterValueByClearBtn:"清除", + filterValueByInverseBtn:"反选", + filterValueByTip:"按照值进行筛选", + filterConform:"确 认", + filterCancel:"取 消", + clearFilter:"清除筛选", + conditionNone:"无", + + } };