From 844e69cfa2efc7670c3d4ace70d99e5781e5ea09 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 7 Aug 2023 18:06:29 +0300 Subject: [PATCH] [DE] Add language option for chart label format --- .../main/lib/view/FormatSettingsDialog.js | 80 +++++++++++++++++-- .../main/app/controller/Main.js | 2 +- .../main/app/view/ChartSettings.js | 1 + .../main/app/view/ImageSettingsAdvanced.js | 1 - 4 files changed, 76 insertions(+), 8 deletions(-) diff --git a/apps/common/main/lib/view/FormatSettingsDialog.js b/apps/common/main/lib/view/FormatSettingsDialog.js index c54e1bed87..8f25d5047b 100644 --- a/apps/common/main/lib/view/FormatSettingsDialog.js +++ b/apps/common/main/lib/view/FormatSettingsDialog.js @@ -136,6 +136,12 @@ define([ '
', '', '', + '', + '', + '', + '
', + '', + '', '', '', '', @@ -277,6 +283,32 @@ define([ }); this.chLinked.setVisible(this.linked); + if (window.DE || window.PE) { + var data = [{ value: 0x042C }, { value: 0x0402 }, { value: 0x0405 }, { value: 0x0406 }, { value: 0x0C07 }, { value: 0x0407 }, {value: 0x0807}, { value: 0x0408 }, { value: 0x0C09 }, { value: 0x0809 }, { value: 0x0409 }, { value: 0x0C0A }, { value: 0x080A }, + { value: 0x040B }, { value: 0x040C }, { value: 0x100C }, { value: 0x0410 }, { value: 0x0810 }, { value: 0x0411 }, { value: 0x0412 }, { value: 0x0426 }, { value: 0x040E }, { value: 0x0413 }, { value: 0x0415 }, { value: 0x0416 }, + { value: 0x0816 }, { value: 0x0419 }, { value: 0x041B }, { value: 0x0424 }, { value: 0x081D }, { value: 0x041D }, { value: 0x041F }, { value: 0x0422 }, { value: 0x042A }, { value: 0x0804 }, { value: 0x0404 }]; + data.forEach(function(item) { + var langinfo = Common.util.LanguageInfo.getLocalLanguageName(item.value); + item.displayValue = langinfo[1]; + item.langName = langinfo[0]; + }); + + this.cmbLang = new Common.UI.ComboBox({ + el : $('#format-settings-combo-lang'), + menuStyle : 'min-width: 100%; max-height: 185px;', + cls : 'input-group-nr', + editable : false, + takeFocusOnClose: true, + data : data, + search: true, + scrollAlwaysVisible: true + }); + this.cmbLang.setValue(0x0409); + this.cmbLang.on('selected', _.bind(function(combo, record) { + this.onSelectLang(record.value); + }, this)); + } + this._decimalPanel = this.$window.find('.format-decimal'); this._negativePanel = this.$window.find('.format-negative'); this._separatorPanel = this.$window.find('.format-separator'); @@ -284,6 +316,7 @@ define([ this._symbolsPanel = this.$window.find('.format-symbols'); this._codePanel = this.$window.find('.format-code'); this._nocodePanel = this.$window.find('.format-no-code'); + this._langPanel = this.$window.find('.format-lang'); this.$window.find('.format-sample').toggleClass('hidden', this.linked); this.lblExample = this.$window.find('#format-settings-label-example'); @@ -292,7 +325,7 @@ define([ }, getFocusedComponents: function() { - return [this.cmbFormat, this.spnDecimal, this.chSeparator, this.cmbSymbols, this.cmbNegative, this.cmbType, this.inputCustomFormat, this.codesList, this.chLinked]; + return [this.cmbFormat, this.spnDecimal, this.chSeparator, this.cmbSymbols, this.cmbNegative, this.cmbLang, this.cmbType, this.inputCustomFormat, this.codesList, this.chLinked]; }, getDefaultFocusableComponent: function () { @@ -309,8 +342,15 @@ define([ _setDefaults: function (props) { if (props && props.formatInfo) { - if (this.langId) + if (props.langId) this.langId = props.langId; + + if (this.cmbLang) { + var item = this.cmbLang.store.findWhere({value: this.langId}); + item = item ? item.get('value') : 0x0409; + this.cmbLang.setValue(item) + } + this.cmbFormat.setValue(props.formatInfo.asc_getType(), this.txtCustom); this.FormatInfo = props.formatInfo; @@ -478,11 +518,12 @@ define([ this.FormatType = record.value; - var hasDecimal = (record.value == Asc.c_oAscNumFormatType.Number || record.value == Asc.c_oAscNumFormatType.Scientific || record.value == Asc.c_oAscNumFormatType.Accounting || + var isDateTime = record.value == Asc.c_oAscNumFormatType.Date || record.value == Asc.c_oAscNumFormatType.Time, + hasDecimal = (record.value == Asc.c_oAscNumFormatType.Number || record.value == Asc.c_oAscNumFormatType.Scientific || record.value == Asc.c_oAscNumFormatType.Accounting || record.value == Asc.c_oAscNumFormatType.Currency || record.value == Asc.c_oAscNumFormatType.Percent), hasNegative = (record.value == Asc.c_oAscNumFormatType.Number || record.value == Asc.c_oAscNumFormatType.Currency || record.value == Asc.c_oAscNumFormatType.Accounting), hasSeparator = (record.value == Asc.c_oAscNumFormatType.Number), - hasType = (record.value == Asc.c_oAscNumFormatType.Date || record.value == Asc.c_oAscNumFormatType.Time || record.value == Asc.c_oAscNumFormatType.Fraction), + hasType = (isDateTime || record.value == Asc.c_oAscNumFormatType.Fraction), hasSymbols = (record.value == Asc.c_oAscNumFormatType.Accounting || record.value == Asc.c_oAscNumFormatType.Currency), hasCode = (record.value == Asc.c_oAscNumFormatType.Custom), me = this, @@ -496,7 +537,7 @@ define([ info.asc_setDecimalPlaces(hasDecimal ? valDecimal : 0); info.asc_setSeparator(hasSeparator ? valSeparator : false); - if (hasNegative || record.value == Asc.c_oAscNumFormatType.Date || record.value == Asc.c_oAscNumFormatType.Time) { + if (hasNegative || isDateTime) { if (hasSymbols) { if (!me.CurrencySymbolsData) { me.CurrencySymbolsData = []; @@ -520,6 +561,8 @@ define([ this.cmbSymbols.setValue(valSymbol); } info.asc_setSymbol(this.cmbSymbols.getValue()); + } else if (isDateTime && this.cmbLang) { + info.asc_setSymbol(this.cmbLang.getValue()); } var formatsarr = this.api.asc_getFormatCells(info), @@ -588,11 +631,35 @@ define([ this._symbolsPanel.toggleClass('hidden', !hasSymbols); this._codePanel.toggleClass('hidden', !hasCode); this._nocodePanel.toggleClass('hidden', hasCode); + this._langPanel.toggleClass('hidden', !(isDateTime && this.cmbLang)); this._state = { hasDecimal: hasDecimal, hasNegative: hasNegative, hasSeparator: hasSeparator, hasType: hasType, hasSymbols: hasSymbols, hasCode: hasCode}; !initFormatInfo && this.chLinked.setValue(false, true); }, + onSelectLang: function(lang) { + Common.Utils.InternalSettings.set("de-config-lang", lang); + + var info = new Asc.asc_CFormatCellsInfo(); + info.asc_setType(this.FormatType); + info.asc_setDecimalPlaces(0); + info.asc_setSeparator(false); + info.asc_setSymbol(lang); + + var me = this, + formatsarr = this.api.asc_getFormatCells(info), + data = [], + exampleVal = (this.FormatType == Asc.c_oAscNumFormatType.Date) ? 38822 : ((this.FormatType == Asc.c_oAscNumFormatType.Time) ? 1.534 : parseFloat("-1234.12345678901234567890")); + formatsarr.forEach(function(item) { + data.push({value: item, displayValue: me.api.asc_getLocaleExample(item, exampleVal)}); + }); + this.cmbType.setData(data); + this.cmbType.selectRecord(this.cmbType.store.at(0)); + this.Format = formatsarr[0]; + this.FormatInfo = info; + this.lblExample.text(this.api.asc_getLocaleExample(this.Format)); + }, + textTitle: 'Number Format', textCategory: 'Category', textDecimal: 'Decimal', @@ -622,7 +689,8 @@ define([ txtSample: 'Sample:', txtNone: 'None', textLinked: 'Linked to source', - txtCustomWarning: 'Please enter the custom number format carefully. Spreadsheet Editor does not check custom formats for errors that may affect the xlsx file.' + txtCustomWarning: 'Please enter the custom number format carefully. Spreadsheet Editor does not check custom formats for errors that may affect the xlsx file.', + textLocale: 'Language' }, Common.Views.FormatSettingsDialog || {})) }); \ No newline at end of file diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 4c8630a628..fa437ed1b6 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -469,7 +469,7 @@ define([ if (this.editorConfig.lang) this.api.asc_setLocale(this.editorConfig.lang); - Common.Utils.InternalSettings.set("de-config-lang", this.editorConfig.lang); + Common.Utils.InternalSettings.set("de-config-lang", this.editorConfig.lang ? parseInt(Common.util.LanguageInfo.getLocalLanguageCode(this.editorConfig.lang)) : 0x0409); if (this.appOptions.location == 'us' || this.appOptions.location == 'ca') Common.Utils.Metric.setDefaultMetric(Common.Utils.Metric.c_MetricUnits.inch); diff --git a/apps/documenteditor/main/app/view/ChartSettings.js b/apps/documenteditor/main/app/view/ChartSettings.js index 8916ae8e89..9fa0507461 100644 --- a/apps/documenteditor/main/app/view/ChartSettings.js +++ b/apps/documenteditor/main/app/view/ChartSettings.js @@ -603,6 +603,7 @@ define([ imageProps: elValue, chartSettings: isChart ? me.api.asc_getChartSettings() : null, sectionProps: me.api.asc_GetSectionProps(), + api : me.api, handler: function(result, value) { if (result == 'ok') { if (me.api) { diff --git a/apps/documenteditor/main/app/view/ImageSettingsAdvanced.js b/apps/documenteditor/main/app/view/ImageSettingsAdvanced.js index fb529e00ab..659c76f9a4 100644 --- a/apps/documenteditor/main/app/view/ImageSettingsAdvanced.js +++ b/apps/documenteditor/main/app/view/ImageSettingsAdvanced.js @@ -3207,7 +3207,6 @@ define([ 'text!documenteditor/main/app/template/ImageSettingsAdvanced.templat props = me.currentAxisProps[index], fmt = props.getNumFmt(), lang = Common.Utils.InternalSettings.get("de-config-lang"); - lang = lang ? parseInt(Common.util.LanguageInfo.getLocalLanguageCode(lang)) : 0x0409; var win = (new Common.Views.FormatSettingsDialog({ api: me.api,