Я тоже ненавижу регулярки
На вскидку, регулярку даже не трогал.
var text='Привет мир. Куку ? хихи ?';
alert ( text.replace(/(\s+)?([^.!?]+?)([.!?]+|\n|$)/g," <translate>$2$3</translate> ") );
Замечу что у тебя перенос каретки считается за разделитель вместе с символами пунктуации ([.!?]+|\n|$).
Мне кажется что |/n тебе лучше убрать из регулярки, и заменить /n на <br> вторым реплейсом
З.Ы. Мне кажется регулярку можно проще записать, но лень