savanto / AnDICT-Android

DICT protocol client for Android.
https://play.google.com/store/apps/details?id=com.savanto.andict
GNU General Public License v2.0
0 stars 1 forks source link

Incorrect title display for right-to-left words‏ #17

Open Michahel opened 5 years ago

Michahel commented 5 years ago

The problem is best demonstrated using the heb-rus_strong dictionary on dict.bible.ru, though this happens to other Hebrew dictionaries as well.

How to reproduce the problem

Entering the number 02388 will find following definition. See a screen capture. The title will be displayed in the correct form.

"02388" heb-rus_strong "Еврейский словарь Стронга на русском языке"

Entering the word "חזק" will find the same definition. See a screen capture. The title will be displayed in the wrong form.

"חזק" heb-rus_strong "Еврейский словарь Стронга на русском языке"

Hebrew words in the titles cause much grief. You see the words being rearranged and the title is a complete mess. This is caused by mixing right to left (hebrew) and left to right languages in a single paragraph. Unfortunately the android text rendering system does not always handle this the way we would want. Try to force it to use left to right as follows. Insert the Unicode control character LRM before the Hebrew word. It is necessary to check whether the word refers to the letter from right to left. If yes, use u + 200E this is the left to right mark. Come up with some routine like IsUnicodeHebrew.