@hebcal/core 5.0.1 → 5.0.3
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/dist/bundle.js +1007 -629
- package/dist/bundle.min.js +2 -2
- package/dist/{index.js → index.cjs} +874 -497
- package/dist/index.mjs +874 -497
- package/package.json +20 -13
package/dist/index.mjs
CHANGED
|
@@ -1,346 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v5.0.
|
|
2
|
-
const GERESH = '׳';
|
|
3
|
-
const GERSHAYIM = '״';
|
|
4
|
-
const heb2num = {
|
|
5
|
-
'א': 1,
|
|
6
|
-
'ב': 2,
|
|
7
|
-
'ג': 3,
|
|
8
|
-
'ד': 4,
|
|
9
|
-
'ה': 5,
|
|
10
|
-
'ו': 6,
|
|
11
|
-
'ז': 7,
|
|
12
|
-
'ח': 8,
|
|
13
|
-
'ט': 9,
|
|
14
|
-
'י': 10,
|
|
15
|
-
'כ': 20,
|
|
16
|
-
'ל': 30,
|
|
17
|
-
'מ': 40,
|
|
18
|
-
'נ': 50,
|
|
19
|
-
'ס': 60,
|
|
20
|
-
'ע': 70,
|
|
21
|
-
'פ': 80,
|
|
22
|
-
'צ': 90,
|
|
23
|
-
'ק': 100,
|
|
24
|
-
'ר': 200,
|
|
25
|
-
'ש': 300,
|
|
26
|
-
'ת': 400
|
|
27
|
-
};
|
|
28
|
-
const num2heb = new Map();
|
|
29
|
-
for (const [key, val] of Object.entries(heb2num)) {
|
|
30
|
-
num2heb.set(val, key);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* @private
|
|
35
|
-
* @param {number} num
|
|
36
|
-
* @return {number[]}
|
|
37
|
-
*/
|
|
38
|
-
function num2digits(num) {
|
|
39
|
-
const digits = [];
|
|
40
|
-
while (num > 0) {
|
|
41
|
-
if (num === 15 || num === 16) {
|
|
42
|
-
digits.push(9);
|
|
43
|
-
digits.push(num - 9);
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
let incr = 100;
|
|
47
|
-
let i;
|
|
48
|
-
for (i = 400; i > num; i -= incr) {
|
|
49
|
-
if (i === incr) {
|
|
50
|
-
incr = incr / 10;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
digits.push(i);
|
|
54
|
-
num -= i;
|
|
55
|
-
}
|
|
56
|
-
return digits;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Converts a numerical value to a string of Hebrew letters.
|
|
61
|
-
*
|
|
62
|
-
* When specifying years of the Hebrew calendar in the present millennium,
|
|
63
|
-
* we omit the thousands (which is presently 5 [ה]).
|
|
64
|
-
* @example
|
|
65
|
-
* gematriya(5774) // 'תשע״ד' - cropped to 774
|
|
66
|
-
* gematriya(25) // 'כ״ה'
|
|
67
|
-
* gematriya(60) // 'ס׳'
|
|
68
|
-
* gematriya(3761) // 'ג׳תשס״א'
|
|
69
|
-
* gematriya(1123) // 'א׳קכ״ג'
|
|
70
|
-
* @param {number} number
|
|
71
|
-
* @return {string}
|
|
72
|
-
*/
|
|
73
|
-
function gematriya(number) {
|
|
74
|
-
const num = parseInt(number, 10);
|
|
75
|
-
if (!num) {
|
|
76
|
-
throw new TypeError(`invalid parameter to gematriya ${number}`);
|
|
77
|
-
}
|
|
78
|
-
let str = '';
|
|
79
|
-
const thousands = Math.floor(num / 1000);
|
|
80
|
-
if (thousands > 0 && thousands !== 5) {
|
|
81
|
-
const tdigits = num2digits(thousands);
|
|
82
|
-
for (const tdig of tdigits) {
|
|
83
|
-
str += num2heb.get(tdig);
|
|
84
|
-
}
|
|
85
|
-
str += GERESH;
|
|
86
|
-
}
|
|
87
|
-
const digits = num2digits(num % 1000);
|
|
88
|
-
if (digits.length == 1) {
|
|
89
|
-
return str + num2heb.get(digits[0]) + GERESH;
|
|
90
|
-
}
|
|
91
|
-
for (let i = 0; i < digits.length; i++) {
|
|
92
|
-
if (i + 1 === digits.length) {
|
|
93
|
-
str += GERSHAYIM;
|
|
94
|
-
}
|
|
95
|
-
str += num2heb.get(digits[i]);
|
|
96
|
-
}
|
|
97
|
-
return str;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Converts a string of Hebrew letters to a numerical value.
|
|
102
|
-
*
|
|
103
|
-
* Only considers the value of Hebrew letters `א` through `ת`.
|
|
104
|
-
* Ignores final Hebrew letters such as `ך` (kaf sofit) or `ם` (mem sofit)
|
|
105
|
-
* and vowels (nekudot).
|
|
106
|
-
*
|
|
107
|
-
* @param {string} str
|
|
108
|
-
* @return {number}
|
|
109
|
-
*/
|
|
110
|
-
function gematriyaStrToNum(str) {
|
|
111
|
-
let num = 0;
|
|
112
|
-
const gereshIdx = str.indexOf(GERESH);
|
|
113
|
-
if (gereshIdx !== -1 && gereshIdx !== str.length - 1) {
|
|
114
|
-
const thousands = str.substring(0, gereshIdx);
|
|
115
|
-
num += gematriyaStrToNum(thousands) * 1000;
|
|
116
|
-
str = str.substring(gereshIdx);
|
|
117
|
-
}
|
|
118
|
-
for (const ch of str) {
|
|
119
|
-
const n = heb2num[ch];
|
|
120
|
-
if (typeof n === 'number') {
|
|
121
|
-
num += n;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return num;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
const noopLocale = {
|
|
128
|
-
headers: {
|
|
129
|
-
'plural-forms': 'nplurals=2; plural=(n!=1);'
|
|
130
|
-
},
|
|
131
|
-
contexts: {
|
|
132
|
-
'': {}
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
const alias = {
|
|
136
|
-
'h': 'he',
|
|
137
|
-
'a': 'ashkenazi',
|
|
138
|
-
's': 'en',
|
|
139
|
-
'': 'en'
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
/** @private */
|
|
143
|
-
const locales = new Map();
|
|
144
|
-
/** @private */
|
|
145
|
-
let activeLocale = null;
|
|
146
|
-
/** @private */
|
|
147
|
-
let activeName = null;
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* A locale in Hebcal is used for translations/transliterations of
|
|
151
|
-
* holidays. `@hebcal/core` supports four locales by default
|
|
152
|
-
* * `en` - default, Sephardic transliterations (e.g. "Shabbat")
|
|
153
|
-
* * `ashkenazi` - Ashkenazi transliterations (e.g. "Shabbos")
|
|
154
|
-
* * `he` - Hebrew (e.g. "שַׁבָּת")
|
|
155
|
-
* * `he-x-NoNikud` - Hebrew without nikud (e.g. "שבת")
|
|
156
|
-
*/
|
|
157
|
-
class Locale {
|
|
158
|
-
/**
|
|
159
|
-
* Returns translation only if `locale` offers a non-empty translation for `id`.
|
|
160
|
-
* Otherwise, returns `undefined`.
|
|
161
|
-
* @param {string} id Message ID to translate
|
|
162
|
-
* @param {string} [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
|
|
163
|
-
* @return {string}
|
|
164
|
-
*/
|
|
165
|
-
static lookupTranslation(id, locale) {
|
|
166
|
-
const locale0 = locale === null || locale === void 0 ? void 0 : locale.toLowerCase();
|
|
167
|
-
const loc = typeof locale == 'string' && locales.get(locale0) || activeLocale;
|
|
168
|
-
const array = loc[id];
|
|
169
|
-
if (array && array.length && array[0].length) {
|
|
170
|
-
return array[0];
|
|
171
|
-
}
|
|
172
|
-
return undefined;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* By default, if no translation was found, returns `id`.
|
|
177
|
-
* @param {string} id Message ID to translate
|
|
178
|
-
* @param {string} [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
|
|
179
|
-
* @return {string}
|
|
180
|
-
*/
|
|
181
|
-
static gettext(id, locale) {
|
|
182
|
-
const text = this.lookupTranslation(id, locale);
|
|
183
|
-
if (typeof text == 'undefined') {
|
|
184
|
-
return id;
|
|
185
|
-
}
|
|
186
|
-
return text;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Register locale translations.
|
|
191
|
-
* @param {string} locale Locale name (i.e.: `'he'`, `'fr'`)
|
|
192
|
-
* @param {LocaleData} data parsed data from a `.po` file.
|
|
193
|
-
*/
|
|
194
|
-
static addLocale(locale, data) {
|
|
195
|
-
if (typeof locale !== 'string') {
|
|
196
|
-
throw new TypeError(`Invalid locale name: ${locale}`);
|
|
197
|
-
}
|
|
198
|
-
if (typeof data.contexts !== 'object' || typeof data.contexts[''] !== 'object') {
|
|
199
|
-
throw new TypeError(`Locale '${locale}' invalid compact format`);
|
|
200
|
-
}
|
|
201
|
-
locales.set(locale.toLowerCase(), data.contexts['']);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Adds a translation to `locale`, replacing any previous translation.
|
|
206
|
-
* @param {string} locale Locale name (i.e: `'he'`, `'fr'`).
|
|
207
|
-
* @param {string} id Message ID to translate
|
|
208
|
-
* @param {string} translation Translation text
|
|
209
|
-
*/
|
|
210
|
-
static addTranslation(locale, id, translation) {
|
|
211
|
-
if (typeof locale !== 'string') {
|
|
212
|
-
throw new TypeError(`Invalid locale name: ${locale}`);
|
|
213
|
-
}
|
|
214
|
-
const locale0 = locale.toLowerCase();
|
|
215
|
-
const loc = locales.get(locale0);
|
|
216
|
-
if (!loc) {
|
|
217
|
-
throw new TypeError(`Unknown locale: ${locale}`);
|
|
218
|
-
}
|
|
219
|
-
if (typeof id !== 'string' || id.length === 0) {
|
|
220
|
-
throw new TypeError(`Invalid id: ${id}`);
|
|
221
|
-
}
|
|
222
|
-
const isArray = Array.isArray(translation);
|
|
223
|
-
if (isArray) {
|
|
224
|
-
const t0 = translation[0];
|
|
225
|
-
if (typeof t0 !== 'string' || t0.length === 0) {
|
|
226
|
-
throw new TypeError(`Invalid translation array: ${translation}`);
|
|
227
|
-
}
|
|
228
|
-
} else if (typeof translation !== 'string') {
|
|
229
|
-
throw new TypeError(`Invalid translation: ${translation}`);
|
|
230
|
-
}
|
|
231
|
-
loc[id] = isArray ? translation : [translation];
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* Adds multiple translations to `locale`, replacing any previous translations.
|
|
235
|
-
* @param {string} locale Locale name (i.e: `'he'`, `'fr'`).
|
|
236
|
-
* @param {LocaleData} data parsed data from a `.po` file.
|
|
237
|
-
*/
|
|
238
|
-
static addTranslations(locale, data) {
|
|
239
|
-
if (typeof locale !== 'string') {
|
|
240
|
-
throw new TypeError(`Invalid locale name: ${locale}`);
|
|
241
|
-
}
|
|
242
|
-
const locale0 = locale.toLowerCase();
|
|
243
|
-
const loc = locales.get(locale0);
|
|
244
|
-
if (!loc) {
|
|
245
|
-
throw new TypeError(`Unknown locale: ${locale}`);
|
|
246
|
-
}
|
|
247
|
-
if (typeof data.contexts !== 'object' || typeof data.contexts[''] !== 'object') {
|
|
248
|
-
throw new TypeError(`Locale '${locale}' invalid compact format`);
|
|
249
|
-
}
|
|
250
|
-
const ctx = data.contexts[''];
|
|
251
|
-
Object.assign(loc, ctx);
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Activates a locale. Throws an error if the locale has not been previously added.
|
|
255
|
-
* After setting the locale to be used, all strings marked for translations
|
|
256
|
-
* will be represented by the corresponding translation in the specified locale.
|
|
257
|
-
* @param {string} locale Locale name (i.e: `'he'`, `'fr'`)
|
|
258
|
-
* @return {LocaleData}
|
|
259
|
-
*/
|
|
260
|
-
static useLocale(locale) {
|
|
261
|
-
const locale0 = locale.toLowerCase();
|
|
262
|
-
const obj = locales.get(locale0);
|
|
263
|
-
if (!obj) {
|
|
264
|
-
throw new RangeError(`Locale '${locale}' not found`);
|
|
265
|
-
}
|
|
266
|
-
activeName = alias[locale0] || locale0;
|
|
267
|
-
activeLocale = obj;
|
|
268
|
-
return activeLocale;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* Returns the name of the active locale (i.e. 'he', 'ashkenazi', 'fr')
|
|
273
|
-
* @return {string}
|
|
274
|
-
*/
|
|
275
|
-
static getLocaleName() {
|
|
276
|
-
return activeName;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
/**
|
|
280
|
-
* Returns the names of registered locales
|
|
281
|
-
* @return {string[]}
|
|
282
|
-
*/
|
|
283
|
-
static getLocaleNames() {
|
|
284
|
-
const keys = Array.from(locales.keys());
|
|
285
|
-
return keys.sort((a, b) => a.localeCompare(b));
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
/**
|
|
289
|
-
* @param {number} n
|
|
290
|
-
* @param {string} [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
|
|
291
|
-
* @return {string}
|
|
292
|
-
*/
|
|
293
|
-
static ordinal(n, locale) {
|
|
294
|
-
const locale1 = locale === null || locale === void 0 ? void 0 : locale.toLowerCase();
|
|
295
|
-
const locale0 = locale1 || activeName;
|
|
296
|
-
if (!locale0) {
|
|
297
|
-
return this.getEnOrdinal(n);
|
|
298
|
-
}
|
|
299
|
-
switch (locale0) {
|
|
300
|
-
case 'en':
|
|
301
|
-
case 's':
|
|
302
|
-
case 'a':
|
|
303
|
-
case 'ashkenazi':
|
|
304
|
-
case 'ashkenazi_litvish':
|
|
305
|
-
case 'ashkenazi_poylish':
|
|
306
|
-
case 'ashkenazi_standard':
|
|
307
|
-
return this.getEnOrdinal(n);
|
|
308
|
-
case 'es':
|
|
309
|
-
return n + 'º';
|
|
310
|
-
case 'h':
|
|
311
|
-
case 'he':
|
|
312
|
-
case 'he-x-nonikud':
|
|
313
|
-
return String(n);
|
|
314
|
-
default:
|
|
315
|
-
return n + '.';
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
* @private
|
|
321
|
-
* @param {number} n
|
|
322
|
-
* @return {string}
|
|
323
|
-
*/
|
|
324
|
-
static getEnOrdinal(n) {
|
|
325
|
-
const s = ['th', 'st', 'nd', 'rd'];
|
|
326
|
-
const v = n % 100;
|
|
327
|
-
return n + (s[(v - 20) % 10] || s[v] || s[0]);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
/**
|
|
331
|
-
* Removes nekudot from Hebrew string
|
|
332
|
-
* @param {string} str
|
|
333
|
-
* @return {string}
|
|
334
|
-
*/
|
|
335
|
-
static hebrewStripNikkud(str) {
|
|
336
|
-
return str.replace(/[\u0590-\u05bd]/g, '').replace(/[\u05bf-\u05c7]/g, '');
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
Locale.addLocale('en', noopLocale);
|
|
340
|
-
Locale.addLocale('s', noopLocale);
|
|
341
|
-
Locale.addLocale('', noopLocale);
|
|
342
|
-
Locale.useLocale('en');
|
|
343
|
-
|
|
1
|
+
/*! @hebcal/core v5.0.3 */
|
|
344
2
|
/** @private */
|
|
345
3
|
const lengths = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
346
4
|
/** @private */
|
|
@@ -517,7 +175,7 @@ const KISLEV$2 = 9;
|
|
|
517
175
|
const TEVET$2 = 10;
|
|
518
176
|
// const SHVAT = 11;
|
|
519
177
|
const ADAR_I$2 = 12;
|
|
520
|
-
const ADAR_II$
|
|
178
|
+
const ADAR_II$2 = 13;
|
|
521
179
|
/**
|
|
522
180
|
* Hebrew months of the year (NISAN=1, TISHREI=7)
|
|
523
181
|
* @readonly
|
|
@@ -683,7 +341,7 @@ function daysInMonth(month, year) {
|
|
|
683
341
|
case TAMUZ$1:
|
|
684
342
|
case ELUL$2:
|
|
685
343
|
case TEVET$2:
|
|
686
|
-
case ADAR_II$
|
|
344
|
+
case ADAR_II$2:
|
|
687
345
|
return 29;
|
|
688
346
|
}
|
|
689
347
|
if ((month === ADAR_I$2 && !isLeapYear(year)) ||
|
|
@@ -905,7 +563,7 @@ const KISLEV$1 = months.KISLEV;
|
|
|
905
563
|
const TEVET$1 = months.TEVET;
|
|
906
564
|
const SHVAT = months.SHVAT;
|
|
907
565
|
const ADAR_I$1 = months.ADAR_I;
|
|
908
|
-
const ADAR_II = months.ADAR_II;
|
|
566
|
+
const ADAR_II$1 = months.ADAR_II;
|
|
909
567
|
/**
|
|
910
568
|
* Returns true if the object is a Javascript Date
|
|
911
569
|
* @private
|
|
@@ -951,59 +609,396 @@ function getYahrzeitHD(hyear, date) {
|
|
|
951
609
|
// if that was not Kislev 30, use the day before Teveth 1.
|
|
952
610
|
hDeath = abs2hebrew(hebrew2abs(hyear, TEVET$1, 1) - 1);
|
|
953
611
|
}
|
|
954
|
-
else if (hDeath.mm == ADAR_II) {
|
|
612
|
+
else if (hDeath.mm == ADAR_II$1) {
|
|
955
613
|
// If it's Adar II, use the same day in last month of year (Adar or Adar II).
|
|
956
614
|
hDeath.mm = monthsInYear(hyear);
|
|
957
615
|
}
|
|
958
|
-
else if (hDeath.mm == ADAR_I$1 && hDeath.dd == 30 && !isLeapYear(hyear)) {
|
|
959
|
-
// If it's the 30th in Adar I and year is not a leap year
|
|
960
|
-
// (so Adar has only 29 days), use the last day in Shevat.
|
|
961
|
-
hDeath.dd = 30;
|
|
962
|
-
hDeath.mm = SHVAT;
|
|
616
|
+
else if (hDeath.mm == ADAR_I$1 && hDeath.dd == 30 && !isLeapYear(hyear)) {
|
|
617
|
+
// If it's the 30th in Adar I and year is not a leap year
|
|
618
|
+
// (so Adar has only 29 days), use the last day in Shevat.
|
|
619
|
+
hDeath.dd = 30;
|
|
620
|
+
hDeath.mm = SHVAT;
|
|
621
|
+
}
|
|
622
|
+
// In all other cases, use the normal anniversary of the date of death.
|
|
623
|
+
// advance day to rosh chodesh if needed
|
|
624
|
+
if (hDeath.mm == CHESHVAN && hDeath.dd == 30 && !longCheshvan(hyear)) {
|
|
625
|
+
hDeath.mm = KISLEV$1;
|
|
626
|
+
hDeath.dd = 1;
|
|
627
|
+
}
|
|
628
|
+
else if (hDeath.mm == KISLEV$1 && hDeath.dd == 30 && shortKislev(hyear)) {
|
|
629
|
+
hDeath.mm = TEVET$1;
|
|
630
|
+
hDeath.dd = 1;
|
|
631
|
+
}
|
|
632
|
+
hDeath.yy = hyear;
|
|
633
|
+
return hDeath;
|
|
634
|
+
}
|
|
635
|
+
function getBirthdayHD(hyear, date) {
|
|
636
|
+
const orig = toSimpleHebrewDate(date);
|
|
637
|
+
const origYear = orig.yy;
|
|
638
|
+
if (hyear === origYear) {
|
|
639
|
+
return orig;
|
|
640
|
+
}
|
|
641
|
+
else if (hyear < origYear) {
|
|
642
|
+
// Hebrew year ${hyear} occurs on or before original date in ${origYear}
|
|
643
|
+
return undefined;
|
|
644
|
+
}
|
|
645
|
+
const isOrigLeap = isLeapYear(origYear);
|
|
646
|
+
let month = orig.mm;
|
|
647
|
+
let day = orig.dd;
|
|
648
|
+
if ((month == ADAR_I$1 && !isOrigLeap) || (month == ADAR_II$1 && isOrigLeap)) {
|
|
649
|
+
month = monthsInYear(hyear);
|
|
650
|
+
}
|
|
651
|
+
else if (month == CHESHVAN && day == 30 && !longCheshvan(hyear)) {
|
|
652
|
+
month = KISLEV$1;
|
|
653
|
+
day = 1;
|
|
654
|
+
}
|
|
655
|
+
else if (month == KISLEV$1 && day == 30 && shortKislev(hyear)) {
|
|
656
|
+
month = TEVET$1;
|
|
657
|
+
day = 1;
|
|
658
|
+
}
|
|
659
|
+
else if (month == ADAR_I$1 && day == 30 && isOrigLeap && !isLeapYear(hyear)) {
|
|
660
|
+
month = NISAN$3;
|
|
661
|
+
day = 1;
|
|
662
|
+
}
|
|
663
|
+
return { yy: hyear, mm: month, dd: day };
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
const GERESH = '׳';
|
|
667
|
+
const GERSHAYIM = '״';
|
|
668
|
+
const alefbet = {
|
|
669
|
+
'א': 1,
|
|
670
|
+
'ב': 2,
|
|
671
|
+
'ג': 3,
|
|
672
|
+
'ד': 4,
|
|
673
|
+
'ה': 5,
|
|
674
|
+
'ו': 6,
|
|
675
|
+
'ז': 7,
|
|
676
|
+
'ח': 8,
|
|
677
|
+
'ט': 9,
|
|
678
|
+
'י': 10,
|
|
679
|
+
'כ': 20,
|
|
680
|
+
'ל': 30,
|
|
681
|
+
'מ': 40,
|
|
682
|
+
'נ': 50,
|
|
683
|
+
'ס': 60,
|
|
684
|
+
'ע': 70,
|
|
685
|
+
'פ': 80,
|
|
686
|
+
'צ': 90,
|
|
687
|
+
'ק': 100,
|
|
688
|
+
'ר': 200,
|
|
689
|
+
'ש': 300,
|
|
690
|
+
'ת': 400,
|
|
691
|
+
};
|
|
692
|
+
const heb2num = new Map();
|
|
693
|
+
const num2heb = new Map();
|
|
694
|
+
for (const [key, val] of Object.entries(alefbet)) {
|
|
695
|
+
heb2num.set(key, val);
|
|
696
|
+
num2heb.set(val, key);
|
|
697
|
+
}
|
|
698
|
+
function num2digits(num) {
|
|
699
|
+
const digits = [];
|
|
700
|
+
while (num > 0) {
|
|
701
|
+
if (num === 15 || num === 16) {
|
|
702
|
+
digits.push(9);
|
|
703
|
+
digits.push(num - 9);
|
|
704
|
+
break;
|
|
705
|
+
}
|
|
706
|
+
let incr = 100;
|
|
707
|
+
let i;
|
|
708
|
+
for (i = 400; i > num; i -= incr) {
|
|
709
|
+
if (i === incr) {
|
|
710
|
+
incr = incr / 10;
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
digits.push(i);
|
|
714
|
+
num -= i;
|
|
715
|
+
}
|
|
716
|
+
return digits;
|
|
717
|
+
}
|
|
718
|
+
/**
|
|
719
|
+
* Converts a numerical value to a string of Hebrew letters.
|
|
720
|
+
*
|
|
721
|
+
* When specifying years of the Hebrew calendar in the present millennium,
|
|
722
|
+
* we omit the thousands (which is presently 5 [ה]).
|
|
723
|
+
* @example
|
|
724
|
+
* gematriya(5774) // 'תשע״ד' - cropped to 774
|
|
725
|
+
* gematriya(25) // 'כ״ה'
|
|
726
|
+
* gematriya(60) // 'ס׳'
|
|
727
|
+
* gematriya(3761) // 'ג׳תשס״א'
|
|
728
|
+
* gematriya(1123) // 'א׳קכ״ג'
|
|
729
|
+
* @param {number} num
|
|
730
|
+
* @return {string}
|
|
731
|
+
*/
|
|
732
|
+
function gematriya(num) {
|
|
733
|
+
const num0 = num;
|
|
734
|
+
const num1 = parseInt(num0, 10);
|
|
735
|
+
if (!num1) {
|
|
736
|
+
throw new TypeError(`invalid parameter to gematriya ${num}`);
|
|
737
|
+
}
|
|
738
|
+
let str = '';
|
|
739
|
+
const thousands = Math.floor(num1 / 1000);
|
|
740
|
+
if (thousands > 0 && thousands !== 5) {
|
|
741
|
+
const tdigits = num2digits(thousands);
|
|
742
|
+
for (const tdig of tdigits) {
|
|
743
|
+
str += num2heb.get(tdig);
|
|
744
|
+
}
|
|
745
|
+
str += GERESH;
|
|
746
|
+
}
|
|
747
|
+
const digits = num2digits(num1 % 1000);
|
|
748
|
+
if (digits.length == 1) {
|
|
749
|
+
return str + num2heb.get(digits[0]) + GERESH;
|
|
750
|
+
}
|
|
751
|
+
for (let i = 0; i < digits.length; i++) {
|
|
752
|
+
if (i + 1 === digits.length) {
|
|
753
|
+
str += GERSHAYIM;
|
|
754
|
+
}
|
|
755
|
+
str += num2heb.get(digits[i]);
|
|
756
|
+
}
|
|
757
|
+
return str;
|
|
758
|
+
}
|
|
759
|
+
/**
|
|
760
|
+
* Converts a string of Hebrew letters to a numerical value.
|
|
761
|
+
*
|
|
762
|
+
* Only considers the value of Hebrew letters `א` through `ת`.
|
|
763
|
+
* Ignores final Hebrew letters such as `ך` (kaf sofit) or `ם` (mem sofit)
|
|
764
|
+
* and vowels (nekudot).
|
|
765
|
+
*
|
|
766
|
+
* @param {string} str
|
|
767
|
+
* @return {number}
|
|
768
|
+
*/
|
|
769
|
+
function gematriyaStrToNum(str) {
|
|
770
|
+
let num = 0;
|
|
771
|
+
const gereshIdx = str.indexOf(GERESH);
|
|
772
|
+
if (gereshIdx !== -1 && gereshIdx !== str.length - 1) {
|
|
773
|
+
const thousands = str.substring(0, gereshIdx);
|
|
774
|
+
num += gematriyaStrToNum(thousands) * 1000;
|
|
775
|
+
str = str.substring(gereshIdx);
|
|
776
|
+
}
|
|
777
|
+
for (const ch of str) {
|
|
778
|
+
const n = heb2num.get(ch);
|
|
779
|
+
if (typeof n === 'number') {
|
|
780
|
+
num += n;
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
return num;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
const noopLocale = {
|
|
787
|
+
headers: {
|
|
788
|
+
'plural-forms': 'nplurals=2; plural=(n!=1);'
|
|
789
|
+
},
|
|
790
|
+
contexts: {
|
|
791
|
+
'': {}
|
|
792
|
+
}
|
|
793
|
+
};
|
|
794
|
+
const alias = {
|
|
795
|
+
'h': 'he',
|
|
796
|
+
'a': 'ashkenazi',
|
|
797
|
+
's': 'en',
|
|
798
|
+
'': 'en'
|
|
799
|
+
};
|
|
800
|
+
|
|
801
|
+
/** @private */
|
|
802
|
+
const locales = new Map();
|
|
803
|
+
/** @private */
|
|
804
|
+
let activeLocale = null;
|
|
805
|
+
/** @private */
|
|
806
|
+
let activeName = null;
|
|
807
|
+
|
|
808
|
+
/**
|
|
809
|
+
* A locale in Hebcal is used for translations/transliterations of
|
|
810
|
+
* holidays. `@hebcal/core` supports four locales by default
|
|
811
|
+
* * `en` - default, Sephardic transliterations (e.g. "Shabbat")
|
|
812
|
+
* * `ashkenazi` - Ashkenazi transliterations (e.g. "Shabbos")
|
|
813
|
+
* * `he` - Hebrew (e.g. "שַׁבָּת")
|
|
814
|
+
* * `he-x-NoNikud` - Hebrew without nikud (e.g. "שבת")
|
|
815
|
+
*/
|
|
816
|
+
class Locale {
|
|
817
|
+
/**
|
|
818
|
+
* Returns translation only if `locale` offers a non-empty translation for `id`.
|
|
819
|
+
* Otherwise, returns `undefined`.
|
|
820
|
+
* @param {string} id Message ID to translate
|
|
821
|
+
* @param {string} [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
|
|
822
|
+
* @return {string}
|
|
823
|
+
*/
|
|
824
|
+
static lookupTranslation(id, locale) {
|
|
825
|
+
const locale0 = locale === null || locale === void 0 ? void 0 : locale.toLowerCase();
|
|
826
|
+
const loc = typeof locale == 'string' && locales.get(locale0) || activeLocale;
|
|
827
|
+
const array = loc[id];
|
|
828
|
+
if (array !== null && array !== void 0 && array.length && array[0].length) {
|
|
829
|
+
return array[0];
|
|
830
|
+
}
|
|
831
|
+
return undefined;
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
/**
|
|
835
|
+
* By default, if no translation was found, returns `id`.
|
|
836
|
+
* @param {string} id Message ID to translate
|
|
837
|
+
* @param {string} [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
|
|
838
|
+
* @return {string}
|
|
839
|
+
*/
|
|
840
|
+
static gettext(id, locale) {
|
|
841
|
+
const text = this.lookupTranslation(id, locale);
|
|
842
|
+
if (typeof text == 'undefined') {
|
|
843
|
+
return id;
|
|
844
|
+
}
|
|
845
|
+
return text;
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
/**
|
|
849
|
+
* Register locale translations.
|
|
850
|
+
* @param {string} locale Locale name (i.e.: `'he'`, `'fr'`)
|
|
851
|
+
* @param {LocaleData} data parsed data from a `.po` file.
|
|
852
|
+
*/
|
|
853
|
+
static addLocale(locale, data) {
|
|
854
|
+
if (typeof locale !== 'string') {
|
|
855
|
+
throw new TypeError(`Invalid locale name: ${locale}`);
|
|
856
|
+
}
|
|
857
|
+
if (typeof data.contexts !== 'object' || typeof data.contexts[''] !== 'object') {
|
|
858
|
+
throw new TypeError(`Locale '${locale}' invalid compact format`);
|
|
859
|
+
}
|
|
860
|
+
locales.set(locale.toLowerCase(), data.contexts['']);
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
/**
|
|
864
|
+
* Adds a translation to `locale`, replacing any previous translation.
|
|
865
|
+
* @param {string} locale Locale name (i.e: `'he'`, `'fr'`).
|
|
866
|
+
* @param {string} id Message ID to translate
|
|
867
|
+
* @param {string} translation Translation text
|
|
868
|
+
*/
|
|
869
|
+
static addTranslation(locale, id, translation) {
|
|
870
|
+
if (typeof locale !== 'string') {
|
|
871
|
+
throw new TypeError(`Invalid locale name: ${locale}`);
|
|
872
|
+
}
|
|
873
|
+
const locale0 = locale.toLowerCase();
|
|
874
|
+
const loc = locales.get(locale0);
|
|
875
|
+
if (!loc) {
|
|
876
|
+
throw new TypeError(`Unknown locale: ${locale}`);
|
|
963
877
|
}
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
if (hDeath.mm == CHESHVAN && hDeath.dd == 30 && !longCheshvan(hyear)) {
|
|
967
|
-
hDeath.mm = KISLEV$1;
|
|
968
|
-
hDeath.dd = 1;
|
|
878
|
+
if (typeof id !== 'string' || id.length === 0) {
|
|
879
|
+
throw new TypeError(`Invalid id: ${id}`);
|
|
969
880
|
}
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
881
|
+
const isArray = Array.isArray(translation);
|
|
882
|
+
if (isArray) {
|
|
883
|
+
const t0 = translation[0];
|
|
884
|
+
if (typeof t0 !== 'string' || t0.length === 0) {
|
|
885
|
+
throw new TypeError(`Invalid translation array: ${translation}`);
|
|
886
|
+
}
|
|
887
|
+
} else if (typeof translation !== 'string') {
|
|
888
|
+
throw new TypeError(`Invalid translation: ${translation}`);
|
|
973
889
|
}
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
890
|
+
loc[id] = isArray ? translation : [translation];
|
|
891
|
+
}
|
|
892
|
+
/**
|
|
893
|
+
* Adds multiple translations to `locale`, replacing any previous translations.
|
|
894
|
+
* @param {string} locale Locale name (i.e: `'he'`, `'fr'`).
|
|
895
|
+
* @param {LocaleData} data parsed data from a `.po` file.
|
|
896
|
+
*/
|
|
897
|
+
static addTranslations(locale, data) {
|
|
898
|
+
if (typeof locale !== 'string') {
|
|
899
|
+
throw new TypeError(`Invalid locale name: ${locale}`);
|
|
982
900
|
}
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
901
|
+
const locale0 = locale.toLowerCase();
|
|
902
|
+
const loc = locales.get(locale0);
|
|
903
|
+
if (!loc) {
|
|
904
|
+
throw new TypeError(`Unknown locale: ${locale}`);
|
|
986
905
|
}
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
let day = orig.dd;
|
|
990
|
-
if ((month == ADAR_I$1 && !isOrigLeap) || (month == ADAR_II && isOrigLeap)) {
|
|
991
|
-
month = monthsInYear(hyear);
|
|
906
|
+
if (typeof data.contexts !== 'object' || typeof data.contexts[''] !== 'object') {
|
|
907
|
+
throw new TypeError(`Locale '${locale}' invalid compact format`);
|
|
992
908
|
}
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
909
|
+
const ctx = data.contexts[''];
|
|
910
|
+
Object.assign(loc, ctx);
|
|
911
|
+
}
|
|
912
|
+
/**
|
|
913
|
+
* Activates a locale. Throws an error if the locale has not been previously added.
|
|
914
|
+
* After setting the locale to be used, all strings marked for translations
|
|
915
|
+
* will be represented by the corresponding translation in the specified locale.
|
|
916
|
+
* @param {string} locale Locale name (i.e: `'he'`, `'fr'`)
|
|
917
|
+
* @return {LocaleData}
|
|
918
|
+
*/
|
|
919
|
+
static useLocale(locale) {
|
|
920
|
+
const locale0 = locale.toLowerCase();
|
|
921
|
+
const obj = locales.get(locale0);
|
|
922
|
+
if (!obj) {
|
|
923
|
+
throw new RangeError(`Locale '${locale}' not found`);
|
|
996
924
|
}
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
925
|
+
activeName = alias[locale0] || locale0;
|
|
926
|
+
activeLocale = obj;
|
|
927
|
+
return activeLocale;
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
/**
|
|
931
|
+
* Returns the name of the active locale (i.e. 'he', 'ashkenazi', 'fr')
|
|
932
|
+
* @return {string}
|
|
933
|
+
*/
|
|
934
|
+
static getLocaleName() {
|
|
935
|
+
return activeName;
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
/**
|
|
939
|
+
* Returns the names of registered locales
|
|
940
|
+
* @return {string[]}
|
|
941
|
+
*/
|
|
942
|
+
static getLocaleNames() {
|
|
943
|
+
const keys = Array.from(locales.keys());
|
|
944
|
+
return keys.sort((a, b) => a.localeCompare(b));
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
/**
|
|
948
|
+
* @param {number} n
|
|
949
|
+
* @param {string} [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
|
|
950
|
+
* @return {string}
|
|
951
|
+
*/
|
|
952
|
+
static ordinal(n, locale) {
|
|
953
|
+
const locale1 = locale === null || locale === void 0 ? void 0 : locale.toLowerCase();
|
|
954
|
+
const locale0 = locale1 || activeName;
|
|
955
|
+
if (!locale0) {
|
|
956
|
+
return this.getEnOrdinal(n);
|
|
1000
957
|
}
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
958
|
+
switch (locale0) {
|
|
959
|
+
case 'en':
|
|
960
|
+
case 's':
|
|
961
|
+
case 'a':
|
|
962
|
+
case 'ashkenazi':
|
|
963
|
+
case 'ashkenazi_litvish':
|
|
964
|
+
case 'ashkenazi_poylish':
|
|
965
|
+
case 'ashkenazi_standard':
|
|
966
|
+
return this.getEnOrdinal(n);
|
|
967
|
+
case 'es':
|
|
968
|
+
return n + 'º';
|
|
969
|
+
case 'h':
|
|
970
|
+
case 'he':
|
|
971
|
+
case 'he-x-nonikud':
|
|
972
|
+
return String(n);
|
|
973
|
+
default:
|
|
974
|
+
return n + '.';
|
|
1004
975
|
}
|
|
1005
|
-
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
/**
|
|
979
|
+
* @private
|
|
980
|
+
* @param {number} n
|
|
981
|
+
* @return {string}
|
|
982
|
+
*/
|
|
983
|
+
static getEnOrdinal(n) {
|
|
984
|
+
const s = ['th', 'st', 'nd', 'rd'];
|
|
985
|
+
const v = n % 100;
|
|
986
|
+
return n + (s[(v - 20) % 10] || s[v] || s[0]);
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
/**
|
|
990
|
+
* Removes nekudot from Hebrew string
|
|
991
|
+
* @param {string} str
|
|
992
|
+
* @return {string}
|
|
993
|
+
*/
|
|
994
|
+
static hebrewStripNikkud(str) {
|
|
995
|
+
return str.replace(/[\u0590-\u05bd]/g, '').replace(/[\u05bf-\u05c7]/g, '');
|
|
996
|
+
}
|
|
1006
997
|
}
|
|
998
|
+
Locale.addLocale('en', noopLocale);
|
|
999
|
+
Locale.addLocale('s', noopLocale);
|
|
1000
|
+
Locale.addLocale('', noopLocale);
|
|
1001
|
+
Locale.useLocale('en');
|
|
1007
1002
|
|
|
1008
1003
|
/**
|
|
1009
1004
|
* @private
|
|
@@ -1997,15 +1992,24 @@ class HebrewDateEvent extends Event {
|
|
|
1997
1992
|
switch (locale0) {
|
|
1998
1993
|
case 'h':
|
|
1999
1994
|
case 'he':
|
|
1995
|
+
return hd.renderGematriya(false);
|
|
2000
1996
|
case 'he-x-nonikud':
|
|
2001
|
-
|
|
2002
|
-
const mm = Locale.gettext(hd.getMonthName(), locale0);
|
|
2003
|
-
const yy = hd.getFullYear();
|
|
2004
|
-
return gematriya(dd) + ' ' + mm + ' ' + gematriya(yy);
|
|
1997
|
+
return hd.renderGematriya(true);
|
|
2005
1998
|
default:
|
|
2006
1999
|
return hd.render(locale0, true);
|
|
2007
2000
|
}
|
|
2008
2001
|
}
|
|
2002
|
+
/**
|
|
2003
|
+
* @private
|
|
2004
|
+
* @param {string} locale
|
|
2005
|
+
* @return {string}
|
|
2006
|
+
*/
|
|
2007
|
+
renderBriefHebrew(locale) {
|
|
2008
|
+
const hd = this.getDate();
|
|
2009
|
+
const dd = hd.getDate();
|
|
2010
|
+
const mm = Locale.gettext(hd.getMonthName(), locale);
|
|
2011
|
+
return gematriya(dd) + ' ' + mm;
|
|
2012
|
+
}
|
|
2009
2013
|
/**
|
|
2010
2014
|
* @param {string} [locale] Optional locale name (defaults to active locale).
|
|
2011
2015
|
* @example
|
|
@@ -2028,9 +2032,7 @@ class HebrewDateEvent extends Event {
|
|
|
2028
2032
|
case 'h':
|
|
2029
2033
|
case 'he':
|
|
2030
2034
|
case 'he-x-nonikud':
|
|
2031
|
-
|
|
2032
|
-
const mm = Locale.gettext(hd.getMonthName(), locale0);
|
|
2033
|
-
return gematriya(dd) + ' ' + mm;
|
|
2035
|
+
return this.renderBriefHebrew(locale0);
|
|
2034
2036
|
default:
|
|
2035
2037
|
return hd.render(locale0, false);
|
|
2036
2038
|
}
|
|
@@ -3896,10 +3898,8 @@ class Zmanim {
|
|
|
3896
3898
|
}
|
|
3897
3899
|
|
|
3898
3900
|
/* eslint-disable max-len */
|
|
3899
|
-
const
|
|
3900
|
-
|
|
3901
|
-
SAT: 6
|
|
3902
|
-
};
|
|
3901
|
+
const FRI$3 = 5;
|
|
3902
|
+
const SAT$3 = 6;
|
|
3903
3903
|
|
|
3904
3904
|
/**
|
|
3905
3905
|
* @private
|
|
@@ -3912,11 +3912,11 @@ const days = {
|
|
|
3912
3912
|
*/
|
|
3913
3913
|
function makeCandleEvent(e, hd, dow, location, options) {
|
|
3914
3914
|
let havdalahTitle = false;
|
|
3915
|
-
let useHavdalahOffset = dow
|
|
3915
|
+
let useHavdalahOffset = dow === SAT$3;
|
|
3916
3916
|
let mask = e ? e.getFlags() : flags.LIGHT_CANDLES;
|
|
3917
3917
|
if (typeof e !== 'undefined') {
|
|
3918
3918
|
// if linked event && dow == FRI, use Candle lighting time & title
|
|
3919
|
-
if (dow
|
|
3919
|
+
if (dow !== FRI$3) {
|
|
3920
3920
|
if (mask & (flags.LIGHT_CANDLES_TZEIS | flags.CHANUKAH_CANDLES)) {
|
|
3921
3921
|
useHavdalahOffset = true;
|
|
3922
3922
|
} else if (mask & flags.YOM_TOV_ENDS) {
|
|
@@ -3924,7 +3924,7 @@ function makeCandleEvent(e, hd, dow, location, options) {
|
|
|
3924
3924
|
useHavdalahOffset = true;
|
|
3925
3925
|
}
|
|
3926
3926
|
}
|
|
3927
|
-
} else if (dow
|
|
3927
|
+
} else if (dow === SAT$3) {
|
|
3928
3928
|
havdalahTitle = true;
|
|
3929
3929
|
mask = flags.LIGHT_CANDLES_TZEIS;
|
|
3930
3930
|
}
|
|
@@ -4271,24 +4271,40 @@ class OmerEvent extends Event {
|
|
|
4271
4271
|
* @return {string}
|
|
4272
4272
|
*/
|
|
4273
4273
|
sefira(lang = 'en') {
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4280
|
-
|
|
4281
|
-
|
|
4282
|
-
case 'translit':
|
|
4283
|
-
const translitWeek = sefirotTranslit[this.weekNumber];
|
|
4284
|
-
const translitDayWithinWeek = sefirotTranslit[this.daysWithinWeeks];
|
|
4285
|
-
const translitPrefix = this.weekNumber === 2 || this.weekNumber === 6 ? 'shebi' : `sheb'`;
|
|
4286
|
-
return `${translitDayWithinWeek} ${translitPrefix}${translitWeek}`;
|
|
4287
|
-
case 'en':
|
|
4288
|
-
default:
|
|
4289
|
-
return `${dayWithinWeek} within ${week}`;
|
|
4274
|
+
if (lang === 'he') {
|
|
4275
|
+
return this.sefiraHe();
|
|
4276
|
+
} else if (lang === 'translit') {
|
|
4277
|
+
return this.sefiraTranslit();
|
|
4278
|
+
} else {
|
|
4279
|
+
const week = sefirot[this.weekNumber];
|
|
4280
|
+
const dayWithinWeek = sefirot[this.daysWithinWeeks];
|
|
4281
|
+
return `${dayWithinWeek} within ${week}`;
|
|
4290
4282
|
}
|
|
4291
4283
|
}
|
|
4284
|
+
/**
|
|
4285
|
+
* @private
|
|
4286
|
+
* @return {string}
|
|
4287
|
+
*/
|
|
4288
|
+
sefiraTranslit() {
|
|
4289
|
+
const weekNum = this.weekNumber;
|
|
4290
|
+
const translitWeek = sefirotTranslit[weekNum];
|
|
4291
|
+
const translitDayWithinWeek = sefirotTranslit[this.daysWithinWeeks];
|
|
4292
|
+
const translitPrefix = weekNum === 2 || weekNum === 6 ? 'shebi' : `sheb'`;
|
|
4293
|
+
return `${translitDayWithinWeek} ${translitPrefix}${translitWeek}`;
|
|
4294
|
+
}
|
|
4295
|
+
/**
|
|
4296
|
+
* @private
|
|
4297
|
+
* @return {string}
|
|
4298
|
+
*/
|
|
4299
|
+
sefiraHe() {
|
|
4300
|
+
const weekNum = this.weekNumber;
|
|
4301
|
+
const week = sefirot[weekNum];
|
|
4302
|
+
const dayWithinWeek = sefirot[this.daysWithinWeeks];
|
|
4303
|
+
const heWeek = Locale.gettext(week, 'he');
|
|
4304
|
+
const heDayWithinWeek = Locale.gettext(dayWithinWeek, 'he');
|
|
4305
|
+
const hePrefix = weekNum === 2 || weekNum === 6 ? 'שֶׁבִּ' : 'שֶׁבְּ';
|
|
4306
|
+
return `${heDayWithinWeek} ${hePrefix}${heWeek}`.normalize();
|
|
4307
|
+
}
|
|
4292
4308
|
/**
|
|
4293
4309
|
* @todo use gettext()
|
|
4294
4310
|
* @param {string} [locale] Optional locale name (defaults to active locale).
|
|
@@ -4952,18 +4968,15 @@ const Elul = months.ELUL;
|
|
|
4952
4968
|
const Tishrei = months.TISHREI;
|
|
4953
4969
|
const Cheshvan = months.CHESHVAN;
|
|
4954
4970
|
const Kislev = months.KISLEV;
|
|
4955
|
-
// const Tevet = months.TEVET;
|
|
4956
4971
|
const Shvat = months.SHVAT;
|
|
4957
|
-
// const Adar1 = months.ADAR_I;
|
|
4958
4972
|
const Adar2 = months.ADAR_II;
|
|
4959
4973
|
const CHAG$1 = flags.CHAG;
|
|
4960
4974
|
const LIGHT_CANDLES$1 = flags.LIGHT_CANDLES;
|
|
4961
4975
|
const YOM_TOV_ENDS$1 = flags.YOM_TOV_ENDS;
|
|
4962
4976
|
const CHUL_ONLY$1 = flags.CHUL_ONLY;
|
|
4963
|
-
const IL_ONLY$
|
|
4977
|
+
const IL_ONLY$2 = flags.IL_ONLY;
|
|
4964
4978
|
const LIGHT_CANDLES_TZEIS$2 = flags.LIGHT_CANDLES_TZEIS;
|
|
4965
4979
|
const CHANUKAH_CANDLES$2 = flags.CHANUKAH_CANDLES;
|
|
4966
|
-
// const MINOR_FAST = flags.MINOR_FAST;
|
|
4967
4980
|
const MAJOR_FAST$2 = flags.MAJOR_FAST;
|
|
4968
4981
|
const MINOR_HOLIDAY$2 = flags.MINOR_HOLIDAY;
|
|
4969
4982
|
const EREV$2 = flags.EREV;
|
|
@@ -5046,54 +5059,54 @@ const staticHolidays = [{
|
|
|
5046
5059
|
mm: Tishrei,
|
|
5047
5060
|
dd: 14,
|
|
5048
5061
|
desc: 'Erev Sukkot',
|
|
5049
|
-
flags: IL_ONLY$
|
|
5062
|
+
flags: IL_ONLY$2 | EREV$2 | LIGHT_CANDLES$1,
|
|
5050
5063
|
emoji: emojiSukkot
|
|
5051
5064
|
}, {
|
|
5052
5065
|
mm: Tishrei,
|
|
5053
5066
|
dd: 15,
|
|
5054
5067
|
desc: 'Sukkot I',
|
|
5055
|
-
flags: IL_ONLY$
|
|
5068
|
+
flags: IL_ONLY$2 | CHAG$1 | YOM_TOV_ENDS$1,
|
|
5056
5069
|
emoji: emojiSukkot
|
|
5057
5070
|
}, {
|
|
5058
5071
|
mm: Tishrei,
|
|
5059
5072
|
dd: 16,
|
|
5060
5073
|
desc: 'Sukkot II (CH\'\'M)',
|
|
5061
|
-
flags: IL_ONLY$
|
|
5074
|
+
flags: IL_ONLY$2 | CHOL_HAMOED$1,
|
|
5062
5075
|
chmDay: 1,
|
|
5063
5076
|
emoji: emojiSukkot
|
|
5064
5077
|
}, {
|
|
5065
5078
|
mm: Tishrei,
|
|
5066
5079
|
dd: 17,
|
|
5067
5080
|
desc: 'Sukkot III (CH\'\'M)',
|
|
5068
|
-
flags: IL_ONLY$
|
|
5081
|
+
flags: IL_ONLY$2 | CHOL_HAMOED$1,
|
|
5069
5082
|
chmDay: 2,
|
|
5070
5083
|
emoji: emojiSukkot
|
|
5071
5084
|
}, {
|
|
5072
5085
|
mm: Tishrei,
|
|
5073
5086
|
dd: 18,
|
|
5074
5087
|
desc: 'Sukkot IV (CH\'\'M)',
|
|
5075
|
-
flags: IL_ONLY$
|
|
5088
|
+
flags: IL_ONLY$2 | CHOL_HAMOED$1,
|
|
5076
5089
|
chmDay: 3,
|
|
5077
5090
|
emoji: emojiSukkot
|
|
5078
5091
|
}, {
|
|
5079
5092
|
mm: Tishrei,
|
|
5080
5093
|
dd: 19,
|
|
5081
5094
|
desc: 'Sukkot V (CH\'\'M)',
|
|
5082
|
-
flags: IL_ONLY$
|
|
5095
|
+
flags: IL_ONLY$2 | CHOL_HAMOED$1,
|
|
5083
5096
|
chmDay: 4,
|
|
5084
5097
|
emoji: emojiSukkot
|
|
5085
5098
|
}, {
|
|
5086
5099
|
mm: Tishrei,
|
|
5087
5100
|
dd: 20,
|
|
5088
5101
|
desc: 'Sukkot VI (CH\'\'M)',
|
|
5089
|
-
flags: IL_ONLY$
|
|
5102
|
+
flags: IL_ONLY$2 | CHOL_HAMOED$1,
|
|
5090
5103
|
chmDay: 5,
|
|
5091
5104
|
emoji: emojiSukkot
|
|
5092
5105
|
}, {
|
|
5093
5106
|
mm: Tishrei,
|
|
5094
5107
|
dd: 22,
|
|
5095
5108
|
desc: 'Shmini Atzeret',
|
|
5096
|
-
flags: IL_ONLY$
|
|
5109
|
+
flags: IL_ONLY$2 | CHAG$1 | YOM_TOV_ENDS$1
|
|
5097
5110
|
}, {
|
|
5098
5111
|
mm: Tishrei,
|
|
5099
5112
|
dd: 21,
|
|
@@ -5137,54 +5150,54 @@ const staticHolidays = [{
|
|
|
5137
5150
|
mm: Nisan,
|
|
5138
5151
|
dd: 14,
|
|
5139
5152
|
desc: 'Erev Pesach',
|
|
5140
|
-
flags: IL_ONLY$
|
|
5153
|
+
flags: IL_ONLY$2 | EREV$2 | LIGHT_CANDLES$1,
|
|
5141
5154
|
emoji: '🫓🍷'
|
|
5142
5155
|
}, {
|
|
5143
5156
|
mm: Nisan,
|
|
5144
5157
|
dd: 15,
|
|
5145
5158
|
desc: 'Pesach I',
|
|
5146
|
-
flags: IL_ONLY$
|
|
5159
|
+
flags: IL_ONLY$2 | CHAG$1 | YOM_TOV_ENDS$1,
|
|
5147
5160
|
emoji: emojiPesach
|
|
5148
5161
|
}, {
|
|
5149
5162
|
mm: Nisan,
|
|
5150
5163
|
dd: 16,
|
|
5151
5164
|
desc: 'Pesach II (CH\'\'M)',
|
|
5152
|
-
flags: IL_ONLY$
|
|
5165
|
+
flags: IL_ONLY$2 | CHOL_HAMOED$1,
|
|
5153
5166
|
chmDay: 1,
|
|
5154
5167
|
emoji: emojiPesach
|
|
5155
5168
|
}, {
|
|
5156
5169
|
mm: Nisan,
|
|
5157
5170
|
dd: 17,
|
|
5158
5171
|
desc: 'Pesach III (CH\'\'M)',
|
|
5159
|
-
flags: IL_ONLY$
|
|
5172
|
+
flags: IL_ONLY$2 | CHOL_HAMOED$1,
|
|
5160
5173
|
chmDay: 2,
|
|
5161
5174
|
emoji: emojiPesach
|
|
5162
5175
|
}, {
|
|
5163
5176
|
mm: Nisan,
|
|
5164
5177
|
dd: 18,
|
|
5165
5178
|
desc: 'Pesach IV (CH\'\'M)',
|
|
5166
|
-
flags: IL_ONLY$
|
|
5179
|
+
flags: IL_ONLY$2 | CHOL_HAMOED$1,
|
|
5167
5180
|
chmDay: 3,
|
|
5168
5181
|
emoji: emojiPesach
|
|
5169
5182
|
}, {
|
|
5170
5183
|
mm: Nisan,
|
|
5171
5184
|
dd: 19,
|
|
5172
5185
|
desc: 'Pesach V (CH\'\'M)',
|
|
5173
|
-
flags: IL_ONLY$
|
|
5186
|
+
flags: IL_ONLY$2 | CHOL_HAMOED$1,
|
|
5174
5187
|
chmDay: 4,
|
|
5175
5188
|
emoji: emojiPesach
|
|
5176
5189
|
}, {
|
|
5177
5190
|
mm: Nisan,
|
|
5178
5191
|
dd: 20,
|
|
5179
5192
|
desc: 'Pesach VI (CH\'\'M)',
|
|
5180
|
-
flags: IL_ONLY$
|
|
5193
|
+
flags: IL_ONLY$2 | CHOL_HAMOED$1 | LIGHT_CANDLES$1,
|
|
5181
5194
|
chmDay: 5,
|
|
5182
5195
|
emoji: emojiPesach
|
|
5183
5196
|
}, {
|
|
5184
5197
|
mm: Nisan,
|
|
5185
5198
|
dd: 21,
|
|
5186
5199
|
desc: 'Pesach VII',
|
|
5187
|
-
flags: IL_ONLY$
|
|
5200
|
+
flags: IL_ONLY$2 | CHAG$1 | YOM_TOV_ENDS$1,
|
|
5188
5201
|
emoji: emojiPesach
|
|
5189
5202
|
},
|
|
5190
5203
|
// Pesach chutz l'aretz
|
|
@@ -5267,7 +5280,7 @@ const staticHolidays = [{
|
|
|
5267
5280
|
mm: Sivan,
|
|
5268
5281
|
dd: 6,
|
|
5269
5282
|
desc: 'Shavuot',
|
|
5270
|
-
flags: IL_ONLY$
|
|
5283
|
+
flags: IL_ONLY$2 | CHAG$1 | YOM_TOV_ENDS$1,
|
|
5271
5284
|
emoji: '⛰️🌸'
|
|
5272
5285
|
}, {
|
|
5273
5286
|
mm: Sivan,
|
|
@@ -5376,6 +5389,16 @@ const staticModernHolidays = [{
|
|
|
5376
5389
|
You should have received a copy of the GNU General Public License
|
|
5377
5390
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
5378
5391
|
*/
|
|
5392
|
+
const CHAG = flags.CHAG;
|
|
5393
|
+
const IL_ONLY$1 = flags.IL_ONLY;
|
|
5394
|
+
const LIGHT_CANDLES_TZEIS$1 = flags.LIGHT_CANDLES_TZEIS;
|
|
5395
|
+
const CHANUKAH_CANDLES$1 = flags.CHANUKAH_CANDLES;
|
|
5396
|
+
const MINOR_FAST$1 = flags.MINOR_FAST;
|
|
5397
|
+
const SPECIAL_SHABBAT$1 = flags.SPECIAL_SHABBAT;
|
|
5398
|
+
const MODERN_HOLIDAY$1 = flags.MODERN_HOLIDAY;
|
|
5399
|
+
const MAJOR_FAST$1 = flags.MAJOR_FAST;
|
|
5400
|
+
const MINOR_HOLIDAY$1 = flags.MINOR_HOLIDAY;
|
|
5401
|
+
const EREV$1 = flags.EREV;
|
|
5379
5402
|
|
|
5380
5403
|
/** Represents a built-in holiday like Pesach, Purim or Tu BiShvat */
|
|
5381
5404
|
class HolidayEvent extends Event {
|
|
@@ -5390,7 +5413,7 @@ class HolidayEvent extends Event {
|
|
|
5390
5413
|
return undefined;
|
|
5391
5414
|
}
|
|
5392
5415
|
const url = 'https://www.hebcal.com/holidays/' + this.basename().toLowerCase().replace(/'/g, '').replace(/ /g, '-') + '-' + this.urlDateSuffix();
|
|
5393
|
-
return this.getFlags() &
|
|
5416
|
+
return this.getFlags() & IL_ONLY$1 ? url + '?i=on' : url;
|
|
5394
5417
|
}
|
|
5395
5418
|
/** @return {string} */
|
|
5396
5419
|
urlDateSuffix() {
|
|
@@ -5401,7 +5424,7 @@ class HolidayEvent extends Event {
|
|
|
5401
5424
|
getEmoji() {
|
|
5402
5425
|
if (this.emoji) {
|
|
5403
5426
|
return this.emoji;
|
|
5404
|
-
} else if (this.getFlags() &
|
|
5427
|
+
} else if (this.getFlags() & SPECIAL_SHABBAT$1) {
|
|
5405
5428
|
return '🕍';
|
|
5406
5429
|
} else {
|
|
5407
5430
|
return '✡️';
|
|
@@ -5491,7 +5514,7 @@ class MevarchimChodeshEvent extends Event {
|
|
|
5491
5514
|
this.monthName = monthName;
|
|
5492
5515
|
const hyear = date.getFullYear();
|
|
5493
5516
|
const hmonth = date.getMonth();
|
|
5494
|
-
const monNext = hmonth == HDate.monthsInYear(hyear) ?
|
|
5517
|
+
const monNext = hmonth == HDate.monthsInYear(hyear) ? NISAN$1 : hmonth + 1;
|
|
5495
5518
|
const molad = new MoladEvent(date, hyear, monNext);
|
|
5496
5519
|
this.memo = molad.render('en');
|
|
5497
5520
|
}
|
|
@@ -5572,41 +5595,19 @@ class YomKippurKatanEvent extends HolidayEvent {
|
|
|
5572
5595
|
}
|
|
5573
5596
|
}
|
|
5574
5597
|
const SUN = 0;
|
|
5575
|
-
// const MON = 1;
|
|
5576
5598
|
const TUE = 2;
|
|
5577
|
-
// const WED = 3;
|
|
5578
5599
|
const THU = 4;
|
|
5579
5600
|
const FRI$1 = 5;
|
|
5580
5601
|
const SAT$1 = 6;
|
|
5581
5602
|
const NISAN$1 = months.NISAN;
|
|
5582
|
-
// const IYYAR = months.IYYAR;
|
|
5583
|
-
// const SIVAN = months.SIVAN;
|
|
5584
5603
|
const TAMUZ = months.TAMUZ;
|
|
5585
5604
|
const AV = months.AV;
|
|
5586
5605
|
const ELUL$1 = months.ELUL;
|
|
5587
5606
|
const TISHREI$1 = months.TISHREI;
|
|
5588
|
-
// const CHESHVAN = months.CHESHVAN;
|
|
5589
5607
|
const KISLEV = months.KISLEV;
|
|
5590
5608
|
const TEVET = months.TEVET;
|
|
5591
|
-
// const SHVAT = months.SHVAT;
|
|
5592
5609
|
const ADAR_I = months.ADAR_I;
|
|
5593
|
-
|
|
5594
|
-
|
|
5595
|
-
const CHAG = flags.CHAG;
|
|
5596
|
-
// const LIGHT_CANDLES = flags.LIGHT_CANDLES;
|
|
5597
|
-
// const YOM_TOV_ENDS = flags.YOM_TOV_ENDS;
|
|
5598
|
-
// const CHUL_ONLY = flags.CHUL_ONLY;
|
|
5599
|
-
// const IL_ONLY = flags.IL_ONLY;
|
|
5600
|
-
const LIGHT_CANDLES_TZEIS$1 = flags.LIGHT_CANDLES_TZEIS;
|
|
5601
|
-
const CHANUKAH_CANDLES$1 = flags.CHANUKAH_CANDLES;
|
|
5602
|
-
const MINOR_FAST$1 = flags.MINOR_FAST;
|
|
5603
|
-
const SPECIAL_SHABBAT$1 = flags.SPECIAL_SHABBAT;
|
|
5604
|
-
const MODERN_HOLIDAY$1 = flags.MODERN_HOLIDAY;
|
|
5605
|
-
const MAJOR_FAST$1 = flags.MAJOR_FAST;
|
|
5606
|
-
const MINOR_HOLIDAY$1 = flags.MINOR_HOLIDAY;
|
|
5607
|
-
const EREV$1 = flags.EREV;
|
|
5608
|
-
// const CHOL_HAMOED = flags.CHOL_HAMOED;
|
|
5609
|
-
|
|
5610
|
+
const ADAR_II = months.ADAR_II;
|
|
5610
5611
|
const sedraCache = new Map();
|
|
5611
5612
|
|
|
5612
5613
|
/**
|
|
@@ -5658,7 +5659,7 @@ function getHolidaysForYear_(year) {
|
|
|
5658
5659
|
const key = ev.date.toString();
|
|
5659
5660
|
const arr = map.get(key);
|
|
5660
5661
|
if (typeof arr === 'object') {
|
|
5661
|
-
if (arr[0].getFlags() &
|
|
5662
|
+
if (arr[0].getFlags() & EREV$1) {
|
|
5662
5663
|
arr.unshift(ev);
|
|
5663
5664
|
} else {
|
|
5664
5665
|
arr.push(ev);
|
|
@@ -5708,7 +5709,7 @@ function getHolidaysForYear_(year) {
|
|
|
5708
5709
|
emoji: '🕍'
|
|
5709
5710
|
}));
|
|
5710
5711
|
if (pesach.getDay() == SUN) {
|
|
5711
|
-
add(new HolidayEvent(new HDate(16,
|
|
5712
|
+
add(new HolidayEvent(new HDate(16, ADAR_II, year), 'Purim Meshulash', MINOR_HOLIDAY$1));
|
|
5712
5713
|
}
|
|
5713
5714
|
if (HDate.isLeapYear(year)) {
|
|
5714
5715
|
add(new HolidayEvent(new HDate(14, ADAR_I, year), 'Purim Katan', MINOR_HOLIDAY$1, {
|
|
@@ -5737,7 +5738,7 @@ function getHolidaysForYear_(year) {
|
|
|
5737
5738
|
} else if (h.satPostponeToSun && dow === SAT$1) {
|
|
5738
5739
|
hd = hd.next();
|
|
5739
5740
|
}
|
|
5740
|
-
const mask = h.chul ? MODERN_HOLIDAY$1 : MODERN_HOLIDAY$1 |
|
|
5741
|
+
const mask = h.chul ? MODERN_HOLIDAY$1 : MODERN_HOLIDAY$1 | IL_ONLY$1;
|
|
5741
5742
|
const ev = new HolidayEvent(hd, h.desc, mask);
|
|
5742
5743
|
if (!h.suppressEmoji) {
|
|
5743
5744
|
ev.emoji = '🇮🇱';
|
|
@@ -5791,7 +5792,7 @@ function getHolidaysForYear_(year) {
|
|
|
5791
5792
|
// Yom Kippur Katan is not observed on the day before Rosh Hashanah.
|
|
5792
5793
|
// Not observed prior to Rosh Chodesh Cheshvan because Yom Kippur has just passed.
|
|
5793
5794
|
// Not observed before Rosh Chodesh Tevet, because that day is Hanukkah.
|
|
5794
|
-
if (nextMonth ===
|
|
5795
|
+
if (nextMonth === TISHREI$1 || nextMonth === months.CHESHVAN || nextMonth === TEVET) {
|
|
5795
5796
|
continue;
|
|
5796
5797
|
}
|
|
5797
5798
|
let ykk = new HDate(29, month, year);
|
|
@@ -5833,7 +5834,7 @@ function getHolidaysForYear_(year) {
|
|
|
5833
5834
|
*/
|
|
5834
5835
|
function getBirkatHaChama(year) {
|
|
5835
5836
|
const leap = HDate.isLeapYear(year);
|
|
5836
|
-
const startMonth = leap ?
|
|
5837
|
+
const startMonth = leap ? ADAR_II : NISAN$1;
|
|
5837
5838
|
const startDay = leap ? 20 : 1;
|
|
5838
5839
|
const baseRd = HDate.hebrew2abs(year, startMonth, startDay);
|
|
5839
5840
|
for (let day = 0; day <= 40; day++) {
|
|
@@ -5883,29 +5884,8 @@ class DailyLearning {
|
|
|
5883
5884
|
}
|
|
5884
5885
|
}
|
|
5885
5886
|
|
|
5886
|
-
|
|
5887
|
-
|
|
5888
|
-
const headers$1={"plural-forms":"nplurals=2; plural=(n > 1);"};const contexts$1={"":{Shabbat:["Shabbos"],"Achrei Mot":["Achrei Mos"],Bechukotai:["Bechukosai"],"Beha'alotcha":["Beha'aloscha"],Bereshit:["Bereshis"],Chukat:["Chukas"],"Erev Shavuot":["Erev Shavuos"],"Erev Sukkot":["Erev Sukkos"],"Ki Tavo":["Ki Savo"],"Ki Teitzei":["Ki Seitzei"],"Ki Tisa":["Ki Sisa"],Matot:["Matos"],"Purim Katan":["Purim Koton"],"Shabbat Chazon":["Shabbos Chazon"],"Shabbat HaChodesh":["Shabbos HaChodesh"],"Shabbat HaGadol":["Shabbos HaGadol"],"Shabbat Nachamu":["Shabbos Nachamu"],"Shabbat Parah":["Shabbos Parah"],"Shabbat Shekalim":["Shabbos Shekalim"],"Shabbat Shuva":["Shabbos Shuvah"],"Shabbat Zachor":["Shabbos Zachor"],Shavuot:["Shavuos"],"Shavuot I":["Shavuos I"],"Shavuot II":["Shavuos II"],Shemot:["Shemos"],"Shmini Atzeret":["Shmini Atzeres"],"Simchat Torah":["Simchas Torah"],Sukkot:["Sukkos"],"Sukkot I":["Sukkos I"],"Sukkot II":["Sukkos II"],"Sukkot II (CH''M)":["Sukkos II (CH''M)"],"Sukkot III (CH''M)":["Sukkos III (CH''M)"],"Sukkot IV (CH''M)":["Sukkos IV (CH''M)"],"Sukkot V (CH''M)":["Sukkos V (CH''M)"],"Sukkot VI (CH''M)":["Sukkos VI (CH''M)"],"Sukkot VII (Hoshana Raba)":["Sukkos VII (Hoshana Raba)"],"Ta'anit Bechorot":["Ta'anis Bechoros"],"Ta'anit Esther":["Ta'anis Esther"],Toldot:["Toldos"],Vaetchanan:["Vaeschanan"],Yitro:["Yisro"],"Vezot Haberakhah":["Vezos Haberakhah"],Parashat:["Parshas"],"Leil Selichot":["Leil Selichos"],"Shabbat Mevarchim Chodesh":["Shabbos Mevorchim Chodesh"],"Shabbat Shirah":["Shabbos Shirah"],Tevet:["Teves"],"Asara B'Tevet":["Asara B'Teves"],"Alot HaShachar":["Alos HaShachar"],"Kriat Shema, sof zeman":["Krias Shema, sof zman"],"Tefilah, sof zeman":["Tefilah, sof zman"],"Kriat Shema, sof zeman (MGA)":["Krias Shema, sof zman (MGA)"],"Tefilah, sof zeman (MGA)":["Tefilah, sof zman (MGA)"],"Chatzot HaLailah":["Chatzos HaLailah"],"Chatzot hayom":["Chatzos"],"Tzeit HaKochavim":["Tzeis HaKochavim"],"Birkat Hachamah":["Birkas Hachamah"],"Shushan Purim Katan":["Shushan Purim Koton"]}};var poAshkenazi = {headers:headers$1,contexts:contexts$1};
|
|
5889
|
-
|
|
5890
|
-
Locale.addLocale('ashkenazi', poAshkenazi);
|
|
5891
|
-
Locale.addLocale('a', poAshkenazi);
|
|
5892
|
-
|
|
5893
|
-
const headers={"plural-forms":"nplurals=2; plural=(n > 1);"};const contexts={"":{Shabbat:["שַׁבָּת"],"Daf Yomi":["דַף יוֹמִי"],Parashat:["פָּרָשַׁת"],"Achrei Mot":["אַחֲרֵי מוֹת"],Balak:["בָּלָק"],Bamidbar:["בְּמִדְבַּר"],Bechukotai:["בְּחֻקֹּתַי"],"Beha'alotcha":["בְּהַעֲלֹתְךָ"],Behar:["בְּהַר"],Bereshit:["בְּרֵאשִׁית"],Beshalach:["בְּשַׁלַּח"],Bo:["בֹּא"],"Chayei Sara":["חַיֵּי שָֹרָה"],Chukat:["חֻקַּת"],Devarim:["דְּבָרִים"],Eikev:["עֵקֶב"],Emor:["אֱמוֹר"],"Ha'azinu":["הַאֲזִינוּ"],Kedoshim:["קְדשִׁים"],"Ki Tavo":["כִּי־תָבוֹא"],"Ki Teitzei":["כִּי־תֵצֵא"],"Ki Tisa":["כִּי תִשָּׂא"],Korach:["קוֹרַח"],"Lech-Lecha":["לֶךְ־לְךָ"],Masei:["מַסְעֵי"],Matot:["מַּטּוֹת"],Metzora:["מְּצֹרָע"],Miketz:["מִקֵּץ"],Mishpatim:["מִּשְׁפָּטִים"],Nasso:["נָשׂא"],Nitzavim:["נִצָּבִים"],Noach:["נֹחַ"],Pekudei:["פְקוּדֵי"],Pinchas:["פִּינְחָס"],"Re'eh":["רְאֵה"],"Sh'lach":["שְׁלַח־לְךָ"],Shemot:["שְׁמוֹת"],Shmini:["שְּׁמִינִי"],Shoftim:["שׁוֹפְטִים"],Tazria:["תַזְרִיעַ"],Terumah:["תְּרוּמָה"],Tetzaveh:["תְּצַוֶּה"],Toldot:["תּוֹלְדוֹת"],Tzav:["צַו"],Vaera:["וָאֵרָא"],Vaetchanan:["וָאֶתְחַנַּן"],Vayakhel:["וַיַּקְהֵל"],Vayechi:["וַיְחִי"],Vayeilech:["וַיֵּלֶךְ"],Vayera:["וַיֵּרָא"],Vayeshev:["וַיֵּשֶׁב"],Vayetzei:["וַיֵּצֵא"],Vayigash:["וַיִּגַּשׁ"],Vayikra:["וַיִּקְרָא"],Vayishlach:["וַיִּשְׁלַח"],"Vezot Haberakhah":["וְזֹאת הַבְּרָכָה"],Yitro:["יִתְרוֹ"],"Asara B'Tevet":["עֲשָׂרָה בְּטֵבֵת"],"Candle lighting":["הַדְלָקַת נֵרוֹת"],Chanukah:["חֲנוּכָּה"],"Chanukah: 1 Candle":["חֲנוּכָּה: א׳ נֵר"],"Chanukah: 2 Candles":["חֲנוּכָּה: ב׳ נֵרוֹת"],"Chanukah: 3 Candles":["חֲנוּכָּה: ג׳ נֵרוֹת"],"Chanukah: 4 Candles":["חֲנוּכָּה: ד׳ נֵרוֹת"],"Chanukah: 5 Candles":["חֲנוּכָּה: ה׳ נֵרוֹת"],"Chanukah: 6 Candles":["חֲנוּכָּה: ו׳ נֵרוֹת"],"Chanukah: 7 Candles":["חֲנוּכָּה: ז׳ נֵרוֹת"],"Chanukah: 8 Candles":["חֲנוּכָּה: ח׳ נֵרוֹת"],"Chanukah: 8th Day":["חֲנוּכָּה: יוֹם ח׳"],"Days of the Omer":["סְפִירַת הָעוֹמֶר"],Omer:["עוֹמֶר"],"day of the Omer":["בָּעוֹמֶר"],"Erev Pesach":["עֶרֶב פֶּסַח"],"Erev Purim":["עֶרֶב פּוּרִים"],"Erev Rosh Hashana":["עֶרֶב רֹאשׁ הַשָּׁנָה"],"Erev Shavuot":["עֶרֶב שָׁבוּעוֹת"],"Erev Simchat Torah":["עֶרֶב שִׂמְחַת תּוֹרָה"],"Erev Sukkot":["עֶרֶב סוּכּוֹת"],"Erev Tish'a B'Av":["עֶרֶב תִּשְׁעָה בְּאָב"],"Erev Yom Kippur":["עֶרֶב יוֹם כִּפּוּר"],Havdalah:["הַבְדָּלָה"],"Lag BaOmer":["ל״ג בָּעוֹמֶר"],"Leil Selichot":["סליחות"],Pesach:["פֶּסַח"],"Pesach I":["פֶּסַח א׳"],"Pesach II":["פֶּסַח ב׳"],"Pesach II (CH''M)":["פֶּסַח ב׳ (חוה״מ)"],"Pesach III (CH''M)":["פֶּסַח ג׳ (חוה״מ)"],"Pesach IV (CH''M)":["פֶּסַח ד׳ (חוה״מ)"],"Pesach Sheni":["פֶּסַח שני"],"Pesach V (CH''M)":["פֶּסַח ה׳ (חוה״מ)"],"Pesach VI (CH''M)":["פֶּסַח ו׳ (חוה״מ)"],"Pesach VII":["פֶּסַח ז׳"],"Pesach VIII":["פֶּסַח ח׳"],Purim:["פּוּרִים"],"Purim Katan":["פּוּרִים קָטָן"],"Rosh Chodesh %s":["רֹאשׁ חוֹדֶשׁ %s"],"Rosh Chodesh":["רֹאשׁ חוֹדֶשׁ"],Adar:["אַדָר"],"Adar I":["אַדָר א׳"],"Adar II":["אַדָר ב׳"],Av:["אָב"],Cheshvan:["חֶשְׁוָן"],Elul:["אֱלוּל"],Iyyar:["אִיָיר"],Kislev:["כִּסְלֵו"],Nisan:["נִיסָן"],"Sh'vat":["שְׁבָט"],Sivan:["סִיוָן"],Tamuz:["תַּמּוּז"],Tevet:["טֵבֵת"],Tishrei:["תִּשְׁרֵי"],"Rosh Hashana":["רֹאשׁ הַשָּׁנָה"],"Rosh Hashana I":["רֹאשׁ הַשָּׁנָה א׳"],"Rosh Hashana II":["רֹאשׁ הַשָּׁנָה ב׳"],"Shabbat Chazon":["שַׁבָּת חֲזוֹן"],"Shabbat HaChodesh":["שַׁבָּת הַחֹדֶשׁ"],"Shabbat HaGadol":["שַׁבָּת הַגָּדוֹל"],"Shabbat Machar Chodesh":["שַׁבָּת מָחָר חוֹדֶשׁ"],"Shabbat Nachamu":["שַׁבָּת נַחֲמוּ"],"Shabbat Parah":["שַׁבָּת פּרה"],"Shabbat Rosh Chodesh":["שַׁבָּת רֹאשׁ חוֹדֶשׁ"],"Shabbat Shekalim":["שַׁבָּת שְׁקָלִים"],"Shabbat Shuva":["שַׁבָּת שׁוּבָה"],"Shabbat Zachor":["שַׁבָּת זָכוֹר"],Shavuot:["שָׁבוּעוֹת"],"Shavuot I":["שָׁבוּעוֹת א׳"],"Shavuot II":["שָׁבוּעוֹת ב׳"],"Shmini Atzeret":["שְׁמִינִי עֲצֶרֶת"],"Shushan Purim":["שׁוּשָׁן פּוּרִים"],Sigd:["סיגד"],"Simchat Torah":["שִׂמְחַת תּוֹרָה"],Sukkot:["סוּכּוֹת"],"Sukkot I":["סוּכּוֹת א׳"],"Sukkot II":["סוּכּוֹת ב׳"],"Sukkot II (CH''M)":["סוּכּוֹת ב׳ (חוה״מ)"],"Sukkot III (CH''M)":["סוּכּוֹת ג׳ (חוה״מ)"],"Sukkot IV (CH''M)":["סוּכּוֹת ד׳ (חוה״מ)"],"Sukkot V (CH''M)":["סוּכּוֹת ה׳ (חוה״מ)"],"Sukkot VI (CH''M)":["סוּכּוֹת ו׳ (חוה״מ)"],"Sukkot VII (Hoshana Raba)":["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"],"Ta'anit Bechorot":["תַּעֲנִית בְּכוֹרוֹת"],"Ta'anit Esther":["תַּעֲנִית אֶסְתֵּר"],"Tish'a B'Av":["תִּשְׁעָה בְּאָב"],"Tu B'Av":["טוּ בְּאָב"],"Tu BiShvat":["טוּ בִּשְׁבָט"],"Tu B'Shvat":["טוּ בִּשְׁבָט"],"Tzom Gedaliah":["צוֹם גְּדַלְיָה"],"Tzom Tammuz":["צוֹם תָּמוּז"],"Yom HaAtzma'ut":["יוֹם הָעַצְמָאוּת"],"Yom HaShoah":["יוֹם הַשּׁוֹאָה"],"Yom HaZikaron":["יוֹם הַזִּכָּרוֹן"],"Yom Kippur":["יוֹם כִּפּוּר"],"Yom Yerushalayim":["יוֹם יְרוּשָׁלַיִם"],"Yom HaAliyah":["יוֹם הַעֲלִיָּה"],"Yom HaAliyah School Observance":["שְׁמִירָת בֵּית הַסֵפֶר לְיוֹם הַעֲלִיָּה"],"Pesach I (on Shabbat)":["פֶּסַח יוֹם א׳ (בְּשַׁבָּת)"],"Pesach Chol ha-Moed Day 1":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם א׳"],"Pesach Chol ha-Moed Day 2":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ב׳"],"Pesach Chol ha-Moed Day 3":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ג׳"],"Pesach Chol ha-Moed Day 4":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ד׳"],"Pesach Chol ha-Moed Day 5":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ה׳"],"Pesach Shabbat Chol ha-Moed":["פֶּסַח שַׁבָּת חוֹל הַמּוֹעֵד"],"Shavuot II (on Shabbat)":["שָׁבוּעוֹת יוֹם ב׳ (בְּשַׁבָּת)"],"Rosh Hashana I (on Shabbat)":["רֹאשׁ הַשָּׁנָה יוֹם א׳ (בְּשַׁבָּת)"],"Yom Kippur (on Shabbat)":["יוֹם כִּפּוּר (בְּשַׁבָּת)"],"Yom Kippur (Mincha, Traditional)":["יוֹם כִּפּוּר מִנחָה"],"Yom Kippur (Mincha, Alternate)":["יוֹם כִּפּוּר מִנחָה"],"Sukkot I (on Shabbat)":["סוּכּוֹת יוֹם א׳ (בְּשַׁבָּת)"],"Sukkot Chol ha-Moed Day 1":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם א׳"],"Sukkot Chol ha-Moed Day 2":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ב׳"],"Sukkot Chol ha-Moed Day 3":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ג׳"],"Sukkot Chol ha-Moed Day 4":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ד׳"],"Sukkot Chol ha-Moed Day 5":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ה׳"],"Sukkot Shabbat Chol ha-Moed":["סוּכּוֹת שַׁבָּת חוֹל הַמּוֹעֵד"],"Sukkot Final Day (Hoshana Raba)":["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"],"Rosh Chodesh Adar":["רֹאשׁ חוֹדֶשׁ אַדָר"],"Rosh Chodesh Adar I":["רֹאשׁ חוֹדֶשׁ אַדָר א׳"],"Rosh Chodesh Adar II":["רֹאשׁ חוֹדֶשׁ אַדָר ב׳"],"Rosh Chodesh Av":["רֹאשׁ חוֹדֶשׁ אָב"],"Rosh Chodesh Cheshvan":["רֹאשׁ חוֹדֶשׁ חֶשְׁוָן"],"Rosh Chodesh Elul":["רֹאשׁ חוֹדֶשׁ אֱלוּל"],"Rosh Chodesh Iyyar":["רֹאשׁ חוֹדֶשׁ אִיָיר"],"Rosh Chodesh Kislev":["רֹאשׁ חוֹדֶשׁ כִּסְלֵו"],"Rosh Chodesh Nisan":["רֹאשׁ חוֹדֶשׁ נִיסָן"],"Rosh Chodesh Sh'vat":["רֹאשׁ חוֹדֶשׁ שְׁבָט"],"Rosh Chodesh Sivan":["רֹאשׁ חוֹדֶשׁ סִיוָן"],"Rosh Chodesh Tamuz":["רֹאשׁ חוֹדֶשׁ תָּמוּז"],"Rosh Chodesh Tevet":["רֹאשׁ חוֹדֶשׁ טֵבֵת"],min:["דַּקּוֹת"],"Fast begins":["תחילת הַצוֹם"],"Fast ends":["סִיּוּם הַצוֹם"],"Rosh Hashana LaBehemot":["רֹאשׁ הַשָּׁנָה לְמַעְשַׂר בְּהֵמָה"],"Tish'a B'Av (observed)":["תִּשְׁעָה בְּאָב נִדחֶה"],"Shabbat Mevarchim Chodesh":["שַׁבָּת מְבָרְכִים חוֹדֶשׁ"],"Shabbat Shirah":["שַׁבָּת שִׁירָה"],"Chatzot HaLailah":["חֲצוֹת הַלַיְלָה"],"Alot haShachar":["עֲלוֹת הַשַּׁחַר"],Misheyakir:["מִשֶּׁיַּכִּיר"],"Misheyakir Machmir":["מִשֶּׁיַּכִּיר מַחמִיר"],Dawn:["דִּימְדּוּמֵי בּוֹקֵר"],Sunrise:["הַנֵץ הַחַמָּה"],"Kriat Shema, sof zeman":["סוֹף זְמַן קְרִיאַת שְׁמַע גר״א"],"Tefilah, sof zeman":["סוֹף זְמַן תְּפִלָּה גר״א"],"Kriat Shema, sof zeman (MGA)":["סוֹף זְמַן קְרִיאַת שְׁמַע מג״א"],"Tefilah, sof zeman (MGA)":["סוֹף זְמַן תְּפִלָּה מג״א"],"Chatzot hayom":["חֲצוֹת הַיּוֹם"],"Mincha Gedolah":["מִנְחָה גְּדוֹלָה"],"Mincha Ketanah":["מִנְחָה קְטַנָּה"],"Plag HaMincha":["פְּלַג הַמִּנְחָה"],Dusk:["דִּימְדּוּמֵי עֶרֶב"],Sunset:["שְׁקִיעָה"],"Nightfall - End of ordained fasts":["לַיְלָה - גמר תעניות דרבנן"],"Tzeit HaKochavim":["צֵאת הַכּוֹכָבִים"],Lovingkindness:["חֶֽסֶד"],Might:["גְבוּרָה"],Beauty:["תִּפאֶרֶת"],Eternity:["נֶּֽצַח"],Splendor:["הוֹד"],Foundation:["יְּסוֹד"],Majesty:["מַּלְכוּת"],day:["יוֹם"],"Chanukah Day 1":["חֲנוּכָּה יוֹם א׳"],"Chanukah Day 2":["חֲנוּכָּה יוֹם ב׳"],"Chanukah Day 3":["חֲנוּכָּה יוֹם ג׳"],"Chanukah Day 4":["חֲנוּכָּה יוֹם ד׳"],"Chanukah Day 5":["חֲנוּכָּה יוֹם ה׳"],"Chanukah Day 6":["חֲנוּכָּה יוֹם ו׳"],"Chanukah Day 7":["חֲנוּכָּה יוֹם ז׳"],"Chanukah Day 7 (on Rosh Chodesh)":["חֲנוּכָּה יוֹם ז׳ (רֹאשׁ חוֹדֶשׁ)"],"Chanukah Day 8":["חֲנוּכָּה יוֹם ח׳"],"Chanukah Day 1 (on Shabbat)":["חֲנוּכָּה יוֹם א׳ (בְּשַׁבָּת)"],"Chanukah Day 2 (on Shabbat)":["חֲנוּכָּה יוֹם ב׳ (בְּשַׁבָּת)"],"Chanukah Day 3 (on Shabbat)":["חֲנוּכָּה יוֹם ג׳ (בְּשַׁבָּת)"],"Chanukah Day 4 (on Shabbat)":["חֲנוּכָּה יוֹם ד׳ (בְּשַׁבָּת)"],"Chanukah Day 5 (on Shabbat)":["חֲנוּכָּה יוֹם ה׳ (בְּשַׁבָּת)"],"Chanukah Day 7 (on Shabbat)":["חֲנוּכָּה יוֹם ז׳ (בְּשַׁבָּת)"],"Chanukah Day 8 (on Shabbat)":["חֲנוּכָּה יוֹם ח׳ (בְּשַׁבָּת)"],"Shabbat Rosh Chodesh Chanukah":["שַׁבָּת רֹאשׁ חוֹדֶשׁ חֲנוּכָּה"],"Yom Kippur Katan":["יוֹם כִּפּוּר קָטָן"],"Family Day":["יוֹם הַמִּשׁפָּחָה"],"Yitzhak Rabin Memorial Day":["יוֹם הַזִּכָּרוֹן ליצחק רבין"],"Jabotinsky Day":["יוֹם ז׳בוטינסקי"],"Herzl Day":["יוֹם הרצל"],"Ben-Gurion Day":["יוֹם בן־גוריון"],"Birkat Hachamah":["בִרְכַּת הַחַמָּה"],"Shushan Purim Katan":["שׁוּשָׁן פּוּרִים קָטָן"],"Purim Meshulash":["פּוּרִים מְשׁוּלָּשׁ"],"after sunset":["אחרי השקיעה"],Yerushalmi:["יְרוּשַׁלְמִי"],"Chag HaBanot":["חַג הַבָּנוֹת"],Joshua:["יְהוֹשׁוּעַ"],Judges:["שׁוֹפְטִים"],"I Samuel":["שְׁמוּאֵל רִאשׁוֹן"],"II Samuel":["שְׁמוּאֵל שֵׁנִי"],"I Kings":["מְלָכִים רִאשׁוֹן"],"II Kings":["מְלָכִים שֵׁנִי"],Isaiah:["יְשַׁעְיָהוּ"],Jeremiah:["יִרְמְיָהוּ"],Ezekiel:["יְחֶזְקֵאל"],Hosea:["הוֹשֵׁעַ"],Joel:["יוֹאֵל"],Amos:["עָמוּס"],Obadiah:["עוֹבַדְיָה"],Jonah:["יוֹנָה"],Micah:["מִיכָה"],Nachum:["נַחוּם"],Habakkuk:["חֲבַקּוּק"],Zephaniah:["צְפַנְיָה"],Haggai:["חַגַּי"],Zechariah:["זְכַרְיָה"],Malachi:["מַלְאָכִי"],Psalms:["תְּהִלִּים"],Proverbs:["מִשְׁלֵי"],Job:["אִיּוֹב"],"Song of Songs":["שִׁיר הַשִּׁירִים"],Ruth:["רוּת"],Lamentations:["אֵיכָה"],Ecclesiastes:["קֹהֶלֶת"],Esther:["אֶסְתֵּר"],Daniel:["דָּנִיֵּאל"],Ezra:["עֶזְרָא"],Nehemiah:["נְחֶמְיָה"],"I Chronicles":["דִברֵי הַיָמִים רִאשׁוֹן"],"II Chronicles":["דִברֵי הַיָמִים שֵׁנִי"],"Yom Kippur (Mincha)":["יוֹם כִּפּוּר מִנחָה"],"Tish'a B'Av (Mincha)":["תִּשְׁעָה בְּאָב מִנחָה"],"Asara B'Tevet (Mincha)":["עֲשָׂרָה בְּטֵבֵת מִנחָה"],"Ta'anit Bechorot (Mincha)":["תַּעֲנִית בְּכוֹרוֹת מִנחָה"],"Ta'anit Esther (Mincha)":["תַּעֲנִית אֶסְתֵּר מִנחָה"],"Tzom Gedaliah (Mincha)":["צוֹם גְּדַלְיָה מִנחָה"],"Tzom Tammuz (Mincha)":["צוֹם תָּמוּז מִנחָה"],Molad:["מוֹלָד הָלְּבָנָה"],chalakim:["חֲלָקִים"]}};var poHe = {headers:headers,contexts:contexts};
|
|
5894
|
-
|
|
5895
|
-
Locale.addLocale('he', poHe);
|
|
5896
|
-
Locale.addLocale('h', poHe);
|
|
5897
|
-
const heStrs = poHe.contexts[''];
|
|
5898
|
-
const heNoNikud = {};
|
|
5899
|
-
for (const [key, val] of Object.entries(heStrs)) {
|
|
5900
|
-
heNoNikud[key] = [Locale.hebrewStripNikkud(val[0])];
|
|
5901
|
-
}
|
|
5902
|
-
const poHeNoNikud = {
|
|
5903
|
-
headers: poHe.headers,
|
|
5904
|
-
contexts: {
|
|
5905
|
-
'': heNoNikud
|
|
5906
|
-
}
|
|
5907
|
-
};
|
|
5908
|
-
Locale.addLocale('he-x-NoNikud', poHeNoNikud);
|
|
5887
|
+
// DO NOT EDIT THIS AUTO-GENERATED FILE!
|
|
5888
|
+
const version = '5.0.3';
|
|
5909
5889
|
|
|
5910
5890
|
const NONE$1 = 0;
|
|
5911
5891
|
const HALF = 1;
|
|
@@ -5947,6 +5927,396 @@ function hallel_(events, hdate) {
|
|
|
5947
5927
|
return NONE$1;
|
|
5948
5928
|
}
|
|
5949
5929
|
|
|
5930
|
+
var poAshkenazi = {
|
|
5931
|
+
"headers": {
|
|
5932
|
+
"plural-forms": "nplurals=2; plural=(n > 1);"
|
|
5933
|
+
},
|
|
5934
|
+
"contexts": {
|
|
5935
|
+
"": {
|
|
5936
|
+
"Shabbat": ["Shabbos"],
|
|
5937
|
+
"Achrei Mot": ["Achrei Mos"],
|
|
5938
|
+
"Bechukotai": ["Bechukosai"],
|
|
5939
|
+
"Beha'alotcha": ["Beha'aloscha"],
|
|
5940
|
+
"Bereshit": ["Bereshis"],
|
|
5941
|
+
"Chukat": ["Chukas"],
|
|
5942
|
+
"Erev Shavuot": ["Erev Shavuos"],
|
|
5943
|
+
"Erev Sukkot": ["Erev Sukkos"],
|
|
5944
|
+
"Ki Tavo": ["Ki Savo"],
|
|
5945
|
+
"Ki Teitzei": ["Ki Seitzei"],
|
|
5946
|
+
"Ki Tisa": ["Ki Sisa"],
|
|
5947
|
+
"Matot": ["Matos"],
|
|
5948
|
+
"Purim Katan": ["Purim Koton"],
|
|
5949
|
+
"Shabbat Chazon": ["Shabbos Chazon"],
|
|
5950
|
+
"Shabbat HaChodesh": ["Shabbos HaChodesh"],
|
|
5951
|
+
"Shabbat HaGadol": ["Shabbos HaGadol"],
|
|
5952
|
+
"Shabbat Nachamu": ["Shabbos Nachamu"],
|
|
5953
|
+
"Shabbat Parah": ["Shabbos Parah"],
|
|
5954
|
+
"Shabbat Shekalim": ["Shabbos Shekalim"],
|
|
5955
|
+
"Shabbat Shuva": ["Shabbos Shuvah"],
|
|
5956
|
+
"Shabbat Zachor": ["Shabbos Zachor"],
|
|
5957
|
+
"Shavuot": ["Shavuos"],
|
|
5958
|
+
"Shavuot I": ["Shavuos I"],
|
|
5959
|
+
"Shavuot II": ["Shavuos II"],
|
|
5960
|
+
"Shemot": ["Shemos"],
|
|
5961
|
+
"Shmini Atzeret": ["Shmini Atzeres"],
|
|
5962
|
+
"Simchat Torah": ["Simchas Torah"],
|
|
5963
|
+
"Sukkot": ["Sukkos"],
|
|
5964
|
+
"Sukkot I": ["Sukkos I"],
|
|
5965
|
+
"Sukkot II": ["Sukkos II"],
|
|
5966
|
+
"Sukkot II (CH''M)": ["Sukkos II (CH''M)"],
|
|
5967
|
+
"Sukkot III (CH''M)": ["Sukkos III (CH''M)"],
|
|
5968
|
+
"Sukkot IV (CH''M)": ["Sukkos IV (CH''M)"],
|
|
5969
|
+
"Sukkot V (CH''M)": ["Sukkos V (CH''M)"],
|
|
5970
|
+
"Sukkot VI (CH''M)": ["Sukkos VI (CH''M)"],
|
|
5971
|
+
"Sukkot VII (Hoshana Raba)": ["Sukkos VII (Hoshana Raba)"],
|
|
5972
|
+
"Ta'anit Bechorot": ["Ta'anis Bechoros"],
|
|
5973
|
+
"Ta'anit Esther": ["Ta'anis Esther"],
|
|
5974
|
+
"Toldot": ["Toldos"],
|
|
5975
|
+
"Vaetchanan": ["Vaeschanan"],
|
|
5976
|
+
"Yitro": ["Yisro"],
|
|
5977
|
+
"Vezot Haberakhah": ["Vezos Haberakhah"],
|
|
5978
|
+
"Parashat": ["Parshas"],
|
|
5979
|
+
"Leil Selichot": ["Leil Selichos"],
|
|
5980
|
+
"Shabbat Mevarchim Chodesh": ["Shabbos Mevorchim Chodesh"],
|
|
5981
|
+
"Shabbat Shirah": ["Shabbos Shirah"],
|
|
5982
|
+
"Tevet": ["Teves"],
|
|
5983
|
+
"Asara B'Tevet": ["Asara B'Teves"],
|
|
5984
|
+
"Alot HaShachar": ["Alos HaShachar"],
|
|
5985
|
+
"Kriat Shema, sof zeman": ["Krias Shema, sof zman"],
|
|
5986
|
+
"Tefilah, sof zeman": ["Tefilah, sof zman"],
|
|
5987
|
+
"Kriat Shema, sof zeman (MGA)": ["Krias Shema, sof zman (MGA)"],
|
|
5988
|
+
"Tefilah, sof zeman (MGA)": ["Tefilah, sof zman (MGA)"],
|
|
5989
|
+
"Chatzot HaLailah": ["Chatzos HaLailah"],
|
|
5990
|
+
"Chatzot hayom": ["Chatzos"],
|
|
5991
|
+
"Tzeit HaKochavim": ["Tzeis HaKochavim"],
|
|
5992
|
+
"Birkat Hachamah": ["Birkas Hachamah"],
|
|
5993
|
+
"Shushan Purim Katan": ["Shushan Purim Koton"]
|
|
5994
|
+
}
|
|
5995
|
+
}
|
|
5996
|
+
};
|
|
5997
|
+
|
|
5998
|
+
Locale.addLocale('ashkenazi', poAshkenazi);
|
|
5999
|
+
Locale.addLocale('a', poAshkenazi);
|
|
6000
|
+
|
|
6001
|
+
var poHe = {
|
|
6002
|
+
"headers": {
|
|
6003
|
+
"plural-forms": "nplurals=2; plural=(n > 1);"
|
|
6004
|
+
},
|
|
6005
|
+
"contexts": {
|
|
6006
|
+
"": {
|
|
6007
|
+
"Shabbat": ["שַׁבָּת"],
|
|
6008
|
+
"Daf Yomi": ["דַף יוֹמִי"],
|
|
6009
|
+
"Parashat": ["פָּרָשַׁת"],
|
|
6010
|
+
"Achrei Mot": ["אַחֲרֵי מוֹת"],
|
|
6011
|
+
"Balak": ["בָּלָק"],
|
|
6012
|
+
"Bamidbar": ["בְּמִדְבַּר"],
|
|
6013
|
+
"Bechukotai": ["בְּחֻקֹּתַי"],
|
|
6014
|
+
"Beha'alotcha": ["בְּהַעֲלֹתְךָ"],
|
|
6015
|
+
"Behar": ["בְּהַר"],
|
|
6016
|
+
"Bereshit": ["בְּרֵאשִׁית"],
|
|
6017
|
+
"Beshalach": ["בְּשַׁלַּח"],
|
|
6018
|
+
"Bo": ["בֹּא"],
|
|
6019
|
+
"Chayei Sara": ["חַיֵּי שָֹרָה"],
|
|
6020
|
+
"Chukat": ["חֻקַּת"],
|
|
6021
|
+
"Devarim": ["דְּבָרִים"],
|
|
6022
|
+
"Eikev": ["עֵקֶב"],
|
|
6023
|
+
"Emor": ["אֱמוֹר"],
|
|
6024
|
+
"Ha'azinu": ["הַאֲזִינוּ"],
|
|
6025
|
+
"Kedoshim": ["קְדשִׁים"],
|
|
6026
|
+
"Ki Tavo": ["כִּי־תָבוֹא"],
|
|
6027
|
+
"Ki Teitzei": ["כִּי־תֵצֵא"],
|
|
6028
|
+
"Ki Tisa": ["כִּי תִשָּׂא"],
|
|
6029
|
+
"Korach": ["קוֹרַח"],
|
|
6030
|
+
"Lech-Lecha": ["לֶךְ־לְךָ"],
|
|
6031
|
+
"Masei": ["מַסְעֵי"],
|
|
6032
|
+
"Matot": ["מַּטּוֹת"],
|
|
6033
|
+
"Metzora": ["מְּצֹרָע"],
|
|
6034
|
+
"Miketz": ["מִקֵּץ"],
|
|
6035
|
+
"Mishpatim": ["מִּשְׁפָּטִים"],
|
|
6036
|
+
"Nasso": ["נָשׂא"],
|
|
6037
|
+
"Nitzavim": ["נִצָּבִים"],
|
|
6038
|
+
"Noach": ["נֹחַ"],
|
|
6039
|
+
"Pekudei": ["פְקוּדֵי"],
|
|
6040
|
+
"Pinchas": ["פִּינְחָס"],
|
|
6041
|
+
"Re'eh": ["רְאֵה"],
|
|
6042
|
+
"Sh'lach": ["שְׁלַח־לְךָ"],
|
|
6043
|
+
"Shemot": ["שְׁמוֹת"],
|
|
6044
|
+
"Shmini": ["שְּׁמִינִי"],
|
|
6045
|
+
"Shoftim": ["שׁוֹפְטִים"],
|
|
6046
|
+
"Tazria": ["תַזְרִיעַ"],
|
|
6047
|
+
"Terumah": ["תְּרוּמָה"],
|
|
6048
|
+
"Tetzaveh": ["תְּצַוֶּה"],
|
|
6049
|
+
"Toldot": ["תּוֹלְדוֹת"],
|
|
6050
|
+
"Tzav": ["צַו"],
|
|
6051
|
+
"Vaera": ["וָאֵרָא"],
|
|
6052
|
+
"Vaetchanan": ["וָאֶתְחַנַּן"],
|
|
6053
|
+
"Vayakhel": ["וַיַּקְהֵל"],
|
|
6054
|
+
"Vayechi": ["וַיְחִי"],
|
|
6055
|
+
"Vayeilech": ["וַיֵּלֶךְ"],
|
|
6056
|
+
"Vayera": ["וַיֵּרָא"],
|
|
6057
|
+
"Vayeshev": ["וַיֵּשֶׁב"],
|
|
6058
|
+
"Vayetzei": ["וַיֵּצֵא"],
|
|
6059
|
+
"Vayigash": ["וַיִּגַּשׁ"],
|
|
6060
|
+
"Vayikra": ["וַיִּקְרָא"],
|
|
6061
|
+
"Vayishlach": ["וַיִּשְׁלַח"],
|
|
6062
|
+
"Vezot Haberakhah": ["וְזֹאת הַבְּרָכָה"],
|
|
6063
|
+
"Yitro": ["יִתְרוֹ"],
|
|
6064
|
+
"Asara B'Tevet": ["עֲשָׂרָה בְּטֵבֵת"],
|
|
6065
|
+
"Candle lighting": ["הַדְלָקַת נֵרוֹת"],
|
|
6066
|
+
"Chanukah": ["חֲנוּכָּה"],
|
|
6067
|
+
"Chanukah: 1 Candle": ["חֲנוּכָּה: א׳ נֵר"],
|
|
6068
|
+
"Chanukah: 2 Candles": ["חֲנוּכָּה: ב׳ נֵרוֹת"],
|
|
6069
|
+
"Chanukah: 3 Candles": ["חֲנוּכָּה: ג׳ נֵרוֹת"],
|
|
6070
|
+
"Chanukah: 4 Candles": ["חֲנוּכָּה: ד׳ נֵרוֹת"],
|
|
6071
|
+
"Chanukah: 5 Candles": ["חֲנוּכָּה: ה׳ נֵרוֹת"],
|
|
6072
|
+
"Chanukah: 6 Candles": ["חֲנוּכָּה: ו׳ נֵרוֹת"],
|
|
6073
|
+
"Chanukah: 7 Candles": ["חֲנוּכָּה: ז׳ נֵרוֹת"],
|
|
6074
|
+
"Chanukah: 8 Candles": ["חֲנוּכָּה: ח׳ נֵרוֹת"],
|
|
6075
|
+
"Chanukah: 8th Day": ["חֲנוּכָּה: יוֹם ח׳"],
|
|
6076
|
+
"Days of the Omer": ["סְפִירַת הָעוֹמֶר"],
|
|
6077
|
+
"Omer": ["עוֹמֶר"],
|
|
6078
|
+
"day of the Omer": ["בָּעוֹמֶר"],
|
|
6079
|
+
"Erev Pesach": ["עֶרֶב פֶּסַח"],
|
|
6080
|
+
"Erev Purim": ["עֶרֶב פּוּרִים"],
|
|
6081
|
+
"Erev Rosh Hashana": ["עֶרֶב רֹאשׁ הַשָּׁנָה"],
|
|
6082
|
+
"Erev Shavuot": ["עֶרֶב שָׁבוּעוֹת"],
|
|
6083
|
+
"Erev Simchat Torah": ["עֶרֶב שִׂמְחַת תּוֹרָה"],
|
|
6084
|
+
"Erev Sukkot": ["עֶרֶב סוּכּוֹת"],
|
|
6085
|
+
"Erev Tish'a B'Av": ["עֶרֶב תִּשְׁעָה בְּאָב"],
|
|
6086
|
+
"Erev Yom Kippur": ["עֶרֶב יוֹם כִּפּוּר"],
|
|
6087
|
+
"Havdalah": ["הַבְדָּלָה"],
|
|
6088
|
+
"Lag BaOmer": ["ל״ג בָּעוֹמֶר"],
|
|
6089
|
+
"Leil Selichot": ["סליחות"],
|
|
6090
|
+
"Pesach": ["פֶּסַח"],
|
|
6091
|
+
"Pesach I": ["פֶּסַח א׳"],
|
|
6092
|
+
"Pesach II": ["פֶּסַח ב׳"],
|
|
6093
|
+
"Pesach II (CH''M)": ["פֶּסַח ב׳ (חוה״מ)"],
|
|
6094
|
+
"Pesach III (CH''M)": ["פֶּסַח ג׳ (חוה״מ)"],
|
|
6095
|
+
"Pesach IV (CH''M)": ["פֶּסַח ד׳ (חוה״מ)"],
|
|
6096
|
+
"Pesach Sheni": ["פֶּסַח שני"],
|
|
6097
|
+
"Pesach V (CH''M)": ["פֶּסַח ה׳ (חוה״מ)"],
|
|
6098
|
+
"Pesach VI (CH''M)": ["פֶּסַח ו׳ (חוה״מ)"],
|
|
6099
|
+
"Pesach VII": ["פֶּסַח ז׳"],
|
|
6100
|
+
"Pesach VIII": ["פֶּסַח ח׳"],
|
|
6101
|
+
"Purim": ["פּוּרִים"],
|
|
6102
|
+
"Purim Katan": ["פּוּרִים קָטָן"],
|
|
6103
|
+
"Rosh Chodesh %s": ["רֹאשׁ חוֹדֶשׁ %s"],
|
|
6104
|
+
"Rosh Chodesh": ["רֹאשׁ חוֹדֶשׁ"],
|
|
6105
|
+
"Adar": ["אַדָר"],
|
|
6106
|
+
"Adar I": ["אַדָר א׳"],
|
|
6107
|
+
"Adar II": ["אַדָר ב׳"],
|
|
6108
|
+
"Av": ["אָב"],
|
|
6109
|
+
"Cheshvan": ["חֶשְׁוָן"],
|
|
6110
|
+
"Elul": ["אֱלוּל"],
|
|
6111
|
+
"Iyyar": ["אִיָיר"],
|
|
6112
|
+
"Kislev": ["כִּסְלֵו"],
|
|
6113
|
+
"Nisan": ["נִיסָן"],
|
|
6114
|
+
"Sh'vat": ["שְׁבָט"],
|
|
6115
|
+
"Sivan": ["סִיוָן"],
|
|
6116
|
+
"Tamuz": ["תַּמּוּז"],
|
|
6117
|
+
"Tevet": ["טֵבֵת"],
|
|
6118
|
+
"Tishrei": ["תִּשְׁרֵי"],
|
|
6119
|
+
"Rosh Hashana": ["רֹאשׁ הַשָּׁנָה"],
|
|
6120
|
+
"Rosh Hashana I": ["רֹאשׁ הַשָּׁנָה א׳"],
|
|
6121
|
+
"Rosh Hashana II": ["רֹאשׁ הַשָּׁנָה ב׳"],
|
|
6122
|
+
"Shabbat Chazon": ["שַׁבָּת חֲזוֹן"],
|
|
6123
|
+
"Shabbat HaChodesh": ["שַׁבָּת הַחֹדֶשׁ"],
|
|
6124
|
+
"Shabbat HaGadol": ["שַׁבָּת הַגָּדוֹל"],
|
|
6125
|
+
"Shabbat Machar Chodesh": ["שַׁבָּת מָחָר חוֹדֶשׁ"],
|
|
6126
|
+
"Shabbat Nachamu": ["שַׁבָּת נַחֲמוּ"],
|
|
6127
|
+
"Shabbat Parah": ["שַׁבָּת פּרה"],
|
|
6128
|
+
"Shabbat Rosh Chodesh": ["שַׁבָּת רֹאשׁ חוֹדֶשׁ"],
|
|
6129
|
+
"Shabbat Shekalim": ["שַׁבָּת שְׁקָלִים"],
|
|
6130
|
+
"Shabbat Shuva": ["שַׁבָּת שׁוּבָה"],
|
|
6131
|
+
"Shabbat Zachor": ["שַׁבָּת זָכוֹר"],
|
|
6132
|
+
"Shavuot": ["שָׁבוּעוֹת"],
|
|
6133
|
+
"Shavuot I": ["שָׁבוּעוֹת א׳"],
|
|
6134
|
+
"Shavuot II": ["שָׁבוּעוֹת ב׳"],
|
|
6135
|
+
"Shmini Atzeret": ["שְׁמִינִי עֲצֶרֶת"],
|
|
6136
|
+
"Shushan Purim": ["שׁוּשָׁן פּוּרִים"],
|
|
6137
|
+
"Sigd": ["סיגד"],
|
|
6138
|
+
"Simchat Torah": ["שִׂמְחַת תּוֹרָה"],
|
|
6139
|
+
"Sukkot": ["סוּכּוֹת"],
|
|
6140
|
+
"Sukkot I": ["סוּכּוֹת א׳"],
|
|
6141
|
+
"Sukkot II": ["סוּכּוֹת ב׳"],
|
|
6142
|
+
"Sukkot II (CH''M)": ["סוּכּוֹת ב׳ (חוה״מ)"],
|
|
6143
|
+
"Sukkot III (CH''M)": ["סוּכּוֹת ג׳ (חוה״מ)"],
|
|
6144
|
+
"Sukkot IV (CH''M)": ["סוּכּוֹת ד׳ (חוה״מ)"],
|
|
6145
|
+
"Sukkot V (CH''M)": ["סוּכּוֹת ה׳ (חוה״מ)"],
|
|
6146
|
+
"Sukkot VI (CH''M)": ["סוּכּוֹת ו׳ (חוה״מ)"],
|
|
6147
|
+
"Sukkot VII (Hoshana Raba)": ["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"],
|
|
6148
|
+
"Ta'anit Bechorot": ["תַּעֲנִית בְּכוֹרוֹת"],
|
|
6149
|
+
"Ta'anit Esther": ["תַּעֲנִית אֶסְתֵּר"],
|
|
6150
|
+
"Tish'a B'Av": ["תִּשְׁעָה בְּאָב"],
|
|
6151
|
+
"Tu B'Av": ["טוּ בְּאָב"],
|
|
6152
|
+
"Tu BiShvat": ["טוּ בִּשְׁבָט"],
|
|
6153
|
+
"Tu B'Shvat": ["טוּ בִּשְׁבָט"],
|
|
6154
|
+
"Tzom Gedaliah": ["צוֹם גְּדַלְיָה"],
|
|
6155
|
+
"Tzom Tammuz": ["צוֹם תָּמוּז"],
|
|
6156
|
+
"Yom HaAtzma'ut": ["יוֹם הָעַצְמָאוּת"],
|
|
6157
|
+
"Yom HaShoah": ["יוֹם הַשּׁוֹאָה"],
|
|
6158
|
+
"Yom HaZikaron": ["יוֹם הַזִּכָּרוֹן"],
|
|
6159
|
+
"Yom Kippur": ["יוֹם כִּפּוּר"],
|
|
6160
|
+
"Yom Yerushalayim": ["יוֹם יְרוּשָׁלַיִם"],
|
|
6161
|
+
"Yom HaAliyah": ["יוֹם הַעֲלִיָּה"],
|
|
6162
|
+
"Yom HaAliyah School Observance": ["שְׁמִירָת בֵּית הַסֵפֶר לְיוֹם הַעֲלִיָּה"],
|
|
6163
|
+
"Pesach I (on Shabbat)": ["פֶּסַח יוֹם א׳ (בְּשַׁבָּת)"],
|
|
6164
|
+
"Pesach Chol ha-Moed Day 1": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם א׳"],
|
|
6165
|
+
"Pesach Chol ha-Moed Day 2": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ב׳"],
|
|
6166
|
+
"Pesach Chol ha-Moed Day 3": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ג׳"],
|
|
6167
|
+
"Pesach Chol ha-Moed Day 4": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ד׳"],
|
|
6168
|
+
"Pesach Chol ha-Moed Day 5": ["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ה׳"],
|
|
6169
|
+
"Pesach Shabbat Chol ha-Moed": ["פֶּסַח שַׁבָּת חוֹל הַמּוֹעֵד"],
|
|
6170
|
+
"Shavuot II (on Shabbat)": ["שָׁבוּעוֹת יוֹם ב׳ (בְּשַׁבָּת)"],
|
|
6171
|
+
"Rosh Hashana I (on Shabbat)": ["רֹאשׁ הַשָּׁנָה יוֹם א׳ (בְּשַׁבָּת)"],
|
|
6172
|
+
"Yom Kippur (on Shabbat)": ["יוֹם כִּפּוּר (בְּשַׁבָּת)"],
|
|
6173
|
+
"Yom Kippur (Mincha, Traditional)": ["יוֹם כִּפּוּר מִנחָה"],
|
|
6174
|
+
"Yom Kippur (Mincha, Alternate)": ["יוֹם כִּפּוּר מִנחָה"],
|
|
6175
|
+
"Sukkot I (on Shabbat)": ["סוּכּוֹת יוֹם א׳ (בְּשַׁבָּת)"],
|
|
6176
|
+
"Sukkot Chol ha-Moed Day 1": ["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם א׳"],
|
|
6177
|
+
"Sukkot Chol ha-Moed Day 2": ["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ב׳"],
|
|
6178
|
+
"Sukkot Chol ha-Moed Day 3": ["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ג׳"],
|
|
6179
|
+
"Sukkot Chol ha-Moed Day 4": ["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ד׳"],
|
|
6180
|
+
"Sukkot Chol ha-Moed Day 5": ["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ה׳"],
|
|
6181
|
+
"Sukkot Shabbat Chol ha-Moed": ["סוּכּוֹת שַׁבָּת חוֹל הַמּוֹעֵד"],
|
|
6182
|
+
"Sukkot Final Day (Hoshana Raba)": ["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"],
|
|
6183
|
+
"Rosh Chodesh Adar": ["רֹאשׁ חוֹדֶשׁ אַדָר"],
|
|
6184
|
+
"Rosh Chodesh Adar I": ["רֹאשׁ חוֹדֶשׁ אַדָר א׳"],
|
|
6185
|
+
"Rosh Chodesh Adar II": ["רֹאשׁ חוֹדֶשׁ אַדָר ב׳"],
|
|
6186
|
+
"Rosh Chodesh Av": ["רֹאשׁ חוֹדֶשׁ אָב"],
|
|
6187
|
+
"Rosh Chodesh Cheshvan": ["רֹאשׁ חוֹדֶשׁ חֶשְׁוָן"],
|
|
6188
|
+
"Rosh Chodesh Elul": ["רֹאשׁ חוֹדֶשׁ אֱלוּל"],
|
|
6189
|
+
"Rosh Chodesh Iyyar": ["רֹאשׁ חוֹדֶשׁ אִיָיר"],
|
|
6190
|
+
"Rosh Chodesh Kislev": ["רֹאשׁ חוֹדֶשׁ כִּסְלֵו"],
|
|
6191
|
+
"Rosh Chodesh Nisan": ["רֹאשׁ חוֹדֶשׁ נִיסָן"],
|
|
6192
|
+
"Rosh Chodesh Sh'vat": ["רֹאשׁ חוֹדֶשׁ שְׁבָט"],
|
|
6193
|
+
"Rosh Chodesh Sivan": ["רֹאשׁ חוֹדֶשׁ סִיוָן"],
|
|
6194
|
+
"Rosh Chodesh Tamuz": ["רֹאשׁ חוֹדֶשׁ תָּמוּז"],
|
|
6195
|
+
"Rosh Chodesh Tevet": ["רֹאשׁ חוֹדֶשׁ טֵבֵת"],
|
|
6196
|
+
"min": ["דַּקּוֹת"],
|
|
6197
|
+
"Fast begins": ["תחילת הַצוֹם"],
|
|
6198
|
+
"Fast ends": ["סִיּוּם הַצוֹם"],
|
|
6199
|
+
"Rosh Hashana LaBehemot": ["רֹאשׁ הַשָּׁנָה לְמַעְשַׂר בְּהֵמָה"],
|
|
6200
|
+
"Tish'a B'Av (observed)": ["תִּשְׁעָה בְּאָב נִדחֶה"],
|
|
6201
|
+
"Shabbat Mevarchim Chodesh": ["שַׁבָּת מְבָרְכִים חוֹדֶשׁ"],
|
|
6202
|
+
"Shabbat Shirah": ["שַׁבָּת שִׁירָה"],
|
|
6203
|
+
"Chatzot HaLailah": ["חֲצוֹת הַלַיְלָה"],
|
|
6204
|
+
"Alot haShachar": ["עֲלוֹת הַשַּׁחַר"],
|
|
6205
|
+
"Misheyakir": ["מִשֶּׁיַּכִּיר"],
|
|
6206
|
+
"Misheyakir Machmir": ["מִשֶּׁיַּכִּיר מַחמִיר"],
|
|
6207
|
+
"Dawn": ["דִּימְדּוּמֵי בּוֹקֵר"],
|
|
6208
|
+
"Sunrise": ["הַנֵץ הַחַמָּה"],
|
|
6209
|
+
"Kriat Shema, sof zeman": ["סוֹף זְמַן קְרִיאַת שְׁמַע גר״א"],
|
|
6210
|
+
"Tefilah, sof zeman": ["סוֹף זְמַן תְּפִלָּה גר״א"],
|
|
6211
|
+
"Kriat Shema, sof zeman (MGA)": ["סוֹף זְמַן קְרִיאַת שְׁמַע מג״א"],
|
|
6212
|
+
"Tefilah, sof zeman (MGA)": ["סוֹף זְמַן תְּפִלָּה מג״א"],
|
|
6213
|
+
"Chatzot hayom": ["חֲצוֹת הַיּוֹם"],
|
|
6214
|
+
"Mincha Gedolah": ["מִנְחָה גְּדוֹלָה"],
|
|
6215
|
+
"Mincha Ketanah": ["מִנְחָה קְטַנָּה"],
|
|
6216
|
+
"Plag HaMincha": ["פְּלַג הַמִּנְחָה"],
|
|
6217
|
+
"Dusk": ["דִּימְדּוּמֵי עֶרֶב"],
|
|
6218
|
+
"Sunset": ["שְׁקִיעָה"],
|
|
6219
|
+
"Nightfall - End of ordained fasts": ["לַיְלָה - גמר תעניות דרבנן"],
|
|
6220
|
+
"Tzeit HaKochavim": ["צֵאת הַכּוֹכָבִים"],
|
|
6221
|
+
"Lovingkindness": ["חֶֽסֶד"],
|
|
6222
|
+
"Might": ["גְבוּרָה"],
|
|
6223
|
+
"Beauty": ["תִּפאֶרֶת"],
|
|
6224
|
+
"Eternity": ["נֶּֽצַח"],
|
|
6225
|
+
"Splendor": ["הוֹד"],
|
|
6226
|
+
"Foundation": ["יְּסוֹד"],
|
|
6227
|
+
"Majesty": ["מַּלְכוּת"],
|
|
6228
|
+
"day": ["יוֹם"],
|
|
6229
|
+
"Chanukah Day 1": ["חֲנוּכָּה יוֹם א׳"],
|
|
6230
|
+
"Chanukah Day 2": ["חֲנוּכָּה יוֹם ב׳"],
|
|
6231
|
+
"Chanukah Day 3": ["חֲנוּכָּה יוֹם ג׳"],
|
|
6232
|
+
"Chanukah Day 4": ["חֲנוּכָּה יוֹם ד׳"],
|
|
6233
|
+
"Chanukah Day 5": ["חֲנוּכָּה יוֹם ה׳"],
|
|
6234
|
+
"Chanukah Day 6": ["חֲנוּכָּה יוֹם ו׳"],
|
|
6235
|
+
"Chanukah Day 7": ["חֲנוּכָּה יוֹם ז׳"],
|
|
6236
|
+
"Chanukah Day 7 (on Rosh Chodesh)": ["חֲנוּכָּה יוֹם ז׳ (רֹאשׁ חוֹדֶשׁ)"],
|
|
6237
|
+
"Chanukah Day 8": ["חֲנוּכָּה יוֹם ח׳"],
|
|
6238
|
+
"Chanukah Day 1 (on Shabbat)": ["חֲנוּכָּה יוֹם א׳ (בְּשַׁבָּת)"],
|
|
6239
|
+
"Chanukah Day 2 (on Shabbat)": ["חֲנוּכָּה יוֹם ב׳ (בְּשַׁבָּת)"],
|
|
6240
|
+
"Chanukah Day 3 (on Shabbat)": ["חֲנוּכָּה יוֹם ג׳ (בְּשַׁבָּת)"],
|
|
6241
|
+
"Chanukah Day 4 (on Shabbat)": ["חֲנוּכָּה יוֹם ד׳ (בְּשַׁבָּת)"],
|
|
6242
|
+
"Chanukah Day 5 (on Shabbat)": ["חֲנוּכָּה יוֹם ה׳ (בְּשַׁבָּת)"],
|
|
6243
|
+
"Chanukah Day 7 (on Shabbat)": ["חֲנוּכָּה יוֹם ז׳ (בְּשַׁבָּת)"],
|
|
6244
|
+
"Chanukah Day 8 (on Shabbat)": ["חֲנוּכָּה יוֹם ח׳ (בְּשַׁבָּת)"],
|
|
6245
|
+
"Shabbat Rosh Chodesh Chanukah": ["שַׁבָּת רֹאשׁ חוֹדֶשׁ חֲנוּכָּה"],
|
|
6246
|
+
"Yom Kippur Katan": ["יוֹם כִּפּוּר קָטָן"],
|
|
6247
|
+
"Family Day": ["יוֹם הַמִּשׁפָּחָה"],
|
|
6248
|
+
"Yitzhak Rabin Memorial Day": ["יוֹם הַזִּכָּרוֹן ליצחק רבין"],
|
|
6249
|
+
"Jabotinsky Day": ["יוֹם ז׳בוטינסקי"],
|
|
6250
|
+
"Herzl Day": ["יוֹם הרצל"],
|
|
6251
|
+
"Ben-Gurion Day": ["יוֹם בן־גוריון"],
|
|
6252
|
+
"Birkat Hachamah": ["בִרְכַּת הַחַמָּה"],
|
|
6253
|
+
"Shushan Purim Katan": ["שׁוּשָׁן פּוּרִים קָטָן"],
|
|
6254
|
+
"Purim Meshulash": ["פּוּרִים מְשׁוּלָּשׁ"],
|
|
6255
|
+
"after sunset": ["אחרי השקיעה"],
|
|
6256
|
+
"Yerushalmi": ["יְרוּשַׁלְמִי"],
|
|
6257
|
+
"Chag HaBanot": ["חַג הַבָּנוֹת"],
|
|
6258
|
+
"Joshua": ["יְהוֹשׁוּעַ"],
|
|
6259
|
+
"Judges": ["שׁוֹפְטִים"],
|
|
6260
|
+
"I Samuel": ["שְׁמוּאֵל רִאשׁוֹן"],
|
|
6261
|
+
"II Samuel": ["שְׁמוּאֵל שֵׁנִי"],
|
|
6262
|
+
"I Kings": ["מְלָכִים רִאשׁוֹן"],
|
|
6263
|
+
"II Kings": ["מְלָכִים שֵׁנִי"],
|
|
6264
|
+
"Isaiah": ["יְשַׁעְיָהוּ"],
|
|
6265
|
+
"Jeremiah": ["יִרְמְיָהוּ"],
|
|
6266
|
+
"Ezekiel": ["יְחֶזְקֵאל"],
|
|
6267
|
+
"Hosea": ["הוֹשֵׁעַ"],
|
|
6268
|
+
"Joel": ["יוֹאֵל"],
|
|
6269
|
+
"Amos": ["עָמוּס"],
|
|
6270
|
+
"Obadiah": ["עוֹבַדְיָה"],
|
|
6271
|
+
"Jonah": ["יוֹנָה"],
|
|
6272
|
+
"Micah": ["מִיכָה"],
|
|
6273
|
+
"Nachum": ["נַחוּם"],
|
|
6274
|
+
"Habakkuk": ["חֲבַקּוּק"],
|
|
6275
|
+
"Zephaniah": ["צְפַנְיָה"],
|
|
6276
|
+
"Haggai": ["חַגַּי"],
|
|
6277
|
+
"Zechariah": ["זְכַרְיָה"],
|
|
6278
|
+
"Malachi": ["מַלְאָכִי"],
|
|
6279
|
+
"Psalms": ["תְּהִלִּים"],
|
|
6280
|
+
"Proverbs": ["מִשְׁלֵי"],
|
|
6281
|
+
"Job": ["אִיּוֹב"],
|
|
6282
|
+
"Song of Songs": ["שִׁיר הַשִּׁירִים"],
|
|
6283
|
+
"Ruth": ["רוּת"],
|
|
6284
|
+
"Lamentations": ["אֵיכָה"],
|
|
6285
|
+
"Ecclesiastes": ["קֹהֶלֶת"],
|
|
6286
|
+
"Esther": ["אֶסְתֵּר"],
|
|
6287
|
+
"Daniel": ["דָּנִיֵּאל"],
|
|
6288
|
+
"Ezra": ["עֶזְרָא"],
|
|
6289
|
+
"Nehemiah": ["נְחֶמְיָה"],
|
|
6290
|
+
"I Chronicles": ["דִברֵי הַיָמִים רִאשׁוֹן"],
|
|
6291
|
+
"II Chronicles": ["דִברֵי הַיָמִים שֵׁנִי"],
|
|
6292
|
+
"Yom Kippur (Mincha)": ["יוֹם כִּפּוּר מִנחָה"],
|
|
6293
|
+
"Tish'a B'Av (Mincha)": ["תִּשְׁעָה בְּאָב מִנחָה"],
|
|
6294
|
+
"Asara B'Tevet (Mincha)": ["עֲשָׂרָה בְּטֵבֵת מִנחָה"],
|
|
6295
|
+
"Ta'anit Bechorot (Mincha)": ["תַּעֲנִית בְּכוֹרוֹת מִנחָה"],
|
|
6296
|
+
"Ta'anit Esther (Mincha)": ["תַּעֲנִית אֶסְתֵּר מִנחָה"],
|
|
6297
|
+
"Tzom Gedaliah (Mincha)": ["צוֹם גְּדַלְיָה מִנחָה"],
|
|
6298
|
+
"Tzom Tammuz (Mincha)": ["צוֹם תָּמוּז מִנחָה"],
|
|
6299
|
+
"Molad": ["מוֹלָד הָלְּבָנָה"],
|
|
6300
|
+
"chalakim": ["חֲלָקִים"]
|
|
6301
|
+
}
|
|
6302
|
+
}
|
|
6303
|
+
};
|
|
6304
|
+
|
|
6305
|
+
Locale.addLocale('he', poHe);
|
|
6306
|
+
Locale.addLocale('h', poHe);
|
|
6307
|
+
const heStrs = poHe.contexts[''];
|
|
6308
|
+
const heNoNikud = {};
|
|
6309
|
+
for (const [key, val] of Object.entries(heStrs)) {
|
|
6310
|
+
heNoNikud[key] = [Locale.hebrewStripNikkud(val[0])];
|
|
6311
|
+
}
|
|
6312
|
+
const poHeNoNikud = {
|
|
6313
|
+
headers: poHe.headers,
|
|
6314
|
+
contexts: {
|
|
6315
|
+
'': heNoNikud
|
|
6316
|
+
}
|
|
6317
|
+
};
|
|
6318
|
+
Locale.addLocale('he-x-NoNikud', poHeNoNikud);
|
|
6319
|
+
|
|
5950
6320
|
/**
|
|
5951
6321
|
* @private
|
|
5952
6322
|
* @param {number} start
|
|
@@ -6109,10 +6479,7 @@ function tachanunYear(year, il) {
|
|
|
6109
6479
|
const FRI = 5;
|
|
6110
6480
|
const SAT = 6;
|
|
6111
6481
|
const NISAN = months.NISAN;
|
|
6112
|
-
// const IYYAR = months.IYYAR;
|
|
6113
6482
|
const SIVAN = months.SIVAN;
|
|
6114
|
-
// const TAMUZ = months.TAMUZ;
|
|
6115
|
-
// const AV = months.AV;
|
|
6116
6483
|
const ELUL = months.ELUL;
|
|
6117
6484
|
const TISHREI = months.TISHREI;
|
|
6118
6485
|
const LIGHT_CANDLES = flags.LIGHT_CANDLES;
|
|
@@ -6545,6 +6912,7 @@ function observedInDiaspora(ev) {
|
|
|
6545
6912
|
return ev.observedInDiaspora();
|
|
6546
6913
|
}
|
|
6547
6914
|
const yearArrayCache = new Map();
|
|
6915
|
+
const holidaysOnDate = new Map();
|
|
6548
6916
|
|
|
6549
6917
|
/**
|
|
6550
6918
|
* HebrewCalendar is the main interface to the `@hebcal/core` library.
|
|
@@ -6892,20 +7260,29 @@ class HebrewCalendar {
|
|
|
6892
7260
|
}
|
|
6893
7261
|
|
|
6894
7262
|
/**
|
|
6895
|
-
* Returns an array of Events on this date (or undefined if no events)
|
|
7263
|
+
* Returns an array of Events on this date (or `undefined` if no events)
|
|
6896
7264
|
* @param {HDate|Date|number} date Hebrew Date, Gregorian date, or absolute R.D. day number
|
|
6897
7265
|
* @param {boolean} [il] use the Israeli schedule for holidays
|
|
6898
7266
|
* @return {Event[]}
|
|
6899
7267
|
*/
|
|
6900
7268
|
static getHolidaysOnDate(date, il) {
|
|
6901
7269
|
const hd = HDate.isHDate(date) ? date : new HDate(date);
|
|
7270
|
+
const hdStr = hd.toString();
|
|
7271
|
+
const cacheKey = hdStr + '/' + (typeof il === 'undefined' ? 2 : il ? 1 : 0);
|
|
7272
|
+
if (holidaysOnDate.has(cacheKey)) {
|
|
7273
|
+
return holidaysOnDate.get(cacheKey);
|
|
7274
|
+
}
|
|
6902
7275
|
const yearMap = getHolidaysForYear_(hd.getFullYear());
|
|
6903
|
-
const events = yearMap.get(
|
|
7276
|
+
const events = yearMap.get(hdStr);
|
|
7277
|
+
// if il isn't a boolean return both diaspora + IL for day
|
|
6904
7278
|
if (typeof il === 'undefined' || typeof events === 'undefined') {
|
|
7279
|
+
holidaysOnDate.set(cacheKey, events);
|
|
6905
7280
|
return events;
|
|
6906
7281
|
}
|
|
6907
7282
|
const myFilter = il ? observedInIsrael : observedInDiaspora;
|
|
6908
|
-
|
|
7283
|
+
const filtered = events.filter(myFilter);
|
|
7284
|
+
holidaysOnDate.set(cacheKey, filtered);
|
|
7285
|
+
return filtered;
|
|
6909
7286
|
}
|
|
6910
7287
|
|
|
6911
7288
|
/**
|