@ui5/webcomponents-localization 0.0.0-c638668a1 → 0.0.0-c6c04c609
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +1 -1
- package/.npsrc.json +3 -0
- package/CHANGELOG.md +607 -0
- package/README.md +6 -6
- package/{src/Assets-static.js → dist/Assets-static.d.ts} +0 -1
- package/dist/Assets-static.js +1 -0
- package/dist/Assets-static.js.map +1 -0
- package/dist/Assets.d.ts +1 -0
- package/dist/Assets.js +1 -0
- package/dist/Assets.js.map +1 -0
- package/dist/DateFormat.d.ts +6 -0
- package/dist/DateFormat.js +6 -2
- package/dist/DateFormat.js.map +1 -0
- package/dist/LocaleData.d.ts +6 -0
- package/dist/LocaleData.js +6 -2
- package/dist/LocaleData.js.map +1 -0
- package/dist/dates/CalendarDate.d.ts +43 -0
- package/dist/dates/CalendarDate.js +171 -201
- package/dist/dates/CalendarDate.js.map +1 -0
- package/dist/dates/ExtremeDates.d.ts +5 -0
- package/dist/dates/ExtremeDates.js +25 -35
- package/dist/dates/ExtremeDates.js.map +1 -0
- package/dist/dates/UI5Date.d.ts +6 -0
- package/dist/dates/UI5Date.js +7 -0
- package/dist/dates/UI5Date.js.map +1 -0
- package/dist/dates/UniversalDate.d.ts +47 -0
- package/dist/dates/UniversalDate.js +5 -0
- package/dist/dates/UniversalDate.js.map +1 -0
- package/dist/dates/calculateWeekNumber.d.ts +5 -0
- package/dist/dates/calculateWeekNumber.js +42 -48
- package/dist/dates/calculateWeekNumber.js.map +1 -0
- package/dist/dates/convertMonthNumbersToMonthNames.d.ts +16 -0
- package/dist/dates/convertMonthNumbersToMonthNames.js +30 -0
- package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -0
- package/dist/dates/getDaysInMonth.d.ts +3 -0
- package/dist/dates/getDaysInMonth.js +10 -0
- package/dist/dates/getDaysInMonth.js.map +1 -0
- package/dist/dates/getRoundedTimestamp.d.ts +7 -0
- package/dist/dates/getRoundedTimestamp.js +10 -9
- package/dist/dates/getRoundedTimestamp.js.map +1 -0
- package/dist/dates/getTodayUTCTimestamp.d.ts +7 -0
- package/dist/dates/getTodayUTCTimestamp.js +3 -3
- package/dist/dates/getTodayUTCTimestamp.js.map +1 -0
- package/dist/dates/modifyDateBy.d.ts +14 -0
- package/dist/dates/modifyDateBy.js +42 -29
- package/dist/dates/modifyDateBy.js.map +1 -0
- package/dist/dates/transformDateToSecondaryType.d.ts +7 -0
- package/dist/dates/transformDateToSecondaryType.js +18 -0
- package/dist/dates/transformDateToSecondaryType.js.map +1 -0
- package/dist/features/calendar/Buddhist.js +1 -0
- package/dist/features/calendar/Buddhist.js.map +1 -0
- package/dist/features/calendar/Gregorian.js +1 -0
- package/dist/features/calendar/Gregorian.js.map +1 -0
- package/dist/features/calendar/Islamic.js +1 -0
- package/dist/features/calendar/Islamic.js.map +1 -0
- package/dist/features/calendar/Japanese.js +1 -0
- package/dist/features/calendar/Japanese.js.map +1 -0
- package/dist/features/calendar/Persian.js +1 -0
- package/dist/features/calendar/Persian.js.map +1 -0
- package/dist/generated/assets/cldr/ar.json +5531 -5906
- package/dist/generated/assets/cldr/ar_EG.json +5531 -5906
- package/dist/generated/assets/cldr/ar_SA.json +5530 -5906
- package/dist/generated/assets/cldr/bg.json +4452 -4979
- package/dist/generated/assets/cldr/ca.json +4440 -4996
- package/dist/generated/assets/cldr/cs.json +4960 -5498
- package/dist/generated/assets/cldr/cy.json +5211 -5884
- package/dist/generated/assets/cldr/da.json +4308 -4888
- package/dist/generated/assets/cldr/de.json +4313 -4916
- package/dist/generated/assets/cldr/de_AT.json +4314 -4917
- package/dist/generated/assets/cldr/de_CH.json +4312 -4915
- package/dist/generated/assets/cldr/el.json +4281 -4883
- package/dist/generated/assets/cldr/el_CY.json +4281 -4883
- package/dist/generated/assets/cldr/en.json +4316 -4971
- package/dist/generated/assets/cldr/en_AU.json +4319 -4962
- package/dist/generated/assets/cldr/en_GB.json +4329 -4971
- package/dist/generated/assets/cldr/en_HK.json +4337 -4977
- package/dist/generated/assets/cldr/en_IE.json +4328 -4971
- package/dist/generated/assets/cldr/en_IN.json +4333 -4972
- package/dist/generated/assets/cldr/en_NZ.json +4328 -4971
- package/dist/generated/assets/cldr/en_PG.json +4329 -4972
- package/dist/generated/assets/cldr/en_SG.json +4333 -4973
- package/dist/generated/assets/cldr/en_ZA.json +4329 -4972
- package/dist/generated/assets/cldr/es.json +4331 -4912
- package/dist/generated/assets/cldr/es_AR.json +4334 -4914
- package/dist/generated/assets/cldr/es_BO.json +4333 -4913
- package/dist/generated/assets/cldr/es_CL.json +4334 -4914
- package/dist/generated/assets/cldr/es_CO.json +4333 -4913
- package/dist/generated/assets/cldr/es_MX.json +4335 -4915
- package/dist/generated/assets/cldr/es_PE.json +4333 -4913
- package/dist/generated/assets/cldr/es_UY.json +4335 -4915
- package/dist/generated/assets/cldr/es_VE.json +4334 -4914
- package/dist/generated/assets/cldr/et.json +4340 -4967
- package/dist/generated/assets/cldr/fa.json +4367 -4883
- package/dist/generated/assets/cldr/fi.json +4463 -5008
- package/dist/generated/assets/cldr/fr.json +4357 -4979
- package/dist/generated/assets/cldr/fr_BE.json +4357 -4979
- package/dist/generated/assets/cldr/fr_CA.json +4351 -4973
- package/dist/generated/assets/cldr/fr_CH.json +4375 -4997
- package/dist/generated/assets/cldr/fr_LU.json +4357 -4979
- package/dist/generated/assets/cldr/he.json +4869 -5378
- package/dist/generated/assets/cldr/hi.json +4295 -4829
- package/dist/generated/assets/cldr/hr.json +4583 -4919
- package/dist/generated/assets/cldr/hu.json +4364 -4856
- package/dist/generated/assets/cldr/id.json +4060 -4658
- package/dist/generated/assets/cldr/it.json +4299 -4950
- package/dist/generated/assets/cldr/it_CH.json +4299 -4950
- package/dist/generated/assets/cldr/ja.json +4211 -4830
- package/dist/generated/assets/cldr/kk.json +4339 -4725
- package/dist/generated/assets/cldr/ko.json +4189 -4738
- package/dist/generated/assets/cldr/lt.json +4850 -5481
- package/dist/generated/assets/cldr/lv.json +4587 -5112
- package/dist/generated/assets/cldr/ms.json +4021 -4515
- package/dist/generated/assets/cldr/nb.json +4335 -4977
- package/dist/generated/assets/cldr/nl.json +4294 -4884
- package/dist/generated/assets/cldr/nl_BE.json +4294 -4884
- package/dist/generated/assets/cldr/pl.json +4667 -5176
- package/dist/generated/assets/cldr/pt.json +4235 -4805
- package/dist/generated/assets/cldr/pt_PT.json +4372 -4940
- package/dist/generated/assets/cldr/ro.json +4563 -5090
- package/dist/generated/assets/cldr/ru.json +4909 -5407
- package/dist/generated/assets/cldr/ru_UA.json +4909 -5407
- package/dist/generated/assets/cldr/sk.json +4939 -5370
- package/dist/generated/assets/cldr/sl.json +4910 -5340
- package/dist/generated/assets/cldr/sr.json +4585 -5126
- package/dist/generated/assets/cldr/sr_Latn.json +4574 -5127
- package/dist/generated/assets/cldr/sv.json +4362 -5011
- package/dist/generated/assets/cldr/th.json +4214 -4797
- package/dist/generated/assets/cldr/tr.json +4400 -4979
- package/dist/generated/assets/cldr/uk.json +4858 -5353
- package/dist/generated/assets/cldr/vi.json +4070 -4673
- package/dist/generated/assets/cldr/zh_CN.json +4100 -4632
- package/dist/generated/assets/cldr/zh_HK.json +4108 -4640
- package/dist/generated/assets/cldr/zh_SG.json +4108 -4640
- package/dist/generated/assets/cldr/zh_TW.json +4131 -4728
- package/dist/generated/json-imports/LocaleData-static.js +2 -1
- package/dist/generated/json-imports/LocaleData.js +75 -74
- package/dist/getCachedLocaleDataInstance.d.ts +4 -0
- package/dist/getCachedLocaleDataInstance.js +6 -9
- package/dist/getCachedLocaleDataInstance.js.map +1 -0
- package/dist/locale/getLocaleData.d.ts +11 -0
- package/dist/locale/getLocaleData.js +13 -17
- package/dist/locale/getLocaleData.js.map +1 -0
- package/dist/sap/base/Log.js +28 -29
- package/dist/sap/base/assert.js +5 -6
- package/dist/sap/base/i18n/LanguageTag.js +35 -0
- package/dist/sap/base/i18n/Localization.d.ts +4 -0
- package/dist/sap/base/i18n/Localization.js +12 -0
- package/dist/sap/base/i18n/Localization.js.map +1 -0
- package/dist/sap/base/i18n/date/CalendarType.js +8 -0
- package/dist/sap/base/i18n/date/CalendarWeekNumbering.js +30 -0
- package/dist/sap/base/i18n/date/TimezoneUtils.js +89 -0
- package/dist/sap/base/util/LoaderExtensions.d.ts +4 -0
- package/dist/sap/base/util/LoaderExtensions.js +9 -12
- package/dist/sap/base/util/LoaderExtensions.js.map +1 -0
- package/dist/sap/ui/base/Metadata.js +20 -9
- package/dist/sap/ui/core/CalendarType.js +2 -8
- package/dist/sap/ui/core/Configuration.d.ts +18 -0
- package/dist/sap/ui/core/Configuration.js +23 -0
- package/dist/sap/ui/core/Configuration.js.map +1 -0
- package/dist/sap/ui/core/Core.d.ts +27 -0
- package/dist/sap/ui/core/Core.js +7 -32
- package/dist/sap/ui/core/Core.js.map +1 -0
- package/dist/sap/ui/core/FormatSettings.d.ts +10 -0
- package/dist/sap/ui/core/FormatSettings.js +14 -0
- package/dist/sap/ui/core/FormatSettings.js.map +1 -0
- package/dist/sap/ui/core/Locale.js +28 -112
- package/dist/sap/ui/core/LocaleData.js +213 -40
- package/dist/sap/ui/core/date/Buddhist.js +0 -6
- package/dist/sap/ui/core/date/CalendarUtils.js +25 -0
- package/dist/sap/ui/core/date/CalendarWeekNumbering.js +2 -0
- package/dist/sap/ui/core/date/Islamic.js +3 -3
- package/dist/sap/ui/core/date/Japanese.js +4 -4
- package/dist/sap/ui/core/date/UI5Date.js +305 -0
- package/dist/sap/ui/core/date/UniversalDate.js +73 -26
- package/dist/sap/ui/core/format/DateFormat.js +848 -497
- package/dist/sap/ui/core/format/TimezoneUtil.js +2 -0
- package/{package-scripts.js → package-scripts.cjs} +7 -10
- package/package.json +7 -5
- package/tsconfig.json +14 -0
- package/used-modules.txt +9 -1
- package/hash.txt +0 -1
- package/src/Assets.js +0 -2
- package/src/DateFormat.js +0 -3
- package/src/LocaleData.js +0 -3
- package/src/dates/CalendarDate.js +0 -223
- package/src/dates/ExtremeDates.js +0 -39
- package/src/dates/calculateWeekNumber.js +0 -51
- package/src/dates/getRoundedTimestamp.js +0 -14
- package/src/dates/getTodayUTCTimestamp.js +0 -9
- package/src/dates/modifyDateBy.js +0 -42
- package/src/getCachedLocaleDataInstance.js +0 -13
- package/src/locale/getLocaleData.js +0 -27
- package/src/sap/base/util/LoaderExtensions.js +0 -17
- package/src/sap/ui/core/Core.js +0 -38
- /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
- /package/{src/features/calendar/Buddhist.js → dist/features/calendar/Buddhist.d.ts} +0 -0
- /package/{src/features/calendar/Gregorian.js → dist/features/calendar/Gregorian.d.ts} +0 -0
- /package/{src/features/calendar/Islamic.js → dist/features/calendar/Islamic.d.ts} +0 -0
- /package/{src/features/calendar/Japanese.js → dist/features/calendar/Japanese.d.ts} +0 -0
- /package/{src/features/calendar/Persian.js → dist/features/calendar/Persian.d.ts} +0 -0
@@ -1,15 +1,30 @@
|
|
1
1
|
import Core from './Core.js';
|
2
|
-
import extend from '../../base/util/extend.js';
|
3
|
-
import BaseObject from '../base/Object.js';
|
4
2
|
import CalendarType from './CalendarType.js';
|
5
3
|
import Locale from './Locale.js';
|
6
4
|
import assert from '../../base/assert.js';
|
5
|
+
import Localization from '../../base/i18n/Localization.js';
|
6
|
+
import extend from '../../base/util/extend.js';
|
7
7
|
import LoaderExtensions from '../../base/util/LoaderExtensions.js';
|
8
|
+
import BaseObject from '../base/Object.js';
|
9
|
+
import Configuration from './Configuration.js';
|
10
|
+
import CalendarWeekNumbering from './date/CalendarWeekNumbering.js';
|
11
|
+
var rCIgnoreCase = /c/i, rEIgnoreCase = /e/i, mLegacyUnit2CurrentUnit = {
|
12
|
+
'acceleration-meter-per-second-squared': 'acceleration-meter-per-square-second',
|
13
|
+
'concentr-milligram-per-deciliter': 'concentr-milligram-ofglucose-per-deciliter',
|
14
|
+
'concentr-part-per-million': 'concentr-permillion',
|
15
|
+
'consumption-liter-per-100kilometers': 'consumption-liter-per-100-kilometer',
|
16
|
+
'pressure-millimeter-of-mercury': 'pressure-millimeter-ofhg',
|
17
|
+
'pressure-pound-per-square-inch': 'pressure-pound-force-per-square-inch',
|
18
|
+
'pressure-inch-hg': 'pressure-inch-ofhg',
|
19
|
+
'torque-pound-foot': 'torque-pound-force-foot'
|
20
|
+
}, rNumberInScientificNotation = /^([+-]?)((\d+)(?:\.(\d+))?)[eE]([+-]?\d+)$/, rTrailingZeroes = /0+$/;
|
8
21
|
var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
9
22
|
constructor: function (oLocale) {
|
10
|
-
this.oLocale = oLocale;
|
23
|
+
this.oLocale = Locale._getCoreLocale(oLocale);
|
11
24
|
BaseObject.apply(this);
|
12
|
-
|
25
|
+
var oDataLoaded = getData(this.oLocale);
|
26
|
+
this.mData = oDataLoaded.mData;
|
27
|
+
this.sCLDRLocaleId = oDataLoaded.sCLDRLocaleId;
|
13
28
|
},
|
14
29
|
_get: function () {
|
15
30
|
return this._getDeep(this.mData, arguments);
|
@@ -33,7 +48,7 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
33
48
|
getCurrentLanguageName: function () {
|
34
49
|
var oLanguages = this.getLanguages();
|
35
50
|
var sCurrentLanguage;
|
36
|
-
var sLanguage = this.oLocale.
|
51
|
+
var sLanguage = Localization.getModernLanguage(this.oLocale.language);
|
37
52
|
var sScript = this.oLocale.getScript();
|
38
53
|
if (sLanguage === 'sr' && sScript === 'Latn') {
|
39
54
|
sLanguage = 'sh';
|
@@ -95,6 +110,56 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
95
110
|
assert(sStyle == 'short' || sStyle == 'medium' || sStyle == 'long' || sStyle == 'full', 'sStyle must be short, medium, long or full');
|
96
111
|
return this._get(getCLDRCalendarName(sCalendarType), 'dateFormats', sStyle);
|
97
112
|
},
|
113
|
+
getFlexibleDayPeriods: function (sWidth, sCalendarType) {
|
114
|
+
return this._get(getCLDRCalendarName(sCalendarType), 'flexibleDayPeriods', 'format', sWidth);
|
115
|
+
},
|
116
|
+
getFlexibleDayPeriodsStandAlone: function (sWidth, sCalendarType) {
|
117
|
+
return this._get(getCLDRCalendarName(sCalendarType), 'flexibleDayPeriods', 'stand-alone', sWidth);
|
118
|
+
},
|
119
|
+
getFlexibleDayPeriodOfTime: function (iHour, iMinute) {
|
120
|
+
var iAbsoluteMinutes, oDayPeriodRules, sPeriodMatch;
|
121
|
+
iAbsoluteMinutes = (iHour * 60 + iMinute) % 1440;
|
122
|
+
oDayPeriodRules = this._get('dayPeriodRules');
|
123
|
+
function parseToAbsoluteMinutes(sValue) {
|
124
|
+
var aSplit = sValue.split(':'), sHour = aSplit[0], sMinute = aSplit[1];
|
125
|
+
return parseInt(sHour) * 60 + parseInt(sMinute);
|
126
|
+
}
|
127
|
+
sPeriodMatch = Object.keys(oDayPeriodRules).find(function (sDayPeriodRule) {
|
128
|
+
var oDayPeriodRule = oDayPeriodRules[sDayPeriodRule];
|
129
|
+
return oDayPeriodRule['_at'] && parseToAbsoluteMinutes(oDayPeriodRule['_at']) === iAbsoluteMinutes;
|
130
|
+
});
|
131
|
+
if (sPeriodMatch) {
|
132
|
+
return sPeriodMatch;
|
133
|
+
}
|
134
|
+
return Object.keys(oDayPeriodRules).find(function (sDayPeriodRule) {
|
135
|
+
var iEndValue, aIntervals, iStartValue, oDayPeriodRule = oDayPeriodRules[sDayPeriodRule];
|
136
|
+
if (oDayPeriodRule['_at']) {
|
137
|
+
return false;
|
138
|
+
}
|
139
|
+
iStartValue = parseToAbsoluteMinutes(oDayPeriodRule['_from']);
|
140
|
+
iEndValue = parseToAbsoluteMinutes(oDayPeriodRule['_before']);
|
141
|
+
if (iStartValue > iEndValue) {
|
142
|
+
aIntervals = [
|
143
|
+
{
|
144
|
+
start: iStartValue,
|
145
|
+
end: 1440
|
146
|
+
},
|
147
|
+
{
|
148
|
+
start: 0,
|
149
|
+
end: iEndValue
|
150
|
+
}
|
151
|
+
];
|
152
|
+
} else {
|
153
|
+
aIntervals = [{
|
154
|
+
start: iStartValue,
|
155
|
+
end: iEndValue
|
156
|
+
}];
|
157
|
+
}
|
158
|
+
return aIntervals.some(function (oInterval) {
|
159
|
+
return oInterval.start <= iAbsoluteMinutes && oInterval.end > iAbsoluteMinutes;
|
160
|
+
});
|
161
|
+
});
|
162
|
+
},
|
98
163
|
getTimePattern: function (sStyle, sCalendarType) {
|
99
164
|
assert(sStyle == 'short' || sStyle == 'medium' || sStyle == 'long' || sStyle == 'full', 'sStyle must be short, medium, long or full');
|
100
165
|
return this._get(getCLDRCalendarName(sCalendarType), 'timeFormats', sStyle);
|
@@ -109,6 +174,24 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
109
174
|
var sDateTimePattern = this.getDateTimePattern(sDateStyle, sCalendarType), sDatePattern = this.getDatePattern(sDateStyle, sCalendarType), sTimePattern = this.getTimePattern(sTimeStyle, sCalendarType);
|
110
175
|
return sDateTimePattern.replace('{0}', sTimePattern).replace('{1}', sDatePattern);
|
111
176
|
},
|
177
|
+
getCombinedDateTimeWithTimezonePattern: function (sDateStyle, sTimeStyle, sCalendarType) {
|
178
|
+
return this.applyTimezonePattern(this.getCombinedDateTimePattern(sDateStyle, sTimeStyle, sCalendarType));
|
179
|
+
},
|
180
|
+
applyTimezonePattern: function (sPattern) {
|
181
|
+
var aPatterns = [sPattern];
|
182
|
+
var aMissingTokens = [{
|
183
|
+
group: 'Timezone',
|
184
|
+
length: 2,
|
185
|
+
field: 'zone',
|
186
|
+
symbol: 'V'
|
187
|
+
}];
|
188
|
+
this._appendItems(aPatterns, aMissingTokens);
|
189
|
+
return aPatterns[0];
|
190
|
+
},
|
191
|
+
getTimezoneTranslations: function () {
|
192
|
+
this.mTimezoneTranslations = this.mTimezoneTranslations || _resolveTimezoneTranslationStructure(this._get('timezoneNames'));
|
193
|
+
return Object.assign({}, this.mTimezoneTranslations);
|
194
|
+
},
|
112
195
|
getCustomDateTimePattern: function (sSkeleton, sCalendarType) {
|
113
196
|
var oAvailableFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'availableFormats');
|
114
197
|
return this._getFormatPattern(sSkeleton, oAvailableFormats, sCalendarType);
|
@@ -571,11 +654,14 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
571
654
|
oTimeEntry = oScale[sEntry];
|
572
655
|
iSign = sEntry.substr(18) === 'past' ? -1 : 1;
|
573
656
|
aPluralCategories.forEach(function (sKey) {
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
657
|
+
var sPattern = oTimeEntry['relativeTimePattern-count-' + sKey];
|
658
|
+
if (sPattern) {
|
659
|
+
aPatterns.push({
|
660
|
+
scale: sScale,
|
661
|
+
sign: iSign,
|
662
|
+
pattern: sPattern
|
663
|
+
});
|
664
|
+
}
|
579
665
|
});
|
580
666
|
}
|
581
667
|
}
|
@@ -698,7 +784,11 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
698
784
|
return this.getUnitFormat(sUnit);
|
699
785
|
},
|
700
786
|
getUnitFormat: function (sUnit) {
|
701
|
-
|
787
|
+
var oResult = this._get('units', 'short', sUnit);
|
788
|
+
if (!oResult && mLegacyUnit2CurrentUnit[sUnit]) {
|
789
|
+
oResult = this._get('units', 'short', mLegacyUnit2CurrentUnit[sUnit]);
|
790
|
+
}
|
791
|
+
return oResult;
|
702
792
|
},
|
703
793
|
getUnitFormats: function () {
|
704
794
|
return this._getMerged('units', 'short');
|
@@ -727,10 +817,10 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
727
817
|
return oMessageBundle.getText(sKey, iWeekNumber);
|
728
818
|
},
|
729
819
|
firstDayStartsFirstWeek: function () {
|
730
|
-
return this.
|
820
|
+
return this.oLocale.getLanguage() === 'en' && this.oLocale.getRegion() === 'US';
|
731
821
|
},
|
732
822
|
getPreferredCalendarType: function () {
|
733
|
-
var
|
823
|
+
var sCalendarName, sType, i, aCalendars = this._get('calendarPreference') || [];
|
734
824
|
for (i = 0; i < aCalendars.length; i++) {
|
735
825
|
sCalendarName = aCalendars[i].split('-')[0];
|
736
826
|
for (sType in CalendarType) {
|
@@ -749,11 +839,8 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
749
839
|
aCategories.push('other');
|
750
840
|
return aCategories;
|
751
841
|
},
|
752
|
-
getPluralCategory: function (
|
753
|
-
var oPlurals = this._get('plurals');
|
754
|
-
if (typeof sNumber === 'number') {
|
755
|
-
sNumber = sNumber.toString();
|
756
|
-
}
|
842
|
+
getPluralCategory: function (vNumber) {
|
843
|
+
var sNumber = typeof vNumber === 'number' ? vNumber.toString() : vNumber, oPlurals = this._get('plurals');
|
757
844
|
if (!this._pluralTest) {
|
758
845
|
this._pluralTest = {};
|
759
846
|
}
|
@@ -763,14 +850,14 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
763
850
|
fnTest = this._parsePluralRule(oPlurals[sCategory]);
|
764
851
|
this._pluralTest[sCategory] = fnTest;
|
765
852
|
}
|
766
|
-
if (fnTest(sNumber)) {
|
853
|
+
if (fnTest(sNumber).bMatch) {
|
767
854
|
return sCategory;
|
768
855
|
}
|
769
856
|
}
|
770
857
|
return 'other';
|
771
858
|
},
|
772
859
|
_parsePluralRule: function (sRule) {
|
773
|
-
var OP_OR = 'or', OP_AND = 'and', OP_MOD = '%', OP_EQ = '=', OP_NEQ = '!=', OPD_N = 'n', OPD_I = 'i', OPD_F = 'f', OPD_T = 't', OPD_V = 'v', OPD_W = 'w', RANGE = '..', SEP = ',';
|
860
|
+
var OP_OR = 'or', OP_AND = 'and', OP_MOD = '%', OP_EQ = '=', OP_NEQ = '!=', OPD_N = 'n', OPD_I = 'i', OPD_F = 'f', OPD_T = 't', OPD_V = 'v', OPD_W = 'w', OPD_C = 'c', OPD_E = 'e', RANGE = '..', SEP = ',';
|
774
861
|
var i = 0, aTokens;
|
775
862
|
aTokens = sRule.split(' ');
|
776
863
|
function accept(sToken) {
|
@@ -864,6 +951,14 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
864
951
|
return function (o) {
|
865
952
|
return o.w;
|
866
953
|
};
|
954
|
+
} else if (accept(OPD_C)) {
|
955
|
+
return function (o) {
|
956
|
+
return o.c;
|
957
|
+
};
|
958
|
+
} else if (accept(OPD_E)) {
|
959
|
+
return function (o) {
|
960
|
+
return o.c;
|
961
|
+
};
|
867
962
|
} else {
|
868
963
|
throw new Error('Unknown operand: ' + consume());
|
869
964
|
}
|
@@ -891,28 +986,59 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
|
|
891
986
|
throw new Error('Not completely parsed');
|
892
987
|
}
|
893
988
|
return function (sValue) {
|
894
|
-
var iDotPos
|
989
|
+
var iDotPos, iExponent, iExponentPos, sFraction, sFractionNoZeros, sInteger, o;
|
990
|
+
sValue = sValue.replace(rCIgnoreCase, 'e');
|
991
|
+
iExponentPos = sValue.search(rEIgnoreCase);
|
992
|
+
iExponent = iExponentPos < 0 ? 0 : parseInt(sValue.slice(iExponentPos + 1));
|
993
|
+
sValue = LocaleData.convertToDecimal(sValue);
|
994
|
+
iDotPos = sValue.indexOf('.');
|
895
995
|
if (iDotPos === -1) {
|
896
|
-
|
996
|
+
sInteger = sValue;
|
897
997
|
sFraction = '';
|
898
998
|
sFractionNoZeros = '';
|
899
999
|
} else {
|
900
|
-
|
901
|
-
sFraction = sValue.
|
902
|
-
sFractionNoZeros = sFraction.replace(
|
1000
|
+
sInteger = sValue.slice(0, iDotPos);
|
1001
|
+
sFraction = sValue.slice(iDotPos + 1);
|
1002
|
+
sFractionNoZeros = sFraction.replace(rTrailingZeroes, '');
|
903
1003
|
}
|
904
1004
|
o = {
|
905
1005
|
n: parseFloat(sValue),
|
906
|
-
i: parseInt(
|
1006
|
+
i: parseInt(sInteger),
|
907
1007
|
v: sFraction.length,
|
908
1008
|
w: sFractionNoZeros.length,
|
909
|
-
f: parseInt(sFraction),
|
910
|
-
t: parseInt(sFractionNoZeros)
|
1009
|
+
f: sFraction === '' ? 0 : parseInt(sFraction),
|
1010
|
+
t: sFractionNoZeros === '' ? 0 : parseInt(sFractionNoZeros),
|
1011
|
+
c: iExponent
|
1012
|
+
};
|
1013
|
+
return {
|
1014
|
+
bMatch: fnOr(o),
|
1015
|
+
oOperands: o
|
911
1016
|
};
|
912
|
-
return fnOr(o);
|
913
1017
|
};
|
914
1018
|
}
|
915
1019
|
});
|
1020
|
+
LocaleData.convertToDecimal = function (vValue) {
|
1021
|
+
var iIntegerLength, iExponent, iFractionLength, bNegative, iNewIntegerLength, aResult, sValue = String(vValue);
|
1022
|
+
if (!sValue.includes('e') && !sValue.includes('E')) {
|
1023
|
+
return sValue;
|
1024
|
+
}
|
1025
|
+
aResult = sValue.match(rNumberInScientificNotation);
|
1026
|
+
bNegative = aResult[1] === '-';
|
1027
|
+
sValue = aResult[2].replace('.', '');
|
1028
|
+
iIntegerLength = aResult[3] ? aResult[3].length : 0;
|
1029
|
+
iFractionLength = aResult[4] ? aResult[4].length : 0;
|
1030
|
+
iExponent = parseInt(aResult[5]);
|
1031
|
+
iNewIntegerLength = iIntegerLength + iExponent;
|
1032
|
+
if (iExponent > 0) {
|
1033
|
+
sValue = iExponent < iFractionLength ? sValue.slice(0, iNewIntegerLength) + '.' + sValue.slice(iNewIntegerLength) : sValue = sValue.padEnd(iNewIntegerLength, '0');
|
1034
|
+
} else {
|
1035
|
+
sValue = -iExponent < iIntegerLength ? sValue = sValue.slice(0, iNewIntegerLength) + '.' + sValue.slice(iNewIntegerLength) : sValue = '0.' + sValue.padStart(iFractionLength - iExponent, '0');
|
1036
|
+
}
|
1037
|
+
if (bNegative) {
|
1038
|
+
sValue = '-' + sValue;
|
1039
|
+
}
|
1040
|
+
return sValue;
|
1041
|
+
};
|
916
1042
|
var mCLDRSymbolGroups = {
|
917
1043
|
'Era': {
|
918
1044
|
field: 'era',
|
@@ -1141,12 +1267,13 @@ var mCLDRSymbols = {
|
|
1141
1267
|
numericCeiling: 100
|
1142
1268
|
}
|
1143
1269
|
};
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1147
|
-
}
|
1270
|
+
function getDesigntimePropertyAsArray(sValue) {
|
1271
|
+
var m = /\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(sValue);
|
1272
|
+
return m && m[2] ? m[2].split(/,/) : null;
|
1273
|
+
}
|
1274
|
+
var _cldrLocales = getDesigntimePropertyAsArray('$cldr-locales:ar,ar_EG,ar_SA,bg,ca,cy,cs,da,de,de_AT,de_CH,el,el_CY,en,en_AU,en_GB,en_HK,en_IE,en_IN,en_NZ,en_PG,en_SG,en_ZA,es,es_AR,es_BO,es_CL,es_CO,es_MX,es_PE,es_UY,es_VE,et,fa,fi,fr,fr_BE,fr_CA,fr_CH,fr_LU,he,hi,hr,hu,id,it,it_CH,ja,kk,ko,lt,lv,ms,nb,nl,nl_BE,pl,pt,pt_PT,ro,ru,ru_UA,sk,sl,sr,sr_Latn,sv,th,tr,uk,vi,zh_CN,zh_HK,zh_SG,zh_TW$');
|
1148
1275
|
var M_SUPPORTED_LOCALES = function () {
|
1149
|
-
var LOCALES =
|
1276
|
+
var LOCALES = _cldrLocales, result = {}, i;
|
1150
1277
|
if (LOCALES) {
|
1151
1278
|
for (i = 0; i < LOCALES.length; i++) {
|
1152
1279
|
result[LOCALES[i]] = true;
|
@@ -1155,9 +1282,29 @@ var M_SUPPORTED_LOCALES = function () {
|
|
1155
1282
|
return result;
|
1156
1283
|
}();
|
1157
1284
|
var mLocaleDatas = {};
|
1285
|
+
function _resolveTimezoneTranslationStructure(oNode, sKey, oResult, aParentTranslations) {
|
1286
|
+
aParentTranslations = aParentTranslations ? aParentTranslations.slice() : [];
|
1287
|
+
oResult = oResult || {};
|
1288
|
+
sKey = sKey || '';
|
1289
|
+
Object.keys(oNode).forEach(function (sChildKey) {
|
1290
|
+
var vChildNode = oNode[sChildKey];
|
1291
|
+
if (typeof vChildNode === 'object') {
|
1292
|
+
var aParentTranslationForChild = aParentTranslations.slice();
|
1293
|
+
var sParent = vChildNode['_parent'];
|
1294
|
+
if (sParent) {
|
1295
|
+
aParentTranslationForChild.push(sParent);
|
1296
|
+
}
|
1297
|
+
_resolveTimezoneTranslationStructure(vChildNode, sKey + sChildKey + '/', oResult, aParentTranslationForChild);
|
1298
|
+
} else if (typeof vChildNode === 'string' && sChildKey !== '_parent') {
|
1299
|
+
var sParents = aParentTranslations.length ? aParentTranslations.join(', ') + ', ' : '';
|
1300
|
+
oResult[sKey + sChildKey] = sParents + vChildNode;
|
1301
|
+
}
|
1302
|
+
});
|
1303
|
+
return oResult;
|
1304
|
+
}
|
1158
1305
|
function getCLDRCalendarName(sCalendarType) {
|
1159
1306
|
if (!sCalendarType) {
|
1160
|
-
sCalendarType =
|
1307
|
+
sCalendarType = Configuration.getCalendarType();
|
1161
1308
|
}
|
1162
1309
|
return 'ca-' + sCalendarType.toLowerCase();
|
1163
1310
|
}
|
@@ -1176,7 +1323,7 @@ function getData(oLocale) {
|
|
1176
1323
|
obj[name] = fallbackValue;
|
1177
1324
|
} else if (value === null) {
|
1178
1325
|
delete obj[name];
|
1179
|
-
} else if (typeof value === 'object' && typeof fallbackValue === 'object') {
|
1326
|
+
} else if (typeof value === 'object' && typeof fallbackValue === 'object' && !Array.isArray(value)) {
|
1180
1327
|
merge(value, fallbackValue);
|
1181
1328
|
}
|
1182
1329
|
}
|
@@ -1195,7 +1342,7 @@ function getData(oLocale) {
|
|
1195
1342
|
}
|
1196
1343
|
return mLocaleDatas[sId];
|
1197
1344
|
}
|
1198
|
-
sLanguage = sLanguage &&
|
1345
|
+
sLanguage = sLanguage && Localization.getModernLanguage(sLanguage) || sLanguage;
|
1199
1346
|
if (sLanguage === 'no') {
|
1200
1347
|
sLanguage = 'nb';
|
1201
1348
|
}
|
@@ -1210,19 +1357,29 @@ function getData(oLocale) {
|
|
1210
1357
|
sLanguage = 'sr_Latn';
|
1211
1358
|
}
|
1212
1359
|
var sId = sLanguage + '_' + sRegion;
|
1360
|
+
var sCLDRLocaleId = sId;
|
1213
1361
|
if (sLanguage && sRegion) {
|
1214
1362
|
mData = getOrLoad(sId);
|
1215
1363
|
}
|
1216
1364
|
if (!mData && sLanguage) {
|
1217
1365
|
mData = getOrLoad(sLanguage);
|
1366
|
+
sCLDRLocaleId = sLanguage;
|
1367
|
+
}
|
1368
|
+
if (!mData) {
|
1369
|
+
mData = getOrLoad('en');
|
1370
|
+
sCLDRLocaleId = 'en';
|
1218
1371
|
}
|
1219
|
-
mLocaleDatas[sId] = mData
|
1220
|
-
|
1372
|
+
mLocaleDatas[sId] = mData;
|
1373
|
+
sCLDRLocaleId = sCLDRLocaleId.replace(/_/g, '-');
|
1374
|
+
return {
|
1375
|
+
mData: mData,
|
1376
|
+
sCLDRLocaleId: sCLDRLocaleId
|
1377
|
+
};
|
1221
1378
|
}
|
1222
1379
|
var CustomLocaleData = LocaleData.extend('sap.ui.core.CustomLocaleData', {
|
1223
1380
|
constructor: function (oLocale) {
|
1224
1381
|
LocaleData.apply(this, arguments);
|
1225
|
-
this.mCustomData =
|
1382
|
+
this.mCustomData = Configuration.getFormatSettings().getCustomLocaleData();
|
1226
1383
|
},
|
1227
1384
|
_get: function () {
|
1228
1385
|
var aArguments = Array.prototype.slice.call(arguments), sCalendar, sKey;
|
@@ -1246,9 +1403,25 @@ var CustomLocaleData = LocaleData.extend('sap.ui.core.CustomLocaleData', {
|
|
1246
1403
|
var mData = this._getDeep(this.mData, arguments);
|
1247
1404
|
var mCustomData = this._getDeep(this.mCustomData, arguments);
|
1248
1405
|
return extend({}, mData, mCustomData);
|
1406
|
+
},
|
1407
|
+
getFirstDayOfWeek: function () {
|
1408
|
+
var sCalendarWeekNumbering = Configuration.getCalendarWeekNumbering();
|
1409
|
+
if (sCalendarWeekNumbering === CalendarWeekNumbering.Default) {
|
1410
|
+
return LocaleData.prototype.getFirstDayOfWeek.call(this);
|
1411
|
+
}
|
1412
|
+
return CalendarWeekNumbering.getWeekConfigurationValues(sCalendarWeekNumbering).firstDayOfWeek;
|
1413
|
+
},
|
1414
|
+
getMinimalDaysInFirstWeek: function () {
|
1415
|
+
var sCalendarWeekNumbering = Configuration.getCalendarWeekNumbering();
|
1416
|
+
if (sCalendarWeekNumbering === CalendarWeekNumbering.Default) {
|
1417
|
+
return LocaleData.prototype.getMinimalDaysInFirstWeek.call(this);
|
1418
|
+
}
|
1419
|
+
return CalendarWeekNumbering.getWeekConfigurationValues(sCalendarWeekNumbering).minimalDaysInFirstWeek;
|
1249
1420
|
}
|
1250
1421
|
});
|
1251
1422
|
LocaleData.getInstance = function (oLocale) {
|
1423
|
+
oLocale = Locale._getCoreLocale(oLocale);
|
1252
1424
|
return oLocale.hasPrivateUseSubtag('sapufmt') ? new CustomLocaleData(oLocale) : new LocaleData(oLocale);
|
1253
1425
|
};
|
1426
|
+
LocaleData._cldrLocales = _cldrLocales;
|
1254
1427
|
export default LocaleData;
|
@@ -117,11 +117,5 @@ Buddhist.prototype.setUTCFullYear = function (iYear, iMonth, iDay) {
|
|
117
117
|
}
|
118
118
|
return this._setUTCBuddhist(oBuddhist);
|
119
119
|
};
|
120
|
-
Buddhist.prototype.getWeek = function () {
|
121
|
-
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate());
|
122
|
-
};
|
123
|
-
Buddhist.prototype.getUTCWeek = function () {
|
124
|
-
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());
|
125
|
-
};
|
126
120
|
_Calendars.set(CalendarType.Buddhist, Buddhist);
|
127
121
|
export default Buddhist;
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import CalendarWeekNumbering from './CalendarWeekNumbering.js';
|
2
|
+
import Configuration from '../Configuration.js';
|
3
|
+
import LocaleData from '../LocaleData.js';
|
4
|
+
var CalendarUtils = {
|
5
|
+
getWeekConfigurationValues: function (sCalendarWeekNumbering, oLocale) {
|
6
|
+
var oLocaleData, oWeekConfigurationValues;
|
7
|
+
if (!sCalendarWeekNumbering) {
|
8
|
+
return CalendarUtils.getWeekConfigurationValues(Configuration.getCalendarWeekNumbering(), oLocale);
|
9
|
+
}
|
10
|
+
oWeekConfigurationValues = CalendarWeekNumbering.getWeekConfigurationValues(sCalendarWeekNumbering);
|
11
|
+
if (oWeekConfigurationValues) {
|
12
|
+
return oWeekConfigurationValues;
|
13
|
+
}
|
14
|
+
if (sCalendarWeekNumbering === CalendarWeekNumbering.Default) {
|
15
|
+
oLocale = oLocale || Configuration.getFormatSettings().getFormatLocale();
|
16
|
+
oLocaleData = LocaleData.getInstance(oLocale);
|
17
|
+
return {
|
18
|
+
firstDayOfWeek: oLocaleData.getFirstDayOfWeek(),
|
19
|
+
minimalDaysInFirstWeek: oLocaleData.getMinimalDaysInFirstWeek()
|
20
|
+
};
|
21
|
+
}
|
22
|
+
return undefined;
|
23
|
+
}
|
24
|
+
};
|
25
|
+
export default CalendarUtils;
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import Core from '../Core.js';
|
2
1
|
import UniversalDate from './UniversalDate.js';
|
3
2
|
import CalendarType from '../CalendarType.js';
|
4
3
|
import Log from '../../../base/Log.js';
|
5
4
|
import _Calendars from './_Calendars.js';
|
5
|
+
import Configuration from '../Configuration.js';
|
6
6
|
var Islamic = UniversalDate.extend('sap.ui.core.date.Islamic', {
|
7
7
|
constructor: function () {
|
8
8
|
var aArgs = arguments;
|
@@ -102,9 +102,9 @@ function toGregorianArguments(aArgs) {
|
|
102
102
|
function initCustomizationMap() {
|
103
103
|
var sDateFormat, oCustomizationJSON;
|
104
104
|
oCustomizationMap = {};
|
105
|
-
sDateFormat =
|
105
|
+
sDateFormat = Configuration.getFormatSettings().getLegacyDateFormat();
|
106
106
|
sDateFormat = _isSupportedIslamicCalendarType(sDateFormat) ? sDateFormat : 'A';
|
107
|
-
oCustomizationJSON =
|
107
|
+
oCustomizationJSON = Configuration.getFormatSettings().getLegacyDateCalendarCustomizing();
|
108
108
|
oCustomizationJSON = oCustomizationJSON || [];
|
109
109
|
if (!oCustomizationJSON.length) {
|
110
110
|
Log.warning('No calendar customizations.');
|
@@ -152,11 +152,11 @@ Japanese.prototype.setUTCEra = function (iEra, iYear, iMonth, iDay) {
|
|
152
152
|
}
|
153
153
|
return this._setUTCJapanese(oJapanese);
|
154
154
|
};
|
155
|
-
Japanese.prototype.getWeek = function () {
|
156
|
-
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate());
|
155
|
+
Japanese.prototype.getWeek = function (oLocale, vCalendarWeekNumbering) {
|
156
|
+
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate(), oLocale, vCalendarWeekNumbering);
|
157
157
|
};
|
158
|
-
Japanese.prototype.getUTCWeek = function () {
|
159
|
-
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());
|
158
|
+
Japanese.prototype.getUTCWeek = function (oLocale, vCalendarWeekNumbering) {
|
159
|
+
return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate(), oLocale, vCalendarWeekNumbering);
|
160
160
|
};
|
161
161
|
_Calendars.set(CalendarType.Japanese, Japanese);
|
162
162
|
export default Japanese;
|