in reply to Language Guess from IP

You should look at CPAN... a search on Geographical returns Geo::IP which looks quite a good fit for your problem.