I was struggling to understand what that meant in English, but then I translated it to Portuguese and all became quite clear to me:
- C'était (1) il y a (2) longtemps (3)
- Foi (1) há (2) muito tempo (3)
In Portuguese and Spanish, the verb "to do" is used the same way:
- Foi (1) faz (2) muito tempo (3)
- Fue (1) hace (2) mucho tiempo (3)
I am so confused. My suggested translation was "It has been a long time", and I was marked wrong for it. I understand what Sitesurf said - that the action must have ceased in the past - however one translation duolingo suggested was "It has been very long time" (which makes no sense without the small article (A) between "been" and "very"), and that construction does not put the time of action in the past at all. I gave this sentence to Goggle Translate, and that program could not handle it, giving the translation as "there has long". I guess that from now on, whenever the sentence pops up, I will put down the fairy tale opening "A long time ago" and be done with the matter.
What Sitesurf is saying means that "il y a" when talking about a period in time simply means "ago". Now, using this knowledge, we translate bien longtemps or tres longtemps - maybe idiomatic but means "a very long time". Put the two together and you have "a very long time (bien longtemps) ago (il y a)".
The "il y a", equivalent to "there is" in English, seems to be used in French the same way as in Portuguese, to indicate how much time has past since the said event.
- C'était (event) il y a (since that event, there is) longtemps (amount of time past)
In Portuguese (my native language):
- Foi (event) há (since that event, there is) muito tempo (amount of time past)
No, the explanations above are good but the simple reason this is wrong is that there is no possessive ("c'est /it's") in the French translation of the sentence. Also "il y a" here, when talking about a period of time, means "ago" - http://french.about.com/od/vocabulary/a/ilya.htm.
It does not mean the usual "there is" or 'there are". It has been would also be "il a été".
Thinking about it, I realized that my proposed sentence probably isn't grammatically correct, strictly speaking. "Good" isn't an adverb, and thus cannot modify an adjective. It's hard to know when Duolingo will be "correct" and when it will allow common colloquialisms as well, but I'll just have to accept that it isn't the latter in this case. :P