過去完了形の継続用法と、過去完了進行形の違い
これは
現在完了形の継続用法と、現在完了進行形の違い
をそのまま時制を過去にしただけなのです。
説明の都合上、現在完了形と現在完了進行形で説明させてください。
どちらも、完了形の要素を一旦取り除いて考えれば違いがすぐわかります。
He has taught English for 30 years
「彼は英語を30年教えている」
「彼は英語の先生を30年やっている」
現在完了形の継続用法です。
「〜している」という定番の訳についてですが、
過去のあるときから、ある物事を継続して、現在に至った、ということなので
「彼は英語を30年教えて【きた】」の方がいいんじゃないかなぁと個人的には思ってます
この文は完了形の要素を抜き取ると
He teaches English
「彼は英語を教えている」「彼は英語の先生だ」
ですよね。現在形です。
現在形というのは、「いまそれをしている最中」という意味ではありません。(それは現在進行形)
そうではなくて、
繰り返し行うことを表すときに使う形です。
例えば習慣にしていることとか、職業とか、なんらかの属性だったりとかを表すのに使います。
だから、He teaches Englishが「英語の先生だ」という訳になるんです。
(「英語を教えている」でももちろん◯ですが)
現在完了の継続用法は、この状態とか属性が続いているということなのです。
30年間家にも帰らず眠ることもなく英語をぶっ続けで教えている人間はいません。
He has been teaching English for 3 hours
「彼は3時間英語を教えている」
現在完了進行形です。
これは完了形の要素を取り除くと
He is teaching English
つまり現在進行形になります。
だからこちらの場合は、「英語を教えている最中」というのが、3時間ぶっ続けなわけです。
つまりこちらは、動作の継続、ということなのです。
長いので切ります。
完了形の継続用法は、状態や属性の継続
完了進行形は、動作のぶっ続け
なので、完了進行形の場合、
どう考えてもぶっ続けられない期間の表現がセットになることは、あまりないのですが
でも実際には
He has been teaching English for 30 years
みたいな、そりゃないだろって見える文も
けっこうあるんですね。
これは何かというと、
完了進行形にはもう一つ用法があって
言っていることは完了形の継続用法と同じで、
状態や属性の継続なんだけれども、
今後も同じ状態が続くと考えられる場合は、完了進行形にするのです。
だからこの文は
「彼は30年英語の先生をやっている」
と訳します。
完了形の継続用法の場合は、現在までの話であって、今後のことは何も伝えていません
ちなみにですが、最初に紹介した「〜きた」という訳は、こういう点でも非常にしっくりくるのです。
「30年間英語の先生をやってきた」っていう日本語も、それが今後も続くかどうかについては述べていないでしょう?
だから完了形の継続用法にぴったりくる、と思うんです。
まとめると
He has taught English for 30 years
「彼は英語の先生を30年やっている(きた)」
現在完了形
状態や属性の継続
He has been teaching English for 3 hours
「彼は、3時間も英語を教え(続け)ている」
現在完了進行形
動作の継続
He has been teaching English for 30 years
「彼は30年英語の先生をやっている」
現在完了進行形
状態や属性の継続+今後もそれが続く
現在完了進行形のこの2つの用法の見分けは
都度考えるしかありませんね。