[jsword-svn] r1995 - in trunk/jsword: .settings src/main/java/org/crosswire/jsword/book src/main/java/org/crosswire/jsword/book/basic src/main/java/org/crosswire/jsword/book/filter src/main/java/org/crosswire/jsword/book/filter/gbf src/main/java/org/crosswire/jsword/book/filter/osis src/main/java/org/crosswire/jsword/book/filter/thml src/main/java/org/crosswire/jsword/book/install src/main/java/org/crosswire/jsword/book/install/sword src/main/java/org/crosswire/jsword/book/readings src/main/java/org/crosswire/jsword/book/study src/main/java/org/crosswire/jsword/book/sword src/main/java/org/crosswire/jsword/bridge src/main/java/org/crosswire/jsword/examples src/main/java/org/crosswire/jsword/index src/main/java/org/crosswire/jsword/index/lucene src/main/java/org/crosswire/jsword/index/lucene/analysis src/main/java/org/crosswire/jsword/index/query src/main/java/org/crosswire/jsword/index/search src/main/java/org/crosswire/jsword/passage src/main/java/org/crosswire/jsword/util src/main/java/org/crosswire/jsword/versification src/test/java src/test/java/org/crosswire/jsword/book src/test/java/org/crosswire/jsword/book/sword src/test/java/org/crosswire/jsword/book/test src/test/java/org/crosswire/jsword/bridge src/test/java/org/crosswire/jsword/index/lucene/analysis src/test/java/org/crosswire/jsword/passage

dmsmith at crosswire.org dmsmith at crosswire.org
Sat Oct 23 13:39:04 MST 2010


Author: dmsmith
Date: 2010-10-23 13:39:04 -0700 (Sat, 23 Oct 2010)
New Revision: 1995

Added:
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_vi.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_zh.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_zh_CN.properties
Removed:
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_fa.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_in.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_vi.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_zh.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_zh_CN.properties
Modified:
   trunk/jsword/.settings/org.eclipse.jdt.core.prefs
   trunk/jsword/src/main/java/org/crosswire/jsword/book/BookCategory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/BookData.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/BookException.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/BookFilters.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/BookMetaData.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/BookmarkFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/Books.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/CaseType.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/DataPolice.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/DefaultBook.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/Defaults.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/FeatureType.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/KeyType.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/OSISUtil.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/SentenceUtil.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_de.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_fa.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_in.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_vi.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_zh.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_zh_CN.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/AbstractBookMetaData.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/AbstractPassageBook.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/DefaultBookMetaData.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/Msg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/FilterFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Msg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFFilter.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFTagBuilders.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFTags.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/Msg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/OSISFilter.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ATag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/AbbrTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BigTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BlockquoteTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BrTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CenterTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CitationTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CustomHandler.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/DivTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/FontTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ForeignTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/HTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/HrTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ITag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ImgTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/LTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/LiTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/NameTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/NoteTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/OlTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/PTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/PbTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/QTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/RootTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/STag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ScripRefTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ScriptureTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SmallTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SubTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SupTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SyncTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/THMLFilter.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TableTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TdTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TermTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ThTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TrTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TtTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/UTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/UlTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/VerseTag.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/InstallException.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/InstallManager.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/AbstractSwordInstaller.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/HttpSwordInstaller.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/HttpSwordInstallerFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_fa.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_in.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_zh.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_zh_CN.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/UserMsg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/UserMsg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsBook.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsBookDriver.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsKey.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_fa.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_in.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_zh.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_zh_CN.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/study/StrongsNumber.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/study/UserMsg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/study/UserMsg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/AbstractBackend.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/BlockType.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/BookType.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntry.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntryTable.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntryType.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/DataEntry.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/GenBookBackend.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawBackend.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawFileBackend.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawLDBackend.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBook.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookDriver.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookMetaData.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookPath.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordConstants.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordGenBook.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordUtil.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeKeyIndex.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeNode.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg_fa.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg_in.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ZLDBackend.java
   trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ZVerseBackend.java
   trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BibleScope.java
   trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookExporter.java
   trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookIndexer.java
   trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookInstaller.java
   trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookLookup.java
   trunk/jsword/src/main/java/org/crosswire/jsword/bridge/DwrBridge.java
   trunk/jsword/src/main/java/org/crosswire/jsword/examples/APIExamples.java
   trunk/jsword/src/main/java/org/crosswire/jsword/examples/BibleToOsis.java
   trunk/jsword/src/main/java/org/crosswire/jsword/examples/DictToOsis.java
   trunk/jsword/src/main/java/org/crosswire/jsword/examples/StrongsAnalysis.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/IndexManagerFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/IndexStatus.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/IndexMetadata.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneIndex.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneIndexManager.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneQueryBuilder.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneQueryDecorator.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/UserMsg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/UserMsg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/AbstractBookAnalyzer.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/AnalyzerFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/ConfigurableSnowballAnalyzer.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/query/QueryBuilderFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/query/QueryDecoratorFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/query/RangeQuery.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_de.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_fa.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_in.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/index/search/SearchType.java
   trunk/jsword/src/main/java/org/crosswire/jsword/index/search/SearcherFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractPassage.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/AccuracyType.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/DefaultKeyList.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/KeyUtil.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg_in.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/NoSuchKeyException.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/NoSuchVerseException.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageKeyFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageListType.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageTally.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageType.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/RestrictionType.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/SetKeyList.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/TreeKey.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_de.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_fa.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_in.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/Verse.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRange.java
   trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRangeFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/util/ConverterFactory.java
   trunk/jsword/src/main/java/org/crosswire/jsword/util/IndexDownloader.java
   trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg_in.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_de.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_fa.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_in.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_vi.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_zh.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_zh_CN.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/util/WebWarning.java
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleInfo.java
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames.java
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames_zh.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames_zh_CN.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/BookName.java
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/Msg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/Msg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/OSISNames.java
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames.java
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg.java
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_fa.properties
   trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_in.properties
   trunk/jsword/src/test/java/Bench.java
   trunk/jsword/src/test/java/org/crosswire/jsword/book/BooksTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/book/GatherAllReferences.java
   trunk/jsword/src/test/java/org/crosswire/jsword/book/OsisTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/book/ReadEverything.java
   trunk/jsword/src/test/java/org/crosswire/jsword/book/SentanceUtilTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/ConfigEntryTableTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/RawFileBackendTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/SwordBookMetaDataTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/book/test/Speed.java
   trunk/jsword/src/test/java/org/crosswire/jsword/bridge/DwrBridgeTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/AnalyzerFactoryTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ChineseLuceneAnalyzerTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ConfigurableSnowballAnalyzerTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/EnglishLuceneAnalyzerTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/GreekLuceneAnalyzerTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ThaiLuceneAnalyzerTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/passage/AccuracyTypeTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/passage/BibleInfoTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/passage/FixturePassageListener.java
   trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageParentTst.java
   trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageTally2Test.java
   trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageUtilTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseRangeTest.java
   trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseTest.java
Log:
remove NON-NLS comments
Start a new methodology for messages. Goal is a single file per jar for translation. It will take a while.

Modified: trunk/jsword/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- trunk/jsword/.settings/org.eclipse.jdt.core.prefs	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/.settings/org.eclipse.jdt.core.prefs	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,4 +1,4 @@
-#Thu Oct 29 08:52:55 EDT 2009
+#Sun Jan 24 00:15:57 EST 2010
 eclipse.preferences.version=1
 org.eclipse.jdt.core.builder.cleanOutputFolder=clean
 org.eclipse.jdt.core.builder.duplicateResourceTask=warning
@@ -27,12 +27,16 @@
 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.autoboxing=warning
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
 org.eclipse.jdt.core.compiler.problem.deprecation=warning
 org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
 org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
 org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
 org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
@@ -48,6 +52,7 @@
 org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
 org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
 org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
 org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
 org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
@@ -56,13 +61,18 @@
 org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
 org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
 org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
 org.eclipse.jdt.core.compiler.problem.nullReference=warning
 org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
 org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning
 org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
 org.eclipse.jdt.core.compiler.problem.suppressWarnings=disabled
@@ -76,13 +86,18 @@
 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
 org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
 org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
 org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
 org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
 org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
 org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.4
 org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/BookCategory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/BookCategory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/BookCategory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -23,8 +23,6 @@
 
 import java.io.Serializable;
 
-import org.crosswire.common.util.MsgBase;
-
 /**
  * An Enumeration of the possible types of Book.
  *
@@ -34,68 +32,46 @@
  * @author DM Smith [dmsmith555 at yahoo dot com]
  */
 public final class BookCategory implements Serializable, Comparable {
-    /**
-     * Books that are Bibles
-     */
-    public static final BookCategory BIBLE = new BookCategory("Biblical Texts", UserMsg.BIBLE); //$NON-NLS-1$
+    /** Books that are Bibles */
+    public static final BookCategory BIBLE = new BookCategory("Biblical Texts", UserMsg.gettext("Biblical Texts"));
 
-    /**
-     * Books that are Dictionaries
-     */
-    public static final BookCategory DICTIONARY = new BookCategory("Lexicons / Dictionaries", UserMsg.DICTIONARY); //$NON-NLS-1$
+    /** Books that are Dictionaries */
+    public static final BookCategory DICTIONARY = new BookCategory("Lexicons / Dictionaries", UserMsg.gettext("Dictionaries"));
 
-    /**
-     * Books that are Commentaries
-     */
-    public static final BookCategory COMMENTARY = new BookCategory("Commentaries", UserMsg.COMMENTARY); //$NON-NLS-1$
+    /** Books that are Commentaries */
+    public static final BookCategory COMMENTARY = new BookCategory("Commentaries", UserMsg.gettext("Commentaries"));
 
-    /**
-     * Books that are indexed by day. AKA, Daily Devotions
-     */
-    public static final BookCategory DAILY_DEVOTIONS = new BookCategory("Daily Devotional", UserMsg.READINGS); //$NON-NLS-1$
+    /** Books that are indexed by day. AKA, Daily Devotions */
+    public static final BookCategory DAILY_DEVOTIONS = new BookCategory("Daily Devotional", UserMsg.gettext("Daily Devotionals"));
 
-    /**
-     * Books that map words from one language to another.
-     */
-    public static final BookCategory GLOSSARY = new BookCategory("Glossaries", UserMsg.GLOSSARIES); //$NON-NLS-1$
+    /** Books that map words from one language to another. */
+    public static final BookCategory GLOSSARY = new BookCategory("Glossaries", UserMsg.gettext("Glossaries"));
 
-    /**
-     * Books that are questionable.
-     */
-    public static final BookCategory QUESTIONABLE = new BookCategory("Cults / Unorthodox / Questionable Material", UserMsg.UNORTHODOX); //$NON-NLS-1$
+    /** Books that are questionable. */
+    public static final BookCategory QUESTIONABLE = new BookCategory("Cults / Unorthodox / Questionable Material", UserMsg.gettext("Cults / Unorthodox / Questionable Materials"));
 
-    /**
-     * Books that are just essays.
-     */
-    public static final BookCategory ESSAYS = new BookCategory("Essays", UserMsg.ESSAYS); //$NON-NLS-1$
+    /** Books that are just essays. */
+    public static final BookCategory ESSAYS = new BookCategory("Essays", UserMsg.gettext("Essays"));
 
-    /**
-     * Books that are predominately images.
-     */
-    public static final BookCategory IMAGES = new BookCategory("Images", UserMsg.IMAGES); //$NON-NLS-1$
+    /** Books that are predominately images. */
+    public static final BookCategory IMAGES = new BookCategory("Images", UserMsg.gettext("Images"));
 
-    /**
-     * Books that are a collection of maps.
-     */
-    public static final BookCategory MAPS = new BookCategory("Maps", UserMsg.MAPS); //$NON-NLS-1$
+    /** Books that are a collection of maps. */
+    public static final BookCategory MAPS = new BookCategory("Maps", UserMsg.gettext("Maps"));
 
-    /**
-     * Books that are just books.
-     */
-    public static final BookCategory GENERAL_BOOK = new BookCategory("Generic Books", UserMsg.GENERAL); //$NON-NLS-1$
+    /** Books that are just books. */
+    public static final BookCategory GENERAL_BOOK = new BookCategory("Generic Books", UserMsg.gettext("General Books"));
 
-    /**
-     * Books that are not any of the above
-     */
-    public static final BookCategory OTHER = new BookCategory("Other", UserMsg.OTHER); //$NON-NLS-1$
+    /** Books that are not any of the above. This is a catch all for new book categories. */
+    public static final BookCategory OTHER = new BookCategory("Other", UserMsg.gettext("Other"));
 
     /**
      * @param name
      *            The name of the BookCategory
      */
-    private BookCategory(String name, MsgBase externalName) {
+    private BookCategory(String name, String externalName) {
         this.name = name;
-        this.externalName = externalName;
+        this.externalName = externalName.toString();
     }
 
     /**
@@ -179,7 +155,7 @@
      * The names of the BookCategory
      */
     private transient String name;
-    private transient MsgBase externalName;
+    private transient String externalName;
 
     // Support for serialization
     private static int nextObj;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/BookData.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/BookData.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/BookData.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -186,7 +186,7 @@
                     if (showDiffs[i - 1]) {
                         doDiffs = true;
                         StringBuffer buf = new StringBuffer(prevBook.getInitials());
-                        buf.append(" ==> "); //$NON-NLS-1$
+                        buf.append(" ==> ");
                         buf.append(book.getInitials());
 
                         cell.addContent(OSISUtil.factory().createText(buf.toString()));
@@ -210,7 +210,7 @@
 
                 row = OSISUtil.factory().createRow();
 
-                String lastText = ""; //$NON-NLS-1$
+                String lastText = "";
 
                 for (int i = 0; i < iters.length; i++) {
                     Book book = books[i];
@@ -222,7 +222,7 @@
                         content = (Content) iters[i].next();
 
                         if (doDiffs) {
-                            String thisText = ""; //$NON-NLS-1$
+                            String thisText = "";
                             if (content instanceof Element) {
                                 thisText = OSISUtil.getCanonicalText((Element) content);
                             } else if (content instanceof Text) {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/BookException.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/BookException.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/BookException.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -82,6 +82,55 @@
     }
 
     /**
+     * Construct the Exception with a message
+     * 
+     * @param msg
+     *            The resource id to read
+     */
+    public BookException(String msg) {
+        super(msg);
+    }
+
+    /**
+     * Construct the Exception with a message and a nested Exception
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param ex
+     *            The nested Exception
+     */
+    public BookException(String msg, Throwable ex) {
+        super(msg, ex);
+    }
+
+    /**
+     * Construct the Exception with a message and some Msg params
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param params
+     *            An array of parameters
+     */
+    public BookException(String msg, Object[] params) {
+        super(msg, params);
+    }
+
+    /**
+     * Construct the Exception with a message, a nested Exception and some Msg
+     * params
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param ex
+     *            The nested Exception
+     * @param params
+     *            An array of parameters
+     */
+    public BookException(String msg, Throwable ex, Object[] params) {
+        super(msg, ex, params);
+    }
+
+    /**
      * Serialization ID
      */
     private static final long serialVersionUID = 3977575883768738103L;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/BookFilters.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/BookFilters.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/BookFilters.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -309,7 +309,7 @@
          */
         public CustomBookFilter(String match) {
             List cache = new ArrayList();
-            String[] filters = match.split(";"); //$NON-NLS-1$
+            String[] filters = match.split(";");
             for (int i = 0; i < filters.length; i++) {
                 cache.add(new Test(filters[i]));
             }
@@ -343,9 +343,9 @@
          */
         static class Test {
             protected Test(String filter) {
-                String[] parts = filter.split("="); //$NON-NLS-1$
+                String[] parts = filter.split("=");
                 if (parts.length != 2 || parts[0].length() == 0 || parts[1].length() == 0) {
-                    throw new IllegalArgumentException("Filter format is 'property=value', given: " + filter); //$NON-NLS-1$
+                    throw new IllegalArgumentException("Filter format is 'property=value', given: " + filter);
                 }
                 this.property = parts[0];
                 this.result = parts[1];

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/BookMetaData.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/BookMetaData.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/BookMetaData.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -260,50 +260,50 @@
     /**
      * The key for the type in the properties map
      */
-    String KEY_CATEGORY = "Category"; //$NON-NLS-1$
+    String KEY_CATEGORY = "Category";
 
     /**
      * The key for the book in the properties map
      */
-    String KEY_BOOK = "Book"; //$NON-NLS-1$
+    String KEY_BOOK = "Book";
 
     /**
      * The key for the driver in the properties map
      */
-    String KEY_DRIVER = "Driver"; //$NON-NLS-1$
+    String KEY_DRIVER = "Driver";
 
     /**
      * The key for the name in the properties map
      */
-    String KEY_NAME = "Description"; //$NON-NLS-1$
+    String KEY_NAME = "Description";
 
     /**
      * The key for the language in the properties map
      */
-    String KEY_XML_LANG = "Lang"; //$NON-NLS-1$
+    String KEY_XML_LANG = "Lang";
 
     /**
      * The key for the font in the properties map
      */
-    String KEY_FONT = "Font"; //$NON-NLS-1$
+    String KEY_FONT = "Font";
 
     /**
      * The key for the initials in the properties map
      */
-    String KEY_INITIALS = "Initials"; //$NON-NLS-1$
+    String KEY_INITIALS = "Initials";
 
     /**
      * The key for the URI locating where this book is installed
      */
-    String KEY_LIBRARY_URI = "LibraryURI"; //$NON-NLS-1$
+    String KEY_LIBRARY_URI = "LibraryURI";
 
     /**
      * The key for the URI locating this book
      */
-    String KEY_LOCATION_URI = "LocationURI"; //$NON-NLS-1$
+    String KEY_LOCATION_URI = "LocationURI";
 
     /**
      * The key for the indexed status in the properties map
      */
-    String KEY_INDEXSTATUS = "IndexStatus"; //$NON-NLS-1$
+    String KEY_INDEXSTATUS = "IndexStatus";
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/BookmarkFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/BookmarkFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/BookmarkFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -64,15 +64,15 @@
         try {
             instance = (Bookmark) PluginUtil.getImplementation(Bookmark.class);
         } catch (IOException e) {
-            log.error("createBookmark failed", e); //$NON-NLS-1$
+            log.error("createBookmark failed", e);
         } catch (ClassCastException e) {
-            log.error("createBookmark failed", e); //$NON-NLS-1$
+            log.error("createBookmark failed", e);
         } catch (ClassNotFoundException e) {
-            log.error("createBookmark failed", e); //$NON-NLS-1$
+            log.error("createBookmark failed", e);
         } catch (IllegalAccessException e) {
-            log.error("createBookmark failed", e); //$NON-NLS-1$
+            log.error("createBookmark failed", e);
         } catch (InstantiationException e) {
-            log.error("createBookmark failed", e); //$NON-NLS-1$
+            log.error("createBookmark failed", e);
         }
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/Books.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/Books.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/Books.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -277,7 +277,7 @@
      *            The BookDriver to add
      */
     public synchronized void registerDriver(BookDriver driver) throws BookException {
-        log.debug("begin registering driver: " + driver.getClass().getName()); //$NON-NLS-1$
+        log.debug("begin registering driver: " + driver.getClass().getName());
 
         drivers.add(driver);
 
@@ -306,7 +306,7 @@
             removeBook(book);
         }
 
-        log.debug("end registering driver: " + driver.getClass().getName()); //$NON-NLS-1$
+        log.debug("end registering driver: " + driver.getClass().getName());
     }
 
     /**
@@ -316,7 +316,7 @@
      *            The BookDriver to remove
      */
     public synchronized void unregisterDriver(BookDriver driver) throws BookException {
-        log.debug("begin un-registering driver: " + driver.getClass().getName()); //$NON-NLS-1$
+        log.debug("begin un-registering driver: " + driver.getClass().getName());
 
         Book[] bookArray = driver.getBooks();
         for (int j = 0; j < bookArray.length; j++) {
@@ -329,7 +329,7 @@
             });
         }
 
-        log.debug("end un-registering driver: " + driver.getClass().getName()); //$NON-NLS-1$
+        log.debug("end un-registering driver: " + driver.getClass().getName());
     }
 
     /**
@@ -400,7 +400,7 @@
                 }
             };
 
-            Thread init = new Thread(runner, "book-driver-registration"); //$NON-NLS-1$
+            Thread init = new Thread(runner, "book-driver-registration");
             init.setPriority(Thread.MIN_PRIORITY);
             init.start();
         } else {
@@ -415,14 +415,14 @@
         // This will classload them all and they will register themselves.
         Class[] types = PluginUtil.getImplementors(BookDriver.class);
 
-        log.debug("begin auto-registering " + types.length + " drivers:"); //$NON-NLS-1$ //$NON-NLS-2$
+        log.debug("begin auto-registering " + types.length + " drivers:");
 
         for (int i = 0; i < types.length; i++) {
             // job.setProgress(Msg.JOB_DRIVER.toString() +
             // ClassUtils.getShortClassName(types[i]));
 
             try {
-                Method driverInstance = types[i].getMethod("instance", new Class[0]); //$NON-NLS-1$
+                Method driverInstance = types[i].getMethod("instance", new Class[0]);
                 BookDriver driver = (BookDriver) driverInstance.invoke(null, new Object[0]); // types[i].newInstance();
                 registerDriver(driver);
             } catch (NoSuchMethodException e) {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/CaseType.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/CaseType.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/CaseType.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -33,7 +33,7 @@
  * @author DM Smith [dmsmith555 at yahoo dot com]
  */
 public abstract class CaseType implements Serializable {
-    public static final CaseType LOWER = new CaseType("LOWER") //$NON-NLS-1$
+    public static final CaseType LOWER = new CaseType("LOWER")
     {
         public String setCase(String word) {
             return word.toLowerCase(Locale.getDefault());
@@ -45,7 +45,7 @@
         private static final long serialVersionUID = 3546637707360286256L;
     };
 
-    public static final CaseType SENTENCE = new CaseType("SENTENCE") //$NON-NLS-1$
+    public static final CaseType SENTENCE = new CaseType("SENTENCE")
     {
         public String setCase(String word) {
             int index = word.indexOf('-');
@@ -54,20 +54,20 @@
             }
 
             // So there is a "-", however first some exceptions
-            if ("maher-shalal-hash-baz".equalsIgnoreCase(word)) { //$NON-NLS-1$
-                return "Maher-Shalal-Hash-Baz"; //$NON-NLS-1$
+            if ("maher-shalal-hash-baz".equalsIgnoreCase(word)) {
+                return "Maher-Shalal-Hash-Baz";
             }
 
-            if ("no-one".equalsIgnoreCase(word)) { //$NON-NLS-1$
-                return "No-one"; //$NON-NLS-1$
+            if ("no-one".equalsIgnoreCase(word)) {
+                return "No-one";
             }
 
-            if (word.substring(0, 4).equalsIgnoreCase("god-")) { //$NON-NLS-1$
+            if (word.substring(0, 4).equalsIgnoreCase("god-")) {
                 return toSentenceCase(word);
             }
 
             // So cut by the -
-            return toSentenceCase(word.substring(0, index)) + "-" + toSentenceCase(word.substring(index + 1)); //$NON-NLS-1$
+            return toSentenceCase(word.substring(0, index)) + "-" + toSentenceCase(word.substring(index + 1));
         }
 
         /**
@@ -76,7 +76,7 @@
         private static final long serialVersionUID = 3905520510312985138L;
     };
 
-    public static final CaseType UPPER = new CaseType("UPPER") //$NON-NLS-1$
+    public static final CaseType UPPER = new CaseType("UPPER")
     {
         public String setCase(String word) {
             return word.toUpperCase(Locale.getDefault());
@@ -108,7 +108,7 @@
         assert word != null;
 
         if (word.length() == 0) {
-            return ""; //$NON-NLS-1$
+            return "";
         }
 
         return Character.toUpperCase(word.charAt(0)) + word.substring(1).toLowerCase(Locale.getDefault());

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/DataPolice.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/DataPolice.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/DataPolice.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -100,7 +100,7 @@
         if (key != null) {
             buf.append(key.getName());
         }
-        buf.append(": "); //$NON-NLS-1$
+        buf.append(": ");
         buf.append(message);
         log.log(lev, buf.toString());
     }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/DefaultBook.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/DefaultBook.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/DefaultBook.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -122,7 +122,7 @@
      */
     public void setDefaultByName(String name) {
         if (name == null || name.length() == 0) {
-            log.warn("Attempt to set empty book as default. Ignoring"); //$NON-NLS-1$
+            log.warn("Attempt to set empty book as default. Ignoring");
             return;
         }
 
@@ -135,7 +135,7 @@
             }
         }
 
-        log.warn("Book not found. Ignoring: " + name); //$NON-NLS-1$
+        log.warn("Book not found. Ignoring: " + name);
     }
 
     /**

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/Defaults.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/Defaults.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/Defaults.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -616,14 +616,14 @@
         }
     }
 
-    private static final String BIBLE_KEY = "bible-names"; //$NON-NLS-1$
-    private static final String COMMENTARY_KEY = "commentary-names"; //$NON-NLS-1$
-    private static final String DICTIONARY_KEY = "dictionary-names"; //$NON-NLS-1$
-    private static final String DAILY_DEVOTIONALS_KEY = "daily-devotional-names"; //$NON-NLS-1$
-    private static final String GREEKDEF_KEY = "greekdef-names"; //$NON-NLS-1$
-    private static final String HEBREWDEF_KEY = "hebrewdef-names"; //$NON-NLS-1$
-    private static final String GREEKPARSE_KEY = "greekparse-names"; //$NON-NLS-1$
-    private static final String HEBREWPARSE_KEY = "hebrewparse-names"; //$NON-NLS-1$
+    private static final String BIBLE_KEY = "bible-names";
+    private static final String COMMENTARY_KEY = "commentary-names";
+    private static final String DICTIONARY_KEY = "dictionary-names";
+    private static final String DAILY_DEVOTIONALS_KEY = "daily-devotional-names";
+    private static final String GREEKDEF_KEY = "greekdef-names";
+    private static final String HEBREWDEF_KEY = "hebrewdef-names";
+    private static final String GREEKPARSE_KEY = "greekparse-names";
+    private static final String HEBREWPARSE_KEY = "hebrewparse-names";
 
     /**
      * Indicates whether the last book of each type is used next time.

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/FeatureType.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/FeatureType.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/FeatureType.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -34,62 +34,62 @@
     /**
      * The book is one of Greek Definitions. AKA, Strong's.
      */
-    public static final FeatureType GREEK_DEFINITIONS = new FeatureType("GreekDef"); //$NON-NLS-1$
+    public static final FeatureType GREEK_DEFINITIONS = new FeatureType("GreekDef");
 
     /**
      * The book is one of Greek word parsings. AKA, Robinson.
      */
-    public static final FeatureType GREEK_PARSE = new FeatureType("GreekParse"); //$NON-NLS-1$
+    public static final FeatureType GREEK_PARSE = new FeatureType("GreekParse");
 
     /**
      * The book is one of Hebrew Definitions. AKA, Strong's.
      */
-    public static final FeatureType HEBREW_DEFINITIONS = new FeatureType("HebrewDef"); //$NON-NLS-1$
+    public static final FeatureType HEBREW_DEFINITIONS = new FeatureType("HebrewDef");
 
     /**
      * The book is one of Hebrew word parsings. AKA, ???.
      */
-    public static final FeatureType HEBREW_PARSE = new FeatureType("HebrewParse"); //$NON-NLS-1$
+    public static final FeatureType HEBREW_PARSE = new FeatureType("HebrewParse");
 
     /**
      * The book is one of Daily Devotions.
      */
-    public static final FeatureType DAILY_DEVOTIONS = new FeatureType("DailyDevotions"); //$NON-NLS-1$
+    public static final FeatureType DAILY_DEVOTIONS = new FeatureType("DailyDevotions");
 
     /**
      * The book is glossary of translations from one language to another.
      */
-    public static final FeatureType GLOSSARY = new FeatureType("Glossary"); //$NON-NLS-1$
+    public static final FeatureType GLOSSARY = new FeatureType("Glossary");
 
     /**
      * The book contains Strong's Numbers
      */
-    public static final FeatureType STRONGS_NUMBERS = new FeatureType("StrongsNumbers"); //$NON-NLS-1$
+    public static final FeatureType STRONGS_NUMBERS = new FeatureType("StrongsNumbers");
 
     /**
      * The book contains footnotes
      */
-    public static final FeatureType FOOTNOTES = new FeatureType("Footnotes"); //$NON-NLS-1$
+    public static final FeatureType FOOTNOTES = new FeatureType("Footnotes");
 
     /**
      * The book contains Scripture cross references
      */
-    public static final FeatureType SCRIPTURE_REFERENCES = new FeatureType("Scripref"); //$NON-NLS-1$
+    public static final FeatureType SCRIPTURE_REFERENCES = new FeatureType("Scripref");
 
     /**
      * The book marks the Word's of Christ
      */
-    public static final FeatureType WORDS_OF_CHRIST = new FeatureType("RedLetterText"); //$NON-NLS-1$
+    public static final FeatureType WORDS_OF_CHRIST = new FeatureType("RedLetterText");
 
     /**
      * The book contains Morphology info
      */
-    public static final FeatureType MORPHOLOGY = new FeatureType("Morph"); //$NON-NLS-1$
+    public static final FeatureType MORPHOLOGY = new FeatureType("Morph");
 
     /**
      * The book contains Headings
      */
-    public static final FeatureType HEADINGS = new FeatureType("Headings"); //$NON-NLS-1$
+    public static final FeatureType HEADINGS = new FeatureType("Headings");
 
     /**
      * @param name

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/KeyType.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/KeyType.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/KeyType.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -34,17 +34,17 @@
     /**
      * Book contains verses and can be understood as book, chapter and verse.
      */
-    public static final KeyType VERSE = new KeyType("verse"); //$NON-NLS-1$
+    public static final KeyType VERSE = new KeyType("verse");
 
     /**
      * Book organizes its entries in a list, as in a dictionary.
      */
-    public static final KeyType LIST = new KeyType("list"); //$NON-NLS-1$
+    public static final KeyType LIST = new KeyType("list");
 
     /**
      * Book organizes its entries in a tree, as in a general book.
      */
-    public static final KeyType TREE = new KeyType("tree"); //$NON-NLS-1$
+    public static final KeyType TREE = new KeyType("tree");
 
     /**
      * Simple ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -33,10 +33,10 @@
  */
 final class Msg extends MsgBase {
 
-    static final Msg MISSING_VERSE = new Msg("OSISUtil.MissingVerse"); //$NON-NLS-1$
-    static final Msg OSIS_BADID = new Msg("OSISUtil.OSISBadID"); //$NON-NLS-1$
-    static final Msg BOOK_NOREMOVE = new Msg("Books.BookNoRemove"); //$NON-NLS-1$
-    static final Msg DRIVER_NOREMOVE = new Msg("Books.DriverNoRemove"); //$NON-NLS-1$
+    static final Msg MISSING_VERSE = new Msg("OSISUtil.MissingVerse");
+    static final Msg OSIS_BADID = new Msg("OSISUtil.OSISBadID");
+    static final Msg BOOK_NOREMOVE = new Msg("Books.BookNoRemove");
+    static final Msg DRIVER_NOREMOVE = new Msg("Books.DriverNoRemove");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/OSISUtil.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/OSISUtil.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/OSISUtil.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -61,257 +61,257 @@
     /**
      * Constant for acrostic highlighting
      */
-    public static final String HI_ACROSTIC = "acrostic"; //$NON-NLS-1$
+    public static final String HI_ACROSTIC = "acrostic";
 
     /**
      * Constant for rendering bold text
      */
-    public static final String HI_BOLD = "bold"; //$NON-NLS-1$
+    public static final String HI_BOLD = "bold";
 
     /**
      * Constant for rendering emphatic text
      */
-    public static final String HI_EMPHASIS = "emphasis"; //$NON-NLS-1$
+    public static final String HI_EMPHASIS = "emphasis";
 
     /**
      * Constant for rendering illuminated text.
      */
-    public static final String HI_ILLUMINATED = "illuminated"; //$NON-NLS-1$
+    public static final String HI_ILLUMINATED = "illuminated";
 
     /**
      * Constant for rendering italic text.
      */
-    public static final String HI_ITALIC = "italic"; //$NON-NLS-1$
+    public static final String HI_ITALIC = "italic";
 
     /**
      * Constant for rendering strike-through text
      */
-    public static final String HI_LINETHROUGH = "line-through"; //$NON-NLS-1$
+    public static final String HI_LINETHROUGH = "line-through";
 
     /**
      * Constant for rendering normal text.
      */
-    public static final String HI_NORMAL = "normal"; //$NON-NLS-1$
+    public static final String HI_NORMAL = "normal";
 
     /**
      * Constant for rendering small caps
      */
-    public static final String HI_SMALL_CAPS = "small-caps"; //$NON-NLS-1$
+    public static final String HI_SMALL_CAPS = "small-caps";
 
     /**
      * Constant for rendering subscripts
      */
-    public static final String HI_SUB = "sub"; //$NON-NLS-1$
+    public static final String HI_SUB = "sub";
 
     /**
      * Constant for rendering superscripts
      */
-    public static final String HI_SUPER = "super"; //$NON-NLS-1$
+    public static final String HI_SUPER = "super";
 
     /**
      * Constant for rendering underlined text
      */
-    public static final String HI_UNDERLINE = "underline"; //$NON-NLS-1$
+    public static final String HI_UNDERLINE = "underline";
 
     /**
      * Constant for rendering upper case text
      */
-    public static final String HI_X_CAPS = "x-caps"; //$NON-NLS-1$
+    public static final String HI_X_CAPS = "x-caps";
 
     /**
      * Constant for rendering big text
      */
-    public static final String HI_X_BIG = "x-big"; //$NON-NLS-1$
+    public static final String HI_X_BIG = "x-big";
 
     /**
      * Constant for rendering small text
      */
-    public static final String HI_X_SMALL = "x-small"; //$NON-NLS-1$
+    public static final String HI_X_SMALL = "x-small";
 
     /**
      * Constant for rendering tt text
      */
-    public static final String HI_X_TT = "x-tt"; //$NON-NLS-1$
+    public static final String HI_X_TT = "x-tt";
 
     /**
      * Constant to help narrow down what we use seg for. In this case the
      * justify right tag
      */
-    public static final String SEG_JUSTIFYRIGHT = "text-align: right;"; //$NON-NLS-1$
+    public static final String SEG_JUSTIFYRIGHT = "text-align: right;";
 
     /**
      * Constant to help narrow down what we use seg for. In this case the
      * justify right tag
      */
-    public static final String SEG_JUSTIFYLEFT = "text-align: left;"; //$NON-NLS-1$
+    public static final String SEG_JUSTIFYLEFT = "text-align: left;";
 
     /**
      * Constant to help narrow down what we use seg for. In this case the thml
      * center tag
      */
-    public static final String SEG_CENTER = "text-align: center;"; //$NON-NLS-1$
+    public static final String SEG_CENTER = "text-align: center;";
 
     /**
      * Constant to help narrow down what we use div for. In this case the thml
      * pre tag
      */
-    public static final String DIV_PRE = "x-pre"; //$NON-NLS-1$
+    public static final String DIV_PRE = "x-pre";
 
     /**
      * Constant to help narrow down what we use seg for. In this case the color
      * tag
      */
-    public static final String SEG_COLORPREFIX = "color: "; //$NON-NLS-1$
+    public static final String SEG_COLORPREFIX = "color: ";
 
     /**
      * Constant to help narrow down what we use seg for. In this case the
      * font-size tag
      */
-    public static final String SEG_SIZEPREFIX = "font-size: "; //$NON-NLS-1$
+    public static final String SEG_SIZEPREFIX = "font-size: ";
 
     /**
      * Constant for x- types
      */
-    public static final String TYPE_X_PREFIX = "x-"; //$NON-NLS-1$
+    public static final String TYPE_X_PREFIX = "x-";
 
     /**
      * Constant for the study note type
      */
-    public static final String NOTETYPE_STUDY = "x-StudyNote"; //$NON-NLS-1$
+    public static final String NOTETYPE_STUDY = "x-StudyNote";
 
     /**
      * Constant for the cross reference note type
      */
-    public static final String NOTETYPE_REFERENCE = "crossReference"; //$NON-NLS-1$
+    public static final String NOTETYPE_REFERENCE = "crossReference";
 
     /**
      * Constant for the variant type segment
      */
-    public static final String VARIANT_TYPE = "x-variant"; //$NON-NLS-1$
-    public static final String VARIANT_CLASS = "x-class"; //$NON-NLS-1$
+    public static final String VARIANT_TYPE = "x-variant";
+    public static final String VARIANT_CLASS = "x-class";
 
     /**
      * Constant for JSword generated content. Used for type or subType.
      */
-    public static final String GENERATED_CONTENT = "x-gen"; //$NON-NLS-1$
+    public static final String GENERATED_CONTENT = "x-gen";
 
     /**
      * Constant for the pos (part of speech) type.
      */
-    public static final String POS_TYPE = "x-pos"; //$NON-NLS-1$
+    public static final String POS_TYPE = "x-pos";
 
     /**
      * Constant for the def (dictionary definition) type
      */
-    public static final String DEF_TYPE = "x-def"; //$NON-NLS-1$
+    public static final String DEF_TYPE = "x-def";
 
     /**
      * Constant for a Strong's numbering lemma
      */
-    public static final String LEMMA_STRONGS = "strong:"; //$NON-NLS-1$
-    public static final String MORPH_ROBINSONS = "robinson:"; //$NON-NLS-1$
+    public static final String LEMMA_STRONGS = "strong:";
+    public static final String MORPH_ROBINSONS = "robinson:";
 
     /**
      * Constant for Strong's numbering morphology
      */
-    public static final String MORPH_STRONGS = "x-StrongsMorph:T"; //$NON-NLS-1$
+    public static final String MORPH_STRONGS = "x-StrongsMorph:T";
 
     /**
      * Constant to help narrow down what we use "q" for. In this case:
      * blockquote
      */
-    public static final String Q_BLOCK = "blockquote"; //$NON-NLS-1$
+    public static final String Q_BLOCK = "blockquote";
 
     /**
      * Constant to help narrow down what we use "q" for. In this case: citation
      */
-    public static final String Q_CITATION = "citation"; //$NON-NLS-1$
+    public static final String Q_CITATION = "citation";
 
     /**
      * Constant to help narrow down what we use "q" for. In this case: embedded
      */
-    public static final String Q_EMBEDDED = "embedded"; //$NON-NLS-1$
+    public static final String Q_EMBEDDED = "embedded";
 
     /**
      * Constant to help narrow down what we use "list" for.
      */
-    public static final String LIST_ORDERED = "x-ordered"; //$NON-NLS-1$
-    public static final String LIST_UNORDERED = "x-unordered"; //$NON-NLS-1$
+    public static final String LIST_ORDERED = "x-ordered";
+    public static final String LIST_UNORDERED = "x-unordered";
 
     /**
      * Table roles (on table, row and cell elements) can be "data", the default,
      * or label.
      */
-    public static final String TABLE_ROLE_LABEL = "label"; //$NON-NLS-1$
+    public static final String TABLE_ROLE_LABEL = "label";
 
     /**
      * Possible cell alignments
      */
-    public static final String CELL_ALIGN_LEFT = "left"; //$NON-NLS-1$
-    public static final String CELL_ALIGN_RIGHT = "right"; //$NON-NLS-1$
-    public static final String CELL_ALIGN_CENTER = "center"; //$NON-NLS-1$
-    public static final String CELL_ALIGN_JUSTIFY = "justify"; //$NON-NLS-1$
-    public static final String CELL_ALIGN_START = "start"; //$NON-NLS-1$
-    public static final String CELL_ALIGN_END = "end"; //$NON-NLS-1$
+    public static final String CELL_ALIGN_LEFT = "left";
+    public static final String CELL_ALIGN_RIGHT = "right";
+    public static final String CELL_ALIGN_CENTER = "center";
+    public static final String CELL_ALIGN_JUSTIFY = "justify";
+    public static final String CELL_ALIGN_START = "start";
+    public static final String CELL_ALIGN_END = "end";
 
-    public static final String OSIS_ELEMENT_ABBR = "abbr"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_TITLE = "title"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_TABLE = "table"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_SPEECH = "speech"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_SPEAKER = "speaker"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_ROW = "row"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_REFERENCE = "reference"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_NOTE = "note"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_NAME = "name"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_Q = "q"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_LIST = "list"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_P = "p"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_ITEM = "item"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_FIGURE = "figure"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_FOREIGN = "foreign"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_W = "w"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_CHAPTER = "chapter"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_VERSE = "verse"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_CELL = "cell"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_DIV = "div"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_OSIS = "osis"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_WORK = "work"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_HEADER = "header"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_OSISTEXT = "osisText"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_SEG = "seg"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_LG = "lg"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_L = "l"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_LB = "lb"; //$NON-NLS-1$
-    public static final String OSIS_ELEMENT_HI = "hi"; //$NON-NLS-1$
+    public static final String OSIS_ELEMENT_ABBR = "abbr";
+    public static final String OSIS_ELEMENT_TITLE = "title";
+    public static final String OSIS_ELEMENT_TABLE = "table";
+    public static final String OSIS_ELEMENT_SPEECH = "speech";
+    public static final String OSIS_ELEMENT_SPEAKER = "speaker";
+    public static final String OSIS_ELEMENT_ROW = "row";
+    public static final String OSIS_ELEMENT_REFERENCE = "reference";
+    public static final String OSIS_ELEMENT_NOTE = "note";
+    public static final String OSIS_ELEMENT_NAME = "name";
+    public static final String OSIS_ELEMENT_Q = "q";
+    public static final String OSIS_ELEMENT_LIST = "list";
+    public static final String OSIS_ELEMENT_P = "p";
+    public static final String OSIS_ELEMENT_ITEM = "item";
+    public static final String OSIS_ELEMENT_FIGURE = "figure";
+    public static final String OSIS_ELEMENT_FOREIGN = "foreign";
+    public static final String OSIS_ELEMENT_W = "w";
+    public static final String OSIS_ELEMENT_CHAPTER = "chapter";
+    public static final String OSIS_ELEMENT_VERSE = "verse";
+    public static final String OSIS_ELEMENT_CELL = "cell";
+    public static final String OSIS_ELEMENT_DIV = "div";
+    public static final String OSIS_ELEMENT_OSIS = "osis";
+    public static final String OSIS_ELEMENT_WORK = "work";
+    public static final String OSIS_ELEMENT_HEADER = "header";
+    public static final String OSIS_ELEMENT_OSISTEXT = "osisText";
+    public static final String OSIS_ELEMENT_SEG = "seg";
+    public static final String OSIS_ELEMENT_LG = "lg";
+    public static final String OSIS_ELEMENT_L = "l";
+    public static final String OSIS_ELEMENT_LB = "lb";
+    public static final String OSIS_ELEMENT_HI = "hi";
 
-    public static final String ATTRIBUTE_TEXT_OSISIDWORK = "osisIDWork"; //$NON-NLS-1$
-    public static final String ATTRIBUTE_WORK_OSISWORK = "osisWork"; //$NON-NLS-1$
-    public static final String OSIS_ATTR_OSISID = "osisID"; //$NON-NLS-1$
-    public static final String OSIS_ATTR_SID = "sID"; //$NON-NLS-1$
-    public static final String OSIS_ATTR_EID = "eID"; //$NON-NLS-1$
-    public static final String ATTRIBUTE_W_LEMMA = "lemma"; //$NON-NLS-1$
-    public static final String ATTRIBUTE_FIGURE_SRC = "src"; //$NON-NLS-1$
-    public static final String ATTRIBUTE_TABLE_ROLE = "role"; //$NON-NLS-1$
-    public static final String ATTRIBUTE_CELL_ALIGN = "align"; //$NON-NLS-1$
-    public static final String OSIS_ATTR_TYPE = "type"; //$NON-NLS-1$
-    public static final String OSIS_ATTR_CANONICAL = "canonical"; //$NON-NLS-1$
-    public static final String OSIS_ATTR_SUBTYPE = "subType"; //$NON-NLS-1$
-    public static final String OSIS_ATTR_REF = "osisRef"; //$NON-NLS-1$
-    public static final String OSIS_ATTR_LEVEL = "level"; //$NON-NLS-1$
-    public static final String ATTRIBUTE_SPEAKER_WHO = "who"; //$NON-NLS-1$
-    public static final String ATTRIBUTE_Q_WHO = "who"; //$NON-NLS-1$
-    public static final String ATTRIBUTE_W_MORPH = "morph"; //$NON-NLS-1$
-    public static final String ATTRIBUTE_OSISTEXT_OSISIDWORK = "osisIDWork"; //$NON-NLS-1$
+    public static final String ATTRIBUTE_TEXT_OSISIDWORK = "osisIDWork";
+    public static final String ATTRIBUTE_WORK_OSISWORK = "osisWork";
+    public static final String OSIS_ATTR_OSISID = "osisID";
+    public static final String OSIS_ATTR_SID = "sID";
+    public static final String OSIS_ATTR_EID = "eID";
+    public static final String ATTRIBUTE_W_LEMMA = "lemma";
+    public static final String ATTRIBUTE_FIGURE_SRC = "src";
+    public static final String ATTRIBUTE_TABLE_ROLE = "role";
+    public static final String ATTRIBUTE_CELL_ALIGN = "align";
+    public static final String OSIS_ATTR_TYPE = "type";
+    public static final String OSIS_ATTR_CANONICAL = "canonical";
+    public static final String OSIS_ATTR_SUBTYPE = "subType";
+    public static final String OSIS_ATTR_REF = "osisRef";
+    public static final String OSIS_ATTR_LEVEL = "level";
+    public static final String ATTRIBUTE_SPEAKER_WHO = "who";
+    public static final String ATTRIBUTE_Q_WHO = "who";
+    public static final String ATTRIBUTE_W_MORPH = "morph";
+    public static final String ATTRIBUTE_OSISTEXT_OSISIDWORK = "osisIDWork";
     // OSIS defines the lang attribute as the one from the xml namespace
     // Typical usage element.setAttribute(OSISUtil.OSIS_ATTR_LANG, lang,
     // Namespace.XML_NAMESPACE);
-    public static final String OSIS_ATTR_LANG = "lang"; //$NON-NLS-1$
-    public static final String ATTRIBUTE_DIV_BOOK = "book"; //$NON-NLS-1$
+    public static final String OSIS_ATTR_LANG = "lang";
+    public static final String ATTRIBUTE_DIV_BOOK = "book";
 
     /**
      * Prefix for OSIS IDs that refer to Bibles
      */
-    private static final String OSISID_PREFIX_BIBLE = "Bible."; //$NON-NLS-1$
+    private static final String OSISID_PREFIX_BIBLE = "Bible.";
 
     private static final Set EXTRA_BIBLICAL_ELEMENTS = new HashSet(Arrays.asList(new String[] {
             OSIS_ELEMENT_NOTE, OSIS_ELEMENT_TITLE, OSIS_ELEMENT_REFERENCE
@@ -729,7 +729,7 @@
                     Key key = keyf.getKey(attr);
                     collector.addAll(key);
                 } catch (NoSuchKeyException e) {
-                    log.warn("Unable to parse: " + attr, e); //$NON-NLS-1$
+                    log.warn("Unable to parse: " + attr, e);
                 }
             }
         }
@@ -959,7 +959,7 @@
             // and when one is a prefix of another, it follows.
 
             // Used to end all open attributes. Only \qc in our implementation.
-            if (rtf.startsWith("\\pard", i)) { //$NON-NLS-1$
+            if (rtf.startsWith("\\pard", i)) {
                 Element currentElement = (Element) stack.pop();
                 currentElement.addContent(text.toString());
                 text.delete(0, text.length());
@@ -970,7 +970,7 @@
             }
 
             // Simulate a paragraph break.
-            if (rtf.startsWith("\\par", i)) { //$NON-NLS-1$
+            if (rtf.startsWith("\\par", i)) {
                 Element currentElement = (Element) stack.peek();
                 currentElement.addContent(text.toString());
                 text.delete(0, text.length());
@@ -981,9 +981,9 @@
 
             // OSIS does not have the notion of centered text.
             // So we define our own
-            if (rtf.startsWith("\\qc", i)) { //$NON-NLS-1$
+            if (rtf.startsWith("\\qc", i)) {
                 Element centerDiv = OSISUtil.factory.createDiv();
-                centerDiv.setAttribute(OSIS_ATTR_TYPE, "x-center"); //$NON-NLS-1$
+                centerDiv.setAttribute(OSIS_ATTR_TYPE, "x-center");
                 Element currentElement = (Element) stack.peek();
                 currentElement.addContent(text.toString());
                 text.delete(0, text.length());
@@ -995,7 +995,7 @@
             }
 
             // convert Unicode representations to Unicode
-            if (rtf.startsWith("\\u", i)) { //$NON-NLS-1$
+            if (rtf.startsWith("\\u", i)) {
                 StringBuffer buf = new StringBuffer();
                 i += 2;
                 while (i < strlen) {
@@ -1021,7 +1021,7 @@
             }
 
             // close italic and bold
-            if (rtf.startsWith("\\i0", i) || rtf.startsWith("\\b0", i)) { //$NON-NLS-1$ //$NON-NLS-2$
+            if (rtf.startsWith("\\i0", i) || rtf.startsWith("\\b0", i)) {
                 Element currentElement = (Element) stack.pop();
                 currentElement.addContent(text.toString());
                 text.delete(0, text.length());
@@ -1030,13 +1030,13 @@
             }
 
             // Skip escaped whitespace
-            if (rtf.startsWith(" ", i) || rtf.startsWith("\n", i)) { //$NON-NLS-1$ //$NON-NLS-2$
+            if (rtf.startsWith(" ", i) || rtf.startsWith("\n", i)) {
                 i += 1;
                 continue;
             }
 
             // start italic
-            if (rtf.startsWith("\\i", i)) { //$NON-NLS-1$
+            if (rtf.startsWith("\\i", i)) {
                 Element hiElement = OSISUtil.factory.createHI();
                 hiElement.setAttribute(OSIS_ATTR_TYPE, HI_ITALIC);
                 Element currentElement = (Element) stack.peek();
@@ -1049,7 +1049,7 @@
             }
 
             // start bold
-            if (rtf.startsWith("\\b", i)) { //$NON-NLS-1$
+            if (rtf.startsWith("\\b", i)) {
                 Element hiElement = OSISUtil.factory.createHI();
                 hiElement.setAttribute(OSIS_ATTR_TYPE, HI_BOLD);
                 Element currentElement = (Element) stack.peek();
@@ -1120,7 +1120,7 @@
         } else if (sub instanceof Element) {
             recurseChildren((Element) sub, buffer);
         } else {
-            log.error("unknown type: " + sub.getClass().getName()); //$NON-NLS-1$
+            log.error("unknown type: " + sub.getClass().getName());
         }
     }
 
@@ -1141,6 +1141,6 @@
         }
     }
 
-    private static String strongsNumber = "strong:([GgHh][0-9]+!?[A-Za-z]*)"; //$NON-NLS-1$
+    private static String strongsNumber = "strong:([GgHh][0-9]+!?[A-Za-z]*)";
     private static Pattern strongsNumberPattern = Pattern.compile(strongsNumber);
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/SentenceUtil.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/SentenceUtil.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/SentenceUtil.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -65,7 +65,7 @@
         while (alive) {
             // Find the next space and double dash
             int nextSpace = sentence.indexOf(' ', pos);
-            int nextDDash = sentence.indexOf("--", pos); //$NON-NLS-1$
+            int nextDDash = sentence.indexOf("--", pos);
 
             // If there is a space just after the ddash then ignore the ddash
             if (nextSpace == nextDDash + 2) {
@@ -88,11 +88,11 @@
                 pos = nextSpace + 1;
             } else {
                 // The next separator is a ddash
-                temp = sentence.substring(pos, nextDDash) + "--"; //$NON-NLS-1$
+                temp = sentence.substring(pos, nextDDash) + "--";
                 pos = nextDDash + 2;
             }
 
-            if (temp != null && !temp.trim().equals("")) { //$NON-NLS-1$
+            if (temp != null && !temp.trim().equals("")) {
                 tokens.add(temp);
             }
         }
@@ -145,7 +145,7 @@
         // The first bit of punctuation is what comes in front of the first word
         int first = firstLetter(words[0]);
         if (first == 0) {
-            retcode[0] = ""; //$NON-NLS-1$
+            retcode[0] = "";
         } else {
             retcode[0] = words[0].substring(0, first);
         }
@@ -158,7 +158,7 @@
         // The last bit of punctuation is what comes at the end of the last word
         int last = lastLetter(words[words.length - 1]);
         if (last == words[words.length - 1].length()) {
-            retcode[words.length] = ""; //$NON-NLS-1$
+            retcode[words.length] = "";
         } else {
             retcode[words.length] = words[words.length - 1].substring(last + 1);
         }
@@ -179,7 +179,7 @@
         // First there are some things we regard as word delimitters even if
         // they are not near space. Note that "-" should not be in this list
         // because words like abel-beth-maiacha comtain them.
-        sentence = sentence.replaceAll("--", " "); //$NON-NLS-1$ //$NON-NLS-2$
+        sentence = sentence.replaceAll("--", " ");
         sentence = sentence.replace('.', ' ');
         sentence = sentence.replace('!', ' ');
         sentence = sentence.replace('?', ' ');
@@ -190,7 +190,7 @@
         sentence = sentence.replace('(', ' ');
         sentence = sentence.replace(')', ' ');
 
-        String[] words = StringUtil.split(sentence, " "); //$NON-NLS-1$
+        String[] words = StringUtil.split(sentence, " ");
         String[] retcode = new String[words.length];
 
         // Remove the punctuation from the ends of the words.

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -33,22 +33,42 @@
  */
 final class UserMsg extends MsgBase {
 
-    static final UserMsg BIBLE = new UserMsg("BookCategory.Bible"); //$NON-NLS-1$
-    static final UserMsg DICTIONARY = new UserMsg("BookCategory.Dictionary"); //$NON-NLS-1$
-    static final UserMsg COMMENTARY = new UserMsg("BookCategory.Commentary"); //$NON-NLS-1$
-    static final UserMsg READINGS = new UserMsg("BookCategory.Readings"); //$NON-NLS-1$
-    static final UserMsg GLOSSARIES = new UserMsg("BookCategory.Glossaries"); //$NON-NLS-1$
-    static final UserMsg UNORTHODOX = new UserMsg("BookCategory.Unorthodox"); //$NON-NLS-1$
-    static final UserMsg GENERAL = new UserMsg("BookCategory.General"); //$NON-NLS-1$
-    static final UserMsg ESSAYS = new UserMsg("BookCategory.Essays"); //$NON-NLS-1$
-    static final UserMsg IMAGES = new UserMsg("BookCategory.Images"); //$NON-NLS-1$
-    static final UserMsg MAPS = new UserMsg("BookCategory.Maps"); //$NON-NLS-1$
-    static final UserMsg OTHER = new UserMsg("BookCategory.Other"); //$NON-NLS-1$
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * 
+     * @param key
+     * @return the internationalized text
+     */
+    public static String gettext(String key)
+    {
+        return msg.lookup(key);
+    }
 
     /**
-     * Passthrough ctor
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
      */
-    private UserMsg(String name) {
-        super(name);
+    public static String gettext(String key, Object param)
+    {
+        return msg.toString(key, param);
     }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object[] params)
+    {
+        return msg.toString(key, params);
+    }
+
+    private static MsgBase msg = new UserMsg();
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,15 +1,28 @@
-Defaults.BibleNotFound=Bible called "{0}" could not be found.
-Defaults.DictionaryNotFound=Dictionary called "{0}" could not be found.
-Defaults.CommentaryNotFound=Commentary called "{0}" could not be found.
 
-BookCategory.Bible=Biblical Texts
-BookCategory.Dictionary=Dictionaries
-BookCategory.Commentary=Commentaries
-BookCategory.Readings=Daily Devotionals
-BookCategory.Glossaries=Glossaries
-BookCategory.Unorthodox=Cults / Unorthodox / Questionable Materials
-BookCategory.General=General Books
-BookCategory.Essays=Essays
-BookCategory.Images=Images
-BookCategory.Maps=Maps
-BookCategory.Other=Other
+Bible\ called\ "{0}"\ could\ not\ be\ found. = Bible called "{0}" could not be found.
+
+Biblical\ Texts = Biblical Texts
+
+Commentaries = Commentaries
+
+Commentary\ called\ "{0}"\ could\ not\ be\ found. = Commentary called "{0}" could not be found.
+
+Cults\ /\ Unorthodox\ /\ Questionable\ Materials = Cults / Unorthodox / Questionable Materials
+
+Daily\ Devotionals = Daily Devotionals
+
+Dictionaries = Dictionaries
+
+Dictionary\ called\ "{0}"\ could\ not\ be\ found. = Dictionary called "{0}" could not be found.
+
+Essays = Essays
+
+General\ Books = General Books
+
+Glossaries = Glossaries
+
+Images = Images
+
+Maps = Maps
+
+Other = Other

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_de.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_de.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_de.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,16 +1,27 @@
-#Created by JInto - www.guh-software.de
-#Tue Jul 22 23:08:08 CEST 2008
-BookCategory.Bible=Biblische Texte
-BookCategory.Commentary=Kommentare
-BookCategory.Dictionary=W\u00F6rterb\u00FCcher
-BookCategory.Essays=Artikel
-BookCategory.General=Allgemeine B\u00FCcher
-BookCategory.Glossaries=Glossare
-BookCategory.Images=Bilder
-BookCategory.Maps=Karten
-BookCategory.Other=Anderes
-BookCategory.Readings=T\u00E4gliche Andachten
-BookCategory.Unorthodox=Kulte / Unorthodox / Fragw\u00FCrdig
-Defaults.BibleNotFound=Bibel "{0}" konnte nicht gefunden werden.
-Defaults.CommentaryNotFound=Kommentar "{0}" konnte nicht gefunden werden.
-Defaults.DictionaryNotFound=W\u00F6rterbuch "{0}" konnte nicht gefunden werden.
+Bible\ called\ "{0}"\ could\ not\ be\ found. = Bibel "{0}" konnte nicht gefunden werden.
+
+Biblical\ Texts = Biblische Texte
+
+Commentaries = Kommentare
+
+Commentary\ called\ "{0}"\ could\ not\ be\ found. = Kommentar "{0}" konnte nicht gefunden werden.
+
+Cults\ /\ Unorthodox\ /\ Questionable\ Materials = Kulte / Unorthodox / Fragw\u00FCrdig
+
+Daily\ Devotionals = T\u00E4gliche Andachten
+
+Dictionaries = W\u00F6rterb\u00FCcher
+
+Dictionary\ called\ "{0}"\ could\ not\ be\ found. = W\u00F6rterbuch "{0}" konnte nicht gefunden werden.
+
+Essays = Artikel
+
+General\ Books = Allgemeine B\u00FCcher
+
+Glossaries = Glossare
+
+Images = Bilder
+
+Maps = Karten
+
+Other = Anderes

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_fa.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_fa.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_fa.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,16 +1,28 @@
 
-BookCategory.Bible=\u06A9\u062A\u0627\u0628 \u0645\u0642\u062F\u0633
-BookCategory.Commentary=\u062A\u0641\u0633\u06CC\u0631
-BookCategory.Dictionary=\u062F\u0627\u0646\u0634 \u0646\u0627\u0645\u0647
-BookCategory.General=\u06A9\u062A\u0627\u0628 \u0639\u0645\u0648\u0645\u06CC
-BookCategory.Glossaries=\u0641\u0631\u0647\u0646\u06AF \u0644\u063A\u062A \u062F\u0634\u0648\u0627\u0631
-BookCategory.Other=\u062F\u06CC\u06AF\u0627\u0631
-BookCategory.Readings=\u062F\u0639\u0627 \u0648 \u0635\u0645\u06CC\u0645\u0627\u0646\u0647 
-BookCategory.Unorthodox=\u063A\u06CC\u0631 \u0645\u0633\u06CC\u0647\u06CC\u0627\u062A
-BookCategory.Essays=\u0645\u0642\u0627\u0644\u0647\u200C\u0647\u0627
-BookCategory.Images=\u0639\u06A9\u0627\u0633
-BookCategory.Maps=\u0646\u0642\u0634\u0629\u0647\u0627
+Bible\ called\ "{0}"\ could\ not\ be\ found. = \u062A\u0631\u062C\u0648\u0645\u0647 \u06A9\u062A\u0627\u0628 \u0645\u0642\u062F\u0633 "{0}" \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F
 
-Defaults.BibleNotFound=\u062A\u0631\u062C\u0648\u0645\u0647 \u06A9\u062A\u0627\u0628 \u0645\u0642\u062F\u0633 "{0}" \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F
-Defaults.CommentaryNotFound=\u062A\u0641\u0633\u06CC\u0631 "{0}" \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F
-Defaults.DictionaryNotFound=\u0641\u0631\u0647\u0646\u06AF \u06CC\u0627 \u062F\u0646\u0634\u0646\u0627\u0645\u0647  "{0}" \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F
+Biblical\ Texts = \u06A9\u062A\u0627\u0628 \u0645\u0642\u062F\u0633
+
+Commentaries = \u062A\u0641\u0633\u06CC\u0631
+
+Commentary\ called\ "{0}"\ could\ not\ be\ found. = \u062A\u0641\u0633\u06CC\u0631 "{0}" \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F
+
+Cults\ /\ Unorthodox\ /\ Questionable\ Materials = \u063A\u06CC\u0631 \u0645\u0633\u06CC\u0647\u06CC\u0627\u062A
+
+Daily\ Devotionals = \u062F\u0639\u0627 \u0648 \u0635\u0645\u06CC\u0645\u0627\u0646\u0647 
+
+Dictionaries = \u062F\u0627\u0646\u0634 \u0646\u0627\u0645\u0647
+
+Dictionary\ called\ "{0}"\ could\ not\ be\ found. = \u0641\u0631\u0647\u0646\u06AF \u06CC\u0627 \u062F\u0646\u0634\u0646\u0627\u0645\u0647  "{0}" \u067E\u06CC\u062F\u0627 \u0646\u0634\u062F
+
+Essays = \u0645\u0642\u0627\u0644\u0647\u200C\u0647\u0627
+
+General\ Books = \u06A9\u062A\u0627\u0628 \u0639\u0645\u0648\u0645\u06CC
+
+Glossaries = \u0641\u0631\u0647\u0646\u06AF \u0644\u063A\u062A \u062F\u0634\u0648\u0627\u0631
+
+Images = \u0639\u06A9\u0627\u0633
+
+Maps = \u0646\u0642\u0634\u0629\u0647\u0627
+
+Other = \u062F\u06CC\u06AF\u0627\u0631

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_in.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_in.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_in.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,15 +1,28 @@
-Defaults.BibleNotFound=Biblika "{0}" tidak dapat ditemukan.
-Defaults.DictionaryNotFound=Kamus "{0}" tidak dapat ditemukan.
-Defaults.CommentaryNotFound=Komentar "{0}" tidak dapat ditemukan.
 
-BookCategory.Bible=Teks Biblika
-BookCategory.Dictionary=Kamus
-BookCategory.Commentary=Komentar
-BookCategory.Readings=Renungan Harian
-BookCategory.Glossaries=Daftar Istilah
-BookCategory.Unorthodox=Aliran / Tidak Lazim / Meragukan
-BookCategory.General=Buku Umum
-BookCategory.Essays=Esai
-BookCategory.Images=Gambar
-BookCategory.Maps=Peta
-BookCategory.Other=Lain lain
+Bible\ called\ "{0}"\ could\ not\ be\ found. = Biblika "{0}" tidak dapat ditemukan.
+
+Biblical\ Texts = Teks Biblika
+
+Commentaries = Komentar
+
+Commentary\ called\ "{0}"\ could\ not\ be\ found. = Komentar "{0}" tidak dapat ditemukan.
+
+Cults\ /\ Unorthodox\ /\ Questionable\ Materials = Aliran / Tidak Lazim / Meragukan
+
+Daily\ Devotionals = Renungan Harian
+
+Dictionaries = Kamus
+
+Dictionary\ called\ "{0}"\ could\ not\ be\ found. = Kamus "{0}" tidak dapat ditemukan.
+
+Essays = Esai
+
+General\ Books = Buku Umum
+
+Glossaries = Daftar Istilah
+
+Images = Gambar
+
+Maps = Peta
+
+Other = Lain lain

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_vi.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_vi.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_vi.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,12 +1,22 @@
 
-BookCategory.Bible=Kinh Th\u00E1nh
-BookCategory.Commentary=S\u00E1ch Gi\u1EA3i Ngh\u0129a
-BookCategory.Dictionary=T\u1EEB \u0110i\u1EC3n
-BookCategory.General=S\u00E1ch Chung
-BookCategory.Glossaries=C\u00E1c T\u1EEB \u0110i\u1EC3n Thu\u1EADt Ng\u1EEF
-BookCategory.Other=S\u00E1ch Kh\u00E1ch
-BookCategory.Readings=S\u00E1ch B\u1ED3i Linh H\u1EB1ng Ng\u00E0y
-BookCategory.Unorthodox=T\u00E0 Gi\u00E1o / Kh\u00F4ng Ch\u00EDnh Th\u1ED1ng / T\u00E0i Li\u1EC7u \u0110\u00E1ng Nghi Ng\u1EDD
-Defaults.BibleNotFound=Cu\u1ED1n Kinh Th\u00E1nh g\u1ECDi "{0}" kh\u00F4ng \u0111\u01B0\u1EE3c t\u00ECm.
-Defaults.CommentaryNotFound=S\u00E1ch gi\u1EA3i ngh\u0129a g\u1ECDi "{0}" kh\u00F4ng \u0111\u01B0\u1EE3c t\u00ECm.
-Defaults.DictionaryNotFound=T\u1EEB \u0111i\u1EC3n g\u1ECDi "{0}" kh\u00F4ng \u0111\u01B0\u1EE3c t\u00ECm.
+Bible\ called\ "{0}"\ could\ not\ be\ found. = Cu\u1ED1n Kinh Th\u00E1nh g\u1ECDi "{0}" kh\u00F4ng \u0111\u01B0\u1EE3c t\u00ECm.
+
+Biblical\ Texts = Kinh Th\u00E1nh
+
+Commentaries = S\u00E1ch Gi\u1EA3i Ngh\u0129a
+
+Commentary\ called\ "{0}"\ could\ not\ be\ found. = S\u00E1ch gi\u1EA3i ngh\u0129a g\u1ECDi "{0}" kh\u00F4ng \u0111\u01B0\u1EE3c t\u00ECm.
+
+Cults\ /\ Unorthodox\ /\ Questionable\ Materials = T\u00E0 Gi\u00E1o / Kh\u00F4ng Ch\u00EDnh Th\u1ED1ng / T\u00E0i Li\u1EC7u \u0110\u00E1ng Nghi Ng\u1EDD
+
+Daily\ Devotionals = S\u00E1ch B\u1ED3i Linh H\u1EB1ng Ng\u00E0y
+
+Dictionaries = T\u1EEB \u0110i\u1EC3n
+
+Dictionary\ called\ "{0}"\ could\ not\ be\ found. = T\u1EEB \u0111i\u1EC3n g\u1ECDi "{0}" kh\u00F4ng \u0111\u01B0\u1EE3c t\u00ECm.
+
+General\ Books = S\u00E1ch Chung
+
+Glossaries = C\u00E1c T\u1EEB \u0110i\u1EC3n Thu\u1EADt Ng\u1EEF
+
+Other = S\u00E1ch Kh\u00E1ch

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_zh.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_zh.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_zh.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,12 +1,22 @@
 
-BookCategory.Bible=\u8056\u7D93
-BookCategory.Commentary=\u8A55\u8AD6
-BookCategory.Dictionary=\u5B57\u5178
-BookCategory.General=\u666E\u904D\u7684\u66F8\u7C4D
-BookCategory.Glossaries=\u8A5E\u532F\u8868
-BookCategory.Other=\u5176\u4ED6
-BookCategory.Readings=\u6BCF\u65E5\u8B80\u7D93
-BookCategory.Unorthodox=\u72C2\u71B1 / \u975E\u6B63\u7D71 / \u4E0D\u53EF\u53D6\u7684
-Defaults.BibleNotFound=Bible called "{0}" could not be found.
-Defaults.CommentaryNotFound=Commentary called "{0}" could not be found.
-Defaults.DictionaryNotFound=Dictionary called "{0}" could not be found.
+Bible\ called\ "{0}"\ could\ not\ be\ found. = Bible called "{0}" could not be found.
+
+Biblical\ Texts = \u8056\u7D93
+
+Commentaries = \u8A55\u8AD6
+
+Commentary\ called\ "{0}"\ could\ not\ be\ found. = Commentary called "{0}" could not be found.
+
+Cults\ /\ Unorthodox\ /\ Questionable\ Materials = \u72C2\u71B1 / \u975E\u6B63\u7D71 / \u4E0D\u53EF\u53D6\u7684
+
+Daily\ Devotionals = \u6BCF\u65E5\u8B80\u7D93
+
+Dictionaries = \u5B57\u5178
+
+Dictionary\ called\ "{0}"\ could\ not\ be\ found. = Dictionary called "{0}" could not be found.
+
+General\ Books = \u666E\u904D\u7684\u66F8\u7C4D
+
+Glossaries = \u8A5E\u532F\u8868
+
+Other = \u5176\u4ED6

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_zh_CN.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_zh_CN.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/UserMsg_zh_CN.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,12 +1,22 @@
 
-BookCategory.Bible=\u5723\u7ECF
-BookCategory.Commentary=\u8BC4\u8BBA
-BookCategory.Dictionary=\u5B57\u5178
-BookCategory.General=\u666E\u904D\u7684\u4E66\u7C4D
-BookCategory.Glossaries=\u8BCD\u6C47\u8868
-BookCategory.Other=\u5176\u4ED6
-BookCategory.Readings=\u6BCF\u65E5\u8BFB\u7ECF
-BookCategory.Unorthodox=\u72C2\u70ED / \u975E\u6B63\u7EDF / \u4E0D\u53EF\u53D6\u7684
-Defaults.BibleNotFound=Bible called "{0}" could not be found.
-Defaults.CommentaryNotFound=Commentary called "{0}" could not be found.
-Defaults.DictionaryNotFound=Dictionary called "{0}" could not be found.
+Bible\ called\ "{0}"\ could\ not\ be\ found. = Bible called "{0}" could not be found.
+
+Biblical\ Texts = \u5723\u7ECF
+
+Commentaries = \u8BC4\u8BBA
+
+Commentary\ called\ "{0}"\ could\ not\ be\ found. = Commentary called "{0}" could not be found.
+
+Cults\ /\ Unorthodox\ /\ Questionable\ Materials = \u72C2\u70ED / \u975E\u6B63\u7EDF / \u4E0D\u53EF\u53D6\u7684
+
+Daily\ Devotionals = \u6BCF\u65E5\u8BFB\u7ECF
+
+Dictionaries = \u5B57\u5178
+
+Dictionary\ called\ "{0}"\ could\ not\ be\ found. = Dictionary called "{0}" could not be found.
+
+General\ Books = \u666E\u904D\u7684\u4E66\u7C4D
+
+Glossaries = \u8BCD\u6C47\u8868
+
+Other = \u5176\u4ED6

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/AbstractBookMetaData.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/AbstractBookMetaData.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/AbstractBookMetaData.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -281,7 +281,7 @@
      * @see org.crosswire.jsword.book.BookMetaData#toOSIS()
      */
     public Document toOSIS() {
-        throw new UnsupportedOperationException("If you want to use this, implement it."); //$NON-NLS-1$
+        throw new UnsupportedOperationException("If you want to use this, implement it.");
     }
 
     /**

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/AbstractPassageBook.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/AbstractPassageBook.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/AbstractPassageBook.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -166,11 +166,11 @@
 
                         setRawText(key, text);
                     } else {
-                        log.error("Ignoring non OSIS/Verse content of DIV."); //$NON-NLS-1$
+                        log.error("Ignoring non OSIS/Verse content of DIV.");
                     }
                 }
             } else {
-                log.error("Ignoring non OSIS/Verse content of DIV."); //$NON-NLS-1$
+                log.error("Ignoring non OSIS/Verse content of DIV.");
             }
         }
     }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/DefaultBookMetaData.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/DefaultBookMetaData.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/DefaultBookMetaData.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -127,7 +127,7 @@
     public void setInitials(String initials) {
         if (initials == null) {
             if (name == null) {
-                this.initials = ""; //$NON-NLS-1$
+                this.initials = "";
             } else {
                 this.initials = StringUtil.getInitials(name);
             }
@@ -190,10 +190,10 @@
     public Document toOSIS() {
         OSISUtil.OSISFactory factory = OSISUtil.factory();
         Element ele = factory.createTable();
-        addRow(ele, "Initials", getInitials()); //$NON-NLS-1$
-        addRow(ele, "Description", getName()); //$NON-NLS-1$
-        addRow(ele, "Key", getBookCategory().toString()); //$NON-NLS-1$
-        addRow(ele, "Language", getLanguage().getName()); //$NON-NLS-1$
+        addRow(ele, "Initials", getInitials());
+        addRow(ele, "Description", getName());
+        addRow(ele, "Key", getBookCategory().toString());
+        addRow(ele, "Language", getLanguage().getName());
         return new Document(ele);
     }
 

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,9 +31,9 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 public final class Msg extends MsgBase {
-    static final Msg DRIVER_READONLY = new Msg("AbstractBookDriver.DriverReadonly"); //$NON-NLS-1$
-    static final Msg INDEX_FAIL = new Msg("AbstractBookDriver.IndexFail"); //$NON-NLS-1$
-    static final Msg FILTER_FAIL = new Msg("AbstractPassageBook.FilterFail"); //$NON-NLS-1$
+    static final Msg DRIVER_READONLY = new Msg("AbstractBookDriver.DriverReadonly");
+    static final Msg INDEX_FAIL = new Msg("AbstractBookDriver.IndexFail");
+    static final Msg FILTER_FAIL = new Msg("AbstractPassageBook.FilterFail");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/Msg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/Msg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/basic/Msg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,10 +1,3 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
 AbstractBookDriver.DriverReadonly=This Book is read-only.
 AbstractBookDriver.IndexFail=Failed to initialize the search index
 AbstractPassageBook.FilterFail=Filtering input data failed.

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/FilterFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/FilterFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/FilterFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -66,12 +66,12 @@
 
         // the default value
         try {
-            Class cdeft = (Class) map.remove("default"); //$NON-NLS-1$
+            Class cdeft = (Class) map.remove("default");
             deft = (Filter) cdeft.newInstance();
         } catch (InstantiationException e) {
-            log.fatal("Failed to get default filter, will attempt to use first", e); //$NON-NLS-1$
+            log.fatal("Failed to get default filter, will attempt to use first", e);
         } catch (IllegalAccessException e) {
-            log.fatal("Failed to get default filter, will attempt to use first", e); //$NON-NLS-1$
+            log.fatal("Failed to get default filter, will attempt to use first", e);
         }
 
         // the lookup table
@@ -83,9 +83,9 @@
                 Filter instance = (Filter) clazz.newInstance();
                 addFilter((String) entry.getKey(), instance);
             } catch (InstantiationException ex) {
-                log.error("Failed to add filter", ex); //$NON-NLS-1$
+                log.error("Failed to add filter", ex);
             } catch (IllegalAccessException ex) {
-                log.error("Failed to add filter", ex); //$NON-NLS-1$
+                log.error("Failed to add filter", ex);
             }
         }
 

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,7 +31,7 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class Msg extends MsgBase {
-    static final Msg TRUNCATED = new Msg("FilterUtil.Truncated"); //$NON-NLS-1$
+    static final Msg TRUNCATED = new Msg("FilterUtil.Truncated");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Msg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Msg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/Msg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,8 +1 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
 FilterUtil.Truncated=... (truncated)

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFFilter.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFFilter.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFFilter.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -115,10 +115,10 @@
                         && ltpos < remains.length()
                         && Character.isUpperCase(remains.charAt(ltpos + 1)))
                 {
-                    DataPolice.report("Possible bad GBF tag" + remains); //$NON-NLS-1$
+                    DataPolice.report("Possible bad GBF tag" + remains);
                 }
                 if (gtpos != -1 && ltpos >= 0) {
-                    DataPolice.report("Possible bad GBF tag" + remains); //$NON-NLS-1$
+                    DataPolice.report("Possible bad GBF tag" + remains);
                 }
                 int pos = Math.max(ltpos, gtpos) + 1;
                 // If there were not any <, > or either ended the string
@@ -182,6 +182,6 @@
         return taglist;
     }
 
-    private static final String SEPARATORS = " ,:;.?!"; //$NON-NLS-1$
+    private static final String SEPARATORS = " ,:;.?!";
 
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFTagBuilders.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFTagBuilders.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFTagBuilders.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -92,7 +92,7 @@
             if (tag == null) {
                 // I'm not confident enough that we handle all the GBF tags
                 // that I will blame the book instead of the program
-                log.warn("In " + book.getInitials() + "(" + key.getName() + ") ignoring tag of <" + name + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+                log.warn("In " + book.getInitials() + "(" + key.getName() + ") ignoring tag of <" + name + ">");
                 // DataPolice.report("Ignoring tag of <" + name + ">");
             }
         }
@@ -149,12 +149,12 @@
     */
     static final class EscapeTagBuilder implements TagBuilder {
         public Tag createTag(final String name) {
-            if ("CG".equals(name)) { //$NON-NLS-1$
-                return new TextTag("&gt;"); //$NON-NLS-1$
+            if ("CG".equals(name)) {
+                return new TextTag("&gt;");
             }
 
             // else "CT"
-            return new TextTag("&lt;"); //$NON-NLS-1$
+            return new TextTag("&lt;");
         }
 
     }
@@ -319,59 +319,59 @@
         TagBuilder defaultEndTagBuilder = new DefaultEndTagBuilder();
         TagBuilder ignoreTagBuilder = new IgnoredTagBuilder();
 
-        BUILDERS.put("FB", new BoldStartTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("Fb", defaultEndTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("FB", new BoldStartTagBuilder());
+        BUILDERS.put("Fb", defaultEndTagBuilder);
 
-        BUILDERS.put("FI", new ItalicStartTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("Fi", defaultEndTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("FI", new ItalicStartTagBuilder());
+        BUILDERS.put("Fi", defaultEndTagBuilder);
 
-        BUILDERS.put("FR", new RedLetterStartTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("Fr", defaultEndTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("FR", new RedLetterStartTagBuilder());
+        BUILDERS.put("Fr", defaultEndTagBuilder);
 
-        BUILDERS.put("FU", new UnderlineStartTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("Fu", defaultEndTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("FU", new UnderlineStartTagBuilder());
+        BUILDERS.put("Fu", defaultEndTagBuilder);
 
-        BUILDERS.put("RX", new CrossRefStartTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("Rx", defaultEndTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("RX", new CrossRefStartTagBuilder());
+        BUILDERS.put("Rx", defaultEndTagBuilder);
 
-        BUILDERS.put("CL", new EndOfLineTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("CM", new ParagraphTagBuilder()); //$NON-NLS-1$
+        BUILDERS.put("CL", new EndOfLineTagBuilder());
+        BUILDERS.put("CM", new ParagraphTagBuilder());
 
-        BUILDERS.put("RF", new FootnoteStartTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("Rf", new FootnoteEndTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("RB", new TextFootnoteTagBuilder()); //$NON-NLS-1$
+        BUILDERS.put("RF", new FootnoteStartTagBuilder());
+        BUILDERS.put("Rf", new FootnoteEndTagBuilder());
+        BUILDERS.put("RB", new TextFootnoteTagBuilder());
 
-        BUILDERS.put("TS", new HeaderStartTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("Ts", defaultEndTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("TS", new HeaderStartTagBuilder());
+        BUILDERS.put("Ts", defaultEndTagBuilder);
 
-        BUILDERS.put("TB", new PsalmTitleStartTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("Tb", defaultEndTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("TB", new PsalmTitleStartTagBuilder());
+        BUILDERS.put("Tb", defaultEndTagBuilder);
 
-        BUILDERS.put("TH", new TitleStartTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("Th", defaultEndTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("TH", new TitleStartTagBuilder());
+        BUILDERS.put("Th", defaultEndTagBuilder);
 
-        BUILDERS.put("BA", ignoreTagBuilder); //$NON-NLS-1$
-        BUILDERS.put("BC", ignoreTagBuilder); //$NON-NLS-1$
-        BUILDERS.put("BI", ignoreTagBuilder); //$NON-NLS-1$
-        BUILDERS.put("BN", ignoreTagBuilder); //$NON-NLS-1$
-        BUILDERS.put("BO", ignoreTagBuilder); //$NON-NLS-1$
-        BUILDERS.put("BP", ignoreTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("BA", ignoreTagBuilder);
+        BUILDERS.put("BC", ignoreTagBuilder);
+        BUILDERS.put("BI", ignoreTagBuilder);
+        BUILDERS.put("BN", ignoreTagBuilder);
+        BUILDERS.put("BO", ignoreTagBuilder);
+        BUILDERS.put("BP", ignoreTagBuilder);
 
-        BUILDERS.put("JR", new JustifyRightTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("JL", ignoreTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("JR", new JustifyRightTagBuilder());
+        BUILDERS.put("JL", ignoreTagBuilder);
 
-        BUILDERS.put("FO", new OTQuoteStartTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("Fo", defaultEndTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("FO", new OTQuoteStartTagBuilder());
+        BUILDERS.put("Fo", defaultEndTagBuilder);
 
-        BUILDERS.put("PP", new PoetryStartTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("Pp", defaultEndTagBuilder); //$NON-NLS-1$
+        BUILDERS.put("PP", new PoetryStartTagBuilder());
+        BUILDERS.put("Pp", defaultEndTagBuilder);
 
         TagBuilder builder = new StrongsWordTagBuilder();
-        BUILDERS.put("WH", builder); //$NON-NLS-1$
-        BUILDERS.put("WG", builder); //$NON-NLS-1$
-        BUILDERS.put("WT", new StrongsMorphTagBuilder()); //$NON-NLS-1$
+        BUILDERS.put("WH", builder);
+        BUILDERS.put("WG", builder);
+        BUILDERS.put("WT", new StrongsMorphTagBuilder());
 
-        BUILDERS.put("CG", new EscapeTagBuilder()); //$NON-NLS-1$
-        BUILDERS.put("CT", new EscapeTagBuilder()); //$NON-NLS-1$
+        BUILDERS.put("CG", new EscapeTagBuilder());
+        BUILDERS.put("CT", new EscapeTagBuilder());
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFTags.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFTags.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/GBFTags.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -64,7 +64,7 @@
 
         public void updateOsisStack(LinkedList stack) {
             if (stack.isEmpty()) {
-                DataPolice.report("Ignoring end tag without corresponding start tag: " + getName()); //$NON-NLS-1$
+                DataPolice.report("Ignoring end tag without corresponding start tag: " + getName());
                 return;
             }
             stack.removeFirst();
@@ -105,7 +105,7 @@
                 Passage ref = (Passage) KEY_FACTORY.getKey(refstr);
                 ele.setAttribute(OSISUtil.OSIS_ATTR_REF, ref.getOsisRef());
             } catch (NoSuchKeyException ex) {
-                DataPolice.report("unable to parse reference: " + refstr); //$NON-NLS-1$
+                DataPolice.report("unable to parse reference: " + refstr);
             }
             GBFTags.updateOsisStack(stack, ele);
         }
@@ -168,13 +168,13 @@
 
         public void updateOsisStack(LinkedList stack) {
             if (stack.isEmpty()) {
-                DataPolice.report("Ignoring end tag without corresponding start tag: " + getName()); //$NON-NLS-1$
+                DataPolice.report("Ignoring end tag without corresponding start tag: " + getName());
                 return;
             }
 
             Object pop = stack.removeFirst();
             if (!(pop instanceof Element)) {
-                DataPolice.report("expected to pop a Note, but found " + ClassUtil.getShortClassName(pop.getClass())); //$NON-NLS-1$
+                DataPolice.report("expected to pop a Note, but found " + ClassUtil.getShortClassName(pop.getClass()));
                 return;
             }
 
@@ -384,7 +384,7 @@
                 Element ele = (Element) top;
                 int size = ele.getContentSize();
                 if (size == 0) {
-                    DataPolice.report("No content to attach word to: <" + name + ">."); //$NON-NLS-1$ //$NON-NLS-2$
+                    DataPolice.report("No content to attach word to: <" + name + ">.");
                     return;
                 }
 
@@ -400,7 +400,7 @@
                 } else if (prevObj instanceof Element) {
                     word = (Element) prevObj;
                 } else {
-                    DataPolice.report("No words to attach word to: <" + name + ">."); //$NON-NLS-1$ //$NON-NLS-2$
+                    DataPolice.report("No words to attach word to: <" + name + ">.");
                     return;
                 }
 
@@ -435,7 +435,7 @@
                 Element ele = (Element) top;
                 int size = ele.getContentSize();
                 if (size == 0) {
-                    DataPolice.report("No content to attach word to: <" + name + ">."); //$NON-NLS-1$ //$NON-NLS-2$
+                    DataPolice.report("No content to attach word to: <" + name + ">.");
                     return;
                 }
 
@@ -452,7 +452,7 @@
                 } else if (prevObj instanceof Element) {
                     word = (Element) prevObj;
                 } else {
-                    DataPolice.report("No words to attach word to: <" + name + ">."); //$NON-NLS-1$ //$NON-NLS-2$
+                    DataPolice.report("No words to attach word to: <" + name + ">.");
                     return;
                 }
 

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/gbf/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,7 +31,7 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class Msg extends MsgBase {
-    static final Msg NAME_JESUS = new Msg("RedLetterStartTagBuilder.NameJesus"); //$NON-NLS-1$
+    static final Msg NAME_JESUS = new Msg("RedLetterStartTagBuilder.NameJesus");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,7 +31,7 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class Msg extends MsgBase {
-    static final Msg UNUSED = new Msg("UNUSED"); //$NON-NLS-1$
+    static final Msg UNUSED = new Msg("UNUSED");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/Msg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/Msg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/Msg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,8 +1 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
 UNUSED=Unused

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/OSISFilter.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/OSISFilter.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/osis/OSISFilter.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -61,7 +61,7 @@
 
         // FIXME(dms): this is a major HACK handling a problem with a badly
         // encoded module.
-        if (book.getInitials().startsWith("NET") && plain.endsWith("</div>")) //$NON-NLS-1$ //$NON-NLS-2$
+        if (book.getInitials().startsWith("NET") && plain.endsWith("</div>"))
         {
             clean = clean.substring(0, plain.length() - 6);
         }
@@ -90,8 +90,8 @@
         }
 
         if (ex != null) {
-            DataPolice.report("Parse " + book.getInitials() + "(" + key.getName() + ") failed: " + ex.getMessage() + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                    "\non: " + plain); //$NON-NLS-1$
+            DataPolice.report("Parse " + book.getInitials() + "(" + key.getName() + ") failed: " + ex.getMessage() +
+                    "\non: " + plain);
             ele = cleanTags(book, key, clean);
         }
 
@@ -128,7 +128,7 @@
             ex = e;
         }
 
-        log.warn("Could not fix " + book.getInitials() + "(" + key.getName() + ")  by cleaning tags: " + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        log.warn("Could not fix " + book.getInitials() + "(" + key.getName() + ")  by cleaning tags: " + ex.getMessage());
 
         return null;
     }
@@ -139,7 +139,7 @@
      */
     private Element parse(String plain) throws JDOMException, IOException {
         // create a root element to house our document fragment
-        StringReader in = new StringReader("<div>" + plain + "</div>"); //$NON-NLS-1$ //$NON-NLS-2$
+        StringReader in = new StringReader("<div>" + plain + "</div>");
         InputSource is = new InputSource(in);
         SAXBuilder builder = new SAXBuilder();
         Document doc = builder.build(is);

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ATag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ATag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ATag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "a"; //$NON-NLS-1$
+        return "a";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/AbbrTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/AbbrTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/AbbrTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "abbr"; //$NON-NLS-1$
+        return "abbr";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "b"; //$NON-NLS-1$
+        return "b";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BigTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BigTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BigTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "big"; //$NON-NLS-1$
+        return "big";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BlockquoteTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BlockquoteTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BlockquoteTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "blockquote"; //$NON-NLS-1$
+        return "blockquote";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BrTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BrTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/BrTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "br"; //$NON-NLS-1$
+        return "br";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CenterTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CenterTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CenterTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "center"; //$NON-NLS-1$
+        return "center";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CitationTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CitationTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CitationTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "citation"; //$NON-NLS-1$
+        return "citation";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CustomHandler.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CustomHandler.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/CustomHandler.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -186,7 +186,7 @@
             t = (Tag) TAG_MAP.get(qname.toLowerCase(Locale.ENGLISH));
 
             if (t == null) {
-                DataPolice.report("Unknown thml element: " + localname + " qname=" + qname); //$NON-NLS-1$ //$NON-NLS-2$
+                DataPolice.report("Unknown thml element: " + localname + " qname=" + qname);
 
                 // Report on it only once and make sure the content is output.
                 t = new AnonymousTag(qname);
@@ -194,7 +194,7 @@
                 return t;
             }
 
-            DataPolice.report("Wrong case used in thml element: " + qname); //$NON-NLS-1$
+            DataPolice.report("Wrong case used in thml element: " + qname);
         }
         return t;
     }
@@ -222,88 +222,88 @@
          */
         Tag[] tags = new Tag[] {
                 // The following are defined in Voyager xhtml 4.0
-                new ATag(), new AbbrTag(), new AliasTag("acronym", new AbbrTag()), //$NON-NLS-1$
-                new AnonymousTag("address"), //$NON-NLS-1$
-                new SkipTag("applet"), //$NON-NLS-1$
-                new SkipTag("area"), //$NON-NLS-1$
-                new BTag(), new SkipTag("base"), //$NON-NLS-1$
-                new SkipTag("basefont"), //$NON-NLS-1$
-                new IgnoreTag("bdo"), //$NON-NLS-1$
-                new BigTag(), new BlockquoteTag(), new IgnoreTag("body"), //$NON-NLS-1$
-                new BrTag(), new SkipTag("button"), //$NON-NLS-1$
-                new AnonymousTag("caption"), //$NON-NLS-1$
-                new CenterTag(), new AnonymousTag("cite"), //$NON-NLS-1$
-                new AnonymousTag("code"), //$NON-NLS-1$
-                new SkipTag("col"), //$NON-NLS-1$
-                new SkipTag("colgroup"), //$NON-NLS-1$
-                new AliasTag("dd", new LiTag()), //$NON-NLS-1$
-                new AnonymousTag("del"), //$NON-NLS-1$
-                new AnonymousTag("dfn"), //$NON-NLS-1$
-                new DivTag(), new AliasTag("dl", new UlTag()), //$NON-NLS-1$
-                new AliasTag("dt", new LiTag()), //$NON-NLS-1$
-                new AliasTag("em", new ITag()), //$NON-NLS-1$
-                new IgnoreTag("fieldset"), //$NON-NLS-1$
-                new FontTag(), new SkipTag("form"), //$NON-NLS-1$
-                new SkipTag("frame"), //$NON-NLS-1$
-                new SkipTag("frameset"), //$NON-NLS-1$
-                new AliasTag("h1", new HTag(1)), //$NON-NLS-1$
-                new AliasTag("h2", new HTag(2)), //$NON-NLS-1$
-                new AliasTag("h3", new HTag(3)), //$NON-NLS-1$
-                new AliasTag("h4", new HTag(4)), //$NON-NLS-1$
-                new AliasTag("h5", new HTag(5)), //$NON-NLS-1$
-                new AliasTag("h6", new HTag(6)), //$NON-NLS-1$
-                new SkipTag("head"), //$NON-NLS-1$
-                new HrTag(), new IgnoreTag("html"), //$NON-NLS-1$
-                new IgnoreTag("frameset"), //$NON-NLS-1$
-                new ITag(), new SkipTag("iframe"), //$NON-NLS-1$
-                new ImgTag(), new SkipTag("input"), //$NON-NLS-1$
-                new AnonymousTag("ins"), //$NON-NLS-1$
-                new AnonymousTag("kbd"), //$NON-NLS-1$
-                new AnonymousTag("label"), //$NON-NLS-1$
-                new AnonymousTag("legend"), //$NON-NLS-1$
-                new LiTag(), new SkipTag("link"), //$NON-NLS-1$
-                new SkipTag("map"), //$NON-NLS-1$
-                new SkipTag("meta"), //$NON-NLS-1$
-                new SkipTag("noscript"), //$NON-NLS-1$
-                new SkipTag("object"), //$NON-NLS-1$
-                new OlTag(), new SkipTag("optgroup"), //$NON-NLS-1$
-                new SkipTag("option"), //$NON-NLS-1$
-                new PTag(), new SkipTag("param"), //$NON-NLS-1$
-                new IgnoreTag("pre"), //$NON-NLS-1$
-                new QTag(), new RootTag(), new STag(), new AnonymousTag("samp"), //$NON-NLS-1$
-                new SkipTag("script"), //$NON-NLS-1$
-                new SkipTag("select"), //$NON-NLS-1$
-                new SmallTag(), new IgnoreTag("span"), //$NON-NLS-1$
-                new AliasTag("strong", new BTag()), //$NON-NLS-1$
-                new SkipTag("style"), //$NON-NLS-1$
-                new SubTag(), new SupTag(), new SyncTag(), new TableTag(), new IgnoreTag("tbody"), //$NON-NLS-1$
-                new TdTag(), new IgnoreTag("tfoot"), //$NON-NLS-1$
-                new SkipTag("textarea"), //$NON-NLS-1$
-                new SkipTag("title"), //$NON-NLS-1$
-                new IgnoreTag("thead"), //$NON-NLS-1$
-                new ThTag(), new TrTag(), new TtTag(), new UTag(), new UlTag(), new AnonymousTag("var"), //$NON-NLS-1$
+                new ATag(), new AbbrTag(), new AliasTag("acronym", new AbbrTag()),
+                new AnonymousTag("address"),
+                new SkipTag("applet"),
+                new SkipTag("area"),
+                new BTag(), new SkipTag("base"),
+                new SkipTag("basefont"),
+                new IgnoreTag("bdo"),
+                new BigTag(), new BlockquoteTag(), new IgnoreTag("body"),
+                new BrTag(), new SkipTag("button"),
+                new AnonymousTag("caption"),
+                new CenterTag(), new AnonymousTag("cite"),
+                new AnonymousTag("code"),
+                new SkipTag("col"),
+                new SkipTag("colgroup"),
+                new AliasTag("dd", new LiTag()),
+                new AnonymousTag("del"),
+                new AnonymousTag("dfn"),
+                new DivTag(), new AliasTag("dl", new UlTag()),
+                new AliasTag("dt", new LiTag()),
+                new AliasTag("em", new ITag()),
+                new IgnoreTag("fieldset"),
+                new FontTag(), new SkipTag("form"),
+                new SkipTag("frame"),
+                new SkipTag("frameset"),
+                new AliasTag("h1", new HTag(1)),
+                new AliasTag("h2", new HTag(2)),
+                new AliasTag("h3", new HTag(3)),
+                new AliasTag("h4", new HTag(4)),
+                new AliasTag("h5", new HTag(5)),
+                new AliasTag("h6", new HTag(6)),
+                new SkipTag("head"),
+                new HrTag(), new IgnoreTag("html"),
+                new IgnoreTag("frameset"),
+                new ITag(), new SkipTag("iframe"),
+                new ImgTag(), new SkipTag("input"),
+                new AnonymousTag("ins"),
+                new AnonymousTag("kbd"),
+                new AnonymousTag("label"),
+                new AnonymousTag("legend"),
+                new LiTag(), new SkipTag("link"),
+                new SkipTag("map"),
+                new SkipTag("meta"),
+                new SkipTag("noscript"),
+                new SkipTag("object"),
+                new OlTag(), new SkipTag("optgroup"),
+                new SkipTag("option"),
+                new PTag(), new SkipTag("param"),
+                new IgnoreTag("pre"),
+                new QTag(), new RootTag(), new STag(), new AnonymousTag("samp"),
+                new SkipTag("script"),
+                new SkipTag("select"),
+                new SmallTag(), new IgnoreTag("span"),
+                new AliasTag("strong", new BTag()),
+                new SkipTag("style"),
+                new SubTag(), new SupTag(), new SyncTag(), new TableTag(), new IgnoreTag("tbody"),
+                new TdTag(), new IgnoreTag("tfoot"),
+                new SkipTag("textarea"),
+                new SkipTag("title"),
+                new IgnoreTag("thead"),
+                new ThTag(), new TrTag(), new TtTag(), new UTag(), new UlTag(), new AnonymousTag("var"),
 
                 // ThML adds the following to Voyager
                 // Note: hymn.mod is not here nor are additional head&DC
                 // elements
-                new AnonymousTag("added"), //$NON-NLS-1$
-                new AnonymousTag("attr"), //$NON-NLS-1$
-                new AnonymousTag("argument"), //$NON-NLS-1$
-                new CitationTag(), new AnonymousTag("date"), //$NON-NLS-1$
-                new AnonymousTag("deleted"), //$NON-NLS-1$
-                new AnonymousTag("def"), //$NON-NLS-1$
-                new AliasTag("div1", new DivTag(1)), //$NON-NLS-1$
-                new AliasTag("div2", new DivTag(2)), //$NON-NLS-1$
-                new AliasTag("div3", new DivTag(3)), //$NON-NLS-1$
-                new AliasTag("div4", new DivTag(4)), //$NON-NLS-1$
-                new AliasTag("div5", new DivTag(5)), //$NON-NLS-1$
-                new AliasTag("div6", new DivTag(6)), //$NON-NLS-1$
-                new ForeignTag(), new AnonymousTag("index"), //$NON-NLS-1$
-                new AnonymousTag("insertIndex"), //$NON-NLS-1$
-                new AnonymousTag("glossary"), //$NON-NLS-1$
-                new NoteTag(), new NameTag(), new PbTag(), new AnonymousTag("scripCom"), //$NON-NLS-1$
-                new AnonymousTag("scripContext"), //$NON-NLS-1$
-                new ScripRefTag(), new ScriptureTag(), new TermTag(), new AnonymousTag("unclear"), //$NON-NLS-1$
+                new AnonymousTag("added"),
+                new AnonymousTag("attr"),
+                new AnonymousTag("argument"),
+                new CitationTag(), new AnonymousTag("date"),
+                new AnonymousTag("deleted"),
+                new AnonymousTag("def"),
+                new AliasTag("div1", new DivTag(1)),
+                new AliasTag("div2", new DivTag(2)),
+                new AliasTag("div3", new DivTag(3)),
+                new AliasTag("div4", new DivTag(4)),
+                new AliasTag("div5", new DivTag(5)),
+                new AliasTag("div6", new DivTag(6)),
+                new ForeignTag(), new AnonymousTag("index"),
+                new AnonymousTag("insertIndex"),
+                new AnonymousTag("glossary"),
+                new NoteTag(), new NameTag(), new PbTag(), new AnonymousTag("scripCom"),
+                new AnonymousTag("scripContext"),
+                new ScripRefTag(), new ScriptureTag(), new TermTag(), new AnonymousTag("unclear"),
                 new VerseTag(),
         };
         for (int i = 0; i < tags.length; i++) {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/DivTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/DivTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/DivTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -58,9 +58,9 @@
      */
     public String getTagName() {
         if (level == 0) {
-            return "div"; //$NON-NLS-1$
+            return "div";
         }
-        return "div" + level; //$NON-NLS-1$
+        return "div" + level;
     }
 
     /*
@@ -73,11 +73,11 @@
     /* @Override */
     public Element processTag(Element ele, Attributes attrs) {
         // See if there are variant readings e.g. WHNU Mat 1.9
-        String typeAttr = attrs.getValue("type"); //$NON-NLS-1$
-        if ("variant".equals(typeAttr)) { //$NON-NLS-1$
+        String typeAttr = attrs.getValue("type");
+        if ("variant".equals(typeAttr)) {
             Element seg = OSISUtil.factory().createSeg();
             seg.setAttribute(OSISUtil.OSIS_ATTR_TYPE, OSISUtil.VARIANT_TYPE);
-            String classAttr = attrs.getValue("class"); //$NON-NLS-1$
+            String classAttr = attrs.getValue("class");
             if (classAttr != null) {
                 seg.setAttribute(OSISUtil.OSIS_ATTR_SUBTYPE, OSISUtil.VARIANT_CLASS + '-' + classAttr);
             }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/FontTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/FontTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/FontTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -41,7 +41,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "font"; //$NON-NLS-1$
+        return "font";
     }
 
     /*
@@ -56,14 +56,14 @@
         Element seg = OSISUtil.factory().createSeg();
         StringBuffer buf = new StringBuffer();
 
-        String color = attrs.getValue("color"); //$NON-NLS-1$
+        String color = attrs.getValue("color");
         if (color != null) {
             buf.append(OSISUtil.SEG_COLORPREFIX);
             buf.append(color);
             buf.append(';');
         }
 
-        String size = attrs.getValue("size"); //$NON-NLS-1$
+        String size = attrs.getValue("size");
         if (size != null) {
             buf.append(OSISUtil.SEG_SIZEPREFIX);
             buf.append(size);
@@ -74,7 +74,7 @@
         if (type.length() > 0) {
             seg.setAttribute(OSISUtil.OSIS_ATTR_TYPE, type);
         } else {
-            DataPolice.report("Missing color/size attribute."); //$NON-NLS-1$
+            DataPolice.report("Missing color/size attribute.");
             XMLUtil.debugSAXAttributes(attrs);
         }
 

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ForeignTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ForeignTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ForeignTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -40,7 +40,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "foreign"; //$NON-NLS-1$
+        return "foreign";
     }
 
     /*
@@ -54,7 +54,7 @@
     public Element processTag(Element ele, Attributes attrs) {
         Element div = OSISUtil.factory().createForeign();
 
-        String lang = attrs.getValue("lang"); //$NON-NLS-1$
+        String lang = attrs.getValue("lang");
         if (lang != null) {
             // OSIS defines the long attribute as the one from the xml namespace
             div.setAttribute(OSISUtil.OSIS_ATTR_LANG, lang, Namespace.XML_NAMESPACE);

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/HTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/HTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/HTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -49,7 +49,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "h" + level; //$NON-NLS-1$
+        return "h" + level;
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/HrTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/HrTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/HrTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -35,6 +35,6 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "hr"; //$NON-NLS-1$
+        return "hr";
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ITag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ITag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ITag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "i"; //$NON-NLS-1$
+        return "i";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ImgTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ImgTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ImgTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "img"; //$NON-NLS-1$
+        return "img";
     }
 
     /*
@@ -52,7 +52,7 @@
     /* @Override */
     public Element processTag(Element ele, Attributes attrs) {
         Element img = OSISUtil.factory().createFigure();
-        img.setAttribute(OSISUtil.ATTRIBUTE_FIGURE_SRC, attrs.getValue("src")); //$NON-NLS-1$
+        img.setAttribute(OSISUtil.ATTRIBUTE_FIGURE_SRC, attrs.getValue("src"));
 
         if (ele != null) {
             ele.addContent(img);

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/LTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/LTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/LTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "li"; //$NON-NLS-1$
+        return "li";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/LiTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/LiTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/LiTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "li"; //$NON-NLS-1$
+        return "li";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,7 +31,7 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class Msg extends MsgBase {
-    static final Msg UNUSED = new Msg("UNUSED"); //$NON-NLS-1$
+    static final Msg UNUSED = new Msg("UNUSED");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/NameTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/NameTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/NameTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "name"; //$NON-NLS-1$
+        return "name";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/NoteTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/NoteTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/NoteTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "note"; //$NON-NLS-1$
+        return "note";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/OlTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/OlTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/OlTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "ol"; //$NON-NLS-1$
+        return "ol";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/PTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/PTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/PTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "p"; //$NON-NLS-1$
+        return "p";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/PbTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/PbTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/PbTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -36,7 +36,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "pb"; //$NON-NLS-1$
+        return "pb";
     }
 
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/QTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/QTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/QTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "blockquote"; //$NON-NLS-1$
+        return "blockquote";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/RootTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/RootTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/RootTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -36,7 +36,7 @@
     /**
      * This is added by the parser to we make the string accessible
      */
-    protected static final String TAG_ROOT = "root"; //$NON-NLS-1$
+    protected static final String TAG_ROOT = "root";
 
     /*
      * (non-Javadoc)

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/STag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/STag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/STag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "small"; //$NON-NLS-1$
+        return "small";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ScripRefTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ScripRefTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ScripRefTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -44,7 +44,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "scripRef"; //$NON-NLS-1$
+        return "scripRef";
     }
 
     /*
@@ -58,13 +58,13 @@
     public Element processTag(Element ele, Attributes attrs) {
         Element reference = null;
 
-        String refstr = attrs.getValue("passage"); //$NON-NLS-1$
+        String refstr = attrs.getValue("passage");
         if (refstr != null) {
             Passage ref = null;
             try {
                 ref = (Passage) keyf.getKey(refstr);
             } catch (NoSuchKeyException ex) {
-                DataPolice.report("Unparsable passage: (" + refstr + ") due to " + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
+                DataPolice.report("Unparsable passage: (" + refstr + ") due to " + ex.getMessage());
             }
 
             // If we don't have a Passage then use the origial string
@@ -100,7 +100,7 @@
                 ele.setAttribute(OSISUtil.OSIS_ATTR_REF, osisname);
             }
         } catch (NoSuchKeyException ex) {
-            DataPolice.report("scripRef has no passage attribute, unable to guess: (" + refstr + ") due to " + ex.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
+            DataPolice.report("scripRef has no passage attribute, unable to guess: (" + refstr + ") due to " + ex.getMessage());
         }
     }
 

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ScriptureTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ScriptureTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ScriptureTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "scripture"; //$NON-NLS-1$
+        return "scripture";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SmallTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SmallTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SmallTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "small"; //$NON-NLS-1$
+        return "small";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SubTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SubTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SubTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "sub"; //$NON-NLS-1$
+        return "sub";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SupTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SupTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SupTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "sup"; //$NON-NLS-1$
+        return "sup";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SyncTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SyncTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/SyncTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -50,7 +50,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "sync"; //$NON-NLS-1$
+        return "sync";
     }
 
     /*
@@ -62,10 +62,10 @@
      */
     public Element processTag(Element ele, Attributes attrs) {
         // Strong's reference
-        String type = attrs.getValue("type"); //$NON-NLS-1$
-        String value = attrs.getValue("value"); //$NON-NLS-1$
+        String type = attrs.getValue("type");
+        String value = attrs.getValue("value");
 
-        if ("Strongs".equals(type)) { //$NON-NLS-1$
+        if ("Strongs".equals(type)) {
             List siblings = ele.getContent();
             int size = siblings.size();
             if (size == 0) {
@@ -94,7 +94,7 @@
             return null;
         }
 
-        if ("morph".equals(type)) { //$NON-NLS-1$
+        if ("morph".equals(type)) {
             List siblings = ele.getContent();
             int size = siblings.size();
             if (size == 0) {
@@ -123,9 +123,9 @@
             return null;
         }
 
-        if ("Dict".equals(type)) { //$NON-NLS-1$
+        if ("Dict".equals(type)) {
             Element div = OSISUtil.factory().createDiv();
-            div.setAttribute(OSISUtil.OSIS_ATTR_OSISID, "dict://" + value); //$NON-NLS-1$
+            div.setAttribute(OSISUtil.OSIS_ATTR_OSISID, "dict://" + value);
 
             if (ele != null) {
                 ele.addContent(div);
@@ -134,7 +134,7 @@
             return div;
         }
 
-        DataPolice.report("sync tag has type=" + type + " when value=" + value); //$NON-NLS-1$ //$NON-NLS-2$
+        DataPolice.report("sync tag has type=" + type + " when value=" + value);
         return null;
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/THMLFilter.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/THMLFilter.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/THMLFilter.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -76,10 +76,10 @@
                 int start = Math.max(0, colNumber - 40);
                 int stop = Math.min(finalInput.length(), colNumber + 40);
                 int here = stop - start;
-                log.warn("Could not fix " + book.getInitials() + '(' + key.getName() + ") by " + //$NON-NLS-1$ //$NON-NLS-2$
-                        errorMessage + ": Error here(" + colNumber + ',' + finalInput.length() + ',' + here + "): " + finalInput.substring(start, stop)); //$NON-NLS-1$ //$NON-NLS-2$
+                log.warn("Could not fix " + book.getInitials() + '(' + key.getName() + ") by " +
+                        errorMessage + ": Error here(" + colNumber + ',' + finalInput.length() + ',' + here + "): " + finalInput.substring(start, stop));
             } else {
-                log.warn("Could not fix " + book.getInitials() + "(" + key.getName() + ") by " + errorMessage + ": " + error.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+                log.warn("Could not fix " + book.getInitials() + "(" + key.getName() + ") by " + errorMessage + ": " + error.getMessage());
             }
             ele = OSISUtil.factory().createP();
         }
@@ -104,7 +104,7 @@
     private Element cleanParse(Book book, Key key, String plain) {
         // So just try to strip out all XML looking things
         String clean = XMLUtil.cleanAllEntities(plain);
-        Element ele = parse(book, key, clean, "cleaning entities"); //$NON-NLS-1$
+        Element ele = parse(book, key, clean, "cleaning entities");
 
         if (ele == null) {
             ele = cleanText(book, key, clean);
@@ -116,10 +116,10 @@
     private Element cleanText(Book book, Key key, String plain) {
         // So just try to strip out all XML looking things
         String clean = XMLUtil.cleanAllCharacters(plain);
-        Element ele = parse(book, key, clean, "cleaning text"); //$NON-NLS-1$
+        Element ele = parse(book, key, clean, "cleaning text");
 
         if (ele == null) {
-            ele = parse(book, key, XMLUtil.closeEmptyTags(clean), "closing empty tags"); //$NON-NLS-1$
+            ele = parse(book, key, XMLUtil.closeEmptyTags(clean), "closing empty tags");
         }
 
         if (ele == null) {
@@ -132,7 +132,7 @@
     private Element cleanTags(Book book, Key key, String plain) {
         // So just try to strip out all XML looking things
         String clean = XMLUtil.cleanAllTags(plain);
-        return parse(book, key, clean, "cleaning tags"); //$NON-NLS-1$
+        return parse(book, key, clean, "cleaning tags");
     }
 
     private Element parse(Book book, Key key, String plain, String failMessage) {
@@ -140,7 +140,7 @@
         // We need to create a root element to house our document fragment
         StringBuffer buf = new StringBuffer(15 + plain.length()); // 15 for the
                                                                   // tags we add
-        buf.append('<').append(RootTag.TAG_ROOT).append('>').append(plain).append("</").append(RootTag.TAG_ROOT).append('>'); //$NON-NLS-1$
+        buf.append('<').append(RootTag.TAG_ROOT).append('>').append(plain).append("</").append(RootTag.TAG_ROOT).append('>');
         finalInput = buf.toString();
         try {
             StringReader in = new StringReader(finalInput);

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TableTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TableTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TableTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "table"; //$NON-NLS-1$
+        return "table";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TdTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TdTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TdTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "td"; //$NON-NLS-1$
+        return "td";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TermTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TermTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TermTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "term"; //$NON-NLS-1$
+        return "term";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ThTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ThTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/ThTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "th"; //$NON-NLS-1$
+        return "th";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TrTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TrTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TrTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "tr"; //$NON-NLS-1$
+        return "tr";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TtTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TtTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/TtTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "tt"; //$NON-NLS-1$
+        return "tt";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/UTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/UTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/UTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "u"; //$NON-NLS-1$
+        return "u";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/UlTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/UlTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/UlTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,7 +39,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "ul"; //$NON-NLS-1$
+        return "ul";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/VerseTag.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/VerseTag.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/filter/thml/VerseTag.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -40,7 +40,7 @@
      * @see org.crosswire.jsword.book.filter.thml.Tag#getTagName()
      */
     public String getTagName() {
-        return "verse"; //$NON-NLS-1$
+        return "verse";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/InstallException.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/InstallException.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/InstallException.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -82,6 +82,55 @@
     }
 
     /**
+     * Construct the Exception with a message
+     * 
+     * @param msg
+     *            The resource id to read
+     */
+    public InstallException(String msg) {
+        super(msg);
+    }
+
+    /**
+     * Construct the Exception with a message and a nested Exception
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param ex
+     *            The nested Exception
+     */
+    public InstallException(String msg, Throwable ex) {
+        super(msg, ex);
+    }
+
+    /**
+     * Construct the Exception with a message and some Msg params
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param params
+     *            An array of parameters
+     */
+    public InstallException(String msg, Object[] params) {
+        super(msg, params);
+    }
+
+    /**
+     * Construct the Exception with a message, a nested Exception and some Msg
+     * params
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param ex
+     *            The nested Exception
+     * @param params
+     *            An array of parameters
+     */
+    public InstallException(String msg, Throwable ex, Object[] params) {
+        super(msg, ex, params);
+    }
+
+    /**
      * Serialization ID
      */
     private static final long serialVersionUID = 3258132440416335669L;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/InstallManager.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/InstallManager.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/InstallManager.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -59,14 +59,14 @@
             int i = 0;
             for (String def = sitemap.getProperty(PREFIX + ++i); def != null; def = sitemap.getProperty(PREFIX + ++i)) {
                 try {
-                    String[] parts = def.split(",", 3); //$NON-NLS-1$
+                    String[] parts = def.split(",", 3);
                     String type = parts[0];
                     String name = parts[1];
                     String rest = parts[2];
 
                     Class clazz = (Class) factories.get(type);
                     if (clazz == null) {
-                        log.warn(""); //$NON-NLS-1$
+                        log.warn("");
                     } else {
                         InstallerFactory ifactory = (InstallerFactory) clazz.newInstance();
                         Installer installer = ifactory.createInstaller(rest);
@@ -107,9 +107,9 @@
         }
         URI outputURI = CWProject.instance().getWritableURI(getClass().getName(), FileUtil.EXTENSION_PLUGIN);
         try {
-            NetUtil.storeProperties(props, outputURI, "Saved Installer Sites"); //$NON-NLS-1$
+            NetUtil.storeProperties(props, outputURI, "Saved Installer Sites");
         } catch (IOException e) {
-            log.error("Failed to save installers", e); //$NON-NLS-1$
+            log.error("Failed to save installers", e);
         }
     }
 
@@ -139,13 +139,13 @@
                     return name;
                 }
             } catch (InstantiationException e) {
-                log.warn("Failed to instantiate installer factory: " + name + "=" + factclazz.getName(), e); //$NON-NLS-1$ //$NON-NLS-2$
+                log.warn("Failed to instantiate installer factory: " + name + "=" + factclazz.getName(), e);
             } catch (IllegalAccessException e) {
-                log.warn("Failed to instantiate installer factory: " + name + "=" + factclazz.getName(), e); //$NON-NLS-1$ //$NON-NLS-2$
+                log.warn("Failed to instantiate installer factory: " + name + "=" + factclazz.getName(), e);
             }
         }
 
-        log.warn("Failed to find factory name for " + installer.toString() + " among the " + factories.size() + " factories."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        log.warn("Failed to find factory name for " + installer.toString() + " among the " + factories.size() + " factories.");
         return null;
     }
 
@@ -164,12 +164,12 @@
             }
         }
 
-        log.warn("Failed to find installer name for " + installer.toString() + " among the " + installers.size() + " installers."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        log.warn("Failed to find installer name for " + installer.toString() + " among the " + installers.size() + " installers.");
         it = installers.keySet().iterator();
         while (it.hasNext()) {
             String name = (String) it.next();
             Installer test = (Installer) installers.get(name);
-            log.warn("  it isn't equal to " + test.getInstallerDefinition()); //$NON-NLS-1$
+            log.warn("  it isn't equal to " + test.getInstallerDefinition());
         }
         return null;
     }
@@ -246,7 +246,7 @@
 
             if (tinstaller.equals(installer)) {
                 // We have a dupe - remove the old name
-                log.warn("duplicate installers: " + name + "=" + tname + ". removing " + tname); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+                log.warn("duplicate installers: " + name + "=" + tname + ". removing " + tname);
 
                 // Can't call removeInstaller while iterating.
                 it.remove();
@@ -325,7 +325,7 @@
     /**
      * The prefix for the keys in the installer property file.
      */
-    private static final String PREFIX = "Installer."; //$NON-NLS-1$
+    private static final String PREFIX = "Installer.";
 
     /**
      * The map of installer factories

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,7 +31,7 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class Msg extends MsgBase {
-    static final Msg UNUSED = new Msg("UNUSED"); //$NON-NLS-1$
+    static final Msg UNUSED = new Msg("UNUSED");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/AbstractSwordInstaller.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/AbstractSwordInstaller.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/AbstractSwordInstaller.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -147,7 +147,7 @@
             // entries.values() so the underlying list is not modified.
             return new ArrayList(entries.values());
         } catch (InstallException ex) {
-            log.error("Failed to reload cached index file", ex); //$NON-NLS-1$
+            log.error("Failed to reload cached index file", ex);
             return new ArrayList();
         }
     }
@@ -231,7 +231,7 @@
         // So now we know what we want to install - all we need to do
         // is installer.install(name) however we are doing it in the
         // background so we create a job for it.
-        final Thread worker = new Thread("DisplayPreLoader") //$NON-NLS-1$
+        final Thread worker = new Thread("DisplayPreLoader")
         {
             /*
              * (non-Javadoc)
@@ -240,15 +240,17 @@
              */
             /* @Override */
             public void run() {
-                URI predictURI = CWProject.instance().getWritableURI("sword-install", FileUtil.EXTENSION_PROPERTIES); //$NON-NLS-1$
-                Progress job = JobManager.createJob(UserMsg.INSTALLING.toString(sbmd.getName()), predictURI, this, true);
+                URI predictURI = CWProject.instance().getWritableURI("sword-install", FileUtil.EXTENSION_PROPERTIES);
+                // TRANSLATOR: Progress label indicating the installation of a book. {0} is a placeholder for the name of the book.
+                Progress job = JobManager.createJob(UserMsg.gettext("Installing book: {0}", sbmd.getName()), predictURI, this, true);
 
                 yield();
 
                 try {
-                    job.setSectionName(UserMsg.JOB_INIT.toString());
+                    // TRANSLATOR: Progress label indicating the Initialization of installing of a book.
+                    job.setSectionName(UserMsg.gettext("Initializing"));
 
-                    URI temp = NetUtil.getTemporaryURI("swd", ZIP_SUFFIX); //$NON-NLS-1$
+                    URI temp = NetUtil.getTemporaryURI("swd", ZIP_SUFFIX);
 
                     download(job, packageDirectory, sbmd.getInitials() + ZIP_SUFFIX, temp);
 
@@ -257,7 +259,8 @@
                     if (!job.isFinished()) {
                         File dldir = SwordBookPath.getSwordDownloadDir();
                         IOUtil.unpackZip(NetUtil.getAsFile(temp), dldir);
-                        job.setSectionName(UserMsg.JOB_CONFIG.toString());
+                        // TRANSLATOR: Progress label for installing the conf file for a book.
+                        job.setSectionName(UserMsg.gettext("Copying config file"));
                         sbmd.setLibrary(NetUtil.getURI(dldir));
                         SwordBookDriver.registerNewBook(sbmd);
                     }
@@ -288,7 +291,8 @@
      * @see org.crosswire.jsword.book.install.Installer#reloadIndex()
      */
     public void reloadBookList() throws InstallException {
-        Progress job = JobManager.createJob(UserMsg.JOB_DOWNLOADING.toString(), Thread.currentThread(), false);
+        // TRANSLATOR: Progress label for downloading one or more files.
+        Progress job = JobManager.createJob(UserMsg.gettext("Downloading files"), Thread.currentThread(), false);
 
         try {
             URI scratchfile = getCachedIndexFile();
@@ -310,7 +314,8 @@
      * .jsword.book.BookMetaData, java.net.URI)
      */
     public void downloadSearchIndex(Book book, URI localDest) throws InstallException {
-        Progress job = JobManager.createJob(UserMsg.JOB_DOWNLOADING.toString(), Thread.currentThread(), false);
+        // TRANSLATOR: Progress label for downloading one or more files.
+        Progress job = JobManager.createJob(UserMsg.gettext("Downloading files"), Thread.currentThread(), false);
 
         try {
             download(job, packageDirectory + '/' + SEARCH_DIR, book.getInitials() + ZIP_SUFFIX, localDest);
@@ -359,7 +364,7 @@
 
                         // Every now and then an empty entry sneaks in
                         if (size == 0) {
-                            log.error("Empty entry: " + internal); //$NON-NLS-1$
+                            log.error("Empty entry: " + internal);
                             continue;
                         }
 
@@ -367,14 +372,14 @@
                         if (tin.read(buffer) != size) {
                             // This should not happen, but if it does then skip
                             // it.
-                            log.error("Did not read all that was expected " + internal); //$NON-NLS-1$
+                            log.error("Did not read all that was expected " + internal);
                             continue;
                         }
 
                         if (internal.endsWith(SwordConstants.EXTENSION_CONF)) {
                             internal = internal.substring(0, internal.length() - 5);
                         } else {
-                            log.error("Not a SWORD config file: " + internal); //$NON-NLS-1$
+                            log.error("Not a SWORD config file: " + internal);
                             continue;
                         }
 
@@ -387,7 +392,7 @@
                         Book book = new SwordBook(sbmd, null);
                         entries.put(book.getName(), book);
                     } catch (IOException ex) {
-                        log.error("Failed to load config for entry: " + internal, ex); //$NON-NLS-1$
+                        log.error("Failed to load config for entry: " + internal, ex);
                     }
                 }
             }
@@ -610,19 +615,19 @@
     /**
      * The directory containing zipped books on the <code>host</code>.
      */
-    protected String packageDirectory = ""; //$NON-NLS-1$
+    protected String packageDirectory = "";
 
     /**
      * The directory containing the catalog of all books on the
      * <code>host</code>.
      */
-    protected String catalogDirectory = ""; //$NON-NLS-1$
+    protected String catalogDirectory = "";
 
     /**
      * The directory containing the catalog of all books on the
      * <code>host</code>.
      */
-    protected String indexDirectory = ""; //$NON-NLS-1$
+    protected String indexDirectory = "";
 
     /**
      * Do we need to reload the index file
@@ -632,12 +637,12 @@
     /**
      * The sword index file
      */
-    protected static final String FILE_LIST_GZ = "mods.d.tar.gz"; //$NON-NLS-1$
+    protected static final String FILE_LIST_GZ = "mods.d.tar.gz";
 
     /**
      * The suffix of zip books on this server
      */
-    protected static final String ZIP_SUFFIX = ".zip"; //$NON-NLS-1$
+    protected static final String ZIP_SUFFIX = ".zip";
 
     /**
      * The log stream
@@ -647,11 +652,11 @@
     /**
      * The relative path of the dir holding the search index files
      */
-    protected static final String SEARCH_DIR = "search/jsword/L1"; //$NON-NLS-1$
+    protected static final String SEARCH_DIR = "search/jsword/L1";
 
     /**
      * When we cache a download index
      */
-    protected static final String DOWNLOAD_PREFIX = "download-"; //$NON-NLS-1$
+    protected static final String DOWNLOAD_PREFIX = "download-";
 
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/HttpSwordInstaller.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/HttpSwordInstaller.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/HttpSwordInstaller.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -40,33 +40,31 @@
  * @author Joe Walker [joe at eireneh dot com]
  * @author DM Smith [dmsmith555 at yahoo dot com]
  */
+/**
+ *
+ *
+ * @see gnu.lgpl.License for license details.<br>
+ *      The copyright to this program is held by it's authors.
+ * @author DM Smith [dmsmith555 at yahoo dot com]
+ */
 public class HttpSwordInstaller extends AbstractSwordInstaller {
-    /*
-     * (non-Javadoc)
-     * 
+
+    /* (non-Javadoc)
      * @see org.crosswire.jsword.book.install.Installer#getType()
      */
     public String getType() {
-        return "sword-http"; //$NON-NLS-1$
+        return "sword-http";
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.book.install.Installer#getSize(org.crosswire.jsword
-     * .book.Book)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.book.install.Installer#getSize(org.crosswire.jsword.book.Book)
      */
     public int getSize(Book book) {
         return NetUtil.getSize(toRemoteURI(book), proxyHost, proxyPort);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.book.install.Installer#toRemoteURI(org.crosswire
-     * .jsword.book.Book)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.book.install.Installer#toRemoteURI(org.crosswire.jsword.book.Book)
      */
     public URI toRemoteURI(Book book) {
         try {
@@ -76,30 +74,27 @@
         }
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.crosswire.jsword.book.install.sword.AbstractSwordInstaller#download
-     * (java.lang.String, java.lang.String, java.net.URI)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.book.install.sword.AbstractSwordInstaller#download(org.crosswire.common.progress.Progress, java.lang.String, java.lang.String, java.net.URI)
      */
-    /* @Override */
     protected void download(Progress job, String dir, String file, URI dest) throws InstallException {
         URI uri;
         try {
             uri = new URI(NetUtil.PROTOCOL_HTTP, host, dir + '/' + file, null);
         } catch (URISyntaxException e1) {
-            throw new InstallException(UserMsg.MISSING_FILE, e1, new Object[] {
+            // TRANSLATOR: Common error condition: {0} is a placeholder for the URL of what could not be found.
+            throw new InstallException(UserMsg.gettext("Unable to find: {0}", new Object[] {
                 dir + '/' + file
-            });
+            }), e1);
         }
 
         try {
             copy(job, uri, dest);
         } catch (LucidException ex) {
-            throw new InstallException(UserMsg.MISSING_FILE, ex, new Object[] {
+            // TRANSLATOR: Common error condition: {0} is a placeholder for the URL of what could not be found.
+            throw new InstallException(UserMsg.gettext("Unable to find: {0}", new Object[] {
                 uri.toString()
-            });
+            }), ex);
         }
     }
 
@@ -111,19 +106,17 @@
      */
     private void copy(Progress job, URI uri, URI dest) throws LucidException {
         if (job != null) {
-            job.setSectionName(UserMsg.JOB_DOWNLOADING.toString());
+            // TRANSLATOR: Progress label for downloading one or more files.
+            job.setSectionName(UserMsg.gettext("Downloading files"));
         }
 
         WebResource wr = new WebResource(uri, proxyHost, proxyPort);
         wr.copy(dest);
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.book.install.sword.AbstractSwordInstaller#equals(java.lang.Object)
      */
-    /* @Override */
     public boolean equals(Object object) {
         if (!(object instanceof HttpSwordInstaller)) {
             return false;
@@ -137,12 +130,9 @@
         return true;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
+    /* (non-Javadoc)
+     * @see org.crosswire.jsword.book.install.sword.AbstractSwordInstaller#hashCode()
      */
-    /* @Override */
     public int hashCode() {
         return super.hashCode();
     }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/HttpSwordInstallerFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/HttpSwordInstallerFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/HttpSwordInstallerFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -100,12 +100,12 @@
     /**
      * The relative path of the dir holding the zip files
      */
-    protected static final String PACKAGE_DIR = "packages/rawzip"; //$NON-NLS-1$
+    protected static final String PACKAGE_DIR = "packages/rawzip";
 
     /**
      * The relative path of the dir holding the index file
      */
-    private static final String LIST_DIR = "raw"; //$NON-NLS-1$
+    private static final String LIST_DIR = "raw";
 
-    private Pattern commaPattern = Pattern.compile(","); //$NON-NLS-1$
+    private Pattern commaPattern = Pattern.compile(",");
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,10 +31,10 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class Msg extends MsgBase {
-    static final Msg UNKNOWN_ERROR = new Msg("SwordInstaller.UnknownError"); //$NON-NLS-1$
-    static final Msg CACHE_ERROR = new Msg("SwordInstaller.CacheError"); //$NON-NLS-1$
-    static final Msg INVALID_DEFINITION = new Msg("SwordInstaller.InvalidURL"); //$NON-NLS-1$
-    static final Msg URL_FAILED = new Msg("SwordInstallerFactory.URLFailed"); //$NON-NLS-1$
+    static final Msg UNKNOWN_ERROR = new Msg("SwordInstaller.UnknownError");
+    static final Msg CACHE_ERROR = new Msg("SwordInstaller.CacheError");
+    static final Msg INVALID_DEFINITION = new Msg("SwordInstaller.InvalidURL");
+    static final Msg URL_FAILED = new Msg("SwordInstallerFactory.URLFailed");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,10 +1,3 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
 SwordInstaller.AuthRefused=Login failed: User={0}. FTP code={1}, {2}
 SwordInstaller.ConnectRefused=Failed to connect to remote server: {0}. FTP code={1}, {2}
 SwordInstaller.CWDRefused=Failed to change to remote directory: {0}. FTP code={1}, {2}

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_fa.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_fa.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_fa.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,10 +1,3 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
 SwordInstaller.AuthRefused=Login failed: User={0}. FTP code={1}, {2}
 SwordInstaller.ConnectRefused=Failed to connect to remote server: {0}. FTP code={1}, {2}
 SwordInstaller.CWDRefused=Failed to change to remote directory: {0}. FTP code={1}, {2}

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_in.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_in.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_in.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,10 +1,3 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
 SwordInstaller.AuthRefused=Gagal login: User={0}. FTP code={1}, {2}
 SwordInstaller.ConnectRefused=Gagal melalukan koneksi: {0}. FTP code={1}, {2}
 SwordInstaller.CWDRefused=Gagal melakukan pergantian directory: {0}. FTP code={1}, {2}

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_zh.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_zh.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_zh.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,5 +1,3 @@
-#Created by JInto - www.guh-software.de
-#Fri Dec 28 15:38:29 CST 2007
 HttpSwordInstaller.MissingFile=\u7121\u6CD5\u627E\u5230\: {0}
 SwordInstaller.AuthRefused=Login failed\: User\={0}. FTP code\={1}, {2}
 SwordInstaller.CWDRefused=Failed to change to remote directory\: {0}. FTP code\={1}, {2}

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_zh_CN.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_zh_CN.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/OldMsg_zh_CN.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,5 +1,3 @@
-#Created by JInto - www.guh-software.de
-#Fri Dec 28 15:41:26 CST 2007
 HttpSwordInstaller.MissingFile=\u65E0\u6CD5\u627E\u5230\: {0}
 SwordInstaller.AuthRefused=Login failed\: User\={0}. FTP code\={1}, {2}
 SwordInstaller.CWDRefused=Failed to change to remote directory\: {0}. FTP code\={1}, {2}

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/UserMsg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/UserMsg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/UserMsg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,16 +31,43 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class UserMsg extends MsgBase {
-    static final UserMsg INSTALLING = new UserMsg("SwordInstaller.Installing"); //$NON-NLS-1$
-    static final UserMsg JOB_INIT = new UserMsg("SwordInstaller.JobInit"); //$NON-NLS-1$
-    static final UserMsg JOB_CONFIG = new UserMsg("SwordInstaller.JobConfig"); //$NON-NLS-1$
-    static final UserMsg JOB_DOWNLOADING = new UserMsg("SwordInstaller.JobDownloading"); //$NON-NLS-1$
-    static final UserMsg MISSING_FILE = new UserMsg("HttpSwordInstaller.MissingFile"); //$NON-NLS-1$
 
     /**
-     * Passthrough ctor
+     * Get the internationalized text, but return key if key is unknown.
+     * 
+     * @param key
+     * @return the internationalized text
      */
-    private UserMsg(String name) {
-        super(name);
+    public static String gettext(String key)
+    {
+        return msg.lookup(key);
     }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object param)
+    {
+        return msg.toString(key, param);
+    }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object[] params)
+    {
+        return msg.toString(key, params);
+    }
+
+    private static MsgBase msg = new UserMsg();
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/UserMsg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/UserMsg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/install/sword/UserMsg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,6 +1,6 @@
 
-HttpSwordInstaller.MissingFile=Unable to find\: {0}
-SwordInstaller.Installing=Installing book\: {0}
+HttpSwordInstaller.MissingFile=Unable to find: {0}
+SwordInstaller.Installing=Installing book: {0}
 SwordInstaller.JobConfig=Copying config file
 SwordInstaller.JobDownloading=Downloading files
 SwordInstaller.JobInit=Initializing

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,8 +31,8 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class Msg extends MsgBase {
-    static final Msg PARSE_FAIL = new Msg("ReadingsKey.ParseFail"); //$NON-NLS-1$
-    static final Msg DRIVER_READONLY = new Msg("ReadingsKey.DriverReadonly"); //$NON-NLS-1$
+    static final Msg PARSE_FAIL = new Msg("ReadingsKey.ParseFail");
+    static final Msg DRIVER_READONLY = new Msg("ReadingsKey.DriverReadonly");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsBook.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsBook.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsBook.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -71,11 +71,12 @@
         Locale defaultLocale = Locale.getDefault();
         ResourceBundle prop = ResourceBundle.getBundle(setname, defaultLocale, CWClassLoader.instance(ReadingsBookDriver.class));
 
-        String name = UserMsg.TITLE.toString();
+        // TRANSLATOR: The default name for JSword's Reading plan.
+        String name = UserMsg.gettext("Readings");
         try {
-            name = prop.getString("title"); //$NON-NLS-1$
+            name = prop.getString("title");
         } catch (MissingResourceException e) {
-            log.warn("Missing resource: 'title' while parsing: " + setname); //$NON-NLS-1$
+            log.warn("Missing resource: 'title' while parsing: " + setname);
         }
 
         DefaultBookMetaData bmd = new DefaultBookMetaData(driver, name, type);
@@ -91,13 +92,13 @@
 
         while (greg.get(java.util.Calendar.YEAR) == currentYear) {
             String internalKey = ReadingsKey.external2internal(greg);
-            String readings = ""; //$NON-NLS-1$
+            String readings = "";
 
             try {
                 readings = prop.getString(internalKey);
                 hash.put(new ReadingsKey(greg.getTime()), readings);
             } catch (MissingResourceException e) {
-                log.warn("Missing resource: " + internalKey + " while parsing: " + setname); //$NON-NLS-1$ //$NON-NLS-2$
+                log.warn("Missing resource: " + internalKey + " while parsing: " + setname);
             }
 
             greg.add(java.util.Calendar.DATE, 1);
@@ -117,9 +118,10 @@
 
     public Iterator getOsisIterator(Key key, boolean allowEmpty) throws BookException {
         if (!(key instanceof ReadingsKey)) {
-            throw new BookException(UserMsg.NOT_FOUND, new Object[] {
+            // TRANSLATOR: Error condition: Indicates that something could not be found in the book. {0} is a placeholder for the unknown key.
+            throw new BookException(UserMsg.gettext("Key not found {0}", new Object[] {
                 key.getName()
-            });
+            }));
         }
 
         // TODO(DMS): make the iterator be demand driven
@@ -131,9 +133,10 @@
 
         String readings = (String) hash.get(key);
         if (readings == null) {
-            throw new BookException(UserMsg.NOT_FOUND, new Object[] {
+            // TRANSLATOR: Error condition: Indicates that something could not be found in the book. {0} is a placeholder for the unknown key.
+            throw new BookException(UserMsg.gettext("Key not found {0}", new Object[] {
                 key.getName()
-            });
+            }));
         }
 
         try {
@@ -180,7 +183,7 @@
      * .Key)
      */
     public String getRawText(Key key) throws BookException {
-        return ""; //$NON-NLS-1$
+        return "";
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsBookDriver.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsBookDriver.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsBookDriver.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -70,7 +70,7 @@
      * @see org.crosswire.jsword.book.BookDriver#getDriverName()
      */
     public String getDriverName() {
-        return "Readings"; //$NON-NLS-1$
+        return "Readings";
     }
 
     /**
@@ -87,7 +87,7 @@
      */
     public String[] getInstalledReadingsSets() {
         try {
-            URL index = ResourceUtil.getResource(ReadingsBookDriver.class, "readings.txt"); //$NON-NLS-1$
+            URL index = ResourceUtil.getResource(ReadingsBookDriver.class, "readings.txt");
             return NetUtil.listByIndexFile(NetUtil.toURI(index), new ReadingsFilter());
         } catch (IOException ex) {
             return new String[0];
@@ -111,7 +111,7 @@
     /**
      * Resources subdir for readings sets
      */
-    public static final String DIR_READINGS = "readings"; //$NON-NLS-1$
+    public static final String DIR_READINGS = "readings";
 
     /**
      * A shared instance of this driver.

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsKey.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsKey.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/ReadingsKey.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -72,7 +72,7 @@
      *            The date for this key
      */
     protected ReadingsKey(Date date) {
-        super(DateFormatter.getDateInstance().format(date), DateFormatter.getSimpleDateInstance("d.MMMM").format(date)); //$NON-NLS-1$
+        super(DateFormatter.getDateInstance().format(date), DateFormatter.getSimpleDateInstance("d.MMMM").format(date));
         this.date = date;
     }
 
@@ -158,5 +158,5 @@
     /**
      * Date formatter
      */
-    private static final MessageFormat KEY_FORMAT = new MessageFormat("{0,number,00}.{1,number,00}"); //$NON-NLS-1$
+    private static final MessageFormat KEY_FORMAT = new MessageFormat("{0,number,00}.{1,number,00}");
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,13 +31,43 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class UserMsg extends MsgBase {
-    static final UserMsg NOT_FOUND = new UserMsg("ReadingsBook.NotFound"); //$NON-NLS-1$
-    static final UserMsg TITLE = new UserMsg("ReadingsBookDriver.Title"); //$NON-NLS-1$
 
     /**
-     * Passthrough ctor
+     * Get the internationalized text, but return key if key is unknown.
+     * 
+     * @param key
+     * @return the internationalized text
      */
-    private UserMsg(String name) {
-        super(name);
+    public static String gettext(String key)
+    {
+        return msg.lookup(key);
     }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object param)
+    {
+        return msg.toString(key, param);
+    }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object[] params)
+    {
+        return msg.toString(key, params);
+    }
+
+    private static MsgBase msg = new UserMsg();
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,3 @@
-ReadingsBook.NotFound=Key not found {0}
-ReadingsBookDriver.Title=Readings
+Key\ not\ found\ {0} = Key not found {0}
+
+Readings = Readings

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_fa.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_fa.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_fa.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,4 @@
-ReadingsBook.NotFound=\u06A9\u0644\u06CC\u062F \u067E\u06CC\u062F\u0627 \u0646\u06A9\u0631\u062F\u0645 {0}
-ReadingsBookDriver.Title=\u0645\u0637\u0627\u0644\u0639\u0647\u0647\u0627
+
+Key\ not\ found\ {0} = \u06A9\u0644\u06CC\u062F \u067E\u06CC\u062F\u0627 \u0646\u06A9\u0631\u062F\u0645 {0}
+
+Readings = \u0645\u0637\u0627\u0644\u0639\u0647\u0647\u0627

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_in.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_in.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_in.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,4 @@
-ReadingsBook.NotFound=Kunci tidak ditemukan {0}
-ReadingsBookDriver.Title=Membaca
+
+Key\ not\ found\ {0} = Kunci tidak ditemukan {0}
+
+Readings = Membaca

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_zh.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_zh.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_zh.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,4 @@
-ReadingsBook.NotFound=Key not found {0}
-ReadingsBookDriver.Title=\u95B1\u8B80
+
+Key\ not\ found\ {0} = Key not found {0}
+
+Readings = \u95B1\u8B80

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_zh_CN.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_zh_CN.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/readings/UserMsg_zh_CN.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,4 @@
-ReadingsBook.NotFound=Key not found {0}
-ReadingsBookDriver.Title=\u9605\u8BFB
+
+Key\ not\ found\ {0} = Key not found {0}
+
+Readings = \u9605\u8BFB

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/study/StrongsNumber.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/study/StrongsNumber.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/study/StrongsNumber.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -220,9 +220,10 @@
         // Does it match
         Matcher m = STRONGS_PATTERN.matcher(text);
         if (!m.lookingAt()) {
-            throw new BookException(UserMsg.STRONGS_ERROR_NUMBER, new Object[] {
+            // TRANSLATOR: User error condition: Indicates that what was given is not a Strong's Number. {0} is a placeholder for the bad Strong's Number.
+            throw new BookException(UserMsg.gettext("Not a valid Strong's Number \"{0}\"", new Object[] {
                 input
-            });
+            }));
         }
 
         String lang = m.group(1);
@@ -247,9 +248,10 @@
 
     private void validate() throws BookException {
         if (language != 'G' && language != 'H') {
-            throw new BookException(UserMsg.STRONGS_ERROR_NUMBER, new Object[] {
+            // TRANSLATOR: User error condition: Indicates that what was given is not a Strong's Number. {0} is a placeholder for the bad Strong's Number.
+            throw new BookException(UserMsg.gettext("Not a valid Strong's Number \"{0}\"", new Object[] {
                 toString()
-            });
+            }));
         }
     }
 
@@ -271,6 +273,6 @@
     /**
      * The pattern of an acceptable Strong's number.
      */
-    private static final Pattern STRONGS_PATTERN = Pattern.compile("([GgHh])0*([1-9][0-9]*)!?([A-Za-z]+)?"); //$NON-NLS-1$
-    private static final DecimalFormat ZERO_PAD = new DecimalFormat("0000"); //$NON-NLS-1$
+    private static final Pattern STRONGS_PATTERN = Pattern.compile("([GgHh])0*([1-9][0-9]*)!?([A-Za-z]+)?");
+    private static final DecimalFormat ZERO_PAD = new DecimalFormat("0000");
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/study/UserMsg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/study/UserMsg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/study/UserMsg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,12 +31,43 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class UserMsg extends MsgBase {
-    static final UserMsg STRONGS_ERROR_NUMBER = new UserMsg("Strongs.ErrorNumber"); //$NON-NLS-1$
 
     /**
-     * Passthrough ctor
+     * Get the internationalized text, but return key if key is unknown.
+     * 
+     * @param key
+     * @return the internationalized text
      */
-    private UserMsg(String name) {
-        super(name);
+    public static String gettext(String key)
+    {
+        return msg.lookup(key);
     }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object param)
+    {
+        return msg.toString(key, param);
+    }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object[] params)
+    {
+        return msg.toString(key, params);
+    }
+
+    private static MsgBase msg = new UserMsg();
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/study/UserMsg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/study/UserMsg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/study/UserMsg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,8 +1 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
-Strongs.ErrorNumber=Not a valid Strong''s Number "{0}"
+Not\ a\ valid\ Strong's\ Number\ "{0}" = Not a valid Strong\\'s Number "{0}"

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/AbstractBackend.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/AbstractBackend.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/AbstractBackend.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -163,7 +163,7 @@
     public void create() throws IOException, BookException {
         File dataPath = new File(getExpandedDataPath());
         if (!dataPath.exists() && !dataPath.mkdirs()) {
-            throw new IOException("Unable to create module data path!"); //$NON-NLS-1$
+            throw new IOException("Unable to create module data path!");
         }
     }
 

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/BlockType.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/BlockType.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/BlockType.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -35,7 +35,7 @@
     /**
      * The level of compression is the Book
      */
-    public static final BlockType BLOCK_BOOK = new BlockType("BOOK") //$NON-NLS-1$
+    public static final BlockType BLOCK_BOOK = new BlockType("BOOK")
     {
         public char getIndicator() {
             return 'b';
@@ -50,7 +50,7 @@
     /**
      * The level of compression is the Book
      */
-    public static final BlockType BLOCK_CHAPTER = new BlockType("CHAPTER") //$NON-NLS-1$
+    public static final BlockType BLOCK_CHAPTER = new BlockType("CHAPTER")
     {
         public char getIndicator() {
             return 'c';
@@ -65,7 +65,7 @@
     /**
      * The level of compression is the Book
      */
-    public static final BlockType BLOCK_VERSE = new BlockType("VERSE") //$NON-NLS-1$
+    public static final BlockType BLOCK_VERSE = new BlockType("VERSE")
     {
         public char getIndicator() {
             return 'v';

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/BookType.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/BookType.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/BookType.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -40,7 +40,7 @@
     /**
      * Uncompressed Bibles
      */
-    public static final BookType RAW_TEXT = new BookType("RawText", BookCategory.BIBLE) { //$NON-NLS-1$
+    public static final BookType RAW_TEXT = new BookType("RawText", BookCategory.BIBLE) {
 
         protected Book getBook(SwordBookMetaData sbmd, AbstractBackend backend) {
             return new SwordBook(sbmd, backend);
@@ -68,7 +68,7 @@
     /**
      * Compressed Bibles
      */
-    public static final BookType Z_TEXT = new BookType("zText", BookCategory.BIBLE) { //$NON-NLS-1$
+    public static final BookType Z_TEXT = new BookType("zText", BookCategory.BIBLE) {
         protected Book getBook(SwordBookMetaData sbmd, AbstractBackend backend) {
             return new SwordBook(sbmd, backend);
         }
@@ -96,7 +96,7 @@
     /**
      * Uncompressed Commentaries
      */
-    public static final BookType RAW_COM = new BookType("RawCom", BookCategory.COMMENTARY) { //$NON-NLS-1$
+    public static final BookType RAW_COM = new BookType("RawCom", BookCategory.COMMENTARY) {
 
         protected Book getBook(SwordBookMetaData sbmd, AbstractBackend backend) {
             return new SwordBook(sbmd, backend);
@@ -121,7 +121,7 @@
         private static final long serialVersionUID = 3258129141898294837L;
     };
 
-    public static final BookType RAW_COM4 = new BookType("RawCom4", BookCategory.COMMENTARY) { //$NON-NLS-1$
+    public static final BookType RAW_COM4 = new BookType("RawCom4", BookCategory.COMMENTARY) {
 
         protected Book getBook(SwordBookMetaData sbmd, AbstractBackend backend) {
             return new SwordBook(sbmd, backend);
@@ -148,7 +148,7 @@
     /**
      * Compressed Commentaries
      */
-    public static final BookType Z_COM = new BookType("zCom", BookCategory.COMMENTARY) { //$NON-NLS-1$
+    public static final BookType Z_COM = new BookType("zCom", BookCategory.COMMENTARY) {
 
         protected Book getBook(SwordBookMetaData sbmd, AbstractBackend backend) {
             return new SwordBook(sbmd, backend);
@@ -177,7 +177,7 @@
     /**
      * Uncompresses HREF Commentaries
      */
-    public static final BookType HREF_COM = new BookType("HREFCom", BookCategory.COMMENTARY) { //$NON-NLS-1$
+    public static final BookType HREF_COM = new BookType("HREFCom", BookCategory.COMMENTARY) {
 
         protected Book getBook(SwordBookMetaData sbmd, AbstractBackend backend) {
             return new SwordBook(sbmd, backend);
@@ -205,7 +205,7 @@
     /**
      * Uncompressed Commentaries
      */
-    public static final BookType RAW_FILES = new BookType("RawFiles", BookCategory.COMMENTARY) { //$NON-NLS-1$
+    public static final BookType RAW_FILES = new BookType("RawFiles", BookCategory.COMMENTARY) {
 
         protected Book getBook(SwordBookMetaData sbmd, AbstractBackend backend) {
             return new SwordBook(sbmd, backend);
@@ -233,7 +233,7 @@
     /**
      * 2-Byte Index Uncompressed Dictionaries
      */
-    public static final BookType RAW_LD = new BookType("RawLD", BookCategory.DICTIONARY) { //$NON-NLS-1$
+    public static final BookType RAW_LD = new BookType("RawLD", BookCategory.DICTIONARY) {
 
         protected Book getBook(SwordBookMetaData sbmd, AbstractBackend backend) {
             if (sbmd.getBookCategory().equals(BookCategory.DAILY_DEVOTIONS)) {
@@ -264,7 +264,7 @@
     /**
      * 4-Byte Index Uncompressed Dictionaries
      */
-    public static final BookType RAW_LD4 = new BookType("RawLD4", BookCategory.DICTIONARY) { //$NON-NLS-1$
+    public static final BookType RAW_LD4 = new BookType("RawLD4", BookCategory.DICTIONARY) {
 
         protected Book getBook(SwordBookMetaData sbmd, AbstractBackend backend) {
             if (sbmd.getBookCategory().equals(BookCategory.DAILY_DEVOTIONS)) {
@@ -295,7 +295,7 @@
     /**
      * Compressed Dictionaries
      */
-    public static final BookType Z_LD = new BookType("zLD", BookCategory.DICTIONARY) { //$NON-NLS-1$
+    public static final BookType Z_LD = new BookType("zLD", BookCategory.DICTIONARY) {
 
         protected Book getBook(SwordBookMetaData sbmd, AbstractBackend backend) {
             if (sbmd.getBookCategory().equals(BookCategory.DAILY_DEVOTIONS)) {
@@ -326,7 +326,7 @@
     /**
      * Generic Books
      */
-    public static final BookType RAW_GEN_BOOK = new BookType("RawGenBook", BookCategory.GENERAL_BOOK) { //$NON-NLS-1$
+    public static final BookType RAW_GEN_BOOK = new BookType("RawGenBook", BookCategory.GENERAL_BOOK) {
 
         protected Book getBook(SwordBookMetaData sbmd, AbstractBackend backend) {
             return new SwordGenBook(sbmd, backend);

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntry.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntry.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntry.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -212,7 +212,7 @@
 
         // Report on fields that shouldn't have RTF but do
         if (!allowsRTF() && RTF_PATTERN.matcher(aValue).find()) {
-            log.info(report("Ignoring unexpected RTF for", getName(), aValue)); //$NON-NLS-1$
+            log.info(report("Ignoring unexpected RTF for", getName(), aValue));
         }
 
         if (mayRepeat()) {
@@ -224,20 +224,20 @@
                 histogram.increment(confEntryName + '.' + aValue);
             }
             if (!isAllowed(aValue)) {
-                log.info(report("Ignoring unknown config value for", confEntryName, aValue)); //$NON-NLS-1$
+                log.info(report("Ignoring unknown config value for", confEntryName, aValue));
                 return;
             }
             values.add(aValue);
         } else {
             if (value != null) {
-                log.info(report("Ignoring unexpected additional entry for", confEntryName, aValue)); //$NON-NLS-1$
+                log.info(report("Ignoring unexpected additional entry for", confEntryName, aValue));
             } else {
                 histogram.increment(confEntryName);
                 if (type.hasChoices()) {
                     histogram.increment(confEntryName + '.' + aValue);
                 }
                 if (!isAllowed(aValue)) {
-                    log.info(report("Ignoring unknown config value for", confEntryName, aValue)); //$NON-NLS-1$
+                    log.info(report("Ignoring unknown config value for", confEntryName, aValue));
                     return;
                 }
                 value = type.convert(aValue);
@@ -361,7 +361,7 @@
             if (allowsContinuation()) {
                 // With continuation each line is ended with a '\', except the
                 // last.
-                text = text.replaceAll("\n", "\\\\\n"); //$NON-NLS-1$ //$NON-NLS-2$
+                text = text.replaceAll("\n", "\\\\\n");
             }
             buf.append(text);
             buf.append('\n');
@@ -381,7 +381,7 @@
                     String text = (String) iter.next();
                     buf.append(getName());
                     buf.append('_');
-                    buf.append(text.replaceFirst(" ", "=")); //$NON-NLS-1$ //$NON-NLS-2$;
+                    buf.append(text.replaceFirst(" ", "="));
                     buf.append('\n');
                 }
             } else {
@@ -431,9 +431,9 @@
         buf.append(issue);
         buf.append(' ');
         buf.append(confEntryName);
-        buf.append(" in "); //$NON-NLS-1$
+        buf.append(" in ");
         buf.append(internal);
-        buf.append(": "); //$NON-NLS-1$
+        buf.append(": ");
         buf.append(aValue);
 
         return buf.toString();
@@ -448,7 +448,7 @@
      * A pattern of allowable RTF in a SWORD conf. These are: \pard, \pae, \par,
      * \qc \b, \i and embedded Unicode
      */
-    private static final Pattern RTF_PATTERN = Pattern.compile("\\\\pard|\\\\pa[er]|\\\\qc|\\\\[bi]|\\\\u-?[0-9]{4,6}+"); //$NON-NLS-1$
+    private static final Pattern RTF_PATTERN = Pattern.compile("\\\\pard|\\\\pa[er]|\\\\qc|\\\\[bi]|\\\\u-?[0-9]{4,6}+");
 
     /**
      * A histogram for debugging.

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntryTable.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntryTable.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntryTable.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -217,7 +217,8 @@
             try {
                 save();
             } catch (IOException e) {
-                Reporter.informUser(this, UserMsg.UNLOCK_FAILED, e);
+                // TRANSLATOR: Common error condition: The user supplied unlock key could not be saved.
+                Reporter.informUser(this, UserMsg.gettext("Unable to save the book's unlock key."));
             }
         }
         return true;
@@ -316,12 +317,12 @@
     public Element toOSIS() {
         OSISUtil.OSISFactory factory = OSISUtil.factory();
         Element ele = factory.createTable();
-        toOSIS(factory, ele, "BasicInfo", BASIC_INFO); //$NON-NLS-1$
-        toOSIS(factory, ele, "LangInfo", LANG_INFO); //$NON-NLS-1$
-        toOSIS(factory, ele, "LicenseInfo", COPYRIGHT_INFO); //$NON-NLS-1$
-        toOSIS(factory, ele, "FeatureInfo", FEATURE_INFO); //$NON-NLS-1$
-        toOSIS(factory, ele, "SysInfo", SYSTEM_INFO); //$NON-NLS-1$
-        toOSIS(factory, ele, "Extra", extra); //$NON-NLS-1$
+        toOSIS(factory, ele, "BasicInfo", BASIC_INFO);
+        toOSIS(factory, ele, "LangInfo", LANG_INFO);
+        toOSIS(factory, ele, "LicenseInfo", COPYRIGHT_INFO);
+        toOSIS(factory, ele, "FeatureInfo", FEATURE_INFO);
+        toOSIS(factory, ele, "SysInfo", SYSTEM_INFO);
+        toOSIS(factory, ele, "Extra", extra);
         return ele;
     }
 
@@ -336,7 +337,7 @@
         StringBuffer buf = new StringBuffer();
         buf.append('[');
         buf.append(getValue(ConfigEntryType.INITIALS));
-        buf.append("]\n"); //$NON-NLS-1$
+        buf.append("]\n");
         toConf(buf, BASIC_INFO);
         toConf(buf, SYSTEM_INFO);
         toConf(buf, HIDDEN);
@@ -389,7 +390,7 @@
 
             Matcher matcher = KEY_VALUE_PATTERN.matcher(line);
             if (!matcher.matches()) {
-                log.warn("Expected to see '=' in " + internal + ": " + line); //$NON-NLS-1$ //$NON-NLS-2$
+                log.warn("Expected to see '=' in " + internal + ": " + line);
                 continue;
             }
 
@@ -397,7 +398,7 @@
             String value = matcher.group(2).trim();
             // Only CIPHER_KEYS that are empty are not ignored
             if (value.length() == 0 && !ConfigEntryType.CIPHER_KEY.getName().equals(key)) {
-                log.warn("Ignoring empty entry in " + internal + ": " + line); //$NON-NLS-1$ //$NON-NLS-2$
+                log.warn("Ignoring empty entry in " + internal + ": " + line);
                 continue;
             }
 
@@ -410,10 +411,10 @@
 
             if (e == null) {
                 if (type == null) {
-                    log.warn("Extra entry in " + internal + " of " + configEntry.getName()); //$NON-NLS-1$ //$NON-NLS-2$
+                    log.warn("Extra entry in " + internal + " of " + configEntry.getName());
                     extra.put(key, configEntry);
                 } else if (type.isSynthetic()) {
-                    log.warn("Ignoring unexpected entry in " + internal + " of " + configEntry.getName()); //$NON-NLS-1$ //$NON-NLS-2$
+                    log.warn("Ignoring unexpected entry in " + internal + " of " + configEntry.getName());
                 } else {
                     table.put(type, configEntry);
                 }
@@ -453,7 +454,7 @@
             }
         }
         if (initials == null) {
-            log.error("Malformed conf file for " + internal + " no initials found. Using internal of " + internal); //$NON-NLS-1$ //$NON-NLS-2$
+            log.error("Malformed conf file for " + internal + " no initials found. Using internal of " + internal);
             initials = internal;
         }
         add(ConfigEntryType.INITIALS, initials);
@@ -476,17 +477,17 @@
 
             if (isKeyLine(line)) {
                 if (continuation_expected) {
-                    log.warn(report("Continuation followed by key for", configEntry.getName(), line)); //$NON-NLS-1$
+                    log.warn(report("Continuation followed by key for", configEntry.getName(), line));
                 }
 
                 backup(line);
                 break;
             } else if (!continuation_expected) {
-                log.warn(report("Line without previous continuation for", configEntry.getName(), line)); //$NON-NLS-1$
+                log.warn(report("Line without previous continuation for", configEntry.getName(), line));
             }
 
             if (!configEntry.allowsContinuation()) {
-                log.warn(report("Ignoring unexpected additional line for", configEntry.getName(), line)); //$NON-NLS-1$
+                log.warn(report("Ignoring unexpected additional line for", configEntry.getName(), line));
             } else {
                 if (continuation_expected) {
                     buf.append('\n');
@@ -536,7 +537,7 @@
             readahead = oops;
         } else {
             // should never happen
-            log.error("Backup an empty string for " + internal); //$NON-NLS-1$
+            log.error("Backup an empty string for " + internal);
         }
     }
 
@@ -560,9 +561,9 @@
     private void adjustDataPath() {
         String datapath = (String) getValue(ConfigEntryType.DATA_PATH);
         if (datapath == null) {
-            datapath = ""; //$NON-NLS-1$
+            datapath = "";
         }
-        if (datapath.startsWith("./")) { //$NON-NLS-1$
+        if (datapath.startsWith("./")) {
             datapath = datapath.substring(2);
         }
         add(ConfigEntryType.DATA_PATH, datapath);
@@ -582,14 +583,14 @@
         // If we have either langFrom or langTo, we are dealing with a glossary
         if (langFrom != null || langTo != null) {
             if (langFrom == null) {
-                log.warn("Missing data for " + internal + ". Assuming " + ConfigEntryType.GLOSSARY_FROM.getName() + '=' + Languages.DEFAULT_LANG_CODE); //$NON-NLS-1$ //$NON-NLS-2$
+                log.warn("Missing data for " + internal + ". Assuming " + ConfigEntryType.GLOSSARY_FROM.getName() + '=' + Languages.DEFAULT_LANG_CODE);
                 langFrom = Language.DEFAULT_LANG;
                 add(ConfigEntryType.GLOSSARY_FROM, lang.getCode());
             }
             testLanguage(internal, langFrom);
 
             if (langTo == null) {
-                log.warn("Missing data for " + internal + ". Assuming " + ConfigEntryType.GLOSSARY_TO.getName() + '=' + Languages.DEFAULT_LANG_CODE); //$NON-NLS-1$ //$NON-NLS-2$
+                log.warn("Missing data for " + internal + ". Assuming " + ConfigEntryType.GLOSSARY_TO.getName() + '=' + Languages.DEFAULT_LANG_CODE);
                 langTo = Language.DEFAULT_LANG;
                 add(ConfigEntryType.GLOSSARY_TO, lang.getCode());
             }
@@ -597,18 +598,18 @@
 
             // At least one of the two languages should match the lang entry
             if (!langFrom.equals(lang) && !langTo.equals(lang)) {
-                log.error("Data error in " + internal + //$NON-NLS-1$
-                        ". Neither " + ConfigEntryType.GLOSSARY_FROM.getName() + //$NON-NLS-1$
-                        " or " + ConfigEntryType.GLOSSARY_FROM.getName() + //$NON-NLS-1$
-                        " match " + ConfigEntryType.LANG.getName()); //$NON-NLS-1$
+                log.error("Data error in " + internal +
+                        ". Neither " + ConfigEntryType.GLOSSARY_FROM.getName() +
+                        " or " + ConfigEntryType.GLOSSARY_FROM.getName() +
+                        " match " + ConfigEntryType.LANG.getName());
             } else if (!langFrom.equals(lang)) {
                 // The LANG field should match the GLOSSARY_FROM field
                 /*
-                 * log.error("Data error in " + internal + //$NON-NLS-1$ ". " +
-                 * ConfigEntryType.GLOSSARY_FROM.getName() + //$NON-NLS-1$ " ("
+                 * log.error("Data error in " + internal + ". " +
+                 * ConfigEntryType.GLOSSARY_FROM.getName() + " ("
                  * + langFrom.getCode() + ") does not match " +
                  * ConfigEntryType.LANG.getName() + " (" + lang.getCode() +
-                 * ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+                 * ")");
                  */
                 lang = langFrom;
                 add(ConfigEntryType.LANG, lang.getCode());
@@ -625,14 +626,14 @@
         // From the config map, extract the important bean properties
         String modTypeName = (String) getValue(ConfigEntryType.MOD_DRV);
         if (modTypeName == null) {
-            log.error("Book not supported: malformed conf file for " + internal + " no " + ConfigEntryType.MOD_DRV.getName() + " found"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+            log.error("Book not supported: malformed conf file for " + internal + " no " + ConfigEntryType.MOD_DRV.getName() + " found");
             supported = false;
             return;
         }
 
         bookType = BookType.fromString(modTypeName);
         if (getBookType() == null) {
-            log.error("Book not supported: malformed conf file for " + internal + " no book type found"); //$NON-NLS-1$ //$NON-NLS-2$
+            log.error("Book not supported: malformed conf file for " + internal + " no book type found");
             supported = false;
             return;
         }
@@ -655,7 +656,7 @@
     private void adjustName() {
         // If there is no name then use the internal name
         if (table.get(ConfigEntryType.DESCRIPTION) == null) {
-            log.error("Malformed conf file for " + internal + " no " + ConfigEntryType.DESCRIPTION.getName() + " found. Using internal of " + internal); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+            log.error("Malformed conf file for " + internal + " no " + ConfigEntryType.DESCRIPTION.getName() + " found. Using internal of " + internal);
             add(ConfigEntryType.DESCRIPTION, internal);
         }
     }
@@ -666,7 +667,7 @@
     private void validate() {
         // if (isEnciphered())
         // {
-        //            log.debug("Book not supported: " + internal + " because it is locked and there is no key."); //$NON-NLS-1$ //$NON-NLS-2$
+        //            log.debug("Book not supported: " + internal + " because it is locked and there is no key.");
         // supported = false;
         // return;
         // }
@@ -674,7 +675,7 @@
 
     private void testLanguage(String initials, Language lang) {
         if (!lang.isValidLanguage()) {
-            log.warn("Unknown language " + lang.getCode() + " in book " + initials); //$NON-NLS-1$ //$NON-NLS-2$
+            log.warn("Unknown language " + lang.getCode() + " in book " + initials);
         }
     }
 
@@ -763,9 +764,9 @@
         buf.append(issue);
         buf.append(' ');
         buf.append(confEntryName);
-        buf.append(" in "); //$NON-NLS-1$
+        buf.append(" in ");
         buf.append(internal);
-        buf.append(": "); //$NON-NLS-1$
+        buf.append(": ");
         buf.append(line);
 
         return buf.toString();
@@ -775,8 +776,8 @@
      * Sword only recognizes two encodings for its modules: UTF-8 and LATIN1
      * Sword uses MS Windows cp1252 for Latin 1 not the standard. Arrgh!
      */
-    private static final String ENCODING_UTF8 = "UTF-8"; //$NON-NLS-1$
-    private static final String ENCODING_LATIN1 = "WINDOWS-1252"; //$NON-NLS-1$
+    private static final String ENCODING_UTF8 = "UTF-8";
+    private static final String ENCODING_LATIN1 = "WINDOWS-1252";
 
     /**
      * These are the elements that JSword requires. They are a superset of those
@@ -872,6 +873,6 @@
      * the line. The = sign following the key may be surrounded by whitespace.
      * The value may contain anything, including an = sign.
      */
-    private static final Pattern KEY_VALUE_PATTERN = Pattern.compile("^([A-Za-z0-9_.]+)\\s*=\\s*(.*)$"); //$NON-NLS-1$
+    private static final Pattern KEY_VALUE_PATTERN = Pattern.compile("^([A-Za-z0-9_.]+)\\s*=\\s*(.*)$");
 
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntryType.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntryType.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ConfigEntryType.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -46,37 +46,37 @@
     /**
      * Constants for direction
      */
-    public static final String DIRECTION_LTOR = "LtoR"; //$NON-NLS-1$
-    public static final String DIRECTION_RTOL = "RtoL"; //$NON-NLS-1$
-    public static final String DIRECTION_BIDI = "bidi"; //$NON-NLS-1$
+    public static final String DIRECTION_LTOR = "LtoR";
+    public static final String DIRECTION_RTOL = "RtoL";
+    public static final String DIRECTION_BIDI = "bidi";
 
     private static final String[] BLOCK_TYPE_PICKS = new String[] {
-            "BOOK", //$NON-NLS-1$
-            "CHAPTER", //$NON-NLS-1$
-            "VERSE", //$NON-NLS-1$
+            "BOOK",
+            "CHAPTER",
+            "VERSE",
     };
 
     private static final String[] BOOLEAN_PICKS = new String[] {
-            "true", //$NON-NLS-1$
-            "false", //$NON-NLS-1$
+            "true",
+            "false",
     };
 
     private static final String[] CATEGORY_PICKS = new String[] {
-            "Daily Devotional", //$NON-NLS-1$
-            "Glossaries", //$NON-NLS-1$
-            "Cults / Unorthodox / Questionable Material", //$NON-NLS-1$
-            "Essays", //$NON-NLS-1$
-            "Maps", //$NON-NLS-1$
-            "Images", //$NON-NLS-1$
-            "Biblical Texts", //$NON-NLS-1$
-            "Commentaries", //$NON-NLS-1$
-            "Lexicons / Dictionaries", //$NON-NLS-1$
-            "Generic Books", //$NON-NLS-1$
+            "Daily Devotional",
+            "Glossaries",
+            "Cults / Unorthodox / Questionable Material",
+            "Essays",
+            "Maps",
+            "Images",
+            "Biblical Texts",
+            "Commentaries",
+            "Lexicons / Dictionaries",
+            "Generic Books",
     };
 
     private static final String[] COMPRESS_TYPE_PICKS = new String[] {
-            "LZSS", //$NON-NLS-1$
-            "ZIP", //$NON-NLS-1$
+            "LZSS",
+            "ZIP",
     };
 
     private static final String[] DIRECTION_PICKS = new String[] {
@@ -84,101 +84,101 @@
     };
 
     private static final String[] KEY_TYPE_PICKS = new String[] {
-            "TreeKey", //$NON-NLS-1$
-            "VerseKey", //$NON-NLS-1$
+            "TreeKey",
+            "VerseKey",
     };
 
     private static final String[] FEATURE_PICKS = new String[] {
-            "StrongsNumbers", //$NON-NLS-1$
-            "GreekDef", //$NON-NLS-1$
-            "HebrewDef", //$NON-NLS-1$
-            "GreekParse", //$NON-NLS-1$
-            "HebrewParse", //$NON-NLS-1$
-            "DailyDevotion", //$NON-NLS-1$
-            "Glossary", //$NON-NLS-1$
-            "Images", //$NON-NLS-1$
+            "StrongsNumbers",
+            "GreekDef",
+            "HebrewDef",
+            "GreekParse",
+            "HebrewParse",
+            "DailyDevotion",
+            "Glossary",
+            "Images",
     };
 
     private static final String[] GLOBAL_OPTION_FILTER_PICKS = new String[] {
-            "GBFStrongs", //$NON-NLS-1$
-            "GBFFootnotes", //$NON-NLS-1$
-            "GBFScripref", //$NON-NLS-1$
-            "GBFMorph", //$NON-NLS-1$
-            "GBFHeadings", //$NON-NLS-1$
-            "GBFRedLetterWords", //$NON-NLS-1$
-            "ThMLStrongs", //$NON-NLS-1$
-            "ThMLFootnotes", //$NON-NLS-1$
-            "ThMLScripref", //$NON-NLS-1$
-            "ThMLMorph", //$NON-NLS-1$
-            "ThMLHeadings", //$NON-NLS-1$
-            "ThMLVariants", //$NON-NLS-1$
-            "ThMLLemma", //$NON-NLS-1$
-            "UTF8Cantillation", //$NON-NLS-1$
-            "UTF8GreekAccents", //$NON-NLS-1$
-            "UTF8HebrewPoints", //$NON-NLS-1$
-            "OSISStrongs", //$NON-NLS-1$
-            "OSISFootnotes", //$NON-NLS-1$
-            "OSISScripref", //$NON-NLS-1$
-            "OSISMorph", //$NON-NLS-1$
-            "OSISHeadings", //$NON-NLS-1$
-            "OSISRedLetterWords", //$NON-NLS-1$
-            "OSISLemma", //$NON-NLS-1$
-            "OSISRuby", //$NON-NLS-1$
+            "GBFStrongs",
+            "GBFFootnotes",
+            "GBFScripref",
+            "GBFMorph",
+            "GBFHeadings",
+            "GBFRedLetterWords",
+            "ThMLStrongs",
+            "ThMLFootnotes",
+            "ThMLScripref",
+            "ThMLMorph",
+            "ThMLHeadings",
+            "ThMLVariants",
+            "ThMLLemma",
+            "UTF8Cantillation",
+            "UTF8GreekAccents",
+            "UTF8HebrewPoints",
+            "OSISStrongs",
+            "OSISFootnotes",
+            "OSISScripref",
+            "OSISMorph",
+            "OSISHeadings",
+            "OSISRedLetterWords",
+            "OSISLemma",
+            "OSISRuby",
     };
 
     private static final String[] LICENSE_PICKS = new String[] {
-            "Public Domain", //$NON-NLS-1$
-            "Copyrighted", //$NON-NLS-1$
-            "Copyrighted; Free non-commercial distribution", //$NON-NLS-1$
-            "Copyrighted; Permission to distribute granted to CrossWire", //$NON-NLS-1$
-            "Copyrighted; Freely distributable", //$NON-NLS-1$
-            "Copyrighted; Permission granted to distribute non-commercially in Sword format", //$NON-NLS-1$
-            "GFDL", //$NON-NLS-1$
-            "GPL", //$NON-NLS-1$
-            "Creative Commons: by-nc-nd", //$NON-NLS-1$
-            "Creative Commons: by-nc-sa", //$NON-NLS-1$
-            "Creative Commons: by-nc", //$NON-NLS-1$
-            "Creative Commons: by-nd", //$NON-NLS-1$
-            "Creative Commons: by-sa", //$NON-NLS-1$
-            "Creative Commons: by", //$NON-NLS-1$
+            "Public Domain",
+            "Copyrighted",
+            "Copyrighted; Free non-commercial distribution",
+            "Copyrighted; Permission to distribute granted to CrossWire",
+            "Copyrighted; Freely distributable",
+            "Copyrighted; Permission granted to distribute non-commercially in Sword format",
+            "GFDL",
+            "GPL",
+            "Creative Commons: by-nc-nd",
+            "Creative Commons: by-nc-sa",
+            "Creative Commons: by-nc",
+            "Creative Commons: by-nd",
+            "Creative Commons: by-sa",
+            "Creative Commons: by",
     };
 
     private static final String[] ENCODING_PICKS = new String[] {
-            "Latin-1", //$NON-NLS-1$
-            "UTF-8", //$NON-NLS-1$
+            "Latin-1",
+            "UTF-8",
     };
 
     private static final String[] MOD_DRV_PICKS = new String[] {
-            "RawText", //$NON-NLS-1$
-            "zText", //$NON-NLS-1$
-            "RawCom", //$NON-NLS-1$
-            "RawCom4", //$NON-NLS-1$
-            "zCom", //$NON-NLS-1$
-            "HREFCom", //$NON-NLS-1$
-            "RawFiles", //$NON-NLS-1$
-            "RawLD", //$NON-NLS-1$
-            "RawLD4", //$NON-NLS-1$
-            "zLD", //$NON-NLS-1$
-            "RawGenBook", //$NON-NLS-1$
+            "RawText",
+            "zText",
+            "RawCom",
+            "RawCom4",
+            "zCom",
+            "HREFCom",
+            "RawFiles",
+            "RawLD",
+            "RawLD4",
+            "zLD",
+            "RawGenBook",
     };
 
     private static final String[] SOURCE_TYPE_PICKS = new String[] {
-            "Plaintext", //$NON-NLS-1$
-            "GBF", //$NON-NLS-1$
-            "ThML", //$NON-NLS-1$
-            "OSIS", //$NON-NLS-1$
-            "TEI", //$NON-NLS-1$
-            "OSIS", //$NON-NLS-1$
-            "TEI", //$NON-NLS-1$
+            "Plaintext",
+            "GBF",
+            "ThML",
+            "OSIS",
+            "TEI",
+            "OSIS",
+            "TEI",
     };
 
     private static final String[] VERSIFICATION_PICKS = new String[] {
-            "KJV", //$NON-NLS-1$
-            "KJVA", //$NON-NLS-1$
-            "NRSV", //$NON-NLS-1$
-            "NRSVA", //$NON-NLS-1$
-            "Leningrad", //$NON-NLS-1$
-            "MT", //$NON-NLS-1$
+            "KJV",
+            "KJVA",
+            "NRSV",
+            "NRSVA",
+            "Leningrad",
+            "MT",
     };
 
     /**
@@ -299,12 +299,12 @@
      * the first non-blank line of the conf. JSword uses this for display and
      * access purposes.
      */
-    public static final ConfigEntryType INITIALS = new ConfigEntrySyntheticType("Initials"); //$NON-NLS-1$
+    public static final ConfigEntryType INITIALS = new ConfigEntrySyntheticType("Initials");
 
     /**
      * Relative path to the data files, some issues with this
      */
-    public static final ConfigEntryType DATA_PATH = new ConfigEntryType("DataPath") //$NON-NLS-1$
+    public static final ConfigEntryType DATA_PATH = new ConfigEntryType("DataPath")
     {
         /*
          * (non-Javadoc)
@@ -326,29 +326,29 @@
     /**
      * The full name of this book
      */
-    public static final ConfigEntryType DESCRIPTION = new ConfigEntryType("Description"); //$NON-NLS-1$
+    public static final ConfigEntryType DESCRIPTION = new ConfigEntryType("Description");
 
     /**
      * This indicates how the book was stored.
      */
-    public static final ConfigEntryType MOD_DRV = new ConfigEntryPickType("ModDrv", MOD_DRV_PICKS); //$NON-NLS-1$
+    public static final ConfigEntryType MOD_DRV = new ConfigEntryPickType("ModDrv", MOD_DRV_PICKS);
 
     /**
      * The type of compression in use. JSword does not support LZSS. While it is
      * the default, it is not used. At least so far.
      */
-    public static final ConfigEntryType COMPRESS_TYPE = new ConfigEntryPickType("CompressType", COMPRESS_TYPE_PICKS, COMPRESS_TYPE_PICKS[0]); //$NON-NLS-1$
+    public static final ConfigEntryType COMPRESS_TYPE = new ConfigEntryPickType("CompressType", COMPRESS_TYPE_PICKS, COMPRESS_TYPE_PICKS[0]);
 
     /**
      * The level at which compression is applied, BOOK, CHAPTER, or VERSE
      */
-    public static final ConfigEntryType BLOCK_TYPE = new ConfigEntryPickType("BlockType", BLOCK_TYPE_PICKS, BLOCK_TYPE_PICKS[0]); //$NON-NLS-1$
+    public static final ConfigEntryType BLOCK_TYPE = new ConfigEntryPickType("BlockType", BLOCK_TYPE_PICKS, BLOCK_TYPE_PICKS[0]);
 
     /**
      * single value integer, unknown use, some indications that we ought to be
      * using it
      */
-    public static final ConfigEntryType BLOCK_COUNT = new ConfigEntryType("BlockCount", new Integer(200)) //$NON-NLS-1$
+    public static final ConfigEntryType BLOCK_COUNT = new ConfigEntryType("BlockCount", new Integer(200))
     {
         /*
          * (non-Javadoc)
@@ -390,24 +390,24 @@
     /**
      * The kind of key that a Generic Book uses.
      */
-    public static final ConfigEntryType KEY_TYPE = new ConfigEntryPickType("KeyType", KEY_TYPE_PICKS, KEY_TYPE_PICKS[0]); //$NON-NLS-1$
+    public static final ConfigEntryType KEY_TYPE = new ConfigEntryPickType("KeyType", KEY_TYPE_PICKS, KEY_TYPE_PICKS[0]);
 
     /**
      * If this exists in the conf, then the book is encrypted. The value is used
      * to unlock the book. The encryption algorithm is Sapphire.
      */
-    public static final ConfigEntryType CIPHER_KEY = new ConfigEntryType("CipherKey"); //$NON-NLS-1$
+    public static final ConfigEntryType CIPHER_KEY = new ConfigEntryType("CipherKey");
 
     /**
      * This indicates the versification of the book, with KJV being the default.
      */
-    public static final ConfigEntryType VERSIFICATION = new ConfigEntryPickType("Versification", VERSIFICATION_PICKS); //$NON-NLS-1$
+    public static final ConfigEntryType VERSIFICATION = new ConfigEntryPickType("Versification", VERSIFICATION_PICKS);
 
     /**
      * Global Option Filters are the names of routines in Sword that can be used
      * to display the data. These are not used by JSword.
      */
-    public static final ConfigEntryType GLOBAL_OPTION_FILTER = new ConfigEntryPickType("GlobalOptionFilter", GLOBAL_OPTION_FILTER_PICKS) { //$NON-NLS-1$
+    public static final ConfigEntryType GLOBAL_OPTION_FILTER = new ConfigEntryPickType("GlobalOptionFilter", GLOBAL_OPTION_FILTER_PICKS) {
 
         /*
          * (non-Javadoc)
@@ -429,23 +429,23 @@
      * RtoL. Most are 'LtoR'. Some are 'bidi', bi-directional. E.g.
      * hebrew-english glossary.
      */
-    public static final ConfigEntryType DIRECTION = new ConfigEntryPickType("Direction", DIRECTION_PICKS, DIRECTION_PICKS[0]); //$NON-NLS-1$
+    public static final ConfigEntryType DIRECTION = new ConfigEntryPickType("Direction", DIRECTION_PICKS, DIRECTION_PICKS[0]);
 
     /**
      * This indicates the kind of markup used for the book.
      */
-    public static final ConfigEntryType SOURCE_TYPE = new ConfigEntryPickType("SourceType", SOURCE_TYPE_PICKS, SOURCE_TYPE_PICKS[0]); //$NON-NLS-1$
+    public static final ConfigEntryType SOURCE_TYPE = new ConfigEntryPickType("SourceType", SOURCE_TYPE_PICKS, SOURCE_TYPE_PICKS[0]);
 
     /**
      * The character encoding. Only Latin-1 and UTF-8 are supported.
      */
-    public static final ConfigEntryType ENCODING = new ConfigEntryPickType("Encoding", ENCODING_PICKS, ENCODING_PICKS[0]); //$NON-NLS-1$
+    public static final ConfigEntryType ENCODING = new ConfigEntryPickType("Encoding", ENCODING_PICKS, ENCODING_PICKS[0]);
 
     /**
      * Display level is used by GenBooks to do auto expansion in the tree. A
      * level of 2 indicates that the first two levels should be shown.
      */
-    public static final ConfigEntryType DISPLAY_LEVEL = new ConfigEntryType("DisplayLevel") { //$NON-NLS-1$
+    public static final ConfigEntryType DISPLAY_LEVEL = new ConfigEntryType("DisplayLevel") {
 
         /*
          * (non-Javadoc)
@@ -487,13 +487,13 @@
     /**
      * A recommended font to use for the book.
      */
-    public static final ConfigEntryType FONT = new ConfigEntryType("Font"); //$NON-NLS-1$
+    public static final ConfigEntryType FONT = new ConfigEntryType("Font");
 
     /**
      * When false do not show quotation marks for OSIS text that has <q>
      * elements.
      */
-    public static final ConfigEntryType OSIS_Q_TO_TICK = new ConfigEntryPickType("OSISqToTick", BOOLEAN_PICKS, Boolean.TRUE) { //$NON-NLS-1$
+    public static final ConfigEntryType OSIS_Q_TO_TICK = new ConfigEntryPickType("OSISqToTick", BOOLEAN_PICKS, Boolean.TRUE) {
 
         /*
          * (non-Javadoc)
@@ -515,7 +515,7 @@
     /**
      * A Feature describes a characteristic of the Book.
      */
-    public static final ConfigEntryType FEATURE = new ConfigEntryPickType("Feature", FEATURE_PICKS) { //$NON-NLS-1$
+    public static final ConfigEntryType FEATURE = new ConfigEntryPickType("Feature", FEATURE_PICKS) {
 
         /*
          * (non-Javadoc)
@@ -536,7 +536,7 @@
      * Books with a Feature of Glossary are used to map words FROM one language
      * TO another.
      */
-    public static final ConfigEntryType GLOSSARY_FROM = new ConfigEntryType("GlossaryFrom") { //$NON-NLS-1$
+    public static final ConfigEntryType GLOSSARY_FROM = new ConfigEntryType("GlossaryFrom") {
 
         /**
          * Serialization ID
@@ -560,7 +560,7 @@
      * Books with a Feature of Glossary are used to map words FROM one language
      * TO another.
      */
-    public static final ConfigEntryType GLOSSARY_TO = new ConfigEntryType("GlossaryTo") { //$NON-NLS-1$
+    public static final ConfigEntryType GLOSSARY_TO = new ConfigEntryType("GlossaryTo") {
 
         /*
          * (non-Javadoc)
@@ -582,12 +582,12 @@
     /**
      * The short name of this book.
      */
-    public static final ConfigEntryType ABBREVIATION = new ConfigEntryType("Abbreviation"); //$NON-NLS-1$
+    public static final ConfigEntryType ABBREVIATION = new ConfigEntryType("Abbreviation");
 
     /**
      * Contains rtf that describes the book.
      */
-    public static final ConfigEntryType ABOUT = new ConfigEntryType("About") { //$NON-NLS-1$
+    public static final ConfigEntryType ABOUT = new ConfigEntryType("About") {
 
         /*
          * (non-Javadoc)
@@ -617,7 +617,7 @@
     /**
      * An informational string indicating the current version of the book.
      */
-    public static final ConfigEntryType VERSION = new ConfigEntryType("Version", "1.0") { //$NON-NLS-1$ //$NON-NLS-2$
+    public static final ConfigEntryType VERSION = new ConfigEntryType("Version", "1.0") {
 
         public boolean isAllowed(String aValue) {
             try {
@@ -641,7 +641,7 @@
      * the value with it. The x.y corresponds to a current or prior Version
      * value.
      */
-    public static final ConfigEntryType HISTORY = new ConfigEntryType("History") { //$NON-NLS-1$
+    public static final ConfigEntryType HISTORY = new ConfigEntryType("History") {
 
         /*
          * (non-Javadoc)
@@ -671,12 +671,12 @@
      * single value version number, lowest sword c++ version that can read this
      * book JSword does not use this value.
      */
-    public static final ConfigEntryType MINIMUM_VERSION = new ConfigEntryType("MinimumVersion", "1.5.1a"); //$NON-NLS-1$ //$NON-NLS-2$
+    public static final ConfigEntryType MINIMUM_VERSION = new ConfigEntryType("MinimumVersion", "1.5.1a");
 
     /**
      * The Category of the book. Used on the web to classify books into a tree.
      */
-    public static final ConfigEntryType CATEGORY = new ConfigEntryPickType("Category", CATEGORY_PICKS, BookCategory.OTHER) { //$NON-NLS-1$
+    public static final ConfigEntryType CATEGORY = new ConfigEntryPickType("Category", CATEGORY_PICKS, BookCategory.OTHER) {
 
         /*
          * (non-Javadoc)
@@ -699,12 +699,12 @@
      * Library of Congress Subject Heading. Typically this is of the form
      * BookCategory Scope Language, where scope is typically O.T., N.T.
      */
-    public static final ConfigEntryType LCSH = new ConfigEntryType("LCSH"); //$NON-NLS-1$
+    public static final ConfigEntryType LCSH = new ConfigEntryType("LCSH");
 
     /**
      * single value string, defaults to en, the language of the book
      */
-    public static final ConfigEntryType LANG = new ConfigEntryType("Lang", new Language(null)) { //$NON-NLS-1$
+    public static final ConfigEntryType LANG = new ConfigEntryType("Lang", new Language(null)) {
 
         /*
          * (non-Javadoc)
@@ -727,7 +727,7 @@
      * The installed size of the book in bytes. This is not the size of the zip
      * that is downloaded.
      */
-    public static final ConfigEntryType INSTALL_SIZE = new ConfigEntryType("InstallSize") { //$NON-NLS-1$
+    public static final ConfigEntryType INSTALL_SIZE = new ConfigEntryType("InstallSize") {
 
         /*
          * (non-Javadoc)
@@ -770,7 +770,7 @@
      * The date that this version of the book was last updated. Informational
      * only.
      */
-    public static final ConfigEntryType SWORD_VERSION_DATE = new ConfigEntryType("SwordVersionDate") { //$NON-NLS-1$
+    public static final ConfigEntryType SWORD_VERSION_DATE = new ConfigEntryType("SwordVersionDate") {
 
         /*
          * (non-Javadoc)
@@ -783,7 +783,7 @@
             return validDatePattern.matcher(value).matches();
         }
 
-        private Pattern validDatePattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2}"); //$NON-NLS-1$
+        private Pattern validDatePattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2}");
 
         /**
          * Serialization ID
@@ -796,7 +796,7 @@
      * installs a book with an obsoletes that matches an installed book, offer
      * the user the opportunity to delete the old book.
      */
-    public static final ConfigEntryType OBSOLETES = new ConfigEntryType("Obsoletes") { //$NON-NLS-1$
+    public static final ConfigEntryType OBSOLETES = new ConfigEntryType("Obsoletes") {
 
         /*
          * (non-Javadoc)
@@ -825,7 +825,7 @@
     /**
      * Informational copyright notice.
      */
-    public static final ConfigEntryType COPYRIGHT = new ConfigEntryType("Copyright") { //$NON-NLS-1$
+    public static final ConfigEntryType COPYRIGHT = new ConfigEntryType("Copyright") {
 
         /*
          * (non-Javadoc)
@@ -846,13 +846,13 @@
     /**
      * single value string, unknown use
      */
-    public static final ConfigEntryType COPYRIGHT_HOLDER = new ConfigEntryType("CopyrightHolder"); //$NON-NLS-1$
+    public static final ConfigEntryType COPYRIGHT_HOLDER = new ConfigEntryType("CopyrightHolder");
 
     /**
      * Copyright info. Informational only. This is a year, a year range or a
      * comma separated list of these.
      */
-    public static final ConfigEntryType COPYRIGHT_DATE = new ConfigEntryType("CopyrightDate") { //$NON-NLS-1$
+    public static final ConfigEntryType COPYRIGHT_DATE = new ConfigEntryType("CopyrightDate") {
 
         /*
          * (non-Javadoc)
@@ -865,7 +865,7 @@
             return validDatePattern.matcher(value).matches();
         }
 
-        private Pattern validDatePattern = Pattern.compile("\\d{4}(\\s*-\\s*\\d{4})?(\\s*,\\s*\\d{4}(\\s*-\\s*\\d{4})?)*"); //$NON-NLS-1$
+        private Pattern validDatePattern = Pattern.compile("\\d{4}(\\s*-\\s*\\d{4})?(\\s*,\\s*\\d{4}(\\s*-\\s*\\d{4})?)*");
 
         /**
          * Serialization ID
@@ -876,7 +876,7 @@
     /**
      * Copyright info. Informational only.
      */
-    public static final ConfigEntryType COPYRIGHT_NOTES = new ConfigEntryType("CopyrightNotes") { //$NON-NLS-1$
+    public static final ConfigEntryType COPYRIGHT_NOTES = new ConfigEntryType("CopyrightNotes") {
 
         /*
          * (non-Javadoc)
@@ -906,7 +906,7 @@
     /**
      * Copyright info. Informational only.
      */
-    public static final ConfigEntryType COPYRIGHT_CONTACT_NAME = new ConfigEntryType("CopyrightContactName") { //$NON-NLS-1$
+    public static final ConfigEntryType COPYRIGHT_CONTACT_NAME = new ConfigEntryType("CopyrightContactName") {
 
         /*
          * (non-Javadoc)
@@ -936,7 +936,7 @@
     /**
      * Copyright info. Informational only.
      */
-    public static final ConfigEntryType COPYRIGHT_CONTACT_NOTES = new ConfigEntryType("CopyrightContactNotes") { //$NON-NLS-1$
+    public static final ConfigEntryType COPYRIGHT_CONTACT_NOTES = new ConfigEntryType("CopyrightContactNotes") {
 
         /*
          * (non-Javadoc)
@@ -966,7 +966,7 @@
     /**
      * Copyright info. Informational only.
      */
-    public static final ConfigEntryType COPYRIGHT_CONTACT_ADDRESS = new ConfigEntryType("CopyrightContactAddress") { //$NON-NLS-1$
+    public static final ConfigEntryType COPYRIGHT_CONTACT_ADDRESS = new ConfigEntryType("CopyrightContactAddress") {
 
         /*
          * (non-Javadoc)
@@ -996,27 +996,27 @@
     /**
      * Copyright info. Informational only.
      */
-    public static final ConfigEntryType COPYRIGHT_CONTACT_EMAIL = new ConfigEntryType("CopyrightContactEmail"); //$NON-NLS-1$
+    public static final ConfigEntryType COPYRIGHT_CONTACT_EMAIL = new ConfigEntryType("CopyrightContactEmail");
 
     /**
      * A one line promo statement, required by Lockman for NASB
      */
-    public static final ConfigEntryType SHORT_PROMO = new ConfigEntryType("ShortPromo"); //$NON-NLS-1$
+    public static final ConfigEntryType SHORT_PROMO = new ConfigEntryType("ShortPromo");
 
     /**
      * A one line copyright statement, required by Lockman for NASB
      */
-    public static final ConfigEntryType SHORT_COPYRIGHT = new ConfigEntryType("ShortCopyright"); //$NON-NLS-1$
+    public static final ConfigEntryType SHORT_COPYRIGHT = new ConfigEntryType("ShortCopyright");
 
     /**
      * Copyright info. Informational only.
      */
-    public static final ConfigEntryType DISTRIBUTION_LICENSE = new ConfigEntryPickType("DistributionLicense", LICENSE_PICKS, LICENSE_PICKS[0]); //$NON-NLS-1$
+    public static final ConfigEntryType DISTRIBUTION_LICENSE = new ConfigEntryPickType("DistributionLicense", LICENSE_PICKS, LICENSE_PICKS[0]);
 
     /**
      * Copyright info. Informational only.
      */
-    public static final ConfigEntryType DISTRIBUTION_NOTES = new ConfigEntryType("DistributionNotes") { //$NON-NLS-1$
+    public static final ConfigEntryType DISTRIBUTION_NOTES = new ConfigEntryType("DistributionNotes") {
 
         /*
          * (non-Javadoc)
@@ -1037,7 +1037,7 @@
     /**
      * Information on where the book's text was obtained.
      */
-    public static final ConfigEntryType TEXT_SOURCE = new ConfigEntryType("TextSource") { //$NON-NLS-1$
+    public static final ConfigEntryType TEXT_SOURCE = new ConfigEntryType("TextSource") {
 
         /*
          * (non-Javadoc)
@@ -1059,7 +1059,7 @@
      * Similar to DataPath. It gives where on the CrossWire server the book can
      * be found. Informational only.
      */
-    public static final ConfigEntryType DISTRIBUTION_SOURCE = new ConfigEntryType("DistributionSource") { //$NON-NLS-1$
+    public static final ConfigEntryType DISTRIBUTION_SOURCE = new ConfigEntryType("DistributionSource") {
 
         /*
          * (non-Javadoc)
@@ -1081,18 +1081,18 @@
      * single value version number, lowest sword c++ version that can read this
      * book JSword does not use this value.
      */
-    public static final ConfigEntryType OSIS_VERSION = new ConfigEntryType("OSISVersion", "2.0"); //$NON-NLS-1$ //$NON-NLS-2$
+    public static final ConfigEntryType OSIS_VERSION = new ConfigEntryType("OSISVersion", "2.0");
 
     /**
      * The location of a collection of modules. JSword uses this to install and
      * delete a module.
      */
-    public static final ConfigEntryType LIBRARY_URL = new ConfigEntrySyntheticType("LibraryURL"); //$NON-NLS-1$
+    public static final ConfigEntryType LIBRARY_URL = new ConfigEntrySyntheticType("LibraryURL");
 
     /**
      * The location of the module. JSword uses this to access a module.
      */
-    public static final ConfigEntryType LOCATION_URL = new ConfigEntrySyntheticType("LocationURL"); //$NON-NLS-1$
+    public static final ConfigEntryType LOCATION_URL = new ConfigEntrySyntheticType("LocationURL");
 
     /**
      * Simple ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/DataEntry.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/DataEntry.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/DataEntry.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -70,15 +70,15 @@
             keyEnd = SwordUtil.findByte(data, SEPARATOR);
 
             if (keyEnd < 0) {
-                DataPolice.report("Failed to find key. name='" + name + "'"); //$NON-NLS-1$ //$NON-NLS-2$
-                return ""; //$NON-NLS-1$
+                DataPolice.report("Failed to find key. name='" + name + "'");
+                return "";
             }
 
             key = SwordUtil.decode(name, data, keyEnd, charset).trim();
 
             // for some weird reason plain text dictionaries
             // all get \ added to the ends of the index entries.
-            if (key.endsWith("\\")) { //$NON-NLS-1$
+            if (key.endsWith("\\")) {
                 key = key.substring(0, key.length() - 1);
             }
         }
@@ -94,7 +94,7 @@
     public boolean isLinkEntry() {
         if (data.length >= 5) {
             String linkCheck = SwordUtil.decode(name, data, getKeyEnd() + 1, 5, charset);
-            return "@LINK".equals(linkCheck); //$NON-NLS-1$
+            return "@LINK".equals(linkCheck);
         }
         return false;
     }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/GenBookBackend.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/GenBookBackend.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/GenBookBackend.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -76,16 +76,18 @@
         bdtFile = new File(path.getPath() + EXTENSION_BDT);
 
         if (!bdtFile.canRead()) {
-            Reporter.informUser(this, new BookException(UserMsg.READ_FAIL, new Object[] {
+            // TRANSLATOR: Common error condition: The file could not be read. There can be many reasons.
+            // {0} is a placeholder for the file.
+            Reporter.informUser(this, new BookException(UserMsg.gettext("Error reading {0}", new Object[] {
                 bdtFile.getAbsolutePath()
-            }));
+            })));
             return;
         }
 
         try {
             bdtRaf = new RandomAccessFile(bdtFile, FileUtil.MODE_READ);
         } catch (IOException ex) {
-            log.error("failed to open files", ex); //$NON-NLS-1$
+            log.error("failed to open files", ex);
             bdtRaf = null;
         }
         active = true;
@@ -104,7 +106,7 @@
                 bdtRaf.close();
             }
         } catch (IOException ex) {
-            log.error("failed to close gen book files", ex); //$NON-NLS-1$
+            log.error("failed to close gen book files", ex);
         } finally {
             bdtRaf = null;
         }
@@ -164,11 +166,13 @@
                 return SwordUtil.decode(key.getName(), data, getBookMetaData().getBookCharset());
             }
 
-            return ""; //$NON-NLS-1$
+            return "";
         } catch (IOException e) {
-            throw new BookException(UserMsg.READ_FAIL, e, new Object[] {
+            // TRANSLATOR: Common error condition: The file could not be read. There can be many reasons.
+            // {0} is a placeholder for the file.
+            throw new BookException(UserMsg.gettext("Error reading {0}", new Object[] {
                 key.getName()
-            });
+            }), e);
         } finally {
             DataPolice.setKey(null);
         }
@@ -202,7 +206,7 @@
                 if (node.hasNextSibling()) {
                     node = index.getNextSibling(node);
                 } else {
-                    log.error("Could not find " + name); //$NON-NLS-1$
+                    log.error("Could not find " + name);
                     node = null;
                 }
             }
@@ -238,7 +242,7 @@
             reply = new TreeKey(node.getName(), null);
             doReadIndex(node, reply);
         } catch (IOException e) {
-            log.error("Could not get read GenBook index", e); //$NON-NLS-1$
+            log.error("Could not get read GenBook index", e);
         }
 
         return reply;
@@ -298,7 +302,7 @@
     /**
      * Raw GenBook file extensions
      */
-    private static final String EXTENSION_BDT = ".bdt"; //$NON-NLS-1$
+    private static final String EXTENSION_BDT = ".bdt";
 
     /**
      * The raw data file

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,14 +31,14 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class Msg extends MsgBase {
-    static final Msg BAD_KEY = new Msg("RawLDBackend.BadKey"); //$NON-NLS-1$
-    static final Msg FILTER_FAIL = new Msg("SwordDictionary.FilterFail"); //$NON-NLS-1$
-    static final Msg MISSING_FILE = new Msg("ZVerseBackend.MissingFile"); //$NON-NLS-1$
-    static final Msg TYPE_UNSUPPORTED = new Msg("SwordBookDriver.TypeUnsuported"); //$NON-NLS-1$
-    static final Msg DRIVER_READONLY = new Msg("SwordBook.DriverReadonly"); //$NON-NLS-1$
-    static final Msg UNDEFINED_BOOK_TYPE = new Msg("BookType.UndefinedBookType"); //$NON-NLS-1$
-    static final Msg UNDEFINED_DATATYPE = new Msg("BookType.UndefinedDatatype"); //$NON-NLS-1$
-    static final MsgBase UNABLE_TO_SAVE = new Msg("SwordBook.UnableToSave"); //$NON-NLS-1$;
+    static final Msg BAD_KEY = new Msg("RawLDBackend.BadKey");
+    static final Msg FILTER_FAIL = new Msg("SwordDictionary.FilterFail");
+    static final Msg MISSING_FILE = new Msg("ZVerseBackend.MissingFile");
+    static final Msg TYPE_UNSUPPORTED = new Msg("SwordBookDriver.TypeUnsuported");
+    static final Msg DRIVER_READONLY = new Msg("SwordBook.DriverReadonly");
+    static final Msg UNDEFINED_BOOK_TYPE = new Msg("BookType.UndefinedBookType");
+    static final Msg UNDEFINED_DATATYPE = new Msg("BookType.UndefinedDatatype");
+    static final MsgBase UNABLE_TO_SAVE = new Msg("SwordBook.UnableToSave");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawBackend.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawBackend.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawBackend.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -114,14 +114,16 @@
 
                 // If this is a single testament Bible, return nothing.
                 if (idxRaf[testament] == null) {
-                    return ""; //$NON-NLS-1$
+                    return "";
                 }
 
                 return getEntry(key.getName(), testament, index);
             } catch (IOException ex) {
-                throw new BookException(UserMsg.READ_FAIL, ex, new Object[] {
+                // TRANSLATOR: Common error condition: The file could not be read. There can be many reasons.
+                // {0} is a placeholder for the file.
+                throw new BookException(UserMsg.gettext("Error reading {0}", new Object[] {
                     verse.getName()
-                });
+                }), ex);
             }
         } finally {
             DataPolice.setKey(null);
@@ -208,7 +210,7 @@
                 txtRaf[SwordConstants.TESTAMENT_OLD] = new RandomAccessFile(txtFile[SwordConstants.TESTAMENT_OLD], fileMode);
             } catch (FileNotFoundException ex) {
                 assert false : ex;
-                log.error("Could not open OT", ex); //$NON-NLS-1$
+                log.error("Could not open OT", ex);
                 idxRaf[SwordConstants.TESTAMENT_OLD] = null;
                 txtRaf[SwordConstants.TESTAMENT_OLD] = null;
             }
@@ -220,7 +222,7 @@
                 txtRaf[SwordConstants.TESTAMENT_NEW] = new RandomAccessFile(txtFile[SwordConstants.TESTAMENT_NEW], fileMode);
             } catch (FileNotFoundException ex) {
                 assert false : ex;
-                log.error("Could not open NT", ex); //$NON-NLS-1$
+                log.error("Could not open NT", ex);
                 idxRaf[SwordConstants.TESTAMENT_NEW] = null;
                 txtRaf[SwordConstants.TESTAMENT_NEW] = null;
             }
@@ -244,7 +246,7 @@
             idxRaf[SwordConstants.TESTAMENT_NEW].close();
             txtRaf[SwordConstants.TESTAMENT_NEW].close();
         } catch (IOException ex) {
-            log.error("Failed to close files", ex); //$NON-NLS-1$
+            log.error("Failed to close files", ex);
         } finally {
             idxRaf[SwordConstants.TESTAMENT_OLD] = null;
             txtRaf[SwordConstants.TESTAMENT_OLD] = null;
@@ -312,12 +314,12 @@
 
         int size = dataIndex.getSize();
         if (size == 0) {
-            return ""; //$NON-NLS-1$
+            return "";
         }
 
         if (size < 0) {
-            log.error("In " + getBookMetaData().getInitials() + ": Verse " + name + " has a bad index size of " + size); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-            return ""; //$NON-NLS-1$
+            log.error("In " + getBookMetaData().getInitials() + ": Verse " + name + " has a bad index size of " + size);
+            return "";
         }
 
         byte[] data = SwordUtil.readRAF(txtRaf[testament], dataIndex.getOffset(), size);

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawFileBackend.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawFileBackend.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawFileBackend.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -53,7 +53,7 @@
         try {
             incfileValue = readIncfile();
         } catch (IOException e) {
-            log.error("Error on reading incfile!"); //$NON-NLS-1$
+            log.error("Error on reading incfile!");
         }
     }
 
@@ -86,12 +86,12 @@
         DataIndex dataIndex = getIndex(idxRaf[testament], index);
         int size = dataIndex.getSize();
         if (size == 0) {
-            return ""; //$NON-NLS-1$
+            return "";
         }
 
         if (size < 0) {
-            log.error("In " + getBookMetaData().getInitials() + ": Verse " + name + " has a bad index size of " + size); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-            return ""; //$NON-NLS-1$
+            log.error("In " + getBookMetaData().getInitials() + ": Verse " + name + " has a bad index size of " + size);
+            return "";
         }
 
         try {
@@ -122,7 +122,7 @@
             dataFile = getDataTextFile(testament, dataIndex);
         }
 
-        byte[] textData = text.getBytes("UTF-8"); //$NON-NLS-1$
+        byte[] textData = text.getBytes("UTF-8");
         encipher(textData);
         writeTextDataFile(dataFile, textData);
 
@@ -151,7 +151,7 @@
                 this.incfile = tempIncfile;
             }
         } catch (BookException e) {
-            log.error("Error on checking incfile: " + e.getMessage()); //$NON-NLS-1$
+            log.error("Error on checking incfile: " + e.getMessage());
         }
     }
 
@@ -159,10 +159,10 @@
         String dataPath = getExpandedDataPath().getPath();
         // JDK15: Use String.format instead
         // dataPath += File.separator + String.format("%07d", index);
-        dataPath += File.separator + new DecimalFormat("0000000").format(index); //$NON-NLS-1$
+        dataPath += File.separator + new DecimalFormat("0000000").format(index);
         File dataFile = new File(dataPath);
         if (!dataFile.exists() && !dataFile.createNewFile()) {
-            throw new IOException("Could not create data file."); //$NON-NLS-1$
+            throw new IOException("Could not create data file.");
         }
         return dataFile;
     }
@@ -179,8 +179,8 @@
             String dataPath = getExpandedDataPath().getPath() + File.separator + dataFilename;
             dataFile = new File(dataPath);
         } else {
-            log.error("Read data is not of appropriate size of 9 bytes!"); //$NON-NLS-1$
-            throw new IOException("Datalength is not 9 bytes!"); //$NON-NLS-1$
+            log.error("Read data is not of appropriate size of 9 bytes!");
+            throw new IOException("Datalength is not 9 bytes!");
         }
         return dataFile;
     }
@@ -207,8 +207,8 @@
         // JDK15: Use String.format instead
         // String fileName = String.format("%07d\r\n", ordinal);
         StringBuffer buf = new StringBuffer();
-        buf.append(new DecimalFormat("0000000").format(ordinal)); //$NON-NLS-1$
-        buf.append("\r\n"); //$NON-NLS-1$
+        buf.append(new DecimalFormat("0000000").format(ordinal));
+        buf.append("\r\n");
         String fileName = buf.toString();
         BufferedOutputStream bos = null;
         try {
@@ -271,12 +271,12 @@
 
         File otTextFile = new File(path + File.separator + SwordConstants.FILE_OT);
         if (!otTextFile.exists() && !otTextFile.createNewFile()) {
-            throw new IOException("Could not create ot text file."); //$NON-NLS-1$
+            throw new IOException("Could not create ot text file.");
         }
 
         File ntTextFile = new File(path + File.separator + SwordConstants.FILE_NT);
         if (!ntTextFile.exists() && !ntTextFile.createNewFile()) {
-            throw new IOException("Could not create nt text file."); //$NON-NLS-1$
+            throw new IOException("Could not create nt text file.");
         }
     }
 
@@ -284,12 +284,12 @@
         String path = getExpandedDataPath().getPath();
         File otIndexFile = new File(path + File.separator + SwordConstants.FILE_OT + SwordConstants.EXTENSION_VSS);
         if (!otIndexFile.exists() && !otIndexFile.createNewFile()) {
-            throw new IOException("Could not create ot index file."); //$NON-NLS-1$
+            throw new IOException("Could not create ot index file.");
         }
 
         File ntIndexFile = new File(path + File.separator + SwordConstants.FILE_NT + SwordConstants.EXTENSION_VSS);
         if (!ntIndexFile.exists() && !ntIndexFile.createNewFile()) {
-            throw new IOException("Could not create nt index file."); //$NON-NLS-1$
+            throw new IOException("Could not create nt index file.");
         }
     }
 
@@ -320,7 +320,7 @@
     private void createIncfile() throws IOException, BookException {
         File tempIncfile = new File(getExpandedDataPath().getPath() + File.separator + INCFILE);
         if (!tempIncfile.exists() && !tempIncfile.createNewFile()) {
-            throw new IOException("Could not create incfile file."); //$NON-NLS-1$
+            throw new IOException("Could not create incfile file.");
         }
         this.incfile = tempIncfile;
     }
@@ -335,7 +335,7 @@
             fos = new FileOutputStream(this.incfile, false);
             fos.write(littleEndian32BitByteArrayFromInt(value));
         } catch (FileNotFoundException e) {
-            log.error("Error on writing to incfile, file should exist already!"); //$NON-NLS-1$
+            log.error("Error on writing to incfile, file should exist already!");
             log.error(e.getMessage());
         } finally {
             if (fos != null) {
@@ -352,12 +352,12 @@
                 fis = new FileInputStream(this.incfile);
                 byte[] buffer = new byte[4];
                 if (fis.read(buffer) != 4) {
-                    log.error("Read data is not of appropriate size of 4 bytes!"); //$NON-NLS-1$
-                    throw new IOException("Incfile is not 4 bytes long"); //$NON-NLS-1$
+                    log.error("Read data is not of appropriate size of 4 bytes!");
+                    throw new IOException("Incfile is not 4 bytes long");
                 }
                 ret = SwordUtil.decodeLittleEndian32(buffer, 0);
             } catch (FileNotFoundException e) {
-                log.error("Error on writing to incfile, file should exist already!"); //$NON-NLS-1$
+                log.error("Error on writing to incfile, file should exist already!");
                 log.error(e.getMessage());
             } finally {
                 if (fis != null) {
@@ -381,13 +381,13 @@
             byte[] textData = new byte[len];
             inStream = new BufferedInputStream(new FileInputStream(dataFile));
             if (inStream.read(textData) != len) {
-                log.error("Read data is not of appropriate size of " + len + " bytes!"); //$NON-NLS-1$ //$NON-NLS-2$
-                throw new IOException("data is not " + len + " bytes long"); //$NON-NLS-1$ //$NON-NLS-2$
+                log.error("Read data is not of appropriate size of " + len + " bytes!");
+                throw new IOException("data is not " + len + " bytes long");
             }
             return textData;
         } catch (FileNotFoundException ex) {
             log.error(ex.getMessage());
-            throw new IOException("Could not read text data file, file not found: " + dataFile.getName()); //$NON-NLS-1$
+            throw new IOException("Could not read text data file, file not found: " + dataFile.getName());
         } finally {
             if (inStream != null) {
                 inStream.close();
@@ -420,7 +420,7 @@
     }
 
     private static final Logger log = Logger.getLogger(RawFileBackend.class);
-    private static final String INCFILE = "incfile"; //$NON-NLS-1$
+    private static final String INCFILE = "incfile";
 
     private File incfile;
     private int incfileValue;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawLDBackend.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawLDBackend.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/RawLDBackend.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -90,7 +90,7 @@
 
     public String getRawText(String key) throws BookException {
         if (!checkActive()) {
-            return ""; //$NON-NLS-1$
+            return "";
         }
 
         try {
@@ -102,13 +102,16 @@
                 }
                 return getRawText(entry);
             }
-            throw new BookException(UserMsg.READ_FAIL, new Object[] {
+            // TRANSLATOR: Error condition: Indicates that something could not be found in the book. {0} is a placeholder for the unknown key.
+            throw new BookException(UserMsg.gettext("Key not found {0}", new Object[] {
                 key
-            });
+            }));
         } catch (IOException ex) {
-            throw new BookException(UserMsg.READ_FAIL, ex, new Object[] {
+            // TRANSLATOR: Common error condition: The file could not be read. There can be many reasons.
+            // {0} is a placeholder for the file.
+            throw new BookException(UserMsg.gettext("Error reading {0}", new Object[] {
                 key
-            });
+            }), ex);
         }
     }
 
@@ -203,16 +206,20 @@
             datFile = new File(path.getPath() + SwordConstants.EXTENSION_DATA);
 
             if (!idxFile.canRead()) {
-                Reporter.informUser(this, new BookException(UserMsg.READ_FAIL, new Object[] {
+                // TRANSLATOR: Common error condition: The file could not be read. There can be many reasons.
+                // {0} is a placeholder for the file.
+                Reporter.informUser(this, new BookException(UserMsg.gettext("Error reading {0}", new Object[] {
                     idxFile.getAbsolutePath()
-                }));
+                })));
                 return;
             }
 
             if (!datFile.canRead()) {
-                Reporter.informUser(this, new BookException(UserMsg.READ_FAIL, new Object[] {
+                // TRANSLATOR: Common error condition: The file could not be read. There can be many reasons.
+                // {0} is a placeholder for the file.
+                Reporter.informUser(this, new BookException(UserMsg.gettext("Error reading {0}", new Object[] {
                     datFile.getAbsolutePath()
-                }));
+                })));
                 return;
             }
 
@@ -220,7 +227,7 @@
             idxRaf = new RandomAccessFile(idxFile, FileUtil.MODE_READ);
             datRaf = new RandomAccessFile(datFile, FileUtil.MODE_READ);
         } catch (IOException ex) {
-            log.error("failed to open files", ex); //$NON-NLS-1$
+            log.error("failed to open files", ex);
             idxRaf = null;
             datRaf = null;
             return;
@@ -246,7 +253,7 @@
                 datRaf.close();
             }
         } catch (IOException ex) {
-            log.error("failed to close files", ex); //$NON-NLS-1$
+            log.error("failed to close files", ex);
         } finally {
             idxRaf = null;
             datRaf = null;
@@ -427,7 +434,7 @@
 
                 // The NAS lexicon has some entries that end in A-Z, but it is
                 // not preceded by a !
-                if (hasTrailingLetter && "naslex".equalsIgnoreCase(bmd.getInitials())) //$NON-NLS-1$
+                if (hasTrailingLetter && "naslex".equalsIgnoreCase(bmd.getInitials()))
                 {
                     buf.append(Character.toUpperCase(lastLetter));
                 }
@@ -531,21 +538,21 @@
     /**
      * Date formatter
      */
-    private static final MessageFormat DATE_KEY_FORMAT = new MessageFormat("{0,number,00}.{1,number,00}"); //$NON-NLS-1$
+    private static final MessageFormat DATE_KEY_FORMAT = new MessageFormat("{0,number,00}.{1,number,00}");
 
     /**
      * This is the pattern of a Strong's Number. It begins with a G or H. Is
      * followed by a number. It can be followed by a ! and a letter or just a
      * letter.
      */
-    private static final Pattern STRONGS_PATTERN = Pattern.compile("^([GH])(\\d+)((!)?([a-z])?)$"); //$NON-NLS-1$
+    private static final Pattern STRONGS_PATTERN = Pattern.compile("^([GH])(\\d+)((!)?([a-z])?)$");
 
     /**
      * A means to normalize Strong's Numbers.
      */
-    private static final DecimalFormat ZERO_5PAD = new DecimalFormat("00000"); //$NON-NLS-1$
+    private static final DecimalFormat ZERO_5PAD = new DecimalFormat("00000");
 
-    private static final DecimalFormat ZERO_4PAD = new DecimalFormat("0000"); //$NON-NLS-1$
+    private static final DecimalFormat ZERO_4PAD = new DecimalFormat("0000");
 
     /**
      * Serialization ID

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBook.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBook.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBook.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -99,7 +99,7 @@
      */
     public String getRawText(Key key) throws BookException {
         if (backend == null) {
-            return ""; //$NON-NLS-1$
+            return "";
         }
 
         String result = backend.getRawText(key);

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookDriver.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookDriver.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookDriver.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -60,7 +60,7 @@
      * @see org.crosswire.jsword.book.BookDriver#getName()
      */
     public String getDriverName() {
-        return "Sword"; //$NON-NLS-1$
+        return "Sword";
     }
 
     /*
@@ -119,13 +119,13 @@
                         }
                     }
                 } catch (IOException e) {
-                    log.warn("Couldn't create SwordBookMetaData", e); //$NON-NLS-1$
+                    log.warn("Couldn't create SwordBookMetaData", e);
                 } catch (BookException e) {
-                    log.warn("Couldn't create SwordBookMetaData", e); //$NON-NLS-1$
+                    log.warn("Couldn't create SwordBookMetaData", e);
                 }
             }
         } else {
-            log.debug("mods.d directory at " + mods + " does not exist"); //$NON-NLS-1$ //$NON-NLS-2$
+            log.debug("mods.d directory at " + mods + " does not exist");
         }
     }
 
@@ -161,9 +161,11 @@
 
         // We can only uninstall what we download into our download dir.
         if (!confFile.exists()) {
-            throw new BookException(UserMsg.DELETE_FAILED, new Object[] {
+            // TRANSLATOR: Common error condition: The file could not be deleted. There can be many reasons.
+            // {0} is a placeholder for the file.
+            throw new BookException(UserMsg.gettext("Unable to delete: {0}", new Object[] {
                 confFile
-            });
+            }));
         }
 
         // Delete the conf
@@ -180,9 +182,11 @@
 
         // TODO(DM): list all that failed
         if (!failures.isEmpty()) {
-            throw new BookException(UserMsg.DELETE_FAILED, new Object[] {
+            // TRANSLATOR: Common error condition: The file could not be deleted. There can be many reasons.
+            // {0} is a placeholder for the file.
+            throw new BookException(UserMsg.gettext("Unable to delete: {0}", new Object[] {
                 failures.get(0)
-            });
+            }));
         }
     }
 

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookMetaData.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookMetaData.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookMetaData.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -372,8 +372,8 @@
      */
     private static final Map ENCODING_JAVA = new HashMap();
     static {
-        ENCODING_JAVA.put("Latin-1", "WINDOWS-1252"); //$NON-NLS-1$ //$NON-NLS-2$
-        ENCODING_JAVA.put("UTF-8", "UTF-8"); //$NON-NLS-1$ //$NON-NLS-2$
+        ENCODING_JAVA.put("Latin-1", "WINDOWS-1252");
+        ENCODING_JAVA.put("UTF-8", "UTF-8");
     }
 
     private ConfigEntryTable cet;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookPath.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookPath.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordBookPath.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -142,13 +142,13 @@
         String home = System.getProperty(PROPERTY_USER_HOME);
 
         // Is sword.conf in the current directory?
-        readSwordConf(bookDirs, "."); //$NON-NLS-1$
+        readSwordConf(bookDirs, ".");
 
         // mods.d in the current directory?
-        testDefaultPath(bookDirs, "."); //$NON-NLS-1$
+        testDefaultPath(bookDirs, ".");
 
         // how about in the library, just next door?
-        testDefaultPath(bookDirs, ".." + File.separator + DIR_SWORD_LIBRARY); //$NON-NLS-1$
+        testDefaultPath(bookDirs, ".." + File.separator + DIR_SWORD_LIBRARY);
 
         // if there is a property set for the sword home directory
         // The Sword project defines SWORD_HOME, but JSword expects this to be
@@ -158,14 +158,14 @@
             testDefaultPath(bookDirs, swordhome);
 
             // how about in the library, just next door?
-            testDefaultPath(bookDirs, swordhome + File.separator + ".." + File.separator + DIR_SWORD_LIBRARY); //$NON-NLS-1$
+            testDefaultPath(bookDirs, swordhome + File.separator + ".." + File.separator + DIR_SWORD_LIBRARY);
         }
 
-        if (System.getProperty("os.name").startsWith("Windows")) //$NON-NLS-1$ //$NON-NLS-2$
+        if (System.getProperty("os.name").startsWith("Windows"))
         {
             testDefaultPath(bookDirs, DIR_WINDOWS_DEFAULT);
             // how about in the library, just next door?
-            testDefaultPath(bookDirs, DIR_WINDOWS_DEFAULT + File.separator + ".." + File.separator + DIR_SWORD_LIBRARY); //$NON-NLS-1$
+            testDefaultPath(bookDirs, DIR_WINDOWS_DEFAULT + File.separator + ".." + File.separator + DIR_SWORD_LIBRARY);
         }
 
         // .sword in the users home directory?
@@ -204,13 +204,13 @@
                 datapath = prop.getProperty(AUGMENT_PATH);
                 testDefaultPath(bookDirs, datapath);
             } catch (IOException ex) {
-                log.warn("Failed to read system config file", ex); //$NON-NLS-1$
+                log.warn("Failed to read system config file", ex);
             } finally {
                 if (is != null) {
                     try {
                         is.close();
                     } catch (IOException e) {
-                        log.warn("Failed to close system config file", e); //$NON-NLS-1$
+                        log.warn("Failed to close system config file", e);
                     }
                 }
             }
@@ -370,9 +370,9 @@
      *            The download directory that the user specifies.
      */
     public static void setDownloadDir(File dlDir) {
-        if (!dlDir.getPath().equals("")) { //$NON-NLS-1$
+        if (!dlDir.getPath().equals("")) {
             overrideDownloadDir = dlDir;
-            log.debug("Setting sword download directory to: " + dlDir); //$NON-NLS-1$
+            log.debug("Setting sword download directory to: " + dlDir);
         }
     }
 
@@ -394,57 +394,57 @@
     /**
      * Default windows installation directory
      */
-    private static final String DIR_WINDOWS_DEFAULT = "C:\\Program Files\\CrossWire\\The SWORD Project"; //$NON-NLS-1$
+    private static final String DIR_WINDOWS_DEFAULT = "C:\\Program Files\\CrossWire\\The SWORD Project";
 
     /**
      * Library may be a sibling of DIR_WINDOWS_DEFAULT or SWORD_HOME or CWD
      */
-    private static final String DIR_SWORD_LIBRARY = "library"; //$NON-NLS-1$
+    private static final String DIR_SWORD_LIBRARY = "library";
 
     /**
      * Users config directory for Sword in Unix
      */
-    private static final String DIR_SWORD_CONF = ".sword"; //$NON-NLS-1$
+    private static final String DIR_SWORD_CONF = ".sword";
 
     /**
      * Users config directory for Sword in Unix
      */
-    private static final String DIR_SWORD_CONF_ALT = "Sword"; //$NON-NLS-1$
+    private static final String DIR_SWORD_CONF_ALT = "Sword";
 
     /**
      * Sword global config file
      */
-    private static final String SWORD_GLOBAL_CONF = "sword.conf"; //$NON-NLS-1$
+    private static final String SWORD_GLOBAL_CONF = "sword.conf";
 
     /**
      * Sword global config file locations
      */
-    private static final String DIR_SWORD_GLOBAL_CONF = "/etc:/usr/local/etc"; //$NON-NLS-1$
+    private static final String DIR_SWORD_GLOBAL_CONF = "/etc:/usr/local/etc";
 
     /**
      * Sword global config file's path to where mods can be found
      */
-    private static final String DATA_PATH = "DataPath"; //$NON-NLS-1$
+    private static final String DATA_PATH = "DataPath";
 
     /**
      * Sword global config file's path to where mods can be found
      */
-    private static final String AUGMENT_PATH = "AugmentPath"; //$NON-NLS-1$
+    private static final String AUGMENT_PATH = "AugmentPath";
 
     /**
      * System property for sword home directory
      */
-    private static final String PROPERTY_SWORD_HOME = "sword.home"; //$NON-NLS-1$
+    private static final String PROPERTY_SWORD_HOME = "sword.home";
 
     /**
      * Java system property for users home directory
      */
-    private static final String PROPERTY_USER_HOME = "user.home"; //$NON-NLS-1$
+    private static final String PROPERTY_USER_HOME = "user.home";
 
     /**
      * File prefix for config file
      */
-    private static final String PREFIX_GLOBALS = "globals."; //$NON-NLS-1$
+    private static final String PREFIX_GLOBALS = "globals.";
 
     /**
      * The directory URL

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordConstants.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordConstants.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordConstants.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -44,42 +44,42 @@
     /**
      * New testament data files
      */
-    public static final String FILE_NT = "nt"; //$NON-NLS-1$
+    public static final String FILE_NT = "nt";
 
     /**
      * Old testament data files
      */
-    public static final String FILE_OT = "ot"; //$NON-NLS-1$
+    public static final String FILE_OT = "ot";
 
     /**
      * Index file extensions
      */
-    public static final String EXTENSION_VSS = ".vss"; //$NON-NLS-1$
+    public static final String EXTENSION_VSS = ".vss";
 
     /**
      * Extension for index files
      */
-    public static final String EXTENSION_INDEX = ".idx"; //$NON-NLS-1$
+    public static final String EXTENSION_INDEX = ".idx";
 
     /**
      * Extension for data files
      */
-    public static final String EXTENSION_DATA = ".dat"; //$NON-NLS-1$
+    public static final String EXTENSION_DATA = ".dat";
 
     /**
      * Extension for config files
      */
-    public static final String EXTENSION_CONF = ".conf"; //$NON-NLS-1$
+    public static final String EXTENSION_CONF = ".conf";
 
     /**
      * The data directory
      */
-    public static final String DIR_DATA = "modules"; //$NON-NLS-1$
+    public static final String DIR_DATA = "modules";
 
     /**
      * The configuration directory
      */
-    public static final String DIR_CONF = "mods.d"; //$NON-NLS-1$
+    public static final String DIR_CONF = "mods.d";
 
     /**
      * constant for the introduction

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordGenBook.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordGenBook.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordGenBook.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -256,9 +256,12 @@
             }
         }
 
-        throw new NoSuchKeyException(UserMsg.NO_KEY, new Object[] {
+        // TRANSLATOR: Error condition: Indicates that something could not be found in the book.
+        // {0} is a placeholder for the unknown key.
+        // {1} is the short name of the book
+        throw new NoSuchKeyException(UserMsg.gettext("No entry for \'{0}\' in {1}.", new Object[] {
                 text, getInitials()
-        });
+        }));
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordUtil.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordUtil.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/SwordUtil.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -77,17 +77,17 @@
         long rafSize = raf.length();
 
         if (offset >= rafSize) {
-            DataPolice.report("Attempt to read beyond end. offset=" + offset + " size=" + size + " but raf.length=" + rafSize); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+            DataPolice.report("Attempt to read beyond end. offset=" + offset + " size=" + size + " but raf.length=" + rafSize);
             return new byte[0];
         }
 
         if (offset + size > raf.length()) {
-            DataPolice.report("Need to reduce size to avoid EOFException. offset=" + offset + " size=" + size + " but raf.length=" + rafSize); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+            DataPolice.report("Need to reduce size to avoid EOFException. offset=" + offset + " size=" + size + " but raf.length=" + rafSize);
             size = (int) (raf.length() - offset);
         }
 
         if (size < 1) {
-            DataPolice.report("Nothing to read at offset = " + offset + " returning empty because size=" + size); //$NON-NLS-1$ //$NON-NLS-2$
+            DataPolice.report("Nothing to read at offset = " + offset + " returning empty because size=" + size);
             return new byte[0];
         }
 
@@ -327,15 +327,15 @@
      * @return a string that is UTF-8 internally
      */
     public static String decode(String key, byte[] data, int offset, int length, String charset) {
-        if ("WINDOWS-1252".equals(charset)) { //$NON-NLS-1$
+        if ("WINDOWS-1252".equals(charset)) {
             clean1252(key, data, length);
         }
-        String txt = ""; //$NON-NLS-1$
+        String txt = "";
         try {
             txt = new String(data, offset, length, charset);
         } catch (UnsupportedEncodingException ex) {
             // It is impossible! In case, use system default...
-            log.error(key + ": Encoding: " + charset + " not supported", ex); //$NON-NLS-1$ //$NON-NLS-2$
+            log.error(key + ": Encoding: " + charset + " not supported", ex);
             txt = new String(data, offset, length);
         }
 
@@ -364,7 +364,7 @@
             int c = data[i] & 0xFF;
             if ((c >= 0x00 && c < 0x20 && c != 0x09 && c != 0x0A && c != 0x0D) || (c == 0x81 || c == 0x8D || c == 0x8F || c == 0x90 || c == 0x9D)) {
                 data[i] = 0x20;
-                DataPolice.report(key + " has bad character 0x" + Integer.toString(c, 16) + " at position " + i + " in input."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+                DataPolice.report(key + " has bad character 0x" + Integer.toString(c, 16) + " at position " + i + " in input.");
             }
         }
     }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeKeyIndex.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeKeyIndex.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeKeyIndex.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -178,16 +178,20 @@
         datFile = new File(path + EXTENSION_DATA);
 
         if (!idxFile.canRead()) {
-            Reporter.informUser(this, new BookException(UserMsg.READ_FAIL, new Object[] {
+            // TRANSLATOR: Common error condition: The file could not be read. There can be many reasons.
+            // {0} is a placeholder for the file.
+            Reporter.informUser(this, new BookException(UserMsg.gettext("Error reading {0}", new Object[] {
                 idxFile.getAbsolutePath()
-            }));
+            })));
             return;
         }
 
         if (!datFile.canRead()) {
-            Reporter.informUser(this, new BookException(UserMsg.READ_FAIL, new Object[] {
+            // TRANSLATOR: Common error condition: The file could not be read. There can be many reasons.
+            // {0} is a placeholder for the file.
+            Reporter.informUser(this, new BookException(UserMsg.gettext("Error reading {0}", new Object[] {
                 datFile.getAbsolutePath()
-            }));
+            })));
             return;
         }
 
@@ -195,7 +199,7 @@
             idxRaf = new RandomAccessFile(idxFile, FileUtil.MODE_READ);
             datRaf = new RandomAccessFile(datFile, FileUtil.MODE_READ);
         } catch (IOException ex) {
-            log.error("failed to open files", ex); //$NON-NLS-1$
+            log.error("failed to open files", ex);
             idxRaf = null;
             datRaf = null;
         }
@@ -218,7 +222,7 @@
                 datRaf.close();
             }
         } catch (IOException ex) {
-            log.error("failed to close nt files", ex); //$NON-NLS-1$
+            log.error("failed to close nt files", ex);
         } finally {
             idxRaf = null;
             datRaf = null;
@@ -245,8 +249,8 @@
         return new File(loc.getPath()).getAbsolutePath();
     }
 
-    private static final String EXTENSION_INDEX = ".idx"; //$NON-NLS-1$
-    private static final String EXTENSION_DATA = ".dat"; //$NON-NLS-1$
+    private static final String EXTENSION_INDEX = ".idx";
+    private static final String EXTENSION_DATA = ".dat";
 
     private SwordBookMetaData bmd;
     private File idxFile;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeNode.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeNode.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/TreeNode.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -46,7 +46,7 @@
      */
     TreeNode(int theOffset) {
         offset = theOffset;
-        name = ""; //$NON-NLS-1$
+        name = "";
         parent = -1;
         nextSibling = -1;
         firstChild = -1;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,16 +31,43 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class UserMsg extends MsgBase {
-    static final UserMsg NO_KEY = new UserMsg("SwordDictionary.NoKey"); //$NON-NLS-1$
-    static final UserMsg MISSING_FILE = new UserMsg("ZVerseBackend.MissingFile"); //$NON-NLS-1$
-    static final UserMsg READ_FAIL = new UserMsg("ZVerseBackend.ReadFail"); //$NON-NLS-1$
-    static final UserMsg DELETE_FAILED = new UserMsg("SwordBookDriver.DeleteFailed"); //$NON-NLS-1$
-    static final UserMsg UNLOCK_FAILED = new UserMsg("ConfigEntryTable.UnlockFailed"); //$NON-NLS-1$;
 
     /**
-     * Passthrough ctor
+     * Get the internationalized text, but return key if key is unknown.
+     * 
+     * @param key
+     * @return the internationalized text
      */
-    private UserMsg(String name) {
-        super(name);
+    public static String gettext(String key)
+    {
+        return msg.lookup(key);
     }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object param)
+    {
+        return msg.toString(key, param);
+    }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object[] params)
+    {
+        return msg.toString(key, params);
+    }
+
+    private static MsgBase msg = new UserMsg();
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,5 +1,8 @@
-SwordDictionary.NoKey=No entry for \'{0}\' in {1}.
-ZVerseBackend.ReadFail=Error reading {0}
-SwordBookDriver.DeleteFailed=Unable to delete: {0}
-ConfigEntryTable.UnlockFailed=Unable to save the book\'s unlock key.
-SwordDictionary.NoKey=No entry for \'{0}\' in {1}.
+
+Error\ reading\ {0} = Error reading {0}
+
+No\ entry\ for\ '{0}'\ in\ {1}. = No entry for '{0}' in {1}.
+
+Unable\ to\ delete\:\ {0} = Unable to delete: {0}
+
+Unable\ to\ save\ the\ book's\ unlock\ key. = Unable to save the book's unlock key.

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg_fa.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg_fa.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg_fa.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,5 +1,8 @@
-SwordDictionary.NoKey=\'{0}\' \u0648\u0686\u0648\u062F \u0646\u062F\u0631\u062F \u062F\u0631 {1}.
-ZVerseBackend.ReadFail=\u0645\u0634\u06A9\u0644 \u062F\u0631 \u062E\u0648\u0627\u0646\u062F\u0646 {0}
-SwordBookDriver.DeleteFailed={0} \u067E\u0627\u06A9 \u06A9\u0631\u062F\u0646 \u063A\u06CC\u0631 \u0645\u0645\u06A9\u0646
-ConfigEntryTable.UnlockFailed=\u06A9\u0644\u06CC\u062F \u0627\u06CC\u0646 \u06A9\u062A\u0627\u0628 \u0627\u0646\u0628\u0627\u0631 \u0646\u0634\u062F
-SwordDictionary.NoKey= \'{0}\' \u0648\u0686\u0648\u062F \u0646\u062F\u0631\u062F \u062F\u0631 {1}.
+
+Error\ reading\ {0} = \u0645\u0634\u06A9\u0644 \u062F\u0631 \u062E\u0648\u0627\u0646\u062F\u0646 {0}
+
+No\ entry\ for\ '{0}'\ in\ {1}. = '{0}' \u0648\u0686\u0648\u062F \u0646\u062F\u0631\u062F \u062F\u0631 {1}.
+
+Unable\ to\ delete\:\ {0} = {0} \u067E\u0627\u06A9 \u06A9\u0631\u062F\u0646 \u063A\u06CC\u0631 \u0645\u0645\u06A9\u0646
+
+Unable\ to\ save\ the\ book's\ unlock\ key. = \u06A9\u0644\u06CC\u062F \u0627\u06CC\u0646 \u06A9\u062A\u0627\u0628 \u0627\u0646\u0628\u0627\u0631 \u0646\u0634\u062F

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg_in.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg_in.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/UserMsg_in.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,5 +1,8 @@
-SwordDictionary.NoKey=Tidak ada entri untuk \'{0}\' di {1}.
-ZVerseBackend.ReadFail=Gagal membaca {0}
-SwordBookDriver.DeleteFailed=Gagal menghapus: {0}
-ConfigEntryTable.UnlockFailed=Gagal menyimpan kata kunci untuk buku.
-SwordDictionary.NoKey=Tidak ada entri untuk \'{0}\' di {1}.
+
+Error\ reading\ {0} = Gagal membaca {0}
+
+No\ entry\ for\ '{0}'\ in\ {1}. = Tidak ada entri untuk '{0}' di {1}.
+
+Unable\ to\ delete\:\ {0} = Gagal menghapus: {0}
+
+Unable\ to\ save\ the\ book's\ unlock\ key. = Gagal menyimpan kata kunci untuk buku.

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ZLDBackend.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ZLDBackend.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ZLDBackend.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -66,7 +66,7 @@
             try {
                 temp = SwordUtil.readRAF(zdxRaf, blockNum * ZDX_ENTRY_SIZE, ZDX_ENTRY_SIZE);
                 if (temp == null || temp.length == 0) {
-                    return ""; //$NON-NLS-1$
+                    return "";
                 }
 
                 int blockStart = SwordUtil.decodeLittleEndian32(temp, 0);
@@ -83,14 +83,14 @@
                 lastBlockNum = blockNum;
                 lastUncompressed = uncompressed;
             } catch (IOException e) {
-                return ""; //$NON-NLS-1$
+                return "";
             }
         }
 
         // get the "entry" from this block.
         int entryCount = SwordUtil.decodeLittleEndian32(uncompressed, 0);
         if (blockEntry >= entryCount) {
-            return ""; //$NON-NLS-1$
+            return "";
         }
 
         int entryOffset = BLOCK_ENTRY_COUNT + (BLOCK_ENTRY_SIZE * blockEntry);
@@ -134,16 +134,20 @@
             zdtFile = new File(path.getPath() + EXTENSION_Z_DATA);
 
             if (!zdxFile.canRead()) {
-                Reporter.informUser(this, new BookException(UserMsg.READ_FAIL, new Object[] {
+                // TRANSLATOR: Common error condition: The file could not be read. There can be many reasons.
+                // {0} is a placeholder for the file.
+                Reporter.informUser(this, new BookException(UserMsg.gettext("Error reading {0}", new Object[] {
                     zdtFile.getAbsolutePath()
-                }));
+                })));
                 return;
             }
 
             if (!zdtFile.canRead()) {
-                Reporter.informUser(this, new BookException(UserMsg.READ_FAIL, new Object[] {
+                // TRANSLATOR: Common error condition: The file could not be read. There can be many reasons.
+                // {0} is a placeholder for the file.
+                Reporter.informUser(this, new BookException(UserMsg.gettext("Error reading {0}", new Object[] {
                     zdtFile.getAbsolutePath()
-                }));
+                })));
                 return;
             }
 
@@ -151,7 +155,7 @@
             zdxRaf = new RandomAccessFile(zdxFile, FileUtil.MODE_READ);
             zdtRaf = new RandomAccessFile(zdtFile, FileUtil.MODE_READ);
         } catch (IOException ex) {
-            log.error("failed to open files", ex); //$NON-NLS-1$
+            log.error("failed to open files", ex);
             zdxRaf = null;
             zdtRaf = null;
             return;
@@ -180,7 +184,7 @@
                 zdtRaf.close();
             }
         } catch (IOException ex) {
-            log.error("failed to close files", ex); //$NON-NLS-1$
+            log.error("failed to close files", ex);
         } finally {
             zdxRaf = null;
             zdtRaf = null;
@@ -214,8 +218,8 @@
         is.defaultReadObject();
     }
 
-    private static final String EXTENSION_Z_INDEX = ".zdx"; //$NON-NLS-1$
-    private static final String EXTENSION_Z_DATA = ".zdt"; //$NON-NLS-1$
+    private static final String EXTENSION_Z_INDEX = ".zdx";
+    private static final String EXTENSION_Z_DATA = ".zdt";
 
     private static final int ZDX_ENTRY_SIZE = 8;
     private static final int BLOCK_ENTRY_COUNT = 4;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ZVerseBackend.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ZVerseBackend.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/book/sword/ZVerseBackend.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -105,10 +105,10 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 public class ZVerseBackend extends AbstractBackend {
-    private static final String SUFFIX_COMP = "v"; //$NON-NLS-1$
-    private static final String SUFFIX_INDEX = "s"; //$NON-NLS-1$
-    private static final String SUFFIX_PART1 = "z"; //$NON-NLS-1$
-    private static final String SUFFIX_TEXT = "z"; //$NON-NLS-1$
+    private static final String SUFFIX_COMP = "v";
+    private static final String SUFFIX_INDEX = "s";
+    private static final String SUFFIX_PART1 = "z";
+    private static final String SUFFIX_TEXT = "z";
 
     /**
      * Simple ctor
@@ -160,7 +160,7 @@
                 compRaf[SwordConstants.TESTAMENT_OLD] = new RandomAccessFile(compFile[SwordConstants.TESTAMENT_OLD], FileUtil.MODE_READ);
             } catch (FileNotFoundException ex) {
                 assert false : ex;
-                log.error("Could not open OT", ex); //$NON-NLS-1$
+                log.error("Could not open OT", ex);
                 idxRaf[SwordConstants.TESTAMENT_OLD] = null;
                 textRaf[SwordConstants.TESTAMENT_OLD] = null;
                 compRaf[SwordConstants.TESTAMENT_OLD] = null;
@@ -174,7 +174,7 @@
                 compRaf[SwordConstants.TESTAMENT_NEW] = new RandomAccessFile(compFile[SwordConstants.TESTAMENT_NEW], FileUtil.MODE_READ);
             } catch (FileNotFoundException ex) {
                 assert false : ex;
-                log.error("Could not open NT", ex); //$NON-NLS-1$
+                log.error("Could not open NT", ex);
                 idxRaf[SwordConstants.TESTAMENT_NEW] = null;
                 textRaf[SwordConstants.TESTAMENT_NEW] = null;
                 compRaf[SwordConstants.TESTAMENT_NEW] = null;
@@ -198,7 +198,7 @@
                 textRaf[SwordConstants.TESTAMENT_NEW].close();
                 compRaf[SwordConstants.TESTAMENT_NEW].close();
             } catch (IOException ex) {
-                log.error("failed to close nt files", ex); //$NON-NLS-1$
+                log.error("failed to close nt files", ex);
             } finally {
                 idxRaf[SwordConstants.TESTAMENT_NEW] = null;
                 textRaf[SwordConstants.TESTAMENT_NEW] = null;
@@ -212,7 +212,7 @@
                 textRaf[SwordConstants.TESTAMENT_OLD].close();
                 compRaf[SwordConstants.TESTAMENT_OLD].close();
             } catch (IOException ex) {
-                log.error("failed to close ot files", ex); //$NON-NLS-1$
+                log.error("failed to close ot files", ex);
             } finally {
                 idxRaf[SwordConstants.TESTAMENT_OLD] = null;
                 textRaf[SwordConstants.TESTAMENT_OLD] = null;
@@ -299,7 +299,7 @@
                 // If Bible does not contain the desired testament, return
                 // nothing.
                 if (compRaf[testament] == null) {
-                    return ""; //$NON-NLS-1$
+                    return "";
                 }
 
                 // 10 because the index is 10 bytes long for each verse
@@ -311,7 +311,7 @@
                 // verse
                 // may not exist.
                 if (temp == null || temp.length == 0) {
-                    return ""; //$NON-NLS-1$
+                    return "";
                 }
 
                 // The data is little endian - extract the blockNum, verseStart
@@ -329,7 +329,7 @@
                     // Then seek using this index into the idx file
                     temp = SwordUtil.readRAF(idxRaf[testament], blockNum * IDX_ENTRY_SIZE, IDX_ENTRY_SIZE);
                     if (temp == null || temp.length == 0) {
-                        return ""; //$NON-NLS-1$
+                        return "";
                     }
 
                     int blockStart = SwordUtil.decodeLittleEndian32(temp, 0);
@@ -355,9 +355,11 @@
 
                 return SwordUtil.decode(key.getName(), chopped, charset);
             } catch (IOException e) {
-                throw new BookException(UserMsg.READ_FAIL, e, new Object[] {
+                // TRANSLATOR: Common error condition: The file could not be read. There can be many reasons.
+                // {0} is a placeholder for the file.
+                throw new BookException(UserMsg.gettext("Error reading {0}", new Object[] {
                     verse.getName()
-                });
+                }), e);
             }
         } finally {
             DataPolice.setKey(key);

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BibleScope.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BibleScope.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BibleScope.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -85,15 +85,15 @@
 
     public static void report(Book b) {
         if (!b.getBookCategory().equals(BookCategory.BIBLE) && !b.getBookCategory().equals(BookCategory.COMMENTARY)) {
-            System.err.println(b.getInitials() + " is not a Bible or Commentary"); //$NON-NLS-1$
+            System.err.println(b.getInitials() + " is not a Bible or Commentary");
             // System.exit(1);
         }
 
         BibleScope scope = new BibleScope(b);
         BibleInfo.setFullBookName(false); // use short names
         System.out.println('[' + b.getInitials() + ']');
-        System.out.println("InScope=" + scope.getInScope().getOsisRef()); //$NON-NLS-1$
-        System.out.println("OutScope=" + scope.getOutOfScope().getOsisRef()); //$NON-NLS-1$        
+        System.out.println("InScope=" + scope.getInScope().getOsisRef());
+        System.out.println("OutScope=" + scope.getOutOfScope().getOsisRef());        
     }
 
     private Book book;
@@ -116,11 +116,11 @@
             return;
         }
 
-        System.err.println("BibleScope " + args[0]); //$NON-NLS-1$
+        System.err.println("BibleScope " + args[0]);
 
         Book b = Books.installed().getBook(args[0]);
         if (b == null) {
-            System.err.println("Book not found"); //$NON-NLS-1$
+            System.err.println("Book not found");
             return;
         }
 
@@ -141,7 +141,7 @@
     }
 
     public static void usage() {
-        System.err.println("Usage: BibleScope book"); //$NON-NLS-1$
+        System.err.println("Usage: BibleScope book");
     }
 
     private Key inScope;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookExporter.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookExporter.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookExporter.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -59,7 +59,7 @@
             String rawText = book.getRawText(key);
             if (rawText != null && rawText.trim().length() > 0) {
                 buf.delete(0, buf.length());
-                buf.append("$$$").append(key).append('\n').append(rawText); //$NON-NLS-1$
+                buf.append("$$$").append(key).append('\n').append(rawText);
                 System.out.println(buf.toString());
             }
         }
@@ -85,11 +85,11 @@
             return;
         }
 
-        System.err.println("BookExporter " + args[0]); //$NON-NLS-1$
+        System.err.println("BookExporter " + args[0]);
 
         Book b = Books.installed().getBook(args[0]);
         if (b == null) {
-            System.err.println("Book not found"); //$NON-NLS-1$
+            System.err.println("Book not found");
             return;
         }
 
@@ -97,12 +97,12 @@
         try {
             exporter.mod2imp();
         } catch (BookException e) {
-            System.err.println("Error while exporting"); //$NON-NLS-1$
+            System.err.println("Error while exporting");
             e.printStackTrace();
         }
     }
 
     public static void usage() {
-        System.err.println("Usage: BookExporter book"); //$NON-NLS-1$
+        System.err.println("Usage: BookExporter book");
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookIndexer.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookIndexer.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookIndexer.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -130,31 +130,31 @@
             return;
         }
 
-        System.err.println("BookIndexer " + args[0] + " " + args[1]); //$NON-NLS-1$ //$NON-NLS-2$
+        System.err.println("BookIndexer " + args[0] + " " + args[1]);
 
         String operation = args[0];
         Book b = Books.installed().getBook(args[1]);
         if (b == null) {
-            System.err.println("Book not found"); //$NON-NLS-1$
+            System.err.println("Book not found");
             return;
         }
 
         BookIndexer indexer = new BookIndexer(b);
-        if (operation.equalsIgnoreCase("create")) { //$NON-NLS-1$
+        if (operation.equalsIgnoreCase("create")) {
             try {
                 indexer.createIndex();
             } catch (BookException e) {
-                System.err.println("Unable to re-index book."); //$NON-NLS-1$
+                System.err.println("Unable to re-index book.");
                 e.printStackTrace();
             }
-        } else if (operation.equalsIgnoreCase("delete")) { //$NON-NLS-1$
+        } else if (operation.equalsIgnoreCase("delete")) {
             try {
                 indexer.deleteIndex();
             } catch (BookException e) {
-                System.err.println("Unable to delete index for book."); //$NON-NLS-1$
+                System.err.println("Unable to delete index for book.");
                 e.printStackTrace();
             }
-        } else if (operation.equalsIgnoreCase("check")) { //$NON-NLS-1$
+        } else if (operation.equalsIgnoreCase("check")) {
             System.err.println(indexer.isIndexed());
         } else {
             usage();
@@ -162,6 +162,6 @@
     }
 
     public static void usage() {
-        System.err.println("Usage: BookIndexer operation book"); //$NON-NLS-1$
+        System.err.println("Usage: BookIndexer operation book");
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookInstaller.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookInstaller.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookInstaller.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -262,7 +262,7 @@
             return;
         }
 
-        System.err.print("BookInstaller"); //$NON-NLS-1$
+        System.err.print("BookInstaller");
         for (int i = 0; i < args.length; i++) {
             System.err.print(' ');
             System.err.print(args[i]);
@@ -272,11 +272,11 @@
         BookInstaller installer = new BookInstaller();
 
         String operation = args[0];
-        if (operation.equalsIgnoreCase("uninstall")) { //$NON-NLS-1$
+        if (operation.equalsIgnoreCase("uninstall")) {
             if (args.length == 2) {
                 Book b = Books.installed().getBook(args[1]);
                 if (b == null) {
-                    System.err.println("Book not found"); //$NON-NLS-1$
+                    System.err.println("Book not found");
                     return;
                 }
                 try {
@@ -287,14 +287,14 @@
             } else {
                 usage();
             }
-        } else if (operation.equalsIgnoreCase("sources")) { //$NON-NLS-1$
+        } else if (operation.equalsIgnoreCase("sources")) {
             // Get all the installers one after the other
             Map installers = installer.getInstallers();
             Iterator iter = installers.keySet().iterator();
             while (iter.hasNext()) {
                 System.out.println(iter.next());
             }
-        } else if (operation.equalsIgnoreCase("list")) { //$NON-NLS-1$
+        } else if (operation.equalsIgnoreCase("list")) {
             if (args.length == 1) {
                 Iterator iter = BookInstaller.getInstalledBooks().iterator();
                 while (iter.hasNext()) {
@@ -310,7 +310,7 @@
             } else {
                 usage();
             }
-        } else if (operation.equalsIgnoreCase("reload")) { //$NON-NLS-1$
+        } else if (operation.equalsIgnoreCase("reload")) {
             if (args.length == 2) {
                 try {
                     installer.reloadBookList(args[1]);
@@ -320,11 +320,11 @@
             } else {
                 usage();
             }
-        } else if (operation.equalsIgnoreCase("install")) { //$NON-NLS-1$
+        } else if (operation.equalsIgnoreCase("install")) {
             if (args.length == 3) {
                 Book b = installer.getBook(args[1], args[2]);
                 if (b == null) {
-                    System.err.println("Book not found"); //$NON-NLS-1$
+                    System.err.println("Book not found");
                     return;
                 }
                 try {
@@ -343,13 +343,13 @@
     }
 
     public static void usage() {
-        System.err.println("usage: BookInstaller <option>"); //$NON-NLS-1$
-        System.err.println("Options:"); //$NON-NLS-1$
-        System.err.println("    uninstall bookName                 Uninstall book"); //$NON-NLS-1$
-        System.err.println("    sources                            List remote source repositories"); //$NON-NLS-1$
-        System.err.println("    list                               List installed books"); //$NON-NLS-1$
-        System.err.println("    list      repositoryName           List available books from a repository"); //$NON-NLS-1$
-        System.err.println("    reload    repositoryName           Reload local cache for a repository"); //$NON-NLS-1$
-        System.err.println("    install   repositoryName bookName  Install a book from a repository"); //$NON-NLS-1$
+        System.err.println("usage: BookInstaller <option>");
+        System.err.println("Options:");
+        System.err.println("    uninstall bookName                 Uninstall book");
+        System.err.println("    sources                            List remote source repositories");
+        System.err.println("    list                               List installed books");
+        System.err.println("    list      repositoryName           List available books from a repository");
+        System.err.println("    reload    repositoryName           Reload local cache for a repository");
+        System.err.println("    install   repositoryName bookName  Install a book from a repository");
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookLookup.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookLookup.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/bridge/BookLookup.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -56,12 +56,12 @@
             buf.append(book.getInitials());
             buf.append(':');
             buf.append(osisID);
-            buf.append(" - "); //$NON-NLS-1$
+            buf.append(" - ");
             String rawText = book.getRawText(currentKey);
             if (rawText != null && rawText.trim().length() > 0) {
                 buf.append(rawText);
             } else {
-                buf.append("Not found"); //$NON-NLS-1$
+                buf.append("Not found");
             }
         }
 
@@ -83,7 +83,7 @@
             return;
         }
 
-        System.err.print("BookLookup"); //$NON-NLS-1$
+        System.err.print("BookLookup");
         for (int i = 0; i < args.length; i++) {
             System.err.print(' ');
             System.err.print(args[i]);
@@ -92,7 +92,7 @@
 
         Book b = Books.installed().getBook(args[0]);
         if (b == null) {
-            System.err.println("Book not found"); //$NON-NLS-1$
+            System.err.println("Book not found");
             return;
         }
 
@@ -100,15 +100,15 @@
         try {
             System.out.println(lookup.locate(b.getKey(args[1])));
         } catch (BookException e) {
-            System.err.println("Error while doing lookup"); //$NON-NLS-1$
+            System.err.println("Error while doing lookup");
             e.printStackTrace();
         } catch (NoSuchKeyException e) {
-            System.err.println("Error while doing lookup"); //$NON-NLS-1$
+            System.err.println("Error while doing lookup");
             e.printStackTrace();
         }
     }
 
     public static void usage() {
-        System.err.println("Usage: BookLookup book key"); //$NON-NLS-1$
+        System.err.println("Usage: BookLookup book key");
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/bridge/DwrBridge.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/bridge/DwrBridge.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/bridge/DwrBridge.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -75,7 +75,7 @@
         // If we can't find a book, indicate that.
         if (reply.isEmpty()) {
             reply.add(new String[] {
-                    "", "No Books installed"}); //$NON-NLS-1$ //$NON-NLS-2$
+                    "", "No Books installed"});
         }
 
         return (String[][]) reply.toArray(new String[reply.size()][]);
@@ -122,7 +122,7 @@
      *            a reference, appropriate for the book, for one or more keys
      */
     public String getOSISString(String bookInitials, String reference, int start, int count) throws BookException, NoSuchKeyException {
-        String result = ""; //$NON-NLS-1$
+        String result = "";
         try {
             SAXEventProvider sep = getOSISProvider(bookInitials, reference, start, count);
             if (sep != null) {
@@ -153,7 +153,7 @@
             }
             return book.find(searchRequest).getName();
         }
-        return ""; //$NON-NLS-1$
+        return "";
     }
 
     /**
@@ -215,7 +215,7 @@
         File[] filePath = SwordBookPath.getSwordPath();
         if (filePath.length == 0) {
             return new String[] {
-                "No path"}; //$NON-NLS-1$
+                "No path"};
         }
         String[] path = new String[filePath.length];
         for (int i = 0; i < filePath.length; i++) {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/examples/APIExamples.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/examples/APIExamples.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/examples/APIExamples.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -70,7 +70,7 @@
     /**
      * The name of a Bible to find
      */
-    private static final String BIBLE_NAME = "KJV"; //$NON-NLS-1$
+    private static final String BIBLE_NAME = "KJV";
 
     /**
      * Get a particular installed book by initials.
@@ -95,7 +95,7 @@
     public String getPlainText(String bookInitials, String reference) throws BookException, NoSuchKeyException {
         Book book = getBook(bookInitials);
         if (book == null) {
-            return ""; //$NON-NLS-1$
+            return "";
         }
 
         Key key = book.getKey(reference);
@@ -158,7 +158,7 @@
         Book book = getBook(bookInitials);
         SAXEventProvider osissep = getOSIS(bookInitials, reference, maxKeyCount);
         if (osissep == null) {
-            return ""; //$NON-NLS-1$
+            return "";
         }
 
         Converter styler = ConverterFactory.getConverter();
@@ -169,7 +169,7 @@
         // what the XSLT can use.
         BookMetaData bmd = book.getBookMetaData();
         boolean direction = bmd.isLeftToRight();
-        htmlsep.setParameter("direction", direction ? "ltr" : "rtl"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        htmlsep.setParameter("direction", direction ? "ltr" : "rtl");
 
         // Finally you can get the styled text.
         return XMLUtil.writeToString(htmlsep);
@@ -195,10 +195,10 @@
         Key keys = dict.getGlobalKeyList();
         Key first = (Key) keys.iterator().next();
 
-        System.out.println("The first Key in the default dictionary is " + first); //$NON-NLS-1$
+        System.out.println("The first Key in the default dictionary is " + first);
 
         BookData data = new BookData(dict, first);
-        System.out.println("And the text against that key is " + OSISUtil.getPlainText(data.getOsisFragment())); //$NON-NLS-1$
+        System.out.println("And the text against that key is " + OSISUtil.getPlainText(data.getOsisFragment()));
     }
 
     /**
@@ -209,9 +209,9 @@
 
         // This does a standard operator search. See the search documentation
         // for more examples of how to search
-        Key key = bible.find("+moses +aaron"); //$NON-NLS-1$
+        Key key = bible.find("+moses +aaron");
 
-        System.out.println("The following verses contain both moses and aaron: " + key.getName()); //$NON-NLS-1$
+        System.out.println("The following verses contain both moses and aaron: " + key.getName());
 
         // You can also trim the result to a more manageable quantity.
         // The test here is not necessary since we are working with a bible. It
@@ -219,8 +219,8 @@
         // is.
         if (key instanceof Passage) {
             Passage remaining = ((Passage) key).trimVerses(5);
-            System.out.println("The first 5 verses containing both moses and aaron: " + key.getName()); //$NON-NLS-1$
-            System.out.println("The rest of the verses are: " + remaining.getName()); //$NON-NLS-1$
+            System.out.println("The first 5 verses containing both moses and aaron: " + key.getName());
+            System.out.println("The rest of the verses are: " + remaining.getName());
         }
     }
 
@@ -239,7 +239,7 @@
         DefaultSearchModifier modifier = new DefaultSearchModifier();
         modifier.setRanked(rank);
 
-        Key results = bible.find(new DefaultSearchRequest("for god so loved the world", modifier)); //$NON-NLS-1$
+        Key results = bible.find(new DefaultSearchRequest("for god so loved the world", modifier));
         int total = results.getCardinality();
         int partial = total;
 
@@ -255,7 +255,7 @@
                 partial = rankCount;
             }
         }
-        System.out.println("Showing the first " + partial + " of " + total + " verses."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        System.out.println("Showing the first " + partial + " of " + total + " verses.");
         System.out.println(results);
     }
 
@@ -270,14 +270,14 @@
         Book bible = Books.installed().getBook(BIBLE_NAME);
 
         // Search for words like Melchezedik
-        Key key = bible.find("melchesidec~"); //$NON-NLS-1$
+        Key key = bible.find("melchesidec~");
 
         // Here is an example of how to iterate over the ranges and get the text
         // for each.
         // The key's iterator would have iterated over verses.
 
         // The following shows how to use a stylesheet of your own choosing
-        String path = "xsl/cswing/simple.xsl"; //$NON-NLS-1$
+        String path = "xsl/cswing/simple.xsl";
         URL xslurl = ResourceUtil.getResource(path);
         // Make ranges  break  on  chapter
         Iterator rangeIter = ((Passage) key).rangeIterator(RestrictionType.CHAPTER);
@@ -288,7 +288,7 @@
             SAXEventProvider osissep = data.getSAXEventProvider();
             SAXEventProvider htmlsep = new TransformingSAXEventProvider(NetUtil.toURI(xslurl), osissep);
             String text = XMLUtil.writeToString(htmlsep);
-            System.out.println("The html text of " + range.getName() + " is " + text); //$NON-NLS-1$ //$NON-NLS-2$
+            System.out.println("The html text of " + range.getName() + " is " + text);
         }
     }
 
@@ -319,7 +319,7 @@
 
         // If you are wanting to get really fancy you can implement your own
         // BookFilter easily
-        List test = Books.installed().getBooks(new MyBookFilter("ESV")); //$NON-NLS-1$
+        List test = Books.installed().getBooks(new MyBookFilter("ESV"));
         book = (Book) test.get(0);
 
         if (book != null) {
@@ -348,7 +348,7 @@
             installer = (Installer) mapEntry.getValue();
         }
 
-        name = "CrossWire"; //$NON-NLS-1$
+        name = "CrossWire";
         // If we know the name of the installer we can get it directly
         installer = imanager.getInstaller(name);
 
@@ -363,18 +363,18 @@
         List availableBooks = installer.getBooks();
 
         // get some available books. In this case, just one book.
-        availableBooks = installer.getBooks(new MyBookFilter("ESV")); //$NON-NLS-1$
+        availableBooks = installer.getBooks(new MyBookFilter("ESV"));
 
         Book book = (Book) availableBooks.get(0);
 
         if (book != null) {
-            System.out.println("Book " + book.getInitials() + " is available"); //$NON-NLS-1$ //$NON-NLS-2$
+            System.out.println("Book " + book.getInitials() + " is available");
 
             // Delete the book, if present
             // At the moment, JSword will not re-install. Later it will, if the
             // remote version is greater.
             try {
-                if (Books.installed().getBook("ESV") != null) { //$NON-NLS-1$
+                if (Books.installed().getBook("ESV") != null) {
                     // Make the book unavailable.
                     // This is normally done via listeners.
                     Books.installed().removeBook(book);
@@ -448,8 +448,8 @@
         APIExamples examples = new APIExamples();
 
         examples.installBook();
-        System.out.println("The plain text of Gen 1:1 is " + examples.getPlainText(BIBLE_NAME, "Gen 1:1")); //$NON-NLS-1$ //$NON-NLS-2$
-        System.out.println("The html text of Gen 1:1 is " + examples.readStyledText(BIBLE_NAME, "Gen 1:1", 100)); //$NON-NLS-1$ //$NON-NLS-2$
+        System.out.println("The plain text of Gen 1:1 is " + examples.getPlainText(BIBLE_NAME, "Gen 1:1"));
+        System.out.println("The html text of Gen 1:1 is " + examples.readStyledText(BIBLE_NAME, "Gen 1:1", 100));
         examples.readDictionary();
         examples.search();
         examples.rankedSearch();

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/examples/BibleToOsis.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/examples/BibleToOsis.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/examples/BibleToOsis.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -52,8 +52,8 @@
     /**
      * The name of a Bible to find
      */
-    private static final String BIBLE_NAME = "KJV"; //$NON-NLS-1$
-    private static final String BIBLE_RANGE = "Gen-Rev"; //$NON-NLS-1$
+    private static final String BIBLE_NAME = "KJV";
+    private static final String BIBLE_RANGE = "Gen-Rev";
     private static final boolean BY_BOOK = false;
 
     /**
@@ -71,7 +71,7 @@
         Books books = Books.installed();
         Book bible = books.getBook(name);
         BookMetaData bmd = bible.getBookMetaData();
-        String lastBookName = ""; //$NON-NLS-1$
+        String lastBookName = "";
         int lastChapter = -1;
         StringBuffer buf = new StringBuffer();
         boolean inPreVerse = false;
@@ -130,28 +130,28 @@
             /* Output the verse */
 
             boolean foundPreVerse = false;
-            String preVerseText = ""; //$NON-NLS-1$
+            String preVerseText = "";
             if (raw.indexOf(preVerseStart) != -1) {
                 Matcher matcher = preVersePattern.matcher(raw);
                 StringBuffer rawbuf = new StringBuffer();
                 if (matcher.find()) {
                     foundPreVerse = true;
                     preVerseText = matcher.group(1);
-                    matcher.appendReplacement(rawbuf, ""); //$NON-NLS-1$
+                    matcher.appendReplacement(rawbuf, "");
                 }
                 matcher.appendTail(rawbuf);
                 raw = rawbuf.toString();
             }
 
             boolean foundPsalmTitle = false;
-            String psalmTitleText = ""; //$NON-NLS-1$
+            String psalmTitleText = "";
             if (raw.indexOf(psalmTitleStart) != -1) {
                 Matcher matcher = psalmTitlePattern.matcher(raw);
                 StringBuffer rawbuf = new StringBuffer();
                 if (matcher.find()) {
                     foundPsalmTitle = true;
                     psalmTitleText = matcher.group(1);
-                    matcher.appendReplacement(rawbuf, ""); //$NON-NLS-1$
+                    matcher.appendReplacement(rawbuf, "");
                 }
                 matcher.appendTail(rawbuf);
                 raw = rawbuf.toString();
@@ -197,7 +197,7 @@
         }
 
         MessageFormat msgFormat = new MessageFormat(
-                "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<osis\n  xmlns=\"http://www.bibletechnologies.net/2003/OSIS/namespace\"\n  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://www.bibletechnologies.net/2003/OSIS/namespace http://www.bibletechnologies.net/osisCore.2.1.1.xsd\">\n<osisText osisIDWork=\"{0}\" osisRefWork=\"defaultReferenceScheme\" xml:lang=\"en\">\n<header>\n  <work osisWork=\"{0}\">\n    <title>{1}</title>\n    <identifier type=\"OSIS\">Bible.{0}</identifier>\n    <scope>{2}</scope>\n    <refSystem>Bible.KJV</refSystem>\n  </work>\n  <work osisWork=\"defaultReferenceScheme\">\n    <refSystem>Bible.KJV</refSystem>\n  </work>\n  <work osisWork=\"strong\">\n    <refSystem>Dict.Strongs</refSystem>\n  </work>\n  <work osisWork=\"robinson\">\n    <refSystem>Dict.Robinsons</refSystem>\n  </work>\n  <work osisWork=\"strongMorph\">\n    <refSystem>Dict.strongMorph</refSystem>\n  </work>\n</header>\n"); //$NON-NLS-1$
+                "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<osis\n  xmlns=\"http://www.bibletechnologies.net/2003/OSIS/namespace\"\n  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://www.bibletechnologies.net/2003/OSIS/namespace http://www.bibletechnologies.net/osisCore.2.1.1.xsd\">\n<osisText osisIDWork=\"{0}\" osisRefWork=\"defaultReferenceScheme\" xml:lang=\"en\">\n<header>\n  <work osisWork=\"{0}\">\n    <title>{1}</title>\n    <identifier type=\"OSIS\">Bible.{0}</identifier>\n    <scope>{2}</scope>\n    <refSystem>Bible.KJV</refSystem>\n  </work>\n  <work osisWork=\"defaultReferenceScheme\">\n    <refSystem>Bible.KJV</refSystem>\n  </work>\n  <work osisWork=\"strong\">\n    <refSystem>Dict.Strongs</refSystem>\n  </work>\n  <work osisWork=\"robinson\">\n    <refSystem>Dict.Robinsons</refSystem>\n  </work>\n  <work osisWork=\"strongMorph\">\n    <refSystem>Dict.strongMorph</refSystem>\n  </work>\n</header>\n");
         msgFormat.format(new Object[] {
                 bmd.getInitials(), bmd.getName(), range
         }, buf, pos);
@@ -205,40 +205,40 @@
 
     private void buildDocumentClose(StringBuffer buf, boolean force) {
         if (force) {
-            buf.append("</osisText>\n</osis>\n"); //$NON-NLS-1$
+            buf.append("</osisText>\n</osis>\n");
         }
     }
 
     private void buildBookOpen(StringBuffer buf, String bookName) {
-        System.err.println("processing " + bookName); //$NON-NLS-1$
-        MessageFormat msgFormat = new MessageFormat("<div type=\"book\" osisID=\"{0}\" canonical=\"true\">\n"); //$NON-NLS-1$
+        System.err.println("processing " + bookName);
+        MessageFormat msgFormat = new MessageFormat("<div type=\"book\" osisID=\"{0}\" canonical=\"true\">\n");
         msgFormat.format(new Object[] {
             bookName
         }, buf, pos);
     }
 
     private void buildBookClose(StringBuffer buf) {
-        buf.append("</div>\n"); //$NON-NLS-1$
+        buf.append("</div>\n");
     }
 
     private void buildChapterClose(StringBuffer buf) {
-        buf.append("</chapter>\n"); //$NON-NLS-1$
+        buf.append("</chapter>\n");
     }
 
     private void buildChapterOpen(StringBuffer buf, String bookName, int chapter) {
-        MessageFormat msgFormat = new MessageFormat("<chapter osisID=\"{0}.{1}\" chapterTitle=\"{2} {1}.\">\n"); //$NON-NLS-1$
-        if ("Obad".equals(bookName) || //$NON-NLS-1$
-                "Phlm".equals(bookName) || //$NON-NLS-1$
-                "2John".equals(bookName) || //$NON-NLS-1$
-                "3John".equals(bookName) || //$NON-NLS-1$
-                "Jude".equals(bookName)) //$NON-NLS-1$
+        MessageFormat msgFormat = new MessageFormat("<chapter osisID=\"{0}.{1}\" chapterTitle=\"{2} {1}.\">\n");
+        if ("Obad".equals(bookName) ||
+                "Phlm".equals(bookName) ||
+                "2John".equals(bookName) ||
+                "3John".equals(bookName) ||
+                "Jude".equals(bookName))
         {
             return;
         }
 
-        String chapterName = "CHAPTER"; //$NON-NLS-1$
-        if ("Ps".equals(bookName)) { //$NON-NLS-1$
-            chapterName = "PSALM"; //$NON-NLS-1$
+        String chapterName = "CHAPTER";
+        if ("Ps".equals(bookName)) {
+            chapterName = "PSALM";
         }
 
         msgFormat.format(new Object[] {
@@ -247,7 +247,7 @@
     }
 
     private void buildPsalmTitle(StringBuffer buf, String psalmTitle) {
-        MessageFormat msgFormat = new MessageFormat("<title type=\"psalm\" canonical=\"true\">{0}</title>"); //$NON-NLS-1$
+        MessageFormat msgFormat = new MessageFormat("<title type=\"psalm\" canonical=\"true\">{0}</title>");
         msgFormat.format(new Object[] {
             psalmTitle
         }, buf, pos);
@@ -255,32 +255,32 @@
 
     // private void buildPsalmAcrostic(StringBuffer buf, String psalmTitle)
     // {
-    //        MessageFormat msgFormat = new MessageFormat("<title type=\"acrostic\" canonical=\"true\">{0}</title>"); //$NON-NLS-1$
+    //        MessageFormat msgFormat = new MessageFormat("<title type=\"acrostic\" canonical=\"true\">{0}</title>");
     // msgFormat.format(new Object[] { psalmTitle }, buf, pos);
     // }
 
     private void buildPreVerseOpen(StringBuffer buf, String preVerse) {
-        MessageFormat msgFormat = new MessageFormat("<div type=\"section\" canonical=\"true\"><title canonical=\"true\">{0}</title>"); //$NON-NLS-1$
+        MessageFormat msgFormat = new MessageFormat("<div type=\"section\" canonical=\"true\"><title canonical=\"true\">{0}</title>");
         msgFormat.format(new Object[] {
             preVerse
         }, buf, pos);
     }
 
     private void buildPreVerseClose(StringBuffer buf) {
-        buf.append("</div>\n"); //$NON-NLS-1$
+        buf.append("</div>\n");
     }
 
     private void buildVerseOpen(StringBuffer buf, String osisID) {
-        //        MessageFormat msgFormat = new MessageFormat("<verse sID=\"{0}\" osisID=\"{0}\"/>"); //$NON-NLS-1$
-        MessageFormat msgFormat = new MessageFormat("<verse osisID=\"{0}\">"); //$NON-NLS-1$
+        //        MessageFormat msgFormat = new MessageFormat("<verse sID=\"{0}\" osisID=\"{0}\"/>");
+        MessageFormat msgFormat = new MessageFormat("<verse osisID=\"{0}\">");
         msgFormat.format(new Object[] {
             osisID
         }, buf, pos);
     }
 
     private void buildVerseClose(StringBuffer buf, String osisID) {
-        //        MessageFormat msgFormat = new MessageFormat("<verse eID=\"{0}\"/>"); //$NON-NLS-1$
-        MessageFormat msgFormat = new MessageFormat("</verse>\n"); //$NON-NLS-1$
+        //        MessageFormat msgFormat = new MessageFormat("<verse eID=\"{0}\"/>");
+        MessageFormat msgFormat = new MessageFormat("</verse>\n");
         msgFormat.format(new Object[] {
             osisID
         }, buf, pos);
@@ -289,7 +289,7 @@
     private void openOutputFile(String newFilename, boolean open) throws IOException {
         if (open) {
             filename = newFilename;
-            writer = new OutputStreamWriter(new FileOutputStream(filename + ".xml"), "UTF-8"); //$NON-NLS-1$ //$NON-NLS-2$
+            writer = new OutputStreamWriter(new FileOutputStream(filename + ".xml"), "UTF-8");
         }
     }
 
@@ -307,24 +307,24 @@
     private void parse() {
         XMLProcess parser = new XMLProcess();
         parser.getFeatures().setFeatureStates(new String[] {
-                "-s", "-f", "-va", "-dv"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-        parser.parse(filename + ".xml"); //$NON-NLS-1$
+                "-s", "-f", "-va", "-dv"});
+        parser.parse(filename + ".xml");
     }
 
     private static FieldPosition pos = new FieldPosition(0);
 
-    private static String preVerseStart = "<title subtype=\"x-preverse\" type=\"section\">"; //$NON-NLS-1$
-    private static String preVerseElement = "<title subtype=\"x-preverse\" type=\"section\">(.*?)</title>"; //$NON-NLS-1$
+    private static String preVerseStart = "<title subtype=\"x-preverse\" type=\"section\">";
+    private static String preVerseElement = "<title subtype=\"x-preverse\" type=\"section\">(.*?)</title>";
     private static Pattern preVersePattern = Pattern.compile(preVerseElement);
-    //    private static String preVerseEnd = "</title>"; //$NON-NLS-1$
+    //    private static String preVerseEnd = "</title>";
     // private static Pattern preVerseStartPattern =
     // Pattern.compile(preVerseStart);
-    //    private static Pattern preVerseEndPattern = Pattern.compile(preVerseEnd); //$NON-NLS-1$
+    //    private static Pattern preVerseEndPattern = Pattern.compile(preVerseEnd);
 
-    private static String psalmTitleStart = "<title type=\"psalm\">"; //$NON-NLS-1$
-    private static String psalmTitleElement = "<title type=\"psalm\">(.*?)</title>"; //$NON-NLS-1$
+    private static String psalmTitleStart = "<title type=\"psalm\">";
+    private static String psalmTitleElement = "<title type=\"psalm\">(.*?)</title>";
     private static Pattern psalmTitlePattern = Pattern.compile(psalmTitleElement);
-    //    private static String psalmTitleEnd = "</title>"; //$NON-NLS-1$
+    //    private static String psalmTitleEnd = "</title>";
     // private static Pattern psalmTitleStartPattern =
     // Pattern.compile(psalmTitleStart);
     // private static Pattern psalmTitleEndPattern =

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/examples/DictToOsis.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/examples/DictToOsis.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/examples/DictToOsis.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -51,7 +51,7 @@
     /**
      * The name of a Bible to find
      */
-    private static final String BOOK_NAME = "WebstersDict"; //$NON-NLS-1$
+    private static final String BOOK_NAME = "WebstersDict";
 
     /**
      * @param args
@@ -87,7 +87,7 @@
 
         Writer writer = null;
         try {
-            writer = new OutputStreamWriter(new FileOutputStream(bmd.getInitials() + ".xml"), "UTF-8"); //$NON-NLS-1$ //$NON-NLS-2$
+            writer = new OutputStreamWriter(new FileOutputStream(bmd.getInitials() + ".xml"), "UTF-8");
             writer.write(buf.toString());
         } finally {
             if (writer != null) {
@@ -95,29 +95,29 @@
             }
         }
         XMLProcess parser = new XMLProcess();
-        // parser.getFeatures().setFeatureStates("-s", "-f", "-va", "-dv"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-        parser.parse(bmd.getInitials() + ".xml"); //$NON-NLS-1$
+        // parser.getFeatures().setFeatureStates("-s", "-f", "-va", "-dv");
+        parser.parse(bmd.getInitials() + ".xml");
     }
 
     private void buildDocumentOpen(StringBuffer buf, BookMetaData bmd) {
         MessageFormat msgFormat = new MessageFormat(
-                "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<osis\n  xmlns=\"http://www.bibletechnologies.net/2003/OSIS/namespace\"\n  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://www.bibletechnologies.net/2003/OSIS/namespace osisCore.2.1.xsd\">\n<osisText osisIDWork=\"{0}\" osisRefWork=\"defaultReferenceScheme\" xml:lang=\"en\">\n  <header>\n    <work osisWork=\"{0}\">\n      <title>{1}</title>\n      <identifier type=\"OSIS\">Dict.{0}</identifier>\n      <refSystem>Dict.{0}</refSystem>\n    </work>\n    <work osisWork=\"defaultReferenceScheme\">\n      <refSystem>Dict.{0}</refSystem>\n    </work>\n  </header>\n<div>\n"); //$NON-NLS-1$
+                "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<osis\n  xmlns=\"http://www.bibletechnologies.net/2003/OSIS/namespace\"\n  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://www.bibletechnologies.net/2003/OSIS/namespace osisCore.2.1.xsd\">\n<osisText osisIDWork=\"{0}\" osisRefWork=\"defaultReferenceScheme\" xml:lang=\"en\">\n  <header>\n    <work osisWork=\"{0}\">\n      <title>{1}</title>\n      <identifier type=\"OSIS\">Dict.{0}</identifier>\n      <refSystem>Dict.{0}</refSystem>\n    </work>\n    <work osisWork=\"defaultReferenceScheme\">\n      <refSystem>Dict.{0}</refSystem>\n    </work>\n  </header>\n<div>\n");
         msgFormat.format(new Object[] {
                 bmd.getInitials(), bmd.getName()
         }, buf, pos);
     }
 
     private void buildDocumentClose(StringBuffer buf) {
-        buf.append("</div>\n</osisText>\n</osis>\n"); //$NON-NLS-1$
+        buf.append("</div>\n</osisText>\n</osis>\n");
     }
 
     private void buildEntryOpen(StringBuffer buf, String entryName, String entryDef) {
         String tmp = entryName;
         if (tmp.indexOf(' ') != -1) {
-            tmp = "x"; //$NON-NLS-1$
+            tmp = "x";
         }
         MessageFormat msgFormat = new MessageFormat(
-                "<div type=\"entry\" osisID=\"{0}\" canonical=\"true\"><seg type=\"x-form\"><seg type=\"x-orth\">{0}</seg></seg><seg type=\"x-def\">{1}</seg></div>\n"); //$NON-NLS-1$
+                "<div type=\"entry\" osisID=\"{0}\" canonical=\"true\"><seg type=\"x-form\"><seg type=\"x-orth\">{0}</seg></seg><seg type=\"x-def\">{1}</seg></div>\n");
         msgFormat.format(new Object[] {
                 tmp, entryDef
         }, buf, pos);

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/examples/StrongsAnalysis.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/examples/StrongsAnalysis.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/examples/StrongsAnalysis.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -52,7 +52,7 @@
      *
      */
     public StrongsAnalysis() {
-        Book bible = Books.installed().getBook("KJV"); //$NON-NLS-1$
+        Book bible = Books.installed().getBook("KJV");
         if (!bible.hasFeature(FeatureType.STRONGS_NUMBERS)) {
             bible = null;
             List bibles = Books.installed().getBooks(new BookFilters.BookFeatureFilter(FeatureType.STRONGS_NUMBERS));
@@ -141,5 +141,5 @@
         new StrongsAnalysis();
     }
 
-    private static Pattern strongsNumberPattern = Pattern.compile("strong:([GH][0-9]+)"); //$NON-NLS-1$
+    private static Pattern strongsNumberPattern = Pattern.compile("strong:([GH][0-9]+)");
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/IndexManagerFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/IndexManagerFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/IndexManagerFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -64,15 +64,15 @@
         try {
             instance = (IndexManager) PluginUtil.getImplementation(IndexManager.class);
         } catch (IOException e) {
-            log.error("createIndexManager failed", e); //$NON-NLS-1$
+            log.error("createIndexManager failed", e);
         } catch (ClassCastException e) {
-            log.error("createIndexManager failed", e); //$NON-NLS-1$
+            log.error("createIndexManager failed", e);
         } catch (ClassNotFoundException e) {
-            log.error("createIndexManager failed", e); //$NON-NLS-1$
+            log.error("createIndexManager failed", e);
         } catch (IllegalAccessException e) {
-            log.error("createIndexManager failed", e); //$NON-NLS-1$
+            log.error("createIndexManager failed", e);
         } catch (InstantiationException e) {
-            log.error("createIndexManager failed", e); //$NON-NLS-1$
+            log.error("createIndexManager failed", e);
         }
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/IndexStatus.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/IndexStatus.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/IndexStatus.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -35,27 +35,27 @@
     /**
      * There is a complete and ready to use search index
      */
-    public static final IndexStatus DONE = new IndexStatus("Indexed"); //$NON-NLS-1$
+    public static final IndexStatus DONE = new IndexStatus("Indexed");
 
     /**
      * There is no search index, and no plans to create one
      */
-    public static final IndexStatus UNDONE = new IndexStatus("No Index"); //$NON-NLS-1$
+    public static final IndexStatus UNDONE = new IndexStatus("No Index");
 
     /**
      * This Book has been scheduled for index creation
      */
-    public static final IndexStatus SCHEDULED = new IndexStatus("Scheduled"); //$NON-NLS-1$
+    public static final IndexStatus SCHEDULED = new IndexStatus("Scheduled");
 
     /**
      * An index is currently being generated for this Book
      */
-    public static final IndexStatus CREATING = new IndexStatus("Creating"); //$NON-NLS-1$
+    public static final IndexStatus CREATING = new IndexStatus("Creating");
 
     /**
      * An index is no longer valid and needs to be discarded.
      */
-    public static final IndexStatus INVALID = new IndexStatus("Invalid"); //$NON-NLS-1$
+    public static final IndexStatus INVALID = new IndexStatus("Invalid");
 
     /**
      * All the known values

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/IndexMetadata.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/IndexMetadata.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/IndexMetadata.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -41,7 +41,7 @@
             props = ResourceUtil.getProperties(getClass());
 
         } catch (IOException e) {
-            log.error("Property file read error", e); //$NON-NLS-1$
+            log.error("Property file read error", e);
         }
     }
 
@@ -55,7 +55,7 @@
     }
 
     public float getInstalledIndexVersion() {
-        return Float.parseFloat(props.getProperty(INDEX_VERSION, "1.1")); //$NON-NLS-1$
+        return Float.parseFloat(props.getProperty(INDEX_VERSION, "1.1"));
     }
 
     public float getLuceneVersion() {
@@ -63,12 +63,12 @@
     }
 
     public float getLatestIndexVersion() {
-        return Float.parseFloat(props.getProperty(LATEST_INDEX_VERSION, "1.1")); //$NON-NLS-1$
+        return Float.parseFloat(props.getProperty(LATEST_INDEX_VERSION, "1.1"));
     }
 
-    public static final String INDEX_VERSION = "Installed.Index.Version"; //$NON-NLS-1$
-    public static final String LATEST_INDEX_VERSION = "Latest.Index.Version"; //$NON-NLS-1$
-    public static final String LUCENE_VERSION = "Lucene.Version"; //$NON-NLS-1$
+    public static final String INDEX_VERSION = "Installed.Index.Version";
+    public static final String LATEST_INDEX_VERSION = "Latest.Index.Version";
+    public static final String LUCENE_VERSION = "Lucene.Version";
     public static final float INDEX_VERSION_1_1 = 1.1f;
     public static final float INDEX_VERSION_1_2 = 1.2f;
 

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneIndex.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneIndex.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneIndex.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -84,32 +84,32 @@
     /**
      * The Lucene field for the osisID
      */
-    public static final String FIELD_KEY = "key"; //$NON-NLS-1$
+    public static final String FIELD_KEY = "key";
 
     /**
      * The Lucene field for the text contents
      */
-    public static final String FIELD_BODY = "content"; //$NON-NLS-1$
+    public static final String FIELD_BODY = "content";
 
     /**
      * The Lucene field for the strong numbers
      */
-    public static final String FIELD_STRONG = "strong"; //$NON-NLS-1$
+    public static final String FIELD_STRONG = "strong";
 
     /**
      * The Lucene field for headings
      */
-    public static final String FIELD_HEADING = "heading"; //$NON-NLS-1$
+    public static final String FIELD_HEADING = "heading";
 
     /**
      * The Lucene field for cross references
      */
-    public static final String FIELD_XREF = "xref"; //$NON-NLS-1$
+    public static final String FIELD_XREF = "xref";
 
     /**
      * The Lucene field for the notes
      */
-    public static final String FIELD_NOTE = "note"; //$NON-NLS-1$
+    public static final String FIELD_NOTE = "note";
 
     /**
      * Read an existing index and use it.
@@ -123,7 +123,8 @@
         try {
             this.path = NetUtil.getAsFile(storage).getCanonicalPath();
         } catch (IOException ex) {
-            throw new BookException(UserMsg.LUCENE_INIT, ex);
+            // TRANSLATOR: Error condition: Could not initialize a search index.
+            throw new BookException(UserMsg.gettext("Failed to initialize Lucene search engine."), ex);
         }
     }
 
@@ -142,13 +143,15 @@
             finalPath = NetUtil.getAsFile(storage);
             this.path = finalPath.getCanonicalPath();
         } catch (IOException ex) {
-            throw new BookException(UserMsg.LUCENE_INIT, ex);
+            // TRANSLATOR: Error condition: Could not initialize a search index. Lucene is the name of the search technology being used.
+            throw new BookException(UserMsg.gettext("Failed to initialize Lucene search engine."), ex);
         }
 
         // Indexing the book is a good way to police data errors.
         DataPolice.setBook(book.getBookMetaData());
 
-        Progress job = JobManager.createJob(UserMsg.INDEX_START.toString(book.getInitials()), Thread.currentThread(), false);
+        // TRANSLATOR: Progress label indicating the start of indexing. {0} is a placeholder for the book's short name.
+        Progress job = JobManager.createJob(UserMsg.gettext("Creating index. Processing {0}", book.getInitials()), Thread.currentThread(), false);
 
         IndexStatus finalStatus = IndexStatus.UNDONE;
 
@@ -173,7 +176,8 @@
 
                 generateSearchIndexImpl(job, errors, writer, book.getGlobalKeyList(), 0);
 
-                job.setSectionName(UserMsg.OPTIMIZING.toString());
+                // TRANSLATOR: Progress label for optimizing a search index. This may take a bit of time, so we have a label for it.
+                job.setSectionName(UserMsg.gettext("Optimizing"));
                 job.setWork(95);
 
                 // Consolidate the index into the minimum number of files.
@@ -195,7 +199,8 @@
                 job.setCancelable(false);
                 if (!job.isFinished()) {
                     if (!tempPath.renameTo(finalPath)) {
-                        throw new BookException(UserMsg.INSTALL_FAIL);
+                        // TRANSLATOR: The search index could not be moved to it's final location.
+                        throw new BookException(UserMsg.gettext("Installation failed."));
                     }
                 }
 
@@ -210,13 +215,16 @@
                         buf.append(iter.next());
                         buf.append('\n');
                     }
-                    Reporter.informUser(this, UserMsg.BAD_VERSE, buf);
+                    // TRANSLATOR: It is likely that one or more verses could not be indexed due to errors in those verses.
+                    // This message gives a listing of them to the user.
+                    Reporter.informUser(this, UserMsg.gettext("The following verses have errors and could not be indexed\n{0}", buf));
                 }
 
             }
         } catch (IOException ex) {
             job.cancel();
-            throw new BookException(UserMsg.LUCENE_INIT, ex);
+            // TRANSLATOR: Common error condition: Some error happened while creating a search index.
+            throw new BookException(UserMsg.gettext("Failed to initialize Lucene search engine."), ex);
         } finally {
             book.setIndexStatus(finalStatus);
             job.done();
@@ -241,7 +249,7 @@
                 QueryParser parser = new QueryParser(Version.LUCENE_29, LuceneIndex.FIELD_BODY, analyzer);
                 parser.setAllowLeadingWildcard(true);
                 Query query = parser.parse(search);
-                log.info("ParsedQuery-" + query.toString()); //$NON-NLS-1$
+                log.info("ParsedQuery-" + query.toString());
 
                 // For ranking we use a PassageTally
                 if (modifier != null && modifier.isRanked()) {
@@ -286,14 +294,18 @@
                 // NoSuchVerseException
                 Throwable cause = e.getCause();
                 if (cause instanceof NoSuchVerseException) {
-                    throw new BookException(UserMsg.SEARCH_FAILED, cause);
+                    // TRANSLATOR: Error condition: An unexpected error happened that caused search to fail.
+                    throw new BookException(UserMsg.gettext("Search failed."), cause);
                 }
 
-                throw new BookException(UserMsg.SEARCH_FAILED, e);
+                // TRANSLATOR: Error condition: An unexpected error happened that caused search to fail.
+                throw new BookException(UserMsg.gettext("Search failed."), e);
             } catch (NoSuchVerseException e) {
-                throw new BookException(UserMsg.SEARCH_FAILED, e);
+                // TRANSLATOR: Error condition: An unexpected error happened that caused search to fail.
+                throw new BookException(UserMsg.gettext("Search failed."), e);
             } catch (ParseException e) {
-                throw new BookException(UserMsg.SEARCH_FAILED, e);
+                // TRANSLATOR: Error condition: An unexpected error happened that caused search to fail.
+                throw new BookException(UserMsg.gettext("Search failed."), e);
             } finally {
                 Activator.deactivate(this);
             }
@@ -330,7 +342,7 @@
             directory = FSDirectory.open(new File(path));
             searcher = new IndexSearcher(directory, true);
         } catch (IOException ex) {
-            log.warn("second load failure", ex); //$NON-NLS-1$
+            log.warn("second load failure", ex);
         }
 
         active = true;
@@ -375,21 +387,21 @@
         boolean hasNotes = book.getBookMetaData().hasFeature(FeatureType.FOOTNOTES);
         boolean hasHeadings = book.getBookMetaData().hasFeature(FeatureType.HEADINGS);
 
-        String oldRootName = ""; //$NON-NLS-1$
+        String oldRootName = "";
         int percent = 0;
-        String rootName = ""; //$NON-NLS-1$
+        String rootName = "";
         BookData data = null;
         Key subkey = null;
         Element osis = null;
 
         // Set up for reuse.
         Document doc = new Document();
-        Field keyField = new Field(FIELD_KEY, "", Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO); //$NON-NLS-1$
-        Field bodyField = new Field(FIELD_BODY, "", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.NO); //$NON-NLS-1$
-        Field strongField = new Field(FIELD_STRONG, "", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.NO); //$NON-NLS-1$
-        Field xrefField = new Field(FIELD_XREF, "", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.NO); //$NON-NLS-1$
-        Field noteField = new Field(FIELD_NOTE, "", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.NO); //$NON-NLS-1$
-        Field headingField = new Field(FIELD_HEADING, "", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.NO); //$NON-NLS-1$
+        Field keyField = new Field(FIELD_KEY, "", Field.Store.YES, Field.Index.NOT_ANALYZED, Field.TermVector.NO);
+        Field bodyField = new Field(FIELD_BODY, "", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.NO);
+        Field strongField = new Field(FIELD_STRONG, "", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.NO);
+        Field xrefField = new Field(FIELD_XREF, "", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.NO);
+        Field noteField = new Field(FIELD_NOTE, "", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.NO);
+        Field headingField = new Field(FIELD_HEADING, "", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.NO);
 
         int size = key.getCardinality();
         int subCount = count;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneIndexManager.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneIndexManager.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneIndexManager.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -58,7 +58,7 @@
             URI storage = getStorageArea(book);
             return NetUtil.isDirectory(storage);
         } catch (IOException ex) {
-            log.error("Failed to find lucene index storage area.", ex); //$NON-NLS-1$
+            log.error("Failed to find lucene index storage area.", ex);
             return false;
         }
     }
@@ -81,7 +81,8 @@
 
             return reply;
         } catch (IOException ex) {
-            throw new BookException(UserMsg.LUCENE_INIT, ex);
+            // TRANSLATOR: Common error condition: Some error happened while opening a search index.
+            throw new BookException(UserMsg.gettext("Failed to initialize Lucene search engine."), ex);
         }
     }
 
@@ -132,7 +133,8 @@
             File zip = NetUtil.getAsFile(tempDest);
             IOUtil.unpackZip(zip, NetUtil.getAsFile(storage));
         } catch (IOException ex) {
-            throw new BookException(UserMsg.INSTALL_FAIL, ex);
+            // TRANSLATOR: The search index could not be moved to it's final location.
+            throw new BookException(UserMsg.gettext("Installation failed."), ex);
         }
     }
 
@@ -156,11 +158,13 @@
             tempPath = new File(finalCanonicalPath + '.' + IndexStatus.CREATING.toString());
             FileUtil.delete(tempPath);
             if (!storage.renameTo(tempPath)) {
-                throw new BookException(UserMsg.DELETE_FAILED);
+                // TRANSLATOR: Error condition: The index could not be deleted.
+                throw new BookException(UserMsg.gettext("Failed to delete search index."));
             }
             book.setIndexStatus(IndexStatus.UNDONE);
         } catch (IOException ex) {
-            throw new BookException(UserMsg.DELETE_FAILED, ex);
+            // TRANSLATOR: Error condition: The index could not be deleted.
+            throw new BookException(UserMsg.gettext("Failed to delete search index."), ex);
         }
 
         FileUtil.delete(tempPath);
@@ -197,7 +201,7 @@
     /**
      * The lucene search index directory
      */
-    private static final String DIR_LUCENE = "lucene"; //$NON-NLS-1$
+    private static final String DIR_LUCENE = "lucene";
 
     /**
      * The log stream

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneQueryBuilder.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneQueryBuilder.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneQueryBuilder.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -62,7 +62,7 @@
         int i = 0;
 
         Query range = null;
-        String rangeModifier = ""; //$NON-NLS-1$
+        String rangeModifier = "";
         // Look for a range +[...], -[...], or [...]
         Matcher rangeMatcher = RANGE_PATTERN.matcher(sought);
         if (rangeMatcher.find()) {
@@ -104,13 +104,13 @@
      * leading [] (but not containing a [ or ]), with a + or - optional prefix,
      * perhaps surrounded by whitespace.
      */
-    private static final Pattern RANGE_PATTERN = Pattern.compile("^\\s*([-+]?)\\[([^\\[\\]]+)\\]\\s*"); //$NON-NLS-1$
+    private static final Pattern RANGE_PATTERN = Pattern.compile("^\\s*([-+]?)\\[([^\\[\\]]+)\\]\\s*");
 
     /**
      * The pattern of a blur. A '~', optionally followed by a number,
      * representing the number of verses.
      */
-    private static final Pattern BLUR_PATTERN = Pattern.compile("\\s~(\\d*)?\\s"); //$NON-NLS-1$
+    private static final Pattern BLUR_PATTERN = Pattern.compile("\\s~(\\d*)?\\s");
 
     /**
      * A query that returns nothing.

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneQueryDecorator.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneQueryDecorator.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/LuceneQueryDecorator.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -139,21 +139,21 @@
      * In our parsing we use space quite a lot and this ensures there is only
      * one and that we don't have lots of NON-NLS comments everywhere
      */
-    private static final String SPACE = " "; //$NON-NLS-1$
+    private static final String SPACE = " ";
     private static final char QUOTE = '"';
     private static final char PLUS = '+';
-    private static final String SPACE_PLUS = " +"; //$NON-NLS-1$
+    private static final String SPACE_PLUS = " +";
 
     private static final char MINUS = '-';
-    private static final String SPACE_MINUS = " -"; //$NON-NLS-1$
+    private static final String SPACE_MINUS = " -";
 
     private static final char OPEN = '[';
     private static final char CLOSE = ']';
 
     private static final char FUZZY = '~';
-    private static final String FUZZY_SPACE = "~ "; //$NON-NLS-1$
+    private static final String FUZZY_SPACE = "~ ";
 
     private static final char WILD = '*';
-    private static final String WILD_SPACE = "* "; //$NON-NLS-1$
+    private static final String WILD_SPACE = "* ";
 
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/UserMsg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/UserMsg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/UserMsg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,18 +31,43 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 final class UserMsg extends MsgBase {
-    static final UserMsg INDEX_START = new UserMsg("LuceneIndex.Indexing"); //$NON-NLS-1$
-    static final UserMsg LUCENE_INIT = new UserMsg("LuceneIndex.LuceneInit"); //$NON-NLS-1$
-    static final UserMsg SEARCH_FAILED = new UserMsg("LuceneIndex.SearchFailed"); //$NON-NLS-1$
-    static final UserMsg OPTIMIZING = new UserMsg("LuceneIndex.Optimizing"); //$NON-NLS-1$
-    static final UserMsg DELETE_FAILED = new UserMsg("LuceneIndex.DeleteFailed"); //$NON-NLS-1$
-    static final UserMsg INSTALL_FAIL = new UserMsg("LuceneIndex.InstallFailed"); //$NON-NLS-1$
-    static final UserMsg BAD_VERSE = new UserMsg("LuceneIndex.BadVerse"); //$NON-NLS-1$
 
     /**
-     * Passthrough ctor
+     * Get the internationalized text, but return key if key is unknown.
+     * 
+     * @param key
+     * @return the internationalized text
      */
-    private UserMsg(String name) {
-        super(name);
+    public static String gettext(String key)
+    {
+        return msg.lookup(key);
     }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object param)
+    {
+        return msg.toString(key, param);
+    }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object[] params)
+    {
+        return msg.toString(key, params);
+    }
+
+    private static MsgBase msg = new UserMsg();
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/UserMsg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/UserMsg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/UserMsg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,7 +1,7 @@
 LuceneIndex.BadVerse=The following verses have errors and could not be indexed\n{0}
-LuceneIndex.DeleteFailed=Failed to delete search index
+LuceneIndex.DeleteFailed=Failed to delete search index.
 LuceneIndex.Indexing=Creating index. Processing {0}
-LuceneIndex.InstallFailed=Installation failed
+LuceneIndex.InstallFailed=Installation failed.
 LuceneIndex.LuceneInit=Failed to initialize Lucene search engine.
 LuceneIndex.Optimizing=Optimizing
 LuceneIndex.SearchFailed=Search failed.

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/AbstractBookAnalyzer.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/AbstractBookAnalyzer.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/AbstractBookAnalyzer.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -98,7 +98,7 @@
         InputStreamReader reader = null;
         try {
             stream = ResourceUtil.getResourceAsStream(clazz, resourceName);
-            reader = new InputStreamReader(stream, "UTF-8"); // //$NON-NLS-1$
+            reader = new InputStreamReader(stream, "UTF-8"); //
             stopSet = WordlistLoader.getWordSet(reader, commentChar);
         } finally {
             if (reader != null) {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/AnalyzerFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/AnalyzerFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/AnalyzerFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -52,7 +52,7 @@
         if (lang != null) {
             String aClass = getAnalyzerValue(lang);
 
-            log.debug("Creating analyzer:" + aClass + " BookLang:" + lang); //$NON-NLS-1$ //$NON-NLS-2$
+            log.debug("Creating analyzer:" + aClass + " BookLang:" + lang);
 
             if (aClass != null) {
                 try {
@@ -60,11 +60,11 @@
 
                     newObject = (AbstractBookAnalyzer) impl.newInstance();
                 } catch (ClassNotFoundException e) {
-                    log.error("Configuration error in AnalyzerFactory properties", e); //$NON-NLS-1$
+                    log.error("Configuration error in AnalyzerFactory properties", e);
                 } catch (IllegalAccessException e) {
-                    log.error("Configuration error in AnalyzerFactory properties", e); //$NON-NLS-1$
+                    log.error("Configuration error in AnalyzerFactory properties", e);
                 } catch (InstantiationException e) {
-                    log.error("Configuration error in AnalyzerFactory properties", e); //$NON-NLS-1$
+                    log.error("Configuration error in AnalyzerFactory properties", e);
                 }
             }
         }
@@ -89,17 +89,17 @@
     }
 
     public String getAnalyzerValue(Language lang) {
-        String key = lang.getCode() + ".Analyzer"; //$NON-NLS-1$
+        String key = lang.getCode() + ".Analyzer";
         return myProperties.getProperty(key);
     }
 
     public boolean getDefaultStemmingProperty() {
-        String key = DEFAULT_ID + ".Stemming"; //$NON-NLS-1$
+        String key = DEFAULT_ID + ".Stemming";
         return Boolean.valueOf(myProperties.getProperty(key)).booleanValue();
     }
 
     public boolean getDefaultStopWordProperty() {
-        String key = DEFAULT_ID + ".StopWord"; //$NON-NLS-1$
+        String key = DEFAULT_ID + ".StopWord";
         return Boolean.valueOf(myProperties.getProperty(key)).booleanValue();
     }
 
@@ -107,11 +107,11 @@
         try {
             myProperties = ResourceUtil.getProperties(getClass());
         } catch (IOException e) {
-            log.error("AnalyzerFactory property load from file failed", e); //$NON-NLS-1$
+            log.error("AnalyzerFactory property load from file failed", e);
         }
     }
 
-    public static final String DEFAULT_ID = "Default"; //$NON-NLS-1$
+    public static final String DEFAULT_ID = "Default";
     private static final Logger log = Logger.getLogger(AnalyzerFactory.class);
     private static AnalyzerFactory myInstance = new AnalyzerFactory();
 

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/ConfigurableSnowballAnalyzer.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/ConfigurableSnowballAnalyzer.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/lucene/analysis/ConfigurableSnowballAnalyzer.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -110,7 +110,7 @@
         if (stemmerName != null) {
             // Check for allowed stemmers
             if (!allowedStemmers.matcher(stemmerName).matches()) {
-                throw new IllegalArgumentException("SnowballAnalyzer configured for unavailable stemmer " + stemmerName); //$NON-NLS-1$
+                throw new IllegalArgumentException("SnowballAnalyzer configured for unavailable stemmer " + stemmerName);
             }
 
             // Initialize the default stop words
@@ -126,16 +126,16 @@
     private String stemmerName;
 
     private static Pattern allowedStemmers = Pattern
-            .compile("(Danish|Dutch|English|Finnish|French|German2|German|Italian|Kp|Lovins|Norwegian|Porter|Portuguese|Russian|Spanish|Swedish)"); //$NON-NLS-1$
+            .compile("(Danish|Dutch|English|Finnish|French|German2|German|Italian|Kp|Lovins|Norwegian|Porter|Portuguese|Russian|Spanish|Swedish)");
 
     // Maps StemmerName > String array of standard stop words
     private static HashMap defaultStopWordMap = new HashMap();
     static {
-        defaultStopWordMap.put("French", FrenchAnalyzer.FRENCH_STOP_WORDS); //$NON-NLS-1$
-        defaultStopWordMap.put("German", GermanAnalyzer.GERMAN_STOP_WORDS); //$NON-NLS-1$
-        defaultStopWordMap.put("German2", GermanAnalyzer.GERMAN_STOP_WORDS); //$NON-NLS-1$
-        defaultStopWordMap.put("Dutch", DutchAnalyzer.DUTCH_STOP_WORDS); //$NON-NLS-1$
-        defaultStopWordMap.put("English", StopAnalyzer.ENGLISH_STOP_WORDS_SET); //$NON-NLS-1$
-        defaultStopWordMap.put("Porter", StopAnalyzer.ENGLISH_STOP_WORDS_SET); //$NON-NLS-1$
+        defaultStopWordMap.put("French", FrenchAnalyzer.FRENCH_STOP_WORDS);
+        defaultStopWordMap.put("German", GermanAnalyzer.GERMAN_STOP_WORDS);
+        defaultStopWordMap.put("German2", GermanAnalyzer.GERMAN_STOP_WORDS);
+        defaultStopWordMap.put("Dutch", DutchAnalyzer.DUTCH_STOP_WORDS);
+        defaultStopWordMap.put("English", StopAnalyzer.ENGLISH_STOP_WORDS_SET);
+        defaultStopWordMap.put("Porter", StopAnalyzer.ENGLISH_STOP_WORDS_SET);
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/query/QueryBuilderFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/query/QueryBuilderFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/query/QueryBuilderFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -64,15 +64,15 @@
         try {
             instance = (QueryBuilder) PluginUtil.getImplementation(QueryBuilder.class);
         } catch (IOException e) {
-            log.error("create QueryBuilder failed", e); //$NON-NLS-1$
+            log.error("create QueryBuilder failed", e);
         } catch (ClassCastException e) {
-            log.error("create QueryBuilder failed", e); //$NON-NLS-1$
+            log.error("create QueryBuilder failed", e);
         } catch (ClassNotFoundException e) {
-            log.error("create QueryBuilder failed", e); //$NON-NLS-1$
+            log.error("create QueryBuilder failed", e);
         } catch (InstantiationException e) {
-            log.error("create QueryBuilder failed", e); //$NON-NLS-1$
+            log.error("create QueryBuilder failed", e);
         } catch (IllegalAccessException e) {
-            log.error("create QueryBuilder failed", e); //$NON-NLS-1$
+            log.error("create QueryBuilder failed", e);
         }
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/query/QueryDecoratorFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/query/QueryDecoratorFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/query/QueryDecoratorFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -64,15 +64,15 @@
         try {
             instance = (QueryDecorator) PluginUtil.getImplementation(QueryDecorator.class);
         } catch (IOException e) {
-            log.error("create QueryDecorator failed", e); //$NON-NLS-1$
+            log.error("create QueryDecorator failed", e);
         } catch (ClassCastException e) {
-            log.error("create QueryDecorator failed", e); //$NON-NLS-1$
+            log.error("create QueryDecorator failed", e);
         } catch (ClassNotFoundException e) {
-            log.error("create QueryDecorator failed", e); //$NON-NLS-1$
+            log.error("create QueryDecorator failed", e);
         } catch (InstantiationException e) {
-            log.error("create QueryDecorator failed", e); //$NON-NLS-1$
+            log.error("create QueryDecorator failed", e);
         } catch (IllegalAccessException e) {
-            log.error("create QueryDecorator failed", e); //$NON-NLS-1$
+            log.error("create QueryDecorator failed", e);
         }
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/query/RangeQuery.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/query/RangeQuery.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/query/RangeQuery.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -57,9 +57,10 @@
         try {
             return index.getKey(range);
         } catch (NoSuchKeyException e) {
-            throw new BookException(UserMsg.ILLEGAL_PASSAGE, e, new Object[] {
+            // TRANSLATOR: User error condition: The passage range could not be understood. {0} is a placeholder for the passage.
+            throw new BookException(UserMsg.gettext("Syntax Error: Invalid passage \"{0}\"", new Object[] {
                 range
-            });
+            }), e);
         }
     }
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,12 +31,43 @@
  * @author DM Smith [dmsmith555 at yahoo dot com]
  */
 final class UserMsg extends MsgBase {
-    static final UserMsg ILLEGAL_PASSAGE = new UserMsg("RangeQuery.IllegalPassage"); //$NON-NLS-1$
 
     /**
-     * Passthrough ctor
+     * Get the internationalized text, but return key if key is unknown.
+     * 
+     * @param key
+     * @return the internationalized text
      */
-    private UserMsg(String name) {
-        super(name);
+    public static String gettext(String key)
+    {
+        return msg.lookup(key);
     }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object param)
+    {
+        return msg.toString(key, param);
+    }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object[] params)
+    {
+        return msg.toString(key, params);
+    }
+
+    private static MsgBase msg = new UserMsg();
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,8 +1 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
-RangeQuery.IllegalPassage=Syntax Error: Invalid passage "{0}"
+Syntax\ Error\:\ Invalid\ passage\ "{0}" = Syntax Error: Invalid passage "{0}"

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_de.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_de.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_de.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1 +1,2 @@
-RangeQuery.IllegalPassage=Syntax-Fehlet\: Ung\u00FCltige Passage "{0}"
+
+Syntax\ Error\:\ Invalid\ passage\ "{0}" = Syntax-Fehlet: Ung\u00FCltige Passage "{0}"

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_fa.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_fa.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_fa.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,8 +1 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
-RangeQuery.IllegalPassage=:\u0627\u06CC\u0646 \u0642\u0633\u0645\u062A \u0648\u062C\u0648\u062F \u0646\u062F\u0631\u062F:"{0}"
+Syntax\ Error\:\ Invalid\ passage\ "{0}" = :\u0627\u06CC\u0646 \u0642\u0633\u0645\u062A \u0648\u062C\u0648\u062F \u0646\u062F\u0631\u062F:"{0}"

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_in.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_in.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/query/UserMsg_in.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,8 +1 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
-RangeQuery.IllegalPassage=Kesalahan sintaksis: Invalid passage "{0}"
+Syntax\ Error\:\ Invalid\ passage\ "{0}" = Kesalahan sintaksis: Invalid passage "{0}"

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/search/SearchType.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/search/SearchType.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/search/SearchType.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -37,7 +37,7 @@
     /**
      * Find the words in the specified order.
      */
-    public static final SearchType PHRASE = new SearchType("Phrase") //$NON-NLS-1$
+    public static final SearchType PHRASE = new SearchType("Phrase")
     {
         /*
          * (non-Javadoc)
@@ -59,7 +59,7 @@
     /**
      * Find all the words regardless of position.
      */
-    public static final SearchType ALL_WORDS = new SearchType("All") //$NON-NLS-1$
+    public static final SearchType ALL_WORDS = new SearchType("All")
     {
         /*
          * (non-Javadoc)
@@ -81,7 +81,7 @@
     /**
      * Find any of these words
      */
-    public static final SearchType ANY_WORDS = new SearchType("Any") //$NON-NLS-1$
+    public static final SearchType ANY_WORDS = new SearchType("Any")
     {
         /*
          * (non-Javadoc)
@@ -104,7 +104,7 @@
      * Find verses not containing these words. Note this may require being added
      * after words being sought.
      */
-    public static final SearchType NOT_WORDS = new SearchType("Not") //$NON-NLS-1$
+    public static final SearchType NOT_WORDS = new SearchType("Not")
     {
         /*
          * (non-Javadoc)
@@ -126,7 +126,7 @@
     /**
      * Find verses with words that start with the these beginnings.
      */
-    public static final SearchType START_WORDS = new SearchType("Start") //$NON-NLS-1$
+    public static final SearchType START_WORDS = new SearchType("Start")
     {
         /*
          * (non-Javadoc)
@@ -148,7 +148,7 @@
     /**
      * Find verses with words spelled something like
      */
-    public static final SearchType SPELL_WORDS = new SearchType("Spell") //$NON-NLS-1$
+    public static final SearchType SPELL_WORDS = new SearchType("Spell")
     {
         /*
          * (non-Javadoc)
@@ -170,7 +170,7 @@
     /**
      * Find verses in this range
      */
-    public static final SearchType RANGE = new SearchType("Range") //$NON-NLS-1$
+    public static final SearchType RANGE = new SearchType("Range")
     {
         /*
          * (non-Javadoc)
@@ -212,7 +212,7 @@
                 return o;
             }
         }
-        throw new ClassCastException("Not a valid search type"); //$NON-NLS-1$
+        throw new ClassCastException("Not a valid search type");
     }
 
     /**

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/index/search/SearcherFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/index/search/SearcherFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/index/search/SearcherFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -58,19 +58,19 @@
 
             return parser;
         } catch (IOException e) {
-            log.error("createSearcher failed", e); //$NON-NLS-1$
+            log.error("createSearcher failed", e);
             throw new InstantiationException();
         } catch (BookException e) {
-            log.error("createSearcher failed", e); //$NON-NLS-1$
+            log.error("createSearcher failed", e);
             throw new InstantiationException();
         } catch (ClassCastException e) {
-            log.error("createSearcher failed", e); //$NON-NLS-1$
+            log.error("createSearcher failed", e);
             throw new InstantiationException();
         } catch (ClassNotFoundException e) {
-            log.error("createSearcher failed", e); //$NON-NLS-1$
+            log.error("createSearcher failed", e);
             throw new InstantiationException();
         } catch (IllegalAccessException e) {
-            log.error("createSearcher failed", e); //$NON-NLS-1$
+            log.error("createSearcher failed", e);
             throw new InstantiationException();
         }
     }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractPassage.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractPassage.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/AbstractPassage.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -75,7 +75,7 @@
      */
     public int compareTo(Object obj) {
         if (!(obj instanceof Passage)) {
-            log.warn("Can't compare a Passage to a " + obj.getClass().getName()); //$NON-NLS-1$
+            log.warn("Can't compare a Passage to a " + obj.getClass().getName());
             return -1;
         }
 
@@ -273,7 +273,23 @@
      * @see org.crosswire.jsword.passage.Passage#getOverview()
      */
     public String getOverview() {
-        return UserMsg.ABSTRACT_REF_SUMMARY.toString(new Object[] {
+        // TRANSLATOR: This provides an overview of the verses in one or more books. The placeholders here deserve extra comment.
+        // {0,number,integer} is a placeholder for the count of verses. It will be displayed as an integer using the number system of the user's locale.
+        // {0,choice,0#verses|1#verse|1<verses} uses the value of the number of verses to display the correct singular or plural form for the word "verse"
+        //    Choices are separated by |. And each choice consists of a number, a comparison and the value to use when the comparison is met.
+        //    Choices are ordered from smallest to largest. The numbers represent boundaries that determine when a choice is used.
+        //    The comparision # means to match exactly.
+        //    The comparision < means that the number on the left is less than the number being evaluated.
+        //    Here, 0 is the first boundary specified by a #. So every number less than or equal to 0 get the first choice.
+        //    In this situation, we are dealing with counting numbers, so we'll never have negative numbers.
+        //    Next choice is 1 with a boundary specified by #. So all numbers greater than 0 (the first choice) but less than or equal to 1 get the second choice.
+        //    In this situation, the only number that will match is 1.
+        //    The final choice is 1<. This means that every number greater than 1 will get this choice.
+        // Putting the first two placeholders together we get "0 verses", "1 verse" or "n verses" (where n is 2 or more)
+        // The reason to go into this is that this pattern works for English. Other languages might have different ways of representing singular and plurals.
+        // {1,number,integer} is a placeholder for the count of Bible books. It works the same way as the count of verses.
+        // {1,choice,0#books|1#book|1<books} is the placeholder for the singular or plural of "book"
+        return UserMsg.gettext("{0,number,integer} {0,choice,0#verses|1#verse|1<verses} in {1,number,integer} {1,choice,0#books|1#book|1<books}", new Object[] {
                 new Integer(countVerses()), new Integer(booksInPassage())
         });
     }
@@ -1040,7 +1056,7 @@
             // chance to fix the error
             // throw new LogicError();
 
-            log.warn("skip_normalization=" + skipNormalization); //$NON-NLS-1$
+            log.warn("skip_normalization=" + skipNormalization);
         }
     }
 
@@ -1073,7 +1089,7 @@
             // chance to fix the error
             // throw new LogicError();
 
-            log.warn("suppress_events=" + suppressEvents); //$NON-NLS-1$
+            log.warn("suppress_events=" + suppressEvents);
         }
     }
 
@@ -1431,17 +1447,17 @@
     /**
      * What characters can we use to separate VerseRanges in a Passage
      */
-    public static final String REF_ALLOWED_DELIMS = ",;\n\r\t"; //$NON-NLS-1$
+    public static final String REF_ALLOWED_DELIMS = ",;\n\r\t";
 
     /**
      * What characters should we use to separate VerseRanges in a Passage
      */
-    public static final String REF_PREF_DELIM = ", "; //$NON-NLS-1$
+    public static final String REF_PREF_DELIM = ", ";
 
     /**
      * What characters should we use to separate VerseRanges in a Passage
      */
-    public static final String REF_OSIS_DELIM = " "; //$NON-NLS-1$
+    public static final String REF_OSIS_DELIM = " ";
 
     /**
      * Serialization ID

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/AccuracyType.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/AccuracyType.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/AccuracyType.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -72,7 +72,7 @@
      * The verse was specified as book, chapter and verse. For example, Gen 1:1,
      * Jude 3 (which only has one chapter)
      */
-    public static final AccuracyType BOOK_VERSE = new AccuracyType("BOOK_VERSE") //$NON-NLS-1$
+    public static final AccuracyType BOOK_VERSE = new AccuracyType("BOOK_VERSE")
     {
         /*
          * (non-Javadoc)
@@ -127,7 +127,7 @@
      * The passage was specified to a book and chapter (no verse). For example,
      * Gen 1
      */
-    public static final AccuracyType BOOK_CHAPTER = new AccuracyType("BOOK_CHAPTER") //$NON-NLS-1$
+    public static final AccuracyType BOOK_CHAPTER = new AccuracyType("BOOK_CHAPTER")
     {
         /*
          * (non-Javadoc)
@@ -177,7 +177,7 @@
      * The passage was specified to a book only (no chapter or verse). For
      * example, Gen
      */
-    public static final AccuracyType BOOK_ONLY = new AccuracyType("BOOK_ONLY") //$NON-NLS-1$
+    public static final AccuracyType BOOK_ONLY = new AccuracyType("BOOK_ONLY")
     {
         /*
          * (non-Javadoc)
@@ -226,7 +226,7 @@
      * The passage was specified to a chapter and verse (no book). For example,
      * 1:1
      */
-    public static final AccuracyType CHAPTER_VERSE = new AccuracyType("CHAPTER_VERSE") //$NON-NLS-1$
+    public static final AccuracyType CHAPTER_VERSE = new AccuracyType("CHAPTER_VERSE")
     {
         /*
          * (non-Javadoc)
@@ -246,7 +246,8 @@
          */
         public Verse createStartVerse(String original, VerseRange verseRangeBasis, String[] parts) throws NoSuchVerseException {
             if (verseRangeBasis == null) {
-                throw new NoSuchVerseException(UserMsg.ACCURACY_BOOK);
+                // TRANSLATOR: The user supplied a verse reference but did not give the book of the Bible.
+                throw new NoSuchVerseException(UserMsg.gettext("Book is missing"));
             }
             int book = verseRangeBasis.getEnd().getBook();
             int chapter = getChapter(book, parts[0]);
@@ -279,7 +280,7 @@
     /**
      * There was only a chapter number
      */
-    public static final AccuracyType CHAPTER_ONLY = new AccuracyType("CHAPTER_ONLY") //$NON-NLS-1$
+    public static final AccuracyType CHAPTER_ONLY = new AccuracyType("CHAPTER_ONLY")
     {
         /*
          * (non-Javadoc)
@@ -299,7 +300,8 @@
          */
         public Verse createStartVerse(String original, VerseRange verseRangeBasis, String[] parts) throws NoSuchVerseException {
             if (verseRangeBasis == null) {
-                throw new NoSuchVerseException(UserMsg.ACCURACY_BOOK);
+                // TRANSLATOR: The user supplied a verse reference but did not give the book of the Bible.
+                throw new NoSuchVerseException(UserMsg.gettext("Book is missing"));
             }
             int book = verseRangeBasis.getEnd().getBook();
             int chapter = getChapter(book, parts[0]);
@@ -330,7 +332,7 @@
     /**
      * There was only a verse number
      */
-    public static final AccuracyType VERSE_ONLY = new AccuracyType("VERSE_ONLY") //$NON-NLS-1$
+    public static final AccuracyType VERSE_ONLY = new AccuracyType("VERSE_ONLY")
     {
         /*
          * (non-Javadoc)
@@ -350,7 +352,8 @@
          */
         public Verse createStartVerse(String original, VerseRange verseRangeBasis, String[] parts) throws NoSuchVerseException {
             if (verseRangeBasis == null) {
-                throw new NoSuchVerseException(UserMsg.ACCURACY_BOOK_CHAPTER);
+                // TRANSLATOR: The user supplied a verse reference but did not give the book or chapter of the Bible.
+                throw new NoSuchVerseException(UserMsg.gettext("Book and chapter are missing"));
             }
             int book = verseRangeBasis.getEnd().getBook();
             int chapter = verseRangeBasis.getEnd().getChapter();
@@ -603,11 +606,12 @@
     private static NoSuchVerseException buildVersePartsException(String original, String[] parts) {
         StringBuffer buffer = new StringBuffer(original);
         for (int i = 0; i < parts.length; i++) {
-            buffer.append(", ").append(parts[i]); //$NON-NLS-1$
+            buffer.append(", ").append(parts[i]);
         }
-        return new NoSuchVerseException(UserMsg.VERSE_PARTS, new Object[] {
+        // TRANSLATOR: The user specified a verse with too many separators. {0} is a placeholder for the allowable separators.
+        return new NoSuchVerseException(UserMsg.gettext("Too many parts to the Verse. (Parts are separated by any of {0})", new Object[] {
             buffer.toString()
-        });
+        }));
     }
 
     /**
@@ -639,9 +643,11 @@
         try {
             return Integer.parseInt(new NumberShaper().unshape(text));
         } catch (NumberFormatException ex) {
-            throw new NoSuchVerseException(UserMsg.VERSE_PARSE, new Object[] {
+            // TRANSLATOR: The chapter or verse number is actually not a number, but something else.
+            // {0} is a placeholder for what the user supplied.
+            throw new NoSuchVerseException(UserMsg.gettext("Cannot understand {0} as a chapter or verse.", new Object[] {
                 text
-            });
+            }));
         }
     }
 
@@ -730,9 +736,10 @@
                     // Letters always continue a previous token
                     if (charIsDigit) {
                         if (tokenCount >= args.length) {
-                            throw new NoSuchVerseException(UserMsg.VERSE_PARTS, new Object[] {
+                            // TRANSLATOR: The user specified a verse with too many separators. {0} is a placeholder for the allowable separators.
+                            throw new NoSuchVerseException(UserMsg.gettext("Too many parts to the Verse. (Parts are separated by any of {0})", new Object[] {
                                 input
-                            });
+                            }));
                         }
 
                         token = new String(normalized, startIndex, normalizedLength - startIndex);
@@ -752,9 +759,10 @@
         }
 
         if (tokenCount >= args.length) {
-            throw new NoSuchVerseException(UserMsg.VERSE_PARTS, new Object[] {
+            // TRANSLATOR: The user specified a verse with too many separators. {0} is a placeholder for the allowable separators.
+            throw new NoSuchVerseException(UserMsg.gettext("Too many parts to the Verse. (Parts are separated by any of {0})", new Object[] {
                 input
-            });
+            }));
         }
 
         token = new String(normalized, startIndex, normalizedLength - startIndex);
@@ -827,7 +835,7 @@
     /**
      * What characters can we use to separate parts to a verse
      */
-    public static final String VERSE_ALLOWED_DELIMS = " :."; //$NON-NLS-1$
+    public static final String VERSE_ALLOWED_DELIMS = " :.";
 
     /**
      * The name of the object
@@ -849,12 +857,12 @@
     /**
      * Characters that are used to indicate end of verse/chapter, part 1
      */
-    public static final String VERSE_END_MARK1 = "$"; //$NON-NLS-1$
+    public static final String VERSE_END_MARK1 = "$";
 
     /**
      * Characters that are used to indicate end of verse/chapter, part 2
      */
-    public static final String VERSE_END_MARK2 = "ff"; //$NON-NLS-1$
+    public static final String VERSE_END_MARK2 = "ff";
 
     /**
      * Serialization ID

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/DefaultKeyList.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/DefaultKeyList.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/DefaultKeyList.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -175,7 +175,7 @@
      * @see org.crosswire.jsword.passage.Key#blur(int)
      */
     public void blur(int by, RestrictionType restrict) {
-        log.warn("attempt to blur a non-blur-able list"); //$NON-NLS-1$
+        log.warn("attempt to blur a non-blur-able list");
     }
 
     /**

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/KeyUtil.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/KeyUtil.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/KeyUtil.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -78,7 +78,7 @@
         try {
             return VerseFactory.fromString(key.getName());
         } catch (NoSuchVerseException ex) {
-            log.warn("Key can't be a verse: " + key.getName()); //$NON-NLS-1$
+            log.warn("Key can't be a verse: " + key.getName());
             return Verse.DEFAULT;
         }
     }
@@ -101,7 +101,7 @@
         try {
             ref = keyf.getKey(key.getName());
         } catch (NoSuchKeyException ex) {
-            log.warn("Key can't be a passage: " + key.getName()); //$NON-NLS-1$
+            log.warn("Key can't be a passage: " + key.getName());
             ref = keyf.createEmptyKeyList();
         }
         return (Passage) ref;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,14 +31,14 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 public final class Msg extends MsgBase {
-    static final Msg TALLY_ERROR_ENUM = new Msg("PassageTally.ErrorEnum"); //$NON-NLS-1$
-    static final Msg TALLY_ERROR_ORDER = new Msg("PassageTally.ErrorOrder"); //$NON-NLS-1$
-    static final Msg PASSAGE_READONLY = new Msg("ReadOnlyPassage.Readonly"); //$NON-NLS-1$
-    static final Msg ERROR_PATCH = new Msg("Verse.ErrorPatch"); //$NON-NLS-1$
-    static final Msg PASSAGE_UNKNOWN = new Msg("PassageUtil.Unknown"); //$NON-NLS-1$
-    static final Msg ABSTRACT_CAST = new Msg("AbstractPassage.Cast"); //$NON-NLS-1$
-    static final Msg ABSTRACT_INDEX = new Msg("AbstractPassage.Index"); //$NON-NLS-1$
-    static final Msg KEYLIST_READONLY = new Msg("ReadOnlyKeyList.Readonly"); //$NON-NLS-1$
+    static final Msg TALLY_ERROR_ENUM = new Msg("PassageTally.ErrorEnum");
+    static final Msg TALLY_ERROR_ORDER = new Msg("PassageTally.ErrorOrder");
+    static final Msg PASSAGE_READONLY = new Msg("ReadOnlyPassage.Readonly");
+    static final Msg ERROR_PATCH = new Msg("Verse.ErrorPatch");
+    static final Msg PASSAGE_UNKNOWN = new Msg("PassageUtil.Unknown");
+    static final Msg ABSTRACT_CAST = new Msg("AbstractPassage.Cast");
+    static final Msg ABSTRACT_INDEX = new Msg("AbstractPassage.Index");
+    static final Msg KEYLIST_READONLY = new Msg("ReadOnlyKeyList.Readonly");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,10 +1,3 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
 PassageTally.ErrorEnum=nextElement() has not been called yet.
 PassageTally.ErrorOrder=Ordering must be one of ORDER_BIBLICAL or ORDER_TALLY
 ReadOnlyPassage.Readonly=Cannot alter a read-only passage

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg_in.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg_in.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/Msg_in.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,10 +1,3 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
 PassageTally.ErrorEnum=nextElement() belum di panggil.
 PassageTally.ErrorOrder=Urutahn harus berupa ORDER_BIBLICAL atau ORDER_TALLY
 ReadOnlyPassage.Readonly=Tidak dapat merubah perikop baca (read only)

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/NoSuchKeyException.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/NoSuchKeyException.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/NoSuchKeyException.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -82,6 +82,55 @@
     }
 
     /**
+     * Construct the Exception with a message
+     * 
+     * @param msg
+     *            The resource id to read
+     */
+    public NoSuchKeyException(String msg) {
+        super(msg);
+    }
+
+    /**
+     * Construct the Exception with a message and a nested Exception
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param ex
+     *            The nested Exception
+     */
+    public NoSuchKeyException(String msg, Throwable ex) {
+        super(msg, ex);
+    }
+
+    /**
+     * Construct the Exception with a message and some i18n params
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param params
+     *            An array of parameters
+     */
+    public NoSuchKeyException(String msg, Object[] params) {
+        super(msg, params);
+    }
+
+    /**
+     * Construct the Exception with a message, a nested Exception and some i18n
+     * params
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param ex
+     *            The nested Exception
+     * @param params
+     *            An array of parameters
+     */
+    public NoSuchKeyException(String msg, Throwable ex, Object[] params) {
+        super(msg, ex, params);
+    }
+
+    /**
      * Serialization ID
      */
     private static final long serialVersionUID = 3257288032582185777L;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/NoSuchVerseException.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/NoSuchVerseException.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/NoSuchVerseException.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -79,8 +79,56 @@
     public NoSuchVerseException(MsgBase msg, Throwable ex, Object[] params) {
         super(msg, ex, params);
     }
+    /**
+     * Construct the Exception with a message
+     * 
+     * @param msg
+     *            The resource id to read
+     */
+    public NoSuchVerseException(String msg) {
+        super(msg);
+    }
 
     /**
+     * Construct the Exception with a message and a nested Exception
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param ex
+     *            The nested Exception
+     */
+    public NoSuchVerseException(String msg, Throwable ex) {
+        super(msg, ex);
+    }
+
+    /**
+     * Construct the Exception with a message and some i18n params
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param params
+     *            An array of parameters
+     */
+    public NoSuchVerseException(String msg, Object[] params) {
+        super(msg, params);
+    }
+
+    /**
+     * Construct the Exception with a message, a nested Exception and some i18n
+     * params
+     * 
+     * @param msg
+     *            The resource id to read
+     * @param ex
+     *            The nested Exception
+     * @param params
+     *            An array of parameters
+     */
+    public NoSuchVerseException(String msg, Throwable ex, Object[] params) {
+        super(msg, ex, params);
+    }
+
+    /**
      * Serialization ID
      */
     private static final long serialVersionUID = 3257572797638129463L;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageKeyFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageKeyFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageKeyFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -369,8 +369,8 @@
      * @return The number of bytes written
      */
     protected static int toBinary(byte[] buffer, int index, int number, int max) {
-        assert number >= 0 : "No -ve output " + number; //$NON-NLS-1$
-        assert number <= max : "number " + number + " > max " + max; //$NON-NLS-1$ //$NON-NLS-2$
+        assert number >= 0 : "No -ve output " + number;
+        assert number <= max : "number " + number + " > max " + max;
 
         // 1 byte (2^8)
         if (max < 256) {
@@ -551,7 +551,7 @@
 
     static {
         try {
-            whole = new ReadOnlyPassage(defaultType.createPassage("Gen 1:1-Rev 22:21"), true); //$NON-NLS-1$
+            whole = new ReadOnlyPassage(defaultType.createPassage("Gen 1:1-Rev 22:21"), true);
         } catch (NoSuchKeyException ex) {
             assert false : ex;
             whole = defaultType.createEmptyPassage();

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageListType.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageListType.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageListType.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -35,7 +35,7 @@
     /**
      * Passage to be interpreted as a list of verses.
      */
-    public static final PassageListType VERSES = new PassageListType("VERSES") //$NON-NLS-1$
+    public static final PassageListType VERSES = new PassageListType("VERSES")
     {
         public Object getElementAt(Passage ref, int index, RestrictionType restrict) {
             if (ref == null) {
@@ -60,7 +60,7 @@
     /**
      * Passage to be interpreted as a list of ranges.
      */
-    public static final PassageListType RANGES = new PassageListType("RANGES") //$NON-NLS-1$
+    public static final PassageListType RANGES = new PassageListType("RANGES")
     {
         public Object getElementAt(Passage ref, int index, RestrictionType restrict) {
             if (ref == null) {

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageTally.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageTally.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageTally.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -292,9 +292,9 @@
         while (it.hasNext() && count < max_count) {
             Key verse = (Key) it.next();
             retcode.append(verse.getName());
-            retcode.append(" ("); //$NON-NLS-1$
+            retcode.append(" (");
             retcode.append(100 * it.lastRank() / max);
-            retcode.append("%)"); //$NON-NLS-1$
+            retcode.append("%)");
 
             count++;
 
@@ -628,7 +628,7 @@
         raiseNormalizeProtection();
 
         if (!restrict.equals(RestrictionType.NONE)) {
-            log.warn("Restrict=" + restrict + " is not properly supported."); //$NON-NLS-1$ //$NON-NLS-2$
+            log.warn("Restrict=" + restrict + " is not properly supported.");
 
             // This is a bit of a cheat, but there is no way I'm going
             // to do the maths to speed up the restricted version

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageType.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageType.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/PassageType.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -34,7 +34,7 @@
     /**
      * Optimize the Passage for speed
      */
-    public static final PassageType SPEED = new PassageType("SPEED") //$NON-NLS-1$
+    public static final PassageType SPEED = new PassageType("SPEED")
     {
         /*
          * (non-Javadoc)
@@ -68,7 +68,7 @@
     /**
      * Optimize the Passage for write speed
      */
-    public static final PassageType WRITE_SPEED = new PassageType("WRITE_SPEED") //$NON-NLS-1$
+    public static final PassageType WRITE_SPEED = new PassageType("WRITE_SPEED")
     {
         /*
          * (non-Javadoc)
@@ -102,7 +102,7 @@
     /**
      * Optimize the Passage for size
      */
-    public static final PassageType SIZE = new PassageType("SIZE") //$NON-NLS-1$
+    public static final PassageType SIZE = new PassageType("SIZE")
     {
         /*
          * (non-Javadoc)
@@ -136,7 +136,7 @@
     /**
      * Optimize the Passage for a mix
      */
-    public static final PassageType MIX = new PassageType("MIX") //$NON-NLS-1$
+    public static final PassageType MIX = new PassageType("MIX")
     {
         /*
          * (non-Javadoc)
@@ -170,7 +170,7 @@
     /**
      * Optimize the Passage for tally operations
      */
-    public static final PassageType TALLY = new PassageType("TALLY") //$NON-NLS-1$
+    public static final PassageType TALLY = new PassageType("TALLY")
     {
         /*
          * (non-Javadoc)

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/RestrictionType.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/RestrictionType.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/RestrictionType.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -37,7 +37,7 @@
     /**
      * There is no restriction on blurring.
      */
-    public static final RestrictionType NONE = new RestrictionType("NONE") //$NON-NLS-1$
+    public static final RestrictionType NONE = new RestrictionType("NONE")
     {
         /*
          * (non-Javadoc)
@@ -102,7 +102,7 @@
      */
     // Note: FindBugs wrongly reports an initialization circularity.
     // Turns out that it is the exception handling that causes it.
-    public static final RestrictionType CHAPTER = new RestrictionType("CHAPTER") //$NON-NLS-1$
+    public static final RestrictionType CHAPTER = new RestrictionType("CHAPTER")
     {
         /*
          * (non-Javadoc)

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/SetKeyList.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/SetKeyList.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/SetKeyList.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -212,7 +212,7 @@
      * @see org.crosswire.jsword.passage.Key#blur(int)
      */
     public void blur(int by, RestrictionType restrict) {
-        log.warn("attempt to blur a non-blur-able list"); //$NON-NLS-1$
+        log.warn("attempt to blur a non-blur-able list");
     }
 
     /**

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/TreeKey.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/TreeKey.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/TreeKey.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -192,7 +192,7 @@
      * @see org.crosswire.jsword.passage.Key#blur(int)
      */
     public void blur(int by, RestrictionType restrict) {
-        log.warn("attempt to blur a non-blur-able list"); //$NON-NLS-1$
+        log.warn("attempt to blur a non-blur-able list");
     }
 
     /*

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,17 +31,43 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 public final class UserMsg extends MsgBase {
-    static final UserMsg ABSTRACT_REF_SUMMARY = new UserMsg("AbstractPassage.RefSummary"); //$NON-NLS-1$
-    static final UserMsg VERSE_PARTS = new UserMsg("Verse.Parts"); //$NON-NLS-1$
-    static final UserMsg VERSE_PARSE = new UserMsg("Verse.Parse"); //$NON-NLS-1$
-    static final UserMsg RANGE_PARTS = new UserMsg("VerseRange.Parts"); //$NON-NLS-1$
-    static final UserMsg ACCURACY_BOOK = new UserMsg("AccuracyType.Book"); //$NON-NLS-1$
-    static final UserMsg ACCURACY_BOOK_CHAPTER = new UserMsg("AccuracyType.BookChapter"); //$NON-NLS-1$
 
     /**
-     * Passthrough ctor
+     * Get the internationalized text, but return key if key is unknown.
+     * 
+     * @param key
+     * @return the internationalized text
      */
-    private UserMsg(String name) {
-        super(name);
+    public static String gettext(String key)
+    {
+        return msg.lookup(key);
     }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object param)
+    {
+        return msg.toString(key, param);
+    }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object[] params)
+    {
+        return msg.toString(key, params);
+    }
+
+    private static MsgBase msg = new UserMsg();
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,13 +1,9 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
+A\ verse\ range\ cannot\ have\ more\ than\ 2\ parts.\ (Parts\ are\ separated\ by\ {0})\ Given\ {1} = A verse range cannot have more than 2 parts. (Parts are separated by {0}) Given {1}
 
-AbstractPassage.RefSummary={0,number,integer} {0,choice,0#verses|1#verse|1<verses} in {1,number,integer} {1,choice,0#books|1#book|1<books}
-Verse.Parse=Cannot understand {0} as a chapter or verse.
-Verse.Parts=Too many parts to the Verse. (Parts are separated by any of {0})
-VerseRange.Parts=A verse range cannot have more than 2 parts. (Parts are separated by {0}) Given {1}
-AccuracyType.Book=Book is missing
-AccuracyType.BookChapter=Book and chapter are missing
+Book\ and\ chapter\ are\ missing = Book and chapter are missing
+
+Cannot\ understand\ {0}\ as\ a\ chapter\ or\ verse. = Cannot understand {0} as a chapter or verse.
+
+Too\ many\ parts\ to\ the\ Verse.\ (Parts\ are\ separated\ by\ any\ of\ {0}) = Too many parts to the Verse. (Parts are separated by any of {0})
+
+{0,number,integer}\ {0,choice,0\#verses|1\#verse|1<verses}\ in\ {1,number,integer}\ {1,choice,0\#books|1\#book|1<books} = {0,number,integer} {0,choice,0#verses|1#verse|1<verses} in {1,number,integer} {1,choice,0#books|1#book|1<books}

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_de.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_de.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_de.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,8 +1,9 @@
-#Created by JInto - www.guh-software.de
-#Thu Mar 13 22:56:28 CET 2008
-AbstractPassage.RefSummary={0,number,integer} {0,choice,0\#Verse|1\#Vers|1<Verse} in {1,number,integer} {1,choice,0\#B\u00FCcher|1\#Buch|1<B\u00FCcher}
-AccuracyType.Book=Buch fehlt
-AccuracyType.BookChapter=Buch und Kapitel fehlen
-Verse.Parse=Kann {0} nicht als Kapitel oder Vers verstehen.
-Verse.Parts=Vers hat zuviele Teile. (Teile sind getrennt durch {0})
-VerseRange.Parts=Ein Vers-Bereich kann nicht mehr als 2 Teile haben.(Teile werden durch {0} getrennt. Gegeben\: {1})
+A\ verse\ range\ cannot\ have\ more\ than\ 2\ parts.\ (Parts\ are\ separated\ by\ {0})\ Given\ {1} = Ein Vers-Bereich kann nicht mehr als 2 Teile haben.(Teile werden durch {0} getrennt. Gegeben: {1})
+
+Book\ and\ chapter\ are\ missing = Buch fehlt
+
+Cannot\ understand\ {0}\ as\ a\ chapter\ or\ verse. = Kann {0} nicht als Kapitel oder Vers verstehen.
+
+Too\ many\ parts\ to\ the\ Verse.\ (Parts\ are\ separated\ by\ any\ of\ {0}) = Vers hat zuviele Teile. (Teile sind getrennt durch {0})
+
+{0,number,integer}\ {0,choice,0\#verses|1\#verse|1<verses}\ in\ {1,number,integer}\ {1,choice,0\#books|1\#book|1<books} = {0,number,integer} {0,choice,0#Verse|1#Vers|1<Verse} in {1,number,integer} {1,choice,0#B\u00FCcher|1#Buch|1<B\u00FCcher}

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_fa.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_fa.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_fa.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,14 +1,9 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
+A\ verse\ range\ cannot\ have\ more\ than\ 2\ parts.\ (Parts\ are\ separated\ by\ {0})\ Given\ {1} = \u0634\u0631\u0648\u0639 \u0648 \u0627\u062C\u0631 \u0642\u0633\u0645\u062A \u0628\u062F\u0627\u0647\u06CC\u062F\u060C \u062E\u0647\u0634 \u0645\u06CC\u06A9\u0646\u0645\u060C \u062C\u062F\u0627 \u06A9\u0646\u06CC\u062F \u0628\u0627{0}\u0634\u0645\u0627\u0646 \u0646\u0648\u0634\u062A\u06CC\u062F{1}
 
-AbstractPassage.RefSummary={0,number,integer} {0,choice,0#\u0627\u06CC\u0627\u062A|1#\u0627\u06CC\u0647|1<\u0627\u06CC\u0627\u062A} \u062F\u0631 {1,number,integer} {1,choice,0#\u06A9\u062A\u0627\u0628\u200C\u0647\u0627|1#\u06A9\u062A\u0627\u0628|1<\u06A9\u062A\u0627\u0628\u200C\u0647\u0627}
-Verse.Parse=\u0627\u06CC\u0647 \u06CC\u0627 \u0641\u0635\u0644 \u0646\u06CC\u0633\u062A:{0} 
-Verse.Parts=Too many parts to the Verse. (Parts are separated by any of {0})
-VerseRange.Parts=\u0634\u0631\u0648\u0639 \u0648 \u0627\u062C\u0631 \u0642\u0633\u0645\u062A \u0628\u062F\u0627\u0647\u06CC\u062F\u060C \u062E\u0647\u0634 \u0645\u06CC\u06A9\u0646\u0645\u060C \u062C\u062F\u0627 \u06A9\u0646\u06CC\u062F \u0628\u0627{0}\u0634\u0645\u0627\u0646 \u0646\u0648\u0634\u062A\u06CC\u062F{1}
-AccuracyType.Book=\u06A9\u062A\u0627\u0628 \u0648\u062C\u0648\u062F \u0646\u062F\u0631\u062F
-AccuracyType.BookChapter=\u06A9\u062A\u0627\u0628 \u0648 \u0641\u0635\u0644 \u0648\u062C\u0648\u062F \u0646\u062F\u0631\u062F
+Book\ and\ chapter\ are\ missing = \u06A9\u062A\u0627\u0628 \u0648\u062C\u0648\u062F \u0646\u062F\u0631\u062F
 
+Cannot\ understand\ {0}\ as\ a\ chapter\ or\ verse. = \u0627\u06CC\u0647 \u06CC\u0627 \u0641\u0635\u0644 \u0646\u06CC\u0633\u062A:{0} 
+
+Too\ many\ parts\ to\ the\ Verse.\ (Parts\ are\ separated\ by\ any\ of\ {0}) = Too many parts to the Verse. (Parts are separated by any of {0})
+
+{0,number,integer}\ {0,choice,0\#verses|1\#verse|1<verses}\ in\ {1,number,integer}\ {1,choice,0\#books|1\#book|1<books} = {0,number,integer} {0,choice,0#\u0627\u06CC\u0627\u062A|1#\u0627\u06CC\u0647|1<\u0627\u06CC\u0627\u062A} \u062F\u0631 {1,number,integer} {1,choice,0#\u06A9\u062A\u0627\u0628\u200C\u0647\u0627|1#\u06A9\u062A\u0627\u0628|1<\u06A9\u062A\u0627\u0628\u200C\u0647\u0627}

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_in.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_in.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/UserMsg_in.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,13 +1,9 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
+A\ verse\ range\ cannot\ have\ more\ than\ 2\ parts.\ (Parts\ are\ separated\ by\ {0})\ Given\ {1} = Batasan ayat tidak dapat mempunyai lebih dari 2 bagian. (Bagian di pisahkan dengan {0}) Given {1}
 
-AbstractPassage.RefSummary={0,number,integer} {0,choice,0#verses|1#verse|1<verses} in {1,number,integer} {1,choice,0#books|1#book|1<books}
-Verse.Parse=Tidak dapat menguraikan {0} sebagai pasal atau ayat.
-Verse.Parts=Terlalu banyak bagian dalam ayat. (Bagian dapat di dipisahkan dengan {0})
-VerseRange.Parts=Batasan ayat tidak dapat mempunyai lebih dari 2 bagian. (Bagian di pisahkan dengan {0}) Given {1}
-AccuracyType.Book=Kitab tidak di temukan
-AccuracyType.BookChapter=Kitab dan pasal tidak di temukan
+Book\ and\ chapter\ are\ missing = Kitab tidak di temukan
+
+Cannot\ understand\ {0}\ as\ a\ chapter\ or\ verse. = Tidak dapat menguraikan {0} sebagai pasal atau ayat.
+
+Too\ many\ parts\ to\ the\ Verse.\ (Parts\ are\ separated\ by\ any\ of\ {0}) = Terlalu banyak bagian dalam ayat. (Bagian dapat di dipisahkan dengan {0})
+
+{0,number,integer}\ {0,choice,0\#verses|1\#verse|1<verses}\ in\ {1,number,integer}\ {1,choice,0\#books|1\#book|1<books} = {0,number,integer} {0,choice,0#verses|1#verse|1<verses} in {1,number,integer} {1,choice,0#books|1#book|1<books}

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/Verse.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/Verse.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/Verse.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -203,7 +203,7 @@
             return verseName;
         } catch (NoSuchKeyException ex) {
             assert false : ex;
-            return "!Error!"; //$NON-NLS-1$
+            return "!Error!";
         }
     }
 
@@ -217,7 +217,7 @@
             return BibleInfo.getShortBookName(book);
         } catch (NoSuchKeyException ex) {
             assert false : ex;
-            return "!Error!"; //$NON-NLS-1$
+            return "!Error!";
         }
     }
 
@@ -231,7 +231,7 @@
             return BibleInfo.getOSISName(book) + Verse.VERSE_OSIS_DELIM + chapter + Verse.VERSE_OSIS_DELIM + verse;
         } catch (NoSuchVerseException ex) {
             assert false : ex;
-            return "!Error!"; //$NON-NLS-1$
+            return "!Error!";
         }
     }
 
@@ -514,7 +514,7 @@
             return BibleInfo.verseOrdinal(book, chapter, verse);
         } catch (NoSuchVerseException ex) {
             // A verse should never be illegal so
-            log.error("ref=" + book + ", " + chapter + ", " + verse); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+            log.error("ref=" + book + ", " + chapter + ", " + verse);
             assert false : ex;
             return 1;
         }
@@ -690,9 +690,11 @@
         try {
             return Integer.parseInt(shaper.unshape(text));
         } catch (NumberFormatException ex) {
-            throw new NoSuchVerseException(UserMsg.VERSE_PARSE, new Object[] {
+            // TRANSLATOR: The chapter or verse number is actually not a number, but something else.
+            // {0} is a placeholder for what the user supplied.
+            throw new NoSuchVerseException(UserMsg.gettext("Cannot understand {0} as a chapter or verse.", new Object[] {
                 text
-            });
+            }));
         }
     }
 
@@ -956,17 +958,17 @@
      * What characters should we use to separate parts of an OSIS verse
      * reference
      */
-    public static final String VERSE_OSIS_DELIM = "."; //$NON-NLS-1$
+    public static final String VERSE_OSIS_DELIM = ".";
 
     /**
      * What characters should we use to separate the book from the chapter
      */
-    public static final String VERSE_PREF_DELIM1 = " "; //$NON-NLS-1$
+    public static final String VERSE_PREF_DELIM1 = " ";
 
     /**
      * What characters should we use to separate the chapter from the verse
      */
-    public static final String VERSE_PREF_DELIM2 = ":"; //$NON-NLS-1$
+    public static final String VERSE_PREF_DELIM2 = ":";
 
     /**
      * The default verse

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -48,7 +48,7 @@
      *                If the text can not be understood
      */
     public static Verse fromString(String original) throws NoSuchVerseException {
-        if ("".equals(original)) { //$NON-NLS-1$
+        if ("".equals(original)) {
             return null;
         }
         String[] parts = AccuracyType.tokenize(original);
@@ -70,7 +70,7 @@
      *                If the reference is illegal
      */
     public static Verse fromString(String original, VerseRange verseRangeBasis) throws NoSuchVerseException {
-        if ("".equals(original)) { //$NON-NLS-1$
+        if ("".equals(original)) {
             return null;
         }
         String[] parts = AccuracyType.tokenize(original);

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRange.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRange.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRange.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -159,7 +159,7 @@
             return rangeName;
         } catch (NoSuchVerseException ex) {
             assert false : ex;
-            return "!Error!"; //$NON-NLS-1$
+            return "!Error!";
         }
     }
 
@@ -269,7 +269,7 @@
             return start.getOsisRef();
         } catch (NoSuchVerseException ex) {
             assert false : ex;
-            return "!Error!"; //$NON-NLS-1$
+            return "!Error!";
         }
     }
 
@@ -295,7 +295,7 @@
             }
         } catch (NoSuchVerseException ex) {
             assert false : ex;
-            return "!Error!"; //$NON-NLS-1$
+            return "!Error!";
         }
 
         int startOrdinal = start.getOrdinal();
@@ -912,7 +912,7 @@
      * Check to see that everything is ok with the Data
      */
     private void verifyData() {
-        assert verseCount == end.subtract(start) + 1 : "start=" + start + ", end=" + end + ", verseCount=" + verseCount; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        assert verseCount == end.subtract(start) + 1 : "start=" + start + ", end=" + end + ", verseCount=" + verseCount;
     }
 
     /**
@@ -1150,7 +1150,7 @@
     /**
      * What characters can we use to separate the 2 parts to a VerseRanges
      */
-    public static final String RANGE_ALLOWED_DELIMS = "-"; //$NON-NLS-1$
+    public static final String RANGE_ALLOWED_DELIMS = "-";
 
     /**
      * What characters should we use to separate VerseRange parts on output

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRangeFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRangeFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/passage/VerseRangeFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -85,9 +85,10 @@
             return fromText(original, parts[0], parts[1], basis);
 
         default:
-            throw new NoSuchVerseException(UserMsg.RANGE_PARTS, new Object[] {
+            // TRANSLATOR: The user specified a verse range with too many separators. {0} is a placeholder for the allowable separators.
+            throw new NoSuchVerseException(UserMsg.gettext("A verse range cannot have more than 2 parts. (Parts are separated by {0}) Given {1}", new Object[] {
                     VerseRange.RANGE_ALLOWED_DELIMS, original
-            });
+            }));
         }
     }
 

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/ConverterFactory.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/ConverterFactory.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/ConverterFactory.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -81,5 +81,5 @@
     /**
      * Current default converter implementation
      */
-    private static String name = "Configurable"; //$NON-NLS-1$
+    private static String name = "Configurable";
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/IndexDownloader.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/IndexDownloader.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/IndexDownloader.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -74,10 +74,10 @@
     /**
      * Temp file prefix
      */
-    private static final String TEMP_PREFIX = "jsword-index"; //$NON-NLS-1$
+    private static final String TEMP_PREFIX = "jsword-index";
 
     /**
      * Temp file suffix
      */
-    private static final String TEMP_SUFFIX = "dat"; //$NON-NLS-1$
+    private static final String TEMP_SUFFIX = "dat";
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -32,7 +32,7 @@
  * @author DM Smith [dmsmith555 at yahoo dot com]
  */
 public final class Msg extends MsgBase {
-    static final Msg NO_CONVERTER = new Msg("ConverterFactory.NoConverter"); //$NON-NLS-1$
+    static final Msg NO_CONVERTER = new Msg("ConverterFactory.NoConverter");
 
     /**
      * Passthrough ctor

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,12 +1,4 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
 WebWarning.Warning=You are about to access the Internet. Are you sure you want to do this?
 WebWarning.ShowWarning=Show this warning every time the Internet is accessed.
 
-# The following would be an internal error
 ConverterFactory.NoConverter=No converter called: {0}

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg_in.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg_in.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/Msg_in.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,9 +1,2 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
 WebWarning.Warning=Anda akan melakukan koneksi melalaui Internet. Apakah anda yakin mau melakukan ini?
 WebWarning.ShowWarning=Tampilkan peringatan ini setiap kali akan melalukan koneksi Internet.
\ No newline at end of file

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -32,13 +32,44 @@
  * @author DM Smith [dmsmith555 at yahoo dot com]
  */
 public final class UserMsg extends MsgBase {
-    static final UserMsg WEB_WARNING = new UserMsg("WebWarning.Warning"); //$NON-NLS-1$
-    static final UserMsg WEB_SHOW_WARNING = new UserMsg("WebWarning.ShowWarning"); //$NON-NLS-1$
 
     /**
-     * Passthrough ctor
+     * Get the internationalized text, but return key if key is unknown.
+     * 
+     * @param key
+     * @return the internationalized text
      */
-    private UserMsg(String name) {
-        super(name);
+    public static String gettext(String key)
+    {
+        return msg.lookup(key);
     }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object param)
+    {
+        return msg.toString(key, param);
+    }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object[] params)
+    {
+        return msg.toString(key, params);
+    }
+
+    private static MsgBase msg = new UserMsg();
+
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,2 @@
-WebWarning.ShowWarning=Show this warning every time the Internet is accessed.
-WebWarning.Warning=You are about to access the Internet. Are you sure you want to do this?
+Show\ this\ warning\ every\ time\ the\ Internet\ is\ accessed. = Show this warning every time the Internet is accessed.
+You\ are\ about\ to\ access\ the\ Internet.\ Are\ you\ sure\ you\ want\ to\ do\ this? = You are about to access the Internet. Are you sure you want to do this?

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_de.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_de.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_de.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,4 @@
-WebWarning.ShowWarning=Diese Warnung jedes mal zeigen, wenn auf das Internet zugegriffen wird.
-WebWarning.Warning=Es wird auf das Internet zugegriffen. Wollen sie das?
+
+Show\ this\ warning\ every\ time\ the\ Internet\ is\ accessed. = Diese Warnung jedes mal zeigen, wenn auf das Internet zugegriffen wird.
+
+You\ are\ about\ to\ access\ the\ Internet.\ Are\ you\ sure\ you\ want\ to\ do\ this? = Es wird auf das Internet zugegriffen. Wollen sie das?

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_fa.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_fa.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_fa.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,4 @@
-WebWarning.Warning= \u0642\u0628\u0644 \u0627\u0632 \u062F\u0627\u0646\u0644\u0648\u062F \u062E\u0648\u0627\u0647\u0634 \u0645\u06CC\u06A9\u0646\u0645 \u0642\u0628\u0648\u0644 \u06A9\u0646\u06CC\u062F \u06A9\u0647 \u0628\u0627 \u0627\u06CC\u0646\u062A\u0631\u0646\u062A \u0648\u0632\u0644 \u0628\u0634\u0648\u06CC\u062F. .
-WebWarning.ShowWarning=\u0647\u0631 \u0648\u0642\u062A \u06A9\u0647 \u0628\u0647 \u0627\u06CC\u0646\u062A\u0631\u0646\u062A \u0648\u0632\u0644 \u0634\u0648\u06CC\u062F \u060C \u0627\u0632 \u0634\u0645\u0627 \u0633\u0627\u0639\u0644 \u06A9\u0646\u06CC\u0645\u061F 
+
+Show\ this\ warning\ every\ time\ the\ Internet\ is\ accessed. = \u0647\u0631 \u0648\u0642\u062A \u06A9\u0647 \u0628\u0647 \u0627\u06CC\u0646\u062A\u0631\u0646\u062A \u0648\u0632\u0644 \u0634\u0648\u06CC\u062F \u060C \u0627\u0632 \u0634\u0645\u0627 \u0633\u0627\u0639\u0644 \u06A9\u0646\u06CC\u0645\u061F 
+
+You\ are\ about\ to\ access\ the\ Internet.\ Are\ you\ sure\ you\ want\ to\ do\ this? = \u0642\u0628\u0644 \u0627\u0632 \u062F\u0627\u0646\u0644\u0648\u062F \u062E\u0648\u0627\u0647\u0634 \u0645\u06CC\u06A9\u0646\u0645 \u0642\u0628\u0648\u0644 \u06A9\u0646\u06CC\u062F \u06A9\u0647 \u0628\u0627 \u0627\u06CC\u0646\u062A\u0631\u0646\u062A \u0648\u0632\u0644 \u0628\u0634\u0648\u06CC\u062F. .

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_in.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_in.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_in.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,4 @@
-WebWarning.ShowWarning=Tampilkan peringatan ini setiap kali akan melalukan koneksi Internet..
-WebWarning.Warning=Anda akan melakukan koneksi melalaui Internet. Apakah anda yakin mau melakukan ini?
+
+Show\ this\ warning\ every\ time\ the\ Internet\ is\ accessed. = Tampilkan peringatan ini setiap kali akan melalukan koneksi Internet..
+
+You\ are\ about\ to\ access\ the\ Internet.\ Are\ you\ sure\ you\ want\ to\ do\ this? = Anda akan melakukan koneksi melalaui Internet. Apakah anda yakin mau melakukan ini?

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_vi.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_vi.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_vi.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,4 @@
-WebWarning.Warning=B\u1EA1n s\u1EAFp nh\u1EADp Internet. B\u1EA1n ch\u1EAFc ch\u1EAFn mu\u1ED1n l\u00E0m vi\u1EC7c n\u00E0y kh\u00F4ng?
-WebWarning.ShowWarning=Hi\u1EC7n c\u1EA3nh b\u00E1o n\u00E0y m\u1ED7i l\u1EA7n BibleDesktop nh\u1EADp Internet.
+
+Show\ this\ warning\ every\ time\ the\ Internet\ is\ accessed. = Hi\u1EC7n c\u1EA3nh b\u00E1o n\u00E0y m\u1ED7i l\u1EA7n BibleDesktop nh\u1EADp Internet.
+
+You\ are\ about\ to\ access\ the\ Internet.\ Are\ you\ sure\ you\ want\ to\ do\ this? = B\u1EA1n s\u1EAFp nh\u1EADp Internet. B\u1EA1n ch\u1EAFc ch\u1EAFn mu\u1ED1n l\u00E0m vi\u1EC7c n\u00E0y kh\u00F4ng?

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_zh.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_zh.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_zh.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,4 @@
-WebWarning.ShowWarning=Show this warning every time the Internet is accessed.
-WebWarning.Warning=\u4F60\u5C07\u8981\u9032\u5165\u7DB2\u8DEF.\u78BA\u5B9A\u6216\u5426?
+
+Show\ this\ warning\ every\ time\ the\ Internet\ is\ accessed. = Show this warning every time the Internet is accessed.
+
+You\ are\ about\ to\ access\ the\ Internet.\ Are\ you\ sure\ you\ want\ to\ do\ this? = \u4F60\u5C07\u8981\u9032\u5165\u7DB2\u8DEF.\u78BA\u5B9A\u6216\u5426?

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_zh_CN.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_zh_CN.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/UserMsg_zh_CN.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,4 @@
-WebWarning.ShowWarning=Show this warning every time the Internet is accessed.
-WebWarning.Warning=\u4F60\u5C06\u4F7F\u7528\u56E0\u7279\u7F51.\u786E\u5B9A\u6216\u5426?
+
+Show\ this\ warning\ every\ time\ the\ Internet\ is\ accessed. = Show this warning every time the Internet is accessed.
+
+You\ are\ about\ to\ access\ the\ Internet.\ Are\ you\ sure\ you\ want\ to\ do\ this? = \u4F60\u5C06\u4F7F\u7528\u56E0\u7279\u7F51.\u786E\u5B9A\u6216\u5426?

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/util/WebWarning.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/util/WebWarning.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/util/WebWarning.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -72,9 +72,9 @@
             Properties props = new Properties();
             props.put(SHOWN_KEY, Boolean.valueOf(shown).toString());
             URI outputURI = CWProject.instance().getWritableURI(getClass().getName(), FileUtil.EXTENSION_PROPERTIES);
-            NetUtil.storeProperties(props, outputURI, "JSword WebWarning"); //$NON-NLS-1$
+            NetUtil.storeProperties(props, outputURI, "JSword WebWarning");
         } catch (IOException ex) {
-            log.error("Failed to save JSword WebWarning", ex); //$NON-NLS-1$
+            log.error("Failed to save JSword WebWarning", ex);
         }
     }
 
@@ -106,19 +106,24 @@
      * @return a warning that the Internet is about to be accessed
      */
     public String getWarning() {
-        return UserMsg.WEB_WARNING.toString();
+        // TRANSLATOR: Warn the user that the program is about to access the Internet.
+        // In some countries, this warning may be too bland. It might be better to warn the user that this might
+        // put them at risk of persecution.
+        return UserMsg.gettext("You are about to access the Internet. Are you sure you want to do this?");
     }
 
     /**
      * @return indicate that the warning will be shown again
      */
     public String getShownWarningLabel() {
-        return UserMsg.WEB_SHOW_WARNING.toString();
+        // TRANSLATOR: This labels a checkbox, which is checked by default.
+        // Unchecking it allows the user to not see the message again but the Internet will be accessed.
+        return UserMsg.gettext("Show this warning every time the Internet is accessed.");
     }
 
     private static WebWarning instance = new WebWarning();
 
-    private static final String SHOWN_KEY = "shown"; //$NON-NLS-1$
+    private static final String SHOWN_KEY = "shown";
     private static final boolean DEFAULT_SHOWN = true;
     private boolean shown;
 

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleInfo.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleInfo.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleInfo.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -423,17 +423,28 @@
         // Check the chapter
         if (chapter < 1 || chapter > chaptersInBook(book)) {
             Object[] params = new Object[] {
-                    new Integer(chaptersInBook(book)), getPreferredBookName(book), new Integer(chapter),
+                    new Integer(1), new Integer(chaptersInBook(book)), getPreferredBookName(book), new Integer(chapter),
             };
-            throw new NoSuchVerseException(UserMsg.BOOKS_CHAPTER, params);
+            // TRANSLATOR: The user supplied a chapter that was out of bounds. This tells them what is allowed.
+            // {0} is the lowest value that is allowed. Currently this is 1, later it will be 0.
+            // {1,number,integer} is the place holder for the highest chapter number in the book. The format is special in that it will present it in the user's preferred format.
+            // {2} is a placeholder for the Bible book name.
+            // {3,number,integer} is a placeholder for the chapter number that the user gave.
+            throw new NoSuchVerseException(UserMsg.gettext("Chapter should be between {0} and {1,number,integer} for {2} (given {3,number,integer}).", params));
         }
 
         // Check the verse
         if (verse < 1 || verse > versesInChapter(book, chapter)) {
             Object[] params = new Object[] {
-                    new Integer(versesInChapter(book, chapter)), getPreferredBookName(book), new Integer(chapter), new Integer(verse),
+                    new Integer(1), new Integer(versesInChapter(book, chapter)), getPreferredBookName(book), new Integer(chapter), new Integer(verse),
             };
-            throw new NoSuchVerseException(UserMsg.BOOKS_VERSE, params);
+            // TRANSLATOR: The user supplied a verse number that was out of bounds. This tells them what is allowed.
+            // {0} is the lowest value that is allowed. Currently this is 1, later it will be 0.
+            // {1,number,integer} is the place holder for the highest verse number in the chapter. The format is special in that it will present it in the user's preferred format.
+            // {2} is a placeholder for the Bible book name.
+            // {3,number,integer} is a placeholder for the chapter number that the user gave.
+            // {4,number,integer} is a placeholder for the verse number that the user gave.
+            throw new NoSuchVerseException(UserMsg.gettext("Verse should be between {0} and {1,number,integer} for {2} {3,number,integer} (given {4,number,integer}).", params));
         }
     }
 
@@ -636,7 +647,7 @@
         bibleNames = new BibleNames(locale);
 
         // If the locale is not the program's default get it for alternates
-        Locale englishLocale = new Locale("en"); //$NON-NLS-1$
+        Locale englishLocale = new Locale("en");
         if (!locale.getLanguage().equals(englishLocale.getLanguage())) {
             englishBibleNames = new BibleNames(englishLocale);
         }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -170,7 +170,7 @@
         ResourceBundle resources = ResourceBundle.getBundle(BibleNames.class.getName(), locale, CWClassLoader.instance(BibleNames.class));
 
         for (int i = 0; i < booksInBible; i++) {
-            String osisName = ""; //$NON-NLS-1$
+            String osisName = "";
             try {
                 osisName = OSISNames.getName(i + 1);
             } catch (NoSuchVerseException e) {
@@ -214,9 +214,9 @@
         return null;
     }
 
-    private static final String FULL_KEY = ".Full"; //$NON-NLS-1$
-    private static final String SHORT_KEY = ".Short"; //$NON-NLS-1$
-    private static final String ALT_KEY = ".Alt"; //$NON-NLS-1$
+    private static final String FULL_KEY = ".Full";
+    private static final String SHORT_KEY = ".Short";
+    private static final String ALT_KEY = ".Alt";
 
     /**
      * Handy book finder

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames_zh.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames_zh.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames_zh.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,5 +1,3 @@
-#Created by JInto - www.guh-software.de
-#Sat Dec 29 09:14:58 CST 2007
 1Chr.Alt=
 1Chr.Full=\u6B77\u4EE3\u5FD7\u4E0A
 1Chr.Short=\u4EE3\u4E0A

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames_zh_CN.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames_zh_CN.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/BibleNames_zh_CN.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,5 +1,3 @@
-#Created by JInto - www.guh-software.de
-#Sat Dec 29 09:14:56 CST 2007
 1Chr.Alt=
 1Chr.Full=\u5386\u4EE3\u5FD7\u4E0A
 1Chr.Short=\u4EE3\u4E0A

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/BookName.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/BookName.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/BookName.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -221,11 +221,11 @@
      * @return the normalized string
      */
     public static String normalize(String str, Locale locale) {
-        return normPattern.matcher(str).replaceAll("").toLowerCase(locale); //$NON-NLS-1$
+        return normPattern.matcher(str).replaceAll("").toLowerCase(locale);
     }
 
     /** remove spaces and some punctuation in Book Name (make sure , is allowed) */
-    private static Pattern normPattern = Pattern.compile("[. ]"); //$NON-NLS-1$
+    private static Pattern normPattern = Pattern.compile("[. ]");
 
     private int bookNumber;
     private String longName;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/Msg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/Msg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/Msg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,11 +31,11 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 public final class Msg extends MsgBase {
-    static final Msg BOOKS_SECTION = new Msg("BibleInfo.Section"); //$NON-NLS-1$
-    static final Msg BOOKS_BOOK = new Msg("BibleInfo.Book"); //$NON-NLS-1$
-    static final Msg BOOKS_BOOKCHAP = new Msg("BibleInfo.BookChap"); //$NON-NLS-1$
-    static final Msg BOOKS_DECODE = new Msg("BibleInfo.Decode"); //$NON-NLS-1$
-    static final Msg REF_PARTS = new Msg("BibleInfo.RefParts"); //$NON-NLS-1$
+    static final Msg BOOKS_SECTION = new Msg("BibleInfo.Section");
+    static final Msg BOOKS_BOOK = new Msg("BibleInfo.Book");
+    static final Msg BOOKS_BOOKCHAP = new Msg("BibleInfo.BookChap");
+    static final Msg BOOKS_DECODE = new Msg("BibleInfo.Decode");
+    static final Msg REF_PARTS = new Msg("BibleInfo.RefParts");
 
     /**
      * Passthrough ctor
@@ -43,4 +43,43 @@
     private Msg(String name) {
         super(name);
     }
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * 
+     * @param key
+     * @return the internationalized text
+     */
+    public static String gettext(String key)
+    {
+        return msg.lookup(key);
+    }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object param)
+    {
+        return msg.toString(key, param);
+    }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object[] params)
+    {
+        return msg.toString(key, params);
+    }
+
+    private static MsgBase msg = new Msg();
+    Msg() {}
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/Msg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/Msg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/Msg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,10 +1,3 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
-
 BibleInfo.Book=Book must be between 1 and 66 (given {0,number,integer}).
 BibleInfo.Section=Section must be between 1 and 8 (given {0,number,integer}).
 BibleInfo.BookChap=Book must be between 1 and 66 (given {0,number,integer}), and Chapter must be valid for this book (given {1,number,integer}).

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/OSISNames.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/OSISNames.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/OSISNames.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -131,7 +131,7 @@
     }
 
     /** The Locale of OSIS Names */
-    private static final Locale OSIS_LOCALE = new Locale("en"); //$NON-NLS-1$
+    private static final Locale OSIS_LOCALE = new Locale("en");
 
     /**
      * A singleton used to do initialization. Could be used to change static
@@ -139,7 +139,7 @@
      */
     static final OSISNames instance = new OSISNames();
 
-    private static final String OSIS_KEY = "OSIS."; //$NON-NLS-1$
+    private static final String OSIS_KEY = "OSIS.";
 
     /** Standard OSIS names for the book of the Bible, in mixed case */
     private static String[] osisBooks;

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -22,10 +22,8 @@
 package org.crosswire.jsword.versification;
 
 import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
 
-import org.crosswire.common.util.CWClassLoader;
+import org.crosswire.common.util.MsgBase;
 import org.crosswire.jsword.book.CaseType;
 import org.crosswire.jsword.passage.NoSuchVerseException;
 
@@ -37,7 +35,7 @@
  * @author Joe Walker [joe at eireneh dot com]
  * @author DM Smith [dmsmith555 at yahoo dot com]
  */
-public final class SectionNames {
+public final class SectionNames extends MsgBase {
     /**
      * Create a SectionNames object
      */
@@ -217,30 +215,26 @@
      * upper and lower versions of them.
      */
     private void initialize() {
-        ResourceBundle resources = ResourceBundle.getBundle(SectionNames.class.getName(), Locale.getDefault(), CWClassLoader.instance(SectionNames.class));
-
         sections = new String[SECTIONS_IN_BIBLE];
-
-        for (int i = 0; i < SECTIONS_IN_BIBLE; i++) {
-            String section = getString(resources, SECTION_KEY + (i + 1));
-            sections[i] = section;
-        }
+        
+        // TRANSLATOR: Pentateuch is the first 5 books of the Bible.
+        sections[0] = UserMsg.gettext("Pentateuch");
+        // TRANSLATOR: History are the books of the Old Testament that give the history of Israel
+        sections[1] = UserMsg.gettext("History");
+        // TRANSLATOR: The Bible poetry books
+        sections[2] = UserMsg.gettext("Poetry");
+        // TRANSLATOR: The Bible's major prophets
+        sections[3] = UserMsg.gettext("Major Prophets");
+        // TRANSLATOR: The Bible's minor prophets
+        sections[4] = UserMsg.gettext("Minor Prophets");
+        // TRANSLATOR: The 4 Gospels and Acts in the New Testament
+        sections[5] = UserMsg.gettext("Gospels And Acts");
+        // TRANSLATOR: The letters of the New Testament
+        sections[6] = UserMsg.gettext("Letters");
+        // TRANSLATOR: The book of Revelation
+        sections[7] = UserMsg.gettext("Revelation");
     }
 
-    /*
-     * Helper to make the code more readable.
-     */
-    private String getString(ResourceBundle resources, String key) {
-        try {
-            return resources.getString(key);
-        } catch (MissingResourceException e) {
-            assert false;
-        }
-        return null;
-    }
-
-    private static final String SECTION_KEY = "Sections."; //$NON-NLS-1$
-
     /**
      * Handy section finder. There is a bit of moderately bad programming here
      * because org.crosswire.biblemapper.sw*ng.GroupVerseColor uses these
@@ -263,5 +257,4 @@
 
     /** Constant for the number of sections in the Bible */
     private static final int SECTIONS_IN_BIBLE = 8;
-
 }

Deleted: trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,8 +0,0 @@
-Sections.1=Pentateuch
-Sections.2=History
-Sections.3=Poetry
-Sections.4=Major Prophets
-Sections.5=Minor Prophets
-Sections.6=Gospels And Acts
-Sections.7=Letters
-Sections.8=Revelation
\ No newline at end of file

Deleted: trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_fa.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_fa.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_fa.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,8 +0,0 @@
-Sections.1=\u062A\u0648\u0631\u0627\u062A
-Sections.2=\u062A\u0627\u0631\u06CC\u0642
-Sections.3=\u0634\u0627\u0639\u0631
-Sections.4=\u0646\u0628\u06CC\u0647\u0627\u06CC \u0628\u0632\u0631\u06AF
-Sections.5=\u0646\u0628\u06CC\u0647\u0627\u06CC \u06A9\u0648\u062C\u06A9
-Sections.6=\u0627\u06CC\u0646\u062C\u06CC\u0644  \u0648 \u0627\u0639\u0645\u0627\u0644 \u0631\u0633\u0648\u0644\u0627\u0646
-Sections.7=\u0646\u0627\u0645\u0647 \u0647\u0627
-Sections.8=\u0645\u06A9\u0627\u0634\u0641\u0647

Deleted: trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_in.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_in.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_in.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,8 +0,0 @@
-Sections.1=5 Kitab Musa
-Sections.2=Sejarah
-Sections.3=Puisi
-Sections.4=Nabi Besar
-Sections.5=Nabi Kecil
-Sections.6=Injil Dan Kis
-Sections.7=Surat
-Sections.8=Wahyu
\ No newline at end of file

Deleted: trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_vi.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_vi.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_vi.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,8 +0,0 @@
-Sections.1=Ng\u0169 Kinh
-Sections.2=L\u1ECBch S\u1EED
-Sections.3=Th\u01A1 Ca
-Sections.4=\u0110\u1EA1i Ti\u00EAn Tri
-Sections.5=Ti\u1EC3u Ti\u00EAn Tri
-Sections.6=S\u00E1ch Ph\u00FAc \u00C2m v\u00E0 C\u00F4ng V\u1EE5
-Sections.7=Th\u01B0 T\u00EDn
-Sections.8=Kh\u1EA3i Huy\u1EC1n
\ No newline at end of file

Deleted: trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_zh.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_zh.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_zh.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,10 +0,0 @@
-#Created by JInto - www.guh-software.de
-#Fri Dec 28 16:03:04 CST 2007
-Sections.1=\u6469\u897F\u4E94\u7D93
-Sections.2=\u6B77\u53F2\u66F8
-Sections.3=\u8A69\u6B4C\u66F8
-Sections.4=\u5927\u5148\u77E5\u66F8
-Sections.5=\u5C0F\u5148\u77E5\u66F8
-Sections.6=\u798F\u97F3\u66F8
-Sections.7=\u4F7F\u5F92\u66F8\u4FE1
-Sections.8=\u555F\u793A\u9304

Deleted: trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_zh_CN.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_zh_CN.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/SectionNames_zh_CN.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,10 +0,0 @@
-#Created by JInto - www.guh-software.de
-#Tue Jan 23 14:51:31 EST 2007
-Sections.1=\u6469\u897F\u4E94\u7ECF
-Sections.2=\u5386\u53F2\u4E66
-Sections.3=\u8BD7\u6B4C\u4E66
-Sections.4=\u5927\u5148\u77E5\u4E66
-Sections.5=\u5C0F\u5148\u77E5\u4E66
-Sections.6=\u798F\u97F3\u4E66
-Sections.7=\u4F7F\u5F92\u4E66\u4FE1
-Sections.8=\u542F\u793A\u5F55

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg.java
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -31,13 +31,43 @@
  * @author Joe Walker [joe at eireneh dot com]
  */
 public final class UserMsg extends MsgBase {
-    static final UserMsg BOOKS_CHAPTER = new UserMsg("BibleInfo.Chapter"); //$NON-NLS-1$
-    static final UserMsg BOOKS_VERSE = new UserMsg("BibleInfo.Verse"); //$NON-NLS-1$
 
     /**
-     * Passthrough ctor
+     * Get the internationalized text, but return key if key is unknown.
+     * 
+     * @param key
+     * @return the internationalized text
      */
-    private UserMsg(String name) {
-        super(name);
+    public static String gettext(String key)
+    {
+        return msg.lookup(key);
     }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object param)
+    {
+        return msg.toString(key, param);
+    }
+
+    /**
+     * Get the internationalized text, but return key if key is unknown.
+     * The text requires one parameter to be passed.
+     * 
+     * @param key
+     * @param param
+     * @return the formatted, internationalized text
+     */
+    public static String gettext(String key, Object[] params)
+    {
+        return msg.toString(key, params);
+    }
+
+    private static MsgBase msg = new UserMsg();
 }

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,9 +1,20 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
 
-BibleInfo.Chapter=Chapter should be between 1 and {0,number,integer} for {1} (given {2,number,integer}).
-BibleInfo.Verse=Verse should be between 1 and {0,number,integer} for {1} {2,number,integer} (given {3,number,integer}).
+Chapter\ should\ be\ between\ {0}\ and\ {1,number,integer}\ for\ {2}\ (given\ {3,number,integer}). = Chapter should be between {0} and {1,number,integer} for {2} (given {3,number,integer}).
+
+Gospels\ And\ Acts = Gospels And Acts
+
+History = History
+
+Letters = Letters
+
+Major\ Prophets = Major Prophets
+
+Minor\ Prophets = Minor Prophets
+
+Pentateuch = Pentateuch
+
+Poetry = Poetry
+
+Revelation = Revelation
+
+Verse\ should\ be\ between\ {0}\ and\ {1,number,integer}\ for\ {2}\ {3,number,integer}\ (given\ {4,number,integer}). = Verse should be between {0} and {1,number,integer} for {2} {3,number,integer} (given {4,number,integer}).

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_fa.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_fa.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_fa.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,2 +1,20 @@
-BibleInfo.Chapter=Chapter should be between 1 and {0,number,integer} for {1} (given {2,number,integer}).
-BibleInfo.Verse=Verse should be between 1 and {0,number,integer} for {1} {2,number,integer} (given {3,number,integer}).
+
+Chapter\ should\ be\ between\ {0}\ and\ {1,number,integer}\ for\ {2}\ (given\ {3,number,integer}). = Chapter should be between {0} and {1,number,integer} for {2} (given {3,number,integer}).
+
+Gospels\ And\ Acts = \u0627\u06CC\u0646\u062C\u06CC\u0644  \u0648 \u0627\u0639\u0645\u0627\u0644 \u0631\u0633\u0648\u0644\u0627\u0646
+
+History = \u062A\u0627\u0631\u06CC\u0642
+
+Letters = \u0646\u0627\u0645\u0647 \u0647\u0627
+
+Major\ Prophets = \u0646\u0628\u06CC\u0647\u0627\u06CC \u0628\u0632\u0631\u06AF
+
+Minor\ Prophets = \u0646\u0628\u06CC\u0647\u0627\u06CC \u06A9\u0648\u062C\u06A9
+
+Pentateuch = \u062A\u0648\u0631\u0627\u062A
+
+Poetry = \u0634\u0627\u0639\u0631
+
+Revelation = \u0645\u06A9\u0627\u0634\u0641\u0647
+
+Verse\ should\ be\ between\ {0}\ and\ {1,number,integer}\ for\ {2}\ {3,number,integer}\ (given\ {4,number,integer}). = Verse should be between {0} and {1,number,integer} for {2} {3,number,integer} (given {4,number,integer}).

Modified: trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_in.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_in.properties	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_in.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -1,9 +1,20 @@
-# The naming convention for the keys in the file is ClassName.MessageName
-# Where ClassName is the name of the class using the property.
-# When the resource is used by more than one class it should be the one
-# that the resource is most closely associated.
-# The MessageName should be mixed case, with a leading capital.
-# It should have no spaces or other punctuation (e.g. _, -, ', ...)
 
-BibleInfo.Chapter=Pasal seharusnya antara  1 dan {0,number,integer} untuk {1} (given {2,number,integer}).
-BibleInfo.Verse=Ayat seharusnya antara 1 dan {0,number,integer} untuk {1} {2,number,integer} (given {3,number,integer}).
+Chapter\ should\ be\ between\ {0}\ and\ {1,number,integer}\ for\ {2}\ (given\ {3,number,integer}). = Pasal seharusnya antara {0} dan {1,number,integer} untuk {2} (given {3,number,integer}).
+
+Gospels\ And\ Acts = Injil Dan Kis
+
+History = Sejarah
+
+Letters = Surat
+
+Major\ Prophets = Nabi Besar
+
+Minor\ Prophets = Nabi Kecil
+
+Pentateuch = 5 Kitab Musa
+
+Poetry = Puisi
+
+Revelation = Wahyu
+
+Verse\ should\ be\ between\ {0}\ and\ {1,number,integer}\ for\ {2}\ {3,number,integer}\ (given\ {4,number,integer}). = Ayat seharusnya antara {0} dan {1,number,integer} untuk {2} {3,number,integer} (given {4,number,integer}).

Added: trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_vi.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_vi.properties	                        (rev 0)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_vi.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -0,0 +1,8 @@
+Gospels\ And\ Acts = S\u00e1ch Ph\u00fac \u00c2m v\u00e0 C\u00f4ng V\u1ee5
+History = L\u1ecbch S\u1eed
+Letters = Th\u01b0 T\u00edn
+Major\ Prophets = \u0110\u1ea1i Ti\u00ean Tri
+Minor\ Prophets = Ti\u1ec3u Ti\u00ean Tri
+Pentateuch = Ng\u0169 Kinh
+Poetry = Th\u01a1 Ca
+Revelation = Kh\u1ea3i Huy\u1ec1n
\ No newline at end of file

Added: trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_zh.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_zh.properties	                        (rev 0)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_zh.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -0,0 +1,8 @@
+Gospels\ And\ Acts = \u798f\u97f3\u66f8
+History = \u6b77\u53f2\u66f8
+Letters = \u4f7f\u5f92\u66f8\u4fe1
+Major\ Prophets = \u5927\u5148\u77e5\u66f8
+Minor\ Prophets = \u5c0f\u5148\u77e5\u66f8
+Pentateuch = \u6469\u897f\u4e94\u7d93
+Poetry = \u8a69\u6b4c\u66f8
+Revelation = \u555f\u793a\u9304

Added: trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_zh_CN.properties
===================================================================
--- trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_zh_CN.properties	                        (rev 0)
+++ trunk/jsword/src/main/java/org/crosswire/jsword/versification/UserMsg_zh_CN.properties	2010-10-23 20:39:04 UTC (rev 1995)
@@ -0,0 +1,8 @@
+Gospels\ And\ Acts = \u798f\u97f3\u4e66
+History = \u5386\u53f2\u4e66
+Letters = \u4f7f\u5f92\u4e66\u4fe1
+Major\ Prophets = \u5927\u5148\u77e5\u4e66
+Minor\ Prophets = \u5c0f\u5148\u77e5\u4e66
+Pentateuch = \u6469\u897f\u4e94\u7ecf
+Poetry = \u8bd7\u6b4c\u4e66
+Revelation = \u542f\u793a\u5f55

Modified: trunk/jsword/src/test/java/Bench.java
===================================================================
--- trunk/jsword/src/test/java/Bench.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/Bench.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -33,28 +33,28 @@
         speed.run();
 
         float time = speed.getBenchmark() / 1000;
-        System.out.println("CBench mark for '" + args[0] + "': " + time + "s"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        System.out.println("CBench mark for '" + args[0] + "': " + time + "s");
     }
 
     /**
      * Print a usage message to stdout
      */
     private static void usage() {
-        System.out.println("Usage: CBench [<version>] [disk]"); //$NON-NLS-1$
-        System.out.println("  where <version> is the name of a version to benchmark."); //$NON-NLS-1$
-        System.out.println("  and 'disk' specifies if the Raw version should not cache data."); //$NON-NLS-1$
-        System.out.println("  Remember to quote the version name if it includes spaces."); //$NON-NLS-1$
+        System.out.println("Usage: CBench [<version>] [disk]");
+        System.out.println("  where <version> is the name of a version to benchmark.");
+        System.out.println("  and 'disk' specifies if the Raw version should not cache data.");
+        System.out.println("  Remember to quote the version name if it includes spaces.");
     }
 
     /**
      * List the available versions
      */
     private static void versions() {
-        System.out.println("  Available versions:"); //$NON-NLS-1$
+        System.out.println("  Available versions:");
         List lbmds = Books.installed().getBooks();
         for (Iterator it = lbmds.iterator(); it.hasNext();) {
             Book book = (Book) it.next();
-            System.out.println("    " + book.getName()); //$NON-NLS-1$
+            System.out.println("    " + book.getName());
         }
     }
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/book/BooksTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/book/BooksTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/book/BooksTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -63,7 +63,7 @@
         for (Iterator it = lbmds.iterator(); it.hasNext();) {
             bibles[i] = (Book) it.next();
             bmds[i] = bibles[i].getBookMetaData();
-            gen11[i] = bibles[i].getKey("Gen 1:1"); //$NON-NLS-1$
+            gen11[i] = bibles[i].getKey("Gen 1:1");
             i++;
         }
     }
@@ -114,7 +114,7 @@
     public void testGetDataKey() throws Exception {
         for (int i = 0; i < bibles.length; i++) {
             Book bible = bibles[i];
-            Key key = bible.getKey("Gen 1:1"); //$NON-NLS-1$
+            Key key = bible.getKey("Gen 1:1");
             BookData data = new BookData(bible, key);
             assertNotNull(data);
         }
@@ -134,14 +134,14 @@
      * something vaguely sensible // I assume that find() just calls
      * findPassage(), where the real tests are for (int i = 0; i <
      * bibles.length; i++) { Book bible = bibles[i]; Key key = bible.find(new
-     * Search("aaron", false)); //$NON-NLS-1$ assertNotNull("bible=" +
-     * bible.getFullName(), key); //$NON-NLS-1$ } }
+     * Search("aaron", false)); assertNotNull("bible=" +
+     * bible.getFullName(), key); } }
      * 
      * FIXME: These are only valid if all bibles are English public void
      * testFindPassage() throws Exception { for (int i = 0; i < bibles.length;
      * i++) { Book ver = bibles[i];
      * 
-     * Key key = ver.find(new Search("aaron", false)); //$NON-NLS-1$
+     * Key key = ver.find(new Search("aaron", false));
      * assertTrue(key != null); } }
      * 
      * FIXME: These are only valid if all bibles are English public void
@@ -151,36 +151,36 @@
      * ignorebibles.length; j++) { // if (ver instanceof fullbibles[j]) if
      * (ignorebibles[j].isAssignableFrom(ver.getClass())) skip = true; } if
      * (skip) continue; log.debug("thorough testing bible: " +
-     * ver.getFullName()); //$NON-NLS-1$
+     * ver.getFullName());
      * 
-     * Key key = ver.find(new Search("aaron", false)); //$NON-NLS-1$ Passage ref
+     * Key key = ver.find(new Search("aaron", false)); Passage ref
      * = KeyUtil.getPassage(key); assertTrue(ref.countVerses() > 10); key =
-     * ver.find(new Search("jerusalem", false)); //$NON-NLS-1$ ref =
+     * ver.find(new Search("jerusalem", false)); ref =
      * KeyUtil.getPassage(key); assertTrue(ref.countVerses() > 10); key =
-     * ver.find(new Search("god", false)); //$NON-NLS-1$ ref =
+     * ver.find(new Search("god", false)); ref =
      * KeyUtil.getPassage(key); assertTrue(ref.countVerses() > 10); key =
-     * ver.find(new Search("GOD", false)); //$NON-NLS-1$ ref =
+     * ver.find(new Search("GOD", false)); ref =
      * KeyUtil.getPassage(key); assertTrue(ref.countVerses() > 10); key =
-     * ver.find(new Search("brother's", false)); //$NON-NLS-1$ ref =
+     * ver.find(new Search("brother's", false)); ref =
      * KeyUtil.getPassage(key); assertTrue(ref.countVerses() > 2); key =
-     * ver.find(new Search("BROTHER'S", false)); //$NON-NLS-1$ ref =
+     * ver.find(new Search("BROTHER'S", false)); ref =
      * KeyUtil.getPassage(key); assertTrue(ref.countVerses() > 2);
      * 
-     * key = ver.find(new Search("maher-shalal-hash-baz", false)); //$NON-NLS-1$
+     * key = ver.find(new Search("maher-shalal-hash-baz", false));
      * ref = KeyUtil.getPassage(key); if (ref.isEmpty()) { key = ver.find(new
-     * Search("mahershalalhashbaz", false)); //$NON-NLS-1$ ref =
+     * Search("mahershalalhashbaz", false)); ref =
      * KeyUtil.getPassage(key); } if (ref.isEmpty()) { key = ver.find(new
-     * Search("maher*", false)); //$NON-NLS-1$ ref = KeyUtil.getPassage(key); }
+     * Search("maher*", false)); ref = KeyUtil.getPassage(key); }
      * assertEquals(ref.countVerses(), 2); assertEquals(ref.getVerseAt(0), new
-     * Verse("Isa 8:1")); //$NON-NLS-1$ assertEquals(ref.getVerseAt(1), new
-     * Verse("Isa 8:3")); //$NON-NLS-1$
+     * Verse("Isa 8:1")); assertEquals(ref.getVerseAt(1), new
+     * Verse("Isa 8:3"));
      * 
-     * key = ver.find(new Search("MAHER-SHALAL-HASH-BAZ", false)); //$NON-NLS-1$
+     * key = ver.find(new Search("MAHER-SHALAL-HASH-BAZ", false));
      * ref = KeyUtil.getPassage(key); if (ref.isEmpty()) { key = ver.find(new
-     * Search("MAHERSHALALHASHBAZ", false)); //$NON-NLS-1$ ref =
+     * Search("MAHERSHALALHASHBAZ", false)); ref =
      * KeyUtil.getPassage(key); } assertEquals(ref.countVerses(), 2);
-     * assertEquals(ref.getVerseAt(0), new Verse("Isa 8:1")); //$NON-NLS-1$
-     * assertEquals(ref.getVerseAt(1), new Verse("Isa 8:3")); //$NON-NLS-1$ } }
+     * assertEquals(ref.getVerseAt(0), new Verse("Isa 8:1"));
+     * assertEquals(ref.getVerseAt(1), new Verse("Isa 8:3")); } }
      */
     /*
      * public void testGetStartsWith() throws Exception { for (int i=0;

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/book/GatherAllReferences.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/book/GatherAllReferences.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/book/GatherAllReferences.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -64,7 +64,7 @@
      * Read all the books that we can get our hands on.
      */
     public static void main(String[] args) throws IOException, JDOMException {
-        out = new PrintWriter(new BufferedWriter(new FileWriter("passages.log"))); //$NON-NLS-1$
+        out = new PrintWriter(new BufferedWriter(new FileWriter("passages.log")));
         // Calling Project.instance() will set up the project's home directory
         // ~/.jsword
         // This will set it as a place to look for overrides for
@@ -72,32 +72,32 @@
         CWProject.instance();
 
         // And the array of allowed osis>html converters
-        ChoiceFactory.getDataMap().put("converters", new String[] {}); //$NON-NLS-1$
+        ChoiceFactory.getDataMap().put("converters", new String[] {});
 
         // The choice of configurable XSL stylesheets
-        ChoiceFactory.getDataMap().put("cswing-styles", new String[] {}); //$NON-NLS-1$
+        ChoiceFactory.getDataMap().put("cswing-styles", new String[] {});
 
         // Load the desktop configuration so we can find the sword drivers
-        Config config = new Config("Desktop Options"); //$NON-NLS-1$
-        Document xmlconfig = XMLUtil.getDocument("config"); //$NON-NLS-1$
+        Config config = new Config("Desktop Options");
+        Document xmlconfig = XMLUtil.getDocument("config");
 
         Locale defaultLocale = Locale.getDefault();
-        ResourceBundle configResources = ResourceBundle.getBundle("config", defaultLocale, CWClassLoader.instance(GatherAllReferences.class)); //$NON-NLS-1$
+        ResourceBundle configResources = ResourceBundle.getBundle("config", defaultLocale, CWClassLoader.instance(GatherAllReferences.class));
 
         config.add(xmlconfig, configResources);
 
-        config.setProperties(ResourceUtil.getProperties("desktop")); //$NON-NLS-1$
+        config.setProperties(ResourceUtil.getProperties("desktop"));
         config.localToApplication();
 
         // Loop through all the Bookks
-        log.warn("*** Reading all known Books"); //$NON-NLS-1$
+        log.warn("*** Reading all known Books");
         List comments = Books.installed().getBooks();
         for (Iterator cit = comments.iterator(); cit.hasNext();) {
             Book book = (Book) cit.next();
 
             BookMetaData bmd = book.getBookMetaData();
             // Skip PlainText as they do not have references marked up
-            if (bmd.getProperty("SourceType") != null) //$NON-NLS-1$
+            if (bmd.getProperty("SourceType") != null)
             {
                 Key set = book.getGlobalKeyList();
 
@@ -135,18 +135,18 @@
             try {
                 orig = book.getRawText(key);
             } catch (BookException ex) {
-                log.warn("Failed to read: " + book.getInitials() + '(' + key.getName() + "):" + ex.getMessage(), ex); //$NON-NLS-1$ //$NON-NLS-2$
+                log.warn("Failed to read: " + book.getInitials() + '(' + key.getName() + "):" + ex.getMessage(), ex);
                 return;
             }
 
             Matcher matcher = null;
-            if (orig.indexOf("passage=\"") != -1) //$NON-NLS-1$
+            if (orig.indexOf("passage=\"") != -1)
             {
                 matcher = thmlPassagePattern.matcher(orig);
-            } else if (orig.indexOf("osisRef=\"") != -1) //$NON-NLS-1$
+            } else if (orig.indexOf("osisRef=\"") != -1)
             {
                 matcher = osisPassagePattern.matcher(orig);
-            } else if (orig.indexOf("<RX>") != -1) //$NON-NLS-1$
+            } else if (orig.indexOf("<RX>") != -1)
             {
                 matcher = gbfPassagePattern.matcher(orig);
             }
@@ -169,13 +169,13 @@
             }
 
         } catch (Throwable ex) {
-            log.error("Unexpected error reading: " + book.getInitials() + '(' + key.getName() + ')', ex); //$NON-NLS-1$
+            log.error("Unexpected error reading: " + book.getInitials() + '(' + key.getName() + ')', ex);
         }
     }
 
-    private static Pattern thmlPassagePattern = Pattern.compile("passage=\"([^\"]*)"); //$NON-NLS-1$
-    private static Pattern gbfPassagePattern = Pattern.compile("<RX>([^<]*)"); //$NON-NLS-1$
-    private static Pattern osisPassagePattern = Pattern.compile("osisRef=\"([^\"]*)"); //$NON-NLS-1$
+    private static Pattern thmlPassagePattern = Pattern.compile("passage=\"([^\"]*)");
+    private static Pattern gbfPassagePattern = Pattern.compile("<RX>([^<]*)");
+    private static Pattern osisPassagePattern = Pattern.compile("osisRef=\"([^\"]*)");
     private static KeyFactory keyf = PassageKeyFactory.instance();
     private static PrintWriter out;
     /**

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/book/OsisTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/book/OsisTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/book/OsisTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -58,15 +58,15 @@
 
     public void testManual() throws Exception {
         Element seg = OSISUtil.factory().createSeg();
-        seg.addContent("In the beginning God created the heaven and the earth."); //$NON-NLS-1$
+        seg.addContent("In the beginning God created the heaven and the earth.");
 
         Element verse = OSISUtil.factory().createVerse();
-        verse.setAttribute(OSISUtil.OSIS_ATTR_OSISID, "Gen.1.1"); //$NON-NLS-1$
+        verse.setAttribute(OSISUtil.OSIS_ATTR_OSISID, "Gen.1.1");
         verse.addContent(seg);
 
         Element div = OSISUtil.factory().createDiv();
-        div.setAttribute("type", "chapter"); //$NON-NLS-1$ //$NON-NLS-2$
-        div.setAttribute("osisID", "Gen.1.1"); //$NON-NLS-1$ //$NON-NLS-2$
+        div.setAttribute("type", "chapter");
+        div.setAttribute("osisID", "Gen.1.1");
         div.addContent(verse);
 
         Element work = OSISUtil.factory().createWork();
@@ -75,7 +75,7 @@
         header.addContent(work);
 
         Element osistext = OSISUtil.factory().createOsisText();
-        osistext.setAttribute(OSISUtil.ATTRIBUTE_OSISTEXT_OSISIDWORK, "Bible.KJV"); //$NON-NLS-1$
+        osistext.setAttribute(OSISUtil.ATTRIBUTE_OSISTEXT_OSISIDWORK, "Bible.KJV");
         osistext.addContent(header);
         osistext.addContent(div);
 

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/book/ReadEverything.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/book/ReadEverything.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/book/ReadEverything.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -52,14 +52,14 @@
         DataPolice.setLevel(Level.FINEST);
 
         // Loop through all the Books
-        log.warn("*** Reading all installed Bibles"); //$NON-NLS-1$
-        BookFilter filter = BookFilters.getCustom("SourceType=TEI"); //$NON-NLS-1$
+        log.warn("*** Reading all installed Bibles");
+        BookFilter filter = BookFilters.getCustom("SourceType=TEI");
         List comments = Books.installed().getBooks(filter);
         for (Iterator cit = comments.iterator(); cit.hasNext();) {
             Book book = (Book) cit.next();
 
             if (!book.isLocked()) {
-                log.warn("****** Reading: " + book.getInitials()); //$NON-NLS-1$
+                log.warn("****** Reading: " + book.getInitials());
                 Key set = book.getGlobalKeyList();
 
                 testReadMultiple(book, set);
@@ -96,7 +96,7 @@
         long end = System.currentTimeMillis();
         float time = (end - start) / 1000F;
 
-        log.info("Tested: book=" + book.getInitials() + " entries=" + entries + " time=" + time + "s (" + (1000 * time / entries) + "ms per entry)"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+        log.info("Tested: book=" + book.getInitials() + " entries=" + entries + " time=" + time + "s (" + (1000 * time / entries) + "ms per entry)");
     }
 
     /**
@@ -108,14 +108,14 @@
 
             BookData data = new BookData(book, key);
             if (data.getOsisFragment() == null) {
-                log.warn("No output from: " + book.getInitials() + ", " + key.getName()); //$NON-NLS-1$ //$NON-NLS-2$
+                log.warn("No output from: " + book.getInitials() + ", " + key.getName());
             }
 
             // This might be a useful extra test, except that a failure gives
             // you no help at all.
             // data.validate();
         } catch (Throwable ex) {
-            log.error("Unexpected error reading: " + book.getInitials() + ", " + key.getName(), ex); //$NON-NLS-1$ //$NON-NLS-2$
+            log.error("Unexpected error reading: " + book.getInitials() + ", " + key.getName(), ex);
         }
     }
 

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/book/SentanceUtilTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/book/SentanceUtilTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/book/SentanceUtilTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -58,190 +58,190 @@
     public void testTokenize() {
         String[] sa;
 
-        sa = SentenceUtil.tokenize("one two three"); //$NON-NLS-1$
+        sa = SentenceUtil.tokenize("one two three");
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "one "); //$NON-NLS-1$
-        assertEquals(sa[1], "two "); //$NON-NLS-1$
-        assertEquals(sa[2], "three"); //$NON-NLS-1$
+        assertEquals(sa[0], "one ");
+        assertEquals(sa[1], "two ");
+        assertEquals(sa[2], "three");
 
-        sa = SentenceUtil.tokenize("!one  two three "); //$NON-NLS-1$
+        sa = SentenceUtil.tokenize("!one  two three ");
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "!one "); //$NON-NLS-1$
-        assertEquals(sa[1], "two "); //$NON-NLS-1$
-        assertEquals(sa[2], "three "); //$NON-NLS-1$
+        assertEquals(sa[0], "!one ");
+        assertEquals(sa[1], "two ");
+        assertEquals(sa[2], "three ");
 
-        sa = SentenceUtil.tokenize("\"one-- two three "); //$NON-NLS-1$
+        sa = SentenceUtil.tokenize("\"one-- two three ");
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "\"one-- "); //$NON-NLS-1$
-        assertEquals(sa[1], "two "); //$NON-NLS-1$
-        assertEquals(sa[2], "three "); //$NON-NLS-1$
+        assertEquals(sa[0], "\"one-- ");
+        assertEquals(sa[1], "two ");
+        assertEquals(sa[2], "three ");
 
-        sa = SentenceUtil.tokenize("-one--two three "); //$NON-NLS-1$
+        sa = SentenceUtil.tokenize("-one--two three ");
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "-one--"); //$NON-NLS-1$
-        assertEquals(sa[1], "two "); //$NON-NLS-1$
-        assertEquals(sa[2], "three "); //$NON-NLS-1$
+        assertEquals(sa[0], "-one--");
+        assertEquals(sa[1], "two ");
+        assertEquals(sa[2], "three ");
 
-        sa = SentenceUtil.tokenize("one-two--three "); //$NON-NLS-1$
+        sa = SentenceUtil.tokenize("one-two--three ");
         assertEquals(sa.length, 2);
-        assertEquals(sa[0], "one-two--"); //$NON-NLS-1$
-        assertEquals(sa[1], "three "); //$NON-NLS-1$
+        assertEquals(sa[0], "one-two--");
+        assertEquals(sa[1], "three ");
 
-        sa = SentenceUtil.tokenize("one! \"*(two-three"); //$NON-NLS-1$
+        sa = SentenceUtil.tokenize("one! \"*(two-three");
         assertEquals(sa.length, 2);
-        assertEquals(sa[0], "one! "); //$NON-NLS-1$
-        assertEquals(sa[1], "\"*(two-three"); //$NON-NLS-1$
+        assertEquals(sa[0], "one! ");
+        assertEquals(sa[1], "\"*(two-three");
 
         // moved from TestRawBible
-        sa = SentenceUtil.tokenize("one two three"); //$NON-NLS-1$
+        sa = SentenceUtil.tokenize("one two three");
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "one "); //$NON-NLS-1$
-        assertEquals(sa[1], "two "); //$NON-NLS-1$
-        assertEquals(sa[2], "three"); //$NON-NLS-1$
+        assertEquals(sa[0], "one ");
+        assertEquals(sa[1], "two ");
+        assertEquals(sa[2], "three");
 
-        sa = SentenceUtil.tokenize("one"); //$NON-NLS-1$
+        sa = SentenceUtil.tokenize("one");
         assertEquals(sa.length, 1);
-        assertEquals(sa[0], "one"); //$NON-NLS-1$
+        assertEquals(sa[0], "one");
 
-        sa = SentenceUtil.tokenize("One, !Two-er THREE-er?"); //$NON-NLS-1$
+        sa = SentenceUtil.tokenize("One, !Two-er THREE-er?");
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "One, "); //$NON-NLS-1$
-        assertEquals(sa[1], "!Two-er "); //$NON-NLS-1$
-        assertEquals(sa[2], "THREE-er?"); //$NON-NLS-1$
+        assertEquals(sa[0], "One, ");
+        assertEquals(sa[1], "!Two-er ");
+        assertEquals(sa[2], "THREE-er?");
 
-        sa = SentenceUtil.tokenize("One, !Two-er THREE--four?"); //$NON-NLS-1$
+        sa = SentenceUtil.tokenize("One, !Two-er THREE--four?");
         assertEquals(sa.length, 4);
-        assertEquals(sa[0], "One, "); //$NON-NLS-1$
-        assertEquals(sa[1], "!Two-er "); //$NON-NLS-1$
-        assertEquals(sa[2], "THREE--"); //$NON-NLS-1$
-        assertEquals(sa[3], "four?"); //$NON-NLS-1$
+        assertEquals(sa[0], "One, ");
+        assertEquals(sa[1], "!Two-er ");
+        assertEquals(sa[2], "THREE--");
+        assertEquals(sa[3], "four?");
     }
 
     public void testGetCase() {
-        assertEquals(CaseType.getCase("FRED"), CaseType.UPPER); //$NON-NLS-1$
-        assertEquals(CaseType.getCase("F-ED"), CaseType.UPPER); //$NON-NLS-1$
-        assertEquals(CaseType.getCase("F00D"), CaseType.UPPER); //$NON-NLS-1$
-        assertEquals(CaseType.getCase("fred"), CaseType.LOWER); //$NON-NLS-1$
-        assertEquals(CaseType.getCase("f-ed"), CaseType.LOWER); //$NON-NLS-1$
-        assertEquals(CaseType.getCase("f00d"), CaseType.LOWER); //$NON-NLS-1$
-        assertEquals(CaseType.getCase("Fred"), CaseType.SENTENCE); //$NON-NLS-1$
-        assertEquals(CaseType.getCase("F-ed"), CaseType.SENTENCE); //$NON-NLS-1$
-        assertEquals(CaseType.getCase("F00d"), CaseType.SENTENCE); //$NON-NLS-1$
-        assertEquals(CaseType.getCase(""), CaseType.LOWER); //$NON-NLS-1$
+        assertEquals(CaseType.getCase("FRED"), CaseType.UPPER);
+        assertEquals(CaseType.getCase("F-ED"), CaseType.UPPER);
+        assertEquals(CaseType.getCase("F00D"), CaseType.UPPER);
+        assertEquals(CaseType.getCase("fred"), CaseType.LOWER);
+        assertEquals(CaseType.getCase("f-ed"), CaseType.LOWER);
+        assertEquals(CaseType.getCase("f00d"), CaseType.LOWER);
+        assertEquals(CaseType.getCase("Fred"), CaseType.SENTENCE);
+        assertEquals(CaseType.getCase("F-ed"), CaseType.SENTENCE);
+        assertEquals(CaseType.getCase("F00d"), CaseType.SENTENCE);
+        assertEquals(CaseType.getCase(""), CaseType.LOWER);
         // The results of this are undefined so
         // assertEquals(PassageUtil.getCase("FreD"), CaseType.SENTENCE);
     }
 
     public void testSetCase() {
-        assertEquals(CaseType.UPPER.setCase("FRED"), "FRED"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.UPPER.setCase("Fred"), "FRED"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.UPPER.setCase("fred"), "FRED"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.UPPER.setCase("frED"), "FRED"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.UPPER.setCase("fr00"), "FR00"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.UPPER.setCase("fr=_"), "FR=_"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.LOWER.setCase("FRED"), "fred"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.LOWER.setCase("Fred"), "fred"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.LOWER.setCase("fred"), "fred"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.LOWER.setCase("frED"), "fred"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.LOWER.setCase("fr00"), "fr00"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.LOWER.setCase("fr=_"), "fr=_"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase("FRED"), "Fred"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase("Fred"), "Fred"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase("fred"), "Fred"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase("frED"), "Fred"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase("fr00"), "Fr00"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase("fr=_"), "Fr=_"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.LOWER.setCase("no-one"), "no-one"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.UPPER.setCase("no-one"), "NO-ONE"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase("no-one"), "No-one"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.LOWER.setCase("xx-one"), "xx-one"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.UPPER.setCase("xx-one"), "XX-ONE"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase("xx-one"), "Xx-One"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase("god-inspired"), "God-inspired"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase("god-breathed"), "God-breathed"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase("maher-shalal-hash-baz"), "Maher-Shalal-Hash-Baz"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.LOWER.setCase(""), ""); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.UPPER.setCase(""), ""); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.SENTENCE.setCase(""), ""); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(CaseType.UPPER.setCase("FRED"), "FRED");
+        assertEquals(CaseType.UPPER.setCase("Fred"), "FRED");
+        assertEquals(CaseType.UPPER.setCase("fred"), "FRED");
+        assertEquals(CaseType.UPPER.setCase("frED"), "FRED");
+        assertEquals(CaseType.UPPER.setCase("fr00"), "FR00");
+        assertEquals(CaseType.UPPER.setCase("fr=_"), "FR=_");
+        assertEquals(CaseType.LOWER.setCase("FRED"), "fred");
+        assertEquals(CaseType.LOWER.setCase("Fred"), "fred");
+        assertEquals(CaseType.LOWER.setCase("fred"), "fred");
+        assertEquals(CaseType.LOWER.setCase("frED"), "fred");
+        assertEquals(CaseType.LOWER.setCase("fr00"), "fr00");
+        assertEquals(CaseType.LOWER.setCase("fr=_"), "fr=_");
+        assertEquals(CaseType.SENTENCE.setCase("FRED"), "Fred");
+        assertEquals(CaseType.SENTENCE.setCase("Fred"), "Fred");
+        assertEquals(CaseType.SENTENCE.setCase("fred"), "Fred");
+        assertEquals(CaseType.SENTENCE.setCase("frED"), "Fred");
+        assertEquals(CaseType.SENTENCE.setCase("fr00"), "Fr00");
+        assertEquals(CaseType.SENTENCE.setCase("fr=_"), "Fr=_");
+        assertEquals(CaseType.LOWER.setCase("no-one"), "no-one");
+        assertEquals(CaseType.UPPER.setCase("no-one"), "NO-ONE");
+        assertEquals(CaseType.SENTENCE.setCase("no-one"), "No-one");
+        assertEquals(CaseType.LOWER.setCase("xx-one"), "xx-one");
+        assertEquals(CaseType.UPPER.setCase("xx-one"), "XX-ONE");
+        assertEquals(CaseType.SENTENCE.setCase("xx-one"), "Xx-One");
+        assertEquals(CaseType.SENTENCE.setCase("god-inspired"), "God-inspired");
+        assertEquals(CaseType.SENTENCE.setCase("god-breathed"), "God-breathed");
+        assertEquals(CaseType.SENTENCE.setCase("maher-shalal-hash-baz"), "Maher-Shalal-Hash-Baz");
+        assertEquals(CaseType.LOWER.setCase(""), "");
+        assertEquals(CaseType.UPPER.setCase(""), "");
+        assertEquals(CaseType.SENTENCE.setCase(""), "");
     }
 
     public void testToSentenceCase() {
-        assertEquals(CaseType.toSentenceCase("one"), "One"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.toSentenceCase("one two"), "One two"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.toSentenceCase("ONE"), "One"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.toSentenceCase("ONE TWO"), "One two"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.toSentenceCase("onE"), "One"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.toSentenceCase("onE twO"), "One two"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.toSentenceCase("12345"), "12345"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.toSentenceCase("1 two"), "1 two"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(CaseType.toSentenceCase("1 TWO"), "1 two"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(CaseType.toSentenceCase("one"), "One");
+        assertEquals(CaseType.toSentenceCase("one two"), "One two");
+        assertEquals(CaseType.toSentenceCase("ONE"), "One");
+        assertEquals(CaseType.toSentenceCase("ONE TWO"), "One two");
+        assertEquals(CaseType.toSentenceCase("onE"), "One");
+        assertEquals(CaseType.toSentenceCase("onE twO"), "One two");
+        assertEquals(CaseType.toSentenceCase("12345"), "12345");
+        assertEquals(CaseType.toSentenceCase("1 two"), "1 two");
+        assertEquals(CaseType.toSentenceCase("1 TWO"), "1 two");
     }
 
     public void testStripPunctuation() {
         String[] sa;
 
         sa = SentenceUtil.stripPunctuation(new String[] {
-            "aaaa"}); //$NON-NLS-1$
+            "aaaa"});
         assertEquals(sa.length, 1);
-        assertEquals(sa[0], "aaaa"); //$NON-NLS-1$
+        assertEquals(sa[0], "aaaa");
         sa = SentenceUtil.stripPunctuation(new String[] {
-                "aaaa", "bbbb"}); //$NON-NLS-1$ //$NON-NLS-2$
+                "aaaa", "bbbb"});
         assertEquals(sa.length, 2);
-        assertEquals(sa[0], "aaaa"); //$NON-NLS-1$
-        assertEquals(sa[1], "bbbb"); //$NON-NLS-1$
+        assertEquals(sa[0], "aaaa");
+        assertEquals(sa[1], "bbbb");
         sa = SentenceUtil.stripPunctuation(new String[] {
-                "One", "Two", "Three"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+                "One", "Two", "Three"});
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "One"); //$NON-NLS-1$
-        assertEquals(sa[1], "Two"); //$NON-NLS-1$
-        assertEquals(sa[2], "Three"); //$NON-NLS-1$
+        assertEquals(sa[0], "One");
+        assertEquals(sa[1], "Two");
+        assertEquals(sa[2], "Three");
         sa = SentenceUtil.stripPunctuation(new String[] {
-                " One ", " Two ", " Three "}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+                " One ", " Two ", " Three "});
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "One"); //$NON-NLS-1$
-        assertEquals(sa[1], "Two"); //$NON-NLS-1$
-        assertEquals(sa[2], "Three"); //$NON-NLS-1$
+        assertEquals(sa[0], "One");
+        assertEquals(sa[1], "Two");
+        assertEquals(sa[2], "Three");
         sa = SentenceUtil.stripPunctuation(new String[] {
-                " 'One's' ", "Two?", "!Three-Four\" "}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 
+                " 'One's' ", "Two?", "!Three-Four\" "}); 
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "One's"); //$NON-NLS-1$
-        assertEquals(sa[1], "Two"); //$NON-NLS-1$
-        assertEquals(sa[2], "Three-Four"); //$NON-NLS-1$
+        assertEquals(sa[0], "One's");
+        assertEquals(sa[1], "Two");
+        assertEquals(sa[2], "Three-Four");
         sa = SentenceUtil.stripPunctuation(new String[] {
-                " 'One's' ", " ,Two? ", " !Three-- ", " Four\" "}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+                " 'One's' ", " ,Two? ", " !Three-- ", " Four\" "});
         assertEquals(sa.length, 4);
-        assertEquals(sa[0], "One's"); //$NON-NLS-1$
-        assertEquals(sa[1], "Two"); //$NON-NLS-1$
-        assertEquals(sa[2], "Three"); //$NON-NLS-1$
-        assertEquals(sa[3], "Four"); //$NON-NLS-1$
+        assertEquals(sa[0], "One's");
+        assertEquals(sa[1], "Two");
+        assertEquals(sa[2], "Three");
+        assertEquals(sa[3], "Four");
     }
 
     public void testStripWordsStringArray() {
         String[] sa;
 
-        sa = SentenceUtil.stripWords(StringUtil.split(" 'One's' ,Two? !Three-Four\" ")); //$NON-NLS-1$
+        sa = SentenceUtil.stripWords(StringUtil.split(" 'One's' ,Two? !Three-Four\" "));
         assertEquals(sa.length, 4);
-        assertEquals(sa[0], "'"); //$NON-NLS-1$
-        assertEquals(sa[1], "',"); //$NON-NLS-1$
-        assertEquals(sa[2], "?!"); //$NON-NLS-1$
-        assertEquals(sa[3], "\""); //$NON-NLS-1$
+        assertEquals(sa[0], "'");
+        assertEquals(sa[1], "',");
+        assertEquals(sa[2], "?!");
+        assertEquals(sa[3], "\"");
 
-        sa = SentenceUtil.stripWords(StringUtil.split(" 'One's' ,Two? !Three-- Four\" ")); //$NON-NLS-1$
+        sa = SentenceUtil.stripWords(StringUtil.split(" 'One's' ,Two? !Three-- Four\" "));
         assertEquals(sa.length, 5);
-        assertEquals(sa[0], "'"); //$NON-NLS-1$
-        assertEquals(sa[1], "',"); //$NON-NLS-1$
-        assertEquals(sa[2], "?!"); //$NON-NLS-1$
-        assertEquals(sa[3], "--"); //$NON-NLS-1$
-        assertEquals(sa[4], "\""); //$NON-NLS-1$
+        assertEquals(sa[0], "'");
+        assertEquals(sa[1], "',");
+        assertEquals(sa[2], "?!");
+        assertEquals(sa[3], "--");
+        assertEquals(sa[4], "\"");
 
         sa = SentenceUtil.stripWords(new String[] {
-                "'One's'", " ,Two? ", "!Three--", "Four\""}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+                "'One's'", " ,Two? ", "!Three--", "Four\""});
         assertEquals(sa.length, 5);
-        assertEquals(sa[0], "'"); //$NON-NLS-1$
-        assertEquals(sa[1], "' ,"); //$NON-NLS-1$
-        assertEquals(sa[2], "? !"); //$NON-NLS-1$
-        assertEquals(sa[3], "--"); //$NON-NLS-1$
-        assertEquals(sa[4], "\""); //$NON-NLS-1$
+        assertEquals(sa[0], "'");
+        assertEquals(sa[1], "' ,");
+        assertEquals(sa[2], "? !");
+        assertEquals(sa[3], "--");
+        assertEquals(sa[4], "\"");
     }
 
     public void testUpdatePassageTally() {
@@ -263,100 +263,100 @@
     public void testGetWords() {
         String[] sa;
 
-        sa = SentenceUtil.getWords("One Two three"); //$NON-NLS-1$
+        sa = SentenceUtil.getWords("One Two three");
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "one"); //$NON-NLS-1$
-        assertEquals(sa[1], "two"); //$NON-NLS-1$
-        assertEquals(sa[2], "three"); //$NON-NLS-1$
+        assertEquals(sa[0], "one");
+        assertEquals(sa[1], "two");
+        assertEquals(sa[2], "three");
 
-        sa = SentenceUtil.getWords("!one  two three "); //$NON-NLS-1$
+        sa = SentenceUtil.getWords("!one  two three ");
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "one"); //$NON-NLS-1$
-        assertEquals(sa[1], "two"); //$NON-NLS-1$
-        assertEquals(sa[2], "three"); //$NON-NLS-1$
+        assertEquals(sa[0], "one");
+        assertEquals(sa[1], "two");
+        assertEquals(sa[2], "three");
 
-        sa = SentenceUtil.getWords("\"one-- two three "); //$NON-NLS-1$
+        sa = SentenceUtil.getWords("\"one-- two three ");
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "one"); //$NON-NLS-1$
-        assertEquals(sa[1], "two"); //$NON-NLS-1$
-        assertEquals(sa[2], "three"); //$NON-NLS-1$
+        assertEquals(sa[0], "one");
+        assertEquals(sa[1], "two");
+        assertEquals(sa[2], "three");
 
-        sa = SentenceUtil.getWords("-one--two three "); //$NON-NLS-1$
+        sa = SentenceUtil.getWords("-one--two three ");
         assertEquals(sa.length, 3);
-        assertEquals(sa[0], "one"); //$NON-NLS-1$
-        assertEquals(sa[1], "two"); //$NON-NLS-1$
-        assertEquals(sa[2], "three"); //$NON-NLS-1$
+        assertEquals(sa[0], "one");
+        assertEquals(sa[1], "two");
+        assertEquals(sa[2], "three");
 
-        sa = SentenceUtil.getWords("one-two--three "); //$NON-NLS-1$
+        sa = SentenceUtil.getWords("one-two--three ");
         assertEquals(sa.length, 2);
-        assertEquals(sa[0], "one-two"); //$NON-NLS-1$
-        assertEquals(sa[1], "three"); //$NON-NLS-1$
+        assertEquals(sa[0], "one-two");
+        assertEquals(sa[1], "three");
 
-        sa = SentenceUtil.getWords("one! \"(two-three"); //$NON-NLS-1$
+        sa = SentenceUtil.getWords("one! \"(two-three");
         assertEquals(sa.length, 2);
-        assertEquals(sa[0], "one"); //$NON-NLS-1$
-        assertEquals(sa[1], "two-three"); //$NON-NLS-1$
+        assertEquals(sa[0], "one");
+        assertEquals(sa[1], "two-three");
     }
 
     public void testStripPunctuationWord() {
-        assertEquals(SentenceUtil.stripPunctuationWord("abcde"), "abcde"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("a---e"), "a---e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("a'''e"), "a'''e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("a'e-e"), "a'e-e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("12345"), "12345"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'abcde"), "abcde"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'a---e"), "a---e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'a'''e"), "a'''e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'a'e-e"), "a'e-e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'12345"), "12345"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'abcde'"), "abcde"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'a---e'"), "a---e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'a'''e'"), "a'''e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'a'e-e'"), "a'e-e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'12345'"), "12345"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'-abcde--"), "abcde"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'-a---e--"), "a---e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'-a'''e--"), "a'''e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'-a'e-e--"), "a'e-e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'-12345--"), "12345"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("$'-abcde-'*"), "abcde"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("$'-a---e-'*"), "a---e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("$'-a'''e-'*"), "a'''e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("$'-a'e-e-'*"), "a'e-e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("$'-12345-'*"), "12345"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("`'-abcde-'["), "abcde"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("`'-a---e-'["), "a---e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("`'-a'''e-'["), "a'''e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("`'-a'e-e-'["), "a'e-e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("`'-12345-'["), "12345"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("#'-abcde-'}"), "abcde"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("#'-a---e-'}"), "a---e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("#'-a'''e-'}"), "a'''e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("#'-a'e-e-'}"), "a'e-e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("#'-12345-'}"), "12345"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("%'-abcde-'/"), "abcde"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("%'-a---e-'/"), "a---e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("%'-a'''e-'/"), "a'''e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("%'-a'e-e-'/"), "a'e-e"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("%'-12345-'/"), "12345"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(SentenceUtil.stripPunctuationWord("abcde"), "abcde");
+        assertEquals(SentenceUtil.stripPunctuationWord("a---e"), "a---e");
+        assertEquals(SentenceUtil.stripPunctuationWord("a'''e"), "a'''e");
+        assertEquals(SentenceUtil.stripPunctuationWord("a'e-e"), "a'e-e");
+        assertEquals(SentenceUtil.stripPunctuationWord("12345"), "12345");
+        assertEquals(SentenceUtil.stripPunctuationWord("'abcde"), "abcde");
+        assertEquals(SentenceUtil.stripPunctuationWord("'a---e"), "a---e");
+        assertEquals(SentenceUtil.stripPunctuationWord("'a'''e"), "a'''e");
+        assertEquals(SentenceUtil.stripPunctuationWord("'a'e-e"), "a'e-e");
+        assertEquals(SentenceUtil.stripPunctuationWord("'12345"), "12345");
+        assertEquals(SentenceUtil.stripPunctuationWord("'abcde'"), "abcde");
+        assertEquals(SentenceUtil.stripPunctuationWord("'a---e'"), "a---e");
+        assertEquals(SentenceUtil.stripPunctuationWord("'a'''e'"), "a'''e");
+        assertEquals(SentenceUtil.stripPunctuationWord("'a'e-e'"), "a'e-e");
+        assertEquals(SentenceUtil.stripPunctuationWord("'12345'"), "12345");
+        assertEquals(SentenceUtil.stripPunctuationWord("'-abcde--"), "abcde");
+        assertEquals(SentenceUtil.stripPunctuationWord("'-a---e--"), "a---e");
+        assertEquals(SentenceUtil.stripPunctuationWord("'-a'''e--"), "a'''e");
+        assertEquals(SentenceUtil.stripPunctuationWord("'-a'e-e--"), "a'e-e");
+        assertEquals(SentenceUtil.stripPunctuationWord("'-12345--"), "12345");
+        assertEquals(SentenceUtil.stripPunctuationWord("$'-abcde-'*"), "abcde");
+        assertEquals(SentenceUtil.stripPunctuationWord("$'-a---e-'*"), "a---e");
+        assertEquals(SentenceUtil.stripPunctuationWord("$'-a'''e-'*"), "a'''e");
+        assertEquals(SentenceUtil.stripPunctuationWord("$'-a'e-e-'*"), "a'e-e");
+        assertEquals(SentenceUtil.stripPunctuationWord("$'-12345-'*"), "12345");
+        assertEquals(SentenceUtil.stripPunctuationWord("`'-abcde-'["), "abcde");
+        assertEquals(SentenceUtil.stripPunctuationWord("`'-a---e-'["), "a---e");
+        assertEquals(SentenceUtil.stripPunctuationWord("`'-a'''e-'["), "a'''e");
+        assertEquals(SentenceUtil.stripPunctuationWord("`'-a'e-e-'["), "a'e-e");
+        assertEquals(SentenceUtil.stripPunctuationWord("`'-12345-'["), "12345");
+        assertEquals(SentenceUtil.stripPunctuationWord("#'-abcde-'}"), "abcde");
+        assertEquals(SentenceUtil.stripPunctuationWord("#'-a---e-'}"), "a---e");
+        assertEquals(SentenceUtil.stripPunctuationWord("#'-a'''e-'}"), "a'''e");
+        assertEquals(SentenceUtil.stripPunctuationWord("#'-a'e-e-'}"), "a'e-e");
+        assertEquals(SentenceUtil.stripPunctuationWord("#'-12345-'}"), "12345");
+        assertEquals(SentenceUtil.stripPunctuationWord("%'-abcde-'/"), "abcde");
+        assertEquals(SentenceUtil.stripPunctuationWord("%'-a---e-'/"), "a---e");
+        assertEquals(SentenceUtil.stripPunctuationWord("%'-a'''e-'/"), "a'''e");
+        assertEquals(SentenceUtil.stripPunctuationWord("%'-a'e-e-'/"), "a'e-e");
+        assertEquals(SentenceUtil.stripPunctuationWord("%'-12345-'/"), "12345");
 
-        assertEquals(SentenceUtil.stripPunctuationWord("test"), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord(" test"), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("test-- "), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("test! "), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("test\" "), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("test... "), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("test's"), "test's"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("test's "), "test's"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("test's!"), "test's"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("test's?"), "test's"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("test!?;;'#\""), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("!\"%$test"), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("   test "), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("--test "), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("'test "), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord("/?test "), "test"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(SentenceUtil.stripPunctuationWord(" $%^\" test %^&"), "test"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(SentenceUtil.stripPunctuationWord("test"), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord(" test"), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord("test-- "), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord("test! "), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord("test\" "), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord("test... "), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord("test's"), "test's");
+        assertEquals(SentenceUtil.stripPunctuationWord("test's "), "test's");
+        assertEquals(SentenceUtil.stripPunctuationWord("test's!"), "test's");
+        assertEquals(SentenceUtil.stripPunctuationWord("test's?"), "test's");
+        assertEquals(SentenceUtil.stripPunctuationWord("test!?;;'#\""), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord("!\"%$test"), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord("   test "), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord("--test "), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord("'test "), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord("/?test "), "test");
+        assertEquals(SentenceUtil.stripPunctuationWord(" $%^\" test %^&"), "test");
     }
 
     public void testStripWordsStringString() {
@@ -364,51 +364,51 @@
     }
 
     public void testFirstLetter() {
-        assertEquals(SentenceUtil.firstLetter("abcde"), 0); //$NON-NLS-1$
-        assertEquals(SentenceUtil.firstLetter(" abcde"), 1); //$NON-NLS-1$
-        assertEquals(SentenceUtil.firstLetter(" \"%abcde"), 3); //$NON-NLS-1$
-        assertEquals(SentenceUtil.firstLetter(" \"%abcde--!   "), 3); //$NON-NLS-1$
+        assertEquals(SentenceUtil.firstLetter("abcde"), 0);
+        assertEquals(SentenceUtil.firstLetter(" abcde"), 1);
+        assertEquals(SentenceUtil.firstLetter(" \"%abcde"), 3);
+        assertEquals(SentenceUtil.firstLetter(" \"%abcde--!   "), 3);
     }
 
     public void testLastLetter() {
-        assertEquals(SentenceUtil.lastLetter("abcde"), 4); //$NON-NLS-1$
-        assertEquals(SentenceUtil.lastLetter("abcde "), 4); //$NON-NLS-1$
-        assertEquals(SentenceUtil.lastLetter("abcde\" "), 4); //$NON-NLS-1$
-        assertEquals(SentenceUtil.lastLetter("abcde\"%$ "), 4); //$NON-NLS-1$
-        assertEquals(SentenceUtil.lastLetter(" abcde"), 5); //$NON-NLS-1$
-        assertEquals(SentenceUtil.lastLetter(" abcde "), 5); //$NON-NLS-1$
-        assertEquals(SentenceUtil.lastLetter(" abcde\" "), 5); //$NON-NLS-1$
-        assertEquals(SentenceUtil.lastLetter(" abcde\"%$ "), 5); //$NON-NLS-1$
-        assertEquals(SentenceUtil.lastLetter(" abcde--\"%$ "), 5); //$NON-NLS-1$
-        assertEquals(SentenceUtil.lastLetter(" abcde\"%$-- "), 5); //$NON-NLS-1$
+        assertEquals(SentenceUtil.lastLetter("abcde"), 4);
+        assertEquals(SentenceUtil.lastLetter("abcde "), 4);
+        assertEquals(SentenceUtil.lastLetter("abcde\" "), 4);
+        assertEquals(SentenceUtil.lastLetter("abcde\"%$ "), 4);
+        assertEquals(SentenceUtil.lastLetter(" abcde"), 5);
+        assertEquals(SentenceUtil.lastLetter(" abcde "), 5);
+        assertEquals(SentenceUtil.lastLetter(" abcde\" "), 5);
+        assertEquals(SentenceUtil.lastLetter(" abcde\"%$ "), 5);
+        assertEquals(SentenceUtil.lastLetter(" abcde--\"%$ "), 5);
+        assertEquals(SentenceUtil.lastLetter(" abcde\"%$-- "), 5);
     }
 
     public void testStripWords() {
-        assertEquals(SentenceUtil.stripWords("one", "two"), ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one,", "two"), ","); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one'", "two"), "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one-", "two"), "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one#", "two"), "#"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one", ",two"), ","); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one", "'two"), "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one", "-two"), "-"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one", "#two"), "#"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one-", "-two"), "--"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("-one-", "-two-"), "--"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one-world", "two"), ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one-world'", "two"), "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one ", "two"), " "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one, ", "two"), ", "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one' ", "two"), "' "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one- ", "two"), "- "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one# ", "two"), "# "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one", " ,two"), " ,"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one", " 'two"), " '"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one", " -two"), " -"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one", "#two"), "#"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one- ", "-two"), "- -"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("-one- ", "-two-"), "- -"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one-world ", "two"), " "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        assertEquals(SentenceUtil.stripWords("one-world'", " two"), "' "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        assertEquals(SentenceUtil.stripWords("one", "two"), "");
+        assertEquals(SentenceUtil.stripWords("one,", "two"), ",");
+        assertEquals(SentenceUtil.stripWords("one'", "two"), "'");
+        assertEquals(SentenceUtil.stripWords("one-", "two"), "-");
+        assertEquals(SentenceUtil.stripWords("one#", "two"), "#");
+        assertEquals(SentenceUtil.stripWords("one", ",two"), ",");
+        assertEquals(SentenceUtil.stripWords("one", "'two"), "'");
+        assertEquals(SentenceUtil.stripWords("one", "-two"), "-");
+        assertEquals(SentenceUtil.stripWords("one", "#two"), "#");
+        assertEquals(SentenceUtil.stripWords("one-", "-two"), "--");
+        assertEquals(SentenceUtil.stripWords("-one-", "-two-"), "--");
+        assertEquals(SentenceUtil.stripWords("one-world", "two"), "");
+        assertEquals(SentenceUtil.stripWords("one-world'", "two"), "'");
+        assertEquals(SentenceUtil.stripWords("one ", "two"), " ");
+        assertEquals(SentenceUtil.stripWords("one, ", "two"), ", ");
+        assertEquals(SentenceUtil.stripWords("one' ", "two"), "' ");
+        assertEquals(SentenceUtil.stripWords("one- ", "two"), "- ");
+        assertEquals(SentenceUtil.stripWords("one# ", "two"), "# ");
+        assertEquals(SentenceUtil.stripWords("one", " ,two"), " ,");
+        assertEquals(SentenceUtil.stripWords("one", " 'two"), " '");
+        assertEquals(SentenceUtil.stripWords("one", " -two"), " -");
+        assertEquals(SentenceUtil.stripWords("one", "#two"), "#");
+        assertEquals(SentenceUtil.stripWords("one- ", "-two"), "- -");
+        assertEquals(SentenceUtil.stripWords("-one- ", "-two-"), "- -");
+        assertEquals(SentenceUtil.stripWords("one-world ", "two"), " ");
+        assertEquals(SentenceUtil.stripWords("one-world'", " two"), "' ");
     }
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/ConfigEntryTableTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/ConfigEntryTableTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/ConfigEntryTableTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -38,30 +38,30 @@
 public class ConfigEntryTableTest extends TestCase {
 
     public void testCreateConfigEntryTableInstance() {
-        ConfigEntryTable table = new ConfigEntryTable("TestBook"); //$NON-NLS-1$
+        ConfigEntryTable table = new ConfigEntryTable("TestBook");
         assertNotNull(table);
     }
 
     public void testAddConfigEntry() {
-        ConfigEntryTable table = new ConfigEntryTable("TestBook"); //$NON-NLS-1$
+        ConfigEntryTable table = new ConfigEntryTable("TestBook");
         assertNotNull(table);
 
-        table.add(ConfigEntryType.LANG, "de"); //$NON-NLS-1$
-        assertEquals("de", ((Language) table.getValue(ConfigEntryType.LANG)).getCode()); //$NON-NLS-1$
+        table.add(ConfigEntryType.LANG, "de");
+        assertEquals("de", ((Language) table.getValue(ConfigEntryType.LANG)).getCode());
     }
 
     public void testSaveConfigEntryTable() {
-        ConfigEntryTable table = new ConfigEntryTable("TestBook"); //$NON-NLS-1$
+        ConfigEntryTable table = new ConfigEntryTable("TestBook");
         assertNotNull(table);
 
-        table.add(ConfigEntryType.LANG, "de"); //$NON-NLS-1$
+        table.add(ConfigEntryType.LANG, "de");
         Language lang = (Language) table.getValue(ConfigEntryType.LANG);
         assertNotNull(lang);
-        assertEquals(lang.getCode(), "de"); //$NON-NLS-1$
-        table.add(ConfigEntryType.INITIALS, "TestBook"); //$NON-NLS-1$
-        assertEquals(table.getValue(ConfigEntryType.INITIALS), "TestBook"); //$NON-NLS-1$
+        assertEquals(lang.getCode(), "de");
+        table.add(ConfigEntryType.INITIALS, "TestBook");
+        assertEquals(table.getValue(ConfigEntryType.INITIALS), "TestBook");
 
-        File configFile = new File("testconfig.conf"); //$NON-NLS-1$
+        File configFile = new File("testconfig.conf");
         try {
             table.save(configFile);
         } catch (IOException e) {

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/RawFileBackendTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/RawFileBackendTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/RawFileBackendTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -39,24 +39,24 @@
  */
 public class RawFileBackendTest extends TestCase {
 
-    final String modName = "TestComment"; //$NON-NLS-1$
-    File configFile = new File("testconfig.conf"); //$NON-NLS-1$
+    final String modName = "TestComment";
+    File configFile = new File("testconfig.conf");
     RawFileBackend backend = null;
 
     protected void setUp() throws Exception {
         ConfigEntryTable table = new ConfigEntryTable(modName);
-        table.add(ConfigEntryType.LANG, "de"); //$NON-NLS-1$
+        table.add(ConfigEntryType.LANG, "de");
         table.add(ConfigEntryType.INITIALS, modName);
-        table.add(ConfigEntryType.DESCRIPTION, "MyNewBook"); //$NON-NLS-1$
-        table.add(ConfigEntryType.MOD_DRV, "RawFiles"); //$NON-NLS-1$
-        table.add(ConfigEntryType.DATA_PATH, "test"); //$NON-NLS-1$
+        table.add(ConfigEntryType.DESCRIPTION, "MyNewBook");
+        table.add(ConfigEntryType.MOD_DRV, "RawFiles");
+        table.add(ConfigEntryType.DATA_PATH, "test");
         try {
             table.save(configFile);
         } catch (IOException e) {
             System.out.println(e.getMessage());
         }
 
-        SwordBookMetaData swordBookMetaData = new SwordBookMetaData(configFile, modName, new URI("file:///tmp")); //$NON-NLS-1$
+        SwordBookMetaData swordBookMetaData = new SwordBookMetaData(configFile, modName, new URI("file:///tmp"));
         backend = new RawFileBackend(swordBookMetaData, 2);
     }
 
@@ -78,36 +78,36 @@
         Verse ntVerse3 = new Verse(66, 22, 21);
         Verse ntVerse4 = new Verse(64, 1, 2);
 
-        backend.setRawText(otVerse, "Hello OT"); //$NON-NLS-1$
-        backend.setRawText(otVerse2, "Hello OT2"); //$NON-NLS-1$
-        backend.setRawText(otVerse3, "Hello OT3"); //$NON-NLS-1$
-        backend.setRawText(otVerse4, "Hello OT4"); //$NON-NLS-1$
-        backend.setRawText(ntVerse, "Hello NT"); //$NON-NLS-1$
-        backend.setRawText(ntVerse2, "Hello NT2"); //$NON-NLS-1$
-        backend.setRawText(ntVerse3, "Hello NT3"); //$NON-NLS-1$
-        backend.setRawText(ntVerse4, "Hello NT4"); //$NON-NLS-1$
+        backend.setRawText(otVerse, "Hello OT");
+        backend.setRawText(otVerse2, "Hello OT2");
+        backend.setRawText(otVerse3, "Hello OT3");
+        backend.setRawText(otVerse4, "Hello OT4");
+        backend.setRawText(ntVerse, "Hello NT");
+        backend.setRawText(ntVerse2, "Hello NT2");
+        backend.setRawText(ntVerse3, "Hello NT3");
+        backend.setRawText(ntVerse4, "Hello NT4");
 
-        assertEquals(backend.getRawText(otVerse), "Hello OT"); //$NON-NLS-1$
-        assertEquals(backend.getRawText(otVerse2), "Hello OT2"); //$NON-NLS-1$
-        assertEquals(backend.getRawText(otVerse3), "Hello OT3"); //$NON-NLS-1$
-        assertEquals(backend.getRawText(otVerse4), "Hello OT4"); //$NON-NLS-1$
-        assertEquals(backend.getRawText(ntVerse), "Hello NT"); //$NON-NLS-1$
-        assertEquals(backend.getRawText(ntVerse2), "Hello NT2"); //$NON-NLS-1$
-        assertEquals(backend.getRawText(ntVerse3), "Hello NT3"); //$NON-NLS-1$
-        assertEquals(backend.getRawText(ntVerse4), "Hello NT4"); //$NON-NLS-1$
+        assertEquals(backend.getRawText(otVerse), "Hello OT");
+        assertEquals(backend.getRawText(otVerse2), "Hello OT2");
+        assertEquals(backend.getRawText(otVerse3), "Hello OT3");
+        assertEquals(backend.getRawText(otVerse4), "Hello OT4");
+        assertEquals(backend.getRawText(ntVerse), "Hello NT");
+        assertEquals(backend.getRawText(ntVerse2), "Hello NT2");
+        assertEquals(backend.getRawText(ntVerse3), "Hello NT3");
+        assertEquals(backend.getRawText(ntVerse4), "Hello NT4");
     }
 
     public void testSetAliasKey() throws NoSuchVerseException, IOException, BookException {
-        Verse source = VerseFactory.fromString("Gen 1:1"); //$NON-NLS-1$
-        Verse alias1 = VerseFactory.fromString("Gen 1:2"); //$NON-NLS-1$
-        Verse alias2 = VerseFactory.fromString("Gen 1:3"); //$NON-NLS-1$
+        Verse source = VerseFactory.fromString("Gen 1:1");
+        Verse alias1 = VerseFactory.fromString("Gen 1:2");
+        Verse alias2 = VerseFactory.fromString("Gen 1:3");
 
-        backend.setRawText(source, "Hello Alias test!"); //$NON-NLS-1$
+        backend.setRawText(source, "Hello Alias test!");
         backend.setAliasKey(alias1, source);
         backend.setAliasKey(alias2, source);
 
-        assertEquals(backend.getRawText(source), "Hello Alias test!"); //$NON-NLS-1$
-        assertEquals(backend.getRawText(alias1), "Hello Alias test!"); //$NON-NLS-1$
-        assertEquals(backend.getRawText(alias2), "Hello Alias test!"); //$NON-NLS-1$
+        assertEquals(backend.getRawText(source), "Hello Alias test!");
+        assertEquals(backend.getRawText(alias1), "Hello Alias test!");
+        assertEquals(backend.getRawText(alias2), "Hello Alias test!");
     }
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/SwordBookMetaDataTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/SwordBookMetaDataTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/book/sword/SwordBookMetaDataTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -36,22 +36,22 @@
  */
 public class SwordBookMetaDataTest extends TestCase {
 
-    File configFile = new File("testconfig.conf"); //$NON-NLS-1$
+    File configFile = new File("testconfig.conf");
     SwordBookMetaData swordBookMetaData = null;
 
     protected void setUp() throws Exception {
-        ConfigEntryTable table = new ConfigEntryTable("TestBook"); //$NON-NLS-1$
-        table.add(ConfigEntryType.LANG, "de"); //$NON-NLS-1$
-        table.add(ConfigEntryType.INITIALS, "TestBook"); //$NON-NLS-1$
-        table.add(ConfigEntryType.DESCRIPTION, "MyNewBook"); //$NON-NLS-1$
-        table.add(ConfigEntryType.MOD_DRV, "RawFiles"); //$NON-NLS-1$
+        ConfigEntryTable table = new ConfigEntryTable("TestBook");
+        table.add(ConfigEntryType.LANG, "de");
+        table.add(ConfigEntryType.INITIALS, "TestBook");
+        table.add(ConfigEntryType.DESCRIPTION, "MyNewBook");
+        table.add(ConfigEntryType.MOD_DRV, "RawFiles");
         try {
             table.save(configFile);
         } catch (IOException e) {
             System.out.println(e.getMessage());
         }
 
-        swordBookMetaData = new SwordBookMetaData(configFile, "TestBook", new URI("")); //$NON-NLS-1$ //$NON-NLS-2$
+        swordBookMetaData = new SwordBookMetaData(configFile, "TestBook", new URI(""));
     }
 
     protected void tearDown() throws Exception {
@@ -60,9 +60,9 @@
 
     public void testPropertiesAccessors() {
         assertNotNull(swordBookMetaData);
-        assertEquals(swordBookMetaData.getName(), "MyNewBook"); //$NON-NLS-1$
-        assertEquals(swordBookMetaData.getInitials(), "TestBook"); //$NON-NLS-1$
+        assertEquals(swordBookMetaData.getName(), "MyNewBook");
+        assertEquals(swordBookMetaData.getInitials(), "TestBook");
         assertNotNull(swordBookMetaData.getLanguage());
-        assertEquals(swordBookMetaData.getLanguage().getCode(), "de"); //$NON-NLS-1$
+        assertEquals(swordBookMetaData.getLanguage().getCode(), "de");
     }
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/book/test/Speed.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/book/test/Speed.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/book/test/Speed.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -77,19 +77,19 @@
             PassageTally tally;
 
             // Part 1, a best match, and doc generate
-            tally = (PassageTally) book.find("\"In the beginning god created the heavens and the earth\""); //$NON-NLS-1$
+            tally = (PassageTally) book.find("\"In the beginning god created the heavens and the earth\"");
             tally.trimVerses(35);
             dummyDisplay(tally);
             tally = null;
 
             // Part 2, another best match, and doc generate
-            tally = (PassageTally) book.find("\"for god so loves the world that he gave his only begotten son\""); //$NON-NLS-1$
+            tally = (PassageTally) book.find("\"for god so loves the world that he gave his only begotten son\"");
             tally.trimVerses(35);
             dummyDisplay(tally);
             tally = null;
 
             // Part 3, a power match, and doc generate
-            String nextInput = book.find("aaron & manna").getName(); //$NON-NLS-1$
+            String nextInput = book.find("aaron & manna").getName();
             Key key = book.getKey(nextInput);
             Passage ref = KeyUtil.getPassage(key);
             ref.trimVerses(35);
@@ -120,7 +120,7 @@
      */
     public long getBenchmark() {
         if (start_time == 0 || end_time == 0) {
-            throw new IllegalStateException("The benchmark has not finished yet."); //$NON-NLS-1$
+            throw new IllegalStateException("The benchmark has not finished yet.");
         }
 
         return end_time - start_time;

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/bridge/DwrBridgeTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/bridge/DwrBridgeTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/bridge/DwrBridgeTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -44,21 +44,23 @@
     }
 
     public void testGetBooks() {
-        String[][] bibles = dwrBridge.getInstalledBooks("Category=Biblical Texts"); //$NON-NLS-1$
+        String[][] bibles = dwrBridge.getInstalledBooks("Category=Biblical Texts");
         assertTrue(bibles.length > 1);
 
-        String[][] dicts = dwrBridge.getInstalledBooks("Category=Dictionaries"); //$NON-NLS-1$
+        String[][] dicts = dwrBridge.getInstalledBooks("Category=Dictionaries");
         assertTrue(dicts.length > 1);
     }
 
     public void testGetOsisString() {
         try {
-            String verse = dwrBridge.getOSISString("KJV", "Gen 1:1", 0, 100); //$NON-NLS-1$ //$NON-NLS-2$
+            String verse = dwrBridge.getOSISString("KJV", "Gen 1:1", 0, 100);
             assertEquals(
-                    "<div><title type=\"x-gen\">Genesis 1:1</title><verse osisID=\"Gen.1.1\"><w lemma=\"strong:H07225\">In the beginning</w> <w lemma=\"strong:H0430\">God</w> <w lemma=\"strong:H0853 strong:H01254\" morph=\"strongMorph:TH8804\">created</w> <w lemma=\"strong:H08064\">the heaven</w> <w lemma=\"strong:H0853\">and</w> <w lemma=\"strong:H0776\">the earth</w>.</verse></div>", verse); //$NON-NLS-1$
-            String hdef = dwrBridge.getOSISString("StrongsHebrew", "H07225", 0, 100); //$NON-NLS-1$ //$NON-NLS-2$
+                    verse,
+                    "<div><title type=\"x-gen\">Genesis 1:1</title><verse osisID=\"Gen.1.1\"><w lemma=\"strong:H07225\">In the beginning</w> <w lemma=\"strong:H0430\">God</w> <w lemma=\"strong:H0853 strong:H01254\" morph=\"strongMorph:TH8804\">created</w> <w lemma=\"strong:H08064\">the heaven</w> <w lemma=\"strong:H0853\">and</w> <w lemma=\"strong:H0776\">the earth</w>.</verse></div>");
+            String hdef = dwrBridge.getOSISString("StrongsHebrew", "H07225", 0, 100);
             assertEquals(
-                    "<div><title>07225</title>7225  re'shiyth  ray-sheeth'\r<lb></lb>\r<lb></lb> from the same as 7218; the first, in place, time, order or\r<lb></lb> rank (specifically, a firstfruit):--beginning, chief(-est),\r<lb></lb> first(-fruits, part, time), principal thing.\r<lb></lb> see HEBREW for 07218</div>", hdef); //$NON-NLS-1$
+                    hdef,
+                    "<div><title>07225</title>7225  re'shiyth  ray-sheeth'\r<lb></lb>\r<lb></lb> from the same as 7218; the first, in place, time, order or\r<lb></lb> rank (specifically, a firstfruit):--beginning, chief(-est),\r<lb></lb> first(-fruits, part, time), principal thing.\r<lb></lb> see HEBREW for 07218</div>");
         } catch (BookException e) {
             fail(e.getDetailedMessage());
         } catch (NoSuchKeyException e) {
@@ -67,21 +69,21 @@
     }
 
     public void testIndexed() {
-        assertTrue(dwrBridge.isIndexed("KJV")); //$NON-NLS-1$
-        assertFalse(dwrBridge.isIndexed("not a bible")); //$NON-NLS-1$ 
+        assertTrue(dwrBridge.isIndexed("KJV"));
+        assertFalse(dwrBridge.isIndexed("not a bible")); 
     }
 
     public void testSearch() {
         try {
-            String result = dwrBridge.search("KJV", "aaron AND moses AND egypt"); //$NON-NLS-1$ //$NON-NLS-2$
-            assertEquals("Exo 5:4, 6:13, 26-27, 7:19, 8:5, 16, 12:1, 16:6, 32:1, Num 14:2, 26:59, 33:1, Jos 24:5, 1Sa 12:6, 8, Mic 6:4, Act 7:40", result); //$NON-NLS-1$
+            String result = dwrBridge.search("KJV", "aaron AND moses AND egypt");
+            assertEquals("Exo 5:4, 6:13, 26-27, 7:19, 8:5, 16, 12:1, 16:6, 32:1, Num 14:2, 26:59, 33:1, Jos 24:5, 1Sa 12:6, 8, Mic 6:4, Act 7:40", result);
         } catch (BookException e) {
             fail();
         }
     }
 
     public void testMatch() {
-        String[] result = dwrBridge.match("StrongsGreek", "0001", 10); //$NON-NLS-1$ //$NON-NLS-2$
+        String[] result = dwrBridge.match("StrongsGreek", "0001", 10);
         assertTrue(result.length == 10);
     }
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/AnalyzerFactoryTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/AnalyzerFactoryTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/AnalyzerFactoryTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -74,34 +74,34 @@
 
         QueryParser parser = new QueryParser(Version.LUCENE_29, field, myAnalyzer);
 
-        String testInput = "Surely will every man walketh"; //$NON-NLS-1$
+        String testInput = "Surely will every man walketh";
         Query query = parser.parse(testInput);
         // assertTrue(myAnalyzer instanceof SimpleLuceneAnalyzer);
 
         // After Diacritic filtering
-        assertTrue(query.toString().indexOf(field + ":sure ") > -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":everi") > -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":sure ") > -1);
+        assertTrue(query.toString().indexOf(field + ":everi") > -1);
 
         myAnalyzer.setDoStemming(false);
         query = parser.parse(testInput);
-        assertTrue(query.toString().indexOf(field + ":surely") > -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":every") > -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":surely") > -1);
+        assertTrue(query.toString().indexOf(field + ":every") > -1);
 
         // enable stop word
         myAnalyzer.setDoStopWords(true);
         query = parser.parse(testInput);
-        assertTrue(query.toString().indexOf(field + ":will") == -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":will") == -1);
 
         // set custom stop word
         myAnalyzer.setDoStopWords(true);
         String[] stopWords = {
-                "thy", "ye", "unto", "shalt"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+                "thy", "ye", "unto", "shalt"};
         myAnalyzer.setStopWords(stopWords);
-        testInput = "Upon thy belly Shalt thou go"; //$NON-NLS-1$
+        testInput = "Upon thy belly Shalt thou go";
         query = parser.parse(testInput);
-        assertTrue(query.toString().indexOf(field + ":shalt") == -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":thy") == -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":upon") > -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":shalt") == -1);
+        assertTrue(query.toString().indexOf(field + ":thy") == -1);
+        assertTrue(query.toString().indexOf(field + ":upon") > -1);
 
         System.out.println(query.toString());
     }
@@ -109,21 +109,21 @@
     /*
      * public void testLatin1Language() throws ParseException { Analyzer
      * myAnalyzer = AnalyzerFactory.getInstance().createAnalyzer("Latin");
-     * //$NON-NLS-1$
+     *
      * 
      * QueryParser parser = new QueryParser(field, myAnalyzer);
      * 
-     * String testInput = "test \u00D9\u00EB\u0153"; //$NON-NLS-1$
+     * String testInput = "test \u00D9\u00EB\u0153";
      * assertTrue(myAnalyzer instanceof SimpleLuceneAnalyzer); Query query =
      * parser.parse(testInput); //After Diacritic filtering
-     * assertTrue(query.toString().indexOf(field+":ueoe") > -1); //$NON-NLS-1$
+     * assertTrue(query.toString().indexOf(field+":ueoe") > -1);
      * 
-     * testInput = "A\u00C1"; //$NON-NLS-1$ query = parser.parse(testInput);
+     * testInput = "A\u00C1"; query = parser.parse(testInput);
      * //After Diacritic filtering
-     * assertTrue(query.toString().indexOf(field+":aa") > -1); //$NON-NLS-1$
+     * assertTrue(query.toString().indexOf(field+":aa") > -1);
      * 
      * 
      * }
      */
-    protected static final String field = "content"; //$NON-NLS-1$
+    protected static final String field = "content";
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ChineseLuceneAnalyzerTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ChineseLuceneAnalyzerTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ChineseLuceneAnalyzerTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -49,15 +49,15 @@
         myAnalyzer = new ChineseLuceneAnalyzer();
         parser = new QueryParser(Version.LUCENE_29, field, myAnalyzer);
 
-        String testInput = "\u795E\u7231\u4E16\u4EBA\uFF0C\u751A\u81F3\u628A\u4ED6\u7684\u72EC\u751F\u5B50\u8D50\u7ED9\u4ED6\u4EEC"; //$NON-NLS-1$
+        String testInput = "\u795E\u7231\u4E16\u4EBA\uFF0C\u751A\u81F3\u628A\u4ED6\u7684\u72EC\u751F\u5B50\u8D50\u7ED9\u4ED6\u4EEC";
 
         Query query = parser.parse(testInput);
-        assertTrue(query.toString().indexOf(field + ":\"\u795E \u7231") > -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf("\u4ED6 \u4EEC\"") > -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":\"\u795E \u7231") > -1);
+        assertTrue(query.toString().indexOf("\u4ED6 \u4EEC\"") > -1);
         // System.out.println(query.toString());
     }
 
-    protected static final String field = "content"; //$NON-NLS-1$
+    protected static final String field = "content";
     private AbstractBookAnalyzer myAnalyzer;
     private QueryParser parser;
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ConfigurableSnowballAnalyzerTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ConfigurableSnowballAnalyzerTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ConfigurableSnowballAnalyzerTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -51,73 +51,73 @@
     public void testStemmers() {
 
         // valid
-        myAnalyzer.pickStemmer("Finnish"); //$NON-NLS-1$
+        myAnalyzer.pickStemmer("Finnish");
         // invalid stemmer
         try {
-            myAnalyzer.pickStemmer("test"); //$NON-NLS-1$
+            myAnalyzer.pickStemmer("test");
         } catch (IllegalArgumentException e) {
-            assertTrue(e.getMessage().indexOf("SnowballAnalyzer") > -1); //$NON-NLS-1$
+            assertTrue(e.getMessage().indexOf("SnowballAnalyzer") > -1);
         }
     }
 
     public void testStemming() throws ParseException {
 
-        myAnalyzer.pickStemmer("French"); //$NON-NLS-1$
+        myAnalyzer.pickStemmer("French");
 
-        String testInput = " tant aimé le monde qu'il a donné son"; //$NON-NLS-1$
+        String testInput = " tant aimé le monde qu'il a donné son";
 
         Query query = parser.parse(testInput);
-        assertTrue(query.toString().indexOf(field + ":aim ") > -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":mond ") > -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":aim ") > -1);
+        assertTrue(query.toString().indexOf(field + ":mond ") > -1);
         // System.out.println(query.toString());
     }
 
     public void testStopwords() throws ParseException {
 
-        myAnalyzer.pickStemmer("French"); //$NON-NLS-1$
+        myAnalyzer.pickStemmer("French");
         myAnalyzer.setDoStopWords(true);
-        String testInput = " tant aimé le monde qu 'il a donné son"; //$NON-NLS-1$
+        String testInput = " tant aimé le monde qu 'il a donné son";
 
         Query query = parser.parse(testInput);
-        assertTrue(query.toString().indexOf(field + ":le") == -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":a ") == -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":le") == -1);
+        assertTrue(query.toString().indexOf(field + ":a ") == -1);
 
     }
 
     public void testStemmingOff() throws ParseException {
 
-        myAnalyzer.pickStemmer("French"); //$NON-NLS-1$
+        myAnalyzer.pickStemmer("French");
         myAnalyzer.setDoStemming(false);
 
-        String testInput = " tant aimé le monde qu'il a donné son"; //$NON-NLS-1$
+        String testInput = " tant aimé le monde qu'il a donné son";
 
         Query query = parser.parse(testInput);
         // System.out.println(query.toString());
-        assertTrue(query.toString().indexOf(field + ":aimé ") > -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":donné ") > -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":aimé ") > -1);
+        assertTrue(query.toString().indexOf(field + ":donné ") > -1);
     }
 
     public void testStemmerConfig() throws ParseException {
 
-        myAnalyzer.pickStemmer("French"); //$NON-NLS-1$
+        myAnalyzer.pickStemmer("French");
         myAnalyzer.setDoStemming(false);
 
-        String testInput = " tant aimé le monde qu'il a donné son"; //$NON-NLS-1$
+        String testInput = " tant aimé le monde qu'il a donné son";
 
         Query query = parser.parse(testInput);
-        assertTrue(query.toString().indexOf(field + ":aimé ") > -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":donné ") > -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":aimé ") > -1);
+        assertTrue(query.toString().indexOf(field + ":donné ") > -1);
 
     }
 
     public void testMultipleStemmers() throws ParseException {
 
-        myAnalyzer.pickStemmer("German"); //$NON-NLS-1$
+        myAnalyzer.pickStemmer("German");
 
-        String testInput = "Denn also hat Gott die Welt geliebt, daß er seinen eingeborenen Sohn gab, auf daß jeder, der an ihn glaubt, nicht verloren gehe, sondern ewiges Leben habe"; //$NON-NLS-1$
+        String testInput = "Denn also hat Gott die Welt geliebt, daß er seinen eingeborenen Sohn gab, auf daß jeder, der an ihn glaubt, nicht verloren gehe, sondern ewiges Leben habe";
 
         Query query = parser.parse(testInput);
-        assertTrue(query.toString().indexOf(field + ":denn ") > -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":denn ") > -1);
 
         // System.out.println(query.toString());
 
@@ -125,11 +125,11 @@
         Analyzer anal = new GermanLuceneAnalyzer();
         QueryParser gparser = new QueryParser(Version.LUCENE_29, field, anal);
         query = gparser.parse(testInput);
-        assertTrue(query.toString().indexOf(field + ":denn ") > -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":denn ") > -1);
 
     }
 
-    protected static final String field = "content"; //$NON-NLS-1$
+    protected static final String field = "content";
     private ConfigurableSnowballAnalyzer myAnalyzer;
     private QueryParser parser;
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/EnglishLuceneAnalyzerTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/EnglishLuceneAnalyzerTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/EnglishLuceneAnalyzerTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -50,50 +50,50 @@
     }
 
     public void testDefaultBehavior() throws ParseException {
-        String testInput = "Surely will every man walketh"; //$NON-NLS-1$
+        String testInput = "Surely will every man walketh";
         Query query = parser.parse(testInput);
 
         // stemming on
-        assertTrue(query.toString().indexOf(field + ":sure ") > -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":everi") > -1); //$NON-NLS-1$    
+        assertTrue(query.toString().indexOf(field + ":sure ") > -1);
+        assertTrue(query.toString().indexOf(field + ":everi") > -1);    
     }
 
     public void testSetDoStopWords() throws ParseException {
-        String testInput = "Surely will every man walketh"; //$NON-NLS-1$
+        String testInput = "Surely will every man walketh";
         Query query = parser.parse(testInput);
 
         // enable stop word
         myAnalyzer.setDoStopWords(true);
         query = parser.parse(testInput);
-        assertTrue(query.toString().indexOf(field + ":will") == -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":will") == -1);
 
         // set custom stop word
         myAnalyzer.setDoStopWords(true);
         String[] stopWords = {
-                "thy", "ye", "unto", "shalt"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+                "thy", "ye", "unto", "shalt"};
         myAnalyzer.setStopWords(stopWords);
-        testInput = "Upon thy belly Shalt thou go"; //$NON-NLS-1$
+        testInput = "Upon thy belly Shalt thou go";
         query = parser.parse(testInput);
         // System.out.println("ParsedQuery- "+ query.toString());
 
-        assertTrue(query.toString().indexOf(field + ":shalt") == -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":thy") == -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":upon") > -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":shalt") == -1);
+        assertTrue(query.toString().indexOf(field + ":thy") == -1);
+        assertTrue(query.toString().indexOf(field + ":upon") > -1);
 
     }
 
     public void testSetDoStemming() throws ParseException {
-        String testInput = "Surely will every man walketh"; //$NON-NLS-1$
+        String testInput = "Surely will every man walketh";
         Query query = parser.parse(testInput);
 
         myAnalyzer.setDoStemming(false);
         query = parser.parse(testInput);
-        assertTrue(query.toString().indexOf(field + ":surely") > -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":every") > -1); //$NON-NLS-1$
+        assertTrue(query.toString().indexOf(field + ":surely") > -1);
+        assertTrue(query.toString().indexOf(field + ":every") > -1);
 
     }
 
-    protected static final String field = "content"; //$NON-NLS-1$
+    protected static final String field = "content";
     private AbstractBookAnalyzer myAnalyzer;
     private QueryParser parser;
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/GreekLuceneAnalyzerTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/GreekLuceneAnalyzerTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/GreekLuceneAnalyzerTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -51,16 +51,16 @@
     public void testTokenization() throws ParseException {
         // From john 3:16
 
-        String testInput = "\u0394\u03B9\u03BF\u03C4\u03B9 \u03C4\u03BF\u03C3\u03BF\u03BD \u03B7\u03B3\u03B1\u03C0\u03B7\u03C3\u03B5\u03BD \u03BF \u0398\u03B5\u03BF\u03C2 \u03C4\u03BF\u03BD \u03BA\u03BF\u03C3\u03BC\u03BF\u03BD\u002C \u03C9\u03C3\u03C4\u03B5 \u03B5\u03B4\u03C9\u03BA\u03B5 \u03C4\u03BF\u03BD \u03A5\u03B9\u03BF\u03BD \u03B1\u03C5\u03C4\u03BF\u03C5"; //$NON-NLS-1$
+        String testInput = "\u0394\u03B9\u03BF\u03C4\u03B9 \u03C4\u03BF\u03C3\u03BF\u03BD \u03B7\u03B3\u03B1\u03C0\u03B7\u03C3\u03B5\u03BD \u03BF \u0398\u03B5\u03BF\u03C2 \u03C4\u03BF\u03BD \u03BA\u03BF\u03C3\u03BC\u03BF\u03BD\u002C \u03C9\u03C3\u03C4\u03B5 \u03B5\u03B4\u03C9\u03BA\u03B5 \u03C4\u03BF\u03BD \u03A5\u03B9\u03BF\u03BD \u03B1\u03C5\u03C4\u03BF\u03C5";
         Query query = parser.parse(testInput);
         // System.out.println(query.toString());
         // Lowercased test
-        assertTrue(query.toString().indexOf(field + ":\u03B4\u03B9\u03BF\u03C4\u03B9 ") > -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":\u03B1\u03C5\u03C4\u03BF\u03C5") > -1); //$NON-NLS-1$  
+        assertTrue(query.toString().indexOf(field + ":\u03B4\u03B9\u03BF\u03C4\u03B9 ") > -1);
+        assertTrue(query.toString().indexOf(field + ":\u03B1\u03C5\u03C4\u03BF\u03C5") > -1);  
 
     }
 
-    protected static final String field = "content"; //$NON-NLS-1$
+    protected static final String field = "content";
     private AbstractBookAnalyzer myAnalyzer;
     private QueryParser parser;
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ThaiLuceneAnalyzerTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ThaiLuceneAnalyzerTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/index/lucene/analysis/ThaiLuceneAnalyzerTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -49,25 +49,25 @@
     }
 
     public void testDefaultBehavior() throws ParseException {
-        String testInput = "\u0E1A\u0E38\u0E15\u0E23\u0E21\u0E19\u0E38\u0E29\u0E22\u0E4C\u0E08\u0E30\u0E15\u0E49\u0E2D"; //$NON-NLS-1$
+        String testInput = "\u0E1A\u0E38\u0E15\u0E23\u0E21\u0E19\u0E38\u0E29\u0E22\u0E4C\u0E08\u0E30\u0E15\u0E49\u0E2D";
 
         Query query = parser.parse(testInput);
         // System.out.println(query.toString());
-        assertTrue(query.toString().indexOf(field + ":\"\u0E1A\u0E38\u0E15\u0E23 \u0E21") > -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf("\u0E4C \u0E08\u0E30 \u0E15\u0E49\u0E2D") > -1); //$NON-NLS-1$ 
+        assertTrue(query.toString().indexOf(field + ":\"\u0E1A\u0E38\u0E15\u0E23 \u0E21") > -1);
+        assertTrue(query.toString().indexOf("\u0E4C \u0E08\u0E30 \u0E15\u0E49\u0E2D") > -1); 
     }
 
     public void testWhitespaceQuery() throws ParseException {
         // From john 3:3
-        String testInput = "\u0E40\u0E23\u0E32\u0E1A\u0E2D\u0E01\u0E04\u0E27\u0E32\u0E21\u0E08\u0E23\u0E34\u0E07\u0E41\u0E01\u0E48\u0E17\u0E48\u0E32\u0E19\u0E27\u0E48\u0E32 \u0E16\u0E49\u0E32\u0E1C\u0E39\u0E49\u0E43\u0E14\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E1A\u0E31\u0E07\u0E40\u0E01\u0E34\u0E14\u0E43\u0E2B\u0E21\u0E48"; //$NON-NLS-1$
+        String testInput = "\u0E40\u0E23\u0E32\u0E1A\u0E2D\u0E01\u0E04\u0E27\u0E32\u0E21\u0E08\u0E23\u0E34\u0E07\u0E41\u0E01\u0E48\u0E17\u0E48\u0E32\u0E19\u0E27\u0E48\u0E32 \u0E16\u0E49\u0E32\u0E1C\u0E39\u0E49\u0E43\u0E14\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E1A\u0E31\u0E07\u0E40\u0E01\u0E34\u0E14\u0E43\u0E2B\u0E21\u0E48";
 
         Query query = parser.parse(testInput);
         // System.out.println(query.toString());
-        assertTrue(query.toString().indexOf(field + ":\"\u0E40\u0E23\u0E32 \u0E1A") > -1); //$NON-NLS-1$
-        assertTrue(query.toString().indexOf(field + ":\"\u0E16\u0E49\u0E32 \u0E1C") > -1); //$NON-NLS-1$ 
+        assertTrue(query.toString().indexOf(field + ":\"\u0E40\u0E23\u0E32 \u0E1A") > -1);
+        assertTrue(query.toString().indexOf(field + ":\"\u0E16\u0E49\u0E32 \u0E1C") > -1); 
     }
 
-    protected static final String field = "content"; //$NON-NLS-1$
+    protected static final String field = "content";
     private AbstractBookAnalyzer myAnalyzer;
     private QueryParser parser;
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/passage/AccuracyTypeTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/passage/AccuracyTypeTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/passage/AccuracyTypeTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -10,11 +10,11 @@
 
     public void testFromText_onePartInvalidBook() {
         try {
-            AccuracyType.fromText("10", new String[] { "10"}, null, null); //$NON-NLS-1$//$NON-NLS-2$
+            AccuracyType.fromText("10", new String[] { "10"}, null, null);
         } catch (NoSuchVerseException nsve) {
             // expected
         } catch (ArrayIndexOutOfBoundsException aioobe) {
-            fail("ArrayIndexOutOfBoundsException caught, expecting NoSuchVerseException"); //$NON-NLS-1$
+            fail("ArrayIndexOutOfBoundsException caught, expecting NoSuchVerseException");
         }
 
     }
@@ -22,36 +22,36 @@
     public void testFromText_TooManyParts() {
         boolean caught = false;
         try {
-            AccuracyType.fromText("1:2:3:4", new String[] { "1", "2", "3", "4"}, null, null); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+            AccuracyType.fromText("1:2:3:4", new String[] { "1", "2", "3", "4"}, null, null);
         } catch (NoSuchVerseException nsve) {
-            NoSuchVerseException correctException = new NoSuchVerseException(UserMsg.VERSE_PARTS, new Object[] {
-                "1:2:3:4, 1, 2, 3, 4"}); //$NON-NLS-1$
-            assertEquals("Unexpected exception message", correctException.getMessage(), nsve.getMessage()); //$NON-NLS-1$
+            NoSuchVerseException correctException = new NoSuchVerseException(UserMsg.gettext("Too many parts to the Verse. (Parts are separated by any of {0})", new Object[] {
+                "1:2:3:4, 1, 2, 3, 4"}));
+            assertEquals("Unexpected exception message", correctException.getMessage(), nsve.getMessage());
             caught = true;
         } catch (ArrayIndexOutOfBoundsException aioobe) {
-            fail("ArrayIndexOutOfBoundsException caught, expecting NoSuchVerseException"); //$NON-NLS-1$
+            fail("ArrayIndexOutOfBoundsException caught, expecting NoSuchVerseException");
         }
 
         if (!caught) {
-            fail("Expected fromText to throw an exception when passed too many parts"); //$NON-NLS-1$
+            fail("Expected fromText to throw an exception when passed too many parts");
         }
     }
 
     public void testFromText_ThreePartsInvalidBook() {
         boolean caught = false;
         try {
-            AccuracyType.fromText("-1:2:3", new String[] { "-1", "2", "3"}, null, null); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+            AccuracyType.fromText("-1:2:3", new String[] { "-1", "2", "3"}, null, null);
         } catch (NoSuchVerseException nsve) {
-            NoSuchVerseException correctException = new NoSuchVerseException(UserMsg.VERSE_PARTS, new Object[] {
-                "-1:2:3, -1, 2, 3"}); //$NON-NLS-1$
-            assertEquals("Unexpected exception message", correctException.getMessage(), nsve.getMessage()); //$NON-NLS-1$
+            NoSuchVerseException correctException = new NoSuchVerseException(UserMsg.gettext("Too many parts to the Verse. (Parts are separated by any of {0})", new Object[] {
+                "-1:2:3, -1, 2, 3"}));
+            assertEquals("Unexpected exception message", correctException.getMessage(), nsve.getMessage());
             caught = true;
         } catch (ArrayIndexOutOfBoundsException aioobe) {
-            fail("ArrayIndexOutOfBoundsException caught, expecting NoSuchVerseException"); //$NON-NLS-1$
+            fail("ArrayIndexOutOfBoundsException caught, expecting NoSuchVerseException");
         }
 
         if (!caught) {
-            fail("Expected fromText to throw an exception when passed three parts with an invalid book"); //$NON-NLS-1$
+            fail("Expected fromText to throw an exception when passed three parts with an invalid book");
         }
     }
 

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/passage/BibleInfoTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/passage/BibleInfoTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/passage/BibleInfoTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -74,16 +74,16 @@
 
     public void testGetLongBookName() throws Exception {
         BibleInfo.setCase(CaseType.SENTENCE);
-        assertEquals(BibleInfo.getLongBookName(1), "Genesis"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getLongBookName(66), "Revelation of John"); //$NON-NLS-1$
+        assertEquals(BibleInfo.getLongBookName(1), "Genesis");
+        assertEquals(BibleInfo.getLongBookName(66), "Revelation of John");
 
         BibleInfo.setCase(CaseType.LOWER);
-        assertEquals(BibleInfo.getLongBookName(1), "genesis"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getLongBookName(66), "revelation of john"); //$NON-NLS-1$
+        assertEquals(BibleInfo.getLongBookName(1), "genesis");
+        assertEquals(BibleInfo.getLongBookName(66), "revelation of john");
 
         BibleInfo.setCase(CaseType.UPPER);
-        assertEquals(BibleInfo.getLongBookName(1), "GENESIS"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getLongBookName(66), "REVELATION OF JOHN"); //$NON-NLS-1$
+        assertEquals(BibleInfo.getLongBookName(1), "GENESIS");
+        assertEquals(BibleInfo.getLongBookName(66), "REVELATION OF JOHN");
 
         try {
             BibleInfo.getLongBookName(0);
@@ -106,15 +106,15 @@
         } catch (NoSuchVerseException ex) {
         }
 
-        assertEquals(BibleInfo.getShortBookName(1), "Gen"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(2), "Exo"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(7), "Judg"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(39), "Mal"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(40), "Mat"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(50), "Phili"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(57), "Phile"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(65), "Jude"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(66), "Rev"); //$NON-NLS-1$
+        assertEquals(BibleInfo.getShortBookName(1), "Gen");
+        assertEquals(BibleInfo.getShortBookName(2), "Exo");
+        assertEquals(BibleInfo.getShortBookName(7), "Judg");
+        assertEquals(BibleInfo.getShortBookName(39), "Mal");
+        assertEquals(BibleInfo.getShortBookName(40), "Mat");
+        assertEquals(BibleInfo.getShortBookName(50), "Phili");
+        assertEquals(BibleInfo.getShortBookName(57), "Phile");
+        assertEquals(BibleInfo.getShortBookName(65), "Jude");
+        assertEquals(BibleInfo.getShortBookName(66), "Rev");
 
         try {
             BibleInfo.getShortBookName(67);
@@ -129,15 +129,15 @@
         } catch (NoSuchVerseException ex) {
         }
 
-        assertEquals(BibleInfo.getShortBookName(1), "gen"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(2), "exo"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(7), "judg"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(39), "mal"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(40), "mat"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(50), "phili"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(57), "phile"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(65), "jude"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(66), "rev"); //$NON-NLS-1$
+        assertEquals(BibleInfo.getShortBookName(1), "gen");
+        assertEquals(BibleInfo.getShortBookName(2), "exo");
+        assertEquals(BibleInfo.getShortBookName(7), "judg");
+        assertEquals(BibleInfo.getShortBookName(39), "mal");
+        assertEquals(BibleInfo.getShortBookName(40), "mat");
+        assertEquals(BibleInfo.getShortBookName(50), "phili");
+        assertEquals(BibleInfo.getShortBookName(57), "phile");
+        assertEquals(BibleInfo.getShortBookName(65), "jude");
+        assertEquals(BibleInfo.getShortBookName(66), "rev");
 
         try {
             BibleInfo.getShortBookName(67);
@@ -152,15 +152,15 @@
         } catch (NoSuchVerseException ex) {
         }
 
-        assertEquals(BibleInfo.getShortBookName(1), "GEN"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(2), "EXO"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(7), "JUDG"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(39), "MAL"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(40), "MAT"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(50), "PHILI"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(57), "PHILE"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(65), "JUDE"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getShortBookName(66), "REV"); //$NON-NLS-1$
+        assertEquals(BibleInfo.getShortBookName(1), "GEN");
+        assertEquals(BibleInfo.getShortBookName(2), "EXO");
+        assertEquals(BibleInfo.getShortBookName(7), "JUDG");
+        assertEquals(BibleInfo.getShortBookName(39), "MAL");
+        assertEquals(BibleInfo.getShortBookName(40), "MAT");
+        assertEquals(BibleInfo.getShortBookName(50), "PHILI");
+        assertEquals(BibleInfo.getShortBookName(57), "PHILE");
+        assertEquals(BibleInfo.getShortBookName(65), "JUDE");
+        assertEquals(BibleInfo.getShortBookName(66), "REV");
 
         try {
             BibleInfo.getShortBookName(67);
@@ -170,9 +170,9 @@
     }
 
     public void testGetBookJogger() throws Exception {
-        assertEquals(BibleInfo.getOSISName(1), "Gen"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getOSISName(2), "Exod"); //$NON-NLS-1$
-        assertEquals(BibleInfo.getOSISName(66), "Rev"); //$NON-NLS-1$
+        assertEquals(BibleInfo.getOSISName(1), "Gen");
+        assertEquals(BibleInfo.getOSISName(2), "Exod");
+        assertEquals(BibleInfo.getOSISName(66), "Rev");
 
         try {
             BibleInfo.getOSISName(0);
@@ -188,39 +188,39 @@
     }
 
     public void testGetBookNumber() {
-        assertEquals(BibleInfo.getBookNumber("Genesis"), 1); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("Gene"), 1); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("Gen"), 1); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("G"), 1); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("g"), 1); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("GEN"), 1); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("genesis"), 1); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("psa"), 19); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("ps"), 19); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("pss"), 19); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("psalter"), 19); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("ecc"), 21); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("Qohelot"), 21); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("son"), 22); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("song"), 22); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("song of solomon"), 22); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("songofsolomon"), 22); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("ss"), 22); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("canticle"), 22); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("can"), 22); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("phi"), 50); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("phil"), 50); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("phili"), 50); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("phile"), 57); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("revelations"), 66); //$NON-NLS-1$
-        assertEquals(BibleInfo.getBookNumber("rev"), 66); //$NON-NLS-1$
+        assertEquals(BibleInfo.getBookNumber("Genesis"), 1);
+        assertEquals(BibleInfo.getBookNumber("Gene"), 1);
+        assertEquals(BibleInfo.getBookNumber("Gen"), 1);
+        assertEquals(BibleInfo.getBookNumber("G"), 1);
+        assertEquals(BibleInfo.getBookNumber("g"), 1);
+        assertEquals(BibleInfo.getBookNumber("GEN"), 1);
+        assertEquals(BibleInfo.getBookNumber("genesis"), 1);
+        assertEquals(BibleInfo.getBookNumber("psa"), 19);
+        assertEquals(BibleInfo.getBookNumber("ps"), 19);
+        assertEquals(BibleInfo.getBookNumber("pss"), 19);
+        assertEquals(BibleInfo.getBookNumber("psalter"), 19);
+        assertEquals(BibleInfo.getBookNumber("ecc"), 21);
+        assertEquals(BibleInfo.getBookNumber("Qohelot"), 21);
+        assertEquals(BibleInfo.getBookNumber("son"), 22);
+        assertEquals(BibleInfo.getBookNumber("song"), 22);
+        assertEquals(BibleInfo.getBookNumber("song of solomon"), 22);
+        assertEquals(BibleInfo.getBookNumber("songofsolomon"), 22);
+        assertEquals(BibleInfo.getBookNumber("ss"), 22);
+        assertEquals(BibleInfo.getBookNumber("canticle"), 22);
+        assertEquals(BibleInfo.getBookNumber("can"), 22);
+        assertEquals(BibleInfo.getBookNumber("phi"), 50);
+        assertEquals(BibleInfo.getBookNumber("phil"), 50);
+        assertEquals(BibleInfo.getBookNumber("phili"), 50);
+        assertEquals(BibleInfo.getBookNumber("phile"), 57);
+        assertEquals(BibleInfo.getBookNumber("revelations"), 66);
+        assertEquals(BibleInfo.getBookNumber("rev"), 66);
 
-        if (BibleInfo.getBookNumber("b") != -1) //$NON-NLS-1$
+        if (BibleInfo.getBookNumber("b") != -1)
         {
             fail();
         }
 
-        assertEquals(BibleInfo.getBookNumber("1"), -1); //$NON-NLS-1$
+        assertEquals(BibleInfo.getBookNumber("1"), -1);
     }
 
     public void testIn() throws Exception {

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/passage/FixturePassageListener.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/passage/FixturePassageListener.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/passage/FixturePassageListener.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -50,15 +50,15 @@
 
     public boolean check(int addcheck, int removalcheck, int changecheck) throws Exception {
         if (this.adds != addcheck) {
-            throw new Exception("ADD: should have: " + addcheck + ", noted " + this.adds); //$NON-NLS-1$ //$NON-NLS-2$
+            throw new Exception("ADD: should have: " + addcheck + ", noted " + this.adds);
         }
 
         if (this.removals != removalcheck) {
-            throw new Exception("REMOVALS: should have: " + removalcheck + ", noted " + this.removals); //$NON-NLS-1$ //$NON-NLS-2$
+            throw new Exception("REMOVALS: should have: " + removalcheck + ", noted " + this.removals);
         }
 
         if (this.changes != changecheck) {
-            throw new Exception("CHANGES: should have: " + changecheck + ", noted " + this.changes); //$NON-NLS-1$ //$NON-NLS-2$
+            throw new Exception("CHANGES: should have: " + changecheck + ", noted " + this.changes);
         }
 
         return true;

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageParentTst.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageParentTst.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageParentTst.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -98,29 +98,29 @@
     protected void setUp() throws Exception {
         start = System.currentTimeMillis();
         BibleInfo.setFullBookName(false);
-        gen1_135 = (Passage) keyf.getKey("Gen 1:1, Gen 1:3, Gen 1:5"); //$NON-NLS-1$
-        exo2a_3b = (Passage) keyf.getKey("Exo 2:1-10, Exo 3:1-11"); //$NON-NLS-1$
-        gen_rev = (Passage) keyf.getKey("Gen 1:1-Rev 22:21"); //$NON-NLS-1$
+        gen1_135 = (Passage) keyf.getKey("Gen 1:1, Gen 1:3, Gen 1:5");
+        exo2a_3b = (Passage) keyf.getKey("Exo 2:1-10, Exo 3:1-11");
+        gen_rev = (Passage) keyf.getKey("Gen 1:1-Rev 22:21");
         grace = (Passage) keyf.createEmptyKeyList();
         grace
                 .addAll(keyf
-                        .getKey("Gen 6:8, 19:19, 32:5, 33:8, 10, 15, 39:4, 47:25, 29, 50:4, Exo 33:12-13, 16-17, 34:9, Num 32:5, Judg 6:17, Rut 2:2, 10, 1Sa 1:18, 20:3, 27:5")); //$NON-NLS-1$
+                        .getKey("Gen 6:8, 19:19, 32:5, 33:8, 10, 15, 39:4, 47:25, 29, 50:4, Exo 33:12-13, 16-17, 34:9, Num 32:5, Judg 6:17, Rut 2:2, 10, 1Sa 1:18, 20:3, 27:5"));
         grace
                 .addAll(keyf
-                        .getKey("2Sa 14:22, 16:4, Ezr 9:8, Est 2:17, Psa 45:2, 84:11, Pro 1:9, 3:22, 34, 4:9, 22:11, Jer 31:2, Zec 4:7, 12:10, Luk 2:40, Joh 1:14, 16-17")); //$NON-NLS-1$
+                        .getKey("2Sa 14:22, 16:4, Ezr 9:8, Est 2:17, Psa 45:2, 84:11, Pro 1:9, 3:22, 34, 4:9, 22:11, Jer 31:2, Zec 4:7, 12:10, Luk 2:40, Joh 1:14, 16-17"));
         grace
                 .addAll(keyf
-                        .getKey("Act 4:33, 11:23, 13:43, 14:3, 26, 15:11, 40, 18:27, 20:24, 32, Rom 1:5, 7, 3:24, 4:4, 16, 5:2, 15, 17, 20-6:1, 6:14-15, 11:5-6, 12:3, 6, 15:15, 16:20, 24")); //$NON-NLS-1$
+                        .getKey("Act 4:33, 11:23, 13:43, 14:3, 26, 15:11, 40, 18:27, 20:24, 32, Rom 1:5, 7, 3:24, 4:4, 16, 5:2, 15, 17, 20-6:1, 6:14-15, 11:5-6, 12:3, 6, 15:15, 16:20, 24"));
         grace
                 .addAll(keyf
-                        .getKey("1Co 1:3-4, 3:10, 10:30, 15:10, 16:23, 2Co 1:2, 12, 4:15, 6:1, 8:1, 6-7, 9, 19, 9:8, 14, 12:9, 13:14, Gal 1:3, 6, 15, 2:9, 21, 5:4, 6:18")); //$NON-NLS-1$
+                        .getKey("1Co 1:3-4, 3:10, 10:30, 15:10, 16:23, 2Co 1:2, 12, 4:15, 6:1, 8:1, 6-7, 9, 19, 9:8, 14, 12:9, 13:14, Gal 1:3, 6, 15, 2:9, 21, 5:4, 6:18"));
         grace
                 .addAll(keyf
-                        .getKey("Eph 1:2, 6-7, 2:5, 7-8, 3:2, 7-8, 4:7, 29, 6:24, Phili 1:2, 7, 4:23, Col 1:2, 6, 3:16, 4:6, 18-1Th 1:1, 1Th 5:28, 2Th 1:2, 12, 2:16, 3:18")); //$NON-NLS-1$
+                        .getKey("Eph 1:2, 6-7, 2:5, 7-8, 3:2, 7-8, 4:7, 29, 6:24, Phili 1:2, 7, 4:23, Col 1:2, 6, 3:16, 4:6, 18-1Th 1:1, 1Th 5:28, 2Th 1:2, 12, 2:16, 3:18"));
         grace
                 .addAll(keyf
-                        .getKey("1Ti 1:2, 14, 6:21, 2Ti 1:2, 9, 2:1, 4:22, Tit 1:4, 2:11, 3:7, 15, Phile 3, 25, Heb 2:9, 4:16, 10:29, 12:15, 28, 13:9, 25, Jam 1:11, 4:6")); //$NON-NLS-1$
-        grace.addAll(keyf.getKey("1Pe 1:2, 10, 13, 3:7, 4:10, 5:5, 10, 12, 2Pe 1:2, 3:18, 2Jo 3, Jude 4, Rev 1:4, 22:21")); //$NON-NLS-1$
+                        .getKey("1Ti 1:2, 14, 6:21, 2Ti 1:2, 9, 2:1, 4:22, Tit 1:4, 2:11, 3:7, 15, Phile 3, 25, Heb 2:9, 4:16, 10:29, 12:15, 28, 13:9, 25, Jam 1:11, 4:6"));
+        grace.addAll(keyf.getKey("1Pe 1:2, 10, 13, 3:7, 4:10, 5:5, 10, 12, 2Pe 1:2, 3:18, 2Jo 3, Jude 4, Rev 1:4, 22:21"));
         empty = (Passage) keyf.createEmptyKeyList();
 
         // String full_type = empty.getClass().getName();
@@ -150,7 +150,7 @@
         exo22 = new Verse(2, 2, 2);
         exo23 = new Verse(2, 2, 3);
         exo3b = new Verse(2, 3, 11);
-        rev99 = VerseFactory.fromString("Rev 22:21"); //$NON-NLS-1$
+        rev99 = VerseFactory.fromString("Rev 22:21");
     }
 
     /*
@@ -176,14 +176,14 @@
             temp.addPassageListener(li2);
             assertTrue(li1.check(0, 0, 0));
             assertTrue(li2.check(0, 0, 0));
-            temp.add(VerseFactory.fromString("Gen 1:7")); //$NON-NLS-1$
+            temp.add(VerseFactory.fromString("Gen 1:7"));
             assertTrue(li1.check(1, 0, 0));
             assertTrue(li2.check(1, 0, 0));
-            temp.add(VerseFactory.fromString("Gen 1:9")); //$NON-NLS-1$
+            temp.add(VerseFactory.fromString("Gen 1:9"));
             assertTrue(li1.check(2, 0, 0));
             assertTrue(li2.check(2, 0, 0));
             temp.removePassageListener(li1);
-            temp.add(VerseFactory.fromString("Gen 1:11")); //$NON-NLS-1$
+            temp.add(VerseFactory.fromString("Gen 1:11"));
             assertTrue(li1.check(2, 0, 0));
             assertTrue(li2.check(3, 0, 0));
         }
@@ -200,11 +200,11 @@
         {
             Iterator it = gen1_135.rangeIterator(RestrictionType.NONE);
             assertTrue(it.hasNext());
-            assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:1")); //$NON-NLS-1$
+            assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:1"));
             assertTrue(it.hasNext());
-            assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:3")); //$NON-NLS-1$
+            assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:3"));
             assertTrue(it.hasNext());
-            assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:5")); //$NON-NLS-1$
+            assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:5"));
             assertTrue(!it.hasNext());
             it = empty.rangeIterator(RestrictionType.NONE);
             assertTrue(!it.hasNext());
@@ -216,11 +216,11 @@
         {
             Iterator it = gen1_135.iterator();
             assertTrue(it.hasNext());
-            assertEquals(it.next(), VerseFactory.fromString("Gen 1:1")); //$NON-NLS-1$
+            assertEquals(it.next(), VerseFactory.fromString("Gen 1:1"));
             assertTrue(it.hasNext());
-            assertEquals(it.next(), VerseFactory.fromString("Gen 1:3")); //$NON-NLS-1$
+            assertEquals(it.next(), VerseFactory.fromString("Gen 1:3"));
             assertTrue(it.hasNext());
-            assertEquals(it.next(), VerseFactory.fromString("Gen 1:5")); //$NON-NLS-1$
+            assertEquals(it.next(), VerseFactory.fromString("Gen 1:5"));
             assertTrue(!it.hasNext());
             it = empty.iterator();
             assertTrue(!it.hasNext());
@@ -271,10 +271,10 @@
         // for (int i=0; i<5; i++)
         {
             assertEquals(gen1_135.getRangeAt(0, RestrictionType.NONE), gen11_1);
-            assertEquals(gen1_135.getRangeAt(1, RestrictionType.NONE), VerseRangeFactory.fromString("Gen 1:3")); //$NON-NLS-1$
-            assertEquals(gen1_135.getRangeAt(2, RestrictionType.NONE), VerseRangeFactory.fromString("Gen 1:5")); //$NON-NLS-1$
-            assertEquals(exo2a_3b.getRangeAt(0, RestrictionType.NONE), VerseRangeFactory.fromString("Exo 2:1-10")); //$NON-NLS-1$
-            assertEquals(exo2a_3b.getRangeAt(1, RestrictionType.NONE), VerseRangeFactory.fromString("Exo 3:1-11")); //$NON-NLS-1$
+            assertEquals(gen1_135.getRangeAt(1, RestrictionType.NONE), VerseRangeFactory.fromString("Gen 1:3"));
+            assertEquals(gen1_135.getRangeAt(2, RestrictionType.NONE), VerseRangeFactory.fromString("Gen 1:5"));
+            assertEquals(exo2a_3b.getRangeAt(0, RestrictionType.NONE), VerseRangeFactory.fromString("Exo 2:1-10"));
+            assertEquals(exo2a_3b.getRangeAt(1, RestrictionType.NONE), VerseRangeFactory.fromString("Exo 3:1-11"));
         }
     }
 
@@ -398,25 +398,25 @@
     }
 
     public void testWriteToString() throws Exception {
-        assertEquals(keyf.getKey("gen 1 1,gen 1 3,rev 22 21,gen 1 2").toString(), "Gen 1:1-3, Rev 22:21"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(keyf.getKey("gen 1 1,gen 1 3,rev 22 21,gen 1 2").toString(), "Gen 1:1-3, Rev 22:21");
         assertEquals(
-                keyf.getKey("Gen 1 3;gen 22 2;rev 22 21;gen 22 3-10; rev 22 19;gen 1 1;rev 22 10-18; gen 1 2; rev 22 1-21").toString(), "Gen 1:1-3, 22:2-10, Rev 22"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(keyf.getKey("").toString(), ""); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(keyf.getKey("gen 1 1-50:26,e,e 1 2,e 1 3-10").toString(), "Gen-Exo"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(keyf.getKey(null).toString(), ""); //$NON-NLS-1$
+                keyf.getKey("Gen 1 3;gen 22 2;rev 22 21;gen 22 3-10; rev 22 19;gen 1 1;rev 22 10-18; gen 1 2; rev 22 1-21").toString(), "Gen 1:1-3, 22:2-10, Rev 22");
+        assertEquals(keyf.getKey("").toString(), "");
+        assertEquals(keyf.getKey("gen 1 1-50:26,e,e 1 2,e 1 3-10").toString(), "Gen-Exo");
+        assertEquals(keyf.getKey(null).toString(), "");
     }
 
     public void testWriteGetName() throws Exception {
-        assertEquals(keyf.getKey("gen 1 1,gen 1 3,rev 22 21,gen 1 2").getName(), "Gen 1:1-3, Rev 22:21"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(keyf.getKey("gen 1 1,gen 1 3,rev 22 21,gen 1 2").getName(), "Gen 1:1-3, Rev 22:21");
         assertEquals(
-                keyf.getKey("Gen 1 3;gen 22 2;rev 22 21;gen 22 3-10; rev 22 19;gen 1 1;rev 22 10-18; gen 1 2; rev 22 1-21").getName(), "Gen 1:1-3, 22:2-10, Rev 22"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(keyf.getKey("").getName(), ""); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(keyf.getKey("gen 1 1-50:26,e,e 1 2,e 1 3-10").getName(), "Gen-Exo"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(keyf.getKey("exo 1:1, 4").getName(), "Exo 1:1, 4"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(keyf.getKey("exo 1:1, 4, 2-3, 11-ff, 6-10").getName(), "Exo 1:1-4, 6-22"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(keyf.getKey("Num 1, 2").getName(), "Num 1-2"); //$NON-NLS-1$ //$NON-NLS-2$
+                keyf.getKey("Gen 1 3;gen 22 2;rev 22 21;gen 22 3-10; rev 22 19;gen 1 1;rev 22 10-18; gen 1 2; rev 22 1-21").getName(), "Gen 1:1-3, 22:2-10, Rev 22");
+        assertEquals(keyf.getKey("").getName(), "");
+        assertEquals(keyf.getKey("gen 1 1-50:26,e,e 1 2,e 1 3-10").getName(), "Gen-Exo");
+        assertEquals(keyf.getKey("exo 1:1, 4").getName(), "Exo 1:1, 4");
+        assertEquals(keyf.getKey("exo 1:1, 4, 2-3, 11-ff, 6-10").getName(), "Exo 1:1-4, 6-22");
+        assertEquals(keyf.getKey("Num 1, 2").getName(), "Num 1-2");
         // Test for the sepaator being a space. This comes from "Clarke"
-        assertEquals(keyf.getKey("Ge 1:26  3:22  11:7  20:13  31:7, 53  35:7").getName(), "Gen 1:26, 3:22, 11:7, 20:13, 31:7, 53, 35:7"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(keyf.getKey("Ge 1:26  3:22  11:7  20:13  31:7, 53  35:7").getName(), "Gen 1:26, 3:22, 11:7, 20:13, 31:7, 53, 35:7");
     }
 
     public void testWriteBlur() throws Exception {
@@ -428,82 +428,82 @@
         // assertEquals(temp, gen1_135);
         temp = (Passage) gen1_135.clone();
         temp.blur(1, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Gen 1:1-6")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Gen 1:1-6"));
         temp = (Passage) gen1_135.clone();
         temp.blur(1, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Gen 1:1-6")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Gen 1:1-6"));
         temp = (Passage) gen1_135.clone();
         temp.blur(2, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Gen 1:1-7")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Gen 1:1-7"));
         temp = (Passage) gen1_135.clone();
         temp.blur(2, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Gen 1:1-7")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Gen 1:1-7"));
         temp = (Passage) gen1_135.clone();
         temp.blur(12, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Gen 1:1-17")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Gen 1:1-17"));
         temp = (Passage) gen1_135.clone();
         temp.blur(12, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Gen 1:1-17")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Gen 1:1-17"));
         temp = (Passage) gen1_135.clone();
         temp.blur(26, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Gen 1:1-31")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Gen 1:1-31"));
         temp = (Passage) gen1_135.clone();
         temp.blur(26, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Gen 1:1-31")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Gen 1:1-31"));
         temp = (Passage) gen1_135.clone();
         temp.blur(27, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Gen 1:1-31")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Gen 1:1-31"));
         temp = (Passage) gen1_135.clone();
         temp.blur(27, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Gen 1:1-2:1")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Gen 1:1-2:1"));
         // temp = (Passage) exo2a_3b.clone();
         // temp.blur(0, RestrictionType.CHAPTER);
-        //        assertEquals(temp, keyf.getKey("Exo 2:1-10, Exo 3:1-11")); //$NON-NLS-1$
+        //        assertEquals(temp, keyf.getKey("Exo 2:1-10, Exo 3:1-11"));
         // temp = (Passage) exo2a_3b.clone();
         // temp.blur(0, RestrictionType.NONE);
-        //        assertEquals(temp, keyf.getKey("Exo 2:1-10, Exo 3:1-11")); //$NON-NLS-1$
+        //        assertEquals(temp, keyf.getKey("Exo 2:1-10, Exo 3:1-11"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(1, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Exo 2:1-11, Exo 3:1-12")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 2:1-11, Exo 3:1-12"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(1, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Exo 1:22-2:11, Exo 2:25-3:12")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 1:22-2:11, Exo 2:25-3:12"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(2, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Exo 2:1-12, Exo 3:1-13")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 2:1-12, Exo 3:1-13"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(2, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Exo 1:21-2:12, Exo 2:24-3:13")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 1:21-2:12, Exo 2:24-3:13"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(3, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Exo 2:1-13, Exo 3:1-14")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 2:1-13, Exo 3:1-14"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(3, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Exo 1:20-2:13, Exo 2:23-3:14")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 1:20-2:13, Exo 2:23-3:14"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(14, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Exo 2:1-24, Exo 3:1-22")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 2:1-24, Exo 3:1-22"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(14, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Exo 1:9-2:24, Exo 2:12-4:3")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 1:9-2:24, Exo 2:12-4:3"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(15, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Exo 2:1-25, Exo 3:1-22")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 2:1-25, Exo 3:1-22"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(15, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Exo 1:8-2:25, Exo 2:11-4:4")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 1:8-2:25, Exo 2:11-4:4"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(16, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Exo 2:1-3:22")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 2:1-3:22"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(16, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Exo 1:7-4:5")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 1:7-4:5"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(99999, RestrictionType.CHAPTER);
-        assertEquals(temp, keyf.getKey("Exo 2:1-3:22")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Exo 2:1-3:22"));
         temp = (Passage) exo2a_3b.clone();
         temp.blur(99999, RestrictionType.NONE);
-        assertEquals(temp, keyf.getKey("Gen 1:1-Rev 22:21")); //$NON-NLS-1$
+        assertEquals(temp, keyf.getKey("Gen 1:1-Rev 22:21"));
         // try { temp.blur(-1, RestrictionType.NONE); fail(temp.toString()); }
         // catch (IllegalArgumentException ex) { }
         // try { temp.blur(-1, RestrictionType.BOOK); fail(temp.toString()); }
@@ -518,14 +518,14 @@
         temp.addPassageListener(li2);
         assertTrue(li1.check(0, 0, 0));
         assertTrue(li2.check(0, 0, 0));
-        temp.add(VerseFactory.fromString("Gen 1:7")); //$NON-NLS-1$
+        temp.add(VerseFactory.fromString("Gen 1:7"));
         assertTrue(li1.check(1, 0, 0));
         assertTrue(li2.check(1, 0, 0));
-        temp.add(VerseFactory.fromString("Gen 1:9")); //$NON-NLS-1$
+        temp.add(VerseFactory.fromString("Gen 1:9"));
         assertTrue(li1.check(2, 0, 0));
         assertTrue(li2.check(2, 0, 0));
         temp.removePassageListener(li1);
-        temp.add(VerseFactory.fromString("Gen 1:11")); //$NON-NLS-1$
+        temp.add(VerseFactory.fromString("Gen 1:11"));
         assertTrue(li1.check(2, 0, 0));
         assertTrue(li2.check(3, 0, 0));
     }
@@ -540,38 +540,38 @@
     public void testWriteRangeIterator() throws Exception {
         Iterator it = gen1_135.rangeIterator(RestrictionType.NONE);
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:1")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:1"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:3")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:3"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:5")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:5"));
         assertTrue(!it.hasNext());
 
         it = gen_rev.rangeIterator(RestrictionType.NONE);
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen-Rev")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen-Rev"));
         assertTrue(!it.hasNext());
 
         // it = gen_rev.rangeIterator(RestrictionType.BOOK);
         // assertTrue(it.hasNext());
-        //        assertEquals(it.next(), VerseRangeFactory.fromString("Gen")); //$NON-NLS-1$
+        //        assertEquals(it.next(), VerseRangeFactory.fromString("Gen"));
         // assertTrue(it.hasNext());
-        //        assertEquals(it.next(), VerseRangeFactory.fromString("Exo")); //$NON-NLS-1$
+        //        assertEquals(it.next(), VerseRangeFactory.fromString("Exo"));
         // assertTrue(it.hasNext());
-        //        assertEquals(it.next(), VerseRangeFactory.fromString("Lev")); //$NON-NLS-1$
+        //        assertEquals(it.next(), VerseRangeFactory.fromString("Lev"));
         // assertTrue(it.hasNext());
-        //        assertEquals(it.next(), VerseRangeFactory.fromString("Num")); //$NON-NLS-1$
+        //        assertEquals(it.next(), VerseRangeFactory.fromString("Num"));
         // assertTrue(!it.hasNext());
 
         it = gen_rev.rangeIterator(RestrictionType.CHAPTER);
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 2")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 2"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 3")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 3"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 4")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 4"));
         // assertTrue(!it.hasNext());
 
         it = empty.rangeIterator(RestrictionType.NONE);
@@ -581,11 +581,11 @@
     public void testWriteVerseIterator() throws Exception {
         Iterator it = gen1_135.iterator();
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseFactory.fromString("Gen 1:1")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseFactory.fromString("Gen 1:1"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseFactory.fromString("Gen 1:3")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseFactory.fromString("Gen 1:3"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseFactory.fromString("Gen 1:5")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseFactory.fromString("Gen 1:5"));
         assertTrue(!it.hasNext());
         it = empty.iterator();
         assertTrue(!it.hasNext());
@@ -621,10 +621,10 @@
 
     public void testWriteGetVerseRangeAt() throws Exception {
         assertEquals(gen1_135.getRangeAt(0, RestrictionType.NONE), gen11_1);
-        assertEquals(gen1_135.getRangeAt(1, RestrictionType.NONE), VerseRangeFactory.fromString("Gen 1:3")); //$NON-NLS-1$
-        assertEquals(gen1_135.getRangeAt(2, RestrictionType.NONE), VerseRangeFactory.fromString("Gen 1:5")); //$NON-NLS-1$
-        assertEquals(exo2a_3b.getRangeAt(0, RestrictionType.NONE), VerseRangeFactory.fromString("Exo 2:1-10")); //$NON-NLS-1$
-        assertEquals(exo2a_3b.getRangeAt(1, RestrictionType.NONE), VerseRangeFactory.fromString("Exo 3:1-11")); //$NON-NLS-1$
+        assertEquals(gen1_135.getRangeAt(1, RestrictionType.NONE), VerseRangeFactory.fromString("Gen 1:3"));
+        assertEquals(gen1_135.getRangeAt(2, RestrictionType.NONE), VerseRangeFactory.fromString("Gen 1:5"));
+        assertEquals(exo2a_3b.getRangeAt(0, RestrictionType.NONE), VerseRangeFactory.fromString("Exo 2:1-10"));
+        assertEquals(exo2a_3b.getRangeAt(1, RestrictionType.NONE), VerseRangeFactory.fromString("Exo 3:1-11"));
     }
 
     public void testWriteBooksInPassage() {
@@ -728,83 +728,83 @@
 
     public void testWriteAdd() throws Exception {
         temp = (Passage) gen1_135.clone();
-        temp.add(VerseFactory.fromString("Gen 1:2")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1-3, 5"); //$NON-NLS-1$
-        temp.add(VerseFactory.fromString("Gen 1:4")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1-5"); //$NON-NLS-1$
+        temp.add(VerseFactory.fromString("Gen 1:2"));
+        assertEquals(temp.getName(), "Gen 1:1-3, 5");
+        temp.add(VerseFactory.fromString("Gen 1:4"));
+        assertEquals(temp.getName(), "Gen 1:1-5");
         temp = (Passage) gen1_135.clone();
-        temp.add(VerseRangeFactory.fromString("Gen 1:2-4")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1-5"); //$NON-NLS-1$
+        temp.add(VerseRangeFactory.fromString("Gen 1:2-4"));
+        assertEquals(temp.getName(), "Gen 1:1-5");
         temp = (Passage) gen1_135.clone();
-        temp.add(VerseRangeFactory.fromString("Gen 1:2")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1-3, 5"); //$NON-NLS-1$
-        temp.add(VerseRangeFactory.fromString("Gen 1:4")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1-5"); //$NON-NLS-1$
+        temp.add(VerseRangeFactory.fromString("Gen 1:2"));
+        assertEquals(temp.getName(), "Gen 1:1-3, 5");
+        temp.add(VerseRangeFactory.fromString("Gen 1:4"));
+        assertEquals(temp.getName(), "Gen 1:1-5");
         temp = (Passage) gen1_135.clone();
-        temp.add(VerseRangeFactory.fromString("Gen 1:1-5")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1-5"); //$NON-NLS-1$
+        temp.add(VerseRangeFactory.fromString("Gen 1:1-5"));
+        assertEquals(temp.getName(), "Gen 1:1-5");
     }
 
     public void testWriteAddAll() throws Exception {
         temp = (Passage) gen1_135.clone();
-        temp.addAll(keyf.getKey("Gen 1:2, Gen 1:4")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1-5"); //$NON-NLS-1$
+        temp.addAll(keyf.getKey("Gen 1:2, Gen 1:4"));
+        assertEquals(temp.getName(), "Gen 1:1-5");
     }
 
     public void testWriteClear() {
         temp = (Passage) gen1_135.clone();
         temp.clear();
-        assertEquals(temp.getName(), ""); //$NON-NLS-1$
+        assertEquals(temp.getName(), "");
         temp.clear();
-        assertEquals(temp.getName(), ""); //$NON-NLS-1$
+        assertEquals(temp.getName(), "");
     }
 
     public void testWriteRemove() throws Exception {
         temp = (Passage) gen1_135.clone();
-        temp.remove(VerseFactory.fromString("Gen 1:3")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1, 5"); //$NON-NLS-1$
-        temp.remove(VerseFactory.fromString("Gen 1:5")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1"); //$NON-NLS-1$
-        temp.remove(VerseFactory.fromString("Gen 1:1")); //$NON-NLS-1$
-        assertEquals(temp.getName(), ""); //$NON-NLS-1$
-        temp = (Passage) keyf.getKey("Gen 1:1-5"); //$NON-NLS-1$
-        temp.remove(VerseFactory.fromString("Gen 1:3")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1-2, 4-5"); //$NON-NLS-1$
+        temp.remove(VerseFactory.fromString("Gen 1:3"));
+        assertEquals(temp.getName(), "Gen 1:1, 5");
+        temp.remove(VerseFactory.fromString("Gen 1:5"));
+        assertEquals(temp.getName(), "Gen 1:1");
+        temp.remove(VerseFactory.fromString("Gen 1:1"));
+        assertEquals(temp.getName(), "");
+        temp = (Passage) keyf.getKey("Gen 1:1-5");
+        temp.remove(VerseFactory.fromString("Gen 1:3"));
+        assertEquals(temp.getName(), "Gen 1:1-2, 4-5");
     }
 
     public void testWriteRemoveAllCollection() throws Exception {
-        temp = (Passage) keyf.getKey("Gen 1:1-5"); //$NON-NLS-1$
-        temp.removeAll(keyf.getKey("Gen 1:2, Gen 1:4")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1, 3, 5"); //$NON-NLS-1$
-        temp.removeAll(keyf.getKey("Exo 1:2, Gen 1:4")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1, 3, 5"); //$NON-NLS-1$
-        temp.removeAll(keyf.getKey("Gen 1:2-Rev 22:21")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1"); //$NON-NLS-1$
-        temp.removeAll(keyf.getKey("Gen 1:1")); //$NON-NLS-1$
-        assertEquals(temp.getName(), ""); //$NON-NLS-1$
+        temp = (Passage) keyf.getKey("Gen 1:1-5");
+        temp.removeAll(keyf.getKey("Gen 1:2, Gen 1:4"));
+        assertEquals(temp.getName(), "Gen 1:1, 3, 5");
+        temp.removeAll(keyf.getKey("Exo 1:2, Gen 1:4"));
+        assertEquals(temp.getName(), "Gen 1:1, 3, 5");
+        temp.removeAll(keyf.getKey("Gen 1:2-Rev 22:21"));
+        assertEquals(temp.getName(), "Gen 1:1");
+        temp.removeAll(keyf.getKey("Gen 1:1"));
+        assertEquals(temp.getName(), "");
     }
 
     public void testWriteRetainAllCollection() throws Exception {
-        temp = (Passage) keyf.getKey("Gen 1:1-5"); //$NON-NLS-1$
-        temp.retainAll(keyf.getKey("Gen 1:2, Gen 1:4")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:2, 4"); //$NON-NLS-1$
-        temp.retainAll(keyf.getKey("Exo 1:2, Gen 1:4")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:4"); //$NON-NLS-1$
-        temp.retainAll(keyf.getKey("Gen 1:2-Rev 22:21")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:4"); //$NON-NLS-1$
-        temp.retainAll(keyf.getKey("Gen 1:1")); //$NON-NLS-1$
-        assertEquals(temp.getName(), ""); //$NON-NLS-1$
+        temp = (Passage) keyf.getKey("Gen 1:1-5");
+        temp.retainAll(keyf.getKey("Gen 1:2, Gen 1:4"));
+        assertEquals(temp.getName(), "Gen 1:2, 4");
+        temp.retainAll(keyf.getKey("Exo 1:2, Gen 1:4"));
+        assertEquals(temp.getName(), "Gen 1:4");
+        temp.retainAll(keyf.getKey("Gen 1:2-Rev 22:21"));
+        assertEquals(temp.getName(), "Gen 1:4");
+        temp.retainAll(keyf.getKey("Gen 1:1"));
+        assertEquals(temp.getName(), "");
 
         temp.addAll(grace);
         assertEquals(temp.countVerses(), grace.countVerses());
         temp.retainAll(gen_rev);
         assertEquals(temp, grace);
-        temp.retainAll(keyf.getKey("gen")); //$NON-NLS-1$
+        temp.retainAll(keyf.getKey("gen"));
         assertEquals(temp.countVerses(), 10);
-        temp.retainAll(keyf.getKey("gen 35:1-rev")); //$NON-NLS-1$
+        temp.retainAll(keyf.getKey("gen 35:1-rev"));
         assertEquals(temp.countVerses(), 4);
-        temp.retainAll(keyf.getKey("exo-rev")); //$NON-NLS-1$
-        assertEquals(temp.getName(), ""); //$NON-NLS-1$
+        temp.retainAll(keyf.getKey("exo-rev"));
+        assertEquals(temp.getName(), "");
     }
 
     public void testWriteObject() throws Exception {
@@ -813,7 +813,7 @@
             hard.add(new Verse(i));
         }
 
-        File test_dat = new File("test.dat"); //$NON-NLS-1$
+        File test_dat = new File("test.dat");
 
         FileOutputStream file_out = new FileOutputStream(test_dat);
         ObjectOutputStream obj_out = new ObjectOutputStream(file_out);
@@ -841,7 +841,7 @@
     }
 
     public void testWriteDescription() throws Exception {
-        File test_dat = new File("test.dat"); //$NON-NLS-1$
+        File test_dat = new File("test.dat");
         FileWriter wout = new FileWriter(test_dat);
         gen1_135.writeDescription(wout);
         wout.close();
@@ -857,8 +857,8 @@
 
     public void testSpecial() throws Exception {
         // Some special tests for known breakages
-        Passage ich5l = (Passage) keyf.getKey("1ch 5"); //$NON-NLS-1$
-        Passage ich5u = (Passage) keyf.getKey("1Ch 5"); //$NON-NLS-1$
+        Passage ich5l = (Passage) keyf.getKey("1ch 5");
+        Passage ich5u = (Passage) keyf.getKey("1Ch 5");
         assertEquals(ich5l, ich5u);
     }
 }

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageTally2Test.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageTally2Test.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageTally2Test.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -93,9 +93,9 @@
         exo23 = new Verse(2, 2, 3);
         exo3b = new Verse(2, 3, 11);
 
-        gen1_135 = (Passage) keyf.getKey("Gen 1:1, Gen 1:3, Gen 1:5"); //$NON-NLS-1$
-        gen123_1 = (Passage) keyf.getKey("Gen 1:1, Gen 2:1, Gen 3:1"); //$NON-NLS-1$
-        gen1_157 = (Passage) keyf.getKey("Gen 1:1, Gen 1:5, Gen 1:7"); //$NON-NLS-1$
+        gen1_135 = (Passage) keyf.getKey("Gen 1:1, Gen 1:3, Gen 1:5");
+        gen123_1 = (Passage) keyf.getKey("Gen 1:1, Gen 2:1, Gen 3:1");
+        gen1_157 = (Passage) keyf.getKey("Gen 1:1, Gen 1:5, Gen 1:7");
 
         tally.setOrdering(PassageTally.ORDER_TALLY);
         empty.setOrdering(PassageTally.ORDER_TALLY);
@@ -115,38 +115,38 @@
     }
 
     public void testGetName() {
-        assertEquals(tally.getName(0), "Gen 1:1, 5, 3, 7, 2:1, 3:1"); //$NON-NLS-1$
-        assertEquals(tally.getName(1), "Gen 1:1"); //$NON-NLS-1$
-        assertEquals(tally.getName(2), "Gen 1:1, 5"); //$NON-NLS-1$
-        assertEquals(tally.getName(3), "Gen 1:1, 5, 3"); //$NON-NLS-1$
-        assertEquals(tally.getName(4), "Gen 1:1, 5, 3, 7"); //$NON-NLS-1$
-        assertEquals(tally.getName(5), "Gen 1:1, 5, 3, 7, 2:1"); //$NON-NLS-1$
-        assertEquals(tally.getName(6), "Gen 1:1, 5, 3, 7, 2:1, 3:1"); //$NON-NLS-1$
-        assertEquals(tally.getName(7), "Gen 1:1, 5, 3, 7, 2:1, 3:1"); //$NON-NLS-1$
-        assertEquals(tally.getName(8), "Gen 1:1, 5, 3, 7, 2:1, 3:1"); //$NON-NLS-1$
-        assertEquals(tally.getName(9), "Gen 1:1, 5, 3, 7, 2:1, 3:1"); //$NON-NLS-1$
-        assertEquals(tally.getName(10), "Gen 1:1, 5, 3, 7, 2:1, 3:1"); //$NON-NLS-1$
-        assertEquals(empty.getName(0), ""); //$NON-NLS-1$
-        assertEquals(empty.getName(1), ""); //$NON-NLS-1$
-        assertEquals(empty.getName(2), ""); //$NON-NLS-1$
-        assertEquals(empty.getName(3), ""); //$NON-NLS-1$
-        assertEquals(empty.getName(4), ""); //$NON-NLS-1$
-        assertEquals(empty.getName(5), ""); //$NON-NLS-1$
-        assertEquals(empty.getName(6), ""); //$NON-NLS-1$
-        assertEquals(empty.getName(7), ""); //$NON-NLS-1$
-        assertEquals(empty.getName(8), ""); //$NON-NLS-1$
-        assertEquals(empty.getName(9), ""); //$NON-NLS-1$
-        assertEquals(empty.getName(10), ""); //$NON-NLS-1$
+        assertEquals(tally.getName(0), "Gen 1:1, 5, 3, 7, 2:1, 3:1");
+        assertEquals(tally.getName(1), "Gen 1:1");
+        assertEquals(tally.getName(2), "Gen 1:1, 5");
+        assertEquals(tally.getName(3), "Gen 1:1, 5, 3");
+        assertEquals(tally.getName(4), "Gen 1:1, 5, 3, 7");
+        assertEquals(tally.getName(5), "Gen 1:1, 5, 3, 7, 2:1");
+        assertEquals(tally.getName(6), "Gen 1:1, 5, 3, 7, 2:1, 3:1");
+        assertEquals(tally.getName(7), "Gen 1:1, 5, 3, 7, 2:1, 3:1");
+        assertEquals(tally.getName(8), "Gen 1:1, 5, 3, 7, 2:1, 3:1");
+        assertEquals(tally.getName(9), "Gen 1:1, 5, 3, 7, 2:1, 3:1");
+        assertEquals(tally.getName(10), "Gen 1:1, 5, 3, 7, 2:1, 3:1");
+        assertEquals(empty.getName(0), "");
+        assertEquals(empty.getName(1), "");
+        assertEquals(empty.getName(2), "");
+        assertEquals(empty.getName(3), "");
+        assertEquals(empty.getName(4), "");
+        assertEquals(empty.getName(5), "");
+        assertEquals(empty.getName(6), "");
+        assertEquals(empty.getName(7), "");
+        assertEquals(empty.getName(8), "");
+        assertEquals(empty.getName(9), "");
+        assertEquals(empty.getName(10), "");
     }
 
     public void testToString() {
-        assertEquals(tally.toString(), "Gen 1:1, 5, 3, 7, 2:1, 3:1"); //$NON-NLS-1$
-        assertEquals(empty.toString(), ""); //$NON-NLS-1$
+        assertEquals(tally.toString(), "Gen 1:1, 5, 3, 7, 2:1, 3:1");
+        assertEquals(empty.toString(), "");
     }
 
     public void testGetOrderedNameAndTally() {
-        assertEquals(tally.getNameAndTally(), "Gen 1:1 (100%), Gen 1:5 (66%), Gen 1:3 (33%), Gen 1:7 (33%), Gen 2:1 (33%), Gen 3:1 (33%)"); //$NON-NLS-1$
-        assertEquals(empty.getNameAndTally(), ""); //$NON-NLS-1$
+        assertEquals(tally.getNameAndTally(), "Gen 1:1 (100%), Gen 1:5 (66%), Gen 1:3 (33%), Gen 1:7 (33%), Gen 2:1 (33%), Gen 3:1 (33%)");
+        assertEquals(empty.getNameAndTally(), "");
     }
 
     public void testAddPassageListener() throws Exception {
@@ -154,12 +154,12 @@
         temp = (PassageTally) tally.clone();
         temp.addPassageListener(li);
         assertTrue(li.check(0, 0, 0));
-        temp.add(VerseFactory.fromString("Gen 1:7")); //$NON-NLS-1$
+        temp.add(VerseFactory.fromString("Gen 1:7"));
         assertTrue(li.check(1, 0, 0));
-        temp.add(VerseFactory.fromString("Gen 1:9")); //$NON-NLS-1$
+        temp.add(VerseFactory.fromString("Gen 1:9"));
         assertTrue(li.check(2, 0, 0));
         temp.removePassageListener(li);
-        temp.add(VerseFactory.fromString("Gen 1:11")); //$NON-NLS-1$
+        temp.add(VerseFactory.fromString("Gen 1:11"));
         assertTrue(li.check(2, 0, 0));
     }
 
@@ -173,17 +173,17 @@
     public void testVerseIterator() throws Exception {
         Iterator it = tally.iterator();
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseFactory.fromString("Gen 1:1")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseFactory.fromString("Gen 1:1"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseFactory.fromString("Gen 1:5")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseFactory.fromString("Gen 1:5"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseFactory.fromString("Gen 1:3")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseFactory.fromString("Gen 1:3"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseFactory.fromString("Gen 1:7")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseFactory.fromString("Gen 1:7"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseFactory.fromString("Gen 2:1")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseFactory.fromString("Gen 2:1"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseFactory.fromString("Gen 3:1")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseFactory.fromString("Gen 3:1"));
         assertTrue(!it.hasNext());
         it = empty.iterator();
         assertTrue(!it.hasNext());
@@ -192,17 +192,17 @@
     public void testRangeIterator() throws Exception {
         Iterator it = tally.rangeIterator(RestrictionType.NONE);
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:1")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:1"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:5")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:5"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:3")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:3"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:7")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 1:7"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 2:1")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 2:1"));
         assertTrue(it.hasNext());
-        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 3:1")); //$NON-NLS-1$
+        assertEquals(it.next(), VerseRangeFactory.fromString("Gen 3:1"));
         assertTrue(!it.hasNext());
         it = empty.rangeIterator(RestrictionType.NONE);
         assertTrue(!it.hasNext());
@@ -241,13 +241,13 @@
 
     public void testAdd() throws Exception {
         temp = (PassageTally) tally.clone();
-        temp.add(VerseFactory.fromString("Gen 1:2")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1, 5, 2, 3, 7, 2:1, 3:1"); //$NON-NLS-1$
-        temp.add(VerseFactory.fromString("Gen 1:4")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1, 5, 2, 3, 4, 7, 2:1, 3:1"); //$NON-NLS-1$
+        temp.add(VerseFactory.fromString("Gen 1:2"));
+        assertEquals(temp.getName(), "Gen 1:1, 5, 2, 3, 7, 2:1, 3:1");
+        temp.add(VerseFactory.fromString("Gen 1:4"));
+        assertEquals(temp.getName(), "Gen 1:1, 5, 2, 3, 4, 7, 2:1, 3:1");
         temp = (PassageTally) tally.clone();
-        temp.add(VerseRangeFactory.fromString("Gen 1:2-4")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1, 3, 5, 2, 4, 7, 2:1, 3:1"); //$NON-NLS-1$
+        temp.add(VerseRangeFactory.fromString("Gen 1:2-4"));
+        assertEquals(temp.getName(), "Gen 1:1, 3, 5, 2, 4, 7, 2:1, 3:1");
         try {
             temp.addAll((Key) null);
             fail();
@@ -257,29 +257,29 @@
 
     public void testUnAdd() throws Exception {
         temp = (PassageTally) tally.clone();
-        temp.unAdd(VerseFactory.fromString("Gen 1:5")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1, 3, 5, 7, 2:1, 3:1"); //$NON-NLS-1$
-        temp.unAdd(VerseFactory.fromString("Gen 1:5")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1, 3, 7, 2:1, 3:1"); //$NON-NLS-1$
-        temp.unAdd(VerseFactory.fromString("Gen 1:5")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1, 3, 7, 2:1, 3:1"); //$NON-NLS-1$
+        temp.unAdd(VerseFactory.fromString("Gen 1:5"));
+        assertEquals(temp.getName(), "Gen 1:1, 3, 5, 7, 2:1, 3:1");
+        temp.unAdd(VerseFactory.fromString("Gen 1:5"));
+        assertEquals(temp.getName(), "Gen 1:1, 3, 7, 2:1, 3:1");
+        temp.unAdd(VerseFactory.fromString("Gen 1:5"));
+        assertEquals(temp.getName(), "Gen 1:1, 3, 7, 2:1, 3:1");
     }
 
     public void testAddAll() throws Exception {
         temp = (PassageTally) tally.clone();
-        temp.addAll(keyf.getKey("Gen 1:2, Gen 1:4")); //$NON-NLS-1$
-        assertEquals(temp.getName(), "Gen 1:1, 5, 2, 3, 4, 7, 2:1, 3:1"); //$NON-NLS-1$
+        temp.addAll(keyf.getKey("Gen 1:2, Gen 1:4"));
+        assertEquals(temp.getName(), "Gen 1:1, 5, 2, 3, 4, 7, 2:1, 3:1");
     }
 
     public void testClear() {
         temp = (PassageTally) tally.clone();
         temp.clear();
-        assertEquals(temp.getName(), ""); //$NON-NLS-1$
+        assertEquals(temp.getName(), "");
         temp.clear();
-        assertEquals(temp.getName(), ""); //$NON-NLS-1$
+        assertEquals(temp.getName(), "");
         temp = (PassageTally) empty.clone();
         temp.clear();
-        assertEquals(temp.getName(), ""); //$NON-NLS-1$
+        assertEquals(temp.getName(), "");
     }
 
     public void testBlur() {
@@ -287,7 +287,7 @@
         temp.blur(1, RestrictionType.NONE);
         assertEquals(
                 temp.getNameAndTally(),
-                "Gen 1:1 (100%), Gen 1:2 (100%), Gen 1:4 (75%), Gen 1:5 (75%), Gen 1:6 (75%), Gen 1:3 (50%), Gen 1:7 (50%), Gen 2:1 (50%), Gen 3:1 (50%), Gen 1:8 (25%), Gen 1:31 (25%), Gen 2:2 (25%), Gen 2:25 (25%), Gen 3:2 (25%)"); //$NON-NLS-1$
+                "Gen 1:1 (100%), Gen 1:2 (100%), Gen 1:4 (75%), Gen 1:5 (75%), Gen 1:6 (75%), Gen 1:3 (50%), Gen 1:7 (50%), Gen 2:1 (50%), Gen 3:1 (50%), Gen 1:8 (25%), Gen 1:31 (25%), Gen 2:2 (25%), Gen 2:25 (25%), Gen 3:2 (25%)");
         // temp = (PassageTally) tally.clone();
         // temp.blur(1, Verse.RESTRICT_CHAPTER);
         // assertEquals(temp.getOrderedNameAndTally(),
@@ -297,7 +297,7 @@
     public void testFlatten() {
         temp = (PassageTally) tally.clone();
         temp.flatten();
-        assertEquals(temp.getName(), "Gen 1:1, 3, 5, 7, 2:1, 3:1"); //$NON-NLS-1$
+        assertEquals(temp.getName(), "Gen 1:1, 3, 5, 7, 2:1, 3:1");
     }
 
     public void testObject() throws Exception {

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageUtilTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageUtilTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/passage/PassageUtilTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -75,22 +75,22 @@
         boolean stored_naming = PassageUtil.isPersistentNaming();
         PassageUtil.setPersistentNaming(false);
         assertTrue(!PassageUtil.isPersistentNaming());
-        assertEquals(VerseFactory.fromString("Genesis 1 1").toString(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Gen 1 1").toString(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Genesis 1:1").toString(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Gen 1 1").toString(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("g 1 1").toString(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("g").toString(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("G:1:1").toString(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(VerseFactory.fromString("Genesis 1 1").toString(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("Gen 1 1").toString(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("Genesis 1:1").toString(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("Gen 1 1").toString(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("g 1 1").toString(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("g").toString(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("G:1:1").toString(), "Gen 1:1");
         PassageUtil.setPersistentNaming(true);
         assertTrue(PassageUtil.isPersistentNaming());
-        assertEquals(VerseFactory.fromString("Genesis 1 1").toString(), "Genesis 1 1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Gen 1 1").toString(), "Gen 1 1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Genesis 1:1").toString(), "Genesis 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Gen 1 1").toString(), "Gen 1 1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("g 1 1").toString(), "g 1 1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("g").toString(), "g"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("G:1:1").toString(), "G:1:1"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(VerseFactory.fromString("Genesis 1 1").toString(), "Genesis 1 1");
+        assertEquals(VerseFactory.fromString("Gen 1 1").toString(), "Gen 1 1");
+        assertEquals(VerseFactory.fromString("Genesis 1:1").toString(), "Genesis 1:1");
+        assertEquals(VerseFactory.fromString("Gen 1 1").toString(), "Gen 1 1");
+        assertEquals(VerseFactory.fromString("g 1 1").toString(), "g 1 1");
+        assertEquals(VerseFactory.fromString("g").toString(), "g");
+        assertEquals(VerseFactory.fromString("G:1:1").toString(), "G:1:1");
         PassageUtil.setPersistentNaming(stored_naming);
     }
 
@@ -331,9 +331,9 @@
     }
 
     public void testBinaryRepresentation() throws Exception {
-        Passage gen1_135 = (Passage) keyf.getKey("Gen 1:1, Gen 1:3, Gen 1:5"); //$NON-NLS-1$
-        Passage exo2a_3b = (Passage) keyf.getKey("Exo 2:1-10, Exo 3:1-11"); //$NON-NLS-1$
-        Passage gen_rev = (Passage) keyf.getKey("Gen 1:1-Rev 22:21"); //$NON-NLS-1$
+        Passage gen1_135 = (Passage) keyf.getKey("Gen 1:1, Gen 1:3, Gen 1:5");
+        Passage exo2a_3b = (Passage) keyf.getKey("Exo 2:1-10, Exo 3:1-11");
+        Passage gen_rev = (Passage) keyf.getKey("Gen 1:1-Rev 22:21");
         Passage hard = (Passage) keyf.createEmptyKeyList();
         Passage empty = (Passage) keyf.createEmptyKeyList();
 

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseRangeTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseRangeTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseRangeTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -109,55 +109,55 @@
     }
 
     public void testNewViaString() throws Exception {
-        assertEquals(gen11_1, VerseRangeFactory.fromString("Gen 1:1-1")); //$NON-NLS-1$
-        assertEquals(gen11_2, VerseRangeFactory.fromString("Gen 1:1-2")); //$NON-NLS-1$
-        assertEquals(gen11_2, VerseRangeFactory.fromString("Gen 1:1-1:2")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-50:26")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-50:$")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-50:ff")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-$:26")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-ff:26")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-$:$")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-$:ff")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-ff:$")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-ff:ff")); //$NON-NLS-1$
-        assertEquals(gen_ex1, VerseRangeFactory.fromString("Gen 1:1-Exo 1:1")); //$NON-NLS-1$
-        assertEquals(gen_exo, VerseRangeFactory.fromString("Gen-Exo")); //$NON-NLS-1$
-        assertEquals(gen_rev, VerseRangeFactory.fromString("Gen 1:1-Rev 22:21")); //$NON-NLS-1$
-        assertEquals(gen_rev, VerseRangeFactory.fromString("Gen 1:1-Rev 22:$")); //$NON-NLS-1$
-        assertEquals(gen_rev, VerseRangeFactory.fromString("Gen 1:1-Rev 22:ff")); //$NON-NLS-1$
-        assertEquals(gen11_1, VerseRangeFactory.fromString("Gen 1:1")); //$NON-NLS-1$
-        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21")); //$NON-NLS-1$
-        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-21")); //$NON-NLS-1$
-        assertEquals(gen11_1, VerseRangeFactory.fromString("Gen 1:1-Gen 1:1")); //$NON-NLS-1$
-        assertEquals(gen11_2, VerseRangeFactory.fromString("Gen 1:1-Gen 1:2")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-50:26")); //$NON-NLS-1$
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-Gen 50:26")); //$NON-NLS-1$
-        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-Rev 22:21")); //$NON-NLS-1$
-        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-Rev 22:ff")); //$NON-NLS-1$
-        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-Rev 22:$")); //$NON-NLS-1$
-        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-$")); //$NON-NLS-1$
-        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-21")); //$NON-NLS-1$
-        assertEquals(gen11_1, VerseRangeFactory.fromString("Gen 1:1-1:1")); //$NON-NLS-1$
-        assertEquals(gen_ex1, VerseRangeFactory.fromString("g 1 1-e 1 1")); //$NON-NLS-1$
-        assertEquals(gen_ex1, VerseRangeFactory.fromString("g 1-e 1 1")); //$NON-NLS-1$
-        assertEquals(gen_ex1, VerseRangeFactory.fromString("Genesis 1:1-e 1 1")); //$NON-NLS-1$
-        assertEquals(gen_ex1, VerseRangeFactory.fromString("g-e:1:1")); //$NON-NLS-1$
+        assertEquals(gen11_1, VerseRangeFactory.fromString("Gen 1:1-1"));
+        assertEquals(gen11_2, VerseRangeFactory.fromString("Gen 1:1-2"));
+        assertEquals(gen11_2, VerseRangeFactory.fromString("Gen 1:1-1:2"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-50:26"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-50:$"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-50:ff"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-$:26"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-ff:26"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-$:$"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-$:ff"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-ff:$"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-ff:ff"));
+        assertEquals(gen_ex1, VerseRangeFactory.fromString("Gen 1:1-Exo 1:1"));
+        assertEquals(gen_exo, VerseRangeFactory.fromString("Gen-Exo"));
+        assertEquals(gen_rev, VerseRangeFactory.fromString("Gen 1:1-Rev 22:21"));
+        assertEquals(gen_rev, VerseRangeFactory.fromString("Gen 1:1-Rev 22:$"));
+        assertEquals(gen_rev, VerseRangeFactory.fromString("Gen 1:1-Rev 22:ff"));
+        assertEquals(gen11_1, VerseRangeFactory.fromString("Gen 1:1"));
+        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21"));
+        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-21"));
+        assertEquals(gen11_1, VerseRangeFactory.fromString("Gen 1:1-Gen 1:1"));
+        assertEquals(gen11_2, VerseRangeFactory.fromString("Gen 1:1-Gen 1:2"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-50:26"));
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen 1:1-Gen 50:26"));
+        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-Rev 22:21"));
+        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-Rev 22:ff"));
+        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-Rev 22:$"));
+        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-$"));
+        assertEquals(rev99_1, VerseRangeFactory.fromString("Rev 22:21-21"));
+        assertEquals(gen11_1, VerseRangeFactory.fromString("Gen 1:1-1:1"));
+        assertEquals(gen_ex1, VerseRangeFactory.fromString("g 1 1-e 1 1"));
+        assertEquals(gen_ex1, VerseRangeFactory.fromString("g 1-e 1 1"));
+        assertEquals(gen_ex1, VerseRangeFactory.fromString("Genesis 1:1-e 1 1"));
+        assertEquals(gen_ex1, VerseRangeFactory.fromString("g-e:1:1"));
         try {
-            VerseRangeFactory.fromString("Gen 1:1-Gen 1:2-Gen 1:3");fail();} //$NON-NLS-1$
+            VerseRangeFactory.fromString("Gen 1:1-Gen 1:2-Gen 1:3");fail();}
         catch (NoSuchVerseException ex) {
         }
         try {
-            VerseRangeFactory.fromString("Gen 1:1-2-3");fail();} //$NON-NLS-1$
+            VerseRangeFactory.fromString("Gen 1:1-2-3");fail();}
         catch (NoSuchVerseException ex) {
         }
         try {
-            VerseRangeFactory.fromString("b 1:1-2");fail();} //$NON-NLS-1$
+            VerseRangeFactory.fromString("b 1:1-2");fail();}
         catch (NoSuchVerseException ex) {
         }
         try {
-            VerseRangeFactory.fromString("g-f 1 2");fail();} //$NON-NLS-1$
+            VerseRangeFactory.fromString("g-f 1 2");fail();}
         catch (NoSuchVerseException ex) {
         }
         try {
@@ -165,42 +165,42 @@
             fail();
         } catch (NoSuchVerseException ex) {
         }
-        assertEquals(gen_all, VerseRangeFactory.fromString("Gen")); //$NON-NLS-1$
-        assertEquals(rev99_9, VerseRangeFactory.fromString("Rev 22")); //$NON-NLS-1$
-        assertEquals(rev11_9, VerseRangeFactory.fromString("Rev")); //$NON-NLS-1$
+        assertEquals(gen_all, VerseRangeFactory.fromString("Gen"));
+        assertEquals(rev99_9, VerseRangeFactory.fromString("Rev 22"));
+        assertEquals(rev11_9, VerseRangeFactory.fromString("Rev"));
     }
 
     public void testToString() {
-        assertEquals(gen11_1.toString(), "Gen 1:1"); //$NON-NLS-1$
-        assertEquals(gen11_2.toString(), "Gen 1:1-2"); //$NON-NLS-1$
-        assertEquals(gen11_9.toString(), "Gen 1"); //$NON-NLS-1$
-        assertEquals(gen11_a.toString(), "Gen 1:1-2:1"); //$NON-NLS-1$
-        assertEquals(gen12_1.toString(), "Gen 1:2"); //$NON-NLS-1$
-        assertEquals(gen_all.toString(), "Gen"); //$NON-NLS-1$
-        assertEquals(gen_ex1.toString(), "Gen 1:1-Exo 1:1"); //$NON-NLS-1$
-        assertEquals(gen_rev.toString(), "Gen-Rev"); //$NON-NLS-1$
-        assertEquals(rev99_9.toString(), "Rev 22"); //$NON-NLS-1$
-        assertEquals(rev11_9.toString(), "Rev"); //$NON-NLS-1$
-        assertEquals(rev99_1.toString(), "Rev 22:21"); //$NON-NLS-1$
+        assertEquals(gen11_1.toString(), "Gen 1:1");
+        assertEquals(gen11_2.toString(), "Gen 1:1-2");
+        assertEquals(gen11_9.toString(), "Gen 1");
+        assertEquals(gen11_a.toString(), "Gen 1:1-2:1");
+        assertEquals(gen12_1.toString(), "Gen 1:2");
+        assertEquals(gen_all.toString(), "Gen");
+        assertEquals(gen_ex1.toString(), "Gen 1:1-Exo 1:1");
+        assertEquals(gen_rev.toString(), "Gen-Rev");
+        assertEquals(rev99_9.toString(), "Rev 22");
+        assertEquals(rev11_9.toString(), "Rev");
+        assertEquals(rev99_1.toString(), "Rev 22:21");
     }
 
     public void testPersistentNaming() throws Exception {
         PassageUtil.setPersistentNaming(false);
-        assertEquals(VerseRangeFactory.fromString("1corinth 8-9").toString(), "1Cor 8-9"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseRangeFactory.fromString("Genesis 1 1").toString(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseRangeFactory.fromString("g 1 1-e 1 1").toString(), "Gen 1:1-Exo 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseRangeFactory.fromString("g-e:1:10").toString(), "Gen 1:1-Exo 1:10"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseRangeFactory.fromString("g 1-e 2").toString(), "Gen 1-Exo 2"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(VerseRangeFactory.fromString("1corinth 8-9").toString(), "1Cor 8-9");
+        assertEquals(VerseRangeFactory.fromString("Genesis 1 1").toString(), "Gen 1:1");
+        assertEquals(VerseRangeFactory.fromString("g 1 1-e 1 1").toString(), "Gen 1:1-Exo 1:1");
+        assertEquals(VerseRangeFactory.fromString("g-e:1:10").toString(), "Gen 1:1-Exo 1:10");
+        assertEquals(VerseRangeFactory.fromString("g 1-e 2").toString(), "Gen 1-Exo 2");
         PassageUtil.setPersistentNaming(true);
-        assertEquals(VerseRangeFactory.fromString("Genesis 1 1").toString(), "Genesis 1 1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseRangeFactory.fromString("g 1 1-e 1 1").toString(), "g 1 1-e 1 1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseRangeFactory.fromString("g-e:1:1").toString(), "g-e:1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseRangeFactory.fromString("g 1-e 2").toString(), "g 1-e 2"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(VerseRangeFactory.fromString("Genesis 1 1").toString(), "Genesis 1 1");
+        assertEquals(VerseRangeFactory.fromString("g 1 1-e 1 1").toString(), "g 1 1-e 1 1");
+        assertEquals(VerseRangeFactory.fromString("g-e:1:1").toString(), "g-e:1:1");
+        assertEquals(VerseRangeFactory.fromString("g 1-e 2").toString(), "g 1-e 2");
         PassageUtil.setPersistentNaming(false);
     }
 
     public void testNewViaVerseInt() throws Exception {
-        assertEquals(gen11_1, RestrictionType.NONE.toRange(VerseFactory.fromString("Gen 1:1"), 1)); //$NON-NLS-1$
+        assertEquals(gen11_1, RestrictionType.NONE.toRange(VerseFactory.fromString("Gen 1:1"), 1));
     }
 
     public void testNewViaVerseIntBoolean() {
@@ -396,24 +396,24 @@
     }
 
     public void testGetName() {
-        assertEquals(gen11_1.getName(), "Gen 1:1"); //$NON-NLS-1$
-        assertEquals(gen11_2.getName(), "Gen 1:1-2"); //$NON-NLS-1$
-        assertEquals(gen11_9.getName(), "Gen 1"); //$NON-NLS-1$
-        assertEquals(gen11_a.getName(), "Gen 1:1-2:1"); //$NON-NLS-1$
-        assertEquals(gen12_1.getName(), "Gen 1:2"); //$NON-NLS-1$
-        assertEquals(gen_all.getName(), "Gen"); //$NON-NLS-1$
-        assertEquals(gen_ex1.getName(), "Gen 1:1-Exo 1:1"); //$NON-NLS-1$
-        assertEquals(gen_rev.getName(), "Gen-Rev"); //$NON-NLS-1$
-        assertEquals(rev99_9.getName(), "Rev 22"); //$NON-NLS-1$
-        assertEquals(rev11_9.getName(), "Rev"); //$NON-NLS-1$
-        assertEquals(rev99_1.getName(), "Rev 22:21"); //$NON-NLS-1$
+        assertEquals(gen11_1.getName(), "Gen 1:1");
+        assertEquals(gen11_2.getName(), "Gen 1:1-2");
+        assertEquals(gen11_9.getName(), "Gen 1");
+        assertEquals(gen11_a.getName(), "Gen 1:1-2:1");
+        assertEquals(gen12_1.getName(), "Gen 1:2");
+        assertEquals(gen_all.getName(), "Gen");
+        assertEquals(gen_ex1.getName(), "Gen 1:1-Exo 1:1");
+        assertEquals(gen_rev.getName(), "Gen-Rev");
+        assertEquals(rev99_9.getName(), "Rev 22");
+        assertEquals(rev11_9.getName(), "Rev");
+        assertEquals(rev99_1.getName(), "Rev 22:21");
     }
 
     public void testGetNameVerse() {
-        assertEquals(gen11_2.getName(gen11), "1-2"); //$NON-NLS-1$
-        assertEquals(gen12_1.getName(gen11), "2"); //$NON-NLS-1$
-        assertEquals(rev99_9.getName(gen11), "Rev 22"); //$NON-NLS-1$
-        assertEquals(rev99_9.getName(null), "Rev 22"); //$NON-NLS-1$
+        assertEquals(gen11_2.getName(gen11), "1-2");
+        assertEquals(gen12_1.getName(gen11), "2");
+        assertEquals(rev99_9.getName(gen11), "Rev 22");
+        assertEquals(rev99_9.getName(null), "Rev 22");
     }
 
     public void testGetStart() {
@@ -494,15 +494,15 @@
         assertTrue(gen11_1.adjacentTo(gen12_1));
         assertTrue(gen_all.adjacentTo(gen_ex1));
         assertTrue(gen_all.adjacentTo(gen_rev));
-        assertTrue(VerseRangeFactory.fromString("Gen 1:10-11").adjacentTo(VerseRangeFactory.fromString("Gen 1:12-13"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:10-12").adjacentTo(VerseRangeFactory.fromString("Gen 1:11-13"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:10-13").adjacentTo(VerseRangeFactory.fromString("Gen 1:11-12"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:10-13").adjacentTo(VerseRangeFactory.fromString("Gen 1:10-13"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:11-12").adjacentTo(VerseRangeFactory.fromString("Gen 1:10-13"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:11-13").adjacentTo(VerseRangeFactory.fromString("Gen 1:10-12"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:12-13").adjacentTo(VerseRangeFactory.fromString("Gen 1:10-11"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(!VerseRangeFactory.fromString("Gen 1:10-11").adjacentTo(VerseRangeFactory.fromString("Gen 1:13-14"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(!VerseRangeFactory.fromString("Gen 1:13-14").adjacentTo(VerseRangeFactory.fromString("Gen 1:10-11"))); //$NON-NLS-1$ //$NON-NLS-2$
+        assertTrue(VerseRangeFactory.fromString("Gen 1:10-11").adjacentTo(VerseRangeFactory.fromString("Gen 1:12-13")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:10-12").adjacentTo(VerseRangeFactory.fromString("Gen 1:11-13")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:10-13").adjacentTo(VerseRangeFactory.fromString("Gen 1:11-12")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:10-13").adjacentTo(VerseRangeFactory.fromString("Gen 1:10-13")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:11-12").adjacentTo(VerseRangeFactory.fromString("Gen 1:10-13")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:11-13").adjacentTo(VerseRangeFactory.fromString("Gen 1:10-12")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:12-13").adjacentTo(VerseRangeFactory.fromString("Gen 1:10-11")));
+        assertTrue(!VerseRangeFactory.fromString("Gen 1:10-11").adjacentTo(VerseRangeFactory.fromString("Gen 1:13-14")));
+        assertTrue(!VerseRangeFactory.fromString("Gen 1:13-14").adjacentTo(VerseRangeFactory.fromString("Gen 1:10-11")));
         try {
             gen_all.adjacentTo(null);
             fail();
@@ -511,15 +511,15 @@
     }
 
     public void testOverlaps() throws Exception {
-        assertTrue(VerseRangeFactory.fromString("Gen 1:10-11").overlaps(VerseRangeFactory.fromString("Gen 1:11-12"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:10-12").overlaps(VerseRangeFactory.fromString("Gen 1:11-13"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:10-13").overlaps(VerseRangeFactory.fromString("Gen 1:11-12"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:10-13").overlaps(VerseRangeFactory.fromString("Gen 1:10-13"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:11-12").overlaps(VerseRangeFactory.fromString("Gen 1:10-13"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:11-13").overlaps(VerseRangeFactory.fromString("Gen 1:10-12"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:11-12").overlaps(VerseRangeFactory.fromString("Gen 1:10-11"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(!VerseRangeFactory.fromString("Gen 1:10-11").overlaps(VerseRangeFactory.fromString("Gen 1:12-13"))); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(!VerseRangeFactory.fromString("Gen 1:12-13").overlaps(VerseRangeFactory.fromString("Gen 1:10-11"))); //$NON-NLS-1$ //$NON-NLS-2$
+        assertTrue(VerseRangeFactory.fromString("Gen 1:10-11").overlaps(VerseRangeFactory.fromString("Gen 1:11-12")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:10-12").overlaps(VerseRangeFactory.fromString("Gen 1:11-13")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:10-13").overlaps(VerseRangeFactory.fromString("Gen 1:11-12")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:10-13").overlaps(VerseRangeFactory.fromString("Gen 1:10-13")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:11-12").overlaps(VerseRangeFactory.fromString("Gen 1:10-13")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:11-13").overlaps(VerseRangeFactory.fromString("Gen 1:10-12")));
+        assertTrue(VerseRangeFactory.fromString("Gen 1:11-12").overlaps(VerseRangeFactory.fromString("Gen 1:10-11")));
+        assertTrue(!VerseRangeFactory.fromString("Gen 1:10-11").overlaps(VerseRangeFactory.fromString("Gen 1:12-13")));
+        assertTrue(!VerseRangeFactory.fromString("Gen 1:12-13").overlaps(VerseRangeFactory.fromString("Gen 1:10-11")));
         try {
             gen_all.overlaps(null);
             fail();
@@ -570,27 +570,27 @@
     }
 
     public void testIsChapter() throws Exception {
-        assertTrue(VerseRangeFactory.fromString("Gen 1").isWholeChapter()); //$NON-NLS-1$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:1-ff").isWholeChapter()); //$NON-NLS-1$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:1-$").isWholeChapter()); //$NON-NLS-1$
-        assertTrue(VerseRangeFactory.fromString("Exo 2").isWholeChapter()); //$NON-NLS-1$
-        assertTrue(VerseRangeFactory.fromString("Exo 2:1-ff").isWholeChapter()); //$NON-NLS-1$
-        assertTrue(VerseRangeFactory.fromString("Exo 2:1-$").isWholeChapter()); //$NON-NLS-1$
-        assertTrue(!VerseRangeFactory.fromString("Num 3:1").isWholeChapter()); //$NON-NLS-1$
-        assertTrue(!VerseRangeFactory.fromString("Num 4:1-5:1").isWholeChapter()); //$NON-NLS-1$
-        assertTrue(!VerseRangeFactory.fromString("Num 5:1-6:ff").isWholeChapter()); //$NON-NLS-1$
-        assertTrue(!VerseRangeFactory.fromString("Lev").isWholeChapter()); //$NON-NLS-1$
+        assertTrue(VerseRangeFactory.fromString("Gen 1").isWholeChapter());
+        assertTrue(VerseRangeFactory.fromString("Gen 1:1-ff").isWholeChapter());
+        assertTrue(VerseRangeFactory.fromString("Gen 1:1-$").isWholeChapter());
+        assertTrue(VerseRangeFactory.fromString("Exo 2").isWholeChapter());
+        assertTrue(VerseRangeFactory.fromString("Exo 2:1-ff").isWholeChapter());
+        assertTrue(VerseRangeFactory.fromString("Exo 2:1-$").isWholeChapter());
+        assertTrue(!VerseRangeFactory.fromString("Num 3:1").isWholeChapter());
+        assertTrue(!VerseRangeFactory.fromString("Num 4:1-5:1").isWholeChapter());
+        assertTrue(!VerseRangeFactory.fromString("Num 5:1-6:ff").isWholeChapter());
+        assertTrue(!VerseRangeFactory.fromString("Lev").isWholeChapter());
     }
 
     public void testIsBook() throws Exception {
-        assertTrue(VerseRangeFactory.fromString("Gen").isWholeBook()); //$NON-NLS-1$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:1-Gen 50:ff").isWholeBook()); //$NON-NLS-1$
-        assertTrue(VerseRangeFactory.fromString("Gen 1:1-Gen 50:$").isWholeBook()); //$NON-NLS-1$
-        assertTrue(VerseRangeFactory.fromString("Gen 1-50:ff").isWholeBook()); //$NON-NLS-1$
-        assertTrue(!VerseRangeFactory.fromString("Num 1:2-Num $:$").isWholeBook()); //$NON-NLS-1$
-        assertTrue(!VerseRangeFactory.fromString("Num 4:1-5:1").isWholeBook()); //$NON-NLS-1$
-        assertTrue(!VerseRangeFactory.fromString("Num 5:1-6:ff").isWholeBook()); //$NON-NLS-1$
-        assertTrue(!VerseRangeFactory.fromString("Lev-Deu 1:1").isWholeBook()); //$NON-NLS-1$
+        assertTrue(VerseRangeFactory.fromString("Gen").isWholeBook());
+        assertTrue(VerseRangeFactory.fromString("Gen 1:1-Gen 50:ff").isWholeBook());
+        assertTrue(VerseRangeFactory.fromString("Gen 1:1-Gen 50:$").isWholeBook());
+        assertTrue(VerseRangeFactory.fromString("Gen 1-50:ff").isWholeBook());
+        assertTrue(!VerseRangeFactory.fromString("Num 1:2-Num $:$").isWholeBook());
+        assertTrue(!VerseRangeFactory.fromString("Num 4:1-5:1").isWholeBook());
+        assertTrue(!VerseRangeFactory.fromString("Num 5:1-6:ff").isWholeBook());
+        assertTrue(!VerseRangeFactory.fromString("Lev-Deu 1:1").isWholeBook());
     }
 
     public void testToVerseArray() {

Modified: trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseTest.java
===================================================================
--- trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseTest.java	2010-10-23 20:24:08 UTC (rev 1994)
+++ trunk/jsword/src/test/java/org/crosswire/jsword/passage/VerseTest.java	2010-10-23 20:39:04 UTC (rev 1995)
@@ -91,101 +91,101 @@
 
     public void testNewViaString() throws Exception {
         assertEquals(gen11, Verse.DEFAULT);
-        assertEquals(gen11, VerseFactory.fromString("Genesis 1 1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("Gen 1 1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("G 1 1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("genesis 1 1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("genesi 1 1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("GENESIS 1 1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("GENESI 1 1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("g 1 1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("g 1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("g")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("gen")); //$NON-NLS-1$
-        assertEquals(rev99, VerseFactory.fromString("rev 22 21")); //$NON-NLS-1$
-        assertEquals(rev99, VerseFactory.fromString("REVE 22 21")); //$NON-NLS-1$
-        assertEquals(rev99, VerseFactory.fromString("REVELATIONS 22 21")); //$NON-NLS-1$
-        assertEquals(gen21, VerseFactory.fromString("g 2")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("g.1.1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("g 1.1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("g.1 1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("g.1:1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("g:1:1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("g:1 1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString(" g 1 1 ")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("gen1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("GEN1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("GENESIS1:1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString("G1    1")); //$NON-NLS-1$
-        assertEquals(gen11, VerseFactory.fromString(" GEN  1  1  ")); //$NON-NLS-1$
+        assertEquals(gen11, VerseFactory.fromString("Genesis 1 1"));
+        assertEquals(gen11, VerseFactory.fromString("Gen 1 1"));
+        assertEquals(gen11, VerseFactory.fromString("G 1 1"));
+        assertEquals(gen11, VerseFactory.fromString("genesis 1 1"));
+        assertEquals(gen11, VerseFactory.fromString("genesi 1 1"));
+        assertEquals(gen11, VerseFactory.fromString("GENESIS 1 1"));
+        assertEquals(gen11, VerseFactory.fromString("GENESI 1 1"));
+        assertEquals(gen11, VerseFactory.fromString("g 1 1"));
+        assertEquals(gen11, VerseFactory.fromString("g 1"));
+        assertEquals(gen11, VerseFactory.fromString("g"));
+        assertEquals(gen11, VerseFactory.fromString("gen"));
+        assertEquals(rev99, VerseFactory.fromString("rev 22 21"));
+        assertEquals(rev99, VerseFactory.fromString("REVE 22 21"));
+        assertEquals(rev99, VerseFactory.fromString("REVELATIONS 22 21"));
+        assertEquals(gen21, VerseFactory.fromString("g 2"));
+        assertEquals(gen11, VerseFactory.fromString("g.1.1"));
+        assertEquals(gen11, VerseFactory.fromString("g 1.1"));
+        assertEquals(gen11, VerseFactory.fromString("g.1 1"));
+        assertEquals(gen11, VerseFactory.fromString("g.1:1"));
+        assertEquals(gen11, VerseFactory.fromString("g:1:1"));
+        assertEquals(gen11, VerseFactory.fromString("g:1 1"));
+        assertEquals(gen11, VerseFactory.fromString(" g 1 1 "));
+        assertEquals(gen11, VerseFactory.fromString("gen1"));
+        assertEquals(gen11, VerseFactory.fromString("GEN1"));
+        assertEquals(gen11, VerseFactory.fromString("GENESIS1:1"));
+        assertEquals(gen11, VerseFactory.fromString("G1    1"));
+        assertEquals(gen11, VerseFactory.fromString(" GEN  1  1  "));
         /*
          * See note in AccuracyType.tokenize() assertEquals(gen11,
-         * VerseFactory.fromString("gen1v1")); //$NON-NLS-1$ assertEquals(gen11,
-         * VerseFactory.fromString("gen 1 v 1")); //$NON-NLS-1$
+         * VerseFactory.fromString("gen1v1")); assertEquals(gen11,
+         * VerseFactory.fromString("gen 1 v 1"));
          * assertEquals(gen11, VerseFactory.fromString("gen 1v1"));
-         * //$NON-NLS-1$ assertEquals(gen11,
-         * VerseFactory.fromString("gen 1  v  1")); //$NON-NLS-1$
+         * assertEquals(gen11,
+         * VerseFactory.fromString("gen 1  v  1"));
          * assertEquals(gen11, VerseFactory.fromString("gen 1  v  1 "));
-         * //$NON-NLS-1$ assertEquals(gen11,
-         * VerseFactory.fromString(" gen 1  v  1 ")); //$NON-NLS-1$
+         * assertEquals(gen11,
+         * VerseFactory.fromString(" gen 1  v  1 "));
          * assertEquals(gen11, VerseFactory.fromString("gen ch1 1"));
          * assertEquals(gen11, VerseFactory.fromString("gen ch 1 1"));
          * assertEquals(gen11, VerseFactory.fromString("gen ch  1 1"));
          * assertEquals(gen11, VerseFactory.fromString("gen ch1v1"));
          * assertEquals(gen11, VerseFactory.fromString(" gen ch 1 v 1 "));
          */
-        assertEquals(gen11, VerseFactory.fromString(" gen 1 1 ")); //$NON-NLS-1$
-        //assertEquals(pro11, VerseFactory.fromString("proverbs 1v1")); //$NON-NLS-1$
+        assertEquals(gen11, VerseFactory.fromString(" gen 1 1 "));
+        //assertEquals(pro11, VerseFactory.fromString("proverbs 1v1"));
         // assertEquals(ch111, VerseFactory.fromString("1chronicles ch1 1"));
-        assertEquals(ssa11, VerseFactory.fromString("2Sa 1:1")); //$NON-NLS-1$
-        assertEquals(ssa11, VerseFactory.fromString("2Sa 1 1")); //$NON-NLS-1$
-        assertEquals(ssa11, VerseFactory.fromString("2Sa1 1")); //$NON-NLS-1$
-        assertEquals(ssa11, VerseFactory.fromString("2 Sa 1 1")); //$NON-NLS-1$
-        assertEquals(ssa11, VerseFactory.fromString("2 Sa1 1")); //$NON-NLS-1$
-        assertEquals(ssa11, VerseFactory.fromString("2Sa1:1")); //$NON-NLS-1$
-        assertEquals(ssa11, VerseFactory.fromString("2 Sa 1 1")); //$NON-NLS-1$
-        assertEquals(ssa11, VerseFactory.fromString("  2  Sa  1  ")); //$NON-NLS-1$
-        assertEquals(ssa11, VerseFactory.fromString("  2  Sa  ")); //$NON-NLS-1$
-        assertEquals(ssa11, VerseFactory.fromString("  2  Sa1  ")); //$NON-NLS-1$
-        assertEquals(ssa11, VerseFactory.fromString("  2  Sa1  1  ")); //$NON-NLS-1$
-        assertEquals(ssa11, VerseFactory.fromString("  2 : Sa1  1  ")); //$NON-NLS-1$
-        assertEquals(rev99, VerseFactory.fromString("Rev 22:$")); //$NON-NLS-1$
-        assertEquals(rev99, VerseFactory.fromString(" Rev 22 ff ")); //$NON-NLS-1$
-        assertEquals(rev99, VerseFactory.fromString("  Rev  22  ff  ")); //$NON-NLS-1$
-        assertEquals(rev99, VerseFactory.fromString("  Rev  22  $  ")); //$NON-NLS-1$
-        assertEquals(jude9, VerseFactory.fromString("Jude $")); //$NON-NLS-1$
-        assertEquals(jude9, VerseFactory.fromString(" Jude  $ ")); //$NON-NLS-1$
-        assertEquals(jude9, VerseFactory.fromString("Jude ff")); //$NON-NLS-1$
-        assertEquals(jude9, VerseFactory.fromString("  Jude  ff  ")); //$NON-NLS-1$
-        assertEquals(VerseFactory.fromString("Deu 1:1"), VerseFactory.fromString("Dt 1:1")); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Mat 1:1"), VerseFactory.fromString("Mt 1:1")); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(ssa11, VerseFactory.fromString("2Sa 1:1"));
+        assertEquals(ssa11, VerseFactory.fromString("2Sa 1 1"));
+        assertEquals(ssa11, VerseFactory.fromString("2Sa1 1"));
+        assertEquals(ssa11, VerseFactory.fromString("2 Sa 1 1"));
+        assertEquals(ssa11, VerseFactory.fromString("2 Sa1 1"));
+        assertEquals(ssa11, VerseFactory.fromString("2Sa1:1"));
+        assertEquals(ssa11, VerseFactory.fromString("2 Sa 1 1"));
+        assertEquals(ssa11, VerseFactory.fromString("  2  Sa  1  "));
+        assertEquals(ssa11, VerseFactory.fromString("  2  Sa  "));
+        assertEquals(ssa11, VerseFactory.fromString("  2  Sa1  "));
+        assertEquals(ssa11, VerseFactory.fromString("  2  Sa1  1  "));
+        assertEquals(ssa11, VerseFactory.fromString("  2 : Sa1  1  "));
+        assertEquals(rev99, VerseFactory.fromString("Rev 22:$"));
+        assertEquals(rev99, VerseFactory.fromString(" Rev 22 ff "));
+        assertEquals(rev99, VerseFactory.fromString("  Rev  22  ff  "));
+        assertEquals(rev99, VerseFactory.fromString("  Rev  22  $  "));
+        assertEquals(jude9, VerseFactory.fromString("Jude $"));
+        assertEquals(jude9, VerseFactory.fromString(" Jude  $ "));
+        assertEquals(jude9, VerseFactory.fromString("Jude ff"));
+        assertEquals(jude9, VerseFactory.fromString("  Jude  ff  "));
+        assertEquals(VerseFactory.fromString("Deu 1:1"), VerseFactory.fromString("Dt 1:1"));
+        assertEquals(VerseFactory.fromString("Mat 1:1"), VerseFactory.fromString("Mt 1:1"));
         try {
-            VerseFactory.fromString("gen 1 1 1"); //$NON-NLS-1$
+            VerseFactory.fromString("gen 1 1 1");
             fail();
         } catch (NoSuchVerseException ex) {
         }
         try {
-            VerseFactory.fromString("gen.1.1.1"); //$NON-NLS-1$
+            VerseFactory.fromString("gen.1.1.1");
             fail();
         } catch (NoSuchVerseException ex) {
         }
         try {
-            VerseFactory.fromString("gen.1.1:1"); //$NON-NLS-1$
+            VerseFactory.fromString("gen.1.1:1");
             fail();
         } catch (NoSuchVerseException ex) {
         }
         try {
-            VerseFactory.fromString("gen 1 1 1"); //$NON-NLS-1$
+            VerseFactory.fromString("gen 1 1 1");
             fail();
         } catch (NoSuchVerseException ex) {
         }
         try {
-            VerseFactory.fromString("gen 1 1 1"); //$NON-NLS-1$
+            VerseFactory.fromString("gen 1 1 1");
             fail();
         } catch (NoSuchVerseException ex) {
         }
         try {
-            VerseFactory.fromString("gen 1 1 1"); //$NON-NLS-1$
+            VerseFactory.fromString("gen 1 1 1");
             fail();
         } catch (NoSuchVerseException ex) {
         }
@@ -195,29 +195,29 @@
         } catch (NullPointerException ex) {
         } catch (NoSuchKeyException ex) {
         }
-        assertEquals(jude1, VerseFactory.fromString("jude 1")); //$NON-NLS-1$
-        assertEquals(jude2, VerseFactory.fromString("jude 2")); //$NON-NLS-1$
-        assertEquals(jude9, VerseFactory.fromString("jude 25")); //$NON-NLS-1$
+        assertEquals(jude1, VerseFactory.fromString("jude 1"));
+        assertEquals(jude2, VerseFactory.fromString("jude 2"));
+        assertEquals(jude9, VerseFactory.fromString("jude 25"));
     }
 
     public void testGetName() throws Exception {
-        assertEquals(VerseFactory.fromString("Genesis 1 1").getName(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Gen 1 1").getName(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Genesis 1:1").getName(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Gen 1 1").getName(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("g 1 1").getName(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("g").getName(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("G:1:1").getName(), "Gen 1:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Jude 1").getName(), "Jude 1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Jude").getName(), "Jude 1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Jude 1:1").getName(), "Jude 1"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(VerseFactory.fromString("Genesis 1 1").getName(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("Gen 1 1").getName(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("Genesis 1:1").getName(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("Gen 1 1").getName(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("g 1 1").getName(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("g").getName(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("G:1:1").getName(), "Gen 1:1");
+        assertEquals(VerseFactory.fromString("Jude 1").getName(), "Jude 1");
+        assertEquals(VerseFactory.fromString("Jude").getName(), "Jude 1");
+        assertEquals(VerseFactory.fromString("Jude 1:1").getName(), "Jude 1");
     }
 
     public void testGetNameVerse() throws Exception {
-        assertEquals(VerseFactory.fromString("Gen 1:2").getName(gen11), "2"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Gen 2:1").getName(gen11), "2:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Gen 2:1").getName(jude9), "Gen 2:1"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(VerseFactory.fromString("Gen 2:1").getName(null), "Gen 2:1"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(VerseFactory.fromString("Gen 1:2").getName(gen11), "2");
+        assertEquals(VerseFactory.fromString("Gen 2:1").getName(gen11), "2:1");
+        assertEquals(VerseFactory.fromString("Gen 2:1").getName(jude9), "Gen 2:1");
+        assertEquals(VerseFactory.fromString("Gen 2:1").getName(null), "Gen 2:1");
     }
 
     public void testNewViaIntIntIntBoolean() {
@@ -304,7 +304,7 @@
     public void testEquals() {
         assertTrue(!gen11.equals(null));
         assertTrue(!gen11.equals(new Integer(0)));
-        assertTrue(!gen11.equals("org.crosswire.jsword.passage.Verse")); //$NON-NLS-1$
+        assertTrue(!gen11.equals("org.crosswire.jsword.passage.Verse"));
         assertTrue(gen11.equals(gen11a));
         assertTrue(!gen11.equals(gen12));
         assertTrue(!gen11.equals(rev99));
@@ -346,15 +346,15 @@
     }
 
     public void testToString() {
-        assertEquals(gen11.toString(), "Gen 1:1"); //$NON-NLS-1$
-        assertEquals(gen12.toString(), "Gen 1:2"); //$NON-NLS-1$
-        assertEquals(gen21.toString(), "Gen 2:1"); //$NON-NLS-1$
-        assertEquals(gen22.toString(), "Gen 2:2"); //$NON-NLS-1$
-        assertEquals(rev11.toString(), "Rev 1:1"); //$NON-NLS-1$
-        assertEquals(rev12.toString(), "Rev 1:2"); //$NON-NLS-1$
-        assertEquals(rev21.toString(), "Rev 2:1"); //$NON-NLS-1$
-        assertEquals(rev22.toString(), "Rev 2:2"); //$NON-NLS-1$
-        assertEquals(rev99.toString(), "Rev 22:21"); //$NON-NLS-1$
+        assertEquals(gen11.toString(), "Gen 1:1");
+        assertEquals(gen12.toString(), "Gen 1:2");
+        assertEquals(gen21.toString(), "Gen 2:1");
+        assertEquals(gen22.toString(), "Gen 2:2");
+        assertEquals(rev11.toString(), "Rev 1:1");
+        assertEquals(rev12.toString(), "Rev 1:2");
+        assertEquals(rev21.toString(), "Rev 2:1");
+        assertEquals(rev22.toString(), "Rev 2:2");
+        assertEquals(rev99.toString(), "Rev 22:21");
     }
 
     public void testGetBook() {
@@ -437,20 +437,20 @@
 
     public void testGetAccuracy() throws Exception {
         VerseRange vr = new VerseRange(gen11, gen11);
-        assertEquals(AccuracyType.fromText("Gen 1:1", AccuracyType.tokenize("Gen 1:1"), vr), AccuracyType.BOOK_VERSE); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(AccuracyType.fromText("Gen 1", AccuracyType.tokenize("Gen 1"), vr), AccuracyType.BOOK_CHAPTER); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(AccuracyType.fromText("Jude 1", AccuracyType.tokenize("Jude 1"), vr), AccuracyType.BOOK_VERSE); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(AccuracyType.fromText("Jude 1:1", AccuracyType.tokenize("Jude 1:1"), vr), AccuracyType.BOOK_VERSE); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(AccuracyType.fromText("Gen", AccuracyType.tokenize("Gen"), vr), AccuracyType.BOOK_ONLY); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(AccuracyType.fromText("1:1", AccuracyType.tokenize("1:1"), vr), AccuracyType.CHAPTER_VERSE); //$NON-NLS-1$ //$NON-NLS-2$
-        assertEquals(AccuracyType.fromText("1", AccuracyType.tokenize("1"), vr), AccuracyType.VERSE_ONLY); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(AccuracyType.fromText("Gen 1:1", AccuracyType.tokenize("Gen 1:1"), vr), AccuracyType.BOOK_VERSE);
+        assertEquals(AccuracyType.fromText("Gen 1", AccuracyType.tokenize("Gen 1"), vr), AccuracyType.BOOK_CHAPTER);
+        assertEquals(AccuracyType.fromText("Jude 1", AccuracyType.tokenize("Jude 1"), vr), AccuracyType.BOOK_VERSE);
+        assertEquals(AccuracyType.fromText("Jude 1:1", AccuracyType.tokenize("Jude 1:1"), vr), AccuracyType.BOOK_VERSE);
+        assertEquals(AccuracyType.fromText("Gen", AccuracyType.tokenize("Gen"), vr), AccuracyType.BOOK_ONLY);
+        assertEquals(AccuracyType.fromText("1:1", AccuracyType.tokenize("1:1"), vr), AccuracyType.CHAPTER_VERSE);
+        assertEquals(AccuracyType.fromText("1", AccuracyType.tokenize("1"), vr), AccuracyType.VERSE_ONLY);
         try {
-            AccuracyType.fromText("Komplete and utter rubbish", AccuracyType.tokenize("Komplete and utter rubbish"), vr); //$NON-NLS-1$ //$NON-NLS-2$
+            AccuracyType.fromText("Komplete and utter rubbish", AccuracyType.tokenize("Komplete and utter rubbish"), vr);
             fail();
         } catch (NoSuchVerseException ex) {
         }
         try {
-            AccuracyType.fromText("b 1 1", AccuracyType.tokenize("b 1 1"), vr); //$NON-NLS-1$ //$NON-NLS-2$
+            AccuracyType.fromText("b 1 1", AccuracyType.tokenize("b 1 1"), vr);
             fail();
         } catch (NoSuchVerseException ex) {
         }
@@ -462,42 +462,42 @@
     }
 
     public void testIsStartEndOfChapterBook() throws Exception {
-        assertTrue(VerseFactory.fromString("Gen 1:1").isStartOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 1:10").isStartOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 1:$").isStartOfChapter()); //$NON-NLS-1$
-        assertTrue(VerseFactory.fromString("Gen 10:1").isStartOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 10:10").isStartOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 10:$").isStartOfChapter()); //$NON-NLS-1$
-        assertTrue(VerseFactory.fromString("Gen $:1").isStartOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen $:10").isStartOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen $:$").isStartOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 1:1").isEndOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 1:10").isEndOfChapter()); //$NON-NLS-1$
-        assertTrue(VerseFactory.fromString("Gen 1:$").isEndOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 10:1").isEndOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 10:10").isEndOfChapter()); //$NON-NLS-1$
-        assertTrue(VerseFactory.fromString("Gen 10:$").isEndOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen $:1").isEndOfChapter()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen $:10").isEndOfChapter()); //$NON-NLS-1$
-        assertTrue(VerseFactory.fromString("Gen $:$").isEndOfChapter()); //$NON-NLS-1$
-        assertTrue(VerseFactory.fromString("Gen 1:1").isStartOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 1:10").isStartOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 1:$").isStartOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 10:1").isStartOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 10:10").isStartOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 10:$").isStartOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen $:1").isStartOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen $:10").isStartOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen $:$").isStartOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 1:1").isEndOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 1:10").isEndOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 1:$").isEndOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 10:1").isEndOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 10:10").isEndOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen 10:$").isEndOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen $:1").isEndOfBook()); //$NON-NLS-1$
-        assertTrue(!VerseFactory.fromString("Gen $:10").isEndOfBook()); //$NON-NLS-1$
-        assertTrue(VerseFactory.fromString("Gen $:$").isEndOfBook()); //$NON-NLS-1$
+        assertTrue(VerseFactory.fromString("Gen 1:1").isStartOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen 1:10").isStartOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen 1:$").isStartOfChapter());
+        assertTrue(VerseFactory.fromString("Gen 10:1").isStartOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen 10:10").isStartOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen 10:$").isStartOfChapter());
+        assertTrue(VerseFactory.fromString("Gen $:1").isStartOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen $:10").isStartOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen $:$").isStartOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen 1:1").isEndOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen 1:10").isEndOfChapter());
+        assertTrue(VerseFactory.fromString("Gen 1:$").isEndOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen 10:1").isEndOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen 10:10").isEndOfChapter());
+        assertTrue(VerseFactory.fromString("Gen 10:$").isEndOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen $:1").isEndOfChapter());
+        assertTrue(!VerseFactory.fromString("Gen $:10").isEndOfChapter());
+        assertTrue(VerseFactory.fromString("Gen $:$").isEndOfChapter());
+        assertTrue(VerseFactory.fromString("Gen 1:1").isStartOfBook());
+        assertTrue(!VerseFactory.fromString("Gen 1:10").isStartOfBook());
+        assertTrue(!VerseFactory.fromString("Gen 1:$").isStartOfBook());
+        assertTrue(!VerseFactory.fromString("Gen 10:1").isStartOfBook());
+        assertTrue(!VerseFactory.fromString("Gen 10:10").isStartOfBook());
+        assertTrue(!VerseFactory.fromString("Gen 10:$").isStartOfBook());
+        assertTrue(!VerseFactory.fromString("Gen $:1").isStartOfBook());
+        assertTrue(!VerseFactory.fromString("Gen $:10").isStartOfBook());
+        assertTrue(!VerseFactory.fromString("Gen $:$").isStartOfBook());
+        assertTrue(!VerseFactory.fromString("Gen 1:1").isEndOfBook());
+        assertTrue(!VerseFactory.fromString("Gen 1:10").isEndOfBook());
+        assertTrue(!VerseFactory.fromString("Gen 1:$").isEndOfBook());
+        assertTrue(!VerseFactory.fromString("Gen 10:1").isEndOfBook());
+        assertTrue(!VerseFactory.fromString("Gen 10:10").isEndOfBook());
+        assertTrue(!VerseFactory.fromString("Gen 10:$").isEndOfBook());
+        assertTrue(!VerseFactory.fromString("Gen $:1").isEndOfBook());
+        assertTrue(!VerseFactory.fromString("Gen $:10").isEndOfBook());
+        assertTrue(VerseFactory.fromString("Gen $:$").isEndOfBook());
     }
 
     public void testMax() {




More information about the jsword-svn mailing list