Perl 模組 Time::Verbal

| No Comments | No TrackBacks

關於把時間轉換成口語的 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,不過這個名稱空間還不賴,可以陸續再補上其他部份。

No TrackBacks

TrackBack URL: http://pub.gugod.org/mt/mt-tb.cgi/427

Leave a comment

About this Entry

This page contains a single entry by gugod published on April 30, 2011 9:19 AM.

轉換口語時間區間的 Perl 模組 was the previous entry in this blog.

試用 dotcloud is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Pages

Powered by Movable Type 4.35-en