[Help] Русификация vBulletin и проблема с вопросами

Тема в разделе "vBulletin", создана пользователем Avalanch, 10 дек 2010.

Статус темы:
Закрыта.
  1. Avalanch

    Avalanch ТоЛеГ & ТоПеГ

    Регистр.:
    9 янв 2007
    Сообщения:
    1.138
    Симпатии:
    524
    Добрый день!

    В общем успешно русифицировал форум, везде на русском. Хотя в админке много где остались "?????????", вручную все править это очень проблематично, как решить данный вопрос оперативно, так как многие поля непонятно как назывались.

    С уважением,
    Avalanch.
     
  2. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.266
    Как с этим бороться?

    Существует последовательность определения своих действий:
    1. Используя PHPMyAdmin “залезть” в БД форума, и определить в какой кодировке находятся таблицы;
    2. Определить кодировку Мускула (MySQL);
    3. Предпринять действия к предотвращению проблемы.

    Допустим, БД у нас в кодировке utf-8, а соединений мускула и его кодировка в ср1251.
    Берем файл init.php с папки includes, находим там строчку (сразу после подключения:(
    PHP:
    {
    vbulletin_demo_init_db();
    }
    И после этой строчки используем сия код:
    PHP:
    mysql_query ("set character_set_client='utf8'");
    mysql_query ("set character_set_results='utf8'");
    mysql_query ("set collation_connection='utf8_general_ci'");
    Все проблемы должны решиться.
    Другая ситуация - БД в ср1251, Мускул в utf-8. Берем все тот же init.php, находим ту самую строчку:
    PHP:
    {
    vbulletin_demo_init_db();
    }
    И используем этот код:
    PHP:
    mysql_query ("set character_set_client='cp1251'");
    mysql_query ("set character_set_results='cp1251'");
    mysql_query ("set collation_connection='cp1251_general_ci'");
    Вот и все.

    -------------------------------------------------
    Внимание: Ниже - для версии 3.8! |
    -------------------------------------------------

    Найти:
    PHP:
    // make $db a member of $vbulletin  
    Перед ней добавить:
    PHP:
    mysql_query ("set character_set_client='cp1251'"); 
    mysql_query ("set character_set_results='cp1251'"); 
    mysql_query ("set collation_connection='cp1251_general_ci'");  
    Или
    PHP:
    mysql_query ("set character_set_client='utf8'");
    mysql_query ("set character_set_results='utf8'");
    mysql_query ("set collation_connection='utf8_general_ci'");
    -------------------------------------------------
    Внимание: Ниже - для версии 4.0! |
    -------------------------------------------------

    Найти:
    PHP:
    // make $db a member of $vbulletin
    $vbulletin->db =& $db;
    Перед ней добавить:
    PHP:
    mysql_query ("set character_set_client='cp1251'"); 
    mysql_query ("set character_set_results='cp1251'"); 
    mysql_query ("set collation_connection='cp1251_general_ci'");  
    Или
    PHP:
    mysql_query ("set character_set_client='utf8'");
    mysql_query ("set character_set_results='utf8'");
    mysql_query ("set collation_connection='utf8_general_ci'");
    Тут все.

    P.S. Не забудьте наново перезагрузить языковый пакет (!)


    Что делать, если это мне не помогло?
    Самое главное мы сделали — отрегулировали всеобщую кодировку БД и vB. Но, если у Вас все же проблема отображения некорректных символов осталась, то следует "копать" уже в другую сторону.
    Последовательность действий:
    1. Убедиться, что предыдущие действия по отрегулировке кодировки имеют правильный характер. Одним словом, дать себе и машине понять, что на серверной части все так, как и должно быть;
    2. Проанализировать показатели браузера по выбору кодировки.

    Да, как оказалось, браузер может и не "почувствовать" изменения, которые Вы проводили. В таком случае, весь процесс отладки завершен лишь наполовину.

    Как пример: Имеется форум с параметрами кодировки — БД: Кодировка базы (utf-8), кодировка таблиц (utf-8), сопоставление MySQL (utf-8), языковая кодировка (utf-8).
    В браузере каким-то боком все выводится "кракозябрами". Смотрим кодировку, которую выбрал браузер и делаем ужасающее открытие — он отображает Вам страницу в кодировке ср1251. Что же делать?
    А следующие:
    1. Если в корне форума нет .htaccess, то создать его;
    2. В этом самом файле .htaccess прописать:
    Код:
    AddDefaultCharset [[B]нужная для Вас кодировка[/B]]
    В нашем случае, будет выглядеть так:
    Код:
    AddDefaultCharset [COLOR="Red"]utf-8[/COLOR]
    Более подробная информация по .htaccess: Перейти по ссылке

    Данный метод решения — брутален. Но, полезен для тех, кто не может прочесть даже символы в админ-панели. Для тех, кому удалось перескочить на английский язык, предлагаю глобальное решение проблемы:
    Админ-панель — Языки и фразы — Управление языками — Редактировать настройки — Набор символов HTML — [выставить нужную кодировку]

    Есть еще варианты?
    Да, есть еще один вариант. Но, он скорее закрепляющий, а не кардинально меняющий кодировку. Посему, эффект от него не гарантирован.
    Попробуем использовать стандартную функцию файла config.php. Открываем данный файл и находим следующую строчку:
    Код:
    [B][COLOR="Green"]//[/COLOR][/B] $config['Mysqli']['charset'] = 'utf8';
    По умолчанию она закомментирована. Нам же следует ее раскомментировать (убрать //) и указать требуемую нам кодировку. Т.е., выйти должно следующее:
    Код:
    $config['Mysqli']['charset'] = 'utf8';
    Данный прием работает лишь в том случае (да, бывают и чудеса), если Вы используете MySQLi, а не MySQL. Конфигурация так же находится в файле config.php:
    Код:
    $config['Database']['dbtype'] = '[COLOR="Red"]mysql[/COLOR]';
    Вот и все.
     
    Avalanch нравится это.
  3. Avalanch

    Avalanch ТоЛеГ & ТоПеГ

    Регистр.:
    9 янв 2007
    Сообщения:
    1.138
    Симпатии:
    524
    Проблема в таблице - phrase. В таблице все в ?????, как мне ее обновить?
     
  4. Avalanch

    Avalanch ТоЛеГ & ТоПеГ

    Регистр.:
    9 янв 2007
    Сообщения:
    1.138
    Симпатии:
    524
    В общем так и не получил нормального ответа ни от кого.

    Проблему решил следующим способом.1

    1. Установил vBulletin на localhost;
    2. Выгрузил базу;
    3. Залил ее в интернет;
    4. Проблемы изначально нету с кодировкой.

    Тема закрыта.
     
  5. Axom

    Axom

    Регистр.:
    25 апр 2007
    Сообщения:
    320
    Симпатии:
    94
    Гм, для уточнения, форум раньше работал на анлийском или с нуля ставился?
    Версия?

    Знаю что вопрос закрыт, но мало ли.
     
  6. Avalanch

    Avalanch ТоЛеГ & ТоПеГ

    Регистр.:
    9 янв 2007
    Сообщения:
    1.138
    Симпатии:
    524
    Ставил форум английском, после, загрузил русскую локализацию и все нормально, выгрузил дамп и залил в интернет.

    Никаких косяков.
     
Статус темы:
Закрыта.