PHP中如何设置语言为中文,给Carbon设置为中文语言

如何本地化Carbon的语言呢?如果使用Carbon的diffForHumans()等方法时默认会得到英文显示,对于国内用户而言体验未免太...// 示例:

Carbon::parse('2018-09-20 09:56:31')->diffForHumans(); // 则会显示 8 days from now

Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'那么如何让diffForHumans()输出的是中文呢? 以Laravel为例 做以下配置:

第一种方法 非常方便,但是只能使用固定在语言包里的文案,不能进行修改:// 在AppServiceProvider加入配置

Carbon::setLocale('zh');

第二种方法 较上个方法而言,有点麻烦.但比较灵活,可随时修改语言包里的文案:// 在AppServiceProvider加入配置

use Carbon\Carbon;

use use Symfony\Component\Translation\Translator;

use Symfony\Component\Translation\Loader\ArrayLoader;

$locale = config('app.locale'); // zh_CN

$translator = new Translator($locale);

$translator->addLoader('array', new ArrayLoader());

$lang = require_once base_path('resources/lang/' . $locale . '/datetime.php');

$translator->addResource('array', $lang, $locale);

Carbon::setTranslator($translator);附上:resources/lang/' . $locale . '/datetime.php的配置 可参考return [

'year' => ':count年',

'month' => ':count月',

'week' => ':count周',

'day' => ':count天',

'hour' => ':count小时',

'minute' => ':count分钟',

'second' => ':count秒',

'ago' => ':time前',

'from_now' => '倒计时:time',

'after' => ':time后',

'before' => ':time前'

];

之后使用Carbon的方法时,就是中文啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值