Page 1 of 2

Русский язык и 1.5.1

Posted: Fri Dec 05, 2008 10:21 am
by vchilikov
В версии 1.4.1 приходилось приходилось делать доработки для нормальной работы с русским языком. Включены ли эти доработки в версию 1.5.1?

Re: Русский язык и 1.5.1

Posted: Fri Dec 05, 2008 10:41 am
by von-hamster
Из того, что точно включено:
1. убраны крякозяблы из меню
2. добавлена автоматическая транслитерация для альясов

Re: Русский язык и 1.5.1

Posted: Fri Dec 05, 2008 11:14 am
by vchilikov
Чтобы правильно прописывались русские 'ш' и 'и' пришлось в incude.php раскомментировать строку $cmsdb->Execute('set names utf8');

Re: Русский язык и 1.5.1

Posted: Fri Dec 05, 2008 2:44 pm
by ZYV
Ну так это известный момент, когда mysql-сервер настроен неизвестными, но ОЧЕНЬ талантливыми администраторами, которым не хватило чего-то критического, чтобы добавить
[mysqld]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
skip-character-set-client-handshake

lower_case_table_names=1

[mysqldump]
default-character-set=utf8
в my.cnf, приходится вот так вот изгаляться.

Re: Русский язык и 1.5.1

Posted: Sat Dec 06, 2008 11:03 pm
by Hippy-core
vchilikov wrote: Чтобы правильно прописывались русские 'ш' и 'и' пришлось в incude.php раскомментировать строку $cmsdb->Execute('set names utf8');
не помогло (

Re: Русский язык и 1.5.1

Posted: Sun Dec 14, 2008 2:20 pm
by teroni
У меня проблемка :(
Поставил эту версию, все буквы на сайте отображаются правильно.
Но вот в phpmyadmin получаются бока...

Code: Select all

-- Структура таблицы `cms_module_feusers_properties`
--
CREATE TABLE IF NOT EXISTS `cms_module_feusers_properties` (
  `id` int(11) NOT NULL,
  `userid` int(11) default NULL,
  `title` varchar(100) character set latin1 default NULL,
  `data` longtext collate utf8_unicode_ci,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC;

--
-- Дамп данных таблицы `cms_module_feusers_properties`
--

INSERT INTO `cms_module_feusers_properties` (`id`, `userid`, `title`, `data`) VALUES
(3, 3, 'email', 'eeee@rr.ru'),
(4, 3, 'country', 'Ð

Re: Русский язык и 1.5.1

Posted: Sun Dec 14, 2008 6:28 pm
by ZYV
Ну так правильно =) теперь надо убить базу, создать заново, переустановить CMS и всё будет хорошо. У тебя раньше был latin1 и база залилась в нем, а теперь коннект идет в utf8 и видны каракули...

Re: Русский язык и 1.5.1

Posted: Sun Dec 14, 2008 6:49 pm
by teroni
Я так понимаю, что и сейчас в утф всё... Ведь новый контент я добавляю со страниц в утф, показываю его тоже на страницах в утф и там всё нормально видится. Если я базу по новому создам - что изменится? настроки сервака ведь те же остались!

А такой вариант подойдёт:
1) Сделать этот дамп с кракозябрами.
2) Перегнать его в утф.
3) В объявления всех таблиц вмест латин1 написать утф8.
4) Очистить базу на серваке.
5) Импортировать обработанный дамп.

Или после этого ЦМСка перестанет работать?

Re: Русский язык и 1.5.1

Posted: Sun Dec 14, 2008 8:48 pm
by ZYV
Ты же сам сказал что поменял настройки теперь? Как же они могли остаться одними и теми же.

Да, примерно такой вариант можно реализовать, я так клиентам базы выправляю, только делать надо всё правильно.

Re: Русский язык и 1.5.1

