Transliteration from Ukrainian to English

209 Views Asked by At

I try to make translit function from Ukrainian to English on php. Is this correct especially for apostroph sign. And what about translit function from English to Ukrainian? Any ideas or link

function translit($s) {
    $s = (string) $s; 
    $s = trim($s);
    $s = strtr($s, array('зг'=>'zgh','а'=>'a','б'=>'b','в'=>'v','г'=>'h','ґ'=>'g','д'=>'d','е'=>'e','є'=>'ie','ж'=>'zh','з'=>'z','и'=>'y','і'=>'i','ї'=>'i','й'=>'i','к'=>'k','л'=>'l','м'=>'m','н'=>'n','о'=>'o','п'=>'p','р'=>'r','с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'kh','ц'=>'ts','ч'=>'ch','ш'=>'sh','щ'=>'shch','ю'=>'iu','я'=>'ia','`'=>'','ь'=>'','Зг'=>'Zgh','А'=>'A','Б'=>'B','В'=>'V','Г'=>'H','Ґ'=>'G','Д'=>'D','Е'=>'E','Є'=>'Ye','Ж'=>'Zh','З'=>'Z','И'=>'Y','І'=>'I','Ї'=>'Yi','Й'=>'Y','К'=>'K','Л'=>'L','М'=>'M','Н'=>'N','О'=>'O','П'=>'P','Р'=>'R','С'=>'S','Т'=>'T','У'=>'U','Ф'=>'F','Х'=>'Kh','Ц'=>'Ts','Ч'=>'Ch','Ш'=>'Sh','Щ'=>'Shch','Ю'=>'Yu','Я'=>'Ya')); // згідно Паспорта (КМУ 2010) 
    return $s; // повертаємо результат
}

Not every apostrophe is removed from the text :(

Also I'm interesting in correct English to Ukrainian translitiration - if you have

1

There are 1 best solutions below

3
Álvaro González On

You don't need to write your own logic or maintain your own database:

function translit($s) {
    return transliterator_transliterate('Any-Latin; Latin-ASCII', $s);
}

For повертаємо результат it produces povertaemo rezul'tat.

Demo and documentation.