All of our language kits contain two key elements: at least one
font and a keylayout file. The keylayout file is pretty straight
forward and gets installed by default into the /Library/Keyboard
Layouts directory. The font file contains the intelligence
that provides information about the proper display of the script
in question. The default installation is into the /Library/Fonts
directory.
The information provided in the font file works with Apple's
Unicode imaging technology (an integral part of OS X) to make
appropriate transformations to each character (or sequence of
characters) in a given text stream. Apple provides this technology
as an interface for applications to receive information about
the writing system involved but an application must know how to
ask for the information and how to implement the information provided.
How well an application responds depends on several things:
For the first item, there is no requirement
that application developers use Apple's Unicode imaging technology.
In other words, it’s possible for software developers to create
their own imaging or text rendering engine. It should ideally
know how to treat the information provided by Unicode fonts but
it can also require its own proprietary data structure.
We’re only aware of one company that is attempting to provide
its own rendering engine but it cannot currently understand the
data provided by a font that adheres to Apple’s table design.
The lack of a public source for their data structure makes it
impossible to create Unicode fonts that will work with their product.
For applications that do offer support, a distinction between
two different levels of support exists. The first level involves
support of ligatures and the second one supports other types of
transformations that include rearrangement, transposition and
substitution. Although all of these features have existed for
years, ligature support is by far the most common and is the one
most commonly found in software applications.
For the second item, it’s important to know
whether a writing system requires advanced features (even if you
don’t understand how the features work). Some scripts (predominantly
Roman based writing systems) can get by just fine with no ligatures
or advanced features — characters are written sequentially
one after the other; and even Roman scripts that do use
ligatures rarely require their use.
However, with the advent of Unicode support, the number of writing
systems requiring more than just ligatures is overwhelming. The
lack of support for these other features means many writing systems
cannot be used properly without re-writing software code, something
many companies will only do during the next major revision.