Skip to content

feat(UniverSheet): add Lang parameter#401

Merged
ArgoZhang merged 10 commits intomasterfrom
refactor-sheet
Mar 31, 2025
Merged

feat(UniverSheet): add Lang parameter#401
ArgoZhang merged 10 commits intomasterfrom
refactor-sheet

Conversation

@ArgoZhang
Copy link
Copy Markdown
Member

@ArgoZhang ArgoZhang commented Mar 31, 2025

Link issues

fixes #400

Summary By Copilot

This pull request includes updates and enhancements to the BootstrapBlazor.UniverSheet component, 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:

Data Handling Updates:

Plugin System Refinements:

Version and Dependency Updates:

CSS and Asset Management:

These changes collectively enhance the functionality, localization support, and maintainability of the BootstrapBlazor.UniverSheet component.

Regression?

  • Yes
  • No

Risk

  • High
  • Medium
  • Low

Verification

  • Manual (required)
  • Automated

Packaging changes reviewed?

  • Yes
  • No
  • N/A

☑️ Self Check before Merge

⚠️ Please check all items below before review. ⚠️

  • Doc is updated/provided or not needed
  • Demo is updated/provided or not needed
  • Merge the latest code from the main branch

Summary by Sourcery

Add language support and improve localization for UniverSheet component

New Features:

  • Added support for dynamic language loading based on the current UI culture
  • Implemented language-specific script and locale loading for UniverSheet

Enhancements:

  • Updated asset loading mechanism to support multiple language resources
  • Improved workbook data handling and language configuration
  • Refined plugin system to better handle language-specific settings

Documentation:

  • Added localization files for multiple languages including English, Chinese (Traditional), Russian, Vietnamese, French, and Farsi

@bb-auto bb-auto Bot added the enhancement New feature or request label Mar 31, 2025
@sourcery-ai
Copy link
Copy Markdown

sourcery-ai Bot commented Mar 31, 2025

Reviewer's Guide by Sourcery

This 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 support

sequenceDiagram
  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)
Loading

File-Level Changes

Change Details Files
Added language support to the UniverSheet component, allowing for dynamic loading of language-specific scripts and locale settings.
  • Added a Lang property to the UniverSheet component.
  • Modified the OnParametersSet method to set the Lang property based on the current UI culture.
  • Modified the loadAssets function to load language-specific scripts dynamically.
  • Updated the createUniverSheetAsync function to handle language settings.
src/components/BootstrapBlazor.UniverSheet/wwwroot/univer.js
src/components/BootstrapBlazor.UniverSheet/Components/UniverSheet.razor.cs
Updated data handling to manage workbook-specific data separately from other business data.
  • Introduced a new WorkbookData property in the UniverSheetData class.
  • Adjusted the createUnverSheetAsync function to use workbookData for initializing workbooks.
  • Modified the DefaultPlugin class to handle workbookData in the receiveData method.
src/components/BootstrapBlazor.UniverSheet/Components/UniverSheetData.cs
src/components/BootstrapBlazor.UniverSheet/wwwroot/univer.js
src/components/BootstrapBlazor.UniverSheet/wwwroot/plugin.js
Refined the plugin system to correctly pass options to the UniverSheet component.
  • Updated the init function in UniverSheet.razor.js to destructure options and pass them correctly to createUniverSheetAsync.
src/components/BootstrapBlazor.UniverSheet/Components/UniverSheet.razor.js
Updated the project version.
  • Updated the project version from 9.0.2 to 9.0.3.
src/components/BootstrapBlazor.UniverSheet/BootstrapBlazor.UniverSheet.csproj
Reorganized CSS imports to match the new directory structure and ensure proper styling.
  • Reorganized CSS imports to match the new directory structure.
src/components/BootstrapBlazor.UniverSheet/wwwroot/univer/univer-sheet.bundle.css

Assessment against linked issues

Issue Objective Addressed Explanation

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!
  • Generate a plan of action for an issue: Comment @sourcery-ai plan on
    an issue to generate a plan of action for it.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@bb-auto bb-auto Bot added this to the v9.2.0 milestone Mar 31, 2025
@ArgoZhang ArgoZhang merged commit 46fac35 into master Mar 31, 2025
1 check passed
@ArgoZhang ArgoZhang deleted the refactor-sheet branch March 31, 2025 06:51
Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 loadAssets to 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

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
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 => {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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"}}});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)

ExplanationReassigning 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)"}}}});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)

ExplanationReassigning 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"}}}});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)

ExplanationReassigning 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"}}}});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)

ExplanationReassigning 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:"Сбросить до"}}});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (code-quality): Don't reassign parameter - i (dont-reassign-parameters)

ExplanationReassigning 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)"}}}});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)

ExplanationReassigning 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:"После скрытия этого листа не будет видно ни одного листа"}}}});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)

ExplanationReassigning 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:"Добавить новое разрешение"}}}});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)

ExplanationReassigning 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:"Готово"}}}});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (code-quality): Don't reassign parameter - e (dont-reassign-parameters)

ExplanationReassigning 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(UniverSheet): support lang parameter

2 participants