<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.crosswire.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Scribe</id>
		<title>CrossWire Bible Society - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.crosswire.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Scribe"/>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/Special:Contributions/Scribe"/>
		<updated>2026-05-28T06:03:07Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=17607</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=17607"/>
				<updated>2024-02-20T06:22:32Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Copyright &amp;amp;amp; Licensing related elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes important information about module configuration (.conf) files. All SWORD modules require one. &lt;br /&gt;
&lt;br /&gt;
Please look also at our detailed and commented [[Tutorial:Writing Conf files|tutorial]].&lt;br /&gt;
&lt;br /&gt;
== Key elements of a SWORD module.conf ==&lt;br /&gt;
&lt;br /&gt;
Some keys can be repeated. Many not.&lt;br /&gt;
&lt;br /&gt;
Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Don't use continuation unless allowed. It will produce different results in different front ends.&lt;br /&gt;
&lt;br /&gt;
RTF is allowed in some values. &lt;br /&gt;
&lt;br /&gt;
Some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Values specifications are shown as '''&amp;amp;lt;content spec&amp;amp;gt;'''. The &amp;amp;lt; and &amp;amp;gt; are not to be included.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in '''bold'''. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
The order of elements specified in a conf file is immaterial, except where specified otherwise.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [ModName]&lt;br /&gt;
| Each conf file begins with a unique identifier for a module placed within brackets, e.g., [KJV1611]. This must be first in the file. Valid characters for this abbreviation are limited to [https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions PCRE] class &amp;lt;tt&amp;gt;[A-Za-z0-9_]&amp;lt;/tt&amp;gt;.&amp;lt;ref&amp;gt;That excludes the space and hyphen characters!&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Abbreviation element is meant to allow for localization of this field.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, kjv1611.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&amp;lt;ref&amp;gt;We advise against explicitly declaring a redundant Abbreviation identical to the ModName.  Abbreviation values should try to be unique to avoid user confusion.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The abbreviation displayed to the user. If not supplied, the unique ModName will be used.  This field allows for localization-- showing a different abbreviation depending on the user's locale.&lt;br /&gt;
&lt;br /&gt;
| [ModName]&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths used for a module named [MyModule], depending on&amp;lt;BR&amp;gt;(a) the type of module (Bible text, commentary, lexicon or dictionary&amp;lt;ref&amp;gt;Daily devotionals &amp;amp; glossaries go in subdirectories under lexdict. A glossary is between two languages.&amp;lt;/ref&amp;gt;, general book) and&amp;lt;BR&amp;gt;(b) the data driver (ModDrv parameter) are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
:./modules/texts/rawtext4/mymodule/&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
:./modules/texts/ztext4/mymodule/&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
:./modules/comments/zcom4/mymodule/&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
|&lt;br /&gt;
'''RawText''' (for uncompressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawText4''' (for uncompressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText''' (for compressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText4''' (for compressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require MinimumVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom''' (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom4''' (for uncompressed Commentaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom''' (for compressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom4''' (for compressed Commentaries having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require SwordVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HREFCom''' (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawFiles''' (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD''' (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD4''' (for uncompressed Dictionaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zLD''' (for compressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawGenBook''' (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Elements with defaults ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&amp;lt;ref&amp;gt;Omitting this for a non-plaintext module has unpredictable effects.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''Plaintext'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSIS''' ([http://www.bibletechnologies.net Open Scriptural Information Standard])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''TEI''' ([http://www.tei-c.org Text Encoding Initiative])&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the '''markup''' used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries. While SourceType has a default, it is a best practice to specify it.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Legacy modules may have a key here stating: &lt;br /&gt;
&lt;br /&gt;
'''GBF''' ([http://www.ebible.org/bible/gbf.htm General Bible Format])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThML''' ([http://www.ccel.org/ThML Theological Markup Language])&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
|&lt;br /&gt;
'''UTF-8'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF-16'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SCSU''' ([http://en.wikipedia.org/wiki/Standard_Compression_Scheme_for_Unicode Standard Compression Scheme for Unicode])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates how the text in the conf and in the module are encoded.&lt;br /&gt;
&lt;br /&gt;
The preferred encoding of texts is UTF-8. Other than Hebrew, UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Biblical Hebrew requires special handling.&amp;lt;ref&amp;gt;Unicode normalization can easily break Biblical Hebrew text. See on page 9 in the [http://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf SBL Hebrew Font User Manual].&amp;lt;/ref&amp;gt; A few other languages may require special handling.&amp;lt;ref&amp;gt;e.g. If they are mentioned in Table 10 in the [http://unicode.org/reports/tr15/#Corrigendum_5_Sequences Corrigendum 5 Sequences].&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The improper normalization of exceptional codepoints can be prevented by inserting a [https://en.wikipedia.org/wiki/Combining_Grapheme_Joiner Combining Grapheme Joiner].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To date, no modules use UTF-16 or SCSU. Legacy modules may hold a key here '''Latin-1''' referring solely to Windows Codepage 1252, a superset of ISO-8859-1. Front-end implementors wishing to use such modules should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.''&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
|&lt;br /&gt;
'''ZIP'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LZSS''' ([http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski Lempel Ziv Storer Szymanski])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BZIP2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''XZ'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText, zCom or zLD to indicate the compression algorithm.&lt;br /&gt;
While CompressType has a default, it is best practice to specify it.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
|&lt;br /&gt;
'''BOOK'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''CHAPTER'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VERSE'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText (Bibles) and zCom (Commentaries) to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller. It is best practice to take the default and not specify it.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&lt;br /&gt;
'''Calvin'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Darby_Fr'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''German'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LXX'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Leningrad'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Luther'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''MT'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Orthodox'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Segond'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Synodal'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SynodalProt'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Vulg'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to specify the versification employed by a Bible module&amp;lt;ref&amp;gt;i.e. Specify this ''only'' for a module that uses '''VerseKey'''.&amp;lt;/ref&amp;gt;. Refer to [[Alternate Versification]].&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates that a module is enciphered and that the module is (un)locked. When the key has no value (&amp;quot;CipherKey=&amp;quot;) the module is locked. When it has a value, the module is unlocked.&lt;br /&gt;
&lt;br /&gt;
A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But it needs to be readable, plain text, without leading or trailing spaces.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
|&lt;br /&gt;
'''TreeKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VerseKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bibles which do not conform to any supported versification system in SWORD. It is best practice to take the default and not specify it.&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CaseSensitiveKeys&lt;br /&gt;
|&lt;br /&gt;
Used for Dictionaries whose keys are case sensitive. This key is used to suppress normalization to UPPER CASE before comparison.&amp;lt;br/&amp;gt;&lt;br /&gt;
Only allowable value: '''true'''&lt;br /&gt;
| false&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
|&lt;br /&gt;
'''UTF8Cantillation''' (For Hebrew texts having cantillation marks)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Cantillation&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8GreekAccents''' (For Greek texts having accents)&amp;lt;ref&amp;gt;For detailed background, see https://en.wikipedia.org/wiki/Greek_diacritics&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;This filter can have undesirable side-effects when applied to non-Greek text!&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8HebrewPoints''' (For Hebrew texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Niqqud&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8ArabicPoints''' (For Arabic texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Arabic_diacritics&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISLemma''' (For OSIS texts having lemmas)&amp;lt;ref&amp;gt;Must precede OSISStrongs.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorphSegmentation''' (For OSIS texts having morphological segmentation elements)&amp;lt;ref&amp;gt;Currently, only some JSword based front-ends seem to support this feature. The SWORD engine has the switch available, but no change in output is effected.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISStrongs''' (For OSIS texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISFootnotes''' (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISScripref''' (For OSIS texts having [[OSIS Bibles#Marking_cross-references_note|cross reference]] type notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorph''' (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISHeadings''' (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISVariants''' (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISRedLetterWords''' (For OSIS texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISGlosses''' (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Minimum SWORD version of 1.7.0 in the module .conf is required for OSISGlosses.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISXlit''' (For OSIS texts that include transliterated forms)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using xlit.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISEnum''' (For OSIS texts with enumerated words)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using enum.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISReferenceLinks''' (For OSIS texts with glossary links)&amp;lt;ref&amp;gt;New in SWORD 1.7.0 - This filter requires six vertical bar-delimited fields, of which the following is an example.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GlobalOptionFilter=OSISReferenceLinks|Reference Material Links|Hide or show links to study helps in the Biblical text.|x-glossary||On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here are the different field meanings:&lt;br /&gt;
# &amp;quot;OSISReferenceLinks&amp;quot; = option filter class name (option class name internal to the engine). Always the same for this kind of filter.&lt;br /&gt;
# &amp;quot;Reference Material Links&amp;quot; = Visible name of this OSISReferenceLinks filter. This is what the user will see in the Global Options toggle lists.&lt;br /&gt;
# &amp;quot;Hide or show...&amp;quot; = A readable user tip explaining what the filter does.&lt;br /&gt;
# &amp;quot;x-glossary&amp;quot; = Tells this OSISReferenceLinks filter to filter all references with type=&amp;quot;x-glossary&amp;quot;.&lt;br /&gt;
# (empty) = Tells this OSISReferenceLinks filter to also require that subType=&amp;quot;something&amp;quot; in order to filter. Empty means ALL type=&amp;quot;x-glossary&amp;quot; references will be filtered regardless of subType.&lt;br /&gt;
# &amp;quot;On&amp;quot; = Default filter toggle value (&amp;quot;On&amp;quot; or &amp;quot;Off&amp;quot;)&lt;br /&gt;
&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;It is allowed to have multiple OSISReferenceLinks entries in a single conf file.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&amp;lt;ref&amp;gt;It's not implied that every front-end supports all of the listed option filters.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. cross-references in notes require both the '''OSISFootnotes''' and the '''OSISScriprefs''' filters enabled. &lt;br /&gt;
&lt;br /&gt;
Legacy modules may also have following keys:&lt;br /&gt;
&lt;br /&gt;
'''OSISRuby'''&amp;lt;ref&amp;gt;See [https://en.wikipedia.org/wiki/Ruby_character Ruby character] and [https://en.wikipedia.org/wiki/Furigana Furigana]&amp;lt;/ref&amp;gt; (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Deprecated in 1.7.0. Use OSISGlosses instead.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFStrongs''' (For GBF texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFFootnotes''' (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFMorph''' (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFHeadings''' (For GBF texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFRedLetterWords''' (For GBF texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLStrongs''' (For THML texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLFootnotes''' (For THML texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLScripref''' (For THML texts having cross references)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLMorph''' (For THML texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLHeadings''' (For THML texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLVariants''' (For THML texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLLemma''' (For THML texts having lemmas)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
|&lt;br /&gt;
'''LtoR''' (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RtoL''' (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BiDi''' (&amp;lt;u&amp;gt;Bidi&amp;lt;/u&amp;gt;rectional)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script.&amp;lt;ref&amp;gt;JSword validates the direction property against the Lang of the module.&amp;lt;/ref&amp;gt; Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script. If the RtoL script is transliterated into a LtoR script, set the value to LtoR. If a module has both RtoL and LtoR text, then it is BiDi.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| '''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for General Book module types (these are keyed with a TreeKey table of contents).  Indicates the preferred level from a leaf in the tree to display for context. e.g., 1 will only show the requested entry; 2 will show the entry, surrounded by all siblings, etc.&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the [[Fonts|font]] to be used for display of the module if it is available.&amp;lt;ref&amp;gt;Specifying a font may not be sufficient for some modules. The required font features may depend on a particular smart font engine, which may not be compiled into the front-end application.&amp;lt;/ref&amp;gt; Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;del&amp;gt;OSISqToTick&amp;lt;/del&amp;gt; (deprecated)&amp;lt;ref&amp;gt;For further details, refer to [http://www.crosswire.org/bugs/browse/MOD-188 MOD-188] in CrossWire bugs.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| This attribute is deprecated in favor of the marker attribute on the q element. E.g.: &amp;lt;pre&amp;gt;&amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;....&amp;lt;/q&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;true/false&amp;lt;/del&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&amp;lt;/del&amp;gt; &lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
|&lt;br /&gt;
'''StrongsNumbers''' (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekDef''' (for dictionary modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewDef''' (for dictionary modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekParse''' (for dictionary modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewParse''' (for dictionary modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''DailyDevotion''' (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossary''' (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that contain images of any type)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NoParagraphs''' (for modules without any paragraphing information, which are typically typeset with a verse per line&amp;lt;ref&amp;gt;This feature is intended to be informational to front-end developers. Ideally, front-ends will render these modules with a verse per line rather than as a single big chapter-length paragraph block.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The occurrence of a small number of paragraph elements in a module (such as might be used merely to format the colophon at the end of each Pauline epistle) does not rule out the use of this feature.&amp;lt;/ref&amp;gt;)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| PreferredCSSXHTML&lt;br /&gt;
| '''&amp;amp;lt;filename&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Names a file in the module's DataPath that should be referenced for the renderer as CSS display controls.&lt;br /&gt;
Generality is advised: Use controls that are not specific to any particular rendering engine, e.g. WebKit.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optional elements to support particular features ===&lt;br /&gt;
==== CaseInsensitiveKeys ====&lt;br /&gt;
Intended for use with Lexicon/Dictionary &amp;amp; Glossary modules. This field will make the order of the keys based upon the mixed case keys, but the index is still sorted by byte order of those keys. There are some scripts that don’t have upper/lower case (e.g. Arabic) and some languages where a naïve toUpper() will result in the wrong character (e.g. Turkish/Azeri lowercase dotted i and capital dotted İ).&lt;br /&gt;
&lt;br /&gt;
 CaseInsensitiveKeys=true|false&lt;br /&gt;
&lt;br /&gt;
It is fine to use toUpper() for internal normalization, but having keys in all caps when showing to a user is annoying. The problem is that the display order needs to follow something that makes sense to a user when the dictionary is presented as a list.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/JohnAustinDev/xulsword xulsword] has a different solution involving a configuration item not yet used by SWORD master.&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcDdEe... &lt;br /&gt;
&lt;br /&gt;
This is used by xulsword to sort the keys of a dictionary/glossary in original alphabetical order. Here's an actual example for module TKLDICT which has Lang=tk-Latn (i.e. Türkmençe):&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcÇçDdEeÄäŻżFfGgHhIiJjKkLlMmNnŇňOoÖöPpQqRrSsŞşTtUuÜüVvWwXxYyÝýZzŽž&lt;br /&gt;
&lt;br /&gt;
This method would need to be modified in order to support alphabets (such as [http://en.wikipedia.org/wiki/Welsh_orthography Welsh]) that include any [http://en.wikipedia.org/wiki/Digraph_%28orthography%29 digraphs].&lt;br /&gt;
&lt;br /&gt;
==== StrongsPadding ====&lt;br /&gt;
At the heart of our lexicon/dictionary drivers, we have some old logic which tries to detect if a key value is a Strong's number, and if so, then pad it with leading zeros accordingly. To support this logic, the recognition has recently been added for an optional new .conf entry for lexicon/dictionary modules:&lt;br /&gt;
&lt;br /&gt;
 StrongsPadding=true|false&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# So as not to break everything, this currently defaults to true if it is not present in the lexdict module's .conf file&lt;br /&gt;
# It can be set to false if you are building a lexdict module which has entries which may be misconstrued as Strong's numbers.&lt;br /&gt;
# In a couple years, we'll probably switch the default to false, so it would be nice to add this line and set the value to true on modules which really do require the logic.&lt;br /&gt;
# This is only available in SWORD version 1.7 or later. JSword never had this problem.&lt;br /&gt;
&lt;br /&gt;
==== Strip Filters ====&lt;br /&gt;
SWORD has the concept of &amp;quot;filtering&amp;quot; a module's text at different processing points for purposes other than rendering.&amp;lt;br&amp;gt;One of these filter-points is for searching and we call these filters '''Strip Filters'''.&lt;br /&gt;
&lt;br /&gt;
Strip Filters are typically named something like '''OSISPlain''' or '''GBFPlain''', etc.  These typically take all the markup out of an entry and prepare the text to be searched, but anything can be done to the text to prepare it further for searching.  We typically remove accents and vowel points from Greek and Hebrew respectively.&lt;br /&gt;
&lt;br /&gt;
Any Strip Filter can be added to a module by the module author with a line in the .conf file, such as:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=GBFPlain&lt;br /&gt;
&lt;br /&gt;
If diacritics need to be removed from Arabic, then we can certainly add a filter for this as well. The conf line would be:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=UTF8ArabicPoints&lt;br /&gt;
&lt;br /&gt;
Our current list of filters can be found by browsing the source folder here:&lt;br /&gt;
&lt;br /&gt;
http://crosswire.org/svn/sword/trunk/src/modules/filters/&lt;br /&gt;
&lt;br /&gt;
They're pretty concise and don't involve much knowledge from the rest of the engine, making them easy to write if we need a new one.&lt;br /&gt;
&lt;br /&gt;
This processing can replace or be complimentary to any processing done by clucene. Here's an example of what's used with the [http://papyri.info/docs/ddbdp Duke Databank of Papyri] with specialist software that's based on SWORD.&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=PapyriPlain&lt;br /&gt;
&lt;br /&gt;
Since we need to strip markup, and other things clucene will likely never support (see '''PapyriPlain''' &amp;amp;ndash; annotations like [,],?{,}, underdot) we need this preprocessing mechanism to prepare the text before searching.  We also maintain searching functionality apart from &amp;quot;fast indexed searching&amp;quot;.&amp;lt;ref&amp;gt;Currently supplied by clucene, but could be implemented by any other fast search framework that we might want to integrate in future.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy-mm-dd&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Calendar_dates ISO 8601 Date])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a.&lt;br /&gt;
&lt;br /&gt;
CrossWire's standard practice is to indicate updates that only require a .conf-file update/download by incrementing the third most significant number (the revision number). For example, if module version 1.2 requires a .conf-file update. A new .conf file with version number 1.2.1 could be released.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;ref&amp;gt;Maximum line length is 1024 characters!&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
x.x is taken from the Version value.&lt;br /&gt;
&lt;br /&gt;
Indicates what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
&lt;br /&gt;
It is recommended that each explanation be suffixed by the corresponding SwordVersionDate value.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&amp;lt;ref&amp;gt;See http://tracker.crosswire.org/browse/API-201&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the [[Sword library versions | minimum version]] of the SWORD library required for this module.&amp;lt;ref&amp;gt;Required to support a Bible/Commentary module that has an [[Alternate Versification]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Biblical Texts''' (for Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Commentaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Lexicons / Dictionaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossaries''' (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Daily Devotional''' (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Generic Books''' (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Maps''' (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Cults / Unorthodox / Questionable Material'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Essays''' (for essays)&amp;lt;ref&amp;gt;'''Essays''' is handled as a subset of '''Generic Books'''.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Biblical Texts&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=HRefCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawFiles'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=Glossary'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Daily Devotional&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=DailyDevotion'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawGenBook''&amp;lt;br/&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| '''&amp;amp;lt;tree/string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;Language[-Script]?[-Region]?&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The language identifier is a combination of sub-tags for '''Language''' and optionally '''Script''', and/or '''Region''', according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47] and [http://tools.ietf.org/html/rfc4647 RFC 4647]. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
&lt;br /&gt;
'''Language sub-tag''' ''(Regex: /[a-z]{2,3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module according to [http://en.wikipedia.org/wiki/ISO_639 ISO 639 parts 1, 2, 3 and 5]. Some languages have several codes. Use the following to determine the best choice:&amp;lt;br/&amp;gt;&lt;br /&gt;
:When available use a 2-letter [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English).&lt;br /&gt;
:If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar])  (e.g. ceb for Cebuano).&lt;br /&gt;
:Failing that, use a [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] code ([http://www-01.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages.&lt;br /&gt;
:Finally, use a [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] code ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macro languages.&lt;br /&gt;
The [http://www-01.sil.org/iso639-3/codes.asp ISO639-3 registrar] page gives up-to-date table on all of the above.&lt;br /&gt;
&lt;br /&gt;
'''Script sub-tag''' ''(Regex:  /[A-Z][a-z]{3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian).&lt;br /&gt;
&lt;br /&gt;
'''Region sub-tag''': ''(Regex: /[A-Z]{2}/)''&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English).&lt;br /&gt;
&lt;br /&gt;
'''Combinations'''''(Regex: /[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
Individual sub-tags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the total byte size of the module on disk, excluding the the size of any Lucene index files.&lt;br /&gt;
&lt;br /&gt;
For modules in the CrossWire repositories, this is automatically generated and overwritten if needed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element gives a former ModName that is made obsolete by this module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| OSISVersion&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the OSIS schema version employed in the OSIS source document. The current version is 2.1.1&lt;br /&gt;
&lt;br /&gt;
It is recommended that this be present for every OSIS module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| Companion&amp;lt;ref&amp;gt;Many (xulsword compatible) modules in the [[Official and Affiliated Module Repositories#Institute_for_Bible_Translation|IBT Repository]] make use of this field. See also https://github.com/johnaustindev/osis-converters&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName[, ModName]*&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies companion module(s) that should be opened together&amp;lt;br/&amp;gt;&lt;br /&gt;
e.g. When Bible and Commentary and/or Glossary modules are distributed together.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Years ISO 8601 Year])&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- id=&amp;quot;distlic&amp;quot;&lt;br /&gt;
| DistributionLicense&lt;br /&gt;
|&lt;br /&gt;
'''Public Domain'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission to distribute granted to CrossWire'''&amp;lt;ref&amp;gt;Modules in other repositories may have a different organization name instead of CrossWire.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission granted to distribute non-commercially in SWORD format'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Free non-commercial distribution'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Freely distributable'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/fdl.html GFDL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/gpl.html GPL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY-NC-ND 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY-NC-SA 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY-NC 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY-ND 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY-SA 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: BY 4.0'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/publicdomain/zero/1.0/ CC0]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements.&amp;lt;br/&amp;gt;The last seven are different [https://creativecommons.org/licenses/ Creative Commons licenses].&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- id=&amp;quot;txtsrc&amp;quot;&lt;br /&gt;
| TextSource&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&lt;br /&gt;
|- &lt;br /&gt;
| UnlockInfo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains unlock instructions for the user, intended to be displayed upon attempt to install the module.  These instructions typically include a URL pointing to an exact location within a publisher's online store where a user can directly purchase an unlock key (CipherKey) for the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&amp;lt;br/&amp;gt;HTML Link&lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comments and blank lines ===&lt;br /&gt;
Early in 2021, CrossWire began providing comment lines and blank lines in released and updated modules.&lt;br /&gt;
Here's and example showing that there may sometimes be both ''even before'' the module ID.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Sword module configuration file&lt;br /&gt;
&lt;br /&gt;
## Required elements&lt;br /&gt;
# Module Unique Identifier.&lt;br /&gt;
[GerMenge]&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;Some other module providers and repositories are already moving in the same direction.&lt;br /&gt;
&lt;br /&gt;
== Further details ==&lt;br /&gt;
=== Continuation ===&lt;br /&gt;
A value can span multiple lines by escaping the return with '\'. This is not a mechanism to make long lines more readable in the module.conf file. It is a means to introducing a break in the rendered output of that field when viewed by a front-end or installer. It is akin to a xHTML &amp;amp;lt;br/&amp;amp;gt;. That is, continuation is a formatting feature.&lt;br /&gt;
&lt;br /&gt;
Most elements in a SWORD conf are expected to have short, one-line values. Elements that are expected to have multiple lines are noted.&lt;br /&gt;
&lt;br /&gt;
=== RTF ===&lt;br /&gt;
A module.conf supports a very small, restricted subset of RTF markup. Only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
The only uniqueness that RTF provides is centering. If centering is not needed, then use continuation lines instead of RTF.&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
Those .conf fields that are essentially text intended for presentation to the end-user may be localized by appending _''locale'' to the field name, where ''locale'' is replaced by an appropriate locale code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See '''Lang''' key for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a key:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh-Hans=.... simplified Chinese ....	&lt;br /&gt;
:Description_zh-Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
In order for a .conf entry to appear in a localized form, a non-localized form of the same field must also occur within the .conf. For example, in order for a ''Description_en'' field to appear, a file  must also possess a ''Description'' field. The locale of .conf entries without the locale modifier is the default and must reflect the locale/language of the module itself (as specified in Lang=) or English (if there are no localized versions of the field). In general, fields should be provided in the language of the module itself with English translations provided in parallel fields localized with _''en''. There is no explicit upper bound on the quantity of localized fields, but all localized and localizable fields should be unique.&lt;br /&gt;
&lt;br /&gt;
# See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
=== Uniqueness ===&lt;br /&gt;
For comparing two versions of a module during module development, the module names and locations must be unique. For JSword based front-ends such as Bible Desktop, there is a further requirement, the Description items must be different.&lt;br /&gt;
&lt;br /&gt;
=== Analysis Tools ===&lt;br /&gt;
* [[User:Dmsmith|DMSmith]] and [[User:Domcox|Domcox]] have created scripts to analyse conf files and report anomalies.&lt;br /&gt;
* [[User:David Haslam|David Haslam]] has created a '''User Defined Language''' called '''CONF''' as a Syntax Highlighter for '''Notepad++''' (Windows). Download from [https://github.com/DavidHaslam/CONF].&lt;br /&gt;
&lt;br /&gt;
== Automated generation ==&lt;br /&gt;
* For new module submissions to CrossWire, [[User:DomCox|DomCox]] now maintains a script that includes the ''automated generation'' of module conf files, given the minimum ''non-automatable'' requirements by the module submitter. See [[Module Submission]] for more details.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BibTeX entries]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Versification|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=User:Gregs650&amp;diff=17139</id>
		<title>User:Gregs650</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=User:Gregs650&amp;diff=17139"/>
				<updated>2022-07-03T17:30:05Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Greg is new to SWORD. A few programming technologies were learned from internet tutorials on 1 / 3 devices - Acer laptop with Ubuntu server 20.04, Android Samsung tablet (Tab A) and Android Galaxy S9 cell phone. Simple learning included&lt;br /&gt;
1. Basic HTML, CSS, and Java-script.&lt;br /&gt;
2. Programming languages: recently shell and C++. In the past, python and some hello world programs for swift, java, etc. &lt;br /&gt;
&lt;br /&gt;
Three web sites had been done. The first one attempted now just reports a deactivated message. It is at https://goo.gl/g0v1rE. It is a Google apps script which is capable of reading and writing from / to Google Drive. The second one was a Google App Engine in python. That app engine is not currently running due to a new billing error / warning from the gcloud command line interface. The 3rd web-page needs some work to be restored. It is a server that ran on the Acer laptop.&lt;br /&gt;
&lt;br /&gt;
A simple bible program had been made in C++ to run in the terminal. Instead of continuing with that, the SWORD project is being learned. That simple program was not deployed anywhere, but read KJV text from a Gutenberg file that was divided and reformatted for easier machine reading.&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=User_talk:Gregs650&amp;diff=17140</id>
		<title>User talk:Gregs650</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=User_talk:Gregs650&amp;diff=17140"/>
				<updated>2022-07-03T17:30:05Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: Welcome!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''CrossWire Bible Society''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Scribe|Scribe]] ([[User talk:Scribe|talk]]) 17:30, 3 July 2022 (UTC)&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=17138</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=17138"/>
				<updated>2022-06-28T11:34:08Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid green;padding-left:1em;padding-right:0.5em;background:#E4FFDF;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
==Welcome to the CrossWire developers' wiki==&lt;br /&gt;
&lt;br /&gt;
Check out our [[Current Projects|current projects]] page to see how you might use your skills. Please also look at our general [[Volunteers|volunteering]] page.&lt;br /&gt;
&lt;br /&gt;
If you want to help in this wiki, please use [https://wiki.crosswire.org/Special:RequestAccount this form] and then send an email to [mailto:support@crosswire.org support@crosswire.org] to remind us to approve your newly requested account.&lt;br /&gt;
&lt;br /&gt;
Here is the [http://tracker.crosswire.org bugs] database. Chat with SWORD developers on IRC: [http://webchat.freenode.net/?randomnick=1&amp;amp;channels=sword&amp;amp;prompt=1 #sword] on FreeNode.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background:#E8F1FF;border-style:solid;border-width:1px;border-color:#00ccFF;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Front-end Bible study applications==&lt;br /&gt;
&lt;br /&gt;
===SWORD based front-ends===&lt;br /&gt;
* [[Frontends:BibleCS|The SWORD Project for Windows]] (internally known as BibleCS)&lt;br /&gt;
* [[Frontends:Bishop|The SWORD Project]] for Android, iOS &amp;amp; iPadOS (internally known as Bishop)&lt;br /&gt;
* [[Frontends:Eloquent|Eloquent]] MacOS desktop application&lt;br /&gt;
* [[Frontends:Xiphos|Xiphos]] Windows &amp;amp; Linux desktop application&lt;br /&gt;
* [[Frontends:BibleTime|BibleTime]] Windows &amp;amp; Linux desktop application&lt;br /&gt;
* [[Frontends:The_Bible_Tool|The Bible Tool]] web server application &lt;br /&gt;
* [[Frontends:PocketSword|PocketSword]] iOS &amp;amp; iPadOS application&lt;br /&gt;
* [[Frontends:Holy Bible|Holy Bible]] Windows Desktop application&lt;br /&gt;
* [[Frontends:Ezra Bible App|Ezra Bible App]] Windows, Linux, MacOS desktop &amp;amp; Android tablet application&lt;br /&gt;
* [https://www.godehardt.org/losung.html GLosung] Gottes Wort für deinen Desktop&lt;br /&gt;
* [https://pierre-amadio.github.io/matheteuo/ matheteuo] flashcards to help study Biblical Hebrew &amp;amp; Greek&lt;br /&gt;
&lt;br /&gt;
===JSword based front-ends===&lt;br /&gt;
* [[Frontends:BibleDesktop|BibleDesktop]]&lt;br /&gt;
* [http://www.kiyut.com/products/alkitab/ Alkitab Bible Study]&lt;br /&gt;
* [[Frontends:GSword|GSword]] &amp;amp;ndash; CCIM Online Bible Studio&lt;br /&gt;
* [https://mjdenham.github.io/and-bible/ And Bible] &amp;amp;ndash; for Android OS&lt;br /&gt;
* [https://www.stepbible.org/ STEP Bible] &amp;amp;ndash; originally developed at [https://www.tyndalehouse.com/ Tyndale House]&lt;br /&gt;
&lt;br /&gt;
=== Front-ends in general ===&lt;br /&gt;
* [[Choosing a SWORD program]]&lt;br /&gt;
* [[Frontends:No longer being actively developed|Front-ends no longer being actively developed]]&lt;br /&gt;
&lt;br /&gt;
==SWORD module sources==&lt;br /&gt;
* [[SWORD Module Source Discovery and Module Updating|SWORD Module Remote Installation Source Repository Discovery and Module Updating]]&lt;br /&gt;
* [[Official and Affiliated Module Repositories]]&lt;br /&gt;
* [[Other Module Sources]]&lt;br /&gt;
* [[Creating and Maintaining a Module Repository]]&lt;br /&gt;
&lt;br /&gt;
==Public relations, website, user assistance==&lt;br /&gt;
* [[Contact| Contact us]]&lt;br /&gt;
* CrossWire's [[Copyright|copyright]] policy&lt;br /&gt;
* [[EnduserFAQ|Frequently Asked Questions]]&lt;br /&gt;
* [[Help:Contents|Help]], [[Help:Bugs|Bugs]] and [[Help:Mailing Lists|Mailing Lists]]&lt;br /&gt;
* [[SWORD CD]]&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#FFE8E8&amp;quot; style=&amp;quot;border-style:solid;border-width:1px;border-color:#FF6060;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Back-end API development tools==&lt;br /&gt;
* [[DevTools:SWORD|SWORD Engine (C++)]]&lt;br /&gt;
** Compiling and installing SWORD &lt;br /&gt;
*** on [[Tutorial:Compiling &amp;amp; Installing SWORD| Linux/MacOS/Unix]]&lt;br /&gt;
*** on or for [[Tutorial:Compiling &amp;amp; Installing SWORD on Windows|Windows]]&lt;br /&gt;
*** with [[DevTools:CMake|CMake]]&lt;br /&gt;
** [[:DevTools:Code Examples|Code Examples]]&lt;br /&gt;
** [[Tutorial:How SWORD works]]&lt;br /&gt;
** [[DevTools:Locale Files|Locale Files]]&lt;br /&gt;
** [[DevTools:Bindings|SWIG Bindings]], [[DevTools:CSharp Bindings on Windows|C# Bindings on Windows]], [[DevTools:JNI Bindings for Android|Android Bindings]]&lt;br /&gt;
** bug reports with or without appended patches to our [http://tracker.crosswire.org/projects/API/issues/API-119?filter=allopenissues|bug tracker]&lt;br /&gt;
* [[DevTools:JSword|JSword Engine (Java)]]&lt;br /&gt;
** [[DevTools:JSword/Personal Commentary|Personal Commentary]]&lt;br /&gt;
** [[DevTools:JSword/Internationalization|Internationalization]]&lt;br /&gt;
&lt;br /&gt;
==Open Scriptures Information Standard==&lt;br /&gt;
* A basic [[OSIS Tutorial|OSIS XML tutorial]]&lt;br /&gt;
* [[OSIS 211 CR| OSIS 2.1.1 schema change requests]]&lt;br /&gt;
* [https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd OSIS schema] &lt;br /&gt;
* [[List of eXtensions to OSIS used in SWORD]]&lt;br /&gt;
&lt;br /&gt;
==Ancillary software==&lt;br /&gt;
* [[BibleSync]] &amp;amp;ndash; for Bible software shared co-navigation&lt;br /&gt;
* [[DevTools:ICU|International Components for Unicode (ICU)]]&lt;br /&gt;
&lt;br /&gt;
== Development proposals and discussions ==&lt;br /&gt;
* [[Whiteboard]]&lt;br /&gt;
&lt;br /&gt;
==Module development==&lt;br /&gt;
* How to create [[DevTools:Modules|SWORD Modules]] &amp;amp; [[DevTools:conf Files|Module Configuration Files]]&lt;br /&gt;
* Guides to writing&lt;br /&gt;
**[[OSIS Bibles]], [[OSIS Commentaries]],&lt;br /&gt;
**[[OSIS Genbooks]], [[TEI Dictionaries]]&lt;br /&gt;
* Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
* Guide to [[Converting SFM Bibles to OSIS]]&lt;br /&gt;
* About [[Alternate Versification|Bible Versification]] schemes&lt;br /&gt;
* About [[File Formats]] and related [[File Formats#The_SWORD_Project_Utilities|Utility Programs]]&lt;br /&gt;
* About Unicode [[Encoding]]s, [[Fonts]] &amp;amp; [[DevTools:Text Editors|Text Editors]]&lt;br /&gt;
-----&lt;br /&gt;
* [[Module Development Collaboration]]&lt;br /&gt;
* [[Notes on particular CrossWire modules]]&lt;br /&gt;
* [[Module Requests]] and [[Non-CrossWire Text-Development Projects|Text Development]]&lt;br /&gt;
* [[Module Submission]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid gray;padding-left:1em;padding-right:0.5em;background:#E8E8E8;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Getting started in wiki collaboration==&lt;br /&gt;
A wiki is a place to share documentation and development information.&lt;br /&gt;
* New user account [mailto://support@crosswire.org|requests] are now moderated. Anyone who has been a member for at least 4 days can edit a wiki once they have [[Special:Userlogin|logged in]].&lt;br /&gt;
* If you are new to wikis, consult the [http://meta.wikipedia.org/wiki/MediaWiki_User's_Guide User's Guide] or the [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ] for information on using the wiki software .&lt;br /&gt;
* Look to see what might need attention by visiting [[Wiki Maintenance]]&lt;br /&gt;
* You may experiment with wiki using our [[CrossWire:Sandbox|Sandbox]].&lt;br /&gt;
* Another way to navigate the wiki is to click on [[:Category:Categories]].&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:CrossWire]]&lt;br /&gt;
[[Category:SWORD Frontends]]&lt;br /&gt;
[[Category:SWORD]]&lt;br /&gt;
[[Category:JSword]]&lt;br /&gt;
[[Category:OSIS]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
[[Category:Development tools]]&lt;br /&gt;
[[Category:Support]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=17137</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=17137"/>
				<updated>2022-06-28T11:18:05Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid green;padding-left:1em;padding-right:0.5em;background:#E4FFDF;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
==Welcome to the CrossWire developers' wiki==&lt;br /&gt;
&lt;br /&gt;
Check out our [[Current Projects|current projects]] page to see how you might use your skills. Please also look at our general [[Volunteers|volunteering]] page.&lt;br /&gt;
&lt;br /&gt;
If you want to help in this wiki, please [mailto:support@crosswire.org request] an account.&lt;br /&gt;
&lt;br /&gt;
Here is the [http://tracker.crosswire.org bugs] database. Chat with SWORD developers on IRC: [http://webchat.freenode.net/?randomnick=1&amp;amp;channels=sword&amp;amp;prompt=1 #sword] on FreeNode.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background:#E8F1FF;border-style:solid;border-width:1px;border-color:#00ccFF;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Front-end Bible study applications==&lt;br /&gt;
&lt;br /&gt;
===SWORD based front-ends===&lt;br /&gt;
* [[Frontends:BibleCS|The SWORD Project for Windows]] (internally known as BibleCS)&lt;br /&gt;
* [[Frontends:Bishop|The SWORD Project]] for Android, iOS &amp;amp; iPadOS (internally known as Bishop)&lt;br /&gt;
* [[Frontends:Eloquent|Eloquent]] MacOS desktop application&lt;br /&gt;
* [[Frontends:Xiphos|Xiphos]] Windows &amp;amp; Linux desktop application&lt;br /&gt;
* [[Frontends:BibleTime|BibleTime]] Windows &amp;amp; Linux desktop application&lt;br /&gt;
* [[Frontends:The_Bible_Tool|The Bible Tool]] web server application &lt;br /&gt;
* [[Frontends:PocketSword|PocketSword]] iOS &amp;amp; iPadOS application&lt;br /&gt;
* [[Frontends:Holy Bible|Holy Bible]] Windows Desktop application&lt;br /&gt;
* [[Frontends:Ezra Bible App|Ezra Bible App]] Windows, Linux, MacOS desktop &amp;amp; Android tablet application&lt;br /&gt;
* [https://www.godehardt.org/losung.html GLosung] Gottes Wort für deinen Desktop&lt;br /&gt;
* [https://pierre-amadio.github.io/matheteuo/ matheteuo] flashcards to help study Biblical Hebrew &amp;amp; Greek&lt;br /&gt;
&lt;br /&gt;
===JSword based front-ends===&lt;br /&gt;
* [[Frontends:BibleDesktop|BibleDesktop]]&lt;br /&gt;
* [http://www.kiyut.com/products/alkitab/ Alkitab Bible Study]&lt;br /&gt;
* [[Frontends:GSword|GSword]] &amp;amp;ndash; CCIM Online Bible Studio&lt;br /&gt;
* [https://mjdenham.github.io/and-bible/ And Bible] &amp;amp;ndash; for Android OS&lt;br /&gt;
* [https://www.stepbible.org/ STEP Bible] &amp;amp;ndash; originally developed at [https://www.tyndalehouse.com/ Tyndale House]&lt;br /&gt;
&lt;br /&gt;
=== Front-ends in general ===&lt;br /&gt;
* [[Choosing a SWORD program]]&lt;br /&gt;
* [[Frontends:No longer being actively developed|Front-ends no longer being actively developed]]&lt;br /&gt;
&lt;br /&gt;
==SWORD module sources==&lt;br /&gt;
* [[SWORD Module Source Discovery and Module Updating|SWORD Module Remote Installation Source Repository Discovery and Module Updating]]&lt;br /&gt;
* [[Official and Affiliated Module Repositories]]&lt;br /&gt;
* [[Other Module Sources]]&lt;br /&gt;
* [[Creating and Maintaining a Module Repository]]&lt;br /&gt;
&lt;br /&gt;
==Public relations, website, user assistance==&lt;br /&gt;
* [[Contact| Contact us]]&lt;br /&gt;
* CrossWire's [[Copyright|copyright]] policy&lt;br /&gt;
* [[EnduserFAQ|Frequently Asked Questions]]&lt;br /&gt;
* [[Help:Contents|Help]], [[Help:Bugs|Bugs]] and [[Help:Mailing Lists|Mailing Lists]]&lt;br /&gt;
* [[SWORD CD]]&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#FFE8E8&amp;quot; style=&amp;quot;border-style:solid;border-width:1px;border-color:#FF6060;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Back-end API development tools==&lt;br /&gt;
* [[DevTools:SWORD|SWORD Engine (C++)]]&lt;br /&gt;
** Compiling and installing SWORD &lt;br /&gt;
*** on [[Tutorial:Compiling &amp;amp; Installing SWORD| Linux/MacOS/Unix]]&lt;br /&gt;
*** on or for [[Tutorial:Compiling &amp;amp; Installing SWORD on Windows|Windows]]&lt;br /&gt;
*** with [[DevTools:CMake|CMake]]&lt;br /&gt;
** [[:DevTools:Code Examples|Code Examples]]&lt;br /&gt;
** [[Tutorial:How SWORD works]]&lt;br /&gt;
** [[DevTools:Locale Files|Locale Files]]&lt;br /&gt;
** [[DevTools:Bindings|SWIG Bindings]], [[DevTools:CSharp Bindings on Windows|C# Bindings on Windows]], [[DevTools:JNI Bindings for Android|Android Bindings]]&lt;br /&gt;
** bug reports with or without appended patches to our [http://tracker.crosswire.org/projects/API/issues/API-119?filter=allopenissues|bug tracker]&lt;br /&gt;
* [[DevTools:JSword|JSword Engine (Java)]]&lt;br /&gt;
** [[DevTools:JSword/Personal Commentary|Personal Commentary]]&lt;br /&gt;
** [[DevTools:JSword/Internationalization|Internationalization]]&lt;br /&gt;
&lt;br /&gt;
==Open Scriptures Information Standard==&lt;br /&gt;
* A basic [[OSIS Tutorial|OSIS XML tutorial]]&lt;br /&gt;
* [[OSIS 211 CR| OSIS 2.1.1 schema change requests]]&lt;br /&gt;
* [https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd OSIS schema] &lt;br /&gt;
* [[List of eXtensions to OSIS used in SWORD]]&lt;br /&gt;
&lt;br /&gt;
==Ancillary software==&lt;br /&gt;
* [[BibleSync]] &amp;amp;ndash; for Bible software shared co-navigation&lt;br /&gt;
* [[DevTools:ICU|International Components for Unicode (ICU)]]&lt;br /&gt;
&lt;br /&gt;
== Development proposals and discussions ==&lt;br /&gt;
* [[Whiteboard]]&lt;br /&gt;
&lt;br /&gt;
==Module development==&lt;br /&gt;
* How to create [[DevTools:Modules|SWORD Modules]] &amp;amp; [[DevTools:conf Files|Module Configuration Files]]&lt;br /&gt;
* Guides to writing&lt;br /&gt;
**[[OSIS Bibles]], [[OSIS Commentaries]],&lt;br /&gt;
**[[OSIS Genbooks]], [[TEI Dictionaries]]&lt;br /&gt;
* Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
* Guide to [[Converting SFM Bibles to OSIS]]&lt;br /&gt;
* About [[Alternate Versification|Bible Versification]] schemes&lt;br /&gt;
* About [[File Formats]] and related [[File Formats#The_SWORD_Project_Utilities|Utility Programs]]&lt;br /&gt;
* About Unicode [[Encoding]]s, [[Fonts]] &amp;amp; [[DevTools:Text Editors|Text Editors]]&lt;br /&gt;
-----&lt;br /&gt;
* [[Module Development Collaboration]]&lt;br /&gt;
* [[Notes on particular CrossWire modules]]&lt;br /&gt;
* [[Module Requests]] and [[Non-CrossWire Text-Development Projects|Text Development]]&lt;br /&gt;
* [[Module Submission]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid gray;padding-left:1em;padding-right:0.5em;background:#E8E8E8;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Getting started in wiki collaboration==&lt;br /&gt;
A wiki is a place to share documentation and development information.&lt;br /&gt;
* New user account [mailto://support@crosswire.org|requests] are now moderated. Anyone who has been a member for at least 4 days can edit a wiki once they have [[Special:Userlogin|logged in]].&lt;br /&gt;
* If you are new to wikis, consult the [http://meta.wikipedia.org/wiki/MediaWiki_User's_Guide User's Guide] or the [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ] for information on using the wiki software .&lt;br /&gt;
* Look to see what might need attention by visiting [[Wiki Maintenance]]&lt;br /&gt;
* You may experiment with wiki using our [[CrossWire:Sandbox|Sandbox]].&lt;br /&gt;
* Another way to navigate the wiki is to click on [[:Category:Categories]].&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:CrossWire]]&lt;br /&gt;
[[Category:SWORD Frontends]]&lt;br /&gt;
[[Category:SWORD]]&lt;br /&gt;
[[Category:JSword]]&lt;br /&gt;
[[Category:OSIS]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
[[Category:Development tools]]&lt;br /&gt;
[[Category:Support]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=SWORD_Module_Source_Discovery_and_Module_Updating&amp;diff=17109</id>
		<title>SWORD Module Source Discovery and Module Updating</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=SWORD_Module_Source_Discovery_and_Module_Updating&amp;diff=17109"/>
				<updated>2021-03-13T23:30:48Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SWORD Module Remote Installation Source Repository Discovery, Module Installation, and Updating =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The SWORD Project Remote Module Source Discovery, Module Installation, and Module Updating is a straightforward process which both the SWORD and JSword engine support programmatically.  Each CrossWire frontend makes these steps available to the user by calling the appropriate SWORD or JSword method for them.  There also exists a simple command line tool (installmgr) to perform these actions, and this simple tool provides to SWORD frontend developers a great example of how to perform each of these steps from within their application.  The steps can generally be list as these; more details about each can be found below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol start=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Warn user about the risks.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Query CrossWire to obtain the list of known publishers of SWORD materials.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Query each publisher for a list of available resources.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&amp;lt;ol start=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Present available resources to user.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Display the detail for a selected module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check to see if the module is enciphered and obtain that code from the user.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
==== Update ====&lt;br /&gt;
&amp;lt;ol start=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Refresh resource list obtained in step #2.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Iterate all installed modules and see if the installed module has a version number less than the version number in the refreshed resource list.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Present to the user the history list between the user's installed version and the available updated version, to inform the user what has changed and ask if an update is desired.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Uninstall the module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the updated module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each of these steps has a simple method available to the programmer from the SWORD engine.  &lt;br /&gt;
&lt;br /&gt;
== 0. Warn user about the risks. ==&lt;br /&gt;
&lt;br /&gt;
CrossWire has a policy to always warn users before enabling Remote Module Installation.  Many of our users live in persecuted countries and using CrossWire's systematic method for installing modules from remote sources poses a risk of detection for these users.  This is the warning we typically present during an application run the first time any Remote Module Installation action is requested:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
                -=+* WARNING *+=- -=+* WARNING *+=-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although Install Manager provides a convenient way for installing&lt;br /&gt;
and upgrading SWORD components, it also uses a systematic method&lt;br /&gt;
for accessing sites which gives packet sniffers a target to lock&lt;br /&gt;
into for singling out users. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IF YOU LIVE IN A PERSECUTED COUNTRY AND DO NOT WISH TO RISK DETECTION,&lt;br /&gt;
YOU SHOULD *NOT* USE INSTALL MANAGER'S REMOTE SOURCE FEATURES.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, Remote Sources other than CrossWire may contain less than&lt;br /&gt;
quality modules, modules with unorthodox content, or even modules&lt;br /&gt;
which are not legitimately distributable.  Many repositories&lt;br /&gt;
contain wonderfully useful content.  These repositories simply&lt;br /&gt;
are not reviewed or maintained by CrossWire and CrossWire&lt;br /&gt;
cannot be held responsible for their content. CAVEAT EMPTOR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you understand this and are willing to enable remote source features&lt;br /&gt;
then type yes at the prompt&lt;br /&gt;
&lt;br /&gt;
enable? [no] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, because user from these countries often do not speak English, we ask the user to type a response to enable the feature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1. Query CrossWire to obtain the list of known publishers of SWORD materials. ==&lt;br /&gt;
&lt;br /&gt;
To discover the list of available module remote source repositories from publishers using the installmgr command line tool:&lt;br /&gt;
&lt;br /&gt;
installmgr -sc&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
The registry of all known and endorsed module remote source installation repositories is located at this URL and is pull by SWORD and JSword automatically to satisfy this step (e.g., by the command: installmgr -sc)&lt;br /&gt;
&lt;br /&gt;
[https://crosswire.org/ftpmirror/pub/sword/masterRepoList.conf https://crosswire.org/ftpmirror/pub/sword/masterRepoList.conf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2. Query each publisher for a list of available resources. ==&lt;br /&gt;
&lt;br /&gt;
To get a list of available publishers of remote SWORD module sources&lt;br /&gt;
&lt;br /&gt;
installmgr -s&lt;br /&gt;
&lt;br /&gt;
To refresh one of these, e.g., the &amp;quot;CrossWire&amp;quot; source:&lt;br /&gt;
&lt;br /&gt;
installmgr -r &amp;quot;CrossWire&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A module remote installation source repository is simply a set of SWORD resources installed in the same way as they would be installed for use by a SWORD frontend, but also made available online via FTP or HTTP.  There may be optional additional files included which can speed up the use of large repositories, and some additional files currently needed to support JSword (until their install tools are improved to match our main SWORD engine), but essentially, any installed module set can be used as a module installation source for use by other SWORD users to choose and install modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3. Present available resources to user. ==&lt;br /&gt;
&lt;br /&gt;
To display resources available from a publisher, e.g., from the &amp;quot;CrossWire&amp;quot; source:&lt;br /&gt;
&lt;br /&gt;
installmgr -rl &amp;quot;CrossWire&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== 4. Display the detail for a selected module. ==&lt;br /&gt;
&lt;br /&gt;
To display the details for a module, e.g., the KJV available from CrossWire:&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc &amp;quot;CrossWire&amp;quot; KJV&lt;br /&gt;
 &lt;br /&gt;
== 5. Install the module. ==&lt;br /&gt;
&lt;br /&gt;
To install, e.g., the KJV from CrossWire remote source repository:&lt;br /&gt;
&lt;br /&gt;
installmgr -ri &amp;quot;CrossWire&amp;quot; KJV&lt;br /&gt;
&lt;br /&gt;
== 6. Check to see if the module is enciphered and obtain that code from the user. ==&lt;br /&gt;
&lt;br /&gt;
To check if the NA28 module from the &amp;quot;Deutsche Bibelgesellschaft&amp;quot; source repository needs an unlock key:&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc &amp;quot;Deutsche Bibelgesellschaft&amp;quot; NA28|grep &amp;quot;^\[CipherKey&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A modules' .conf file will include a CipherKey entry to designate that the module is enciphered and needs a key to use.  Once the user provides the key, it should be entered as the value for the CipherKey entry, e.g.,&lt;br /&gt;
&lt;br /&gt;
[ModuleName]&lt;br /&gt;
CipherKey=xyzzy&lt;br /&gt;
&lt;br /&gt;
Typically these and other user-supplied settings for a module should be kept in their own .conf file and merged into the SWORD config, e.g.,&lt;br /&gt;
&lt;br /&gt;
SWMgr library;&lt;br /&gt;
library.config-&amp;gt;augment(SWConfig(&amp;quot;~/.sword/userPreferences.conf&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Where ~/.sword/userPreferences.conf would contain sections for each module along with the properties to augment:&lt;br /&gt;
&lt;br /&gt;
[ModuleName]&lt;br /&gt;
CipherKey=xyzzy&lt;br /&gt;
&lt;br /&gt;
This is valuable when updating a module, so as not to lose the any user-supplied preferences when uninstalling and then re-installing the module during the update.&lt;br /&gt;
&lt;br /&gt;
== 7. Refresh resource list obtained in step #2. ==&lt;br /&gt;
&lt;br /&gt;
== 8. Iterate all installed modules and see if the installed module has a version number less than the version number in the refreshed resource list. ==&lt;br /&gt;
&lt;br /&gt;
To check for updates in, e.g., the CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
installmgr -rd &amp;quot;CrossWire&amp;quot;|grep &amp;quot;^+&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
Each module's .conf file contains a Version property which tells the module's current version.  Installmgr's -rd flag will only show new (lines beginning with a '*') and updated (lines beginning with a '+') modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 9. Present to the user the history list between the user's installed version and the available updated version, to inform the user what has changed and ask if an update is desired. ==&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc CrossWire Nave|grep &amp;quot;^\[History&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A module's .conf file will include History_version properties which describe what was updated for that version of the module.&lt;br /&gt;
It is desirable to only display to the user the History_version lines which are between the user's currently installed module version and the latest version which they are queried if they would like to update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 10. Uninstall the module. ==&lt;br /&gt;
&lt;br /&gt;
To uninstall the KJV module:&lt;br /&gt;
&lt;br /&gt;
installmgr -u KJV&lt;br /&gt;
&lt;br /&gt;
== 11. Install the updated module. ==&lt;br /&gt;
&lt;br /&gt;
installmgr -ri &amp;quot;CrossWire&amp;quot; KJV&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=SWORD_Module_Source_Discovery_and_Module_Updating&amp;diff=17108</id>
		<title>SWORD Module Source Discovery and Module Updating</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=SWORD_Module_Source_Discovery_and_Module_Updating&amp;diff=17108"/>
				<updated>2021-03-13T23:20:40Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SWORD Module Remote Installation Source Repository Discovery, Module Installation, and Updating =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The SWORD Project Remote Module Source Discovery, Module Installation, and Module Updating is a straightforward process which both the SWORD and JSword engine support programmatically.  Each CrossWire frontend makes these steps available to the user by calling the appropriate SWORD or JSword method for them.  There also exists a simple command line tool (installmgr) to perform these actions, and this simple tool provides to SWORD frontend developers a great example of how to perform each of these steps from within their application.  The steps can generally be list as these; more details about each can be found below:&lt;br /&gt;
&lt;br /&gt;
{{ordered list|start=0&lt;br /&gt;
| Warn user about the risks.&lt;br /&gt;
| Query CrossWire to obtain the list of known publishers of SWORD materials.&lt;br /&gt;
| Query each publisher for a list of available resources.&lt;br /&gt;
}}&lt;br /&gt;
==== Installation ====&lt;br /&gt;
{{ordered list|start=3&lt;br /&gt;
| Present available resources to user.&lt;br /&gt;
| Display the detail for a selected module.&lt;br /&gt;
| Install the module.&lt;br /&gt;
| Check to see if the module is enciphered and obtain that code from the user.&lt;br /&gt;
}}&lt;br /&gt;
==== Update ====&lt;br /&gt;
{{ordered list|start=7&lt;br /&gt;
| Refresh resource list obtained in step #2.&lt;br /&gt;
| Iterate all installed modules and see if the installed module has a version number less than the version number in the refreshed resource list.&lt;br /&gt;
| Present to the user the history list between the user's installed version and the available updated version, to inform the user what has changed and ask if an update is desired.&lt;br /&gt;
| Uninstall the module.&lt;br /&gt;
| Install the updated module.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Each of these steps has a simple method available to the programmer from the SWORD engine.  &lt;br /&gt;
&lt;br /&gt;
== 0. Warn user about the risks. ==&lt;br /&gt;
&lt;br /&gt;
CrossWire has a policy to always warn users before enabling Remote Module Installation.  Many of our users live in persecuted countries and using CrossWire's systematic method for installing modules from remote sources poses a risk of detection for these users.  This is the warning we typically present during an application run the first time any Remote Module Installation action is requested:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
                -=+* WARNING *+=- -=+* WARNING *+=-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although Install Manager provides a convenient way for installing&lt;br /&gt;
and upgrading SWORD components, it also uses a systematic method&lt;br /&gt;
for accessing sites which gives packet sniffers a target to lock&lt;br /&gt;
into for singling out users. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IF YOU LIVE IN A PERSECUTED COUNTRY AND DO NOT WISH TO RISK DETECTION,&lt;br /&gt;
YOU SHOULD *NOT* USE INSTALL MANAGER'S REMOTE SOURCE FEATURES.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, Remote Sources other than CrossWire may contain less than&lt;br /&gt;
quality modules, modules with unorthodox content, or even modules&lt;br /&gt;
which are not legitimately distributable.  Many repositories&lt;br /&gt;
contain wonderfully useful content.  These repositories simply&lt;br /&gt;
are not reviewed or maintained by CrossWire and CrossWire&lt;br /&gt;
cannot be held responsible for their content. CAVEAT EMPTOR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you understand this and are willing to enable remote source features&lt;br /&gt;
then type yes at the prompt&lt;br /&gt;
&lt;br /&gt;
enable? [no] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, because user from these countries often do not speak English, we ask the user to type a response to enable the feature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1. Query CrossWire to obtain the list of known publishers of SWORD materials. ==&lt;br /&gt;
&lt;br /&gt;
To discover the list of available module remote source repositories from publishers using the installmgr command line tool:&lt;br /&gt;
&lt;br /&gt;
installmgr -sc&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
The registry of all known and endorsed module remote source installation repositories is located at this URL and is pull by SWORD and JSword automatically to satisfy this step (e.g., by the command: installmgr -sc)&lt;br /&gt;
&lt;br /&gt;
[https://crosswire.org/ftpmirror/pub/sword/masterRepoList.conf https://crosswire.org/ftpmirror/pub/sword/masterRepoList.conf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2. Query each publisher for a list of available resources. ==&lt;br /&gt;
&lt;br /&gt;
To get a list of available publishers of remote SWORD module sources&lt;br /&gt;
&lt;br /&gt;
installmgr -s&lt;br /&gt;
&lt;br /&gt;
To refresh one of these, e.g., the &amp;quot;CrossWire&amp;quot; source:&lt;br /&gt;
&lt;br /&gt;
installmgr -r &amp;quot;CrossWire&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A module remote installation source repository is simply a set of SWORD resources installed in the same way as they would be installed for use by a SWORD frontend, but also made available online via FTP or HTTP.  There may be optional additional files included which can speed up the use of large repositories, and some additional files currently needed to support JSword (until their install tools are improved to match our main SWORD engine), but essentially, any installed module set can be used as a module installation source for use by other SWORD users to choose and install modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3. Present available resources to user. ==&lt;br /&gt;
&lt;br /&gt;
To display resources available from a publisher, e.g., from the &amp;quot;CrossWire&amp;quot; source:&lt;br /&gt;
&lt;br /&gt;
installmgr -rl &amp;quot;CrossWire&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== 4. Display the detail for a selected module. ==&lt;br /&gt;
&lt;br /&gt;
To display the details for a module, e.g., the KJV available from CrossWire:&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc &amp;quot;CrossWire&amp;quot; KJV&lt;br /&gt;
 &lt;br /&gt;
== 5. Install the module. ==&lt;br /&gt;
&lt;br /&gt;
To install, e.g., the KJV from CrossWire remote source repository:&lt;br /&gt;
&lt;br /&gt;
installmgr -ri &amp;quot;CrossWire&amp;quot; KJV&lt;br /&gt;
&lt;br /&gt;
== 6. Check to see if the module is enciphered and obtain that code from the user. ==&lt;br /&gt;
&lt;br /&gt;
To check if the NA28 module from the &amp;quot;Deutsche Bibelgesellschaft&amp;quot; source repository needs an unlock key:&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc &amp;quot;Deutsche Bibelgesellschaft&amp;quot; NA28|grep &amp;quot;^\[CipherKey&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A modules' .conf file will include a CipherKey entry to designate that the module is enciphered and needs a key to use.  Once the user provides the key, it should be entered as the value for the CipherKey entry, e.g.,&lt;br /&gt;
&lt;br /&gt;
[ModuleName]&lt;br /&gt;
CipherKey=xyzzy&lt;br /&gt;
&lt;br /&gt;
Typically these and other user-supplied settings for a module should be kept in their own .conf file and merged into the SWORD config, e.g.,&lt;br /&gt;
&lt;br /&gt;
SWMgr library;&lt;br /&gt;
library.config-&amp;gt;augment(SWConfig(&amp;quot;~/.sword/userPreferences.conf&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Where ~/.sword/userPreferences.conf would contain sections for each module along with the properties to augment:&lt;br /&gt;
&lt;br /&gt;
[ModuleName]&lt;br /&gt;
CipherKey=xyzzy&lt;br /&gt;
&lt;br /&gt;
This is valuable when updating a module, so as not to lose the any user-supplied preferences when uninstalling and then re-installing the module during the update.&lt;br /&gt;
&lt;br /&gt;
== 7. Refresh resource list obtained in step #2. ==&lt;br /&gt;
&lt;br /&gt;
== 8. Iterate all installed modules and see if the installed module has a version number less than the version number in the refreshed resource list. ==&lt;br /&gt;
&lt;br /&gt;
To check for updates in, e.g., the CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
installmgr -rd &amp;quot;CrossWire&amp;quot;|grep &amp;quot;^+&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
Each module's .conf file contains a Version property which tells the module's current version.  Installmgr's -rd flag will only show new (lines beginning with a '*') and updated (lines beginning with a '+') modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 9. Present to the user the history list between the user's installed version and the available updated version, to inform the user what has changed and ask if an update is desired. ==&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc CrossWire Nave|grep &amp;quot;^\[History&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A module's .conf file will include History_version properties which describe what was updated for that version of the module.&lt;br /&gt;
It is desirable to only display to the user the History_version lines which are between the user's currently installed module version and the latest version which they are queried if they would like to update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 10. Uninstall the module. ==&lt;br /&gt;
&lt;br /&gt;
To uninstall the KJV module:&lt;br /&gt;
&lt;br /&gt;
installmgr -u KJV&lt;br /&gt;
&lt;br /&gt;
== 11. Install the updated module. ==&lt;br /&gt;
&lt;br /&gt;
installmgr -ri &amp;quot;CrossWire&amp;quot; KJV&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=SWORD_Module_Source_Discovery_and_Module_Updating&amp;diff=17107</id>
		<title>SWORD Module Source Discovery and Module Updating</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=SWORD_Module_Source_Discovery_and_Module_Updating&amp;diff=17107"/>
				<updated>2021-03-13T23:13:33Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= SWORD Module Remote Installation Source Repository Discovery, Module Installation, and Updating =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The SWORD Project Remote Module Source Discovery, Module Installation, and Module Updating is a straightforward process which both the SWORD and JSword engine support programmatically.  Each CrossWire frontend makes these steps available to the user by calling the appropriate SWORD or JSword method for them.  There also exists a simple command line tool (installmgr) to perform these actions, and this simple tool provides to SWORD frontend developers a great example of how to perform each of these steps from within their application.  The steps can generally be list as these; more details about each can be found below:&lt;br /&gt;
&lt;br /&gt;
# Warn user about the risks.&lt;br /&gt;
# Query CrossWire to obtain the list of known publishers of SWORD materials.&lt;br /&gt;
# Query each publisher for a list of available resources.&lt;br /&gt;
==== Installation ====&lt;br /&gt;
# Present available resources to user.&lt;br /&gt;
# Display the detail for a selected module.&lt;br /&gt;
# Install the module.&lt;br /&gt;
# Check to see if the module is enciphered and obtain that code from the user.&lt;br /&gt;
==== Update ====&lt;br /&gt;
# Refresh resource list obtained in step #2.&lt;br /&gt;
# Iterate all installed modules and see if the installed module has a version number less than the version number in the refreshed resource list.&lt;br /&gt;
# Present to the user the history list between the user's installed version and the available updated version, to inform the user what has changed and ask if an update is desired.&lt;br /&gt;
# Uninstall the module.&lt;br /&gt;
# Install the updated module.&lt;br /&gt;
&lt;br /&gt;
Each of these steps has a simple method available to the programmer from the SWORD engine.  &lt;br /&gt;
&lt;br /&gt;
== 0. Warn user about the risks. ==&lt;br /&gt;
&lt;br /&gt;
CrossWire has a policy to always warn users before enabling Remote Module Installation.  Many of our users live in persecuted countries and using CrossWire's systematic method for installing modules from remote sources poses a risk of detection for these users.  This is the warning we typically present during an application run the first time any Remote Module Installation action is requested:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
                -=+* WARNING *+=- -=+* WARNING *+=-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although Install Manager provides a convenient way for installing&lt;br /&gt;
and upgrading SWORD components, it also uses a systematic method&lt;br /&gt;
for accessing sites which gives packet sniffers a target to lock&lt;br /&gt;
into for singling out users. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IF YOU LIVE IN A PERSECUTED COUNTRY AND DO NOT WISH TO RISK DETECTION,&lt;br /&gt;
YOU SHOULD *NOT* USE INSTALL MANAGER'S REMOTE SOURCE FEATURES.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, Remote Sources other than CrossWire may contain less than&lt;br /&gt;
quality modules, modules with unorthodox content, or even modules&lt;br /&gt;
which are not legitimately distributable.  Many repositories&lt;br /&gt;
contain wonderfully useful content.  These repositories simply&lt;br /&gt;
are not reviewed or maintained by CrossWire and CrossWire&lt;br /&gt;
cannot be held responsible for their content. CAVEAT EMPTOR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you understand this and are willing to enable remote source features&lt;br /&gt;
then type yes at the prompt&lt;br /&gt;
&lt;br /&gt;
enable? [no] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, because user from these countries often do not speak English, we ask the user to type a response to enable the feature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1. Query CrossWire to obtain the list of known publishers of SWORD materials. ==&lt;br /&gt;
&lt;br /&gt;
To discover the list of available module remote source repositories from publishers using the installmgr command line tool:&lt;br /&gt;
&lt;br /&gt;
installmgr -sc&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
The registry of all known and endorsed module remote source installation repositories is located at this URL and is pull by SWORD and JSword automatically to satisfy this step (e.g., by the command: installmgr -sc)&lt;br /&gt;
&lt;br /&gt;
[https://crosswire.org/ftpmirror/pub/sword/masterRepoList.conf https://crosswire.org/ftpmirror/pub/sword/masterRepoList.conf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2. Query each publisher for a list of available resources. ==&lt;br /&gt;
&lt;br /&gt;
To get a list of available publishers of remote SWORD module sources&lt;br /&gt;
&lt;br /&gt;
installmgr -s&lt;br /&gt;
&lt;br /&gt;
To refresh one of these, e.g., the &amp;quot;CrossWire&amp;quot; source:&lt;br /&gt;
&lt;br /&gt;
installmgr -r &amp;quot;CrossWire&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A module remote installation source repository is simply a set of SWORD resources installed in the same way as they would be installed for use by a SWORD frontend, but also made available online via FTP or HTTP.  There may be optional additional files included which can speed up the use of large repositories, and some additional files currently needed to support JSword (until their install tools are improved to match our main SWORD engine), but essentially, any installed module set can be used as a module installation source for use by other SWORD users to choose and install modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3. Present available resources to user. ==&lt;br /&gt;
&lt;br /&gt;
To display resources available from a publisher, e.g., from the &amp;quot;CrossWire&amp;quot; source:&lt;br /&gt;
&lt;br /&gt;
installmgr -rl &amp;quot;CrossWire&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== 4. Display the detail for a selected module. ==&lt;br /&gt;
&lt;br /&gt;
To display the details for a module, e.g., the KJV available from CrossWire:&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc &amp;quot;CrossWire&amp;quot; KJV&lt;br /&gt;
 &lt;br /&gt;
== 5. Install the module. ==&lt;br /&gt;
&lt;br /&gt;
To install, e.g., the KJV from CrossWire remote source repository:&lt;br /&gt;
&lt;br /&gt;
installmgr -ri &amp;quot;CrossWire&amp;quot; KJV&lt;br /&gt;
&lt;br /&gt;
== 6. Check to see if the module is enciphered and obtain that code from the user. ==&lt;br /&gt;
&lt;br /&gt;
To check if the NA28 module from the &amp;quot;Deutsche Bibelgesellschaft&amp;quot; source repository needs an unlock key:&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc &amp;quot;Deutsche Bibelgesellschaft&amp;quot; NA28|grep &amp;quot;^\[CipherKey&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A modules' .conf file will include a CipherKey entry to designate that the module is enciphered and needs a key to use.  Once the user provides the key, it should be entered as the value for the CipherKey entry, e.g.,&lt;br /&gt;
&lt;br /&gt;
[ModuleName]&lt;br /&gt;
CipherKey=xyzzy&lt;br /&gt;
&lt;br /&gt;
Typically these and other user-supplied settings for a module should be kept in their own .conf file and merged into the SWORD config, e.g.,&lt;br /&gt;
&lt;br /&gt;
SWMgr library;&lt;br /&gt;
library.config-&amp;gt;augment(SWConfig(&amp;quot;~/.sword/userPreferences.conf&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Where ~/.sword/userPreferences.conf would contain sections for each module along with the properties to augment:&lt;br /&gt;
&lt;br /&gt;
[ModuleName]&lt;br /&gt;
CipherKey=xyzzy&lt;br /&gt;
&lt;br /&gt;
This is valuable when updating a module, so as not to lose the any user-supplied preferences when uninstalling and then re-installing the module during the update.&lt;br /&gt;
&lt;br /&gt;
== 7. Refresh resource list obtained in step #2. ==&lt;br /&gt;
&lt;br /&gt;
== 8. Iterate all installed modules and see if the installed module has a version number less than the version number in the refreshed resource list. ==&lt;br /&gt;
&lt;br /&gt;
To check for updates in, e.g., the CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
installmgr -rd &amp;quot;CrossWire&amp;quot;|grep &amp;quot;^+&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
Each module's .conf file contains a Version property which tells the module's current version.  Installmgr's -rd flag will only show new (lines beginning with a '*') and updated (lines beginning with a '+') modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 9. Present to the user the history list between the user's installed version and the available updated version, to inform the user what has changed and ask if an update is desired. ==&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc CrossWire Nave|grep &amp;quot;^\[History&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A module's .conf file will include History_version properties which describe what was updated for that version of the module.&lt;br /&gt;
It is desirable to only display to the user the History_version lines which are between the user's currently installed module version and the latest version which they are queried if they would like to update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 10. Uninstall the module. ==&lt;br /&gt;
&lt;br /&gt;
To uninstall the KJV module:&lt;br /&gt;
&lt;br /&gt;
installmgr -u KJV&lt;br /&gt;
&lt;br /&gt;
== 11. Install the updated module. ==&lt;br /&gt;
&lt;br /&gt;
installmgr -ri &amp;quot;CrossWire&amp;quot; KJV&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=SWORD_Module_Source_Discovery_and_Module_Updating&amp;diff=17106</id>
		<title>SWORD Module Source Discovery and Module Updating</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=SWORD_Module_Source_Discovery_and_Module_Updating&amp;diff=17106"/>
				<updated>2021-03-13T23:07:28Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
The SWORD Project Remote Module Source Discovery, Module Installation, and Module Updating is a straightforward process which both the SWORD and JSword engine support programmatically.  Each CrossWire frontend makes these steps available to the user by calling the appropriate SWORD or JSword method for them.  There also exists a simple command line tool (installmgr) to perform these actions, and this simple tool provides to SWORD frontend developers a great example of how to perform each of these steps from within their application.  The steps can generally be list as these; more details about each can be found below:&lt;br /&gt;
&lt;br /&gt;
0. Warn user about the risks.&lt;br /&gt;
1. Query CrossWire to obtain the list of known publishers of SWORD materials.&lt;br /&gt;
2. Query each publisher for a list of available resources.&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
3. Present available resources to user.&lt;br /&gt;
4. Display the detail for a selected module.&lt;br /&gt;
5. Install the module.&lt;br /&gt;
6. Check to see if the module is enciphered and obtain that code from the user.&lt;br /&gt;
&lt;br /&gt;
==== Update ====&lt;br /&gt;
&lt;br /&gt;
7. Refresh resource list obtained in step #2.&lt;br /&gt;
8. Iterate all installed modules and see if the installed module has a version number less than the version number in the refreshed resource list.&lt;br /&gt;
9. Present to the user the history list between the user's installed version and the available updated version, to inform the user what has changed and ask if an update is desired.&lt;br /&gt;
10. Uninstall the module.&lt;br /&gt;
11. Install the updated module.&lt;br /&gt;
&lt;br /&gt;
Each of these steps has a simple method available to the programmer from the SWORD engine.  &lt;br /&gt;
&lt;br /&gt;
== 0. Warn user about the risks. ==&lt;br /&gt;
&lt;br /&gt;
CrossWire has a policy to always warn users before enabling Remote Module Installation.  Many of our users live in persecuted countries and using CrossWire's systematic method for installing modules from remote sources poses a risk of detection for these users.  This is the warning we typically present during an application run the first time any Remote Module Installation action is requested:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
                -=+* WARNING *+=- -=+* WARNING *+=-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although Install Manager provides a convenient way for installing&lt;br /&gt;
and upgrading SWORD components, it also uses a systematic method&lt;br /&gt;
for accessing sites which gives packet sniffers a target to lock&lt;br /&gt;
into for singling out users. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IF YOU LIVE IN A PERSECUTED COUNTRY AND DO NOT WISH TO RISK DETECTION,&lt;br /&gt;
YOU SHOULD *NOT* USE INSTALL MANAGER'S REMOTE SOURCE FEATURES.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, Remote Sources other than CrossWire may contain less than&lt;br /&gt;
quality modules, modules with unorthodox content, or even modules&lt;br /&gt;
which are not legitimately distributable.  Many repositories&lt;br /&gt;
contain wonderfully useful content.  These repositories simply&lt;br /&gt;
are not reviewed or maintained by CrossWire and CrossWire&lt;br /&gt;
cannot be held responsible for their content. CAVEAT EMPTOR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you understand this and are willing to enable remote source features&lt;br /&gt;
then type yes at the prompt&lt;br /&gt;
&lt;br /&gt;
enable? [no] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, because user from these countries often do not speak English, we ask the user to type a response to enable the feature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1. Query CrossWire to obtain the list of known publishers of SWORD materials. ==&lt;br /&gt;
&lt;br /&gt;
To discover the list of available module remote source repositories from publishers using the installmgr command line tool:&lt;br /&gt;
&lt;br /&gt;
installmgr -sc&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
The registry of all known and endorsed module remote source installation repositories is located at this URL and is pull by SWORD and JSword automatically to satisfy this step (e.g., by the command: installmgr -sc)&lt;br /&gt;
&lt;br /&gt;
[https://crosswire.org/ftpmirror/pub/sword/masterRepoList.conf|https://crosswire.org/ftpmirror/pub/sword/masterRepoList.conf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2. Query each publisher for a list of available resources. ==&lt;br /&gt;
&lt;br /&gt;
To get a list of available publishers of remote SWORD module sources&lt;br /&gt;
&lt;br /&gt;
installmgr -s&lt;br /&gt;
&lt;br /&gt;
To refresh one of these, e.g., the &amp;quot;CrossWire&amp;quot; source:&lt;br /&gt;
&lt;br /&gt;
installmgr -r &amp;quot;CrossWire&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A module remote installation source repository is simply a set of SWORD resources installed in the same way as they would be installed for use by a SWORD frontend, but also made available online via FTP or HTTP.  There may be optional additional files included which can speed up the use of large repositories, and some additional files currently needed to support JSword (until their install tools are improved to match our main SWORD engine), but essentially, any installed module set can be used as a module installation source for use by other SWORD users to choose and install modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3. Present available resources to user. ==&lt;br /&gt;
&lt;br /&gt;
To display resources available from a publisher, e.g., from the &amp;quot;CrossWire&amp;quot; source:&lt;br /&gt;
&lt;br /&gt;
installmgr -rl &amp;quot;CrossWire&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== 4. Display the detail for a selected module. ==&lt;br /&gt;
&lt;br /&gt;
To display the details for a module, e.g., the KJV available from CrossWire:&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc &amp;quot;CrossWire&amp;quot; KJV&lt;br /&gt;
 &lt;br /&gt;
== 5. Install the module. ==&lt;br /&gt;
&lt;br /&gt;
To install, e.g., the KJV from CrossWire remote source repository:&lt;br /&gt;
&lt;br /&gt;
installmgr -ri &amp;quot;CrossWire&amp;quot; KJV&lt;br /&gt;
&lt;br /&gt;
== 6. Check to see if the module is enciphered and obtain that code from the user. ==&lt;br /&gt;
&lt;br /&gt;
To check if the NA28 module from the &amp;quot;Deutsche Bibelgesellschaft&amp;quot; source repository needs an unlock key:&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc &amp;quot;Deutsche Bibelgesellschaft&amp;quot; NA28|grep &amp;quot;^\[CipherKey&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A modules' .conf file will include a CipherKey entry to designate that the module is enciphered and needs a key to use.  Once the user provides the key, it should be entered as the value for the CipherKey entry, e.g.,&lt;br /&gt;
&lt;br /&gt;
[ModuleName]&lt;br /&gt;
CipherKey=xyzzy&lt;br /&gt;
&lt;br /&gt;
Typically these and other user-supplied settings for a module should be kept in their own .conf file and merged into the SWORD config, e.g.,&lt;br /&gt;
&lt;br /&gt;
SWMgr library;&lt;br /&gt;
library.config-&amp;gt;augment(SWConfig(&amp;quot;~/.sword/userPreferences.conf&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Where ~/.sword/userPreferences.conf would contain sections for each module along with the properties to augment:&lt;br /&gt;
&lt;br /&gt;
[ModuleName]&lt;br /&gt;
CipherKey=xyzzy&lt;br /&gt;
&lt;br /&gt;
This is valuable when updating a module, so as not to lose the any user-supplied preferences when uninstalling and then re-installing the module during the update.&lt;br /&gt;
&lt;br /&gt;
== 7. Refresh resource list obtained in step #2. ==&lt;br /&gt;
&lt;br /&gt;
== 8. Iterate all installed modules and see if the installed module has a version number less than the version number in the refreshed resource list. ==&lt;br /&gt;
&lt;br /&gt;
To check for updates in, e.g., the CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
installmgr -rd &amp;quot;CrossWire&amp;quot;|grep &amp;quot;^+&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
Each module's .conf file contains a Version property which tells the module's current version.  Installmgr's -rd flag will only show new (lines beginning with a '*') and updated (lines beginning with a '+') modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 9. Present to the user the history list between the user's installed version and the available updated version, to inform the user what has changed and ask if an update is desired. ==&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc CrossWire Nave|grep &amp;quot;^\[History&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A module's .conf file will include History_version properties which describe what was updated for that version of the module.&lt;br /&gt;
It is desirable to only display to the user the History_version lines which are between the user's currently installed module version and the latest version which they are queried if they would like to update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 10. Uninstall the module. ==&lt;br /&gt;
&lt;br /&gt;
To uninstall the KJV module:&lt;br /&gt;
&lt;br /&gt;
installmgr -u KJV&lt;br /&gt;
&lt;br /&gt;
== 11. Install the updated module. ==&lt;br /&gt;
&lt;br /&gt;
installmgr -ri &amp;quot;CrossWire&amp;quot; KJV&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=17105</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=17105"/>
				<updated>2021-03-13T22:55:44Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid green;padding-left:1em;padding-right:0.5em;background:#E4FFDF;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
==Welcome to the CrossWire developers' wiki==&lt;br /&gt;
&lt;br /&gt;
Check out our [[Current Projects|current projects]] page to see how you might use your skills. Please also look at our general [[Volunteers|volunteering]] page.&lt;br /&gt;
&lt;br /&gt;
If you want to help in this wiki, please [mailto://support@crosswire.org request] an account.&lt;br /&gt;
&lt;br /&gt;
Here is the [http://tracker.crosswire.org bugs] database. Chat with SWORD developers on IRC: [http://webchat.freenode.net/?randomnick=1&amp;amp;channels=sword&amp;amp;prompt=1 #sword] on FreeNode.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background:#E8F1FF;border-style:solid;border-width:1px;border-color:#00ccFF;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Front-end Bible study applications==&lt;br /&gt;
&lt;br /&gt;
===SWORD based front-ends===&lt;br /&gt;
* [[Frontends:BibleCS|The SWORD Project for Windows]] (internally known as BibleCS)&lt;br /&gt;
* [[Frontends:Bishop|The SWORD Project]] for Android, iOS &amp;amp; iPadOS (internally known as Bishop)&lt;br /&gt;
* [[Frontends:Eloquent|Eloquent]] MacOS desktop application&lt;br /&gt;
* [[Frontends:Xiphos|Xiphos]] Windows &amp;amp; Linux desktop application&lt;br /&gt;
* [[Frontends:BibleTime|BibleTime]] Windows &amp;amp; Linux desktop application&lt;br /&gt;
* [[Frontends:The_Bible_Tool|The Bible Tool]] web server application &lt;br /&gt;
* [[Frontends:PocketSword|PocketSword]] iOS &amp;amp; iPadOS application&lt;br /&gt;
* [[Frontends:Holy Bible|Holy Bible]] Windows Desktop application&lt;br /&gt;
* [[Frontends:Ezra Project|Ezra Project]] Windows, Linux, MacOS desktop &amp;amp; Android tablet application&lt;br /&gt;
* [https://www.godehardt.org/losung.html GLosung] Gottes Wort für deinen Desktop&lt;br /&gt;
* [https://pierre-amadio.github.io/matheteuo/ matheteuo] flashcards to help study Biblical Hebrew &amp;amp; Greek&lt;br /&gt;
&lt;br /&gt;
===JSword based front-ends===&lt;br /&gt;
* [[Frontends:BibleDesktop|BibleDesktop]]&lt;br /&gt;
* [http://www.kiyut.com/products/alkitab/ Alkitab Bible Study]&lt;br /&gt;
* [[Frontends:GSword|GSword]] &amp;amp;ndash; CCIM Online Bible Studio&lt;br /&gt;
* [https://mjdenham.github.io/and-bible/ And Bible] &amp;amp;ndash; for Android OS&lt;br /&gt;
* [https://www.stepbible.org/ STEP Bible] &amp;amp;ndash; originally developed at [https://www.tyndalehouse.com/ Tyndale House]&lt;br /&gt;
&lt;br /&gt;
=== Front-ends in general ===&lt;br /&gt;
* [[Choosing a SWORD program]]&lt;br /&gt;
* [[Frontends:No longer being actively developed|Front-ends no longer being actively developed]]&lt;br /&gt;
&lt;br /&gt;
==SWORD module sources==&lt;br /&gt;
* [[SWORD Module Source Discovery and Module Updating|SWORD Module Remote Installation Source Repository Discovery and Module Updating]]&lt;br /&gt;
* [[Official and Affiliated Module Repositories]]&lt;br /&gt;
* [[Other Module Sources]]&lt;br /&gt;
* [[Creating and Maintaining a Module Repository]]&lt;br /&gt;
&lt;br /&gt;
==Public relations, website, user assistance==&lt;br /&gt;
* [[Contact| Contact us]]&lt;br /&gt;
* CrossWire's [[Copyright|copyright]] policy&lt;br /&gt;
* [[EnduserFAQ|Frequently Asked Questions]]&lt;br /&gt;
* [[Help:Contents|Help]], [[Help:Bugs|Bugs]] and [[Help:Mailing Lists|Mailing Lists]]&lt;br /&gt;
* [[SWORD CD]]&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#FFE8E8&amp;quot; style=&amp;quot;border-style:solid;border-width:1px;border-color:#FF6060;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Back-end API development tools==&lt;br /&gt;
* [[DevTools:SWORD|SWORD Engine (C++)]]&lt;br /&gt;
** Compiling and installing SWORD &lt;br /&gt;
*** on [[Tutorial:Compiling &amp;amp; Installing SWORD| Linux/MacOS/Unix]]&lt;br /&gt;
*** on or for [[Tutorial:Compiling &amp;amp; Installing SWORD on Windows|Windows]]&lt;br /&gt;
*** with [[DevTools:CMake|CMake]]&lt;br /&gt;
** [[:DevTools:Code Examples|Code Examples]]&lt;br /&gt;
** [[Tutorial:How SWORD works]]&lt;br /&gt;
** [[DevTools:Locale Files|Locale Files]]&lt;br /&gt;
** [[DevTools:Bindings|SWIG Bindings]], [[DevTools:CSharp Bindings on Windows|C# Bindings on Windows]], [[DevTools:JNI Bindings for Android|Android Bindings]]&lt;br /&gt;
** bug reports with or without appended patches to our [http://tracker.crosswire.org/projects/API/issues/API-119?filter=allopenissues|bug tracker]&lt;br /&gt;
* [[DevTools:JSword|JSword Engine (Java)]]&lt;br /&gt;
** [[DevTools:JSword/Personal Commentary|Personal Commentary]]&lt;br /&gt;
** [[DevTools:JSword/Internationalization|Internationalization]]&lt;br /&gt;
&lt;br /&gt;
==Open Scriptures Information Standard==&lt;br /&gt;
* A basic [[OSIS Tutorial|OSIS XML tutorial]]&lt;br /&gt;
* [[OSIS 211 CR| OSIS 2.1.1 schema change requests]]&lt;br /&gt;
* [https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd OSIS schema] &lt;br /&gt;
* [[List of eXtensions to OSIS used in SWORD]]&lt;br /&gt;
&lt;br /&gt;
==Ancillary software==&lt;br /&gt;
* [[BibleSync]] &amp;amp;ndash; for Bible software shared co-navigation&lt;br /&gt;
* [[DevTools:ICU|International Components for Unicode (ICU)]]&lt;br /&gt;
&lt;br /&gt;
== Development proposals and discussions ==&lt;br /&gt;
* [[Whiteboard]]&lt;br /&gt;
&lt;br /&gt;
==Module development==&lt;br /&gt;
* How to create [[DevTools:Modules|SWORD Modules]] &amp;amp; [[DevTools:conf Files|Module Configuration Files]]&lt;br /&gt;
* Guides to writing&lt;br /&gt;
**[[OSIS Bibles]], [[OSIS Commentaries]],&lt;br /&gt;
**[[OSIS Genbooks]], [[TEI Dictionaries]]&lt;br /&gt;
* Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
* Guide to [[Converting SFM Bibles to OSIS]]&lt;br /&gt;
* About [[Alternate Versification|Bible Versification]] schemes&lt;br /&gt;
* About [[File Formats]] and related [[File Formats#The_SWORD_Project_Utilities|Utility Programs]]&lt;br /&gt;
* About Unicode [[Encoding]]s, [[Fonts]] &amp;amp; [[DevTools:Text Editors|Text Editors]]&lt;br /&gt;
-----&lt;br /&gt;
* [[Module Development Collaboration]]&lt;br /&gt;
* [[Notes on particular CrossWire modules]]&lt;br /&gt;
* [[Module Requests]] and [[Non-CrossWire Text-Development Projects|Text Development]]&lt;br /&gt;
* [[Module Submission]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid gray;padding-left:1em;padding-right:0.5em;background:#E8E8E8;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Getting started in wiki collaboration==&lt;br /&gt;
A wiki is a place to share documentation and development information.&lt;br /&gt;
* New user account [mailto://support@crosswire.org|requests] are now moderated. Anyone who has been a member for at least 4 days can edit a wiki once they have [[Special:Userlogin|logged in]].&lt;br /&gt;
* If you are new to wikis, consult the [http://meta.wikipedia.org/wiki/MediaWiki_User's_Guide User's Guide] or the [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ] for information on using the wiki software .&lt;br /&gt;
* Look to see what might need attention by visiting [[Wiki Maintenance]]&lt;br /&gt;
* You may experiment with wiki using our [[CrossWire:Sandbox|Sandbox]].&lt;br /&gt;
* Another way to navigate the wiki is to click on [[:Category:Categories]].&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:CrossWire]]&lt;br /&gt;
[[Category:SWORD Frontends]]&lt;br /&gt;
[[Category:SWORD]]&lt;br /&gt;
[[Category:JSword]]&lt;br /&gt;
[[Category:OSIS]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
[[Category:Development tools]]&lt;br /&gt;
[[Category:Support]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=SWORD_Module_Source_Discovery_and_Module_Updating&amp;diff=17104</id>
		<title>SWORD Module Source Discovery and Module Updating</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=SWORD_Module_Source_Discovery_and_Module_Updating&amp;diff=17104"/>
				<updated>2021-03-13T22:54:05Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: SWORD Module Remote Installation Source Repository Discovery and Module Updating&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
The SWORD Project Remote Module Source Discovery, Module Installation, and Module Updating is a straightforward process which both the SWORD and JSword engine support programmatically.  Each CrossWire frontend makes these steps available to the user by calling the appropriate SWORD or JSword method for them.  There also exists a simple command line tool (installmgr) to perform these actions, and this simple tool provides to SWORD frontend developers a great example of how to perform each of these steps from within their application.  The steps can generally be list as these; more details about each can be found below:&lt;br /&gt;
&lt;br /&gt;
0. Warn user about the risks of detection and ask them to enable Remote Source features.&lt;br /&gt;
1. Query CrossWire to obtain the list of known publishers of SWORD material.&lt;br /&gt;
2. Query each publisher for a list of available resources.&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
3. Download required files for the resource.&lt;br /&gt;
4. Check to see if the module is enciphered and obtain that code from the user.&lt;br /&gt;
&lt;br /&gt;
==== Update ====&lt;br /&gt;
&lt;br /&gt;
5. Refresh resource list obtained in step #2.&lt;br /&gt;
6. Iterate all installed modules and see if the installed module has a version number less than the version number in the refreshed resource list.&lt;br /&gt;
7. Present to the user the history list between the user's installed version and the available updated version, to inform the user what has changed and ask if an update is desired.&lt;br /&gt;
8. Uninstall the module.&lt;br /&gt;
9. Install the updated module.&lt;br /&gt;
&lt;br /&gt;
Each of these steps has a simple method available to the programmer from the SWORD engine.  &lt;br /&gt;
&lt;br /&gt;
== 0. Warn user about the risks. ==&lt;br /&gt;
&lt;br /&gt;
CrossWire has a policy to always warn users before enabling Remote Module Installation.  Many of our users live in persecuted countries and using CrossWire's systematic method for installing modules from remote sources poses a risk of detection for these users.  This is the warning we typically present during an application run the first time any Remote Module Installation action is requested:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
                -=+* WARNING *+=- -=+* WARNING *+=-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Although Install Manager provides a convenient way for installing&lt;br /&gt;
and upgrading SWORD components, it also uses a systematic method&lt;br /&gt;
for accessing sites which gives packet sniffers a target to lock&lt;br /&gt;
into for singling out users. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IF YOU LIVE IN A PERSECUTED COUNTRY AND DO NOT WISH TO RISK DETECTION,&lt;br /&gt;
YOU SHOULD *NOT* USE INSTALL MANAGER'S REMOTE SOURCE FEATURES.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, Remote Sources other than CrossWire may contain less than&lt;br /&gt;
quality modules, modules with unorthodox content, or even modules&lt;br /&gt;
which are not legitimately distributable.  Many repositories&lt;br /&gt;
contain wonderfully useful content.  These repositories simply&lt;br /&gt;
are not reviewed or maintained by CrossWire and CrossWire&lt;br /&gt;
cannot be held responsible for their content. CAVEAT EMPTOR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you understand this and are willing to enable remote source features&lt;br /&gt;
then type yes at the prompt&lt;br /&gt;
&lt;br /&gt;
enable? [no] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, because user from these countries often do not speak English, we ask the user to type a response to enable the feature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1. Query CrossWire to obtain the list of known publishers of SWORD materials. ==&lt;br /&gt;
&lt;br /&gt;
To discover the list of available module remote source repositories from publishers using the installmgr command line tool:&lt;br /&gt;
&lt;br /&gt;
installmgr -sc&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
The registry of all known and endorsed module remote source installation repositories is located at this URL and is pull by SWORD and JSword automatically to satisfy this step (e.g., by the command: installmgr -sc)&lt;br /&gt;
&lt;br /&gt;
[https://crosswire.org/ftpmirror/pub/sword/masterRepoList.conf]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2. Query each publisher for a list of available resources.&lt;br /&gt;
&lt;br /&gt;
To get a list of available publishers of remote SWORD module sources&lt;br /&gt;
&lt;br /&gt;
installmgr -s&lt;br /&gt;
&lt;br /&gt;
To refresh one of these, e.g., the &amp;quot;CrossWire&amp;quot; source:&lt;br /&gt;
&lt;br /&gt;
installmgr -r &amp;quot;CrossWire&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A module remote installation source repository is simply a set of SWORD resources installed in the same way as they would be installed for use by a SWORD frontend, but also made available online via FTP or HTTP.  There may be optional additional files included which can speed up the use of large repositories, and some additional files currently needed to support JSword (until their install tools are improved to match our main SWORD engine), but essentially, any installed module set can be used as a module installation source for use by other SWORD users to choose and install modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3. Present available resources to user.&lt;br /&gt;
&lt;br /&gt;
To display resources available from a publisher, e.g., from the &amp;quot;CrossWire&amp;quot; source:&lt;br /&gt;
&lt;br /&gt;
installmgr -rl &amp;quot;CrossWire&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== 4. Display the detail for a selected module.&lt;br /&gt;
&lt;br /&gt;
To display the details for a module, e.g., the KJV available from CrossWire:&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc &amp;quot;CrossWire&amp;quot; KJV&lt;br /&gt;
 &lt;br /&gt;
== 5. Install the module.&lt;br /&gt;
&lt;br /&gt;
To install, e.g., the KJV from CrossWire remote source repository:&lt;br /&gt;
&lt;br /&gt;
installmgr -ri &amp;quot;CrossWire&amp;quot; KJV&lt;br /&gt;
&lt;br /&gt;
== 4. Check to see if the module is enciphered and obtain that code from the user.&lt;br /&gt;
&lt;br /&gt;
To check if the NA28 module from the &amp;quot;Deutsche Bibelgesellschaft&amp;quot; source repository needs an unlock key:&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc &amp;quot;Deutsche Bibelgesellschaft&amp;quot; NA28|grep &amp;quot;^\[CipherKey&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A modules' .conf file will include a CipherKey entry to designate that the module is enciphered and needs a key to use.  Once the user provides the key, it should be entered as the value for the CipherKey entry, e.g.,&lt;br /&gt;
&lt;br /&gt;
[ModuleName]&lt;br /&gt;
CipherKey=xyzzy&lt;br /&gt;
&lt;br /&gt;
Typically these and other user-supplied settings for a module should be kept in their own .conf file and merged into the SWORD config, e.g.,&lt;br /&gt;
&lt;br /&gt;
SWMgr library;&lt;br /&gt;
library.config-&amp;gt;augment(SWConfig(&amp;quot;~/.sword/userPreferences.conf&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Where ~/.sword/userPreferences.conf would contain sections for each module along with the properties to augment:&lt;br /&gt;
&lt;br /&gt;
[ModuleName]&lt;br /&gt;
CipherKey=xyzzy&lt;br /&gt;
&lt;br /&gt;
This is valuable when updating a module, so as not to lose the any user-supplied preferences when uninstalling and then re-installing the module during the update.&lt;br /&gt;
&lt;br /&gt;
== 5. Refresh resource list obtained in step #2.&lt;br /&gt;
&lt;br /&gt;
== 6. Iterate all installed modules and see if the installed module has a version number less than the version number in the refreshed resource list.&lt;br /&gt;
&lt;br /&gt;
To check for updates in, e.g., the CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
installmgr -rd &amp;quot;CrossWire&amp;quot;|grep &amp;quot;^+&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
Each module's .conf file contains a Version property which tells the module's current version.  Installmgr's -rd flag will only show new (lines beginning with a '*') and updated (lines beginning with a '+') modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 7. Present to the user the history list between the user's installed version and the available updated version, to inform the user what has changed and ask if an update is desired.&lt;br /&gt;
&lt;br /&gt;
installmgr -rdesc CrossWire Nave|grep &amp;quot;^\[History&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
&lt;br /&gt;
A module's .conf file will include History_version properties which describe what was updated for that version of the module.&lt;br /&gt;
It is desirable to only display to the user the History_version lines which are between the user's currently installed module version and the latest version which they are queried if they would like to update.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 8. Uninstall the module.&lt;br /&gt;
&lt;br /&gt;
To uninstall the KJV module:&lt;br /&gt;
&lt;br /&gt;
installmgr -u KJV&lt;br /&gt;
&lt;br /&gt;
== 9. Install the updated module.&lt;br /&gt;
&lt;br /&gt;
installmgr -ri &amp;quot;CrossWire&amp;quot; KJV&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=17103</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Main_Page&amp;diff=17103"/>
				<updated>2021-03-13T19:21:05Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid green;padding-left:1em;padding-right:0.5em;background:#E4FFDF;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
==Welcome to the CrossWire developers' wiki==&lt;br /&gt;
&lt;br /&gt;
Check out our [[Current Projects|current projects]] page to see how you might use your skills. Please also look at our general [[Volunteers|volunteering]] page.&lt;br /&gt;
&lt;br /&gt;
If you want to help in this wiki, please [mailto://support@crosswire.org request] an account.&lt;br /&gt;
&lt;br /&gt;
Here is the [http://tracker.crosswire.org bugs] database. Chat with SWORD developers on IRC: [http://webchat.freenode.net/?randomnick=1&amp;amp;channels=sword&amp;amp;prompt=1 #sword] on FreeNode.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;background:#E8F1FF;border-style:solid;border-width:1px;border-color:#00ccFF;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Front-end Bible study applications==&lt;br /&gt;
&lt;br /&gt;
===SWORD based front-ends===&lt;br /&gt;
* [[Frontends:BibleCS|The SWORD Project for Windows]] (internally known as BibleCS)&lt;br /&gt;
* [[Frontends:Bishop|The SWORD Project]] for Android, iOS &amp;amp; iPadOS (internally known as Bishop)&lt;br /&gt;
* [[Frontends:Eloquent|Eloquent]] MacOS desktop application&lt;br /&gt;
* [[Frontends:Xiphos|Xiphos]] Windows &amp;amp; Linux desktop application&lt;br /&gt;
* [[Frontends:BibleTime|BibleTime]] Windows &amp;amp; Linux desktop application&lt;br /&gt;
* [[Frontends:The_Bible_Tool|The Bible Tool]] web server application &lt;br /&gt;
* [[Frontends:PocketSword|PocketSword]] iOS &amp;amp; iPadOS application&lt;br /&gt;
* [[Frontends:Holy Bible|Holy Bible]] Windows Desktop application&lt;br /&gt;
* [[Frontends:Ezra Project|Ezra Project]] Windows, Linux, MacOS desktop &amp;amp; Android tablet application&lt;br /&gt;
* [https://www.godehardt.org/losung.html GLosung] Gottes Wort für deinen Desktop&lt;br /&gt;
* [https://pierre-amadio.github.io/matheteuo/ matheteuo] flashcards to help study Biblical Hebrew &amp;amp; Greek&lt;br /&gt;
&lt;br /&gt;
===JSword based front-ends===&lt;br /&gt;
* [[Frontends:BibleDesktop|BibleDesktop]]&lt;br /&gt;
* [http://www.kiyut.com/products/alkitab/ Alkitab Bible Study]&lt;br /&gt;
* [[Frontends:GSword|GSword]] &amp;amp;ndash; CCIM Online Bible Studio&lt;br /&gt;
* [https://mjdenham.github.io/and-bible/ And Bible] &amp;amp;ndash; for Android OS&lt;br /&gt;
* [https://www.stepbible.org/ STEP Bible] &amp;amp;ndash; originally developed at [https://www.tyndalehouse.com/ Tyndale House]&lt;br /&gt;
&lt;br /&gt;
=== Front-ends in general ===&lt;br /&gt;
* [[Choosing a SWORD program]]&lt;br /&gt;
* [[Frontends:No longer being actively developed|Front-ends no longer being actively developed]]&lt;br /&gt;
&lt;br /&gt;
==SWORD module sources==&lt;br /&gt;
* [[SWORD Module Source Discovery and Module Updating]]&lt;br /&gt;
* [[Official and Affiliated Module Repositories]]&lt;br /&gt;
* [[Other Module Sources]]&lt;br /&gt;
* [[Creating and Maintaining a Module Repository]]&lt;br /&gt;
&lt;br /&gt;
==Public relations, website, user assistance==&lt;br /&gt;
* [[Contact| Contact us]]&lt;br /&gt;
* CrossWire's [[Copyright|copyright]] policy&lt;br /&gt;
* [[EnduserFAQ|Frequently Asked Questions]]&lt;br /&gt;
* [[Help:Contents|Help]], [[Help:Bugs|Bugs]] and [[Help:Mailing Lists|Mailing Lists]]&lt;br /&gt;
* [[SWORD CD]]&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; bgcolor=&amp;quot;#FFE8E8&amp;quot; style=&amp;quot;border-style:solid;border-width:1px;border-color:#FF6060;padding-left:1em;padding-right:0.5em; padding-bottom:0.5em;&amp;quot; width=&amp;quot;50%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Back-end API development tools==&lt;br /&gt;
* [[DevTools:SWORD|SWORD Engine (C++)]]&lt;br /&gt;
** Compiling and installing SWORD &lt;br /&gt;
*** on [[Tutorial:Compiling &amp;amp; Installing SWORD| Linux/MacOS/Unix]]&lt;br /&gt;
*** on or for [[Tutorial:Compiling &amp;amp; Installing SWORD on Windows|Windows]]&lt;br /&gt;
*** with [[DevTools:CMake|CMake]]&lt;br /&gt;
** [[:DevTools:Code Examples|Code Examples]]&lt;br /&gt;
** [[Tutorial:How SWORD works]]&lt;br /&gt;
** [[DevTools:Locale Files|Locale Files]]&lt;br /&gt;
** [[DevTools:Bindings|SWIG Bindings]], [[DevTools:CSharp Bindings on Windows|C# Bindings on Windows]], [[DevTools:JNI Bindings for Android|Android Bindings]]&lt;br /&gt;
** bug reports with or without appended patches to our [http://tracker.crosswire.org/projects/API/issues/API-119?filter=allopenissues|bug tracker]&lt;br /&gt;
* [[DevTools:JSword|JSword Engine (Java)]]&lt;br /&gt;
** [[DevTools:JSword/Personal Commentary|Personal Commentary]]&lt;br /&gt;
** [[DevTools:JSword/Internationalization|Internationalization]]&lt;br /&gt;
&lt;br /&gt;
==Open Scriptures Information Standard==&lt;br /&gt;
* A basic [[OSIS Tutorial|OSIS XML tutorial]]&lt;br /&gt;
* [[OSIS 211 CR| OSIS 2.1.1 schema change requests]]&lt;br /&gt;
* [https://www.crosswire.org/~dmsmith/osis/osisCore.2.1.1-cw-latest.xsd OSIS schema] &lt;br /&gt;
* [[List of eXtensions to OSIS used in SWORD]]&lt;br /&gt;
&lt;br /&gt;
==Ancillary software==&lt;br /&gt;
* [[BibleSync]] &amp;amp;ndash; for Bible software shared co-navigation&lt;br /&gt;
* [[DevTools:ICU|International Components for Unicode (ICU)]]&lt;br /&gt;
&lt;br /&gt;
== Development proposals and discussions ==&lt;br /&gt;
* [[Whiteboard]]&lt;br /&gt;
&lt;br /&gt;
==Module development==&lt;br /&gt;
* How to create [[DevTools:Modules|SWORD Modules]] &amp;amp; [[DevTools:conf Files|Module Configuration Files]]&lt;br /&gt;
* Guides to writing&lt;br /&gt;
**[[OSIS Bibles]], [[OSIS Commentaries]],&lt;br /&gt;
**[[OSIS Genbooks]], [[TEI Dictionaries]]&lt;br /&gt;
* Guide to [[Validate_OSIS_or_TEI_text]]&lt;br /&gt;
* Guide to [[Converting SFM Bibles to OSIS]]&lt;br /&gt;
* About [[Alternate Versification|Bible Versification]] schemes&lt;br /&gt;
* About [[File Formats]] and related [[File Formats#The_SWORD_Project_Utilities|Utility Programs]]&lt;br /&gt;
* About Unicode [[Encoding]]s, [[Fonts]] &amp;amp; [[DevTools:Text Editors|Text Editors]]&lt;br /&gt;
-----&lt;br /&gt;
* [[Module Development Collaboration]]&lt;br /&gt;
* [[Notes on particular CrossWire modules]]&lt;br /&gt;
* [[Module Requests]] and [[Non-CrossWire Text-Development Projects|Text Development]]&lt;br /&gt;
* [[Module Submission]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{| cellspacing=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|style=&amp;quot;border: 1px solid gray;padding-left:1em;padding-right:0.5em;background:#E8E8E8;padding-bottom:0.5em;&amp;quot; width=&amp;quot;100%&amp;quot;|&lt;br /&gt;
&lt;br /&gt;
==Getting started in wiki collaboration==&lt;br /&gt;
A wiki is a place to share documentation and development information.&lt;br /&gt;
* New user account [mailto://support@crosswire.org|requests] are now moderated. Anyone who has been a member for at least 4 days can edit a wiki once they have [[Special:Userlogin|logged in]].&lt;br /&gt;
* If you are new to wikis, consult the [http://meta.wikipedia.org/wiki/MediaWiki_User's_Guide User's Guide] or the [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ] for information on using the wiki software .&lt;br /&gt;
* Look to see what might need attention by visiting [[Wiki Maintenance]]&lt;br /&gt;
* You may experiment with wiki using our [[CrossWire:Sandbox|Sandbox]].&lt;br /&gt;
* Another way to navigate the wiki is to click on [[:Category:Categories]].&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:CrossWire]]&lt;br /&gt;
[[Category:SWORD Frontends]]&lt;br /&gt;
[[Category:SWORD]]&lt;br /&gt;
[[Category:JSword]]&lt;br /&gt;
[[Category:OSIS]]&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
[[Category:Development tools]]&lt;br /&gt;
[[Category:Support]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Tutorial:Writing_Conf_files&amp;diff=16720</id>
		<title>Tutorial:Writing Conf files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Tutorial:Writing_Conf_files&amp;diff=16720"/>
				<updated>2020-02-14T06:47:14Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Common mistakes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Creating a .conf File==&lt;br /&gt;
&lt;br /&gt;
=== module.conf File Layout===&lt;br /&gt;
SWORD uses a plain text [[DevTools:conf Files|configuration file]] to store information about modules, one for each module.  This file is used by the SWORD engine to process modules, by installers to help users install modules and by front-ends to render the module appropriately.&lt;br /&gt;
&lt;br /&gt;
Different [http://en.wikipedia.org/wiki/Newline End-of-Line] styles should be not be mixed in the same file.&lt;br /&gt;
&lt;br /&gt;
=== Overview by Example ===&lt;br /&gt;
The module.conf file starts with an INI section, giving the ModName.&lt;br /&gt;
:[KJV]&lt;br /&gt;
&lt;br /&gt;
This is then followed by key=value pairs. &lt;br /&gt;
: # A line that starts with a # is a comment&lt;br /&gt;
: DataPath=./modules/texts/ztext/kjv/&lt;br /&gt;
: ModDrv=Text&lt;br /&gt;
: Encoding=UTF-8&lt;br /&gt;
: BlockType=BOOK&lt;br /&gt;
: CompressType=ZIP&lt;br /&gt;
: SourceType=OSIS&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
Some keys can be repeated with different values:&lt;br /&gt;
: GlobalOptionFilter=OSISStrongs&lt;br /&gt;
: GlobalOptionFilter=OSISMorph&lt;br /&gt;
: GlobalOptionFilter=OSISFootnotes&lt;br /&gt;
: GlobalOptionFilter=OSISHeadings&lt;br /&gt;
: GlobalOptionFilter=OSISRedLetterWords&lt;br /&gt;
&lt;br /&gt;
Some keys support [[DevTools:conf Files#Localization|localization]]:&lt;br /&gt;
: Abbreviation=和合本&lt;br /&gt;
: Abbreviation_en=ChiUn&lt;br /&gt;
: Description=和合本 (繁體字)&lt;br /&gt;
: Description_en=Chinese Union Version (Traditional)&lt;br /&gt;
&lt;br /&gt;
Some fields can have [[DevTools:conf Files#RTF|RTF]] in a single line:&lt;br /&gt;
: About=This is the King James Version of the Holy Bible (also known as the Authorized Version) with embedded Strong's Numbers.  The rights to the base text are held by the Crown of England.  The Strong's numbers in the OT were obtained from The Bible Foundation: http://www.bf.org. The NT Strong's data was obtained from The KJV2003 Project at CrossWire: http://www.crosswire.org.  These mechanisms provide a useful means for looking up the exact original language word in a lexicon that is keyed to Strong's numbers.\par\par Special thanks to the volunteers at Bible Foundation for keying the Hebrew/English data and of Project KJV2003 for working toward the completion of synchronizing the English phrases to the Stephanas Textus Receptus, and to Dr. Maurice Robinson for providing the base Greek text with Strong's and Morphology.  We are also appreciative of formatting markup that was provided by Michael Paul Johnson at http://www.ebible.org.  Their time and generosity to contribute such for the free use of the Body of Christ is a great blessing and this derivative work could not have been possible without these efforts of so many individuals.  It is in this spirit that we in turn offer the KJV2003 Project text freely for any purpose.  Any copyright that might be obtained for this effort is held by CrossWire Bible Society (c) 2003 and CrossWire Bible Society hereby grants a general public license to use this text for any purpose.\par Inquiries and comments may be directed to:\par\par         CrossWire Bible Society\par        kjv2003&amp;amp;#64;crosswire.org\par        http://www.crosswire.org&lt;br /&gt;
Some fields allow multiple lines using \ to escape the newline:&lt;br /&gt;
:About=This is the King James Version of the Holy Bible (also known as the Authorized Version) with embedded Strong's Numbers.  The rights to the base text are held by the Crown of England.  The Strong's numbers in the OT were obtained from The Bible Foundation: http://www.bf.org. The NT Strong's data was obtained from The KJV2003 Project at CrossWire: http://www.crosswire.org.  These mechanisms provide a useful means for looking up the exact original language word in a lexicon that is keyed to Strong's numbers. \&lt;br /&gt;
: \&lt;br /&gt;
:Special thanks to the volunteers at Bible Foundation for keying the Hebrew/English data and of Project KJV2003 for working toward the completion of synchronizing the English phrases to the Stephanas Textus Receptus, and to Dr. Maurice Robinson for providing the base Greek text with Strong's and Morphology.  We are also appreciative of formatting markup that was provided by Michael Paul Johnson at http://www.ebible.org.  Their time and generosity to contribute such for the free use of the Body of Christ is a great blessing and this derivative work could not have been possible without these efforts of so many individuals.  It is in this spirit that we in turn offer the KJV2003 Project text freely for any purpose.  Any copyright that might be obtained for this effort is held by CrossWire Bible Society (c) 2003 and CrossWire Bible Society hereby grants a general public license to use this text for any purpose. \&lt;br /&gt;
: Inquiries and comments may be directed to: \&lt;br /&gt;
: \&lt;br /&gt;
:CrossWire Bible Society \&lt;br /&gt;
:kjv2003&amp;amp;#64;crosswire.org \&lt;br /&gt;
:http://www.crosswire.org&lt;br /&gt;
&lt;br /&gt;
=== Common mistakes ===&lt;br /&gt;
Using Latin-1 or CP1252 when:&lt;br /&gt;
: Encoding=UTF-8&lt;br /&gt;
&lt;br /&gt;
Having a [http://en.wikipedia.org/wiki/Byte_order_mark Byte Order Mark (BOM)] at the beginning of the file&amp;lt;ref&amp;gt;Windows Notepad and Wordpad may silently add these to the file&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;This can even cause some front-ends to crash!&amp;lt;/ref&amp;gt;&lt;br /&gt;
: U+FEFF&lt;br /&gt;
: [KJV]&lt;br /&gt;
&lt;br /&gt;
Repeating the same element with the same value:&lt;br /&gt;
: Lang=en&lt;br /&gt;
: ...&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
Repeating the same element with different values, when the element doesn't allow repeats:&lt;br /&gt;
: Lang=en&lt;br /&gt;
: Lang=de&lt;br /&gt;
&lt;br /&gt;
Not supplying a value:&lt;br /&gt;
: About=&lt;br /&gt;
&lt;br /&gt;
Having a continuation marker on the last line, causing the next key=value to be appended to the prior field:&lt;br /&gt;
: this is text that continues from the prior line \&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
Omitting the space after an otherwise valid RTF tag:&lt;br /&gt;
: About=Module name\parModule details...&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Continuation ===&lt;br /&gt;
A value can span multiple lines by escaping the return with '\'. This is not a mechanism to make long lines more readable in the module.conf file. It is a means to introducing a break in the rendered output of that field when viewed by a front-end or installer. It is akin to a xHTML &amp;amp;lt;br/&amp;amp;gt;. That is, continuation is a formatting feature.&lt;br /&gt;
&lt;br /&gt;
Most elements in a SWORD conf are expected to have short, one-line values. Elements that are expected to have multiple lines are noted.&lt;br /&gt;
&lt;br /&gt;
=== RTF ===&lt;br /&gt;
A module.conf supports a very small, restricted subset of RTF markup. Only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
The only uniqueness that RTF provides is centering. If centering is not needed, then use continuation lines instead of RTF.&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
Those .conf fields that are essentially text intended for presentation to the end-user may be localized by appending _''locale'' to the field name, where ''locale'' is replaced by an appropriate locale code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang below for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh-Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh-Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
In order for a .conf entry to appear in a localized form, a non-localized form of the same field must also occur within the .conf. For example, in order for a ''Description_en'' field to appear, a file  must also possess a ''Description'' field. The locale of .conf entries without the locale modifier is the default and must reflect the locale/language of the module itself (as specified in Lang=) or English (if there are no localized versions of the field). In general, fields should be provided in the language of the module itself with English translations provided in parallel fields localized with _''en''. There is no explicit upper bound on the quantity of localized fields, but all localized and localizable fields should be unique.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
# At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no front-end support for it.&lt;br /&gt;
# See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* The main reference [[DevTools:conf Files|page for .conf files]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/DavidHaslam/CONF CONF] &amp;amp;ndash; User Defined Language file to be used with [https://notepad-plus-plus.org/ Notepad++] for syntax highlighting SWORD module CONF text files.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;br /&gt;
[[Category:Tutorials|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Tutorial:Writing_Conf_files&amp;diff=16719</id>
		<title>Tutorial:Writing Conf files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Tutorial:Writing_Conf_files&amp;diff=16719"/>
				<updated>2020-02-14T06:45:14Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Overview by Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Creating a .conf File==&lt;br /&gt;
&lt;br /&gt;
=== module.conf File Layout===&lt;br /&gt;
SWORD uses a plain text [[DevTools:conf Files|configuration file]] to store information about modules, one for each module.  This file is used by the SWORD engine to process modules, by installers to help users install modules and by front-ends to render the module appropriately.&lt;br /&gt;
&lt;br /&gt;
Different [http://en.wikipedia.org/wiki/Newline End-of-Line] styles should be not be mixed in the same file.&lt;br /&gt;
&lt;br /&gt;
=== Overview by Example ===&lt;br /&gt;
The module.conf file starts with an INI section, giving the ModName.&lt;br /&gt;
:[KJV]&lt;br /&gt;
&lt;br /&gt;
This is then followed by key=value pairs. &lt;br /&gt;
: # A line that starts with a # is a comment&lt;br /&gt;
: DataPath=./modules/texts/ztext/kjv/&lt;br /&gt;
: ModDrv=Text&lt;br /&gt;
: Encoding=UTF-8&lt;br /&gt;
: BlockType=BOOK&lt;br /&gt;
: CompressType=ZIP&lt;br /&gt;
: SourceType=OSIS&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
Some keys can be repeated with different values:&lt;br /&gt;
: GlobalOptionFilter=OSISStrongs&lt;br /&gt;
: GlobalOptionFilter=OSISMorph&lt;br /&gt;
: GlobalOptionFilter=OSISFootnotes&lt;br /&gt;
: GlobalOptionFilter=OSISHeadings&lt;br /&gt;
: GlobalOptionFilter=OSISRedLetterWords&lt;br /&gt;
&lt;br /&gt;
Some keys support [[DevTools:conf Files#Localization|localization]]:&lt;br /&gt;
: Abbreviation=和合本&lt;br /&gt;
: Abbreviation_en=ChiUn&lt;br /&gt;
: Description=和合本 (繁體字)&lt;br /&gt;
: Description_en=Chinese Union Version (Traditional)&lt;br /&gt;
&lt;br /&gt;
Some fields can have [[DevTools:conf Files#RTF|RTF]] in a single line:&lt;br /&gt;
: About=This is the King James Version of the Holy Bible (also known as the Authorized Version) with embedded Strong's Numbers.  The rights to the base text are held by the Crown of England.  The Strong's numbers in the OT were obtained from The Bible Foundation: http://www.bf.org. The NT Strong's data was obtained from The KJV2003 Project at CrossWire: http://www.crosswire.org.  These mechanisms provide a useful means for looking up the exact original language word in a lexicon that is keyed to Strong's numbers.\par\par Special thanks to the volunteers at Bible Foundation for keying the Hebrew/English data and of Project KJV2003 for working toward the completion of synchronizing the English phrases to the Stephanas Textus Receptus, and to Dr. Maurice Robinson for providing the base Greek text with Strong's and Morphology.  We are also appreciative of formatting markup that was provided by Michael Paul Johnson at http://www.ebible.org.  Their time and generosity to contribute such for the free use of the Body of Christ is a great blessing and this derivative work could not have been possible without these efforts of so many individuals.  It is in this spirit that we in turn offer the KJV2003 Project text freely for any purpose.  Any copyright that might be obtained for this effort is held by CrossWire Bible Society (c) 2003 and CrossWire Bible Society hereby grants a general public license to use this text for any purpose.\par Inquiries and comments may be directed to:\par\par         CrossWire Bible Society\par        kjv2003&amp;amp;#64;crosswire.org\par        http://www.crosswire.org&lt;br /&gt;
Some fields allow multiple lines using \ to escape the newline:&lt;br /&gt;
:About=This is the King James Version of the Holy Bible (also known as the Authorized Version) with embedded Strong's Numbers.  The rights to the base text are held by the Crown of England.  The Strong's numbers in the OT were obtained from The Bible Foundation: http://www.bf.org. The NT Strong's data was obtained from The KJV2003 Project at CrossWire: http://www.crosswire.org.  These mechanisms provide a useful means for looking up the exact original language word in a lexicon that is keyed to Strong's numbers. \&lt;br /&gt;
: \&lt;br /&gt;
:Special thanks to the volunteers at Bible Foundation for keying the Hebrew/English data and of Project KJV2003 for working toward the completion of synchronizing the English phrases to the Stephanas Textus Receptus, and to Dr. Maurice Robinson for providing the base Greek text with Strong's and Morphology.  We are also appreciative of formatting markup that was provided by Michael Paul Johnson at http://www.ebible.org.  Their time and generosity to contribute such for the free use of the Body of Christ is a great blessing and this derivative work could not have been possible without these efforts of so many individuals.  It is in this spirit that we in turn offer the KJV2003 Project text freely for any purpose.  Any copyright that might be obtained for this effort is held by CrossWire Bible Society (c) 2003 and CrossWire Bible Society hereby grants a general public license to use this text for any purpose. \&lt;br /&gt;
: Inquiries and comments may be directed to: \&lt;br /&gt;
: \&lt;br /&gt;
:CrossWire Bible Society \&lt;br /&gt;
:kjv2003&amp;amp;#64;crosswire.org \&lt;br /&gt;
:http://www.crosswire.org&lt;br /&gt;
&lt;br /&gt;
=== Common mistakes ===&lt;br /&gt;
Using Latin-1 or CP1252 when:&lt;br /&gt;
: Encoding=UTF-8&lt;br /&gt;
&lt;br /&gt;
Having a [http://en.wikipedia.org/wiki/Byte_order_mark Byte Order Mark (BOM)] at the beginning of the file&amp;lt;ref&amp;gt;Windows Notepad and Wordpad may silently add these to the file&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;This can even cause some front-ends to crash!&amp;lt;/ref&amp;gt;&lt;br /&gt;
: U+FEFF&lt;br /&gt;
: [KJV]&lt;br /&gt;
&lt;br /&gt;
Repeating the same element with the same value:&lt;br /&gt;
: Lang=en&lt;br /&gt;
: ...&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
Repeating the same element with different values, when the element doesn't allow repeats:&lt;br /&gt;
: Lang=en&lt;br /&gt;
: Lang=de&lt;br /&gt;
&lt;br /&gt;
Not supplying a value:&lt;br /&gt;
: About=&lt;br /&gt;
Only the field CipherKey allows this.&lt;br /&gt;
&lt;br /&gt;
Having a continuation marker on the last line, causing the next key=value to be appended to the prior field:&lt;br /&gt;
: this is text that continues from the prior line \&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
Omitting the space after an otherwise valid RTF tag:&lt;br /&gt;
: About=Module name\parModule details...&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Continuation ===&lt;br /&gt;
A value can span multiple lines by escaping the return with '\'. This is not a mechanism to make long lines more readable in the module.conf file. It is a means to introducing a break in the rendered output of that field when viewed by a front-end or installer. It is akin to a xHTML &amp;amp;lt;br/&amp;amp;gt;. That is, continuation is a formatting feature.&lt;br /&gt;
&lt;br /&gt;
Most elements in a SWORD conf are expected to have short, one-line values. Elements that are expected to have multiple lines are noted.&lt;br /&gt;
&lt;br /&gt;
=== RTF ===&lt;br /&gt;
A module.conf supports a very small, restricted subset of RTF markup. Only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
The only uniqueness that RTF provides is centering. If centering is not needed, then use continuation lines instead of RTF.&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
Those .conf fields that are essentially text intended for presentation to the end-user may be localized by appending _''locale'' to the field name, where ''locale'' is replaced by an appropriate locale code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang below for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh-Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh-Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
In order for a .conf entry to appear in a localized form, a non-localized form of the same field must also occur within the .conf. For example, in order for a ''Description_en'' field to appear, a file  must also possess a ''Description'' field. The locale of .conf entries without the locale modifier is the default and must reflect the locale/language of the module itself (as specified in Lang=) or English (if there are no localized versions of the field). In general, fields should be provided in the language of the module itself with English translations provided in parallel fields localized with _''en''. There is no explicit upper bound on the quantity of localized fields, but all localized and localizable fields should be unique.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
# At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no front-end support for it.&lt;br /&gt;
# See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* The main reference [[DevTools:conf Files|page for .conf files]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/DavidHaslam/CONF CONF] &amp;amp;ndash; User Defined Language file to be used with [https://notepad-plus-plus.org/ Notepad++] for syntax highlighting SWORD module CONF text files.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;br /&gt;
[[Category:Tutorials|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Tutorial:Writing_Conf_files&amp;diff=16718</id>
		<title>Tutorial:Writing Conf files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Tutorial:Writing_Conf_files&amp;diff=16718"/>
				<updated>2020-02-14T06:43:20Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Overview by Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Creating a .conf File==&lt;br /&gt;
&lt;br /&gt;
=== module.conf File Layout===&lt;br /&gt;
SWORD uses a plain text [[DevTools:conf Files|configuration file]] to store information about modules, one for each module.  This file is used by the SWORD engine to process modules, by installers to help users install modules and by front-ends to render the module appropriately.&lt;br /&gt;
&lt;br /&gt;
Different [http://en.wikipedia.org/wiki/Newline End-of-Line] styles should be not be mixed in the same file.&lt;br /&gt;
&lt;br /&gt;
=== Overview by Example ===&lt;br /&gt;
The module.conf file starts with an INI section, giving the ModName.&lt;br /&gt;
:[KJV]&lt;br /&gt;
&lt;br /&gt;
This is then followed by key=value pairs. &lt;br /&gt;
: # A line that starts with a # is a comment&lt;br /&gt;
: DataPath=./modules/texts/ztext/kjv/&lt;br /&gt;
: ModDrv=Text&lt;br /&gt;
: Encoding=UTF-8&lt;br /&gt;
: BlockType=BOOK&lt;br /&gt;
: CompressType=ZIP&lt;br /&gt;
: SourceType=OSIS&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
Some keys can be repeated with different values:&lt;br /&gt;
:GlobalOptionFilter=OSISStrongs&lt;br /&gt;
:GlobalOptionFilter=OSISMorph&lt;br /&gt;
:GlobalOptionFilter=OSISFootnotes&lt;br /&gt;
:GlobalOptionFilter=OSISHeadings&lt;br /&gt;
:GlobalOptionFilter=OSISRedLetterWords&lt;br /&gt;
&lt;br /&gt;
Some keys support [[DevTools:conf Files#Localization|localization]]:&lt;br /&gt;
Abbreviation=和合本&lt;br /&gt;
Abbreviation_en=ChiUn&lt;br /&gt;
Description=和合本 (繁體字)&lt;br /&gt;
Description_en=Chinese Union Version (Traditional)&lt;br /&gt;
&lt;br /&gt;
Some fields can have [[DevTools:conf Files#RTF|RTF]] in a single line:&lt;br /&gt;
:About=This is the King James Version of the Holy Bible (also known as the Authorized Version) with embedded Strong's Numbers.  The rights to the base text are held by the Crown of England.  The Strong's numbers in the OT were obtained from The Bible Foundation: http://www.bf.org. The NT Strong's data was obtained from The KJV2003 Project at CrossWire: http://www.crosswire.org.  These mechanisms provide a useful means for looking up the exact original language word in a lexicon that is keyed to Strong's numbers.\par\par Special thanks to the volunteers at Bible Foundation for keying the Hebrew/English data and of Project KJV2003 for working toward the completion of synchronizing the English phrases to the Stephanas Textus Receptus, and to Dr. Maurice Robinson for providing the base Greek text with Strong's and Morphology.  We are also appreciative of formatting markup that was provided by Michael Paul Johnson at http://www.ebible.org.  Their time and generosity to contribute such for the free use of the Body of Christ is a great blessing and this derivative work could not have been possible without these efforts of so many individuals.  It is in this spirit that we in turn offer the KJV2003 Project text freely for any purpose.  Any copyright that might be obtained for this effort is held by CrossWire Bible Society (c) 2003 and CrossWire Bible Society hereby grants a general public license to use this text for any purpose.\par Inquiries and comments may be directed to:\par\par         CrossWire Bible Society\par        kjv2003&amp;amp;#64;crosswire.org\par        http://www.crosswire.org&lt;br /&gt;
Some fields allow multiple lines using \ to escape the newline:&lt;br /&gt;
:About=This is the King James Version of the Holy Bible (also known as the Authorized Version) with embedded Strong's Numbers.  The rights to the base text are held by the Crown of England.  The Strong's numbers in the OT were obtained from The Bible Foundation: http://www.bf.org. The NT Strong's data was obtained from The KJV2003 Project at CrossWire: http://www.crosswire.org.  These mechanisms provide a useful means for looking up the exact original language word in a lexicon that is keyed to Strong's numbers. \&lt;br /&gt;
: \&lt;br /&gt;
:Special thanks to the volunteers at Bible Foundation for keying the Hebrew/English data and of Project KJV2003 for working toward the completion of synchronizing the English phrases to the Stephanas Textus Receptus, and to Dr. Maurice Robinson for providing the base Greek text with Strong's and Morphology.  We are also appreciative of formatting markup that was provided by Michael Paul Johnson at http://www.ebible.org.  Their time and generosity to contribute such for the free use of the Body of Christ is a great blessing and this derivative work could not have been possible without these efforts of so many individuals.  It is in this spirit that we in turn offer the KJV2003 Project text freely for any purpose.  Any copyright that might be obtained for this effort is held by CrossWire Bible Society (c) 2003 and CrossWire Bible Society hereby grants a general public license to use this text for any purpose. \&lt;br /&gt;
: Inquiries and comments may be directed to: \&lt;br /&gt;
: \&lt;br /&gt;
:CrossWire Bible Society \&lt;br /&gt;
:kjv2003&amp;amp;#64;crosswire.org \&lt;br /&gt;
:http://www.crosswire.org&lt;br /&gt;
&lt;br /&gt;
=== Common mistakes ===&lt;br /&gt;
Using Latin-1 or CP1252 when:&lt;br /&gt;
: Encoding=UTF-8&lt;br /&gt;
&lt;br /&gt;
Having a [http://en.wikipedia.org/wiki/Byte_order_mark Byte Order Mark (BOM)] at the beginning of the file&amp;lt;ref&amp;gt;Windows Notepad and Wordpad may silently add these to the file&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;This can even cause some front-ends to crash!&amp;lt;/ref&amp;gt;&lt;br /&gt;
: U+FEFF&lt;br /&gt;
: [KJV]&lt;br /&gt;
&lt;br /&gt;
Repeating the same element with the same value:&lt;br /&gt;
: Lang=en&lt;br /&gt;
: ...&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
Repeating the same element with different values, when the element doesn't allow repeats:&lt;br /&gt;
: Lang=en&lt;br /&gt;
: Lang=de&lt;br /&gt;
&lt;br /&gt;
Not supplying a value:&lt;br /&gt;
: About=&lt;br /&gt;
Only the field CipherKey allows this.&lt;br /&gt;
&lt;br /&gt;
Having a continuation marker on the last line, causing the next key=value to be appended to the prior field:&lt;br /&gt;
: this is text that continues from the prior line \&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
Omitting the space after an otherwise valid RTF tag:&lt;br /&gt;
: About=Module name\parModule details...&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Continuation ===&lt;br /&gt;
A value can span multiple lines by escaping the return with '\'. This is not a mechanism to make long lines more readable in the module.conf file. It is a means to introducing a break in the rendered output of that field when viewed by a front-end or installer. It is akin to a xHTML &amp;amp;lt;br/&amp;amp;gt;. That is, continuation is a formatting feature.&lt;br /&gt;
&lt;br /&gt;
Most elements in a SWORD conf are expected to have short, one-line values. Elements that are expected to have multiple lines are noted.&lt;br /&gt;
&lt;br /&gt;
=== RTF ===&lt;br /&gt;
A module.conf supports a very small, restricted subset of RTF markup. Only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
The only uniqueness that RTF provides is centering. If centering is not needed, then use continuation lines instead of RTF.&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
Those .conf fields that are essentially text intended for presentation to the end-user may be localized by appending _''locale'' to the field name, where ''locale'' is replaced by an appropriate locale code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang below for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh-Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh-Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
In order for a .conf entry to appear in a localized form, a non-localized form of the same field must also occur within the .conf. For example, in order for a ''Description_en'' field to appear, a file  must also possess a ''Description'' field. The locale of .conf entries without the locale modifier is the default and must reflect the locale/language of the module itself (as specified in Lang=) or English (if there are no localized versions of the field). In general, fields should be provided in the language of the module itself with English translations provided in parallel fields localized with _''en''. There is no explicit upper bound on the quantity of localized fields, but all localized and localizable fields should be unique.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
# At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no front-end support for it.&lt;br /&gt;
# See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* The main reference [[DevTools:conf Files|page for .conf files]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/DavidHaslam/CONF CONF] &amp;amp;ndash; User Defined Language file to be used with [https://notepad-plus-plus.org/ Notepad++] for syntax highlighting SWORD module CONF text files.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;br /&gt;
[[Category:Tutorials|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=16717</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=16717"/>
				<updated>2020-02-14T06:39:34Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Required Elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes important information about module configuration (.conf) files. All SWORD modules require one. &lt;br /&gt;
&lt;br /&gt;
Please look also at our detailed and commented [[Tutorial:Writing Conf files|tutorial]].&lt;br /&gt;
&lt;br /&gt;
== Key elements of a SWORD module.conf ==&lt;br /&gt;
&lt;br /&gt;
Some keys can be repeated. Many not.&lt;br /&gt;
&lt;br /&gt;
Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Don't use continuation unless allowed. It will produce different results in different front ends.&lt;br /&gt;
&lt;br /&gt;
RTF is allowed in some values. &lt;br /&gt;
&lt;br /&gt;
Some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Values specifications are shown as '''&amp;amp;lt;content spec&amp;amp;gt;'''. The &amp;amp;lt; and &amp;amp;gt; are not to be included.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in '''bold'''. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
The order of elements specified in a conf file is immaterial, except where specified otherwise.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [ModName]&lt;br /&gt;
| Each conf file begins with a unique identifier for a module placed within brackets, e.g., [KJV1611]. This must be first in the file. Valid characters for this abbreviation are limited to [https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions PCRE] class &amp;lt;tt&amp;gt;[A-Za-z0-9_]&amp;lt;/tt&amp;gt;.&amp;lt;ref&amp;gt;That excludes the space and hyphen characters!&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Abbreviation element is meant to allow for localization of this field.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, kjv1611.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&amp;lt;ref&amp;gt;We advise against explicitly declaring a redundant Abbreviation identical to the ModName.  Abbreviation values should try to be unique to avoid user confusion.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The abbreviation displayed to the user. If not supplied, the unique ModName will be used.  This field allows for localization-- showing a different abbreviation depending on the user's locale.&lt;br /&gt;
&lt;br /&gt;
| [ModName]&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths used for a module named [MyModule], depending on&amp;lt;BR&amp;gt;(a) the type of module (Bible text, commentary, lexicon or dictionary&amp;lt;ref&amp;gt;Daily devotionals &amp;amp; glossaries go in subdirectories under lexdict. A glossary is between two languages.&amp;lt;/ref&amp;gt;, general book) and&amp;lt;BR&amp;gt;(b) the data driver (ModDrv parameter) are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
:./modules/texts/rawtext4/mymodule/&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
:./modules/texts/ztext4/mymodule/&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
:./modules/comments/zcom4/mymodule/&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
|&lt;br /&gt;
'''RawText''' (for uncompressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawText4''' (for uncompressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText''' (for compressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText4''' (for compressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require MinimumVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom''' (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom4''' (for uncompressed Commentaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom''' (for compressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom4''' (for compressed Commentaries having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require SwordVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HREFCom''' (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawFiles''' (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD''' (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD4''' (for uncompressed Dictionaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zLD''' (for compressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawGenBook''' (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Elements with defaults ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&amp;lt;ref&amp;gt;Omitting this for a non-plaintext module has unpredictable effects.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''Plaintext'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSIS''' ([http://www.bibletechnologies.net Open Scriptural Information Standard])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''TEI''' ([http://www.tei-c.org Text Encoding Initiative])&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the '''markup''' used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries. While SourceType has a default, it is a best practice to specify it.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Legacy modules may have a key here stating: &lt;br /&gt;
&lt;br /&gt;
'''GBF''' ([http://www.ebible.org/bible/gbf.htm General Bible Format])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThML''' ([http://www.ccel.org/ThML Theological Markup Language])&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
|&lt;br /&gt;
'''UTF-8'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF-16'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SCSU''' ([http://en.wikipedia.org/wiki/Standard_Compression_Scheme_for_Unicode Standard Compression Scheme for Unicode])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates how the text in the conf and in the module are encoded.&lt;br /&gt;
&lt;br /&gt;
The preferred encoding of texts is UTF-8. Other than Hebrew, UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Biblical Hebrew requires special handling.&amp;lt;ref&amp;gt;Unicode normalization can easily break Biblical Hebrew text. See on page 9 in the [http://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf SBL Hebrew Font User Manual].&amp;lt;/ref&amp;gt; A few other languages may require special handling.&amp;lt;ref&amp;gt;e.g. If they are mentioned in Table 10 in the [http://unicode.org/reports/tr15/#Corrigendum_5_Sequences Corrigendum 5 Sequences].&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The improper normalization of exceptional codepoints can be prevented by inserting a [https://en.wikipedia.org/wiki/Combining_Grapheme_Joiner Combining Grapheme Joiner].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To date, no modules use UTF-16 or SCSU. Legacy modules may hold a key here '''Latin-1''' referring solely to Windows Codepage 1252, a superset of ISO-8859-1. Front-end implementors wishing to use such modules should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.''&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
|&lt;br /&gt;
'''ZIP'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LZSS''' ([http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski Lempel Ziv Storer Szymanski])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BZIP2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''XZ'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText, zCom or zLD to indicate the compression algorithm.&lt;br /&gt;
While CompressType has a default, it is best practice to specify it.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
|&lt;br /&gt;
'''BOOK'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''CHAPTER'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VERSE'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText (Bibles) and zCom (Commentaries) to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller. It is best practice to take the default and not specify it.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&lt;br /&gt;
'''Calvin'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Darby_fr'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''German'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LXX'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Leningrad'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Luther'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''MT'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Orthodox'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Segond'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Synodal'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SynodalProt'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Vulg'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to specify the versification employed by a Bible module. Refer to [[Alternate Versification]].&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates that a module is enciphered and that the module is (un)locked. When the key has no value (&amp;quot;CipherKey=&amp;quot;) the module is locked. When it has a value, the module is unlocked.&lt;br /&gt;
&lt;br /&gt;
A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But it needs to be readable, plain text, without leading or trailing spaces.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
|&lt;br /&gt;
'''TreeKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VerseKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bibles which do not conform to any supported versification system in SWORD. It is best practice to take the default and not specify it.&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CaseSensitiveKeys&lt;br /&gt;
|&lt;br /&gt;
Used for Dictionaries whose keys are case sensitive. This key is used to suppress normalization to UPPER CASE before comparison.&amp;lt;br/&amp;gt;&lt;br /&gt;
Only allowable value: '''true'''&lt;br /&gt;
| false&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
|&lt;br /&gt;
'''UTF8Cantillation''' (For Hebrew texts having cantillation marks)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Cantillation&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8GreekAccents''' (For Greek texts having accents)&amp;lt;ref&amp;gt;For detailed background, see https://en.wikipedia.org/wiki/Greek_diacritics&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;This filter can have undesirable side-effects when applied to non-Greek text!&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8HebrewPoints''' (For Hebrew texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Niqqud&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8ArabicPoints''' (For Arabic texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Arabic_diacritics&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISLemma''' (For OSIS texts having lemmas)&amp;lt;ref&amp;gt;Must precede OSISStrongs.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorphSegmentation''' (For OSIS texts having morphological segmentation elements)&amp;lt;ref&amp;gt;Currently, only some JSword based front-ends seem to support this feature. The SWORD engine has the switch available, but no change in output is effected.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISStrongs''' (For OSIS texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISFootnotes''' (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISScripref''' (For OSIS texts having [[OSIS Bibles#Marking_cross-references_note|cross reference]] type notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorph''' (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISHeadings''' (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISVariants''' (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISRedLetterWords''' (For OSIS texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISGlosses''' (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Minimum SWORD version of 1.7.0 in the module .conf is required for OSISGlosses.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISXlit''' (For OSIS texts that include transliterated forms)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using xlit.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISEnum''' (For OSIS texts with enumerated words)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using enum.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISReferenceLinks''' (For OSIS texts with glossary links)&amp;lt;ref&amp;gt;New in SWORD 1.7.0 - This filter requires six vertical bar-delimited fields, of which the following is an example.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GlobalOptionFilter=OSISReferenceLinks|Reference Material Links|Hide or show links to study helps in the Biblical text.|x-glossary||On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here are the different field meanings:&lt;br /&gt;
# &amp;quot;OSISReferenceLinks&amp;quot; = option filter class name (option class name internal to the engine). Always the same for this kind of filter.&lt;br /&gt;
# &amp;quot;Reference Material Links&amp;quot; = Visible name of this OSISReferenceLinks filter. This is what the user will see in the Global Options toggle lists.&lt;br /&gt;
# &amp;quot;Hide or show...&amp;quot; = A readable user tip explaining what the filter does.&lt;br /&gt;
# &amp;quot;x-glossary&amp;quot; = Tells this OSISReferenceLinks filter to filter all references with type=&amp;quot;x-glossary&amp;quot;.&lt;br /&gt;
# (empty) = Tells this OSISReferenceLinks filter to also require that subType=&amp;quot;something&amp;quot; in order to filter. Empty means ALL type=&amp;quot;x-glossary&amp;quot; references will be filtered regardless of subType.&lt;br /&gt;
# &amp;quot;On&amp;quot; = Default filter toggle value (&amp;quot;On&amp;quot; or &amp;quot;Off&amp;quot;)&lt;br /&gt;
&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;It is allowed to have multiple OSISReferenceLinks entries in a single conf file.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&amp;lt;ref&amp;gt;It's not implied that every front-end supports all of the listed option filters.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. cross-references in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
&lt;br /&gt;
Legacy modules may also have following keys:&lt;br /&gt;
&lt;br /&gt;
'''OSISRuby'''&amp;lt;ref&amp;gt;See [https://en.wikipedia.org/wiki/Ruby_character Ruby character] and [https://en.wikipedia.org/wiki/Furigana Furigana]&amp;lt;/ref&amp;gt; (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Deprecated in 1.7.0. Use OSISGlosses instead.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFStrongs''' (For GBF texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFFootnotes''' (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFMorph''' (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFHeadings''' (For GBF texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFRedLetterWords''' (For GBF texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLStrongs''' (For THML texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLFootnotes''' (For THML texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLScripref''' (For THML texts having cross references)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLMorph''' (For THML texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLHeadings''' (For THML texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLVariants''' (For THML texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLLemma''' (For THML texts having lemmas)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
|&lt;br /&gt;
'''LtoR''' (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RtoL''' (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BiDi''' (&amp;lt;u&amp;gt;Bidi&amp;lt;/u&amp;gt;rectional)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script.&amp;lt;ref&amp;gt;JSword validates the direction property against the Lang of the module.&amp;lt;/ref&amp;gt; Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script. If the RtoL script is transliterated into a LtoR script, set the value to LtoR. If a module has both RtoL and LtoR text, then it is BiDi.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| '''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for General Book module types (these are keyed with a TreeKey table of contents).  Indicates the preferred level from a leaf in the tree to display for context. e.g., 1 will only show the requested entry; 2 will show the entry, surrounded by all siblings, etc.&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the [[Fonts|font]] to be used for display of the module if it is available.&amp;lt;ref&amp;gt;Specifying a font may not be sufficient for some modules. The required font features may depend on a particular smart font engine, which may not be compiled into the front-end application.&amp;lt;/ref&amp;gt; Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;del&amp;gt;OSISqToTick&amp;lt;/del&amp;gt; (deprecated)&amp;lt;ref&amp;gt;For further details, refer to [http://www.crosswire.org/bugs/browse/MOD-188 MOD-188] in CrossWire bugs.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| This attribute is deprecated in favor of the marker attribute on the q element. E.g.: &amp;lt;pre&amp;gt;&amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;....&amp;lt;/q&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;true/false&amp;lt;/del&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&amp;lt;/del&amp;gt; &lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
|&lt;br /&gt;
'''StrongsNumbers''' (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekDef''' (for dictionary modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewDef''' (for dictionary modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekParse''' (for dictionary modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewParse''' (for dictionary modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''DailyDevotion''' (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossary''' (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that contain images of any type)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NoParagraphs''' (for modules without any paragraphing information, which are typically typeset with a verse per line&amp;lt;ref&amp;gt;This feature is intended to be informational to front-end developers. Ideally, front-ends will render these modules with a verse per line rather than as a single big chapter-length paragraph block.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The occurrence of a small number of paragraph elements in a module (such as might be used merely to format the colophon at the end of each Pauline epistle) does not rule out the use of this feature.&amp;lt;/ref&amp;gt;)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| PreferredCSSXHTML&lt;br /&gt;
| '''&amp;amp;lt;filename&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Names a file in the module's DataPath that should be referenced for the renderer as CSS display controls.&lt;br /&gt;
Generality is advised: Use controls that are not specific to any particular rendering engine, e.g. WebKit.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optional elements to support particular features ===&lt;br /&gt;
==== CaseInsensitiveKeys ====&lt;br /&gt;
Intended for use with Lexicon/Dictionary &amp;amp; Glossary modules. This field will make the order of the keys based upon the mixed case keys, but the index is still sorted by byte order of those keys. There are some scripts that don’t have upper/lower case (e.g. Arabic) and some languages where a naïve toUpper() will result in the wrong character (e.g. Turkish/Azeri lowercase dotted i and capital dotted İ).&lt;br /&gt;
&lt;br /&gt;
 CaseInsensitiveKeys=true|false&lt;br /&gt;
&lt;br /&gt;
It is fine to use toUpper() for internal normalization, but having keys in all caps when showing to a user is annoying. The problem is that the display order needs to follow something that makes sense to a user when the dictionary is presented as a list.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/JohnAustinDev/xulsword xulsword] has a different solution involving a configuration item not yet used by SWORD master.&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcDdEe... &lt;br /&gt;
&lt;br /&gt;
This is used by xulsword to sort the keys of a dictionary/glossary in original alphabetical order. Here's an actual example for module TKLDICT which has Lang=tk-Latn (i.e. Türkmençe):&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcÇçDdEeÄäŻżFfGgHhIiJjKkLlMmNnŇňOoÖöPpQqRrSsŞşTtUuÜüVvWwXxYyÝýZzŽž&lt;br /&gt;
&lt;br /&gt;
This method would need to be modified in order to support alphabets (such as [http://en.wikipedia.org/wiki/Welsh_orthography Welsh]) that include any [http://en.wikipedia.org/wiki/Digraph_%28orthography%29 digraphs].&lt;br /&gt;
&lt;br /&gt;
==== StrongsPadding ====&lt;br /&gt;
At the heart of our lexicon/dictionary drivers, we have some old logic which tries to detect if a key value is a Strong's number, and if so, then pad it with leading zeros accordingly. To support this logic, the recognition has recently been added for an optional new .conf entry for lexicon/dictionary modules:&lt;br /&gt;
&lt;br /&gt;
 StrongsPadding=true|false&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# So as not to break everything, this currently defaults to true if it is not present in the lexdict module's .conf file&lt;br /&gt;
# It can be set to false if you are building a lexdict module which has entries which may be misconstrued as Strong's numbers.&lt;br /&gt;
# In a couple years, we'll probably switch the default to false, so it would be nice to add this line and set the value to true on modules which really do require the logic.&lt;br /&gt;
# This is only available in SWORD version 1.7 or later. JSword never had this problem.&lt;br /&gt;
&lt;br /&gt;
==== Strip Filters ====&lt;br /&gt;
SWORD has the concept of &amp;quot;filtering&amp;quot; a module's text at different processing points for purposes other than rendering.&amp;lt;br&amp;gt;One of these filter-points is for searching and we call these filters '''Strip Filters'''.&lt;br /&gt;
&lt;br /&gt;
Strip Filters are typically named something like '''OSISPlain''' or '''GBFPlain''', etc.  These typically take all the markup out of an entry and prepare the text to be searched, but anything can be done to the text to prepare it further for searching.  We typically remove accents and vowel points from Greek and Hebrew respectively.&lt;br /&gt;
&lt;br /&gt;
Any Strip Filter can be added to a module by the module author with a line in the .conf file, such as:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=GBFPlain&lt;br /&gt;
&lt;br /&gt;
If diacritics need to be removed from Arabic, then we can certainly add a filter for this as well. The conf line would be:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=UTF8ArabicPoints&lt;br /&gt;
&lt;br /&gt;
Our current list of filters can be found by browsing the source folder here:&lt;br /&gt;
&lt;br /&gt;
http://crosswire.org/svn/sword/trunk/src/modules/filters/&lt;br /&gt;
&lt;br /&gt;
They're pretty concise and don't involve much knowledge from the rest of the engine, making them easy to write if we need a new one.&lt;br /&gt;
&lt;br /&gt;
This processing can replace or be complimentary to any processing done by clucene. Here's an example of what's used with the [http://papyri.info/docs/ddbdp Duke Databank of Papyri] with specialist software that's based on SWORD.&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=PapyriPlain&lt;br /&gt;
&lt;br /&gt;
Since we need to strip markup, and other things clucene will likely never support (see '''PapyriPlain''' &amp;amp;ndash; annotations like [,],?{,}, underdot) we need this preprocessing mechanism to prepare the text before searching.  We also maintain searching functionality apart from &amp;quot;fast indexed searching&amp;quot;.&amp;lt;ref&amp;gt;Currently supplied by clucene, but could be implemented by any other fast search framework that we might want to integrate in future.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy-mm-dd&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Calendar_dates ISO 8601 Date])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a.&lt;br /&gt;
&lt;br /&gt;
CrossWire's standard practice is to indicate updates that only require a .conf-file update/download by incrementing the third most significant number (the revision number). For example, if module version 1.2 requires a .conf-file update. A new .conf file with version number 1.2.1 could be released.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
x.x is taken from the Version value.&lt;br /&gt;
&lt;br /&gt;
Indicates what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
&lt;br /&gt;
It is recommended that each explanation be suffixed by the corresponding SwordVersionDate value.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&amp;lt;ref&amp;gt;See http://tracker.crosswire.org/browse/API-201&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the [[Sword library versions | minimum version]] of the SWORD library required for this module.&amp;lt;ref&amp;gt;Required to support a Bible/Commentary module that has an [[Alternate Versification]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Biblical Texts''' (for Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Commentaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Lexicons / Dictionaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossaries''' (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Daily Devotional''' (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Generic Books''' (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Maps''' (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Cults / Unorthodox / Questionable Material'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Essays''' (for essays)&amp;lt;ref&amp;gt;'''Essays''' is handled as a subset of '''Generic Books'''.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Biblical Texts&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=HRefCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawFiles'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=Glossary'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Daily Devotional&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=DailyDevotion'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawGenBook''&amp;lt;br/&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| '''&amp;amp;lt;tree/string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;Language[-Script]?[-Region]?&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The language identifier is a combination of sub-tags for '''Language''' and optionally '''Script''', and/or '''Region''', according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47] and [http://tools.ietf.org/html/rfc4647 RFC 4647]. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
&lt;br /&gt;
'''Language sub-tag''' ''(Regex: /[a-z]{2,3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module according to [http://en.wikipedia.org/wiki/ISO_639 ISO 639 parts 1, 2, 3 and 5]. Some languages have several codes. Use the following to determine the best choice:&amp;lt;br/&amp;gt;&lt;br /&gt;
:When available use a 2-letter [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English).&lt;br /&gt;
:If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar])  (e.g. ceb for Cebuano).&lt;br /&gt;
:Failing that, use a [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] code ([http://www-01.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages.&lt;br /&gt;
:Finally, use a [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] code ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macro languages.&lt;br /&gt;
The [http://www-01.sil.org/iso639-3/codes.asp ISO639-3 registrar] page gives up-to-date table on all of the above.&lt;br /&gt;
&lt;br /&gt;
'''Script sub-tag''' ''(Regex:  /[A-Z][a-z]{3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian).&lt;br /&gt;
&lt;br /&gt;
'''Region sub-tag''': ''(Regex: /[A-Z]{2}/)''&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English).&lt;br /&gt;
&lt;br /&gt;
'''Combinations'''''(Regex: /[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
Individual sub-tags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the total byte size of the module on disk, excluding the the size of any Lucene index files.&lt;br /&gt;
&lt;br /&gt;
For modules in the CrossWire repositories, this is automatically generated and overwritten if needed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element gives a former ModName that is made obsolete by this module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| OSISVersion&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the OSIS schema version employed in the OSIS source document. The current version is 2.1.1&lt;br /&gt;
&lt;br /&gt;
It is recommended that this be present for every OSIS module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| Companion&amp;lt;ref&amp;gt;Many (xulsword compatible) modules in the [[Official and Affiliated Module Repositories#Institute_for_Bible_Translation|IBT Repository]] make use of this field. See also https://github.com/johnaustindev/osis-converters&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName[, ModName]*&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies companion module(s) that should be opened together&amp;lt;br/&amp;gt;&lt;br /&gt;
e.g. When Bible and Commentary and/or Glossary modules are distributed together.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Years ISO 8601 Year])&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- id=&amp;quot;distlic&amp;quot;&lt;br /&gt;
| DistributionLicense&lt;br /&gt;
|&lt;br /&gt;
'''Copyrighted'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission to distribute granted to CrossWire'''&amp;lt;ref&amp;gt;Modules in other repositories may have a different organization name instead of CrossWire.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission granted to distribute non-commercially in SWORD format'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Free non-commercial distribution'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Freely distributable'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/fdl.html GFDL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/gpl.html GPL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by by]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/publicdomain/zero/1.0/ CC0]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Public Domain'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last seven&amp;lt;ref&amp;gt;Each link goes to a page that no longer exists!&amp;lt;/ref&amp;gt; licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&lt;br /&gt;
|- &lt;br /&gt;
| UnlockInfo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains unlock instructions for the user, intended to be displayed upon attempt to install the module.  These instructions typically include a URL pointing to an exact location within a publisher's online store where a user can directly purchase an unlock key (CipherKey) for the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&amp;lt;br/&amp;gt;HTML Link&lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uniqueness ==&lt;br /&gt;
For comparing two versions of a module during module development, the module names and locations must be unique. For JSword based front-ends such as Bible Desktop, there is a further requirement, the Description items must be different.&lt;br /&gt;
&lt;br /&gt;
== Analysis Tools ==&lt;br /&gt;
* [[User:Dmsmith|DMSmith]] has created a script to analyse conf files and report anomalies.&lt;br /&gt;
* [[User:David Haslam|David Haslam]] has created a '''User Defined Language''' called '''CONF''' as a Syntax Highlighter for '''Notepad++''' (Windows). Download from [https://github.com/DavidHaslam/CONF].&lt;br /&gt;
&lt;br /&gt;
== Automated generation ==&lt;br /&gt;
* For new module submissions to CrossWire, [[User:Refdoc|Refdoc]] now maintains a script called '''confmaker''' that includes the ''automated generation'' of module conf files, given the minimum ''non-automatable'' requirements by the module submitter.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BibTeX entries]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Versification|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=16716</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=16716"/>
				<updated>2020-02-14T05:57:18Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Copyright &amp;amp;amp; Licensing related elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes important information about module configuration (.conf) files. All SWORD modules require one. &lt;br /&gt;
&lt;br /&gt;
Please look also at our detailed and commented [[Tutorial:Writing Conf files|tutorial]].&lt;br /&gt;
&lt;br /&gt;
== Key elements of a SWORD module.conf ==&lt;br /&gt;
&lt;br /&gt;
Some keys can be repeated. Many not.&lt;br /&gt;
&lt;br /&gt;
Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Don't use continuation unless allowed. It will produce different results in different front ends.&lt;br /&gt;
&lt;br /&gt;
RTF is allowed in some values. &lt;br /&gt;
&lt;br /&gt;
Some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Values specifications are shown as '''&amp;amp;lt;content spec&amp;amp;gt;'''. The &amp;amp;lt; and &amp;amp;gt; are not to be included.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in '''bold'''. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
The order of elements specified in a conf file is immaterial, except where specified otherwise.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [ModName]&lt;br /&gt;
| Each conf file begins with [ModName], replacing &amp;quot;ModName&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to [https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions PCRE] class &amp;lt;tt&amp;gt;[A-Za-z0-9_]&amp;lt;/tt&amp;gt;.&amp;lt;ref&amp;gt;That excludes the space and hyphen characters! An invalid ModName can cause some front-ends to crash.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Abbreviation element is meant to allow for localization of this field.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&amp;lt;ref&amp;gt;We strongly advise to avoid using an Abbreviation that's identical to the ModName or Abbreviation of any other module. It only leads to confusion, and may have unexpected consequences for some front-ends.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This field allows for the localization of the ModName. It is meant to be short just like the ModName.&lt;br /&gt;
&lt;br /&gt;
''Actually, this element is not required, but it makes the most sense to describe it here.''&lt;br /&gt;
| [ModName]&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths used for a module named [MyModule], depending on&amp;lt;BR&amp;gt;(a) the type of module (Bible text, commentary, lexicon or dictionary&amp;lt;ref&amp;gt;Daily devotionals &amp;amp; glossaries go in subdirectories under lexdict. A glossary is between two languages.&amp;lt;/ref&amp;gt;, general book) and&amp;lt;BR&amp;gt;(b) the data driver (ModDrv parameter) are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
:./modules/texts/rawtext4/mymodule/&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
:./modules/texts/ztext4/mymodule/&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
:./modules/comments/zcom4/mymodule/&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
|&lt;br /&gt;
'''RawText''' (for uncompressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawText4''' (for uncompressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText''' (for compressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText4''' (for compressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require MinimumVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom''' (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom4''' (for uncompressed Commentaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom''' (for compressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom4''' (for compressed Commentaries having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require SwordVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HREFCom''' (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawFiles''' (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD''' (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD4''' (for uncompressed Dictionaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zLD''' (for compressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawGenBook''' (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Elements with defaults ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&amp;lt;ref&amp;gt;Omitting this for a non-plaintext module has unpredictable effects.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''Plaintext'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSIS''' ([http://www.bibletechnologies.net Open Scriptural Information Standard])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''TEI''' ([http://www.tei-c.org Text Encoding Initiative])&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the '''markup''' used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries. While SourceType has a default, it is a best practice to specify it.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Legacy modules may have a key here stating: &lt;br /&gt;
&lt;br /&gt;
'''GBF''' ([http://www.ebible.org/bible/gbf.htm General Bible Format])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThML''' ([http://www.ccel.org/ThML Theological Markup Language])&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
|&lt;br /&gt;
'''UTF-8'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF-16'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SCSU''' ([http://en.wikipedia.org/wiki/Standard_Compression_Scheme_for_Unicode Standard Compression Scheme for Unicode])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates how the text in the conf and in the module are encoded.&lt;br /&gt;
&lt;br /&gt;
The preferred encoding of texts is UTF-8. Other than Hebrew, UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Biblical Hebrew requires special handling.&amp;lt;ref&amp;gt;Unicode normalization can easily break Biblical Hebrew text. See on page 9 in the [http://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf SBL Hebrew Font User Manual].&amp;lt;/ref&amp;gt; A few other languages may require special handling.&amp;lt;ref&amp;gt;e.g. If they are mentioned in Table 10 in the [http://unicode.org/reports/tr15/#Corrigendum_5_Sequences Corrigendum 5 Sequences].&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The improper normalization of exceptional codepoints can be prevented by inserting a [https://en.wikipedia.org/wiki/Combining_Grapheme_Joiner Combining Grapheme Joiner].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To date, no modules use UTF-16 or SCSU. Legacy modules may hold a key here '''Latin-1''' referring solely to Windows Codepage 1252, a superset of ISO-8859-1. Front-end implementors wishing to use such modules should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.''&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
|&lt;br /&gt;
'''ZIP'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LZSS''' ([http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski Lempel Ziv Storer Szymanski])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BZIP2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''XZ'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText, zCom or zLD to indicate the compression algorithm.&lt;br /&gt;
While CompressType has a default, it is best practice to specify it.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
|&lt;br /&gt;
'''BOOK'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''CHAPTER'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VERSE'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText (Bibles) and zCom (Commentaries) to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller. It is best practice to take the default and not specify it.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&lt;br /&gt;
'''Calvin'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Darby_fr'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''German'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LXX'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Leningrad'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Luther'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''MT'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Orthodox'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Segond'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Synodal'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SynodalProt'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Vulg'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to specify the versification employed by a Bible module. Refer to [[Alternate Versification]].&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates that a module is enciphered and that the module is (un)locked. When the key has no value (&amp;quot;CipherKey=&amp;quot;) the module is locked. When it has a value, the module is unlocked.&lt;br /&gt;
&lt;br /&gt;
A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But it needs to be readable, plain text, without leading or trailing spaces.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
|&lt;br /&gt;
'''TreeKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VerseKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bibles which do not conform to any supported versification system in SWORD. It is best practice to take the default and not specify it.&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CaseSensitiveKeys&lt;br /&gt;
|&lt;br /&gt;
Used for Dictionaries whose keys are case sensitive. This key is used to suppress normalization to UPPER CASE before comparison.&amp;lt;br/&amp;gt;&lt;br /&gt;
Only allowable value: '''true'''&lt;br /&gt;
| false&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
|&lt;br /&gt;
'''UTF8Cantillation''' (For Hebrew texts having cantillation marks)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Cantillation&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8GreekAccents''' (For Greek texts having accents)&amp;lt;ref&amp;gt;For detailed background, see https://en.wikipedia.org/wiki/Greek_diacritics&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;This filter can have undesirable side-effects when applied to non-Greek text!&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8HebrewPoints''' (For Hebrew texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Niqqud&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8ArabicPoints''' (For Arabic texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Arabic_diacritics&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISLemma''' (For OSIS texts having lemmas)&amp;lt;ref&amp;gt;Must precede OSISStrongs.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorphSegmentation''' (For OSIS texts having morphological segmentation elements)&amp;lt;ref&amp;gt;Currently, only some JSword based front-ends seem to support this feature. The SWORD engine has the switch available, but no change in output is effected.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISStrongs''' (For OSIS texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISFootnotes''' (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISScripref''' (For OSIS texts having [[OSIS Bibles#Marking_cross-references_note|cross reference]] type notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorph''' (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISHeadings''' (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISVariants''' (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISRedLetterWords''' (For OSIS texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISGlosses''' (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Minimum SWORD version of 1.7.0 in the module .conf is required for OSISGlosses.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISXlit''' (For OSIS texts that include transliterated forms)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using xlit.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISEnum''' (For OSIS texts with enumerated words)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using enum.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISReferenceLinks''' (For OSIS texts with glossary links)&amp;lt;ref&amp;gt;New in SWORD 1.7.0 - This filter requires six vertical bar-delimited fields, of which the following is an example.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GlobalOptionFilter=OSISReferenceLinks|Reference Material Links|Hide or show links to study helps in the Biblical text.|x-glossary||On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here are the different field meanings:&lt;br /&gt;
# &amp;quot;OSISReferenceLinks&amp;quot; = option filter class name (option class name internal to the engine). Always the same for this kind of filter.&lt;br /&gt;
# &amp;quot;Reference Material Links&amp;quot; = Visible name of this OSISReferenceLinks filter. This is what the user will see in the Global Options toggle lists.&lt;br /&gt;
# &amp;quot;Hide or show...&amp;quot; = A readable user tip explaining what the filter does.&lt;br /&gt;
# &amp;quot;x-glossary&amp;quot; = Tells this OSISReferenceLinks filter to filter all references with type=&amp;quot;x-glossary&amp;quot;.&lt;br /&gt;
# (empty) = Tells this OSISReferenceLinks filter to also require that subType=&amp;quot;something&amp;quot; in order to filter. Empty means ALL type=&amp;quot;x-glossary&amp;quot; references will be filtered regardless of subType.&lt;br /&gt;
# &amp;quot;On&amp;quot; = Default filter toggle value (&amp;quot;On&amp;quot; or &amp;quot;Off&amp;quot;)&lt;br /&gt;
&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;It is allowed to have multiple OSISReferenceLinks entries in a single conf file.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&amp;lt;ref&amp;gt;It's not implied that every front-end supports all of the listed option filters.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. cross-references in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
&lt;br /&gt;
Legacy modules may also have following keys:&lt;br /&gt;
&lt;br /&gt;
'''OSISRuby'''&amp;lt;ref&amp;gt;See [https://en.wikipedia.org/wiki/Ruby_character Ruby character] and [https://en.wikipedia.org/wiki/Furigana Furigana]&amp;lt;/ref&amp;gt; (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Deprecated in 1.7.0. Use OSISGlosses instead.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFStrongs''' (For GBF texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFFootnotes''' (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFMorph''' (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFHeadings''' (For GBF texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFRedLetterWords''' (For GBF texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLStrongs''' (For THML texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLFootnotes''' (For THML texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLScripref''' (For THML texts having cross references)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLMorph''' (For THML texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLHeadings''' (For THML texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLVariants''' (For THML texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLLemma''' (For THML texts having lemmas)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
|&lt;br /&gt;
'''LtoR''' (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RtoL''' (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BiDi''' (&amp;lt;u&amp;gt;Bidi&amp;lt;/u&amp;gt;rectional)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script.&amp;lt;ref&amp;gt;JSword validates the direction property against the Lang of the module.&amp;lt;/ref&amp;gt; Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script. If the RtoL script is transliterated into a LtoR script, set the value to LtoR. If a module has both RtoL and LtoR text, then it is BiDi.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| '''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for General Book module types (these are keyed with a TreeKey table of contents).  Indicates the preferred level from a leaf in the tree to display for context. e.g., 1 will only show the requested entry; 2 will show the entry, surrounded by all siblings, etc.&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the [[Fonts|font]] to be used for display of the module if it is available.&amp;lt;ref&amp;gt;Specifying a font may not be sufficient for some modules. The required font features may depend on a particular smart font engine, which may not be compiled into the front-end application.&amp;lt;/ref&amp;gt; Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;del&amp;gt;OSISqToTick&amp;lt;/del&amp;gt; (deprecated)&amp;lt;ref&amp;gt;For further details, refer to [http://www.crosswire.org/bugs/browse/MOD-188 MOD-188] in CrossWire bugs.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| This attribute is deprecated in favor of the marker attribute on the q element. E.g.: &amp;lt;pre&amp;gt;&amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;....&amp;lt;/q&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;true/false&amp;lt;/del&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&amp;lt;/del&amp;gt; &lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
|&lt;br /&gt;
'''StrongsNumbers''' (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekDef''' (for dictionary modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewDef''' (for dictionary modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekParse''' (for dictionary modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewParse''' (for dictionary modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''DailyDevotion''' (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossary''' (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that contain images of any type)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NoParagraphs''' (for modules without any paragraphing information, which are typically typeset with a verse per line&amp;lt;ref&amp;gt;This feature is intended to be informational to front-end developers. Ideally, front-ends will render these modules with a verse per line rather than as a single big chapter-length paragraph block.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The occurrence of a small number of paragraph elements in a module (such as might be used merely to format the colophon at the end of each Pauline epistle) does not rule out the use of this feature.&amp;lt;/ref&amp;gt;)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| PreferredCSSXHTML&lt;br /&gt;
| '''&amp;amp;lt;filename&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Names a file in the module's DataPath that should be referenced for the renderer as CSS display controls.&lt;br /&gt;
Generality is advised: Use controls that are not specific to any particular rendering engine, e.g. WebKit.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optional elements to support particular features ===&lt;br /&gt;
==== CaseInsensitiveKeys ====&lt;br /&gt;
Intended for use with Lexicon/Dictionary &amp;amp; Glossary modules. This field will make the order of the keys based upon the mixed case keys, but the index is still sorted by byte order of those keys. There are some scripts that don’t have upper/lower case (e.g. Arabic) and some languages where a naïve toUpper() will result in the wrong character (e.g. Turkish/Azeri lowercase dotted i and capital dotted İ).&lt;br /&gt;
&lt;br /&gt;
 CaseInsensitiveKeys=true|false&lt;br /&gt;
&lt;br /&gt;
It is fine to use toUpper() for internal normalization, but having keys in all caps when showing to a user is annoying. The problem is that the display order needs to follow something that makes sense to a user when the dictionary is presented as a list.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/JohnAustinDev/xulsword xulsword] has a different solution involving a configuration item not yet used by SWORD master.&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcDdEe... &lt;br /&gt;
&lt;br /&gt;
This is used by xulsword to sort the keys of a dictionary/glossary in original alphabetical order. Here's an actual example for module TKLDICT which has Lang=tk-Latn (i.e. Türkmençe):&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcÇçDdEeÄäŻżFfGgHhIiJjKkLlMmNnŇňOoÖöPpQqRrSsŞşTtUuÜüVvWwXxYyÝýZzŽž&lt;br /&gt;
&lt;br /&gt;
This method would need to be modified in order to support alphabets (such as [http://en.wikipedia.org/wiki/Welsh_orthography Welsh]) that include any [http://en.wikipedia.org/wiki/Digraph_%28orthography%29 digraphs].&lt;br /&gt;
&lt;br /&gt;
==== StrongsPadding ====&lt;br /&gt;
At the heart of our lexicon/dictionary drivers, we have some old logic which tries to detect if a key value is a Strong's number, and if so, then pad it with leading zeros accordingly. To support this logic, the recognition has recently been added for an optional new .conf entry for lexicon/dictionary modules:&lt;br /&gt;
&lt;br /&gt;
 StrongsPadding=true|false&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# So as not to break everything, this currently defaults to true if it is not present in the lexdict module's .conf file&lt;br /&gt;
# It can be set to false if you are building a lexdict module which has entries which may be misconstrued as Strong's numbers.&lt;br /&gt;
# In a couple years, we'll probably switch the default to false, so it would be nice to add this line and set the value to true on modules which really do require the logic.&lt;br /&gt;
# This is only available in SWORD version 1.7 or later. JSword never had this problem.&lt;br /&gt;
&lt;br /&gt;
==== Strip Filters ====&lt;br /&gt;
SWORD has the concept of &amp;quot;filtering&amp;quot; a module's text at different processing points for purposes other than rendering.&amp;lt;br&amp;gt;One of these filter-points is for searching and we call these filters '''Strip Filters'''.&lt;br /&gt;
&lt;br /&gt;
Strip Filters are typically named something like '''OSISPlain''' or '''GBFPlain''', etc.  These typically take all the markup out of an entry and prepare the text to be searched, but anything can be done to the text to prepare it further for searching.  We typically remove accents and vowel points from Greek and Hebrew respectively.&lt;br /&gt;
&lt;br /&gt;
Any Strip Filter can be added to a module by the module author with a line in the .conf file, such as:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=GBFPlain&lt;br /&gt;
&lt;br /&gt;
If diacritics need to be removed from Arabic, then we can certainly add a filter for this as well. The conf line would be:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=UTF8ArabicPoints&lt;br /&gt;
&lt;br /&gt;
Our current list of filters can be found by browsing the source folder here:&lt;br /&gt;
&lt;br /&gt;
http://crosswire.org/svn/sword/trunk/src/modules/filters/&lt;br /&gt;
&lt;br /&gt;
They're pretty concise and don't involve much knowledge from the rest of the engine, making them easy to write if we need a new one.&lt;br /&gt;
&lt;br /&gt;
This processing can replace or be complimentary to any processing done by clucene. Here's an example of what's used with the [http://papyri.info/docs/ddbdp Duke Databank of Papyri] with specialist software that's based on SWORD.&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=PapyriPlain&lt;br /&gt;
&lt;br /&gt;
Since we need to strip markup, and other things clucene will likely never support (see '''PapyriPlain''' &amp;amp;ndash; annotations like [,],?{,}, underdot) we need this preprocessing mechanism to prepare the text before searching.  We also maintain searching functionality apart from &amp;quot;fast indexed searching&amp;quot;.&amp;lt;ref&amp;gt;Currently supplied by clucene, but could be implemented by any other fast search framework that we might want to integrate in future.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy-mm-dd&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Calendar_dates ISO 8601 Date])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a.&lt;br /&gt;
&lt;br /&gt;
CrossWire's standard practice is to indicate updates that only require a .conf-file update/download by incrementing the third most significant number (the revision number). For example, if module version 1.2 requires a .conf-file update. A new .conf file with version number 1.2.1 could be released.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
x.x is taken from the Version value.&lt;br /&gt;
&lt;br /&gt;
Indicates what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
&lt;br /&gt;
It is recommended that each explanation be suffixed by the corresponding SwordVersionDate value.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&amp;lt;ref&amp;gt;See http://tracker.crosswire.org/browse/API-201&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the [[Sword library versions | minimum version]] of the SWORD library required for this module.&amp;lt;ref&amp;gt;Required to support a Bible/Commentary module that has an [[Alternate Versification]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Biblical Texts''' (for Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Commentaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Lexicons / Dictionaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossaries''' (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Daily Devotional''' (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Generic Books''' (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Maps''' (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Cults / Unorthodox / Questionable Material'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Essays''' (for essays)&amp;lt;ref&amp;gt;'''Essays''' is handled as a subset of '''Generic Books'''.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Biblical Texts&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=HRefCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawFiles'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=Glossary'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Daily Devotional&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=DailyDevotion'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawGenBook''&amp;lt;br/&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| '''&amp;amp;lt;tree/string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;Language[-Script]?[-Region]?&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The language identifier is a combination of sub-tags for '''Language''' and optionally '''Script''', and/or '''Region''', according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47] and [http://tools.ietf.org/html/rfc4647 RFC 4647]. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
&lt;br /&gt;
'''Language sub-tag''' ''(Regex: /[a-z]{2,3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module according to [http://en.wikipedia.org/wiki/ISO_639 ISO 639 parts 1, 2, 3 and 5]. Some languages have several codes. Use the following to determine the best choice:&amp;lt;br/&amp;gt;&lt;br /&gt;
:When available use a 2-letter [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English).&lt;br /&gt;
:If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar])  (e.g. ceb for Cebuano).&lt;br /&gt;
:Failing that, use a [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] code ([http://www-01.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages.&lt;br /&gt;
:Finally, use a [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] code ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macro languages.&lt;br /&gt;
The [http://www-01.sil.org/iso639-3/codes.asp ISO639-3 registrar] page gives up-to-date table on all of the above.&lt;br /&gt;
&lt;br /&gt;
'''Script sub-tag''' ''(Regex:  /[A-Z][a-z]{3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian).&lt;br /&gt;
&lt;br /&gt;
'''Region sub-tag''': ''(Regex: /[A-Z]{2}/)''&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English).&lt;br /&gt;
&lt;br /&gt;
'''Combinations'''''(Regex: /[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
Individual sub-tags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the total byte size of the module on disk, excluding the the size of any Lucene index files.&lt;br /&gt;
&lt;br /&gt;
For modules in the CrossWire repositories, this is automatically generated and overwritten if needed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element gives a former ModName that is made obsolete by this module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| OSISVersion&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the OSIS schema version employed in the OSIS source document. The current version is 2.1.1&lt;br /&gt;
&lt;br /&gt;
It is recommended that this be present for every OSIS module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| Companion&amp;lt;ref&amp;gt;Many (xulsword compatible) modules in the [[Official and Affiliated Module Repositories#Institute_for_Bible_Translation|IBT Repository]] make use of this field. See also https://github.com/johnaustindev/osis-converters&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName[, ModName]*&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies companion module(s) that should be opened together&amp;lt;br/&amp;gt;&lt;br /&gt;
e.g. When Bible and Commentary and/or Glossary modules are distributed together.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Years ISO 8601 Year])&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- id=&amp;quot;distlic&amp;quot;&lt;br /&gt;
| DistributionLicense&lt;br /&gt;
|&lt;br /&gt;
'''Copyrighted'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission to distribute granted to CrossWire'''&amp;lt;ref&amp;gt;Modules in other repositories may have a different organization name instead of CrossWire.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission granted to distribute non-commercially in SWORD format'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Free non-commercial distribution'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Freely distributable'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/fdl.html GFDL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/gpl.html GPL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by by]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/publicdomain/zero/1.0/ CC0]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Public Domain'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last seven&amp;lt;ref&amp;gt;Each link goes to a page that no longer exists!&amp;lt;/ref&amp;gt; licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&lt;br /&gt;
|- &lt;br /&gt;
| UnlockInfo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains unlock instructions for the user, intended to be displayed upon attempt to install the module.  These instructions typically include a URL pointing to an exact location within a publisher's online store where a user can directly purchase an unlock key (CipherKey) for the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&amp;lt;br/&amp;gt;HTML Link&lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uniqueness ==&lt;br /&gt;
For comparing two versions of a module during module development, the module names and locations must be unique. For JSword based front-ends such as Bible Desktop, there is a further requirement, the Description items must be different.&lt;br /&gt;
&lt;br /&gt;
== Analysis Tools ==&lt;br /&gt;
* [[User:Dmsmith|DMSmith]] has created a script to analyse conf files and report anomalies.&lt;br /&gt;
* [[User:David Haslam|David Haslam]] has created a '''User Defined Language''' called '''CONF''' as a Syntax Highlighter for '''Notepad++''' (Windows). Download from [https://github.com/DavidHaslam/CONF].&lt;br /&gt;
&lt;br /&gt;
== Automated generation ==&lt;br /&gt;
* For new module submissions to CrossWire, [[User:Refdoc|Refdoc]] now maintains a script called '''confmaker''' that includes the ''automated generation'' of module conf files, given the minimum ''non-automatable'' requirements by the module submitter.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BibTeX entries]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Versification|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=16715</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=16715"/>
				<updated>2020-01-05T23:11:49Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Copyright &amp;amp;amp; Licensing related elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes important information about module configuration (.conf) files. All SWORD modules require one. &lt;br /&gt;
&lt;br /&gt;
Please look also at our detailed and commented [[Tutorial:Writing Conf files|tutorial]].&lt;br /&gt;
&lt;br /&gt;
== Key elements of a SWORD module.conf ==&lt;br /&gt;
&lt;br /&gt;
Some keys can be repeated. Many not.&lt;br /&gt;
&lt;br /&gt;
Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Don't use continuation unless allowed. It will produce different results in different front ends.&lt;br /&gt;
&lt;br /&gt;
RTF is allowed in some values. &lt;br /&gt;
&lt;br /&gt;
Some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Values specifications are shown as '''&amp;amp;lt;content spec&amp;amp;gt;'''. The &amp;amp;lt; and &amp;amp;gt; are not to be included.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in '''bold'''. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
The order of elements specified in a conf file is immaterial, except where specified otherwise.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [ModName]&lt;br /&gt;
| Each conf file begins with [ModName], replacing &amp;quot;ModName&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to [https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions PCRE] class &amp;lt;tt&amp;gt;[A-Za-z0-9_]&amp;lt;/tt&amp;gt;.&amp;lt;ref&amp;gt;That excludes the space and hyphen characters! An invalid ModName can cause some front-ends to crash.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Abbreviation element is meant to allow for localization of this field.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&amp;lt;ref&amp;gt;We strongly advise to avoid using an Abbreviation that's identical to the ModName or Abbreviation of any other module. It only leads to confusion, and may have unexpected consequences for some front-ends.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This field allows for the localization of the ModName. It is meant to be short just like the ModName.&lt;br /&gt;
&lt;br /&gt;
''Actually, this element is not required, but it makes the most sense to describe it here.''&lt;br /&gt;
| [ModName]&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths used for a module named [MyModule], depending on&amp;lt;BR&amp;gt;(a) the type of module (Bible text, commentary, lexicon or dictionary&amp;lt;ref&amp;gt;Daily devotionals &amp;amp; glossaries go in subdirectories under lexdict. A glossary is between two languages.&amp;lt;/ref&amp;gt;, general book) and&amp;lt;BR&amp;gt;(b) the data driver (ModDrv parameter) are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
:./modules/texts/rawtext4/mymodule/&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
:./modules/texts/ztext4/mymodule/&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
:./modules/comments/zcom4/mymodule/&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
|&lt;br /&gt;
'''RawText''' (for uncompressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawText4''' (for uncompressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText''' (for compressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText4''' (for compressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require MinimumVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom''' (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom4''' (for uncompressed Commentaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom''' (for compressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom4''' (for compressed Commentaries having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require SwordVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HREFCom''' (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawFiles''' (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD''' (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD4''' (for uncompressed Dictionaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zLD''' (for compressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawGenBook''' (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Elements with defaults ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&amp;lt;ref&amp;gt;Omitting this for a non-plaintext module has unpredictable effects.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''Plaintext'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSIS''' ([http://www.bibletechnologies.net Open Scriptural Information Standard])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''TEI''' ([http://www.tei-c.org Text Encoding Initiative])&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the '''markup''' used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries. While SourceType has a default, it is a best practice to specify it.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Legacy modules may have a key here stating: &lt;br /&gt;
&lt;br /&gt;
'''GBF''' ([http://www.ebible.org/bible/gbf.htm General Bible Format])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThML''' ([http://www.ccel.org/ThML Theological Markup Language])&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
|&lt;br /&gt;
'''UTF-8'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF-16'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SCSU''' ([http://en.wikipedia.org/wiki/Standard_Compression_Scheme_for_Unicode Standard Compression Scheme for Unicode])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates how the text in the conf and in the module are encoded.&lt;br /&gt;
&lt;br /&gt;
The preferred encoding of texts is UTF-8. Other than Hebrew, UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Biblical Hebrew requires special handling.&amp;lt;ref&amp;gt;Unicode normalization can easily break Biblical Hebrew text. See on page 9 in the [http://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf SBL Hebrew Font User Manual].&amp;lt;/ref&amp;gt; A few other languages may require special handling.&amp;lt;ref&amp;gt;e.g. If they are mentioned in Table 10 in the [http://unicode.org/reports/tr15/#Corrigendum_5_Sequences Corrigendum 5 Sequences].&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The improper normalization of exceptional codepoints can be prevented by inserting a [https://en.wikipedia.org/wiki/Combining_Grapheme_Joiner Combining Grapheme Joiner].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To date, no modules use UTF-16 or SCSU. Legacy modules may hold a key here '''Latin-1''' referring solely to Windows Codepage 1252, a superset of ISO-8859-1. Front-end implementors wishing to use such modules should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.''&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
|&lt;br /&gt;
'''ZIP'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LZSS''' ([http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski Lempel Ziv Storer Szymanski])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BZIP2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''XZ'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText, zCom or zLD to indicate the compression algorithm.&lt;br /&gt;
While CompressType has a default, it is best practice to specify it.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
|&lt;br /&gt;
'''BOOK'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''CHAPTER'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VERSE'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText (Bibles) and zCom (Commentaries) to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller. It is best practice to take the default and not specify it.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&lt;br /&gt;
'''Calvin'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Darby_fr'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''German'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LXX'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Leningrad'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Luther'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''MT'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Orthodox'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Segond'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Synodal'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SynodalProt'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Vulg'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to specify the versification employed by a Bible module. Refer to [[Alternate Versification]].&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates that a module is enciphered and that the module is (un)locked. When the key has no value (&amp;quot;CipherKey=&amp;quot;) the module is locked. When it has a value, the module is unlocked.&lt;br /&gt;
&lt;br /&gt;
A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But it needs to be readable, plain text, without leading or trailing spaces.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
|&lt;br /&gt;
'''TreeKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VerseKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bibles which do not conform to any supported versification system in SWORD. It is best practice to take the default and not specify it.&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CaseSensitiveKeys&lt;br /&gt;
|&lt;br /&gt;
Used for Dictionaries whose keys are case sensitive. This key is used to suppress normalization to UPPER CASE before comparison.&amp;lt;br/&amp;gt;&lt;br /&gt;
Only allowable value: '''true'''&lt;br /&gt;
| false&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
|&lt;br /&gt;
'''UTF8Cantillation''' (For Hebrew texts having cantillation marks)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Cantillation&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8GreekAccents''' (For Greek texts having accents)&amp;lt;ref&amp;gt;For detailed background, see https://en.wikipedia.org/wiki/Greek_diacritics&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;This filter can have undesirable side-effects when applied to non-Greek text!&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8HebrewPoints''' (For Hebrew texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Niqqud&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8ArabicPoints''' (For Arabic texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Arabic_diacritics&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISLemma''' (For OSIS texts having lemmas)&amp;lt;ref&amp;gt;Must precede OSISStrongs.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorphSegmentation''' (For OSIS texts having morphological segmentation elements)&amp;lt;ref&amp;gt;Currently, only some JSword based front-ends seem to support this feature. The SWORD engine has the switch available, but no change in output is effected.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISStrongs''' (For OSIS texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISFootnotes''' (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISScripref''' (For OSIS texts having [[OSIS Bibles#Marking_cross-references_note|cross reference]] type notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorph''' (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISHeadings''' (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISVariants''' (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISRedLetterWords''' (For OSIS texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISGlosses''' (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Minimum SWORD version of 1.7.0 in the module .conf is required for OSISGlosses.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISXlit''' (For OSIS texts that include transliterated forms)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using xlit.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISEnum''' (For OSIS texts with enumerated words)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using enum.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISReferenceLinks''' (For OSIS texts with glossary links)&amp;lt;ref&amp;gt;New in SWORD 1.7.0 - This filter requires six vertical bar-delimited fields, of which the following is an example.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GlobalOptionFilter=OSISReferenceLinks|Reference Material Links|Hide or show links to study helps in the Biblical text.|x-glossary||On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here are the different field meanings:&lt;br /&gt;
# &amp;quot;OSISReferenceLinks&amp;quot; = option filter class name (option class name internal to the engine). Always the same for this kind of filter.&lt;br /&gt;
# &amp;quot;Reference Material Links&amp;quot; = Visible name of this OSISReferenceLinks filter. This is what the user will see in the Global Options toggle lists.&lt;br /&gt;
# &amp;quot;Hide or show...&amp;quot; = A readable user tip explaining what the filter does.&lt;br /&gt;
# &amp;quot;x-glossary&amp;quot; = Tells this OSISReferenceLinks filter to filter all references with type=&amp;quot;x-glossary&amp;quot;.&lt;br /&gt;
# (empty) = Tells this OSISReferenceLinks filter to also require that subType=&amp;quot;something&amp;quot; in order to filter. Empty means ALL type=&amp;quot;x-glossary&amp;quot; references will be filtered regardless of subType.&lt;br /&gt;
# &amp;quot;On&amp;quot; = Default filter toggle value (&amp;quot;On&amp;quot; or &amp;quot;Off&amp;quot;)&lt;br /&gt;
&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;It is allowed to have multiple OSISReferenceLinks entries in a single conf file.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&amp;lt;ref&amp;gt;It's not implied that every front-end supports all of the listed option filters.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. cross-references in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
&lt;br /&gt;
Legacy modules may also have following keys:&lt;br /&gt;
&lt;br /&gt;
'''OSISRuby'''&amp;lt;ref&amp;gt;See [https://en.wikipedia.org/wiki/Ruby_character Ruby character] and [https://en.wikipedia.org/wiki/Furigana Furigana]&amp;lt;/ref&amp;gt; (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Deprecated in 1.7.0. Use OSISGlosses instead.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFStrongs''' (For GBF texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFFootnotes''' (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFMorph''' (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFHeadings''' (For GBF texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFRedLetterWords''' (For GBF texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLStrongs''' (For THML texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLFootnotes''' (For THML texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLScripref''' (For THML texts having cross references)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLMorph''' (For THML texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLHeadings''' (For THML texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLVariants''' (For THML texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLLemma''' (For THML texts having lemmas)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
|&lt;br /&gt;
'''LtoR''' (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RtoL''' (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BiDi''' (&amp;lt;u&amp;gt;Bidi&amp;lt;/u&amp;gt;rectional)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script.&amp;lt;ref&amp;gt;JSword validates the direction property against the Lang of the module.&amp;lt;/ref&amp;gt; Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script. If the RtoL script is transliterated into a LtoR script, set the value to LtoR. If a module has both RtoL and LtoR text, then it is BiDi.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| '''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for General Book module types (these are keyed with a TreeKey table of contents).  Indicates the preferred level from a leaf in the tree to display for context. e.g., 1 will only show the requested entry; 2 will show the entry, surrounded by all siblings, etc.&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the [[Fonts|font]] to be used for display of the module if it is available.&amp;lt;ref&amp;gt;Specifying a font may not be sufficient for some modules. The required font features may depend on a particular smart font engine, which may not be compiled into the front-end application.&amp;lt;/ref&amp;gt; Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;del&amp;gt;OSISqToTick&amp;lt;/del&amp;gt; (deprecated)&amp;lt;ref&amp;gt;For further details, refer to [http://www.crosswire.org/bugs/browse/MOD-188 MOD-188] in CrossWire bugs.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| This attribute is deprecated in favor of the marker attribute on the q element. E.g.: &amp;lt;pre&amp;gt;&amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;....&amp;lt;/q&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;true/false&amp;lt;/del&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&amp;lt;/del&amp;gt; &lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
|&lt;br /&gt;
'''StrongsNumbers''' (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekDef''' (for dictionary modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewDef''' (for dictionary modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekParse''' (for dictionary modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewParse''' (for dictionary modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''DailyDevotion''' (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossary''' (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that contain images of any type)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NoParagraphs''' (for modules without any paragraphing information, which are typically typeset with a verse per line&amp;lt;ref&amp;gt;This feature is intended to be informational to front-end developers. Ideally, front-ends will render these modules with a verse per line rather than as a single big chapter-length paragraph block.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The occurrence of a small number of paragraph elements in a module (such as might be used merely to format the colophon at the end of each Pauline epistle) does not rule out the use of this feature.&amp;lt;/ref&amp;gt;)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| PreferredCSSXHTML&lt;br /&gt;
| '''&amp;amp;lt;filename&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Names a file in the module's DataPath that should be referenced for the renderer as CSS display controls.&lt;br /&gt;
Generality is advised: Use controls that are not specific to any particular rendering engine, e.g. WebKit.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optional elements to support particular features ===&lt;br /&gt;
==== CaseInsensitiveKeys ====&lt;br /&gt;
Intended for use with Lexicon/Dictionary &amp;amp; Glossary modules. This field will make the order of the keys based upon the mixed case keys, but the index is still sorted by byte order of those keys. There are some scripts that don’t have upper/lower case (e.g. Arabic) and some languages where a naïve toUpper() will result in the wrong character (e.g. Turkish/Azeri lowercase dotted i and capital dotted İ).&lt;br /&gt;
&lt;br /&gt;
 CaseInsensitiveKeys=true|false&lt;br /&gt;
&lt;br /&gt;
It is fine to use toUpper() for internal normalization, but having keys in all caps when showing to a user is annoying. The problem is that the display order needs to follow something that makes sense to a user when the dictionary is presented as a list.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/JohnAustinDev/xulsword xulsword] has a different solution involving a configuration item not yet used by SWORD master.&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcDdEe... &lt;br /&gt;
&lt;br /&gt;
This is used by xulsword to sort the keys of a dictionary/glossary in original alphabetical order. Here's an actual example for module TKLDICT which has Lang=tk-Latn (i.e. Türkmençe):&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcÇçDdEeÄäŻżFfGgHhIiJjKkLlMmNnŇňOoÖöPpQqRrSsŞşTtUuÜüVvWwXxYyÝýZzŽž&lt;br /&gt;
&lt;br /&gt;
This method would need to be modified in order to support alphabets (such as [http://en.wikipedia.org/wiki/Welsh_orthography Welsh]) that include any [http://en.wikipedia.org/wiki/Digraph_%28orthography%29 digraphs].&lt;br /&gt;
&lt;br /&gt;
==== StrongsPadding ====&lt;br /&gt;
At the heart of our lexicon/dictionary drivers, we have some old logic which tries to detect if a key value is a Strong's number, and if so, then pad it with leading zeros accordingly. To support this logic, the recognition has recently been added for an optional new .conf entry for lexicon/dictionary modules:&lt;br /&gt;
&lt;br /&gt;
 StrongsPadding=true|false&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# So as not to break everything, this currently defaults to true if it is not present in the lexdict module's .conf file&lt;br /&gt;
# It can be set to false if you are building a lexdict module which has entries which may be misconstrued as Strong's numbers.&lt;br /&gt;
# In a couple years, we'll probably switch the default to false, so it would be nice to add this line and set the value to true on modules which really do require the logic.&lt;br /&gt;
# This is only available in SWORD version 1.7 or later. JSword never had this problem.&lt;br /&gt;
&lt;br /&gt;
==== Strip Filters ====&lt;br /&gt;
SWORD has the concept of &amp;quot;filtering&amp;quot; a module's text at different processing points for purposes other than rendering.&amp;lt;br&amp;gt;One of these filter-points is for searching and we call these filters '''Strip Filters'''.&lt;br /&gt;
&lt;br /&gt;
Strip Filters are typically named something like '''OSISPlain''' or '''GBFPlain''', etc.  These typically take all the markup out of an entry and prepare the text to be searched, but anything can be done to the text to prepare it further for searching.  We typically remove accents and vowel points from Greek and Hebrew respectively.&lt;br /&gt;
&lt;br /&gt;
Any Strip Filter can be added to a module by the module author with a line in the .conf file, such as:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=GBFPlain&lt;br /&gt;
&lt;br /&gt;
If diacritics need to be removed from Arabic, then we can certainly add a filter for this as well. The conf line would be:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=UTF8ArabicPoints&lt;br /&gt;
&lt;br /&gt;
Our current list of filters can be found by browsing the source folder here:&lt;br /&gt;
&lt;br /&gt;
http://crosswire.org/svn/sword/trunk/src/modules/filters/&lt;br /&gt;
&lt;br /&gt;
They're pretty concise and don't involve much knowledge from the rest of the engine, making them easy to write if we need a new one.&lt;br /&gt;
&lt;br /&gt;
This processing can replace or be complimentary to any processing done by clucene. Here's an example of what's used with the [http://papyri.info/docs/ddbdp Duke Databank of Papyri] with specialist software that's based on SWORD.&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=PapyriPlain&lt;br /&gt;
&lt;br /&gt;
Since we need to strip markup, and other things clucene will likely never support (see '''PapyriPlain''' &amp;amp;ndash; annotations like [,],?{,}, underdot) we need this preprocessing mechanism to prepare the text before searching.  We also maintain searching functionality apart from &amp;quot;fast indexed searching&amp;quot;.&amp;lt;ref&amp;gt;Currently supplied by clucene, but could be implemented by any other fast search framework that we might want to integrate in future.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy-mm-dd&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Calendar_dates ISO 8601 Date])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a.&lt;br /&gt;
&lt;br /&gt;
CrossWire's standard practice is to indicate updates that only require a .conf-file update/download by incrementing the third most significant number (the revision number). For example, if module version 1.2 requires a .conf-file update. A new .conf file with version number 1.2.1 could be released.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
x.x is taken from the Version value.&lt;br /&gt;
&lt;br /&gt;
Indicates what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
&lt;br /&gt;
It is recommended that each explanation be suffixed by the corresponding SwordVersionDate value.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&amp;lt;ref&amp;gt;See http://tracker.crosswire.org/browse/API-201&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the [[Sword library versions | minimum version]] of the SWORD library required for this module.&amp;lt;ref&amp;gt;Required to support a Bible/Commentary module that has an [[Alternate Versification]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Biblical Texts''' (for Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Commentaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Lexicons / Dictionaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossaries''' (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Daily Devotional''' (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Generic Books''' (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Maps''' (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Cults / Unorthodox / Questionable Material'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Essays''' (for essays)&amp;lt;ref&amp;gt;'''Essays''' is handled as a subset of '''Generic Books'''.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Biblical Texts&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=HRefCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawFiles'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=Glossary'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Daily Devotional&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=DailyDevotion'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawGenBook''&amp;lt;br/&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| '''&amp;amp;lt;tree/string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;Language[-Script]?[-Region]?&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The language identifier is a combination of sub-tags for '''Language''' and optionally '''Script''', and/or '''Region''', according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47] and [http://tools.ietf.org/html/rfc4647 RFC 4647]. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
&lt;br /&gt;
'''Language sub-tag''' ''(Regex: /[a-z]{2,3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module according to [http://en.wikipedia.org/wiki/ISO_639 ISO 639 parts 1, 2, 3 and 5]. Some languages have several codes. Use the following to determine the best choice:&amp;lt;br/&amp;gt;&lt;br /&gt;
:When available use a 2-letter [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English).&lt;br /&gt;
:If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar])  (e.g. ceb for Cebuano).&lt;br /&gt;
:Failing that, use a [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] code ([http://www-01.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages.&lt;br /&gt;
:Finally, use a [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] code ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macro languages.&lt;br /&gt;
The [http://www-01.sil.org/iso639-3/codes.asp ISO639-3 registrar] page gives up-to-date table on all of the above.&lt;br /&gt;
&lt;br /&gt;
'''Script sub-tag''' ''(Regex:  /[A-Z][a-z]{3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian).&lt;br /&gt;
&lt;br /&gt;
'''Region sub-tag''': ''(Regex: /[A-Z]{2}/)''&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English).&lt;br /&gt;
&lt;br /&gt;
'''Combinations'''''(Regex: /[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
Individual sub-tags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the total byte size of the module on disk, excluding the the size of any Lucene index files.&lt;br /&gt;
&lt;br /&gt;
For modules in the CrossWire repositories, this is automatically generated and overwritten if needed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element gives a former ModName that is made obsolete by this module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| OSISVersion&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the OSIS schema version employed in the OSIS source document. The current version is 2.1.1&lt;br /&gt;
&lt;br /&gt;
It is recommended that this be present for every OSIS module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| Companion&amp;lt;ref&amp;gt;Many (xulsword compatible) modules in the [[Official and Affiliated Module Repositories#Institute_for_Bible_Translation|IBT Repository]] make use of this field. See also https://github.com/johnaustindev/osis-converters&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName[, ModName]*&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies companion module(s) that should be opened together&amp;lt;br/&amp;gt;&lt;br /&gt;
e.g. When Bible and Commentary and/or Glossary modules are distributed together.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Years ISO 8601 Year])&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- id=&amp;quot;distlic&amp;quot;&lt;br /&gt;
| DistributionLicense&lt;br /&gt;
|&lt;br /&gt;
'''Public Domain'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission to distribute granted to CrossWire'''&amp;lt;ref&amp;gt;Modules in other repositories may have a different organization name instead of CrossWire.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Free non-commercial distribution'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Freely distributable'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission granted to distribute non-commercially in SWORD format'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/fdl.html GFDL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/gpl.html GPL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by by]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/publicdomain/zero/1.0/ CC0]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last seven&amp;lt;ref&amp;gt;Each link goes to a page that no longer exists!&amp;lt;/ref&amp;gt; licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&lt;br /&gt;
|- &lt;br /&gt;
| UnlockInfo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains unlock instructions for the user, intended to be displayed upon attempt to install the module.  These instructions typically include a URL pointing to an exact location within a publisher's online store where a user can directly purchase an unlock key (CipherKey) for the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&amp;lt;br/&amp;gt;HTML Link&lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uniqueness ==&lt;br /&gt;
For comparing two versions of a module during module development, the module names and locations must be unique. For JSword based front-ends such as Bible Desktop, there is a further requirement, the Description items must be different.&lt;br /&gt;
&lt;br /&gt;
== Analysis Tools ==&lt;br /&gt;
* [[User:Dmsmith|DMSmith]] has created a script to analyse conf files and report anomalies.&lt;br /&gt;
* [[User:David Haslam|David Haslam]] has created a '''User Defined Language''' called '''CONF''' as a Syntax Highlighter for '''Notepad++''' (Windows). Download from [https://github.com/DavidHaslam/CONF].&lt;br /&gt;
&lt;br /&gt;
== Automated generation ==&lt;br /&gt;
* For new module submissions to CrossWire, [[User:Refdoc|Refdoc]] now maintains a script called '''confmaker''' that includes the ''automated generation'' of module conf files, given the minimum ''non-automatable'' requirements by the module submitter.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BibTeX entries]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Versification|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=16714</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=16714"/>
				<updated>2020-01-05T23:06:44Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Copyright &amp;amp;amp; Licensing related elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes important information about module configuration (.conf) files. All SWORD modules require one. &lt;br /&gt;
&lt;br /&gt;
Please look also at our detailed and commented [[Tutorial:Writing Conf files|tutorial]].&lt;br /&gt;
&lt;br /&gt;
== Key elements of a SWORD module.conf ==&lt;br /&gt;
&lt;br /&gt;
Some keys can be repeated. Many not.&lt;br /&gt;
&lt;br /&gt;
Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Don't use continuation unless allowed. It will produce different results in different front ends.&lt;br /&gt;
&lt;br /&gt;
RTF is allowed in some values. &lt;br /&gt;
&lt;br /&gt;
Some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Values specifications are shown as '''&amp;amp;lt;content spec&amp;amp;gt;'''. The &amp;amp;lt; and &amp;amp;gt; are not to be included.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in '''bold'''. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
The order of elements specified in a conf file is immaterial, except where specified otherwise.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [ModName]&lt;br /&gt;
| Each conf file begins with [ModName], replacing &amp;quot;ModName&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to [https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions PCRE] class &amp;lt;tt&amp;gt;[A-Za-z0-9_]&amp;lt;/tt&amp;gt;.&amp;lt;ref&amp;gt;That excludes the space and hyphen characters! An invalid ModName can cause some front-ends to crash.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Abbreviation element is meant to allow for localization of this field.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&amp;lt;ref&amp;gt;We strongly advise to avoid using an Abbreviation that's identical to the ModName or Abbreviation of any other module. It only leads to confusion, and may have unexpected consequences for some front-ends.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This field allows for the localization of the ModName. It is meant to be short just like the ModName.&lt;br /&gt;
&lt;br /&gt;
''Actually, this element is not required, but it makes the most sense to describe it here.''&lt;br /&gt;
| [ModName]&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths used for a module named [MyModule], depending on&amp;lt;BR&amp;gt;(a) the type of module (Bible text, commentary, lexicon or dictionary&amp;lt;ref&amp;gt;Daily devotionals &amp;amp; glossaries go in subdirectories under lexdict. A glossary is between two languages.&amp;lt;/ref&amp;gt;, general book) and&amp;lt;BR&amp;gt;(b) the data driver (ModDrv parameter) are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
:./modules/texts/rawtext4/mymodule/&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
:./modules/texts/ztext4/mymodule/&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
:./modules/comments/zcom4/mymodule/&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
|&lt;br /&gt;
'''RawText''' (for uncompressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawText4''' (for uncompressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText''' (for compressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText4''' (for compressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require MinimumVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom''' (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom4''' (for uncompressed Commentaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom''' (for compressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom4''' (for compressed Commentaries having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require SwordVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HREFCom''' (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawFiles''' (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD''' (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD4''' (for uncompressed Dictionaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zLD''' (for compressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawGenBook''' (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Elements with defaults ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&amp;lt;ref&amp;gt;Omitting this for a non-plaintext module has unpredictable effects.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''Plaintext'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSIS''' ([http://www.bibletechnologies.net Open Scriptural Information Standard])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''TEI''' ([http://www.tei-c.org Text Encoding Initiative])&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the '''markup''' used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries. While SourceType has a default, it is a best practice to specify it.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Legacy modules may have a key here stating: &lt;br /&gt;
&lt;br /&gt;
'''GBF''' ([http://www.ebible.org/bible/gbf.htm General Bible Format])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThML''' ([http://www.ccel.org/ThML Theological Markup Language])&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
|&lt;br /&gt;
'''UTF-8'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF-16'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SCSU''' ([http://en.wikipedia.org/wiki/Standard_Compression_Scheme_for_Unicode Standard Compression Scheme for Unicode])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates how the text in the conf and in the module are encoded.&lt;br /&gt;
&lt;br /&gt;
The preferred encoding of texts is UTF-8. Other than Hebrew, UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Biblical Hebrew requires special handling.&amp;lt;ref&amp;gt;Unicode normalization can easily break Biblical Hebrew text. See on page 9 in the [http://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf SBL Hebrew Font User Manual].&amp;lt;/ref&amp;gt; A few other languages may require special handling.&amp;lt;ref&amp;gt;e.g. If they are mentioned in Table 10 in the [http://unicode.org/reports/tr15/#Corrigendum_5_Sequences Corrigendum 5 Sequences].&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The improper normalization of exceptional codepoints can be prevented by inserting a [https://en.wikipedia.org/wiki/Combining_Grapheme_Joiner Combining Grapheme Joiner].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To date, no modules use UTF-16 or SCSU. Legacy modules may hold a key here '''Latin-1''' referring solely to Windows Codepage 1252, a superset of ISO-8859-1. Front-end implementors wishing to use such modules should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.''&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
|&lt;br /&gt;
'''ZIP'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LZSS''' ([http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski Lempel Ziv Storer Szymanski])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BZIP2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''XZ'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText, zCom or zLD to indicate the compression algorithm.&lt;br /&gt;
While CompressType has a default, it is best practice to specify it.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
|&lt;br /&gt;
'''BOOK'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''CHAPTER'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VERSE'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText (Bibles) and zCom (Commentaries) to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller. It is best practice to take the default and not specify it.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&lt;br /&gt;
'''Calvin'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Darby_fr'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''German'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LXX'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Leningrad'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Luther'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''MT'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Orthodox'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Segond'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Synodal'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SynodalProt'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Vulg'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to specify the versification employed by a Bible module. Refer to [[Alternate Versification]].&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates that a module is enciphered and that the module is (un)locked. When the key has no value (&amp;quot;CipherKey=&amp;quot;) the module is locked. When it has a value, the module is unlocked.&lt;br /&gt;
&lt;br /&gt;
A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But it needs to be readable, plain text, without leading or trailing spaces.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
|&lt;br /&gt;
'''TreeKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VerseKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bibles which do not conform to any supported versification system in SWORD. It is best practice to take the default and not specify it.&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CaseSensitiveKeys&lt;br /&gt;
|&lt;br /&gt;
Used for Dictionaries whose keys are case sensitive. This key is used to suppress normalization to UPPER CASE before comparison.&amp;lt;br/&amp;gt;&lt;br /&gt;
Only allowable value: '''true'''&lt;br /&gt;
| false&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
|&lt;br /&gt;
'''UTF8Cantillation''' (For Hebrew texts having cantillation marks)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Cantillation&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8GreekAccents''' (For Greek texts having accents)&amp;lt;ref&amp;gt;For detailed background, see https://en.wikipedia.org/wiki/Greek_diacritics&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;This filter can have undesirable side-effects when applied to non-Greek text!&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8HebrewPoints''' (For Hebrew texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Niqqud&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8ArabicPoints''' (For Arabic texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Arabic_diacritics&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISLemma''' (For OSIS texts having lemmas)&amp;lt;ref&amp;gt;Must precede OSISStrongs.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorphSegmentation''' (For OSIS texts having morphological segmentation elements)&amp;lt;ref&amp;gt;Currently, only some JSword based front-ends seem to support this feature. The SWORD engine has the switch available, but no change in output is effected.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISStrongs''' (For OSIS texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISFootnotes''' (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISScripref''' (For OSIS texts having [[OSIS Bibles#Marking_cross-references_note|cross reference]] type notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorph''' (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISHeadings''' (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISVariants''' (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISRedLetterWords''' (For OSIS texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISGlosses''' (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Minimum SWORD version of 1.7.0 in the module .conf is required for OSISGlosses.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISXlit''' (For OSIS texts that include transliterated forms)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using xlit.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISEnum''' (For OSIS texts with enumerated words)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using enum.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISReferenceLinks''' (For OSIS texts with glossary links)&amp;lt;ref&amp;gt;New in SWORD 1.7.0 - This filter requires six vertical bar-delimited fields, of which the following is an example.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GlobalOptionFilter=OSISReferenceLinks|Reference Material Links|Hide or show links to study helps in the Biblical text.|x-glossary||On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here are the different field meanings:&lt;br /&gt;
# &amp;quot;OSISReferenceLinks&amp;quot; = option filter class name (option class name internal to the engine). Always the same for this kind of filter.&lt;br /&gt;
# &amp;quot;Reference Material Links&amp;quot; = Visible name of this OSISReferenceLinks filter. This is what the user will see in the Global Options toggle lists.&lt;br /&gt;
# &amp;quot;Hide or show...&amp;quot; = A readable user tip explaining what the filter does.&lt;br /&gt;
# &amp;quot;x-glossary&amp;quot; = Tells this OSISReferenceLinks filter to filter all references with type=&amp;quot;x-glossary&amp;quot;.&lt;br /&gt;
# (empty) = Tells this OSISReferenceLinks filter to also require that subType=&amp;quot;something&amp;quot; in order to filter. Empty means ALL type=&amp;quot;x-glossary&amp;quot; references will be filtered regardless of subType.&lt;br /&gt;
# &amp;quot;On&amp;quot; = Default filter toggle value (&amp;quot;On&amp;quot; or &amp;quot;Off&amp;quot;)&lt;br /&gt;
&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;It is allowed to have multiple OSISReferenceLinks entries in a single conf file.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&amp;lt;ref&amp;gt;It's not implied that every front-end supports all of the listed option filters.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. cross-references in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
&lt;br /&gt;
Legacy modules may also have following keys:&lt;br /&gt;
&lt;br /&gt;
'''OSISRuby'''&amp;lt;ref&amp;gt;See [https://en.wikipedia.org/wiki/Ruby_character Ruby character] and [https://en.wikipedia.org/wiki/Furigana Furigana]&amp;lt;/ref&amp;gt; (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Deprecated in 1.7.0. Use OSISGlosses instead.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFStrongs''' (For GBF texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFFootnotes''' (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFMorph''' (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFHeadings''' (For GBF texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFRedLetterWords''' (For GBF texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLStrongs''' (For THML texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLFootnotes''' (For THML texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLScripref''' (For THML texts having cross references)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLMorph''' (For THML texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLHeadings''' (For THML texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLVariants''' (For THML texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLLemma''' (For THML texts having lemmas)&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
|&lt;br /&gt;
'''LtoR''' (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RtoL''' (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BiDi''' (&amp;lt;u&amp;gt;Bidi&amp;lt;/u&amp;gt;rectional)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script.&amp;lt;ref&amp;gt;JSword validates the direction property against the Lang of the module.&amp;lt;/ref&amp;gt; Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script. If the RtoL script is transliterated into a LtoR script, set the value to LtoR. If a module has both RtoL and LtoR text, then it is BiDi.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| '''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for General Book module types (these are keyed with a TreeKey table of contents).  Indicates the preferred level from a leaf in the tree to display for context. e.g., 1 will only show the requested entry; 2 will show the entry, surrounded by all siblings, etc.&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the [[Fonts|font]] to be used for display of the module if it is available.&amp;lt;ref&amp;gt;Specifying a font may not be sufficient for some modules. The required font features may depend on a particular smart font engine, which may not be compiled into the front-end application.&amp;lt;/ref&amp;gt; Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;del&amp;gt;OSISqToTick&amp;lt;/del&amp;gt; (deprecated)&amp;lt;ref&amp;gt;For further details, refer to [http://www.crosswire.org/bugs/browse/MOD-188 MOD-188] in CrossWire bugs.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| This attribute is deprecated in favor of the marker attribute on the q element. E.g.: &amp;lt;pre&amp;gt;&amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;....&amp;lt;/q&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;true/false&amp;lt;/del&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&amp;lt;/del&amp;gt; &lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
|&lt;br /&gt;
'''StrongsNumbers''' (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekDef''' (for dictionary modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewDef''' (for dictionary modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekParse''' (for dictionary modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewParse''' (for dictionary modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''DailyDevotion''' (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossary''' (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that contain images of any type)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NoParagraphs''' (for modules without any paragraphing information, which are typically typeset with a verse per line&amp;lt;ref&amp;gt;This feature is intended to be informational to front-end developers. Ideally, front-ends will render these modules with a verse per line rather than as a single big chapter-length paragraph block.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The occurrence of a small number of paragraph elements in a module (such as might be used merely to format the colophon at the end of each Pauline epistle) does not rule out the use of this feature.&amp;lt;/ref&amp;gt;)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| PreferredCSSXHTML&lt;br /&gt;
| '''&amp;amp;lt;filename&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Names a file in the module's DataPath that should be referenced for the renderer as CSS display controls.&lt;br /&gt;
Generality is advised: Use controls that are not specific to any particular rendering engine, e.g. WebKit.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optional elements to support particular features ===&lt;br /&gt;
==== CaseInsensitiveKeys ====&lt;br /&gt;
Intended for use with Lexicon/Dictionary &amp;amp; Glossary modules. This field will make the order of the keys based upon the mixed case keys, but the index is still sorted by byte order of those keys. There are some scripts that don’t have upper/lower case (e.g. Arabic) and some languages where a naïve toUpper() will result in the wrong character (e.g. Turkish/Azeri lowercase dotted i and capital dotted İ).&lt;br /&gt;
&lt;br /&gt;
 CaseInsensitiveKeys=true|false&lt;br /&gt;
&lt;br /&gt;
It is fine to use toUpper() for internal normalization, but having keys in all caps when showing to a user is annoying. The problem is that the display order needs to follow something that makes sense to a user when the dictionary is presented as a list.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/JohnAustinDev/xulsword xulsword] has a different solution involving a configuration item not yet used by SWORD master.&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcDdEe... &lt;br /&gt;
&lt;br /&gt;
This is used by xulsword to sort the keys of a dictionary/glossary in original alphabetical order. Here's an actual example for module TKLDICT which has Lang=tk-Latn (i.e. Türkmençe):&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcÇçDdEeÄäŻżFfGgHhIiJjKkLlMmNnŇňOoÖöPpQqRrSsŞşTtUuÜüVvWwXxYyÝýZzŽž&lt;br /&gt;
&lt;br /&gt;
This method would need to be modified in order to support alphabets (such as [http://en.wikipedia.org/wiki/Welsh_orthography Welsh]) that include any [http://en.wikipedia.org/wiki/Digraph_%28orthography%29 digraphs].&lt;br /&gt;
&lt;br /&gt;
==== StrongsPadding ====&lt;br /&gt;
At the heart of our lexicon/dictionary drivers, we have some old logic which tries to detect if a key value is a Strong's number, and if so, then pad it with leading zeros accordingly. To support this logic, the recognition has recently been added for an optional new .conf entry for lexicon/dictionary modules:&lt;br /&gt;
&lt;br /&gt;
 StrongsPadding=true|false&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# So as not to break everything, this currently defaults to true if it is not present in the lexdict module's .conf file&lt;br /&gt;
# It can be set to false if you are building a lexdict module which has entries which may be misconstrued as Strong's numbers.&lt;br /&gt;
# In a couple years, we'll probably switch the default to false, so it would be nice to add this line and set the value to true on modules which really do require the logic.&lt;br /&gt;
# This is only available in SWORD version 1.7 or later. JSword never had this problem.&lt;br /&gt;
&lt;br /&gt;
==== Strip Filters ====&lt;br /&gt;
SWORD has the concept of &amp;quot;filtering&amp;quot; a module's text at different processing points for purposes other than rendering.&amp;lt;br&amp;gt;One of these filter-points is for searching and we call these filters '''Strip Filters'''.&lt;br /&gt;
&lt;br /&gt;
Strip Filters are typically named something like '''OSISPlain''' or '''GBFPlain''', etc.  These typically take all the markup out of an entry and prepare the text to be searched, but anything can be done to the text to prepare it further for searching.  We typically remove accents and vowel points from Greek and Hebrew respectively.&lt;br /&gt;
&lt;br /&gt;
Any Strip Filter can be added to a module by the module author with a line in the .conf file, such as:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=GBFPlain&lt;br /&gt;
&lt;br /&gt;
If diacritics need to be removed from Arabic, then we can certainly add a filter for this as well. The conf line would be:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=UTF8ArabicPoints&lt;br /&gt;
&lt;br /&gt;
Our current list of filters can be found by browsing the source folder here:&lt;br /&gt;
&lt;br /&gt;
http://crosswire.org/svn/sword/trunk/src/modules/filters/&lt;br /&gt;
&lt;br /&gt;
They're pretty concise and don't involve much knowledge from the rest of the engine, making them easy to write if we need a new one.&lt;br /&gt;
&lt;br /&gt;
This processing can replace or be complimentary to any processing done by clucene. Here's an example of what's used with the [http://papyri.info/docs/ddbdp Duke Databank of Papyri] with specialist software that's based on SWORD.&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=PapyriPlain&lt;br /&gt;
&lt;br /&gt;
Since we need to strip markup, and other things clucene will likely never support (see '''PapyriPlain''' &amp;amp;ndash; annotations like [,],?{,}, underdot) we need this preprocessing mechanism to prepare the text before searching.  We also maintain searching functionality apart from &amp;quot;fast indexed searching&amp;quot;.&amp;lt;ref&amp;gt;Currently supplied by clucene, but could be implemented by any other fast search framework that we might want to integrate in future.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy-mm-dd&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Calendar_dates ISO 8601 Date])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a.&lt;br /&gt;
&lt;br /&gt;
CrossWire's standard practice is to indicate updates that only require a .conf-file update/download by incrementing the third most significant number (the revision number). For example, if module version 1.2 requires a .conf-file update. A new .conf file with version number 1.2.1 could be released.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
x.x is taken from the Version value.&lt;br /&gt;
&lt;br /&gt;
Indicates what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
&lt;br /&gt;
It is recommended that each explanation be suffixed by the corresponding SwordVersionDate value.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&amp;lt;ref&amp;gt;See http://tracker.crosswire.org/browse/API-201&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the [[Sword library versions | minimum version]] of the SWORD library required for this module.&amp;lt;ref&amp;gt;Required to support a Bible/Commentary module that has an [[Alternate Versification]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Biblical Texts''' (for Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Commentaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Lexicons / Dictionaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossaries''' (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Daily Devotional''' (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Generic Books''' (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Maps''' (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Cults / Unorthodox / Questionable Material'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Essays''' (for essays)&amp;lt;ref&amp;gt;'''Essays''' is handled as a subset of '''Generic Books'''.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Biblical Texts&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=HRefCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawFiles'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=Glossary'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Daily Devotional&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=DailyDevotion'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawGenBook''&amp;lt;br/&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| '''&amp;amp;lt;tree/string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;Language[-Script]?[-Region]?&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The language identifier is a combination of sub-tags for '''Language''' and optionally '''Script''', and/or '''Region''', according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47] and [http://tools.ietf.org/html/rfc4647 RFC 4647]. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
&lt;br /&gt;
'''Language sub-tag''' ''(Regex: /[a-z]{2,3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module according to [http://en.wikipedia.org/wiki/ISO_639 ISO 639 parts 1, 2, 3 and 5]. Some languages have several codes. Use the following to determine the best choice:&amp;lt;br/&amp;gt;&lt;br /&gt;
:When available use a 2-letter [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English).&lt;br /&gt;
:If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar])  (e.g. ceb for Cebuano).&lt;br /&gt;
:Failing that, use a [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] code ([http://www-01.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages.&lt;br /&gt;
:Finally, use a [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] code ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macro languages.&lt;br /&gt;
The [http://www-01.sil.org/iso639-3/codes.asp ISO639-3 registrar] page gives up-to-date table on all of the above.&lt;br /&gt;
&lt;br /&gt;
'''Script sub-tag''' ''(Regex:  /[A-Z][a-z]{3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian).&lt;br /&gt;
&lt;br /&gt;
'''Region sub-tag''': ''(Regex: /[A-Z]{2}/)''&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English).&lt;br /&gt;
&lt;br /&gt;
'''Combinations'''''(Regex: /[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
Individual sub-tags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the total byte size of the module on disk, excluding the the size of any Lucene index files.&lt;br /&gt;
&lt;br /&gt;
For modules in the CrossWire repositories, this is automatically generated and overwritten if needed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element gives a former ModName that is made obsolete by this module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| OSISVersion&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the OSIS schema version employed in the OSIS source document. The current version is 2.1.1&lt;br /&gt;
&lt;br /&gt;
It is recommended that this be present for every OSIS module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| Companion&amp;lt;ref&amp;gt;Many (xulsword compatible) modules in the [[Official and Affiliated Module Repositories#Institute_for_Bible_Translation|IBT Repository]] make use of this field. See also https://github.com/johnaustindev/osis-converters&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName[, ModName]*&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies companion module(s) that should be opened together&amp;lt;br/&amp;gt;&lt;br /&gt;
e.g. When Bible and Commentary and/or Glossary modules are distributed together.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Years ISO 8601 Year])&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- id=&amp;quot;distlic&amp;quot;&lt;br /&gt;
| DistributionLicense&lt;br /&gt;
|&lt;br /&gt;
'''Public Domain'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission to distribute granted to CrossWire'''&amp;lt;ref&amp;gt;Modules in other repositories may have a different organization name instead of CrossWire.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Free non-commercial distribution'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Freely distributable'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission granted to distribute non-commercially in SWORD format'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/fdl.html GFDL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/gpl.html GPL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by by]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/publicdomain/zero/1.0/ CC0]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last seven&amp;lt;ref&amp;gt;Each link goes to a page that no longer exists!&amp;lt;/ref&amp;gt; licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&lt;br /&gt;
|- &lt;br /&gt;
| UnlockInfo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains unlock instructions for the user, intended to be displayed upon attempt to install the module.  These instructions typically include a URL pointing to an exact location within a publisher's online store where a user can directly purchase an unlock key (CipherKey) for the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&amp;lt;br/&amp;gt;HTML Link&lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uniqueness ==&lt;br /&gt;
For comparing two versions of a module during module development, the module names and locations must be unique. For JSword based front-ends such as Bible Desktop, there is a further requirement, the Description items must be different.&lt;br /&gt;
&lt;br /&gt;
== Analysis Tools ==&lt;br /&gt;
* [[User:Dmsmith|DMSmith]] has created a script to analyse conf files and report anomalies.&lt;br /&gt;
* [[User:David Haslam|David Haslam]] has created a '''User Defined Language''' called '''CONF''' as a Syntax Highlighter for '''Notepad++''' (Windows). Download from [https://github.com/DavidHaslam/CONF].&lt;br /&gt;
&lt;br /&gt;
== Automated generation ==&lt;br /&gt;
* For new module submissions to CrossWire, [[User:Refdoc|Refdoc]] now maintains a script called '''confmaker''' that includes the ''automated generation'' of module conf files, given the minimum ''non-automatable'' requirements by the module submitter.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BibTeX entries]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Versification|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16713</id>
		<title>DevTools:Locale Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16713"/>
				<updated>2019-08-19T20:59:50Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Book Abbrevs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A locale file is stored in the '''locales.d''' folder under the Sword path. &amp;lt;br&amp;gt;&lt;br /&gt;
The file name is generally the language code with extension .conf &amp;lt;br&amp;gt;&lt;br /&gt;
As Unicode text files, locale files should be encoded UTF-8 (without BOM) and the file name should include &amp;quot;-utf8&amp;quot; after the language code.&amp;lt;br&amp;gt;&lt;br /&gt;
Other encodings are deprecated. &lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Locales require a few things.  Let's step through the German locale:&lt;br /&gt;
&lt;br /&gt;
excerpts from /sword/locales.d/de.conf:&lt;br /&gt;
&lt;br /&gt;
=== Meta ===&lt;br /&gt;
&lt;br /&gt;
 [Meta]&lt;br /&gt;
 Name=de&lt;br /&gt;
 Description=German&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
&lt;br /&gt;
The above information is used to define the locale.  They should be&lt;br /&gt;
fairly obvious.  Name should be, in preferred order, an ISO 639-1 alpha 2 language code, an ISO 639-2+ alpha 3 lanugage code, or an Ethnologue 3 letter language code.  SWORD includes a fairly comprehensive list of these available at: sword/locales.d/locales.conf.&lt;br /&gt;
This, and all entries are case sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
This section requires a &amp;quot;one-to-one&amp;quot; mapping for each string to be translated.&lt;br /&gt;
&lt;br /&gt;
The following entries are translation strings for anything you might want.  REQUIRED are the book names of the Bible, including deuterocanonical books if used. Other things might be option name, value, tip, translations, or any text returned from the engine.&lt;br /&gt;
&lt;br /&gt;
If you find any errors or omissions, please post a message that you found a constant string in the engine not being (properly) translated.&lt;br /&gt;
&lt;br /&gt;
 [Text]&lt;br /&gt;
 Genesis=1. Mose&lt;br /&gt;
 Exodus=2. Mose&lt;br /&gt;
 Leviticus=3. Mose&lt;br /&gt;
 &lt;br /&gt;
 # &amp;lt;snipped rest of book names&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observe that a full-stop is a permitted character in a book name.&lt;br /&gt;
&lt;br /&gt;
=== Book Abbrevs ===&lt;br /&gt;
This section specifies all possible alternative book names and abbreviations for each Bible book.  These are required for the locale to work correctly within the SWORD engine.  This section teaches the verse reference parser all possible ways to represent a book name.  The verse parser will allow partial matches and will sort entries in this section alphabetically by their codepoint values and give preference to partial matches with lower alphabetical order, e.g, &amp;quot;1 C&amp;quot; is a partial match for 1 CORINTHIANS=1Cor and 1 CHRONICLES=1Chr, but 1 CHRONICLES will be preferred because it is alphabetically first.  If the desire is to have &amp;quot;1 C&amp;quot; prefer 1Cor, instead, then a 3rd entry is required: 1 C=1Cor.  This preference for disambiguation is important to consider for partial matches, as they are prolific throughout Biblical literature, e.g., Jud=Jude (instead of Judges), Jo=John (instead of Job, Jonah, or Joshua)&lt;br /&gt;
 &lt;br /&gt;
The format is:&lt;br /&gt;
uppercase alternative book name or abbreviation=osisID&lt;br /&gt;
SWORD will sort this list, but it is preferred and standard to keep this list in alphabetical order to assist the authors in defining and tuning these preferences, .e.g.,&lt;br /&gt;
&lt;br /&gt;
 [Book Abbrevs]&lt;br /&gt;
 1 C=1Cor&lt;br /&gt;
 1 CHRONICLES=1Chr&lt;br /&gt;
 1 CORINTHIANS=1Cor&lt;br /&gt;
 1 JN=1Jn&lt;br /&gt;
 1C=1Cor&lt;br /&gt;
 1CHRONICLES=1Chr&lt;br /&gt;
 1CORINTHIANS=1Cor&lt;br /&gt;
 I C=1Cor&lt;br /&gt;
 I CHRONICLES=1Chr&lt;br /&gt;
 I CORINTHIANS=1Cor&lt;br /&gt;
 IC=1Cor&lt;br /&gt;
 ICHRONICLES=1Chr&lt;br /&gt;
 ICORINTHIANS=1Cor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As expressed earlier, notice that 1 Chronicles would come, alphabetically&lt;br /&gt;
before 1 Corinthians.  The above entries say: 1Cor (which is the OSIS book id for 1 Corinthians)&lt;br /&gt;
has precedence up through &amp;quot;1 C&amp;quot;, any character beyond that will disambiguate the entry anyway, so the default 1 CHRONICLES or 1&lt;br /&gt;
CORINTHIANS entries would correctly resolve partial matches with more characters starting with &amp;quot;1 C&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT''':&lt;br /&gt;
&lt;br /&gt;
All verse references output by SWORD must be legal, parsable reference as input to SWORD.  This means that there MUST be at least 1 abbreviation entry for each book name&lt;br /&gt;
which is comprised of a toupper (uppercase function) of the entire string EXACTLY as you have translated it in the [Text] section.&lt;br /&gt;
&lt;br /&gt;
For example, the following are the REQUIRED entries for our book names from the excerpt [Text] section example above.&lt;br /&gt;
 1. MOSE=Gen&lt;br /&gt;
 2. MOSE=Ex&lt;br /&gt;
 3. MOSE=Lev&lt;br /&gt;
&lt;br /&gt;
That's it for requirements.  Tuning your locale can be important for the &lt;br /&gt;
user experience.  Many [Book Abbrevs] entries may be added to assign &lt;br /&gt;
precedence if, for example, you find you are getting taken to the wrong &lt;br /&gt;
entries from text like: &amp;quot;Ma 1:1&amp;quot; (would be Malachi by default because of &lt;br /&gt;
alphabetical precedence, but might want Matthew or Mark). &lt;br /&gt;
In this case, you would put in an entry MA=Matt or MA=Mark&lt;br /&gt;
&lt;br /&gt;
=== Pref Abbrevs ===&lt;br /&gt;
This section designates the preferred abbreviation for each book.  These are typically used when SWORD is asked to display a very short verse reference or a short Bible book name.  The format for these entries is: osisID=Preferred Abbreviation, e.g.,&lt;br /&gt;
&lt;br /&gt;
 [Pref Abbrevs]&lt;br /&gt;
 Gen=1Mo&lt;br /&gt;
 Exod=2Mo&lt;br /&gt;
 Lev=3Mo&lt;br /&gt;
 Num=4Mo&lt;br /&gt;
 Deut=5Mo&lt;br /&gt;
 Josh=Jos&lt;br /&gt;
 Judg=Rich&lt;br /&gt;
&lt;br /&gt;
Each preferred abbreviation must necessarily be parsable by the exhaustive list of abbreviations in the [Book Abbrevs] section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can test your locale with the sword/tests/parsekey test program (this &lt;br /&gt;
program is in the SWORD source along with several other programs that are &lt;br /&gt;
used to validate the configuration files) and try different strings to see &lt;br /&gt;
how they parse.&lt;br /&gt;
&lt;br /&gt;
A full-stop is a permitted character in a localized book abbreviation. Other punctuation characters commonly used in verse references are not allowed in localized book names. These include the hyphen '-' (used for verse ranges), the colon ':' (used to separate chapter and verse numbers), and the comma ',' (used for verse lists). Additionally, numerals in non-initial position are not permitted in book names (i.e. '3John' is valid but 'Psalm151' is not).&lt;br /&gt;
&lt;br /&gt;
== Submissions ==&lt;br /&gt;
If you create a new locale file as part of the process towards making a module, please submit it to CrossWire.&lt;br /&gt;
 &lt;br /&gt;
Submissions should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
== Maintained locale files ==&lt;br /&gt;
&lt;br /&gt;
On the CrossWire server, the locale files are stored in &amp;lt;tt&amp;gt;/space/home/ftp/pub/sword/raw/locales.d&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Users with FTP or SCP access are able to download them from that folder.&lt;br /&gt;
&lt;br /&gt;
Corrections to errors in locale files should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization|Locale Files]]&lt;br /&gt;
[[Category:SWORD]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16712</id>
		<title>DevTools:Locale Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16712"/>
				<updated>2019-08-19T20:25:10Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Pref Abbrevs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A locale file is stored in the '''locales.d''' folder under the Sword path. &amp;lt;br&amp;gt;&lt;br /&gt;
The file name is generally the language code with extension .conf &amp;lt;br&amp;gt;&lt;br /&gt;
As Unicode text files, locale files should be encoded UTF-8 (without BOM) and the file name should include &amp;quot;-utf8&amp;quot; after the language code.&amp;lt;br&amp;gt;&lt;br /&gt;
Other encodings are deprecated. &lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Locales require a few things.  Let's step through the German locale:&lt;br /&gt;
&lt;br /&gt;
excerpts from /sword/locales.d/de.conf:&lt;br /&gt;
&lt;br /&gt;
=== Meta ===&lt;br /&gt;
&lt;br /&gt;
 [Meta]&lt;br /&gt;
 Name=de&lt;br /&gt;
 Description=German&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
&lt;br /&gt;
The above information is used to define the locale.  They should be&lt;br /&gt;
fairly obvious.  Name should be, in preferred order, an ISO 639-1 alpha 2 language code, an ISO 639-2+ alpha 3 lanugage code, or an Ethnologue 3 letter language code.  SWORD includes a fairly comprehensive list of these available at: sword/locales.d/locales.conf.&lt;br /&gt;
This, and all entries are case sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
This section requires a &amp;quot;one-to-one&amp;quot; mapping for each string to be translated.&lt;br /&gt;
&lt;br /&gt;
The following entries are translation strings for anything you might want.  REQUIRED are the book names of the Bible, including deuterocanonical books if used. Other things might be option name, value, tip, translations, or any text returned from the engine.&lt;br /&gt;
&lt;br /&gt;
If you find any errors or omissions, please post a message that you found a constant string in the engine not being (properly) translated.&lt;br /&gt;
&lt;br /&gt;
 [Text]&lt;br /&gt;
 Genesis=1. Mose&lt;br /&gt;
 Exodus=2. Mose&lt;br /&gt;
 Leviticus=3. Mose&lt;br /&gt;
 &lt;br /&gt;
 # &amp;lt;snipped rest of book names&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observe that a full-stop is a permitted character in a book name.&lt;br /&gt;
&lt;br /&gt;
=== Book Abbrevs ===&lt;br /&gt;
This section permits a &amp;quot;many-to-one&amp;quot; mapping for each book, as required by the references used in the Bible translation or commentary, etc.&lt;br /&gt;
&lt;br /&gt;
 [Book Abbrevs]&lt;br /&gt;
 1 C=1Cor&lt;br /&gt;
 1 CHRONICLES=1Chr&lt;br /&gt;
 1 CORINTHIANS=1Cor&lt;br /&gt;
 1 JN=1Jn&lt;br /&gt;
&lt;br /&gt;
These are the abbreviations for each book and are REQUIRED for the&lt;br /&gt;
locale to work correctly in the engine.  They are actually more than&lt;br /&gt;
just abbreviations; they tell the parser how to incrementally parse&lt;br /&gt;
versekey text.  Notice that 1 Chronicles would come, alphabetically&lt;br /&gt;
before 1 Corinthians.  The above entries say: 1Cor (which is the OSIS book id for 1 Corinthians)&lt;br /&gt;
has precedence up through &amp;quot;1 C&amp;quot;, any character beyond that will&lt;br /&gt;
disambiguate the entry anyway, so the default 1 CHRONICLES or 1&lt;br /&gt;
CORINTHIANS entries would take over from there. &lt;br /&gt;
&lt;br /&gt;
English abbreviations are no longer required to &lt;br /&gt;
be in the abbreviations section as they are in there by default; &lt;br /&gt;
in the example above they are in there for demonstration purposes.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT''':&lt;br /&gt;
&lt;br /&gt;
There MUST be at least 1 abbreviation entry for each book name&lt;br /&gt;
comprised of a toupper (uppercase function) of the entire string&lt;br /&gt;
EXACTLY as you have translated it in the [Text] section.&lt;br /&gt;
&lt;br /&gt;
Following are the REQUIRED entries from our excerpt book names above.&lt;br /&gt;
 1. MOSE=Gen&lt;br /&gt;
 2. MOSE=Ex&lt;br /&gt;
 3. MOSE=Lev&lt;br /&gt;
&lt;br /&gt;
That's it for requirements.  Tuning your locale can be important for the &lt;br /&gt;
user experience.  Many [Book Abbrevs] entries may be added to assign &lt;br /&gt;
precedence if, for example, you find you are getting taken to the wrong &lt;br /&gt;
entries from text like: &amp;quot;Ma 1:1&amp;quot; (would be Malachi by default because of &lt;br /&gt;
alphabetical precedence, but might want Matthew or Mark). &lt;br /&gt;
In this case, you would put in an entry MA=Matt or MA=Mark&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pref Abbrevs ===&lt;br /&gt;
This section designates the preferred abbreviation for each book.  These are typically used when SWORD is asked to display a very short verse reference or a short Bible book name.  The format for these entries is: osisID=Preferred Abbreviation, e.g.,&lt;br /&gt;
&lt;br /&gt;
 [Pref Abbrevs]&lt;br /&gt;
 Gen=1Mo&lt;br /&gt;
 Exod=2Mo&lt;br /&gt;
 Lev=3Mo&lt;br /&gt;
 Num=4Mo&lt;br /&gt;
 Deut=5Mo&lt;br /&gt;
 Josh=Jos&lt;br /&gt;
 Judg=Rich&lt;br /&gt;
&lt;br /&gt;
Each preferred abbreviation must necessarily be parsable by the exhaustive list of abbreviations in the [Book Abbrevs] section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can test your locale with the sword/tests/parsekey test program (this &lt;br /&gt;
program is in the SWORD source along with several other programs that are &lt;br /&gt;
used to validate the configuration files) and try different strings to see &lt;br /&gt;
how they parse.&lt;br /&gt;
&lt;br /&gt;
A full-stop is a permitted character in a localized book abbreviation. Other punctuation characters commonly used in verse references are not allowed in localized book names. These include the hyphen '-' (used for verse ranges), the colon ':' (used to separate chapter and verse numbers), and the comma ',' (used for verse lists). Additionally, numerals in non-initial position are not permitted in book names (i.e. '3John' is valid but 'Psalm151' is not).&lt;br /&gt;
&lt;br /&gt;
== Submissions ==&lt;br /&gt;
If you create a new locale file as part of the process towards making a module, please submit it to CrossWire.&lt;br /&gt;
 &lt;br /&gt;
Submissions should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
== Maintained locale files ==&lt;br /&gt;
&lt;br /&gt;
On the CrossWire server, the locale files are stored in &amp;lt;tt&amp;gt;/space/home/ftp/pub/sword/raw/locales.d&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Users with FTP or SCP access are able to download them from that folder.&lt;br /&gt;
&lt;br /&gt;
Corrections to errors in locale files should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization|Locale Files]]&lt;br /&gt;
[[Category:SWORD]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16711</id>
		<title>DevTools:Locale Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16711"/>
				<updated>2019-08-19T18:46:02Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Pref Abbrevs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A locale file is stored in the '''locales.d''' folder under the Sword path. &amp;lt;br&amp;gt;&lt;br /&gt;
The file name is generally the language code with extension .conf &amp;lt;br&amp;gt;&lt;br /&gt;
As Unicode text files, locale files should be encoded UTF-8 (without BOM) and the file name should include &amp;quot;-utf8&amp;quot; after the language code.&amp;lt;br&amp;gt;&lt;br /&gt;
Other encodings are deprecated. &lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Locales require a few things.  Let's step through the German locale:&lt;br /&gt;
&lt;br /&gt;
excerpts from /sword/locales.d/de.conf:&lt;br /&gt;
&lt;br /&gt;
=== Meta ===&lt;br /&gt;
&lt;br /&gt;
 [Meta]&lt;br /&gt;
 Name=de&lt;br /&gt;
 Description=German&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
&lt;br /&gt;
The above information is used to define the locale.  They should be&lt;br /&gt;
fairly obvious.  Name should be, in preferred order, an ISO 639-1 alpha 2 language code, an ISO 639-2+ alpha 3 lanugage code, or an Ethnologue 3 letter language code.  SWORD includes a fairly comprehensive list of these available at: sword/locales.d/locales.conf.&lt;br /&gt;
This, and all entries are case sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
This section requires a &amp;quot;one-to-one&amp;quot; mapping for each string to be translated.&lt;br /&gt;
&lt;br /&gt;
The following entries are translation strings for anything you might want.  REQUIRED are the book names of the Bible, including deuterocanonical books if used. Other things might be option name, value, tip, translations, or any text returned from the engine.&lt;br /&gt;
&lt;br /&gt;
If you find any errors or omissions, please post a message that you found a constant string in the engine not being (properly) translated.&lt;br /&gt;
&lt;br /&gt;
 [Text]&lt;br /&gt;
 Genesis=1. Mose&lt;br /&gt;
 Exodus=2. Mose&lt;br /&gt;
 Leviticus=3. Mose&lt;br /&gt;
 &lt;br /&gt;
 # &amp;lt;snipped rest of book names&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observe that a full-stop is a permitted character in a book name.&lt;br /&gt;
&lt;br /&gt;
=== Book Abbrevs ===&lt;br /&gt;
This section permits a &amp;quot;many-to-one&amp;quot; mapping for each book, as required by the references used in the Bible translation or commentary, etc.&lt;br /&gt;
&lt;br /&gt;
 [Book Abbrevs]&lt;br /&gt;
 1 C=1Cor&lt;br /&gt;
 1 CHRONICLES=1Chr&lt;br /&gt;
 1 CORINTHIANS=1Cor&lt;br /&gt;
 1 JN=1Jn&lt;br /&gt;
&lt;br /&gt;
These are the abbreviations for each book and are REQUIRED for the&lt;br /&gt;
locale to work correctly in the engine.  They are actually more than&lt;br /&gt;
just abbreviations; they tell the parser how to incrementally parse&lt;br /&gt;
versekey text.  Notice that 1 Chronicles would come, alphabetically&lt;br /&gt;
before 1 Corinthians.  The above entries say: 1Cor (which is the OSIS book id for 1 Corinthians)&lt;br /&gt;
has precedence up through &amp;quot;1 C&amp;quot;, any character beyond that will&lt;br /&gt;
disambiguate the entry anyway, so the default 1 CHRONICLES or 1&lt;br /&gt;
CORINTHIANS entries would take over from there. &lt;br /&gt;
&lt;br /&gt;
English abbreviations are no longer required to &lt;br /&gt;
be in the abbreviations section as they are in there by default; &lt;br /&gt;
in the example above they are in there for demonstration purposes.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT''':&lt;br /&gt;
&lt;br /&gt;
There MUST be at least 1 abbreviation entry for each book name&lt;br /&gt;
comprised of a toupper (uppercase function) of the entire string&lt;br /&gt;
EXACTLY as you have translated it in the [Text] section.&lt;br /&gt;
&lt;br /&gt;
Following are the REQUIRED entries from our excerpt book names above.&lt;br /&gt;
 1. MOSE=Gen&lt;br /&gt;
 2. MOSE=Ex&lt;br /&gt;
 3. MOSE=Lev&lt;br /&gt;
&lt;br /&gt;
That's it for requirements.  Tuning your locale can be important for the &lt;br /&gt;
user experience.  Many [Book Abbrevs] entries may be added to assign &lt;br /&gt;
precedence if, for example, you find you are getting taken to the wrong &lt;br /&gt;
entries from text like: &amp;quot;Ma 1:1&amp;quot; (would be Malachi by default because of &lt;br /&gt;
alphabetical precedence, but might want Matthew or Mark). &lt;br /&gt;
In this case, you would put in an entry MA=Matt or MA=Mark&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pref Abbrevs ===&lt;br /&gt;
This section define a preferred abbreviation for each book.  These are typically used when SWORD is asked to display a very short verse reference or a short Bible book name.  The format for these entries is: osisID=Preferred Abbreviation, e.g.,&lt;br /&gt;
&lt;br /&gt;
 [Pref Abbrevs]&lt;br /&gt;
 Gen=1Mo&lt;br /&gt;
 Exod=2Mo&lt;br /&gt;
 Lev=3Mo&lt;br /&gt;
 Num=4Mo&lt;br /&gt;
 Deut=5Mo&lt;br /&gt;
 Josh=Jos&lt;br /&gt;
 Judg=Rich&lt;br /&gt;
&lt;br /&gt;
Each preferred abbreviation must necessarily be parsable by the exhaustive list of abbreviations in the [Book Abbrevs] section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can test your locale with the sword/tests/parsekey test program (this &lt;br /&gt;
program is in the SWORD source along with several other programs that are &lt;br /&gt;
used to validate the configuration files) and try different strings to see &lt;br /&gt;
how they parse.&lt;br /&gt;
&lt;br /&gt;
A full-stop is a permitted character in a localized book abbreviation. Other punctuation characters commonly used in verse references are not allowed in localized book names. These include the hyphen '-' (used for verse ranges), the colon ':' (used to separate chapter and verse numbers), and the comma ',' (used for verse lists). Additionally, numerals in non-initial position are not permitted in book names (i.e. '3John' is valid but 'Psalm151' is not).&lt;br /&gt;
&lt;br /&gt;
== Submissions ==&lt;br /&gt;
If you create a new locale file as part of the process towards making a module, please submit it to CrossWire.&lt;br /&gt;
 &lt;br /&gt;
Submissions should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
== Maintained locale files ==&lt;br /&gt;
&lt;br /&gt;
On the CrossWire server, the locale files are stored in &amp;lt;tt&amp;gt;/space/home/ftp/pub/sword/raw/locales.d&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Users with FTP or SCP access are able to download them from that folder.&lt;br /&gt;
&lt;br /&gt;
Corrections to errors in locale files should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization|Locale Files]]&lt;br /&gt;
[[Category:SWORD]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16710</id>
		<title>DevTools:Locale Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16710"/>
				<updated>2019-08-19T18:45:31Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Pref Abbrevs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A locale file is stored in the '''locales.d''' folder under the Sword path. &amp;lt;br&amp;gt;&lt;br /&gt;
The file name is generally the language code with extension .conf &amp;lt;br&amp;gt;&lt;br /&gt;
As Unicode text files, locale files should be encoded UTF-8 (without BOM) and the file name should include &amp;quot;-utf8&amp;quot; after the language code.&amp;lt;br&amp;gt;&lt;br /&gt;
Other encodings are deprecated. &lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Locales require a few things.  Let's step through the German locale:&lt;br /&gt;
&lt;br /&gt;
excerpts from /sword/locales.d/de.conf:&lt;br /&gt;
&lt;br /&gt;
=== Meta ===&lt;br /&gt;
&lt;br /&gt;
 [Meta]&lt;br /&gt;
 Name=de&lt;br /&gt;
 Description=German&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
&lt;br /&gt;
The above information is used to define the locale.  They should be&lt;br /&gt;
fairly obvious.  Name should be, in preferred order, an ISO 639-1 alpha 2 language code, an ISO 639-2+ alpha 3 lanugage code, or an Ethnologue 3 letter language code.  SWORD includes a fairly comprehensive list of these available at: sword/locales.d/locales.conf.&lt;br /&gt;
This, and all entries are case sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
This section requires a &amp;quot;one-to-one&amp;quot; mapping for each string to be translated.&lt;br /&gt;
&lt;br /&gt;
The following entries are translation strings for anything you might want.  REQUIRED are the book names of the Bible, including deuterocanonical books if used. Other things might be option name, value, tip, translations, or any text returned from the engine.&lt;br /&gt;
&lt;br /&gt;
If you find any errors or omissions, please post a message that you found a constant string in the engine not being (properly) translated.&lt;br /&gt;
&lt;br /&gt;
 [Text]&lt;br /&gt;
 Genesis=1. Mose&lt;br /&gt;
 Exodus=2. Mose&lt;br /&gt;
 Leviticus=3. Mose&lt;br /&gt;
 &lt;br /&gt;
 # &amp;lt;snipped rest of book names&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observe that a full-stop is a permitted character in a book name.&lt;br /&gt;
&lt;br /&gt;
=== Book Abbrevs ===&lt;br /&gt;
This section permits a &amp;quot;many-to-one&amp;quot; mapping for each book, as required by the references used in the Bible translation or commentary, etc.&lt;br /&gt;
&lt;br /&gt;
 [Book Abbrevs]&lt;br /&gt;
 1 C=1Cor&lt;br /&gt;
 1 CHRONICLES=1Chr&lt;br /&gt;
 1 CORINTHIANS=1Cor&lt;br /&gt;
 1 JN=1Jn&lt;br /&gt;
&lt;br /&gt;
These are the abbreviations for each book and are REQUIRED for the&lt;br /&gt;
locale to work correctly in the engine.  They are actually more than&lt;br /&gt;
just abbreviations; they tell the parser how to incrementally parse&lt;br /&gt;
versekey text.  Notice that 1 Chronicles would come, alphabetically&lt;br /&gt;
before 1 Corinthians.  The above entries say: 1Cor (which is the OSIS book id for 1 Corinthians)&lt;br /&gt;
has precedence up through &amp;quot;1 C&amp;quot;, any character beyond that will&lt;br /&gt;
disambiguate the entry anyway, so the default 1 CHRONICLES or 1&lt;br /&gt;
CORINTHIANS entries would take over from there. &lt;br /&gt;
&lt;br /&gt;
English abbreviations are no longer required to &lt;br /&gt;
be in the abbreviations section as they are in there by default; &lt;br /&gt;
in the example above they are in there for demonstration purposes.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT''':&lt;br /&gt;
&lt;br /&gt;
There MUST be at least 1 abbreviation entry for each book name&lt;br /&gt;
comprised of a toupper (uppercase function) of the entire string&lt;br /&gt;
EXACTLY as you have translated it in the [Text] section.&lt;br /&gt;
&lt;br /&gt;
Following are the REQUIRED entries from our excerpt book names above.&lt;br /&gt;
 1. MOSE=Gen&lt;br /&gt;
 2. MOSE=Ex&lt;br /&gt;
 3. MOSE=Lev&lt;br /&gt;
&lt;br /&gt;
That's it for requirements.  Tuning your locale can be important for the &lt;br /&gt;
user experience.  Many [Book Abbrevs] entries may be added to assign &lt;br /&gt;
precedence if, for example, you find you are getting taken to the wrong &lt;br /&gt;
entries from text like: &amp;quot;Ma 1:1&amp;quot; (would be Malachi by default because of &lt;br /&gt;
alphabetical precedence, but might want Matthew or Mark). &lt;br /&gt;
In this case, you would put in an entry MA=Matt or MA=Mark&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pref Abbrevs ===&lt;br /&gt;
This section define a preferred abbreviation for each book.  These are typically used when SWORD is asked to display a very short verse reference or a short Bible book name.  The format for these entries is: osisID=Preferred Abbreviation, e.g.,&lt;br /&gt;
&lt;br /&gt;
 [Pref Abbrevs]&lt;br /&gt;
 Gen=1Mo&lt;br /&gt;
 Exod=2Mo&lt;br /&gt;
 Lev=3Mo&lt;br /&gt;
 Num=4Mo&lt;br /&gt;
 Deut=5Mo&lt;br /&gt;
 Josh=Jos&lt;br /&gt;
 Judg=Rich&lt;br /&gt;
 &lt;br /&gt;
Each preferred abbreviation must necessarily be parsable by the exhaustive list of abbreviations in the [Book Abbrevs] section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can test your locale with the sword/tests/parsekey test program (this &lt;br /&gt;
program is in the SWORD source along with several other programs that are &lt;br /&gt;
used to validate the configuration files) and try different strings to see &lt;br /&gt;
how they parse.&lt;br /&gt;
&lt;br /&gt;
A full-stop is a permitted character in a localized book abbreviation. Other punctuation characters commonly used in verse references are not allowed in localized book names. These include the hyphen '-' (used for verse ranges), the colon ':' (used to separate chapter and verse numbers), and the comma ',' (used for verse lists). Additionally, numerals in non-initial position are not permitted in book names (i.e. '3John' is valid but 'Psalm151' is not).&lt;br /&gt;
&lt;br /&gt;
== Submissions ==&lt;br /&gt;
If you create a new locale file as part of the process towards making a module, please submit it to CrossWire.&lt;br /&gt;
 &lt;br /&gt;
Submissions should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
== Maintained locale files ==&lt;br /&gt;
&lt;br /&gt;
On the CrossWire server, the locale files are stored in &amp;lt;tt&amp;gt;/space/home/ftp/pub/sword/raw/locales.d&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Users with FTP or SCP access are able to download them from that folder.&lt;br /&gt;
&lt;br /&gt;
Corrections to errors in locale files should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization|Locale Files]]&lt;br /&gt;
[[Category:SWORD]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16709</id>
		<title>DevTools:Locale Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16709"/>
				<updated>2019-08-19T18:42:34Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A locale file is stored in the '''locales.d''' folder under the Sword path. &amp;lt;br&amp;gt;&lt;br /&gt;
The file name is generally the language code with extension .conf &amp;lt;br&amp;gt;&lt;br /&gt;
As Unicode text files, locale files should be encoded UTF-8 (without BOM) and the file name should include &amp;quot;-utf8&amp;quot; after the language code.&amp;lt;br&amp;gt;&lt;br /&gt;
Other encodings are deprecated. &lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Locales require a few things.  Let's step through the German locale:&lt;br /&gt;
&lt;br /&gt;
excerpts from /sword/locales.d/de.conf:&lt;br /&gt;
&lt;br /&gt;
=== Meta ===&lt;br /&gt;
&lt;br /&gt;
 [Meta]&lt;br /&gt;
 Name=de&lt;br /&gt;
 Description=German&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
&lt;br /&gt;
The above information is used to define the locale.  They should be&lt;br /&gt;
fairly obvious.  Name should be, in preferred order, an ISO 639-1 alpha 2 language code, an ISO 639-2+ alpha 3 lanugage code, or an Ethnologue 3 letter language code.  SWORD includes a fairly comprehensive list of these available at: sword/locales.d/locales.conf.&lt;br /&gt;
This, and all entries are case sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
This section requires a &amp;quot;one-to-one&amp;quot; mapping for each string to be translated.&lt;br /&gt;
&lt;br /&gt;
The following entries are translation strings for anything you might want.  REQUIRED are the book names of the Bible, including deuterocanonical books if used. Other things might be option name, value, tip, translations, or any text returned from the engine.&lt;br /&gt;
&lt;br /&gt;
If you find any errors or omissions, please post a message that you found a constant string in the engine not being (properly) translated.&lt;br /&gt;
&lt;br /&gt;
 [Text]&lt;br /&gt;
 Genesis=1. Mose&lt;br /&gt;
 Exodus=2. Mose&lt;br /&gt;
 Leviticus=3. Mose&lt;br /&gt;
 &lt;br /&gt;
 # &amp;lt;snipped rest of book names&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observe that a full-stop is a permitted character in a book name.&lt;br /&gt;
&lt;br /&gt;
=== Book Abbrevs ===&lt;br /&gt;
This section permits a &amp;quot;many-to-one&amp;quot; mapping for each book, as required by the references used in the Bible translation or commentary, etc.&lt;br /&gt;
&lt;br /&gt;
 [Book Abbrevs]&lt;br /&gt;
 1 C=1Cor&lt;br /&gt;
 1 CHRONICLES=1Chr&lt;br /&gt;
 1 CORINTHIANS=1Cor&lt;br /&gt;
 1 JN=1Jn&lt;br /&gt;
&lt;br /&gt;
These are the abbreviations for each book and are REQUIRED for the&lt;br /&gt;
locale to work correctly in the engine.  They are actually more than&lt;br /&gt;
just abbreviations; they tell the parser how to incrementally parse&lt;br /&gt;
versekey text.  Notice that 1 Chronicles would come, alphabetically&lt;br /&gt;
before 1 Corinthians.  The above entries say: 1Cor (which is the OSIS book id for 1 Corinthians)&lt;br /&gt;
has precedence up through &amp;quot;1 C&amp;quot;, any character beyond that will&lt;br /&gt;
disambiguate the entry anyway, so the default 1 CHRONICLES or 1&lt;br /&gt;
CORINTHIANS entries would take over from there. &lt;br /&gt;
&lt;br /&gt;
English abbreviations are no longer required to &lt;br /&gt;
be in the abbreviations section as they are in there by default; &lt;br /&gt;
in the example above they are in there for demonstration purposes.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT''':&lt;br /&gt;
&lt;br /&gt;
There MUST be at least 1 abbreviation entry for each book name&lt;br /&gt;
comprised of a toupper (uppercase function) of the entire string&lt;br /&gt;
EXACTLY as you have translated it in the [Text] section.&lt;br /&gt;
&lt;br /&gt;
Following are the REQUIRED entries from our excerpt book names above.&lt;br /&gt;
 1. MOSE=Gen&lt;br /&gt;
 2. MOSE=Ex&lt;br /&gt;
 3. MOSE=Lev&lt;br /&gt;
&lt;br /&gt;
That's it for requirements.  Tuning your locale can be important for the &lt;br /&gt;
user experience.  Many [Book Abbrevs] entries may be added to assign &lt;br /&gt;
precedence if, for example, you find you are getting taken to the wrong &lt;br /&gt;
entries from text like: &amp;quot;Ma 1:1&amp;quot; (would be Malachi by default because of &lt;br /&gt;
alphabetical precedence, but might want Matthew or Mark). &lt;br /&gt;
In this case, you would put in an entry MA=Matt or MA=Mark&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pref Abbrevs ===&lt;br /&gt;
This section define a preferred abbreviation for each book.  These are typically used when SWORD is asked to display a very short verse reference or a short Bible book name.  The format for these entries is: osisID=Preferred Abbreviation, e.g.,&lt;br /&gt;
&lt;br /&gt;
 [Pref Abbrevs]&lt;br /&gt;
 Gen=1Mo&lt;br /&gt;
 Exod=2Mo&lt;br /&gt;
 Lev=3Mo&lt;br /&gt;
 Num=4Mo&lt;br /&gt;
 Deut=5Mo&lt;br /&gt;
 Josh=Jos&lt;br /&gt;
 Judg=Rich&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
You can test your locale with the sword/tests/parsekey test program (this &lt;br /&gt;
program is in the SWORD source along with several other programs that are &lt;br /&gt;
used to validate the configuration files) and try different strings to see &lt;br /&gt;
how they parse.&lt;br /&gt;
&lt;br /&gt;
A full-stop is a permitted character in a localized book abbreviation. Other punctuation characters commonly used in verse references are not allowed in localized book names. These include the hyphen '-' (used for verse ranges), the colon ':' (used to separate chapter and verse numbers), and the comma ',' (used for verse lists). Additionally, numerals in non-initial position are not permitted in book names (i.e. '3John' is valid but 'Psalm151' is not).&lt;br /&gt;
&lt;br /&gt;
== Submissions ==&lt;br /&gt;
If you create a new locale file as part of the process towards making a module, please submit it to CrossWire.&lt;br /&gt;
 &lt;br /&gt;
Submissions should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
== Maintained locale files ==&lt;br /&gt;
&lt;br /&gt;
On the CrossWire server, the locale files are stored in &amp;lt;tt&amp;gt;/space/home/ftp/pub/sword/raw/locales.d&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Users with FTP or SCP access are able to download them from that folder.&lt;br /&gt;
&lt;br /&gt;
Corrections to errors in locale files should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization|Locale Files]]&lt;br /&gt;
[[Category:SWORD]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16708</id>
		<title>DevTools:Locale Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Locale_Files&amp;diff=16708"/>
				<updated>2019-08-19T18:36:22Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Meta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A locale file is stored in the '''locales.d''' folder under the Sword path. &amp;lt;br&amp;gt;&lt;br /&gt;
The file name is generally the language code with extension .conf &amp;lt;br&amp;gt;&lt;br /&gt;
As Unicode text files, locale files should be encoded UTF-8 (without BOM) and the file name should include &amp;quot;-utf8&amp;quot; after the language code.&amp;lt;br&amp;gt;&lt;br /&gt;
Other encodings are deprecated. &lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
Locales require a few things.  Let's step through the German locale:&lt;br /&gt;
&lt;br /&gt;
excerpts from /sword/locales.d/de.conf:&lt;br /&gt;
&lt;br /&gt;
=== Meta ===&lt;br /&gt;
&lt;br /&gt;
 [Meta]&lt;br /&gt;
 Name=de&lt;br /&gt;
 Description=German&lt;br /&gt;
 Encoding=UTF-8&lt;br /&gt;
&lt;br /&gt;
The above information is used to define the locale.  They should be&lt;br /&gt;
fairly obvious.  Name should be, in preferred order, an ISO 639-1 alpha 2 language code, an ISO 639-2+ alpha 3 lanugage code, or an Ethnologue 3 letter language code.  SWORD includes a fairly comprehensive list of these available at: sword/locales.d/locales.conf.&lt;br /&gt;
This, and all entries are case sensitive.&lt;br /&gt;
&lt;br /&gt;
=== Text ===&lt;br /&gt;
This section requires a &amp;quot;one-to-one&amp;quot; mapping for each string to be translated.&lt;br /&gt;
&lt;br /&gt;
The following entries are translation strings for anything you might want.  REQUIRED are the book names of the Bible, including deuterocanonical books if used. Other things might be option name, value, tip, translations, or any text returned from the engine.&lt;br /&gt;
&lt;br /&gt;
If you find any errors or omissions, please post a message that you found a constant string in the engine not being (properly) translated.&lt;br /&gt;
&lt;br /&gt;
 [Text]&lt;br /&gt;
 Genesis=1. Mose&lt;br /&gt;
 Exodus=2. Mose&lt;br /&gt;
 Leviticus=3. Mose&lt;br /&gt;
 &lt;br /&gt;
 # &amp;lt;snipped rest of book names&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observe that a full-stop is a permitted character in a book name.&lt;br /&gt;
&lt;br /&gt;
=== Book Abbrevs ===&lt;br /&gt;
This section permits a &amp;quot;many-to-one&amp;quot; mapping for each book, as required by the references used in the Bible translation or commentary, etc.&lt;br /&gt;
&lt;br /&gt;
 [Book Abbrevs]&lt;br /&gt;
 1 C=1Cor&lt;br /&gt;
 1 CHRONICLES=1Chr&lt;br /&gt;
 1 CORINTHIANS=1Cor&lt;br /&gt;
 1 JN=1Jn&lt;br /&gt;
&lt;br /&gt;
These are the abbreviations for each book and are REQUIRED for the&lt;br /&gt;
locale to work correctly in the engine.  They are actually more than&lt;br /&gt;
just abbreviations; they tell the parser how to incrementally parse&lt;br /&gt;
versekey text.  Notice that 1 Chronicles would come, alphabetically&lt;br /&gt;
before 1 Corinthians.  The above entries say: 1Cor (which is the OSIS book id for 1 Corinthians)&lt;br /&gt;
has precedence up through &amp;quot;1 C&amp;quot;, any character beyond that will&lt;br /&gt;
disambiguate the entry anyway, so the default 1 CHRONICLES or 1&lt;br /&gt;
CORINTHIANS entries would take over from there. &lt;br /&gt;
&lt;br /&gt;
English abbreviations are no longer required to &lt;br /&gt;
be in the abbreviations section as they are in there by default; &lt;br /&gt;
in the example above they are in there for demonstration purposes.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT''':&lt;br /&gt;
&lt;br /&gt;
There MUST be at least 1 abbreviation entry for each book name&lt;br /&gt;
comprised of a toupper (uppercase function) of the entire string&lt;br /&gt;
EXACTLY as you have translated it in the [Text] section.&lt;br /&gt;
&lt;br /&gt;
Following are the REQUIRED entries from our excerpt book names above.&lt;br /&gt;
 1. MOSE=Gen&lt;br /&gt;
 2. MOSE=Ex&lt;br /&gt;
 3. MOSE=Lev&lt;br /&gt;
&lt;br /&gt;
That's it for requirements.  Tuning your locale can be important for the &lt;br /&gt;
user experience.  Many [Book Abbrevs] entries may be added to assign &lt;br /&gt;
precedence if, for example, you find you are getting taken to the wrong &lt;br /&gt;
entries from text like: &amp;quot;Ma 1:1&amp;quot; (would be Malachi by default because of &lt;br /&gt;
alphabetical precedence, but might want Matthew or Mark). &lt;br /&gt;
In this case, you would put in an entry MA=Matt or MA=Mark&lt;br /&gt;
&lt;br /&gt;
You can test your locale with the sword/tests/parsekey test program (this &lt;br /&gt;
program is in the SWORD source along with several other programs that are &lt;br /&gt;
used to validate the configuration files) and try different strings to see &lt;br /&gt;
how they parse.&lt;br /&gt;
&lt;br /&gt;
A full-stop is a permitted character in a localized book abbreviation. Other punctuation characters commonly used in verse references are not allowed in localized book names. These include the hyphen '-' (used for verse ranges), the colon ':' (used to separate chapter and verse numbers), and the comma ',' (used for verse lists). Additionally, numerals in non-initial position are not permitted in book names (i.e. '3John' is valid but 'Psalm151' is not).&lt;br /&gt;
&lt;br /&gt;
== Submissions ==&lt;br /&gt;
If you create a new locale file as part of the process towards making a module, please submit it to CrossWire.&lt;br /&gt;
 &lt;br /&gt;
Submissions should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
== Maintained locale files ==&lt;br /&gt;
&lt;br /&gt;
On the CrossWire server, the locale files are stored in &amp;lt;tt&amp;gt;/space/home/ftp/pub/sword/raw/locales.d&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Users with FTP or SCP access are able to download them from that folder.&lt;br /&gt;
&lt;br /&gt;
Corrections to errors in locale files should be sent to sword-support@crosswire.org&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization|Locale Files]]&lt;br /&gt;
[[Category:SWORD]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Tutorials:SWORD_102&amp;diff=16555</id>
		<title>Tutorials:SWORD 102</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Tutorials:SWORD_102&amp;diff=16555"/>
				<updated>2018-03-03T00:00:35Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== XML Basics ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XMLTag is a wonderful class for working with.... XML Tags!&lt;br /&gt;
&lt;br /&gt;
For example.  If you have the tag:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;verse osisID=&amp;quot;John.1.1&amp;quot; type='test type' yeah = &amp;quot;stuff&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can do handy things like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cout &amp;lt;&amp;lt; tag.getAttribute(&amp;quot;type&amp;quot;);&lt;br /&gt;
$ test type&lt;br /&gt;
&lt;br /&gt;
tag.setAttribute(&amp;quot;type&amp;quot;, &amp;quot;changedType&amp;quot;);&lt;br /&gt;
tag.setAttribute(&amp;quot;subtype&amp;quot;, &amp;quot;newSubtype&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
cout &amp;lt;&amp;lt; tag.getName();&lt;br /&gt;
$ verse&lt;br /&gt;
&lt;br /&gt;
cout &amp;lt;&amp;lt; tag.isEmpty();&lt;br /&gt;
$ true&lt;br /&gt;
&lt;br /&gt;
cout &amp;lt;&amp;lt; tag.isEndTag();&lt;br /&gt;
$ false&lt;br /&gt;
&lt;br /&gt;
cout &amp;lt;&amp;lt; XMLTag(&amp;quot;&amp;lt;/verse&amp;gt;&amp;quot;).isEndTag();&lt;br /&gt;
$ true&lt;br /&gt;
&lt;br /&gt;
cout &amp;lt;&amp;lt; tag.toString();&lt;br /&gt;
$ &amp;lt;verse osisID=&amp;quot;John.1.1&amp;quot; subtype=&amp;quot;newSubtype&amp;quot; type=&amp;quot;changedType&amp;quot;&lt;br /&gt;
yeah=&amp;quot;stuff&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XMLTag even helps you parse list attributes like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;reference osisRef=&amp;quot;John.3.16 John.3.22-25 Act.4.12&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;int count = tag.getAttributePartCount(&amp;quot;osisRef&amp;quot;, ' ');&lt;br /&gt;
for (int i = 0; i &amp;lt; count; ++i) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; tag.getAttribute(&amp;quot;osisRef&amp;quot;, i, ' ');&lt;br /&gt;
}&lt;br /&gt;
$ John.3.16&lt;br /&gt;
$ John.3.22-25&lt;br /&gt;
$ Acts.4.12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And it mostly figures things out for you, even when the XML isn't&lt;br /&gt;
exactly valid (which we quite often find in imported modules)&lt;br /&gt;
&lt;br /&gt;
For a wild and crazy show see the link below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://crosswire.org/svn/sword/trunk/tests/xmltest.cpp&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Frontends:Bishop&amp;diff=16554</id>
		<title>Frontends:Bishop</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Frontends:Bishop&amp;diff=16554"/>
				<updated>2018-03-02T23:36:52Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Bishop''' - Very small, very fast, very powerful programme for Android Mobile phones.&lt;br /&gt;
&lt;br /&gt;
Google Play Store: [https://play.google.com/store/apps/details?id=org.crosswire.bishop]&lt;br /&gt;
Direct Download: [http://crosswire.org/bishop.apk]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Official_and_Affiliated_Module_Repositories&amp;diff=15723</id>
		<title>Official and Affiliated Module Repositories</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Official_and_Affiliated_Module_Repositories&amp;diff=15723"/>
				<updated>2017-10-24T14:30:17Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Repository directory has to be specified for the Install Manager in [[Frontends:BibleCS|the SWORD Project for Windows]], which uses FTP access. Likewise for the other front-ends based on the SWORD API.&lt;br /&gt;
&lt;br /&gt;
The Catalog &amp;amp; ZIP directories have to be specified for the [[DevTools:JSword|JSword]] based installer (e.g. as used for [[Frontends:BibleDesktop|Bible Desktop]]), which uses HTTP access.&lt;br /&gt;
&lt;br /&gt;
The 'Site Name' field is just a convenient name for managing/selecting repositories. Users may edit these without any loss of functionality, as long as they ensure that each is uniquely and appropriately named.&lt;br /&gt;
&lt;br /&gt;
== CrossWire Bible Society ==&lt;br /&gt;
CrossWire maintains a '''Master Repositories List''' (filename: &amp;lt;tt&amp;gt;masterRepoList.conf&amp;lt;/tt&amp;gt;) which is accessed by most front-end applications. Some front-ends require a refresh operation to ensure that the latest edition of the '''MRL''' is installed.&lt;br /&gt;
&lt;br /&gt;
=== Released modules ===&lt;br /&gt;
Official module repository from CrossWire Bible Society. This repository now also hosts modules with [[Alternate Versification]]s.&lt;br /&gt;
  Site Name:              CrossWire Bible Society (main)&lt;br /&gt;
  Site Machine Name:      ftp.crosswire.org&lt;br /&gt;
  Repository Directory:   /pub/sword/raw/&lt;br /&gt;
&lt;br /&gt;
  Catalog Directory:      /ftpmirror/pub/sword/raw&lt;br /&gt;
  ZIP Directory:          /ftpmirror/pub/sword/packages/rawzip&lt;br /&gt;
&lt;br /&gt;
These modules can be downloaded directly via the link below, but using the module manager built into most front-end applications is vastly preferable&lt;br /&gt;
&lt;br /&gt;
* http://www.crosswire.org/sword/modules&lt;br /&gt;
&lt;br /&gt;
=== Module attic ===&lt;br /&gt;
Official module repository from CrossWire Bible Society for the previous version of released modules. Look here if you have updated to a new version of a module, discover that there are bugs or errors, and want to downgrade. This repository is not shown in PocketSword. It is not included in the Master Repositories List.&lt;br /&gt;
  Site Name:              CrossWire Bible Society Attic&lt;br /&gt;
  Site Machine Name:      ftp.crosswire.org&lt;br /&gt;
  Repository Directory:   /pub/sword/atticraw/&lt;br /&gt;
&lt;br /&gt;
=== Modules for beta testing ===&lt;br /&gt;
This is included in the Master Repositories List. Please test these modules and report your findings on [[Modules in the beta repository]]. Beta modules should be validated before being transferred to the main CrossWire repository.&lt;br /&gt;
  Site Name:              CrossWire beta&lt;br /&gt;
  Site Machine Name:      ftp.crosswire.org&lt;br /&gt;
  Repository Directory:   /pub/sword/betaraw&lt;br /&gt;
&lt;br /&gt;
  Catalog Directory:      /ftpmirror/pub/sword/betaraw&lt;br /&gt;
  ZIP Directory:          /ftpmirror/pub/sword/betapackages/rawzip&lt;br /&gt;
&lt;br /&gt;
These modules can be downloaded directly via the link below, but using the module manager built into most front-end applications is vastly preferable&lt;br /&gt;
&lt;br /&gt;
* http://www.crosswire.org/sword/modules/betaindex.jsp&lt;br /&gt;
&lt;br /&gt;
=== CrossWire Wycliffe ===&lt;br /&gt;
The 43 [[Modules:WBTI &amp;amp; BL Bibles|modules from WBTI &amp;amp; BL]] that were formerly kept in CrossWire Beta have been moved to a separate repository. This is included in the Master Repositories List.&lt;br /&gt;
  Site Name:              CrossWire Wycliffe&lt;br /&gt;
  Site Machine Name:      ftp.crosswire.org&lt;br /&gt;
  Repository Directory:   /pub/sword/wyclifferaw&lt;br /&gt;
'''Note:'''&lt;br /&gt;
# Many of these translations are now available online at [http://bibles.org/ Bible Search] hosted by the American Bible Society.&lt;br /&gt;
&lt;br /&gt;
=== Experimental modules ===&lt;br /&gt;
These [[Modules in the experimental repository|experimental modules]] are primarily intended for front-end developers. They require new features not supported by some front-end applications. This repository is not included in the Master Repositories List, neither is it displayed by PocketSword.  &lt;br /&gt;
  Site Name:              CrossWire experimental&lt;br /&gt;
  Site Machine Name:      ftp.crosswire.org&lt;br /&gt;
  Repository Directory:   /pub/sword/experimentalraw&lt;br /&gt;
&lt;br /&gt;
== Other Repositories ==&lt;br /&gt;
=== Other Bible agencies ===&lt;br /&gt;
Any ''bona fide'' Bible agency may set up and maintain their own modules repository. Providing the agency adheres to orthodox Christian doctrine (i.e. not a cult!), a request for such a repository to be added to the Master Repostories List will be seriously considered by CrossWire.&lt;br /&gt;
&lt;br /&gt;
=== NET Bible ===&lt;br /&gt;
Home of the New English Translation. This is included in the Master Repositories List.&lt;br /&gt;
  Site Name:              NET&lt;br /&gt;
  Site Machine Name:      ftp.bible.org&lt;br /&gt;
  Repository Directory:   /sword&lt;br /&gt;
&lt;br /&gt;
  Catalog Directory:      /sword/raw&lt;br /&gt;
  ZIP Directory:          /sword/packages/rawzip&lt;br /&gt;
&lt;br /&gt;
=== Xiphos ===&lt;br /&gt;
A number of random creations, including a fair number of dictionary, map and image modules:&lt;br /&gt;
Tischendorf8 Greek NT, Hodge's Systematic Theology, and others. Daily Devotionals include BibleCompanion, MCheyne, OneYearRead. This is included in the Master Repositories List.&lt;br /&gt;
  Site Name:              Xiphos&lt;br /&gt;
  Site Machine Name:      ftp.xiphos.org&lt;br /&gt;
  Repository Directory:   .&lt;br /&gt;
&lt;br /&gt;
  Catalog Directory:      /sword&lt;br /&gt;
  ZIP Directory:          /sword/zip&lt;br /&gt;
&lt;br /&gt;
=== Institute for Bible Translation ===&lt;br /&gt;
The [http://ibt.org.ru/en/pc.htm Institute for Bible Translation] has a SWORD repository. This is included in the Master Repositories List.&lt;br /&gt;
&lt;br /&gt;
  Site Name:              IBT&lt;br /&gt;
  Site Machine Name:      ftp.ibt.org.ru&lt;br /&gt;
  Repository Directory:   /pub/modsword/raw&lt;br /&gt;
&lt;br /&gt;
  Catalog Directory:      /ftpmirror/pub/modsword/raw&lt;br /&gt;
  ZIP Directory:          /ftpmirror/pub/modsword/rawzip&lt;br /&gt;
&lt;br /&gt;
The '''Institute for Bible Translation''' provides a number of Bible translations in various languages of Central Asia and the CIS. Currently these include Adygei, Aghul, Avar, Buryat, Chuvash, Crimean Tatar, Gagauz (Latin &amp;amp; Cyrillic), Georgian, Karakalpak, Kazakh, Khakas, Kumyk, Kyrgyz (Arabic &amp;amp; Cyrillic), Ossetic, Tabasaran, Tajik (Gospels), Tatar, Turkmen (Latin &amp;amp; Cyrillic), Uzbek (Latin &amp;amp; Cyrillic). Alongside these translations are modules for English, Russian, Ukrainian and the original Bible languages (Hebrew &amp;amp; Greek). Further modules are in preparation. Several of the translations have linked dictionary modules.&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# The programmer has made his source code available under the name [https://github.com/JohnAustinDev/xulsword xulsword].&lt;br /&gt;
# With the advent of [[Alternate Versification]] in SWORD, the MK program is fully [https://github.com/JohnAustinDev/osis-converters/ compatible] with the SWORD API. All modules in the IBT repository are fully SWORD compatible, although their .conf files have some extra entries which apply only to xulsword, and their OSIS tags may have some subtype attributes which other SWORD front ends will ignore. &lt;br /&gt;
# The Original languages module combines the Hebrew OT and Greek NT into a single module.&lt;br /&gt;
# The Russian Synodal (1876) module has cross references and Strong's tags.&lt;br /&gt;
&lt;br /&gt;
=== eBible.org ===&lt;br /&gt;
This repository maintained by Michael Paul Johnson provides access to Bible modules in more than 600 languages. It has been added to the Master Repository List.&lt;br /&gt;
&lt;br /&gt;
FTP access:&lt;br /&gt;
  Site Name:              eBible.org&lt;br /&gt;
  Site Machine Name:      ftp.ebible.org&lt;br /&gt;
  Repository Directory:   /pub/sword&lt;br /&gt;
  Catalog Directory:      /pub/sword&lt;br /&gt;
  ZIP Directory:          /pub/sword/zip&lt;br /&gt;
&lt;br /&gt;
HTTP access:&lt;br /&gt;
  Site Name:              eBible.org&lt;br /&gt;
  Site Machine Name:      ebible.org&lt;br /&gt;
  Repository Directory:   /sword&lt;br /&gt;
  Catalog Directory:      /sword&lt;br /&gt;
  ZIP Directory:          /sword/zip&lt;br /&gt;
&lt;br /&gt;
=== Tyndale STEP ===&lt;br /&gt;
I put the following questions to our partners at STEP Development:&lt;br /&gt;
# Does STEP have its own modules repository?&lt;br /&gt;
# If so, can it be accessed by the module manager from other JSword or SWORD front-ends?&lt;br /&gt;
Here is their reply:&lt;br /&gt;
:Yes. When you &amp;quot;Install more Bibles&amp;quot; in &amp;quot;Help&amp;quot; of the Download version, you have access to two STEP repositories - '''Public''' and '''Licensed'''. Modules from the '''Public''' repository can be used in any '''JSword''' software. Unfortunately, not all publishers allow us to put their works in the '''Public''' one. There are not yet many modules in either.&lt;br /&gt;
::''I have begun to seek further details.'' [[User:David Haslam|David Haslam]] ([[User talk:David Haslam|talk]]) 09:04, 23 January 2017 (MST)&lt;br /&gt;
&lt;br /&gt;
==Other module sources==&lt;br /&gt;
&lt;br /&gt;
=== Bible Vietnam ===&lt;br /&gt;
[http://www.biblevietnam.org The UBS Vietnam page] has several Vietnamese-language modules, including the UBS version of the Viet module, which incorporates minor corrections to the 1926 text made in 1998 by the UBS along with headings and cross-references.&lt;br /&gt;
&lt;br /&gt;
=== Slovak ===&lt;br /&gt;
[http://www.kristus.sk/biblia/ kristus.sk] has the SSV translation available to download as a SWORD module called SvkPS. The published Catholic SSV translation contains deuterocanonical books, but this first module edition does not. One with [[Alternate Versification]] is in the pipeline.&lt;br /&gt;
&lt;br /&gt;
The same web-page also has Slovak &amp;amp; Czech Bibles for download in other electronic editions, including Go Bible.&lt;br /&gt;
&lt;br /&gt;
=== Gilak Media ===&lt;br /&gt;
[http://gilakmedia.com/en/software Windows Software for Gilaki Scripture] &amp;amp;ndash; this is a Farsi and Gilaki edition of the IBT MK Holy Bible software, with a xulsword module for the Gilaki Scriptures, currently the Gospel of John only, but with full audio. The Farsi Bible module is FarsiOPV version 1.0, adapted to suit xulsword. The Gilaki language is a Caspian language, and a member of the northwestern Iranian language branch, spoken in Iran's Gīlān Province.&lt;br /&gt;
&lt;br /&gt;
=== Paite e-Holy Bible ===&lt;br /&gt;
[http://en.wikipedia.org/wiki/Paite Paite] is spoken in parts of North East India, Burma &amp;amp; Bangladesh. The complete Paite e-Holy Bible version 3 (2009-10-15) is available from [http://zogam.com/documents/cat_view/954-bible-for-computer/915-paite-e-holy-bible Paite E-Holy Bible]. It is possible to display the Paite module in other SWORD front-end applications for Windows by copying the installed files to the SWORD path.&amp;lt;ref&amp;gt;Alternatively, without actually running the install setup, the EXE file may opened as an archive using (e.g.) [http://www.7-zip.org/ 7-Zip], and the PEH module may be extracted along with the file &amp;lt;tt&amp;gt;peh.conf&amp;lt;/tt&amp;gt;.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;Take care, as the setup file also included a copy of our KJV module (Version=2.3).&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;In Xiphos, the localized language name is displayed as '''Paite Chin'''.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''News update:''' 2014-01-19 &amp;amp;ndash; Yesterday I had a message from Hlunboi Guite asking if &amp;amp; how CrossWire might distribute the Paite Bible module. [[User:David Haslam|David Haslam]] 03:28, 19 January 2014 (MST)&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tedim  e-Holy Bible ===&lt;br /&gt;
There is a similar Bible application for the [http://en.wikipedia.org/wiki/Tedim Tedim Lai Siangtho] dialect, available from [http://zogam.com/documents/cat_view/954-bible-for-computer/955-tedim-e-holy-bible Tedim  e-Holy Bible]. The same observations apply.&lt;br /&gt;
&lt;br /&gt;
=== German ===&lt;br /&gt;
==== Volxbibel ====&lt;br /&gt;
[http://www.volxbibel.com/ Volxbibel] &amp;amp;ndash; A new German Bible translation in the language of the young generation. The  translation is under the [http://creativecommons.org/licenses/by-nc-sa/2.0/de/deed.en_GB Creative Commons] license, so non-commercial use and distribution is allowed. A SWORD module called VLX3 has been created by [http://www.heidoc.net/ Jan Krohn], who has also built Go Bible applications for Java mobile phones. ''Contact Jan Krohn for further details''.&lt;br /&gt;
&lt;br /&gt;
==== Offene Bibel ====&lt;br /&gt;
[http://www.offene-bibel.de/ Offene Bibel] is an independent new ecumenical CC German translation in two parts: a philological &amp;quot;study version&amp;quot; and a dynamic-equivalence &amp;quot;reading version&amp;quot; (see the [http://www.offene-bibel.de/wiki/index.php5?title=About_Offene_Bibel English About]). The translation is far from finished, but test SWORD modules with sample chapters have been created for both versions. They can be downloaded [http://www.offene-bibel.de/forum/sword_module here]. The creators will be happy to receive your feedback. Official modules are planned. &lt;br /&gt;
&lt;br /&gt;
=== Word Of God team (India) ===&lt;br /&gt;
The following modules are being made available by the [http://www.wordofgod.in/ Word of God] team in India, under the leadership of Yesudas Solomon.&lt;br /&gt;
* Hindi Bible&lt;br /&gt;
* Hmar Bible&lt;br /&gt;
* Kannada (KJV) Bible&lt;br /&gt;
* Kannada (BSI) NT&lt;br /&gt;
* Koya NT&lt;br /&gt;
* Malayalam Bible&lt;br /&gt;
* Tamil (Common) Bible&lt;br /&gt;
* Tamil (OV) Bible&lt;br /&gt;
* Telugu Bible&lt;br /&gt;
Registration and login is required to download these modules. Some of those listed here are still underway. Other languages expected to follow.&lt;br /&gt;
&lt;br /&gt;
Currently there are &amp;quot;easy to install&amp;quot; downloads for these Windows front-ends:&lt;br /&gt;
* [http://wordofgod.in/Downloads/FreeBibleSoftwares/SwordBibleSoftware.aspx SwordBible]&lt;br /&gt;
* [http://www.wordofgod.in/Downloads/FreeBibleSoftwares/BPBibleSoftware.aspx BPBible]&lt;br /&gt;
* [http://www.wordofgod.in/Downloads/FreeBibleSoftwares/TheSwordProject.aspx The Sword Project for Windows]&lt;br /&gt;
The latter also has the raw module format downloads. &lt;br /&gt;
&lt;br /&gt;
There are also Go Bible (mobile phone) versions, and modules for some non-CrossWire free Bible study applications.&lt;br /&gt;
&lt;br /&gt;
=== Nepal Bible Society ===&lt;br /&gt;
&lt;br /&gt;
[http://www.nepalbiblesociety.org.np/ NBS] has made both its translations available for use with a Nepali interfaced edition of [http://bpbible.com/ BPBible]. &lt;br /&gt;
&lt;br /&gt;
* Nepali New Revised Version&lt;br /&gt;
* Simple Nepali Holy Bible&lt;br /&gt;
&lt;br /&gt;
Their e-Bible modules are serial numbered and licensed for individual use. Request by email on [http://www.nepalbiblesociety.org.np/index.php?option=com_content&amp;amp;view=article&amp;amp;id=5&amp;amp;Itemid=2 this page].&lt;br /&gt;
&lt;br /&gt;
Both versions are also available as free [http://www.nepalbiblesociety.org.np/go-bible.html Go Bible] applications, with either English or Nepali UI.&lt;br /&gt;
&lt;br /&gt;
=== Thailand Bible Society ===&lt;br /&gt;
The Thailand Bible Society has ported The SWORD Project for Windows to make a localized Thai edition complete with several Thai Bible modules.&lt;br /&gt;
&lt;br /&gt;
Visit http://www.thaibible.or.th/crosswire/ (largely in Thai) for more information.&lt;br /&gt;
&lt;br /&gt;
It seems that you may have had to register and be signed in to download their software, but there is a module update in the form of a self-extracting EXE file, which contains some module files suitable for improved searching.  There is an illustrated manual available in PDF format (also in Thai). A friend of a friend wrote, &amp;quot;Now I can't actually find the Thai version of The SWORD Project for Windows ANYWHERE. I've seen people using it (several years ago now).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Latest news (2012-02-09): It would appear that Thailand Bible Society had ceased distributing their localized version of The SWORD Project for Windows, and have switched to promoting The Word instead. See [http://www.thaibible.or.th/]. They have other Bible software available too.&lt;br /&gt;
&lt;br /&gt;
=== An Bíobla Naofa ===&lt;br /&gt;
&lt;br /&gt;
[http://www.anbioblanaofa.org/en/crosswire ABN] module. The Gaeilge (Irish Gaelic) translation (1981) by Monsignor Pádraig Ó Fiannachta. Requires front-end support for [[Alternate Versification]] to display the Deuterocanonical books. This electronic version of the ABN has been adapted to follow the KJVA versification scheme, yet also displays the alternate ABN verse numbers in {braces}.&lt;br /&gt;
&lt;br /&gt;
=== Terjemahan Sederhana Indonesia ===&lt;br /&gt;
As described in [http://albata.info/?page_id=43 Yayasan Alkitab BahasaKita] the TSI Sword module (Terjemahan Sederhana Indonesia) can be downloaded as a compressed zip file from [https://sites.google.com/a/bahasakita.net/albatadotinfo/tsi-terjemahan-sederhana/program-lain-untuk-membaca-tsi/TSISwordModule.zip?attredirects=0&amp;amp;d=1 TSI Sword module]. This Plain Indonesian New Testament translation project was pioneered by Phil Fields. tsi.conf currently has Lang=UNKNOWN.&lt;br /&gt;
&lt;br /&gt;
=== Portuguese Almeida Corrigida Fiel 2007 ===&lt;br /&gt;
[http://www.biblias.com.br Sociedade Bíblica Trinitariana do Brasil (SBTB)] &amp;amp;ndash; Esta obra é distribuída gratuitamente através do [http://siriarah.wordpress.com/ blog] &lt;br /&gt;
:The '''ACF2007''' module is available on https://app.box.com/v/siriarah as biblias/ACF2007/ACF2007-sword.zip&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Creating and Maintaining a Module Repository]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
[[Category:Repositories]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=15659</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=15659"/>
				<updated>2017-06-14T19:36:52Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Copyright &amp;amp;amp; Licensing related elements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a .conf File=&lt;br /&gt;
== module.conf File Layout==&lt;br /&gt;
SWORD uses a Windows INI file for configuration information. Each module's configuration is held in a module.conf file. This file is used by the SWORD engine to process modules, by installers to help users install modules and by front-ends to render the module appropriately.&lt;br /&gt;
&lt;br /&gt;
Different [http://en.wikipedia.org/wiki/Newline End-of-Line] styles should be not be mixed in the same file.&lt;br /&gt;
&lt;br /&gt;
== Overview by Example ==&lt;br /&gt;
The module.conf file starts with an INI section, giving the ModName.&lt;br /&gt;
:[KJV]&lt;br /&gt;
&lt;br /&gt;
This is then followed by key=value pairs. While a Windows INI file allows : in addition to =, SWORD does not.&lt;br /&gt;
: # A line that starts with a # is a comment&lt;br /&gt;
: ; A line that begins with a ; is also a comment&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;# whitespace at the beginning of the line or end of the line is trimmed. This also is a comment.&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;DataPath=./modules/texts/ztext/kjv/&lt;br /&gt;
: # whitespace can be around the = as well.&lt;br /&gt;
: ModDrv&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;=&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;zText&lt;br /&gt;
: Encoding=UTF-8&lt;br /&gt;
: BlockType=BOOK&lt;br /&gt;
: CompressType=ZIP&lt;br /&gt;
: SourceType=OSIS&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
Some keys can be repeated with different values:&lt;br /&gt;
:GlobalOptionFilter=OSISStrongs&lt;br /&gt;
:GlobalOptionFilter=OSISMorph&lt;br /&gt;
:GlobalOptionFilter=OSISFootnotes&lt;br /&gt;
:GlobalOptionFilter=OSISHeadings&lt;br /&gt;
:GlobalOptionFilter=OSISRedLetterWords&lt;br /&gt;
&lt;br /&gt;
Some keys support [[DevTools:conf Files#Localization|localization]]:&lt;br /&gt;
Abbreviation=和合本&lt;br /&gt;
Abbreviation_en=ChiUn&lt;br /&gt;
Description=和合本 (繁體字)&lt;br /&gt;
Description_en=Chinese Union Version (Traditional)&lt;br /&gt;
&lt;br /&gt;
Some fields can have [[DevTools:conf Files#RTF|RTF]] in a single line:&lt;br /&gt;
:About=This is the King James Version of the Holy Bible (also known as the Authorized Version) with embedded Strong's Numbers.  The rights to the base text are held by the Crown of England.  The Strong's numbers in the OT were obtained from The Bible Foundation: http://www.bf.org. The NT Strong's data was obtained from The KJV2003 Project at CrossWire: http://www.crosswire.org.  These mechanisms provide a useful means for looking up the exact original language word in a lexicon that is keyed to Strong's numbers.\par\par Special thanks to the volunteers at Bible Foundation for keying the Hebrew/English data and of Project KJV2003 for working toward the completion of synchronizing the English phrases to the Stephanas Textus Receptus, and to Dr. Maurice Robinson for providing the base Greek text with Strong's and Morphology.  We are also appreciative of formatting markup that was provided by Michael Paul Johnson at http://www.ebible.org.  Their time and generosity to contribute such for the free use of the Body of Christ is a great blessing and this derivative work could not have been possible without these efforts of so many individuals.  It is in this spirit that we in turn offer the KJV2003 Project text freely for any purpose.  Any copyright that might be obtained for this effort is held by CrossWire Bible Society (c) 2003 and CrossWire Bible Society hereby grants a general public license to use this text for any purpose.\par Inquiries and comments may be directed to:\par\par         CrossWire Bible Society\par        kjv2003&amp;amp;#64;crosswire.org\par        http://www.crosswire.org&lt;br /&gt;
Some fields allow multiple lines using \ to escape the newline:&lt;br /&gt;
:About=This is the King James Version of the Holy Bible (also known as the Authorized Version) with embedded Strong's Numbers.  The rights to the base text are held by the Crown of England.  The Strong's numbers in the OT were obtained from The Bible Foundation: http://www.bf.org. The NT Strong's data was obtained from The KJV2003 Project at CrossWire: http://www.crosswire.org.  These mechanisms provide a useful means for looking up the exact original language word in a lexicon that is keyed to Strong's numbers. \&lt;br /&gt;
: \&lt;br /&gt;
:Special thanks to the volunteers at Bible Foundation for keying the Hebrew/English data and of Project KJV2003 for working toward the completion of synchronizing the English phrases to the Stephanas Textus Receptus, and to Dr. Maurice Robinson for providing the base Greek text with Strong's and Morphology.  We are also appreciative of formatting markup that was provided by Michael Paul Johnson at http://www.ebible.org.  Their time and generosity to contribute such for the free use of the Body of Christ is a great blessing and this derivative work could not have been possible without these efforts of so many individuals.  It is in this spirit that we in turn offer the KJV2003 Project text freely for any purpose.  Any copyright that might be obtained for this effort is held by CrossWire Bible Society (c) 2003 and CrossWire Bible Society hereby grants a general public license to use this text for any purpose. \&lt;br /&gt;
: Inquiries and comments may be directed to: \&lt;br /&gt;
: \&lt;br /&gt;
:CrossWire Bible Society \&lt;br /&gt;
:kjv2003&amp;amp;#64;crosswire.org \&lt;br /&gt;
:http://www.crosswire.org&lt;br /&gt;
&lt;br /&gt;
=== Common mistakes ===&lt;br /&gt;
Using Latin-1 or CP1252 when:&lt;br /&gt;
: Encoding=UTF-8&lt;br /&gt;
&lt;br /&gt;
Having a [http://en.wikipedia.org/wiki/Byte_order_mark Byte Order Mark (BOM)] at the beginning of the file&amp;lt;ref&amp;gt;Windows Notepad and Wordpad may silently add these to the file&amp;lt;/ref&amp;gt;&lt;br /&gt;
: U+FEFF&lt;br /&gt;
: [KJV]&lt;br /&gt;
&lt;br /&gt;
Repeating the same element with the same value:&lt;br /&gt;
: Lang=en&lt;br /&gt;
: ...&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
Repeating the same element with different values, when the element doesn't allow repeats:&lt;br /&gt;
: Lang=en&lt;br /&gt;
: Lang=de&lt;br /&gt;
&lt;br /&gt;
Not supplying a value:&lt;br /&gt;
: About=&lt;br /&gt;
Only the field CipherKey allows this.&lt;br /&gt;
&lt;br /&gt;
Having a continuation marker on the last line, causing the next key=value to be appended to the prior field.:&lt;br /&gt;
: this is text that continues from the prior line \&lt;br /&gt;
: Lang=en&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Continuation ===&lt;br /&gt;
A value can span multiple lines by escaping the return with '\'. This is not a mechanism to make long lines more readable in the module.conf file. It is a means to introducing a break in the rendered output of that field when viewed by a front-end or installer. It is akin to a xHTML &amp;amp;lt;br/&amp;amp;gt;. That is, continuation is a formatting feature.&lt;br /&gt;
&lt;br /&gt;
Most elements in a SWORD conf are expected to have short, one-line values. Elements that are expected to have multiple lines are noted.&lt;br /&gt;
&lt;br /&gt;
=== RTF ===&lt;br /&gt;
A module.conf supports a very small, restricted subset of RTF markup. Only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
The only uniqueness that RTF provides is centering. If centering is not needed, then use continuation lines instead of RTF.&lt;br /&gt;
&lt;br /&gt;
=== Localization ===&lt;br /&gt;
Those .conf fields that are essentially text intended for presentation to the end-user may be localized by appending _''locale'' to the field name, where ''locale'' is replaced by an appropriate locale code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang below for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh-Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh-Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
In order for a .conf entry to appear in a localized form, a non-localized form of the same field must also occur within the .conf. For example, in order for a ''Description_en'' field to appear, a file  must also possess a ''Description'' field. The locale of .conf entries without the locale modifier is the default and must reflect the locale/language of the module itself (as specified in Lang=) or English (if there are no localized versions of the field). In general, fields should be provided in the language of the module itself with English translations provided in parallel fields localized with _''en''. There is no explicit upper bound on the quantity of localized fields, but all localized and localizable fields should be unique.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
# At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no front-end support for it.&lt;br /&gt;
# See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
== Key elements of a SWORD module.conf ==&lt;br /&gt;
Below is a listing of the possible directives in that file.&lt;br /&gt;
&lt;br /&gt;
Some keys can be repeated. Don't repeat ones that can't. One or more of them will be ignored.&lt;br /&gt;
&lt;br /&gt;
Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Don't use continuation unless allowed. It will produce different results in different front ends.&lt;br /&gt;
&lt;br /&gt;
RTF is allowed in some values. Don't use it otherwise. It will produce different results in different front ends.&lt;br /&gt;
&lt;br /&gt;
Some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Values specifications are shown as '''&amp;amp;lt;content spec&amp;amp;gt;'''. The &amp;amp;lt; and &amp;amp;gt; are not to be included.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in '''bold'''. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
The order of elements specified in a conf file is immaterial, except where specified otherwise.&lt;br /&gt;
&lt;br /&gt;
Configuration elements not defined in this page are assumed to be ignored by most front-end applications.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [ModName]&lt;br /&gt;
| Each conf file begins with [ModName], replacing &amp;quot;ModName&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to [https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions PCRE] class &amp;lt;tt&amp;gt;[A-Za-z0-9_]&amp;lt;/tt&amp;gt;.&amp;lt;ref&amp;gt;That excludes the space and hyphen characters! An invalid ModName can cause some front-ends to crash.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The Abbreviation element is meant to allow for localization of this field.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&amp;lt;ref&amp;gt;We strongly advise to avoid using an Abbreviation that's identical to the ModName or Abbreviation of any other module. It only leads to confusion, and may have unexpected consequences for some front-ends.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This field allows for the localization of the ModName. It is meant to be short just like the ModName.&lt;br /&gt;
&lt;br /&gt;
''Actually, this element is not required, but it makes the most sense to describe it here.''&lt;br /&gt;
| [ModName]&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths used for a module named [MyModule], depending on&amp;lt;BR&amp;gt;(a) the type of module (Bible text, commentary, lexicon or dictionary&amp;lt;ref&amp;gt;Daily devotionals &amp;amp; glossaries go in subdirectories under lexdict. A glossary is between two languages.&amp;lt;/ref&amp;gt;, general book) and&amp;lt;BR&amp;gt;(b) the data driver (ModDrv parameter) are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
:./modules/texts/rawtext4/mymodule/&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
:./modules/texts/ztext4/mymodule/&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
:./modules/comments/zcom4/mymodule/&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
|&lt;br /&gt;
'''RawText''' (for uncompressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawText4''' (for uncompressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText''' (for compressed Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zText4''' (for compressed Bibles having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;text4&amp;quot;&amp;gt;e.g. If the Bible contains large introduction sections&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require MinimumVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom''' (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawCom4''' (for uncompressed Commentaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom''' (for compressed Commentaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zCom4''' (for compressed Commentaries having entries greater than 64K bytes)&amp;lt;ref name=&amp;quot;sv&amp;quot;&amp;gt;zText4 &amp;amp; zCom4 modules require SwordVersion=1.8 or later.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HREFCom''' (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawFiles''' (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD''' (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawLD4''' (for uncompressed Dictionaries having entries greater than 64K bytes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''zLD''' (for compressed Dictionaries)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RawGenBook''' (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Required Elements with defaults ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&amp;lt;ref&amp;gt;Omitting this for a non-plaintext module has unpredictable effects.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''Plaintext'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBF''' ([http://www.ebible.org/bible/gbf.htm General Bible Format])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThML''' ([http://www.ccel.org/ThML Theological Markup Language])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSIS''' ([http://www.bibletechnologies.net Open Scriptural Information Standard])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''TEI''' ([http://www.tei-c.org Text Encoding Initiative])&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the '''markup''' used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries. While SourceType has a default, it is a best practice to specify it.&amp;lt;br/&amp;gt;&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
|&lt;br /&gt;
'''Latin-1'''&amp;amp;dagger; ([http://en.wikipedia.org/wiki/Windows-1252 Windows Codepage 1252 (cp1252)])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF-8'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF-16'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SCSU''' ([http://en.wikipedia.org/wiki/Standard_Compression_Scheme_for_Unicode Standard Compression Scheme for Unicode])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates how the text in the conf and in the module are encoded.&lt;br /&gt;
&lt;br /&gt;
The preferred encoding of texts is UTF-8. Other than Hebrew, UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Biblical Hebrew requires special handling.&amp;lt;ref&amp;gt;Unicode normalization can easily break Biblical Hebrew text. See on page 9 in the [http://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf SBL Hebrew Font User Manual].&amp;lt;/ref&amp;gt; A few other languages may require special handling.&amp;lt;ref&amp;gt;e.g. If they are mentioned in Table 10 in the [http://unicode.org/reports/tr15/#Corrigendum_5_Sequences Corrigendum 5 Sequences].&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;The improper normalization of exceptional codepoints can be prevented by inserting a [https://en.wikipedia.org/wiki/Combining_Grapheme_Joiner Combining Grapheme Joiner].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To date, no modules use UTF-16 or SCSU.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;dagger;'''Warning: ''' ''&amp;quot;Latin-1&amp;quot; is an ambiguously used term. Latin-1 is regularly used as a synonym for [http://en.wikipedia.org/wiki/ISO_8859-1 ISO-8859-1]. Here it means Windows Codepage 1252, a superset of ISO-8859-1. Front-end implementors should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.''&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
|&lt;br /&gt;
'''ZIP'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LZSS''' ([http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski Lempel Ziv Storer Szymanski])&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BZIP2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''XZ'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText, zCom or zLD to indicate the compression algorithm.&lt;br /&gt;
While CompressType has a default, it is best practice to specify it.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
|&lt;br /&gt;
'''BOOK'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''CHAPTER'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VERSE'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zText (Bibles) and zCom (Commentaries) to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for modules having a ModDrv of zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller. It is best practice to take the default and not specify it.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&lt;br /&gt;
'''Catholic'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Catholic2'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''German'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''KJVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''LXX'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Leningrad'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Luther'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''MT'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSV'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NRSVA'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Orthodox'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Synodal'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''SynodalProt'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Vulg'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to specify the versification employed by a Bible module. Refer to [[Alternate Versification]].&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates that a module is enciphered and that the module is (un)locked. When the key has no value (&amp;quot;CipherKey=&amp;quot;) the module is locked. When it has a value, the module is unlocked.&lt;br /&gt;
&lt;br /&gt;
A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But it needs to be readable, plain text, without leading or trailing spaces.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
|&lt;br /&gt;
'''TreeKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''VerseKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bibles which do not conform to any supported versification system in SWORD. It is best practice to take the default and not specify it.&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CaseSensitiveKeys&lt;br /&gt;
|&lt;br /&gt;
Used for Dictionaries whose keys are case sensitive. This key is used to suppress normalization to UPPER CASE before comparison.&amp;lt;br/&amp;gt;&lt;br /&gt;
Only allowable value: '''true'''&lt;br /&gt;
| false&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
|&lt;br /&gt;
'''GBFStrongs''' (For GBF texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFFootnotes''' (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFMorph''' (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFHeadings''' (For GBF texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GBFRedLetterWords''' (For GBF texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLStrongs''' (For THML texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLFootnotes''' (For THML texts having footnotes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLScripref''' (For THML texts having cross references)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLMorph''' (For THML texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLHeadings''' (For THML texts having headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLVariants''' (For THML texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''ThMLLemma''' (For THML texts having lemmas)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8Cantillation''' (For Hebrew texts having cantillation marks)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Cantillation&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8GreekAccents''' (For Greek texts having accents)&amp;lt;ref&amp;gt;For detailed background, see https://en.wikipedia.org/wiki/Greek_diacritics&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;This filter can have undesirable side-effects when applied to non-Greek text!&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8HebrewPoints''' (For Hebrew texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Niqqud&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''UTF8ArabicPoints''' (For Arabic texts having vowel points)&amp;lt;ref&amp;gt;See https://en.wikipedia.org/wiki/Arabic_diacritics&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISLemma''' (For OSIS texts having lemmas)&amp;lt;ref&amp;gt;Must precede OSISStrongs.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorphSegmentation''' (For OSIS texts having morphological segmentation elements)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISStrongs''' (For OSIS texts having Strong's Numbers)&amp;lt;ref name=&amp;quot;strongs&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Strong%27s_Concordance#Strong.27s_numbers&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISFootnotes''' (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISScripref''' (For OSIS texts having [[OSIS Bibles#Marking_cross-references_note|cross reference]] type notes)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISMorph''' (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISHeadings''' (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISVariants''' (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISRedLetterWords''' (For OSIS texts marking the Words of Christ)&amp;lt;ref name=&amp;quot;red&amp;quot;&amp;gt;See https://en.wikipedia.org/wiki/Red_letter_edition&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISGlosses''' (For OSIS texts with glosses)&amp;lt;ref&amp;gt;Minimum SWORD version of 1.7.0 in the module .conf is required for OSISGlosses.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;s&amp;gt;'''OSISRuby''' (For OSIS texts with glosses)&amp;lt;/s&amp;gt;&amp;lt;ref&amp;gt;Deprecated in 1.7.0. Use OSISGlosses instead.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISXlit''' (For OSIS texts that include transliterated forms)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using xlit.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISEnum''' (For OSIS texts with enumerated words)&amp;lt;ref&amp;gt;The Samaritan Pentateuch module SP is an example of using enum.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''OSISReferenceLinks''' (For OSIS texts with glossary links)&amp;lt;ref&amp;gt;New in SWORD 1.7.0 - This filter requires six vertical bar-delimited fields, of which the following is an example.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GlobalOptionFilter=OSISReferenceLinks|Reference Material Links|Hide or show links to study helps in the Biblical text.|x-glossary||On&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here are the different field meanings:&lt;br /&gt;
# &amp;quot;OSISReferenceLinks&amp;quot; = option filter class name (option class name internal to the engine). Always the same for this kind of filter.&lt;br /&gt;
# &amp;quot;Reference Material Links&amp;quot; = Visible name of this OSISReferenceLinks filter. This is what the user will see in the Global Options toggle lists.&lt;br /&gt;
# &amp;quot;Hide or show...&amp;quot; = A readable user tip explaining what the filter does.&lt;br /&gt;
# &amp;quot;x-glossary&amp;quot; = Tells this OSISReferenceLinks filter to filter all references with type=&amp;quot;x-glossary&amp;quot;.&lt;br /&gt;
# (empty) = Tells this OSISReferenceLinks filter to also require that subType=&amp;quot;something&amp;quot; in order to filter. Empty means ALL type=&amp;quot;x-glossary&amp;quot; references will be filtered regardless of subType.&lt;br /&gt;
# &amp;quot;On&amp;quot; = Default filter toggle value (&amp;quot;On&amp;quot; or &amp;quot;Off&amp;quot;)&lt;br /&gt;
&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;It is allowed to have multiple OSISReferenceLinks entries in a single conf file.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&amp;lt;ref&amp;gt;It's not implied that every front-end supports all of the listed option filters.&amp;lt;/ref&amp;gt;&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. crossreferences in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
|&lt;br /&gt;
'''LtoR''' (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''RtoL''' (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''BiDi''' (&amp;lt;u&amp;gt;Bidi&amp;lt;/u&amp;gt;rectional)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script.&amp;lt;ref&amp;gt;JSword validates the direction property against the Lang of the module.&amp;lt;/ref&amp;gt; Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script. If the RtoL script is transliterated into a LtoR script, set the value to LtoR. If a module has both RtoL and LtoR text, then it is BiDi.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| '''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for General Book module types (these are keyed with a TreeKey table of contents).  Indicates the preferred level from a leaf in the tree to display for context. e.g., 1 will only show the requested entry; 2 will show the entry, surrounded by all siblings, etc.&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the [[Fonts|font]] to be used for display of the module if it is available.&amp;lt;ref&amp;gt;Specifying a font may not be sufficient for some modules. The required font features may depend on a particular smart font engine, which may not be compiled into the front-end application.&amp;lt;/ref&amp;gt; Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;del&amp;gt;OSISqToTick&amp;lt;/del&amp;gt; (deprecated)&amp;lt;ref&amp;gt;For further details, refer to [http://www.crosswire.org/bugs/browse/MOD-188 MOD-188] in CrossWire bugs.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| This attribute is deprecated in favor of the marker attribute on the q element. E.g.: &amp;lt;pre&amp;gt;&amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;....&amp;lt;/q&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;true/false&amp;lt;/del&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&amp;lt;/del&amp;gt; &lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
|&lt;br /&gt;
'''StrongsNumbers''' (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekDef''' (for dictionary modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewDef''' (for dictionary modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''GreekParse''' (for modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''HebrewParse''' (for modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''DailyDevotion''' (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossary''' (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that contain images of any type)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''NoParagraphs''' (for modules without any paragraphing information, which are typically typeset with a verse per line&amp;lt;ref&amp;gt;This feature is intended to be informational to front-end developers. Ideally, front-ends will render these modules with a verse per line rather than as a single big chapter-length paragraph block.&amp;lt;/ref&amp;gt;)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| '''&amp;amp;lt;lang identifier&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| PreferredCSSXHTML&lt;br /&gt;
| '''&amp;amp;lt;filename&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Names a file in the module's DataPath that should be referenced for the renderer as CSS display controls.&lt;br /&gt;
Generality is advised: Use controls that are not specific to any particular rendering engine, e.g. WebKit.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optional elements to support particular features ===&lt;br /&gt;
==== CaseInsensitiveKeys ====&lt;br /&gt;
Intended for use with Lexicon/Dictionary &amp;amp; Glossary modules. This field will make the order of the keys based upon the mixed case keys, but the index is still sorted by byte order of those keys. There are some scripts that don’t have upper/lower case (e.g. Arabic) and some languages where a naïve toUpper() will result in the wrong character (e.g. Turkish/Azeri lowercase dotted i and capital dotted İ).&lt;br /&gt;
&lt;br /&gt;
 CaseInsensitiveKeys=true|false&lt;br /&gt;
&lt;br /&gt;
It is fine to use toUpper() for internal normalization, but having keys in all caps when showing to a user is annoying. The problem is that the display order needs to follow something that makes sense to a user when the dictionary is presented as a list.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/JohnAustinDev/xulsword xulsword] has a different solution involving a configuration item not yet used by SWORD master.&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcDdEe... &lt;br /&gt;
&lt;br /&gt;
This is used by xulsword to sort the keys of a dictionary/glossary in original alphabetical order. Here's an actual example for module TKLDICT which has Lang=tk-Latn (i.e. Türkmençe):&lt;br /&gt;
&lt;br /&gt;
 LangSortOrder=AaBbCcÇçDdEeÄäŻżFfGgHhIiJjKkLlMmNnŇňOoÖöPpQqRrSsŞşTtUuÜüVvWwXxYyÝýZzŽž&lt;br /&gt;
&lt;br /&gt;
This method would need to be modified in order to support alphabets (such as [http://en.wikipedia.org/wiki/Welsh_orthography Welsh]) that include any [http://en.wikipedia.org/wiki/Digraph_%28orthography%29 digraphs].&lt;br /&gt;
&lt;br /&gt;
==== StrongsPadding ====&lt;br /&gt;
At the heart of our lexicon/dictionary drivers, we have some old logic which tries to detect if a key value is a Strong's number, and if so, then pad it with leading zeros accordingly. To support this logic, the recognition has recently been added for an optional new .conf entry for lexicon/dictionary modules:&lt;br /&gt;
&lt;br /&gt;
 StrongsPadding=true|false&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
# So as not to break everything, this currently defaults to true if it is not present in the lexdict module's .conf file&lt;br /&gt;
# It can be set to false if you are building a lexdict module which has entries which may be misconstrued as Strong's numbers.&lt;br /&gt;
# In a couple years, we'll probably switch the default to false, so it would be nice to add this line and set the value to true on modules which really do require the logic.&lt;br /&gt;
# This is only available in SWORD version 1.7 or later. JSword never had this problem.&lt;br /&gt;
&lt;br /&gt;
==== Strip Filters ====&lt;br /&gt;
SWORD has the concept of &amp;quot;filtering&amp;quot; a module's text at different processing points for purposes other than rendering.&amp;lt;br&amp;gt;One of these filter-points is for searching and we call these filters '''Strip Filters'''.&lt;br /&gt;
&lt;br /&gt;
Strip Filters are typically named something like '''OSISPlain''' or '''GBFPlain''', etc.  These typically take all the markup out of an entry and prepare the text to be searched, but anything can be done to the text to prepare it further for searching.  We typically remove accents and vowel points from Greek and Hebrew respectively.&lt;br /&gt;
&lt;br /&gt;
Any Strip Filter can be added to a module by the module author with a line in the .conf file, such as:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=GBFPlain&lt;br /&gt;
&lt;br /&gt;
If diacritics need to be removed from Arabic, then we can certainly add a filter for this as well. The conf line would be:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=UTF8ArabicPoints&lt;br /&gt;
&lt;br /&gt;
Our current list of filters can be found by browsing the source folder here:&lt;br /&gt;
&lt;br /&gt;
http://crosswire.org/svn/sword/trunk/src/modules/filters/&lt;br /&gt;
&lt;br /&gt;
They're pretty concise and don't involve much knowledge from the rest of the engine, making them easy to write if we need a new one.&lt;br /&gt;
&lt;br /&gt;
This processing can replace or be complimentary to any processing done by clucene. Here's an example of what's used with the [http://papyri.info/docs/ddbdp Duke Databank of Papyri] with specialist software that's based on SWORD.&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=PapyriPlain&lt;br /&gt;
&lt;br /&gt;
Since we need to strip markup, and other things clucene will likely never support (see '''PapyriPlain''' &amp;amp;ndash; annotations like [,],?{,}, underdot) we need this preprocessing mechanism to prepare the text before searching.  We also maintain searching functionality apart from &amp;quot;fast indexed searching&amp;quot;.&amp;lt;ref&amp;gt;Currently supplied by clucene, but could be implemented by any other fast search framework that we might want to integrate in future.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#RTF|RTF]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy-mm-dd&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Calendar_dates ISO 8601 Date])&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a.&lt;br /&gt;
&lt;br /&gt;
CrossWire's standard practice is to indicate updates that only require a .conf-file update/download by incrementing the third most significant number (the revision number). For example, if module version 1.2 requires a .conf-file update. A new .conf file with version number 1.2.1 could be released.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| '''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
x.x is taken from the Version value.&lt;br /&gt;
&lt;br /&gt;
Indicates what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
&lt;br /&gt;
It is recommended that each explanation be suffixed by the corresponding SwordVersionDate value.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&amp;lt;ref&amp;gt;See http://tracker.crosswire.org/browse/API-201&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the [[Sword library versions | minimum version]] of the SWORD library required for this module.&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
|valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Biblical Texts''' (for Bibles)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Commentaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Lexicons / Dictionaries'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Glossaries''' (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Daily Devotional''' (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Generic Books''' (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Maps''' (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Images''' (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Cults / Unorthodox / Questionable Material'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Essays''' (for essays)&amp;lt;ref&amp;gt;'''Essays''' is handled as a subset of '''Generic Books'''.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Biblical Texts&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawText4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zText4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=HRefCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawCom4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawFiles'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zCom4''&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=Glossary'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Daily Devotional&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''Feature=DailyDevotion'' and&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawLD4'' or&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=zLD''&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;''ModDrv=RawGenBook''&amp;lt;br/&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| '''&amp;amp;lt;tree/string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;Language[-Script]?[-Region]?&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The language identifier is a combination of sub-tags for '''Language''' and optionally '''Script''', and/or '''Region''', according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47] and [http://tools.ietf.org/html/rfc4647 RFC 4647]. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
&lt;br /&gt;
'''Language sub-tag''' ''(Regex: /[a-z]{2,3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module according to [http://en.wikipedia.org/wiki/ISO_639 ISO 639 parts 1, 2, 3 and 5]. Some languages have several codes. Use the following to determine the best choice:&amp;lt;br/&amp;gt;&lt;br /&gt;
:When available use a 2-letter [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English).&lt;br /&gt;
:If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T] code ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar])  (e.g. ceb for Cebuano).&lt;br /&gt;
:Failing that, use a [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] code ([http://www-01.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages.&lt;br /&gt;
:Finally, use a [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] code ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macro languages.&lt;br /&gt;
The [http://www-01.sil.org/iso639-3/codes.asp ISO639-3 registrar] page gives up-to-date table on all of the above.&lt;br /&gt;
&lt;br /&gt;
'''Script sub-tag''' ''(Regex:  /[A-Z][a-z]{3}/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian).&lt;br /&gt;
&lt;br /&gt;
'''Region sub-tag''': ''(Regex: /[A-Z]{2}/)''&amp;lt;br/&amp;gt;&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English).&lt;br /&gt;
&lt;br /&gt;
'''Combinations'''''(Regex: /[a-z]{2,3}(-[A-Z][a-z]{3})?(-[A-Z]{2})?/)'':&amp;lt;br/&amp;gt;&lt;br /&gt;
Individual sub-tags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;integer&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates the total byte size of the module on disk, excluding the the size of any Lucene index files.&lt;br /&gt;
&lt;br /&gt;
For modules in the CrossWire repositories, this is automatically generated and overwritten if needed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element gives a former ModName that is made obsolete by this module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| OSISVersion&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;version string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the OSIS schema version employed in the OSIS source document. The current version is 2.1.1&lt;br /&gt;
&lt;br /&gt;
It is recommended that this be present for every OSIS module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
| Companion&amp;lt;ref&amp;gt;Many (xulsword compatible) modules in the [[Module Repositories#Institute_for_Bible_Translation|IBT Repository]] make use of this field. See also https://github.com/johnaustindev/osis-converters&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;ModName[, ModName]*&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies companion module(s) that should be opened together&amp;lt;br/&amp;gt;&lt;br /&gt;
e.g. When Bible and Commentary and/or Glossary modules are distributed together.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;yyyy&amp;amp;gt;''' ([http://en.wikipedia.org/wiki/ISO_8601#Years ISO 8601 Year])&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- id=&amp;quot;distlic&amp;quot;&lt;br /&gt;
| DistributionLicense&lt;br /&gt;
|&lt;br /&gt;
'''Public Domain'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission to distribute granted to CrossWire'''&amp;lt;ref&amp;gt;Modules in other repositories may have a different organization name instead of CrossWire.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Free non-commercial distribution'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Freely distributable'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Copyrighted; Permission granted to distribute non-commercially in SWORD format'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/fdl.html GFDL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''[http://www.gnu.org/copyleft/gpl.html GPL]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/licenses/by by]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Creative Commons: [http://creativecommons.org/publicdomain/zero/1.0/ CC0]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last six licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&amp;lt;br/&amp;gt;[[DevTools:conf Files#Localization|Localization]]&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| [[DevTools:conf Files#Continuation|Continuation]]&lt;br /&gt;
|- &lt;br /&gt;
| UnlockURL&lt;br /&gt;
|&lt;br /&gt;
'''&amp;amp;lt;string&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the URL (a bare URL, not a HTML &amp;amp;lt;a&amp;amp;gt; link) of a web page for unlocking instructions/payment&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| URL&lt;br /&gt;
|}&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uniqueness ==&lt;br /&gt;
For comparing two versions of a module during module development, the module names and locations must be unique. For JSword based front-ends such as Bible Desktop, there is a further requirement, the Description items must be different.&lt;br /&gt;
&lt;br /&gt;
== Analysis Tools ==&lt;br /&gt;
* [[User:Dmsmith|DMSmith]] has created a script to analyse conf files and report anomalies.&lt;br /&gt;
* [[User:David Haslam|David Haslam]] has created a '''User Defined Language''' called '''CONF''' as a Syntax Highlighter for '''Notepad++''' (Windows). Download from [https://github.com/DavidHaslam/CONF].&lt;br /&gt;
&lt;br /&gt;
== Automated generation ==&lt;br /&gt;
* For new module submissions to CrossWire, [[User:Refdoc|Refdoc]] now maintains a script that includes the ''automated generation'' of module conf files, given the minimum ''non-automatable'' requirements by the module submitter.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Versification|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=12312</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=12312"/>
				<updated>2013-01-06T16:14:10Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a .conf File=&lt;br /&gt;
==.conf File Layout==&lt;br /&gt;
The conf file tells the SWORD engine how to treat installed module files, etc. which kind of markup they contain, and so forth.&lt;br /&gt;
&lt;br /&gt;
Below is a listing of the possible directives in that file. Each of these directives of the form key=value. Some keys can be repeated. Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Some values allow RTF and some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Note on RTF, only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in '''bold'''. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
The order of elements specified in a conf file is immaterial, except where specified otherwise.&lt;br /&gt;
&lt;br /&gt;
Configuration elements not defined in this page are assumed to be ignored by most front-end applications.&lt;br /&gt;
&lt;br /&gt;
''Any line that starts with a semicolon should be ignored by front-end applications, and treated as a remark or comment line''.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [name]&lt;br /&gt;
| Each conf file begins with [name], replacing &amp;quot;name&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to A-Z, a-z, 0-9 and _.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths for a module named [mymodule], depending on the type of module (Bible text, commentary, lexcon or dictionary, general book) and the data driver used are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&amp;lt;ref&amp;gt;If a continuation line is really needed, some front-ends may support the HTML break element &amp;amp;lt;BR&amp;amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
| &amp;lt;b&amp;gt;RawText&amp;lt;/b&amp;gt; (for uncompressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zText&amp;lt;/b&amp;gt; (for compressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom&amp;lt;/b&amp;gt; (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom4&amp;lt;/b&amp;gt; (for uncompressed Commentaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zCom&amp;lt;/b&amp;gt; (for compressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HREFCom&amp;lt;/b&amp;gt; (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawFiles&amp;lt;/b&amp;gt; (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD&amp;lt;/b&amp;gt; (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD4&amp;lt;/b&amp;gt; (for uncompressed Dictionaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zLD&amp;lt;/b&amp;gt; (for compressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawGenBook&amp;lt;/b&amp;gt; (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
===Elements to indicate features ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
| &amp;lt;b&amp;gt;ZIP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski LZSS]&amp;lt;/b&amp;gt;&lt;br /&gt;
Used to indicate how a compressed module (zText, zCom, zLD) is compressed.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
| &amp;lt;b&amp;gt;BOOK&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;CHAPTER&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VERSE&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zText and zCom to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
| &amp;lt;b&amp;gt;TreeKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VerseKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bibles which do not conform to any supported versification system in SWORD.  See below.&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the unlock key for enciphered modules. A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But this file needs it to be readable, plain text, without leading or trailing spaces. Leave a blank line (&amp;quot;CipherKey=&amp;quot;) to indicate that the module is enciphered but has no unlock key. (Omit for unlocked modules.)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&amp;lt;ref&amp;gt; Used to specify the versification employed by a Bible module. Refer to [[Alternate Versification]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&amp;lt;b&amp;gt;Catholic&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Catholic2&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;German&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Leningrad&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Luther&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MT&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Synodal&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;SynodalP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Vulg&amp;lt;/b&amp;gt;&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;del&amp;gt;Scope&amp;lt;/del&amp;gt; (proposed)&lt;br /&gt;
| &amp;amp;lt;osisRef&amp;amp;gt;&amp;lt;ref&amp;gt;Use OSIS Book names. Book, chapter and verse are separated by '.', dot. Ranges are with respect to the order of books in the v11n. Both ends of a range must be fully specified. Ranges are separated by spaces. While order in an osisRef is undefined, they should be ordered here.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;Indicates that the versification is limited to subset of its books, chapters and/or verses.&lt;br /&gt;
&lt;br /&gt;
When there are only a few verses different within a chapter, it may be permissible to include them. But where there are many, do so.&lt;br /&gt;
&lt;br /&gt;
Examples:&amp;lt;br&amp;gt;To leave out deuterocanonical material from Synodal use the following:&amp;lt;br/&amp;gt;Gen-Josh.4.33 Judg-2Chr Ezra Neh Esth-Ps.150 Prov.0&amp;lt;ref&amp;gt;When used in a verse range, the start of a book is chapter 0, the introduction. If the book has no introduction then Prov.1 is fine.&amp;lt;/ref&amp;gt;-Prov.4.27 Prov.5-Prov.13.25 Prov.14-Prov.18.24 Prov.19-Song Isa-Lam Ezek-Dan.3.33 Dan.4-Dan.12 Hos-Mal Matt-Rev&lt;br /&gt;
&lt;br /&gt;
To note that a module only contains the NT, the following would be appropriate for many v11n:&amp;lt;br&amp;gt;Matt-Rev&amp;lt;ref&amp;gt;At the moment, there is no way to specify the inclusion of module or testament introductions. JSword (in development) is using Intro.Bible, Intro.OT and Intro.NT.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
| &amp;lt;b&amp;gt;GBFStrongs&amp;lt;/b&amp;gt; (For GBF texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFFootnotes&amp;lt;/b&amp;gt; (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFMorph&amp;lt;/b&amp;gt; (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFHeadings&amp;lt;/b&amp;gt; (For GBF texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFRedLetterWords&amp;lt;/b&amp;gt; (For GBF texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLStrongs&amp;lt;/b&amp;gt; (For THML texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLFootnotes&amp;lt;/b&amp;gt; (For THML texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLScripref&amp;lt;/b&amp;gt; (For THML texts having cross references)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLMorph&amp;lt;/b&amp;gt; (For THML texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLHeadings&amp;lt;/b&amp;gt; (For THML texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLVariants&amp;lt;/b&amp;gt; (For THML texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLLemma&amp;lt;/b&amp;gt; (For THML texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8Cantillation&amp;lt;/b&amp;gt; (For Hebrew texts having cantillation marks)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8GreekAccents&amp;lt;/b&amp;gt; (For Greek texts having accents)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8HebrewPoints&amp;lt;/b&amp;gt; (For Hebrew texts having vowel points)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISStrongs&amp;lt;/b&amp;gt; (For OSIS texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISFootnotes&amp;lt;/b&amp;gt; (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISScripref&amp;lt;/b&amp;gt; (For OSIS texts having cross reference type notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISMorph&amp;lt;/b&amp;gt; (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISHeadings&amp;lt;/b&amp;gt; (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISVariants&amp;lt;/b&amp;gt; (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRedLetterWords&amp;lt;/b&amp;gt; (For OSIS texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISLemma&amp;lt;/b&amp;gt; (For OSIS texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRuby&amp;lt;/b&amp;gt; (For OSIS texts with glosses)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISXlit&amp;lt;/b&amp;gt; (For OSIS texts that include transliterated forms)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISEnum&amp;lt;/b&amp;gt; (For OSIS texts with enumerated words)&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. crossreferences in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
| &amp;lt;b&amp;gt;LtoR&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RtoL&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script. Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script (technically [http://en.wikipedia.org/wiki/Bi-directional_text bi-directional]). If the RtoL script is transliterated into a LtoR script, set the value to LtoR.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&lt;br /&gt;
| &amp;lt;b&amp;gt;Plaintext&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBF&amp;lt;/b&amp;gt; General Bible Format: http://www.ebible.org/bible/gbf.htm&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThML&amp;lt;/b&amp;gt; Theological Markup Language: http://www.ccel.org/ThML&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSIS&amp;lt;/b&amp;gt; Open Scriptural Information Standard: http://www.bibletechnologies.net&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;TEI&amp;lt;/b&amp;gt; Text Encoding Initiative: http://www.tei-c.org/&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the &amp;lt;b&amp;gt;markup&amp;lt;/b&amp;gt; used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries.&amp;lt;br/&amp;gt;&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
| &amp;lt;b&amp;gt;UTF-8&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Latin-1&amp;lt;/b&amp;gt; (cp1252; see the warning)&amp;lt;br/&amp;gt;&lt;br /&gt;
The preferred encoding of texts is UTF-8. UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Latin-1 is defined by [http://en.wikipedia.org/wiki/Windows-1252 Windows Codepage 1252 (cp1252)] which is a superset of ISO 8859-1.&lt;br /&gt;
This encoding indicates how the conf and the module are encoded.&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: &amp;quot;Latin-1&amp;quot; is an ambiguously used term. See [http://en.wikipedia.org/wiki/ISO_8859-1 ISO 8859-1 at Wikipedia] for technical details; in reality Latin-1 is regularly used as a synonym for ISO-8859-1. Front-end implementors should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.&amp;lt;/i&amp;gt;&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for General Book module types (these are keyed with a TreeKey table of contents).  Indicates the preferred level from a leaf in the tree to display for context. e.g., 1 will only show the requested entry; 2 will show the entry, surrounded by all siblings, etc.&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the font to be used for display of the module if it is available. Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;del&amp;gt;OSISqToTick&amp;lt;/del&amp;gt; (deprecated)&amp;lt;ref&amp;gt;For further details, refer to [http://www.crosswire.org/bugs/browse/MOD-188 MOD-188] in CrossWire bugs.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| This attribute is deprecated in favor of the marker attribute on the q element. E.g.: &amp;lt;pre&amp;gt;&amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;....&amp;lt;/q&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;true/false&amp;lt;/del&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&amp;lt;/del&amp;gt; &lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
| &amp;lt;b&amp;gt;StrongsNumbers&amp;lt;/b&amp;gt; (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekParse&amp;lt;/b&amp;gt; (for modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewParse&amp;lt;/b&amp;gt; (for modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;DailyDevotion&amp;lt;/b&amp;gt; (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossary&amp;lt;/b&amp;gt; (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that contain images of any type)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optional elements to support particular features ===&lt;br /&gt;
==== Strip Filters ====&lt;br /&gt;
SWORD has the concept of &amp;quot;filtering&amp;quot; a module's text at different processing points for purposes other than rendering.&amp;lt;br&amp;gt;One of these filter-points is for searching and we call these filters '''Strip Filters'''.&lt;br /&gt;
&lt;br /&gt;
Strip Filters are typically named something like '''OSISPlain''' or '''GBFPlain''', etc.  These typically take all the markup out of an entry and prepare the text to be searched, but anything can be done to the text to prepare it further for searching.  We typically remove accents and vowel points from Greek and Hebrew respectively.&lt;br /&gt;
&lt;br /&gt;
Any Strip Filter can be added to a module by the module author with a line in the .conf file, such as:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=GBFPlain&lt;br /&gt;
&lt;br /&gt;
If diacritics need to be removed from Arabic, then we can certainly add a filter for this as well. The conf line would be:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=UTF8ArabicPoints&lt;br /&gt;
&lt;br /&gt;
Our current list of filters can be found by browsing the source folder here:&lt;br /&gt;
&lt;br /&gt;
http://crosswire.org/svn/sword/trunk/src/modules/filters/&lt;br /&gt;
&lt;br /&gt;
They're pretty concise and don't involve much knowledge from the rest of the engine, making them easy to write if we need a new one.&lt;br /&gt;
&lt;br /&gt;
This processing can replace or be complimentary to any processing done by clucene. &lt;br /&gt;
&lt;br /&gt;
Since we need to strip markup, and other things clucene will likely never support (see '''PapyriPlain''' &amp;amp;ndash; annotations like [,],?{,}, underdot) we need this preprocessing mechanism to prepare the text before searching.  We also maintain searching functionality apart from &amp;quot;fast indexed searching&amp;quot;.&amp;lt;ref&amp;gt;Currently supplied by clucene, but could be implemented by any other fast search framework that we might want to integrate in future.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A shorter abbreviation which can be displayed instead of the full name. For example, KJV for the King James Version.&lt;br /&gt;
| The module name.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&amp;lt;br/&amp;gt;RTF&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a or 1.1.3.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to alert users to what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the minimum version of the SWORD library required for this module.&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
| &amp;lt;b&amp;gt;Daily Devotional&amp;lt;/b&amp;gt; (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossaries&amp;lt;/b&amp;gt; (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Cults / Unorthodox / Questionable Material&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Essays&amp;lt;/b&amp;gt; (for essays)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Maps&amp;lt;/b&amp;gt; (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Biblical Texts&amp;lt;/b&amp;gt; (for Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Commentaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Lexicons / Dictionaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Generic Books&amp;lt;/b&amp;gt; (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&lt;br /&gt;
| Biblical Texts (for /(Raw&amp;amp;#124;z)Text4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries (for /(Raw&amp;amp;#124;z&amp;amp;#124;HREF)Com4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries (for /(Raw&amp;amp;#124;z)LD4?/&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books (for RawGenBook)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| &amp;amp;lt;tree/string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module and should include a value according to BCP 47 (i.e. [http://tools.ietf.org/html/rfc4646 RFC 4646] &amp;amp; [http://tools.ietf.org/html/rfc4647 RFC 4647]). When available use a 2-letter code from [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1 codes] ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English). If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T code] (e.g. ceb for Cebuano) ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]). Failing that, use [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] ([http://www.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages, or [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macrolanguages. The regex for this subtag will be /[a-z]{2,3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian). The regex for this subtag will be /[A-Z][a-z]{3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English). The regex for this subtag will be /[A-Z]{2}/&lt;br /&gt;
&lt;br /&gt;
Individual subtags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&amp;lt;ref&amp;gt;This item in generated automatically within CrossWire by the script used to prepare modules for hosting in our repositories.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| &amp;amp;lt;integer (indicating bytes)&amp;amp;gt;&amp;lt;ref&amp;gt;Excludes the size of any Lucene index.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
| &amp;amp;lt;ISO date string (yyyy-mm-dd)&amp;amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
| &amp;amp;lt;name of module&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element names a module that is made obsolete by this module, usually indicated by the former name of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| OSISVersion&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;ref&amp;gt;e.g. OSISVersion=2.1.1&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the OSIS schema version employed in the OSIS source document.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
| &amp;amp;lt;integer (indicating year)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionLicense&lt;br /&gt;
| &amp;lt;span id=&amp;quot;DistributionLicense&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Public Domain&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission to distribute granted to CrossWire&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Free non-commercial distribution&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Freely distributable&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission granted to distribute non-commercially in SWORD format&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/fdl.html GFDL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/gpl.html GPL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by by]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/publicdomain/zero/1.0/ CC0]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last six licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
| &amp;amp;lt;string, probably a URL&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| UnlockURL&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the URL (a bare URL, not an HTML &amp;amp;lt;a&amp;amp;gt; link) of a web page for unlocking instructions/payment&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uniqueness ==&lt;br /&gt;
For comparing two versions of a module during module development, the module names and locations must be unique. For Bible Desktop, there is a further requirement, the Description items must be different.&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Those .conf fields that are essentially text intended for presentation to the end-user may be localized by appending _''locale'' to the field name, where ''locale'' is replaced by an appropriate locale code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang above for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh-Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh-Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
In order for a .conf entry to appear in a localized form, a non-localized form of the same field must also occur within the .conf. For example, in order for a ''Description_en'' field to appear, a file  must also possess a ''Description'' field. The locale of .conf entries without the locale modifier is the default and must reflect the locale/language of the module itself (as specified in Lang=) or English (if there are no localized versions of the field). In general, fields should be provided in the language of the module itself with English translations provided in parallel fields localized with _''en''. There is no explicit upper bound on the quantity of localized fields, but all localized and localizable fields should be unique.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
# At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no SWORD library or front-end support for it.&lt;br /&gt;
# See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Versification|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=12311</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=12311"/>
				<updated>2013-01-06T16:12:32Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a .conf File=&lt;br /&gt;
==.conf File Layout==&lt;br /&gt;
The conf file tells the SWORD engine how to treat installed module files, etc. which kind of markup they contain, and so forth.&lt;br /&gt;
&lt;br /&gt;
Below is a listing of the possible directives in that file. Each of these directives of the form key=value. Some keys can be repeated. Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Some values allow RTF and some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Note on RTF, only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in '''bold'''. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
The order of elements specified in a conf file is immaterial, except where specified otherwise.&lt;br /&gt;
&lt;br /&gt;
Configuration elements not defined in this page are assumed to be ignored by most front-end applications.&lt;br /&gt;
&lt;br /&gt;
''Any line that starts with a semicolon should be ignored by front-end applications, and treated as a remark or comment line''.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [name]&lt;br /&gt;
| Each conf file begins with [name], replacing &amp;quot;name&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to A-Z, a-z, 0-9 and _.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths for a module named [mymodule], depending on the type of module (Bible text, commentary, lexcon or dictionary, general book) and the data driver used are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&amp;lt;ref&amp;gt;If a continuation line is really needed, some front-ends may support the HTML break element &amp;amp;lt;BR&amp;amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
| &amp;lt;b&amp;gt;RawText&amp;lt;/b&amp;gt; (for uncompressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zText&amp;lt;/b&amp;gt; (for compressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom&amp;lt;/b&amp;gt; (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom4&amp;lt;/b&amp;gt; (for uncompressed Commentaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zCom&amp;lt;/b&amp;gt; (for compressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HREFCom&amp;lt;/b&amp;gt; (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawFiles&amp;lt;/b&amp;gt; (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD&amp;lt;/b&amp;gt; (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD4&amp;lt;/b&amp;gt; (for uncompressed Dictionaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zLD&amp;lt;/b&amp;gt; (for compressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawGenBook&amp;lt;/b&amp;gt; (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
===Elements to indicate features ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
| &amp;lt;b&amp;gt;ZIP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski LZSS]&amp;lt;/b&amp;gt;&lt;br /&gt;
Used to indicate how a compressed module (zText, zCom, zLD) is compressed.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
| &amp;lt;b&amp;gt;BOOK&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;CHAPTER&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VERSE&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zText and zCom to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
| &amp;lt;b&amp;gt;TreeKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VerseKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bibles which do not conform to any supported versification system in SWORD.  See below.&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the unlock key for enciphered modules. A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But this file needs it to be readable, plain text, without leading or trailing spaces. Leave a blank line (&amp;quot;CipherKey=&amp;quot;) to indicate that the module is enciphered but has no unlock key. (Omit for unlocked modules.)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&amp;lt;ref&amp;gt; Used to specify the versification employed by a Bible module. Refer to [[Alternate Versification]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&amp;lt;b&amp;gt;Catholic&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Catholic2&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;German&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Leningrad&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Luther&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MT&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Synodal&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;SynodalP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Vulg&amp;lt;/b&amp;gt;&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;del&amp;gt;Scope&amp;lt;/del&amp;gt; (proposed)&lt;br /&gt;
| &amp;amp;lt;osisRef&amp;amp;gt;&amp;lt;ref&amp;gt;Use OSIS Book names. Book, chapter and verse are separated by '.', dot. Ranges are with respect to the order of books in the v11n. Both ends of a range must be fully specified. Ranges are separated by spaces. While order in an osisRef is undefined, they should be ordered here.&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;Indicates that the versification is limited to subset of its books, chapters and/or verses.&lt;br /&gt;
&lt;br /&gt;
When there are only a few verses different within a chapter, it may be permissible to include them. But where there are many, do so.&lt;br /&gt;
&lt;br /&gt;
Examples:&amp;lt;br&amp;gt;To leave out deuterocanonical material from Synodal use the following:&amp;lt;br/&amp;gt;Gen-Josh.4.33 Judg-2Chr Ezra Neh Esth-Ps.150 Prov.0&amp;lt;ref&amp;gt;When used in a verse range, the start of a book is chapter 0, the introduction. If the book has no introduction then Prov.1 is fine.&amp;lt;/ref&amp;gt;-Prov.4.27 Prov.5-Prov.13.25 Prov.14-Prov.18.24 Prov.19-Song Isa-Lam Ezek-Dan.3.33 Dan.4-Dan.12 Hos-Mal Matt-Rev&lt;br /&gt;
&lt;br /&gt;
To note that a module only contains the NT, the following would be appropriate for many v11n:&amp;lt;br&amp;gt;Matt-Rev&amp;lt;ref&amp;gt;At the moment, there is no way to specify the inclusion of module or testament introductions. JSword (in development) is using Intro.Bible, Intro.OT and Intro.NT.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
| &amp;lt;b&amp;gt;GBFStrongs&amp;lt;/b&amp;gt; (For GBF texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFFootnotes&amp;lt;/b&amp;gt; (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFMorph&amp;lt;/b&amp;gt; (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFHeadings&amp;lt;/b&amp;gt; (For GBF texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFRedLetterWords&amp;lt;/b&amp;gt; (For GBF texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLStrongs&amp;lt;/b&amp;gt; (For THML texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLFootnotes&amp;lt;/b&amp;gt; (For THML texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLScripref&amp;lt;/b&amp;gt; (For THML texts having cross references)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLMorph&amp;lt;/b&amp;gt; (For THML texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLHeadings&amp;lt;/b&amp;gt; (For THML texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLVariants&amp;lt;/b&amp;gt; (For THML texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLLemma&amp;lt;/b&amp;gt; (For THML texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8Cantillation&amp;lt;/b&amp;gt; (For Hebrew texts having cantillation marks)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8GreekAccents&amp;lt;/b&amp;gt; (For Greek texts having accents)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8HebrewPoints&amp;lt;/b&amp;gt; (For Hebrew texts having vowel points)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISStrongs&amp;lt;/b&amp;gt; (For OSIS texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISFootnotes&amp;lt;/b&amp;gt; (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISScripref&amp;lt;/b&amp;gt; (For OSIS texts having cross reference type notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISMorph&amp;lt;/b&amp;gt; (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISHeadings&amp;lt;/b&amp;gt; (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISVariants&amp;lt;/b&amp;gt; (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRedLetterWords&amp;lt;/b&amp;gt; (For OSIS texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISLemma&amp;lt;/b&amp;gt; (For OSIS texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRuby&amp;lt;/b&amp;gt; (For OSIS texts with glosses)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISXlit&amp;lt;/b&amp;gt; (For OSIS texts that include transliterated forms)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISEnum&amp;lt;/b&amp;gt; (For OSIS texts with enumerated words)&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. crossreferences in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
| &amp;lt;b&amp;gt;LtoR&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RtoL&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script. Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script (technically [http://en.wikipedia.org/wiki/Bi-directional_text bi-directional]). If the RtoL script is transliterated into a LtoR script, set the value to LtoR.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&lt;br /&gt;
| &amp;lt;b&amp;gt;Plaintext&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBF&amp;lt;/b&amp;gt; General Bible Format: http://www.ebible.org/bible/gbf.htm&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThML&amp;lt;/b&amp;gt; Theological Markup Language: http://www.ccel.org/ThML&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSIS&amp;lt;/b&amp;gt; Open Scriptural Information Standard: http://www.bibletechnologies.net&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;TEI&amp;lt;/b&amp;gt; Text Encoding Initiative: http://www.tei-c.org/&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the &amp;lt;b&amp;gt;markup&amp;lt;/b&amp;gt; used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries.&amp;lt;br/&amp;gt;&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
| &amp;lt;b&amp;gt;UTF-8&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Latin-1&amp;lt;/b&amp;gt; (cp1252; see the warning)&amp;lt;br/&amp;gt;&lt;br /&gt;
The preferred encoding of texts is UTF-8. UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Latin-1 is defined by [http://en.wikipedia.org/wiki/Windows-1252 Windows Codepage 1252 (cp1252)] which is a superset of ISO 8859-1.&lt;br /&gt;
This encoding indicates how the conf and the module are encoded.&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: &amp;quot;Latin-1&amp;quot; is an ambiguously used term. See [http://en.wikipedia.org/wiki/ISO_8859-1 ISO 8859-1 at Wikipedia] for technical details; in reality Latin-1 is regularly used as a synonym for ISO-8859-1. Front-end implementors should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.&amp;lt;/i&amp;gt;&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for General Book module types (these are keyed with a TreeKey table of contents).  Indicates the preferred level from a leaf in the tree to display for context. e.g., 1 will only show the requested entry; 2 will show the entry, surrounded by all siblings, etc.&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the font to be used for display of the module if it is available. Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;del&amp;gt;OSISqToTick&amp;lt;/del&amp;gt; (deprecated)&amp;lt;ref&amp;gt;For further details, refer to [http://www.crosswire.org/bugs/browse/MOD-188 MOD-188] in CrossWire bugs.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| This attribute is deprecated in favor of the marker attribute on the q element. E.g.: &amp;lt;pre&amp;gt;&amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;....&amp;lt;/q&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;true/false&amp;lt;/del&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;del&amp;gt;When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&amp;lt;/del&amp;gt; &lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
| &amp;lt;b&amp;gt;StrongsNumbers&amp;lt;/b&amp;gt; (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekParse&amp;lt;/b&amp;gt; (for modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewParse&amp;lt;/b&amp;gt; (for modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;DailyDevotion&amp;lt;/b&amp;gt; (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossary&amp;lt;/b&amp;gt; (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that contain images of any type)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Optional elements to support particular features ===&lt;br /&gt;
==== Strip Filters ====&lt;br /&gt;
SWORD has the concept of &amp;quot;filtering&amp;quot; a module's text at different processing points for purposes other than rendering.&amp;lt;br&amp;gt;One of these filter-points is for searching and we call these filters '''Strip Filters'''.&lt;br /&gt;
&lt;br /&gt;
Strip Filters are typically named something like '''OSISPlain''' or '''GBFPlain''', etc.  These typically take all the markup out of an entry and prepare the text to be searched, but anything can be done to the text to prepare it further for searching.  We typically remove accents and vowel points from Greek and Hebrew respectively.&lt;br /&gt;
&lt;br /&gt;
Any Strip Filter can be added to a module by the module author with a line in the .conf file, such as:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=GBFPlain&lt;br /&gt;
&lt;br /&gt;
If diacritics need to be removed from Arabic, then we can certainly add a filter for this as well. The conf line would be:&lt;br /&gt;
&lt;br /&gt;
 LocalStripFilter=UTF8ArabicPoints&lt;br /&gt;
&lt;br /&gt;
Our current list of filters can be found by browsing the source folder here:&lt;br /&gt;
&lt;br /&gt;
http://crosswire.org/svn/sword/trunk/src/modules/filters/&lt;br /&gt;
&lt;br /&gt;
They're pretty concise and don't involve much knowledge from the rest of the engine, making them easy to write if we need a new one.&lt;br /&gt;
&lt;br /&gt;
This processing can replace or be complimentary to any processing done by clucene. &lt;br /&gt;
&lt;br /&gt;
Since we need to strip markup, and other things clucene will likely never support (see '''PapyriPlain''' &amp;amp;ndash; annotations like [,],?{,}, underdot) we need this preprocessing mechanism to prepare the text before searching.  We also maintain searching functionality apart from &amp;quot;fast indexed searching&amp;quot;.&amp;lt;ref&amp;gt;Currently supplied by clucene, but could be implemented by any other fast search framework that we might want to integrate in future.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A shorter abbreviation which can be displayed instead of the full name. For example, KJV for the King James Version.&lt;br /&gt;
| The module name.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&amp;lt;br/&amp;gt;RTF&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a or 1.1.3.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to alert users to what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the minimum version of the SWORD library required for this module.&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
| &amp;lt;b&amp;gt;Daily Devotional&amp;lt;/b&amp;gt; (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossaries&amp;lt;/b&amp;gt; (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Cults / Unorthodox / Questionable Material&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Essays&amp;lt;/b&amp;gt; (for essays)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Maps&amp;lt;/b&amp;gt; (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Biblical Texts&amp;lt;/b&amp;gt; (for Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Commentaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Lexicons / Dictionaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Generic Books&amp;lt;/b&amp;gt; (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&lt;br /&gt;
| Biblical Texts (for /(Raw&amp;amp;#124;z)Text4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries (for /(Raw&amp;amp;#124;z&amp;amp;#124;HREF)Com4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries (for /(Raw&amp;amp;#124;z)LD4?/&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books (for RawGenBook)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| &amp;amp;lt;tree/string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module and should include a value according to BCP 47 (i.e. [http://tools.ietf.org/html/rfc4646 RFC 4646] &amp;amp; [http://tools.ietf.org/html/rfc4647 RFC 4647]). When available use a 2-letter code from [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1 codes] ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English). If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T code] (e.g. ceb for Cebuano) ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]). Failing that, use [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] ([http://www.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages, or [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macrolanguages. The regex for this subtag will be /[a-z]{2,3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian). The regex for this subtag will be /[A-Z][a-z]{3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English). The regex for this subtag will be /[A-Z]{2}/&lt;br /&gt;
&lt;br /&gt;
Individual subtags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&amp;lt;ref&amp;gt;This item in generated automatically within CrossWire by the script used to prepare modules for hosting in our repositories.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| &amp;amp;lt;integer (indicating bytes)&amp;amp;gt;&amp;lt;ref&amp;gt;Excludes the size of any Lucene index.&amp;lt;/ref&amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
| &amp;amp;lt;ISO date string (yyyy-mm-dd)&amp;amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
| &amp;amp;lt;name of module&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element names a module that is made obsolete by this module, usually indicated by the former name of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| OSISVersion&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;ref&amp;gt;e.g. OSISVersion=2.1.1&amp;lt;/ref&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the OSIS schema version employed in the OSIS source document.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
| &amp;amp;lt;integer (indicating year)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;span id=&amp;quot;DistributionLicense&amp;quot;&amp;gt;DistributionLicense&amp;lt;/span&amp;gt;&lt;br /&gt;
| &amp;lt;b&amp;gt;Public Domain&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission to distribute granted to CrossWire&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Free non-commercial distribution&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Freely distributable&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission granted to distribute non-commercially in SWORD format&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/fdl.html GFDL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/gpl.html GPL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by by]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/publicdomain/zero/1.0/ CC0]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last six licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
| &amp;amp;lt;string, probably a URL&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| UnlockURL&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the URL (a bare URL, not an HTML &amp;amp;lt;a&amp;amp;gt; link) of a web page for unlocking instructions/payment&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Uniqueness ==&lt;br /&gt;
For comparing two versions of a module during module development, the module names and locations must be unique. For Bible Desktop, there is a further requirement, the Description items must be different.&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Those .conf fields that are essentially text intended for presentation to the end-user may be localized by appending _''locale'' to the field name, where ''locale'' is replaced by an appropriate locale code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang above for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh-Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh-Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
In order for a .conf entry to appear in a localized form, a non-localized form of the same field must also occur within the .conf. For example, in order for a ''Description_en'' field to appear, a file  must also possess a ''Description'' field. The locale of .conf entries without the locale modifier is the default and must reflect the locale/language of the module itself (as specified in Lang=) or English (if there are no localized versions of the field). In general, fields should be provided in the language of the module itself with English translations provided in parallel fields localized with _''en''. There is no explicit upper bound on the quantity of localized fields, but all localized and localizable fields should be unique.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
# At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no SWORD library or front-end support for it.&lt;br /&gt;
# See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;br /&gt;
[[Category:Versification|Conf files]]&lt;br /&gt;
[[Category:Copyright|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Code_Examples&amp;diff=11175</id>
		<title>DevTools:Code Examples</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Code_Examples&amp;diff=11175"/>
				<updated>2012-02-21T08:37:09Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
***********************************************************************&lt;br /&gt;
&lt;br /&gt;
IF OTHERS ARE GOING TO EDIT THIS PAGE TO INCLUDE OTHER EXAMPLES,&lt;br /&gt;
PLEASE TRY TO STICK TO THE FORMAT.&lt;br /&gt;
&lt;br /&gt;
***********************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[Category:Development tools]]&lt;br /&gt;
&lt;br /&gt;
This page was started to provoke developers who know how the SWORD API works to post simple, everyday code examples that anyone can use.&lt;br /&gt;
&lt;br /&gt;
Be sure to first see the age old, always up to date, ever growing, and very helpful [http://crosswire.org/svn/sword/trunk/examples/ examples/ folder] in the source code distribution.&lt;br /&gt;
The [http://crosswire.org/svn/sword/trunk/utilities/ /utilities/] and [http://crosswire.org/svn/sword/trunk/tests /tests/] folders are also very informative and provide concise code examples.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
&lt;br /&gt;
Be sure to first see the age old, always up to date, ever growing, and very helpful [http://crosswire.org/svn/sword/trunk/examples/ examples/ folder] in the source code distribution.&lt;br /&gt;
The [http://crosswire.org/svn/sword/trunk/utilities/ /utilities/] and [http://crosswire.org/svn/sword/trunk/tests /tests/] folders are also very informative and provide concise code examples.&lt;br /&gt;
&lt;br /&gt;
==== Get Modules Example(s) ====&lt;br /&gt;
The following example is for obtaining modules that are installed in the user's SWORD repository. The following function takes one parameter, the type of the modules you want to retrieve.  It is defaulted to retrieve only Bibles.&lt;br /&gt;
&lt;br /&gt;
===== Code =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;swmgr.h&amp;gt;&lt;br /&gt;
#include &amp;lt;swmodule.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace sword;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
vector&amp;lt;string&amp;gt; getModuleNames(const char *modType = SWMgr::MODTYPE_BIBLES) {&lt;br /&gt;
	vector &amp;lt;string&amp;gt; modules;&lt;br /&gt;
	SWMgr library;&lt;br /&gt;
	ModMap::iterator it;&lt;br /&gt;
		for (it = library.Modules.begin(); it != library.Modules.end(); ++it) {&lt;br /&gt;
		SWModule *module = (*it).second;&lt;br /&gt;
		if (!strcmp(module-&amp;gt;getType(), modType)) {&lt;br /&gt;
			modules.push_back(module-&amp;gt;getName());&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return modules;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====== Example Usage ======&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list&amp;lt;string&amp;gt; bibles = getModuleNames(SWMgr::MODTYPE_COMMENTARIES);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Modules contain features.  If looking for a feature of a module, one can query with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (module-&amp;gt;getConfig().has(&amp;quot;Feature&amp;quot;, &amp;quot;Images&amp;quot;)&lt;br /&gt;
	// do something ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Get Biblical Book Names Example(s) ====&lt;br /&gt;
This example isn't completely accurate nor is it desireable to point users to internal implementations which may change.  The [Text] section of a locales.d/ file is meant to include any i18n string, not just Bible book names-- though that's likely all we have in most (all?) localization files at the moment.  Other internal strings in the engine are meant to be localized there.  Better example to get Biblical Names using SWORD (as stated later):&lt;br /&gt;
&lt;br /&gt;
VerseKey vk;&lt;br /&gt;
while (!vk.Error()) {&lt;br /&gt;
	cout &amp;lt;&amp;lt; vk.getBookName();&lt;br /&gt;
	vk.setBook(vk.getBook()+1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obtaining a list of the canonical books of the Bible doesn't necessarily require any SWORD classes (though in the following example we'll be using [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig]). A default SWORD installation installs the file &amp;lt;tt&amp;gt;abbr.conf&amp;lt;/tt&amp;gt; at &amp;lt;tt&amp;gt;/usr/share/sword/locales.d&amp;lt;/tt&amp;gt; on a Unix-like system (on Windows it may be located at &amp;lt;tt&amp;gt;C:\Program Files\CrossWire\The SWORD Project\locales.d&amp;lt;/tt&amp;gt;). The syntax of the file is the same as any INI file. Therefore we just need to parse the file for the canonical books; so technically any configuration file parser that can parse INI files will do. The section we want to obtain from &amp;lt;tt&amp;gt;abbr.conf&amp;lt;/tt&amp;gt; is called &amp;lt;tt&amp;gt;Text&amp;lt;/tt&amp;gt;. (Again, the example uses a Qt4 class, [http://doc.trolltech.com/4.5/qstringlist.html QStringList].)&lt;br /&gt;
&lt;br /&gt;
===== Code #1 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;QStringList&amp;gt;&lt;br /&gt;
#include &amp;lt;swconfig.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QStringList getBiblicalBooks()&lt;br /&gt;
	{&lt;br /&gt;
		QStringList books;&lt;br /&gt;
		SWConfig config(&amp;quot;/usr/share/sword/locales.d/abbr.conf&amp;quot;);&lt;br /&gt;
		ConfigEntMap::iterator it;&lt;br /&gt;
		for (it = config[&amp;quot;Text&amp;quot;].begin(); it != config[&amp;quot;Text&amp;quot;].end(); it++)&lt;br /&gt;
		{&lt;br /&gt;
			books &amp;lt;&amp;lt; (*it).first.c_str();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return books;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After obtaining all the Bible book names, you can obtain their abbreviations with [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig], again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SWConfig config(&amp;quot;/usr/share/sword/locales.d/abbr.conf&amp;quot;);&lt;br /&gt;
const char *GenAbbr = config[&amp;quot;Text&amp;quot;][&amp;quot;Genesis&amp;quot;];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But, of course, since it's not necessarily safe to assume that you would have an abbr.conf file lying around, the above example isn't necessarily practical. Nevertheless, hopefully, its existence provided some insight on [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig]. The more proper way to obtain a list of Biblical, canonical book names is through the use of [http://www.crosswire.org/~ghellings/svnclassdocs/classVerseKey.html VerseKey]. VerseKey has a public member that stores the number of books for each testament&amp;amp;mdash;BMAX. BMAX[0] has the number of Old Testament books, and BMAX[1] has the number of New Testament books, which will be useful for use in a &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; loop. &lt;br /&gt;
&lt;br /&gt;
===== Code #2 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QStringList getBiblicalBooks()&lt;br /&gt;
	{&lt;br /&gt;
		QStringList books;&lt;br /&gt;
		VerseKey vk;&lt;br /&gt;
		for (int b = 0; b &amp;lt; 2; b++)&lt;br /&gt;
		{&lt;br /&gt;
			// Set the Testament number to retrieve book names from that Testament.&lt;br /&gt;
			// Add 1 to b since the Testament numbers don't start at 0.&lt;br /&gt;
			vk.setTestament(b+1);&lt;br /&gt;
			for (int i = 0; i &amp;lt; vk.BMAX[b]; i++)&lt;br /&gt;
			{&lt;br /&gt;
				// Add 1 to i since the book numbers don't start at 0.&lt;br /&gt;
				vk.setBook(i+1);&lt;br /&gt;
				books &amp;lt;&amp;lt; vk.getBookName();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return books;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Getting Generic Book Table of Contents ====&lt;br /&gt;
&lt;br /&gt;
[http://www.crosswire.org/~ghellings/svnclassdocs/classTreeKey.html TreeKey] is necessary for traversing the generic book's tree. I am going to let the comments and function names speak for themselves here. Assume that &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt; points to a [http://www.crosswire.org/~ghellings/svnclassdocs/classSWModule.html SWModule] object.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;swmodule.h&amp;gt;&lt;br /&gt;
#include &amp;lt;treekey.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void getGenBookTOC(sword::TreeKey *tk, Class *parent)&lt;br /&gt;
	{&lt;br /&gt;
		// if no TreeKey, then obtain one from the module&lt;br /&gt;
		if (!tk)&lt;br /&gt;
			tk = dynamic_cast&amp;lt;sword::TreeKey*&amp;gt;(module-&amp;gt;getKey());&lt;br /&gt;
&lt;br /&gt;
		// Move onto the first child if any&lt;br /&gt;
		if (tk-&amp;gt;firstChild())&lt;br /&gt;
		{&lt;br /&gt;
			// Get the first child's information before moving onto the next&lt;br /&gt;
			do&lt;br /&gt;
			{&lt;br /&gt;
				// Retrieve the name so we can use it to get&lt;br /&gt;
				//  the GenBook's content later&lt;br /&gt;
				QString text = tk-&amp;gt;getText();&lt;br /&gt;
				// Keep track of the information for custom implementation&lt;br /&gt;
				Class *item = storeItemInfoForLaterUse(parent, text);&lt;br /&gt;
&lt;br /&gt;
				// If it has children, dive into it&lt;br /&gt;
				if (tk-&amp;gt;hasChildren())&lt;br /&gt;
					getGenBookTOC(tk, item);&lt;br /&gt;
			}&lt;br /&gt;
			// Move onto the next child if any&lt;br /&gt;
			while (tk-&amp;gt;nextSibling());&lt;br /&gt;
			// Move up one level in case one of the children had children&lt;br /&gt;
			tk-&amp;gt;parent();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
How you go about in implementing this is up to you.&lt;br /&gt;
&lt;br /&gt;
[[Category:Genbook]]&lt;br /&gt;
&lt;br /&gt;
==== Install Manager ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.crosswire.org/~ghellings/svnclassdocs/classInstallMgr.html InstallMgr] class is pretty easy to work with and will manage most of the install sources itself. When instantiated, it will generate the list of sources (which can later be accessed from its public attribute, &amp;lt;tt&amp;gt;sources&amp;lt;/tt&amp;gt;) from the InstallMgr.conf located at the path provided in the constructor's first paramater, &amp;lt;tt&amp;gt;privatePath&amp;lt;/tt&amp;gt;, if any. If no InstallMgr.conf exists, you can use the method &amp;lt;tt&amp;gt;refreshRemoteSourceConfiguration()&amp;lt;/tt&amp;gt; to retrieve a list of sources remotely. &amp;lt;tt&amp;gt;refreshRemoteSourceConfiguration()&amp;lt;/tt&amp;gt; will return 0 upon success. If -1 is returned, you should check to see if &amp;lt;tt&amp;gt;isUserDisclaimerConfirmed()&amp;lt;/tt&amp;gt; returns false; &amp;lt;tt&amp;gt;isUserDisclaimerConfirmed()&amp;lt;/tt&amp;gt; must return true to get passed the first process when refreshing the remote source.&lt;br /&gt;
&lt;br /&gt;
When working with the InstallMgr class, it will be useful to have a SWMgr object lying around &amp;lt;i&amp;gt;before&amp;lt;/i&amp;gt; installing any new modules and refreshing any remote sources. This is so you can provide some additional module information to the user with the help of &amp;lt;tt&amp;gt;InstallMgr::getModuleStatus()&amp;lt;/tt&amp;gt;. You rely on the return value of &amp;lt;tt&amp;gt;InstallMgr::getModuleStatus()&amp;lt;/tt&amp;gt; to display the list of modules and whether they are new (not installed) (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_NEW&amp;lt;/tt&amp;gt;), already installed (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_SAMEVERSION&amp;lt;/tt&amp;gt;), an update is available (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_UPDATED&amp;lt;/tt&amp;gt;), et cetera.&lt;br /&gt;
&lt;br /&gt;
To install modules you would of course use the method &amp;lt;tt&amp;gt;installModule()&amp;lt;/tt&amp;gt;. Local installs make use of only the first three parameters; remote installs make use of the first and last two while passing 0 to the second parameter. Note, the name of the module you want to install is obtained through &amp;lt;tt&amp;gt;SWModule::Name()&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;installModule()&amp;lt;/tt&amp;gt; will return 0 on success.&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Code_Examples&amp;diff=11174</id>
		<title>DevTools:Code Examples</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Code_Examples&amp;diff=11174"/>
				<updated>2012-02-21T08:36:42Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
***********************************************************************&lt;br /&gt;
&lt;br /&gt;
IF OTHERS ARE GOING TO EDIT THIS PAGE TO INCLUDE OTHER EXAMPLES,&lt;br /&gt;
PLEASE TRY TO STICK TO THE FORMAT.&lt;br /&gt;
&lt;br /&gt;
***********************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[Category:Development tools]]&lt;br /&gt;
&lt;br /&gt;
This page was started to provoke developers who know how the SWORD API works to post simple, everyday code examples that anyone can use.&lt;br /&gt;
&lt;br /&gt;
Be sure to first see the age old, always up to date, ever growing, and very helpful [http://crosswire.org/svn/sword/trunk/examples/ examples/ folder] in the source code distribution.&lt;br /&gt;
The [http://crosswire.org/svn/sword/trunk/utilities/ /utilities/] and [http://crosswire.org/svn/sword/trunk/tests /tests/] folders are also very informative and provide concise code examples.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
&lt;br /&gt;
==== Get Modules Example(s) ====&lt;br /&gt;
The following example is for obtaining modules that are installed in the user's SWORD repository. The following function takes one parameter, the type of the modules you want to retrieve.  It is defaulted to retrieve only Bibles.&lt;br /&gt;
&lt;br /&gt;
===== Code =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;swmgr.h&amp;gt;&lt;br /&gt;
#include &amp;lt;swmodule.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace sword;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
vector&amp;lt;string&amp;gt; getModuleNames(const char *modType = SWMgr::MODTYPE_BIBLES) {&lt;br /&gt;
	vector &amp;lt;string&amp;gt; modules;&lt;br /&gt;
	SWMgr library;&lt;br /&gt;
	ModMap::iterator it;&lt;br /&gt;
		for (it = library.Modules.begin(); it != library.Modules.end(); ++it) {&lt;br /&gt;
		SWModule *module = (*it).second;&lt;br /&gt;
		if (!strcmp(module-&amp;gt;getType(), modType)) {&lt;br /&gt;
			modules.push_back(module-&amp;gt;getName());&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return modules;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====== Example Usage ======&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list&amp;lt;string&amp;gt; bibles = getModuleNames(SWMgr::MODTYPE_COMMENTARIES);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Modules contain features.  If looking for a feature of a module, one can query with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (module-&amp;gt;getConfig().has(&amp;quot;Feature&amp;quot;, &amp;quot;Images&amp;quot;)&lt;br /&gt;
	// do something ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Get Biblical Book Names Example(s) ====&lt;br /&gt;
This example isn't completely accurate nor is it desireable to point users to internal implementations which may change.  The [Text] section of a locales.d/ file is meant to include any i18n string, not just Bible book names-- though that's likely all we have in most (all?) localization files at the moment.  Other internal strings in the engine are meant to be localized there.  Better example to get Biblical Names using SWORD (as stated later):&lt;br /&gt;
&lt;br /&gt;
VerseKey vk;&lt;br /&gt;
while (!vk.Error()) {&lt;br /&gt;
	cout &amp;lt;&amp;lt; vk.getBookName();&lt;br /&gt;
	vk.setBook(vk.getBook()+1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obtaining a list of the canonical books of the Bible doesn't necessarily require any SWORD classes (though in the following example we'll be using [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig]). A default SWORD installation installs the file &amp;lt;tt&amp;gt;abbr.conf&amp;lt;/tt&amp;gt; at &amp;lt;tt&amp;gt;/usr/share/sword/locales.d&amp;lt;/tt&amp;gt; on a Unix-like system (on Windows it may be located at &amp;lt;tt&amp;gt;C:\Program Files\CrossWire\The SWORD Project\locales.d&amp;lt;/tt&amp;gt;). The syntax of the file is the same as any INI file. Therefore we just need to parse the file for the canonical books; so technically any configuration file parser that can parse INI files will do. The section we want to obtain from &amp;lt;tt&amp;gt;abbr.conf&amp;lt;/tt&amp;gt; is called &amp;lt;tt&amp;gt;Text&amp;lt;/tt&amp;gt;. (Again, the example uses a Qt4 class, [http://doc.trolltech.com/4.5/qstringlist.html QStringList].)&lt;br /&gt;
&lt;br /&gt;
===== Code #1 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;QStringList&amp;gt;&lt;br /&gt;
#include &amp;lt;swconfig.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QStringList getBiblicalBooks()&lt;br /&gt;
	{&lt;br /&gt;
		QStringList books;&lt;br /&gt;
		SWConfig config(&amp;quot;/usr/share/sword/locales.d/abbr.conf&amp;quot;);&lt;br /&gt;
		ConfigEntMap::iterator it;&lt;br /&gt;
		for (it = config[&amp;quot;Text&amp;quot;].begin(); it != config[&amp;quot;Text&amp;quot;].end(); it++)&lt;br /&gt;
		{&lt;br /&gt;
			books &amp;lt;&amp;lt; (*it).first.c_str();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return books;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After obtaining all the Bible book names, you can obtain their abbreviations with [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig], again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SWConfig config(&amp;quot;/usr/share/sword/locales.d/abbr.conf&amp;quot;);&lt;br /&gt;
const char *GenAbbr = config[&amp;quot;Text&amp;quot;][&amp;quot;Genesis&amp;quot;];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But, of course, since it's not necessarily safe to assume that you would have an abbr.conf file lying around, the above example isn't necessarily practical. Nevertheless, hopefully, its existence provided some insight on [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig]. The more proper way to obtain a list of Biblical, canonical book names is through the use of [http://www.crosswire.org/~ghellings/svnclassdocs/classVerseKey.html VerseKey]. VerseKey has a public member that stores the number of books for each testament&amp;amp;mdash;BMAX. BMAX[0] has the number of Old Testament books, and BMAX[1] has the number of New Testament books, which will be useful for use in a &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; loop. &lt;br /&gt;
&lt;br /&gt;
===== Code #2 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QStringList getBiblicalBooks()&lt;br /&gt;
	{&lt;br /&gt;
		QStringList books;&lt;br /&gt;
		VerseKey vk;&lt;br /&gt;
		for (int b = 0; b &amp;lt; 2; b++)&lt;br /&gt;
		{&lt;br /&gt;
			// Set the Testament number to retrieve book names from that Testament.&lt;br /&gt;
			// Add 1 to b since the Testament numbers don't start at 0.&lt;br /&gt;
			vk.setTestament(b+1);&lt;br /&gt;
			for (int i = 0; i &amp;lt; vk.BMAX[b]; i++)&lt;br /&gt;
			{&lt;br /&gt;
				// Add 1 to i since the book numbers don't start at 0.&lt;br /&gt;
				vk.setBook(i+1);&lt;br /&gt;
				books &amp;lt;&amp;lt; vk.getBookName();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return books;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Getting Generic Book Table of Contents ====&lt;br /&gt;
&lt;br /&gt;
[http://www.crosswire.org/~ghellings/svnclassdocs/classTreeKey.html TreeKey] is necessary for traversing the generic book's tree. I am going to let the comments and function names speak for themselves here. Assume that &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt; points to a [http://www.crosswire.org/~ghellings/svnclassdocs/classSWModule.html SWModule] object.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;swmodule.h&amp;gt;&lt;br /&gt;
#include &amp;lt;treekey.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void getGenBookTOC(sword::TreeKey *tk, Class *parent)&lt;br /&gt;
	{&lt;br /&gt;
		// if no TreeKey, then obtain one from the module&lt;br /&gt;
		if (!tk)&lt;br /&gt;
			tk = dynamic_cast&amp;lt;sword::TreeKey*&amp;gt;(module-&amp;gt;getKey());&lt;br /&gt;
&lt;br /&gt;
		// Move onto the first child if any&lt;br /&gt;
		if (tk-&amp;gt;firstChild())&lt;br /&gt;
		{&lt;br /&gt;
			// Get the first child's information before moving onto the next&lt;br /&gt;
			do&lt;br /&gt;
			{&lt;br /&gt;
				// Retrieve the name so we can use it to get&lt;br /&gt;
				//  the GenBook's content later&lt;br /&gt;
				QString text = tk-&amp;gt;getText();&lt;br /&gt;
				// Keep track of the information for custom implementation&lt;br /&gt;
				Class *item = storeItemInfoForLaterUse(parent, text);&lt;br /&gt;
&lt;br /&gt;
				// If it has children, dive into it&lt;br /&gt;
				if (tk-&amp;gt;hasChildren())&lt;br /&gt;
					getGenBookTOC(tk, item);&lt;br /&gt;
			}&lt;br /&gt;
			// Move onto the next child if any&lt;br /&gt;
			while (tk-&amp;gt;nextSibling());&lt;br /&gt;
			// Move up one level in case one of the children had children&lt;br /&gt;
			tk-&amp;gt;parent();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
How you go about in implementing this is up to you.&lt;br /&gt;
&lt;br /&gt;
[[Category:Genbook]]&lt;br /&gt;
&lt;br /&gt;
==== Install Manager ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.crosswire.org/~ghellings/svnclassdocs/classInstallMgr.html InstallMgr] class is pretty easy to work with and will manage most of the install sources itself. When instantiated, it will generate the list of sources (which can later be accessed from its public attribute, &amp;lt;tt&amp;gt;sources&amp;lt;/tt&amp;gt;) from the InstallMgr.conf located at the path provided in the constructor's first paramater, &amp;lt;tt&amp;gt;privatePath&amp;lt;/tt&amp;gt;, if any. If no InstallMgr.conf exists, you can use the method &amp;lt;tt&amp;gt;refreshRemoteSourceConfiguration()&amp;lt;/tt&amp;gt; to retrieve a list of sources remotely. &amp;lt;tt&amp;gt;refreshRemoteSourceConfiguration()&amp;lt;/tt&amp;gt; will return 0 upon success. If -1 is returned, you should check to see if &amp;lt;tt&amp;gt;isUserDisclaimerConfirmed()&amp;lt;/tt&amp;gt; returns false; &amp;lt;tt&amp;gt;isUserDisclaimerConfirmed()&amp;lt;/tt&amp;gt; must return true to get passed the first process when refreshing the remote source.&lt;br /&gt;
&lt;br /&gt;
When working with the InstallMgr class, it will be useful to have a SWMgr object lying around &amp;lt;i&amp;gt;before&amp;lt;/i&amp;gt; installing any new modules and refreshing any remote sources. This is so you can provide some additional module information to the user with the help of &amp;lt;tt&amp;gt;InstallMgr::getModuleStatus()&amp;lt;/tt&amp;gt;. You rely on the return value of &amp;lt;tt&amp;gt;InstallMgr::getModuleStatus()&amp;lt;/tt&amp;gt; to display the list of modules and whether they are new (not installed) (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_NEW&amp;lt;/tt&amp;gt;), already installed (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_SAMEVERSION&amp;lt;/tt&amp;gt;), an update is available (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_UPDATED&amp;lt;/tt&amp;gt;), et cetera.&lt;br /&gt;
&lt;br /&gt;
To install modules you would of course use the method &amp;lt;tt&amp;gt;installModule()&amp;lt;/tt&amp;gt;. Local installs make use of only the first three parameters; remote installs make use of the first and last two while passing 0 to the second parameter. Note, the name of the module you want to install is obtained through &amp;lt;tt&amp;gt;SWModule::Name()&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;installModule()&amp;lt;/tt&amp;gt; will return 0 on success.&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Code_Examples&amp;diff=11173</id>
		<title>DevTools:Code Examples</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Code_Examples&amp;diff=11173"/>
				<updated>2012-02-21T08:32:10Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Get Modules Example(s) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
***********************************************************************&lt;br /&gt;
&lt;br /&gt;
IF OTHERS ARE GOING TO EDIT THIS PAGE TO INCLUDE OTHER EXAMPLES,&lt;br /&gt;
PLEASE TRY TO STICK TO THE FORMAT.&lt;br /&gt;
&lt;br /&gt;
***********************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[Category:Development tools]]&lt;br /&gt;
This page was started to provoke developers who know how the SWORD API works to post simple, everyday code examples that anyone can use. By &amp;quot;simple&amp;quot;, I mean something that can work within a static function if possible.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
&lt;br /&gt;
Be sure to first see the [http://crosswire.org/svn/sword/trunk/examples/ examples/ folder] in the source code distribution.&lt;br /&gt;
The [http://crosswire.org/svn/sword/trunk/utilities/ /utilities/] and [http://crosswire.org/svn/sword/trunk/tests /tests/] folders are also very informative and provide concise code examples.&lt;br /&gt;
&lt;br /&gt;
==== Get Modules Example(s) ====&lt;br /&gt;
The following example is for obtaining modules that are installed in the user's SWORD repository. The following function takes one parameter, the type of the modules you want to retrieve.  It is defaulted to retrieve only Bibles.&lt;br /&gt;
&lt;br /&gt;
===== Code =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;swmgr.h&amp;gt;&lt;br /&gt;
#include &amp;lt;swmodule.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace sword;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
vector&amp;lt;string&amp;gt; getModuleNames(const char *modType = SWMgr::MODTYPE_BIBLES) {&lt;br /&gt;
	vector &amp;lt;string&amp;gt; modules;&lt;br /&gt;
	SWMgr library;&lt;br /&gt;
	ModMap::iterator it;&lt;br /&gt;
		for (it = library.Modules.begin(); it != library.Modules.end(); ++it) {&lt;br /&gt;
		SWModule *module = (*it).second;&lt;br /&gt;
		if (!strcmp(module-&amp;gt;getType(), modType)) {&lt;br /&gt;
			modules.push_back(module-&amp;gt;getName());&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return modules;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====== Example Usage ======&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list&amp;lt;string&amp;gt; bibles = getModuleNames(SWMgr::MODTYPE_COMMENTARIES);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Modules contain features.  If looking for a feature of a module, one can query with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (module-&amp;gt;getConfig().has(&amp;quot;Feature&amp;quot;, &amp;quot;Images&amp;quot;)&lt;br /&gt;
	// do something ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Get Biblical Book Names Example(s) ====&lt;br /&gt;
This example isn't completely accurate nor is it desireable to point users to internal implementations which may change.  The [Text] section of a locales.d/ file is meant to include any i18n string, not just Bible book names-- though that's likely all we have in most (all?) localization files at the moment.  Other internal strings in the engine are meant to be localized there.  Better example to get Biblical Names using SWORD (as stated later):&lt;br /&gt;
&lt;br /&gt;
VerseKey vk;&lt;br /&gt;
while (!vk.Error()) {&lt;br /&gt;
	cout &amp;lt;&amp;lt; vk.getBookName();&lt;br /&gt;
	vk.setBook(vk.getBook()+1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obtaining a list of the canonical books of the Bible doesn't necessarily require any SWORD classes (though in the following example we'll be using [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig]). A default SWORD installation installs the file &amp;lt;tt&amp;gt;abbr.conf&amp;lt;/tt&amp;gt; at &amp;lt;tt&amp;gt;/usr/share/sword/locales.d&amp;lt;/tt&amp;gt; on a Unix-like system (on Windows it may be located at &amp;lt;tt&amp;gt;C:\Program Files\CrossWire\The SWORD Project\locales.d&amp;lt;/tt&amp;gt;). The syntax of the file is the same as any INI file. Therefore we just need to parse the file for the canonical books; so technically any configuration file parser that can parse INI files will do. The section we want to obtain from &amp;lt;tt&amp;gt;abbr.conf&amp;lt;/tt&amp;gt; is called &amp;lt;tt&amp;gt;Text&amp;lt;/tt&amp;gt;. (Again, the example uses a Qt4 class, [http://doc.trolltech.com/4.5/qstringlist.html QStringList].)&lt;br /&gt;
&lt;br /&gt;
===== Code #1 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;QStringList&amp;gt;&lt;br /&gt;
#include &amp;lt;swconfig.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QStringList getBiblicalBooks()&lt;br /&gt;
	{&lt;br /&gt;
		QStringList books;&lt;br /&gt;
		SWConfig config(&amp;quot;/usr/share/sword/locales.d/abbr.conf&amp;quot;);&lt;br /&gt;
		ConfigEntMap::iterator it;&lt;br /&gt;
		for (it = config[&amp;quot;Text&amp;quot;].begin(); it != config[&amp;quot;Text&amp;quot;].end(); it++)&lt;br /&gt;
		{&lt;br /&gt;
			books &amp;lt;&amp;lt; (*it).first.c_str();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return books;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After obtaining all the Bible book names, you can obtain their abbreviations with [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig], again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SWConfig config(&amp;quot;/usr/share/sword/locales.d/abbr.conf&amp;quot;);&lt;br /&gt;
const char *GenAbbr = config[&amp;quot;Text&amp;quot;][&amp;quot;Genesis&amp;quot;];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But, of course, since it's not necessarily safe to assume that you would have an abbr.conf file lying around, the above example isn't necessarily practical. Nevertheless, hopefully, its existence provided some insight on [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig]. The more proper way to obtain a list of Biblical, canonical book names is through the use of [http://www.crosswire.org/~ghellings/svnclassdocs/classVerseKey.html VerseKey]. VerseKey has a public member that stores the number of books for each testament&amp;amp;mdash;BMAX. BMAX[0] has the number of Old Testament books, and BMAX[1] has the number of New Testament books, which will be useful for use in a &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; loop. &lt;br /&gt;
&lt;br /&gt;
===== Code #2 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QStringList getBiblicalBooks()&lt;br /&gt;
	{&lt;br /&gt;
		QStringList books;&lt;br /&gt;
		VerseKey vk;&lt;br /&gt;
		for (int b = 0; b &amp;lt; 2; b++)&lt;br /&gt;
		{&lt;br /&gt;
			// Set the Testament number to retrieve book names from that Testament.&lt;br /&gt;
			// Add 1 to b since the Testament numbers don't start at 0.&lt;br /&gt;
			vk.setTestament(b+1);&lt;br /&gt;
			for (int i = 0; i &amp;lt; vk.BMAX[b]; i++)&lt;br /&gt;
			{&lt;br /&gt;
				// Add 1 to i since the book numbers don't start at 0.&lt;br /&gt;
				vk.setBook(i+1);&lt;br /&gt;
				books &amp;lt;&amp;lt; vk.getBookName();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return books;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Getting Generic Book Table of Contents ====&lt;br /&gt;
&lt;br /&gt;
[http://www.crosswire.org/~ghellings/svnclassdocs/classTreeKey.html TreeKey] is necessary for traversing the generic book's tree. I am going to let the comments and function names speak for themselves here. Assume that &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt; points to a [http://www.crosswire.org/~ghellings/svnclassdocs/classSWModule.html SWModule] object.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;swmodule.h&amp;gt;&lt;br /&gt;
#include &amp;lt;treekey.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void getGenBookTOC(sword::TreeKey *tk, Class *parent)&lt;br /&gt;
	{&lt;br /&gt;
		// if no TreeKey, then obtain one from the module&lt;br /&gt;
		if (!tk)&lt;br /&gt;
			tk = dynamic_cast&amp;lt;sword::TreeKey*&amp;gt;(module-&amp;gt;getKey());&lt;br /&gt;
&lt;br /&gt;
		// Move onto the first child if any&lt;br /&gt;
		if (tk-&amp;gt;firstChild())&lt;br /&gt;
		{&lt;br /&gt;
			// Get the first child's information before moving onto the next&lt;br /&gt;
			do&lt;br /&gt;
			{&lt;br /&gt;
				// Retrieve the name so we can use it to get&lt;br /&gt;
				//  the GenBook's content later&lt;br /&gt;
				QString text = tk-&amp;gt;getText();&lt;br /&gt;
				// Keep track of the information for custom implementation&lt;br /&gt;
				Class *item = storeItemInfoForLaterUse(parent, text);&lt;br /&gt;
&lt;br /&gt;
				// If it has children, dive into it&lt;br /&gt;
				if (tk-&amp;gt;hasChildren())&lt;br /&gt;
					getGenBookTOC(tk, item);&lt;br /&gt;
			}&lt;br /&gt;
			// Move onto the next child if any&lt;br /&gt;
			while (tk-&amp;gt;nextSibling());&lt;br /&gt;
			// Move up one level in case one of the children had children&lt;br /&gt;
			tk-&amp;gt;parent();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
How you go about in implementing this is up to you.&lt;br /&gt;
&lt;br /&gt;
[[Category:Genbook]]&lt;br /&gt;
&lt;br /&gt;
==== Install Manager ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.crosswire.org/~ghellings/svnclassdocs/classInstallMgr.html InstallMgr] class is pretty easy to work with and will manage most of the install sources itself. When instantiated, it will generate the list of sources (which can later be accessed from its public attribute, &amp;lt;tt&amp;gt;sources&amp;lt;/tt&amp;gt;) from the InstallMgr.conf located at the path provided in the constructor's first paramater, &amp;lt;tt&amp;gt;privatePath&amp;lt;/tt&amp;gt;, if any. If no InstallMgr.conf exists, you can use the method &amp;lt;tt&amp;gt;refreshRemoteSourceConfiguration()&amp;lt;/tt&amp;gt; to retrieve a list of sources remotely. &amp;lt;tt&amp;gt;refreshRemoteSourceConfiguration()&amp;lt;/tt&amp;gt; will return 0 upon success. If -1 is returned, you should check to see if &amp;lt;tt&amp;gt;isUserDisclaimerConfirmed()&amp;lt;/tt&amp;gt; returns false; &amp;lt;tt&amp;gt;isUserDisclaimerConfirmed()&amp;lt;/tt&amp;gt; must return true to get passed the first process when refreshing the remote source.&lt;br /&gt;
&lt;br /&gt;
When working with the InstallMgr class, it will be useful to have a SWMgr object lying around &amp;lt;i&amp;gt;before&amp;lt;/i&amp;gt; installing any new modules and refreshing any remote sources. This is so you can provide some additional module information to the user with the help of &amp;lt;tt&amp;gt;InstallMgr::getModuleStatus()&amp;lt;/tt&amp;gt;. You rely on the return value of &amp;lt;tt&amp;gt;InstallMgr::getModuleStatus()&amp;lt;/tt&amp;gt; to display the list of modules and whether they are new (not installed) (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_NEW&amp;lt;/tt&amp;gt;), already installed (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_SAMEVERSION&amp;lt;/tt&amp;gt;), an update is available (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_UPDATED&amp;lt;/tt&amp;gt;), et cetera.&lt;br /&gt;
&lt;br /&gt;
To install modules you would of course use the method &amp;lt;tt&amp;gt;installModule()&amp;lt;/tt&amp;gt;. Local installs make use of only the first three parameters; remote installs make use of the first and last two while passing 0 to the second parameter. Note, the name of the module you want to install is obtained through &amp;lt;tt&amp;gt;SWModule::Name()&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;installModule()&amp;lt;/tt&amp;gt; will return 0 on success.&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Code_Examples&amp;diff=11172</id>
		<title>DevTools:Code Examples</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Code_Examples&amp;diff=11172"/>
				<updated>2012-02-21T08:30:32Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* C++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
***********************************************************************&lt;br /&gt;
&lt;br /&gt;
IF OTHERS ARE GOING TO EDIT THIS PAGE TO INCLUDE OTHER EXAMPLES,&lt;br /&gt;
PLEASE TRY TO STICK TO THE FORMAT.&lt;br /&gt;
&lt;br /&gt;
***********************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[Category:Development tools]]&lt;br /&gt;
This page was started to provoke developers who know how the SWORD API works to post simple, everyday code examples that anyone can use. By &amp;quot;simple&amp;quot;, I mean something that can work within a static function if possible.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
&lt;br /&gt;
Be sure to first see the [http://crosswire.org/svn/sword/trunk/examples/ examples/ folder] in the source code distribution.&lt;br /&gt;
The [http://crosswire.org/svn/sword/trunk/utilities/ /utilities/] and [http://crosswire.org/svn/sword/trunk/tests /tests/] folders are also very informative and provide concise code examples.&lt;br /&gt;
&lt;br /&gt;
==== Get Modules Example(s) ====&lt;br /&gt;
The following example is for obtaining modules that are installed in the user's SWORD repository. This example also makes slight use of the Qt4 GUI library. The following function takes one parameter, the type of the modules you want to retrieve. Unless stated otherwise, there are up to 4 different types to choose from:&lt;br /&gt;
* &amp;quot;Biblical Texts&amp;quot;&lt;br /&gt;
* &amp;quot;Commentaries&amp;quot;&lt;br /&gt;
* &amp;quot;Lexicons / Dictionaries&amp;quot;&lt;br /&gt;
* &amp;quot;Generic Books&amp;quot;&lt;br /&gt;
===== Code =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;swmgr.h&amp;gt;&lt;br /&gt;
#include &amp;lt;swmodule.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace sword;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
vector&amp;lt;string&amp;gt; getModuleNames(const char *modType = SWMgr::MODTYPE_BIBLES) {&lt;br /&gt;
	vector &amp;lt;string&amp;gt; modules;&lt;br /&gt;
	SWMgr library;&lt;br /&gt;
	ModMap::iterator it;&lt;br /&gt;
		for (it = library.Modules.begin(); it != library.Modules.end(); ++it) {&lt;br /&gt;
		SWModule *module = (*it).second;&lt;br /&gt;
		if (!strcmp(module-&amp;gt;getType(), modType)) {&lt;br /&gt;
			modules.push_back(module-&amp;gt;getName());&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return modules;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====== Example Usage ======&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list&amp;lt;string&amp;gt; bibles = getModuleNames(SWMgr::MODTYPE_COMMENTARIES);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Modules contain features.  If looking for a feature of a module, one can query with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (module-&amp;gt;getConfig().has(&amp;quot;Feature&amp;quot;, &amp;quot;Images&amp;quot;)&lt;br /&gt;
	// do something ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Get Biblical Book Names Example(s) ====&lt;br /&gt;
This example isn't completely accurate nor is it desireable to point users to internal implementations which may change.  The [Text] section of a locales.d/ file is meant to include any i18n string, not just Bible book names-- though that's likely all we have in most (all?) localization files at the moment.  Other internal strings in the engine are meant to be localized there.  Better example to get Biblical Names using SWORD (as stated later):&lt;br /&gt;
&lt;br /&gt;
VerseKey vk;&lt;br /&gt;
while (!vk.Error()) {&lt;br /&gt;
	cout &amp;lt;&amp;lt; vk.getBookName();&lt;br /&gt;
	vk.setBook(vk.getBook()+1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obtaining a list of the canonical books of the Bible doesn't necessarily require any SWORD classes (though in the following example we'll be using [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig]). A default SWORD installation installs the file &amp;lt;tt&amp;gt;abbr.conf&amp;lt;/tt&amp;gt; at &amp;lt;tt&amp;gt;/usr/share/sword/locales.d&amp;lt;/tt&amp;gt; on a Unix-like system (on Windows it may be located at &amp;lt;tt&amp;gt;C:\Program Files\CrossWire\The SWORD Project\locales.d&amp;lt;/tt&amp;gt;). The syntax of the file is the same as any INI file. Therefore we just need to parse the file for the canonical books; so technically any configuration file parser that can parse INI files will do. The section we want to obtain from &amp;lt;tt&amp;gt;abbr.conf&amp;lt;/tt&amp;gt; is called &amp;lt;tt&amp;gt;Text&amp;lt;/tt&amp;gt;. (Again, the example uses a Qt4 class, [http://doc.trolltech.com/4.5/qstringlist.html QStringList].)&lt;br /&gt;
&lt;br /&gt;
===== Code #1 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;QStringList&amp;gt;&lt;br /&gt;
#include &amp;lt;swconfig.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QStringList getBiblicalBooks()&lt;br /&gt;
	{&lt;br /&gt;
		QStringList books;&lt;br /&gt;
		SWConfig config(&amp;quot;/usr/share/sword/locales.d/abbr.conf&amp;quot;);&lt;br /&gt;
		ConfigEntMap::iterator it;&lt;br /&gt;
		for (it = config[&amp;quot;Text&amp;quot;].begin(); it != config[&amp;quot;Text&amp;quot;].end(); it++)&lt;br /&gt;
		{&lt;br /&gt;
			books &amp;lt;&amp;lt; (*it).first.c_str();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return books;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After obtaining all the Bible book names, you can obtain their abbreviations with [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig], again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SWConfig config(&amp;quot;/usr/share/sword/locales.d/abbr.conf&amp;quot;);&lt;br /&gt;
const char *GenAbbr = config[&amp;quot;Text&amp;quot;][&amp;quot;Genesis&amp;quot;];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But, of course, since it's not necessarily safe to assume that you would have an abbr.conf file lying around, the above example isn't necessarily practical. Nevertheless, hopefully, its existence provided some insight on [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig]. The more proper way to obtain a list of Biblical, canonical book names is through the use of [http://www.crosswire.org/~ghellings/svnclassdocs/classVerseKey.html VerseKey]. VerseKey has a public member that stores the number of books for each testament&amp;amp;mdash;BMAX. BMAX[0] has the number of Old Testament books, and BMAX[1] has the number of New Testament books, which will be useful for use in a &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; loop. &lt;br /&gt;
&lt;br /&gt;
===== Code #2 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QStringList getBiblicalBooks()&lt;br /&gt;
	{&lt;br /&gt;
		QStringList books;&lt;br /&gt;
		VerseKey vk;&lt;br /&gt;
		for (int b = 0; b &amp;lt; 2; b++)&lt;br /&gt;
		{&lt;br /&gt;
			// Set the Testament number to retrieve book names from that Testament.&lt;br /&gt;
			// Add 1 to b since the Testament numbers don't start at 0.&lt;br /&gt;
			vk.setTestament(b+1);&lt;br /&gt;
			for (int i = 0; i &amp;lt; vk.BMAX[b]; i++)&lt;br /&gt;
			{&lt;br /&gt;
				// Add 1 to i since the book numbers don't start at 0.&lt;br /&gt;
				vk.setBook(i+1);&lt;br /&gt;
				books &amp;lt;&amp;lt; vk.getBookName();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return books;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Getting Generic Book Table of Contents ====&lt;br /&gt;
&lt;br /&gt;
[http://www.crosswire.org/~ghellings/svnclassdocs/classTreeKey.html TreeKey] is necessary for traversing the generic book's tree. I am going to let the comments and function names speak for themselves here. Assume that &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt; points to a [http://www.crosswire.org/~ghellings/svnclassdocs/classSWModule.html SWModule] object.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;swmodule.h&amp;gt;&lt;br /&gt;
#include &amp;lt;treekey.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void getGenBookTOC(sword::TreeKey *tk, Class *parent)&lt;br /&gt;
	{&lt;br /&gt;
		// if no TreeKey, then obtain one from the module&lt;br /&gt;
		if (!tk)&lt;br /&gt;
			tk = dynamic_cast&amp;lt;sword::TreeKey*&amp;gt;(module-&amp;gt;getKey());&lt;br /&gt;
&lt;br /&gt;
		// Move onto the first child if any&lt;br /&gt;
		if (tk-&amp;gt;firstChild())&lt;br /&gt;
		{&lt;br /&gt;
			// Get the first child's information before moving onto the next&lt;br /&gt;
			do&lt;br /&gt;
			{&lt;br /&gt;
				// Retrieve the name so we can use it to get&lt;br /&gt;
				//  the GenBook's content later&lt;br /&gt;
				QString text = tk-&amp;gt;getText();&lt;br /&gt;
				// Keep track of the information for custom implementation&lt;br /&gt;
				Class *item = storeItemInfoForLaterUse(parent, text);&lt;br /&gt;
&lt;br /&gt;
				// If it has children, dive into it&lt;br /&gt;
				if (tk-&amp;gt;hasChildren())&lt;br /&gt;
					getGenBookTOC(tk, item);&lt;br /&gt;
			}&lt;br /&gt;
			// Move onto the next child if any&lt;br /&gt;
			while (tk-&amp;gt;nextSibling());&lt;br /&gt;
			// Move up one level in case one of the children had children&lt;br /&gt;
			tk-&amp;gt;parent();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
How you go about in implementing this is up to you.&lt;br /&gt;
&lt;br /&gt;
[[Category:Genbook]]&lt;br /&gt;
&lt;br /&gt;
==== Install Manager ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.crosswire.org/~ghellings/svnclassdocs/classInstallMgr.html InstallMgr] class is pretty easy to work with and will manage most of the install sources itself. When instantiated, it will generate the list of sources (which can later be accessed from its public attribute, &amp;lt;tt&amp;gt;sources&amp;lt;/tt&amp;gt;) from the InstallMgr.conf located at the path provided in the constructor's first paramater, &amp;lt;tt&amp;gt;privatePath&amp;lt;/tt&amp;gt;, if any. If no InstallMgr.conf exists, you can use the method &amp;lt;tt&amp;gt;refreshRemoteSourceConfiguration()&amp;lt;/tt&amp;gt; to retrieve a list of sources remotely. &amp;lt;tt&amp;gt;refreshRemoteSourceConfiguration()&amp;lt;/tt&amp;gt; will return 0 upon success. If -1 is returned, you should check to see if &amp;lt;tt&amp;gt;isUserDisclaimerConfirmed()&amp;lt;/tt&amp;gt; returns false; &amp;lt;tt&amp;gt;isUserDisclaimerConfirmed()&amp;lt;/tt&amp;gt; must return true to get passed the first process when refreshing the remote source.&lt;br /&gt;
&lt;br /&gt;
When working with the InstallMgr class, it will be useful to have a SWMgr object lying around &amp;lt;i&amp;gt;before&amp;lt;/i&amp;gt; installing any new modules and refreshing any remote sources. This is so you can provide some additional module information to the user with the help of &amp;lt;tt&amp;gt;InstallMgr::getModuleStatus()&amp;lt;/tt&amp;gt;. You rely on the return value of &amp;lt;tt&amp;gt;InstallMgr::getModuleStatus()&amp;lt;/tt&amp;gt; to display the list of modules and whether they are new (not installed) (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_NEW&amp;lt;/tt&amp;gt;), already installed (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_SAMEVERSION&amp;lt;/tt&amp;gt;), an update is available (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_UPDATED&amp;lt;/tt&amp;gt;), et cetera.&lt;br /&gt;
&lt;br /&gt;
To install modules you would of course use the method &amp;lt;tt&amp;gt;installModule()&amp;lt;/tt&amp;gt;. Local installs make use of only the first three parameters; remote installs make use of the first and last two while passing 0 to the second parameter. Note, the name of the module you want to install is obtained through &amp;lt;tt&amp;gt;SWModule::Name()&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;installModule()&amp;lt;/tt&amp;gt; will return 0 on success.&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:Code_Examples&amp;diff=11171</id>
		<title>DevTools:Code Examples</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:Code_Examples&amp;diff=11171"/>
				<updated>2012-02-21T08:29:32Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
***********************************************************************&lt;br /&gt;
&lt;br /&gt;
IF OTHERS ARE GOING TO EDIT THIS PAGE TO INCLUDE OTHER EXAMPLES,&lt;br /&gt;
PLEASE TRY TO STICK TO THE FORMAT.&lt;br /&gt;
&lt;br /&gt;
***********************************************************************&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[[Category:Development tools]]&lt;br /&gt;
This page was started to provoke developers who know how the SWORD API works to post simple, everyday code examples that anyone can use. By &amp;quot;simple&amp;quot;, I mean something that can work within a static function if possible.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
&lt;br /&gt;
Be sure to see the [http://crosswire.org/svn/sword/trunk/examples/ examples/ folder] in the source code distribution.&lt;br /&gt;
The [http://crosswire.org/svn/sword/trunk/utilities/ /utilities/] and [http://crosswire.org/svn/sword/trunk/tests /tests/] folders are also very informative and provide concise code examples.&lt;br /&gt;
&lt;br /&gt;
==== Get Modules Example(s) ====&lt;br /&gt;
The following example is for obtaining modules that are installed in the user's SWORD repository. This example also makes slight use of the Qt4 GUI library. The following function takes one parameter, the type of the modules you want to retrieve. Unless stated otherwise, there are up to 4 different types to choose from:&lt;br /&gt;
* &amp;quot;Biblical Texts&amp;quot;&lt;br /&gt;
* &amp;quot;Commentaries&amp;quot;&lt;br /&gt;
* &amp;quot;Lexicons / Dictionaries&amp;quot;&lt;br /&gt;
* &amp;quot;Generic Books&amp;quot;&lt;br /&gt;
===== Code =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;swmgr.h&amp;gt;&lt;br /&gt;
#include &amp;lt;swmodule.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace sword;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
vector&amp;lt;string&amp;gt; getModuleNames(const char *modType = SWMgr::MODTYPE_BIBLES) {&lt;br /&gt;
	vector &amp;lt;string&amp;gt; modules;&lt;br /&gt;
	SWMgr library;&lt;br /&gt;
	ModMap::iterator it;&lt;br /&gt;
		for (it = library.Modules.begin(); it != library.Modules.end(); ++it) {&lt;br /&gt;
		SWModule *module = (*it).second;&lt;br /&gt;
		if (!strcmp(module-&amp;gt;getType(), modType)) {&lt;br /&gt;
			modules.push_back(module-&amp;gt;getName());&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return modules;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====== Example Usage ======&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list&amp;lt;string&amp;gt; bibles = getModuleNames(SWMgr::MODTYPE_COMMENTARIES);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Modules contain features.  If looking for a feature of a module, one can query with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (module-&amp;gt;getConfig().has(&amp;quot;Feature&amp;quot;, &amp;quot;Images&amp;quot;)&lt;br /&gt;
	// do something ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Get Biblical Book Names Example(s) ====&lt;br /&gt;
This example isn't completely accurate nor is it desireable to point users to internal implementations which may change.  The [Text] section of a locales.d/ file is meant to include any i18n string, not just Bible book names-- though that's likely all we have in most (all?) localization files at the moment.  Other internal strings in the engine are meant to be localized there.  Better example to get Biblical Names using SWORD (as stated later):&lt;br /&gt;
&lt;br /&gt;
VerseKey vk;&lt;br /&gt;
while (!vk.Error()) {&lt;br /&gt;
	cout &amp;lt;&amp;lt; vk.getBookName();&lt;br /&gt;
	vk.setBook(vk.getBook()+1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obtaining a list of the canonical books of the Bible doesn't necessarily require any SWORD classes (though in the following example we'll be using [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig]). A default SWORD installation installs the file &amp;lt;tt&amp;gt;abbr.conf&amp;lt;/tt&amp;gt; at &amp;lt;tt&amp;gt;/usr/share/sword/locales.d&amp;lt;/tt&amp;gt; on a Unix-like system (on Windows it may be located at &amp;lt;tt&amp;gt;C:\Program Files\CrossWire\The SWORD Project\locales.d&amp;lt;/tt&amp;gt;). The syntax of the file is the same as any INI file. Therefore we just need to parse the file for the canonical books; so technically any configuration file parser that can parse INI files will do. The section we want to obtain from &amp;lt;tt&amp;gt;abbr.conf&amp;lt;/tt&amp;gt; is called &amp;lt;tt&amp;gt;Text&amp;lt;/tt&amp;gt;. (Again, the example uses a Qt4 class, [http://doc.trolltech.com/4.5/qstringlist.html QStringList].)&lt;br /&gt;
&lt;br /&gt;
===== Code #1 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;QStringList&amp;gt;&lt;br /&gt;
#include &amp;lt;swconfig.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QStringList getBiblicalBooks()&lt;br /&gt;
	{&lt;br /&gt;
		QStringList books;&lt;br /&gt;
		SWConfig config(&amp;quot;/usr/share/sword/locales.d/abbr.conf&amp;quot;);&lt;br /&gt;
		ConfigEntMap::iterator it;&lt;br /&gt;
		for (it = config[&amp;quot;Text&amp;quot;].begin(); it != config[&amp;quot;Text&amp;quot;].end(); it++)&lt;br /&gt;
		{&lt;br /&gt;
			books &amp;lt;&amp;lt; (*it).first.c_str();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return books;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After obtaining all the Bible book names, you can obtain their abbreviations with [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig], again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SWConfig config(&amp;quot;/usr/share/sword/locales.d/abbr.conf&amp;quot;);&lt;br /&gt;
const char *GenAbbr = config[&amp;quot;Text&amp;quot;][&amp;quot;Genesis&amp;quot;];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But, of course, since it's not necessarily safe to assume that you would have an abbr.conf file lying around, the above example isn't necessarily practical. Nevertheless, hopefully, its existence provided some insight on [http://www.crosswire.org/~ghellings/svnclassdocs/classSWConfig.html SWConfig]. The more proper way to obtain a list of Biblical, canonical book names is through the use of [http://www.crosswire.org/~ghellings/svnclassdocs/classVerseKey.html VerseKey]. VerseKey has a public member that stores the number of books for each testament&amp;amp;mdash;BMAX. BMAX[0] has the number of Old Testament books, and BMAX[1] has the number of New Testament books, which will be useful for use in a &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; loop. &lt;br /&gt;
&lt;br /&gt;
===== Code #2 =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QStringList getBiblicalBooks()&lt;br /&gt;
	{&lt;br /&gt;
		QStringList books;&lt;br /&gt;
		VerseKey vk;&lt;br /&gt;
		for (int b = 0; b &amp;lt; 2; b++)&lt;br /&gt;
		{&lt;br /&gt;
			// Set the Testament number to retrieve book names from that Testament.&lt;br /&gt;
			// Add 1 to b since the Testament numbers don't start at 0.&lt;br /&gt;
			vk.setTestament(b+1);&lt;br /&gt;
			for (int i = 0; i &amp;lt; vk.BMAX[b]; i++)&lt;br /&gt;
			{&lt;br /&gt;
				// Add 1 to i since the book numbers don't start at 0.&lt;br /&gt;
				vk.setBook(i+1);&lt;br /&gt;
				books &amp;lt;&amp;lt; vk.getBookName();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return books;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Getting Generic Book Table of Contents ====&lt;br /&gt;
&lt;br /&gt;
[http://www.crosswire.org/~ghellings/svnclassdocs/classTreeKey.html TreeKey] is necessary for traversing the generic book's tree. I am going to let the comments and function names speak for themselves here. Assume that &amp;lt;tt&amp;gt;module&amp;lt;/tt&amp;gt; points to a [http://www.crosswire.org/~ghellings/svnclassdocs/classSWModule.html SWModule] object.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;swmodule.h&amp;gt;&lt;br /&gt;
#include &amp;lt;treekey.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void getGenBookTOC(sword::TreeKey *tk, Class *parent)&lt;br /&gt;
	{&lt;br /&gt;
		// if no TreeKey, then obtain one from the module&lt;br /&gt;
		if (!tk)&lt;br /&gt;
			tk = dynamic_cast&amp;lt;sword::TreeKey*&amp;gt;(module-&amp;gt;getKey());&lt;br /&gt;
&lt;br /&gt;
		// Move onto the first child if any&lt;br /&gt;
		if (tk-&amp;gt;firstChild())&lt;br /&gt;
		{&lt;br /&gt;
			// Get the first child's information before moving onto the next&lt;br /&gt;
			do&lt;br /&gt;
			{&lt;br /&gt;
				// Retrieve the name so we can use it to get&lt;br /&gt;
				//  the GenBook's content later&lt;br /&gt;
				QString text = tk-&amp;gt;getText();&lt;br /&gt;
				// Keep track of the information for custom implementation&lt;br /&gt;
				Class *item = storeItemInfoForLaterUse(parent, text);&lt;br /&gt;
&lt;br /&gt;
				// If it has children, dive into it&lt;br /&gt;
				if (tk-&amp;gt;hasChildren())&lt;br /&gt;
					getGenBookTOC(tk, item);&lt;br /&gt;
			}&lt;br /&gt;
			// Move onto the next child if any&lt;br /&gt;
			while (tk-&amp;gt;nextSibling());&lt;br /&gt;
			// Move up one level in case one of the children had children&lt;br /&gt;
			tk-&amp;gt;parent();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
How you go about in implementing this is up to you.&lt;br /&gt;
&lt;br /&gt;
[[Category:Genbook]]&lt;br /&gt;
&lt;br /&gt;
==== Install Manager ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.crosswire.org/~ghellings/svnclassdocs/classInstallMgr.html InstallMgr] class is pretty easy to work with and will manage most of the install sources itself. When instantiated, it will generate the list of sources (which can later be accessed from its public attribute, &amp;lt;tt&amp;gt;sources&amp;lt;/tt&amp;gt;) from the InstallMgr.conf located at the path provided in the constructor's first paramater, &amp;lt;tt&amp;gt;privatePath&amp;lt;/tt&amp;gt;, if any. If no InstallMgr.conf exists, you can use the method &amp;lt;tt&amp;gt;refreshRemoteSourceConfiguration()&amp;lt;/tt&amp;gt; to retrieve a list of sources remotely. &amp;lt;tt&amp;gt;refreshRemoteSourceConfiguration()&amp;lt;/tt&amp;gt; will return 0 upon success. If -1 is returned, you should check to see if &amp;lt;tt&amp;gt;isUserDisclaimerConfirmed()&amp;lt;/tt&amp;gt; returns false; &amp;lt;tt&amp;gt;isUserDisclaimerConfirmed()&amp;lt;/tt&amp;gt; must return true to get passed the first process when refreshing the remote source.&lt;br /&gt;
&lt;br /&gt;
When working with the InstallMgr class, it will be useful to have a SWMgr object lying around &amp;lt;i&amp;gt;before&amp;lt;/i&amp;gt; installing any new modules and refreshing any remote sources. This is so you can provide some additional module information to the user with the help of &amp;lt;tt&amp;gt;InstallMgr::getModuleStatus()&amp;lt;/tt&amp;gt;. You rely on the return value of &amp;lt;tt&amp;gt;InstallMgr::getModuleStatus()&amp;lt;/tt&amp;gt; to display the list of modules and whether they are new (not installed) (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_NEW&amp;lt;/tt&amp;gt;), already installed (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_SAMEVERSION&amp;lt;/tt&amp;gt;), an update is available (&amp;lt;tt&amp;gt;InstallMgr::MODSTAT_UPDATED&amp;lt;/tt&amp;gt;), et cetera.&lt;br /&gt;
&lt;br /&gt;
To install modules you would of course use the method &amp;lt;tt&amp;gt;installModule()&amp;lt;/tt&amp;gt;. Local installs make use of only the first three parameters; remote installs make use of the first and last two while passing 0 to the second parameter. Note, the name of the module you want to install is obtained through &amp;lt;tt&amp;gt;SWModule::Name()&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;installModule()&amp;lt;/tt&amp;gt; will return 0 on success.&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Tutorial:How_SWORD_works&amp;diff=11170</id>
		<title>Tutorial:How SWORD works</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Tutorial:How_SWORD_works&amp;diff=11170"/>
				<updated>2012-02-21T07:51:08Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Be sure to read [http://crosswire.org/sword/develop/swordapi/apiprimer.jsp The SWORD API Primer]&lt;br /&gt;
&lt;br /&gt;
This is the index page for a series of tutorials on how SWORD works.&lt;br /&gt;
&lt;br /&gt;
These lessons are written by Troy A. Griffitts. They first appeared as emails sent to SWORD Devel.&lt;br /&gt;
&lt;br /&gt;
== Why you should love SWORD ==&lt;br /&gt;
&lt;br /&gt;
* [[Tutorials:SWORD 101|SWORD 101 &amp;amp;ndash; Text Processing Flow]]&lt;br /&gt;
* [[Tutorials:SWORD 102|SWORD 102 &amp;amp;ndash; XML Basics ]]&lt;br /&gt;
* [[Tutorials:SWORD 103|SWORD 103 &amp;amp;ndash; What is a filter?]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Tutorial:How_SWORD_works&amp;diff=11169</id>
		<title>Tutorial:How SWORD works</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Tutorial:How_SWORD_works&amp;diff=11169"/>
				<updated>2012-02-21T07:50:47Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Be sure to read [http://crosswire.org/sword/develop/swordapi/apiprimer.jsp | The SWORD API Primer]&lt;br /&gt;
&lt;br /&gt;
This is the index page for a series of tutorials on how SWORD works.&lt;br /&gt;
&lt;br /&gt;
These lessons are written by Troy A. Griffitts. They first appeared as emails sent to SWORD Devel.&lt;br /&gt;
&lt;br /&gt;
== Why you should love SWORD ==&lt;br /&gt;
&lt;br /&gt;
* [[Tutorials:SWORD 101|SWORD 101 &amp;amp;ndash; Text Processing Flow]]&lt;br /&gt;
* [[Tutorials:SWORD 102|SWORD 102 &amp;amp;ndash; XML Basics ]]&lt;br /&gt;
* [[Tutorials:SWORD 103|SWORD 103 &amp;amp;ndash; What is a filter?]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Tutorial:How_SWORD_works&amp;diff=11168</id>
		<title>Tutorial:How SWORD works</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Tutorial:How_SWORD_works&amp;diff=11168"/>
				<updated>2012-02-21T07:50:28Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Be sure to read the SWORD API Primer [http://crosswire.org/sword/develop/swordapi/apiprimer.jsp | The SWORD API Primer]&lt;br /&gt;
&lt;br /&gt;
This is the index page for a series of tutorials on how SWORD works.&lt;br /&gt;
&lt;br /&gt;
These lessons are written by Troy A. Griffitts. They first appeared as emails sent to SWORD Devel.&lt;br /&gt;
&lt;br /&gt;
== Why you should love SWORD ==&lt;br /&gt;
&lt;br /&gt;
* [[Tutorials:SWORD 101|SWORD 101 &amp;amp;ndash; Text Processing Flow]]&lt;br /&gt;
* [[Tutorials:SWORD 102|SWORD 102 &amp;amp;ndash; XML Basics ]]&lt;br /&gt;
* [[Tutorials:SWORD 103|SWORD 103 &amp;amp;ndash; What is a filter?]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Tutorial:How_SWORD_works&amp;diff=11167</id>
		<title>Tutorial:How SWORD works</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Tutorial:How_SWORD_works&amp;diff=11167"/>
				<updated>2012-02-21T07:49:21Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Be sure to read the SWORD API Primer [http://crosswire.org/sword/develop/swordapi/apiprimer.jsp]&lt;br /&gt;
&lt;br /&gt;
This is the index page for a series of tutorials on how SWORD works.&lt;br /&gt;
&lt;br /&gt;
These lessons are written by Troy A. Griffitts. They first appeared as emails sent to SWORD Devel.&lt;br /&gt;
&lt;br /&gt;
== Why you should love SWORD ==&lt;br /&gt;
&lt;br /&gt;
* [[Tutorials:SWORD 101|SWORD 101 &amp;amp;ndash; Text Processing Flow]]&lt;br /&gt;
* [[Tutorials:SWORD 102|SWORD 102 &amp;amp;ndash; XML Basics ]]&lt;br /&gt;
* [[Tutorials:SWORD 103|SWORD 103 &amp;amp;ndash; What is a filter?]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Current_Projects&amp;diff=11166</id>
		<title>Current Projects</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Current_Projects&amp;diff=11166"/>
				<updated>2012-02-21T07:36:06Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Use this page to provide information about current projects and proposals for new software applications.&lt;br /&gt;
&lt;br /&gt;
==New front-end applications==&lt;br /&gt;
Use this section to announce work begun for developing new SWORD or JSword based front-ends.  They should be mentioned here even if they are only at the proof of concept stage, so that may prevent duplication of effort.&lt;br /&gt;
&lt;br /&gt;
=== Tyndale STEP ===&lt;br /&gt;
&lt;br /&gt;
* [[Frontends:TyndaleStep|Tyndale STEP - Scripture Tools for Every Pastor]] &amp;amp;ndash; in collaboration with Tyndale House, Cambridge.&lt;br /&gt;
&lt;br /&gt;
=== Android platform ===&lt;br /&gt;
&lt;br /&gt;
* Troy has begun work on developing an [http://en.wikipedia.org/wiki/Android_%28operating_system%29 Android] front-end called '''Bishop'''. A preliminary APK file is now available for early testing. ''Visit the CrossWire mobile-devel mailing list if you would like to help''.&lt;br /&gt;
&lt;br /&gt;
* It is feasible to convert any J2ME application to an Android APK using the '''J2ME Bridge''' service available at [http://www.netmite.com/ netmite.com]. Several '''Go Bible''' applications have been converted as an experiment. The conversion process works OK, but leaves the MIDlet icon unchanged in size, which does not conform to Android guidelines. NB. Some languages did not have font support by default.&lt;br /&gt;
&lt;br /&gt;
=== Java ME application framework ===&lt;br /&gt;
&lt;br /&gt;
* [[Projects:Go Bible|Go Bible]] is not a SWORD front-end ''per se''. Nevertheless it is CrossWire's first project for the [http://en.wikipedia.org/wiki/Java_Platform,_Micro_Edition Java ME] application framework. Project leader is [[User:David Haslam|David Haslam]].&lt;br /&gt;
&lt;br /&gt;
=== Blackberry smart phones ===&lt;br /&gt;
&lt;br /&gt;
* '''Go Bible''' source code has been adapted and successfully ported to the Blackberry platform. It includes full support for touch-screen controls. Download '''The Bible''' via a link in http://www.mobileappfarm.com/&lt;br /&gt;
&lt;br /&gt;
=== Qt Framework ===&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/projects/bibletimemini/ BibleTime Mini] project based on [http://bibletime.info/ BibleTime] source code and optimized for use on mobile devices. It runs now on Windows and Windows Mobile platforms, but it is easy to port it on other mobile platforms supported by Qt (Symbian, MeeGo, Maemo, Android).&lt;br /&gt;
&lt;br /&gt;
=== HP/Palm webOS ===&lt;br /&gt;
* [http://zefanjas.de/biblez BibleZ HD] is a SWORD based bible reader app for the HP TouchPad and the HP Pre3.&lt;br /&gt;
&lt;br /&gt;
== Ideas for new projects ==&lt;br /&gt;
&lt;br /&gt;
* See [[Ideas for new projects]].&lt;br /&gt;
&lt;br /&gt;
==Developer To Do Lists==&lt;br /&gt;
&lt;br /&gt;
* Scribe: http://www.crosswire.org/~scribe/todo/&lt;br /&gt;
&lt;br /&gt;
* Osk: [[User:Osk/Todo]]&lt;br /&gt;
&lt;br /&gt;
* Go Bible: [[User:David Haslam]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projects]]&lt;br /&gt;
[[Category:Versification]]&lt;br /&gt;
[[Category:SWORD Frontends]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Encoding&amp;diff=10400</id>
		<title>Encoding</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Encoding&amp;diff=10400"/>
				<updated>2011-08-31T22:01:28Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Searching in modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As many people are making mistakes with encoding, here is a small text where I try to explain what does exist.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Computers are working on words of bits, usually 8, 16, 32 or 64 today. Those words are meanless for the computer, they can be interpreted in many ways, as numbers, as instructions, as characters, as true/false values...&lt;br /&gt;
&lt;br /&gt;
An encoding is a set of rules defining how to translate a sequence of words into a sequence of characters.&lt;br /&gt;
&lt;br /&gt;
== Single byte encoding ==&lt;br /&gt;
As computer can easily work with groups of bit called bytes, one of the first solution was to use a different byte value for every character. It's easy to understand and to program: every byte encode a single character; it's space efficient (memory was really expensive), you can size a string by counting bytes... You can have up to 256 characters as a byte can have 256 different values.&lt;br /&gt;
&lt;br /&gt;
When computers was mostly an occidental story, [http://en.wikipedia.org/wiki/ASCII ASCII] was one of the first and most successful encoding. It define 128 characters, including upper case and lower case of the Latin alphabet, digits, punctuation and control. Values above 127 are not defined (allowing extensions or controls values). It is a good set of characters to write in English.&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/EBCDIC EBCDIC] is another byte encoding defined by IBM at the same time which include mostly the sames characters but values above 127 are not free.&lt;br /&gt;
&lt;br /&gt;
As many languages are using characters not included in the original ASCII set; many country, or group of country defined new encoding based on the ASCII encoding. Missing characters are filled in the unused 128 values (above 127). As 128 values is not enough for every earth alphabet, we have many of theses encodings. One of the most successful are [http://en.wikipedia.org/wiki/ISO/IEC_8859 ISO-8859] and in particular [http://en.wikipedia.org/wiki/ISO/IEC_8859-1 ISO-8859-1] which include characters for 29 western European and African languages.&lt;br /&gt;
&lt;br /&gt;
== Unicode ==&lt;br /&gt;
Theses encoding where 1 byte correspond to 1 character are really great for English, it's working well for languages based on the Latin alphabet, but is really bad for other alphabets. Some of them use more than 256 signs.&lt;br /&gt;
&lt;br /&gt;
You can not write a text with characters from different encoding; and when sending a text, you always have to agree on a common encoding.&lt;br /&gt;
&lt;br /&gt;
Here is Unicode. But first, learn this: '''Unicode is not an encoding'''&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Unicode Unicode] is an industry standard where every character in any real language, past or present (now over 100,000 characters), is having a different numeric value called a code-point. This code-point can be recorded in many ways. The first 128 code-points are the same values used in the ASCII encoding.&lt;br /&gt;
&lt;br /&gt;
Did you remember, Unicode is not an encoding? Ok, in fact, Unicode also define many different encodings to store code-point.&lt;br /&gt;
&lt;br /&gt;
== Multi-bytes encoding ==&lt;br /&gt;
One word = One character was a great rule, let's keep it. When Unicode was young, Code-point were all under 65536. So we can represent every character with a 2 bytes word, (a 16 bits word). This is called [http://en.wikipedia.org/wiki/UTF-16/UCS-2 UCS2]. UCS2 is deprecated.&lt;br /&gt;
&lt;br /&gt;
Now, Code-point are under 2^32, so we can represent every character with a 4 bytes word, (a 32 bit word). This is called [http://en.wikipedia.org/wiki/UTF-32/UCS-4 UCS4], or UTF-32.&lt;br /&gt;
&lt;br /&gt;
For an English text, because every character is encoded with 4 bytes, the size if 4 time bigger than the same text in ASCII encoding.&lt;br /&gt;
&lt;br /&gt;
== Variable byte length encoding ==&lt;br /&gt;
UCS2 and UCS4 are great, but it takes too much space, and if your old program does work with 1 byte = 1 character, it will not work. We need an encoding where ASCII characters are the same, but with the ability to encode any Unicode character.&lt;br /&gt;
&lt;br /&gt;
So [http://en.wikipedia.org/wiki/UTF-8 UTF-8] was created. It's a variable-byte length encoding. ASCII character are the same as in an ASCII encoded text; and other characters are encoded using 2, 3 or 4 characters. You should use this for all your SWORD files now.&lt;br /&gt;
&lt;br /&gt;
For programs written to use UCS2, there is also an extension, [http://en.wikipedia.org/wiki/UTF-16/UCS-2 UTF-16] is designed to use a single 2 bytes word for characters under 65536, and a pair of words above.&lt;br /&gt;
&lt;br /&gt;
== Common mistakes ==&lt;br /&gt;
If you use a wrong encoding, some characters will not be displayed correctly as the computer decoded it using incorrect rules.&lt;br /&gt;
&lt;br /&gt;
The two most common encoding are ISO-8859-1 and UTF-8&lt;br /&gt;
&lt;br /&gt;
=== 1. An UTF-8 text decoded as ISO-8859-1 (or ISO-8859-*) ===&lt;br /&gt;
&lt;br /&gt;
You will see two or three characters for non-ASCII ones, usually Ã and ©.&lt;br /&gt;
 Et Dieu vit la lumière, qu'elle était bonne; et Dieu sépara la lumière d'avec les ténèbres.&lt;br /&gt;
will show as&lt;br /&gt;
 Et Dieu vit la lumiÃ¨re, qu'elle Ã©tait bonne; et Dieu sÃ©para la lumiÃ¨re d'avec les tÃ©nÃ¨bres.&lt;br /&gt;
&lt;br /&gt;
=== 2. An ISO-8859-1 text decoded as UTF-8 ===&lt;br /&gt;
&lt;br /&gt;
The UTF-8 decoder will find an invalid multi-byte character, it can report an error, or put question marks or squares instead:&lt;br /&gt;
&lt;br /&gt;
 Et Dieu vit la lumière, qu'elle était bonne; et Dieu sépara la lumière d'avec les ténèbres.&lt;br /&gt;
will show as&lt;br /&gt;
 Et Dieu vit la lumi?re, qu'elle ?tait bonne; et Dieu s?para la lumi?re d'avec les t?n?bres.&lt;br /&gt;
&lt;br /&gt;
Warning: If you see squares, it can also be a font problem! This happen if you're using a font which does not define some characters you are using.&lt;br /&gt;
&lt;br /&gt;
=== 3. Using a font that does not include the characters you want ===&lt;br /&gt;
&lt;br /&gt;
If you use accented greek characters, for example, but do not use a unicode font that supports precomposed greek characters (like @Arial Unicode MS) accented characters will appear as empty rectangles in your text. In BibleCS you can change the font in Options/Preferences/Display.&lt;br /&gt;
&lt;br /&gt;
== Normalization ==&lt;br /&gt;
For module making, it is strongly recommended that Unicode source files encoded as UTF-8 are [http://unicode.org/faq/normalization.html normalized] to NFC. [http://en.wikipedia.org/wiki/Combining_character Combining characters] are permitted in source text, e.g. for diacriticals where there is no precomposed character in the Unicode Standard.&amp;lt;ref&amp;gt;Be aware, however, that many fonts in many operating systems lack such ability, and that many of our front-ends use rendering widgets which could easily barf on such functionality.  Xiphos and BibleTime ought to be OK from a renderer's perspective, provided a good system font can be found, but it may be that BibleDesktop would suffer. BibleCS probably has access to good fonts, but it uses very different technologies, so check that one carefully. BPBible, especially older versions, might have a tough time with advanced character sets. Eloquent is probably fine!&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Searching in modules ===&lt;br /&gt;
The simple rule is that if a search request and the indexed text are not normalized the same, there will not be a hit.&lt;br /&gt;
&lt;br /&gt;
Modules are prepared for search using StripFilter mechanisms.  Frontends should be sure to call SWModule::StripText() on the user input before passing to the search method to make sure both are normalized the same.&lt;br /&gt;
&lt;br /&gt;
Regarding rendering, each front-end should not assume that the module is encoded in a way that works for it. When we did experiments, NFC was the best across the widest variety of front-ends. But no one way was best for every script, font or display engine. It would be best for each front-end to normalize the text before display. This could be different than the normalization used for search.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Fonts]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Unicode_equivalence Unicode equivalence]&lt;br /&gt;
&lt;br /&gt;
* [http://scripts.sil.org/TECkitIntro TECkit] &amp;amp;ndash; a Text Encoding Conversion toolkit. &lt;br /&gt;
&lt;br /&gt;
:As well as being able to convert between encodings, it can also be used to convert text from one script to another, for any language that can be represented by more than one script. Example: Some languages in Central Asia can be represented in either Latin or Cyrillic script.&lt;br /&gt;
&lt;br /&gt;
* [http://www.alanwood.net/unicode/ Alan Wood’s Unicode Resources] &amp;amp;ndash; Unicode and Multilingual Support in HTML, Fonts, Web Browsers and Other Applications (including text editors)&lt;br /&gt;
&lt;br /&gt;
* [http://www.ewellic.org/compression.html A survey of Unicode compression] &amp;amp;ndash; by Doug Ewell.&lt;br /&gt;
&lt;br /&gt;
* [http://babelstone.blogspot.com/2011/06/whats-new-in-unicode-61.html What's new in Unicode 6.1 ?] &amp;amp;ndash; by Andrew West.&lt;br /&gt;
&lt;br /&gt;
[[Category:Unicode]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=10029</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=10029"/>
				<updated>2011-05-03T02:04:02Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a .conf File=&lt;br /&gt;
==.conf File Layout==&lt;br /&gt;
The conf file tells the SWORD engine how to treat installed module files, etc. which kind of markup they contain, and so forth.&lt;br /&gt;
&lt;br /&gt;
Below is a listing of the possible directives in that file. Each of these directives of the form key=value. Some keys can be repeated. Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Some values allow RTF and some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Note on RTF, only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in bold. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [name]&lt;br /&gt;
| Each conf file begins with [name], replacing &amp;quot;name&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to A-Z, a-z, 0-9 and _.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths for a module named [mymodule], depending on the type of module (Bible text, commentary, lexcon or dictionary, general book) and the data driver used are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
| &amp;lt;b&amp;gt;RawText&amp;lt;/b&amp;gt; (for uncompressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zText&amp;lt;/b&amp;gt; (for compressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom&amp;lt;/b&amp;gt; (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom4&amp;lt;/b&amp;gt; (for uncompressed Commentaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zCom&amp;lt;/b&amp;gt; (for compressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HREFCom&amp;lt;/b&amp;gt; (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawFiles&amp;lt;/b&amp;gt; (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD&amp;lt;/b&amp;gt; (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD4&amp;lt;/b&amp;gt; (for uncompressed Dictionaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zLD&amp;lt;/b&amp;gt; (for compressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawGenBook&amp;lt;/b&amp;gt; (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Elements to indicate features ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
| &amp;lt;b&amp;gt;ZIP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski LZSS]&amp;lt;/b&amp;gt;&lt;br /&gt;
Used to indicate how a compressed module (zText, zCom, zLD) is compressed.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
| &amp;lt;b&amp;gt;BOOK&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;CHAPTER&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VERSE&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zText and zCom to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
| &amp;lt;b&amp;gt;TreeKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VerseKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bible's which do not conform to any supported versification system in SWORD.  See [[Alternate_Versification|alternate versification]].&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the unlock key for enciphered modules. A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But this file needs it to be readable, plain text, without leading or trailing spaces. Leave a blank line (&amp;quot;CipherKey=&amp;quot;) to indicate that the module is enciphered but has no unlock key. (Omit for unlocked modules.)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&amp;lt;b&amp;gt;Catholic&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Catholic2&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;German&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Leningrad&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Luther&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MT&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Synodal&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;SynodalP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Vulg&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Used to specify the versification employed by a Bible module.&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
| &amp;lt;b&amp;gt;GBFStrongs&amp;lt;/b&amp;gt; (For GBF texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFFootnotes&amp;lt;/b&amp;gt; (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFMorph&amp;lt;/b&amp;gt; (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFHeadings&amp;lt;/b&amp;gt; (For GBF texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFRedLetterWords&amp;lt;/b&amp;gt; (For GBF texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLStrongs&amp;lt;/b&amp;gt; (For THML texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLFootnotes&amp;lt;/b&amp;gt; (For THML texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLScripref&amp;lt;/b&amp;gt; (For THML texts having cross references)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLMorph&amp;lt;/b&amp;gt; (For THML texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLHeadings&amp;lt;/b&amp;gt; (For THML texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLVariants&amp;lt;/b&amp;gt; (For THML texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLLemma&amp;lt;/b&amp;gt; (For THML texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8Cantillation&amp;lt;/b&amp;gt; (For Hebrew texts having cantillation marks)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8GreekAccents&amp;lt;/b&amp;gt; (For Greek texts having accents)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8HebrewPoints&amp;lt;/b&amp;gt; (For Hebrew texts having vowel points)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISStrongs&amp;lt;/b&amp;gt; (For OSIS texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISFootnotes&amp;lt;/b&amp;gt; (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISScripref&amp;lt;/b&amp;gt; (For OSIS texts having cross reference type notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISMorph&amp;lt;/b&amp;gt; (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISHeadings&amp;lt;/b&amp;gt; (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISVariants&amp;lt;/b&amp;gt; (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRedLetterWords&amp;lt;/b&amp;gt; (For OSIS texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISLemma&amp;lt;/b&amp;gt; (For OSIS texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRuby&amp;lt;/b&amp;gt; (For Japanese OSIS texts with [http://www.w3.org/TR/ruby/ ruby]: Kana glosses of Han characters)&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. crossreferences in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
| &amp;lt;b&amp;gt;LtoR&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RtoL&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script. Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script (technically [http://en.wikipedia.org/wiki/Bi-directional_text bi-directional]). If the RtoL script is transliterated into a LtoR script, set the value to LtoR.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&lt;br /&gt;
| &amp;lt;b&amp;gt;Plaintext&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBF&amp;lt;/b&amp;gt; General Bible Format: http://www.ebible.org/bible/gbf.htm&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThML&amp;lt;/b&amp;gt; Theological Markup Language: http://www.ccel.org/ThML&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSIS&amp;lt;/b&amp;gt; Open Scriptural Information Standard: http://www.bibletechnologies.net&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;TEI&amp;lt;/b&amp;gt; Text Encoding Initiative: http://www.tei-c.org/P4X/DI.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the &amp;lt;b&amp;gt;markup&amp;lt;/b&amp;gt; used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries.&amp;lt;br/&amp;gt;&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
| &amp;lt;b&amp;gt;UTF-8&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Latin-1&amp;lt;/b&amp;gt; (cp1252; see the warning)&amp;lt;br/&amp;gt;&lt;br /&gt;
The preferred encoding of texts is UTF-8. UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Latin-1 is defined by [http://en.wikipedia.org/wiki/Windows-1252 Windows Codepage 1252 (cp1252)] which is a superset of ISO 8859-1.&lt;br /&gt;
This encoding indicates how the conf and the module are encoded.&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: &amp;quot;Latin-1&amp;quot; is an ambiguously used term. See [http://en.wikipedia.org/wiki/ISO_8859-1 ISO 8859-1 at Wikipedia] for technical details; in reality Latin-1 is regularly used as a synonym for ISO-8859-1. Front-end implementors should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.&amp;lt;/i&amp;gt;&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for General Book module types (these are keyed with a TreeKey table of contents).  Indicates the preferred level from a leaf in the tree to display for context. e.g., 1 will only show the requested entry; 2 will show the entry, surrounded by all siblings, etc.&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the font to be used for display of the module if it is available. Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| OSISqToTick&lt;br /&gt;
| true/false&amp;lt;br/&amp;gt;&lt;br /&gt;
When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
| &amp;lt;b&amp;gt;StrongsNumbers&amp;lt;/b&amp;gt; (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekParse&amp;lt;/b&amp;gt; (for modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewParse&amp;lt;/b&amp;gt; (for modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;DailyDevotion&amp;lt;/b&amp;gt; (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossary&amp;lt;/b&amp;gt; (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that contain images of any type)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A shorter abbreviation which can be displayed instead of the full name. For example, KJV for the King James Version.&lt;br /&gt;
| The module name.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&amp;lt;br/&amp;gt;RTF&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a or 1.1.3.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to alert users to what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the minimum version of the SWORD library required for this module.&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
| &amp;lt;b&amp;gt;Daily Devotional&amp;lt;/b&amp;gt; (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossaries&amp;lt;/b&amp;gt; (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Cults / Unorthodox / Questionable Material&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Essays&amp;lt;/b&amp;gt; (for essays)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Maps&amp;lt;/b&amp;gt; (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Biblical Texts&amp;lt;/b&amp;gt; (for Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Commentaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Lexicons / Dictionaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Generic Books&amp;lt;/b&amp;gt; (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&lt;br /&gt;
| Biblical Texts (for /(Raw&amp;amp;#124;z)Text4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries (for /(Raw&amp;amp;#124;z&amp;amp;#124;HREF)Com4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries (for /(Raw&amp;amp;#124;z)LD4?/&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books (for RawGenBook)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| &amp;amp;lt;tree/string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module and should include a value according to BCP 47 (i.e. [http://tools.ietf.org/html/rfc4646 RFC 4646] &amp;amp; [http://tools.ietf.org/html/rfc4647 RFC 4647]). When available use a 2-letter code from [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1 codes] ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English). If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T code] (e.g. ceb for Cebuano) ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]). Failing that, use [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] ([http://www.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages, or [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macrolanguages. The regex for this subtag will be /[a-z]{2,3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian). The regex for this subtag will be /[A-Z][a-z]{3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English). The regex for this subtag will be /[A-Z]{2}/&lt;br /&gt;
&lt;br /&gt;
Individual subtags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
| &amp;amp;lt;integer (indicating bytes)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
| &amp;amp;lt;ISO date string (yyyy-mm-dd)&amp;amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
| &amp;amp;lt;name of module&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element names a module that is made obsolete by this module, usually indicated by the former name of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
| &amp;amp;lt;integer (indicating year)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionLicense&lt;br /&gt;
| &amp;lt;b&amp;gt;Public Domain&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission to distribute granted to CrossWire&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Free non-commercial distribution&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Freely distributable&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission granted to distribute non-commercially in SWORD format&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/fdl.html GFDL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/gpl.html GPL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by by]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last six licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
| &amp;amp;lt;string, probably a URL&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| UnlockURL&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the URL (a bare URL, not an HTML &amp;amp;lt;a&amp;amp;gt; link) of a web page for unlocking instructions/payment&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Where it makes sense, the values in the .conf file may be internationalized by appending _lang where lang is replaced by an appropriate code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang above for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, then append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh_Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh_Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
The language for .conf entries without the locale modifier is the default and must be the language of the module itself (as specified in Lang=) or English.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
*At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no SWORD library or front end support for it.&lt;br /&gt;
*See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Osis2mod&amp;diff=9990</id>
		<title>Osis2mod</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Osis2mod&amp;diff=9990"/>
				<updated>2011-04-21T16:42:38Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Transformations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
osis2mod transforms an OSIS encoded [[OSIS Bibles|Bible]] or [[OSIS_Commentaries|commentary]] into a SWORD module.&lt;br /&gt;
&lt;br /&gt;
== Current status ==&lt;br /&gt;
&lt;br /&gt;
:''Please describe current status of osis2mod, including a list of any outstanding issues or unsolved difficulties''.&lt;br /&gt;
&lt;br /&gt;
==History of Changes==&lt;br /&gt;
The following outlines in reverse, chronological order the major changes to osis2mod. When several changes were made over the span of a few days, they are lumped into the most recent date. Bug fixes are not mentioned.&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; border=&amp;quot;0&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
!width=&amp;quot;10%&amp;quot;|Date&lt;br /&gt;
!Feature&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2009-06-06'''&lt;br /&gt;
|&lt;br /&gt;
* Improved handling of chapter introductions.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2009-05-23'''&lt;br /&gt;
|&lt;br /&gt;
* '''-d flags''' now always available.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2009-05-10'''&lt;br /&gt;
|&lt;br /&gt;
*Added '''-d flags''' as a compile time option.&lt;br /&gt;
*Improved exit codes and documented them here.&lt;br /&gt;
*Labeled all diagnostic and debug output.&lt;br /&gt;
*Can now read from standard input.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2009-04-28'''&lt;br /&gt;
|&lt;br /&gt;
*Predictable handling of inter-verse material.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2009-04-24'''&lt;br /&gt;
|&lt;br /&gt;
*'''-v v11n''' added to support [[Alternate Versification]].&lt;br /&gt;
*'''-s &amp;lt;2|4&amp;gt;''' added to support uncompressed commentaries with large entries (exceeding 64K bytes).&lt;br /&gt;
*Replace paragraph hack with milestoned paragraphs: &amp;amp;lt;div type=&amp;quot;paragraph&amp;quot; sID=&amp;quot;xxx&amp;quot;/&amp;gt; ... &amp;amp;lt;div type=&amp;quot;paragraph&amp;quot; eID=&amp;quot;xxx&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2008-09-11'''&lt;br /&gt;
|&lt;br /&gt;
*Words of Christ (WoC) can be marked up naturally. osis2mod does the right thing.&lt;br /&gt;
*Container elements converted to their milestoned form.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2008-02-29'''&lt;br /&gt;
|&lt;br /&gt;
*Now supports commentaries in addition to Bibles.&lt;br /&gt;
*Added utf-8 detection and automatic conversion from cp1252 and iso8859-1 to utf-8, making that the default behavior&lt;br /&gt;
*Added NFC normalization, making it the default&lt;br /&gt;
*Now handles the full definition of an osisID and an osisRef, including workID and grain.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2007-09-27'''&lt;br /&gt;
|&lt;br /&gt;
*Changed command-line parsing from positional parameters to flags.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2007-05-13'''&lt;br /&gt;
|&lt;br /&gt;
*All whitespace tokens are converted into blanks and adjacent spaces are merged into one. Leading whitespace on each verse is still removed.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2007-05-01'''&lt;br /&gt;
|&lt;br /&gt;
*Added version identification to the running of osis2mod.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2007-04-24'''&lt;br /&gt;
|&lt;br /&gt;
*Added ignoring of unknown books&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2006-07-15'''&lt;br /&gt;
|&lt;br /&gt;
*Optimized writing to module.&lt;br /&gt;
*Added simple transformations of &amp;amp;lt;q&amp;gt; and &amp;amp;lt;p&amp;gt; into milestones.&lt;br /&gt;
*Now allow empty attributes, such as marker=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2006-07-04'''&lt;br /&gt;
|&lt;br /&gt;
*Updated to support OSIS 2.1&lt;br /&gt;
*Added validation that verses in isolation are well formed&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2005-12-22'''&lt;br /&gt;
|&lt;br /&gt;
*Added command-line options for compress and encipher.&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2005-04-29'''&lt;br /&gt;
|&lt;br /&gt;
*Removed &amp;amp;lt;verse&amp;gt; and &amp;amp;lt;/verse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2005-01-23'''&lt;br /&gt;
|&lt;br /&gt;
*Reverted pre-verse title handling&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2004-06-12'''&lt;br /&gt;
|&lt;br /&gt;
*Removed pre-verse title handling&lt;br /&gt;
*Added &amp;amp;lt;verse&amp;gt; and &amp;amp;lt;/verse&amp;gt;&lt;br /&gt;
*Added support for milestoned version of some OSIS elements&lt;br /&gt;
*Added support for verses that are not in the KJV versification by appending them to the closest prior verse.&lt;br /&gt;
*Added support for osisIDs with sub-verse references (i.e. osisID grains)&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2004-05-19'''&lt;br /&gt;
|&lt;br /&gt;
*Added support for linked verses&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2003-11-20'''&lt;br /&gt;
|&lt;br /&gt;
*Added recognition for &amp;lt;chapter&amp;gt; element&lt;br /&gt;
&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
'''2003-05-26'''&lt;br /&gt;
|&lt;br /&gt;
*Initial version&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Transformations==&lt;br /&gt;
Osis2mod performs the following transformations:&lt;br /&gt;
* '''Whitespace''' -- Allows for human-readable OSIS files.&lt;br /&gt;
**Leading whitespace on books, chapters and verses is removed&lt;br /&gt;
**Whitespace is normalized into blanks&lt;br /&gt;
**Multiple adjacent whitespace is reduced to a single space&lt;br /&gt;
* '''Unicode handling''' - All modules should be UTF-8, NFC.&lt;br /&gt;
**Latin-1 (cp1252 and iso8859-1) are converted into UTF-8&lt;br /&gt;
**UTF-8 is normalized into NFC&lt;br /&gt;
* '''Milestone conversion''' - necessary for frontends to show a verse at a time.&amp;lt;br/&amp;gt;(note: genX is unique for an sID/eID pair, where X is a number.)&lt;br /&gt;
** &amp;amp;lt;q ...&amp;gt;...&amp;amp;lt;/q&amp;gt; is converted into &amp;amp;lt;q sID=&amp;quot;genX&amp;quot; .../&amp;gt;...&amp;amp;lt;q eID=&amp;quot;genX&amp;quot; .../&amp;gt;. Note: Quotes with who=&amp;quot;Jesus&amp;quot; are not transformed at this time.&lt;br /&gt;
** &amp;amp;lt;p ...&amp;gt;...&amp;amp;lt;/p&amp;gt; becomes &amp;amp;lt;div type=&amp;quot;paragraph&amp;quot; sID=&amp;quot;genX&amp;quot; .../&amp;gt;... &amp;amp;lt;div type=&amp;quot;paragraph&amp;quot; eID=&amp;quot;genX&amp;quot; ...&amp;gt;.&lt;br /&gt;
** &amp;amp;lt;chapter ...&amp;gt;...&amp;amp;lt;/chapter&amp;gt; becomes &amp;amp;lt;chapter sID=&amp;quot;genX&amp;quot; .../&amp;gt;...&amp;amp;lt;chapter eID=&amp;quot;genX&amp;quot; .../&amp;gt;&lt;br /&gt;
** &amp;amp;lt;closer ...&amp;gt;...&amp;amp;lt;/closer&amp;gt; becomes &amp;amp;lt;closer sID=&amp;quot;genX&amp;quot; .../&amp;gt;...&amp;amp;lt;closer eID=&amp;quot;genX&amp;quot; .../&amp;gt;&lt;br /&gt;
** &amp;amp;lt;div ...&amp;gt;...&amp;amp;lt;/div&amp;gt; becomes &amp;amp;lt;div sID=&amp;quot;genX&amp;quot; .../&amp;gt;...&amp;amp;lt;div eID=&amp;quot;genX&amp;quot; .../&amp;gt;&lt;br /&gt;
** &amp;amp;lt;l ...&amp;gt;...&amp;amp;lt;/l&amp;gt; becomes &amp;amp;lt;l sID=&amp;quot;genX&amp;quot; .../&amp;gt;...&amp;amp;lt;l eID=&amp;quot;genX&amp;quot; .../&amp;gt;&lt;br /&gt;
** &amp;amp;lt;lg ...&amp;gt;...&amp;amp;lt;/lg&amp;gt; becomes &amp;amp;lt;lg sID=&amp;quot;genX&amp;quot; .../&amp;gt;...&amp;amp;lt;lg eID=&amp;quot;genX&amp;quot; .../&amp;gt;&lt;br /&gt;
** &amp;amp;lt;salute ...&amp;gt;...&amp;amp;lt;/salute&amp;gt; becomes &amp;amp;lt;salute sID=&amp;quot;genX&amp;quot; .../&amp;gt;...&amp;amp;lt;salute eID=&amp;quot;genX&amp;quot; .../&amp;gt;&lt;br /&gt;
** &amp;amp;lt;signed ...&amp;gt;...&amp;amp;lt;/signed&amp;gt; becomes &amp;amp;lt;signed sID=&amp;quot;genX&amp;quot; .../&amp;gt;...&amp;amp;lt;signed eID=&amp;quot;genX&amp;quot; .../&amp;gt;&lt;br /&gt;
** &amp;amp;lt;speech ...&amp;gt;...&amp;amp;lt;/speech&amp;gt; becomes &amp;amp;lt;speech sID=&amp;quot;genX&amp;quot; .../&amp;gt;...&amp;amp;lt;speech eID=&amp;quot;genX&amp;quot; .../&amp;gt;&lt;br /&gt;
** &amp;amp;lt;verse ...&amp;gt;...&amp;amp;lt;/verse&amp;gt; becomes (when using -d 2 for debugging.) &amp;amp;lt;milestone resp=&amp;quot;v&amp;quot; sID=&amp;quot;genX&amp;quot; ... /&amp;gt;...&amp;amp;lt;milestone resp=&amp;quot;v&amp;quot; eID=&amp;quot;genX&amp;quot; ... /&amp;gt;&lt;br /&gt;
* '''Words of Christ''' - necessary for front-ends to appropriately highlight the WOC, a verse at a time.&lt;br /&gt;
** &amp;amp;lt;q sID=&amp;quot;XXX&amp;quot; who=&amp;quot;Jesus&amp;quot; .../&amp;gt;...&amp;amp;lt;eID=&amp;quot;XXX&amp;quot; who=&amp;quot;Jesus&amp;quot; .../&amp;gt; becomes &amp;amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;&amp;amp;lt;q sID=&amp;quot;XXX&amp;quot; .../&amp;gt;...&amp;amp;lt;q eID=&amp;quot;XXX&amp;quot; .../&amp;gt;&amp;amp;lt;/q&amp;gt;&lt;br /&gt;
** &amp;amp;lt;q who=&amp;quot;Jesus&amp;quot; ...&amp;gt;...&amp;amp;lt;/q&amp;gt; becomes &amp;amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;&amp;amp;lt;q sID=&amp;quot;genX&amp;quot; .../&amp;gt;...&amp;amp;lt;q eID=&amp;quot;genX&amp;quot; .../&amp;gt;&amp;amp;lt;/q&amp;gt;&lt;br /&gt;
** Within the following construct, &amp;amp;lt;q who=&amp;quot;Jesus&amp;quot; marker=&amp;quot;&amp;quot;&amp;gt;...&amp;lt;/q&amp;gt; will surround verse text.&lt;br /&gt;
* '''Pre-Verse Titles''' (obsolete with SVN revision 2358 for the SWORD 1.6.0 release)&lt;br /&gt;
** Titles immediately preceeding a verse are converted into &amp;amp;lt;title type=&amp;quot;section&amp;quot; subType=&amp;quot;x-preverse&amp;gt;...&amp;amp;lt;/title&amp;gt;&lt;br /&gt;
** Interverse tags not in titles are appended to prior verse.&lt;br /&gt;
** (In 1.6.0) &amp;amp;lt;div sID=&amp;quot;pvX&amp;quot; type=&amp;quot;x-milestone&amp;quot; subType=&amp;quot;x-preverse&amp;quot;/&amp;gt;...&amp;amp;lt;div eID=&amp;quot;pvX&amp;quot; type=&amp;quot;x-milestone&amp;quot; subType=&amp;quot;x-preverse&amp;quot;/&amp;gt; will replace preverse titles.&lt;br /&gt;
&lt;br /&gt;
Note: With 1.6.0, these transformations can be reversed to produce the original elements.&lt;br /&gt;
&lt;br /&gt;
==Handling of Introductions, Titles and Inter-Verse Material==&lt;br /&gt;
SWORD for module, testament, book and chapter introductory material. Those introductions can have appropriate titles as well. At this time, osis2mod does not handle module and testament introductions.&lt;br /&gt;
&lt;br /&gt;
In SWORD 1.6.0 the handling of this material has changed.&lt;br /&gt;
&lt;br /&gt;
Please Note: In the following, the effects of the above transformations are not shown.&lt;br /&gt;
&lt;br /&gt;
===Book Introductions and Titles===&lt;br /&gt;
Book introductions and titles are straight forward. It includes the start of the book and everything following it up to, but not including the start of the chapter. See [[OSIS Bibles]] for best practices in marking up titles and introductions.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;book&amp;quot; ...&amp;gt;&lt;br /&gt;
 ... introductory material ...&lt;br /&gt;
 &amp;amp;lt;chapter&amp;quot;...&amp;gt;&lt;br /&gt;
will put the following into the book introduction:&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;book&amp;quot; ...&amp;gt;&lt;br /&gt;
 ... introductory material ...&lt;br /&gt;
&lt;br /&gt;
===Chapter Introductions===&lt;br /&gt;
Chapter introductions and titles are a bit problematic. Between the start of a chapter and its first verse, we could have a chapter title, a chapter introduction and/or a start of a section of verses or a titled verse. Osis2mod now handles this in a predictable fashion. From the start of the chapter up to and not including a section div or a title that has a type that is not ''main'', ''chapter'' or ''sub'', the content is chapter introduction. After that, it is part of the verse.&lt;br /&gt;
&lt;br /&gt;
Specifically, the following list gives the possible first elements following the chapter introduction.:&lt;br /&gt;
*&amp;amp;lt;div type=&amp;quot;section&amp;quot; ...&amp;gt;&lt;br /&gt;
*&amp;amp;lt;title type=&amp;quot;yyy&amp;quot; ...&amp;gt; where yyy is not ''main'', ''chapter'' or ''sub''.&lt;br /&gt;
&lt;br /&gt;
For example,&lt;br /&gt;
 &amp;amp;lt;chapter ...&amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;gt;Chapter Title&amp;amp;lt;/title&amp;gt; (or &amp;amp;lt;title type=&amp;quot;chapter&amp;quot;&amp;gt;Chapter Title&amp;amp;lt;/title&amp;gt; &lt;br /&gt;
                                     or &amp;amp;lt;title type=&amp;quot;main&amp;quot;&amp;gt;Chapter Title&amp;amp;lt;/title&amp;gt;)&lt;br /&gt;
 &amp;amp;lt;title type=&amp;quot;sub&amp;quot;&amp;gt;Chapter Subtitle&amp;amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;introduction&amp;quot;&amp;gt;... intro ...&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;amp;lt;p&amp;gt;&lt;br /&gt;
 &amp;amp;lt;lg&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt; or &amp;amp;lt;title type=&amp;quot;yyy&amp;quot;&amp;gt;&lt;br /&gt;
will put the following into the chapter introduction:&lt;br /&gt;
 &amp;amp;lt;chapter ...&amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;gt;Chapter Title&amp;amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;amp;lt;title type=&amp;quot;sub&amp;quot;&amp;gt;Chapter Subtitle&amp;amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;amp;lt;p&amp;gt;&lt;br /&gt;
 &amp;amp;lt;lg&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;introduction&amp;quot;&amp;gt;... intro ...&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
Note: Prior to 1.6.0, osis2mod would change the order of some these elements.&lt;br /&gt;
&lt;br /&gt;
The material starting with:&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt; or &amp;amp;lt;title type=&amp;quot;yyy&amp;quot;&amp;gt;&lt;br /&gt;
and including everything up to the &amp;amp;lt;verse ...&amp;gt; will be put into the following construct and prepended to the verse content.&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;x-milestone&amp;quot; subType=&amp;quot;x-preverse&amp;quot; sID=&amp;quot;pvXXX&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt; or &amp;amp;lt;title type=&amp;quot;yyy&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;x-milestone&amp;quot; subType=&amp;quot;x-preverse&amp;quot; eID=&amp;quot;pvXXX&amp;quot;/&amp;gt;&lt;br /&gt;
 ... verse content ...&lt;br /&gt;
&lt;br /&gt;
===Between Verses===&lt;br /&gt;
Between verses we may have closing tags to finish off what was started earlier, structural opening tags (e.g. line groups, divisions, paragraphs, ...), titles and/or introductory material.&lt;br /&gt;
&lt;br /&gt;
Upon finding the close of a verse, osis2mod will append all adjacent closing tags to it. Once it finds a start tag, it will attach that to the following verse, marking it up in the same fashion.&lt;br /&gt;
&lt;br /&gt;
For example, the following would be prepended to the verse content:&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;x-milestone&amp;quot; subType=&amp;quot;x-preverse&amp;quot; sID=&amp;quot;pvXXX&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;amp;lt;title&amp;gt;Section title&amp;amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;amp;lt;p&amp;gt;&lt;br /&gt;
 &amp;amp;lt;lg&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;x-milestone&amp;quot; subType=&amp;quot;x-preverse&amp;quot; eID=&amp;quot;pvXXX&amp;quot;/&amp;gt;&lt;br /&gt;
 ... verse content ...&lt;br /&gt;
&lt;br /&gt;
===Last Verse===&lt;br /&gt;
The material following the last verse of a chapter is appended to that verse. You might find:&lt;br /&gt;
 ... verse content ...&lt;br /&gt;
 &amp;amp;lt;/chapter&amp;gt;&lt;br /&gt;
 &amp;amp;lt;div type=&amp;quot;colophon&amp;quot;&amp;gt;... colophon text ...&amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Exclusions==&lt;br /&gt;
Only content starting the first &amp;amp;lt;div&amp;gt; to the last &amp;amp;lt;/div&amp;gt; is retained. All other is excluded. From a practical perspective, this excludes the OSIS header information.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
It is always best to use the most recent version of osis2mod and compiling it from SVN is best. &lt;br /&gt;
&lt;br /&gt;
After the SWORD 1.5.9 release, osis2mod was changed to take flags rather than positional arguments.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
You are running osis2mod: $Rev: 2421 $&lt;br /&gt;
OSIS Bible/commentary module creation tool for The SWORD Project&lt;br /&gt;
&lt;br /&gt;
usage: ./osis2mod &amp;lt;output/path&amp;gt; &amp;lt;osisDoc&amp;gt; [OPTIONS]&lt;br /&gt;
  &amp;lt;output/path&amp;gt;		 an existing folder that the module will be written&lt;br /&gt;
  &amp;lt;osisDoc&amp;gt;		 path to the validated OSIS document, or '-' to&lt;br /&gt;
				 read from standard input&lt;br /&gt;
  -a			 augment module if exists (default is to create new)&lt;br /&gt;
  -z			 use ZIP compression (default no compression)&lt;br /&gt;
  -Z			 use LZSS compression (default no compression)&lt;br /&gt;
  -b &amp;lt;2|3|4&amp;gt;		 compression block size (default 4):&lt;br /&gt;
				 2 - verse; 3 - chapter; 4 - book&lt;br /&gt;
  -c &amp;lt;cipher_key&amp;gt;	 encipher module using supplied key&lt;br /&gt;
				 (default no enciphering)&lt;br /&gt;
  -N			 do not convert UTF-8 or normalize UTF-8 to NFC&lt;br /&gt;
				 (default is to convert to UTF-8, if needed,&lt;br /&gt;
				  and then normalize to NFC)&lt;br /&gt;
				 Note: UTF-8 texts should be normalized to NFC.&lt;br /&gt;
  -s &amp;lt;2|4&amp;gt;		 bytes used to store entry size (default is 2).&lt;br /&gt;
				 Note: useful for commentaries with very large&lt;br /&gt;
				 entries in uncompressed modules&lt;br /&gt;
				 (2 bytes to store size equal 65535 characters)&lt;br /&gt;
  -v &amp;lt;v11n&amp;gt;		 specify a versification scheme to use (default is KJV)&lt;br /&gt;
				 Note: The following are valid values for v11n:&lt;br /&gt;
					KJV&lt;br /&gt;
					KJVA&lt;br /&gt;
					Leningrad&lt;br /&gt;
					MT&lt;br /&gt;
					NRSV&lt;br /&gt;
					NRSVA&lt;br /&gt;
  -d &amp;lt;flags&amp;gt;		 turn on debugging (default is 0)&lt;br /&gt;
				 Note: This flag may change in the future.&lt;br /&gt;
				 Flags: The following are valid values:&lt;br /&gt;
					0   - no debugging&lt;br /&gt;
					1   - writes to module, very verbose&lt;br /&gt;
					2   - verse start and end&lt;br /&gt;
					4   - quotes, esp. Words of Christ&lt;br /&gt;
					8   - titles&lt;br /&gt;
					16  - inter-verse material&lt;br /&gt;
					32  - BSP to BCV transformations&lt;br /&gt;
					64  - v11n exceptions&lt;br /&gt;
					128 - parsing of osisID and osisRef&lt;br /&gt;
					256 - internal stack&lt;br /&gt;
					512 - miscellaneous&lt;br /&gt;
				 This argument can be used more than once. (Or&lt;br /&gt;
				 the flags may be added together.)&lt;br /&gt;
&lt;br /&gt;
See http://www.crosswire.org/wiki/osis2mod for more details.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''&amp;amp;lt;output/path&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This a path to any existing directory. It is best for it to be empty.&lt;br /&gt;
&lt;br /&gt;
'''&amp;amp;lt;osisDoc&amp;amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a single, well-formed, valid OSIS document.&lt;br /&gt;
&lt;br /&gt;
If '''-''' is used instead of a file name, the document will be read from standard input. This allows for two constructs:&lt;br /&gt;
* Redirection&lt;br /&gt;
 osis2mod ./modules/texts/ztext/KJV - &amp;lt; kjv.xml&lt;br /&gt;
* Piping&lt;br /&gt;
 cat kjv.xml | osis2mod ./modules/texts/ztext/KJV -&lt;br /&gt;
&lt;br /&gt;
'''-a'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Osis2mod can create a Bible all at once or incrementally, depending on the presence of the -a flag. This&lt;br /&gt;
provides for two abilities,&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Assembling a Bible from book files:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /tmp/mymodule&lt;br /&gt;
osis2mod /tmp/mymodule  matt.xml&lt;br /&gt;
osis2mod /tmp/mymodule -a mark.xml&lt;br /&gt;
...&lt;br /&gt;
osis2mod /tmp/mymodule -a rev.xml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Note:''' The book files can be in any order. SWORD will order them correctly in the index.&lt;br /&gt;
&amp;lt;li&amp;gt;Adding corrections to a Bible:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
osis2mod /tmp/mymodule -a fixes.xml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Note:''' When fixes are put into the module they are appended to the data file and do not actually replace the verses. The index file is adjusted to point to the new place in the data file.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''-z|-Z'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A SWORD Bible can be compressed with Zip (-z) '''or''' LZSS (-Z). All of SWORD's Bible modules are compressed with Zip. This saves significant space over an uncompressed module. Uncompressed modules are useful for debugging.&lt;br /&gt;
&lt;br /&gt;
'''-b 2|3|4'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This setting is only useful for a compressed module. The choice as to whether to use Verse (2), Chapter (3) or Book (4, the default) level compression depends upon the amount of data in the block. A typical Bible is best compressed book by book. A commentary, chapter by chapter. If the commentary is very robust and the amount of text per verse is really huge, then verse compression might make sense.&lt;br /&gt;
&lt;br /&gt;
All of SWORD's compressed Bible modules are compressed by book. Basically, all of the verses in a block are compressed and appended to the data file. For this reason, the datafile cannot be uncompressed by anything other than the SWORD and JSword libraries.&lt;br /&gt;
&lt;br /&gt;
When creating the module by appending it is important to do so by whole compression block. That is, if blockType is Chapter, then the osisDoc needs to contain one or more whole chapters.&lt;br /&gt;
&lt;br /&gt;
'''-c cipherKey'''&amp;lt;br/&amp;gt;&lt;br /&gt;
This is typically 16 characters in length, having no leading or trailing spaces, consisting of alternating sets of 4 alpha and 4 numeric characters, such as Aduf0274PjNq0328.&lt;br /&gt;
&lt;br /&gt;
'''-N'''&amp;lt;br/&amp;gt;&lt;br /&gt;
All OSIS modules should be UTF-8 and all that are UTF-8 are also to be NFC. The default is to automatically detect the presense of Latin-1 (either cp1252 or iso8859-1) and convert it to UTF-8 and to normalize UTF-8 to NFC. This flag will turn off this behavior and is useful for creating Latin-1 modules or for modules that are already UTF-1 and NFC.&lt;br /&gt;
&lt;br /&gt;
Note: this was added late Feb 2008 and requires ICU support when compiling.&lt;br /&gt;
&lt;br /&gt;
'''-s 2|4'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A value of 2, the default, restricts raw, uncompressed modules to 64K bytes per entry. A value of 4, breaks this barrier. This is needed for Bibles, having large introductory materials, and for commentaries with large entries. All compressed OSIS modules can handle large entries.&lt;br /&gt;
&lt;br /&gt;
Note: this was added late Apr 2009 and will be part of the SWORD 1.6.0 release (formerly known as 1.5.11).&lt;br /&gt;
&lt;br /&gt;
'''-v v11n'''&amp;lt;br/&amp;gt;&lt;br /&gt;
By default, osis2mod uses the KJV versification. The practical implication of this is that only books in the KJV canon are allowed and any text in an allowed book are retained. However, if the verse reference of a supported book falls outside of the versification it is appended to the prior verse in the canon. This flag allows for an alternate versification.&lt;br /&gt;
&lt;br /&gt;
Note: this was added late Apr 2009 and will be part of the SWORD 1.6.0 release (formerly known as 1.5.11). With that release, only the Leningrad Codex will be supported, with '''-v Leningrad'''.&lt;br /&gt;
&lt;br /&gt;
'''-d flags'''&amp;lt;br/&amp;gt;&lt;br /&gt;
By default, osis2mod is compiled without debug support. You may uncomment #define DEBUG and recompile to enable the -d flag. The flag can be used more than once or the flags can be added together. For example,&lt;br /&gt;
 -d 2 -d 4&lt;br /&gt;
is the same as&lt;br /&gt;
 -d 6&lt;br /&gt;
&lt;br /&gt;
To do verbose debugging use:&lt;br /&gt;
 -d -1&lt;br /&gt;
&lt;br /&gt;
For the most part these flags are not intended for debugging modules, but rather for debugging problems in osis2mod.&lt;br /&gt;
&lt;br /&gt;
The -d 2 flag produces no output but puts milestones into the module where verses start and end. The form of the milestone is:&lt;br /&gt;
 &amp;amp;lt;milestone resp=&amp;quot;v&amp;quot; [attributes from verse] /&amp;gt;&lt;br /&gt;
The milestone will contain the osisID from the verse and also a valid sID or eID. The sID/eID indicates the start of end of the verse.&lt;br /&gt;
&lt;br /&gt;
Note: the -d 2 flag change at any time, or may be removed.&lt;br /&gt;
&lt;br /&gt;
==Messages==&lt;br /&gt;
Osis2mod has robust, mind-boggling messages. These are provided here in hopes that it will help problem diagnosis.&lt;br /&gt;
&lt;br /&gt;
===Exit Status===&lt;br /&gt;
When an error occurs that causes osis2mod to exit without processing the entire input file, a non-zero exit status is supplied to the caller. Here are the codes that osis2mod uses:&lt;br /&gt;
 const int EXIT_BAD_ARG     =   1; // Bad parameter given for program&lt;br /&gt;
 const int EXIT_NO_WRITE    =   2; // Could not open the module for writing&lt;br /&gt;
 const int EXIT_NO_CREATE   =   3; // Could not create the module&lt;br /&gt;
 const int EXIT_NO_READ     =   4; // Could not open the input file for reading.&lt;br /&gt;
 const int EXIT_BAD_NESTING =   5; // BSP or BCV nesting is bad&lt;br /&gt;
&lt;br /&gt;
===Diagnostic Messages===&lt;br /&gt;
In the following, example values are given in '''[...]'''. The brackets do not actually appear in the message. Also, the messages are a bit prettier here than in reality.&lt;br /&gt;
 WARNING(UTF8):     '''[ osisID ]''': Should be converted to UTF-8 ('''[ text ]''')&lt;br /&gt;
The program will always check for text that is not UTF-8.&lt;br /&gt;
&lt;br /&gt;
 INFO(UTF8):        '''[ osisID ]''': Converting to UTF-8 ('''[ text before conversion ]''')&lt;br /&gt;
Text that is converted to UTF-8 is noted.&lt;br /&gt;
&lt;br /&gt;
 ERROR(UTF8):       '''[ osisID ]''': Converting to UTF-8 ('''[ text after first conversion ]''')&lt;br /&gt;
It is an error if after a conversion it still is not UTF-8.&lt;br /&gt;
&lt;br /&gt;
 WARNING(UTF8):     osis2mod is not compiled with support for ICU. Ignoring -n flag.&lt;br /&gt;
Normalization was requested, but since osis2mod was not compiled for it, it cannot honor the default request.&lt;br /&gt;
&lt;br /&gt;
 INFO(V11N):        '''[ osisID ]''' is not in the '''[ v11n ]''' versification.&lt;br /&gt;
Indicates that a verse is not in the versification.&lt;br /&gt;
&lt;br /&gt;
 INFO(V11N):        '''[ osisID ]''' is not in the '''[ v11n ]''' versification. Appending content to '''[ osisID ]'''&lt;br /&gt;
This like the other indicates a versification problem, but shows where the text will be found. Osis2mod preserves all module content for supported books.&lt;br /&gt;
&lt;br /&gt;
 WARNING(V11N): New book is '''[ name ]'''  and is not in '''[ v11n ]''' versification, ignoring&lt;br /&gt;
The name of the book was not recognized as belonging to the chosen versification, it and all of it's content is ignored.&lt;br /&gt;
&lt;br /&gt;
 INFO(WRITE):       Appending entry: '''[ osisID ]''': '''[ text so far ]'''&lt;br /&gt;
If osis2mod encounters text that needs to be appended to a verse that is already in the module. This could indicate that&lt;br /&gt;
* the reference is in the input twice. This typically indicates a problem.&lt;br /&gt;
* more text was found that needs to be added to the prior verse.&lt;br /&gt;
* osis2mod is being run in append mode to fix a verse in the module.&lt;br /&gt;
&lt;br /&gt;
 INFO(LINK):        Linking '''[ osisID ]''' to '''[ osisID ]'''&lt;br /&gt;
An osisID such as &amp;quot;Gen.1.1 Gen.1.2 Gen.1.3&amp;quot; was used and the latter are linked to the first.&lt;br /&gt;
&lt;br /&gt;
 ERROR(REF):        Invalid osisID/annotateRef: '''[ invalid attribute value ]'''&lt;br /&gt;
This indicates that the SWORD library was unable to parse the osisID or annotateRef.&lt;br /&gt;
&lt;br /&gt;
 FATAL(NESTING):    '''[ currentOsisID ]''': tag expected&lt;br /&gt;
This indicates that the specified verse is not balanced with regard to its tags. Building a raw text module, looking in the module for the verse and pairing begin/end tags will help find the problem. Typically, this indicates an end tag that did not have a matching begin tag and all tags before it were properly paired.&lt;br /&gt;
&lt;br /&gt;
 FATAL(NESTING):    '''[ currentOsisID ]''': Expected '''[ topToken.getName() ]''' found '''[ tokenName ]'''&lt;br /&gt;
This also indicates that the specified verse is not balanced with regard to its tags. Building a raw text module, looking in the module for the verse and pairing begin/end tags will help find the problem. It could be either a begin or an end tag problem.&lt;br /&gt;
&lt;br /&gt;
 WARNING(NESTING):  verse '''[ currentOsisID ]''' is not well formed:('''[ verseDepth ]''','''[ tagDepth ]''')&lt;br /&gt;
This indicates that the verse probably will not show properly in some front-ends in some circumstances. Typically, it shows the problem if the verse is shown in isolation.&lt;br /&gt;
&lt;br /&gt;
 ERROR(NESTING):    improper nesting '''[ currentOsisID ]''': matching (sID,eID) not found. Looking at ('''[ sID ]''','''[ eID ]''')&lt;br /&gt;
OSIS specifies that every sID has a matching eID. Osis2mod is checking that BSP elements are properly nested.&lt;br /&gt;
&lt;br /&gt;
===Debug Messages===&lt;br /&gt;
The following are shown in the same form as the diagnostic messages above. These only show when osis2mod is compiled with DEBUG defined. They are given without comment.&lt;br /&gt;
&lt;br /&gt;
'''-d 1'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Output of what is being written to the module. The two osisIDs should always be the same.&lt;br /&gt;
 DEBUG(WRITE):      '''[ osisID ]''':'''[ osisID ]''': '''[ text so far ]'''&lt;br /&gt;
&lt;br /&gt;
'''-d 4'''&amp;lt;br/&amp;gt;&lt;br /&gt;
A stack is maintained to represent the Words of Christ on a per verse basis. This is internal diagnostic of that stack&lt;br /&gt;
 DEBUG(QUOTE):      '''[ currentOsisID ]''': quote top('''[ quote stack size ]''') '''[ token ]'''&lt;br /&gt;
 DEBUG(QUOTE):      '''[ currentOsisID ]''': quote pop('''[ quote stack size ]''') '''[ topToken ]''' -- '''[ token ]'''&lt;br /&gt;
 DEBUG(QUOTE):      '''[ currentOsisID ]''': ('''[ quote stack size ]''') '''[ topToken ]''' -- '''[ token ]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''-d 8'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies when book and chapter introductions are being determined.&lt;br /&gt;
 DEBUG(TITLE):      '''[ currentOsisID ]''': OOPS INTRO&lt;br /&gt;
         inChapterIntro = '''[ inChapterIntro ]'''&lt;br /&gt;
         inBookIntro    = '''[ inBookIntro ]'''&lt;br /&gt;
 DEBUG(TITLE):      '''[ currentOsisID ]''': Looking for book introduction&lt;br /&gt;
 DEBUG(TITLE):      '''[ currentOsisID ]''': Done looking for book introduction&lt;br /&gt;
 DEBUG(TITLE):      '''[ currentOsisID ]''': BOOK INTRO '''[ beading ]'''&lt;br /&gt;
 DEBUG(TITLE):      '''[ currentOsisID ]''': Looking for chapter introduction&lt;br /&gt;
 DEBUG(TITLE):      '''[ currentOsisID ]''': Done looking for chapter introduction&lt;br /&gt;
 DEBUG(TITLE):      '''[ currentOsisID ]''': CHAPTER INTRO '''[ heading ]'''&lt;br /&gt;
&lt;br /&gt;
'''-d 16'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Inter-verse material either goes with the prior &amp;quot;verse&amp;quot; or the next. This help diagnose problems related to that split.&lt;br /&gt;
 DEBUG(INTERVERSE): '''[ currentOsisID ]''': interverse start token '''[ token ]''':'''[ text ]'''&lt;br /&gt;
 DEBUG(INTERVERSE): '''[ currentOsisID ]''': interverse end tag: '''[ tokenName ]'''('''[ tagDepth ]''','''[ chapterDepth ]''','''[ bookDepth ]''')&lt;br /&gt;
 DEBUG(INTERVERSE): '''[ currentOsisID ]''': appending interverse end tag: '''[tokenName ]'''('''[ tagDepth ]''','''[ chapterDepth ]''','''[ bookDepth ]''')&lt;br /&gt;
&lt;br /&gt;
'''-d 32'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The following messages relate to the transformations of containers to milestones.&lt;br /&gt;
 DEBUG(XFORM):      '''[ currentOsisID ]''': xform empty '''[ token ]'''&lt;br /&gt;
 DEBUG(XFORM):      '''[ currentOsisID ]''': xform push ('''[ bspTagStack.size() ]''') '''[ token ]''' (tagname='''[ tagName ]''')&lt;br /&gt;
 DEBUG(XFORM):      '''[ currentOsisID ]''': xform top('''[ bsp stack size ]''') '''[ topToken ]'''&lt;br /&gt;
 DEBUG(XFORM):      '''[ currentOsisID ]''': xform pop('''[ bsp stack size ]''') '''[ topToken ]'''&lt;br /&gt;
&lt;br /&gt;
'''-d 64'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Occasionally a verse reference is outside of the chosen versification. These messages help to understand difficulties that osis2mod has in storing extra-canonical material in the module.&lt;br /&gt;
 DEBUG(V11N):       '''[ currentOsisID ]''' normalizes to '''[ after ]'''&lt;br /&gt;
 DEBUG(V11N):       Chapter max:'''[ chapterMax ]''', Verse Max:'''[ verseMax ]'''&lt;br /&gt;
&lt;br /&gt;
'''-d 128'''&amp;lt;br/&amp;gt;&lt;br /&gt;
OSIS ids and references can be of a form that SWORD cannot parse. Osis2mod contains a routine that munges these into a form that SWORD can understand.&lt;br /&gt;
 DEBUG(REF):        Copy range marker: '''[ marker ]'''&lt;br /&gt;
 DEBUG(REF):        Found a work prefix '''[ workPrefix ]'''&lt;br /&gt;
 DEBUG(REF):        Copy osisID:'''[ osisID ]'''&lt;br /&gt;
 DEBUG(REF):        Found a grain suffix '''[ grain ]'''&lt;br /&gt;
 DEBUG(REF):        Found a range&lt;br /&gt;
 DEBUG(REF):        replacing space with ;. Remaining: '''[ text ]'''&lt;br /&gt;
 DEBUG(REF):        shortended keyVal to`'''[ text ]'''`&lt;br /&gt;
&lt;br /&gt;
'''-d 256'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Osis2mod contains two stacks to validate proper nesting of BSP and BCV, respectively. This is an internal representation of the BCV stacks. It provides additional information to understand the diagnostic nesting messages.&lt;br /&gt;
 DEBUG(STACK):      '''[ currentOsisID ]''': push ('''[ stack size]''') '''[ tokenName ]'''&lt;br /&gt;
 DEBUG(STACK):      '''[ currentOsisID ]''': pop('''[ tagDepth ]''') '''[ topToken.getName() ]'''&lt;br /&gt;
&lt;br /&gt;
'''-d 512'''&amp;lt;br/&amp;gt;&lt;br /&gt;
These are general debug messages.&lt;br /&gt;
 DEBUG(FOUND):      Found first div and pitching prior material: '''[ text ]'''&lt;br /&gt;
 DEBUG(FOUND):      New book is '''[ currentOsisID ]'''&lt;br /&gt;
 DEBUG(FOUND):      Current chapter is '''[ currentOsisID ]''' ('''[ osisID attribute value ]''')&lt;br /&gt;
 DEBUG(FOUND):      Entering verse&lt;br /&gt;
 DEBUG(FOUND):      New current verse is '''[ currentOsisID ]'''&lt;br /&gt;
 DEBUG(FOUND):      osisID/annotateRef is adjusted to: '''[ simpler osisID or osisRef ]'''&lt;br /&gt;
&lt;br /&gt;
'''-d 512'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The following gives the input arguments.&lt;br /&gt;
 DEBUG(ARGS):&lt;br /&gt;
         path:         '''[ path ]'''&lt;br /&gt;
         osisDoc:      '''[ osisDoc ]'''&lt;br /&gt;
         create:       '''[ append ]'''&lt;br /&gt;
         compressType: '''[ compType ]'''&lt;br /&gt;
         blockType:    '''[ iType ]'''&lt;br /&gt;
         cipherKey:    '''[ cipherKey ]'''&lt;br /&gt;
         normalize:    '''[ normalize ]'''&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Osis2mod testcases]]&lt;br /&gt;
* [[Mod2osis]]&lt;br /&gt;
&lt;br /&gt;
[[Category:OSIS]]&lt;br /&gt;
[[Category:Utilities]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=Zipped_modules&amp;diff=9222</id>
		<title>Zipped modules</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=Zipped_modules&amp;diff=9222"/>
				<updated>2011-02-01T04:19:45Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some of the smaller devices running a sword front-end might not not have a network enabled module manager or network use might be slow and expensive. Users of these devices need to download their modules as zipped files and unzip them in the right place - e.g. a SD card.&lt;br /&gt;
&lt;br /&gt;
JSword front-ends also require (for the moment at least) having zipped modules available. &lt;br /&gt;
&lt;br /&gt;
It is also helpful for people who have no direct access to the Internet or who live in countries with monitored access to the Internet to be able to download (and possibly distribute) zipped modules. This is a zipped archive of a module in the file and directory layout used in the local module directory.&lt;br /&gt;
&lt;br /&gt;
E.g. to create from your own module directory a zipped module of a uncompressed GenBook do this:&lt;br /&gt;
&lt;br /&gt;
 cd ~ftp/pub/sword&lt;br /&gt;
 zip -r zip/mybook.zip mods.d/mybook.conf modules/genbook/rawgenbooks/mybook&lt;br /&gt;
&lt;br /&gt;
[[Category:Modules|Zipped modules]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=9200</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=9200"/>
				<updated>2011-01-24T22:52:36Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Elements required for proper rendering */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a .conf File=&lt;br /&gt;
==.conf File Layout==&lt;br /&gt;
The conf file tells the Sword engine how to treat installed module files, etc. which kind of markup they contain, and so forth.&lt;br /&gt;
&lt;br /&gt;
Below is a listing of the possible directives in that file. Each of these directives of the form key=value. Some keys can be repeated. Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Some values allow RTF and some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Note on RTF, only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in bold. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [name]&lt;br /&gt;
| Each conf file begins with [name], replacing &amp;quot;name&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to A-Z, a-z, 0-9 and _.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths for a module named [mymodule], depending on the type of module (Bible text, commentary, lexcon or dictionary, general book) and the data driver used are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
| &amp;lt;b&amp;gt;RawText&amp;lt;/b&amp;gt; (for uncompressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zText&amp;lt;/b&amp;gt; (for compressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom&amp;lt;/b&amp;gt; (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom4&amp;lt;/b&amp;gt; (for uncompressed Commentaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zCom&amp;lt;/b&amp;gt; (for compressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HREFCom&amp;lt;/b&amp;gt; (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawFiles&amp;lt;/b&amp;gt; (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD&amp;lt;/b&amp;gt; (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD4&amp;lt;/b&amp;gt; (for uncompressed Dictionaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zLD&amp;lt;/b&amp;gt; (for compressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawGenBook&amp;lt;/b&amp;gt; (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Elements to indicate features ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
| &amp;lt;b&amp;gt;ZIP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski LZSS]&amp;lt;/b&amp;gt;&lt;br /&gt;
Used to indicate how a compressed module (zText, zCom, zLD) is compressed.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
| &amp;lt;b&amp;gt;BOOK&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;CHAPTER&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VERSE&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zText and zCom to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
| &amp;lt;b&amp;gt;TreeKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VerseKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bible's which do not conform to any supported versification system in SWORd.  See [[Alternate_Versification|alternate versification]].&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the unlock key for enciphered modules. A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But this file needs it to be readable, plain text, without leading or trailing spaces. Leave a blank line (&amp;quot;CipherKey=&amp;quot;) to indicate that the module is enciphered but has no unlock key. (Omit for unlocked modules.)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&amp;lt;b&amp;gt;Catholic&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Catholic2&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;German&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Leningrad&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Luther&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MT&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Synodal&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;SynodalP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Vulg&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Used to specify the versification employed by a Bible module.&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
| &amp;lt;b&amp;gt;GBFStrongs&amp;lt;/b&amp;gt; (For GBF texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFFootnotes&amp;lt;/b&amp;gt; (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFMorph&amp;lt;/b&amp;gt; (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFHeadings&amp;lt;/b&amp;gt; (For GBF texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFRedLetterWords&amp;lt;/b&amp;gt; (For GBF texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLStrongs&amp;lt;/b&amp;gt; (For THML texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLFootnotes&amp;lt;/b&amp;gt; (For THML texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLScripref&amp;lt;/b&amp;gt; (For THML texts having cross references)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLMorph&amp;lt;/b&amp;gt; (For THML texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLHeadings&amp;lt;/b&amp;gt; (For THML texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLVariants&amp;lt;/b&amp;gt; (For THML texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLLemma&amp;lt;/b&amp;gt; (For THML texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8Cantillation&amp;lt;/b&amp;gt; (For Hebrew texts having cantillation marks)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8GreekAccents&amp;lt;/b&amp;gt; (For Greek texts having accents)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8HebrewPoints&amp;lt;/b&amp;gt; (For Hebrew texts having vowel points)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISStrongs&amp;lt;/b&amp;gt; (For OSIS texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISFootnotes&amp;lt;/b&amp;gt; (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISScripref&amp;lt;/b&amp;gt; (For OSIS texts having cross reference type notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISMorph&amp;lt;/b&amp;gt; (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISHeadings&amp;lt;/b&amp;gt; (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISVariants&amp;lt;/b&amp;gt; (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRedLetterWords&amp;lt;/b&amp;gt; (For OSIS texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISLemma&amp;lt;/b&amp;gt; (For OSIS texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRuby&amp;lt;/b&amp;gt; (For Japanese OSIS texts with [http://www.w3.org/TR/ruby/ ruby]: Kana glosses of Han characters)&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. crossreferences in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
| &amp;lt;b&amp;gt;LtoR&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RtoL&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script. Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script (technically [http://en.wikipedia.org/wiki/Bi-directional_text bi-directional]). If the RtoL script is transliterated into a LtoR script, set the value to LtoR.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&lt;br /&gt;
| &amp;lt;b&amp;gt;Plaintext&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBF&amp;lt;/b&amp;gt; General Bible Format: http://www.ebible.org/bible/gbf.htm&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThML&amp;lt;/b&amp;gt; Theological Markup Language: http://www.ccel.org/ThML&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSIS&amp;lt;/b&amp;gt; Open Scriptural Information Standard: http://www.bibletechnologies.net&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;TEI&amp;lt;/b&amp;gt; Text Encoding Initiative: http://www.tei-c.org/P4X/DI.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the &amp;lt;b&amp;gt;markup&amp;lt;/b&amp;gt; used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries.&amp;lt;br/&amp;gt;&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
| &amp;lt;b&amp;gt;UTF-8&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Latin-1&amp;lt;/b&amp;gt; (cp1252; see the warning)&amp;lt;br/&amp;gt;&lt;br /&gt;
The preferred encoding of texts is UTF-8. UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Latin-1 is defined by [http://en.wikipedia.org/wiki/Windows-1252 Windows Codepage 1252 (cp1252)] which is a superset of ISO 8859-1.&lt;br /&gt;
This encoding indicates how the conf and the module are encoded.&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: &amp;quot;Latin-1&amp;quot; is an ambiguously used term. See [http://en.wikipedia.org/wiki/ISO_8859-1 ISO 8859-1 at Wikipedia] for technical details; in reality Latin-1 is regularly used as a synonym for ISO-8859-1. Front-end implementors should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.&amp;lt;/i&amp;gt;&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for General Book module types (these are keyed with a TreeKey table of contents).  Indicates the preferred level from a leaf in the tree to display for context. e.g., 1 will only show the requested entry; 2 will show the entry, surrounded by all siblings, etc.&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the font to be used for display of the module if it is available. Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| OSISqToTick&lt;br /&gt;
| true/false&amp;lt;br/&amp;gt;&lt;br /&gt;
When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
| &amp;lt;b&amp;gt;StrongsNumbers&amp;lt;/b&amp;gt; (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekParse&amp;lt;/b&amp;gt; (for modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewParse&amp;lt;/b&amp;gt; (for modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;DailyDevotion&amp;lt;/b&amp;gt; (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossary&amp;lt;/b&amp;gt; (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that contain images of any type)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A shorter abbreviation which can be displayed instead of the full name. For example, KJV for the King James Version.&lt;br /&gt;
| The module name.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&amp;lt;br/&amp;gt;RTF&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a or 1.1.3.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to alert users to what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the minimum version of the Sword library required for this module.&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
| &amp;lt;b&amp;gt;Daily Devotional&amp;lt;/b&amp;gt; (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossaries&amp;lt;/b&amp;gt; (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Cults / Unorthodox / Questionable Material&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Essays&amp;lt;/b&amp;gt; (for essays)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Maps&amp;lt;/b&amp;gt; (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Biblical Texts&amp;lt;/b&amp;gt; (for Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Commentaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Lexicons / Dictionaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Generic Books&amp;lt;/b&amp;gt; (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&lt;br /&gt;
| Biblical Texts (for /(Raw&amp;amp;#124;z)Text4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries (for /(Raw&amp;amp;#124;z&amp;amp;#124;HREF)Com4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries (for /(Raw&amp;amp;#124;z)LD4?/&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books (for RawGenBook)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| &amp;amp;lt;tree/string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module and should include a value according to BCP 47 (i.e. [http://tools.ietf.org/html/rfc4646 RFC 4646] &amp;amp; [http://tools.ietf.org/html/rfc4647 RFC 4647]). When available use a 2-letter code from [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1 codes] ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English). If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T code] (e.g. ceb for Cebuano) ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]). Failing that, use [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] ([http://www.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages, or [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macrolanguages. The regex for this subtag will be /[a-z]{2,3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian). The regex for this subtag will be /[A-Z][a-z]{3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English). The regex for this subtag will be /[A-Z]{2}/&lt;br /&gt;
&lt;br /&gt;
Individual subtags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
| &amp;amp;lt;integer (indicating bytes)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
| &amp;amp;lt;ISO date string (yyyy-mm-dd)&amp;amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
| &amp;amp;lt;name of module&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element names a module that is made obsolete by this module, usually indicated by the former name of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
| &amp;amp;lt;integer (indicating year)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionLicense&lt;br /&gt;
| &amp;lt;b&amp;gt;Public Domain&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission to distribute granted to CrossWire&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Free non-commercial distribution&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Freely distributable&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission granted to distribute non-commercially in Sword format&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/fdl.html GFDL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/gpl.html GPL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by by]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last six licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
| &amp;amp;lt;string, probably a URL&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| UnlockURL&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the URL (a bare URL, not an HTML &amp;amp;lt;a&amp;amp;gt; link) of a web page for unlocking instructions/payment&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Where it makes sense, the values in the .conf file may be internationalized by appending _lang where lang is replaced by an appropriate code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang above for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, then append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh_Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh_Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
The language for .conf entries without the locale modifier is the default and must be the language of the module itself (as specified in Lang=) or English.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
*At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no Sword library or front end support for it.&lt;br /&gt;
*See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=9199</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=9199"/>
				<updated>2011-01-24T22:44:33Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Elements required for proper rendering */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a .conf File=&lt;br /&gt;
==.conf File Layout==&lt;br /&gt;
The conf file tells the Sword engine how to treat installed module files, etc. which kind of markup they contain, and so forth.&lt;br /&gt;
&lt;br /&gt;
Below is a listing of the possible directives in that file. Each of these directives of the form key=value. Some keys can be repeated. Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Some values allow RTF and some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Note on RTF, only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in bold. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [name]&lt;br /&gt;
| Each conf file begins with [name], replacing &amp;quot;name&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to A-Z, a-z, 0-9 and _.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths for a module named [mymodule], depending on the type of module (Bible text, commentary, lexcon or dictionary, general book) and the data driver used are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
| &amp;lt;b&amp;gt;RawText&amp;lt;/b&amp;gt; (for uncompressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zText&amp;lt;/b&amp;gt; (for compressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom&amp;lt;/b&amp;gt; (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom4&amp;lt;/b&amp;gt; (for uncompressed Commentaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zCom&amp;lt;/b&amp;gt; (for compressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HREFCom&amp;lt;/b&amp;gt; (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawFiles&amp;lt;/b&amp;gt; (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD&amp;lt;/b&amp;gt; (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD4&amp;lt;/b&amp;gt; (for uncompressed Dictionaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zLD&amp;lt;/b&amp;gt; (for compressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawGenBook&amp;lt;/b&amp;gt; (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Elements to indicate features ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
| &amp;lt;b&amp;gt;ZIP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski LZSS]&amp;lt;/b&amp;gt;&lt;br /&gt;
Used to indicate how a compressed module (zText, zCom, zLD) is compressed.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
| &amp;lt;b&amp;gt;BOOK&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;CHAPTER&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VERSE&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zText and zCom to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
| &amp;lt;b&amp;gt;TreeKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VerseKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bible's which do not conform to any supported versification system in SWORd.  See [[Alternate_Versification|alternate versification]].&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the unlock key for enciphered modules. A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But this file needs it to be readable, plain text, without leading or trailing spaces. Leave a blank line (&amp;quot;CipherKey=&amp;quot;) to indicate that the module is enciphered but has no unlock key. (Omit for unlocked modules.)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&amp;lt;b&amp;gt;Catholic&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Catholic2&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;German&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Leningrad&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Luther&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MT&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Synodal&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;SynodalP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Vulg&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Used to specify the versification employed by a Bible module.&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
| &amp;lt;b&amp;gt;GBFStrongs&amp;lt;/b&amp;gt; (For GBF texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFFootnotes&amp;lt;/b&amp;gt; (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFMorph&amp;lt;/b&amp;gt; (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFHeadings&amp;lt;/b&amp;gt; (For GBF texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFRedLetterWords&amp;lt;/b&amp;gt; (For GBF texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLStrongs&amp;lt;/b&amp;gt; (For THML texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLFootnotes&amp;lt;/b&amp;gt; (For THML texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLScripref&amp;lt;/b&amp;gt; (For THML texts having cross references)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLMorph&amp;lt;/b&amp;gt; (For THML texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLHeadings&amp;lt;/b&amp;gt; (For THML texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLVariants&amp;lt;/b&amp;gt; (For THML texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLLemma&amp;lt;/b&amp;gt; (For THML texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8Cantillation&amp;lt;/b&amp;gt; (For Hebrew texts having cantillation marks)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8GreekAccents&amp;lt;/b&amp;gt; (For Greek texts having accents)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8HebrewPoints&amp;lt;/b&amp;gt; (For Hebrew texts having vowel points)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISStrongs&amp;lt;/b&amp;gt; (For OSIS texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISFootnotes&amp;lt;/b&amp;gt; (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISScripref&amp;lt;/b&amp;gt; (For OSIS texts having cross reference type notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISMorph&amp;lt;/b&amp;gt; (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISHeadings&amp;lt;/b&amp;gt; (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISVariants&amp;lt;/b&amp;gt; (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRedLetterWords&amp;lt;/b&amp;gt; (For OSIS texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISLemma&amp;lt;/b&amp;gt; (For OSIS texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRuby&amp;lt;/b&amp;gt; (For Japanese OSIS texts with [http://www.w3.org/TR/ruby/ ruby]: Kana glosses of Han characters)&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. crossreferences in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
| &amp;lt;b&amp;gt;LtoR&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RtoL&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script. Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script (technically [http://en.wikipedia.org/wiki/Bi-directional_text bi-directional]). If the RtoL script is transliterated into a LtoR script, set the value to LtoR.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&lt;br /&gt;
| &amp;lt;b&amp;gt;Plaintext&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBF&amp;lt;/b&amp;gt; General Bible Format: http://www.ebible.org/bible/gbf.htm&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThML&amp;lt;/b&amp;gt; Theological Markup Language: http://www.ccel.org/ThML&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSIS&amp;lt;/b&amp;gt; Open Scriptural Information Standard: http://www.bibletechnologies.net&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;TEI&amp;lt;/b&amp;gt; Text Encoding Initiative: http://www.tei-c.org/P4X/DI.html&amp;lt;br/&amp;gt;&lt;br /&gt;
Specifies the &amp;lt;b&amp;gt;markup&amp;lt;/b&amp;gt; used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries.&amp;lt;br/&amp;gt;&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
| &amp;lt;b&amp;gt;UTF-8&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Latin-1&amp;lt;/b&amp;gt; (cp1252; see the warning)&amp;lt;br/&amp;gt;&lt;br /&gt;
The preferred encoding of texts is UTF-8. UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Latin-1 is defined by [http://en.wikipedia.org/wiki/Windows-1252 Windows Codepage 1252 (cp1252)] which is a superset of ISO 8859-1.&lt;br /&gt;
This encoding indicates how the conf and the module are encoded.&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: &amp;quot;Latin-1&amp;quot; is an ambiguously used term. See [http://en.wikipedia.org/wiki/ISO_8859-1 ISO 8859-1 at Wikipedia] for technical details; in reality Latin-1 is regularly used as a synonym for ISO-8859-1. Front-end implementors should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.&amp;lt;/i&amp;gt;&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the font to be used for display of the module if it is available. Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| OSISqToTick&lt;br /&gt;
| true/false&amp;lt;br/&amp;gt;&lt;br /&gt;
When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
| &amp;lt;b&amp;gt;StrongsNumbers&amp;lt;/b&amp;gt; (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekParse&amp;lt;/b&amp;gt; (for modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewParse&amp;lt;/b&amp;gt; (for modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;DailyDevotion&amp;lt;/b&amp;gt; (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossary&amp;lt;/b&amp;gt; (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that contain images of any type)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A shorter abbreviation which can be displayed instead of the full name. For example, KJV for the King James Version.&lt;br /&gt;
| The module name.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&amp;lt;br/&amp;gt;RTF&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a or 1.1.3.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to alert users to what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the minimum version of the Sword library required for this module.&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
| &amp;lt;b&amp;gt;Daily Devotional&amp;lt;/b&amp;gt; (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossaries&amp;lt;/b&amp;gt; (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Cults / Unorthodox / Questionable Material&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Essays&amp;lt;/b&amp;gt; (for essays)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Maps&amp;lt;/b&amp;gt; (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Biblical Texts&amp;lt;/b&amp;gt; (for Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Commentaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Lexicons / Dictionaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Generic Books&amp;lt;/b&amp;gt; (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&lt;br /&gt;
| Biblical Texts (for /(Raw&amp;amp;#124;z)Text4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries (for /(Raw&amp;amp;#124;z&amp;amp;#124;HREF)Com4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries (for /(Raw&amp;amp;#124;z)LD4?/&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books (for RawGenBook)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| &amp;amp;lt;tree/string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module and should include a value according to BCP 47 (i.e. [http://tools.ietf.org/html/rfc4646 RFC 4646] &amp;amp; [http://tools.ietf.org/html/rfc4647 RFC 4647]). When available use a 2-letter code from [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1 codes] ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English). If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T code] (e.g. ceb for Cebuano) ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]). Failing that, use [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] ([http://www.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages, or [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macrolanguages. The regex for this subtag will be /[a-z]{2,3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian). The regex for this subtag will be /[A-Z][a-z]{3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English). The regex for this subtag will be /[A-Z]{2}/&lt;br /&gt;
&lt;br /&gt;
Individual subtags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
| &amp;amp;lt;integer (indicating bytes)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
| &amp;amp;lt;ISO date string (yyyy-mm-dd)&amp;amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
| &amp;amp;lt;name of module&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element names a module that is made obsolete by this module, usually indicated by the former name of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
| &amp;amp;lt;integer (indicating year)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionLicense&lt;br /&gt;
| &amp;lt;b&amp;gt;Public Domain&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission to distribute granted to CrossWire&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Free non-commercial distribution&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Freely distributable&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission granted to distribute non-commercially in Sword format&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/fdl.html GFDL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/gpl.html GPL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by by]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last six licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
| &amp;amp;lt;string, probably a URL&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| UnlockURL&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the URL (a bare URL, not an HTML &amp;amp;lt;a&amp;amp;gt; link) of a web page for unlocking instructions/payment&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Where it makes sense, the values in the .conf file may be internationalized by appending _lang where lang is replaced by an appropriate code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang above for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, then append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh_Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh_Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
The language for .conf entries without the locale modifier is the default and must be the language of the module itself (as specified in Lang=) or English.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
*At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no Sword library or front end support for it.&lt;br /&gt;
*See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=9198</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=9198"/>
				<updated>2011-01-24T22:43:27Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Elements required for proper rendering */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a .conf File=&lt;br /&gt;
==.conf File Layout==&lt;br /&gt;
The conf file tells the Sword engine how to treat installed module files, etc. which kind of markup they contain, and so forth.&lt;br /&gt;
&lt;br /&gt;
Below is a listing of the possible directives in that file. Each of these directives of the form key=value. Some keys can be repeated. Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Some values allow RTF and some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Note on RTF, only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in bold. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [name]&lt;br /&gt;
| Each conf file begins with [name], replacing &amp;quot;name&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to A-Z, a-z, 0-9 and _.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths for a module named [mymodule], depending on the type of module (Bible text, commentary, lexcon or dictionary, general book) and the data driver used are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
| &amp;lt;b&amp;gt;RawText&amp;lt;/b&amp;gt; (for uncompressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zText&amp;lt;/b&amp;gt; (for compressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom&amp;lt;/b&amp;gt; (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom4&amp;lt;/b&amp;gt; (for uncompressed Commentaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zCom&amp;lt;/b&amp;gt; (for compressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HREFCom&amp;lt;/b&amp;gt; (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawFiles&amp;lt;/b&amp;gt; (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD&amp;lt;/b&amp;gt; (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD4&amp;lt;/b&amp;gt; (for uncompressed Dictionaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zLD&amp;lt;/b&amp;gt; (for compressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawGenBook&amp;lt;/b&amp;gt; (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Elements to indicate features ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
| &amp;lt;b&amp;gt;ZIP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski LZSS]&amp;lt;/b&amp;gt;&lt;br /&gt;
Used to indicate how a compressed module (zText, zCom, zLD) is compressed.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
| &amp;lt;b&amp;gt;BOOK&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;CHAPTER&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VERSE&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zText and zCom to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
| &amp;lt;b&amp;gt;TreeKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VerseKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bible's which do not conform to any supported versification system in SWORd.  See [[Alternate_Versification|alternate versification]].&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the unlock key for enciphered modules. A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But this file needs it to be readable, plain text, without leading or trailing spaces. Leave a blank line (&amp;quot;CipherKey=&amp;quot;) to indicate that the module is enciphered but has no unlock key. (Omit for unlocked modules.)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&amp;lt;b&amp;gt;Catholic&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Catholic2&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;German&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Leningrad&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Luther&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MT&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Synodal&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;SynodalP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Vulg&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Used to specify the versification employed by a Bible module.&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
| &amp;lt;b&amp;gt;GBFStrongs&amp;lt;/b&amp;gt; (For GBF texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFFootnotes&amp;lt;/b&amp;gt; (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFMorph&amp;lt;/b&amp;gt; (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFHeadings&amp;lt;/b&amp;gt; (For GBF texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFRedLetterWords&amp;lt;/b&amp;gt; (For GBF texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLStrongs&amp;lt;/b&amp;gt; (For THML texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLFootnotes&amp;lt;/b&amp;gt; (For THML texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLScripref&amp;lt;/b&amp;gt; (For THML texts having cross references)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLMorph&amp;lt;/b&amp;gt; (For THML texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLHeadings&amp;lt;/b&amp;gt; (For THML texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLVariants&amp;lt;/b&amp;gt; (For THML texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLLemma&amp;lt;/b&amp;gt; (For THML texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8Cantillation&amp;lt;/b&amp;gt; (For Hebrew texts having cantillation marks)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8GreekAccents&amp;lt;/b&amp;gt; (For Greek texts having accents)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8HebrewPoints&amp;lt;/b&amp;gt; (For Hebrew texts having vowel points)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISStrongs&amp;lt;/b&amp;gt; (For OSIS texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISFootnotes&amp;lt;/b&amp;gt; (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISScripref&amp;lt;/b&amp;gt; (For OSIS texts having cross reference type notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISMorph&amp;lt;/b&amp;gt; (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISHeadings&amp;lt;/b&amp;gt; (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISVariants&amp;lt;/b&amp;gt; (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRedLetterWords&amp;lt;/b&amp;gt; (For OSIS texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISLemma&amp;lt;/b&amp;gt; (For OSIS texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRuby&amp;lt;/b&amp;gt; (For Japanese OSIS texts with [http://www.w3.org/TR/ruby/ ruby]: Kana glosses of Han characters)&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. crossreferences in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
| &amp;lt;b&amp;gt;LtoR&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RtoL&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script. Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script (technically [http://en.wikipedia.org/wiki/Bi-directional_text bi-directional]). If the RtoL script is transliterated into a LtoR script, set the value to LtoR.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&lt;br /&gt;
| &amp;lt;b&amp;gt;Plaintext&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBF&amp;lt;/b&amp;gt; General Bible Format: http://www.ebible.org/bible/gbf.htm&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThML&amp;lt;/b&amp;gt; Theological Markup Language: http://www.ccel.org/ThML&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSIS&amp;lt;/b&amp;gt; Open Scriptural Information Standard: http://www.bibletechnologies.net&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;TEI&amp;lt;/b&amp;gt; Text Encoding Initiative: http://www.tei-c.org/P4X/DI.html&amp;lt;br/&amp;gt;&lt;br /&gt;
This specifies the *markup* used in the module. The preferred markup is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries.&amp;lt;br/&amp;gt;&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
| &amp;lt;b&amp;gt;UTF-8&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Latin-1&amp;lt;/b&amp;gt; (cp1252; see the warning)&amp;lt;br/&amp;gt;&lt;br /&gt;
The preferred encoding of texts is UTF-8. UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Latin-1 is defined by [http://en.wikipedia.org/wiki/Windows-1252 Windows Codepage 1252 (cp1252)] which is a superset of ISO 8859-1.&lt;br /&gt;
This encoding indicates how the conf and the module are encoded.&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: &amp;quot;Latin-1&amp;quot; is an ambiguously used term. See [http://en.wikipedia.org/wiki/ISO_8859-1 ISO 8859-1 at Wikipedia] for technical details; in reality Latin-1 is regularly used as a synonym for ISO-8859-1. Front-end implementors should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.&amp;lt;/i&amp;gt;&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the font to be used for display of the module if it is available. Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| OSISqToTick&lt;br /&gt;
| true/false&amp;lt;br/&amp;gt;&lt;br /&gt;
When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
| &amp;lt;b&amp;gt;StrongsNumbers&amp;lt;/b&amp;gt; (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekParse&amp;lt;/b&amp;gt; (for modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewParse&amp;lt;/b&amp;gt; (for modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;DailyDevotion&amp;lt;/b&amp;gt; (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossary&amp;lt;/b&amp;gt; (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that contain images of any type)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A shorter abbreviation which can be displayed instead of the full name. For example, KJV for the King James Version.&lt;br /&gt;
| The module name.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&amp;lt;br/&amp;gt;RTF&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a or 1.1.3.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to alert users to what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the minimum version of the Sword library required for this module.&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
| &amp;lt;b&amp;gt;Daily Devotional&amp;lt;/b&amp;gt; (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossaries&amp;lt;/b&amp;gt; (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Cults / Unorthodox / Questionable Material&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Essays&amp;lt;/b&amp;gt; (for essays)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Maps&amp;lt;/b&amp;gt; (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Biblical Texts&amp;lt;/b&amp;gt; (for Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Commentaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Lexicons / Dictionaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Generic Books&amp;lt;/b&amp;gt; (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&lt;br /&gt;
| Biblical Texts (for /(Raw&amp;amp;#124;z)Text4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries (for /(Raw&amp;amp;#124;z&amp;amp;#124;HREF)Com4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries (for /(Raw&amp;amp;#124;z)LD4?/&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books (for RawGenBook)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| &amp;amp;lt;tree/string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module and should include a value according to BCP 47 (i.e. [http://tools.ietf.org/html/rfc4646 RFC 4646] &amp;amp; [http://tools.ietf.org/html/rfc4647 RFC 4647]). When available use a 2-letter code from [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1 codes] ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English). If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T code] (e.g. ceb for Cebuano) ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]). Failing that, use [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] ([http://www.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages, or [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macrolanguages. The regex for this subtag will be /[a-z]{2,3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian). The regex for this subtag will be /[A-Z][a-z]{3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English). The regex for this subtag will be /[A-Z]{2}/&lt;br /&gt;
&lt;br /&gt;
Individual subtags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
| &amp;amp;lt;integer (indicating bytes)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
| &amp;amp;lt;ISO date string (yyyy-mm-dd)&amp;amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
| &amp;amp;lt;name of module&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element names a module that is made obsolete by this module, usually indicated by the former name of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
| &amp;amp;lt;integer (indicating year)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionLicense&lt;br /&gt;
| &amp;lt;b&amp;gt;Public Domain&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission to distribute granted to CrossWire&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Free non-commercial distribution&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Freely distributable&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission granted to distribute non-commercially in Sword format&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/fdl.html GFDL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/gpl.html GPL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by by]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last six licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
| &amp;amp;lt;string, probably a URL&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| UnlockURL&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the URL (a bare URL, not an HTML &amp;amp;lt;a&amp;amp;gt; link) of a web page for unlocking instructions/payment&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Where it makes sense, the values in the .conf file may be internationalized by appending _lang where lang is replaced by an appropriate code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang above for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, then append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh_Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh_Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
The language for .conf entries without the locale modifier is the default and must be the language of the module itself (as specified in Lang=) or English.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
*At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no Sword library or front end support for it.&lt;br /&gt;
*See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=9197</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=9197"/>
				<updated>2011-01-24T22:35:54Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Elements to indicate features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a .conf File=&lt;br /&gt;
==.conf File Layout==&lt;br /&gt;
The conf file tells the Sword engine how to treat installed module files, etc. which kind of markup they contain, and so forth.&lt;br /&gt;
&lt;br /&gt;
Below is a listing of the possible directives in that file. Each of these directives of the form key=value. Some keys can be repeated. Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Some values allow RTF and some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Note on RTF, only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in bold. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [name]&lt;br /&gt;
| Each conf file begins with [name], replacing &amp;quot;name&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to A-Z, a-z, 0-9 and _.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths for a module named [mymodule], depending on the type of module (Bible text, commentary, lexcon or dictionary, general book) and the data driver used are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
| &amp;lt;b&amp;gt;RawText&amp;lt;/b&amp;gt; (for uncompressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zText&amp;lt;/b&amp;gt; (for compressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom&amp;lt;/b&amp;gt; (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom4&amp;lt;/b&amp;gt; (for uncompressed Commentaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zCom&amp;lt;/b&amp;gt; (for compressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HREFCom&amp;lt;/b&amp;gt; (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawFiles&amp;lt;/b&amp;gt; (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD&amp;lt;/b&amp;gt; (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD4&amp;lt;/b&amp;gt; (for uncompressed Dictionaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zLD&amp;lt;/b&amp;gt; (for compressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawGenBook&amp;lt;/b&amp;gt; (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Elements to indicate features ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
| &amp;lt;b&amp;gt;ZIP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski LZSS]&amp;lt;/b&amp;gt;&lt;br /&gt;
Used to indicate how a compressed module (zText, zCom, zLD) is compressed.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
| &amp;lt;b&amp;gt;BOOK&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;CHAPTER&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VERSE&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zText and zCom to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
| &amp;lt;b&amp;gt;TreeKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VerseKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is not yet supported and is being developed as a solution for Bible's which do not conform to any supported versification system in SWORd.  See [[Alternate_Versification|alternate versification]].&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the unlock key for enciphered modules. A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But this file needs it to be readable, plain text, without leading or trailing spaces. Leave a blank line (&amp;quot;CipherKey=&amp;quot;) to indicate that the module is enciphered but has no unlock key. (Omit for unlocked modules.)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&amp;lt;b&amp;gt;Catholic&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Catholic2&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;German&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Leningrad&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Luther&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MT&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Synodal&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;SynodalP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Vulg&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Used to specify the versification employed by a Bible module.&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
| &amp;lt;b&amp;gt;GBFStrongs&amp;lt;/b&amp;gt; (For GBF texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFFootnotes&amp;lt;/b&amp;gt; (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFMorph&amp;lt;/b&amp;gt; (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFHeadings&amp;lt;/b&amp;gt; (For GBF texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFRedLetterWords&amp;lt;/b&amp;gt; (For GBF texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLStrongs&amp;lt;/b&amp;gt; (For THML texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLFootnotes&amp;lt;/b&amp;gt; (For THML texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLScripref&amp;lt;/b&amp;gt; (For THML texts having cross references)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLMorph&amp;lt;/b&amp;gt; (For THML texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLHeadings&amp;lt;/b&amp;gt; (For THML texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLVariants&amp;lt;/b&amp;gt; (For THML texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLLemma&amp;lt;/b&amp;gt; (For THML texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8Cantillation&amp;lt;/b&amp;gt; (For Hebrew texts having cantillation marks)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8GreekAccents&amp;lt;/b&amp;gt; (For Greek texts having accents)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8HebrewPoints&amp;lt;/b&amp;gt; (For Hebrew texts having vowel points)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISStrongs&amp;lt;/b&amp;gt; (For OSIS texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISFootnotes&amp;lt;/b&amp;gt; (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISScripref&amp;lt;/b&amp;gt; (For OSIS texts having cross reference type notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISMorph&amp;lt;/b&amp;gt; (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISHeadings&amp;lt;/b&amp;gt; (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISVariants&amp;lt;/b&amp;gt; (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRedLetterWords&amp;lt;/b&amp;gt; (For OSIS texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISLemma&amp;lt;/b&amp;gt; (For OSIS texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRuby&amp;lt;/b&amp;gt; (For Japanese OSIS texts with [http://www.w3.org/TR/ruby/ ruby]: Kana glosses of Han characters)&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. crossreferences in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
| &amp;lt;b&amp;gt;LtoR&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RtoL&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script. Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script (technically [http://en.wikipedia.org/wiki/Bi-directional_text bi-directional]). If the RtoL script is transliterated into a LtoR script, set the value to LtoR.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&lt;br /&gt;
| &amp;lt;b&amp;gt;Plaintext&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBF&amp;lt;/b&amp;gt; General Bible Format: http://www.ebible.org/bible/gbf.htm&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThML&amp;lt;/b&amp;gt; Theological Markup Language: http://www.ccel.org/ThML&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSIS&amp;lt;/b&amp;gt; Open Scriptural Information Standard: http://www.bibletechnologies.net&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;TEI&amp;lt;/b&amp;gt; Text Encoding Initiative: http://www.tei-c.org/P4X/DI.html&amp;lt;br/&amp;gt;&lt;br /&gt;
These are various ways that the text can be encoded. The preferred encoding is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries.&amp;lt;br/&amp;gt;&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
| &amp;lt;b&amp;gt;UTF-8&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Latin-1&amp;lt;/b&amp;gt; (cp1252; see the warning)&amp;lt;br/&amp;gt;&lt;br /&gt;
The preferred encoding of texts is UTF-8. UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Latin-1 is defined by [http://en.wikipedia.org/wiki/Windows-1252 Windows Codepage 1252 (cp1252)] which is a superset of ISO 8859-1.&lt;br /&gt;
This encoding indicates how the conf and the module are encoded.&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: &amp;quot;Latin-1&amp;quot; is an ambiguously used term. See [http://en.wikipedia.org/wiki/ISO_8859-1 ISO 8859-1 at Wikipedia] for technical details; in reality Latin-1 is regularly used as a synonym for ISO-8859-1. Front-end implementors should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.&amp;lt;/i&amp;gt;&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the font to be used for display of the module if it is available. Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| OSISqToTick&lt;br /&gt;
| true/false&amp;lt;br/&amp;gt;&lt;br /&gt;
When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
| &amp;lt;b&amp;gt;StrongsNumbers&amp;lt;/b&amp;gt; (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekParse&amp;lt;/b&amp;gt; (for modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewParse&amp;lt;/b&amp;gt; (for modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;DailyDevotion&amp;lt;/b&amp;gt; (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossary&amp;lt;/b&amp;gt; (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that contain images of any type)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A shorter abbreviation which can be displayed instead of the full name. For example, KJV for the King James Version.&lt;br /&gt;
| The module name.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&amp;lt;br/&amp;gt;RTF&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a or 1.1.3.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to alert users to what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the minimum version of the Sword library required for this module.&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
| &amp;lt;b&amp;gt;Daily Devotional&amp;lt;/b&amp;gt; (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossaries&amp;lt;/b&amp;gt; (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Cults / Unorthodox / Questionable Material&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Essays&amp;lt;/b&amp;gt; (for essays)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Maps&amp;lt;/b&amp;gt; (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Biblical Texts&amp;lt;/b&amp;gt; (for Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Commentaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Lexicons / Dictionaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Generic Books&amp;lt;/b&amp;gt; (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&lt;br /&gt;
| Biblical Texts (for /(Raw&amp;amp;#124;z)Text4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries (for /(Raw&amp;amp;#124;z&amp;amp;#124;HREF)Com4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries (for /(Raw&amp;amp;#124;z)LD4?/&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books (for RawGenBook)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| &amp;amp;lt;tree/string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module and should include a value according to BCP 47 (i.e. [http://tools.ietf.org/html/rfc4646 RFC 4646] &amp;amp; [http://tools.ietf.org/html/rfc4647 RFC 4647]). When available use a 2-letter code from [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1 codes] ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English). If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T code] (e.g. ceb for Cebuano) ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]). Failing that, use [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] ([http://www.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages, or [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macrolanguages. The regex for this subtag will be /[a-z]{2,3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian). The regex for this subtag will be /[A-Z][a-z]{3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English). The regex for this subtag will be /[A-Z]{2}/&lt;br /&gt;
&lt;br /&gt;
Individual subtags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
| &amp;amp;lt;integer (indicating bytes)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
| &amp;amp;lt;ISO date string (yyyy-mm-dd)&amp;amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
| &amp;amp;lt;name of module&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element names a module that is made obsolete by this module, usually indicated by the former name of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
| &amp;amp;lt;integer (indicating year)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionLicense&lt;br /&gt;
| &amp;lt;b&amp;gt;Public Domain&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission to distribute granted to CrossWire&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Free non-commercial distribution&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Freely distributable&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission granted to distribute non-commercially in Sword format&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/fdl.html GFDL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/gpl.html GPL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by by]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last six licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
| &amp;amp;lt;string, probably a URL&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| UnlockURL&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the URL (a bare URL, not an HTML &amp;amp;lt;a&amp;amp;gt; link) of a web page for unlocking instructions/payment&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Where it makes sense, the values in the .conf file may be internationalized by appending _lang where lang is replaced by an appropriate code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang above for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, then append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh_Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh_Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
The language for .conf entries without the locale modifier is the default and must be the language of the module itself (as specified in Lang=) or English.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
*At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no Sword library or front end support for it.&lt;br /&gt;
*See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	<entry>
		<id>http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=9196</id>
		<title>DevTools:conf Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.crosswire.org/index.php?title=DevTools:conf_Files&amp;diff=9196"/>
				<updated>2011-01-24T22:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;Scribe: /* Elements to indicate features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Creating a .conf File=&lt;br /&gt;
==.conf File Layout==&lt;br /&gt;
The conf file tells the Sword engine how to treat installed module files, etc. which kind of markup they contain, and so forth.&lt;br /&gt;
&lt;br /&gt;
Below is a listing of the possible directives in that file. Each of these directives of the form key=value. Some keys can be repeated. Some can have values that span more than 1 line with '\' at the end of a line indicating that the text on the next line continues the value. Some values allow RTF and some allow HTML &amp;amp;lt;a href=&amp;quot;xxx&amp;quot;&amp;amp;gt;label&amp;amp;lt;/a&amp;amp;gt;hypertext links. HTML is not allowed otherwise.&lt;br /&gt;
&lt;br /&gt;
Note on RTF, only the following are allowed:&lt;br /&gt;
* \qc - for centering&lt;br /&gt;
* \par - for paragraph breaks&lt;br /&gt;
* \pard - for resetting paragraph attributes, i.e. turning off centering.&lt;br /&gt;
* \u{num}? - for unicode characters, where {num} is a signed, 16-bit representation of the code point and where ? is the  ASCII character used in case unicode is not supported. If the {num} is less than 0 then add 65536 to it. This should only be used in modules that have an Encoding=UTF-8, but using the actual UTF-8 character is preferred.&lt;br /&gt;
&lt;br /&gt;
Enumerated values are shown in bold. These should be used exactly as given and no other values should be used.&lt;br /&gt;
&lt;br /&gt;
===Required Elements===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| [name]&lt;br /&gt;
| Each conf file begins with [name], replacing &amp;quot;name&amp;quot; with a short well known abbreviation for the module (e.g., [KJV]). This must be first in the file. Valid characters for this abbreviation are limited to A-Z, a-z, 0-9 and _.&amp;lt;br/&amp;gt;&lt;br /&gt;
The .conf file should be named the lowercase of this abbreviation followed by .conf. For example, [MyModule] would be mymodule.conf.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DataPath&lt;br /&gt;
| &amp;amp;lt;relative system path pointing to the data files&amp;amp;gt;&lt;br /&gt;
DataPath is the path to the module data files relative to the SWORD module library root directory. This path should start with &amp;quot;./modules&amp;quot;. If the DataPath indicates a directory it should end with a '/'. Otherwise the module name is both the directory and the prefix for each file in that directory.  Although DataPath can point to any folder or files under the root of the SWORD module library, the following conventions are recommended and must be used for modules wishing to be included in a CrossWire repository:&lt;br /&gt;
&lt;br /&gt;
Paths for a module named [mymodule], depending on the type of module (Bible text, commentary, lexcon or dictionary, general book) and the data driver used are:&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/rawtext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/texts/ztext/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/zcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/hrefcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawcom4/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/comments/rawfiles/mymodule/&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/zld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/devotionals/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld/glossaries/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/lexdict/rawld4/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
:./modules/genbook/rawgenbook/mymodule/mymodule&lt;br /&gt;
&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Description&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is a short (1 line) title of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ModDrv&lt;br /&gt;
| &amp;lt;b&amp;gt;RawText&amp;lt;/b&amp;gt; (for uncompressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zText&amp;lt;/b&amp;gt; (for compressed Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom&amp;lt;/b&amp;gt; (for uncompressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawCom4&amp;lt;/b&amp;gt; (for uncompressed Commentaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zCom&amp;lt;/b&amp;gt; (for compressed Commentaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HREFCom&amp;lt;/b&amp;gt; (each module entry must be only a URL to the body for the entry; experimental)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawFiles&amp;lt;/b&amp;gt; (stores each entry in a simple text file in the datapath; recommended for Personal Commentary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD&amp;lt;/b&amp;gt; (for uncompressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawLD4&amp;lt;/b&amp;gt; (for uncompressed Dictionaries having entries greater than 32K bytes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;zLD&amp;lt;/b&amp;gt; (for compressed Dictionaries)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RawGenBook&amp;lt;/b&amp;gt; (for uncompressed tree keyed modules)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Elements to indicate features ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| CompressType&lt;br /&gt;
| &amp;lt;b&amp;gt;ZIP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski LZSS]&amp;lt;/b&amp;gt;&lt;br /&gt;
Used to indicate how a compressed module (zText, zCom, zLD) is compressed.&lt;br /&gt;
ZIP is the preferred format.&lt;br /&gt;
| LZSS&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockType&lt;br /&gt;
| &amp;lt;b&amp;gt;BOOK&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;CHAPTER&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VERSE&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zText and zCom to indicate how much of the work is compressed into a block. The trade off is size for speed, with BOOK taking the least overall space and the longest time and VERSE taking the greatest overall space and the least time. While BlockType has a default, it is a best practice to specify it. Most Bibles use BOOK and larger Commentaries use CHAPTER. To date, no module uses VERSE.&lt;br /&gt;
| CHAPTER&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| BlockCount&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for zLD to indicate the number of entries in a compressed block. Higher values will make the module slower, but smaller.&lt;br /&gt;
| 200&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| KeyType&lt;br /&gt;
| &amp;lt;b&amp;gt;TreeKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;VerseKey&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used for RawGenBook to indicate whether the module contains a book or a Bible. At this time VerseKey is being developed as the solution for [[Alternate_Versification&amp;amp;#124;alternate versification]].&lt;br /&gt;
| TreeKey&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CipherKey&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the unlock key for enciphered modules. A good key is something that is hard to guess. Typically in a format matching the pattern: /[0-9]{4}[A-Za-z]{4}[0-9]{4}[A-Za-z]{4}/. Internally the key can be any byte sequence from 1 to 255 bytes in length. But this file needs it to be readable, plain text, without leading or trailing spaces. Leave a blank line (&amp;quot;CipherKey=&amp;quot;) to indicate that the module is enciphered but has no unlock key. (Omit for unlocked modules.)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Versification&lt;br /&gt;
|&amp;lt;b&amp;gt;Catholic&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Catholic2&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;German&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;KJVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Leningrad&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Luther&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;MT&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSV&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;NRSVA&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Synodal&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;SynodalP&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Vulg&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Used to specify the versification employed by a Bible module.&lt;br /&gt;
| KJV&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Elements required for proper rendering ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| GlobalOptionFilter&lt;br /&gt;
| &amp;lt;b&amp;gt;GBFStrongs&amp;lt;/b&amp;gt; (For GBF texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFFootnotes&amp;lt;/b&amp;gt; (For GBF texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFMorph&amp;lt;/b&amp;gt; (For GBF texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFHeadings&amp;lt;/b&amp;gt; (For GBF texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBFRedLetterWords&amp;lt;/b&amp;gt; (For GBF texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLStrongs&amp;lt;/b&amp;gt; (For THML texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLFootnotes&amp;lt;/b&amp;gt; (For THML texts having footnotes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLScripref&amp;lt;/b&amp;gt; (For THML texts having cross references)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLMorph&amp;lt;/b&amp;gt; (For THML texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLHeadings&amp;lt;/b&amp;gt; (For THML texts having headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLVariants&amp;lt;/b&amp;gt; (For THML texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThMLLemma&amp;lt;/b&amp;gt; (For THML texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8Cantillation&amp;lt;/b&amp;gt; (For Hebrew texts having cantillation marks)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8GreekAccents&amp;lt;/b&amp;gt; (For Greek texts having accents)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;UTF8HebrewPoints&amp;lt;/b&amp;gt; (For Hebrew texts having vowel points)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISStrongs&amp;lt;/b&amp;gt; (For OSIS texts having Strong's Numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISFootnotes&amp;lt;/b&amp;gt; (For OSIS texts having informational notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISScripref&amp;lt;/b&amp;gt; (For OSIS texts having cross reference type notes)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISMorph&amp;lt;/b&amp;gt; (For OSIS texts having morphology information)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISHeadings&amp;lt;/b&amp;gt; (For OSIS texts having non-canonical headings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISVariants&amp;lt;/b&amp;gt; (For OSIS texts having variant readings)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRedLetterWords&amp;lt;/b&amp;gt; (For OSIS texts marking the Words of Christ)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISLemma&amp;lt;/b&amp;gt; (For OSIS texts having lemmas)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSISRuby&amp;lt;/b&amp;gt; (For Japanese OSIS texts with [http://www.w3.org/TR/ruby/ ruby]: Kana glosses of Han characters)&amp;lt;br/&amp;gt;&lt;br /&gt;
Each of these filters removes/hides the text's feature, when activated by the application.&lt;br /&gt;
These filters are applied in the order that they are listed in the conf. Some filters are dependent on each other for certain features - e.g. crossreferences in notes require both the OSISFootnotes and the OSISScriprefs filters enabled. &lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| Direction&lt;br /&gt;
| &amp;lt;b&amp;gt;LtoR&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft to &amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;RtoL&amp;lt;/b&amp;gt; (&amp;lt;u&amp;gt;R&amp;lt;/u&amp;gt;ight to &amp;lt;u&amp;gt;L&amp;lt;/u&amp;gt;eft)&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicate whether the language's script is a left to right script or a right to left script. Languages such as Hebrew, Arabic, Urdu, and Farsi have a right to left script (technically [http://en.wikipedia.org/wiki/Bi-directional_text bi-directional]). If the RtoL script is transliterated into a LtoR script, set the value to LtoR.&lt;br /&gt;
| LtoR&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SourceType&lt;br /&gt;
| &amp;lt;b&amp;gt;Plaintext&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GBF&amp;lt;/b&amp;gt; General Bible Format: http://www.ebible.org/bible/gbf.htm&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;ThML&amp;lt;/b&amp;gt; Theological Markup Language: http://www.ccel.org/ThML&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;OSIS&amp;lt;/b&amp;gt; Open Scriptural Information Standard: http://www.bibletechnologies.net&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;TEI&amp;lt;/b&amp;gt; Text Encoding Initiative: http://www.tei-c.org/P4X/DI.html&amp;lt;br/&amp;gt;&lt;br /&gt;
These are various ways that the text can be encoded. The preferred encoding is OSIS. TEI is preferred for dictionaries until OSIS supports dictionaries.&amp;lt;br/&amp;gt;&lt;br /&gt;
In SWORD, for modules encoded with ThML, OSIS or TEI, each verse, dictionary entry, and book division needs to be well-formed XML or it will result in display problems in some front-ends.&lt;br /&gt;
| Plaintext&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Encoding&lt;br /&gt;
| &amp;lt;b&amp;gt;UTF-8&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Latin-1&amp;lt;/b&amp;gt; (cp1252; see the warning)&amp;lt;br/&amp;gt;&lt;br /&gt;
The preferred encoding of texts is UTF-8. UTF-8 modules must be encoded with [http://unicode.org/reports/tr15/ Normalization Form C (NFC)]. Latin-1 is defined by [http://en.wikipedia.org/wiki/Windows-1252 Windows Codepage 1252 (cp1252)] which is a superset of ISO 8859-1.&lt;br /&gt;
This encoding indicates how the conf and the module are encoded.&lt;br /&gt;
&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: &amp;quot;Latin-1&amp;quot; is an ambiguously used term. See [http://en.wikipedia.org/wiki/ISO_8859-1 ISO 8859-1 at Wikipedia] for technical details; in reality Latin-1 is regularly used as a synonym for ISO-8859-1. Front-end implementors should use &amp;quot;cp1252&amp;quot; or &amp;quot;windows1252&amp;quot; explicitly, not &amp;quot;Latin-1&amp;quot; provided by some programming language libraries.&amp;lt;/i&amp;gt;&lt;br /&gt;
| Latin-1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DisplayLevel&lt;br /&gt;
| &amp;amp;lt;integer&amp;amp;gt;&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Specify the font to be used for display of the module if it is available. Omit this line to use the default font. Do not make use of font-specific encodings in your documents, but use Unicode instead and the Private Use Area if necessary for codepoints that are not handled by Unicode.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| OSISqToTick&lt;br /&gt;
| true/false&amp;lt;br/&amp;gt;&lt;br /&gt;
When set to false indicates that OSIS quote elements without a marker attribute are not to produce a quotation mark. This is useful for languages (e.g. Thai) and texts (e.g. KJV) that do not have quotation marks. It is also useful for modules that mark the &amp;quot;Words of Christ&amp;quot; on a verse by verse basis, when the quote spans more than one verse.&lt;br /&gt;
| true&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Feature&lt;br /&gt;
| &amp;lt;b&amp;gt;StrongsNumbers&amp;lt;/b&amp;gt; (for modules that include Strong's numbers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Greek definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewDef&amp;lt;/b&amp;gt; (for modules with Strong's number encoded Hebrew definitions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;GreekParse&amp;lt;/b&amp;gt; (for modules with Greek morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;HebrewParse&amp;lt;/b&amp;gt; (for modules with Hebrew morphology expansions)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;DailyDevotion&amp;lt;/b&amp;gt; (for daily devotionals using one of the LD drivers and keyed with MM.DD)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossary&amp;lt;/b&amp;gt; (for collections of glosses using one of the LD drivers)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that contain images of any type)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryFrom&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated from.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| GlossaryTo&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Glossaries map one language to another. This value indicates the language being translated to.&lt;br /&gt;
See Lang below for a discussion of valid values.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== General informatic and installer elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Abbreviation&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A shorter abbreviation which can be displayed instead of the full name. For example, KJV for the King James Version.&lt;br /&gt;
| The module name.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| About&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A lengthier description and may include copyright, source, etc. information, possibly duplicating information in other elements.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&amp;lt;br/&amp;gt;RTF&lt;br /&gt;
|- &lt;br /&gt;
| Version&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Gives the module's revision number. Incrementing it when changes are made alerts users of the SWORD Installers to the presence of updated modules. Please start with version 1.0 and increment by 0.1 for minor updates and by larger values for more major updates such as a new text source. Changes to this conf file should also increment the version number. Do not use non-numbers, such as 1.4a or 1.1.3.&lt;br /&gt;
| 1.0&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| History_x.x&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Used to alert users to what has changed between different versions. Each time a version is incremented a history line with that version number should explain the change.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|- &lt;br /&gt;
| MinimumVersion&lt;br /&gt;
| &amp;amp;lt;version string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Identifies the minimum version of the Sword library required for this module.&lt;br /&gt;
| 1.5.1a&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Category&lt;br /&gt;
| &amp;lt;b&amp;gt;Daily Devotional&amp;lt;/b&amp;gt; (for modules with Feature=DailyDevotion)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Glossaries&amp;lt;/b&amp;gt; (for modules with Feature=Glossary)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Cults / Unorthodox / Questionable Material&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Essays&amp;lt;/b&amp;gt; (for essays)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Maps&amp;lt;/b&amp;gt; (for modules that primarily consist of maps)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Images&amp;lt;/b&amp;gt; (for modules that primarily consist of images)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Biblical Texts&amp;lt;/b&amp;gt; (for Bibles)&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Commentaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Lexicons / Dictionaries&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Generic Books&amp;lt;/b&amp;gt; (for anything else....)&amp;lt;br/&amp;gt;&lt;br /&gt;
This is used by installers to further categorize the modules beyond what can be figured out by the ModDrv and Feature.&lt;br /&gt;
| Biblical Texts (for /(Raw&amp;amp;#124;z)Text4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Commentaries (for /(Raw&amp;amp;#124;z&amp;amp;#124;HREF)Com4?/)&amp;lt;br/&amp;gt;&lt;br /&gt;
Lexicons / Dictionaries (for /(Raw&amp;amp;#124;z)LD4?/&amp;lt;br/&amp;gt;&lt;br /&gt;
Generic Books (for RawGenBook)&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| LCSH&lt;br /&gt;
| &amp;amp;lt;tree/string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Library of Congress Subject Heading. You may search the [http://catalog.loc.gov Library of Congress catalog] or use it as a guide for determining an appropriate LCSH for books that are not in the Library of Congress.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Lang&lt;br /&gt;
| &amp;amp;lt;xml:lang identifier&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
This is the primary language code of the module and should include a value according to BCP 47 (i.e. [http://tools.ietf.org/html/rfc4646 RFC 4646] &amp;amp; [http://tools.ietf.org/html/rfc4647 RFC 4647]). When available use a 2-letter code from [http://en.wikipedia.org/wiki/ISO_639-1 ISO 639-1 codes] ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]), (e.g. ''en'' for English). If there is none for the given language, use an [http://en.wikipedia.org/wiki/ISO_639-2 ISO 639-2/T code] (e.g. ceb for Cebuano) ([http://www.loc.gov/standards/iso639-2/php/code_list.php registrar]). Failing that, use [http://en.wikipedia.org/wiki/ISO_639-3 ISO 639-3] ([http://www.sil.org/iso639-3/codes.asp registrar]), which covers over 7000 languages, or [http://en.wikipedia.org/wiki/ISO_639-5 ISO 639-5] ([http://www.loc.gov/standards/iso639-5/id.php registrar]) for macrolanguages. The regex for this subtag will be /[a-z]{2,3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is script-specific, such as a Latin vs. Cyrillic Serbian Bible or a Bible transliterated into other than its native script, include the [http://en.wikipedia.org/wiki/ISO_15924 ISO 15924 script code] ([http://unicode.org/iso15924/iso15924-codes.html registrar]) after the language code (e.g. sr-Latn for Latin script Serbian, sr-Cyrl for Cyrillic script Serbian). The regex for this subtag will be /[A-Z][a-z]{3}/.&lt;br /&gt;
&lt;br /&gt;
If a text is region (country)-specific, such as the Anglicized NIV, include the [http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 region code] ([http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html registrar]) after the script code (or language code if no country code is present) (e.g. en-GB for UK English). The regex for this subtag will be /[A-Z]{2}/&lt;br /&gt;
&lt;br /&gt;
Individual subtags (language, script, and region) are always separated by a hyphen. Identifiers should be as basic and succinct as possible. A script should not be specified for a language written in its expected script, unless the language has multiple common scripts (as in the case of Serbian above). A region should not be specified unless a text should be categorized separately from others texts in that language that do not specify a region. Private use extensions defined by BCP 47 (e.g. x-, qaa, and Qaaa) should be avoided wherever possible.&lt;br /&gt;
| en&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| InstallSize&lt;br /&gt;
| &amp;amp;lt;integer (indicating bytes)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| SwordVersionDate&lt;br /&gt;
| &amp;amp;lt;ISO date string (yyyy-mm-dd)&amp;amp;gt;&lt;br /&gt;
Indicates the date that the module was changed.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| Obsoletes&lt;br /&gt;
| &amp;amp;lt;name of module&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Each instance of this element names a module that is made obsolete by this module, usually indicated by the former name of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Repeats&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Copyright &amp;amp;amp; Licensing related elements ===&lt;br /&gt;
&lt;br /&gt;
{|  width=&amp;quot;100%&amp;quot; border=&amp;quot;1&amp;quot; class=&amp;quot;sortable&amp;quot;&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Element&lt;br /&gt;
! width=&amp;quot;70%&amp;quot;|Values (type or enumerated)&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Default Value&lt;br /&gt;
! width=&amp;quot;10%&amp;quot;|Allows&lt;br /&gt;
|- &lt;br /&gt;
| Copyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the copyright notice for the work, including the year of copyright and the owner of the copyright.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightHolder&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightDate&lt;br /&gt;
| &amp;amp;lt;integer (indicating year)&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactName&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the name of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactAddress&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the mailing address of the copyright holder.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| CopyrightContactEmail&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the email address of the copyright holder, preferably in the form:&amp;lt;br/&amp;gt; name at xyz dot com.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| ShortPromo&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
A link to the home page for the module, perhaps with an encouragement to visit the site.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| HTML Link&lt;br /&gt;
|- &lt;br /&gt;
| ShortCopyright&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionLicense&lt;br /&gt;
| &amp;lt;b&amp;gt;Public Domain&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission to distribute granted to CrossWire&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Free non-commercial distribution&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Freely distributable&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Copyrighted; Permission granted to distribute non-commercially in Sword format&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/fdl.html GFDL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;[http://www.gnu.org/copyleft/gpl.html GPL]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-nd by-nc-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc-sa by-nc-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nc by-nc]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-nd by-nd]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by-sa by-sa]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;Creative Commons: [http://creativecommons.org/licenses/by by]&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Use one of these strings '''verbatim'''. The actual copyright and/or license information is held in other elements. The last six licenses are [http://creativecommons.org/ Creative Commons] licenses.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|- &lt;br /&gt;
| DistributionNotes&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates any additional notes about distribution of the module.&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| TextSource&lt;br /&gt;
| &amp;amp;lt;string, probably a URL&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Indicates, either in prose (such as &amp;quot;CCEL&amp;quot;) or as a URL of the source of the text&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| Continuation&lt;br /&gt;
|- &lt;br /&gt;
| UnlockURL&lt;br /&gt;
| &amp;amp;lt;string&amp;amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Contains the URL (a bare URL, not an HTML &amp;amp;lt;a&amp;amp;gt; link) of a web page for unlocking instructions/payment&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
| URL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization ==&lt;br /&gt;
&lt;br /&gt;
Where it makes sense, the values in the .conf file may be internationalized by appending _lang where lang is replaced by an appropriate code, according to [http://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47]. See Lang above for details.&lt;br /&gt;
&lt;br /&gt;
For example, to give a French description, you can have a field:&lt;br /&gt;
:Description_fr=....&lt;br /&gt;
&lt;br /&gt;
In order to distinguish a regional form from the primary form of a language, e.g. Brazilian Portuguese vs. the Portuguese of Portugal, then append the country code as in: &lt;br /&gt;
:Description_pt-BR=....&lt;br /&gt;
&lt;br /&gt;
Script variants can be given as in:&lt;br /&gt;
:Description_zh_Hans=.... simplified Chinese ....&lt;br /&gt;
:Description_zh_Hant=.... traditional Chinese ....&lt;br /&gt;
&lt;br /&gt;
The language for .conf entries without the locale modifier is the default and must be the language of the module itself (as specified in Lang=) or English.&lt;br /&gt;
&lt;br /&gt;
'''Notes''':&lt;br /&gt;
*At the present, this is only a planned feature. Module .confs can &amp;amp; should make use of this facility, but at the moment, there is no Sword library or front end support for it.&lt;br /&gt;
*See also [[Localized Language Names]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Development tools|Conf files]]&lt;br /&gt;
[[Category:Localization|Conf files]]&lt;/div&gt;</summary>
		<author><name>Scribe</name></author>	</entry>

	</feed>