分享dotProject 2.1.5 繁體中文版

由於過年前剛好有空
看到dotProject又有新版的出來
就順手弄了一個中文版出來
並且也說明一下修正了哪些地方

不過這邊也要先說明一下
翻譯的部分是拿以前的翻譯檔再作修正
所以並沒有完全都翻到
不過這是整合好的版本
至少除了翻譯之後,也不需要再東改西改的
當然我是拿官網的版本下來修正的
所以pdf中文的問題還是在
其它的我記得的都修正了

修正了哪些部分,我就說明一下
基本上就是日曆和甘特圖的修正
當然翻譯檔要先copy進去
1.日曆的部分是修改lib/PEAR/Date/Calc.php
在function getMonthNames
加入setlocale(LC_TIME, 'en');
在function getWeekDays
加入setlocale(LC_TIME, 'en');

2.甘特圖的部分就比較麻煩
先修改字型的部分
修改lib/jpgraph/src/jpg-config.inc.php
將define('FF_CUSTOM', 18);
改成define('FF_CUSTOM', 31);
再來修改lib/jpgraph/src/jpgraph_ttf.inc.php
在89行改成define('CHINESE_TTF_FONT','fireflysung.ttf');//這是後面會提到要裝的字型
在324~328行改成
     FF_CHINESE  =>   array(
      FS_NORMAL =>CHINESE_TTF_FONT,
      FS_BOLD =>CHINESE_TTF_FONT,
      FS_ITALIC =>CHINESE_TTF_FONT,
      FS_BOLDITALIC =>CHINESE_TTF_FONT ),
這樣中文在甘特圖就可以顯示了
而我是另外再修正2個地方
lib/jpgraph/src/jpgraph_gantt.php
在2730行將j/n改成n/j,符合平常使用"月/日"來顯示
及2796行將$img->SetFont($this->month->iFFamily,$this->month->iFStyle,$this->month->iFSize);
改成$img->SetFont(FF_CUSTOM,$this->month->iFStyle,$this->month->iFSize);
lib/jpgraph/src/jpgraph.php
在362行function Set
加入global $locale;//這變數是在中文語言檔locales.php宣告
並將該function的
        for($i=1; $i<=12; ++$i) {
            list($short ,$full) = explode('|', strftime("%b|%B",strtotime("2001-$i-01")));
            $this->iShortMonth[$aLocale][] = ucfirst($short);
            $this->iMonthName [$aLocale][] = ucfirst($full);
        }
改成
 for($i=0; $i<12; ++$i) {
  if( !isset( $locale ) )
  {
      list($short ,$full) = explode('|', strftime("%b|%B",strtotime("2001-$i-01")));
      $this->iShortMonth[$aLocale][] = ucfirst($short);
      $this->iMonthName [$aLocale][] = ucfirst($full);
  }
  else
  {
      $this->iShortMonth[$aLocale][] = $locale['monthsshort'][$i];
      $this->iMonthName [$aLocale][] = $locale['months'][$i];
  }
 }
這樣甘特圖的月分才會變成中文

再來就修正模組裏甘特圖的程式碼
modules/projects/gantt.php
將214行
   $name = ((mb_strlen(utf8_decode($p['project_name'])) > 25) 
            ? (mb_substr(utf8_decode($p['project_name']), 0, 22) . '...') 
            : utf8_decode($p['project_name']));
改成
   $name = ((strlen($p['project_name']) > 25)
            ? (substr($p['project_name'], 0, 22) . '...')
            : $p['project_name']);
modules/tasks/gantt.php
將372行註解掉
 if ($locale_char_set=='utf-8' && function_exists('utf8_decode')) {
  $name = utf8_decode($name);
 }
這樣就大致可以了

另外再重貼一下之前寫的
還有最重要的一點
此壓縮檔沒有中文字型
請自行去搜尋fireflysung.ttf下載
檔名請一樣,然後複製到解壓後的lib/fonts裏

如果甘特圖顯示有問題,請在php設定檔php.ini裏
將memory_limit = 32M
或許就能解決

安裝畫面我沒有翻中文,因為安裝只佔一小部分就懶得去處理了
安裝後,預設的帳號密碼為admin和passwd

下載(包含已修正過的)
http://www.fase.idv.tw/blog/download/dotproject_2_1_5_chinese_by_fase.zip

firefly字型,進到該目錄下,下載1.3.0的版本
http://freesf.tw/modules/mydownloads/viewcat.php?cid=19

就給大家參考用吧
另外提醒大家一下
我只是順手改一下整合一下
我本身並沒有在用dotProject這套系統
所以如果有問題,我並不能幫忙解決
標籤: dotProject
評論: 8 | 引用: 3 | 閱讀: 14437 | 回到頁首