Documentation

Supported file formats

The five Bible file formats ScriptureCaster imports, what each looks like, and how books, verses and footnotes are handled.

The five

Format Extension Shape
JSON .json 66 books in canonical order, each with a list of chapters, each a list of verses
Zefania .xml <BIBLEBOOK bnumber="1"><CHAPTER cnumber="1"><VERS vnumber="1">
OSIS .xml .osis Both encodings — container verses and milestone verses
USFM folder or zip of .usfm .sfm One file per book, so the whole set together is one translation
SoftProjector .spb Tab-separated text: a header, a book table, then B001C001V001 rows

All five reduce to the same thing internally: one verse per book, chapter and verse number.

How books are matched

By OSIS id (Gen), Paratext/USFM id (GEN, 1KI), the book’s name in either language (Geneza, Genesis), or its number. So a file that labels books any of those ways imports without editing.

What is dropped

Footnotes, cross references and study notes are stripped on the way in. This is a projector — a footnote marker on the wall helps nobody.

Verse ranges (\v 1-2) land on the first number.

Naming a file

<language>_<name> is the convention: ro_cornilescu.json, en_kjv.zip. The language part can be a 2- or 3-letter code, or the language’s own name — Romanian_Cornilescu.spb is understood too, which is how modules from other projection software are usually labelled.

A .spb file names itself: its own title and copyright note are read from the file header and used in preference to anything the filename says.

Sanity checks on import

  • A file with fewer than 100 verses is not treated as a Bible — it stops a stray XML becoming a translation.
  • A single USFM file is one book, not a Bible; put the whole set in a folder or a zip.
  • Files that cannot be read are reported by name and skipped; the others still import.

Where things end up

Everything imports into one database file in data\. Copy that file to another machine and it has the same translations without downloading anything.