diff --git a/README.md b/README.md index e3443384..56a77447 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,7 @@ Currently, we only support enhanced parsing for the following languages: ```bash Chinese Mandarin (Simplified), Chinese Mandarin (Traditional) +Dutch Enlish French German diff --git a/src/browser/utils.browser.ts b/src/browser/utils.browser.ts index 281423d8..872943cd 100644 --- a/src/browser/utils.browser.ts +++ b/src/browser/utils.browser.ts @@ -11,6 +11,7 @@ import K from '../locales/uk-UA/text.json'; import KO from '../locales/ko-KR/text.json'; import M from '../locales/ro-RO/text.json'; import MG from '../locales/mg-MG/text.json'; +import O from '../locales/nl-NL/text.json'; import P from '../locales/pl-PL/text.json'; import S from '../locales/es-ES/text.json'; import T from '../locales/pt-BR/text.json'; @@ -33,6 +34,6 @@ declare global { } window.jw_epub_parser = { - languages: { CH, CHS, E, F, FI, I, J, K, KO, M, MG, P, S, T, TG, TK, TND, TNK, TPO, TTM, TW, U, VZ, X, Z }, + languages: { CH, CHS, E, F, FI, I, J, K, KO, M, MG, O, P, S, T, TG, TK, TND, TNK, TPO, TTM, TW, U, VZ, X, Z }, path: path, }; diff --git a/src/locales/languages.ts b/src/locales/languages.ts index cf8423f4..d4165738 100644 --- a/src/locales/languages.ts +++ b/src/locales/languages.ts @@ -24,4 +24,5 @@ export default [ { locale: 'ch-CHS', code: 'CHS' }, { locale: 'fi-FI', code: 'FI' }, { locale: 'sv-SE', code: 'Z' }, + { locale: 'nl-NL', code: 'O' }, ]; diff --git a/src/node/utils.node.ts b/src/node/utils.node.ts index 885dbe8c..f702e705 100644 --- a/src/node/utils.node.ts +++ b/src/node/utils.node.ts @@ -12,6 +12,7 @@ import K from '../locales/uk-UA/text.json' assert { type: 'json' }; import KO from '../locales/ko-KR/text.json' assert { type: 'json' }; import M from '../locales/ro-RO/text.json' assert { type: 'json' }; import MG from '../locales/mg-MG/text.json' assert { type: 'json' }; +import O from '../locales/nl-NL/text.json' assert { type: 'json' }; import P from '../locales/pl-PL/text.json' assert { type: 'json' }; import S from '../locales/es-ES/text.json' assert { type: 'json' }; import T from '../locales/pt-BR/text.json' assert { type: 'json' }; @@ -32,7 +33,7 @@ declare global { } global.jw_epub_parser = { - languages: { CH, CHS, E, F, FI, I, J, K, KO, M, MG, P, S, T, TG, TK, TND, TNK, TPO, TTM, TW, U, VZ, X, Z }, + languages: { CH, CHS, E, F, FI, I, J, K, KO, M, MG, O, P, S, T, TG, TK, TND, TNK, TPO, TTM, TW, U, VZ, X, Z }, path: path, readFile: readFile, }; diff --git a/test/fixtures/mwb_O_202411.js b/test/fixtures/mwb_O_202411.js new file mode 100644 index 00000000..4e8d48d8 --- /dev/null +++ b/test/fixtures/mwb_O_202411.js @@ -0,0 +1,307 @@ +export default [ + { + mwb_week_date: '2024/11/04', + mwb_week_date_locale: '4-10 NOVEMBER', + mwb_weekly_bible_reading: 'PSALM 105', + mwb_song_first: 3, + mwb_tgw_talk: '‘Hij denkt voor altijd aan zijn verbond’', + mwb_tgw_talk_title: '1. ‘Hij denkt voor altijd aan zijn verbond’', + mwb_tgw_gems_title: '2. Geestelijke juweeltjes', + mwb_tgw_bread: 'Ps 105:24-45 (th les 5)', + mwb_tgw_bread_title: '3. Bijbellezen', + mwb_ayf_count: 4, + mwb_ayf_part1: 'AAN DE DEUR. De huisbewoner heeft het druk. (lmd les 2 punt 5)', + mwb_ayf_part1_time: 1, + mwb_ayf_part1_type: 'Begin een gesprek', + mwb_ayf_part1_title: '4. Begin een gesprek', + mwb_ayf_part2: + 'AAN DE DEUR. Beëindig het gesprek op een positieve manier zodra je merkt dat de persoon uit is op een discussie. (lmd les 4 punt 5)', + mwb_ayf_part2_time: 2, + mwb_ayf_part2_type: 'Begin een gesprek', + mwb_ayf_part2_title: '5. Begin een gesprek', + mwb_ayf_part3: + 'AAN DE DEUR. Bied een tijdschrift aan over een onderwerp waarvoor de persoon de vorige keer interesse toonde. (lmd les 8 punt 3)', + mwb_ayf_part3_time: 4, + mwb_ayf_part3_type: 'Ga terug', + mwb_ayf_part3_title: '6. Ga terug', + mwb_ayf_part4: + 'INFORMEEL GETUIGENIS. Vertel de persoon over de JW Library®-app, en help hem die te downloaden. (lmd les 9 punt 5)', + mwb_ayf_part4_time: 4, + mwb_ayf_part4_type: 'Ga terug', + mwb_ayf_part4_title: '7. Ga terug', + mwb_song_middle: 84, + mwb_lc_count: 1, + mwb_lc_part1: 'Hoe je liefde kunt tonen', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '8. Hoe je liefde kunt tonen', + mwb_lc_part1_content: 'Bespreking.', + mwb_lc_cbs: 'bt hfst. 17 ¶13-19', + mwb_lc_cbs_title: '9. Gemeentebijbelstudie', + mwb_song_conclude: 97, + }, + { + mwb_week_date: '2024/11/11', + mwb_week_date_locale: '11-17 NOVEMBER', + mwb_weekly_bible_reading: 'PSALM 106', + mwb_song_first: 36, + mwb_tgw_talk: '‘Ze vergaten God, hun Redder’', + mwb_tgw_talk_title: '1. ‘Ze vergaten God, hun Redder’', + mwb_tgw_gems_title: '2. Geestelijke juweeltjes', + mwb_tgw_bread: 'Ps 106:21-48 (th les 10)', + mwb_tgw_bread_title: '3. Bijbellezen', + mwb_ayf_count: 2, + mwb_ayf_part1: 'Bespreking. Bekijk de VIDEO en bespreek dan lmd les 11 punt 1-2.', + mwb_ayf_part1_time: 7, + mwb_ayf_part1_type: 'Eenvoud — Wat Jezus deed', + mwb_ayf_part1_title: '4. Eenvoud — Wat Jezus deed', + mwb_ayf_part2: 'Bespreking gebaseerd op lmd les 11 punt 3-5 en ‘Zie ook’.', + mwb_ayf_part2_time: 8, + mwb_ayf_part2_type: 'Eenvoud — Volg Jezus’ voorbeeld', + mwb_ayf_part2_title: '5. Eenvoud — Volg Jezus’ voorbeeld', + mwb_song_middle: 78, + mwb_lc_count: 1, + mwb_lc_part1: 'Plaatselijke behoeften', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '6. Plaatselijke behoeften', + mwb_lc_cbs: 'bt hfst. 18 ¶1-5, kaders op blz. 142, 144', + mwb_lc_cbs_title: '7. Gemeentebijbelstudie', + mwb_song_conclude: 77, + }, + { + mwb_week_date: '2024/11/18', + mwb_week_date_locale: '18-24 NOVEMBER', + mwb_weekly_bible_reading: 'PSALM 107-108', + mwb_song_first: 7, + mwb_tgw_talk: '‘Dank Jehovah, want hij is goed’', + mwb_tgw_talk_title: '1. ‘Dank Jehovah, want hij is goed’', + mwb_tgw_gems_title: '2. Geestelijke juweeltjes', + mwb_tgw_bread: 'Ps 107:1-28 (th les 5)', + mwb_tgw_bread_title: '3. Bijbellezen', + mwb_ayf_count: 3, + mwb_ayf_part1: 'INFORMEEL GETUIGENIS. (lmd les 1 punt 4)', + mwb_ayf_part1_time: 3, + mwb_ayf_part1_type: 'Begin een gesprek', + mwb_ayf_part1_title: '4. Begin een gesprek', + mwb_ayf_part2: + 'INFORMEEL GETUIGENIS. Vertel de persoon over onze Bijbelcursus en laat een contactkaartje voor een Bijbelcursus achter. (lmd les 9 punt 3)', + mwb_ayf_part2_time: 4, + mwb_ayf_part2_type: 'Ga terug', + mwb_ayf_part2_title: '5. Ga terug', + mwb_ayf_part3: 'ijwyp 90 — Thema: Wat kan ik doen tegen negatief denken? (th les 14)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: 'Lezing', + mwb_ayf_part3_title: '6. Lezing', + mwb_song_middle: 46, + mwb_lc_count: 1, + mwb_lc_part1: 'We zingen om Jehovah te bedanken', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '7. We zingen om Jehovah te bedanken', + mwb_lc_part1_content: 'Bespreking.', + mwb_lc_cbs: 'bt hfst. 18 ¶6-15', + mwb_lc_cbs_title: '8. Gemeentebijbelstudie', + mwb_song_conclude: 73, + }, + { + mwb_week_date: '2024/11/25', + mwb_week_date_locale: '25 NOVEMBER–1 DECEMBER', + mwb_weekly_bible_reading: 'PSALM 109-112', + mwb_song_first: 14, + mwb_tgw_talk: 'Geef je steun aan Jezus, de Koning!', + mwb_tgw_talk_title: '1. Geef je steun aan Jezus, de Koning!', + mwb_tgw_gems_title: '2. Geestelijke juweeltjes', + mwb_tgw_bread: 'Ps 109:1-26 (th les 2)', + mwb_tgw_bread_title: '3. Bijbellezen', + mwb_ayf_count: 3, + mwb_ayf_part1: 'AAN DE DEUR. Gebruik een traktaat om een gesprek te beginnen. (lmd les 4 punt 3)', + mwb_ayf_part1_time: 2, + mwb_ayf_part1_type: 'Begin een gesprek', + mwb_ayf_part1_title: '4. Begin een gesprek', + mwb_ayf_part2: + 'Presentatie. ijwfq 23 — Thema: Waarom doen Jehovah’s Getuigen niet mee aan oorlogen? (lmd les 4 punt 4)', + mwb_ayf_part2_time: 5, + mwb_ayf_part2_type: 'Leg uit wat je gelooft', + mwb_ayf_part2_title: '5. Leg uit wat je gelooft', + mwb_ayf_part3: 'lff les 15 punt 6 en Sommigen zeggen (lmd les 11 punt 3)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: 'Maak discipelen', + mwb_ayf_part3_title: '6. Maak discipelen', + mwb_song_middle: 72, + mwb_lc_count: 1, + mwb_lc_part1: 'Hoe kun je loyaal het Koninkrijk ondersteunen?', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '7. Hoe kun je loyaal het Koninkrijk ondersteunen?', + mwb_lc_part1_content: 'Bespreking.', + mwb_lc_cbs: 'bt hfst. 18 ¶16-24', + mwb_lc_cbs_title: '8. Gemeentebijbelstudie', + mwb_song_conclude: 75, + }, + { + mwb_week_date: '2024/12/02', + mwb_week_date_locale: '2-8 DECEMBER', + mwb_weekly_bible_reading: 'PSALM 113-118', + mwb_song_first: 127, + mwb_tgw_talk: 'Hoe kunnen we Jehovah vergoeden wat hij voor ons heeft gedaan?', + mwb_tgw_talk_title: '1. Hoe kunnen we Jehovah vergoeden wat hij voor ons heeft gedaan?', + mwb_tgw_gems_title: '2. Geestelijke juweeltjes', + mwb_tgw_bread: 'Ps 116:1–117:2 (th les 2)', + mwb_tgw_bread_title: '3. Bijbellezen', + mwb_ayf_count: 2, + mwb_ayf_part1: 'Bespreking. Bekijk de VIDEO en bespreek dan lmd les 12 punt 1-2.', + mwb_ayf_part1_time: 7, + mwb_ayf_part1_type: 'Moed — Wat Jezus deed', + mwb_ayf_part1_title: '4. Moed — Wat Jezus deed', + mwb_ayf_part2: 'Bespreking gebaseerd op lmd les 12 punt 3-5 en ‘Zie ook’.', + mwb_ayf_part2_time: 8, + mwb_ayf_part2_type: 'Moed — Volg Jezus’ voorbeeld', + mwb_ayf_part2_title: '5. Moed — Volg Jezus’ voorbeeld', + mwb_song_middle: 60, + mwb_lc_count: 1, + mwb_lc_part1: 'Plaatselijke behoeften', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '6. Plaatselijke behoeften', + mwb_lc_cbs: 'bt hfst. 19 ¶1-5, kaders op blz. 149-150', + mwb_lc_cbs_title: '7. Gemeentebijbelstudie', + mwb_song_conclude: 29, + }, + { + mwb_week_date: '2024/12/09', + mwb_week_date_locale: '9-15 DECEMBER', + mwb_weekly_bible_reading: 'PSALM 119:1-56', + mwb_song_first: 124, + mwb_tgw_talk: '‘Hoe kan een jonge man zijn pad zuiver houden?’', + mwb_tgw_talk_title: '1. ‘Hoe kan een jonge man zijn pad zuiver houden?’', + mwb_tgw_gems_title: '2. Geestelijke juweeltjes', + mwb_tgw_bread: 'Ps 119:1-32 (th les 5)', + mwb_tgw_bread_title: '3. Bijbellezen', + mwb_ayf_count: 3, + mwb_ayf_part1: + 'INFORMEEL GETUIGENIS. Begin een gesprek met iemand die je op straat tegenkomt tijdens de huis-aan-huisprediking. (lmd les 1 punt 4)', + mwb_ayf_part1_time: 3, + mwb_ayf_part1_type: 'Begin een gesprek', + mwb_ayf_part1_title: '4. Begin een gesprek', + mwb_ayf_part2: + 'AAN DE DEUR. De vorige keer heeft de persoon je verteld dat hij onlangs een dierbare heeft verloren. (lmd les 9 punt 3)', + mwb_ayf_part2_time: 4, + mwb_ayf_part2_type: 'Ga terug', + mwb_ayf_part2_title: '5. Ga terug', + mwb_ayf_part3: 'ijwyp 83 — Thema: Hoe kan ik verleidingen weerstaan? (th les 20)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: 'Lezing', + mwb_ayf_part3_title: '6. Lezing', + mwb_song_middle: 40, + mwb_lc_count: 2, + mwb_lc_part1: 'Wat de organisatie heeft bereikt van december', + mwb_lc_part1_time: 10, + mwb_lc_part1_title: '7. Wat de organisatie heeft bereikt van december', + mwb_lc_part1_content: 'Bekijk de VIDEO.', + mwb_lc_part2: 'Plaatselijke behoeften', + mwb_lc_part2_time: 5, + mwb_lc_part2_title: '8. Plaatselijke behoeften', + mwb_lc_cbs: 'bt hfst. 19 ¶6-13', + mwb_lc_cbs_title: '9. Gemeentebijbelstudie', + mwb_song_conclude: 21, + }, + { + mwb_week_date: '2024/12/16', + mwb_week_date_locale: '16-22 DECEMBER', + mwb_weekly_bible_reading: 'PSALM 119:57-120', + mwb_song_first: 129, + mwb_tgw_talk: 'Hoe je kunt omgaan met moeilijkheden', + mwb_tgw_talk_title: '1. Hoe je kunt omgaan met moeilijkheden', + mwb_tgw_gems_title: '2. Geestelijke juweeltjes', + mwb_tgw_bread: 'Ps 119:57-80 (th les 12)', + mwb_tgw_bread_title: '3. Bijbellezen', + mwb_ayf_count: 3, + mwb_ayf_part1: + 'AAN DE DEUR. Laat de huisbewoner onze website zien en geef hem een contactkaartje van jw.org. (lmd les 2 punt 5)', + mwb_ayf_part1_time: 3, + mwb_ayf_part1_type: 'Begin een gesprek', + mwb_ayf_part1_title: '4. Begin een gesprek', + mwb_ayf_part2: + 'INFORMEEL GETUIGENIS. Nodig de persoon uit voor de volgende openbare lezing. Gebruik de video Wat gebeurt er in een Koninkrijkszaal? (lmd les 8 punt 3)', + mwb_ayf_part2_time: 4, + mwb_ayf_part2_type: 'Ga terug', + mwb_ayf_part2_title: '5. Ga terug', + mwb_ayf_part3: 'Presentatie. ijwbq 157 — Thema: Wat zegt de Bijbel over natuurrampen? (lmd les 3 punt 3)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: 'Leg uit wat je gelooft', + mwb_ayf_part3_title: '6. Leg uit wat je gelooft', + mwb_song_middle: 128, + mwb_lc_count: 1, + mwb_lc_part1: 'Jehovah helpt ons te volharden', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '7. Jehovah helpt ons te volharden', + mwb_lc_part1_content: 'Bespreking.', + mwb_lc_cbs: 'bt hfst. 19 ¶14-20, kader op blz. 152', + mwb_lc_cbs_title: '8. Gemeentebijbelstudie', + mwb_song_conclude: 32, + }, + { + mwb_week_date: '2024/12/23', + mwb_week_date_locale: '23-29 DECEMBER', + mwb_weekly_bible_reading: 'PSALM 119:121-176', + mwb_song_first: 31, + mwb_tgw_talk: 'Voorkom onnodig verdriet', + mwb_tgw_talk_title: '1. Voorkom onnodig verdriet', + mwb_tgw_gems_title: '2. Geestelijke juweeltjes', + mwb_tgw_bread: 'Ps 119:121-152 (th les 2)', + mwb_tgw_bread_title: '3. Bijbellezen', + mwb_ayf_count: 3, + mwb_ayf_part1: 'AAN DE DEUR. (lmd les 1 punt 5)', + mwb_ayf_part1_time: 3, + mwb_ayf_part1_type: 'Begin een gesprek', + mwb_ayf_part1_title: '4. Begin een gesprek', + mwb_ayf_part2: + 'AAN DE DEUR. Laat de huisbewoner zien hoe hij op jw.org informatie kan vinden die hij misschien interessant vindt. (lmd les 8 punt 3)', + mwb_ayf_part2_time: 4, + mwb_ayf_part2_type: 'Ga terug', + mwb_ayf_part2_title: '5. Ga terug', + mwb_ayf_part3: 'Bespreking met een Bijbelstudent die niet regelmatig de vergaderingen bezoekt. (lmd les 12 punt 4)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: 'Maak discipelen', + mwb_ayf_part3_title: '6. Maak discipelen', + mwb_song_middle: 121, + mwb_lc_count: 1, + mwb_lc_part1: 'Laat niet toe dat geld onnodige pijn veroorzaakt', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '7. Laat niet toe dat geld onnodige pijn veroorzaakt', + mwb_lc_part1_content: 'Bespreking.', + mwb_lc_cbs: 'bt hfst. 20 ¶1-7 en inleiding tot deel 7', + mwb_lc_cbs_title: '8. Gemeentebijbelstudie', + mwb_song_conclude: 101, + }, + { + mwb_week_date: '2024/12/30', + mwb_week_date_locale: '30 DECEMBER 2024–5 JANUARI 2025', + mwb_weekly_bible_reading: 'PSALM 120-126', + mwb_song_first: 144, + mwb_tgw_talk: 'Ze zaaiden met tranen maar oogstten met vreugde', + mwb_tgw_talk_title: '1. Ze zaaiden met tranen maar oogstten met vreugde', + mwb_tgw_gems_title: '2. Geestelijke juweeltjes', + mwb_tgw_bread: 'Ps 124:1–126:6 (th les 5)', + mwb_tgw_bread_title: '3. Bijbellezen', + mwb_ayf_count: 3, + mwb_ayf_part1: 'OPENBAAR GETUIGENIS. (lmd les 3 punt 5)', + mwb_ayf_part1_time: 3, + mwb_ayf_part1_type: 'Begin een gesprek', + mwb_ayf_part1_title: '4. Begin een gesprek', + mwb_ayf_part2: + 'AAN DE DEUR. Bij het vorige bezoek zei de persoon dat hij twijfels had over de Bijbel. (lmd les 9 punt 5)', + mwb_ayf_part2_time: 4, + mwb_ayf_part2_type: 'Ga terug', + mwb_ayf_part2_title: '5. Ga terug', + mwb_ayf_part3: 'lff les 16 inleiding en punt 1-3 (lmd les 11 punt 3)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: 'Maak discipelen', + mwb_ayf_part3_title: '6. Maak discipelen', + mwb_song_middle: 155, + mwb_lc_count: 1, + mwb_lc_part1: 'Laat Gods beloften je blij maken', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '7. Laat Gods beloften je blij maken', + mwb_lc_part1_content: 'Bespreking.', + mwb_lc_cbs: 'bt hfst. 20 ¶8-12, kader op blz. 161', + mwb_lc_cbs_title: '8. Gemeentebijbelstudie', + mwb_song_conclude: 58, + }, +]; diff --git a/test/fixtures/w_O_202411.js b/test/fixtures/w_O_202411.js new file mode 100644 index 00000000..f0e6029b --- /dev/null +++ b/test/fixtures/w_O_202411.js @@ -0,0 +1,30 @@ +export default [ + { + w_study_date: '2025/01/06', + w_study_date_locale: 'Studieartikel 44: 6-12 januari 2025', + w_study_title: 'Hoe je kunt omgaan met onrecht', + w_study_opening_song: 33, + w_study_concluding_song: 38, + }, + { + w_study_date: '2025/01/13', + w_study_date_locale: 'Studieartikel 45: 13-19 januari 2025', + w_study_title: 'De leerzame afscheidswoorden van drie trouwe mannen', + w_study_opening_song: 138, + w_study_concluding_song: 129, + }, + { + w_study_date: '2025/01/20', + w_study_date_locale: 'Studieartikel 46: 20-26 januari 2025', + w_study_title: 'Streef jij ernaar dienaar te worden?', + w_study_opening_song: 49, + w_study_concluding_song: 17, + }, + { + w_study_date: '2025/01/27', + w_study_date_locale: 'Studieartikel 47: 27 januari 2025–2 februari 2025', + w_study_title: 'Streef jij ernaar als ouderling te dienen?', + w_study_opening_song: 103, + w_study_concluding_song: 101, + }, +];