From Fedora Project Wiki

Printing - i18n


Printer options are described in PPDs (Postscript Printer Description[[FootNote(PPD are also used for non postscript printers)] ). These PPDs are either vendor provided or generated. Rightnow these PPDs provide the strings that are shown to the user in only one language. Most PPDs are English, some Vendor provide PPDs in other languages. Foomatic "The printer database" which is capable of creating PPDs for a huge number of printers can only create English PPDs right now.


Please add yourself if you are interested in this topic and subscribe to this page.

Parts involved

  • foomatic printer database (
  • generates PPDs and collects and ships vendor provides PPDs
  • CUPS
  • Common UNIX Printing System
  • ships some PPDs
  • recent version supports multilingual PPDs (see "Globalized PPD Support" at the bottom )
  • check how reasonable this extention is
  • CUPS Driver Development Kit (DDK)
  • contains tools to create single language translated PPDs from English PPD and message catalog (.mo)
  • needs further investigation
  • any progress towards multilingual PPDs?
  • check what translations CUPS already provides
  • Printing dialogs
  • do not yet support multilingual PPDs
  • Gnome, KDE

Foomatic extentions

  • Extracting strings
  • XML files
  • PPDs (en and others)
  • Idea: create single large .pot file and a tool to create multilingual translations out of English PPDs and the message catalog
  • Do not include the location of the message strings found.
  • Integrating translations
  • feed translated messages back to the foomatic database?
  • Extract translations of multiple PPDs of different languages
  • Would be a way to get a number of already translated messages
  • Copyright should not be a problem if PPDs are FreeSoftware
  • Creating multilingual PPDs


Started a first perl script (using the foomatic-db-engine code).

  • (./) Can read messages from PPDs
  • (./) quoting issues (fix foomatic DB class)
  • (./) get translations from PPDs that are provided in different languages
  • (./) Extract messages from XML files
  • (./) excludes model strings
  • (./) uses only a simple RE
  • (./) Write pot files
  • works except minor issue
  • Put po files somewhere
  • foomatic-db/po/*.po, foomatic-db/po/foomatic-db.pot
  • install to /usr/share/locale/*/LC_MESSAGES/
  • Also check po/ dir into elvis (may move to
  • Integrate into build scripts
  • foomatic-extract-text -> new/*.po
  • msgmerge -u new/*.po po/*.po
  • Find translation project to put foomatic in (see Section below)
  • Get translations into PPDs
  • Translate existing PPDs
  • check DDK
  • Translate PPDs generated by foomatic
  • could be avoided if the above works, but might be desirable because of performace issues
  • create PPDs with "Globalized PPD Support"
  • talk to CUPS (DDK) developers
  • integrate with the foomatic tools
  • Push globalized support for the actual printing dialogs/tools (not right now)


  • Location of the messages can take lots of space in the .po files. Some are located in several tens of files
  • We drop the location lines.
  • foomatic contains a lot of different writings for the same stuff (DPI vs dpi, different spacing).
  • May be mass edit the db first?
  • There are a lot of numbers. May be use some heuristic to remove them from the messages.
  • Need advice from a i18n person if this is a good idea

Translation work

Where do the translations?

Possible candidates: