Я чимало тут на блозі пишу про правильну транслітерацію, переклад українських імн та прізвищ українців англійською мовою. Але чомусь не звертав особливої уваги, що транскодування у плагіні UkrToLat від LaSet не зовсім відповідає загальнодержавним вимогам. Звісно, деяким людям це не важливо, але у мене прокинулося загострення нормативносі, тому викладаю тут мною виправлений код автора згаданого плагіну (сподіваюся, в суд мене не поведе – я на авторство не претендую… хіба співавторство…). Якщо захочете, просто скопіюйте код, поданий нижче, і вставте його замість того, що є у плагіні за шляхом в адмінці WordPress: Плагіни -> UkrToLat -> Редагувати. Я спеціально не змінював постійне посилання цієї статті, щоб показати дієвість відредагованого мною плагіну.

<?php

/*

Plugin Name: UkrToLat

Plugin URI: http://blog.net.ua/

Description: Цей плаґін формує адресу публікацій і сторінок латинськими літерами з його заголовків .

Author: LaSet; yurolex

Author URI: http://www.laset.info/

Version: 0.1.4

*/

$gost = array(

"Ґ"=>"G","Ё"=>"Yo","Є"=>"Ye","Ы"=>"Y","І"=>"I",

"і"=>"i","ґ"=>"g","ё"=>"yo","№"=>"#","є"=>"ie"," є"=>" ye",

"ы"=>"y","А"=>"A","Б"=>"B","В"=>"V","Г"=>"H",

"Д"=>"D","Е"=>"E","Ж"=>"Zh","З"=>"Z","И"=>"Y",

"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",

"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",

"У"=>"U","Ф"=>"F","Х"=>"Kh","Ц"=>"Ts","Ч"=>"Ch",

"Ш"=>"Sh","Щ"=>"Shch","Ъ"=>"'","Ь"=>"", "Ї"=>"Yi",

"Э"=>"E","Ю"=>"Yu","Я"=>"Ya","а"=>"a","б"=>"b",

"в"=>"v","г"=>"h","д"=>"d","е"=>"e","ж"=>"zh",

"з"=>"z","и"=>"y","й"=>"i","к"=>"k","л"=>"l",

"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",

"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"kh",

"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"shch","ъ"=>"",

"ы"=>"y","ь"=>"","э"=>"e","ю"=>"iu"," ю"=>" yu","я"=>"ia"," я"=>" ya",

"ї"=>"i"," ї"=>" yi","ьо"=>"io","'"=>"",

"'"=>"","'"=>"","`"=>"","´"=>""

);

$original = array(

"Ґ"=>"G","Ё"=>"Yo","Є"=>"Ye","Ы"=>"Y","І"=>"I",

"і"=>"i","ґ"=>"g","ё"=>"yo","№"=>"#","є"=>"ie"," є"=>" ye",

"ы"=>"y","А"=>"A","Б"=>"B","В"=>"V","Г"=>"H",

"Д"=>"D","Е"=>"E","Ж"=>"Zh","З"=>"Z","И"=>"Y",

"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",

"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",

"У"=>"U","Ф"=>"F","Х"=>"Kh","Ц"=>"Ts","Ч"=>"Ch",

"Ш"=>"Sh","Щ"=>"Shch","Ъ"=>"'","Ь"=>"", "Ї"=>"Yi",

"Э"=>"E","Ю"=>"Yu","Я"=>"Ya","а"=>"a","б"=>"b",

"в"=>"v","г"=>"h","д"=>"d","е"=>"e","ж"=>"zh",

"з"=>"z","и"=>"y","й"=>"i","к"=>"k","л"=>"l",

"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",

"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"kh",

"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"shch","ъ"=>"",

"ы"=>"y","ь"=>"","э"=>"e","ю"=>"iu"," ю"=>" yu","я"=>"ia"," я"=>" ya",

"ї"=>"i"," ї"=>" yi","ьо"=>"io","'"=>"",

"'"=>"","'"=>"","`"=>"","´"=>""

);

function sanitize_title_with_translit($title) {

global $gost, $original;

$rtl_standard = get_option('rtl_standard');

switch ($rtl_standard) {

case 'off':

return $title;

case 'gost':

return strtr($title, $gost);

default:

return strtr($title, $original);

}

}

function rtl_options_page() {

?>

<div class="wrap">

<h2>Налаштування UkrToLat</h2>

<p>Ви можете обрати стандарт, за яким буде здійснюватися транлітерація заголовків.</p>

<?php

if($_POST['rtl_standard']) {

// set the post formatting options

update_option('rtl_standard', $_POST['rtl_standard']);

echo '<div class="updated"><p>Налаштування оновлено.</p></div>';

}

?>

<form method="post">

<fieldset class="options">

<legend>Проводити транслітерацію за стандартом:</legend>

<?php

$rtl_standard = get_option('rtl_standard');

?>

<select name="rtl_standard">

<option value="off"<?php if($rtl_standard == 'off'){ echo('

selected="selected"');}?>>Вимкнено</option>

<option value="original"<?php if($rtl_standard == 'original' OR $rtl_standard == ''){

echo(' selected="selected"');}?>>Постанова КМУ №55</option>

<option value="gost"<?php if($rtl_standard == 'gost'){ echo('

selected="selected"');}?>>Рішення УКППТ №9</option>

</select>

<input type="submit" value="Змінити стандарт" />

</fieldset>

</form>

</div>

<?

}

function rtl_add_menu() {

add_options_page('UkrToLat', 'UkrToLat', 8, __FILE__, 'rtl_options_page');

}

add_action('admin_menu', 'rtl_add_menu');

add_action('sanitize_title', 'sanitize_title_with_translit', 0);

?>

P.S. Я намагався зробити так, щоб посеред речення слова, які починаються на “я”, “ю”, “є” та “ї” виглядали теж правильно, але, якщо автор статті напише початок заголовка свого допису з малої літери, він буде неправильно транслітерований цим кодом. Причина проста: я прописав, що транслітерація посеред речення зі словами, які починаються згаданими літерами, враховує і пробіл перед ними, щоб таким чином відрізнити малу, велику літери і ті, що посередині слова.