You really gave it your all for a long time. Good work!
[長い間](https://eikaiwa.dmm.com/uknow/questions/58219/)よく[頑張った](https://eikaiwa.dmm.com/uknow/questions/62566/)とは直訳なら"You really worked hard for a long time"とか"gave it your all for a while"とか、なんでも大丈夫ですよ。「お疲れ様でした」というの英語で完全に一致している表現が存在しないと思うんですけど、"good work"で充分でしょう。"Thanks for all your hard work!”もOKですよ。
もし相手が同僚や部下などで、彼の仕事ぶりもあなたが知っているような状況なら
You’ve done a good(great) job.
【訳】あなたは良い([素晴らしい](https://eikaiwa.dmm.com/uknow/questions/31182/))[仕事](https://eikaiwa.dmm.com/uknow/questions/37171/)をしたよ。
も使えるのではないかと思います。
英語の場合は「[お疲れ様でした](https://eikaiwa.dmm.com/uknow/questions/71723/)」というねぎらいの言葉よりは単純に仕事の質などを褒める方が多いと思います。
その前に、It must have been hard for you. (大変だったでしょう)をつけるのもありかと思いますが、本人が途中で体を壊していたり、大変だったと本人が言っている場合ならともかく、何もない状況でこれを言うと、かえって彼の力量を過小評価しているようにも捉えられてしまうかな、と思いました。日本人だとついそのまま言ってしまいそうですが。
後は、Now, you should get some rest!(これからはゆっくり休んで!)など、これからの話をすることでしょうか。
I know you worked really hard. Now it's time to get some rest.
I know you worked really hard. Now it's time to get some rest.
すごく頑張ってたの、知っているよ。ゆっくり休んでね。
上記のように英語で表現することもできます。
I know you worked really hard は「あなたが頑張っていたの、わかっているよ」というニュアンスの英語表現です。
お役に立てればうれしいです。
またいつでもご質問ください。