Perl 模組 Time::Verbal
作者:gugod 發佈於:關於把時間轉換成口語的 Perl 模組,由於覺得現有的都不是很滿意,因此自己寫了個: Time::Verbal
目前它的功能只是把兩個時間點差異用口語化的方式表現出來。主要的特點有 ① 捨去很小的單位,與 ② 完整的 i18n / l10n 支援兩項。
例如,中文:
> perl -MTime::Verbal -E '
my $tv = Time::Verbal->new(locale => "zh-TW");
say $tv->distance(time, time + 7**$_) for 1..10;'
不到一分鐘
一分鐘
6 分鐘
40 分鐘
5 小時
昨天
9 天
66 天
一年多
一年多
德文:
> perl -MTime::Verbal -E '
my $tv = Time::Verbal->new(locale => "de");
say $tv->distance(time, time + 7**$_) for 1..10;'
weniger als eine Minute
eine Minute
6 Minuten
40 Minuten
etwa 5 Stunden
ein Tag
9 Tage
66 Tage
mehr als ein Jahr
mehr als ein Jahr
希伯來文:
> perl -MTime::Verbal -E '
my $tv = Time::Verbal->new(locale => "he");
say $tv->distance(time, time + 7**$_) for 1..10;'
פחות מדקה אחת
דקה אחת
6 דקות
40 דקות
בערך 5 שעות
יום אחד
9 ימים
66 ימים
מעל שנה אחת
מעל שנה אחת
內附了 60 餘種語言的翻譯。翻譯的內容是取自 rails-i18n 計畫。也可以自定語言的翻譯內容。
目前實做的這個 distance
方法基本上就是 Rails helper 中的 distance_of_time_in_words
,不過這個名稱空間還不賴,可以陸續再補上其他部份。