@ui5/webcomponents-localization 0.0.0-f734ea2da → 0.0.0-f79db712b

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 (208) hide show
  1. package/.eslintignore +2 -1
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +759 -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/tsconfig.json +24 -0
  187. package/used-modules.txt +9 -1
  188. package/hash.txt +0 -1
  189. package/package-scripts.js +0 -40
  190. package/src/Assets.js +0 -2
  191. package/src/DateFormat.js +0 -3
  192. package/src/LocaleData.js +0 -3
  193. package/src/dates/CalendarDate.js +0 -223
  194. package/src/dates/ExtremeDates.js +0 -39
  195. package/src/dates/calculateWeekNumber.js +0 -51
  196. package/src/dates/getRoundedTimestamp.js +0 -14
  197. package/src/dates/getTodayUTCTimestamp.js +0 -9
  198. package/src/dates/modifyDateBy.js +0 -42
  199. package/src/getCachedLocaleDataInstance.js +0 -13
  200. package/src/locale/getLocaleData.js +0 -27
  201. package/src/sap/base/util/LoaderExtensions.js +0 -17
  202. package/src/sap/ui/core/Core.js +0 -38
  203. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
  204. /package/{src/features/calendar/Buddhist.js → dist/features/calendar/Buddhist.d.ts} +0 -0
  205. /package/{src/features/calendar/Gregorian.js → dist/features/calendar/Gregorian.d.ts} +0 -0
  206. /package/{src/features/calendar/Islamic.js → dist/features/calendar/Islamic.d.ts} +0 -0
  207. /package/{src/features/calendar/Japanese.js → dist/features/calendar/Japanese.d.ts} +0 -0
  208. /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;