我在TurnkeyLinux使用Laravel 4并试图获得money_format以本地化方式显示货币.
money_format('%.2n', 1222002.09)
返回1222002.09.
在app/strart/global.php中,我App::setLocale(Session::get('locale', 'en'));
使用Laravel的语言文件改变了语言,但对货币没有影响.
我发现localeconv();
输出几乎为空的数组(只设置小数点)并且使用setLocale(LC_ALL, 'en_GB', 'en_GB');
没有效果.
我使用的是PHP 5.4.4和Debian 3.2.57.
得到它了!感谢Dmitry Bezik指出我正确的方向.
locale -a
回:
C
C.UTF-8
POSIX
缺少GB(或US)语言环境促使我做了另一个搜索,找到了我这个页面.
基本上我没有安装任何语言环境,所以我按照说明操作并通过执行以下操作安装了GB语言环境:
使用WinSCP打开/etc/locale.gen并向下滚动已注释掉的语言环境列表,直到找到en_GB.UTF-8 UTF-8
并删除前导"#",(如果您的文件为空,只需添加一个条目即可).
然/usr/sbin/locale-gen
如根,这使系统"生成的语言环境"(其只用了第二).
添加setLocale(LC_ALL, 'en_GB.utf8', 'en_GB');
到我的刀片模板并刷新.
瞧!我现在明白了£1,222,002.09
.
然后我setLocale
在设置语言后将代码移动到我的app/start/global.php中,以便在每次请求时运行.