用php创建多语言日历-';翻译';使用setlocale
我正在创建一个小时日历(一个预订表单),我已经创建了我的日历用php创建多语言日历-';翻译';使用setlocale,php,wordpress,localization,locale,Php,Wordpress,Localization,Locale,我正在创建一个小时日历(一个预订表单),我已经创建了我的日历 $today = time(); if (date('D', $today) === 'Mon') { $timestamp = strtotime('this Monday'); } else{ $timestamp = strtotime('last Monday'); } $days = array(); $dates = array();
$today = time();
if (date('D', $today) === 'Mon') {
$timestamp = strtotime('this Monday');
} else{
$timestamp = strtotime('last Monday');
}
$days = array();
$dates = array();
for ($i = 0; $i < 7; $i++) {
$days[] = strftime('%A <br /> %d %b %Y', $timestamp);
$dates[] = strftime('%d %b %Y', $timestamp);
$timestamp = strtotime('+1 day', $timestamp);
}
$return .= '<table class="reservation_time_table">
<tr><th>'.esc_html__('Hours', 'time_reservation').'</th>';
foreach ($days as $day => $day_value) {
$today_class = ( strtotime(gmdate('d M Y', $today)) == strtotime(strip_tags($day_value)) ) ? 'class="today"' : '';
$return .= '<th '.$today_class.'>'.$day_value.'</th>';
}
$return .= '</tr>';
for ($hour=8; $hour < 23 ; $hour++) {
$return .= '<tr>';
$return .= '<th>'.$hour.':00</th>';
foreach ($dates as $date => $date_value) {
$full_hour = $hour. ':00';
$table_date = strtotime($date_value. ' ' .$full_hour);
$reserved = (in_array($table_date, $full_reserved_array)) ? 'disabled' : '';
$disabled_class = ($today > $table_date) ? 'disabled' : '';
$return .= '<td class="reservation_time '. $disabled_class. ' '. $reserved .'" data-time="'.$table_date.'"></td>';
}
$return .= '</tr>';
}
$return .= '</table>';
例如,对于瑞典语,这将是sv
,对于德语de
等
所以我在谷歌上搜索了一下,发现我可以使用setlocale()
更改时间和日期的格式。所以我试着:
if ($current_lang == 'sv') {
setlocale(LC_ALL, 'sv-SE');
} elseif($current_lang == 'de') {
setlocale(LC_ALL, 'de-DE');
} else{
setlocale(LC_ALL, 'en-US');
}
我还尝试了以下方法:
setlocale(LC_TIME, 'sv-SE');
但我的前端没有任何变化
我尝试将带有$timestamp
的if-else
循环放入(甚至更改了名称以匹配翻译),我将for
循环放入,但没有任何更改
使用php构建日历时如何处理转换?好的,所以答案是我缺少正确的区域设置。但这只是指出了一个更大的问题——如果我部署的服务器没有它,它就不会正常 因此,解决方案是在服务器上安装适当的本地化
sudo locale-gen sv_SE
sudo locale-gen sv_SE.UTF-8
或者您需要的任何语言…如果我没有在服务器上安装正确的区域设置,翻译将无法工作,对吗?因为可能是这样。我用
locale-a
进行了检查,我所拥有的一切与
sudo locale-gen sv_SE
sudo locale-gen sv_SE.UTF-8