Bug: Contact search Alphabet grid is broken using Korean letters
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.
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):
Feel free to ask about test cases, etc.
I experienced the same adding my Korean friends on Facebook
MaxT ( 2014-02-03 11:36:58 +0300 )editThanks 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 +0300 )edit