無編輯摘要
 
無編輯摘要
 
(未顯示同一使用者於中間所作的 1 次修訂)
第1行: 第1行:
{{meta}}
<metadesc>Open WebMail UTF-8 行事曆修正:修正行事曆語系 zh_TW.UTF-8 時,無法正確顯示農曆及農曆節日。</metadesc>
__NOEDITSECTION__
==Open WebMail UTF-8 行事曆修正 MOD==
==Open WebMail UTF-8 行事曆修正 MOD==
*程式目的:
*程式目的:
第5行: 第6行:
*#語系選擇 zh_TW.UTF-8 時,行事曆無法正確顯示農曆。
*#語系選擇 zh_TW.UTF-8 時,行事曆無法正確顯示農曆。
*適用版本: OpenWebMail version 2.53
*適用版本: OpenWebMail version 2.53
*日期:2011.1.25
*作者日期: Chienwen AT [[#|kt.com.tw]], 2011.1.25


===/usr/local/www/cgi-bin/openwebmail/openwebmail-cal.pl===
===/usr/local/www/cgi-bin/openwebmail/openwebmail-cal.pl===
第41行: 第42行:
   return ($md) if ($lmon!~/\d/ || $lday!~/\d/);
   return ($md) if ($lmon!~/\d/ || $lday!~/\d/);


   if ($md eq '0101') { return ('春節'); }
   my %holiday=(
  elsif ($md eq '0115') { return ('元宵節'); }
      '0101' => '春節',
  elsif ($md eq '0505') { return ('端午節'); }
      '0115' => '元宵節',
  elsif ($md eq '0815') { return ('中秋節'); }
      '0505' => '端午節',
  elsif ($md eq '1230') { return ('除夕'); }
      '0815' => '中秋節',
  elsif ($md eq '0707') { return ('七夕'); }
      '1230' => '除夕',
   elsif ($md eq '0909') { return ('重陽'); }
      '0707' => '七夕',
      '0909' => '重陽',
      );
   return ($holiday{$md}) if (exists $holiday{$md});
</source>
</source>


第88行: 第92行:
</source>
</source>
*註:須清空 <TT>/tmp/speedy.*</TT> 才能立即看到更改效果。
*註:須清空 <TT>/tmp/speedy.*</TT> 才能立即看到更改效果。
===修正陽陰曆對照表錯誤===
====/usr/local/www/cgi-bin/openwebmail/etc/maps/lunar.map====
#搜尋「<TT>,00</TT>」全部取代成「<TT>,10</TT>」。
修正完畢後,請執行:
<source lang="bash">
perl /usr/local/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
</source>


===附註===
===附註===
*Big5 碼 (ANSI) 與 UTF-8 碼文件之間的轉換與編輯,請使用 [http://sourceforge.net/projects/notepad-plus/ Notepad++]
*Big5 碼 (ANSI) 與 UTF-8 碼文件之間的轉換與編輯,請使用 [http://sourceforge.net/projects/notepad-plus/ Notepad++]
*已知錯誤:
*#清明節為春分後十五日,可能為四月的 4 或 5 日,本行事曆只能固定顯示其中一日。
*#農曆十二月多為大月,除夕多為三十暝;但當十二月是小月時,無法顯示除夕為二九暝。

於 2011年1月27日 (四) 11:07 的最新修訂

<metadesc>Open WebMail UTF-8 行事曆修正:修正行事曆語系 zh_TW.UTF-8 時,無法正確顯示農曆及農曆節日。</metadesc>

Open WebMail UTF-8 行事曆修正 MOD

  • 程式目的:
    1. 修正行事曆無法顯示農曆節日。
    2. 語系選擇 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

  1. 將文件編碼由「ANSI 碼」轉成「UTF-8碼〈檔首無BOM〉」。
  2. 搜尋「zh_TW\.Big5|zh_CN\.GB2312」全部取代成「zh_TW\.UTF\-8」。
  3. 搜尋「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

  1. 將文件編碼由「ANSI 碼」轉成「UTF-8碼〈檔首無BOM〉」。
  2. 搜尋「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

  1. 新增此檔案,文件編碼為「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 安裝注意事項:

修正 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

  1. 搜尋「,00」全部取代成「,10」。

修正完畢後,請執行:

perl /usr/local/www/cgi-bin/openwebmail/openwebmail-tool.pl --init

附註

  • Big5 碼 (ANSI) 與 UTF-8 碼文件之間的轉換與編輯,請使用 Notepad++
  • 已知錯誤:
    1. 清明節為春分後十五日,可能為四月的 4 或 5 日,本行事曆只能固定顯示其中一日。
    2. 農曆十二月多為大月,除夕多為三十暝;但當十二月是小月時,無法顯示除夕為二九暝。