Уж сколько раз твердили миру... Каждый раз, когда выходит апгрейд для 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.
Комментарии
Грайне (не проверено)
чт, 08/12/2010 - 18:48
Постоянная ссылка (Permalink)
"...превращая гершайим в
"...превращая гершайим в “елочки” (например, מ«מ вместо מ”מ), то я озверел и принялся действовать."(С)
Раздражает бесспорно, но до чего же смешно!)))))))))))))
lugovsa (не проверено)
чт, 08/12/2010 - 19:54
Постоянная ссылка (Permalink)
Сегодня мне тоже уже смешно.
Сегодня мне тоже уже смешно.