Breakdown of مگر فارسی نمیدانی؟ چرا، فارسی میدانم.
فارسیfârsi
Persian
چراcherâ
why
دانستنdânestan
to know (facts)
مگرmagar
unless / perhaps (used in tags)
Questions & Answers about مگر فارسی نمیدانی؟ چرا، فارسی میدانم.
Doesn't چرا usually mean "why"? Why is it translated as "yes" here?
You are exactly right that چرا usually means "why." However, when you want to answer "yes" to a negative question (like "Don't you know Persian?"), you must use چرا instead of بله. It corrects the negative assumption, similar to "si" in French or "doch" in German. If you wanted to agree with the negative question and say "No, I don't," you would just say نه.
What is the purpose of مگر in the first sentence?
مگر is used at the beginning of a question to express surprise, doubt, or disbelief. The sentence still means "Don't you know Persian?" without it, but adding مگر gives it the feeling of "Wait, don't you know Persian?" or "Is it really true that you don't know Persian?"
Why does this sentence use نمیدانی (you don't know) instead of a verb for "speak"?
In Farsi, it is very common to use the verb دانستن (to know) or the phrase بلد بودن (to be familiar with) when talking about your ability in a language. While you can use صحبت کردن (to speak), saying you "know" a language is completely natural and widely used by native speakers.
Do I need to say زبان فارسی (the Persian language), or is just فارسی enough?
Just like in English, you can drop the word for language (زبان) when the context is clear. Simply saying فارسی is perfectly correct and very common in everyday conversation.