direqtor писал(а):Добавлю свой способ перекодировки на лету.
Хороший способ, все работает!
Я добавил некоторые изменения, позволяющие менять на лету язык интерфейса форума, нажав на иконку языка. Результат можно посмотреть
тутВерсия 2.0.21. В самом начале функции init_userprefs() в includes/functions.php:
- Код: Выделить всё
if ( isset( $_GET['lang'] ) ) {
$default_lang = $_GET['lang'];
$default_lang = htmlspecialchars( $default_lang );
} else {
// Old code starts here
if ( $userdata['user_id'] != ANONYMOUS )
...
else {
$default_lang = phpbb_ltrim(basename(phpbb_rtrim($board_config['default_lang'])), "'");
}
// Old code ends here
}
В результате, если добавить ?lang=english|russian|hebrew в URL запроса, то в профиле пользователя запомнится его выбор языка без того, чтобы он должен был заходить на страницу профиля.
Добавлено спустя 10 минут 51 секунду:direqtor писал(а):Конечно, для применения этого метода на действующем форуме придется сперва перекодировать в UTF-8 всю базу данных.
Именно, а как это сделать, чтобы все нормально перенеслось? Я так понимаю есть две проблемы: собственно сама перекодировка и перенос сообщений.
Перекодировка - пробовал сделать backup старой базы (таблицы постов) и перекодировать в редакторе. Не вышло. Старая база тоже была UTF8, но интерфейс был в кодировке 1251.
Перенос сообщений (еще не дошел до этого) тоже будет проблематичен - ведь id сообщений в старой базе могут наложиться на id в новой (которая уже активна).
Заранее благодарю за конструктивные советы.