ご質問ありがとうございます。
「長い間」=「for a long time」
「我慢する」=「to be patient」や「to endure」
この表現の中で主語は自分なので、「I」を使います。
動詞は「してきた」の形なので、英語の「I had ...」を使って「過去から今まで」の時期となります。今後もうしないというニュアンスもあります。
「I had been patient for a long time.」は良いですが、私だったら「I'd tolerated it for a long time.」と言います。
「tolerate」は「受け付ける」という意味があります。「it」は代名詞として「浮気癖」を指します。
もちろん「I had」か「I'd」の省略形どっちでも使っても良いです。
ご参考になれば幸いです。
「長い間我慢してきました」を英語で表す時には以下のようなフレーズがあります。
'I've been putting up with it for a long time.' 'put up with' は英語で「我慢する」を意味します。つまり、「長い間我慢してきました」を英訳すると、'I've been putting up with it for a long time.'になります。'it' はこの文脈では、「浮気癖」を指しています。
'I've been tolerating this for too long.' 'tolerate' もまた、「我慢する」を表す英語の1つです。'this'は、相手の浮気癖を指すために使われています。