How many ways to say "Chinese language"in Chinese?

Have you ever heard people ask you if you can speak "汉语”(hànyǔ)、“中文”(zhōngwén)、“普通话”(pútōng huà)、“中国话”(zhōngguó huà)、“国语”(guóyǔ)、华语 (huàyǔ)?

Yes, you are right, they are asking you if you can speak Chinese? But why? Why so many different names for this language in it's own language?!  

Besides that we want to drive foreigners crazy, there are some facts that might help you: they are used on different occasions and by certain types of people.

"汉语” (hànyǔ) literally means "the language of Han people (the largest ethnic group in China)". It refers to the language itself from a linguistic perspective, so a "汉语书” (hànyǔ shū) means a book that help you learn Chinese, ie. a textbook. This name is usually used by language teachers or when people are talking about studying Chinese language.

"中文” (zhōngwén) literally means "the written language of China" , thus a "中文书" (zhōngwén shū) means a book written in Chinese, which could be a novel or a play, etc. The usage of this name is broader now, not only limited to written, but also spoken Chinese. People who are not involved in language teaching prefer to use "中文” (zhōngwén) more than "汉语” (hànyǔ). Now you probably understand people on the street better.

“普通话”(pútōng huà) is translated as "common language" or "Mandarin", which is a concept corresponding to "dialects" (There are 129 dialects in China. )  "普通话”(pútōng huà) is based on the pronounciations of Beijing Dialect and it's the language you and every Chinese kid are learning now. People who are from places with a strong sense of dialects would probably choose this word when they praise your spoken Chinese.

"中国话”(zhōngguó huà) emphasizes "中国” (zhōngguó) as a country, "the speech of China", it's used in Japanese and Korean as well. This word is used in very casual occasions, such as when a cab driver is chatting with you.

"国语”(guóyǔ) is another way of saying "普通话”(pútōng huà) in Taiwan. 

"华语" (huàyǔ) is another way of saying "普通话”(pútōng huà) in Southeast Asia.

Have I made things clearer or more complicated now? What word would you use when you are talking to me?