我希望将日期翻译成"de“,并以这种格式显示:
Thu, Mar 8, 2018 - 6:30我在“app.php”中有:
'locale' => 'de',然后,在我使用的视图中:
{{$post->date->toDayDateTimeString()}}但结果仍然出现在“en”中:
Thu, Mar 8, 2018 6:30 AM但是,例如,使用其他碳方法:{$post->date->diffForHumans()}}结果出现在"de“中,但我不想要那种格式,我想要toDayDateTimeString()格式。
您知道如何将这种格式的toDayDateTimeString()翻译成另一种语言吗?那么,是否可以用另一种语言显示“清华,2018-6:30”这样的日期呢?
发布于 2018-03-24 16:43:13
为了将日期翻译成德语,您必须在使用区域设置之前设置适当的Carbon。
在你看来,作为一个测试,这应该足够了:
<?php setlocale(LC_TIME, 'de_DE'); ?>
{{ $post->date->formatLocalized('%a, %b %d, %Y %H:%M') }}有关其他格式选项,请参阅strftime()函数手册。
您必须确保系统中启用了所需的区域设置。
我假设您是在Linux环境中,所以您必须编辑locale.gen文件(Arch和Ubuntu在/etc/locale.gen中有它,其他发行版可能在其他地方),并删除适当的行:
# de_DE ISO-8859-1
# de_DE.UTF-8 UTF-8将不得不更改为
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8更新locale.gen文件后,您将需要运行locale-gen,以便刚刚取消注释的新区域设置可以从PHP中获得。
$ locale-gen
现在确认新的区域设置是可用的,下面是:
$ locale -a
现在,回到您的浏览器,您将成功地看到日期/时间翻译。
编辑:编辑:我们后来发现,来自Carbon类的toDayDateTimeString()方法不适合本地化,所以必须使用formatLocalized()。
发布于 2018-03-16 17:50:01
您可以使用setLocale('de')方法。
下面是一个例子
<?php
\Carbon\Carbon::setLocale('de')
?>
{{$post->date->toDayDateTimeString()}}希望这能有所帮助
发布于 2018-03-16 17:57:12
如果您在应用程序中设置区域设置,Laravel附带了Carbon包。date将根据所选的语言自动解析日期。
查一下这个
Carbon::setLocale('de');
echo Carbon::getLocale(); // de
echo Carbon::now()->addYear()->diffForHumans(); // in 1 Jahr
Carbon::setLocale('en');
echo Carbon::getLocale(); // enhttps://stackoverflow.com/questions/49326601
复制相似问题