<?php
$input = 'Renewal of sadfasdfa.com for 6548 year';
$translates = array(
'Active' => 'Aktif',
'InActive' => 'Pasif',
'~^Renewal of (.+?) for (\d{4}) year$~' => '$1 için $2 yıllık domain yenilemesi',
'~^Registration of (.+?) for (\d{4}) year$~' => '$1 için $2 yıllık domain kaydı',
'~^Required parameter missing: (.+?)$~' => 'Gerekli parametre eksik: $1',
);
function translate($input, $diffTranslatesArray = null)
{
global $translates;
if (!is_null($diffTranslatesArray)) {
$translates = $diffTranslatesArray;
}
$shortest = -1;
foreach ($translates as $word => $translated) {
$lev = levenshtein($input, $word);
if ($lev == 0) {
$closest = $word;
$closestTranslate = $translated;
$shortest = 0;
break;
}
if ($lev <= $shortest || $shortest < 0) {
$closest = $word;
$closestTranslate = $translated;
$shortest = $lev;
}
}
if ($shortest == 0) {
return $closestTranslate;
}
else {
return preg_replace($closest, $closestTranslate, $input);
}
}
echo translate($input);Performans olarak cok da kotu sayilmaz sanirim; ama degisken sayisi arttikca mutlaka performans dusecektir:
cevap için teşekkür ederim hocam.
şuanda iş yerindeyim eve geçtiğimde test edeceğim.
gettext ile karşılaştıracağım aralarında çok performans farkı yoksa gettext yerine kullanacağım