Quick note on Kroc’s last bit of published code, his transliteration function: http://camendesign.com/code/transliteration
Transliteration is different from language to language and the function does not support this. You should be able to feed the function an optional array that will be used for transliteration first.
Here is an example from two languages I know that come with different ‘rules’: German and Swedish.
Kreis Böblingen, a district in Germany, has the following website: `http://www.landkreis-boeblingen.de/`.
Örebro län, a district in Sweden, has Örebro has central city. The website for Örebro is: `http://orebro.se/`.
In German the ¨ (umlaut) is always transliterated as `-e`, while in Swedish the diacritic is simply dropped.
This isn’t just in domain names, I took those at they could easily be compared. This is also how a German versus a Swedish user will write text when they do not have access to the umlaut, for instance on foreign keyboards.
On a German website I would like an easy way to force the function to replace `ö` with `oe`.