Fix Edge-incompatible middleware; set Node runtime on Prisma/pg routes; add full Romanian Bible import + converter; import data JSON; resync RO bookKeys; stabilize /api/bible/books locale fallback; restart dev server.

This commit is contained in:
andupetcu
2025-09-20 18:01:04 +03:00
parent 500066450d
commit 88b251c100
28 changed files with 127926 additions and 175 deletions

78
lib/book-translations.ts Normal file
View File

@@ -0,0 +1,78 @@
// Book name translations mapping
export const bookTranslations: Record<string, { en: string; ro: string }> = {
'Geneza': { en: 'Genesis', ro: 'Geneza' },
'Exodul': { en: 'Exodus', ro: 'Exodul' },
'Leviticul': { en: 'Leviticus', ro: 'Leviticul' },
'Numerii': { en: 'Numbers', ro: 'Numerii' },
'Deuteronomul': { en: 'Deuteronomy', ro: 'Deuteronomul' },
'Iosua': { en: 'Joshua', ro: 'Iosua' },
'Judecătorii': { en: 'Judges', ro: 'Judecătorii' },
'Rut': { en: 'Ruth', ro: 'Rut' },
'1 Samuel': { en: '1 Samuel', ro: '1 Samuel' },
'2 Samuel': { en: '2 Samuel', ro: '2 Samuel' },
'1 Împăraţi': { en: '1 Kings', ro: '1 Împăraţi' },
'2 Împăraţi': { en: '2 Kings', ro: '2 Împăraţi' },
'1 Cronici': { en: '1 Chronicles', ro: '1 Cronici' },
'2 Cronici': { en: '2 Chronicles', ro: '2 Cronici' },
'Ezra': { en: 'Ezra', ro: 'Ezra' },
'Neemia': { en: 'Nehemiah', ro: 'Neemia' },
'Estera': { en: 'Esther', ro: 'Estera' },
'Iov': { en: 'Job', ro: 'Iov' },
'Psalmii': { en: 'Psalms', ro: 'Psalmii' },
'Proverbele': { en: 'Proverbs', ro: 'Proverbele' },
'Ecclesiastul': { en: 'Ecclesiastes', ro: 'Ecclesiastul' },
'Cântarea Cântărilor': { en: 'Song of Songs', ro: 'Cântarea Cântărilor' },
'Isaia': { en: 'Isaiah', ro: 'Isaia' },
'Ieremia': { en: 'Jeremiah', ro: 'Ieremia' },
'Plângerile lui Ieremia': { en: 'Lamentations', ro: 'Plângerile lui Ieremia' },
'Ezechiel': { en: 'Ezekiel', ro: 'Ezechiel' },
'Daniel': { en: 'Daniel', ro: 'Daniel' },
'Osea': { en: 'Hosea', ro: 'Osea' },
'Ioel': { en: 'Joel', ro: 'Ioel' },
'Amos': { en: 'Amos', ro: 'Amos' },
'Obadia': { en: 'Obadiah', ro: 'Obadia' },
'Iona': { en: 'Jonah', ro: 'Iona' },
'Mica': { en: 'Micah', ro: 'Mica' },
'Naum': { en: 'Nahum', ro: 'Naum' },
'Habacuc': { en: 'Habakkuk', ro: 'Habacuc' },
'Ţefania': { en: 'Zephaniah', ro: 'Ţefania' },
'Hagai': { en: 'Haggai', ro: 'Hagai' },
'Zaharia': { en: 'Zechariah', ro: 'Zaharia' },
'Maleahi': { en: 'Malachi', ro: 'Maleahi' },
'Matei': { en: 'Matthew', ro: 'Matei' },
'Marcu': { en: 'Mark', ro: 'Marcu' },
'Luca': { en: 'Luke', ro: 'Luca' },
'Ioan': { en: 'John', ro: 'Ioan' },
'Faptele Apostolilor': { en: 'Acts', ro: 'Faptele Apostolilor' },
'Romani': { en: 'Romans', ro: 'Romani' },
'1 Corinteni': { en: '1 Corinthians', ro: '1 Corinteni' },
'2 Corinteni': { en: '2 Corinthians', ro: '2 Corinteni' },
'Galateni': { en: 'Galatians', ro: 'Galateni' },
'Efeseni': { en: 'Ephesians', ro: 'Efeseni' },
'Filipeni': { en: 'Philippians', ro: 'Filipeni' },
'Coloseni': { en: 'Colossians', ro: 'Coloseni' },
'1 Tesaloniceni': { en: '1 Thessalonians', ro: '1 Tesaloniceni' },
'2 Tesaloniceni': { en: '2 Thessalonians', ro: '2 Tesaloniceni' },
'1 Timotei': { en: '1 Timothy', ro: '1 Timotei' },
'2 Timotei': { en: '2 Timothy', ro: '2 Timotei' },
'Tit': { en: 'Titus', ro: 'Tit' },
'Filimon': { en: 'Philemon', ro: 'Filimon' },
'Evrei': { en: 'Hebrews', ro: 'Evrei' },
'Iacov': { en: 'James', ro: 'Iacov' },
'1 Petru': { en: '1 Peter', ro: '1 Petru' },
'2 Petru': { en: '2 Peter', ro: '2 Petru' },
'1 Ioan': { en: '1 John', ro: '1 Ioan' },
'2 Ioan': { en: '2 John', ro: '2 Ioan' },
'3 Ioan': { en: '3 John', ro: '3 Ioan' },
'Iuda': { en: 'Jude', ro: 'Iuda' },
'Apocalipsa': { en: 'Revelation', ro: 'Apocalipsa' }
}
export function translateBookName(bookName: string, locale: string): string {
const translation = bookTranslations[bookName]
if (translation) {
return locale === 'en' ? translation.en : translation.ro
}
// If no translation found, return the original name
return bookName
}