Get the timestamp with strtotime() (be sure the input string is correct; e.g. July 12, 2007 is a Thursday, not Monday) or mktime(). Then use setlocale(), as Pete said, for your appropriate locale/language (Albanian?). Then strftime() should give you the correct output, although whether it does or not will depend on your os and what is installed with it.
Here's a test script for a Windows server:
$eng_date = 'Monday June 11, 2007';
$locales = array('albanian', 'italian', 'finnish',
'korean', 'icelandic', 'russian',
'chinese', 'czech', 'usa');
// Uncomment the next line to prevent an erroneous dow from screwing things up.
//$eng_date = ltrim(strstr($eng_date, ' '));
$ts = strtotime($eng_date);
echo $eng_date . '<br />--------------<br />';
foreach ($locales as $locale) {
echo $locale . '<br />';
echo 'Locale: ';
if ($lc = setlocale(LC_ALL, $locale)) {
echo $lc . '<br />';
echo strftime('%A %B %d, %Y', $ts) . '<br />';
echo 'Local format: ' . strftime('%c', $ts) . '<br /><br />';
} else {
echo 'Not set.' . '<br /><br />';
}
}