我有一个支持这 5 种语言的网站:
- 英语
- 法语
- 德语
- 意大利语
- 西班牙语
用户可以根据需要在语言之间进行交换。我有一个页面以文本形式显示工作日日期月份,例如:
1月12日星期一
我的代码是:
setlocale(LC_TIME, $_SESSION['lang'] . "_" . strtoupper($_SESSION['lang']));
foreach($data['Location']['Day'] as $key => $val) {
$date = strftime("%A %e, %B", strtotime($val['@attributes']['val']));
$data['Location']['Day'][$key]['date'] = $date;
}
在本地主机上,当我在语言之间切换时,周和月切换并且工作正常。但是在服务器上,它总是以英语显示给我。_SESSION['lang'] 工作正常并被更改,所以我不知道为什么当语言环境应该是 fr_FR 时它不显示法语。
可能是因为服务器上没有安装语言环境吗?还是有更好的方法来本地化这些字符串?
编辑:我也尝试在 setlocale 调用中添加“.utf8”,如下所示:
setlocale(LC_TIME, $_SESSION['lang'] . "_" . strtoupper($_SESSION['lang']) . ".utf8");
但这也不起作用(在 localhost 和服务器上都不起作用)