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:
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 ISO 3166 like
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 :D
You may find additional resources at: