but for the heavy rain,we should have reached the town, 是不是翻译成要不是因为雨下得大,我们早就到了。 为什么是与过去事实相反 不可以换成 but for the heavy rain,we would reach the town 与现在事实相反? 还是BUT FOR决定与过去事实相反?
but for :如果不是...就... 事实已经发生了,即heavy rain已经是事实了,所以只能是与过去事实相反,即如果没下那场雨就好了。用would也行,应为would have reached 中文意思是:如果不是因为这场雨,我们早就到了。侧重于‘早就’二字,所以要用have done的形式
but for the heavy rain,we should have reached the town 本句就是与现在相反, 想象一下说话人的情景,当时还在路上淋着大雨,感慨说:要不是这场大雨,我们已经进城了! but for the heavy rain,we would reach the town 很别扭,想象不出什么语境。