diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..3433c01b --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "esbenp.prettier-vscode" + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 9d573809..e16b82ef 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,8 @@ French German Italian Japanese -Madagascar Sign Language, Malagasy +Korean +Malagasy Polish, Portuguese Brazil Romanian, Russian Spanish diff --git a/src/browser/utils.browser.ts b/src/browser/utils.browser.ts index 05fcca35..2c62f133 100644 --- a/src/browser/utils.browser.ts +++ b/src/browser/utils.browser.ts @@ -7,6 +7,7 @@ import F from '../locales/fr-FR/text.json'; import I from '../locales/it-IT/text.json'; import J from '../locales/ja-JP/text.json'; 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 P from '../locales/pl-PL/text.json'; @@ -30,6 +31,6 @@ declare global { } window.jw_epub_parser = { - languages: { CH, CHS, E, F, I, J, K, M, MG, P, S, T, TG, TK, TND, TNK, TPO, TTM, TW, U, VZ, X }, + languages: { CH, CHS, E, F, I, J, K, KO, M, MG, P, S, T, TG, TK, TND, TNK, TPO, TTM, TW, U, VZ, X }, path: path, }; diff --git a/src/common/date_parser.ts b/src/common/date_parser.ts index 613ff80b..e0f743dd 100644 --- a/src/common/date_parser.ts +++ b/src/common/date_parser.ts @@ -28,6 +28,12 @@ option2 = `(\\d{1,2})月(\\d{1,2})日`; option3 = `(?:\\d{4})年(\\d{1,2})月(\\d{1,2})日`; const mwbDatePatternJ = `${option1}|${option2}|${option3}`; +// date like 1-) 11월 4-10일; or 2) 11월 25일–12월 1일; or 3) 2024년 12월 30일–2025년 1월 5일 +option1 = `(\\d{1,2})월 (\\d{1,2})[-–](?:\\d{1,2})일`; +option2 = `(\\d{1,2})월 (\\d{1,2})일`; +option3 = `(?:\\d{4})년 (\\d{1,2})월 (\\d{1,2})일`; +const mwbDatePatternKO = `${option1}|${option2}|${option3}`; + // date like 1-) 4-10 listopada; or 2) 25 listopada do 1 grudnia; or 3) 30 grudnia 2024 do 5 stycznia 2025 option1 = `(\\d{1,2})[-–](?:\\d{1,2}) (${wordWithDiacritics})`; option2 = `(\\d{1,2}) (${wordWithDiacritics}) do (?:\\d{1,2}) (?:${wordWithDiacritics})`; @@ -64,6 +70,7 @@ const mwbDatePatterns: LangRegExp = { CHS: new RegExp(mwbDatePatternJ, 'giu'), E: new RegExp(mwbDatePatternE, 'giu'), J: new RegExp(mwbDatePatternJ, 'giu'), + KO: new RegExp(mwbDatePatternKO, 'giu'), P: new RegExp(mwbDatePatternP, 'giu'), S: new RegExp(mwbDatePatternS, 'giu'), T: new RegExp(mwbDatePatternT, 'giu'), @@ -116,6 +123,7 @@ const mwbDateParsing: MWBDateParsing = { CHS: mwbParsingE, E: mwbParsingE, J: mwbParsingE, + KO: mwbParsingE, TG: mwbParsingE, TW: mwbParsingE, }; @@ -178,6 +186,11 @@ option1 = `(\\d{4})年(?:nián)?(\\d{1,2})月(?:yuè)?(\\d{1,2})[-–~](\\d{1, option2 = `(\\d{4})年(?:nián)?(\\d{1,2})月(?:yuè)?(\\d{1,2})日`; const wDatePatternJ = `${option1}|${option2}`; +// date like 1-) 2024년 10월 7-13일; or 2) 2024년 10월 28일–2024년 11월 3일 +option1 = `(\\d{4})년 (\\d{1,2})월 (\\d{1,2})[-–](\\d{1,2})일`; +option2 = `(\\d{4})년 (\\d{1,2})월 (\\d{1,2})일`; +const wDatePatternKO = `${option1}|${option2}`; + // date like 1-) Artykuł do studium w tygodniu od 14 do 20 października 2024 roku; or 2) Artykuł do studium w tygodniu od 28 października do 3 listopada 2024 roku; or 3) Artykuł do studium w tygodniu od 30 grudnia 2024 roku do 5 stycznia 2025 roku. option1 = `(\\d{1,2}) do (?:\\d{1,2})? (${wordWithDiacritics}) (\\d{4})`; option2 = `(\\d{1,2}) (${wordWithDiacritics}) do (?:\\d{1,2}) (?:${wordWithDiacritics}) (\\d{4})`; @@ -223,6 +236,7 @@ const wDatePatterns: LangRegExp = { CHS: new RegExp(wDatePatternJ, 'giu'), E: new RegExp(wDatePatternE, 'giu'), J: new RegExp(wDatePatternJ, 'giu'), + KO: new RegExp(wDatePatternKO, 'giu'), P: new RegExp(wDatePatternP, 'giu'), S: new RegExp(wDatePatternS, 'giu'), T: new RegExp(wDatePatternT, 'giu'), @@ -314,6 +328,7 @@ const wDateParsing: WDateParsing = { CHS: wParsingJ, E: wParsingE, J: wParsingJ, + KO: wParsingJ, TG: wParsingE, TW: wParsingTW, }; diff --git a/src/locales/languages.ts b/src/locales/languages.ts index 29338d09..f54592d1 100644 --- a/src/locales/languages.ts +++ b/src/locales/languages.ts @@ -4,6 +4,7 @@ export default [ { locale: 'it-IT', code: 'I' }, { locale: 'ja-JP', code: 'J' }, { locale: 'uk-UA', code: 'K' }, + { locale: 'ko-KR', code: 'KO' }, { locale: 'ro-RO', code: 'M' }, { locale: 'mg-MG', code: 'MG' }, { locale: 'pl-PL', code: 'P' }, diff --git a/src/node/utils.node.ts b/src/node/utils.node.ts index ade269e0..0cdbbce7 100644 --- a/src/node/utils.node.ts +++ b/src/node/utils.node.ts @@ -8,6 +8,7 @@ import F from '../locales/fr-FR/text.json' assert { type: 'json' }; import I from '../locales/it-IT/text.json' assert { type: 'json' }; import J from '../locales/ja-JP/text.json' assert { type: 'json' }; 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 P from '../locales/pl-PL/text.json' assert { type: 'json' }; @@ -29,7 +30,7 @@ declare global { } global.jw_epub_parser = { - languages: { CH, CHS, E, F, I, J, K, M, MG, P, S, T, TG, TK, TND, TNK, TPO, TTM, TW, U, VZ, X }, + languages: { CH, CHS, E, F, I, J, K, KO, M, MG, P, S, T, TG, TK, TND, TNK, TPO, TTM, TW, U, VZ, X }, path: path, readFile: readFile, }; diff --git a/test/enhancedParsing/list.json b/test/enhancedParsing/list.json index acca823a..58126fff 100644 --- a/test/enhancedParsing/list.json +++ b/test/enhancedParsing/list.json @@ -6,6 +6,7 @@ { "language": "I", "issue": "202411" }, { "language": "J", "issue": "202411" }, { "language": "K", "issue": "202411" }, + { "language": "KO", "issue": "202411" }, { "language": "M", "issue": "202411" }, { "language": "MG", "issue": "202411" }, { "language": "S", "issue": "202411" }, diff --git a/test/fixtures/mwb_KO_202411.js b/test/fixtures/mwb_KO_202411.js new file mode 100644 index 00000000..e8c851e9 --- /dev/null +++ b/test/fixtures/mwb_KO_202411.js @@ -0,0 +1,296 @@ +export default [ + { + mwb_week_date: '2024/11/04', + mwb_week_date_locale: '11월 4-10일', + mwb_weekly_bible_reading: '시편 105편', + mwb_song_first: 3, + mwb_tgw_talk: '‘그분은 자신의 계약을 영원히 기억하신다’', + mwb_tgw_talk_title: '1. ‘그분은 자신의 계약을 영원히 기억하신다’', + mwb_tgw_gems_title: '2. 영적 보물 찾기', + mwb_tgw_bread: '시 105:24-45 (「읽가」 5과)', + mwb_tgw_bread_title: '3. 성경 낭독', + mwb_ayf_count: 4, + mwb_ayf_part1: '호별 방문. 바쁜 집주인을 만난다. (「랑제」 2과 요점 5)', + mwb_ayf_part1_time: 1, + mwb_ayf_part1_type: '대화 시작하기', + mwb_ayf_part1_title: '4. 대화 시작하기', + mwb_ayf_part2: '호별 방문. 상대방이 논쟁을 하려고 할 때 친절한 방식으로 대화를 끝낸다. (「랑제」 4과 요점 5)', + mwb_ayf_part2_time: 2, + mwb_ayf_part2_type: '대화 시작하기', + mwb_ayf_part2_title: '5. 대화 시작하기', + mwb_ayf_part3: '호별 방문. 지난번에 집주인이 관심을 나타냈던 주제를 다루는 잡지를 전한다. (「랑제」 8과 요점 3)', + mwb_ayf_part3_time: 4, + mwb_ayf_part3_type: '관심이 자라도록 돕기', + mwb_ayf_part3_title: '6. 관심이 자라도록 돕기', + mwb_ayf_part4: '비공식 증거. 상대방에게 「JW 라이브러리」 앱을 소개하고 다운로드할 수 있게 도와준다. (「랑제」 9과 요점 5)', + mwb_ayf_part4_time: 4, + mwb_ayf_part4_type: '관심이 자라도록 돕기', + mwb_ayf_part4_title: '7. 관심이 자라도록 돕기', + mwb_song_middle: 84, + mwb_lc_count: 1, + mwb_lc_part1: '그리스도에 대한 사랑을 표현하는 방법', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '8. 그리스도에 대한 사랑을 표현하는 방법', + mwb_lc_part1_content: '토의.', + mwb_lc_cbs: '「철」 17장 13-19항', + mwb_lc_cbs_title: '9. 회중 성서 연구', + mwb_song_conclude: 97 + }, + { + mwb_week_date: '2024/11/11', + mwb_week_date_locale: '11월 11-17일', + mwb_weekly_bible_reading: '시편 106편', + mwb_song_first: 36, + mwb_tgw_talk: '“그들이 잊었구나, 자기들의 구원자이신 하느님을”', + mwb_tgw_talk_title: '1. “그들이 잊었구나, 자기들의 구원자이신 하느님을”', + mwb_tgw_gems_title: '2. 영적 보물 찾기', + mwb_tgw_bread: '시 106:21-48 (「읽가」 10과)', + mwb_tgw_bread_title: '3. 성경 낭독', + mwb_ayf_count: 2, + mwb_ayf_part1: '토의. 동영상을 보여 주고 「랑제」 11과 요점 1-2를 토의한다.', + mwb_ayf_part1_time: 7, + mwb_ayf_part1_type: '간단명료하게 가르치기—예수의 본', + mwb_ayf_part1_title: '4. 간단명료하게 가르치기—예수의 본', + mwb_ayf_part2: '「랑제」 11과 요점 3-5 및 “다음 내용도 살펴보십시오”에 근거한 토의.', + mwb_ayf_part2_time: 8, + mwb_ayf_part2_type: '간단명료하게 가르치기—예수를 본받으십시오', + mwb_ayf_part2_title: '5. 간단명료하게 가르치기—예수를 본받으십시오', + mwb_song_middle: 78, + mwb_lc_count: 1, + mwb_lc_part1: '회중의 필요', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '6. 회중의 필요', + mwb_lc_cbs: '「철」 18장 1-5항 및 142, 144면 네모', + mwb_lc_cbs_title: '7. 회중 성서 연구', + mwb_song_conclude: 77 + }, + { + mwb_week_date: '2024/11/18', + mwb_week_date_locale: '11월 18-24일', + mwb_weekly_bible_reading: '시편 107-108편', + mwb_song_first: 7, + mwb_tgw_talk: '“여호와께 감사드려라. 그분은 선하시다”', + mwb_tgw_talk_title: '1. “여호와께 감사드려라. 그분은 선하시다”', + mwb_tgw_gems_title: '2. 영적 보물 찾기', + mwb_tgw_bread: '시 107:1-28 (「읽가」 5과)', + mwb_tgw_bread_title: '3. 성경 낭독', + mwb_ayf_count: 3, + mwb_ayf_part1: '비공식 증거. (「랑제」 1과 요점 4)', + mwb_ayf_part1_time: 3, + mwb_ayf_part1_type: '대화 시작하기', + mwb_ayf_part1_title: '4. 대화 시작하기', + mwb_ayf_part2: '비공식 증거. 성경 공부 과정에 대해 설명하고, 성경 공부 소개 카드를 전한다. (「랑제」 9과 요점 3)', + mwb_ayf_part2_time: 4, + mwb_ayf_part2_type: '관심이 자라도록 돕기', + mwb_ayf_part2_title: '5. 관심이 자라도록 돕기', + mwb_ayf_part3: '「웹청묻」 기사 90—주제: 어떻게 하면 부정적인 생각을 안 할 수 있을까? (「읽가」 14과)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: '연설', + mwb_ayf_part3_title: '6. 연설', + mwb_song_middle: 46, + mwb_lc_count: 1, + mwb_lc_part1: '우리는 노래로 여호와께 감사를 표현합니다', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '7. 우리는 노래로 여호와께 감사를 표현합니다', + mwb_lc_part1_content: '토의.', + mwb_lc_cbs: '「철」 18장 6-15항', + mwb_lc_cbs_title: '8. 회중 성서 연구', + mwb_song_conclude: 73 + }, + { + mwb_week_date: '2024/11/25', + mwb_week_date_locale: '11월 25일–12월 1일', + mwb_weekly_bible_reading: '시편 109-112편', + mwb_song_first: 14, + mwb_tgw_talk: '왕이신 예수를 지지하십시오!', + mwb_tgw_talk_title: '1. 왕이신 예수를 지지하십시오!', + mwb_tgw_gems_title: '2. 영적 보물 찾기', + mwb_tgw_bread: '시 109:1-26 (「읽가」 2과)', + mwb_tgw_bread_title: '3. 성경 낭독', + mwb_ayf_count: 3, + mwb_ayf_part1: '호별 방문. 전도지를 사용해 대화를 시작한다. (「랑제」 4과 요점 3)', + mwb_ayf_part1_time: 2, + mwb_ayf_part1_type: '대화 시작하기', + mwb_ayf_part1_title: '4. 대화 시작하기', + mwb_ayf_part2: '실연. 「웹증질」 기사 23—주제: 여호와의 증인이 전쟁에 참여하지 않는 이유는 무엇입니까? (「랑제」 4과 요점 4)', + mwb_ayf_part2_time: 5, + mwb_ayf_part2_type: '우리의 신앙 설명하기', + mwb_ayf_part2_title: '5. 우리의 신앙 설명하기', + mwb_ayf_part3: '「행누」 15과 요점 6 및 “사람들이 하는 말” (「랑제」 11과 요점 3)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: '제자가 되도록 돕기', + mwb_ayf_part3_title: '6. 제자가 되도록 돕기', + mwb_song_middle: 72, + mwb_lc_count: 1, + mwb_lc_part1: '어떻게 왕국을 충성스럽게 지지할 수 있습니까?', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '7. 어떻게 왕국을 충성스럽게 지지할 수 있습니까?', + mwb_lc_part1_content: '토의.', + mwb_lc_cbs: '「철」 18장 16-24항', + mwb_lc_cbs_title: '8. 회중 성서 연구', + mwb_song_conclude: 75 + }, + { + mwb_week_date: '2024/12/02', + mwb_week_date_locale: '12월 2-8일', + mwb_weekly_bible_reading: '시편 113-118편', + mwb_song_first: 127, + mwb_tgw_talk: '여호와께 무엇으로 보답할 수 있겠습니까?', + mwb_tgw_talk_title: '1. 여호와께 무엇으로 보답할 수 있겠습니까?', + mwb_tgw_gems_title: '2. 영적 보물 찾기', + mwb_tgw_bread: '시 116:1–117:2 (「읽가」 2과)', + mwb_tgw_bread_title: '3. 성경 낭독', + mwb_ayf_count: 2, + mwb_ayf_part1: '토의. 동영상을 보여 주고 「랑제」 12과 요점 1-2를 토의한다.', + mwb_ayf_part1_time: 7, + mwb_ayf_part1_type: '용기—예수의 본', + mwb_ayf_part1_title: '4. 용기—예수의 본', + mwb_ayf_part2: '「랑제」 12과 요점 3-5 및 “다음 내용도 살펴보십시오”에 근거한 토의.', + mwb_ayf_part2_time: 8, + mwb_ayf_part2_type: '용기—예수를 본받으십시오', + mwb_ayf_part2_title: '5. 용기—예수를 본받으십시오', + mwb_song_middle: 60, + mwb_lc_count: 1, + mwb_lc_part1: '회중의 필요', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '6. 회중의 필요', + mwb_lc_cbs: '「철」 19장 1-5항 및 149-150면 네모', + mwb_lc_cbs_title: '7. 회중 성서 연구', + mwb_song_conclude: 29 + }, + { + mwb_week_date: '2024/12/09', + mwb_week_date_locale: '12월 9-15일', + mwb_weekly_bible_reading: '시편 119:1-56', + mwb_song_first: 124, + mwb_tgw_talk: '“젊은이가 어떻게 자기의 행로를 깨끗이 지킬 수 있습니까?”', + mwb_tgw_talk_title: '1. “젊은이가 어떻게 자기의 행로를 깨끗이 지킬 수 있습니까?”', + mwb_tgw_gems_title: '2. 영적 보물 찾기', + mwb_tgw_bread: '시 119:1-32 (「읽가」 5과)', + mwb_tgw_bread_title: '3. 성경 낭독', + mwb_ayf_count: 3, + mwb_ayf_part1: '비공식 증거. 호별 방문 중에 길을 걸어가다가 만난 사람과 대화를 시작한다. (「랑제」 1과 요점 4)', + mwb_ayf_part1_time: 3, + mwb_ayf_part1_type: '대화 시작하기', + mwb_ayf_part1_title: '4. 대화 시작하기', + mwb_ayf_part2: '호별 방문. 지난번 방문에서 최근에 사랑하는 사람과 사별했다고 말한 사람을 다시 방문한다. (「랑제」 9과 요점 3)', + mwb_ayf_part2_time: 4, + mwb_ayf_part2_type: '관심이 자라도록 돕기', + mwb_ayf_part2_title: '5. 관심이 자라도록 돕기', + mwb_ayf_part3: '「웹청묻」 기사 83—주제: 어떻게 하면 유혹을 물리칠 수 있을까? (「읽가」 20과)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: '연설', + mwb_ayf_part3_title: '6. 연설', + mwb_song_middle: 40, + mwb_lc_count: 2, + mwb_lc_part1: '「우리의 조직이 이루고 있는 일들」 12월', + mwb_lc_part1_time: 10, + mwb_lc_part1_title: '7. 「우리의 조직이 이루고 있는 일들」 12월', + mwb_lc_part1_content: '동영상을 보여 준다.', + mwb_lc_part2: '회중의 필요', + mwb_lc_part2_time: 5, + mwb_lc_part2_title: '8. 회중의 필요', + mwb_lc_cbs: '「철」 19장 6-13항', + mwb_lc_cbs_title: '9. 회중 성서 연구', + mwb_song_conclude: 21 + }, + { + mwb_week_date: '2024/12/16', + mwb_week_date_locale: '12월 16-22일', + mwb_weekly_bible_reading: '시편 119:57-120', + mwb_song_first: 129, + mwb_tgw_talk: '고난을 인내하는 방법', + mwb_tgw_talk_title: '1. 고난을 인내하는 방법', + mwb_tgw_gems_title: '2. 영적 보물 찾기', + mwb_tgw_bread: '시 119:57-80 (「읽가」 12과)', + mwb_tgw_bread_title: '3. 성경 낭독', + mwb_ayf_count: 3, + mwb_ayf_part1: '호별 방문. 집주인에게 우리의 웹사이트를 보여 주고, jw.org 카드를 전한다. (「랑제」 2과 요점 5)', + mwb_ayf_part1_time: 3, + mwb_ayf_part1_type: '대화 시작하기', + mwb_ayf_part1_title: '4. 대화 시작하기', + mwb_ayf_part2: '비공식 증거. 공개 강연에 초대한다. 「왕국회관은 어떤 곳입니까?」 동영상을 사용해 대화한다. (「랑제」 8과 요점 3)', + mwb_ayf_part2_time: 4, + mwb_ayf_part2_type: '관심이 자라도록 돕기', + mwb_ayf_part2_title: '5. 관심이 자라도록 돕기', + mwb_ayf_part3: '실연. 「웹성대」 기사 157—주제: 성경은 자연재해에 대해 무엇을 알려 줍니까? (「랑제」 3과 요점 3)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: '우리의 신앙 설명하기', + mwb_ayf_part3_title: '6. 우리의 신앙 설명하기', + mwb_song_middle: 128, + mwb_lc_count: 1, + mwb_lc_part1: '여호와께서는 우리가 인내하도록 도와주십니다', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '7. 여호와께서는 우리가 인내하도록 도와주십니다', + mwb_lc_part1_content: '토의.', + mwb_lc_cbs: '「철」 19장 14-20항 및 152면 네모', + mwb_lc_cbs_title: '8. 회중 성서 연구', + mwb_song_conclude: 32 + }, + { + mwb_week_date: '2024/12/23', + mwb_week_date_locale: '12월 23-29일', + mwb_weekly_bible_reading: '시편 119:121-176', + mwb_song_first: 31, + mwb_tgw_talk: '불필요한 고통을 자초하지 않는 방법', + mwb_tgw_talk_title: '1. 불필요한 고통을 자초하지 않는 방법', + mwb_tgw_gems_title: '2. 영적 보물 찾기', + mwb_tgw_bread: '시 119:121-152 (「읽가」 2과)', + mwb_tgw_bread_title: '3. 성경 낭독', + mwb_ayf_count: 3, + mwb_ayf_part1: '호별 방문. (「랑제」 1과 요점 5)', + mwb_ayf_part1_time: 3, + mwb_ayf_part1_type: '대화 시작하기', + mwb_ayf_part1_title: '4. 대화 시작하기', + mwb_ayf_part2: '호별 방문. 상대방이 관심을 가질 만한 자료를 jw.org에서 어떻게 찾을 수 있는지 보여 준다. (「랑제」 8과 요점 3)', + mwb_ayf_part2_time: 4, + mwb_ayf_part2_type: '관심이 자라도록 돕기', + mwb_ayf_part2_title: '5. 관심이 자라도록 돕기', + mwb_ayf_part3: '회중 집회에 정기적으로 참석하지 않는 성서 연구생과 토의한다. (「랑제」 12과 요점 4)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: '제자가 되도록 돕기', + mwb_ayf_part3_title: '6. 제자가 되도록 돕기', + mwb_song_middle: 121, + mwb_lc_count: 1, + mwb_lc_part1: '돈 때문에 불필요한 고통을 겪지 마십시오', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '7. 돈 때문에 불필요한 고통을 겪지 마십시오', + mwb_lc_part1_content: '토의.', + mwb_lc_cbs: '「철」 20장 1-7항 및 7부 소개말', + mwb_lc_cbs_title: '8. 회중 성서 연구', + mwb_song_conclude: 101 + }, + { + mwb_week_date: '2024/12/30', + mwb_week_date_locale: '2024년 12월 30일–2025년 1월 5일', + mwb_weekly_bible_reading: '시편 120-126편', + mwb_song_first: 144, + mwb_tgw_talk: '그들은 눈물로 씨를 뿌렸지만 기뻐하며 거두어들였습니다', + mwb_tgw_talk_title: '1. 그들은 눈물로 씨를 뿌렸지만 기뻐하며 거두어들였습니다', + mwb_tgw_gems_title: '2. 영적 보물 찾기', + mwb_tgw_bread: '시 124:1–126:6 (「읽가」 5과)', + mwb_tgw_bread_title: '3. 성경 낭독', + mwb_ayf_count: 3, + mwb_ayf_part1: '공개 증거. (「랑제」 3과 요점 5)', + mwb_ayf_part1_time: 3, + mwb_ayf_part1_type: '대화 시작하기', + mwb_ayf_part1_title: '4. 대화 시작하기', + mwb_ayf_part2: '호별 방문. 지난번 방문에서 성경에 대해 의심을 표현한 사람을 다시 방문한다. (「랑제」 9과 요점 5)', + mwb_ayf_part2_time: 4, + mwb_ayf_part2_type: '관심이 자라도록 돕기', + mwb_ayf_part2_title: '5. 관심이 자라도록 돕기', + mwb_ayf_part3: '「행누」 16과 소개말 및 요점 1-3 (「랑제」 11과 요점 3)', + mwb_ayf_part3_time: 5, + mwb_ayf_part3_type: '제자가 되도록 돕기', + mwb_ayf_part3_title: '6. 제자가 되도록 돕기', + mwb_song_middle: 155, + mwb_lc_count: 1, + mwb_lc_part1: '하느님의 약속을 통해 기쁨을 얻으십시오', + mwb_lc_part1_time: 15, + mwb_lc_part1_title: '7. 하느님의 약속을 통해 기쁨을 얻으십시오', + mwb_lc_part1_content: '토의.', + mwb_lc_cbs: '「철」 20장 8-12항 및 161면 네모', + mwb_lc_cbs_title: '8. 회중 성서 연구', + mwb_song_conclude: 58 + } +] \ No newline at end of file diff --git a/test/fixtures/w_KO_202411.js b/test/fixtures/w_KO_202411.js new file mode 100644 index 00000000..3e5bcacb --- /dev/null +++ b/test/fixtures/w_KO_202411.js @@ -0,0 +1,30 @@ +export default [ + { + w_study_date: '2025/01/06', + w_study_date_locale: '연구 기사 44: 2025년 1월 6-12일', + w_study_title: '부당한 일을 겪을 때 어떻게 해야 합니까?', + w_study_opening_song: 33, + w_study_concluding_song: 38 + }, + { + w_study_date: '2025/01/13', + w_study_date_locale: '연구 기사 45: 2025년 1월 13-19일', + w_study_title: '충실한 사람들이 마지막으로 남긴 조언을 통해 배우십시오', + w_study_opening_song: 138, + w_study_concluding_song: 129 + }, + { + w_study_date: '2025/01/20', + w_study_date_locale: '연구 기사 46: 2025년 1월 20-26일', + w_study_title: '형제 여러분, 봉사의 종으로 섬기기 위해 힘써 노력하고 있습니까?', + w_study_opening_song: 49, + w_study_concluding_song: 17 + }, + { + w_study_date: '2025/01/27', + w_study_date_locale: '연구 기사 47: 2025년 1월 27일–2025년 2월 2일', + w_study_title: '형제 여러분, 장로로 섬기기 위해 힘써 노력하고 있습니까?', + w_study_opening_song: 103, + w_study_concluding_song: 101 + } +] \ No newline at end of file