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