Categories: "Full Stack Dev & Design"

Introducing gettext and .PO files

poedit screenshot
As I said recently, i18n and l10n are best carried out using the right tools...

I've looked around somewhat and it turns out there seems to be an absolute reference in the area: the GNU gettext framework.

This framework actually comprehends several things:

  • A set of conventions about how programs should be written to support i18n;
  • A directory and file naming organization for the translated strings;
  • A runtime library to display localized text;
  • A set of utilities to handle the l10n process;
  • A special mode for Emacs which helps preparing the sources for i18n.

Read more »

Introducing i18n and l10n

When you develop a piece of software or a website up to a certain point, there comes a time when you try to reach an international audience.

No doubt your first move will be to provide an English version of your software or website.

However, you will soon realize this is not enough. Of course, many people do understand English to some extent; but you have to realize how painful it can be for them. Maybe you don't even realize how easily you can understand English compared to the average. Of course, if you are yourself a native English speaker, you need to try and imagine that every software you use comes in French or German by default! How would you feel about that? :P

Furthermore, you may have spent some time on making your software or website accessible. Users can now change the font size and enhance contrast if they have trouble reading those lines of funky rendered text... That's fine... but what's the use if their problem is not with the formatting but with the language!?

Read more »

MagpieRSS

MagpieRSS provides an XML-based (expat) RSS parser in PHP.

MagpieRSS is compatible with RSS .9 through RSS 1.0, and supports the
RSS 1.0's modules (with a few exceptions).

CSS is no cure for layout techniques abuse

Browsing the web for CSS related info often turns out to be a painful search through naive CSS glorification and anti table propaganda... :-/

So I always find it very refreshing when I stumble upon a more balanced article like Sitepoint's "Exploring the Limits of CSS Layout":

For better or worse, the vogue of Web design has evolved to favour a layout similar in style to a newspaper. Common design elements include:

  • a header and footer that each spans the page horizontally
  • content constrained by page width
  • vertical scrolling is acceptable, within reason
  • navigation and secondary content in vertical columns next to the main content

That last one is the real kicker. The sad reality is that the current CSS specificaton (CSS2) was not designed with multiple columns of content in mind. As a result, just as Web designers have always had to abuse HTML tables to achieve complex page layout, they must now abuse CSS positioning to achieve those same ends.

Read more »

GNU gettext

gettext is a package that includes everything you need to internationalize a piece of software and then let translators localize it on the run without worrying too much about it.

It's not perfect (for example, it's poor at using multiple languages simultaneously, i-e in the same output), but it's still very useful... and the best I found! ;)