What is the best practice to localize content? (Geographic not langauge)

I guess this thread will steal you more than a day. After reading through it and all the code it contains, you’ll be more than happy… or maybe just confused 😉