Posted: Sun Dec 14, 2008 10:57 pm
by teroni
Я просто на некоторое время добавил в конфиг мускла вышеприведенные настройки... Посмотрел на сайт - там все русские символы навернулись, я быстренько вернул конфиг в исходное положение.

Ясненько, тогда попробую провести выправление базы.

Только вот всё равно так и не понял, почему у меня при изначальной установке у большинства таблиц и полей поставился CHARSET latin1, а не utf8. Вроде бы всё делал по указаниям в установке, и в пхпмуадмине написано, что умолчательная кодировка утф... Сейчас пороюсь в инсталляхе, какие там запросы по созданию таблиц...

Code: Select all

$query  = "CREATE TABLE ".$config["db_prefix"]."userprefs (";
$query .= "  user_id int(11),";
$query .= "  preference varchar(50),";
$query .= "  value varchar(255),";
$query .= "  type varchar(25)";
$query .= ") TYPE=MyISAM";
Это конечно не функция создания таблиц, но в function CreateTableSQL($tabname, $flds, $tableoptions=false) тоже нет ни слова о кодировке таблицы. Почему разработчики не позаботились о такой "мелочи"? И еще вопрос, когда таблица создаётся таким образом, т.е. без указания кодировки, то откуда конкретно она берётся?

Re: Русский язык и 1.5.1

Posted: Mon Dec 15, 2008 1:14 pm
by ZYV
Она берется из тех самых настроек по умолчанию, "которые ты поместил на некоторое время и удалил". Соответственно, если не указано обратное ВСЁ по умолчанию - latin1. Разработчики подразумевают, что если ты взялся за CMS, ты знаешь как работает mySQL и умеешь его администрировать. Или твой администратор это умеет. И это правильно.

Re: Русский язык и 1.5.1

Posted: Mon Dec 15, 2008 2:31 pm
by teroni
Таки конвертнул.
Алгоритм был такой.
1) В my.cnf поставил дефолтной для дампа и везде где можно latin1.
2) Сделал дамп через SSH.
3) На локалке перевёл дамп из latin1 в utf8, в тексте дампа везде latin1 поменял на utf8.
4) В my.cnf поставил дефолтной для дампа и везде где можно utf8.
5) Зашел в базу данных, удалил все таблицы, залил дамп.
В общем, намаялся по самое немогу.
Разработчики подразумевают, что если ты взялся за CMS, ты знаешь как работает mySQL и умеешь его администрировать.
А написать в инсталле про нужные настройки mySQL или самим жёстко прописать типы таблиц им не позволила религия :(

Re: Русский язык и 1.5.1

Posted: Tue Dec 16, 2008 9:56 am
by ZYV
Ну, я делаю проще :) т.к. этим больны все, кому сайт делали криворучки на заре появления collations, я написал полуавтоматику на основе старой версии phpmyadmin. Соответственно этапы сводятся к сливке дампа, удалению базы и изменению настроек сервера и перезаливкой дампа. Занимает 15 минут.

Ещё раз, жестко прописывать в install кодировку и collations  - это плохо, т.к. у каждого свои потребности, у меня, например, были ситуации, когда надо было интегрировать CMSMS как часть очень большой системы, работающей в cp1251. Предполагается, что раз ты взялся за дело, то ты хотя бы самые элементарные понятия имеешь о том, как что работает и не встретишь никаких трудностей также как и я.

Документация - это вещь хорошая. Давно существует wiki, можешь написать там всё, что считаешь нужным - логин - твой форумский.

Re: Русский язык и 1.5.1

Posted: Tue Dec 16, 2008 11:05 am
by teroni
ZYV wrote: Документация - это вещь хорошая. Давно существует wiki, можешь написать там всё, что считаешь нужным - логин - твой форумский.
Записал :)

Re: Русский язык и 1.5.1

Posted: Tue Dec 16, 2008 1:59 pm
by ZYV
Вот за это спасибо, правда куда - не нашел. Если что-то нужно в install.txt - давай diff на английском - помогу пробить.