One of my biggest pet peeves is this:

You may think that looks cute, and while it could make sense with localized content, the truth is that using flags to signify languages may be confusing — and even offensive!
Instead, I prefer to say, "I speak English, Spanish, and Catalan," even if the varieties I use are spoken in the countries represented by the flags above.
Now, I would like to analyze the previous example:
The English language originated in England, but it is official (either de facto or de jure) in 59 sovereign states today. The highest number of English speakers is in the United States, but the American flag represents Americans like me, not the English-speaking people as a whole.
Similarly, Spanish originated in Spain, but now it is official in 20 sovereign states. The most populous Spanish-speaking country is Mexico. Even the United States has more Spanish speakers than Spain. Yet, none of the flags from these countries represent all Spanish speakers.
Catalan originated in what is known today as the “autonomous community of Catalonia” in Spain. Besides being spoken in other Spanish regions and areas of France and Italy, Catalan is the official language of Andorra. Yet, Andorra’s flag does not represent me as a Catalan speaker.
Flags signify countries and peoples. Different countries and peoples may share a common language. Conversely, some may have more than one language representing them.
I prefer just naming the languages. If lack of space is really an issue, I may use the ISO-639 language codes (e.g., EN, ES, CA / ENG, SPA, CAT) instead.
What about you?