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