Yes, you are correct. I was too hasty in my comment. "We live with her for two years" is definitely wrong, it sounds awful in English. But "we lived with her for two years" does imply a completed action, and would not be an ideal translation.
So, you are right the correct translation is "we have been living with her for two years" - or it could also be "we have lived with her for two years". In both cases in spoken English most people would not say "We have" but "We've".
I asked about that answer and apparently "it would mean that we are at the beginning of or in the middle of a planned two-year period of living with her".
So... that's not what the Polish sentence means. The Polish means that we started living with her about two years ago and we still live with her.
Okay, I got to that exercise some minutes later... But I still wonder if they're exchangeable or not. I may be wrong, but I suppose there is a difference in meaning:
"Mieszkamy z nią od dwóch lat" – "We have been living with her for two years" (it started two years ago and is still going on)
"Mieszkamy z nią dwa lata" – "We are living with her for two years" (we are within this period which will end after two years)
What do you think?
I think that while there is a chance that the second Polish sentence means what you describe, it is rather unlikely, it probably means the same as 'od dwóch lat'.
Perhaps if you were describing your plans for the next decade... "next year we move in with my grandma, we live with her for two years, then we find a place of our own".
Yes, it's perfectly natural. "od dwóch lat" means that we started living together with her two years ago. Well, around two years ago, of course no one is so precise ;)
From the point of view of Polish, the fact that English uses Present Perfect here is rather strange. We still live with her, so this seems like a perfectly basic usage of present tense. But well, of course this is just where the languages differ.
So... that implies 'two years and that's it, finished'? Hmm... how probable is to say it in English? I can imagine "Mieszkamy z nią na czas studiów" (We are living with her for the time of our studies) or "Mieszkamy z nią do..." (We are living with her until...), but I'm not sure if I would say what you wrote in Polish. "Mieszkamy z nią przez dwa lata, aż skończymy szkołę"? Not sure.
It's quite possible to say it, but wouldn't be a good translation of "od", since the implication of the English is that the two years has started, but has not yet concluded. That is, it started less than two years in the past, is ongoing now, and that the activity will finish after that two years is completed.