From Fedora Project Wiki

< L10N‎ | Tasks

Revision as of 14:42, 19 July 2008 by Vga (talk | contribs) (Try <ref> workaround)

Note.png
Background information
See the Wikipedia page on the Romanian alphabet.
Idea.png
Tip of the page
A very useful program is fontmatrix. Detailed font info and one click font installs. Yum it!

Issues (and suggested fixes)

Type-1 fonts need an additional mapping from U+021A/B to U+162/3

Most PS1 fonts (not OpenType) that ship with Linux distorts lack the code points U+21A/B (t with comma below) which is the proper code point for Romanian t with comma below. Thankfully, Adobe once decided that t with cedilla is not used in any language so the proper glyphs are usually present at U+162/3, which used to be the unified code point for t cedilla and t comma below before Unicode 3.0. The Uniscribe renderer automatically handles this issue by remapping U+21A/B to U+162/3 when the former glyphs are missing. Unfortunately, Pango/fonconfig doesn't do this, so most new Romanian documents can only be displayed with a very narrow font selection.

Proposed solution: adopt Uniscribe solution; editing the PS1 fonts is pointless and would violate the license for the commercial ones. With an external mapping all PS1 fonts would instantly become usable.

Liberation 1.0 fonts lack "s & t with comma" completely

The glyph was added in version 1.04 of the fonts, but these are not yet packaged. A beta version (1.04 beta 2) is available on rawhide.

Missing OpenType localized forms GSUB/latn/ROM/{locl,ccmp}

The Adobe/Linotype/Vista industry standard seems to that activating ROM/locl should map "s with cedilla" to "s with comma". Since in Adobe (Pro) OT fonts U+162/3 is by default mapped to "t with comma", activating this optional mapping for s renders old, pre-Unicode 3.0 Romanian texts with comma below both s and t. Thankfully Pango already handles this!

The OT SIL fonts take a slightly different approach, but work with Pango nonetheless. First, they have proper cedilla variants for both s and t. Second, they don't have a ROM/locl feature, but a ROM/ccmp feature which remaps both cedilla variants to comma-below counterparts. I'm not sure this approach is entirely correct because the OpenType spec on ccmp says that ccmp should not be language sensitive. YMMV, I'm no expert on this.

So, what's the trouble?

  • Practically no free fonts have a ROM/locl feature, while most newer commercical fonts do. This should be a two line fix in fontforge. Those form SIL use the ROM/ccmp mechanism that fortunately works.
  • Pango does not allow an application to set the OT features language independently from UI language; not for Romanian anyway. Currently, the only way to run, say, gedit with ROM/locl enabled but the default English UI is: LANG=ro_RO.UTF-8 LC_MESSAGES=C gedit. See Pango bug #442786.

Console Fonts

The default Linux console fonts also lack the U+219-B range, but few care about the console fonts these days...

Font status matrix

Support for Romanian in Fedora fonts
Font name type ă î â ș ț ş ţ „” «» locl Source License Contacted? Details
DejaVu TTF da da da da da da da da da nu [1] [2] nu -
Luxi ??? da da da da da da da da da ?? xfree86.org ? [3] nu -
Linux Libertine TTF da da da da da da da da da nu [4] [5] nu -
Liberation TTF da da da da[1] da da da da da nu [6] [7] da 1.04
MgOpen ??? da da da nu nu da da da da ?? [8] [9] da -
Terminus (pentru consolă) ??? da da da da da da da da da ?? [10] ? nu -

Key for font type:

  • TTF = old TrueType or TrueType flavored OpenType [which is backwards compabile with TrueType] in a .ttf or .ttc file (.ttc is a collection of more than one font, e.g. Cambria and Cambria Math in Vista)
  • CFF = CFF (Postscript Type 2) in OpenType .otf file
  • PS1 = Postscript Type 1 in .afm/.pfb file pairs.

Font status details:

Liberation

Pentru Fedora 9, folosiţi comanda ""yum --enablerepo=rawhide update liberation-fonts"" pentru a actualiza fonturile Liberation la versiunea 1.04 (beta2 deocamdată, deși 1.04 final a fost lansată) care are suport pentru s şi t cu virgulă sub. Sau instalați per utilizator versiunea finală folosind fontmatrix.

  1. hmm