我正在尝试将我的网站国际化...到目前为止,我能够翻译除日期和时间之外的所有内容。
我想用法语显示日期和时间。
我在加载日历库之前尝试使用setlocale(LC_TIME, 'France');
,但都无济于事。
我正在使用默认的codeigniter日历库。
编辑:我的日历功能
/**
* 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);
}
答案 0 :(得分:1)
您是否声明了prefs?
Row_Modal_ValidTime.blade.php
然后
$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');
答案 1 :(得分:1)
我通过更改核心Calender类(system / libraries / Calendar.php)中的代码解决了这个讨厌的问题。文档中没有任何关于语言的内容,所以我决定自己调整它。
您也可以选择扩展基础库并覆盖我修改的两个函数,但是我没有这样做,因为出于某种奇怪的原因,当我尝试使用它时,它无法找到基类(system / libraries / CI_Calendar)按照文档中的描述扩展它们。它将始终返回它在我的设置中找不到CI_Calendar类,但这是另一回事。
在libraries / Calendar.php中我做了以下小改动,请注意这不是整个函数代码,你可能需要调整一下才能得到想要的结果(这对我来说):
function 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提供的默认语言类很好。
答案 2 :(得分:0)
您可能无法通过在$ perfs变量中添加一些数组来更改语言,但是我通过更改库文件来另一种方式:
C:\ xampp \ htdocs \ CI文件夹名称\ system \ libraries \ calendar.php
$day_names = array('su', 'mo', 'tu', 'we', 'th', 'fr', 'sa');