You're completely right about separating text from code. I'd never work on a project that mixed the two. (And I have developed multi-lingual web sites. The code here is based on "real life;" it wasn't written specifically for PHP Cookbook.)
Unfortunately, the internationalization process is extremely complex. If you try to cover everything in one article, it'll end up running on for ever. In this article, I decided to focus on the technical aspects. In order not to let the other details obscure my explanation of the code, I was forced to simplify other parts.
I've written up some other thoughts how to best organize files and handle the actual process of getting the text into the system. I posted it on my web log. Check them out and please add comments and suggestions.
PS: To the person who felt since I chose not to use Greek and Japanese in the article is an indication of a deficit in LAMP, you're wrong. Non-Western characters don't always render correctly in all browsers. Since if people can't read the article, it's not very helpful, I made the choice to stick to English and Spanish. You can read more on PHP's Multi-byte string support in the manual.