m-bibles.lmt /size: 8240 b    last modification: 2025-02-21 11:03
1if not modules then modules = { } end modules ['m-bibles'] = {
2    version   = 1.001,
3    comment   = "companion to m-bibles.mkxl",
4    author    = "Hans Hagen & Mikael Sundqvist",
5    copyright = "PRAGMA ADE / ConTeXt Development Team",
6    license   = "see context related readme files"
7}
8
9local tonumber = tonumber
10local context = context
11
12moduledata        = moduledata or { }
13local bibles      = { }
14moduledata.bibles = bibles
15
16bibles.books = {
17    english = {
18        "Genesis", "Exodus", "Leviticus", "Numbers", "Deuteronomy", "Joshua",
19        "Judges", "Ruth", "1 Samuel", "2 Samuel", "1 Kings", "2 Kings",
20        "1 Chronicles", "2 Chronicles", "Ezra", "Nehemiah", "Esther", "Job",
21        "Psalms", "Proverbs", "Ecclesiastes", "Song of Songs", "Isaiah",
22        "Jeremiah", "Lamentations", "Ezekiel", "Daniel", "Hosea", "Joel", "Amos",
23        "Obadiah", "Jonah", "Micah", "Nahum", "Habakkuk", "Zephaniah", "Haggai",
24        "Zechariah", "Malachi",
25        --
26        "Matthew", "Mark", "Luke", "John", "Acts", "Romans", "1 Corinthians",
27        "2 Corinthians", "Galatians", "Ephesians", "Philippians", "Colossians",
28        "1 Thessalonians", "2 Thessalonians", "1 Timothy", "2 Timothy", "Titus",
29        "Philemon", "Hebrews", "James", "1 Peter", "2 Peter", "1 John", "2 John",
30        "3 John", "Jude", "Revelation",
31    },
32    polish = {
33--            "Rodzaju", "Wyjścia", "Kapłańska", "Liczb", "Powtórzonego Prawa",
34        "Rodzaxu", "Wyjścia", "Kapłańska", "Liczb", "Powtórzonego Prawa",
35        "Jozuego", "Sędziów", "Ruty", "1. Samuelowa", "2. Samuelowa",
36        "1. Królewska", "2. Królewska", "1. Kronik", "2. Kronik", "Ezdraszowa",
37        "Nehemijaszowa", "Estery", "Ijobowa", "Psalmów",
38        "Przypowieści Salomonowych", "Kaznodziei Salomona", "Pieśń Salomona",
39        "Izajasz", "Jeremijasz", "Treny Jeremijaszowe", "Ezechyjel",
40        "Danijel", "Ozeasza", "Joel", "Amos", "Abdyjasz", "Jonasz",
41        "Micheasz", "Nahum", "Abakuk", "Sofonijasz", "Aggieusz",
42        "Zacharyjasz", "Malachyjasz",
43        --
44        "Mateusza", "Marka", "Łukasza", "Jana", "Dzieje Apostolskie",
45        "Rzymian", "1. Koryntów", "2. Koryntów", "Galatów", "Efezów",
46        "Filipensów", "Kolosensów", "1. Tesalonicensów", "2. Tesalonicensów",
47        "1. Tymoteusza", "2. Tymoteusza", "Tytusa", "Filemona", "Żydów",
48        "Jakóba", "1. Piotra", "2. Piotra", "1. Jana", "2. Jana", "3. Jana",
49        "Judasa", "Objawienie Jana",
50    },
51    swedish = { -- according to bibeln.se
52        "Första Moseboken", "Andra Moseboken", "Tredje Moseboken",
53        "Fjärde Moseboken", "Femte Moseboken", "Josua", "Domarboken", "Rut",
54        "Första Samuelsboken", "Andra Samuelsboken", "Första Kungaboken",
55        "Andra Kungaboken", "Första Krönikeboken", "Andra Krönikeboken",
56        "Esra", "Nehemjah", "Ester", "Job", "Psaltaren", "Ordspråksboken",
57        "Predikaren", "Höga visan", "Jesaja", "Jeremia", "Klagovisorna",
58        "Hesekiel", "Daniel", "Hosea", "Joel", "Amos", "Obadja", "Jona",
59        "Mika", "Nahum", "Habackuk", "Sefanja", "Haggaj", "Sakarja",
60        "Malaki",
61        --
62        "Matteus", "Markus", "Lukas", "Johannes", "Apostlagärningarna",
63        "Romarbrevet", "Första Korinthierbrevet", "Andra Korinthierbrevet",
64        "Galaterbrevet", "Efesierbrevet", "Filipperbrevet", "Kolosserbrevet",
65        "Första Thessalonikerbrevet", "Andra Thessalonikerbrevet",
66        "Första Timotheosbrevet", "Andra Timotheosbrevet", "Titusbrevet",
67        "Filemonbrevet", "Hebreerbrevet", "Jakobsbrevet",
68        "Första Petrusbrevet", "Andra Petrusbrevet", "Första Johannesbrevet",
69        "Andra Johannesbrevet", "Tredje Johannesbrevet", "Judasbrevet",
70        "Uppenbarelseboken",
71    },
72    dutch = {
73        "Genesis", "Exodus", "Leviticus", "Numeri", "Deuteronomium", "Jozua",
74        "Rechters", "Ruth", "1 Samuel", "2 Samuel", "1 Koningen",
75        "2 Koningen", "1 Kronieken", "2 Kronieken", "Ezra", "Nehemia", "Ester",
76        "Job", "Psalmen", "Spreuken", "Prediker", "Hooglied", "Jesaja",
77        "Jeremia", "Klaagliederen", "Ezechiël", "Daniël", "Hosea", "Joël", "Amos",
78        "Obadja", "Jona", "Micha", "Nahum", "Habakuk", "Sefanja", "Haggai", "Zacharia",
79        "Maleachi",
80        --
81        "Matteüs", "Marcus", "Lucas", "Johannes", "Handelingen", "Romeinen",
82        "1 Korintiërs", "2 Korintiërs", "Galaten", "Efeziërs", "Filippenzen",
83        "Kolossenzen", "1 Tessalonicenzen", "2 Tessalonicenzen", "1 Timoteüs",
84        "2 Timoteüs", "Titus", "Filemon", "Hebreeën", "Jakobus", "1 Petrus",
85        "2 Petrus", "1 Johannes", "2 Johannes", "3 Johannes", "Judas",
86        "Openbaring van Johannes",
87    }
88}
89
90bibles.testaments = {
91    english = {
92        Old = "Old testament",
93        New = "New testament",
94    },
95    polish = {
96        Old = "Starego testamentu",
97        New = "Nowego testamentu",
98    },
99    swedish = {
100        Old = "Gamla testamentet",
101        New = "Nya testamentet",
102    },
103    dutch = {
104        Old = "Oude testament",
105        New = "Nieuwe testament",
106    },
107}
108
109table.setmetatableindex(bibles.books, bibles.books.english)
110table.setmetatableindex(bibles.testaments, bibles.testaments.english)
111
112bibles.biblefiles = table.setmetatableindex {
113    title      = "Bible",
114    books      = bibles.books.english,
115    testaments = bibles.testaments.english,
116    chapter    = "Chapter",
117}
118
119bibles.biblefiles["EnglishKJBible.xml"] = {
120    filename   = "EnglishKJBible.xml",
121    title      = "English King James",
122    books      = bibles.books.english,
123    testaments = bibles.testaments.english,
124    chapter    = "Chapter",
125}
126
127bibles.biblefiles["PolishBible.xml"] = {
128    filename   = "PolishBible.xml",
129    title      = "Polish Biblia Warszawska 1975",
130    books      = bibles.books.polish,
131    testaments = bibles.testaments.polish,
132    chapter    = "Rozdział",
133}
134
135bibles.biblefiles["DutchBible.xml"] = {
136    filename   = "DutchBible.xml",
137    title      = "Nederlandse Statenvertaling",
138    books      = bibles.books.dutch,
139    testaments = bibles.testaments.dutch,
140    chapter    = "Hoofdstuk",
141}
142
143bibles.biblefiles["SwedishBible.xml"] = {
144    filename   = "SwedishBible.xml",
145    title      = "Svenska 1917",
146    books      = bibles.books.swedish,
147    testaments = bibles.testaments.swedish,
148    chapter    = "Kapitel",
149}
150
151bibles.biblefiles["HebrewBible.xml"] = {
152    filename   = "HebrewBible.xml",
153    title      = "Hebrew Bible Modern 1977",
154    books      = bibles.books.hebrew,
155    books      = bibles.books.english,
156    testaments = bibles.testaments.hebrew,
157    testaments = bibles.testaments.english,
158    chapter    = "Chapter",
159}
160
161if context then
162
163    local biblefiles = bibles.biblefiles
164
165    interfaces.implement {
166        name      = "BibleSetFile",
167        public    = true,
168        arguments = "2 strings",
169        actions   = function(bibleindex,biblefile)
170            biblefiles[bibleindex] = biblefiles[biblefile]
171        end
172    }
173
174    interfaces.implement {
175        name      = "BibleFile",
176        public    = true,
177        arguments = "string",
178        actions   = function(bibleindex)
179--         print(biblefiles[bibleindex].filename)
180            context(biblefiles[bibleindex].filename)
181        end
182    }
183
184    interfaces.implement {
185        name      = "BibleTitleName",
186        public    = true,
187        arguments = "string",
188        actions   = function(biblefile)
189            context(biblefiles[biblefile].title)
190        end
191    }
192
193    interfaces.implement {
194        name    = "BibleTestamentName",
195        public  = true,
196        arguments = "2 strings",
197        actions = function(biblefile,biblename)
198            context(biblefiles[biblefile].testaments[biblename])
199        end
200    }
201
202    interfaces.implement {
203        name    = "BibleBookName",
204        public  = true,
205        arguments = "2 strings",
206        actions = function(biblefile,biblebook)
207            context(biblefiles[biblefile].books[tonumber(biblebook)])
208        end
209    }
210
211    interfaces.implement {
212        name    = "BibleChapterName",
213        public  = true,
214        arguments = "string",
215        actions = function(biblefile)
216            context(biblefiles[biblefile].chapter)
217        end
218    }
219
220end
221
222return bibles
223