It looks like a good place to start would be Lingua::Identify, which 'knows' 26 languages so far. I imagine that the IPTC headers should be short enough that you could check them whole, as I expect a larger sample would give more confidence, but some experimenting may be in order on that point.