[Fontconfig] Localizing font family and style names

Keith Packard keithp at keithp.com
Tue Nov 30 06:29:08 EST 2004

The TrueType font format (and probably others) permits family and style 
names to be provided in multiple languages (using several national 
encodings).  I've wanted to include a mechanism for making these available 
to applications for a long time, in fact this remains the only release 
blocking feature for fontconfig 2.3.

I've got a couple of mediocre ideas and am searching for more; if we can't 
manage to figure out something sensible, I suggest that we just ship 
fontconfig 2.3 without this feature soon.

I've had this idea that we must always provide a Latin encoded name for 
every font, which immediately requires support for multiple names for the 
same font.  Today, I'm wondering if it wouldn't just be easier to provide 
a single name for each font and select that name in some straightforward 
fashion from the list of available names.  I see the identification of the 
'native' name for the font as a requirement in any case, perhaps we should 
simply make 'native' == 'sole' and be done with it.  In any case, the 
questions here are whether we require Latin names and whether we support 
multiple names for each font.

If we do permit multiple names for fonts, we need to identify how those 
names are reflected through the Fontconfig API.

One possibility is to identify one name as the 'canonical' name which
represents the sole element of the FC_FAMILY/FC_STYLE pattern element and
to place the additional names in another pattern element.  This would
permit 'smart' applications to discover these additional names for
presentation purposes while not bothering 'dumb' applications.  However, 
this would also make font matching problematic -- it would be tricky for 
applications to figure out how to match fonts against non-canonical names, 
and that seems wrong.

Another possibility is to provide all of the names in the FC_FAMILY pattern
element.  Order the list so that the 'preferred' name occurs first and 
even naïve applications will end up presenting fonts in the right language.
Listing would return all names and it would be up to the application to 
sort through them to find the desired presentation.  This would require 
some parallel property marking the language(s) for each name.  Fonts with 
a single name would not need this additional property.

A third possibility is to present each font multiple times, once for each 
supported language.  A tag in the pattern would mark the languages for 
each entry so that listing would be able to filter out names 
appropriately.  The biggest issue here is the elimination of duplicate 
names by somehow identifying the entries cooresponding to the same 
font.  I think the combination of file name and font index should suffice, 
but it would place a significant burden on applications to perform this 
elision manually.

If anyone else has another alternative, I'd love to hear it.  At present, 
I'm leaning towards either the 'only one name' solution or the 'all names 
in one font'.  The 'only one name' solution would be significantly easier 
to implement and deploy, but seems less friendly to the user.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/fontconfig/attachments/20041129/8c3fe871/attachment.pgp

More information about the Fontconfig mailing list