Как заставить RRDtool использовать запятые вместо точек в качестве десятичных разделителей в графах - PullRequest
2 голосов
/ 19 ноября 2011

Я использую RRDtool через скрипт Perl (RRD) для визуализации показаний температуры.Поскольку я хочу, чтобы все на графике отображалось на шведском языке (в будние дни и т. Д.), Я установил языковой стандарт на sv_SE.UTF-8 в своем скрипте Perl с помощью:

use POSIX qw(locale_h);
setlocale(LC_ALL, "sv_SE.UTF-8");

RRDtool getsэто и печатает названия дней недели на шведском языке.Тем не менее, числовые значения, которые записываются под графом RRDtool с помощью GPRINT, используют точки вместо запятых в качестве десятичных разделителей (XX . xx), и я не уверен, почему.На шведском языке следует использовать запятые (XX , xx).Я использую GPRINT так:

GPRINT:temp_out:MIN: Min\\: %6.1lf

Я пытался установить для LC_NUMERIC и LC_CTYPE значение sv_SE.UTF-8 , но безрезультатно.Я пытался использовать sv_SE.iso8859-1 , но не пошел.Я также читал различную документацию по printf, но пока не нашел решения.

Кому-нибудь удалось заставить RRDtool использовать запятые вместо точек в качестве десятичных разделителей?Спасибо!

Редактировать:

Если я создаю график с использованием rrdtool graph в командной строке и задаю LC_NUMERIC=sv_SE, я получаю запятые в качестве десятичных разделителей.Это заставляет меня поверить, что мой скрипт на Perl не подходит для моего setlocale.Все еще расследую ...

1 Ответ

1 голос
/ 22 ноября 2011

rrdtool фактически заставляет LC_NUMERIC в нескольких местах к 'C', чтобы предотвратить появление случайных запятых в нечетных местах ...

, чтобы увидеть запятые в сгенерированных диаграммах, нужно улучшитьэта логика немного дальше в rrd_graph.c, чтобы явно повторно включить исходную настройку LC_NUMERIC пользователя перед отображением GPRINT операторов.

...