The patch includes Lakitu7-freetype+consolecustomize.patch, which implements freetype support for ASCII (non-unicode) characters. The code can also be found in the "i18n" branch of git://git.mercenariesguild.net/obstacle.git
The renderer has been updated to support rendering UTF-8 encoded unicode characters. Other truetype fonts can be used, and by default ttf/DejaVuSans-Bold.ttf (which needs to be downloaded in addition to the patch) is used. The console font can be changed by setting "cl_consoleDynFont". For the UI, next to "font", "smallFont" and "bigFont" in an assetGlobalDef block, the fields "dynFont", "smallDynFont", and "bigDynFont", all of which the patch sets to ttf/DejaVuSans-Bold.ttf, have been added. There is a cache with a fixed size of MAX_FACE_GLYPHS (384 for now) glyphs. When a new glyph is rendered, an image and a shader is created for it at runtime, and it is added to the cache. The cache has a fixed size, so eventually old glyphs will be replaced by new glyphs, and when they are, the image is freed and a new one is created, and the mutable shader is overwritten for the new glyph. Currently, there is a problem when more than MAX_FACE_GLYPHS glyphs are rendered simultaneously, as new glyphs will continuously be generated, significantly reducing the frame rate.
Gettext is used for translation. The path containing all the translated messages determined by concatenating the cvar "localepath", or "fs_homepath" if "localepath" is empty, with the cvar "locale". By default, "localepath" is empty and "locale" is "/locale". Normally the environment variable LANG can be set. Unfortunately, gettext expects this directory to really be a directory, so it can't exist in a zip package.
This patch requires both the client and the VMs to be patched. Patched VMs are backwards-compatible with unpatched clients, so a server that includes this patch in their VMs will enable patched clients to use unicode, and unpatched clients will be unchanged. A patched client is able to load unpatched VMs.
The Domination server (running on lojban.org) includes this patch, in addition to domination itself, in its dowloadable package, as well as ttf/DejaVuSans-Bold.ttf. As far as I'm aware, it's the only server with vms that support unicode.
This has not been tested extensively.
Screenshots:




