我已经在我的网络服务器上安装了荷兰语本地(nl_NL utf8
)(当我执行locale -a
时,我看到nl_NL utf8
所以这很好。)
但是,我网页上的日期是英文(我已将setlocale(LC_ALL, 'nl_NL');
放在我的页面顶部)。我已经阅读了在编译php后安装locale包时,我必须重新编译php。
但是有没有其他解决方案,没有重新编译php,让它工作?
谢谢!
答案 0 :(得分:10)
我在这里总结了我遇到的类似问题,因为这里显然没有建设性的答案(错误的答案,确实:setlocale()
确实改变了strftime()
的输出)它可以对别人有用。
返回值
返回新的当前语言环境,如果是语言环境功能,则返回FALSE 未在您的平台上实现,指定的区域设置不会 存在或类别名称无效。
因此对于诊断程序,首先使用shell或PHP system('locale -a')
检查是否安装了正确的语言环境(nl_NL,nl_NL.UTF-8等)。在一些ubuntu系统上有一个安装语言环境的脚本,例如。 /usr/share/locales/install-language-pack nl_NL
但也可以考虑使用apt-get进行安装。
(对于异国情调的语言环境,还要检查是否支持语言环境:在某些系统上/usr/share/i18n/SUPPORTED
)。
然后你可以使用var_dump(setlocale('nl_NL'));
得到setlocale()的输出(因为setlocale()
单独不输出任何东西)。
治愈可能是用locale-gen nl_NL,nl_NL
重新生成语言环境此后,某些系统可能需要update-locale
(和dpkg-reconfigure locales
)。
答案 1 :(得分:2)
这可能是设计使然:setlocale()
不会使用date()
和strftime()
自动更改输出日期格式的输出。它的作用是本地化工作日和月份名称,但没有别的。
您能否举例说明如何输出日期,以及它们如何转换?