Clearly adding images for representing languages is not the most important internationalization issue someone can make. In fact I added #1 because this is the first internationalization mistake I decided to blog about and I want to document many more mistakes in the future.As a quick solution would be to use images with ISO 639-1 language codes like: en, fr, de, es, ja. But you should be aware that not all languages can be represented using ISO 639-1 and you may be required to use ISO-639-3 or simpler to add a two-letter subcode using country code [ISO3166] like en-us or en-gb
Also check the list every time you add a language because it’s another common mistake to assume that two letter domain names or country codes are the same as the language codes.
An even a better idea could be to not use images at all
You may find additional resources at: sil.org or at W3C – using lang
For language and region codes, you should now use the IANA Subtag Registry, rather than look up the ISO codes directly.
You can find the subtag registry at http://www.iana.org/assignments/language-subtag-registry or you can also use http://rishida.net/utils/subtags/
Thanks for your comment.Your application is easy to be used but I wasn’t able to find things like “en-us”, “en-gb”, “fr-fr” or “fr-ca”.
Since those are language tags, type in the field labeled “Search for subtag(s):”. The tool then lists the entries for en and GB, etc.
To go the other way, and learn how to compose such tags, you need to know a little about the structure of language tags (see http://www.w3.org/International/articles/language-tags/ for that) then look up “English” and then “United Kingdom” to find the needed codes.
Note, btw, that ‘fr-fr’ is usually not needed, except in unusual circumstances when you have to contrast with fr-ca, fr-be, etc. Usually ‘fr’ alone will do. The shorter the language tag the better, as long as the purpose is served.