- RRDtool и русский язык, Egenius, 12:47 , 13-Апр-10 (1)
Добавлю что, на сколько я понял, дело именно в перловом модуле RRDs.pm, т.к. сгенерированный скриптом русский текст на странице отображается нормально, а крякозябры только на графиках.
- RRDtool и русский язык, cuad0, 12:55 , 13-Апр-10 (2)
- RRDtool и русский язык, Egenius, 14:47 , 13-Апр-10 (3)
>Не знаю, что за скриптами вы там пользуетесь, но как наводка: >rrdtool graph использует перем. окружения LC_ALL. Установите ее значение в соответствии с >вашей локалью. >Напр у меня при генерации из шелла: >export LC_ALL=ru_RU.KOI8-R >rrdtool graph --параметры --параметры ... > >работает нормально и с дефолтными шрифтами, и с микрософтскими ( sharpfonts.com ) >Этот скрипт "14all.cgi" лежит на оф.сайте MRTG в разделе mrtg-rrd и рекомендован к использованию для простого перевода всей статистики на RRD. Скрипт использует перловую библиотеку RRDs.pm и как в этом скрипте передать переменные окружения для меня загадка, т.к. я с перлом не дружу. Пробовал добавлять к аргументам "'--font', 'DEFAULT:8:Arial'", но кроме размера шрифта ничего не поменялось. В самой системе вот такие переменные окружения: LANG=ru_RU.UTF-8 RRD_DEFAULT_FONT=/usr/share/rrdtool/fonts/COUR8.TTF Если подскажете как необходимые переменные передать этому скрипту, буду очень рад.
- RRDtool и русский язык, cuad0, 15:15 , 13-Апр-10 (4)
- RRDtool и русский язык, Egenius, 15:22 , 13-Апр-10 (5)
>так погуглите по темам "linux, переменные окружения, lc_all, локаль", наверняка найдете что-нибудь. > >вкратце, вам надо, чтобы в системе была установлена LC_ALL=ru_RU.UTF-8. Причем не для >вашей учетной записи, а для юзера под которым запускается скрипт генерации >графиков. Ну и проверьте, что сам файл скрипта у вас в >утф8, а то мало ли... Апач , из под которого запускается скрипт имеет переменную окружения ru_RU.UTF-8 но даже если поставить любую другую, то это ничего не меняет. При любых переменных на графиках крякозябры, при том что, тот же скрипт при тех же переменных текстовые записи нормально генерит в русской кодировке. Так что думаю дело тут не в переменных, а именно в RRDs.pm, который не хочет отрисовывать русские символы, а вот как заставить его это делать мне не понятно.
- RRDtool и русский язык, cuad0, 15:30 , 13-Апр-10 (6)
- RRDtool и русский язык, Egenius, 15:53 , 13-Апр-10 (7)
>[оверквотинг удален] >это не переменная окружения, а ее значение. имя переменной какое? добавьте то >же, но с именем LC_ALL. > >>Так что думаю дело тут не в переменных, а именно в RRDs.pm, >>который не хочет отрисовывать русские символы, а вот как заставить его >>это делать мне не понятно. > >Ну начнем с того, что графики рисует все-таки rrdtool graph, а не >скрипт. А текст на графиках (на графиках! не на страницах) рендерится >при помощи бекэнда pango. Полностью вывод команды "env", запущенной от юзера apache:
su - apache -s /bin/sh -sh-3.2$ env HOSTNAME=www SHELL=/bin/sh TERM=xterm HISTSIZE=1000 USER=apache LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: MAIL=/var/spool/mail/apache PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/netflow/bin/ INPUTRC=/etc/inputrc PWD=/var/www LANG=ru_RU.UTF-8 SHLVL=1 HOME=/var/www LOGNAME=apache LESSOPEN=|/usr/bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 HISTTIMEFORMAT=%d.%m.%Y %H:%M:%S _=/bin/env
И ещё, параметр '--font','DEFAULT:18:TimeKOI8', найдённый в доке по RRD, не влияет на выбор шрифта и всё равно используется стандартный щрифт "/usr/share/rrdtool/fonts.DejaVuSansMono-Roman.ttf". Проверял переименованием шрифта "TI_KOI8.TTF" в "DejaVuSansMono-Roman.ttf"
- RRDtool и русский язык, cuad0, 16:34 , 13-Апр-10 (8)
- RRDtool и русский язык, Egenius, 16:47 , 13-Апр-10 (9)
>>Полностью вывод команды "env", запущенной от юзера apache: >> >>su - apache -s /bin/sh >> > >Как видим, LC_ALL там нет. Я ж вам правильным языком в правильной >локали написал - "установите переменную окружения LC_ALL=ru_RU.UTF-8". А вот этого я никак не могу добиться для юзера апача. Прописал в стартовом скрипте export LC_ALL="ru_RU.UTF-8" но всё равно в переменных только LANG >>И ещё, параметр '--font','DEFAULT:18:TimeKOI8', найдённый в доке по RRD, не влияет на >>выбор шрифта и всё равно используется стандартный щрифт >Влияет. Но в вашем случае не работает потому, что шрифта "TimeKOI8" у >вас в системе нет. fc-list |grep TimeKOI8 TimeKOI8:style=Regular
С этим всё в порядке, шрифт есть.
>fc-list выведет список всех установленных шрифтов. Юзайте любой. > >И еще. Вы уверены, что в кодировках не запутались? Локаль у вас >utf8, а шрифт пытаетесь использовать koi8. Текст в скриптах, надеюсь, не >в cp1251 написан? :) Не уверен, но как это проверить увы, не знаю.
- RRDtool и русский язык, cuad0, 17:13 , 13-Апр-10 (10)
- RRDtool и русский язык, Egenius, 08:29 , 14-Апр-10 (11)
>[оверквотинг удален] >Тогда скорее всего, в шрифте нет необходимых глифов (символов), поэтому pango недостающие >берет из дефолтного шрифта (или из похожего шрифта того же семейства, >начертания, etc. не помню точно). >> >>Не уверен, но как это проверить увы, не знаю. > >Попробуйте другой шрифт, желательно юникодный. Может у вас и так все нормально >(если с кодировками не напутано) и LC_ALL не нужен. Поставьте микрософтские >шрифты. Ссылку я вам давал, там и мануал по установке есть. >На крайняк попробуйте стандартные шрифты типа Arial, Courier, Times. В том то и дело что он даже не пытается использовать другой шрифт. Пробовал ставить и Arial, Courier, Times, но используется только свой стандартный. Потому и решил натравить его на KOI8, который лежит в той же папке, где и тот, что юзает rrd. Насчёт кодировки самих файлов у меня тоже было подозрение, но они отпали после того как я увидел что текст на страницах корректно отображается, значит скрипт вытаскивает текст из конфигов MRTG нормально, даже когда текст в конифигах был в KOI-8. Плюс я пробовал менять кодировку как в конфигах MRTG, так и сам скрипт создавал копированием содержания скрипта в пустой файл.(cat > 14all.cgi)
- RRDtool и русский язык, gpl77, 10:07 , 14-Апр-10 (12)
- RRDtool и русский язык, Egenius, 13:22 , 14-Апр-10 (13)
>> >>В том то и дело что он даже не пытается использовать другой >>шрифт. Пробовал ставить и Arial, Courier, Times, но используется только свой >>стандартный. Потому и решил натравить его на KOI8, который лежит в > >rrdtool использует fontconfig. >посмотрите что подставляет fontconfig на запрошенные фонты. (fc-match) >посмотрите какие lang и style property fontconfig выдает и >попробуйте поиграть правилами подстановки Вот что я получил по команде fc-match: fc-match n019003l.pfb: "Nimbus Sans L" "Regular"
- RRDtool и русский язык, gpl77, 14:16 , 14-Апр-10 (14)
- RRDtool и русский язык, Egenius, 19:58 , 14-Апр-10 (15)
>посмотрите man fc-match >ему на вход задаешь паттерн (то что запрашивает программа) (times, arial и >т.п.) >в ответ получаем конкретный фонт, который выдаст на такой запрос fontconfig > >несоответствия могут быть если properties отрабатываются некорректно (или не запрашиваются) Простите, может мои вопросы кажутся глупыми, но я уже ничего не понимаю. На все запросы fc-match выдаёт "n019003l.pfb: "Nimbus Sans L" "Regular"" запрашиваю вот так: fc-match Arial n019003l.pfb: "Nimbus Sans L" "Regular" и только на fc-match DejaVuSansMono-Roman.ttf получаю ответ DejaVuSansMono-Roman.ttf: "DejaVu Sans Mono" "Roman" Куда дальше копать и что править ума не приложу. Ткните носом, если не сложно !
- RRDtool и русский язык, cuad0, 00:14 , 22-Апр-10 (17)
- RRDtool и русский язык, Egenius, 16:10 , 15-Апр-10 (16)
Всем спасибо за помощь!Проблема была в старой версии rrdtool (1.2.29) После обновления до 1.3.9 всё встало на свои места. Ещё раз всем спасибо !
- RRDtool и русский язык, Вадим, 18:19 , 04-Июн-13 (18)
|