Laravel中Carbon本地化星期名称不显示问题求助
解决Carbon本地化星期名称无法显示德语的问题
我来帮你搞定这个Carbon本地化的问题,你的情况我遇到过几次,大概率是这几个环节没处理好:
检查系统是否安装德语区域设置
Carbon的formatLocalized方法依赖服务器系统的locale支持,如果你服务器上没装德语的locale包,就算Carbon设置了de也没用。你可以通过终端执行locale -a命令,看看输出里有没有de_DE.utf8或者de_DE。如果没有的话,需要安装对应的语言包:- Ubuntu/Debian系统:
sudo apt-get install language-pack-de-base - CentOS/RHEL系统:
sudo yum install glibc-langpack-de
- Ubuntu/Debian系统:
确保AppServiceProvider的设置放在正确的方法里
你要确认设置Carbon locale的代码是放在AppServiceProvider的boot()方法中,而不是register()方法,因为boot()是在应用启动后执行的,能保证设置生效。正确的代码应该是这样:public function boot() { \Carbon\Carbon::setLocale('de'); \Carbon\Carbon::setUTF8(true); }另外,如果你想和Laravel应用的locale绑定,也可以这么写,更灵活:
public function boot() { app()->setLocale('de'); \Carbon\Carbon::setLocale(app()->getLocale()); }改用
translatedFormat替代formatLocalizedformatLocalized依赖系统locale,有时候会有兼容性问题,Carbon自带的translatedFormat方法是用自身的本地化文件,不依赖系统,更可靠。你可以把代码改成:{{ Carbon\Carbon::parse($case->created_at)->translatedFormat('l, d. F Y') }}这里的格式说明:
l是完整星期名(德语),d是带前导零的日期,F是完整月份名,这样就能输出你想要的Sonntag, 08. April 2018格式了。清除Laravel缓存
有时候缓存会导致设置不生效,执行下面的命令清一下缓存:php artisan cache:clear php artisan config:clear
按上面的步骤排查,应该就能解决你的问题了。
内容的提问来源于stack exchange,提问作者RobDeFlop
相关产品推荐
相关产品推荐

