Conversation
Reviewer's Guide by SourceryThis pull request introduces language support, improves data handling, refines the plugin system, and updates the project version for the UniverSheet component. The changes include modifications to the razor component, javascript files, and project file. Sequence diagram for creating UniverSheet with language supportsequenceDiagram
participant BBU as BootstrapBlazor.UniverSheet
participant JS as JavaScript
BBU->>JS: init(id, invoke, options)
JS->>JS: Destructure options (theme, lang, plugins, data)
JS->>JS: Create univerSheet object
JS->>JS: createUniverSheetAsync(univerSheet)
JS->>JS: loadAssets(sheet.lang)
JS->>JS: addScript(language-specific scripts)
JS->>JS: addLink(univer-sheet.bundle.css)
JS->>JS: Create Univer instance with options (theme, locale, locales, plugins)
JS->>JS: createWorkbook(workbookData)
File-Level Changes
Assessment against linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey @ArgoZhang - I've reviewed your changes - here's some feedback:
Overall Comments:
- Consider adding a try-catch block around the dynamic script loading in
loadAssetsto handle potential loading failures. - The javascript code uses a lot of string concatenation, consider using template literals instead.
Here's what I looked at during the review
- 🟡 General issues: 1 issue found
- 🟢 Security: all looks good
- 🟢 Testing: all looks good
- 🟢 Complexity: all looks good
- 🟢 Documentation: all looks good
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| await addScript('./_content/BootstrapBlazor.UniverSheet/univer/js/univerjs.preset-sheets-drawing.umd.min.js'); | ||
| await addScript('./_content/BootstrapBlazor.UniverSheet/univer/js/univerjs.sheets-zen-editor.umd.min.js'); | ||
| await addScript('./_content/BootstrapBlazor.UniverSheet/univer/js/univerjs.preset-sheets-data-validation.umd.min.js'); | ||
| const loadAssets = async lang => { |
There was a problem hiding this comment.
nitpick: Temporary debug console log remains in production code.
If the console.log is not needed for production diagnostics, consider removing it to maintain clean logging output.
| @@ -0,0 +1,75 @@ | |||
| // @univerjs/ui/locale/en-US | |||
| (function(e,t){typeof exports=="object"&&typeof module<"u"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverUiEnUS=t())})(this,function(){"use strict";return{ribbon:{start:"Start",insert:"Insert",formulas:"Formulas",data:"Data",view:"View",others:"Others",more:"More"},fontFamily:{TimesNewRoman:"Times New Roman",Arial:"Arial",Tahoma:"Tahoma",Verdana:"Verdana",MicrosoftYaHei:"Microsoft YaHei",SimSun:"SimSun",SimHei:"SimHei",Kaiti:"Kaiti",FangSong:"FangSong",NSimSun:"NSimSun",STXinwei:"STXinwei",STXingkai:"STXingkai",STLiti:"STLiti",HanaleiFill:"HanaleiFill",Anton:"Anton",Pacifico:"Pacifico"},"shortcut-panel":{title:"Shortcuts"},shortcut:{undo:"Undo",redo:"Redo",cut:"Cut",copy:"Copy",paste:"Paste","shortcut-panel":"Toggle Shortcut Panel"},"common-edit":"Common Editing Shortcuts","toggle-shortcut-panel":"Toggle Shortcut Panel",clipboard:{authentication:{title:"Permission Denied",content:"Please allow Univer to access your clipboard."}},textEditor:{formulaError:"Please enter a valid formula, such as =SUM(A1)",rangeError:"Please enter a valid range, such as A1:B10"},rangeSelector:{title:"Select a data range",addAnotherRange:"Add range",buttonTooltip:"Select data range",placeHolder:"Select range or enter.",confirm:"Confirm",cancel:"Cancel"},"global-shortcut":"Global Shortcut","zoom-slider":{resetTo:"Reset to"}}}); | |||
There was a problem hiding this comment.
issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)
Explanation
Reassigning parameters can lead to unexpected behavior, especially when accessing the arguments object. It can also cause optimization issues, especially in V8.From the Airbnb JavaScript Style Guide
|
|
||
|
|
||
| // @univerjs/docs-ui/locale/en-US | ||
| (function(e,t){typeof exports=="object"&&typeof module<"u"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverDocsUiEnUS=t())})(this,function(){"use strict";return{toolbar:{undo:"Undo",redo:"Redo",font:"Font",fontSize:"Font size",bold:"Bold",italic:"Italic",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript",underline:"Underline",textColor:{main:"Text color",right:"Choose color"},fillColor:{main:"Text Background color",right:"Choose color"},table:{main:"Table",insert:"Insert Table",colCount:"Column count",rowCount:"Row count"},resetColor:"Reset",order:"Ordered list",unorder:"Unordered list",checklist:"Task list",documentFlavor:"Modern Mode",alignLeft:"Align Left",alignCenter:"Align Center",alignRight:"Align Right",alignJustify:"Justify",headerFooter:"Header & Footer"},table:{insert:"Insert",insertRowAbove:"Insert row above",insertRowBelow:"Insert row below",insertColumnLeft:"Insert column left",insertColumnRight:"Insert column right",delete:"Table delete",deleteRows:"Delete row",deleteColumns:"Delete column",deleteTable:"Delete table"},headerFooter:{header:"Header",footer:"Footer",panel:"Header & Footer Settings",firstPageCheckBox:"Different first page",oddEvenCheckBox:"Different odd and even pages",headerTopMargin:"Header top margin(px)",footerBottomMargin:"Footer bottom margin(px)",closeHeaderFooter:"Close header & footer",disableText:"Header & footer settings are disabled"},doc:{menu:{paragraphSetting:"Paragraph Settings"},slider:{paragraphSetting:"Paragraph Settings"},paragraphSetting:{alignment:"Alignment",indentation:"Indentation",left:"Left",right:"Right",firstLine:"First Line",hanging:"Hanging",spacing:"Spacing",before:"Before",after:"After",lineSpace:"Line Space",multiSpace:"Multi Space",fixedValue:"Fixed Value(px)"}}}}); |
There was a problem hiding this comment.
issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)
Explanation
Reassigning parameters can lead to unexpected behavior, especially when accessing the arguments object. It can also cause optimization issues, especially in V8.From the Airbnb JavaScript Style Guide
|
|
||
|
|
||
| // @univerjs/sheets/locale/en-US | ||
| (function(e,t){typeof exports=="object"&&typeof module<"u"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverSheetsEnUS=t())})(this,function(){"use strict";return{sheets:{tabs:{sheetCopy:"(Copy{0})",sheet:"Sheet"},info:{overlappingSelections:"Cannot use that command on overlapping selections",acrossMergedCell:"Across a merged cell",partOfCell:"Only part of a merged cell is selected",hideSheet:"No visible sheet after you hide this"}}}}); |
There was a problem hiding this comment.
issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)
Explanation
Reassigning parameters can lead to unexpected behavior, especially when accessing the arguments object. It can also cause optimization issues, especially in V8.From the Airbnb JavaScript Style Guide
|
|
||
|
|
||
| // @univerjs/sheets-ui/locale/en-US | ||
| (function(e,t){typeof exports=="object"&&typeof module<"u"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverSheetsUiEnUS=t())})(this,function(){"use strict";return{spreadsheetLabel:"Spreadsheet",spreadsheetRightLabel:"more Sheets",toolbar:{undo:"Undo",redo:"Redo",formatPainter:"Paint format",font:"Font",fontSize:"Font size",bold:"Bold",italic:"Italic",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript",underline:"Underline",textColor:{main:"Text color",right:"Choose color"},resetColor:"Reset",fillColor:{main:"Fill color",right:"Choose color"},border:{main:"Border",right:"Border style"},mergeCell:{main:"Merge cells",right:"Choose merge type"},horizontalAlignMode:{main:"Horizontal align",right:"Alignment"},verticalAlignMode:{main:"Vertical align",right:"Alignment"},textWrapMode:{main:"Text wrap",right:"Text wrap mode"},textRotateMode:{main:"Text rotate",right:"Text rotate mode"},more:"More",toggleGridlines:"Toggle Gridlines"},align:{left:"left",center:"center",right:"right",top:"top",middle:"middle",bottom:"bottom"},button:{confirm:"OK",cancel:"Cancel",close:"Close",update:"Update",delete:"Delete",insert:"Insert",prevPage:"Previous",nextPage:"Next",total:"total:"},punctuation:{tab:"Tab",semicolon:"semicolond",comma:"comma",space:"space"},colorPicker:{collapse:"Collapse",customColor:"CUSTOM",change:"Change",confirmColor:"OK",cancelColor:"Cancel"},borderLine:{borderTop:"borderTop",borderBottom:"borderBottom",borderLeft:"borderLeft",borderRight:"borderRight",borderNone:"borderNone",borderAll:"borderAll",borderOutside:"borderOutside",borderInside:"borderInside",borderHorizontal:"borderHorizontal",borderVertical:"borderVertical",borderColor:"borderColor",borderSize:"borderSize",borderType:"borderType"},merge:{all:"Merge all",vertical:"Vertical merge",horizontal:"Horizontal merge",cancel:"Cancel merge",overlappingError:"Cannot merge overlapping areas",partiallyError:"Cannot perform this operation on partially merged cells",confirm:{title:"Continue merging would only keep the upper-left cell value, discard other values. Are you sure to continue?",cancel:"Cancel merging",confirm:"Continue merging",waring:"Waring",dismantleMergeCellWaring:"This will cause some merged cells to be split. Do you want to continue?"}},filter:{confirm:{error:"There was a problem",notAllowedToInsertRange:"Not allowed to move cells here until filter is cleared"}},textWrap:{overflow:"Overflow",wrap:"Wrap",clip:"Clip"},textRotate:{none:"None",angleUp:"Tilt Up",angleDown:"Tilt Down",vertical:"Stack Vertically",rotationUp:"Rotate Up",rotationDown:"Rotate Down"},sheetConfig:{delete:"Delete",copy:"Copy",rename:"Rename",changeColor:"Change color",hide:"Hide",unhide:"Unhide",moveLeft:"Move left",moveRight:"Move right",resetColor:"Reset color",cancelText:"Cancel",chooseText:"Confirm color",tipNameRepeat:"The name of the tab page cannot be repeated! Please revise",noMoreSheet:"The workbook contains at least one visual worksheet. To delete the selected worksheet, please insert a new worksheet or show a hidden worksheet.",confirmDelete:"Are you sure to delete",redoDelete:"Can be undo by Ctrl+Z",noHide:"Can't hide, at least keep one sheet tag",chartEditNoOpt:"This operation is not allowed in chart editing mode!",sheetNameErrorTitle:"There was a problem",sheetNameSpecCharError:"The name cannot exceed 31 characters, cannot start or end with ', and cannot contain: [ ] : \\ ? * /",sheetNameCannotIsEmptyError:"The sheet name cannot be empty.",sheetNameAlreadyExistsError:"The sheet name already exists. Please enter another name.",deleteSheet:"Delete worksheet",deleteSheetContent:"Confirm to delete this worksheet. It will not be retrieved after deletion. Are you sure you want to delete it?",addProtectSheet:"Protect Worksheet",removeProtectSheet:"Unprotect Worksheet",changeSheetPermission:"Change Worksheet Permissions",viewAllProtectArea:"View All Protection Ranges"},rightClick:{copy:"Copy",cut:"Cut",paste:"Paste",pasteSpecial:"Paste Special",pasteValue:"Paste Value",pasteFormat:"Paste Format",pasteColWidth:"Paste Column Width",pasteBesidesBorder:"Paste Besides Border Styles",insert:"Insert",insertRow:"Insert Row",insertRowBefore:"Insert Row Before",insertRowsAfter:"Insert",insertRowsAbove:"Insert",insertRowsAfterSuffix:"rows after",insertRowsAboveSuffix:"rows above",insertColumn:"Insert Column",insertColumnBefore:"Insert Column Before",insertColsLeft:"Insert",insertColsRight:"Insert",insertColsLeftSuffix:"cols left",insertColsRightSuffix:"cols right",delete:"Delete",deleteCell:"Delete Cell",insertCell:"Insert Cell",deleteSelected:"Delete Selected ",hide:"Hide",hideSelected:"Hide Selected ",showHide:"Show Hidden",toTopAdd:"Towards Top Add",toBottomAdd:"Towards Bottom Add",toLeftAdd:"Towards Left Add",toRightAdd:"Towards Right Add",deleteSelectedRow:"Delete Selected row",deleteSelectedColumn:"Delete Selected column",hideSelectedRow:"Hide Selected Row",showHideRow:"Show Selected Row",rowHeight:"Row Height",hideSelectedColumn:"Hide Selected Column",showHideColumn:"Show Hide Column",columnWidth:"Column Width",moveLeft:"Move Left",moveUp:"Move up",moveRight:"Move Right",moveDown:"Move Down",add:"Add",row:"Row",column:"Column",confirm:"Confirm",clearSelection:"Clear",clearContent:"Clear Contents",clearFormat:"Clear Formats",clearAll:"Clear All",root:"Root",log:"Log",delete0:"Delete 0 values at both ends",removeDuplicate:"Remove duplicate values",byRow:"By row",byCol:"By column",generateNewMatrix:"Generate new matrix",fitContent:"Fit for data",freeze:"Freeze",freezeCol:"Freeze to this column",freezeRow:"Freeze to this row",cancelFreeze:"Cancel freeze",deleteAllRowsAlert:"You can't delete all the rows on the sheet",deleteAllColumnsAlert:"You can't delete all the columns on the sheet",hideAllRowsAlert:"You can't hide all the rows on the sheet",hideAllColumnsAlert:"You can't hide all the columns on the sheet",protectRange:"Protect Rows And Columns",editProtectRange:"Set Protection Range",removeProtectRange:"Remove Protection Range",turnOnProtectRange:"Add Protection Range",viewAllProtectArea:"View All Protection Ranges"},info:{tooltip:"Tooltip",error:"Error",notChangeMerge:"You cannot make partial changes to the merged cells",detailUpdate:"New opened",detailSave:"Local cache restored",row:"",column:"",loading:"Loading...",copy:"Copy",return:"Exit",rename:"Rename",tips:"Rename",noName:"Untitled spreadsheet",wait:"waiting for update",add:"Add",addLast:"more rows at bottom",backTop:"Back to the top",pageInfo:"Total ${total}, ${totalPage} page, current ${currentPage}",nextPage:"Next",tipInputNumber:"Please enter the number",tipInputNumberLimit:"The increase range is limited to 1-100",tipRowHeightLimit:"Row height must be between 0 ~ 545",tipColumnWidthLimit:"The column width must be between 0 ~ 2038",pageInfoFull:"Total ${total}, ${totalPage} page, All data displayed",problem:"There was a problem",forceStringInfo:"Number stored as text"},clipboard:{paste:{exceedMaxCells:"The number of cells pasted exceeds the maximum number of cells",overlappingMergedCells:"The paste area overlaps with merged cells"},shortCutNotify:{title:"Kindly paste using keyboard shortcuts.",useShortCutInstead:"Detected Excel content. Use keyboard shortcut to paste."}},statusbar:{sum:"Sum",average:"Average",min:"Min",max:"Max",count:"Numerical Count",countA:"Count",clickToCopy:"Click to Copy",copied:"Copied"},autoFill:{copy:"Copy Cell",series:"Fill Series",formatOnly:"Format Only",noFormat:"No Format"},rangeSelector:{placeholder:"Select range or input value",tooltip:"Select range"},shortcut:{sheet:{"zoom-in":"Zoom in","zoom-out":"Zoom out","reset-zoom":"Reset zoom level","select-below-cell":"Select the cell below","select-up-cell":"Select the cell above","select-left-cell":"Select the left cell","select-right-cell":"Select the right cell","select-next-cell":"Select the next cell","select-previous-cell":"Select the previous cell","select-up-value-cell":"Select the cell above that has value","select-below-value-cell":"Select the cell below that has value","select-left-value-cell":"Select the cell left that has value","select-right-value-cell":"Select the cell right that has value","expand-selection-down":"Expand selection down","expand-selection-up":"Expand selection up","expand-selection-left":"Expand selection left","expand-selection-right":"Expand selection right","expand-selection-to-left-gap":"Expand selection to the left gap","expand-selection-to-below-gap":"Expand selection to the below gap","expand-selection-to-right-gap":"Expand selection to the right gap","expand-selection-to-up-gap":"Expand selection to the up gap","select-all":"Select all","toggle-editing":"Toggle editing","delete-and-start-editing":"Clear and start editing","abort-editing":"Abort editing","break-line":"Break line","set-bold":"Toggle bold","start-editing":"Start Editing (Selection into the Editor)","set-italic":"Toggle italic","set-underline":"Toggle underline","set-strike-through":"Toggle strike through"}},"sheet-view":"Sheet View","sheet-edit":"Sheet Edit",definedName:{managerTitle:"Manager named",managerDescription:"Create a defined name by selecting cells or formulas, and entering the desired name into the text box.",addButton:"Add a defined name",featureTitle:"Defined names",ratioRange:"Range",ratioFormula:"Formula",confirm:"Confirm",cancel:"Cancel",scopeWorkbook:"Workbook",inputNamePlaceholder:"Please enter a name(No space allowed)",inputCommentPlaceholder:"Please enter a comment",inputRangePlaceholder:"Please input range(No space allowed)",inputFormulaPlaceholder:"Please input a formula(No space allowed)",nameEmpty:"Name cannot be empty",nameDuplicate:"Name already exists",formulaOrRefStringEmpty:"Formula or reference string cannot be empty",formulaOrRefStringInvalid:"Invalid formula or reference string",defaultName:"DefinedName",updateButton:"Update",deleteButton:"Delete",deleteConfirmText:"Are you sure you want to delete this defined name?",nameConflict:"The name conflicts with the function name",nameInvalid:"The name is invalid",nameSheetConflict:"The name conflicts with the sheet name"},uploadLoading:{loading:"Loading..., remaining",error:"Error"},permission:{toolbarMenu:"Protection",panel:{title:"Protect Rows and Columns",name:"Name",protectedRange:"Protected Range",permissionDirection:"Permission Description",permissionDirectionPlaceholder:"Enter permission description",editPermission:"Edit Permissions",onlyICanEdit:"Only I can edit",designedUserCanEdit:"Specified users can edit",viewPermission:"View Permissions",othersCanView:"Others can view",noOneElseCanView:"No one else can view",designedPerson:"Specified persons",addPerson:"Add person",canEdit:"Can edit",canView:"Can view",delete:"Delete",currentSheet:"Current sheet",allSheet:"All sheets",edit:"Edit",Print:"Print",Comment:"Comment",Copy:"Copy",SetCellStyle:"Set cell style",SetCellValue:"Set cell value",SetHyperLink:"Set hyperlink",Sort:"Sort",Filter:"Filter",PivotTable:"Pivot table",FloatImage:"Float image",RowHeightColWidth:"Row height and column width",RowHeightColWidthReadonly:"Read-only row height and column width",FilterReadonly:"Read-only filter",nameError:"Name cannot be empty",created:"Created",iCanEdit:"I can edit",iCanNotEdit:"I can't edit",iCanView:"I can view",iCanNotView:"I can't view",emptyRangeError:"Range cannot be empty",rangeOverlapError:"Range cannot overlap",rangeOverlapOverPermissionError:"Range cannot overlap with the range that has the same permission",InsertHyperlink:"Insert hyperlink",SetRowStyle:"Set row style",SetColumnStyle:"Set column style",InsertColumn:"Insert column",InsertRow:"Insert row",DeleteRow:"Delete row",DeleteColumn:"Delete column",EditExtraObject:"Edit extra object"},dialog:{allowUserToEdit:"Allow user to edit",allowedPermissionType:"Allowed permission types",setCellValue:"Set cell value",setCellStyle:"Set cell style",copy:"Copy",alert:"Alert",search:"Search",alertContent:"This range has been protected and no editing permissions are currently available. If you need to edit, please contact the creator.",userEmpty:"no designated person , Share link to invite specific people.",listEmpty:"You haven't set up any ranges or sheets as protected.",commonErr:"The range is protected, and you do not have permission for this operation. To edit, please contact the creator.",editErr:"The range is protected, and you do not have edit permission. To edit, please contact the creator.",pasteErr:"The range is protected, and you do not have paste permission. To paste, please contact the creator.",setStyleErr:"The range is protected, and you do not have permission to set styles. To set styles, please contact the creator.",copyErr:"The range is protected, and you do not have copy permission. To copy, please contact the creator.",workbookCopyErr:"The workbook is protected, and you do not have permission to copy. To copy, please contact the creator.",setRowColStyleErr:"The range is protected, and you do not have permission to set row and column styles. To set row and column styles, please contact the creator.",moveRowColErr:"The range is protected, and you do not have permission to move rows and columns. To move rows and columns, please contact the creator.",moveRangeErr:"The range is protected, and you do not have permission to move the selection. To move the selection, please contact the creator.",autoFillErr:"The range is protected, and you do not have permission for auto-fill. To use auto-fill, please contact the creator.",filterErr:"The range is protected, and you do not have filtering permission. To filter, please contact the creator.",operatorSheetErr:"The worksheet is protected, and you do not have permission to operate the worksheet. To operate the worksheet, please contact the creator.",insertOrDeleteMoveRangeErr:"The inserted or deleted range intersects with the protected range, and this operation is not supported for now.",printErr:"The worksheet is protected, and you do not have permission to print. To print, please contact the creator.",formulaErr:"The range or the referenced range is protected, and you do not have edit permission. To edit, please contact the creator.",hyperLinkErr:"The range is protected, and you do not have permission to set hyperlinks. To set hyperlinks, please contact the creator."},button:{confirm:"Confirm",cancel:"Cancel",addNewPermission:"Add new permission"}}}}); |
There was a problem hiding this comment.
issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)
Explanation
Reassigning parameters can lead to unexpected behavior, especially when accessing the arguments object. It can also cause optimization issues, especially in V8.From the Airbnb JavaScript Style Guide
| @@ -0,0 +1,75 @@ | |||
| // @univerjs/ui/locale/ru-RU | |||
| (function(i,e){typeof exports=="object"&&typeof module<"u"?module.exports=e():typeof define=="function"&&define.amd?define(e):(i=typeof globalThis<"u"?globalThis:i||self,i.UniverUiRuRU=e())})(this,function(){"use strict";return{ribbon:{start:"Начало",insert:"Вставка",formulas:"Формулы",data:"Данные",view:"Вид",others:"Другие",more:"Больше"},fontFamily:{TimesNewRoman:"Times New Roman",Arial:"Arial",Tahoma:"Tahoma",Verdana:"Verdana",MicrosoftYaHei:"Microsoft YaHei",SimSun:"SimSun",SimHei:"SimHei",Kaiti:"Kaiti",FangSong:"FangSong",NSimSun:"NSimSun",STXinwei:"STXinwei",STXingkai:"STXingkai",STLiti:"STLiti",HanaleiFill:"HanaleiFill",Anton:"Anton",Pacifico:"Pacifico"},"shortcut-panel":{title:"Ярлыки"},shortcut:{undo:"Отменить",redo:"Повторить",cut:"Вырезать",copy:"Копировать",paste:"Вставить","shortcut-panel":"Переключить панель ярлыков"},"common-edit":"Общие команды редактирования","toggle-shortcut-panel":"Переключить панель ярлыков",clipboard:{authentication:{title:"Доступ запрещен",content:"Пожалуйста, разрешите Univer доступ к вашему буферу обмена."}},textEditor:{formulaError:"Пожалуйста, введите корректную формулу, например =SUM(A1)",rangeError:"Пожалуйста, введите корректный диапазон, например A1:B10"},rangeSelector:{title:"Выберите диапазон данных",addAnotherRange:"Добавить диапазон",buttonTooltip:"Выбрать диапазон данных",placeHolder:"Выберите диапазон или введите.",confirm:"Подтвердить",cancel:"Отменить"},"global-shortcut":"Глобальные ярлыки","zoom-slider":{resetTo:"Сбросить до"}}}); | |||
There was a problem hiding this comment.
issue (code-quality): Don't reassign parameter - i (dont-reassign-parameters)
Explanation
Reassigning parameters can lead to unexpected behavior, especially when accessing the arguments object. It can also cause optimization issues, especially in V8.From the Airbnb JavaScript Style Guide
|
|
||
|
|
||
| // @univerjs/docs-ui/locale/ru-RU | ||
| (function(e,t){typeof exports=="object"&&typeof module<"u"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverDocsUiRuRU=t())})(this,function(){"use strict";return{toolbar:{undo:"Отменить",redo:"Повторить",font:"Шрифт",fontSize:"Размер шрифта",bold:"Полужирный",italic:"Курсив",strikethrough:"Зачеркнутый",subscript:"Нижний индекс",superscript:"Верхний индекс",underline:"Подчеркнутый",textColor:{main:"Цвет текста",right:"Выбрать цвет"},fillColor:{main:"Цвет фона текста",right:"Выбрать цвет"},table:{main:"Table",insert:"Insert Table",colCount:"Column count",rowCount:"Row count"},resetColor:"Сбросить",order:"Упорядоченный список",unorder:"Неупорядоченный список",alignLeft:"Выровнять по левому краю",alignCenter:"Выровнять по центру",alignRight:"Выровнять по правому краю",alignJustify:"Выровнять по ширине",headerFooter:"Header & Footer",checklist:"Task list",documentFlavor:"Modern Mode"},table:{insert:"Insert",insertRowAbove:"Insert row above",insertRowBelow:"Insert row below",insertColumnLeft:"Insert column left",insertColumnRight:"Insert column right",delete:"Table delete",deleteRows:"Delete row",deleteColumns:"Delete column",deleteTable:"Delete table"},headerFooter:{header:"Header",footer:"Footer",panel:"Header & Footer Settings",firstPageCheckBox:"Different first page",oddEvenCheckBox:"Different odd and even pages",headerTopMargin:"Header top margin(px)",footerBottomMargin:"Footer bottom margin(px)",closeHeaderFooter:"Close header & footer",disableText:"Header & footer settings are disabled"},doc:{menu:{paragraphSetting:"Paragraph Setting"},slider:{paragraphSetting:"Paragraph Setting"},paragraphSetting:{alignment:"Alignment",indentation:"Indentation",left:"Left",right:"Right",firstLine:"First Line",hanging:"Hanging",spacing:"Spacing",before:"Before",after:"After",lineSpace:"Line Space",multiSpace:"Multi Space",fixedValue:"Fixed Value(px)"}}}}); |
There was a problem hiding this comment.
issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)
Explanation
Reassigning parameters can lead to unexpected behavior, especially when accessing the arguments object. It can also cause optimization issues, especially in V8.From the Airbnb JavaScript Style Guide
|
|
||
|
|
||
| // @univerjs/sheets/locale/ru-RU | ||
| (function(e,t){typeof exports=="object"&&typeof module<"u"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverSheetsRuRU=t())})(this,function(){"use strict";return{sheets:{tabs:{sheetCopy:"(Копия{0})",sheet:"Лист"},info:{overlappingSelections:"Невозможно использовать эту команду на пересекающихся выделениях",acrossMergedCell:"Через объединенную ячейку",partOfCell:"Выделена только часть объединенной ячейки",hideSheet:"После скрытия этого листа не будет видно ни одного листа"}}}}); |
There was a problem hiding this comment.
issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)
Explanation
Reassigning parameters can lead to unexpected behavior, especially when accessing the arguments object. It can also cause optimization issues, especially in V8.From the Airbnb JavaScript Style Guide
|
|
||
|
|
||
| // @univerjs/sheets-ui/locale/ru-RU | ||
| (function(e,t){typeof exports=="object"&&typeof module<"u"?module.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverSheetsUiRuRU=t())})(this,function(){"use strict";return{spreadsheetLabel:"Электронная таблица",spreadsheetRightLabel:"больше листов",toolbar:{undo:"Отменить",redo:"Повторить",formatPainter:"Копировать формат",font:"Шрифт",fontSize:"Размер шрифта",bold:"Жирный",italic:"Курсив",strikethrough:"Зачеркнутый",subscript:"Нижний индекс",superscript:"Верхний индекс",underline:"Подчеркнутый",textColor:{main:"Цвет текста",right:"Выбрать цвет"},resetColor:"Сбросить",fillColor:{main:"Цвет заливки",right:"Выбрать цвет"},border:{main:"Граница",right:"Стиль границы"},mergeCell:{main:"Объединить ячейки",right:"Выбрать тип объединения"},horizontalAlignMode:{main:"Горизонтальное выравнивание",right:"Выравнивание"},verticalAlignMode:{main:"Вертикальное выравнивание",right:"Выравнивание"},textWrapMode:{main:"Перенос текста",right:"Режим переноса текста"},textRotateMode:{main:"Поворот текста",right:"Режим поворота текста"},more:"Больше",toggleGridlines:"Переключить сетку"},align:{left:"лево",center:"центр",right:"право",top:"верх",middle:"середина",bottom:"низ"},button:{confirm:"ОК",cancel:"Отмена",close:"Закрыть",update:"Обновить",delete:"Удалить",insert:"Вставить",prevPage:"Предыдущая",nextPage:"Следующая",total:"всего:"},punctuation:{tab:"Табуляция",semicolon:"точка с запятой",comma:"запятая",space:"пробел"},colorPicker:{collapse:"Свернуть",customColor:"ПОЛЬЗ.",change:"Изменить",confirmColor:"ОК",cancelColor:"Отмена"},borderLine:{borderTop:"верхняя граница",borderBottom:"нижняя граница",borderLeft:"левая граница",borderRight:"правая граница",borderNone:"без границы",borderAll:"все границы",borderOutside:"внешняя граница",borderInside:"внутренняя граница",borderHorizontal:"горизонтальная граница",borderVertical:"вертикальная граница",borderColor:"цвет границы",borderSize:"размер границы",borderType:"тип границы"},merge:{all:"Объединить все",vertical:"Вертикальное объединение",horizontal:"Горизонтальное объединение",cancel:"Отменить объединение",overlappingError:"Невозможно объединить перекрывающиеся области",partiallyError:"Невозможно выполнить эту операцию на частично объединенных ячейках",confirm:{title:"Продолжение объединения сохранит только значение в верхней левой ячейке, остальные значения будут удалены. Вы уверены, что хотите продолжить?",cancel:"Отменить объединение",confirm:"Продолжить объединение",waring:"Предупреждение",dismantleMergeCellWaring:"Это приведет к разделению некоторых объединенных ячеек. Продолжить?"}},filter:{confirm:{error:"Произошла ошибка",notAllowedToInsertRange:"Нельзя перемещать ячейки сюда, пока фильтр не будет очищен"}},textWrap:{overflow:"Переполнение",wrap:"Перенос",clip:"Обрезать"},textRotate:{none:"Нет",angleUp:"Повернуть вверх",angleDown:"Повернуть вниз",vertical:"Вертикально",rotationUp:"Поворот вверх",rotationDown:"Поворот вниз"},sheetConfig:{delete:"Удалить",copy:"Копировать",rename:"Переименовать",changeColor:"Изменить цвет",hide:"Скрыть",unhide:"Показать",moveLeft:"Переместить влево",moveRight:"Переместить вправо",resetColor:"Сбросить цвет",cancelText:"Отмена",chooseText:"Подтвердить цвет",tipNameRepeat:"Имя вкладки не может повторяться! Пожалуйста, исправьте",noMoreSheet:"В книге должен содержаться хотя бы один видимый лист. Чтобы удалить выбранный лист, вставьте новый лист или покажите скрытый лист.",confirmDelete:"Вы уверены, что хотите удалить",redoDelete:"Можно отменить с помощью Ctrl+Z",noHide:"Нельзя скрыть, оставьте хотя бы одну вкладку листа",chartEditNoOpt:"Эта операция недоступна в режиме редактирования диаграммы!",sheetNameErrorTitle:"Произошла ошибка",sheetNameSpecCharError:"Имя не может превышать 31 символов, начало и конец имени не могут быть ' и имя не может содержать: [ ] : \\ ? * /",sheetNameCannotIsEmptyError:"Имя листа не может быть пустым.",sheetNameAlreadyExistsError:"Имя листа уже существует. Пожалуйста, введите другое имя.",deleteSheet:"Удалить лист",deleteSheetContent:"Подтвердите удаление этого листа. После удаления его нельзя будет восстановить. Вы уверены, что хотите удалить его?",addProtectSheet:"Защитить лист",removeProtectSheet:"Снять защиту листа",changeSheetPermission:"Изменить разрешения листа",viewAllProtectArea:"Просмотреть все защищенные области"},rightClick:{copy:"Копировать",cut:"Вырезать",paste:"Вставить",pasteSpecial:"Специальная вставка",pasteValue:"Вставить значение",pasteFormat:"Вставить формат",pasteColWidth:"Вставить ширину столбца",pasteBesidesBorder:"Вставить кроме стилей границы",insert:"Вставить",insertRow:"Вставить строку",insertRowsAfter:"Вставить",insertRowsAbove:"Вставить",insertRowBefore:"Вставить строку выше",insertRowsAfterSuffix:"строк после",insertRowsAboveSuffix:"строк выше",insertColumn:"Вставить столбец",insertColumnBefore:"Вставить столбец слева",insertColsLeft:"Вставить",insertColsRight:"Вставить",insertColsLeftSuffix:"столбцов слева",insertColsRightSuffix:"столбцов справа",delete:"Удалить",deleteCell:"Удалить ячейку",insertCell:"Вставить ячейку",deleteSelected:"Удалить выбранное",hide:"Скрыть",hideSelected:"Скрыть выбранное",showHide:"Показать скрытые",toTopAdd:"Добавить сверху",toBottomAdd:"Добавить снизу",toLeftAdd:"Добавить слева",toRightAdd:"Добавить справа",deleteSelectedRow:"Удалить выбранную строку",deleteSelectedColumn:"Удалить выбранный столбец",hideSelectedRow:"Скрыть выбранную строку",showHideRow:"Показать скрытую строку",rowHeight:"Высота строки",hideSelectedColumn:"Скрыть выбранный столбец",showHideColumn:"Показать скрытый столбец",columnWidth:"Ширина столбца",moveLeft:"Переместить влево",moveUp:"Переместить вверх",moveRight:"Переместить вправо",moveDown:"Переместить вниз",add:"Добавить",row:"Строка",column:"Столбец",confirm:"Подтвердить",clearSelection:"Очистить",clearContent:"Очистить содержимое",clearFormat:"Очистить формат",clearAll:"Очистить все",root:"Корень",log:"Логарифм",delete0:"Удалить значения 0 с обоих концов",removeDuplicate:"Удалить дубликаты значений",byRow:"По строке",byCol:"По столбцу",generateNewMatrix:"Создать новую матрицу",fitContent:"Подогнать под данные",freeze:"Закрепить",freezeCol:"Закрепить до этого столбца",freezeRow:"Закрепить до этой строки",cancelFreeze:"Отменить закрепление",deleteAllRowsAlert:"Нельзя удалить все строки на листе",deleteAllColumnsAlert:"Нельзя удалить все столбцы на листе",hideAllRowsAlert:"Нельзя скрыть все строки на листе",hideAllColumnsAlert:"Нельзя скрыть все столбцы на листе",protectRange:"Защитить диапазон",editProtectRange:"Редактировать защищенный диапазон",removeProtectRange:"Удалить защиту диапазона",turnOnProtectRange:"Включить защиту диапазона",viewAllProtectArea:"Просмотреть все защищенные области"},info:{tooltip:"Подсказка",error:"Ошибка",notChangeMerge:"Вы не можете частично изменить объединенные ячейки",detailUpdate:"Новый открытый",detailSave:"Восстановлено из локального кэша",row:"",column:"",loading:"Загрузка...",copy:"Копировать",return:"Выход",rename:"Переименовать",tips:"Переименовать",noName:"Электронная таблица без названия",wait:"ожидание обновления",add:"Добавить",addLast:"больше строк внизу",backTop:"Вернуться наверх",pageInfo:"Всего ${total}, ${totalPage} страниц, текущая ${currentPage}",nextPage:"Следующая",tipInputNumber:"Пожалуйста, введите число",tipInputNumberLimit:"Диапазон увеличения ограничен от 1 до 100",tipRowHeightLimit:"Высота строки должна быть в пределах от 0 до 545",tipColumnWidthLimit:"Ширина столбца должна быть в пределах от 0 до 2038",pageInfoFull:"Всего ${total}, ${totalPage} страниц, все данные отображены",problem:"Произошла проблема",forceStringInfo:"Число хранится как текст"},clipboard:{paste:{exceedMaxCells:"Количество вставляемых ячеек превышает максимальное количество ячеек",overlappingMergedCells:"Область вставки перекрывается с объединенными ячейками"},shortCutNotify:{title:"Используйте сочетания клавиш для вставки.",useShortCutInstead:"Обнаружено содержимое Excel. Используйте сочетание клавиш для вставки."}},statusbar:{sum:"Сумма",average:"Среднее",min:"Минимум",max:"Максимум",count:"Числовое количество",countA:"Количество",clickToCopy:"Нажмите, чтобы скопировать",copied:"Скопировано"},autoFill:{copy:"Копировать ячейку",series:"Заполнить серию",formatOnly:"Только формат",noFormat:"Без формата"},rangeSelector:{placeholder:"Выберите диапазон или введите значение",tooltip:"Выберите диапазон"},shortcut:{sheet:{"zoom-in":"Увеличить","zoom-out":"Уменьшить","reset-zoom":"Сбросить масштаб","select-below-cell":"Выбрать ячейку ниже","select-up-cell":"Выбрать ячейку выше","select-left-cell":"Выбрать ячейку слева","select-right-cell":"Выбрать ячейку справа","select-next-cell":"Выбрать следующую ячейку","select-previous-cell":"Выбрать предыдущую ячейку","select-up-value-cell":"Выбрать ячейку выше со значением","select-below-value-cell":"Выбрать ячейку ниже со значением","select-left-value-cell":"Выбрать ячейку слева со значением","select-right-value-cell":"Выбрать ячейку справа со значением","expand-selection-down":"Расширить выделение вниз","expand-selection-up":"Расширить выделение вверх","expand-selection-left":"Расширить выделение влево","expand-selection-right":"Расширить выделение вправо","expand-selection-to-left-gap":"Расширить выделение до левого пробела","expand-selection-to-below-gap":"Расширить выделение до нижнего пробела","expand-selection-to-right-gap":"Расширить выделение до правого пробела","expand-selection-to-up-gap":"Расширить выделение до верхнего пробела","select-all":"Выбрать все","toggle-editing":"Переключить редактирование","delete-and-start-editing":"Очистить и начать редактирование","abort-editing":"Прервать редактирование","break-line":"Разрыв строки","set-bold":"Переключить жирный","set-italic":"Переключить курсив","set-underline":"Переключить подчеркивание","set-strike-through":"Переключить зачеркивание","start-editing":"Начать редактирование"}},"sheet-view":"Просмотр листа","sheet-edit":"Редактирование листа",definedName:{managerTitle:"Управление именами",managerDescription:"Создайте определенное имя, выбрав ячейки или формулы и введя желаемое имя в текстовое поле.",addButton:"Добавить определенное имя",featureTitle:"Определенные имена",ratioRange:"Диапазон",ratioFormula:"Формула",confirm:"Подтвердить",cancel:"Отмена",scopeWorkbook:"Книга",inputNamePlaceholder:"Введите имя (без пробелов)",inputCommentPlaceholder:"Введите комментарий",inputRangePlaceholder:"Введите диапазон (без пробелов)",inputFormulaPlaceholder:"Введите формулу (без пробелов)",nameEmpty:"Имя не может быть пустым",nameDuplicate:"Имя уже существует",formulaOrRefStringEmpty:"Формула или строка ссылки не может быть пустой",formulaOrRefStringInvalid:"Неверная формула или строка ссылки",defaultName:"ОпределенноеИмя",updateButton:"Обновить",deleteButton:"Удалить",deleteConfirmText:"Вы уверены, что хотите удалить это определенное имя?",nameConflict:"Имя конфликтует с именем функции",nameInvalid:"Имя недействительно",nameSheetConflict:"Имя конфликтует с именем листа"},uploadLoading:{loading:"Загрузка...",error:"Ошибка"},permission:{toolbarMenu:"Защита",panel:{title:"Защита строк и столбцов",name:"Имя",protectedRange:"Защищенный диапазон",permissionDirection:"Описание разрешения",permissionDirectionPlaceholder:"Введите описание разрешения",editPermission:"Редактировать разрешения",onlyICanEdit:"Только я могу редактировать",designedUserCanEdit:"Назначенные пользователи могут редактировать",viewPermission:"Просмотр разрешений",othersCanView:"Другие могут просматривать",noOneElseCanView:"Никто другой не может просматривать",designedPerson:"Назначенные лица",addPerson:"Добавить человека",canEdit:"Может редактировать",canView:"Может просматривать",delete:"Удалить",currentSheet:"Текущий лист",allSheet:"Все листы",edit:"Редактировать",Print:"Печать",Comment:"Комментировать",Copy:"Копировать",SetCellStyle:"Установить стиль ячейки",SetCellValue:"Установить значение ячейки",SetHyperLink:"Установить гиперссылку",Sort:"Сортировать",Filter:"Фильтровать",PivotTable:"Сводная таблица",FloatImage:"Плавающее изображение",RowHeightColWidth:"Высота строки и ширина столбца",RowHeightColWidthReadonly:"Только для чтения высота строки и ширина столбца",FilterReadonly:"Только для чтения фильтр",nameError:"Имя не может быть пустым",created:"Создано",iCanEdit:"Я могу редактировать",iCanNotEdit:"Я не могу редактировать",iCanView:"Я могу просматривать",iCanNotView:"Я не могу просматривать",emptyRangeError:"Диапазон не может быть пустым",rangeOverlapError:"Диапазон не может пересекаться",rangeOverlapOverPermissionError:"Диапазон не может пересекаться с диапазоном, имеющим те же разрешения",InsertHyperlink:"Вставить гиперссылку",SetRowStyle:"Установить стиль строки",SetColumnStyle:"Установить стиль столбца",InsertColumn:"Вставить столбец",InsertRow:"Вставить строку",DeleteRow:"Удалить строку",DeleteColumn:"Удалить столбец",EditExtraObject:"Редактировать дополнительный объект"},dialog:{allowUserToEdit:"Разрешить пользователю редактировать",allowedPermissionType:"Допустимые типы разрешений",setCellValue:"Установить значение ячейки",setCellStyle:"Установить стиль ячейки",copy:"Копировать",alert:"Предупреждение",search:"Поиск",alertContent:"Этот диапазон защищен и в настоящее время недоступен для редактирования. Если вам нужно редактировать, пожалуйста, свяжитесь с создателем.",userEmpty:"нет назначенных лиц, поделитесь ссылкой, чтобы пригласить конкретных людей.",listEmpty:"Вы не установили ни одного защищенного диапазона или листа.",commonErr:"Диапазон защищен, и у вас нет разрешения на выполнение этой операции. Для редактирования свяжитесь с создателем.",editErr:"Диапазон защищен, и у вас нет разрешения на редактирование. Для редактирования свяжитесь с создателем.",pasteErr:"Диапазон защищен, и у вас нет разрешения на вставку. Для вставки свяжитесь с создателем.",setStyleErr:"Диапазон защищен, и у вас нет разрешения на установку стилей. Для установки стилей свяжитесь с создателем.",copyErr:"Диапазон защищен, и у вас нет разрешения на копирование. Для копирования свяжитесь с создателем.",workbookCopyErr:"Лист защищен, и у вас нет разрешения на копирование. Для копирования свяжитесь с создателем.",setRowColStyleErr:"Диапазон защищен, и у вас нет разрешения на установку стилей строк и столбцов. Для установки стилей строк и столбцов свяжитесь с создателем.",moveRowColErr:"Диапазон защищен, и у вас нет разрешения на перемещение строк и столбцов. Для перемещения строк и столбцов свяжитесь с создателем.",moveRangeErr:"Диапазон защищен, и у вас нет разрешения на перемещение выделения. Для перемещения выделения свяжитесь с создателем.",autoFillErr:"Диапазон защищен, и у вас нет разрешения на автозаполнение. Для использования автозаполнения свяжитесь с создателем.",filterErr:"Диапазон защищен, и у вас нет разрешения на фильтрацию. Для фильтрации свяжитесь с создателем.",operatorSheetErr:"Лист защищен, и у вас нет разрешения на операции с листом. Для операций с листом свяжитесь с создателем.",insertOrDeleteMoveRangeErr:"Вставленный или удаленный диапазон пересекается с защищенным диапазоном, и эта операция в настоящее время не поддерживается.",printErr:"Лист защищен, и у вас нет разрешения на печать. Для печати свяжитесь с создателем.",formulaErr:"Диапазон или ссылочный диапазон защищен, и у вас нет разрешения на редактирование. Для редактирования свяжитесь с создателем.",hyperLinkErr:"Диапазон защищен, и у вас нет разрешения на установку гиперссылок. Для установки гиперссылок свяжитесь с создателем."},button:{confirm:"Подтвердить",cancel:"Отменить",addNewPermission:"Добавить новое разрешение"}}}}); |
There was a problem hiding this comment.
issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)
Explanation
Reassigning parameters can lead to unexpected behavior, especially when accessing the arguments object. It can also cause optimization issues, especially in V8.From the Airbnb JavaScript Style Guide
|
|
||
|
|
||
| // @univerjs/sheets-formula/locale/ru-RU | ||
| (function(e,n){typeof exports=="object"&&typeof module<"u"?module.exports=n():typeof define=="function"&&define.amd?define(n):(e=typeof globalThis<"u"?globalThis:e||self,e.UniverSheetsFormulaRuRU=n())})(this,function(){"use strict";return{formula:{progress:{analyzing:"Анализ",calculating:"Вычисление","array-analysis":"Анализ массива","array-calculation":"Вычисление массива",done:"Готово"}}}}); |
There was a problem hiding this comment.
issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)
Explanation
Reassigning parameters can lead to unexpected behavior, especially when accessing the arguments object. It can also cause optimization issues, especially in V8.From the Airbnb JavaScript Style Guide
Link issues
fixes #400
Summary By Copilot
This pull request includes updates and enhancements to the
BootstrapBlazor.UniverSheetcomponent, focusing on localization, data handling, and plugin management. The most significant changes include adding language support, updating data structures, and refining the plugin system.Localization Enhancements:
src/components/BootstrapBlazor.UniverSheet/Components/UniverSheet.razor.cs: Added a new methodOnParametersSetto set theLangproperty based on the current UI culture.src/components/BootstrapBlazor.UniverSheet/wwwroot/univer.js: Modified theloadAssetsfunction to load language-specific scripts dynamically and updated thecreateUniverSheetAsyncfunction to handle language settings. [1] [2]Data Handling Updates:
src/components/BootstrapBlazor.UniverSheet/Components/UniverSheetData.cs: Introduced a new propertyWorkbookDatato manage workbook-specific data separately from other business data.src/components/BootstrapBlazor.UniverSheet/wwwroot/univer.js: Adjusted thecreateUnverSheetAsyncfunction to useworkbookDatafor initializing workbooks.Plugin System Refinements:
src/components/BootstrapBlazor.UniverSheet/Components/UniverSheet.razor.js: Updated theinitfunction to destructure options and pass them correctly tocreateUniverSheetAsync.src/components/BootstrapBlazor.UniverSheet/wwwroot/plugin.js: Enhanced theDefaultPluginclass to handleworkbookDatain thereceiveDatamethod.Version and Dependency Updates:
src/components/BootstrapBlazor.UniverSheet/BootstrapBlazor.UniverSheet.csproj: Updated the project version from9.0.2to9.0.3.CSS and Asset Management:
src/components/BootstrapBlazor.UniverSheet/wwwroot/univer/univer-sheet.bundle.css: Reorganized CSS imports to match the new directory structure and ensure proper styling.These changes collectively enhance the functionality, localization support, and maintainability of the
BootstrapBlazor.UniverSheetcomponent.Regression?
Risk
Verification
Packaging changes reviewed?
☑️ Self Check before Merge
Summary by Sourcery
Add language support and improve localization for UniverSheet component
New Features:
Enhancements:
Documentation: