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

Статус
В этой теме нельзя размещать новые ответы.

Avalanch

ТоЛеГ & ТоПеГ
Регистрация
9 Янв 2007
Сообщения
1.140
Реакции
615
Добрый день!

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

С уважением,
Avalanch.
 
  • Заблокирован
  • #2
Как с этим бороться?

Существует последовательность определения своих действий:
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]';
Вот и все.
 
Проблема в таблице - phrase. В таблице все в ?????, как мне ее обновить?
 
В общем так и не получил нормального ответа ни от кого.

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

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

Тема закрыта.
 
Гм, для уточнения, форум раньше работал на анлийском или с нуля ставился?
Версия?

Знаю что вопрос закрыт, но мало ли.
 
Гм, для уточнения, форум раньше работал на анлийском или с нуля ставился?
Версия?
Знаю что вопрос закрыт, но мало ли.

Ставил форум английском, после, загрузил русскую локализацию и все нормально, выгрузил дамп и залил в интернет.

Никаких косяков.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху