Kodi Community Forum
Rapier and CJK (Asian) fonts - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Skins Support (https://forum.kodi.tv/forumdisplay.php?fid=67)
+---- Forum: Rapier (https://forum.kodi.tv/forumdisplay.php?fid=120)
+---- Thread: Rapier and CJK (Asian) fonts (/showthread.php?tid=102192)

Rapier and CJK (Asian) fonts - vpiotr - 2011-05-25

First of all: thanks for releasing new version of Rapier, scarfa! I've missed it a lot on my screen.

Now, back to the main issue. And BTW: I'm not a skin developer, so forgive me if I'm being plain dumb.

Default fonts that Rapier use (other skins too, but nevermind :-)) lack CJK characters. My music and video collection contains some Korean and Japanese material, as well as various European tracks (Swedish, Polish, ...), and it was always painfull to hack a skin so that all "weird" characters are displayed correctly and, at the same time, not to mess up the skin design.

It seems that at the moment the only solution for missing characters is to use unicode variant of Arial font. It has all the characters needed, BUT there is:
  • no "bold" style
  • no "condensed" variant
  • no "caps" variant of this font

Also, it's a little bit "taller" than DejaVu or Liberation Sans. So, by simply replacing fonts used by Rapier, we make things look ugly at least. Unacceptable. But I think we could make it work with only basic variant of Unicode Arial. Here is what I came up with:
  • Bold can be simulated with <style>bold</style> font property. Sure it won't look as good as dedicated bold font, but acceptable (see: http://wiki.xbmc.org/index.php?title=Fonts)
  • Condensed variant: either leave it non-condensed or use <aspect>0.8</aspect> font property, which, again, won't look that good, but acceptable, I think
  • Caps variant - this one is trickier, but doable: all <control type="label"> <info> properties would have to be replaced with <label> properties with additional formatting to uppercase displayed string (see http://wiki.xbmc.org/index.php?title=Label_Formatting)

My idea is:

  1. Get rid of "caps" font variants skin-wide. I think this is better than having additional, uppercased copy of a font.
  2. Leave all default fonts together with the default fontset and prepare "Unicode Arial" fontset that would work well with user-provided Unicode Arial font (it's not free, so cannot be distribted with the skin).

I did a quick proof of concept and looks that it works fine, but before doing the actual work I would like to hear others' comments and ideas.

- scarfa - 2011-05-27

As a skinner you try to find fonts that fit your skin style and provide the best possible language coverage. Its not an easy thing to do and it gets tougher when you want a free font that does not have restrictive license in regards to modifying and embedding.

CJK fonts are usually very problematic as there are a limited number to choose from, so one has to make a dedicated font option for asian users. If you can make CJK font set for the skin and it looks good, then I will gladly include it for the next release. However Arial Unicode is not a good option as it not free.

The reason I use dedicated caps font is because the [UPPERCASE] keyword has problems with some characters and it allows me to switch to lowercase if I so choose without much work.