@ui5/webcomponents-localization 0.0.0-d9621a5cb → 0.0.0-d9b978d1d

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.
Files changed (283) hide show
  1. package/.eslintignore +2 -1
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +743 -0
  4. package/README.md +37 -6
  5. package/dist/.tsbuildinfo +1 -0
  6. package/{src/Assets-static.js → dist/Assets-static.d.ts} +0 -1
  7. package/dist/Assets-static.js +1 -0
  8. package/dist/Assets-static.js.map +1 -0
  9. package/dist/Assets.d.ts +1 -0
  10. package/dist/Assets.js +1 -0
  11. package/dist/Assets.js.map +1 -0
  12. package/dist/DateFormat.d.ts +6 -0
  13. package/dist/DateFormat.js +6 -2
  14. package/dist/DateFormat.js.map +1 -0
  15. package/dist/LocaleData.d.ts +6 -0
  16. package/dist/LocaleData.js +6 -2
  17. package/dist/LocaleData.js.map +1 -0
  18. package/dist/dates/CalendarDate.d.ts +43 -0
  19. package/dist/dates/CalendarDate.js +171 -201
  20. package/dist/dates/CalendarDate.js.map +1 -0
  21. package/dist/dates/ExtremeDates.d.ts +5 -0
  22. package/dist/dates/ExtremeDates.js +25 -35
  23. package/dist/dates/ExtremeDates.js.map +1 -0
  24. package/dist/dates/UI5Date.d.ts +6 -0
  25. package/dist/dates/UI5Date.js +7 -0
  26. package/dist/dates/UI5Date.js.map +1 -0
  27. package/dist/dates/UniversalDate.d.ts +47 -0
  28. package/dist/dates/UniversalDate.js +5 -0
  29. package/dist/dates/UniversalDate.js.map +1 -0
  30. package/dist/dates/calculateWeekNumber.d.ts +5 -0
  31. package/dist/dates/calculateWeekNumber.js +42 -48
  32. package/dist/dates/calculateWeekNumber.js.map +1 -0
  33. package/dist/dates/convertMonthNumbersToMonthNames.d.ts +16 -0
  34. package/dist/dates/convertMonthNumbersToMonthNames.js +30 -0
  35. package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -0
  36. package/dist/dates/getDaysInMonth.d.ts +3 -0
  37. package/dist/dates/getDaysInMonth.js +10 -0
  38. package/dist/dates/getDaysInMonth.js.map +1 -0
  39. package/dist/dates/getRoundedTimestamp.d.ts +7 -0
  40. package/dist/dates/getRoundedTimestamp.js +10 -9
  41. package/dist/dates/getRoundedTimestamp.js.map +1 -0
  42. package/dist/dates/getTodayUTCTimestamp.d.ts +7 -0
  43. package/dist/dates/getTodayUTCTimestamp.js +3 -3
  44. package/dist/dates/getTodayUTCTimestamp.js.map +1 -0
  45. package/dist/dates/modifyDateBy.d.ts +14 -0
  46. package/dist/dates/modifyDateBy.js +42 -29
  47. package/dist/dates/modifyDateBy.js.map +1 -0
  48. package/dist/dates/transformDateToSecondaryType.d.ts +7 -0
  49. package/dist/dates/transformDateToSecondaryType.js +18 -0
  50. package/dist/dates/transformDateToSecondaryType.js.map +1 -0
  51. package/dist/features/calendar/Buddhist.js +1 -0
  52. package/dist/features/calendar/Buddhist.js.map +1 -0
  53. package/dist/features/calendar/Gregorian.js +1 -0
  54. package/dist/features/calendar/Gregorian.js.map +1 -0
  55. package/dist/features/calendar/Islamic.js +1 -0
  56. package/dist/features/calendar/Islamic.js.map +1 -0
  57. package/dist/features/calendar/Japanese.js +1 -0
  58. package/dist/features/calendar/Japanese.js.map +1 -0
  59. package/dist/features/calendar/Persian.js +1 -0
  60. package/dist/features/calendar/Persian.js.map +1 -0
  61. package/dist/generated/assets/cldr/ar.json +5531 -5906
  62. package/dist/generated/assets/cldr/ar_EG.json +5531 -5906
  63. package/dist/generated/assets/cldr/ar_SA.json +5530 -5906
  64. package/dist/generated/assets/cldr/bg.json +4452 -4979
  65. package/dist/generated/assets/cldr/ca.json +4440 -4996
  66. package/dist/generated/assets/cldr/cs.json +4960 -5498
  67. package/dist/generated/assets/cldr/cy.json +5211 -5884
  68. package/dist/generated/assets/cldr/da.json +4308 -4888
  69. package/dist/generated/assets/cldr/de.json +4313 -4916
  70. package/dist/generated/assets/cldr/de_AT.json +4314 -4917
  71. package/dist/generated/assets/cldr/de_CH.json +4312 -4915
  72. package/dist/generated/assets/cldr/el.json +4281 -4883
  73. package/dist/generated/assets/cldr/el_CY.json +4281 -4883
  74. package/dist/generated/assets/cldr/en.json +4316 -4970
  75. package/dist/generated/assets/cldr/en_AU.json +4319 -4962
  76. package/dist/generated/assets/cldr/en_GB.json +4329 -4971
  77. package/dist/generated/assets/cldr/en_HK.json +4337 -4977
  78. package/dist/generated/assets/cldr/en_IE.json +4328 -4971
  79. package/dist/generated/assets/cldr/en_IN.json +4333 -4972
  80. package/dist/generated/assets/cldr/en_NZ.json +4328 -4971
  81. package/dist/generated/assets/cldr/en_PG.json +4329 -4972
  82. package/dist/generated/assets/cldr/en_SG.json +4333 -4973
  83. package/dist/generated/assets/cldr/en_ZA.json +4329 -4972
  84. package/dist/generated/assets/cldr/es.json +4331 -4912
  85. package/dist/generated/assets/cldr/es_AR.json +4334 -4914
  86. package/dist/generated/assets/cldr/es_BO.json +4333 -4913
  87. package/dist/generated/assets/cldr/es_CL.json +4334 -4914
  88. package/dist/generated/assets/cldr/es_CO.json +4333 -4913
  89. package/dist/generated/assets/cldr/es_MX.json +4335 -4915
  90. package/dist/generated/assets/cldr/es_PE.json +4333 -4913
  91. package/dist/generated/assets/cldr/es_UY.json +4335 -4915
  92. package/dist/generated/assets/cldr/es_VE.json +4334 -4914
  93. package/dist/generated/assets/cldr/et.json +4340 -4967
  94. package/dist/generated/assets/cldr/fa.json +4367 -4883
  95. package/dist/generated/assets/cldr/fi.json +4463 -5008
  96. package/dist/generated/assets/cldr/fr.json +4357 -4979
  97. package/dist/generated/assets/cldr/fr_BE.json +4357 -4979
  98. package/dist/generated/assets/cldr/fr_CA.json +4351 -4973
  99. package/dist/generated/assets/cldr/fr_CH.json +4375 -4997
  100. package/dist/generated/assets/cldr/fr_LU.json +4357 -4979
  101. package/dist/generated/assets/cldr/he.json +4869 -5378
  102. package/dist/generated/assets/cldr/hi.json +4295 -4829
  103. package/dist/generated/assets/cldr/hr.json +4583 -4919
  104. package/dist/generated/assets/cldr/hu.json +4364 -4856
  105. package/dist/generated/assets/cldr/id.json +4060 -4658
  106. package/dist/generated/assets/cldr/it.json +4299 -4950
  107. package/dist/generated/assets/cldr/it_CH.json +4299 -4950
  108. package/dist/generated/assets/cldr/ja.json +4211 -4830
  109. package/dist/generated/assets/cldr/kk.json +4339 -4725
  110. package/dist/generated/assets/cldr/ko.json +4189 -4738
  111. package/dist/generated/assets/cldr/lt.json +4850 -5481
  112. package/dist/generated/assets/cldr/lv.json +4587 -5112
  113. package/dist/generated/assets/cldr/ms.json +4021 -4515
  114. package/dist/generated/assets/cldr/nb.json +4335 -4977
  115. package/dist/generated/assets/cldr/nl.json +4294 -4884
  116. package/dist/generated/assets/cldr/nl_BE.json +4294 -4884
  117. package/dist/generated/assets/cldr/pl.json +4667 -5176
  118. package/dist/generated/assets/cldr/pt.json +4235 -4805
  119. package/dist/generated/assets/cldr/pt_PT.json +4372 -4940
  120. package/dist/generated/assets/cldr/ro.json +4563 -5090
  121. package/dist/generated/assets/cldr/ru.json +4909 -5407
  122. package/dist/generated/assets/cldr/ru_UA.json +4909 -5407
  123. package/dist/generated/assets/cldr/sk.json +4939 -5370
  124. package/dist/generated/assets/cldr/sl.json +4910 -5340
  125. package/dist/generated/assets/cldr/sr.json +4585 -5126
  126. package/dist/generated/assets/cldr/sr_Latn.json +4574 -5127
  127. package/dist/generated/assets/cldr/sv.json +4362 -5011
  128. package/dist/generated/assets/cldr/th.json +4214 -4797
  129. package/dist/generated/assets/cldr/tr.json +4400 -4979
  130. package/dist/generated/assets/cldr/uk.json +4858 -5353
  131. package/dist/generated/assets/cldr/vi.json +4070 -4673
  132. package/dist/generated/assets/cldr/zh_CN.json +4100 -4632
  133. package/dist/generated/assets/cldr/zh_HK.json +4108 -4640
  134. package/dist/generated/assets/cldr/zh_SG.json +4108 -4640
  135. package/dist/generated/assets/cldr/zh_TW.json +4131 -4728
  136. package/dist/generated/json-imports/LocaleData-static.d.ts +1 -0
  137. package/dist/generated/json-imports/LocaleData-static.js +10 -11
  138. package/dist/generated/json-imports/LocaleData-static.js.map +1 -0
  139. package/dist/generated/json-imports/LocaleData.d.ts +1 -0
  140. package/dist/generated/json-imports/LocaleData.js +86 -87
  141. package/dist/generated/json-imports/LocaleData.js.map +1 -0
  142. package/dist/getCachedLocaleDataInstance.d.ts +4 -0
  143. package/dist/getCachedLocaleDataInstance.js +6 -9
  144. package/dist/getCachedLocaleDataInstance.js.map +1 -0
  145. package/dist/locale/getLocaleData.d.ts +11 -0
  146. package/dist/locale/getLocaleData.js +13 -17
  147. package/dist/locale/getLocaleData.js.map +1 -0
  148. package/dist/sap/base/Log.js +28 -37
  149. package/dist/sap/base/assert.js +5 -10
  150. package/dist/sap/base/i18n/LanguageTag.js +35 -0
  151. package/dist/sap/base/i18n/Localization.d.ts +4 -0
  152. package/dist/sap/base/i18n/Localization.js +12 -0
  153. package/dist/sap/base/i18n/Localization.js.map +1 -0
  154. package/dist/sap/base/i18n/date/CalendarType.js +8 -0
  155. package/dist/sap/base/i18n/date/CalendarWeekNumbering.js +30 -0
  156. package/dist/sap/base/i18n/date/TimezoneUtils.js +89 -0
  157. package/dist/sap/base/util/LoaderExtensions.d.ts +4 -0
  158. package/dist/sap/base/util/LoaderExtensions.js +9 -12
  159. package/dist/sap/base/util/LoaderExtensions.js.map +1 -0
  160. package/dist/sap/base/util/deepEqual.js +1 -5
  161. package/dist/sap/ui/base/Metadata.js +20 -9
  162. package/dist/sap/ui/base/Object.js +26 -2
  163. package/dist/sap/ui/core/CalendarType.js +2 -8
  164. package/dist/sap/ui/core/Configuration.d.ts +18 -0
  165. package/dist/sap/ui/core/Configuration.js +23 -0
  166. package/dist/sap/ui/core/Configuration.js.map +1 -0
  167. package/dist/sap/ui/core/Core.d.ts +27 -0
  168. package/dist/sap/ui/core/Core.js +7 -32
  169. package/dist/sap/ui/core/Core.js.map +1 -0
  170. package/dist/sap/ui/core/FormatSettings.d.ts +10 -0
  171. package/dist/sap/ui/core/FormatSettings.js +14 -0
  172. package/dist/sap/ui/core/FormatSettings.js.map +1 -0
  173. package/dist/sap/ui/core/Locale.js +28 -110
  174. package/dist/sap/ui/core/LocaleData.js +215 -1537
  175. package/dist/sap/ui/core/date/Buddhist.js +0 -6
  176. package/dist/sap/ui/core/date/CalendarUtils.js +25 -0
  177. package/dist/sap/ui/core/date/CalendarWeekNumbering.js +2 -0
  178. package/dist/sap/ui/core/date/Islamic.js +3 -3
  179. package/dist/sap/ui/core/date/Japanese.js +4 -4
  180. package/dist/sap/ui/core/date/UI5Date.js +305 -0
  181. package/dist/sap/ui/core/date/UniversalDate.js +73 -26
  182. package/dist/sap/ui/core/format/DateFormat.js +849 -494
  183. package/dist/sap/ui/core/format/TimezoneUtil.js +2 -0
  184. package/package-scripts.cjs +32 -0
  185. package/package.json +10 -15
  186. package/src/generated/assets/cldr/ar.json +5533 -0
  187. package/src/generated/assets/cldr/ar_EG.json +5533 -0
  188. package/src/generated/assets/cldr/ar_SA.json +5532 -0
  189. package/src/generated/assets/cldr/bg.json +4454 -0
  190. package/src/generated/assets/cldr/ca.json +4442 -0
  191. package/src/generated/assets/cldr/cs.json +4962 -0
  192. package/src/generated/assets/cldr/cy.json +5213 -0
  193. package/src/generated/assets/cldr/da.json +4310 -0
  194. package/src/generated/assets/cldr/de.json +4315 -0
  195. package/src/generated/assets/cldr/de_AT.json +4316 -0
  196. package/src/generated/assets/cldr/de_CH.json +4314 -0
  197. package/src/generated/assets/cldr/el.json +4283 -0
  198. package/src/generated/assets/cldr/el_CY.json +4283 -0
  199. package/src/generated/assets/cldr/en.json +4318 -0
  200. package/src/generated/assets/cldr/en_AU.json +4321 -0
  201. package/src/generated/assets/cldr/en_GB.json +4331 -0
  202. package/src/generated/assets/cldr/en_HK.json +4339 -0
  203. package/src/generated/assets/cldr/en_IE.json +4330 -0
  204. package/src/generated/assets/cldr/en_IN.json +4335 -0
  205. package/src/generated/assets/cldr/en_NZ.json +4330 -0
  206. package/src/generated/assets/cldr/en_PG.json +4331 -0
  207. package/src/generated/assets/cldr/en_SG.json +4335 -0
  208. package/src/generated/assets/cldr/en_ZA.json +4331 -0
  209. package/src/generated/assets/cldr/es.json +4333 -0
  210. package/src/generated/assets/cldr/es_AR.json +4336 -0
  211. package/src/generated/assets/cldr/es_BO.json +4335 -0
  212. package/src/generated/assets/cldr/es_CL.json +4336 -0
  213. package/src/generated/assets/cldr/es_CO.json +4335 -0
  214. package/src/generated/assets/cldr/es_MX.json +4337 -0
  215. package/src/generated/assets/cldr/es_PE.json +4335 -0
  216. package/src/generated/assets/cldr/es_UY.json +4337 -0
  217. package/src/generated/assets/cldr/es_VE.json +4336 -0
  218. package/src/generated/assets/cldr/et.json +4342 -0
  219. package/src/generated/assets/cldr/fa.json +4369 -0
  220. package/src/generated/assets/cldr/fi.json +4465 -0
  221. package/src/generated/assets/cldr/fr.json +4359 -0
  222. package/src/generated/assets/cldr/fr_BE.json +4359 -0
  223. package/src/generated/assets/cldr/fr_CA.json +4353 -0
  224. package/src/generated/assets/cldr/fr_CH.json +4377 -0
  225. package/src/generated/assets/cldr/fr_LU.json +4359 -0
  226. package/src/generated/assets/cldr/he.json +4871 -0
  227. package/src/generated/assets/cldr/hi.json +4297 -0
  228. package/src/generated/assets/cldr/hr.json +4585 -0
  229. package/src/generated/assets/cldr/hu.json +4366 -0
  230. package/src/generated/assets/cldr/id.json +4062 -0
  231. package/src/generated/assets/cldr/it.json +4301 -0
  232. package/src/generated/assets/cldr/it_CH.json +4301 -0
  233. package/src/generated/assets/cldr/ja.json +4213 -0
  234. package/src/generated/assets/cldr/kk.json +4341 -0
  235. package/src/generated/assets/cldr/ko.json +4191 -0
  236. package/src/generated/assets/cldr/lt.json +4852 -0
  237. package/src/generated/assets/cldr/lv.json +4589 -0
  238. package/src/generated/assets/cldr/ms.json +4023 -0
  239. package/src/generated/assets/cldr/nb.json +4337 -0
  240. package/src/generated/assets/cldr/nl.json +4296 -0
  241. package/src/generated/assets/cldr/nl_BE.json +4296 -0
  242. package/src/generated/assets/cldr/pl.json +4669 -0
  243. package/src/generated/assets/cldr/pt.json +4237 -0
  244. package/src/generated/assets/cldr/pt_PT.json +4374 -0
  245. package/src/generated/assets/cldr/ro.json +4565 -0
  246. package/src/generated/assets/cldr/ru.json +4911 -0
  247. package/src/generated/assets/cldr/ru_UA.json +4911 -0
  248. package/src/generated/assets/cldr/sk.json +4941 -0
  249. package/src/generated/assets/cldr/sl.json +4912 -0
  250. package/src/generated/assets/cldr/sr.json +4587 -0
  251. package/src/generated/assets/cldr/sr_Latn.json +4576 -0
  252. package/src/generated/assets/cldr/sv.json +4364 -0
  253. package/src/generated/assets/cldr/th.json +4216 -0
  254. package/src/generated/assets/cldr/tr.json +4402 -0
  255. package/src/generated/assets/cldr/uk.json +4860 -0
  256. package/src/generated/assets/cldr/vi.json +4072 -0
  257. package/src/generated/assets/cldr/zh_CN.json +4102 -0
  258. package/src/generated/assets/cldr/zh_HK.json +4110 -0
  259. package/src/generated/assets/cldr/zh_SG.json +4110 -0
  260. package/src/generated/assets/cldr/zh_TW.json +4133 -0
  261. package/tsconfig.json +23 -0
  262. package/used-modules.txt +9 -1
  263. package/hash.txt +0 -1
  264. package/package-scripts.js +0 -40
  265. package/src/Assets.js +0 -2
  266. package/src/DateFormat.js +0 -3
  267. package/src/LocaleData.js +0 -3
  268. package/src/dates/CalendarDate.js +0 -223
  269. package/src/dates/ExtremeDates.js +0 -39
  270. package/src/dates/calculateWeekNumber.js +0 -51
  271. package/src/dates/getRoundedTimestamp.js +0 -14
  272. package/src/dates/getTodayUTCTimestamp.js +0 -9
  273. package/src/dates/modifyDateBy.js +0 -42
  274. package/src/getCachedLocaleDataInstance.js +0 -13
  275. package/src/locale/getLocaleData.js +0 -27
  276. package/src/sap/base/util/LoaderExtensions.js +0 -17
  277. package/src/sap/ui/core/Core.js +0 -38
  278. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
  279. /package/{src/features/calendar/Buddhist.js → dist/features/calendar/Buddhist.d.ts} +0 -0
  280. /package/{src/features/calendar/Gregorian.js → dist/features/calendar/Gregorian.d.ts} +0 -0
  281. /package/{src/features/calendar/Islamic.js → dist/features/calendar/Islamic.d.ts} +0 -0
  282. /package/{src/features/calendar/Japanese.js → dist/features/calendar/Japanese.d.ts} +0 -0
  283. /package/{src/features/calendar/Persian.js → dist/features/calendar/Persian.d.ts} +0 -0
