[SSE mobile] added project new sources
This commit is contained in:
parent
9dec0adbf6
commit
afbfc7d095
|
@ -1,639 +1,9 @@
|
|||
{
|
||||
"Common.Controllers.Collaboration.textEditUser": "Users who are editing the file:",
|
||||
"Common.Controllers.Collaboration.textCancel": "Cancel",
|
||||
"Common.Controllers.Collaboration.textDone": "Done",
|
||||
"Common.Controllers.Collaboration.textAddReply": "Add Reply",
|
||||
"Common.Controllers.Collaboration.textEdit": "Edit",
|
||||
"Common.Controllers.Collaboration.textResolve": "Resolve",
|
||||
"Common.Controllers.Collaboration.textDeleteComment": "Delete comment",
|
||||
"Common.Controllers.Collaboration.textDeleteReply": "Delete reply",
|
||||
"Common.Controllers.Collaboration.textReopen": "Reopen",
|
||||
"Common.Controllers.Collaboration.textMessageDeleteComment": "Do you really want to delete this comment?",
|
||||
"Common.Controllers.Collaboration.textMessageDeleteReply": "Do you really want to delete this reply?",
|
||||
"Common.Controllers.Collaboration.textYes": "Yes",
|
||||
"Common.UI.ThemeColorPalette.textCustomColors": "Custom Colors",
|
||||
"Common.UI.ThemeColorPalette.textStandartColors": "Standard Colors",
|
||||
"Common.UI.ThemeColorPalette.textThemeColors": "Theme Colors",
|
||||
"Common.Utils.Metric.txtCm": "cm",
|
||||
"Common.Utils.Metric.txtPt": "pt",
|
||||
"Common.Views.Collaboration.textBack": "Back",
|
||||
"Common.Views.Collaboration.textCollaboration": "Collaboration",
|
||||
"Common.Views.Collaboration.textEditUsers": "Users",
|
||||
"Common.Views.Collaboration.textNoComments": "This spreadsheet doesn't contain comments",
|
||||
"Common.Views.Collaboration.textСomments": "Сomments",
|
||||
"Common.Views.Collaboration.textEditСomment": "Edit Comment",
|
||||
"Common.Views.Collaboration.textDone": "Done",
|
||||
"Common.Views.Collaboration.textAddReply": "Add Reply",
|
||||
"Common.Views.Collaboration.textEditReply": "Edit Reply",
|
||||
"Common.Views.Collaboration.textCancel": "Cancel",
|
||||
"SSE.Controllers.AddChart.txtDiagramTitle": "Chart Title",
|
||||
"SSE.Controllers.AddChart.txtSeries": "Series",
|
||||
"SSE.Controllers.AddChart.txtXAxis": "X Axis",
|
||||
"SSE.Controllers.AddChart.txtYAxis": "Y Axis",
|
||||
"SSE.Controllers.AddContainer.textChart": "Chart",
|
||||
"SSE.Controllers.AddContainer.textFormula": "Function",
|
||||
"SSE.Controllers.AddContainer.textImage": "Image",
|
||||
"SSE.Controllers.AddContainer.textOther": "Other",
|
||||
"SSE.Controllers.AddContainer.textShape": "Shape",
|
||||
"SSE.Controllers.AddLink.textInvalidRange": "ERROR! Invalid cells range",
|
||||
"SSE.Controllers.AddLink.txtNotUrl": "This field should be a URL in the format 'http://www.example.com'",
|
||||
"SSE.Controllers.AddOther.textEmptyImgUrl": "You need to specify image URL.",
|
||||
"SSE.Controllers.AddOther.txtNotUrl": "This field should be a URL in the format 'http://www.example.com'",
|
||||
"SSE.Controllers.AddOther.textDeleteDraft": "Do you really want to delete draft?",
|
||||
"SSE.Controllers.AddOther.textCancel": "Cancel",
|
||||
"SSE.Controllers.AddOther.textContinue": "Continue",
|
||||
"SSE.Controllers.AddOther.textDelete": "Delete",
|
||||
"SSE.Controllers.DocumentHolder.errorCopyCutPaste": "Copy, cut and paste actions using the context menu will be performed within the current file only.",
|
||||
"SSE.Controllers.DocumentHolder.menuAddLink": "Add Link",
|
||||
"SSE.Controllers.DocumentHolder.menuCell": "Cell",
|
||||
"SSE.Controllers.DocumentHolder.menuCopy": "Copy",
|
||||
"SSE.Controllers.DocumentHolder.menuCut": "Cut",
|
||||
"SSE.Controllers.DocumentHolder.menuDelete": "Delete",
|
||||
"SSE.Controllers.DocumentHolder.menuEdit": "Edit",
|
||||
"SSE.Controllers.DocumentHolder.menuFreezePanes": "Freeze Panes",
|
||||
"SSE.Controllers.DocumentHolder.menuHide": "Hide",
|
||||
"SSE.Controllers.DocumentHolder.menuMerge": "Merge",
|
||||
"SSE.Controllers.DocumentHolder.menuMore": "More",
|
||||
"SSE.Controllers.DocumentHolder.menuOpenLink": "Open Link",
|
||||
"SSE.Controllers.DocumentHolder.menuPaste": "Paste",
|
||||
"SSE.Controllers.DocumentHolder.menuShow": "Show",
|
||||
"SSE.Controllers.DocumentHolder.menuUnfreezePanes": "Unfreeze Panes",
|
||||
"SSE.Controllers.DocumentHolder.menuUnmerge": "Unmerge",
|
||||
"SSE.Controllers.DocumentHolder.menuUnwrap": "Unwrap",
|
||||
"SSE.Controllers.DocumentHolder.menuWrap": "Wrap",
|
||||
"SSE.Controllers.DocumentHolder.menuViewComment": "View Comment",
|
||||
"SSE.Controllers.DocumentHolder.menuAddComment": "Add Comment",
|
||||
"SSE.Controllers.DocumentHolder.sheetCancel": "Cancel",
|
||||
"SSE.Controllers.DocumentHolder.textCopyCutPasteActions": "Copy, Cut and Paste Actions",
|
||||
"SSE.Controllers.DocumentHolder.textDoNotShowAgain": "Do not show again",
|
||||
"SSE.Controllers.DocumentHolder.warnMergeLostData": "Operation can destroy data in the selected cells.<br>Continue?",
|
||||
"SSE.Controllers.EditCell.textAuto": "Auto",
|
||||
"SSE.Controllers.EditCell.textFonts": "Fonts",
|
||||
"SSE.Controllers.EditCell.textPt": "pt",
|
||||
"SSE.Controllers.EditChart.errorMaxRows": "ERROR! The maximum number of data series per chart is 255.",
|
||||
"SSE.Controllers.EditChart.errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:<br> opening price, max price, min price, closing price.",
|
||||
"SSE.Controllers.EditChart.textAuto": "Auto",
|
||||
"SSE.Controllers.EditChart.textBetweenTickMarks": "Between Tick Marks",
|
||||
"SSE.Controllers.EditChart.textBillions": "Billions",
|
||||
"SSE.Controllers.EditChart.textBottom": "Bottom",
|
||||
"SSE.Controllers.EditChart.textCenter": "Center",
|
||||
"SSE.Controllers.EditChart.textCross": "Cross",
|
||||
"SSE.Controllers.EditChart.textCustom": "Custom",
|
||||
"SSE.Controllers.EditChart.textFit": "Fit Width",
|
||||
"SSE.Controllers.EditChart.textFixed": "Fixed",
|
||||
"SSE.Controllers.EditChart.textHigh": "High",
|
||||
"SSE.Controllers.EditChart.textHorizontal": "Horizontal",
|
||||
"SSE.Controllers.EditChart.textHundredMil": "100 000 000",
|
||||
"SSE.Controllers.EditChart.textHundreds": "Hundreds",
|
||||
"SSE.Controllers.EditChart.textHundredThousands": "100 000",
|
||||
"SSE.Controllers.EditChart.textIn": "In",
|
||||
"SSE.Controllers.EditChart.textInnerBottom": "Inner Bottom",
|
||||
"SSE.Controllers.EditChart.textInnerTop": "Inner Top",
|
||||
"SSE.Controllers.EditChart.textLeft": "Left",
|
||||
"SSE.Controllers.EditChart.textLeftOverlay": "Left Overlay",
|
||||
"SSE.Controllers.EditChart.textLow": "Low",
|
||||
"SSE.Controllers.EditChart.textManual": "Manual",
|
||||
"SSE.Controllers.EditChart.textMaxValue": "Maximum Value",
|
||||
"SSE.Controllers.EditChart.textMillions": "Millions",
|
||||
"SSE.Controllers.EditChart.textMinValue": "Minimum Value",
|
||||
"SSE.Controllers.EditChart.textNextToAxis": "Next to axis",
|
||||
"SSE.Controllers.EditChart.textNone": "None",
|
||||
"SSE.Controllers.EditChart.textNoOverlay": "No Overlay",
|
||||
"SSE.Controllers.EditChart.textOnTickMarks": "On Tick Marks",
|
||||
"SSE.Controllers.EditChart.textOut": "Out",
|
||||
"SSE.Controllers.EditChart.textOuterTop": "Outer Top",
|
||||
"SSE.Controllers.EditChart.textOverlay": "Overlay",
|
||||
"SSE.Controllers.EditChart.textRight": "Right",
|
||||
"SSE.Controllers.EditChart.textRightOverlay": "Right Overlay",
|
||||
"SSE.Controllers.EditChart.textRotated": "Rotated",
|
||||
"SSE.Controllers.EditChart.textTenMillions": "10 000 000",
|
||||
"SSE.Controllers.EditChart.textTenThousands": "10 000",
|
||||
"SSE.Controllers.EditChart.textThousands": "Thousands",
|
||||
"SSE.Controllers.EditChart.textTop": "Top",
|
||||
"SSE.Controllers.EditChart.textTrillions": "Trillions",
|
||||
"SSE.Controllers.EditChart.textValue": "Value",
|
||||
"SSE.Controllers.EditContainer.textCell": "Cell",
|
||||
"SSE.Controllers.EditContainer.textChart": "Chart",
|
||||
"SSE.Controllers.EditContainer.textHyperlink": "Hyperlink",
|
||||
"SSE.Controllers.EditContainer.textImage": "Image",
|
||||
"SSE.Controllers.EditContainer.textSettings": "Settings",
|
||||
"SSE.Controllers.EditContainer.textShape": "Shape",
|
||||
"SSE.Controllers.EditContainer.textTable": "Table",
|
||||
"SSE.Controllers.EditContainer.textText": "Text",
|
||||
"SSE.Controllers.EditHyperlink.textDefault": "Selected range",
|
||||
"SSE.Controllers.EditHyperlink.textEmptyImgUrl": "You need to specify image URL.",
|
||||
"SSE.Controllers.EditHyperlink.textExternalLink": "External Link",
|
||||
"SSE.Controllers.EditHyperlink.textInternalLink": "Internal Data Range",
|
||||
"SSE.Controllers.EditHyperlink.textInvalidRange": "Invalid cells range",
|
||||
"SSE.Controllers.EditHyperlink.txtNotUrl": "This field should be a URL in the format \"http://www.example.com\"",
|
||||
"SSE.Controllers.FilterOptions.textEmptyItem": "{Blanks}",
|
||||
"SSE.Controllers.FilterOptions.textErrorMsg": "You must choose at least one value",
|
||||
"SSE.Controllers.FilterOptions.textErrorTitle": "Warning",
|
||||
"SSE.Controllers.FilterOptions.textSelectAll": "Select All",
|
||||
"SSE.Controllers.Main.advCSVOptions": "Choose CSV Options",
|
||||
"SSE.Controllers.Main.advDRMEnterPassword": "Enter your password:",
|
||||
"SSE.Controllers.Main.advDRMOptions": "Protected File",
|
||||
"SSE.Controllers.Main.advDRMPassword": "Password",
|
||||
"SSE.Controllers.Main.applyChangesTextText": "Loading data...",
|
||||
"SSE.Controllers.Main.applyChangesTitleText": "Loading Data",
|
||||
"SSE.Controllers.Main.closeButtonText": "Close File",
|
||||
"SSE.Controllers.Main.convertationTimeoutText": "Conversion timeout exceeded.",
|
||||
"SSE.Controllers.Main.criticalErrorExtText": "Press 'OK' to return to document list.",
|
||||
"SSE.Controllers.Main.criticalErrorTitle": "Error",
|
||||
"SSE.Controllers.Main.downloadErrorText": "Download failed.",
|
||||
"SSE.Controllers.Main.downloadMergeText": "Downloading...",
|
||||
"SSE.Controllers.Main.downloadMergeTitle": "Downloading",
|
||||
"SSE.Controllers.Main.downloadTextText": "Downloading spreadsheet...",
|
||||
"SSE.Controllers.Main.downloadTitleText": "Downloading Spreadsheet",
|
||||
"SSE.Controllers.Main.errorAccessDeny": "You are trying to perform an action you do not have rights for.<br>Please contact your Document Server administrator.",
|
||||
"SSE.Controllers.Main.errorArgsRange": "An error in the entered formula.<br>Incorrect argument range is used.",
|
||||
"SSE.Controllers.Main.errorAutoFilterChange": "The operation is not allowed, as it is attempting to shift cells in a table on your worksheet.",
|
||||
"SSE.Controllers.Main.errorAutoFilterChangeFormatTable": "The operation could not be done for the selected cells as you cannot move a part of the table.<br>Select another data range so that the whole table was shifted and try again.",
|
||||
"SSE.Controllers.Main.errorAutoFilterDataRange": "The operation could not be done for the selected range of cells.<br>Select a uniform data range different from the existing one and try again.",
|
||||
"SSE.Controllers.Main.errorAutoFilterHiddenRange": "The operation cannot be performed because the area contains filtered cells.<br>Please unhide the filtered elements and try again.",
|
||||
"SSE.Controllers.Main.errorBadImageUrl": "Image URL is incorrect",
|
||||
"SSE.Controllers.Main.errorChangeArray": "You cannot change part of an array.",
|
||||
"SSE.Controllers.Main.errorCoAuthoringDisconnect": "Server connection lost. The document cannot be edited right now.",
|
||||
"SSE.Controllers.Main.errorConnectToServer": "The document could not be saved. Please check connection settings or contact your administrator.<br>When you click the 'OK' button, you will be prompted to download the document.",
|
||||
"SSE.Controllers.Main.errorCopyMultiselectArea": "This command cannot be used with multiple selections.<br>Select a single range and try again.",
|
||||
"SSE.Controllers.Main.errorCountArg": "An error in the entered formula.<br>Incorrect number of arguments is used.",
|
||||
"SSE.Controllers.Main.errorCountArgExceed": "An error in the entered formula.<br>Number of arguments is exceeded.",
|
||||
"SSE.Controllers.Main.errorCreateDefName": "The existing named ranges cannot be edited and the new ones cannot be created<br>at the moment as some of them are being edited.",
|
||||
"SSE.Controllers.Main.errorDatabaseConnection": "External error.<br>Database connection error. Please contact support in case the error persists.",
|
||||
"SSE.Controllers.Main.errorDataEncrypted": "Encrypted changes have been received, they cannot be deciphered.",
|
||||
"SSE.Controllers.Main.errorDataRange": "Incorrect data range.",
|
||||
"SSE.Controllers.Main.errorDefaultMessage": "Error code: %1",
|
||||
"SSE.Controllers.Main.errorEditingDownloadas": "An error occurred during the work with the document.<br>Use the 'Download' option to save the file backup copy to your computer hard drive.",
|
||||
"SSE.Controllers.Main.errorFilePassProtect": "The file is password protected and cannot be opened.",
|
||||
"SSE.Controllers.Main.errorFileRequest": "External error.<br>File request error. Please contact support in case the error persists.",
|
||||
"SSE.Controllers.Main.errorFileSizeExceed": "The file size exceeds the limitation set for your server.<br>Please contact your Document Server administrator for details.",
|
||||
"SSE.Controllers.Main.errorFileVKey": "External error.<br>Incorrect security key. Please contact support in case the error persists.",
|
||||
"SSE.Controllers.Main.errorFillRange": "Could not fill the selected range of cells.<br>All the merged cells need to be the same size.",
|
||||
"SSE.Controllers.Main.errorFormulaName": "An error in the entered formula.<br>Incorrect formula name is used.",
|
||||
"SSE.Controllers.Main.errorFormulaParsing": "Internal error while parsing the formula.",
|
||||
"SSE.Controllers.Main.errorFrmlMaxTextLength": "Text values in formulas are limited to 255 characters.<br>Use the CONCATENATE function or concatenation operator (&).",
|
||||
"SSE.Controllers.Main.errorFrmlWrongReferences": "The function refers to a sheet that does not exist.<br>Please check the data and try again.",
|
||||
"SSE.Controllers.Main.errorInvalidRef": "Enter a correct name for the selection or a valid reference to go to.",
|
||||
"SSE.Controllers.Main.errorKeyEncrypt": "Unknown key descriptor",
|
||||
"SSE.Controllers.Main.errorKeyExpire": "Key descriptor expired",
|
||||
"SSE.Controllers.Main.errorLockedAll": "The operation could not be done as the sheet has been locked by another user.",
|
||||
"SSE.Controllers.Main.errorLockedWorksheetRename": "The sheet cannot be renamed at the moment as it is being renamed by another user",
|
||||
"SSE.Controllers.Main.errorMailMergeLoadFile": "Loading the document failed. Please select a different file.",
|
||||
"SSE.Controllers.Main.errorMailMergeSaveFile": "Merge failed.",
|
||||
"SSE.Controllers.Main.errorMaxPoints": "The maximum number of points in series per chart is 4096.",
|
||||
"SSE.Controllers.Main.errorMoveRange": "Cannot change part of a merged cell",
|
||||
"SSE.Controllers.Main.errorMultiCellFormula": "Multi-cell array formulas are not allowed in tables.",
|
||||
"SSE.Controllers.Main.errorOpenWarning": "The length of one of the formulas in the file exceeded<br>the allowed number of characters and it was removed.",
|
||||
"SSE.Controllers.Main.errorOperandExpected": "The entered function syntax is not correct. Please check if you are missing one of the parentheses - '(' or ')'.",
|
||||
"SSE.Controllers.Main.errorPasteMaxRange": "The copy and paste area do not match.<br>Please select an area with the same size or click the first cell in a row to paste the copied cells.",
|
||||
"SSE.Controllers.Main.errorPrintMaxPagesCount": "Unfortunately, it is not possible to print more than 1500 pages at once in the current program version.<br>This restriction will be removed in the upcoming releases.",
|
||||
"SSE.Controllers.Main.errorProcessSaveResult": "Saving failed",
|
||||
"SSE.Controllers.Main.errorServerVersion": "The editor version has been updated. The page will be reloaded to apply the changes.",
|
||||
"SSE.Controllers.Main.errorSessionAbsolute": "The document editing session has expired. Please reload the page.",
|
||||
"SSE.Controllers.Main.errorSessionIdle": "The document has not been edited for quite a long time. Please reload the page.",
|
||||
"SSE.Controllers.Main.errorSessionToken": "The connection to the server has been interrupted. Please reload the page.",
|
||||
"SSE.Controllers.Main.errorStockChart": "Incorrect row order. To build a stock chart place the data on the sheet in the following order:<br> opening price, max price, min price, closing price.",
|
||||
"SSE.Controllers.Main.errorToken": "The document security token is not correctly formed.<br>Please contact your Document Server administrator.",
|
||||
"SSE.Controllers.Main.errorTokenExpire": "The document security token has expired.<br>Please contact your Document Server administrator.",
|
||||
"SSE.Controllers.Main.errorUnexpectedGuid": "External error.<br>Unexpected GUID. Please contact support in case the error persists.",
|
||||
"SSE.Controllers.Main.errorUpdateVersion": "The file version has been changed. The page will be reloaded.",
|
||||
"SSE.Controllers.Main.errorUpdateVersionOnDisconnect": "Internet connection has been restored, and the file version has been changed.<br>Before you can continue working, you need to download the file or copy its content to make sure nothing is lost, and then reload this page.",
|
||||
"SSE.Controllers.Main.errorOpensource": "Using the free Community version you can open documents for viewing only. To access mobile web editors, a commercial license is required.",
|
||||
"SSE.Controllers.Main.errorUserDrop": "The file cannot be accessed right now.",
|
||||
"SSE.Controllers.Main.errorUsersExceed": "The number of users allowed by the pricing plan was exceeded",
|
||||
"SSE.Controllers.Main.errorViewerDisconnect": "Connection is lost. You can still view the document,<br>but will not be able to download it until the connection is restored and page is reloaded.",
|
||||
"SSE.Controllers.Main.errorWrongBracketsCount": "An error in the entered formula.<br>Wrong number of brackets is used.",
|
||||
"SSE.Controllers.Main.errorWrongOperator": "An error in the entered formula. Wrong operator is used.<br>Please correct the error.",
|
||||
"SSE.Controllers.Main.leavePageText": "You have unsaved changes in this document. Click 'Stay on this Page' to await the autosave of the document. Click 'Leave this Page' to discard all the unsaved changes.",
|
||||
"SSE.Controllers.Main.loadFontsTextText": "Loading data...",
|
||||
"SSE.Controllers.Main.loadFontsTitleText": "Loading Data",
|
||||
"SSE.Controllers.Main.loadFontTextText": "Loading data...",
|
||||
"SSE.Controllers.Main.loadFontTitleText": "Loading Data",
|
||||
"SSE.Controllers.Main.loadImagesTextText": "Loading images...",
|
||||
"SSE.Controllers.Main.loadImagesTitleText": "Loading Images",
|
||||
"SSE.Controllers.Main.loadImageTextText": "Loading image...",
|
||||
"SSE.Controllers.Main.loadImageTitleText": "Loading Image",
|
||||
"SSE.Controllers.Main.loadingDocumentTextText": "Loading spreadsheet...",
|
||||
"SSE.Controllers.Main.loadingDocumentTitleText": "Loading spreadsheet",
|
||||
"SSE.Controllers.Main.mailMergeLoadFileText": "Loading Data Source...",
|
||||
"SSE.Controllers.Main.mailMergeLoadFileTitle": "Loading Data Source",
|
||||
"SSE.Controllers.Main.notcriticalErrorTitle": "Warning",
|
||||
"SSE.Controllers.Main.openErrorText": "An error has occurred while opening the file.",
|
||||
"SSE.Controllers.Main.openTextText": "Opening document...",
|
||||
"SSE.Controllers.Main.openTitleText": "Opening Document",
|
||||
"SSE.Controllers.Main.pastInMergeAreaError": "Cannot change part of a merged cell",
|
||||
"SSE.Controllers.Main.printTextText": "Printing document...",
|
||||
"SSE.Controllers.Main.printTitleText": "Printing Document",
|
||||
"SSE.Controllers.Main.reloadButtonText": "Reload Page",
|
||||
"SSE.Controllers.Main.requestEditFailedMessageText": "Someone is editing this document right now. Please try again later.",
|
||||
"SSE.Controllers.Main.requestEditFailedTitleText": "Access denied",
|
||||
"SSE.Controllers.Main.saveErrorText": "An error has occurred while saving the file.",
|
||||
"SSE.Controllers.Main.savePreparingText": "Preparing to save",
|
||||
"SSE.Controllers.Main.savePreparingTitle": "Preparing to save. Please wait...",
|
||||
"SSE.Controllers.Main.saveTextText": "Saving document...",
|
||||
"SSE.Controllers.Main.saveTitleText": "Saving Document",
|
||||
"SSE.Controllers.Main.scriptLoadError": "The connection is too slow, some of the components could not be loaded. Please reload the page.",
|
||||
"SSE.Controllers.Main.sendMergeText": "Sending Merge...",
|
||||
"SSE.Controllers.Main.sendMergeTitle": "Sending Merge",
|
||||
"SSE.Controllers.Main.textAnonymous": "Anonymous",
|
||||
"SSE.Controllers.Main.textBack": "Back",
|
||||
"SSE.Controllers.Main.textBuyNow": "Visit website",
|
||||
"SSE.Controllers.Main.textCancel": "Cancel",
|
||||
"SSE.Controllers.Main.textClose": "Close",
|
||||
"SSE.Controllers.Main.textContactUs": "Contact sales",
|
||||
"SSE.Controllers.Main.textCustomLoader": "Please note that according to the terms of the license you are not entitled to change the loader.<br>Please contact our Sales Department to get a quote.",
|
||||
"SSE.Controllers.Main.textDone": "Done",
|
||||
"SSE.Controllers.Main.textLoadingDocument": "Loading spreadsheet",
|
||||
"SSE.Controllers.Main.textNoLicenseTitle": "License limit reached",
|
||||
"SSE.Controllers.Main.textOK": "OK",
|
||||
"SSE.Controllers.Main.textPaidFeature": "Paid feature",
|
||||
"SSE.Controllers.Main.textPassword": "Password",
|
||||
"SSE.Controllers.Main.textPreloader": "Loading... ",
|
||||
"SSE.Controllers.Main.textShape": "Shape",
|
||||
"SSE.Controllers.Main.textStrict": "Strict mode",
|
||||
"SSE.Controllers.Main.textTryUndoRedo": "The Undo/Redo functions are disabled for the Fast co-editing mode.<br>Click the 'Strict mode' button to switch to the Strict co-editing mode to edit the file without other users interference and send your changes only after you save them. You can switch between the co-editing modes using the editor Advanced settings.",
|
||||
"SSE.Controllers.Main.textUsername": "Username",
|
||||
"SSE.Controllers.Main.titleLicenseExp": "License expired",
|
||||
"SSE.Controllers.Main.titleServerVersion": "Editor updated",
|
||||
"SSE.Controllers.Main.titleUpdateVersion": "Version changed",
|
||||
"SSE.Controllers.Main.txtAccent": "Accent",
|
||||
"SSE.Controllers.Main.txtArt": "Your text here",
|
||||
"SSE.Controllers.Main.txtBasicShapes": "Basic Shapes",
|
||||
"SSE.Controllers.Main.txtButtons": "Buttons",
|
||||
"SSE.Controllers.Main.txtCallouts": "Callouts",
|
||||
"SSE.Controllers.Main.txtCharts": "Charts",
|
||||
"SSE.Controllers.Main.txtDelimiter": "Delimiter",
|
||||
"SSE.Controllers.Main.txtDiagramTitle": "Chart Title",
|
||||
"SSE.Controllers.Main.txtEditingMode": "Set editing mode...",
|
||||
"SSE.Controllers.Main.txtEncoding": "Encoding",
|
||||
"SSE.Controllers.Main.txtErrorLoadHistory": "Loading history failed",
|
||||
"SSE.Controllers.Main.txtFiguredArrows": "Figured Arrows",
|
||||
"SSE.Controllers.Main.txtLines": "Lines",
|
||||
"SSE.Controllers.Main.txtMath": "Math",
|
||||
"SSE.Controllers.Main.txtProtected": "Once you enter the password and open the file, the current password to the file will be reset",
|
||||
"SSE.Controllers.Main.txtRectangles": "Rectangles",
|
||||
"SSE.Controllers.Main.txtSeries": "Series",
|
||||
"SSE.Controllers.Main.txtSpace": "Space",
|
||||
"SSE.Controllers.Main.txtStarsRibbons": "Stars & Ribbons",
|
||||
"SSE.Controllers.Main.txtStyle_Bad": "Bad",
|
||||
"SSE.Controllers.Main.txtStyle_Calculation": "Calculation",
|
||||
"SSE.Controllers.Main.txtStyle_Check_Cell": "Check Cell",
|
||||
"SSE.Controllers.Main.txtStyle_Comma": "Comma",
|
||||
"SSE.Controllers.Main.txtStyle_Currency": "Currency",
|
||||
"SSE.Controllers.Main.txtStyle_Explanatory_Text": "Explanatory Text",
|
||||
"SSE.Controllers.Main.txtStyle_Good": "Good",
|
||||
"SSE.Controllers.Main.txtStyle_Heading_1": "Heading 1",
|
||||
"SSE.Controllers.Main.txtStyle_Heading_2": "Heading 2",
|
||||
"SSE.Controllers.Main.txtStyle_Heading_3": "Heading 3",
|
||||
"SSE.Controllers.Main.txtStyle_Heading_4": "Heading 4",
|
||||
"SSE.Controllers.Main.txtStyle_Input": "Input",
|
||||
"SSE.Controllers.Main.txtStyle_Linked_Cell": "Linked Cell",
|
||||
"SSE.Controllers.Main.txtStyle_Neutral": "Neutral",
|
||||
"SSE.Controllers.Main.txtStyle_Normal": "Normal",
|
||||
"SSE.Controllers.Main.txtStyle_Note": "Note",
|
||||
"SSE.Controllers.Main.txtStyle_Output": "Output",
|
||||
"SSE.Controllers.Main.txtStyle_Percent": "Percent",
|
||||
"SSE.Controllers.Main.txtStyle_Title": "Title",
|
||||
"SSE.Controllers.Main.txtStyle_Total": "Total",
|
||||
"SSE.Controllers.Main.txtStyle_Warning_Text": "Warning Text",
|
||||
"SSE.Controllers.Main.txtTab": "Tab",
|
||||
"SSE.Controllers.Main.txtXAxis": "X Axis",
|
||||
"SSE.Controllers.Main.txtYAxis": "Y Axis",
|
||||
"SSE.Controllers.Main.unknownErrorText": "Unknown error.",
|
||||
"SSE.Controllers.Main.unsupportedBrowserErrorText": "Your browser is not supported.",
|
||||
"SSE.Controllers.Main.uploadImageExtMessage": "Unknown image format.",
|
||||
"SSE.Controllers.Main.uploadImageFileCountMessage": "No images uploaded.",
|
||||
"SSE.Controllers.Main.uploadImageSizeMessage": "Maximum image size limit exceeded.",
|
||||
"SSE.Controllers.Main.uploadImageTextText": "Uploading image...",
|
||||
"SSE.Controllers.Main.uploadImageTitleText": "Uploading Image",
|
||||
"SSE.Controllers.Main.waitText": "Please, wait...",
|
||||
"SSE.Controllers.Main.warnLicenseExp": "Your license has expired.<br>Please update your license and refresh the page.",
|
||||
"SSE.Controllers.Main.warnNoLicense": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.<br>Contact %1 sales team for personal upgrade terms.",
|
||||
"SSE.Controllers.Main.warnNoLicenseUsers": "You've reached the user limit for %1 editors. Contact %1 sales team for personal upgrade terms.",
|
||||
"SSE.Controllers.Main.warnLicenseExceeded": "You've reached the limit for simultaneous connections to %1 editors. This document will be opened for viewing only.<br>Contact your administrator to learn more.",
|
||||
"SSE.Controllers.Main.warnLicenseUsersExceeded": "You've reached the user limit for %1 editors. Contact your administrator to learn more.",
|
||||
"SSE.Controllers.Main.warnProcessRightsChange": "You have been denied the right to edit the file.",
|
||||
"SSE.Controllers.Main.textHasMacros": "The file contains automatic macros.<br>Do you want to run macros?",
|
||||
"SSE.Controllers.Main.textRemember": "Remember my choice",
|
||||
"SSE.Controllers.Main.textYes": "Yes",
|
||||
"SSE.Controllers.Main.textNo": "No",
|
||||
"SSE.Controllers.Search.textNoTextFound": "Text not found",
|
||||
"SSE.Controllers.Search.textReplaceAll": "Replace All",
|
||||
"SSE.Controllers.Settings.notcriticalErrorTitle": "Warning",
|
||||
"SSE.Controllers.Settings.warnDownloadAs": "If you continue saving in this format all features except the text will be lost.<br>Are you sure you want to continue?",
|
||||
"SSE.Controllers.Statusbar.cancelButtonText": "Cancel",
|
||||
"SSE.Controllers.Statusbar.errNameExists": "Worksheet with such name already exists.",
|
||||
"SSE.Controllers.Statusbar.errNameWrongChar": "A sheet name cannot contains characters: \\, /, *, ?, [, ], :",
|
||||
"SSE.Controllers.Statusbar.errNotEmpty": "Sheet name must not be empty",
|
||||
"SSE.Controllers.Statusbar.errorLastSheet": "Workbook must have at least one visible worksheet.",
|
||||
"SSE.Controllers.Statusbar.errorRemoveSheet": "Can't delete the worksheet.",
|
||||
"SSE.Controllers.Statusbar.menuDelete": "Delete",
|
||||
"SSE.Controllers.Statusbar.menuDuplicate": "Duplicate",
|
||||
"SSE.Controllers.Statusbar.menuHide": "Hide",
|
||||
"SSE.Controllers.Statusbar.menuRename": "Rename",
|
||||
"SSE.Controllers.Statusbar.menuUnhide": "Unhide",
|
||||
"SSE.Controllers.Statusbar.notcriticalErrorTitle": "Warning",
|
||||
"SSE.Controllers.Statusbar.strRenameSheet": "Rename Sheet",
|
||||
"SSE.Controllers.Statusbar.strSheet": "Sheet",
|
||||
"SSE.Controllers.Statusbar.strSheetName": "Sheet Name",
|
||||
"SSE.Controllers.Statusbar.textExternalLink": "External Link",
|
||||
"SSE.Controllers.Statusbar.warnDeleteSheet": "The selected worksheets might contain data. Are you sure you want to proceed?",
|
||||
"SSE.Controllers.Statusbar.menuMore": "More",
|
||||
"SSE.Controllers.Toolbar.dlgLeaveMsgText": "You have unsaved changes in this document. Click 'Stay on this Page' to await the autosave of the document. Click 'Leave this Page' to discard all the unsaved changes.",
|
||||
"SSE.Controllers.Toolbar.dlgLeaveTitleText": "You leave the application",
|
||||
"SSE.Controllers.Toolbar.leaveButtonText": "Leave this Page",
|
||||
"SSE.Controllers.Toolbar.stayButtonText": "Stay on this Page",
|
||||
"SSE.Views.AddFunction.sCatDateAndTime": "Date and time",
|
||||
"SSE.Views.AddFunction.sCatEngineering": "Engineering",
|
||||
"SSE.Views.AddFunction.sCatFinancial": "Financial",
|
||||
"SSE.Views.AddFunction.sCatInformation": "Information",
|
||||
"SSE.Views.AddFunction.sCatLogical": "Logical",
|
||||
"SSE.Views.AddFunction.sCatLookupAndReference": "Lookup and Reference",
|
||||
"SSE.Views.AddFunction.sCatMathematic": "Math and trigonometry",
|
||||
"SSE.Views.AddFunction.sCatStatistical": "Statistical",
|
||||
"SSE.Views.AddFunction.sCatTextAndData": "Text and data",
|
||||
"SSE.Views.AddFunction.textBack": "Back",
|
||||
"SSE.Views.AddFunction.textGroups": "Categories",
|
||||
"SSE.Views.AddLink.textAddLink": "Add Link",
|
||||
"SSE.Views.AddLink.textAddress": "Address",
|
||||
"SSE.Views.AddLink.textDisplay": "Display",
|
||||
"SSE.Views.AddLink.textExternalLink": "External Link",
|
||||
"SSE.Views.AddLink.textInsert": "Insert",
|
||||
"SSE.Views.AddLink.textInternalLink": "Internal Data Range",
|
||||
"SSE.Views.AddLink.textLink": "Link",
|
||||
"SSE.Views.AddLink.textLinkType": "Link Type",
|
||||
"SSE.Views.AddLink.textRange": "Range",
|
||||
"SSE.Views.AddLink.textRequired": "Required",
|
||||
"SSE.Views.AddLink.textSelectedRange": "Selected Range",
|
||||
"SSE.Views.AddLink.textSheet": "Sheet",
|
||||
"SSE.Views.AddLink.textTip": "Screen Tip",
|
||||
"SSE.Views.AddOther.textAddress": "Address",
|
||||
"SSE.Views.AddOther.textBack": "Back",
|
||||
"SSE.Views.AddOther.textFilter": "Filter",
|
||||
"SSE.Views.AddOther.textFromLibrary": "Picture from Library",
|
||||
"SSE.Views.AddOther.textFromURL": "Picture from URL",
|
||||
"SSE.Views.AddOther.textImageURL": "Image URL",
|
||||
"SSE.Views.AddOther.textInsert": "Insert",
|
||||
"SSE.Views.AddOther.textInsertImage": "Insert Image",
|
||||
"SSE.Views.AddOther.textLink": "Link",
|
||||
"SSE.Views.AddOther.textLinkSettings": "Link Settings",
|
||||
"SSE.Views.AddOther.textComment": "Comment",
|
||||
"SSE.Views.AddOther.textAddComment": "Add Comment",
|
||||
"SSE.Views.AddOther.textDone": "Done",
|
||||
"SSE.Views.AddOther.textSort": "Sort and Filter",
|
||||
"SSE.Views.EditCell.textAccounting": "Accounting",
|
||||
"SSE.Views.EditCell.textAddCustomColor": "Add Custom Color",
|
||||
"SSE.Views.EditCell.textAlignBottom": "Align Bottom",
|
||||
"SSE.Views.EditCell.textAlignCenter": "Align Center",
|
||||
"SSE.Views.EditCell.textAlignLeft": "Align Left",
|
||||
"SSE.Views.EditCell.textAlignMiddle": "Align Middle",
|
||||
"SSE.Views.EditCell.textAlignRight": "Align Right",
|
||||
"SSE.Views.EditCell.textAlignTop": "Align Top",
|
||||
"SSE.Views.EditCell.textAllBorders": "All Borders",
|
||||
"SSE.Views.EditCell.textBack": "Back",
|
||||
"SSE.Views.EditCell.textBorderStyle": "Border Style",
|
||||
"SSE.Views.EditCell.textBottomBorder": "Bottom Border",
|
||||
"SSE.Views.EditCell.textCellStyle": "Cell Styles",
|
||||
"SSE.Views.EditCell.textCharacterBold": "B",
|
||||
"SSE.Views.EditCell.textCharacterItalic": "I",
|
||||
"SSE.Views.EditCell.textCharacterUnderline": "U",
|
||||
"SSE.Views.EditCell.textColor": "Color",
|
||||
"SSE.Views.EditCell.textCurrency": "Currency",
|
||||
"SSE.Views.EditCell.textCustomColor": "Custom Color",
|
||||
"SSE.Views.EditCell.textDate": "Date",
|
||||
"SSE.Views.EditCell.textDiagDownBorder": "Diagonal Down Border",
|
||||
"SSE.Views.EditCell.textDiagUpBorder": "Diagonal Up Border",
|
||||
"SSE.Views.EditCell.textDollar": "Dollar",
|
||||
"SSE.Views.EditCell.textEuro": "Euro",
|
||||
"SSE.Views.EditCell.textFillColor": "Fill Color",
|
||||
"SSE.Views.EditCell.textFonts": "Fonts",
|
||||
"SSE.Views.EditCell.textFormat": "Format",
|
||||
"SSE.Views.EditCell.textGeneral": "General",
|
||||
"SSE.Views.EditCell.textInBorders": "Inside Borders",
|
||||
"SSE.Views.EditCell.textInHorBorder": "Inside Horizontal Border",
|
||||
"SSE.Views.EditCell.textInteger": "Integer",
|
||||
"SSE.Views.EditCell.textInVertBorder": "Inside Vertical Border",
|
||||
"SSE.Views.EditCell.textJustified": "Justified",
|
||||
"SSE.Views.EditCell.textLeftBorder": "Left Border",
|
||||
"SSE.Views.EditCell.textMedium": "Medium",
|
||||
"SSE.Views.EditCell.textNoBorder": "No Border",
|
||||
"SSE.Views.EditCell.textNumber": "Number",
|
||||
"SSE.Views.EditCell.textPercentage": "Percentage",
|
||||
"SSE.Views.EditCell.textPound": "Pound",
|
||||
"SSE.Views.EditCell.textRightBorder": "Right Border",
|
||||
"SSE.Views.EditCell.textRouble": "Rouble",
|
||||
"SSE.Views.EditCell.textScientific": "Scientific",
|
||||
"SSE.Views.EditCell.textSize": "Size",
|
||||
"SSE.Views.EditCell.textText": "Text",
|
||||
"SSE.Views.EditCell.textTextColor": "Text Color",
|
||||
"SSE.Views.EditCell.textTextFormat": "Text Format",
|
||||
"SSE.Views.EditCell.textThick": "Thick",
|
||||
"SSE.Views.EditCell.textThin": "Thin",
|
||||
"SSE.Views.EditCell.textTime": "Time",
|
||||
"SSE.Views.EditCell.textTopBorder": "Top Border",
|
||||
"SSE.Views.EditCell.textWrapText": "Wrap Text",
|
||||
"SSE.Views.EditCell.textYen": "Yen",
|
||||
"SSE.Views.EditCell.textTextOrientation": "Text Orientation",
|
||||
"SSE.Views.EditCell.textHorizontalText": "Horizontal Text",
|
||||
"SSE.Views.EditCell.textAngleCounterclockwise": "Angle Counterclockwise",
|
||||
"SSE.Views.EditCell.textAngleClockwise": "Angle Clockwise",
|
||||
"SSE.Views.EditCell.textVerticalText": "Vertical Text",
|
||||
"SSE.Views.EditCell.textRotateTextUp": "Rotate Text Up",
|
||||
"SSE.Views.EditCell.textRotateTextDown": "Rotate Text Down",
|
||||
"SSE.Views.EditChart.textAddCustomColor": "Add Custom Color",
|
||||
"SSE.Views.EditChart.textAuto": "Auto",
|
||||
"SSE.Views.EditChart.textAxisCrosses": "Axis Crosses",
|
||||
"SSE.Views.EditChart.textAxisOptions": "Axis Options",
|
||||
"SSE.Views.EditChart.textAxisPosition": "Axis Position",
|
||||
"SSE.Views.EditChart.textAxisTitle": "Axis Title",
|
||||
"SSE.Views.EditChart.textBack": "Back",
|
||||
"SSE.Views.EditChart.textBackward": "Move Backward",
|
||||
"SSE.Views.EditChart.textBorder": "Border",
|
||||
"SSE.Views.EditChart.textBottom": "Bottom",
|
||||
"SSE.Views.EditChart.textChart": "Chart",
|
||||
"SSE.Views.EditChart.textChartTitle": "Chart Title",
|
||||
"SSE.Views.EditChart.textColor": "Color",
|
||||
"SSE.Views.EditChart.textCrossesValue": "Crosses Value",
|
||||
"SSE.Views.EditChart.textCustomColor": "Custom Color",
|
||||
"SSE.Views.EditChart.textDataLabels": "Data Labels",
|
||||
"SSE.Views.EditChart.textDesign": "Design",
|
||||
"SSE.Views.EditChart.textDisplayUnits": "Display Units",
|
||||
"SSE.Views.EditChart.textFill": "Fill",
|
||||
"SSE.Views.EditChart.textForward": "Move Forward",
|
||||
"SSE.Views.EditChart.textGridlines": "Gridlines",
|
||||
"SSE.Views.EditChart.textHorAxis": "Horizontal Axis",
|
||||
"SSE.Views.EditChart.textHorizontal": "Horizontal",
|
||||
"SSE.Views.EditChart.textLabelOptions": "Label Options",
|
||||
"SSE.Views.EditChart.textLabelPos": "Label Position",
|
||||
"SSE.Views.EditChart.textLayout": "Layout",
|
||||
"SSE.Views.EditChart.textLeft": "Left",
|
||||
"SSE.Views.EditChart.textLeftOverlay": "Left Overlay",
|
||||
"SSE.Views.EditChart.textLegend": "Legend",
|
||||
"SSE.Views.EditChart.textMajor": "Major",
|
||||
"SSE.Views.EditChart.textMajorMinor": "Major and Minor",
|
||||
"SSE.Views.EditChart.textMajorType": "Major Type",
|
||||
"SSE.Views.EditChart.textMaxValue": "Maximum Value",
|
||||
"SSE.Views.EditChart.textMinor": "Minor",
|
||||
"SSE.Views.EditChart.textMinorType": "Minor Type",
|
||||
"SSE.Views.EditChart.textMinValue": "Minimum Value",
|
||||
"SSE.Views.EditChart.textNone": "None",
|
||||
"SSE.Views.EditChart.textNoOverlay": "No Overlay",
|
||||
"SSE.Views.EditChart.textOverlay": "Overlay",
|
||||
"SSE.Views.EditChart.textRemoveChart": "Remove Chart",
|
||||
"SSE.Views.EditChart.textReorder": "Reorder",
|
||||
"SSE.Views.EditChart.textRight": "Right",
|
||||
"SSE.Views.EditChart.textRightOverlay": "Right Overlay",
|
||||
"SSE.Views.EditChart.textRotated": "Rotated",
|
||||
"SSE.Views.EditChart.textSize": "Size",
|
||||
"SSE.Views.EditChart.textStyle": "Style",
|
||||
"SSE.Views.EditChart.textTickOptions": "Tick Options",
|
||||
"SSE.Views.EditChart.textToBackground": "Send to Background",
|
||||
"SSE.Views.EditChart.textToForeground": "Bring to Foreground",
|
||||
"SSE.Views.EditChart.textTop": "Top",
|
||||
"SSE.Views.EditChart.textType": "Type",
|
||||
"SSE.Views.EditChart.textValReverseOrder": "Values in Reverse Order",
|
||||
"SSE.Views.EditChart.textVerAxis": "Vertical Axis",
|
||||
"SSE.Views.EditChart.textVertical": "Vertical",
|
||||
"SSE.Views.EditHyperlink.textBack": "Back",
|
||||
"SSE.Views.EditHyperlink.textDisplay": "Display",
|
||||
"SSE.Views.EditHyperlink.textEditLink": "Save Link",
|
||||
"SSE.Views.EditHyperlink.textExternalLink": "External Link",
|
||||
"SSE.Views.EditHyperlink.textInternalLink": "Internal Data Range",
|
||||
"SSE.Views.EditHyperlink.textLink": "Link",
|
||||
"SSE.Views.EditHyperlink.textLinkType": "Link Type",
|
||||
"SSE.Views.EditHyperlink.textRange": "Range",
|
||||
"SSE.Views.EditHyperlink.textRemoveLink": "Remove Link",
|
||||
"SSE.Views.EditHyperlink.textScreenTip": "Screen Tip",
|
||||
"SSE.Views.EditHyperlink.textSheet": "Sheet",
|
||||
"SSE.Views.EditImage.textAddress": "Address",
|
||||
"SSE.Views.EditImage.textBack": "Back",
|
||||
"SSE.Views.EditImage.textBackward": "Move Backward",
|
||||
"SSE.Views.EditImage.textDefault": "Actual Size",
|
||||
"SSE.Views.EditImage.textForward": "Move Forward",
|
||||
"SSE.Views.EditImage.textFromLibrary": "Picture from Library",
|
||||
"SSE.Views.EditImage.textFromURL": "Picture from URL",
|
||||
"SSE.Views.EditImage.textImageURL": "Image URL",
|
||||
"SSE.Views.EditImage.textLinkSettings": "Link Settings",
|
||||
"SSE.Views.EditImage.textRemove": "Remove Image",
|
||||
"SSE.Views.EditImage.textReorder": "Reorder",
|
||||
"SSE.Views.EditImage.textReplace": "Replace",
|
||||
"SSE.Views.EditImage.textReplaceImg": "Replace Image",
|
||||
"SSE.Views.EditImage.textToBackground": "Send to Background",
|
||||
"SSE.Views.EditImage.textToForeground": "Bring to Foreground",
|
||||
"SSE.Views.EditShape.textAddCustomColor": "Add Custom Color",
|
||||
"SSE.Views.EditShape.textBack": "Back",
|
||||
"SSE.Views.EditShape.textBackward": "Move Backward",
|
||||
"SSE.Views.EditShape.textBorder": "Border",
|
||||
"SSE.Views.EditShape.textColor": "Color",
|
||||
"SSE.Views.EditShape.textCustomColor": "Custom Color",
|
||||
"SSE.Views.EditShape.textEffects": "Effects",
|
||||
"SSE.Views.EditShape.textFill": "Fill",
|
||||
"SSE.Views.EditShape.textForward": "Move Forward",
|
||||
"SSE.Views.EditShape.textOpacity": "Opacity",
|
||||
"SSE.Views.EditShape.textRemoveShape": "Remove Shape",
|
||||
"SSE.Views.EditShape.textReorder": "Reorder",
|
||||
"SSE.Views.EditShape.textReplace": "Replace",
|
||||
"SSE.Views.EditShape.textSize": "Size",
|
||||
"SSE.Views.EditShape.textStyle": "Style",
|
||||
"SSE.Views.EditShape.textToBackground": "Send to Background",
|
||||
"SSE.Views.EditShape.textToForeground": "Bring to Foreground",
|
||||
"SSE.Views.EditText.textAddCustomColor": "Add Custom Color",
|
||||
"SSE.Views.EditText.textBack": "Back",
|
||||
"SSE.Views.EditText.textCharacterBold": "B",
|
||||
"SSE.Views.EditText.textCharacterItalic": "I",
|
||||
"SSE.Views.EditText.textCharacterUnderline": "U",
|
||||
"SSE.Views.EditText.textCustomColor": "Custom Color",
|
||||
"SSE.Views.EditText.textFillColor": "Fill Color",
|
||||
"SSE.Views.EditText.textFonts": "Fonts",
|
||||
"SSE.Views.EditText.textSize": "Size",
|
||||
"SSE.Views.EditText.textTextColor": "Text Color",
|
||||
"SSE.Views.FilterOptions.textClearFilter": "Clear Filter",
|
||||
"SSE.Views.FilterOptions.textDeleteFilter": "Delete Filter",
|
||||
"SSE.Views.FilterOptions.textFilter": "Filter Options",
|
||||
"SSE.Views.Search.textByColumns": "By columns",
|
||||
"SSE.Views.Search.textByRows": "By rows",
|
||||
"SSE.Views.Search.textDone": "Done",
|
||||
"SSE.Views.Search.textFind": "Find",
|
||||
"SSE.Views.Search.textFindAndReplace": "Find and Replace",
|
||||
"SSE.Views.Search.textFormulas": "Formulas",
|
||||
"SSE.Views.Search.textHighlightRes": "Highlight results",
|
||||
"SSE.Views.Search.textLookIn": "Look In",
|
||||
"SSE.Views.Search.textMatchCase": "Match Case",
|
||||
"SSE.Views.Search.textMatchCell": "Match Cell",
|
||||
"SSE.Views.Search.textReplace": "Replace",
|
||||
"SSE.Views.Search.textSearch": "Search",
|
||||
"SSE.Views.Search.textSearchBy": "Search",
|
||||
"SSE.Views.Search.textSearchIn": "Search In",
|
||||
"SSE.Views.Search.textSheet": "Sheet",
|
||||
"SSE.Views.Search.textValues": "Values",
|
||||
"SSE.Views.Search.textWorkbook": "Workbook",
|
||||
"SSE.Views.Settings. textLocation": "Location",
|
||||
"SSE.Views.Settings.textAbout": "About",
|
||||
"SSE.Views.Settings.textAddress": "address",
|
||||
"SSE.Views.Settings.textApplication": "Application",
|
||||
"SSE.Views.Settings.textApplicationSettings": "Application Settings",
|
||||
"SSE.Views.Settings.textAuthor": "Author",
|
||||
"SSE.Views.Settings.textBack": "Back",
|
||||
"SSE.Views.Settings.textBottom": "Bottom",
|
||||
"SSE.Views.Settings.textCentimeter": "Centimeter",
|
||||
"SSE.Views.Settings.textCollaboration": "Collaboration",
|
||||
"SSE.Views.Settings.textColorSchemes": "Color Schemes",
|
||||
"SSE.Views.Settings.textComment": "Comment",
|
||||
"SSE.Views.Settings.textCommentingDisplay": "Commenting Display",
|
||||
"SSE.Views.Settings.textCreated": "Created",
|
||||
"SSE.Views.Settings.textCreateDate": "Creation date",
|
||||
"SSE.Views.Settings.textCustom": "Custom",
|
||||
"SSE.Views.Settings.textCustomSize": "Custom Size",
|
||||
"SSE.Views.Settings.textDisplayComments": "Comments",
|
||||
"SSE.Views.Settings.textDisplayResolvedComments": "Resolved Comments",
|
||||
"SSE.Views.Settings.textDocInfo": "Spreadsheet Info",
|
||||
"SSE.Views.Settings.textDocTitle": "Spreadsheet title",
|
||||
"SSE.Views.Settings.textDone": "Done",
|
||||
"SSE.Views.Settings.textDownload": "Download",
|
||||
"SSE.Views.Settings.textDownloadAs": "Download As...",
|
||||
"SSE.Views.Settings.textEditDoc": "Edit Document",
|
||||
"SSE.Views.Settings.textEmail": "email",
|
||||
"SSE.Views.Settings.textExample": "Example",
|
||||
"SSE.Views.Settings.textFind": "Find",
|
||||
"SSE.Views.Settings.textFindAndReplace": "Find and Replace",
|
||||
"SSE.Views.Settings.textFormat": "Format",
|
||||
"SSE.Views.Settings.textFormulaLanguage": "Formula Language",
|
||||
"SSE.Views.Settings.textHelp": "Help",
|
||||
"SSE.Views.Settings.textHideGridlines": "Hide Gridlines",
|
||||
"SSE.Views.Settings.textHideHeadings": "Hide Headings",
|
||||
"SSE.Views.Settings.textInch": "Inch",
|
||||
"SSE.Views.Settings.textLandscape": "Landscape",
|
||||
"SSE.Views.Settings.textLastModified": "Last Modified",
|
||||
"SSE.Views.Settings.textLastModifiedBy": "Last Modified By",
|
||||
"SSE.Views.Settings.textLeft": "Left",
|
||||
"SSE.Views.Settings.textLoading": "Loading...",
|
||||
"SSE.Views.Settings.textMargins": "Margins",
|
||||
"SSE.Views.Settings.textOrientation": "Orientation",
|
||||
"SSE.Views.Settings.textOwner": "Owner",
|
||||
"SSE.Views.Settings.textPoint": "Point",
|
||||
"SSE.Views.Settings.textPortrait": "Portrait",
|
||||
"SSE.Views.Settings.textPoweredBy": "Powered by",
|
||||
"SSE.Views.Settings.textPrint": "Print",
|
||||
"SSE.Views.Settings.textR1C1Style": "R1C1 Reference Style",
|
||||
"SSE.Views.Settings.textRegionalSettings": "Regional Settings",
|
||||
"SSE.Views.Settings.textRight": "Right",
|
||||
"SSE.Views.Settings.textSettings": "Settings",
|
||||
"SSE.Views.Settings.textSpreadsheetFormats": "Spreadsheet Formats",
|
||||
"SSE.Views.Settings.textSpreadsheetSettings": "Spreadsheet Settings",
|
||||
"SSE.Views.Settings.textSubject": "Subject",
|
||||
"SSE.Views.Settings.textTel": "tel",
|
||||
"SSE.Views.Settings.textTitle": "Title",
|
||||
"SSE.Views.Settings.textTop": "Top",
|
||||
"SSE.Views.Settings.textUnitOfMeasurement": "Unit of Measurement",
|
||||
"SSE.Views.Settings.textUploaded": "Uploaded",
|
||||
"SSE.Views.Settings.textVersion": "Version",
|
||||
"SSE.Views.Settings.unknownText": "Unknown",
|
||||
"SSE.Views.Settings.textMacrosSettings": "Macros Settings",
|
||||
"SSE.Views.Settings.textDisableAll": "Disable All",
|
||||
"SSE.Views.Settings.textDisableAllMacrosWithoutNotification": "Disable all macros without notification",
|
||||
"SSE.Views.Settings.textShowNotification": "Show Notification",
|
||||
"SSE.Views.Settings.textDisableAllMacrosWithNotification": "Disable all macros with notification",
|
||||
"SSE.Views.Settings.textEnableAll": "Enable All",
|
||||
"SSE.Views.Settings.textEnableAllMacrosWithoutNotification": "Enable all macros without notification",
|
||||
"SSE.Views.Toolbar.textBack": "Back"
|
||||
}
|
||||
"Controller" : {
|
||||
"Main" : {
|
||||
"SDK": {
|
||||
},
|
||||
"textAnonymous": "Anonymous"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
43
apps/spreadsheeteditor/mobile/src/app.js
Normal file
43
apps/spreadsheeteditor/mobile/src/app.js
Normal file
|
@ -0,0 +1,43 @@
|
|||
// Import React and ReactDOM
|
||||
import React, { Suspense } from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
|
||||
// Import Framework7
|
||||
import Framework7 from 'framework7/framework7-lite.esm.bundle.js';
|
||||
|
||||
// Import Framework7-React Plugin
|
||||
import Framework7React from 'framework7-react';
|
||||
|
||||
import jQuery from 'jquery';
|
||||
window.jQuery = jQuery;
|
||||
window.$ = jQuery;
|
||||
|
||||
// Import Framework7 Styles
|
||||
import 'framework7/css/framework7.bundle.css';
|
||||
|
||||
// Import App Custom Styles
|
||||
import './less/app.less';
|
||||
import '../../../../../sdkjs/cell/css/main-mobile.css'
|
||||
|
||||
// Import App Component
|
||||
import App from './page/app';
|
||||
import { I18nextProvider } from 'react-i18next';
|
||||
import i18n from './lib/i18n.js';
|
||||
|
||||
import { Provider } from 'mobx-react';
|
||||
import { stores } from './store/mainStore';
|
||||
|
||||
// Init F7 React Plugin
|
||||
Framework7.use(Framework7React);
|
||||
|
||||
// Mount React App
|
||||
ReactDOM.render(
|
||||
<I18nextProvider i18n={i18n}>
|
||||
<Provider {...stores}>
|
||||
<Suspense fallback="loading">
|
||||
<App />
|
||||
</Suspense>
|
||||
</Provider>
|
||||
</I18nextProvider>,
|
||||
document.getElementById('app'),
|
||||
);
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
import React from 'react';
|
||||
import CellEditorView from '../view/CellEditor';
|
||||
|
||||
const CellEditor = props => {
|
||||
return <CellEditorView />
|
||||
};
|
||||
|
||||
export default CellEditor;
|
251
apps/spreadsheeteditor/mobile/src/controller/Main.jsx
Normal file
251
apps/spreadsheeteditor/mobile/src/controller/Main.jsx
Normal file
|
@ -0,0 +1,251 @@
|
|||
|
||||
import React, { Component } from 'react'
|
||||
import { inject } from "mobx-react";
|
||||
import { withTranslation } from 'react-i18next';
|
||||
import CollaborationController from '../../../../common/mobile/lib/controller/Collaboration.jsx'
|
||||
|
||||
class MainController extends Component {
|
||||
constructor(props) {
|
||||
super(props)
|
||||
}
|
||||
|
||||
initSdk() {
|
||||
const script = document.createElement("script");
|
||||
script.src = "../../../../sdkjs/develop/sdkjs/cell/scripts.js";
|
||||
script.async = true;
|
||||
script.onload = () => {
|
||||
let dep_scripts = [
|
||||
'../../../vendor/jquery/jquery.min.js',
|
||||
'../../../vendor/jquery.browser/dist/jquery.browser.min.js',
|
||||
'../../../vendor/bootstrap/dist/js/bootstrap.js',
|
||||
'../../../vendor/underscore/underscore-min.js',
|
||||
'../../../vendor/xregexp/xregexp-all-min.js',
|
||||
'../../../vendor/sockjs/sockjs.min.js',
|
||||
'../../../vendor/jszip/jszip.min.js',
|
||||
'../../../vendor/jszip-utils/jszip-utils.min.js'];
|
||||
dep_scripts.push(...sdk_scripts);
|
||||
|
||||
const promise_get_script = (scriptpath) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const script = document.createElement("script");
|
||||
script.src = scriptpath;
|
||||
script.onload = () => {
|
||||
resolve('ok');
|
||||
};
|
||||
script.onerror = () => {
|
||||
reject('error');
|
||||
};
|
||||
|
||||
document.body.appendChild(script);
|
||||
});
|
||||
};
|
||||
|
||||
const loadConfig = data => {
|
||||
let me = this;
|
||||
|
||||
me.editorConfig = Object.assign({}, this.editorConfig, data.config);
|
||||
me.appOptions.user = Common.Utils.fillUserInfo(me.editorConfig.user, me.editorConfig.lang, "Local.User"/*me.textAnonymous*/);
|
||||
/**/
|
||||
me.editorConfig.user =
|
||||
me.appOptions.user = Common.Utils.fillUserInfo(me.editorConfig.user, me.editorConfig.lang, me.textAnonymous);
|
||||
me.appOptions.lang = me.editorConfig.lang;
|
||||
|
||||
// var value = Common.localStorage.getItem("sse-settings-regional");
|
||||
// if (value!==null)
|
||||
// this.api.asc_setLocale(parseInt(value));
|
||||
// else {
|
||||
// value = me.appOptions.region;
|
||||
// value = Common.util.LanguageInfo.getLanguages().hasOwnProperty(value) ? value : Common.util.LanguageInfo.getLocalLanguageCode(value);
|
||||
// if (value!==null)
|
||||
// value = parseInt(value);
|
||||
// else
|
||||
// value = (this.editorConfig.lang) ? parseInt(Common.util.LanguageInfo.getLocalLanguageCode(me.editorConfig.lang)) : 0x0409;
|
||||
// this.api.asc_setLocale(value);
|
||||
// }
|
||||
|
||||
// if (me.appOptions.location == 'us' || me.appOptions.location == 'ca')
|
||||
// Common.Utils.Metric.setDefaultMetric(Common.Utils.Metric.c_MetricUnits.inch);
|
||||
//
|
||||
// if (!me.editorConfig.customization || !(me.editorConfig.customization.loaderName || me.editorConfig.customization.loaderLogo))
|
||||
// $('#editor_sdk').append('<div class="doc-placeholder">' + '<div class="columns"></div>'.repeat(2) + '</div>');
|
||||
//
|
||||
// var value = Common.localStorage.getItem("sse-mobile-macros-mode");
|
||||
// if (value === null) {
|
||||
// value = this.editorConfig.customization ? this.editorConfig.customization.macrosMode : 'warn';
|
||||
// value = (value == 'enable') ? 1 : (value == 'disable' ? 2 : 0);
|
||||
// } else
|
||||
// value = parseInt(value);
|
||||
// Common.Utils.InternalSettings.set("sse-mobile-macros-mode", value);
|
||||
|
||||
};
|
||||
|
||||
const loadDocument = data => {
|
||||
this.permissions = {};
|
||||
this.document = data.doc;
|
||||
|
||||
let docInfo = {};
|
||||
|
||||
if ( data.doc ) {
|
||||
this.permissions = Object.assign(this.permissions, data.doc.permissions);
|
||||
|
||||
let _permissions = Object.assign({}, data.doc.permissions),
|
||||
_user = new Asc.asc_CUserInfo();
|
||||
_user.put_Id(this.appOptions.user.id);
|
||||
_user.put_FullName(this.appOptions.user.fullname);
|
||||
|
||||
docInfo = new Asc.asc_CDocInfo();
|
||||
docInfo.put_Id(data.doc.key);
|
||||
docInfo.put_Url(data.doc.url);
|
||||
docInfo.put_Title(data.doc.title);
|
||||
docInfo.put_Format(data.doc.fileType);
|
||||
docInfo.put_VKey(data.doc.vkey);
|
||||
docInfo.put_Options(data.doc.options);
|
||||
docInfo.put_UserInfo(_user);
|
||||
docInfo.put_CallbackUrl(this.editorConfig.callbackUrl);
|
||||
docInfo.put_Token(data.doc.token);
|
||||
docInfo.put_Permissions(_permissions);
|
||||
docInfo.put_EncryptedInfo(this.editorConfig.encryptionKeys);
|
||||
|
||||
// var enable = !this.editorConfig.customization || (this.editorConfig.customization.macros!==false);
|
||||
// docInfo.asc_putIsEnabledMacroses(!!enable);
|
||||
// enable = !this.editorConfig.customization || (this.editorConfig.customization.plugins!==false);
|
||||
// docInfo.asc_putIsEnabledPlugins(!!enable);
|
||||
|
||||
// SSE.getController('Toolbar').setDocumentTitle(data.doc.title);
|
||||
}
|
||||
|
||||
this.api.asc_registerCallback('asc_onGetEditorPermissions', onEditorPermissions);
|
||||
// this.api.asc_registerCallback('asc_onLicenseChanged', _.bind(this.onLicenseChanged, this));
|
||||
// this.api.asc_registerCallback('asc_onRunAutostartMacroses', _.bind(this.onRunAutostartMacroses, this));
|
||||
this.api.asc_setDocInfo(docInfo);
|
||||
this.api.asc_getEditorPermissions(this.editorConfig.licenseUrl, this.editorConfig.customerId);
|
||||
this.api.asc_enableKeyEvents(true);
|
||||
|
||||
// Common.SharedSettings.set('document', data.doc);
|
||||
};
|
||||
|
||||
const onEditorPermissions = params => {
|
||||
let me = this;
|
||||
const licType = params.asc_getLicenseType();
|
||||
|
||||
me.appOptions.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit);
|
||||
// me.appOptions.canEdit = (me.permissions.edit !== false || me.permissions.review === true) && // can edit or review
|
||||
// (me.editorConfig.canRequestEditRights || me.editorConfig.mode !== 'view') && // if mode=="view" -> canRequestEditRights must be defined
|
||||
// (!me.appOptions.isReviewOnly || me.appOptions.canLicense) && // if isReviewOnly==true -> canLicense must be true
|
||||
// me.isSupportEditFeature();
|
||||
// me.appOptions.isEdit = me.appOptions.canLicense && me.appOptions.canEdit && me.editorConfig.mode !== 'view';
|
||||
|
||||
// me.api.asc_setViewMode(!me.appOptions.isEdit);
|
||||
me.api.asc_setViewMode(false);
|
||||
me.api.asc_LoadDocument();
|
||||
};
|
||||
|
||||
const _process_array = (array, fn) => {
|
||||
let results = [];
|
||||
return array.reduce(function(p, item) {
|
||||
return p.then(function() {
|
||||
return fn(item).then(function(data) {
|
||||
results.push(data);
|
||||
return results;
|
||||
});
|
||||
});
|
||||
}, Promise.resolve());
|
||||
};
|
||||
|
||||
_process_array(dep_scripts, promise_get_script)
|
||||
.then ( result => {
|
||||
const {t} = this.props;
|
||||
this.api = new Asc.spreadsheet_api({
|
||||
'id-view': 'editor_sdk',
|
||||
'id-input' : 'ce-cell-content',
|
||||
'mobile': true
|
||||
// 'translate': translate
|
||||
});
|
||||
|
||||
this.appOptions = {};
|
||||
this.bindEvents();
|
||||
|
||||
let value = null /*Common.localStorage.getItem("sse-settings-fontrender")*/;
|
||||
if (value===null) value = window.devicePixelRatio > 1 ? '1' : '3';
|
||||
this.api.asc_setFontRenderingMode(parseInt(value));
|
||||
|
||||
Common.Utils.Metric.setCurrentMetric(Common.Utils.Metric.c_MetricUnits.pt); // TODO: beautify c_MetricUnits
|
||||
|
||||
Common.Gateway.on('init', loadConfig);
|
||||
// Common.Gateway.on('showmessage', _.bind(me.onExternalMessage, me));
|
||||
Common.Gateway.on('opendocument', loadDocument);
|
||||
Common.Gateway.appReady();
|
||||
|
||||
Common.Notifications.trigger('engineCreated', this.api);
|
||||
Common.EditorApi = {get: () => this.api};
|
||||
}, error => {
|
||||
console.log('promise failed ' + error);
|
||||
});
|
||||
};
|
||||
|
||||
script.onerror = () => {
|
||||
console.log('error');
|
||||
};
|
||||
|
||||
document.body.appendChild(script);
|
||||
}
|
||||
|
||||
bindEvents() {
|
||||
const me = this;
|
||||
|
||||
// me.api.asc_registerCallback('asc_onError', _.bind(me.onError, me));
|
||||
me.api.asc_registerCallback('asc_onOpenDocumentProgress', me._onOpenDocumentProgress.bind(me));
|
||||
// me.api.asc_registerCallback('asc_onAdvancedOptions', _.bind(me.onAdvancedOptions, me));
|
||||
// me.api.asc_registerCallback('asc_onDocumentUpdateVersion', _.bind(me.onUpdateVersion, me));
|
||||
// me.api.asc_registerCallback('asc_onServerVersion', _.bind(me.onServerVersion, me));
|
||||
// me.api.asc_registerCallback('asc_onPrintUrl', _.bind(me.onPrintUrl, me));
|
||||
// me.api.asc_registerCallback('asc_onDocumentName', _.bind(me.onDocumentName, me));
|
||||
me.api.asc_registerCallback('asc_onEndAction', me._onLongActionEnd.bind(me));
|
||||
}
|
||||
|
||||
_onLongActionEnd(type, id) {
|
||||
if ( type === Asc.c_oAscAsyncActionType.BlockInteraction && id == Asc.c_oAscAsyncAction.Open ) {
|
||||
Common.Gateway.internalMessage('documentReady', {});
|
||||
Common.Notifications.trigger('document:ready');
|
||||
this._onDocumentContentReady();
|
||||
}
|
||||
}
|
||||
|
||||
_onDocumentContentReady() {
|
||||
const me = this;
|
||||
|
||||
me.api.asc_Resize();
|
||||
|
||||
let value = null /*(this.appOptions.isEditMailMerge || this.appOptions.isEditDiagram) ? 100 : Common.localStorage.getItem("sse-settings-zoom")*/;
|
||||
var zf = (value !== null) ? parseInt(value)/100 : (this.appOptions.customization && this.appOptions.customization.zoom ? parseInt(this.appOptions.customization.zoom)/100 : 1);
|
||||
this.api.asc_setZoom(zf>0 ? zf : 1);
|
||||
|
||||
// this.api.asc_SetFastCollaborative(false);
|
||||
|
||||
me.api.asc_enableKeyEvents(true);
|
||||
me.api.asc_getWorksheetsCount();
|
||||
me.api.asc_showWorksheet(me.api.asc_getActiveWorksheetIndex());
|
||||
|
||||
Common.Gateway.documentReady();
|
||||
}
|
||||
|
||||
_onOpenDocumentProgress(progress) {
|
||||
// if (this.loadMask) {
|
||||
// var $title = $$(this.loadMask).find('.modal-title'),
|
||||
// const proc = (progress.asc_getCurrentFont() + progress.asc_getCurrentImage())/(progress.asc_getFontsCount() + progress.asc_getImagesCount());
|
||||
|
||||
// $title.text(this.textLoadingDocument + ': ' + Math.min(Math.round(proc * 100), 100) + '%');
|
||||
// }
|
||||
}
|
||||
|
||||
render() {
|
||||
return <CollaborationController />
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.initSdk();
|
||||
}
|
||||
}
|
||||
|
||||
const translated = withTranslation()(MainController);
|
||||
export {translated as MainController};
|
95
apps/spreadsheeteditor/mobile/src/index_dev.html
Normal file
95
apps/spreadsheeteditor/mobile/src/index_dev.html
Normal file
|
@ -0,0 +1,95 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<!--
|
||||
Customize this policy to fit your own app's needs. For more guidance, see:
|
||||
https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy
|
||||
Some notes:
|
||||
* https://ssl.gstatic.com is required only on Android and is needed for TalkBack to function properly
|
||||
* Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
|
||||
* Enable inline JS: add 'unsafe-inline' to default-src
|
||||
-->
|
||||
<meta http-equiv="Content-Security-Policy" content="default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: gap: content:">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui, viewport-fit=cover">
|
||||
|
||||
<meta name="theme-color" content="#007aff">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
<title>Spreadsheet Editor</title>
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||||
<link rel="apple-touch-icon" href="static/icons/apple-touch-icon.png">
|
||||
<link rel="icon" href="static/icons/favicon.png">
|
||||
|
||||
|
||||
<!-- built styles file will be auto injected -->
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
const isAndroid = /Android/.test(navigator.userAgent);
|
||||
if ( isAndroid && navigator.platform == 'Win32' )
|
||||
// Framework7 doesn't set Device.android flag when navigator.platform == 'Win32', change it for debug
|
||||
navigator.__defineGetter__('platform', () => 'Win32Debug');
|
||||
|
||||
const getUrlParams = () => {
|
||||
let e,
|
||||
a = /\+/g, // Regex for replacing addition symbol with a space
|
||||
r = /([^&=]+)=?([^&]*)/g,
|
||||
d = s => decodeURIComponent(s.replace(a, " ")),
|
||||
q = window.location.search.substring(1),
|
||||
urlParams = {};
|
||||
|
||||
while (e = r.exec(q))
|
||||
urlParams[d(e[1])] = d(e[2]);
|
||||
|
||||
return urlParams;
|
||||
}
|
||||
|
||||
const encodeUrlParam = str => str.replace(/&/g, '&')
|
||||
.replace(/"/g, '"')
|
||||
.replace(/'/g, ''')
|
||||
.replace(/</g, '<')
|
||||
.replace(/>/g, '>');
|
||||
|
||||
let params = getUrlParams(),
|
||||
lang = (params["lang"] || 'en').split(/[\-\_]/)[0],
|
||||
logo = /*params["headerlogo"] ? encodeUrlParam(params["headerlogo"]) : */null,
|
||||
logoOO = null;
|
||||
if (!logo) {
|
||||
logoOO = isAndroid ? "../../common/mobile/resources/img/header/header-logo-android.png" : "../../common/mobile/resources/img/header/header-logo-ios.png";
|
||||
}
|
||||
|
||||
window.frameEditorId = params["frameEditorId"];
|
||||
window.parentOrigin = params["parentOrigin"];
|
||||
window.Common = {Locale: {currentLang: lang}};
|
||||
|
||||
let brendpanel = document.getElementsByClassName('brendpanel')[0];
|
||||
if (brendpanel) {
|
||||
if ( isAndroid ) {
|
||||
brendpanel.classList.add('android');
|
||||
}
|
||||
brendpanel.classList.add('visible');
|
||||
|
||||
let elem = document.querySelector('.loading-logo');
|
||||
if (elem) {
|
||||
logo && (elem.innerHTML = '<img src=' + logo + '>');
|
||||
logoOO && (elem.innerHTML = '<img src=' + logoOO + '>');
|
||||
elem.style.opacity = 1;
|
||||
}
|
||||
var placeholder = document.getElementsByClassName('placeholder')[0];
|
||||
if (placeholder && isAndroid) {
|
||||
placeholder.classList.add('android');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jquery.min.js"></script>
|
||||
|
||||
<div id="app"></div>
|
||||
|
||||
<!-- built script files will be auto injected -->
|
||||
|
||||
</body>
|
||||
</html>
|
5
apps/spreadsheeteditor/mobile/src/less/app-ios.less
Normal file
5
apps/spreadsheeteditor/mobile/src/less/app-ios.less
Normal file
|
@ -0,0 +1,5 @@
|
|||
|
||||
.device-ios {
|
||||
|
||||
|
||||
}
|
24
apps/spreadsheeteditor/mobile/src/less/app-material.less
Normal file
24
apps/spreadsheeteditor/mobile/src/less/app-material.less
Normal file
|
@ -0,0 +1,24 @@
|
|||
|
||||
// Colors
|
||||
@themeColorLight: #a2bdde;
|
||||
@navBarIconColor: #fff;
|
||||
|
||||
|
||||
.device-android {
|
||||
--f7-navbar-bg-color: @themeColor;
|
||||
--f7-navbar-link-color: @navBarIconColor;
|
||||
--f7-navbar-text-color: @navBarIconColor;
|
||||
|
||||
// Main Toolbar
|
||||
#editor-navbar.navbar .right {
|
||||
padding-right: 4px;
|
||||
}
|
||||
#editor-navbar.navbar .right a.link,
|
||||
#editor-navbar.navbar .left a.link {
|
||||
padding: 0 13px;
|
||||
justify-content: space-between;
|
||||
box-sizing: border-box;
|
||||
align-items: center;
|
||||
width: auto;
|
||||
}
|
||||
}
|
18
apps/spreadsheeteditor/mobile/src/less/app.less
Normal file
18
apps/spreadsheeteditor/mobile/src/less/app.less
Normal file
|
@ -0,0 +1,18 @@
|
|||
|
||||
@themeColor: #40865c;
|
||||
|
||||
@import '../../../../common/mobile/resources/less/_mixins.less';
|
||||
@import '../../../../common/mobile/resources/less/collaboration.less';
|
||||
@import '../../../../common/mobile/resources/less/common.less';
|
||||
@import '../../../../common/mobile/resources/less/common-ios.less';
|
||||
@import '../../../../common/mobile/resources/less/common-material.less';
|
||||
@import './app-material.less';
|
||||
@import './app-ios.less';
|
||||
@import './icons-ios.less';
|
||||
@import './icons-material.less';
|
||||
@import "./icons-common.less";
|
||||
|
||||
:root {
|
||||
--f7-popover-width: 360px;
|
||||
//--f7-page-content-extra-padding-top: 37px;
|
||||
}
|
79
apps/spreadsheeteditor/mobile/src/less/icons-common.less
Normal file
79
apps/spreadsheeteditor/mobile/src/less/icons-common.less
Normal file
|
@ -0,0 +1,79 @@
|
|||
|
||||
.chart-types .thumb {
|
||||
@relativepath: '../../resources/img';
|
||||
&.bar-normal {
|
||||
background-image: url('@{relativepath}/charts/chart-03.png');
|
||||
}
|
||||
&.bar-stacked {
|
||||
background-image: url('@{relativepath}/charts/chart-02.png');
|
||||
}
|
||||
&.bar-pstacked {
|
||||
background-image: url('@{relativepath}/charts/chart-01.png');
|
||||
}
|
||||
&.line-normal {
|
||||
background-image: url('@{relativepath}/charts/chart-06.png');
|
||||
}
|
||||
&.line-stacked {
|
||||
background-image: url('@{relativepath}/charts/chart-05.png');
|
||||
}
|
||||
&.line-pstacked {
|
||||
background-image: url('@{relativepath}/charts/chart-04.png');
|
||||
}
|
||||
&.hbar-normal {
|
||||
background-image: url('@{relativepath}/charts/chart-09.png');
|
||||
}
|
||||
&.hbar-stacked {
|
||||
background-image: url('@{relativepath}/charts/chart-08.png');
|
||||
}
|
||||
&.hbar-pstacked {
|
||||
background-image: url('@{relativepath}/charts/chart-07.png');
|
||||
}
|
||||
&.area-normal {
|
||||
background-image: url('@{relativepath}/charts/chart-12.png');
|
||||
}
|
||||
&.area-stacked {
|
||||
background-image: url('@{relativepath}/charts/chart-11.png');
|
||||
}
|
||||
&.area-pstacked {
|
||||
background-image: url('@{relativepath}/charts/chart-10.png');
|
||||
}
|
||||
&.pie {
|
||||
background-image: url('@{relativepath}/charts/chart-13.png');
|
||||
}
|
||||
&.doughnut {
|
||||
background-image: url('@{relativepath}/charts/chart-14.png');
|
||||
}
|
||||
&.pie3d {
|
||||
background-image: url('@{relativepath}/charts/chart-22.png');
|
||||
}
|
||||
&.scatter {
|
||||
background-image: url('@{relativepath}/charts/chart-15.png');
|
||||
}
|
||||
&.stock {
|
||||
background-image: url('@{relativepath}/charts/chart-16.png');
|
||||
}
|
||||
&.line3d {
|
||||
background-image: url('@{relativepath}/charts/chart-21.png');
|
||||
}
|
||||
&.bar3dnormal {
|
||||
background-image: url('@{relativepath}/charts/chart-17.png');
|
||||
}
|
||||
&.bar3dstack {
|
||||
background-image: url('@{relativepath}/charts/chart-18.png');
|
||||
}
|
||||
&.bar3dpstack {
|
||||
background-image: url('@{relativepath}/charts/chart-19.png');
|
||||
}
|
||||
&.hbar3dnormal {
|
||||
background-image: url('@{relativepath}/charts/chart-25.png');
|
||||
}
|
||||
&.hbar3dstack {
|
||||
background-image: url('@{relativepath}/charts/chart-24.png');
|
||||
}
|
||||
&.hbar3dpstack {
|
||||
background-image: url('@{relativepath}/charts/chart-23.png');
|
||||
}
|
||||
&.bar3dpsnormal {
|
||||
background-image: url('@{relativepath}/charts/chart-20.png');
|
||||
}
|
||||
}
|
507
apps/spreadsheeteditor/mobile/src/less/icons-ios.less
Normal file
507
apps/spreadsheeteditor/mobile/src/less/icons-ios.less
Normal file
File diff suppressed because one or more lines are too long
521
apps/spreadsheeteditor/mobile/src/less/icons-material.less
Normal file
521
apps/spreadsheeteditor/mobile/src/less/icons-material.less
Normal file
File diff suppressed because one or more lines are too long
17
apps/spreadsheeteditor/mobile/src/lib/i18n.js
Normal file
17
apps/spreadsheeteditor/mobile/src/lib/i18n.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
import i18n from 'i18next'
|
||||
import {initReactI18next} from 'react-i18next'
|
||||
import Fetch from 'i18next-fetch-backend'
|
||||
|
||||
i18n.use(initReactI18next)
|
||||
.use(Fetch)
|
||||
.init({
|
||||
lng: Common.Locale.currentLang,
|
||||
fallbackLng: "en",
|
||||
escapeValue: false,
|
||||
backend: {
|
||||
loadPath: './locale/{{lng}}.json'
|
||||
},
|
||||
interpolation: { escapeValue: false },
|
||||
});
|
||||
|
||||
export default i18n;
|
62
apps/spreadsheeteditor/mobile/src/page/app.jsx
Normal file
62
apps/spreadsheeteditor/mobile/src/page/app.jsx
Normal file
|
@ -0,0 +1,62 @@
|
|||
import React from 'react';
|
||||
|
||||
import {App,Views,View,Navbar,NavLeft,NavRight,Link} from 'framework7-react';
|
||||
|
||||
import routes from '../router/routes.js';
|
||||
|
||||
import '../../../../common/Gateway.js';
|
||||
import '../../../../common/main/lib/util/utils.js';
|
||||
import Notifications from '../../../../common/mobile/utils/notifications.js'
|
||||
import {MainController} from '../controller/Main';
|
||||
import {Device} from '../../../../common/mobile/utils/device'
|
||||
import CellEditor from '../controller/CellEditor';
|
||||
|
||||
export default class extends React.Component {
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
this.state = {
|
||||
// Framework7 Parameters
|
||||
f7params: {
|
||||
name: 'Spreadsheet Editor', // App name
|
||||
theme: 'auto', // Automatic theme detection
|
||||
|
||||
// App routes
|
||||
routes: routes,
|
||||
},
|
||||
}
|
||||
|
||||
Common.Notifications = new Notifications();
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<App params={ this.state.f7params } >
|
||||
{/* Your main view, should have "view-main" class */}
|
||||
<View main className="safe-areas" url="/">
|
||||
{/* Top Navbar */}
|
||||
<Navbar id='editor-navbar'>
|
||||
{/*<div slot="before-inner" className="main-logo"><Icon icon="icon-logo"></Icon></div>*/}
|
||||
<NavLeft>
|
||||
<Link icon='icon-undo'></Link>
|
||||
<Link icon='icon-redo'></Link>
|
||||
</NavLeft>
|
||||
<NavRight>
|
||||
<Link id='btn-edit' icon='icon-edit-settings' href={false} onClick={e => this.handleClickToOpenOptions('edit')}></Link>
|
||||
<Link href={false} icon='icon-collaboration' onClick={e => this.handleClickToOpenOptions('coauth')}></Link>
|
||||
<Link id='btn-settings' icon='icon-settings' href={false} onClick={e => this.handleClickToOpenOptions('settings')}></Link>
|
||||
</NavRight>
|
||||
</Navbar>
|
||||
{/*<CellEditor />*/}
|
||||
<MainController />
|
||||
</View>
|
||||
</App>
|
||||
)
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.$f7ready((f7) => {
|
||||
Device.initDom();
|
||||
});
|
||||
}
|
||||
}
|
68
apps/spreadsheeteditor/mobile/src/page/main.jsx
Normal file
68
apps/spreadsheeteditor/mobile/src/page/main.jsx
Normal file
|
@ -0,0 +1,68 @@
|
|||
import React, { Component } from 'react';
|
||||
import { Page, View, Navbar, NavLeft, NavRight, Link, Icon } from 'framework7-react';
|
||||
|
||||
// import EditOptions from '../view/edit/Edit';
|
||||
import Settings from '../view/settings/Settings';
|
||||
import CollaborationView from '../../../../common/mobile/lib/view/Collaboration.jsx'
|
||||
import CellEditor from '../controller/CellEditor';
|
||||
|
||||
export default class MainPage extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
editOptionsVisible: false,
|
||||
settingsVisible: false,
|
||||
collaborationVisible: false,
|
||||
};
|
||||
}
|
||||
|
||||
handleClickToOpenOptions = opts => {
|
||||
this.setState(state => {
|
||||
if ( opts == 'edit' )
|
||||
return {editOptionsVisible: true};
|
||||
else
|
||||
if ( opts == 'settings' )
|
||||
return {settingsVisible: true};
|
||||
else
|
||||
if ( opts == 'coauth' )
|
||||
return {collaborationVisible: true}
|
||||
});
|
||||
};
|
||||
|
||||
handleOptionsViewClosed = opts => {
|
||||
(async () => {
|
||||
await 1 && this.setState(state => {
|
||||
if ( opts == 'edit' )
|
||||
return {editOptionsVisible: false};
|
||||
else
|
||||
if ( opts == 'settings' )
|
||||
return {settingsVisible: false};
|
||||
else
|
||||
if ( opts == 'coauth' )
|
||||
return {collaborationVisible: false}
|
||||
})
|
||||
})();
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Page name="home">
|
||||
{/*<CellEditor />*/}
|
||||
{/* Page content */}
|
||||
<View id="editor_sdk" />
|
||||
{/*{*/}
|
||||
{/*!this.state.editOptionsVisible ? null :*/}
|
||||
{/*<EditOptions onclosed={this.handleOptionsViewClosed.bind(this, 'edit')} />*/}
|
||||
{/*}*/}
|
||||
{
|
||||
!this.state.settingsVisible ? null :
|
||||
<Settings onclosed={this.handleOptionsViewClosed.bind(this, 'settings')} />
|
||||
}
|
||||
{
|
||||
!this.state.collaborationVisible ? null :
|
||||
<CollaborationView onclosed={this.handleOptionsViewClosed.bind(this, 'coauth')} />
|
||||
}
|
||||
</Page>
|
||||
)
|
||||
}
|
||||
};
|
17
apps/spreadsheeteditor/mobile/src/router/routes.js
Normal file
17
apps/spreadsheeteditor/mobile/src/router/routes.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
|
||||
import MainPage from '../page/main';
|
||||
|
||||
import { PageCollaboration, PageUsers } from '../../../../common/mobile/lib/view/Collaboration.jsx';
|
||||
|
||||
var routes = [
|
||||
{
|
||||
path: '/',
|
||||
component: MainPage,
|
||||
},
|
||||
{
|
||||
path: '/users/',
|
||||
component: PageUsers
|
||||
},
|
||||
];
|
||||
|
||||
export default routes;
|
23
apps/spreadsheeteditor/mobile/src/store/mainStore.js
Normal file
23
apps/spreadsheeteditor/mobile/src/store/mainStore.js
Normal file
|
@ -0,0 +1,23 @@
|
|||
|
||||
// import {storeDocumentSettings} from './documentSettings';
|
||||
// import {storeFocusObjects} from "./focusObjects";
|
||||
import {storeUsers} from '../../../../common/mobile/lib/store/users';
|
||||
// import {storeTextSettings} from "./textSettings";
|
||||
// import {storeParagraphSettings} from "./paragraphSettings";
|
||||
// import {storeShapeSettings} from "./shapeSettings";
|
||||
// import {storeImageSettings} from "./imageSettings";
|
||||
// import {storeTableSettings} from "./tableSettings";
|
||||
// import {storeChartSettings} from "./chartSettings";
|
||||
|
||||
export const stores = {
|
||||
// storeFocusObjects: new storeFocusObjects(),
|
||||
// storeDocumentSettings: new storeDocumentSettings(),
|
||||
users: new storeUsers(),
|
||||
// storeTextSettings: new storeTextSettings(),
|
||||
// storeParagraphSettings: new storeParagraphSettings(),
|
||||
// storeShapeSettings: new storeShapeSettings(),
|
||||
// storeChartSettings: new storeChartSettings(),
|
||||
// storeImageSettings: new storeImageSettings(),
|
||||
// storeTableSettings: new storeTableSettings()
|
||||
};
|
||||
|
11
apps/spreadsheeteditor/mobile/src/view/CellEditor.jsx
Normal file
11
apps/spreadsheeteditor/mobile/src/view/CellEditor.jsx
Normal file
|
@ -0,0 +1,11 @@
|
|||
|
||||
import React from 'react';
|
||||
import { Input, View } from 'framework7-react';
|
||||
|
||||
const CellEditorView = props => {
|
||||
return <View name="cellEditor">
|
||||
<Input type="textarea" inputId="ce-cell-content" />
|
||||
</View>;
|
||||
};
|
||||
|
||||
export default CellEditorView;
|
8
apps/spreadsheeteditor/mobile/src/view/Statusbar.jsx
Normal file
8
apps/spreadsheeteditor/mobile/src/view/Statusbar.jsx
Normal file
|
@ -0,0 +1,8 @@
|
|||
import React from 'react';
|
||||
import { View } from 'framework7-react';
|
||||
|
||||
const StatusbarView = props => {
|
||||
return <div id="idx-statusbar" />;
|
||||
};
|
||||
|
||||
export default StatusbarView;
|
116
apps/spreadsheeteditor/mobile/src/view/settings/Settings.jsx
Normal file
116
apps/spreadsheeteditor/mobile/src/view/settings/Settings.jsx
Normal file
|
@ -0,0 +1,116 @@
|
|||
import React, {Component, useEffect} from 'react';
|
||||
import {View,Page,Navbar,NavRight,Link,Popup,Popover,Icon,ListItem,List} from 'framework7-react';
|
||||
import { withTranslation } from 'react-i18next';
|
||||
import {f7} from 'framework7-react';
|
||||
import {Device} from '../../../../../common/mobile/utils/device';
|
||||
|
||||
const routes = [
|
||||
{
|
||||
path: '/',
|
||||
component: 'TSettingsView'
|
||||
},
|
||||
/*{
|
||||
path: '/presentation-settings/',
|
||||
component: PresentationSettingsController,
|
||||
},
|
||||
{
|
||||
path: "/presentation-info/",
|
||||
component: PresentationInfoController,
|
||||
}*/
|
||||
];
|
||||
|
||||
|
||||
const SettingsList = withTranslation()(props => {
|
||||
const {t} = props;
|
||||
const _t = t('View.Settings', {returnObjects: true});
|
||||
const navbar = <Navbar title={_t.textSettings}>
|
||||
{!props.inPopover && <NavRight><Link popupClose=".settings-popup">{_t.textDone}</Link></NavRight>}
|
||||
</Navbar>;
|
||||
|
||||
const onoptionclick = page => {
|
||||
if ( props.onOptionClick )
|
||||
props.onOptionClick(page)
|
||||
};
|
||||
|
||||
return (
|
||||
<View style={props.style} stackPages={true} routes={routes}>
|
||||
<Page>
|
||||
{navbar}
|
||||
<List>
|
||||
{!props.inPopover &&
|
||||
<ListItem title={_t.textFindAndReplace}>
|
||||
<Icon slot="media" icon="icon-search"></Icon>
|
||||
</ListItem>
|
||||
}
|
||||
<ListItem link="#" title={_t.textPresentationSettings} onClick={onoptionclick.bind(this, '/presentation-settings/')}>
|
||||
<Icon slot="media" icon="icon-setup"></Icon>
|
||||
</ListItem>
|
||||
<ListItem title={_t.textApplicationSettings} link="#">
|
||||
<Icon slot="media" icon="icon-app-settings"></Icon>
|
||||
</ListItem>
|
||||
<ListItem title={_t.textDownload} link="#">
|
||||
<Icon slot="media" icon="icon-download"></Icon>
|
||||
</ListItem>
|
||||
<ListItem title={_t.textPrint}>
|
||||
<Icon slot="media" icon="icon-print"></Icon>
|
||||
</ListItem>
|
||||
<ListItem title={_t.textPresentationInfo} link="#" onClick={onoptionclick.bind(this, "/presentation-info/")}>
|
||||
<Icon slot="media" icon="icon-info"></Icon>
|
||||
</ListItem>
|
||||
<ListItem title={_t.textHelp} link="#">
|
||||
<Icon slot="media" icon="icon-help"></Icon>
|
||||
</ListItem>
|
||||
<ListItem title={_t.textAbout} link="#">
|
||||
<Icon slot="media" icon="icon-about"></Icon>
|
||||
</ListItem>
|
||||
</List>
|
||||
</Page>
|
||||
</View>
|
||||
)
|
||||
});
|
||||
|
||||
class SettingsView extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.onoptionclick = this.onoptionclick.bind(this);
|
||||
}
|
||||
|
||||
onoptionclick(page){
|
||||
this.$f7.views.current.router.navigate(page);
|
||||
}
|
||||
|
||||
render() {
|
||||
const show_popover = this.props.usePopover;
|
||||
return (
|
||||
show_popover ?
|
||||
<Popover id="settings-popover" className="popover__titled" onPopoverClosed={() => this.props.onclosed()}>
|
||||
<SettingsList inPopover={true} onOptionClick={this.onoptionclick} style={{height: '410px'}} />
|
||||
</Popover> :
|
||||
<Popup className="settings-popup" onPopupClosed={() => this.props.onclosed()}>
|
||||
<SettingsList onOptionClick={this.onoptionclick} />
|
||||
</Popup>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
const Settings = props => {
|
||||
useEffect(() => {
|
||||
if ( Device.phone )
|
||||
f7.popup.open('.settings-popup');
|
||||
else f7.popover.open('#settings-popover', '#btn-settings');
|
||||
|
||||
return () => {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
const onviewclosed = () => {
|
||||
if ( props.onclosed )
|
||||
props.onclosed();
|
||||
};
|
||||
|
||||
return <SettingsView usePopover={!Device.phone} onclosed={onviewclosed} />
|
||||
};
|
||||
|
||||
export default Settings;
|
Loading…
Reference in a new issue