Запятые вызывают вопросы не только в русском, но и в английском. Один из самых частых случаев - запятая перед but.

Короткий ответ: запятая перед but нужна не всегда. Все зависит от того, какие части предложения соединяет but.

  1. Запятая нужна, если but соединяет две самостоятельные части

Запятая ставится перед but, когда but соединяет две части сложносочиненного предложения. Проще говоря, до but есть своя грамматическая основа, и после but тоже есть своя грамматическая основа.

Грамматическая основа - это подлежащее и сказуемое.

I hate ice cream, but my father adores it.
Я терпеть не могу мороженое, но мой отец его обожает.

В первой части: I hate.
Во второй части: my father adores.

Обе части могут существовать отдельно:

I hate ice cream.
My father adores it.

Поэтому перед but нужна запятая.

Еще примеры:

The dog is young, but he is well trained.
Собака молодая, но она хорошо обучена.

Grammar is boring, but it is necessary.
Грамматика скучная, но она необходима.

I wanted to stay home, but my friends invited me out.
Я хотел остаться дома, но друзья пригласили меня погулять.

  1. Запятая не нужна, если после but нет самостоятельного предложения

Если после but идет не полноценная часть с подлежащим и сказуемым, а только слово или фраза, запятая обычно не ставится.

The dog is young but well trained.
Собака молодая, но хорошо обученная.

После but стоит только well trained. Это не самостоятельное предложение, поэтому запятая не нужна.

Еще примеры:

Grammar is boring but necessary.
Грамматика скучная, но необходимая.

The task was difficult but interesting.
Задание было сложным, но интересным.

She is strict but fair.
Она строгая, но справедливая.

  1. Сравните два варианта

The dog is young, but he is well trained.
Запятая нужна, потому что после but есть полноценная часть: he is well trained.

The dog is young but well trained.
Запятая не нужна, потому что после but нет новой грамматической основы.

Смысл почти одинаковый, но структура предложения разная.

  1. Особый случай: but for

В выражении but for запятая перед but не нужна, потому что but for означает «если бы не».

I would go for a walk but for the rain.
Я бы пошел гулять, если бы не дождь.

Здесь but не соединяет две самостоятельные части, поэтому запятая не ставится.

Главное правило

Ставьте запятую перед but, если после него идет новое самостоятельное предложение:

I wanted to call you, but I lost my phone.

Не ставьте запятую, если после but идет только слово или фраза:

The movie was long but interesting.

Самый простой способ проверить себя - посмотреть, есть ли после but подлежащее и сказуемое. Если есть, запятая обычно нужна. Если нет, запятая обычно не нужна.