@@ -1,144 +1,62 @@
1
- import BaseObject from '../base/Object.js';
2
1
  import assert from '../../base/assert.js';
3
- var rLocale = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;
2
+ import BaseObject from '../base/Object.js';
3
+ import Localization from '../../base/i18n/Localization.js';
4
+ import LanguageTag from '../../base/i18n/LanguageTag.js';
4
5
  var Locale = BaseObject.extend('sap.ui.core.Locale', {
5
- constructor: function (sLocaleId) {
6
+ constructor: function (vLocale) {
6
7
  BaseObject.apply(this);
7
- var aResult = rLocale.exec(sLocaleId.replace(/_/g, '-'));
8
- if (aResult === null) {
9
- throw new TypeError('The given language \'' + sLocaleId + '\' does not adhere to BCP-47.');
10
- }
11
- this.sLocaleId = sLocaleId;
12
- this.sLanguage = aResult[1] || null;
13
- this.sScript = aResult[2] || null;
14
- this.sRegion = aResult[3] || null;
15
- this.sVariant = aResult[4] && aResult[4].slice(1) || null;
16
- this.sExtension = aResult[5] && aResult[5].slice(1) || null;
17
- this.sPrivateUse = aResult[6] || null;
18
- if (this.sLanguage) {
19
- this.sLanguage = this.sLanguage.toLowerCase();
20
- }
21
- if (this.sScript) {
22
- this.sScript = this.sScript.toLowerCase().replace(/^[a-z]/, function ($) {
23
- return $.toUpperCase();
24
- });
25
- }
26
- if (this.sRegion) {
27
- this.sRegion = this.sRegion.toUpperCase();
8
+ if (vLocale instanceof LanguageTag) {
9
+ this.oLanguageTag = vLocale;
10
+ this.sLocaleId = this.oLanguageTag.toString();
11
+ } else {
12
+ this.oLanguageTag = new LanguageTag(vLocale);
13
+ this.sLocaleId = vLocale;
28
14
  }
15
+ Object.assign(this, this.oLanguageTag);
16
+ this.sLanguage = this.language;
29
17
  },
30
18
  getLanguage: function () {
31
- return this.sLanguage;
19
+ return this.language;
32
20
  },
33
21
  getScript: function () {
34
- return this.sScript;
22
+ return this.script;
35
23
  },
36
24
  getRegion: function () {
37
- return this.sRegion;
25
+ return this.region;
38
26
  },
39
27
  getVariant: function () {
40
- return this.sVariant;
28
+ return this.variant;
41
29
  },
42
30
  getVariantSubtags: function () {
43
- return this.sVariant ? this.sVariant.split('-') : [];
31
+ return this.variantSubtags;
44
32
  },
45
33
  getExtension: function () {
46
- return this.sExtension;
34
+ return this.extension;
47
35
  },
48
36
  getExtensionSubtags: function () {
49
- return this.sExtension ? this.sExtension.slice(2).split('-') : [];
37
+ return this.extensionSubtags;
50
38
  },
51
39
  getPrivateUse: function () {
52
- return this.sPrivateUse;
40
+ return this.privateUse;
53
41
  },
54
42
  getPrivateUseSubtags: function () {
55
- return this.sPrivateUse ? this.sPrivateUse.slice(2).split('-') : [];
43
+ return this.privateUseSubtags;
56
44
  },
57
45
  hasPrivateUseSubtag: function (sSubtag) {
58
46
  assert(sSubtag && sSubtag.match(/^[0-9A-Z]{1,8}$/i), 'subtag must be a valid BCP47 private use tag');
59
- return this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;
47
+ return this.privateUseSubtags.indexOf(sSubtag) >= 0;
60
48
  },
61
49
  toString: function () {
62
- return join(this.sLanguage, this.sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);
63
- },
64
- toLanguageTag: function () {
65
- var sLanguage = this.getModernLanguage();
66
- var sScript = this.sScript;
67
- if (sLanguage === 'sr' && sScript === 'Latn') {
68
- sLanguage = 'sh';
69
- sScript = null;
70
- }
71
- return join(sLanguage, sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);
72
- },
73
- getModernLanguage: function () {
74
- return M_ISO639_OLD_TO_NEW[this.sLanguage] || this.sLanguage;
50
+ return this.oLanguageTag.toString();
75
51
  },
76
52
  getSAPLogonLanguage: function () {
77
- var sLanguage = this.sLanguage || '';
78
- if (sLanguage.indexOf('-') >= 0) {
79
- sLanguage = sLanguage.slice(0, sLanguage.indexOf('-'));
80
- }
81
- sLanguage = M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;
82
- if (sLanguage === 'zh' && !this.sScript && this.sRegion === 'TW') {
83
- return 'ZF';
84
- }
85
- return M_LOCALE_TO_ABAP_LANGUAGE[join(sLanguage, this.sScript)] || M_LOCALE_TO_ABAP_LANGUAGE[join(sLanguage, this.sRegion)] || M_LOCALE_TO_ABAP_LANGUAGE[getPseudoLanguageTag(this.sPrivateUse)] || sLanguage.toUpperCase();
53
+ return Localization._getSAPLogonLanguage(this);
86
54
  }
87
55
  });
88
- function getPseudoLanguageTag(sPrivateUse) {
89
- if (sPrivateUse) {
90
- var m = /-(saptrc|sappsd|saprigi)(?:-|$)/i.exec(sPrivateUse);
91
- return m && 'en-US-x-' + m[1].toLowerCase();
92
- }
93
- }
94
- var M_ISO639_OLD_TO_NEW = {
95
- 'iw': 'he',
96
- 'ji': 'yi'
97
- };
98
- var M_ABAP_LANGUAGE_TO_LOCALE = {
99
- 'ZH': 'zh-Hans',
100
- 'ZF': 'zh-Hant',
101
- 'SH': 'sr-Latn',
102
- '6N': 'en-GB',
103
- '1X': 'es-MX',
104
- '1Q': 'en-US-x-saptrc',
105
- '2Q': 'en-US-x-sappsd',
106
- '3Q': 'en-US-x-saprigi'
107
- };
108
- var M_LOCALE_TO_ABAP_LANGUAGE = inverse(M_ABAP_LANGUAGE_TO_LOCALE);
109
- function getDesigntimePropertyAsArray(sValue) {
110
- var m = /\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(sValue);
111
- return m && m[2] ? m[2].split(/,/) : null;
112
- }
113
- var A_RTL_LOCALES = getDesigntimePropertyAsArray('$cldr-rtl-locales:ar,fa,he$') || [];
114
- Locale._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$');
115
- Locale._coreI18nLocales = getDesigntimePropertyAsArray('$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,en_GB,es,es_MX,et,fi,fr,hi,hr,hu,it,iw,ja,kk,ko,lt,lv,ms,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$');
116
- Locale._impliesRTL = function (vLanguage) {
117
- var oLocale = vLanguage instanceof Locale ? vLanguage : new Locale(vLanguage);
118
- var sLanguage = oLocale.getLanguage() || '';
119
- sLanguage = sLanguage && M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;
120
- var sRegion = oLocale.getRegion() || '';
121
- if (sRegion && A_RTL_LOCALES.indexOf(sLanguage + '_' + sRegion) >= 0) {
122
- return true;
123
- }
124
- return A_RTL_LOCALES.indexOf(sLanguage) >= 0;
125
- };
126
- Locale.fromSAPLogonLanguage = function (sSAPLogonLanguage) {
127
- if (sSAPLogonLanguage && typeof sSAPLogonLanguage === 'string') {
128
- sSAPLogonLanguage = M_ABAP_LANGUAGE_TO_LOCALE[sSAPLogonLanguage.toUpperCase()] || sSAPLogonLanguage;
129
- try {
130
- return new Locale(sSAPLogonLanguage);
131
- } catch (e) {
132
- }
56
+ Locale._getCoreLocale = function (oLocale) {
57
+ if (oLocale instanceof LanguageTag) {
58
+ oLocale = new Locale(oLocale);
133
59
  }
60
+ return oLocale;
134
61
  };
135
- function join() {
136
- return Array.prototype.filter.call(arguments, Boolean).join('-');
137
- }
138
- function inverse(obj) {
139
- return Object.keys(obj).reduce(function (inv, key) {
140
- inv[obj[key]] = key;
141
- return inv;
142
- }, {});
143
- }
144
62
  export default Locale;