Wordpress: борьба с насильственной русификацией

*

Уж сколько раз твердили миру... Каждый раз, когда выходит апгрейд для Wordpres, система назойливо предлагает мне поставить русскую версию. Обычно я отказываюсь, меня вполне устраивает "малая русификация" обычного английского Wordpress, но пару раз я соглашался (вот внушаемый я, оказывается, человек). И всякий раз горько об этом жалел.

В последний раз я пожалел о замене из-за кавычек. Кавычки, как известно, бывают двух основных видов (плюс немало вариаций, но сейчас речь не о них): международные " " и русские « ». Лично мне более симпатичны международные. Во-первых, они просто приятнее для моего глаза. Во-вторых, русские кавычки в английском тексте (типа «What's up?») выглядят значительно более ужасно, чем международные кавычки в русском (типа "чё за фигня?"). А вот рунет считает иначе. Впрочем, это - проблема рунета, а не моя.

Какое-то время я мирился с "кавычками-елочками" в английских предложениях, но когда русификатор начал тупо курочить ивритские надписи, превращая гершайим в "елочки" (например, מ«מ вместо מ''מ), то я озверел и принялся действовать.

Собака оказалась зарыта сразу в нескольких файлах. Во-первых, это файл "formatting.php" из папки "/wp-includes/", в функции wptexturize($text), где прописывается функция оформления кавычек. Во-вторых, это еще некий не найденный мной файл, где "поверх" этой функции производится принудительная замена нормальных кавычек на русские "елочки". Я не стал тратить полжизни на поиск второго файла, просто сделал маленькую косметическую замену в formatting.php (строки 56-60 в моей русифицированной версии, не скажу какой именно :) ):

Было:

$static_characters = array_merge(array('---', ' -- ', '--', ' - ', 'xn–', '...', '``', '\'\'', ' (tm)'), $cockney);
$static_replacements = array_merge(array('—', ' — ', '–', ' – ', 'xn--', '…', '$opening_quote', '$closing_quote', ' ™'), $cockneyreplace);

$dynamic_characters = array('/\'(\d\d(?:’|\')?s)/', '/\'(\d+)/', '/(\s|\A|[([{<]|")\'/', '/(\d+)"/', '/(\d+)\'/', '/(\S)\'([^\'\s])/', '/(\s|\A|[([{<])"(?!\s)/', '/"(\s|\S|\Z)/', '/\'([\s.]|\Z)/', '/\b(\d+)x(\d+)\b/');
$dynamic_replacements = array('’$1','’$1', '$1‘', '$1″', '$1′', '$1’$2', '$1'.'$opening_quote'.'$2', '$closing_quote'.'$1', '’$1', '$1×$2');

Стало:

$static_characters = array_merge(array('---', ' -- ', '--', ' - ', 'xn–', '...', '``', '\'\'', ' (tm)'), $cockney);
$static_replacements = array_merge(array('—', ' — ', '–', ' – ', 'xn--', '…', '“', '”', ' ™'), $cockneyreplace);

$dynamic_characters = array('/\'(\d\d(?:’|\')?s)/', '/\'(\d+)/', '/(\s|\A|[([{<]|")\'/', '/(\d+)"/', '/(\d+)\'/', '/(\S)\'([^\'\s])/', '/(\s|\A|[([{<])"(?!\s)/', '/"(\s|\S|\Z)/', '/\'([\s.]|\Z)/', '/\b(\d+)x(\d+)\b/');
$dynamic_replacements = array('’$1','’$1', '$1‘', '$1″', '$1′', '$1’$2', '$1'.'“'.'$2', '“'.'$1', '’$1', '$1×$2');

Да, да, я знаю, что это - тупо. Что нужно было найти второй файл и  отменить замену в нем. Но человеческая жизнь так коротка, а файлов в сборке Wordpress такая куча...  В общем, лекарство помогло. До ближайшего апгрейда его хватит, а там я еще десять раз подумаю про русский Wordpress.

Комментарии

Аватар пользователя Грайне

"...превращая гершайим в “елочки” (например, מ«מ вместо מ”מ), то я озверел и принялся действовать."(С)

Раздражает бесспорно, но до чего же смешно!)))))))))))))

Сегодня мне тоже уже смешно.