[sword-devel] Sword support of indents and line breaks

John Austin gpl.programs.info at gmail.com
Thu Apr 11 23:04:16 MST 2013

Sword should support basic indents and line breaks. Content providers 
should be able to control the formatting of their texts and should not 
be required to assign their content to artificial <p>...</p> or other 
containers to do so. Although these containers might be useful, the text 
of some translation styles cannot be fit nicely into them. But often 
content providers do rightly desire their texts to appear with 
formatting similar to their printed texts, since this is exactly what 
the translators deemed easiest to read and understand.

People who convert texts to Sword are often not at liberty to change the 
source texts to do so, and source texts in strange languages come with 
many unexpected language constructs. For these reasons it is important 
that Sword tries to offer content providers a simple, reliable way of 
formatting their own texts, without requiring them to fit into Sword's 
container scheme to do so.

IBT of Russia is already using simple osis <milestone type="x-p-indent" 
/> and <lb /> to achieve all their formatting needs for their Sword 
modules. Currently, only xulsword supports both of these. But perhaps 
they should both be included in Sword's osis2html filters so that all 
front-ends can support them. At least something very similar should be 
adopted, if there is a strong reason not to adopt IBT's well tested method.

Hard spaces and other such formatting are not acceptable solutions 
because they cannot be easily filtered. It is important that unformatted 
text can easily be obtained from formatted text since there are many 
uses for unformatted text, such as bookmark and cross-reference verse 
texts etc.

Here is one example to show why forcing containers on a text is not a 
good idea. This is a section of SFM from the book of Ruth 1:8-12:

\v 8 Йўлда давом этишаркан, Наима иккала келинига деди:
\p — Боринглар, икковингиз ҳам оналарингизнинг уйларига қайтинглар. 
Менга ва марҳумларга бўлган иззат–ҳурматингиз учун Эгам сизларга ҳам 
марҳамат қилсин.
\v 9 Икковларингизга ҳам яхши жойлардан ато қилсин, турмуш қуриб, ўз 
эрларингиз билан бахтли бўлинглар!
\p Шундай деб Наима келинларини ўпди, иккаласи эса йиғлаб фарёд кўтаришди:
\v 10 — Йўқ, биз сиз билан кетамиз, сизнинг халқингиз орасида яшаймиз, — 
\v 11 Наима эса яна келинларига:
\p — Қайтинглар, жон қизларим! — деди. — Мен билан кетганингиздан нима 
фойда?! Қорнимда яна ўғилларим бормидики сизларга умр йўлдоши бўлса?!*
\v 12 Бўлди энди, қизларим, қайтинглар! Мен энди кексайдим, эрга тегишга 
ожизман. Борди–ю, мен, ҳали умид қилсам бўлади, деб шу кеча эрим билан 
қовушсаму ўғиллар туғсам,

Here is a PDF of exactly what the translators designed this SFM to look 

And here is what it looks like in Sword format using only basic osis 
intents and line breaks, rendered by xulsword's osis2html filter: 
http://ibt.org.ru/en/text.htm?m=UZV&l=Ruth.1.1.1&g=0. As you can see, 
the Sword module renders this strange (to us) formatting of text just 
like the translators wanted.

However, now imagine trying to programmatically apply <p>...</p>, 
<l>...</l> etc. constructs to the above SFM to achieve the same effect. 
The designers of the SFM in this case are using the \p tag to represent 
a simple indent (not a paragraph) in order to achieve their desired 
non-Western layout. One might try and argue that the SFM designers have 
done something wrong, but the point is that we have what we have. So 
Sword should provide a simple way for content providers to control the 
formatting of their texts. Basic indents and line breaks do the trick 
for Central Asian languages, and probably many others as well. Poetry is 
even made easy, by putting indents in series as desired.

More information about the sword-devel mailing list