We have moved to a new Sailfish OS Forum. Please start new discussions there.
6

Bug: Contact search Alphabet grid is broken using Korean letters

asked 2014-02-03 09:09:53 +0200

peremen gravatar image

updated 2014-02-03 09:38:50 +0200

I had no chance to see whether contact search grid is working for Korean, since before 1.0.3.8 it only worked for characters belonging to each locale and there was no ko_KR locale at all. Now I can see my contacts are grouped in 1.0.3.8, but missing fonts were very irritating to me.

Background for non-Koreans: Korean alphabet, Hangul, is composed by consonants and vowels. The preferred way to group contacts for Korean users is grouping by first letter's first consonant (choseong, in Korean). While grouping itself works very well (this is actually the way I expected!), but the device's font don't have enough characters to properly show each group's headers. As seen on the image below, there are a lot of squares after the alphabets.

Contact grouping as of 1.0.3.8

The root cause of problem is that Korean characters are scattered into several parts inside Unicode. One block is U+AC00 to U+D7AF where "fully composed" characters reside. The other part is U+1100 to U+11FF where "individual" characters reside. After grouping Korean names (composed by multiple characters on U+AC00 to U+D7AF) they are indexed by the latter individual characters (U+1100 to U+11FF). Current Korean font for Jolla device is Droid Sans Fallback, which contains Korean glyphs for U+AC00 to U+D7AF but not U+1100 to U+11FF, resulting all those squared characters.

Added: According to /etc/fonts/local.conf, WenQuanYi Zen Hei is bound to Sail Sans Pro Light and it contains Korean glyphs for U+AC00 to U+D7AF, it doesn't contain all of U+1100 to U+11FF glyphs for Korean. Some glyphs were there, but they are irrelevant to represent any of modern Korean syllables.

We have two solutions for now: One is add missing glyphs into Droid Sans, or just add additional, good-looking Korean font. I strongly suggest adding NanumGothic (for sans serif) and NanumMyeongjo (for serif) fonts. These are OFL-licensed Korean fonts, making its way into various Linux distributions and mobile platforms including Firefox OS [2], Android (default Korean font since 4.2) [3][4] due to its modern look and feel and huge preferences. Fontconfig since 2.8 contains Nanum fonts by default too. [1] These font contain all the needed glyphs, and shows correct output like this (note the absence of squares):

What it should be

Feel free to ask about test cases, etc.

edit retag flag offensive close delete

Comments

I experienced the same adding my Korean friends on Facebook

MaxT ( 2014-02-03 11:36:58 +0200 )edit
1

Thanks for this excellent report. If you're interested, we have a facility to employ specific grouping logic for particular locales: https://github.com/nemomobile/libcontacts/blob/master/src/seasidenamegrouper.h

If you would like to help provide one for Korean, that would be great.

MattVogt ( 2014-02-07 09:34:52 +0200 )edit

1 Answer

Sort by » oldest newest most voted
3

answered 2019-04-13 01:03:10 +0200

Toxip gravatar image

I believe that Hangul Jamo U+1100 to U+11FF block was not even meant to be used to display single Hangul jamo characters at all. This block is meant for dynamically combining the characters into a block and not meant to be used on its own as described here. If you check the size of the characters, you can see they're squashed since they're the same size like how they are in complete blocks. I guess many fonts still choose to include those and use full sized versions instead.

Hangul Compatibility Jamo U+3130-U+318F is actually the block that should be used as that has properly sized characters. This would probably require some changes in how the indexing in contacts work or a way to translate the Hangul Jamo U+1100-U+11FF block characters into Hangul Compatibility Jamo U+3130-U+318F.

I did a bit of digging myself and found out that Hangul Compatibility Jamo U+3130—U+318F block displays correctly while Hangul Jamo U+1100 to U+11FF does not. I checked the /etc/fonts/local.conf and it seems that the fallback is DejaVu sans and not Droid Sans Fallback at least on my Xperia X. Don't know if the font has been changed for Sailfish X. DejaVu Sans doesn't have either of those hangul blocks (Droid Sans Fallback I found online should have both). I checked copying characters from both blocks in notes and only the Compatibility block is visible (that's what is being used in the dotdanbae korean keyboard for the key labels as well). I found out that WenQuanYi ZenHei has only the compatibility jamo glyphs so my guess is that it's using that font for the Korean glyphs. I don't know how the font config system works but this is my observation.

So this could be solved by not even touching the fonts and using the Compatibility Jamo block in the contacts list index which would probably be the proper use of these glyphs but I think Sailfish should have proper Korean fonts anyway. (The Zhuyin bopomofo block should probably have a better font as well but that's not really related to this issue)

edit flag offensive delete publish link more
Login/Signup to Answer

Question tools

Follow
1 follower

Stats

Asked: 2014-02-03 09:09:53 +0200

Seen: 538 times

Last updated: Apr 13 '19