Если я правильно понял, то вот:
function generic_slovo_pol($slovo, $pol, $charset = 'UTF-8')
{
$array_slovo = array(
'друг' => 'подруга',
'верный' => 'верная',
'предложил' => 'предложила',
'сир' => 'миледи',
'мессир' => 'мисс',
);
if (isset($array_slovo[mb_strtolower($slovo, $charset)]))
{
$res = $pol == 2 ? $array_slovo[mb_strtolower($slovo, $charset)] : mb_strtolower($slovo, $charset);
return mb_strtoupper(mb_substr($slovo, 0, 1, $charset), $charset) == mb_substr($slovo, 0, 1, $charset)
? mb_convert_case($res, MB_CASE_TITLE, $charset)
: $res;
}
return false;
}