0 votes

I recently reported to the developers that 9.1 (unlike 8 or 9.0) is regularly breaking lines in the middle of words (and we have spaces between words!). Our project uses a non-Western script (Khmer). I wonder whether others working with non-Western scripts have this problem now? If so, please report the bug and help make it a priority.

Also, if you know of a hack to fix this, please share.

Incidentally, in this respect, PT 9.1 now behaves like Microsoft Word, which for years has broken lines in the middle of Khmer script words, even when words are separated by spaces. (Our language is strongly isolating, so we’re not talking about long words!) I wonder whether PT 9.1 changed how it renders text and uses technology similar to Microsoft’s? If so, I hope the developers will reconsider this choice.

Paratext by (287 points)

2 Answers

0 votes
Best answer

Looks like this was already reported as PTX-20833

Harfbuzz delegates line breaking decisions. Previously complex link breaking, (needed for Khmer and 3 other languages) was determined by asking uniscribe. This is now done by asking icu, which fixed line breaking for some languages. This is likely the cause of the change.

by [Moderator]
(2.2k points)

reshown

hindlemail, a few years ago Martin Hosken did some work on fixing Khmer line-breaking in LibreOffice. I thought his fix was made in ICU, but perhaps the fix was to do the line breaking in LO instead of in ICU.

I checked with Martin about his fix in LibreOffice. He said ICU didn’t accept his fixes because he only implemented C++ and they also wanted it done in Java.

Just got the update to 9.1.104.39. No change yet – I’m guessing the fix wasn’t intended for this update? (I had previously seen a note saying that fixing this was a priority for the next update.)

The change did make it into update 9.1.104.39, but it is not the default option because changing the default would cause problems for others.

If you open Paratext settings, there is a new option for Khmer word breaks (it’s the only language we know of that would want this option). Checking this option and restarting Paratext should give you the behavior you want.

John+Wickberg
Paratext Support

I’m using 9.1.104.39, checked the box in settings and restarted Paratext, but I still see some broken words, as in the highlight here:

FYI: Languages using Thai-based scripts also have problems with words being split, but this has always been the case in Paratext (apparently unlike Khmer-based scripts, and I think Lao-based, which seemed to be fixed for a while to not break). For Print Draft it was fixed last year, but on the screen the words split incorrectly at line breaks. I think with the Thai-based scripts there were font issues that would not allow the breaking to be fixed (except in Print Draft and in ptxprint), so I doubt if this Khmer fix would help us. But we would really love it if it does!!
Linda119

Does checking the box have any effect? (ie. does it fix somethings but not everything?)
The example that was used when fixing this was:

យេហូវ៉ា
(1799,17c1,17a0,17bc,179c,17c9,17b6)

If the check box doesn’t fix that then could you try this:

Create file C:\Users\$USER\AppData\Local\ParatextGeckoPreferencesOverrides.txt
(with $USER being replaced with appropriate user name)

and paste this line in the file:

b intl.complexLineBreaking.uniscribe true

and save.

Now if you restart Paratext does this make any difference?

The Paratext code changes were included in the patch, but the updated version of the Firefox engine was not included.

Our testing normally uses different builds than the patch and those builds had the correct Firefox version.

I’ll work on getting the Firefox version in our next patch that will be sent out next week.

John+Wickberg

image hindlemail Developer
February 12

Does checking the box have any effect? (ie. does it fix somethings but not everything?)

I’m not sure, but given John+Wickberg W’s email I assume it’s not important to search further.

The example that was used when fixing this was:

យេហូវ៉ា
(1799,17c1,17a0,17bc,179c,17c9,17b6)

If the check box doesn’t fix that then could you try this:

Create file C:\Users$USER\AppData\Local\ParatextGeckoPreferencesOverrides.txt
(with $USER being replaced with appropriate user name)

and paste this line in the file:

b intl.complexLineBreaking.uniscribe true

and save.

Now if you restart Paratext does this make any difference?

Pasting “b intl.complexLineBreaking.uniscribe true”
Into "C:\Users\LivingField\AppData\Local\ParatextGeckoPreferencesOverrides.txt”
Did not fix the breaking of the word យេហូវ៉ា
We’ll be waiting for next week’s build with the updated Gecko.

Yesterday my PT updated to 9.1.104.59. After the update, line breaking is still broken.

In release 1.104.39 I’d already selected “Khmer only: Support complex line breaks.” After updating to 104.59, I deselected that option, restarted PT, selected it again, and restarted again – all to make sure the option was “taking.” But no go.

Thanks for your attention to this! It’ll be nice to have a fix.

Trying with your project and 9.1.104.59, appears to work for me:

With the option enabled:

and:

With the option disabled:

I know I have a different font to you, but I couldn’t locate Khmer Barkaew font. I don’t think that would make a difference but it might be worth ruling out. (If you could easily provide me with the font, then I will test with it).

So If you agree that my screenshots show the expected behavior (and I’m not misunderstanding the problem), and the font doesn’t make a difference, then I think it’s worth checking the paratext update process worked as expected.

In windows explorer could you navigate to C:\Program Files\Paratext 9\Firefox64 and right click → properties on xul.dll. The Size: field should be “75,891,200 bytes” If it’s not then that is likely the cause of this.

If the size doesn’t match then you can fix this manually by doing the following:

download:
https://www.nuget.org/api/v2/package/Geckofx60.64.Windows/0.18.0
rename download extension to .zip

Extract out file: content/Firefox64/xul.dll

  1. stop paratext.
  2. rename C:\Program Files\Paratext 9\Firefox64\xul.dll to xul.dll_original
  3. copy xul.dll from zip file into C:\Program Files\Paratext 9\Firefox64\
  4. restart paratext

The files in the download fixed it for me.

Is there any chance that this could also be done for Thai script languages? I tried to replace the xul.dll following these instructions, but it didn’t make a difference, the words on the screen in Paratext for our Thai-based language still split across lines, so I guess it only applies to Khmer?

Linda119

This fixed it for me, too. Thanks!

Hi Linda119,

image

The languages that this option effects are:
Thai, Lao, Tibetan, Khmer
(Perhaps the label for this option isn’t the best. As in addition to being relevant to additional languages, having it unchecked does support complex line breaks. My understanding is that unchecked is more compliant with Unicode with respect to how line breaks are done, which may be different to how things used to work.)

All this option does is revert to Paratexts previous complex line breaking behaviour.
So if you observed an wanted line breaking change when moving from 9.0 to 9.1 then this option gives you the old behaviour.

0 votes

That change was definitely unintentional. Paratext uses the Firefox Harfbuzz layout engine, so it’s possible there was an update to that system that broke this.

Please use Help > Give feedback so we can look closer at this problem.

by [Expert]
(16.2k points)

Related questions

0 votes
1 answer
Paratext Apr 27, 2015 asked by [Expert]
sewhite
(3.0k points)
0 votes
0 answers
0 votes
0 answers
0 votes
1 answer
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Just as a body, though one, has many parts, but all its many parts form one body, so it is with Christ.
1 Corinthians 12:12
2,479 questions
5,175 answers
4,875 comments
1,285 users