On Mon, 21 Feb 2005, Anton wrote:
On 20 Feb 2005 Stefan Bellon wrote:
> John-Mark Bell wrote:
> > The problem you are seeing is related to the recent font changes.
> Wow, http://www.suzuki.co.jp/
> cool now (the latter not because of page layout but because of the
> different foreign languages correctly rendered: Hebrew, Japanese,
> Korean, Russian, Tamil, Arabian, Greek, and a lot of others I don't
> manage to recognise ;-).
> But entering text into writable icons is invisible at the moment.
Hmm. The Suzuki page seems to render correctly, after a short hiccup,
but not the Wikipedia one (I can see Greek, but for the other
non-English ones I get the the little couplets). I did turn off
Netsurf->Display->Render->Buffer animations and Buffer all rendering,
and checked that they were indeed off. This is with test build 20 Feb
You do require fonts that have the relevant glyphs available, we can't
magically create them from thin air ;)
If you're running RISC OS 5, then you can convert large TrueType fonts to
RISC OS format ones suitable for use with the Unicode Font Manager by
using TTF2f (http://moose.mine.nu:6888/ttf2f2.zip
). BitStream Cyberbit,
Code2000 and Arial Unicode MS seem to cover 90% of defined Unicode glyphs.
If you're running an OS version without the Unicode Font Manager, then
you're limited in the number of glyphs a font can contain (256? someone
correct me, thanks ;) and it's unlikely that fonts converted using TTF2f
will be much use on these OS versions (note: I haven't actually tested
this, so they may well work perfectly well).
The font library that James has written does the following:
1) Scans all fonts installed on the system, discovering which glyphs
each provides. This is done in one of two ways, dependent upon whether
you have a Unicode Font Manager or not:
a) In the first case (with the UFM), it simply iterates through all
Unicode character values and asks the font manager for the bounding
box of the character in the font it's considering. This information
is then used to decide whether the font provides the glyph or not.
b) In the other case (without the UFM), it performs a similar procedure.
However, it must consult the encoding file for the font to discover
which glyph is which.
This information gets stored in the RUflCache file in order to speed
things up in all subsequent cases.
2) Provides generic routines for rendering UTF-8 encoded text. If a glyph
isn't present in the specified font, one is substituted from a font
which does contain the glyph. If no font contains the glyph for a
specific character, the Unicode Value is output instead as a block of
3) Provides routines for reading the width of a UTF-8 string and finding
the location in a string of a given offset.
There is still lots of room for improvement. For example, if a glyph isn't
provided by any currently installed font, it would be desirable to
transliterate into a glyph (or sequence of glyphs) which approximate the
missing glyph. Only if this fails would the Unicode Value be output.
1. Only fonts returned by the Font Manager's Font_ListFonts SWI are
scanned. If a new font is added at a later date, the library will
detect this the next time it is initialised and will scan that font for
glyph information. This is then added to the cache.