Небольшой баг:
В таблице se_languagevars индекс корявый.
Необходимо дропнуть старый и сделать
PRIMARY по (languagevar_id, languagevar_language_id).
И работать быстрее будет и дубликатов не появится. А то при инсталле языка у меня дубликатные записи появляются.
Добавлено через 40 минут
Нашел еще одну неприятную вещь:
В Edit Phrase нельзя редактировать многострочные переводы из-за javascript ошибки (. Мало того даже если и отредактировать, то сохраняется с переводами строки, а надо то "<br />" подставлять.
Вот фикс admin_language_edit.php:
Инструкция 1: Если фиксить только ошибку javascript
1) примерно 18 строка
находим:
$json .= "{'$langvar_info[languagevar_language_id]':'".str_replace("\\", "\\\\", htmlspecialchars($langvar_info[languagevar_value], ENT_QUOTES))."'}";
заменяем:
$json .= "{'$langvar_info[languagevar_language_id]':'".str_replace(array("\\","\r","\n"), array("\\\\",'\n','\n'), htmlspecialchars( $langvar_info[languagevar_value], ENT_QUOTES))."'}";
Инструкция 1: Если фиксить ошибку javascript, и заменять \n на "<br />"
1) примерно 18 строка
находим:
$json .= "{'$langvar_info[languagevar_language_id]':'".str_replace("\\", "\\\\", htmlspecialchars($langvar_info[languagevar_value], ENT_QUOTES))."'}";
заменяем:
$json .= "{'$langvar_info[languagevar_language_id]':'".str_replace(array("\\","\r","\n"), array("\\\\",'\n','\n'), htmlspecialchars(br2nl( $langvar_info[languagevar_value] ), ENT_QUOTES))."'}";
2) примерно 30 строка
находим:
SE_Language::edit($languagevar_id, htmlspecialchars_decode($value, ENT_QUOTES), $lang_id);
заменяем:
SE_Language::edit($languagevar_id, htmlspecialchars_decode(nl2br( $value ), ENT_QUOTES), $lang_id);
3) В начали файла, где нибудь после
if(isset($_POST['languagevar_id'])) { $languagevar_id = $_POST['languagevar_id']; } elseif(isset($_GET['languagevar_id'])) { $languagevar_id = $_GET['languagevar_id']; } else { $languagevar_id = 0; }
добавляем строчки
function br2nl($text)
{
$text = preg_replace('/<br\\\\s*?\\/??>/i', "\\n", $text);
return str_replace("<br />","\n",$text);
}