Search code examples
phpcodeigniterdatetimeinternationalizationmultilingual

Change Language of CodeIgniter calendar library


I am trying to internationalize my site... so far I am able to translate everything except my dates and times.

I am trying to get the dates and times to display in French.

enter image description here

I have tried to use the setlocale(LC_TIME, 'France'); before loading the calendar library, all to no avail.

I am using the default codeigniter calendar library.

EDIT: my calendar function

/**
 * 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);
}

Solution

  • Did you declare prefs ?

    $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');
    

    and then

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