В отличие от simple past, present perfect никогда не употребляется с обстоятельствами времени, обозначающими какой-то момент прошедшего (или предельный отрезок времени в прошедшем), как например, yesterday, last night, last week, last year, last Sunday, the day before yesterday (позавчера), an hour ago, a minute ago, two weeks ago; on Tuesday, May 16; in the spring 1980 etc. Во всех этих случаях следует употреблять simple past.
have (has) + Past Participle (Participle II, 3я форма глагола)
Употребляется: 1. Для выражения действия, законченного к моменту речи, результаты которого налицо.
I have written the letter. I want to send it.
2. Для выражения действия или состояния, начавшегося в прошлом и продолжающегося до настоящего момента, для глаголов, которые не употребляются в Continuous Tense.
Не has known English since he was a schoolboy.
We have translated this text.
Who has translated this text?
Have you translated this text?
What text have you translated?
You have translated this text, haven't you?
Обычно: 1. Время не указано. 2. Использованы наречия already, just, ever, yet, etc. 3. Время действия не истекло: today, this year, this month, etc.
to be + have been, has been + Present Participle (ing-form)
Употребляется: 1. Для выражения действия, которое началось и протекало до настоящего момента и продолжается в настоящее время (since — с, с тех пор как).
What have you been doing since you came to Moscow?
2. Для выражения действия, которое продолжается определенный период времени до данного момента и(или) включая его (for — в течение).
I have been waiting for you for half an hour.
I have been translating this text since 9 o'clock.
Who has been translating the text since 9 o'clock?
Have you been translating the text since 9 o'clock?
What text have you been translating since 9 o'clock?