Brazilian students have a tough time with this. It’s one of the more complex aspects of English. As native speakers, we don’t initially recognize the difficulty, however, you may have noticed a couple things like
He has been drinking too much.
Ele tem bebido demais
whereas your tendency may be to use “bebendo” instead. And you may have noticed that
I have travelled by airplane many times
Já viajei de avião muitas vezes
and wondered, “Where did ‘Já’ come from?”.
Describing a past event that has a present result
I‘ve broken my leg. Look! It’s broken.
Quebrei minha perna. Veja, ela está engessada.
Have you been crying?
Você esteve chorando?
Describing an indefinite past experience or event, which leads up to the present time
Have you already (ever) been to Salvador?
Você já esteve em Salvador?
I‘ve been to London.
You have never been to England?
Você nunca visitou a Inglaterra?
I haven’t finished by assignment yet.
Ainda não terminei meu projeto.
I‘ve always loved him.
Eu sempre lhe amei.
He has always had good grades.
Sempre teve boas notas.
Referring to something that has just finished or just happened
She‘s just left.
Ela acabou (acaba) de sair.
The boy has just broken a window.
O menino acabou (acaba) de quebrar uma janela.
Winter has just begun.
O inverno recém começou.
He has just called me.
Ele recém ligou.
Refering to something that has happened recently
I‘ve been working a lot lately.
Estou trabalhando muito ultimamente.
Describing a habit that started in the past and continues into the present
I‘ve been to Mallorca every year for the last ten years.
Há (Faz) dez anos que vou a Mallorca todo ano.
I‘ve been going on holiday to Mallorca for the last ten years.
Tenho ido para Mallorca em férias nos últimos dez anos.
Emphasizing the period of time that the action took place
I‘ve lived (been living) in Brazil for a year.
Há (Faz) um ano que eu moro no Brasil.
I‘ve been (waiting) here since 10 o’clock.
Estou aqui desde as 10 horas.
Describing a past state that continues into the present
I‘ve always liked to study.
Eu sempre gostei de estudar.
I‘ve already called him at least ten times today.
Já liguei para ele pelo menos dez vezes hoje.
How long have you been living here?
Há quanto tempo você mora aqui?
How long have you been living here?
Há quanto tempo você está morando aqui?
Giving news of recent events
The stockmarket has collapsed.
A bolsa caiu.
The stockmarket has been bad since the last election.
A bolsa tem estado ruim desde as últimas eleições.
Describing a past event when you are not thinking about a specific time
Have you (already) seen…
Você já viu…
Describing an event when the time in the past is not mentioned
I‘ve cleaned the house.
Eu limpei a casa.
Saying how long an incomplete activity is taking
I‘ve been cleaning the house all day (since early).
Estou arrumando a casa desde cedo.
Describing a continued or repeated action or state in the near past or into the present, time is not stated
It has rained a lot / It has been raining a lot (lately).
Tem chovido muito (ultimamente).
Indicating that an event leading up to the present has a limited duration
I‘ve been studying a lot these days.
Estou estudando muito esses dias.
I‘ve been studying a lot.
Tenho estudado muito.
I‘ve been living with Tom for a month.
Faz um mês que moro com o Tom.
Referring to an event in the past that has no clear beginning or ending, and might still be happening
Where have you been?
Onde é que você andava? (Imperfect Indicative)
Okay??? It’s not as difficult as it appears. Notice that Há and Desde trigger the Present Indicative, Acabou De triggers the Infinitive, and almost everything else uses the Preterit Indicative (it may help to reference ). The last example uses the Imperfect Indicative to describe a continuous past state.
To study these, I’d make a recording of the above phrases (random order). If you think about the context of what you’re trying to say, I think you’ll find that it’s not hard to construct the correct translation. If anything, it’s the complexity of the English construction which causes difficulty.