diff --git a/pom.xml b/pom.xml index 6de1f5fb7..d6f851ddb 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.crosswire jsword jar - 1.6.6-SNAPSHOT + 1.6.7-SNAPSHOT jsword http://maven.apache.org diff --git a/src/main/java/org/crosswire/jsword/versification/BibleBook.java b/src/main/java/org/crosswire/jsword/versification/BibleBook.java index 53cc4dfe0..585ac25a7 100644 --- a/src/main/java/org/crosswire/jsword/versification/BibleBook.java +++ b/src/main/java/org/crosswire/jsword/versification/BibleBook.java @@ -173,7 +173,12 @@ public enum BibleBook { // Other books ADD_DAN("AddDan"), ADD_PS("AddPs"), - ESTH_GR("EsthGr"); + ESTH_GR("EsthGr"), + // SM - Added based on Dr, David's input + MEQ1("1Meq"), + MEQ2("2Meq"), + MEQ3("3Meq"), + BAR3("3Bar"); BibleBook(String osis, boolean shortBook) { this(osis); diff --git a/src/main/java/org/crosswire/jsword/versification/BibleNames.java b/src/main/java/org/crosswire/jsword/versification/BibleNames.java index 1584009e5..828f71603 100644 --- a/src/main/java/org/crosswire/jsword/versification/BibleNames.java +++ b/src/main/java/org/crosswire/jsword/versification/BibleNames.java @@ -183,6 +183,20 @@ private NameList getBibleNamesForLocale(Locale locale) { return bibleNames; } + public String getShortBibleNameForLocale(Locale locale, String bName) { + String name = bName; + BibleBook bBk = getBook(bName); + if (bBk != null) { + NameList names = getBibleNamesForLocale(locale); + BookName bookName = names.books.get(bBk); + if (bookName != null) { + name = bookName.getShortName(); + } + } + + return name; + } + /** * This is simply a convenience function to wrap Character.isLetter() * diff --git a/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java b/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java index c857461d1..db0df431d 100644 --- a/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java +++ b/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java @@ -131,7 +131,7 @@ public class VersificationToKJVMapper { * @param mapping the mappings from one versification to another */ public VersificationToKJVMapper(Versification nonKjv, final FileVersificationMapping mapping) { - absentVerses = createEmptyPassage(KJV); + absentVerses = createEmptyPassage(KJVAPlus); toKJVMappings = new HashMap>(); fromKJVMappings = new HashMap(); this.nonKjv = nonKjv; @@ -182,7 +182,7 @@ private void processEntry(final KeyValuePair entry) throws NoSuchKeyException { // The right hand side can start with ? which means that the left maps to nothing in the KJV. // The ? leads a section name - QualifiedKey kjv = getRange(KJV, kjvHand, left.getKey()); + QualifiedKey kjv = getRange(KJVAPlus, kjvHand, left.getKey()); addMappings(left, kjv); } @@ -540,7 +540,7 @@ public List map(QualifiedKey qualifiedKey) { //then we found no mapping, so we're essentially going to return the same key back... //unless it's a verse 0 and then we'll check the global flag. kjvKeys = new ArrayList(); - kjvKeys.add(qualifiedKey.reversify(KJV)); + kjvKeys.add(qualifiedKey.reversify(KJVAPlus)); return kjvKeys; } return kjvKeys; @@ -568,7 +568,7 @@ public VerseKey unmap(final QualifiedKey kjvVerse) { if (left == null) { VerseKey vk = kjvVerse.getKey(); if (vk != null && this.absentVerses.contains(vk)) { - return createEmptyPassage(KJV); + return createEmptyPassage(KJVAPlus); } return kjvVerse.reversify(this.nonKjv).getKey(); } @@ -611,7 +611,7 @@ public void dump(PrintStream out) { List kjvVerses = entry.getValue(); String osisRef = entry.getKey().getOsisRef(); for (QualifiedKey q : kjvVerses) { - out.println(String.format("\t(%s) %s => (KJV) %s", + out.println(String.format("\t(%s) %s => (Mapper) %s", nonKjvName, osisRef, q.toString())); @@ -625,7 +625,7 @@ public void dump(PrintStream out) { out.println(" Backwards mappings from KJV"); out.println(" ******************************"); for (Map.Entry entry : this.fromKJVMappings.entrySet()) { - out.println(String.format("\t(KJV): %s => (%s) %s", + out.println(String.format("\t(Mapper): %s => (%s) %s", entry.getKey().toString(), nonKjvName, entry.getValue().getOsisRef())); @@ -659,6 +659,6 @@ private Passage createEmptyPassage(Versification versification) { private OsisParser osisParser = new OsisParser(); - private static final Versification KJV = Versifications.instance().getVersification(Versifications.DEFAULT_V11N); + private static final Versification KJVAPlus = Versifications.instance().getVersification(Versifications.KJVAPLUS_V11N); private static final Logger LOGGER = LoggerFactory.getLogger(VersificationToKJVMapper.class); } diff --git a/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java b/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java index fcc6b59e9..b6c68f263 100644 --- a/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java +++ b/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java @@ -68,7 +68,7 @@ public final class VersificationsMapper { private VersificationsMapper() { // we have no mapper for the KJV, since everything maps map to the KJV, so we'll simply add an entry // in there to avoid ever trying to load it - MAPPERS.put(KJV, null); + MAPPERS.put(KJVAPlus, null); } /** @@ -135,7 +135,7 @@ public VerseKey mapVerse(Verse v, Versification targetVersification) { // and assume that it maps directly on to the KJV, // and thereby continue with the process kjvVerses = new ArrayList(); - final Verse reversifiedVerse = v.reversify(KJV); + final Verse reversifiedVerse = v.reversify(KJVAPlus); //check that the key actually exists if(reversifiedVerse != null) { kjvVerses.add(new QualifiedKey(reversifiedVerse)); @@ -145,9 +145,9 @@ public VerseKey mapVerse(Verse v, Versification targetVersification) { kjvVerses = mapper.map(new QualifiedKey(v)); } - if (KJV.equals(targetVersification)) { + if (KJVAPlus.equals(targetVersification)) { // we're done, so simply return the key we have so far. - return getKeyFromQualifiedKeys(KJV, kjvVerses); + return getKeyFromQualifiedKeys(KJVAPlus, kjvVerses); } // we're continuing, so we need to unmap from the KJV qualified key onto @@ -256,7 +256,7 @@ private void ensure(final Versification versification) { } private static volatile VersificationsMapper instance; - private static final Versification KJV = Versifications.instance().getVersification(Versifications.DEFAULT_V11N); + private static final Versification KJVAPlus = Versifications.instance().getVersification(Versifications.KJVAPLUS_V11N); private static final Map MAPPERS = new HashMap(); private static final Logger LOGGER = LoggerFactory.getLogger(VersificationsMapper.class); } diff --git a/src/main/java/org/crosswire/jsword/versification/custom/CustomVersification.java b/src/main/java/org/crosswire/jsword/versification/custom/CustomVersification.java index 654377ac2..ba2d851a5 100644 --- a/src/main/java/org/crosswire/jsword/versification/custom/CustomVersification.java +++ b/src/main/java/org/crosswire/jsword/versification/custom/CustomVersification.java @@ -3,6 +3,9 @@ import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.ObjectMapper; import org.crosswire.common.util.CWProject; +import org.crosswire.common.util.Reporter; +import org.crosswire.jsword.JSMsg; +import org.crosswire.jsword.JSOtherMsg; import org.crosswire.jsword.book.Book; import org.crosswire.jsword.book.BookException; import org.crosswire.jsword.book.BookMetaData; @@ -49,7 +52,14 @@ public void loadFromJSON(final byte[] jsonData ) throws NoSuchKeyException, Book SystemCustomVersification.BOOKS_OT = new BibleBook[v11n.otbooks.length - 1]; SystemCustomVersification.LAST_VERSE_OT = new int[v11n.otbooks.length - 1][]; for(int i = 0; i < v11n.otbooks.length - 1; i++){ - SystemCustomVersification.BOOKS_OT[i] = BibleBook.fromOSIS(v11n.otbooks[i].osis); + BibleBook bb = BibleBook.fromOSIS(v11n.otbooks[i].osis); + if(bb == null) + { + Reporter.informUser(this, new BookException(JSMsg.gettext("Invalid OSIS name: {0}", v11n.otbooks[i].osis))); + return; + } + SystemCustomVersification.BOOKS_OT[i] = bb; + //SystemCustomVersification.BOOKS_OT[i] = BibleBook.fromOSIS(v11n.otbooks[i].osis); SystemCustomVersification.LAST_VERSE_OT[i] = new int[v11n.otbooks[i].chapmax]; System.arraycopy( v11n.vm, vmIndex, SystemCustomVersification.LAST_VERSE_OT[i], 0, v11n.otbooks[i].chapmax); vmIndex += v11n.otbooks[i].chapmax; diff --git a/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java b/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java index abe0919b6..040fa7b32 100644 --- a/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java +++ b/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java @@ -131,6 +131,22 @@ public class SystemDefault extends Versification { BibleBook.PR_MAN, BibleBook.MACC1, BibleBook.MACC2, + BibleBook.ESTH_GR, + BibleBook.PSALM_SOL, + BibleBook.MACC3, + BibleBook.MACC4, + BibleBook.ADD_PS, + BibleBook.EN1, + BibleBook.ODES, + BibleBook.MEQ1, + BibleBook.MEQ2, + BibleBook.MEQ3, + BibleBook.T12PATR, + BibleBook.JUBS, + BibleBook.BAR2, + BibleBook.BAR3, + BibleBook.BAR4, + BibleBook.EP_LAO, }; /* protected */ static final BibleBook[] BOOKS_OT = diff --git a/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java b/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java index e5d90db52..9c25ffe04 100644 --- a/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java +++ b/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java @@ -41,7 +41,7 @@ public class SystemKJV extends Versification { public static final String V11N_NAME = "KJV"; - /* protected */ static final BibleBook[] BOOKS_OT = SystemDefault.BOOKS_OTA; + /* protected */ static final BibleBook[] BOOKS_OT = SystemDefault.BOOKS_OT; /* protected */ static final BibleBook[] BOOKS_NT = SystemDefault.BOOKS_NT; @@ -278,74 +278,6 @@ public class SystemKJV extends Versification { { 14, 17, 18, 6, }, - // I Esdras - { - 58, 30, 24, 63, 73, 34, 15, 96, 55, - }, - // II Esdras - { - 40, 48, 36, 52, 56, 59, 70, 63, 47, 59, - 46, 51, 58, 48, 63, 78, - }, - // Tobit - { - 22, 14, 17, 21, 22, 17, 18, 21, 6, 12, - 19, 22, 18, 15, - }, - // Judith - { - 16, 28, 10, 15, 24, 21, 32, 36, 14, 23, - 23, 20, 20, 19, 13, 25, - }, - // Additions to Esther - { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, - 12, 6, 18, 19, 16, 24, - }, - // Wisdom - { - 16, 24, 19, 20, 23, 25, 30, 21, 18, 21, - 26, 27, 19, 31, 19, 29, 21, 25, 22, - }, - // Sirach - { - 30, 18, 31, 31, 15, 37, 36, 19, 18, 31, - 34, 18, 26, 27, 20, 30, 32, 33, 30, 32, - 28, 27, 28, 34, 26, 29, 30, 26, 28, 25, - 31, 24, 31, 26, 20, 26, 31, 34, 35, 30, - 24, 25, 33, 22, 26, 20, 25, 25, 16, 29, - 30, - }, - // Baruch - { - 22, 35, 37, 37, 9, 73, - }, - // Prayer of Azariah - { - 68, - }, - // Susanna - { - 64, - }, - // Bel and the Dragon - { - 42, - }, - // Prayer of Manasses - { - 1, - }, - // I Maccabees - { - 64, 70, 60, 61, 68, 63, 50, 32, 73, 89, - 74, 53, 53, 49, 41, 24, - }, - // II Maccabees - { - 36, 32, 40, 50, 27, 31, 42, 36, 29, 38, - 38, 45, 26, 46, 39, - }, }; diff --git a/src/main/java/org/crosswire/jsword/versification/system/SystemKJVAPlus.java b/src/main/java/org/crosswire/jsword/versification/system/SystemKJVAPlus.java new file mode 100644 index 000000000..26af686c9 --- /dev/null +++ b/src/main/java/org/crosswire/jsword/versification/system/SystemKJVAPlus.java @@ -0,0 +1,562 @@ +package org.crosswire.jsword.versification.system; + +import org.crosswire.jsword.versification.BibleBook; +import org.crosswire.jsword.versification.Versification; + +/** + * The Mapper versification is a special versification used only for the mapping logic + * Originally, the mapper used KJV versification which does not include the apocrypha + * This mapper includes most of the apocryphal books. + * + * @see gnu.lgpl.License for license details.
v + * The copyright to this program is held by it's authors. + * @author DM Smith + */ +public class SystemKJVAPlus extends Versification { + /** + * Build the "Mapper" Versification. + */ + /* protected */ SystemKJVAPlus() { + super(V11N_NAME, BOOKS_OT, BOOKS_NT, LAST_VERSE_OT, LAST_VERSE_NT); + } + + public static final String V11N_NAME = "KJVAPlus"; + + /* protected */ static final BibleBook[] BOOKS_OT = SystemDefault.BOOKS_OTA; + + /* protected */ static final BibleBook[] BOOKS_NT = SystemDefault.BOOKS_NT; + + /** Constant for the max verse number in each chapter */ + /* protected */ static final int[][] LAST_VERSE_OT = + { + // Genesis + { + 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, + 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, + 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, + 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, + 57, 38, 34, 34, 28, 34, 31, 22, 33, 26, + }, + // Exodus + { + 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, + 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, + 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, + 18, 35, 23, 35, 35, 38, 29, 31, 43, 38, + }, + // Leviticus + { + 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, + 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, + 24, 33, 44, 23, 55, 46, 34, + }, + // Numbers + { + 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, + 35, 16, 33, 45, 41, 50, 13, 32, 22, 29, + 35, 41, 30, 25, 18, 65, 23, 31, 40, 16, + 54, 42, 56, 29, 34, 13, + }, + // Deuteronomy + { + 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, + 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, + 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, + 30, 52, 29, 12, + }, + // Joshua + { + 18, 24, 17, 24, 15, 27, 26, 35, 27, 43, + 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, + 45, 34, 16, 33, + }, + // Judges + { + 36, 23, 31, 24, 31, 40, 25, 35, 57, 18, + 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, + 25, + }, + // Ruth + { + 22, 23, 18, 22, + }, + // I Samuel + { + 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, + 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, + 15, 23, 29, 22, 44, 25, 12, 25, 11, 31, + 13, + }, + // II Samuel + { + 27, 32, 39, 12, 25, 23, 29, 18, 13, 19, + 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, + 22, 51, 39, 25, + }, + // I Kings + { + 53, 46, 28, 34, 18, 38, 51, 66, 28, 29, + 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, + 29, 53, + }, + // II Kings + { + 18, 25, 27, 44, 27, 33, 20, 29, 37, 36, + 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, + 26, 20, 37, 20, 30, + }, + // I Chronicles + { + 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, + 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, + 30, 19, 32, 31, 31, 32, 34, 21, 30, + }, + // II Chronicles + { + 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, + 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, + 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, + 21, 33, 25, 33, 27, 23, + }, + // Ezra + { + 11, 70, 13, 24, 17, 22, 28, 36, 15, 44, + }, + // Nehemiah + { + 11, 20, 32, 23, 19, 19, 73, 18, 38, 39, + 36, 47, 31, + }, + // Esther + { + 22, 23, 15, 17, 14, 14, 10, 17, 32, 3, + }, + // Job + { + 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, + 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, + 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, + 40, 22, 33, 37, 16, 33, 24, 41, 30, 24, + 34, 17, + }, + // Psalms + { + 6, 12, 8, 8, 12, 10, 17, 9, 20, 18, + 7, 8, 6, 7, 5, 11, 15, 50, 14, 9, + 13, 31, 6, 10, 22, 12, 14, 9, 11, 12, + 24, 11, 22, 22, 28, 12, 40, 22, 13, 17, + 13, 11, 5, 26, 17, 11, 9, 14, 20, 23, + 19, 9, 6, 7, 23, 13, 11, 11, 17, 12, + 8, 12, 11, 10, 13, 20, 7, 35, 36, 5, + 24, 20, 28, 23, 10, 12, 20, 72, 13, 19, + 16, 8, 18, 12, 13, 17, 7, 18, 52, 17, + 16, 15, 5, 23, 11, 13, 12, 9, 9, 5, + 8, 28, 22, 35, 45, 48, 43, 13, 31, 7, + 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, + 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, + 3, 18, 3, 3, 21, 26, 9, 8, 24, 13, + 10, 7, 12, 15, 21, 10, 20, 14, 9, 6, + }, + // Proverbs + { + 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, + 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, + 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, + 31, + }, + // Ecclesiastes + { + 18, 26, 22, 16, 20, 12, 29, 17, 18, 20, + 10, 14, + }, + // Song of Solomon + { + 17, 17, 11, 16, 16, 13, 13, 14, + }, + // Isaiah + { + 31, 22, 26, 6, 30, 13, 25, 22, 21, 34, + 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, + 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, + 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, + 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, + 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, + 11, 12, 19, 12, 25, 24, + }, + // Jeremiah + { + 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, + 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, + 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, + 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, + 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, + 64, 34, + }, + // Lamentations + { + 22, 22, 66, 22, 22, + }, + // Ezekiel + { + 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, + 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, + 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, + 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, + 26, 20, 27, 31, 25, 24, 23, 35, + }, + // Daniel + { + 21, 49, 30, 37, 31, 28, 28, 27, 27, 21, + 45, 13, + }, + // Hosea + { + 11, 23, 5, 19, 15, 11, 16, 14, 17, 15, + 12, 14, 16, 9, + }, + // Joel + { + 20, 32, 21, + }, + // Amos + { + 15, 16, 15, 13, 27, 14, 17, 14, 15, + }, + // Obadiah + { + 21, + }, + // Jonah + { + 17, 10, 10, 11, + }, + // Micah + { + 16, 13, 12, 13, 15, 16, 20, + }, + // Nahum + { + 15, 13, 19, + }, + // Habakkuk + { + 17, 20, 19, + }, + // Zephaniah + { + 18, 15, 20, + }, + // Haggai + { + 15, 23, + }, + // Zechariah + { + 21, 13, 10, 14, 11, 15, 14, 23, 17, 12, + 17, 14, 9, 21, + }, + // Malachi + { + 14, 17, 18, 6, + }, + // I Esdras + { + 58, 30, 24, 63, 73, 34, 15, 96, 55, + }, + // II Esdras + { + 40, 48, 36, 52, 56, 59, 70, 63, 47, 59, + 46, 51, 58, 48, 63, 78, + }, + // Tobit + { + 22, 14, 17, 21, 22, 17, 18, 21, 6, 12, + 19, 22, 18, 15, + }, + // Judith + { + 16, 28, 10, 15, 24, 21, 32, 36, 14, 23, + 23, 20, 20, 19, 13, 25, + }, + // Additions to Esther + { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, + 12, 6, 18, 19, 16, 24, + }, + // Wisdom + { + 16, 24, 19, 20, 23, 25, 30, 21, 18, 21, + 26, 27, 19, 31, 19, 29, 21, 25, 22, + }, + // Sirach + { + 30, 18, 31, 31, 15, 37, 36, 19, 18, 31, + 34, 18, 26, 27, 20, 30, 32, 33, 30, 32, + 28, 27, 28, 34, 26, 29, 30, 26, 28, 25, + 31, 24, 31, 26, 20, 26, 31, 34, 35, 30, + 24, 25, 33, 22, 26, 20, 25, 25, 16, 29, + 30, + }, + // Baruch + { + 22, 35, 37, 37, 9, 73, + }, + // Prayer of Azariah + { + 68, + }, + // Susanna + { + 64, + }, + // Bel and the Dragon + { + 42, + }, + // Prayer of Manasses + { + 1, + }, + // I Maccabees + { + 64, 70, 60, 61, 68, 63, 50, 32, 73, 89, + 74, 53, 53, 49, 41, 24, + }, + // II Maccabees + { + 36, 32, 40, 50, 27, 31, 42, 36, 29, 38, + 38, 45, 26, 46, 39, + }, + // Greek Esther + { + 22, 23, 15, 17, 14, 14, 10, 17, 32, 13, + 12, 6, 18, 19, 16, 24, + }, + // Psalms of Solomon + { + 8, 37, 12, 25, 19, 6, 10, 34, 11, 8, + 9, 6, 12, 10, 13, 15, 46, 12, + }, + // III Maccabees + { + 29, 33, 30, 21, 51, 41, 23, + }, + // IV Maccabees + { + 35, 24, 21, 26, 38, 35, 23, 29, 32, 21, + 27, 19, 27, 20, 32, 25, 24, 24, + }, + // Additional Psalms + { + 7, 6, 6, 20, 21, + }, + // 1 Enoch + { + 9, 3, 9, 1, 10, 8, 6, 4, 11, 22, + 2, 6, 10, 25, 12, 4, 8, 16, 3, 8, + 10, 14, 4, 6, 7, 6, 5, 3, 2, 3, + 3, 6, 4, 3, 1, 4, 6, 6, 14, 10, + 9, 3, 4, 1, 6, 8, 4, 10, 4, 5, + 5, 9, 7, 10, 4, 8, 3, 6, 3, 25, + 13, 16, 12, 2, 12, 3, 13, 5, 30, 4, + 17, 37, 8, 17, 9, 14, 9, 17, 6, 8, + 10, 20, 11, 6, 10, 6, 4, 3, 77, 43, + 19, 17, 14, 11, 7, 8, 10, 16, 16, 13, + 9, 11, 15, 13, 2, 19, 3, 15, + }, + // Odes + { + 19, 43, 10, 20, 20, 19, 45, 88, 79, 88, + 55, 32, 79, 46, + }, + // 1 Meqabyan + { + 28, 28, 38, 37, 39, 38, 33, 35, 10, 8, + 8, 44, 27, 23, 20, 9, 8, 12, 17, 4, + 31, 10, 7, 22, 18, 5, 20, 49, 17, 16, + 7, 4, 11, 18, 8, 46, + }, + // 2 Meqabyan + { + 13, 11, 29, 32, 18, 24, 8, 24, 27, 28, + 25, 15, 14, 36, 21, 15, 12, 14, 15, 14, + 28, + }, + // 3 Meqabyan + { + 24, 23, 11, 36, 16, 16, 5, 12, 36, + 29, + }, + // Testament of 12 Patriarchs + { + 7, 9, 19, 26, 7, 10, 7, 9, 8, 8, + 20, 12, + }, + // Jubilees + { + 29, 33, 35, 33, 32, 38, 39, 30, 14, 36, + 24, 31, 29, 24, 34, 31, 18, 19, 31, 13, + 26, 30, 32, 33, 23, 35, 27, 30, 20, 26, + 32, 34, 23, 21, 27, 24, 25, 24, 18, 13, + 28, 25, 24, 34, 16, 16, 12, 19, 23, 13 + }, + // 2 Baruch + { + 5, 1, 9, 7, 7, 9, 1, 5, 2, 19, + 7, 5, 12, 19, 8, 1, 4, 2, 8, 6, + 26, 8, 7, 4, 4, 1, 15, 7, 8, 5, + 5, 9, 3, 1, 4, 11, 1, 4, 8, 4, + 6, 8, 3, 15, 2, 7, 2, 50, 3, 4, + 16, 7, 12, 22, 8, 16, 3, 2, 12, 2, + 8, 8, 11, 10, 2, 8, 9, 8, 5, 10, + 2, 6, 7, 4, 8, 5, 26, 7, 4, 7, + 4, 9, 23, 11, 15, 1, 1, + }, + // 3 Baruch + { + 10, 7, 8, 17, 3, 16, 6, 7, 8, 9, + 9, 8, 5, 2, 4, 8, 4, + }, + // 4 Baruch + { + 12, 10, 22, 12, 35, 25, 37, 12, 32, + }, + // Epistle to Laodicea + { + 20, + }, + }; + + + /* protected */ static final int[][] LAST_VERSE_NT = + { + // Matthew + { + 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, + 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, + 46, 46, 39, 51, 46, 75, 66, 20, + }, + // Mark + { + 45, 28, 35, 41, 43, 56, 37, 38, 50, 52, + 33, 44, 37, 72, 47, 20, + }, + // Luke + { + 80, 52, 38, 44, 39, 49, 50, 56, 62, 42, + 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, + 38, 71, 56, 53, + }, + // John + { + 51, 25, 36, 54, 47, 71, 53, 59, 41, 42, + 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, + 25, + }, + // Acts + { + 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, + 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, + 40, 30, 35, 27, 27, 32, 44, 31, + }, + // Romans + { + 32, 29, 31, 25, 21, 23, 25, 39, 33, 21, + 36, 21, 14, 23, 33, 27, + }, + // I Corinthians + { + 31, 16, 23, 21, 13, 20, 40, 13, 27, 33, + 34, 31, 13, 40, 58, 24, + }, + // II Corinthians + { + 24, 17, 18, 18, 21, 18, 16, 24, 15, 18, + 33, 21, 14, + }, + // Galatians + { + 24, 21, 29, 31, 26, 18, + }, + // Ephesians + { + 23, 22, 21, 32, 33, 24, + }, + // Philippians + { + 30, 30, 21, 23, + }, + // Colossians + { + 29, 23, 25, 18, + }, + // I Thessalonians + { + 10, 20, 13, 18, 28, + }, + // II Thessalonians + { + 12, 17, 18, + }, + // I Timothy + { + 20, 15, 16, 16, 25, 21, + }, + // II Timothy + { + 18, 26, 17, 22, + }, + // Titus + { + 16, 15, 15, + }, + // Philemon + { + 25, + }, + // Hebrews + { + 14, 18, 19, 16, 14, 20, 28, 13, 28, 39, + 40, 29, 25, + }, + // James + { + 27, 26, 18, 17, 20, + }, + // I Peter + { + 25, 25, 22, 19, 14, + }, + // II Peter + { + 21, 22, 18, + }, + // I John + { + 10, 29, 24, 21, 21, + }, + // II John + { + 13, + }, + // III John + { + 14, + }, + // Jude + { + 25, + }, + // Revelation of John + { + 20, 29, 22, 11, 14, 17, 17, 13, 21, 11, + 19, 17, 18, 20, 8, 21, 18, 24, 21, 15, + 27, 21, + }, + }; + + /** + * Serialization ID + */ + private static final long serialVersionUID = 3365882007485277008L; +} diff --git a/src/main/java/org/crosswire/jsword/versification/system/Versifications.java b/src/main/java/org/crosswire/jsword/versification/system/Versifications.java index df668747a..1df17533d 100644 --- a/src/main/java/org/crosswire/jsword/versification/system/Versifications.java +++ b/src/main/java/org/crosswire/jsword/versification/system/Versifications.java @@ -43,6 +43,7 @@ public final class Versifications { * This is subject to change at any time. */ public static final String DEFAULT_V11N = SystemKJV.V11N_NAME; + public static final String KJVAPLUS_V11N = SystemKJVAPlus.V11N_NAME; /** * Get the singleton instance of Versifications. @@ -148,6 +149,9 @@ private Versification fluff(String name) { if (SystemVulg.V11N_NAME.equals(name)) { return new SystemVulg(); } + if (SystemKJVAPlus.V11N_NAME.equals(name)) { + return new SystemVulg(); + } return null; } @@ -204,6 +208,7 @@ private Versifications() { known.add(SystemSynodal.V11N_NAME); known.add(SystemSynodalProt.V11N_NAME); known.add(SystemVulg.V11N_NAME); + known.add(SystemKJVAPlus.V11N_NAME); fluffed = new HashMap(); } diff --git a/src/main/resources/BibleNames.properties b/src/main/resources/BibleNames.properties index 9ec03b1ac..9191c569c 100644 --- a/src/main/resources/BibleNames.properties +++ b/src/main/resources/BibleNames.properties @@ -410,7 +410,19 @@ AddPs.Alt= EsthGr.Full=Esther (Greek) EsthGr.Short=EsthGr EsthGr.Alt= - +// SM Added for Mapping +1Meq.Full= 1 Meqabyan +1Meq.Short= 1 Meq +1Meq.Alt= +2Meq.Full= 2 Meqabyan +2Meq.Short= 2 Meq +2Meq.Alt= +3Meq.Full= 3 Meqabyan +3Meq.Short= 3 Meq +3Meq.Alt= +3Bar.Full= 3 Baruch +3Bar.Short= 3 Bar +3Bar.Alt= # Introduction titles for the book as a whole, the OT and the NT. Intro.Bible.Full=Bible Introduction diff --git a/src/main/resources/BibleNames_ar.properties b/src/main/resources/BibleNames_ar.properties index 693e121f2..9137cb67e 100644 --- a/src/main/resources/BibleNames_ar.properties +++ b/src/main/resources/BibleNames_ar.properties @@ -42,10 +42,10 @@ Judg.Alt = Ruth.Full = \u0631\u0627\u0639\u0648\u062B Ruth.Short = \u0631\u0627 Ruth.Alt = -1Sam.Full = \u0635\u0645\u0648\u0627\u0626\u064A\u0644 \u0627\u0644\u0627\u0648\u0644 +1Sam.Full = \u0635\u0645\u0648\u0626\u064A\u0644 \u0627\u0644\u0627\u0648\u0644 1Sam.Short = \u0661\u0635\u0645 1Sam.Alt = -2Sam.Full = \u0635\u0645\u0648\u0627\u0626\u064A\u0644 \u0627\u0644\u062B\u0627\u0646\u064A +2Sam.Full = \u0635\u0645\u0648\u0626\u064A\u0644 \u0627\u0644\u062B\u0627\u0646\u064A 2Sam.Short = \u0662\u0635\u0645 2Sam.Alt = 1Kgs.Full = \u0645\u0644\u0648\u0643 \u0627\u0644\u0627\u0648\u0644 diff --git a/src/main/resources/BibleNames_he.properties b/src/main/resources/BibleNames_he.properties index 3d27744c1..1bcd0b206 100644 --- a/src/main/resources/BibleNames_he.properties +++ b/src/main/resources/BibleNames_he.properties @@ -156,10 +156,10 @@ Rom.Full = \u05D0\u05DC \u05D4\u05E8\u05D5\u05DE\u05D9\u05D9\u05DD Rom.Short = \u05E8\u05D5\u05DE Rom.Alt = 1Cor.Full = \u05D4\u05E8\u05D0\u05E9\u05D5\u05E0\u05D4 \u05DC\u05E7\u05D5\u05E8\u05D9\u05E0\u05EA\u05D9\u05D9\u05DD -1Cor.Short = \u05E7\u05D5\u05E81 +1Cor.Short = \u05E7\u05D5\u05E8.\u05D0 1Cor.Alt = 2Cor.Full = \u05D4\u05E9\u05E0\u05D9\u05D4 \u05DC\u05E7\u05D5\u05E8\u05D9\u05E0\u05EA\u05D9\u05D9\u05DD -2Cor.Short = \u05E7\u05D5\u05E82 +2Cor.Short = \u05E7\u05D5\u05E8.\u05D1 2Cor.Alt = Gal.Full = \u05D0\u05DC \u05D4\u05D2\u05DC\u05D8\u05D9\u05D9\u05DD Gal.Short = \u05D2\u05DC\u05D8\u05D9\u05DD @@ -174,16 +174,16 @@ Col.Full = \u05D0\u05DC \u05D4\u05E7\u05D5\u05DC\u05E1\u05D9\u05D9\u05DD Col.Short = \u05E7\u05D5\u05DC\u05E1 Col.Alt = 1Thess.Full = \u05D4\u05E8\u05D0\u05E9\u05D5\u05E0\u05D4 \u05DC\u05EA\u05E1\u05DC\u05D5\u05E0\u05D9\u05E7\u05D9\u05DD -1Thess.Short = \u05EA\u05E11 +1Thess.Short = \u05EA\u05E1.\u05D0 1Thess.Alt = 2Thess.Full = \u05D4\u05E9\u05E0\u05D9\u05D4 \u05DC\u05EA\u05E1\u05DC\u05D5\u05E0\u05D9\u05E7\u05D9\u05DD -2Thess.Short = \u05EA\u05E12 +2Thess.Short = \u05EA\u05E1.\u05D1 2Thess.Alt = 1Tim.Full = \u05D4\u05E8\u05D0\u05E9\u05D5\u05E0\u05D4 \u05DC\u05D8\u05D9\u05DE\u05D5\u05EA\u05D9\u05D5\u05E1 -1Tim.Short = \u05D8\u05D9\u05DE1 +1Tim.Short = \u05D8\u05D9\u05DE.\u05D0 1Tim.Alt = 2Tim.Full = \u05D4\u05E9\u05E0\u05D9\u05D4 \u05DC\u05D8\u05D9\u05DE\u05D5\u05EA\u05D9\u05D5\u05E1 -2Tim.Short = \u05D8\u05D9\u05DE2 +2Tim.Short = \u05D8\u05D9\u05DE.\u05D1 2Tim.Alt = Titus.Full = \u05D8\u05D9\u05D8\u05D5\u05E1 Titus.Short = \u05D8\u05D9\u05D8\u05D5\u05E1 @@ -198,19 +198,19 @@ Jas.Full = \u05D9\u05E2\u05E7\u05D1 Jas.Short = \u05D9\u05E2\u05E7\u05D1 Jas.Alt = 1Pet.Full = \u05D4\u05E8\u05D0\u05E9\u05D5\u05E0\u05D4 \u05DC\u05E4\u05D8\u05E8\u05D5\u05E1 -1Pet.Short = \u05E4\u05D8\u05E81 +1Pet.Short = \u05E4\u05D8\u05E8.\u05D0 1Pet.Alt = 2Pet.Full = \u05D4\u05E9\u05E0\u05D9\u05D4 \u05DC\u05E4\u05D8\u05E8\u05D5\u05E1 -2Pet.Short = \u05E4\u05D8\u05E82 +2Pet.Short = \u05E4\u05D8\u05E8.\u05D1 2Pet.Alt = 1John.Full = \u05D4\u05E8\u05D0\u05E9\u05D5\u05E0\u05D4 \u05DC\u05D9\u05D5\u05D7\u05E0\u05DF -1John.Short = \u05D9\u05D5\u05D71 +1John.Short = \u05D9\u05D5\u05D7.\u05D0 1John.Alt = 2John.Full = \u05D4\u05E9\u05E0\u05D9\u05D4 \u05DC\u05D9\u05D5\u05D7\u05E0\u05DF -2John.Short = \u05D9\u05D5\u05D72 +2John.Short = \u05D9\u05D5\u05D7.\u05D1 2John.Alt = 3John.Full = \u05D4\u05E9\u05DC\u05D9\u05E9\u05D9\u05EA \u05DC\u05D9\u05D5\u05D7\u05E0\u05DF -3John.Short = \u05D9\u05D5\u05D73 +3John.Short = \u05D9\u05D5\u05D7.\u05D2 3John.Alt = Jude.Full = \u05D0\u05D2\u05E8\u05EA \u05D9\u05D4\u05D5\u05D3\u05D4 Jude.Short = \u05D9\u05D4\u05D5\u05D3\u05D4