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

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

vchilikov
Forum Members
Forum Members
Posts: 28
Joined: Fri Aug 15, 2008 7:17 pm

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

Post by vchilikov »

В версии 1.4.1 приходилось приходилось делать доработки для нормальной работы с русским языком. Включены ли эти доработки в версию 1.5.1?
von-hamster
Power Poster
Power Poster
Posts: 339
Joined: Thu Nov 01, 2007 3:11 pm

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

Post by von-hamster »

Из того, что точно включено:
1. убраны крякозяблы из меню
2. добавлена автоматическая транслитерация для альясов
vchilikov
Forum Members
Forum Members
Posts: 28
Joined: Fri Aug 15, 2008 7:17 pm

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

Post by vchilikov »

Чтобы правильно прописывались русские 'ш' и 'и' пришлось в incude.php раскомментировать строку $cmsdb->Execute('set names utf8');
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

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

Post 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, приходится вот так вот изгаляться.
unsigned double ZYV;
Hippy-core
Forum Members
Forum Members
Posts: 76
Joined: Sat Dec 06, 2008 3:05 pm

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

Post by Hippy-core »

vchilikov wrote: Чтобы правильно прописывались русские 'ш' и 'и' пришлось в incude.php раскомментировать строку $cmsdb->Execute('set names utf8');
не помогло (
teroni
New Member
New Member
Posts: 6
Joined: Sun Dec 14, 2008 2:13 pm

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

Post 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', 'Ð
Last edited by teroni on Sun Dec 14, 2008 2:48 pm, edited 1 time in total.
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

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

Post by ZYV »

Ну так правильно =) теперь надо убить базу, создать заново, переустановить CMS и всё будет хорошо. У тебя раньше был latin1 и база залилась в нем, а теперь коннект идет в utf8 и видны каракули...
unsigned double ZYV;
teroni
New Member
New Member
Posts: 6
Joined: Sun Dec 14, 2008 2:13 pm

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

Post by teroni »

Я так понимаю, что и сейчас в утф всё... Ведь новый контент я добавляю со страниц в утф, показываю его тоже на страницах в утф и там всё нормально видится. Если я базу по новому создам - что изменится? настроки сервака ведь те же остались!

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

Или после этого ЦМСка перестанет работать?
Last edited by teroni on Sun Dec 14, 2008 7:12 pm, edited 1 time in total.
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

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

Post by ZYV »

Ты же сам сказал что поменял настройки теперь? Как же они могли остаться одними и теми же.

Да, примерно такой вариант можно реализовать, я так клиентам базы выправляю, только делать надо всё правильно.
unsigned double ZYV;
teroni
New Member
New Member
Posts: 6
Joined: Sun Dec 14, 2008 2:13 pm

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

Post 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) тоже нет ни слова о кодировке таблицы. Почему разработчики не позаботились о такой "мелочи"? И еще вопрос, когда таблица создаётся таким образом, т.е. без указания кодировки, то откуда конкретно она берётся?
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

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

Post by ZYV »

Она берется из тех самых настроек по умолчанию, "которые ты поместил на некоторое время и удалил". Соответственно, если не указано обратное ВСЁ по умолчанию - latin1. Разработчики подразумевают, что если ты взялся за CMS, ты знаешь как работает mySQL и умеешь его администрировать. Или твой администратор это умеет. И это правильно.
Last edited by ZYV on Mon Dec 15, 2008 1:16 pm, edited 1 time in total.
unsigned double ZYV;
teroni
New Member
New Member
Posts: 6
Joined: Sun Dec 14, 2008 2:13 pm

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

Post by teroni »

Таки конвертнул.
Алгоритм был такой.
1) В my.cnf поставил дефолтной для дампа и везде где можно latin1.
2) Сделал дамп через SSH.
3) На локалке перевёл дамп из latin1 в utf8, в тексте дампа везде latin1 поменял на utf8.
4) В my.cnf поставил дефолтной для дампа и везде где можно utf8.
5) Зашел в базу данных, удалил все таблицы, залил дамп.
В общем, намаялся по самое немогу.
Разработчики подразумевают, что если ты взялся за CMS, ты знаешь как работает mySQL и умеешь его администрировать.
А написать в инсталле про нужные настройки mySQL или самим жёстко прописать типы таблиц им не позволила религия :(
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

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

Post by ZYV »

Ну, я делаю проще :) т.к. этим больны все, кому сайт делали криворучки на заре появления collations, я написал полуавтоматику на основе старой версии phpmyadmin. Соответственно этапы сводятся к сливке дампа, удалению базы и изменению настроек сервера и перезаливкой дампа. Занимает 15 минут.

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

Документация - это вещь хорошая. Давно существует wiki, можешь написать там всё, что считаешь нужным - логин - твой форумский.
unsigned double ZYV;
teroni
New Member
New Member
Posts: 6
Joined: Sun Dec 14, 2008 2:13 pm

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

Post by teroni »

ZYV wrote: Документация - это вещь хорошая. Давно существует wiki, можешь написать там всё, что считаешь нужным - логин - твой форумский.
Записал :)
ZYV
Language Partners
Language Partners
Posts: 868
Joined: Tue Nov 15, 2005 9:08 pm

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

Post by ZYV »

Вот за это спасибо, правда куда - не нашел. Если что-то нужно в install.txt - давай diff на английском - помогу пробить.
unsigned double ZYV;
Post Reply

Return to “Russian - русский”