Очевидно, что локаль по любому не подойдет, даже если чудесным образом удастся ее нащупать, просто потому, что требуется выводить "марта" вместо "март". Так что только хардкор
function toRusDate($daystr=null,$format="j F, Y г."){
//print_r($datstr);
if ($daystr) $daystr=strtotime($daystr);
else $daystr=time();
return str_replace( //XXX: нужно проверить английские имена месяцев
array('january','february','march','april','may','june','july',
'august','september','october','november','december'),
array('января','февраля','марта','апреля','мая','июня','июля',
'августа','сентября','октября','ноября','декабря'),
strtolower(date($format,
$daystr)));
}