Although the fact is generally glossed over by Web designers and application developers, not everyone on the World Wide Web uses English as their primary language. Not only do the languages vary; but, in many cases, the alphabet used to display text is altogether different. In this era of Internet-enabled people-to-people communication, language should not be a limitation.

This is where Pango comes in. The stated goal of the ambitious Pango open source project is to provide a framework for the layout and rendering of internationalized text. Using Unicode for all of its encoding, Pango can potentially render any language. The dependent variable is whether someone in the open source community has created the language-specific knowledge that the application requires to make that rendering possible.

Read more about the winners of the 2004 Open Source Awards:

According to John Graham-Cumming, Director of the Open Source Awards for the OSI, “Internationalization and localization are very important for Open Source software, in general, because they are a key chink in commercial software organizations’ armor. The appeal of open source software in developing countries, which stems from numerous reasons including reduced costs and security concerns, is further enhanced by the ability to localize the text of an application.”

“Large software vendors have little incentive to support any but the most widely-spoken languages,” says Graham-Cumming, but “the programmers who produce open source software operate by different rules. Pango provides a mechanism to support all languages in open source software.”

Additional resources

The Economist ran an article on December 4, 2003, that examined the localization of open source software applications in developing countries.

Current version
Pango 1.2, the current version of this award-winning framework, prefers the fontconfig and Xft2 libraries for locating and rendering fonts on Linux and UNIX. You can download the latest version of Pango and the other open source applications required for transforming and localizing languages from the Pango Web site. For another glimpse at the end result of a Pango transformation, click this link.

Examples of Pango in action

Here is a link to the Pango gallery page where you will find examples of how Pango can localize language for text and applications.

Owen Taylor
Owen Taylor is a software engineer for Red Hat. He is Red Hat’s project leader for GTK+, a multiplatform toolkit for creating graphical user interfaces. His work on Pango is derived from the comprehensive work he has performed for the GTK+ and GNOME projects.

Most recently, Taylor has been elected to the GNOME Foundation’s Board of Directors, which is the governing body that coordinates GNOME development in the open source community. recently had the opportunity to talk with Owen Taylor about Pango. How did you become involved with the Pango project?

Taylor: In 1999, after we finished up the 1.2 release of the GTK+ user interface toolkit, I looked around for problems to work on that would really help expand our user base. Making GTK+ and the open source desktop able to display “hard” scripts and support Unicode really well was an obvious target. And I’ve always been interested in typography and languages; so, I sat down, did lots of reading about other similar systems, and started working on the Pango design. Originally, it was called “GScript,” but Pango was suggested to me as a catchier name. How many people are on the Pango project team?

Taylor: To give a rough idea, for the last major release (Pango-1.2.0) there were seven people who made major contributions of code and roughly 40 total contributors credited in the release announcement. But compared to other projects I work on, like GTK+, it’s still very much a one-person show.

The design of Pango is to have a compact core that’s independent of all the different script modules and operating system back ends, and then let people interested in one script or another write the module for that script. And that’s pretty much worked out; we have a lot of contributors showing up who are interested in getting Korean, Khmer, or Kannada working and those people don’t need to deal with the core parts of Pango but only with a particular module. The Pango project is very ambitious. As the Internet continues to infiltrate cultures outside the English-speaking world, Pango could become quite important to many people. How do you see the project progressing—what is its future?

Taylor: On the one hand, my goal for Pango is universal coverage. If there is a language that people want to write on their computer, Pango should handle it. We’re doing pretty well for speaker count currently—we handle pretty much all of the world’s scripts with a lot of people writing in them. But there are still lots of small scripts which need work.

But the other frontier is closer to home. To get scripts like Devanagari (the script for the Hindi language) or Arabic right, we needed a strong abstraction between the application and exactly how text display works. And that same abstraction allows you to do a lot of neat things even for English—advanced line-breaking algorithms, contextual ligatures, and so forth, all work “for free.” So, we have a good opportunity to improve text presentation for everybody using the infrastructure that we’ve built up in Pango.