![](/img/trans.png)
[英]Regexp/perl code for handling both dots and commas as valid decimal separators
[英]How to make RRDtool use commas instead of dots as decimal separators in graphs
我正在通過Perl腳本(RRD)使用RRDtool來可視化溫度讀數。 因為我希望圖表中的所有內容都以瑞典語顯示(工作日等),所以我在Perl腳本中將語言環境設置為sv_SE.UTF-8 ,方法是:
use POSIX qw(locale_h);
setlocale(LC_ALL, "sv_SE.UTF-8");
RRDtool得到此信息,並以瑞典語打印工作日名稱。 然而,在該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
上setlocale
。 仍在調查中...
rrdtool實際上是在多個地方將LC_NUMERIC
強制為'C'
,以防止在奇數處出現流浪逗號。
要在生成的圖表中看到逗號,必須在rrd_graph.c
進一步增強此邏輯,以便在呈現GPRINT
語句之前顯式重新啟用用戶的原始LC_NUMERIC
設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.