2016-12-16 45 views
0

我想國際化我的網站更改語言......到目前爲止,我能除了我的日期和時間都翻譯。笨日曆庫

我想獲得的日期和時間用法語顯示。

enter image description here

我曾嘗試加載日曆庫之前使用setlocale(LC_TIME, 'France');,都無濟於事。

我使用的是默認的笨日曆庫。

編輯:

/** 
* generates an HTML calendar table 
* @param string $year 
* @param string $month 
* @param int|null $student_id 
*/ 
public function generateCalendar($year, $month, $student_id = null) 
{ 
    $params = [ 
     'show_next_prev' => false, 
    ]; 

    $params['translated_month_names'] = [ 
     '01' => 'sfdgsdfg', 
     '02' => 'vncvbm', 
     '03' => 'vbbddg', 
     '04' => 'xcvbbb', 
     '05' => 'xfjyt', 
     '06' => 'xfghxfgb', 
     '07' => 'jhdcbxcvb', 
     '08' => 'zgfbhxcvn', 
     '09' => 'zrthxgb', 
     '10' => 'zfgxcgnx', 
     '11' => 'november', 
     '12' => 'december' 
    ]; 

    // loading the calendar and passing the params and data 
    $this->load->library('calendar', $params, $month); 
    return $this->$month->generate($year, $month); 
} 

回答

1

你申報的首選項我的日曆功能?

$prefs['translated_day_names'] = array('monday in your language', 'wtorek', 'środa', 'czwartek', 'piątek', 'sob', 'niedziela'); 
$prefs['translated_month_names'] = array('01' => 'january in your language', '02' => '...', '03' => '...', '04' => '...', '05' => '...', '06' => '...', '07' => '.', '08' => '.kk', '09' => 'yyy', '10' => 'yy', '11' => 'november in your language', '12' => 'december'); 

然後

$this->load->library('calendar', $prefs); 
+0

好吧,我會盡力的,由於從來沒有見過這個。將返回給你並接受答案,如果它的工作。謝謝! –

+0

不幸的是,它不工作,我似乎無法在任何地方找到'translated_month_names'的信息......我用我當前的日曆班級更新了我的答案。 –

1

我工作圍繞這個討厭的問題,通過在覈心日曆類(系統/庫/ Calendar.php)更改代碼。文檔中沒有任何關於語言的內容,所以我決定自行調整它。

您也可以選擇擴展基本庫並覆蓋我修改的兩個函數,但是我沒有這樣做,因爲一些奇怪的原因,當我嘗試時找不到基類(系統/庫/ CI_Calendar)按照文檔中的描述擴展它們。它會一直返回,它無法在我的設置中找到CI_Calendar類,但這是另一回事。

在庫/ Calendar.php我做了以下的微小變化,要知道,這是不是整個函數的代碼,你可能需要調整了一下,以獲得期望的結果(這是對我來說):

功能get_month_name()

$months = $this->CI->lang->line('translated_month_names'); 

    return ($months === FALSE) 
     ? ucfirst(substr($month_names[$month], 4)) 
     : $months[$month]; 

當有在加載的語言文件,它會採取上述已經宣佈默認的「translated_month_names」任何情況下。

功能get_day_names()

$days = array(); 

    if($this->CI->lang->line('translated_day_names')){ 
     $days = $this->CI->lang->line('translated_day_names'); 
    }else{ 
     for ($i = 0, $c = count($day_names); $i < $c; $i++) 
     { 
     $days[] = ($this->CI->lang->line('cal_'.$day_names[$i]) === FALSE) ? ucfirst($day_names[$i]) : $this->CI->lang->line('cal_'.$day_names[$i]); 
     } 
    } 

這將確保它會分析我的語言文件,如果有它的線,否則將採取默認的(英語)。我希望這可能會幫助這個地獄圖書館的一些人。我現在使用CodeIgniter提供的默認語言類很好用。

+0

是的,我現在生活在這個錯誤...不是世界末日,但感謝分享你的解決方案!我可能最終會轉向某種JavaScript日曆。 –