Archived Posts from this Category

Human-friendly URLs for a multilingual Joomla! site (

Posted by on 05 Mar 2008 | Tagged as: CMS, Joomla, multilingual

I want my site,, to be a multilingual site that communicates the business I want to do and lets me explore the tools for being world-ready. For nearly two years, I’ve worked to get a combination of tools that would do the job. I’m happy to say that this week I finally assembled a plausible solution. The final piece was sh404SEF, after some patching, with Joomla! 1.0.x and Joom!Fish.

Language support on supports content in multiple languages (English, Japanese, and German so far), and also a user interface in multiple languages (the same three now, but could differ). Each URL can include a language code between the domain name (“”) and the path to the content. The language codes look like “/en/” for English, “/de/” for German, and “/ja/” for Japanese. The codes are based on RFC 3066 . Where there is a language code in a URL, the site presents content localised for that language, to the extent possible. The content may not always available in that language, so the site may present the content in a fall-back language.

Where there is no language code in a URL, especially in the basic domain name, the site looks at the HTTP Accept-Language header to determine which language the user prefers, and redirects the browser to content with that language code.

It’s important to me that the URLs of content on my site be  concise, comprehensible to humans, and stable over time. I like Jakob Nielsen’s “URL as UI” column, and the W3C’s “Cool URIs don’t change“, and try to follow them.

Software used on is built using Joomla!, a free software content management system (CMS). Version 1.0.x of Joomla!, which I use as of early 2008, can be coaxed into using UTF-8 text encoding and tolerating multi-lingual content. I add in Joom!Fish, a Joomla component which helps manage content in multiple parallel languages, and provides useful language utilities like that UI widget at the top of the page, to select between languages.

Joomla has many strengths, but easy-to-read URLs aren’t among them. Left to itself, a Joomla URL is an opaque stream of numbers and codes. Turning those URLs into human-friendly URLs, which are concise, comprehensible to humans, and stable over time is the work of a “SEF” (Search-Engine-Friendly) component. Joomla has had several, but the first which satisifed us for is one called sh404SEF (see also sh404SEF on Joomla extensions and sh404SEF on

There has been a tough interaction between Joomla, Joom!Fish, and sh404SEF (and its ill-starred predecessors). Since mid-2006, Joomla would work with either of the other two, but not both together. Even as Joomla! moved forward to version 1.5.x, which has a better foundation for multilingual sites, I was held back to Joomla 1.0.x because Joom!Fish didn’t support the new version yet. Finally, in late February 2008, I discovered version 1.3.1 “TEST PR build 255” of sh404SEF, which seemed to work well with Joom!Fish (currently 1.8.2) and Joomla (currently 1.0.15).

I made a patch to sh404SEF, one of the modules that extends the Joomla! content management system that runs this website. What the patch does is to ensure that all three of the languages supported on this website are treated equally in the URLs of this site. Without the patch, the “/en/” tag for URLs of English-language content would be missing in some cases. See my article “Default-language patch for sh404SEF published” for a description of the patch, and a link to the code.

Multilingual blogs and websites at Northern Voice 2008

Posted by on 28 Feb 2008 | Tagged as: meetings and conferences, multilingual, Vancouver

Last week was Northern Voice 2008 (Feb 22-23), a blogger’s conference here in Vancouver. It was held in UBC’s beautiful Forest Sciences Centre, in and around a pleasant sunny atrium lined with gorgeous wood panelling.

I convened a session on multilingual blogs and websites. I was interested in the issues that arise when we try to do all that cool blog or website activity in a second and third language. The first language is no problem; modern tools can handle almost any single language.

A great group of about 15 people joined in. We put our discussion notes on a page on the Northern Voice wiki (, so check that out to see what we discussed.

I walked in with a categorisation of the issues that arise as a website goes multilingual. This held up well in the discussion. Maybe you’ll find it helpful too.

  • Examples: who’s doing it in multiple languages, and how well?
  • Value: who needs multiple languages and what for?
  • Structure: how to link content in one language to another?
  • Content: is content in various languages the same or different? How/why different?
  • Tools: how to make your blogging system or service or CMS handle the text and connect to your translators?
  • Translation: how to get the content from one language to the other?
  • Process: how to make all the parts move together and on time?

I’m really interested in multilingual websites as a way to structure thought about world-ready technology, and as a focus for my consulting practice. Expect to hear more about it.

« Previous Page