Currently, my (hobby) website is all in English. I've had an offer from someone who is a fan of the target matter of the site to translate articles from the site into his own language. My plan is that a translated article will be available via two paths: a link from the English article, and via a separate page titled [website name] [in] [language] (e.g., for Spanish, "[website name] en Español"). The non-English pages will link back to the English originals. It's those links - article-to-translation - that I'm interested in, here: Should I use a text link, e.g., "Lea este artículo en español", or should I use a little national flag icon?
Use the Language Name in Its Local Format
As others have mentioned, language does not have a one to one correlation to a country. Many countries have several languages. Here is a list of multilingual countries: https://en.wikipedia.org/wiki/List_of_multilingual_countries_and_regions
Besides the multilingual countries, there are multilingual individuals who have a preferred language regardless of their country of origin or their current residency.
Using the local format is simply a polite way of allowing a native speaker to easily recognize their native language. A German speaker may not recognize German but they will recognize Deutsche.
Flags Can Mean More than Simply Translation
Flags tell a user that content will be localized to their country of choice. Localized information can include:
- Measurement and Date display
- Localized Images
- Localized Colloquilisms
Internationalization: Good, Better, Best
Good: Offer alternate translations per article with the link text in that local language's format.
Better: Offer an always available tool for users to select the language they prefer. (example of Amazon's implementation below)
Best: Detect the language through the browser and automatically display content in that language.
It can be tempting to use flags, and in some cases, they'll work just fine. The problem comes because not every country is monolingual, so one country can have multiple official or national languages. That's even before you start getting into regional languages within a country.
There are also plenty of places where one language is used in multiple countries - and if you can't see your own flag, you have to be aware of which other countries speak your language.
That's not to say that you can't make use of flags, but you really shouldn't use ONLY flags.
If you look at a list of official languages by country, you'll see what I mean.
An alternate approach I've seen is to have a "language" or "speech bubble" icon which opens a panel of language links, each represented by language name in the appropriate script. Those can be accompanied by flags for easier visual scanning, but fundamentally this approach allows you the space to list the names, which are the only reliable descriptor for a language.
I have used this approach before and it seemed to work, but it was long enough ago that I can't provide data or screenshots.