View Issue Details

IDProjectCategoryView StatusLast Update
0005937ScribusNLSpublic2016-11-17 11:54
Reporterbountonw Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
Status confirmedResolutionopen 
Product Version 
Target VersionFixed in Version 
Summary0005937: Lao line wrapping and hyphenization
DescriptionScribus has no capability for line wrapping and hyphenization for Lao. Lao, like Thai and Khmer is written in phrases without spacing between individual words. Currently Scribus is breaking lines in the middle of words. For a beginning solution to this problem.

Never allow line breaks after 0EC0, 0EC1, 0EC2, 0EC3, 0EC4, 0EBB,0EB1, 0EBD.

Never allow line breaks before 0EAF, 0EB0, 0EB1, 0EB2, 0EB3, 0EB4, 0EB5, 0EB6, 0EB7, 0EB8, 0EB9, 0EBB, 0EBC, 0EBD 0EC6, 0EC8, 0EC9, 0ECA, 0ECB, 0ECD

This by no means solves the problem, but it is a good start. A dictionary approach, like Thai, could be used for the second phase of Lao text wrapping.
TagsCJK, HOST-Oman, scribusctl
Patch

Relationships

related to 0003928 closedFahad Support line breaking for Thai text 
child of 0003965 acknowledged Metabug: Support for non-latin languages 
child of 0003828 acknowledged Metabug: Hyphenation 

Activities

bountonw

2007-06-22 11:01

reporter   ~0016631

Last edited: 2016-11-17 11:49

View 2 revisions

The following bug-track is for a similar problem in Thai.

0003928

As Thai and Lao are very close cousins with similar scripts and rules, the same principles should apply when solving the line wrapping problem. Anyone working on Lao (the minority language) should compare with what is being done with Thai. But without the line wrapping and then justification problem solved, scribus is not possible for Thai and Lao publishing. Unless one wants to physically manipulate each line of text. That is too much for a 100 page book.

bountonw

2007-06-22 11:08

reporter   ~0016632

This should be added to the megabug 0003965 "Support for non-Latin languages" as a child.

2007-06-22 11:16

 

phetsarath_OT.ttf (92,864 bytes)

jghali

2007-06-22 12:23

administrator   ~0016633

Thanks for these infos, they'll be definitely useful.

plinnell

2007-06-22 23:13

viewer   ~0016639

Is this font GPL or other wise a freely distributable font ?

bountonw

2007-06-23 14:29

reporter   ~0016642

This font is free and is distributed by the Lao Government.

http://ict4dev.gov.la/

avox

2007-06-23 22:47

administrator   ~0016647

Are hyphens used in Thai and Lao? If yes, in what cases?
Are spaces used at all in those languages?

Are there special rules for justification?

bountonw

2007-06-23 23:25

reporter   ~0016649

Spaces are used on the phrase/clause/sentence level and not to separate words. Sometimes a block of text can be more than one line long before a space occurs. So you have these blocks of phrases and scribus/OOo/MS word does not know where to break for Lao and inevitably breaks in the middle of a word. Our organization has over 10,000 lines of Lao text and growing daily. With each line broken in the middle of a word, it is quite difficult for us to publish anything. Thai works well in OOo and MS word.

There are rare cases of hyphenization in Thai and Lao. There must be special rules for justification, because in MS word you can either left, right, center, justify, or Thai justify as paragraph.

I don't have enough programming skills to be intelligent on this. I have some linguistic back ground and am fluent in Lao, but I am not a professional linguist.

IMHO the order of progress should be to
1. Define what a word is by

a. Use the rules that I added in the first post of this thread to define when a line break can NEVER occur based on certain morphological principles.

b. Create some kind of dictionary of words like Thai does. (I know Thai does this, based on my reading, but I don't know how.) I can supply a word list in Lao for the dictionary.

2. Create hyphenation rules.
3. Create Justification rules.

So I can help better, what programming language should I begin learning to help with providing scribus usability to the various countries of Southeast Asia?

bountonw

2007-06-23 23:33

reporter   ~0016650

This thread should also be added as a child to "0003828 Metabug:Hyphenization"

bountonw

2007-06-23 23:41

reporter   ~0016653

Last edited: 2007-06-23 23:43

A relationship should be added to this current thread to 0003928 - Thai line breaking.

pierremarchand

2007-06-28 08:51

reporter   ~0016689

bountonw : Would it be possible that you upload a short (utf encoded) text sample & the way it has to be render. I could test it with my brok^^improved scribus that pretends to support thai !

laonux

2007-06-29 02:11

reporter   ~0016695

Pierrmarchand,

You can copy the utf Lao from this site http://www.ict4dev.gov.la/lao/.

laonux

2007-06-29 02:13

reporter   ~0016696

I have invited a friend of mine, Theppitak, who who worked with LibThai and see what he has to say about this.

pierremarchand

2007-06-29 21:25

reporter   ~0016703

I was confident because I saw a harfbuzz-thai.cpp in harfbuzz source tree but it happens that's a "non activated" feature :(
Engines present in harfbuzz are :
extern HB_Bool HB_TibetanShape(HB_ShaperItem *shaper_item);
extern HB_Bool HB_HebrewShape(HB_ShaperItem *shaper_item);
extern HB_Bool HB_ArabicShape(HB_ShaperItem *shaper_item);
extern HB_Bool HB_HangulShape(HB_ShaperItem *shaper_item);
extern HB_Bool HB_MyanmarShape(HB_ShaperItem *shaper_item);
extern HB_Bool HB_KhmerShape(HB_ShaperItem *shaper_item);
extern HB_Bool HB_IndicShape(HB_ShaperItem *shaper_item);

These are based on script and I don't know exactly if it covers a large range of non-latin languages.

bountonw

2008-07-14 09:52

reporter   ~0019963

What is the status of this thread? Is more information needed about the Lao orthographic rules? How can we move forward from "Acknowledged" to "confirmed" and "assigned".

plinnell

2008-07-16 16:45

viewer   ~0019977

we wont assign anyone this yet, but adding better non-Latin support in Scribus is a high priority, but other parts of the code need addressing.. The new text layout routines in 1.3.5 will help. This is a long term project which we want to do properly from the start.

rcampbelllaos

2013-09-22 12:25

reporter   ~0030609

Some news... ICU will now have Lao support as a result of a project completed by a friend of mine (bountonw on here), myself, and some others.

Does Scribus support using ICU libraries?

Also, the dictionary file used is available (open source) at: http://code.google.com/p/lao-dictionary/source/browse/

I would like to see if there is anyway we could get this included into Scribus soon, and am willing to help in any way I can, as time permits.

silvain

2016-03-19 17:05

reporter   ~0039274

To wrap lines in Scribus with the Lao script (or other programs like InDesign), one need to have the syllable/word separator ZWSP (Zero-Wodth-SPace, Unicode U+200B) between words/syllables.
This can be accomplished in Windows on entering text by using LaoScript for Windows (free version) or afterwards using the tools provided by LaoScript (paid version).
In linux, separator can be put using the romanised keyboard (I have a modified/improved version available) provided vy the ibus system, or using a algorithm using the Alt Search&Replace extension of LibreOffice.
Any text in Lao script should have this ZWSP included, but unfortunately, most texts are produced without it as it is not necessary when using only Word or LibreOffice, who can recognise the word boundaries (I still do not know at which level these software do it).

Kunda

2016-03-20 18:03

manager   ~0039292

A good way to also possibly getting this to work in a more streamlined way is to connect with the Host-Oman team that are currently working on RTL
https://github.com/HOST-Oman/scribus/tree/ctl
The RTL code is in the 'ctl' branch

Kunda

2016-11-17 11:54

manager   ~0042448

@bountonw
@rcampbelllaos
@silvain
please see 0003928:0040860
you can test it via: https://github.com/HOST-Oman/scribus/tree/ctl#download

Issue History

Date Modified Username Field Change
2007-06-22 04:06 bountonw New Issue
2007-06-22 07:09 jghali Category Translation => NLS
2007-06-22 11:01 bountonw Note Added: 0016631
2007-06-22 11:08 bountonw Note Added: 0016632
2007-06-22 11:16 bountonw File Added: phetsarath_OT.ttf
2007-06-22 12:21 jghali Relationship added child of 0003965
2007-06-22 12:21 jghali Severity major => feature
2007-06-22 12:23 jghali Note Added: 0016633
2007-06-22 23:13 plinnell Note Added: 0016639
2007-06-22 23:15 plinnell Status new => acknowledged
2007-06-23 14:29 bountonw Note Added: 0016642
2007-06-23 22:47 avox Note Added: 0016647
2007-06-23 23:26 bountonw Note Added: 0016649
2007-06-23 23:33 bountonw Note Added: 0016650
2007-06-23 23:41 bountonw Note Added: 0016653
2007-06-23 23:42 bountonw Note Edited: 0016653
2007-06-23 23:43 bountonw Note Edited: 0016653
2007-06-28 08:51 pierremarchand Note Added: 0016689
2007-06-28 10:20 avox Relationship added related to 0003928
2007-06-29 02:11 laonux Note Added: 0016695
2007-06-29 02:13 laonux Note Added: 0016696
2007-06-29 21:25 pierremarchand Note Added: 0016703
2008-07-14 09:52 bountonw Note Added: 0019963
2008-07-16 16:45 plinnell Note Added: 0019977
2008-07-16 16:45 plinnell Status acknowledged => confirmed
2013-09-22 12:25 rcampbelllaos Note Added: 0030609
2015-12-02 12:19 Kunda Relationship added child of 0003828
2016-03-19 17:05 silvain Note Added: 0039274
2016-03-20 18:03 Kunda Note Added: 0039292
2016-11-17 11:49 Kunda Tag Attached: scribusctl
2016-11-17 11:49 Kunda Tag Attached: CJK
2016-11-17 11:49 Kunda Note Edited: 0016631 View Revisions
2016-11-17 11:54 Kunda Note Added: 0042448
2016-11-17 11:54 Kunda Tag Attached: HOST-Oman