如何使RRDtool在图形中使用逗号而不是点作为十进制分隔符



我通过一个Perl脚本(rrd)使用RRDtool可视化温度读数。由于我希望图中的所有内容都以瑞典语显示(工作日等),因此我将区域设置设置为sv_SE。在我的Perl脚本中使用:

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

RRDtool获取此信息,并以瑞典语打印工作日名称。然而,用GPRINT在RRDtool图下编写的数值使用点而不是逗号作为十进制分隔符(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。仍然在调查…

rrdtool实际上是在多个地方强迫LC_NUMERIC'C',以防止在奇怪的地方出现散乱的逗号…

要在生成的图表中看到逗号,则必须在rrd_graph.c中进一步增强此逻辑,以便在呈现GPRINT语句之前显式地重新启用用户原始的LC_NUMERIC设置。

相关内容

  • 没有找到相关文章

最新更新