On 14-05-2010 14:00, Paul Louden wrote:
>
Is there a way to tell what codepages a Rockbox font supports fully (or
at least "well enough")? As in, could we require language files to
include mention of the required codepage(s) to render the menus
correctly, and reject font loads as the menu font if the font to be
loaded doesn't match the language file?

I think this would be a good idea, and it's one I've thought of a few times (I think I've even mentioned it before). Basically it would take a few things:

1) Make langfiles include a list of codepoints used, it could just be an automatically generated string that is added when compiling the .lng.

2) Make the font loader check that the font to be loaded (for ui) has these codepoints. I would *think* this can be done fast enough on-the-fly by simply looking through the font, but otherwise a header-field could be added (breaking compatibility) to our .fnt files with a list of included codepoints. It should then produce a continue/abort dialog for the user to decide whether to go ahead in spite of the missing characters. It could even include a list of which characters are missing. This check should only be performed on user-initiated font-switching (through a theme or by manually changing the font) - e.g. not on boot.

3) Similarly, language loading could do the opposite, and check if the language to be loaded can be displayed by the currently loaded fonts.

These would make language and user-initiated font-loading slower, but those are neither something you do all the time, nor are they time-critical in the slightest and I think it would improve the user-experience significantly to not risk loading a font/language that won't display correctly.

--
Jonas Häggqvist
rasher(at)rasher(dot)dk

Reply via email to