Openwebmail Calendar UTF-8 MOD
From 墾丁 KenTing
目錄 |
Open WebMail UTF-8 行事曆修正 MOD
- 程式目的:
- 修正行事曆無法顯示農曆節日。
- 語系選擇 zh_TW.UTF-8 時,行事曆無法正確顯示農曆。
- 適用版本: OpenWebMail version 2.53
- 作者日期: Chienwen AT kt.com.tw, 2011.1.25
/usr/local/www/cgi-bin/openwebmail/openwebmail-cal.pl
- 將文件編碼由「ANSI 碼」轉成「UTF-8碼〈檔首無BOM〉」。
- 搜尋「zh_TW\.Big5|zh_CN\.GB2312」全部取代成「zh_TW\.UTF\-8」。
- 搜尋「big5」全部取代成「utf8」。
Find:
my $color=""; $color=qq|color="#aaaaaa"| if ($str!~/初一/ && $str!~/十五/); $str=(iconv('utf8', $charset, $str))[0]; $str=qq|<font class="smalltext" $color>$str</font>|;
Replace with:
my $color=qq| color="#aaaaaa"|; my $class=qq| class="smalltext"|; if ($str=~/節/) { $color=qq| color="#cc0000"|; $class=""; } elsif ($str=~/初一/ || $str=~/十五/) { $color=""; } # $str=(iconv('utf8', $charset, $str))[0]; $str=qq|<font$class$color>$str</font>|;
/usr/local/www/cgi-bin/openwebmail/shares/lunar.pl
- 將文件編碼由「ANSI 碼」轉成「UTF-8碼〈檔首無BOM〉」。
- 搜尋「big5」全部取代成「utf8」。
Find:
return ($lmon.$lday) if ($lmon!~/\d/ || $lday!~/\d/);
Replace with:
my $md=$lmon.$lday; return ($md) if ($lmon!~/\d/ || $lday!~/\d/); my %holiday=( '0101' => '春節', '0115' => '元宵節', '0505' => '端午節', '0815' => '中秋節', '1230' => '除夕', '0707' => '七夕', '0909' => '重陽', ); return ($holiday{$md}) if (exists $holiday{$md});
/usr/local/www/cgi-bin/openwebmail/etc/holidays/zh_TW.UTF-8
- 新增此檔案,文件編碼為「UTF-8碼〈檔首無BOM〉」。
1@@@.*,12,25,.*@@@0@@@0@@@聖誕節@@@0@@@0@@@none@@@utf-8@@@1 2@@@.*,easter,easter,.*@@@0@@@0@@@復活節@@@0@@@0@@@none@@@utf-8@@@1 3@@@.*,11,2[2-8],Thu@@@0@@@0@@@感恩節@@@0@@@0@@@none@@@utf-8@@@1 4@@@.*,05,((0[8-9])|(1[0-4])),Sun@@@0@@@0@@@母親節@@@0@@@0@@@none@@@utf-8@@@1 5@@@.*,01,01,.*@@@0@@@0@@@元旦@@@0@@@0@@@none@@@utf-8@@@1 6@@@.*,02,14,.*@@@0@@@0@@@情人節@@@0@@@0@@@none@@@utf-8@@@1 7@@@.*,02,28,.*@@@0@@@0@@@和平日@@@0@@@0@@@none@@@utf-8@@@1 8@@@.*,04,04,.*@@@0@@@0@@@兒童節@@@0@@@0@@@none@@@utf-8@@@1 9@@@.*,04,05,.*@@@0@@@0@@@清明節@@@0@@@0@@@none@@@utf-8@@@1 10@@@.*,05,01,.*@@@0@@@0@@@勞動節@@@0@@@0@@@none@@@utf-8@@@1 11@@@.*,08,08,.*@@@0@@@0@@@爸爸節@@@0@@@0@@@none@@@utf-8@@@1 12@@@.*,10,10,.*@@@0@@@0@@@雙十節@@@0@@@0@@@none@@@utf-8@@@1
FreeBSD ports 安裝注意事項:
- 請由 ports/mail/openwebmail/ 安裝好的檔案修改,勿直接使用 openwebmail.org 的 release 檔案修改覆蓋,不然會造成無法執行。
修正 HELP 檔案
cd /usr/local/www/data/openwebmail/help ln -s zh_TW.Big5 zh_TW.UTF-8
修正時區
/usr/local/www/cgi-bin/openwebmail/etc/lang/zh_TW.UTF-8
/usr/local/www/cgi-bin/openwebmail/etc/lang/zh_TW.Big5
Find:
'+0800' => '中原標準',
Replace with:
'+0800' => '台灣時間',
- 註:須清空 /tmp/speedy.* 才能立即看到更改效果。
修正陽陰曆對照表錯誤
/usr/local/www/cgi-bin/openwebmail/etc/maps/lunar.map
- 搜尋「,00」全部取代成「,10」。
修正完畢後,請執行:
perl /usr/local/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
附註
- Big5 碼 (ANSI) 與 UTF-8 碼文件之間的轉換與編輯,請使用 Notepad++
- 已知錯誤:
- 清明節為春分後十五日,可能為四月的 4 或 5 日,本行事曆只能固定顯示其中一日。
- 農曆十二月多為大月,除夕多為三十暝;但當十二月是小月時,無法顯示除夕為二九暝。