I have done it.
i removed the old rbf font support, and add a private format.
in the font file, there's an index area and data area.
the index area will be in RAM when font file loaded, and the data will be load from SD card when used.
I also added the font data cache in RAM.
the speed is the same as built-in font, i cannot find any delay.
the lng file is UTF-8 encoding. the font file is 16bits unicode.
i'll share it after I clean the codes.