2

我通过 Perl 脚本 (RRDs) 使用 RRDtool 来可视化温度读数。由于我希望图表中的所有内容都以瑞典语(工作日等)显示,因此我在我的 Perl 脚本中将语言环境设置为sv_SE.UTF-8 :

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. 还在调查...

4

1 回答 1

1

rrdtool 实际上是LC_NUMERIC在多个地方强制'C'以防止杂散的逗号出现在奇怪的地方......

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

于 2011-11-22T11:07:23.987 回答